├── matplotlib_inline ├── py.typed ├── __init__.py ├── config.py └── backend_inline.py ├── .gitignore ├── tests ├── test_import.py └── notebooks │ ├── config_InlineBackend.ipynb │ └── mpl_inline.ipynb ├── SECURITY.md ├── .github ├── dependabot.yml └── workflows │ ├── publish.yml │ └── main.yml ├── README.md ├── LICENSE └── pyproject.toml /matplotlib_inline/py.typed: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.egg-info 2 | dist 3 | build 4 | __pycache__ 5 | .ipynb_checkpoints 6 | -------------------------------------------------------------------------------- /tests/test_import.py: -------------------------------------------------------------------------------- 1 | def test_import(): 2 | from matplotlib_inline.backend_inline import show 3 | 4 | show() 5 | -------------------------------------------------------------------------------- /matplotlib_inline/__init__.py: -------------------------------------------------------------------------------- 1 | from . import backend_inline, config # noqa 2 | 3 | __version__ = "0.2.1" 4 | 5 | # we can't ''.join(...) otherwise finding the version number at build time requires 6 | # import which introduces IPython and matplotlib at build time, and thus circular 7 | # dependencies. 8 | version_info = tuple(int(s) for s in __version__.split(".")[:3]) 9 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | All IPython and Jupyter security are handled via security@ipython.org. 6 | You can find more information on the Jupyter website. https://jupyter.org/security 7 | 8 | ## Tidelift 9 | 10 | You can report security concerns for IPython via the [Tidelift platform](https://tidelift.com/security). 11 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Please see the documentation for all configuration options: 2 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 3 | 4 | version: 2 5 | updates: 6 | - package-ecosystem: "pip" 7 | directory: "/" # Location of package manifests 8 | schedule: 9 | interval: "monthly" 10 | - package-ecosystem: "github-actions" 11 | directory: "/" 12 | schedule: 13 | interval: "monthly" 14 | groups: 15 | actions: 16 | patterns: 17 | - "*" 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Matplotlib Inline Back-end for IPython and Jupyter 2 | 3 | This package provides support for matplotlib to display figures directly inline in the Jupyter notebook and related clients, as shown below. 4 | 5 | ## Installation 6 | 7 | With conda: 8 | 9 | ```bash 10 | conda install -c conda-forge matplotlib-inline 11 | ``` 12 | 13 | With pip: 14 | 15 | ```bash 16 | pip install matplotlib-inline 17 | ``` 18 | 19 | ## Usage 20 | 21 | Note that in current versions of JupyterLab and Jupyter Notebook, the explicit use of the `%matplotlib inline` directive is not needed anymore, though other third-party clients may still require it. 22 | 23 | This will produce a figure immediately below: 24 | 25 | ```python 26 | %matplotlib inline 27 | 28 | import matplotlib.pyplot as plt 29 | import numpy as np 30 | 31 | x = np.linspace(0, 3*np.pi, 500) 32 | plt.plot(x, np.sin(x**2)) 33 | plt.title('A simple chirp'); 34 | ``` 35 | 36 | ## License 37 | 38 | Licensed under the terms of the BSD 3-Clause License, by the IPython Development Team (see `LICENSE` file). 39 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: "Publish Wheel" 2 | on: 3 | push: 4 | tags: 5 | - '*' 6 | permissions: 7 | contents: read 8 | 9 | jobs: 10 | pypi-publish: 11 | name: Upload release to PyPI 12 | runs-on: ubuntu-latest 13 | environment: 14 | name: pypi 15 | url: https://pypi.org/project/matplotlib-inline 16 | permissions: 17 | id-token: write 18 | steps: 19 | - uses: actions/checkout@v5 20 | 21 | - name: Set up Python 22 | uses: actions/setup-python@v6 23 | with: 24 | python-version: '3.x' 25 | - name: Install dependencies 26 | run: | 27 | python -m pip install --upgrade pip 28 | pip install build matplotlib IPython 29 | - name: Build package 30 | run: python -m build 31 | - name: Install built wheel 32 | run: pip install dist/*.whl 33 | - name: Echo current tag 34 | run: echo ${{ github.ref }} 35 | - name: Get package version 36 | run: | 37 | export PACKAGE_VERSION=$(python -c 'import matplotlib_inline; print(matplotlib_inline.__version__)') 38 | echo "Package version: $PACKAGE_VERSION" 39 | if [ "$GITHUB_REF" != "refs/tags/$PACKAGE_VERSION" ]; then 40 | echo "Tag and package version do not match. Aborting. $GITHUB_REF vs refs/tags/$PACKAGE_VERSION" 41 | exit 1 42 | fi 43 | - name: Publish package 44 | uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e 45 | 46 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2019-2022, IPython Development Team. 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | 9 | defaults: 10 | run: 11 | shell: bash -l {0} 12 | concurrency: 13 | group: ${{ github.workflow }}-${{ github.ref }} 14 | cancel-in-progress: true 15 | 16 | jobs: 17 | run: 18 | runs-on: ${{ matrix.os }} 19 | timeout-minutes: 3 20 | 21 | strategy: 22 | fail-fast: false 23 | matrix: 24 | os: [ubuntu-latest] 25 | python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"] 26 | include: 27 | #- os: macos-latest 28 | # python-version: "3.14" 29 | - os: windows-latest 30 | python-version: "3.14" 31 | 32 | steps: 33 | - name: Checkout 34 | uses: actions/checkout@v5 35 | 36 | - name: Setup Python ${{ matrix.python-version }} 37 | uses: actions/setup-python@v6 38 | with: 39 | python-version: ${{ matrix.python-version }} 40 | 41 | - name: Install package with test dependencies 42 | run: pip install .[test] 43 | 44 | - name: Test installation without nbdime 45 | run: pytest -v 46 | 47 | - name: Test flake8 48 | if: ${{ matrix.python-version == '3.14' }} 49 | run: flake8 matplotlib_inline --ignore=E501,W504,W503 50 | 51 | - name: Test Build 52 | if: ${{ matrix.python-version == '3.14' }} 53 | run: | 54 | pip install build 55 | python -m build 56 | 57 | - name: Install ruff 58 | if: ${{ matrix.python-version == '3.14' }} 59 | run: pip install ruff 60 | 61 | - name: Check code with ruff 62 | if: ${{ matrix.python-version == '3.14' }} 63 | run: ruff check matplotlib_inline 64 | 65 | - name: Check formatting with ruff 66 | if: ${{ matrix.python-version == '3.14' }} 67 | run: ruff format matplotlib_inline --check 68 | 69 | - name: install Mypy 70 | if: ${{ matrix.python-version == '3.14' }} 71 | run : pip install mypy matplotlib 72 | 73 | - name: run mypy 74 | if: ${{ matrix.python-version == '3.14' }} 75 | run: mypy . 76 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | build-backend = "flit_core.buildapi" 3 | requires = ["flit_core>=3.2"] 4 | 5 | [project] 6 | name = "matplotlib-inline" 7 | description = "Inline Matplotlib backend for Jupyter" 8 | authors = [ 9 | {name = "IPython Development Team", email = "ipython-dev@python.org"}, 10 | ] 11 | classifiers = [ 12 | "Development Status :: 5 - Production/Stable", 13 | "Framework :: IPython", 14 | "Framework :: Jupyter :: JupyterLab :: 3", 15 | "Framework :: Jupyter :: JupyterLab :: 4", 16 | "Framework :: Jupyter :: JupyterLab", 17 | "Framework :: Jupyter", 18 | "Intended Audience :: Developers", 19 | "Intended Audience :: Science/Research", 20 | "Programming Language :: Python :: 3.10", 21 | "Programming Language :: Python :: 3.11", 22 | "Programming Language :: Python :: 3.12", 23 | "Programming Language :: Python :: 3.13", 24 | "Programming Language :: Python :: 3.14", 25 | "Programming Language :: Python :: 3.9", 26 | "Programming Language :: Python :: 3", 27 | "Programming Language :: Python", 28 | "Topic :: Multimedia :: Graphics", 29 | ] 30 | 31 | # do not rely on matplotlib/IPython, as we want matplotlib-inline to be _installable_ without pulling the other 32 | # dependencies 33 | 34 | dependencies = ["traitlets"] 35 | dynamic = ["version"] 36 | keywords = [ 37 | "ipython", 38 | "jupyter", 39 | "matplotlib", 40 | "python", 41 | ] 42 | license = {file = "LICENSE"} 43 | readme = "README.md" 44 | requires-python = ">=3.9" 45 | 46 | [project.entry-points."matplotlib.backend"] 47 | inline = "matplotlib_inline.backend_inline" 48 | 49 | [project.optional-dependencies] 50 | test = [ 51 | "flake8", 52 | "nbdime", 53 | "nbval", 54 | "notebook", 55 | "pytest", 56 | ] 57 | 58 | [project.urls] 59 | Homepage = "https://github.com/ipython/matplotlib-inline" 60 | 61 | [tool.setuptools.dynamic] 62 | version = {attr = "matplotlib_inline.__version__"} 63 | 64 | [tool.pytest.ini_options] 65 | xfail_strict = true 66 | log_cli_level = "info" 67 | addopts = [ 68 | "--nbval", 69 | "--ignore=tests/notebooks/.ipynb_checkpoints/*", 70 | "--strict-config", 71 | "-ra", 72 | "--strict-markers", 73 | ] 74 | filterwarnings = ["error"] 75 | testpaths = [ 76 | "tests", 77 | ] 78 | 79 | [tool.mypy] 80 | strict=false 81 | warn_unreachable=true 82 | enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"] 83 | 84 | [tool.ruff] 85 | 86 | [tool.ruff.lint] 87 | extend-select = [ 88 | "UP", # pyupgrade 89 | "I", # isort 90 | "B", # flake8-bugbear 91 | ] 92 | -------------------------------------------------------------------------------- /matplotlib_inline/config.py: -------------------------------------------------------------------------------- 1 | """Configurable for configuring the IPython inline backend 2 | 3 | This module does not import anything from matplotlib. 4 | """ 5 | 6 | # Copyright (c) IPython Development Team. 7 | # Distributed under the terms of the BSD 3-Clause License. 8 | 9 | from traitlets import Bool, Dict, Instance, Set, TraitError, Unicode 10 | from traitlets.config.configurable import SingletonConfigurable 11 | 12 | 13 | # Configurable for inline backend options 14 | def pil_available(): 15 | """Test if PIL/Pillow is available""" 16 | out = False 17 | try: 18 | from PIL import Image # noqa 19 | 20 | out = True 21 | except ImportError: 22 | pass 23 | return out 24 | 25 | 26 | # Inherit from InlineBackendConfig for deprecation purposes 27 | class InlineBackendConfig(SingletonConfigurable): 28 | pass 29 | 30 | 31 | class InlineBackend(InlineBackendConfig): 32 | """An object to store configuration of the inline backend.""" 33 | 34 | # While we are deprecating overriding matplotlib defaults out of the 35 | # box, this structure should remain here (empty) for API compatibility 36 | # and the use of other tools that may need it. Specifically Spyder takes 37 | # advantage of it. 38 | # See https://github.com/ipython/ipython/issues/10383 for details. 39 | rc = Dict( 40 | {}, 41 | help="""Dict to manage matplotlib configuration defaults in the inline 42 | backend. As of v0.1.4 IPython/Jupyter do not override defaults out of 43 | the box, but third-party tools may use it to manage rc data. To change 44 | personal defaults for matplotlib, use matplotlib's configuration 45 | tools, or customize this class in your `ipython_config.py` file for 46 | IPython/Jupyter-specific usage.""", 47 | ).tag(config=True) 48 | 49 | figure_formats = Set( 50 | {"png"}, 51 | help="""A set of figure formats to enable: 'png', 52 | 'retina', 'jpeg', 'svg', 'pdf'.""", 53 | ).tag(config=True) 54 | 55 | def _update_figure_formatters(self): 56 | if self.shell is not None: 57 | from IPython.core.pylabtools import select_figure_formats 58 | 59 | select_figure_formats( 60 | self.shell, self.figure_formats, **self.print_figure_kwargs 61 | ) 62 | 63 | def _figure_formats_changed(self, name, old, new): 64 | if "jpg" in new or "jpeg" in new: 65 | if not pil_available(): 66 | raise TraitError("Requires PIL/Pillow for JPG figures") 67 | self._update_figure_formatters() 68 | 69 | figure_format = Unicode( 70 | help="""The figure format to enable (deprecated 71 | use `figure_formats` instead)""" 72 | ).tag(config=True) 73 | 74 | def _figure_format_changed(self, name, old, new): 75 | if new: 76 | self.figure_formats = {new} 77 | 78 | print_figure_kwargs = Dict( 79 | {"bbox_inches": "tight"}, 80 | help="""Extra kwargs to be passed to fig.canvas.print_figure. 81 | 82 | Logical examples include: bbox_inches, pil_kwargs, etc. In addition, 83 | see the docstrings of `set_matplotlib_formats`. 84 | """, 85 | ).tag(config=True) 86 | _print_figure_kwargs_changed = _update_figure_formatters 87 | 88 | close_figures = Bool( 89 | True, 90 | help="""Close all figures at the end of each cell. 91 | 92 | When True, ensures that each cell starts with no active figures, but it 93 | also means that one must keep track of references in order to edit or 94 | redraw figures in subsequent cells. This mode is ideal for the notebook, 95 | where residual plots from other cells might be surprising. 96 | 97 | When False, one must call figure() to create new figures. This means 98 | that gcf() and getfigs() can reference figures created in other cells, 99 | and the active figure can continue to be edited with pylab/pyplot 100 | methods that reference the current active figure. This mode facilitates 101 | iterative editing of figures, and behaves most consistently with 102 | other matplotlib backends, but figure barriers between cells must 103 | be explicit. 104 | """, 105 | ).tag(config=True) 106 | 107 | shell = Instance( 108 | "IPython.core.interactiveshell.InteractiveShellABC", allow_none=True 109 | ) 110 | -------------------------------------------------------------------------------- /matplotlib_inline/backend_inline.py: -------------------------------------------------------------------------------- 1 | """A matplotlib backend for publishing figures via display_data""" 2 | 3 | # Copyright (c) IPython Development Team. 4 | # Distributed under the terms of the BSD 3-Clause License. 5 | 6 | import matplotlib 7 | from IPython.core.getipython import get_ipython 8 | from IPython.core.interactiveshell import InteractiveShell 9 | from IPython.core.pylabtools import select_figure_formats 10 | from IPython.display import display 11 | from matplotlib import colors 12 | from matplotlib._pylab_helpers import Gcf 13 | from matplotlib.backends import backend_agg 14 | from matplotlib.backends.backend_agg import FigureCanvasAgg 15 | from matplotlib.figure import Figure 16 | 17 | from .config import InlineBackend 18 | 19 | 20 | def new_figure_manager(num, *args, FigureClass=Figure, **kwargs): 21 | """ 22 | Return a new figure manager for a new figure instance. 23 | 24 | This function is part of the API expected by Matplotlib backends. 25 | """ 26 | return new_figure_manager_given_figure(num, FigureClass(*args, **kwargs)) 27 | 28 | 29 | def new_figure_manager_given_figure(num, figure): 30 | """ 31 | Return a new figure manager for a given figure instance. 32 | 33 | This function is part of the API expected by Matplotlib backends. 34 | """ 35 | manager = backend_agg.new_figure_manager_given_figure(num, figure) 36 | 37 | # Hack: matplotlib FigureManager objects in interacive backends (at least 38 | # in some of them) monkeypatch the figure object and add a .show() method 39 | # to it. This applies the same monkeypatch in order to support user code 40 | # that might expect `.show()` to be part of the official API of figure 41 | # objects. For further reference: 42 | # https://github.com/ipython/ipython/issues/1612 43 | # https://github.com/matplotlib/matplotlib/issues/835 44 | 45 | if not hasattr(figure, "show"): 46 | # Queue up `figure` for display 47 | figure.show = lambda *a: display( 48 | figure, metadata=_fetch_figure_metadata(figure) 49 | ) 50 | 51 | # If matplotlib was manually set to non-interactive mode, this function 52 | # should be a no-op (otherwise we'll generate duplicate plots, since a user 53 | # who set ioff() manually expects to make separate draw/show calls). 54 | if not matplotlib.is_interactive(): 55 | return manager 56 | 57 | # ensure current figure will be drawn, and each subsequent call 58 | # of draw_if_interactive() moves the active figure to ensure it is 59 | # drawn last 60 | try: 61 | show._to_draw.remove(figure) 62 | except ValueError: 63 | # ensure it only appears in the draw list once 64 | pass 65 | # Queue up the figure for drawing in next show() call 66 | show._to_draw.append(figure) 67 | show._draw_called = True 68 | 69 | return manager 70 | 71 | 72 | def show(close=None, block=None): 73 | """Show all figures as SVG/PNG payloads sent to the IPython clients. 74 | 75 | Parameters 76 | ---------- 77 | close : bool, optional 78 | If true, a ``plt.close('all')`` call is automatically issued after 79 | sending all the figures. If this is set, the figures will entirely 80 | removed from the internal list of figures. 81 | block : Not used. 82 | The `block` parameter is a Matplotlib experimental parameter. 83 | We accept it in the function signature for compatibility with other 84 | backends. 85 | """ 86 | if close is None: 87 | close = InlineBackend.instance().close_figures 88 | try: 89 | for figure_manager in Gcf.get_all_fig_managers(): 90 | display( 91 | figure_manager.canvas.figure, 92 | metadata=_fetch_figure_metadata(figure_manager.canvas.figure), 93 | ) 94 | finally: 95 | show._to_draw = [] 96 | # only call close('all') if any to close 97 | # close triggers gc.collect, which can be slow 98 | if close and Gcf.get_all_fig_managers(): 99 | matplotlib.pyplot.close("all") 100 | 101 | 102 | # This flag will be reset by draw_if_interactive when called 103 | show._draw_called = False # type: ignore[attr-defined] 104 | # list of figures to draw when flush_figures is called 105 | show._to_draw = [] # type: ignore[attr-defined] 106 | 107 | 108 | def flush_figures(): 109 | """Send all figures that changed 110 | 111 | This is meant to be called automatically and will call show() if, during 112 | prior code execution, there had been any calls to draw_if_interactive. 113 | 114 | This function is meant to be used as a post_execute callback in IPython, 115 | so user-caused errors are handled with showtraceback() instead of being 116 | allowed to raise. If this function is not called from within IPython, 117 | then these exceptions will raise. 118 | """ 119 | if not show._draw_called: 120 | return 121 | 122 | try: 123 | if InlineBackend.instance().close_figures: 124 | # ignore the tracking, just draw and close all figures 125 | try: 126 | return show(True) 127 | except Exception as e: 128 | # safely show traceback if in IPython, else raise 129 | ip = get_ipython() 130 | if ip is None: 131 | raise e 132 | else: 133 | ip.showtraceback() 134 | return 135 | 136 | # exclude any figures that were closed: 137 | active = set([fm.canvas.figure for fm in Gcf.get_all_fig_managers()]) 138 | for fig in [fig for fig in show._to_draw if fig in active]: 139 | try: 140 | display(fig, metadata=_fetch_figure_metadata(fig)) 141 | except Exception as e: 142 | # safely show traceback if in IPython, else raise 143 | ip = get_ipython() 144 | if ip is None: 145 | raise e 146 | else: 147 | ip.showtraceback() 148 | return 149 | finally: 150 | # clear flags for next round 151 | show._to_draw = [] 152 | show._draw_called = False 153 | 154 | 155 | # Changes to matplotlib in version 1.2 requires a mpl backend to supply a default 156 | # figurecanvas. This is set here to a Agg canvas 157 | # See https://github.com/matplotlib/matplotlib/pull/1125 158 | FigureCanvas = FigureCanvasAgg 159 | 160 | 161 | def configure_inline_support(shell, backend): 162 | """Configure an IPython shell object for matplotlib use. 163 | 164 | Parameters 165 | ---------- 166 | shell : InteractiveShell instance 167 | 168 | backend : matplotlib backend 169 | """ 170 | # If using our svg payload backend, register the post-execution 171 | # function that will pick up the results for display. This can only be 172 | # done with access to the real shell object. 173 | 174 | cfg = InlineBackend.instance(parent=shell) 175 | cfg.shell = shell 176 | if cfg not in shell.configurables: 177 | shell.configurables.append(cfg) 178 | 179 | if backend in ("inline", "module://matplotlib_inline.backend_inline"): 180 | shell.events.register("post_execute", flush_figures) 181 | 182 | # Save rcParams that will be overwrittern 183 | shell._saved_rcParams = {} 184 | for k in cfg.rc: 185 | shell._saved_rcParams[k] = matplotlib.rcParams[k] 186 | # load inline_rc 187 | matplotlib.rcParams.update(cfg.rc) 188 | new_backend_name = "inline" 189 | else: 190 | try: 191 | shell.events.unregister("post_execute", flush_figures) 192 | except ValueError: 193 | pass 194 | if hasattr(shell, "_saved_rcParams"): 195 | matplotlib.rcParams.update(shell._saved_rcParams) 196 | del shell._saved_rcParams 197 | new_backend_name = "other" 198 | 199 | # only enable the formats once -> don't change the enabled formats (which the user may 200 | # has changed) when getting another "%matplotlib inline" call. 201 | # See https://github.com/ipython/ipykernel/issues/29 202 | cur_backend = getattr(configure_inline_support, "current_backend", "unset") 203 | if new_backend_name != cur_backend: 204 | # Setup the default figure format 205 | select_figure_formats(shell, cfg.figure_formats, **cfg.print_figure_kwargs) 206 | configure_inline_support.current_backend = new_backend_name 207 | 208 | 209 | def _enable_matplotlib_integration(): 210 | """Enable extra IPython matplotlib integration when we are loaded as the matplotlib backend.""" 211 | ip = get_ipython() 212 | 213 | import matplotlib 214 | 215 | if matplotlib.__version_info__ >= (3, 10): 216 | backend = matplotlib.get_backend(auto_select=False) 217 | else: 218 | backend = matplotlib.rcParams._get("backend") 219 | 220 | if ip and backend in ("inline", "module://matplotlib_inline.backend_inline"): 221 | from IPython.core.pylabtools import activate_matplotlib 222 | 223 | try: 224 | activate_matplotlib(backend) 225 | configure_inline_support(ip, backend) 226 | except (ImportError, AttributeError): 227 | # bugs may cause a circular import on Python 2 228 | def configure_once(*args): 229 | activate_matplotlib(backend) 230 | configure_inline_support(ip, backend) 231 | ip.events.unregister("post_run_cell", configure_once) 232 | 233 | ip.events.register("post_run_cell", configure_once) 234 | 235 | 236 | _enable_matplotlib_integration() 237 | 238 | 239 | def _fetch_figure_metadata(fig): 240 | """Get some metadata to help with displaying a figure.""" 241 | # determine if a background is needed for legibility 242 | if _is_transparent(fig.get_facecolor()): 243 | # the background is transparent 244 | ticksLight = _is_light( 245 | [ 246 | label.get_color() 247 | for axes in fig.axes 248 | for axis in (axes.xaxis, axes.yaxis) 249 | for label in axis.get_ticklabels() 250 | ] 251 | ) 252 | if ticksLight.size and (ticksLight == ticksLight[0]).all(): 253 | # there are one or more tick labels, all with the same lightness 254 | return {"needs_background": "dark" if ticksLight[0] else "light"} 255 | 256 | return None 257 | 258 | 259 | def _is_light(color): 260 | """Determines if a color (or each of a sequence of colors) is light (as 261 | opposed to dark). Based on ITU BT.601 luminance formula (see 262 | https://stackoverflow.com/a/596241).""" 263 | rgbaArr = colors.to_rgba_array(color) 264 | return rgbaArr[:, :3].dot((0.299, 0.587, 0.114)) > 0.5 265 | 266 | 267 | def _is_transparent(color): 268 | """Determine transparency from alpha.""" 269 | rgba = colors.to_rgba(color) 270 | return rgba[3] < 0.5 271 | 272 | 273 | def set_matplotlib_formats(*formats, **kwargs): 274 | """Select figure formats for the inline backend. Optionally pass quality for JPEG. 275 | 276 | For example, this enables PNG and JPEG output with a JPEG quality of 90%:: 277 | 278 | In [1]: set_matplotlib_formats('png', 'jpeg', 279 | pil_kwargs={'quality': 90}) 280 | 281 | To set this in your notebook by `%config` magic:: 282 | 283 | In [1]: %config InlineBackend.figure_formats = {'png', 'jpeg'} 284 | %config InlineBackend.print_figure_kwargs = \\ 285 | {'pil_kwargs': {'quality' : 90}} 286 | 287 | To set this in your config files use the following:: 288 | 289 | c.InlineBackend.figure_formats = {'png', 'jpeg'} 290 | c.InlineBackend.print_figure_kwargs.update({ 291 | 'pil_kwargs': {'quality' : 90} 292 | }) 293 | 294 | Parameters 295 | ---------- 296 | *formats : strs 297 | One or more figure formats to enable: 'png', 'retina', 'jpeg', 'svg', 'pdf'. 298 | **kwargs 299 | Keyword args will be relayed to ``figure.canvas.print_figure``. 300 | 301 | In addition, see the docstrings of `plt.savefig()`, 302 | `matplotlib.figure.Figure.savefig()`, `PIL.Image.Image.save()` and 303 | :ref:`Pillow Image file formats `. 304 | """ 305 | # build kwargs, starting with InlineBackend config 306 | cfg = InlineBackend.instance() 307 | kw = {} 308 | kw.update(cfg.print_figure_kwargs) 309 | kw.update(**kwargs) 310 | shell = InteractiveShell.instance() 311 | select_figure_formats(shell, formats, **kw) 312 | 313 | 314 | def set_matplotlib_close(close=True): 315 | """Set whether the inline backend closes all figures automatically or not. 316 | 317 | By default, the inline backend used in the IPython Notebook will close all 318 | matplotlib figures automatically after each cell is run. This means that 319 | plots in different cells won't interfere. Sometimes, you may want to make 320 | a plot in one cell and then refine it in later cells. This can be accomplished 321 | by:: 322 | 323 | In [1]: set_matplotlib_close(False) 324 | 325 | To set this in your config files use the following:: 326 | 327 | c.InlineBackend.close_figures = False 328 | 329 | Parameters 330 | ---------- 331 | close : bool 332 | Should all matplotlib figures be automatically closed after each cell is 333 | run? 334 | """ 335 | cfg = InlineBackend.instance() 336 | cfg.close_figures = close 337 | -------------------------------------------------------------------------------- /tests/notebooks/config_InlineBackend.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "c235d5cb-9181-4579-855c-b7da77261bd7", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "#NBVAL_IGNORE_OUTPUT\n", 11 | "%matplotlib inline" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 2, 17 | "id": "e4221445-5518-4984-b731-aaf9840141d8", 18 | "metadata": {}, 19 | "outputs": [], 20 | "source": [ 21 | "%config InlineBackend.figure_formats = 'jpeg'\n", 22 | "%config InlineBackend.print_figure_kwargs = \\\n", 23 | " {'bbox_inches': None, \\\n", 24 | " 'pil_kwargs': {'quality' : 90, \\\n", 25 | " 'optimize': True}}\n", 26 | "\n", 27 | "import matplotlib.pyplot as plt\n", 28 | "from matplotlib_inline.backend_inline import set_matplotlib_formats\n", 29 | "from traitlets.config import get_config" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 3, 35 | "id": "fbec64f3-9f8e-435f-8a92-8d9ba7c0beb7", 36 | "metadata": {}, 37 | "outputs": [ 38 | { 39 | "name": "stdout", 40 | "output_type": "stream", 41 | "text": [ 42 | "InlineBackend(InlineBackendConfig) options\n", 43 | "----------------------------------------\n", 44 | "InlineBackend.close_figures=\n", 45 | " Close all figures at the end of each cell.\n", 46 | " When True, ensures that each cell starts with no active figures, but it\n", 47 | " also means that one must keep track of references in order to edit or\n", 48 | " redraw figures in subsequent cells. This mode is ideal for the notebook,\n", 49 | " where residual plots from other cells might be surprising.\n", 50 | " When False, one must call figure() to create new figures. This means\n", 51 | " that gcf() and getfigs() can reference figures created in other cells,\n", 52 | " and the active figure can continue to be edited with pylab/pyplot\n", 53 | " methods that reference the current active figure. This mode facilitates\n", 54 | " iterative editing of figures, and behaves most consistently with\n", 55 | " other matplotlib backends, but figure barriers between cells must\n", 56 | " be explicit.\n", 57 | " Current: True\n", 58 | "InlineBackend.figure_format=\n", 59 | " The figure format to enable (deprecated\n", 60 | " use `figure_formats` instead)\n", 61 | " Current: ''\n", 62 | "InlineBackend.figure_formats=...\n", 63 | " A set of figure formats to enable: 'png',\n", 64 | " 'retina', 'jpeg', 'svg', 'pdf'.\n", 65 | " Current: {'jpeg'}\n", 66 | "InlineBackend.print_figure_kwargs==...\n", 67 | " Extra kwargs to be passed to fig.canvas.print_figure.\n", 68 | " Logical examples include: bbox_inches, pil_kwargs, etc. In addition,\n", 69 | " see the docstrings of `set_matplotlib_formats`.\n", 70 | " Current: {'bbox_inches': None, 'pil_kwargs': {'quality': 90, 'optimize': True}}\n", 71 | "InlineBackend.rc==...\n", 72 | " Dict to manage matplotlib configuration defaults in the inline\n", 73 | " backend. As of v0.1.4 IPython/Jupyter do not override defaults out of\n", 74 | " the box, but third-party tools may use it to manage rc data. To change\n", 75 | " personal defaults for matplotlib, use matplotlib's configuration\n", 76 | " tools, or customize this class in your `ipython_config.py` file for\n", 77 | " IPython/Jupyter-specific usage.\n", 78 | " Current: {}\n" 79 | ] 80 | } 81 | ], 82 | "source": [ 83 | "%config InlineBackend" 84 | ] 85 | }, 86 | { 87 | "cell_type": "code", 88 | "execution_count": 4, 89 | "id": "0e5b8951-19af-4273-80ca-23b47476d637", 90 | "metadata": {}, 91 | "outputs": [ 92 | { 93 | "name": "stdout", 94 | "output_type": "stream", 95 | "text": [ 96 | "Help on function set_matplotlib_formats in module matplotlib_inline.backend_inline:\n", 97 | "\n", 98 | "set_matplotlib_formats(*formats, **kwargs)\n", 99 | " Select figure formats for the inline backend. Optionally pass quality for JPEG.\n", 100 | "\n", 101 | " For example, this enables PNG and JPEG output with a JPEG quality of 90%::\n", 102 | "\n", 103 | " In [1]: set_matplotlib_formats('png', 'jpeg',\n", 104 | " pil_kwargs={'quality': 90})\n", 105 | "\n", 106 | " To set this in your notebook by `%config` magic::\n", 107 | "\n", 108 | " In [1]: %config InlineBackend.figure_formats = {'png', 'jpeg'}\n", 109 | " %config InlineBackend.print_figure_kwargs = \\\n", 110 | " {'pil_kwargs': {'quality' : 90}}\n", 111 | "\n", 112 | " To set this in your config files use the following::\n", 113 | "\n", 114 | " c.InlineBackend.figure_formats = {'png', 'jpeg'}\n", 115 | " c.InlineBackend.print_figure_kwargs.update({\n", 116 | " 'pil_kwargs': {'quality' : 90}\n", 117 | " })\n", 118 | "\n", 119 | " Parameters\n", 120 | " ----------\n", 121 | " *formats : strs\n", 122 | " One or more figure formats to enable: 'png', 'retina', 'jpeg', 'svg', 'pdf'.\n", 123 | " **kwargs\n", 124 | " Keyword args will be relayed to ``figure.canvas.print_figure``.\n", 125 | "\n", 126 | " In addition, see the docstrings of `plt.savefig()`,\n", 127 | " `matplotlib.figure.Figure.savefig()`, `PIL.Image.Image.save()` and\n", 128 | " :ref:`Pillow Image file formats `.\n", 129 | "\n" 130 | ] 131 | } 132 | ], 133 | "source": [ 134 | "#NBVAL_IGNORE_OUTPUT\n", 135 | "help(set_matplotlib_formats)" 136 | ] 137 | }, 138 | { 139 | "cell_type": "code", 140 | "execution_count": 5, 141 | "id": "89f6de76-9d6b-43c0-b790-e6b63c4c4159", 142 | "metadata": {}, 143 | "outputs": [ 144 | { 145 | "data": { 146 | "image/jpeg": "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", 147 | "text/plain": [ 148 | "
" 149 | ] 150 | }, 151 | "metadata": {}, 152 | "output_type": "display_data" 153 | } 154 | ], 155 | "source": [ 156 | "fig, ax = plt.subplots()\n", 157 | "ax.plot([1, 3, 2, 4])\n", 158 | "ax.plot([2.5, 0.5, 3.5, 1.5])\n", 159 | "None" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": 6, 165 | "id": "1fc45e92-07c2-49fa-9b3e-2c30e865e5e8", 166 | "metadata": {}, 167 | "outputs": [ 168 | { 169 | "data": { 170 | "image/jpeg": "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", 171 | "text/plain": [ 172 | "
" 173 | ] 174 | }, 175 | "execution_count": 6, 176 | "metadata": {}, 177 | "output_type": "execute_result" 178 | } 179 | ], 180 | "source": [ 181 | "set_matplotlib_formats('jpeg', bbox_inches='tight',\n", 182 | " pil_kwargs={'quality': 25})\n", 183 | "fig" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "execution_count": 7, 189 | "id": "df3590be-d87d-4c37-8f73-c652eec9a640", 190 | "metadata": {}, 191 | "outputs": [ 192 | { 193 | "data": { 194 | "text/plain": [ 195 | "{'IPKernelApp': {'connection_file': '/Users/leo/Library/Jupyter/runtime/kernel-66b85c75-26bd-4e95-91ec-25b40babd080.json'},\n", 196 | " 'InlineBackend': {'figure_formats': {'jpeg', 'png'},\n", 197 | " 'print_figure_kwargs': {'bbox_inches': None, 'pil_kwargs': {'quality': 90}}}}" 198 | ] 199 | }, 200 | "execution_count": 7, 201 | "metadata": {}, 202 | "output_type": "execute_result" 203 | } 204 | ], 205 | "source": [ 206 | "#NBVAL_IGNORE_OUTPUT\n", 207 | "c = get_config()\n", 208 | "c.InlineBackend.figure_formats = {'png', 'jpeg'}\n", 209 | "c.InlineBackend.print_figure_kwargs.update({\n", 210 | " 'pil_kwargs': {'quality' : 90}\n", 211 | " })\n", 212 | "c" 213 | ] 214 | } 215 | ], 216 | "metadata": { 217 | "kernelspec": { 218 | "display_name": "Python 3 (ipykernel)", 219 | "language": "python", 220 | "name": "python3" 221 | }, 222 | "language_info": { 223 | "codemirror_mode": { 224 | "name": "ipython", 225 | "version": 3 226 | }, 227 | "file_extension": ".py", 228 | "mimetype": "text/x-python", 229 | "name": "python", 230 | "nbconvert_exporter": "python", 231 | "pygments_lexer": "ipython3", 232 | "version": "3.14.0" 233 | } 234 | }, 235 | "nbformat": 4, 236 | "nbformat_minor": 5 237 | } 238 | -------------------------------------------------------------------------------- /tests/notebooks/mpl_inline.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "e10dd749-bc4c-4f68-a904-a3d0856bd577", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import matplotlib as mpl\n", 11 | "import matplotlib.pyplot as plt" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 2, 17 | "id": "8aa8d0e5-7660-4192-882c-ba71923ad6e6", 18 | "metadata": {}, 19 | "outputs": [ 20 | { 21 | "data": { 22 | "text/plain": [ 23 | "'module://matplotlib_inline.backend_inline'" 24 | ] 25 | }, 26 | "execution_count": 2, 27 | "metadata": {}, 28 | "output_type": "execute_result" 29 | } 30 | ], 31 | "source": [ 32 | "mpl.get_backend()" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": 3, 38 | "id": "0771b997-11d1-4bb4-9fe6-48dd8f40b1e4", 39 | "metadata": {}, 40 | "outputs": [ 41 | { 42 | "data": { 43 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAggAAAGKCAYAAABpbLktAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAXdRJREFUeJzt3Xd4U2X/x/F30pHuQtmj7L1pWbKXuFBko4B7AIogihsfN05kKMOtDJmigou9BaRl703ZlNLdpk1yfn/cKD9FpJQkd8b3dV29uH1oz/k8tTafJOfcX5NhGAZCCCGEEP+PWXcAIYQQQngeKQhCCCGEuIwUBCGEEEJcRgqCEEIIIS4jBUEIIYQQl5GCIIQQQojLSEEQQgghxGWkIAghhBDiMoGF/UKHw8HJkyeJjIzEZDI5M5MQQgghXMQwDDIyMihbtixm85VfJyh0QTh58iSxsbGF/XIhhBBCaJSUlET58uWv+PeFLgiRkZF/nSAqKqqwhxFCCCGEG6WnpxMbG/vX4/iVFLog/Pm2QlRUlBQEIYQQwstc7fIAuUhRCCGEEJeRgiCEEEKIy0hBEEIIIcRlpCAIIYQQ4jJSEIQQQghxGSkIQgghhLiMFAQhhBBCXEYKghBCCCEuIwVBCCGEEJeRgiCEEEKIy0hBEEIIIcRlpCAIIYQQHijf7tB6/gIXBKvVSnp6+t8+hBBCCOF88zcf586P15KUkq0tQ4ELwujRo4mOjv7rIzY21pW5hBBCCL+0+1Q6z3+3nZ0n0/l+8wltOUyGYRgF+USr1YrVav3rn/+cJ52WlibjnoUQQggnSMvJ546P1nD0fDZta5Tgy/uaEmD+77HM1yo9PZ3o6OirPn4HFvSAFosFi8XilHBCCCGE+DuHw2DErC0cPZ9N+aKhjOvbyOnl4FrIRYpCCCGEB/ho+QGW7jlLcKCZyQPiKRoerDWPFAQhhBBCsxV7z/Lhkn0AvHFnPeqVi9acSAqCEEIIoVVSSjbDZm7BMOCuZhXo08QzbgKQgiCEEEJokptvZ9C0BNJy8mlYPppX7qijO9JfpCAIIYQQGhiGwUvf72DnyXRiwoOZNCAeS2CA7lh/kYIghBBCaDBj4zHmJhzHbIIJdzWmbJFQ3ZH+RgqCEEII4Wabj13glR93AjDyplq0qlZcc6LLSUEQQggh3Oh8ppUh0xPJtxvcVLcUg9pV0R3pX0lBEEIIIdzEZncw9NvNnErLpUrxcN7v3RCTSd9mSP9FCoIQQgjhJu8v2se6g+cJCw5gysB4IkOCdEe6IikIQgghhBv8uuMUk1ceBODdXg2oXipSc6L/JgVBCCGEcLEDZzN5es42AB5qXZmuDcpqTnR1UhCEEEIIF8qy2hg0LYFMq41mlWN49pZauiMViBQEIYQQwkUMw+CZuds4cDaTUlEWPr47jqAA73jo9Y6UQgghhBf6fM1hftp+iqAAExP7x1Ei0qI7UoFJQRBCCCFc4PeD5xn9yx4ARnWtQ3zFGM2Jro0UBCGEEMLJTqflMvTbROwOg+6NyzGwRUXdka6ZFAQhhBDCifJsDoZMTyA5M49apSN5q3t9j90M6b9IQRBCCCGc6I2fdpF4LJXIkECmDIwnNNhzJjReCykIQgghhJN8l3icb34/CsDYvo2oWCxcc6LCk4IghBBCOMGuk+m8MH87AE90qk6n2qU0J7o+UhCEEEKI65SWnc+gaQnk5jtoV6MEwzpV1x3puklBEEIIIa6Dw2Hw5OwtHEvJpnzRUMb1a0SA2fsuSvwnKQhCCCHEdZiw7ADL9pzFEmhm8oB4ioQF647kFFIQhBBCiEJavvcsY5fuA+CNO+tRr1y05kTOIwVBCCGEKISklGyGz9yCYUD/5hXo3SRWdySnkoIghBBCXKPcfDuPTk0gLSefRrFFePn2OrojOZ0UBCGEEOIaGIbBi/N3sOtUOsXCg5k0IA5LoHduhvRfpCAIIYQQ12D6hmPMSzyO2QQT7mpMmehQ3ZFcQgqCEEIIUUCbj13g1QU7AXjm5lq0rFZccyLXkYIghBBCFEByppUh0xPJtxvcXLc0j7atojuSS0lBEEIIIa7CZncwdMZmTqXlUrVEOO/1buCVExqvhRQEIYQQ4ireW7SX3w+dJzw4gCkD44kMCdIdyeWkIAghhBD/4Zftp5iy8hAA7/ZqSLWSkZoTuYcUBCGEEOIKDpzN5Ok5WwF4uE1lbmtQRnMi95GCIIQQQvyLTKuNQdMSyMqz06JKDM/eXEt3JLeSgiCEEEL8g2EYPDN3KwfOZlI6KoQJd8URGOBfD5n+9f9WCCGEKIDPVh/m5+2nCQow8XH/OEpEWnRHcjspCEIIIcT/8/vB87z96x4AXu5ah/iKRTUn0kMKghBCCHHRqbQcHp+RiN1h0KNxOQa0qKg7kjZSEIQQQgggz+ZgyPREzmflUbtMFG92r+/zmyH9FykIQgghBPD6wl1sPpZKVEggkwfEERrsexMar4UUBCGEEH5vXsJxpq4/CsC4fo2pWCxccyL9pCAIIYTwaztPpvHC/O0ADOtUnQ61SmpO5BkCC/qJVqsVq9X61z+np6e7JJAQQniVtePAZoW2I8GP36/2VmnZ+QyaloDV5qB9zRIM61RddySPUeCCMHr0aF599VVXZhFCCO9yeDUsflmtA4Kh9XCtccS1cTgMhs/aTFJKDrExoYzt2wizWUrenwr8FsPzzz9PWlraXx9JSUmuzCWEEJ7NMGDZ65f+eemrcGilvjzimo1ftp/le89hCTQzqX88RcKCdUfyKAUuCBaLhaioqL99CCGE39q/CJI2QGAo1OoKhgPm3g9px3UnEwWwfM9Zxi3dD8Bb3etTr1y05kSeRy5SFEKIa+VwwNKLrx40fwR6fgal60P2eZh9j7omQXisY+ezGTZzM4YBA1pUoGd8ed2RPJIUBCGEuFa7vocz28ESBa2GQ1Ao9J0GIUXgRAL88qzmgOJKcvLsPDotgfRcG41iizCqax3dkTyWFAQhhLgWdhssf1Otb3gcwmLUumgl9UoCJkj4EjZP05VQXIFhGLz4/XZ2n0qnWHgwkwbEYQn0782Q/osUBCGEuBbbZsL5AxBWDG4Y8ve/q34jtH9erReOgJNb3B5PXNm0Dcf4LvEEZhNMuLsxZaJDdUfyaFIQhBCioGxWWPG2Wrd+EiyRl39O25FQ/SawW2H2QMhOcW9G8a8Sj13gtQU7AXjullq0rFpccyLPJwVBCCEKKuErSEuCyDLQ9KF//xyzGXpMUW85pB6DeQ+Bw+7OlOIfzmVYGTItkXy7wS31SvNwmyq6I3kFKQhCCFEQeVmw6n21bjtSXZh4JaFF1UWLgaFwcOmlVx2E29nsDoZ+m8jp9Fyqlgjnvd4N/XpC47WQgiCEEAWxYQpknVWvDDQeePXPL10fbh+n1qvehb2/ujSe+Hfv/baX9YdSCA8OYMrAeCIsBd5A2O9JQRBCiKvJSVUzFwDavwCBBdxxr2FfaPqwWn/3CJw/6JJ44t/9vP0UU1YdAuC93g2pVvJfrhkRVyQFQQghrub3jyA3FUrUgvq9ru1rb3oLyjcDa5raRCkv2yURxd8dOJvByDlbAXi0bRVurV9GcyLvIwVBCCH+S+Y5+H2iWnd8CczXeN98YDD0+RrCS8CZHbBwuJrjIFwm02rj0akJZOXZaVElhpE31dQdyStJQRBCiP+y5kPIz4KyjdXMhcKIKgu9vwJTAGybBRs/dWpEcYlhGIycs5WD57IoHRXCR3fHERggD3WFId81IYS4krQT8Mdnat1xFFzP1e+VWsONr6n1b8/DsQ3Xn09c5tPVh/hlx2mCAkxMHBBH8QiL7kheSwqCEEJcyap31YZHFVtD1Y7Xf7wbHoO63cFhgzn3QsaZ6z+m+Mu6g8m8/cseAF6+vS5xFYpqTuTdpCAIIcS/OX8QEqeqdafrfPXgTyYT3PERFK8JGafUeGh7/vUfV3AqLYehMzbjMKBnXHkGNK+gO5LXk4IghBD/ZsVoMOxQvQtUaOG841oioN90CI6Eo2thySvOO7afstrsDJ6WyPmsPOqUieLN7vVkMyQnkIIghBD/dGYnbJ+r1h1fcv7xi1eH7pPU+vePYMc855/Dj7y+cBdbklKJDg1i8oB4QoJkQqMzSEEQQoh/WvYmYECdO6FMQ9eco/bt0Gq4Wv8wFM7uds15fNzchONMW38MkwnG9mtEhWJhuiP5DCkIQgjx/x1PgL0/gckMHV507bk6joLKbdVtlLMGQG66a8/nY3acSOPF+dsBGNapOh1qltScyLdIQRBCiP9v2cVbERveBSVquPZcAYHQ60uIKgfnD8D3g2UTpQJKzc5j8PQErDYHHWqW4ImO1XVH8jlSEIQQ4k+HV8GhFWAOgnbPuuec4cWhz1QICIY9C2HtWPec14s5HAbDZ20hKSWHCjFhjO3bGLNZLkp0NikIQggB6pn70tfVOv4+KFrRfecuHw+3vKvWS19TJUVc0bil+1mx9xyWQDOTB8QTHRakO5JPkoIghBAA+36D4xshMBTaPu3+88ffB40GgOGAuQ9AapL7M3iBZXvOMG7pfgDe6l6fOmWjNCfyXVIQhBDC4YBlb6h180chsrT7M5hMcNv76q6J7PNq8qPN6v4cHuzo+SyGz9wCwMAWFekZX15vIB8nBUEIIXbNhzPbwRIFrYbpyxEUqq5HCC0KJxPhl2f0ZfEwOXl2Bk1LJD3XRuMKRRjVtY7uSD5PCoIQwr/ZbbD8LbVuORTCYvTmKVoRen4GmCDhq0vbPfsxwzB4cf52dp9Kp3hEMJP6xxMcKA9fribfYSGEf9v6rbrFMKwYtBisO41SrfOlPRh+egpObtabR7Np64/y3eYTBJhNTLgrjtLRIboj+QUpCEII/2Wzwsp31Lr1CLBE6s3z/7V5CmrcrKZJzroHslN0J9Ii4egFXlu4C4Dnbq7FDVWLaU7kP6QgCCH8V8JXkJYEkWWh6YO60/yd2Qzdp0DRypB2DOY9BA677lRudS7DypDpCeTbDW6rX4aH2lTWHcmvSEEQQvinvCxY9Z5atxupLhD0NKFFoO80devlwaVqwqSfsNkdPD4jkTPpVqqVjOCdXg1kQqObSUEQQvinDZMh6xwUrQSNB+pOc2Wl68Ed49V61Xuw9xe9edzknV/3sOFwChGWQCYPiCfCEqg7kt+RgiCE8D85qbB2nFq3fwECPHwnvgZ9oNmjav3do3D+oN48LvbTtlN8uvowAO/3bkC1khGaE/knKQhCCP+zbgLkpkGJ2lC/l+40BdPlDYhtDtY0mDVQvUXigw6czWDk3K0APNquCjfXK6M5kf+SgiCE8C+Z52D9JLXu+BKYA/TmKajAYOj9NYSXhLM7YcEwn5v8mJGbzyNTE8jOs3NDlWKM7FJTdyS/JgVBCOFf1oyB/CwoGwe1btOd5tpElYHeX4EpALbPgY2f6E7kNIZhMHLONg6dy6JMdAgT7m5MYIA8ROkk330hhP9IOw5/fKbWnUap+QfeplIr6HJx6uRvL8Cx9XrzOMmUVYf4dedpggPMTOwfR/EIi+5Ifk8KghDCf6x8F+x5ULE1VOmgO03htRgCdXuAwwaz74WMM7oTXZd1B5J599c9APzvjjo0rlBUcyIBUhCEEP7i/EHYPE2tvfXVgz+ZTHDHBChRCzJPw5z7wJ6vO1WhnEzNYei3m3EY0Cu+PHc3q6A7krhICoIQwj+sGA2GHarfBBVa6E5z/SwRahOl4Eg4tg4Wv6w70TWz2uwMnp7I+aw86paN4o0768lmSB5ECoIQwved3gHb56p1x5f0ZnGm4tWh+8U7MtZPvPT/0Uu8tmAXW5NSiQ4NYvKAeEKCvOSOEj8hBUEI4fuWvwkYULc7lGmgO41z1b4dWj+p1j8OhbO79eYpoDmbkpi+4RgmE4zr14jYmDDdkcQ/SEEQQvi245tg789gMqtdE31Rx1FQpT3kZ8PM/moTKA+240QaL36/A4AnO9egfc2SmhOJfyMFQQjh25a+pv5seDeUqKE3i6uYA6Dn5xBVHlIOwvzB4HDoTvWvUrPzGDQtgTybg461SvJ4h2q6I4krkIIghPBdh1bC4ZVgDoL2z+pO41rhxaHvNxAQDHt/grUf6k50GbvDYNjMLRy/kEOFmDA+7NMIs1kuSvRUBS4IVquV9PT0v30I4S0uZOUx6vsdzN6UhMPhW9vTiiswDFh2cUOhJvdDET+4fa5cPNx6cYT1sjfg4DK9ef5h3NL9rNx3jpAgM5MHxBMd5uFDsvxcgQvC6NGjiY6O/usjNjbWlbmEcBq7w+DxbxOZuv4oz8zdxl2frufQuUzdsYSr7fsVjv8BgaHQ5mndadwn7l5oPAAMB8x9EFKTdCcCYOnuM4xfuh+A0T3qU6dslOZE4moKXBCef/550tLS/vpISvKMHzohruaDRXtZe+A8oUEBhAYFsOFwCjePW83Hyw+Qb/fM92nFdXI41DNogOaPQmQpvXncyWSCWz+AMo0gJwVmD4T8XK2RjiRnMXzWFgDuvaEi3RuX15pHFEyBC4LFYiEqKupvH0J4ut92nmbiioMAvNurAYuebEvbGiXIszl477e93D5hDVuSUvWGFM638zs4swMsUdBqmO407hcUAn2+gdCicHIz/PKMtig5eXYGTUsgI9dGXIUivHhbHW1ZxLWRixSFzzp0LpOnZqu58g+2rsztDcsSGxPG1/c35cO+DSkaFsSe0xl0n7iWVxfsJMtq05xYOIXdBsvfUuuWT0BYjN48uhStqO5swASJX0PiN26PYBgGL8zfzp7TGRSPCGZi/3iCA+Vhx1vIvynhk7KsNh6dmkCm1UazyjE8d0utv/7OZDLRvXF5loxoR/fG5TAM+HLtEbp8uIrle89qTC2cYusMdatfWDFoMUh3Gr2qdYKOL6r1T0/DiUS3nn7q+qPM33yCALOJj+6Oo3R0iFvPL66PFAThcwzD4Nl529h/NpOSkRY+ursxQf8yV75YhIUP+zbi6weaUa5IKCdSc7j/yz8YNnMz5zOtGpKL62azwop31LrNU2CJ1JvHE7R+CmrcAnYrzL4Hss675bQJR1N4bcEuAJ6/pRYtqhRzy3mF80hBED7ni7VHWLjtFIFmExP7x1Ey8r+ftbSrUYJFT7blwdaVMZvghy0n6TxmJfMSjmMYckukV9n0JaQfh6hy0ORB3Wk8g9kM3SdDTBVIS4J5D4LD7tJTns3IZcj0RGwOg9salOHB1pVdej7hGlIQhE/ZcOg8b/2s9qJ/6bbaNKlUsPefwy2BjOpah/lDWlG7TBQXsvN5as5W7vliI8fOZ7sysnCWvCxY/b5atx2pLtQTSmgRNfkxMBQOLb90jYYL5NsdPD5jM2fSrVQrGcG7PRvIhEYvJQVB+Iwz6bk8NmMzdofBnY3Kcm/LStd8jIaxRfjx8VY8c3NNLIFmVu9PpsvYlXyy6iA2uSXSs22YDFnnoGhltQ+A+LtSdeGOCWq9+n3Y85NLTvPOL3vYeDiFCEsgUwbGE24JdMl5hOtJQRA+Ic/mYMj0RJIzrdQqHclbPeoX+llLUICZIe2r8evwttxQpRi5+Q7e+nkPd05cy44Tnj0Ex2/lXIC149S6wwsQIDv0/asGvaH5xQs35w+C8wedeviF207y2ZrDALzfuyFVS0Q49fjCvaQgCJ/w1s+7STh6gciQQCYPiCcs+PqftVQuHs6Mh5vzbs8GRIUEsuNEOt0+XsvoX3aTk+fa93DFNVo3QU0wLFkH6vXUncaz3fg6xLYAazrMGqDemnGC/WcyeGbuNgAGtavKzfVKO+W4Qh8pCMLrfb/5BF+tOwLAh30aUal4uNOObTKZ6NM0liVPteO2BmWwOwymrDzEzeNWsfZAstPOI65D5llYP1mtO76kJhuKKwsMhj5fQ0QpOLsLfnxCza24Dhm5+Tw6NYHsPDutqhXj6S4+OjXTz0hBEF5t96l0nvtOPWsZ2rEaneu4ZkvdkpEhfHx3HJ/d04Qy0SEcPZ9N/882MHLOVlKz81xyTlFAq8dAfpYaVFTzVt1pvENkaej9FZgDYcdc2DCl0IcyDIOn52zlUHIWZaJDGN+vMYH/clux8D7yb1F4rbScfAZNSyA330HbGiUY3tn1z1o61ynFoifbcs8NFTGZYE7CcTqPWcmPW0/KLZE6pCbBps/VuuMoNYdAFEzFltDl4ryKRS/C0d8LdZjJKw/x284zBAeYmTQgnmIRFieGFDpJQRBeyeEwGDFrC0fPZ1O+aCjj+jYiwE1z5SNDgnitWz3mDrqB6iUjSM7M44lvN/Pg15s4kZrjlgziolXvgj0PKrWBKu11p/E+zQepazYcNphzL2ScvqYvX3sgmfd+2wPAK3fUpVFsEReEFLpIQRBe6ePlB1i65yzBgWqufNHwYLdniK8Yw8InWvNk5xoEB5hZtucsXcas5Ku1h7E75NUElzt/EDZPV2t59aBwTCa4fTyUqA2ZZ2DOfWDPL9CXnkzNYei3m3EY0Du+PHc1i3VtVuF2UhCE11m57xxjluwD4I0761GvXLS2LJbAAIZ1rs7Pw1rTpGJRsvLsvLJgF70mr2Pv6QxtufzC8rfAsEONm6FCc91pvJclQm2iZImCY7/DolFX/RKrzc7g6YmkZOVRr1wUr99ZTzZD8kFSEIRXSUrJZtjMzRgG3NWsAn2aeMazlmolI5n96A28fmc9IiyBbD6WStcJqxmzaC+5+XJLpNOd3qEurgPo8KLeLL6geDW1HTPAhkmwfe5/fvqrC3axNSmVImFBTOofT0iQ3Dnii6QgCK+Rm29n8PQEUrPzaVg+mlfu8Ky58maziYEtKrJ4RFturFOKfLvB+GUHuHX8ajYeTtEdz7csf1P9WbcHlGmgN4uvqHWbGnAF8ONQOLPzXz9t9qYkZmw4hskE4/o1JjYmzI0hhTtJQRBewTAMRn2/gx0n0okJD2bSgHgsgZ75rKVMdCifDIxnUv84SkRaOHQuiz5TfueF+dtJzy3Y+7viPyT9AXt/BpNZ7ZoonKfDi+piz/xstYlS7t93Dt1xIo2Xvt8BwIjONWhXo4SGkMJdpCAIr/DtxiTmJBzHbIIJdzWmbJFQ3ZH+k8lk4pb6ZVjyZLu/Lt6aseEYnT9Yya87ru1KcfEPy15Tfza6G4pX15vF15gDoOcXEB0LKYdg/mBwqBkkF7LyGDQtgTybg861S/JYh2qawwpXk4IgPN6WpFRe+VG93Dnyplq0qlZcc6KCiw4LYnSPBsx8pAWVi4dzNsPKoGkJDJqawJn0XN3xvM+hFXB4FQQEQ7tndafxTeHFoM836nu89ydYMwa7w2DYrC0cv5BDxWJhfNCnEWY33VYs9JGCIDza+UwrQ6YlkGd3cFPdUgxqV0V3pEJpUaUYvwxrw2MdqhJoNvHrztN0HrOSGRuO4ZBbIgvGMGDp62odfz8UqaA3jy8rFwe3XhydvewNvp/7Dav2nSMkSN1WHB0qw7D8gRQE4bFsdgdDv93MybRcqhQP5/3eDb36VqqQoABG3lSLBUNb07B8NBm5Nl6Yv51+n6zn4LlM3fE8375f4cQmCAq7dDGdcJ34eyHuHsCgw84XKMc53u7RgNplonQnE24iBUF4rPcX7WPdwfOEBQcwZWA8kSG+8ayldpkovhvSilFd6xAWHMDGIyncMnY1E5buJ8/m0B3PMzkcl149aP4oRLpm5ob4u6PNXmEnVYgxZTInZhJ31iumO5JwIykIwiP9uuMUk1eqWfXv9mpA9VKRmhM5V4DZxIOtK7Poyba0r1mCPLuDDxbv4/YJa0g8dkF3PM+z8zs4uxMs0dDyCd1p/EJOnp1HZ+7kkdxhpJuiKJu9B34ZqTuWcCMpCMLjHDyXydNz1ITGh1pXpmuDspoTuU75omF8eV9TxvVrREx4MHvPZNBz0jpe+XEnmVab7niewZ5/ad+DVkMhLEZvHj9gGAbPf7eNPaczsEaUx97jM8AEid9Awte64wk3kYIgPEqW1cagqQlkWm00qxzDs7fU0h3J5UwmE90alWPJiHb0iCuHYcBX647QZcxKlu05ozuefltmqFvuwopD88G60/iFb34/yvdbThJgNvHx3Y0pWv8m6PiS+sufn4YTCXoDCreQgiA8hmEYPDNvG/vPZlIqysLHd8cR5Edz5WPCgxnTpxFTH2xGbEwoJ9NyeeCrTQz9djPJmVbd8fTIz4WV76p1m6fU3ADhUpuOpPD6wl0AvHBrbZpXuXjdQesRUPM2NT1z9r2QdV5jSuEO/vPbV3i8z9cc5qdtpwgKMDHx4i6E/qhN9RL8NrwtD7epjNkEC7aepPOYlczZlIRh+NktkQlfQvpxiCoHTR7Qncbnnc3IZcj0RGwOg64NyvBAq0qX/tJshu6TIKYKpCXBvAfAIXNGfJkUBOER1h86z+hf1Fz5UV3rEF/Rv99nDgsO5MXb6vDDY62pUyaK1Ox8Rs7dxoDPN3D0fJbueO5hzYRVF+/Fb/cMBIXozePj8u0OHp+xmbMZVmqUiuCdng0uv604JBr6Tle3mh5acenaEOGTpCAI7U6n5fL4jETsDoPujcsxsEVF3ZE8Rv3y0fzweCueu6UWlkAzaw+c56axq5iy8iA2u4/fErlhMmQnq2esjfrrTuPz3v5lDxsPpxBhCWTygHjCLYH//oml6sAdE9R69Qew5yf3hRRuJQVBaJVnczBkegLJmXnUKh3JW93re/VmSK4QFGBmULuq/Da8LS2rFiM338HoX/bQ7eO17DiRdvUDeKOcC7B2vFq3fwECfGMPDE+1YOtJPl9zGIAP+jSkSomrXOtRv9elC0bnD4LkAy5OKHSQgiC0evOnXSQeSyUyJJApA+MJDfbMCY2eoFLxcKY/1Jz3ejUgOjSInSfT6fbxWt76eTc5eT72XvC6CWBNg5J1oV5P3Wl82r4zGTw7T91WPKR9VW6qW7pgX9jldahwA1jT1eRHq+wG6mukIAht5m8+zte/HwVgbN9GVCwWrjmR5zOZTPRuEsuSEe3o2qAMdofBJ6sOcdPYVazZn6w7nnNknoX1k9S644vq4jjhEum5+QyamkB2np3W1YrzVJeaBf/igCDo/RVElIJzu+HHoWpehvAZ8l+e0GLXyXSe/247AE90qk6n2rJ17rUoEWnho7vj+PzeJpSJDuFYSjYDPt/AU7O3ciErT3e867P6A8jPhnLxUPNW3Wl8lmEYPD17K4eSsygbHcK4fo0IuNYJjZGloffXYA5Uu13+WeyET5CCINwuLTufQdMSyM130K5GCYZ1qq47ktfqVLsUi0e0476WlTCZYF7icTqPWckPW0545y2RqUmw6Qu17vQyyPUoLjNp5UEW7TpDcICZSQPiKRZRyNuKK94AXS7ezbDoJTi6znkhhVZSEIRbORwGT87ewrGUbMoXDS3csxbxNxGWQF65oy7zBrekRqkIzmflMWzmFh746g9OpObojndtVr6jNuKp1AaqtNedxmet2Z/M+7/tBeDVbnVpGFvk+g7Y/FGo3xsMO8y5DzJOX3dGoZ8UBOFWHy0/wLI9Z7EEqrnyRcKCdUfyGXEVirJwaBueurEGwQFmlu89x41jVvLFmsPYHV7wakLyAbWtMqhXD4RLnEjN4YmZm3EY0LdJLHc1q3D9BzWZ4PZxULIOZJ5ROy3avPytLiEFQbjP8r1n+XDJPgDeuLMe9cpFa07ke4IDzQztVJ2fh7WhWaUYsvPsvLZwFz0mrWPP6XTd8f7birfUM9AaN0NsM91pfFJuvp3B0xJIycqjfrloXu1W13kHDw6HvtPAEgVJ62HxKOcdW2ghBUG4RVJKNsNnbsEwoH/zCvRuEqs7kk+rVjKCmY+04M3u9Yi0BLI1KZWu49fw/m97yc33wFsiT2+HHfPU+s+hQMLpXl2wi23H0ygSFsTE/nGEBDn5tuJiVaH7FLXeMBm2zXHu8YVbSUEQLpebb+fRqQmk5eTTMLYIL99eR3ckv2A2m+jfvCKLR7TjprqlsDkMPlp+gFvHrWb9IQ8btLPs4kVu9XpC6fp6s/io2X8k8e3GY5hMML5fY2Jjwlxzolq3Qpun1frHoXB6h2vOI1xOCoJwKcMweHH+DnadSqdYeDCT+sdhCZTNkNypdHQIUwY2YfKAOEpGWjiUnEW/T9bz/HfbScvJ1x0Pkv6Afb+AKUDtmiicbvvxNF76QT1QP3VjDdrWKOHaE3Z4Aap2BFsOzB4IOamuPZ9wCSkIwqVmbDzGvMTjmE0w4a7GlC0SqjuS37q5XhkWj2jH3c3VRWnfbjzGjWNW8uuOU3qDLXtN/dnobiheTW8WH3QhK49B0xLIsznoXLsUQ9q74XtsDoCen0N0BUg5pLZjdvj47BAfJAVBuMzmYxd45cedADxzcy1aViuuOZGIDg3ire71mfVIC6qUCOdshpVB0xJ55JtNnE7LdX+gQyvg8CoICIZ2z7r//D7O7jB4YuZmTqTmUKlYGB/0aYjZXbcVh8VAn68hwKJeIVrzgXvOK5xGCoJwieRMK0OmJ5JvN7i5bmkebVtFdyTx/zSvUoyfn2jD0I7VCDSbWLTrDDeOWcm09UdxuOuWSMOApRdfPWjyABSRC1edbeySfazen0xoUACTB8YTHermoVfl4uC2iyO7l70JB5a49/ziunhmQbB7wPuiotBsdgdDZ2zmVFouVUqE817vf5krL7QLCQrgqS41WfhEaxrFFiHDauOl73fQ95PfOXA2w/UB9v4CJxIgKAzaPOX68/mZxbvOMGGZmrL4ds/61CodpSdI3D0Qdy9gwLyH4MJRPTnENStwQbBaraSnp//twyX2L4YJ8XD+oGuOL1zuvUV7+f3QecKCA5gyIJ7IEBnV68lqlY5i3uCW/O/2OoQFB/DHkQvcOm4N45fuJ8/moveNHQ5Y9oZaNx8EESVdcx4/dTg5ixGztgBwX8tKdGtUTm+gW96Fso3VGO/ZAyFfw9tZ4poVuCCMHj2a6Ojovz5iY13wcqBhqEEtqUdh1kDIy3b+OYRL/bL9FFNWHgLgvV4NqV4qUnMiURABZhP3t6rM4hHt6FCzBHl2B2MW76PrhNUkHL3g/BPu/A7O7gRLNLR6wvnH92PZeTYGTU0gw2qjScWivHhbbd2RICgE+kyF0Bg4tRV+fkomP3qBAheE559/nrS0tL8+kpKSnJ/GZIJeX0J4SfXLY8Ew+SHyIgfOZvL0nK0APNymMrc1KKM5kbhW5YqE8sV9TRl/V2OKhQez70wmvSav438/7CDTanPOSez5sPzivgethkJoUeccV2AYBs9/t529ZzIoEWlhYv84ggI85J3kIrHQ6wswmWHzNEj8WncicRUF/smxWCxERUX97cMlospA7y/VPdHbZ8PGT11zHuFUmVYbg6YlkJVnp0WVGJ69uZbuSKKQTCYTdzQsy5IR7egVXx7DgK9/P8qNY1aydPeZ6z/Blunq1rew4tB88PUfT/zl63VH+GHLSQLNJj6+O46SUSG6I/1d1Q7Q8eIWzD+PhOMJevOI/+Qh1fIfKrWGLq+r9W/Pw7H1evOI/2QYBs/M3cqBs5mUirIw4a44Aj3lWYsotKLhwbzfuyHTHmxOhZgwTqXl8uDXm3hsRiLnMqyFO2h+Lqx8V63bPg2WCOcF9nN/HEnhjZ92A/DCrbVpVjlGc6IraP0k1OqqpnbOvgeyknUnElfgub/FWwyBut3BYVOTwTKc8MxFuMRnqw/z8/bTBAWYmNg/nhKRhZwrLzxS6+rF+W14Wx5tW4UAs4mftp2i85iVzN6UhHGtbwFu+gLST0BUOYi/3zWB/dDZ9FyGTE/E5jC4vWFZ7m9VSXekKzOZ4M6JUKwapB+HuQ+AwwPngwgPLggmE9zxEZSoBZmnYe79cvujB/r94Hne/nUPAC93rUN8RXk/2ReFBgfw/K21+eGxVtQtG0VaTj7PzN1G/882cCQ5q2AHsWaqi5BBbYoU5GEvf3upfLuDx2ds5lyGlZqlInmnZ33Pv604JFpNfgwKg8MrYdnruhOJf+G5BQHUy499p0FwJBxdC4v/pzuR+H9OpeUw9NtE7A6DHo3LMaBFRd2RhIvVKxfND4+14oVbaxESZGbdwfPcNHYVk1YcJN9+lVsiN0yC7GSIqaK2VRZOMfrnPWw8kkKkJZBJA+IICw7UHalgStaGbh+p9ZoPYfcCvXnEZTy7IAAUrw7dJ6n1+o8vjYQVWuXZHAyZnkhyZh61y0TxZncveNYinCIwwMwjbauyaHg7WlcrjtXm4J1f99Dto7VsP57271+UcwHWTlDrDi9CgOyN4Qw/bj3JF2sPA/BBn4ZUKeFl13TU6wktHlPr+YMheb/ePOJvPL8gANS+XV3YAvDDUDi7W28ewesLd7H5WCpRIYFMHhBHaLBMaPQ3FYqFMfXBZnzQuyFFwoLYdSqdbh+v4Y2Fu8jO+8ctkWvHgzUNStaFuj30BPYxe09n8OzcbQA81qEqXeqW1pyokG58FSq0hLwMmDVAvRUlPIJ3FASADi9B5XaQn6V+iHKv8ExFuNy8hONMXa+2Sx3brxEVi4VrTiR0MZlM9Iwvz5IR7bijYVkcBny25jBdPlzFqn3n1CdlnIENk9W640tg9p5fO54qPTefQdMSyMm306Z6cUbcWFN3pMILCILeX0FEaTi3B34cKvvfeAjv+S81IFBtshFVHs4fgO+HyA+RBjtPpvHC/O0ADOtUnY61SmlOJDxB8QgL4+9qzJf3NaVckVCOX8jhni82MmLWFnKXvwf52VCuCdS8RXdUr+dwGDw1eyuHk7MoVySUcf0aE+CuCY2uEllKTX40B6pdNtdP1J1I4E0FASC8OPT5Ro2G3bNQXdgi3CYtO5/B0xKx2hy0r1mCYZ2q644kPEyHWiVZ9GRb7m9VCZMJNmzegjnxSwCMjqPU3UniukxaeZDFu84QHGBm0oA4YsKDdUdyjgot4Ka31HrRKDiyVm8e4WUFAaB8vBr8AerWmIPL9ebxEw6HwfBZmzmWkk1sTChj+zZy31x54VXCLYH87/a6fDe4JS9HLSQYG2vtdblvZRhJKTJf5Xqs3n+ODxbtBeC1bnVpUL6I3kDO1uwRqN8HDDvMuQ/ST+lO5Ne8ryAAxN8HjQeA4YB5D0KqC+ZCiL8Zv2w/y/eewxJoZlL/eIqE+cizFuEyjcOS6ZK/DICxRj9W7jtHlw9X8dnqQ9gd8vbgtTp+IZsnvt2Mw4B+TWPp16yC7kjOZzLB7WPVxaxZZ2HOvWDL053Kb3lnQTCZ4Nb3oUxDyD4v40NdbPmes4xbqm4/erN7feqVi9acSHiF5W9hMuxQ4xbeHvYAzSrHkJNv542fdtNj4lp2n3LRyHgflJtvZ8j0RC5k59OgfDSv3FFXdyTXCQ6HvlPVpM+kDbDoJd2J/JZ3FgSAoNCL40OLwsnN8OuzuhP5pGPnsxk2czOGAQNaVKBXfHndkYQ3OL1dXWwG0PElqpaIYObDLRjdoz6RIYFsPZ7G7RPW8O6ve8jNl212r+aVH3ey7XgaRcOCmNg/jpAgH7+tuFhV6DFFrTdOga2z9ObxU95bEACKVoSenwEmSPgKEqfqTuRTcvLsDJqWQHqujUaxRRjVtY7uSMJbLHtD/VmvJ5SuB4DZbOKuZhVYOqIdt9Qrjc1hMHHFQW4Zt5rfD57XGNazzdx4jJl/JGEywfi7GlO+aJjuSO5R8xZoO1KtFwyD0zv05vFD3l0QAKp1VjuzAfz0lHo1QVw3wzB48fvt7DqVTrHwYCYNiMMS6OPPWoRzJG2Efb+qke3tX7jsr0tGhTBpQDxTBsZTKsrC4eQs7vp0Pc/N20Zatsxb+f+2HU/l5R93AvB0l5q0qV5CcyI3a/88VO0Ethy1/01Oqu5EfsX7CwJAm6egxi1gt8KseyA7RXcirzdtwzG+SzyB2QQT7m5MmehQ3ZGENzAMWPqaWjfuD8WrXfFTb6pbmsUj2jGghbrYbuYfSXQas5Kft5+69imRPiglK4/B0xLJszm4sU4pBrerqjuS+5kD1KvE0RXgwmGY/yg4rjLzQziNbxQEsxm6T4ailSHtmLqzQcaHFlrisQu8tkA9a3n25lq0rFpccyLhNQ6tgCOr1V4lbZ+56qdHhQTxxp31mTPoBqqWCCc508qQ6Yk8/E0Cp9JyXJ/XQ9kdBsNmbuZEag6Vi4fzQZ+G/ntbcViMumgxwKJemfpzIqhwOd8oCAChRdTkx8BQOLgMVozWncgrJWdaGTItkXy7wS31SvNI2yq6IwlvYRiXxvY2eRCKxBb4S5tWiuHnYW14olN1ggJMLNl9hhvHrGLq+qM4/PCWyDGL97J6fzKhQQFMHhBPVIifD7cq2wi6jlHr5W/C/iVa4/gL3ykIoC6GumO8Wq96D/b8rDePl7HZHTw+I5HT6blULRHOe70byoRGUXB7f4YTCRAUBm1GXPOXWwIDGHFjDX56og2NKxQh02pj1Pc76DPld/afyXBBYM+0aOdpPl5+EIB3ejWgZulIzYk8ROMBag8cDPUq8YUjmgP5Pt8qCAAN+kCzR9V6/qNw/qDePF7kvd/2sv5QCuHBAUwZGE+ExUvmygv9HPZLdy60GAwRJQt9qBqlIpk7qCWv3lGX8OAANh29wK3jVzN2yT6sNt9+6/BwchZPzd4KwAOtKnNHw7KaE3mYW96FsnGQmwqzBkK+/74N5Q6+VxAAurwBsS3Amq6ufM3L0p3I4/28/RRTVh0C4L3eDalWUp61iGuw4zs4uwtCoqHl0Os+XIDZxL0tK7F4RDs61SpJvt1g7JL93DZ+DQlHffMi5Ow8G4OmJpBhtdG0UlGev7WW7kieJ9Ci5vGEFYPT29Sda3JBq8v4ZkEIDL44PrSU+qW1YJj8EP2HA2czGDlHPWt5pG0Vbq1fRnMi4VXs+ep9YYCWT6jNy5ykbJFQPru3CR/d3ZjiEcEcOJtJr8m/M+r7HWTk+s4tkYZh8Ny87ew9k0GJSAsf3x1HUIBv/nq+bkVi1WRfkxm2TFd74AiX8N2fwKgyqiSYAmD7HNj4ie5EHinTauPRqQlk5dlpUSWGZ27y4rnyQo8t09UtaOEloPkgpx/eZDLRtUFZloxoR58m5TEMmLr+KDeOWcXiXWecfj4dvlx7hB+3niTQbGJi/zhKRoXojuTZqrSHTi+r9S/PwPEErXF8le8WBICKLdXbDQC/vQBHf9ebx8MYhsHIOVs5eC6L0lEhfHR3HIHyrEVci/xcWPGOWrd5CiwRLjtVkbBg3u3VkBkPNadisTBOp+fy8DebeGx6ImczvHcWy8bDKbz1824AXrytNk0rxWhO5CVaDYdaXcGep+bxZCXrTuRzfP/RoMVgqNsDHDY1GSzjtO5EHuPT1Yf4ZcdpggJMTBwQR/EIi+5Iwtts+hwyTkJUeYi/3y2nbFmtOL8Nb8ugdlUJMJv4afspOn+wkll/HPO6DZbOpufy2IxEbA6Dbo3Kcl/LSrojeQ+TCe6cBMWqQfoJmHs/2G26U/kU3y8IJhPcMQFK1IbMMzDnfvWeqZ9bdzCZt3/ZA8DLt9clroLz3jcWfsKaAasv3pve/lkIct/L4iFBATx3Sy1+fLwV9ctFk55r49l527nr0/UcTvaOi5Lz7Q4em5HIuQwrNUtFMrpHfbmt+FqFRKn9b4LC4fCqS/twCKfw/YIA6mXPvtPAEgXH1sHil3Un0upUWg5DZ6i58j3iyjGguQ/OlReut34yZCdDTFVoeLeWCHXLRjN/SEteuq02oUEBrD+Uwk1jV/Hx8gPk2z17S963ft7NH0cuEGkJZPLAeMKC5bbiQilZG7p9pNZrx8KuH7XG8SX+URBA7QnffbJar58I2+fqzaOJ1WZn8LREzmflUadMFG91l2ctohCyU2DdxU3JOrwAAfoe3AIDzDzUpgqLnmxLm+rFybM5eO+3vdw+YQ1bk1K15fovP2w5wZdrjwAwpm8jKhcP1xvI29XrATc8rtbfD4Fz+/Tm8RH+UxAAat0GrS/u8PbjUDizS28eDV5fuIstSalEhwYxeUC878+VF66xbrzaZ6RUPXWNjweIjQnjmwea8WHfhhQNC2LP6Qy6T1zL6wt3kZ3nOe9N7zmdznPztgPweIdq3FinlOZEPqLzK1CxFeRlqP1vrJm6E3k9/yoIAB1fUrfI5GerH6LcNN2J3GZuwnGmrT+GyQRj+zWiQjE/mSsvnCvjjHp7AdR/T2bP+TViMpno3rg8S0a0485GZXEY8Pmaw3T5cBUr953THY/03HwGTU0gJ99Om+rFefLGGroj+Y6AIHVre2QZSN4LPzwm+99cJ8/5L9tdzAHQ8wuIjoWUgzB/sF+MD91xIo0X56tnLcM6VadDzcJvhSv83OoPwJYD5ZtCjZt1p/lXxSIsjO3XmK/ub0q5IqEcv5DDvV9sZPjMzZzPtGrJ5HAYjJi1lSPnsylXJJTx/RoT4K8TGl0loiT0/hrMgbDre/j9Y92JvJr/FQSA8GLQ52s1knbvT7D2Q92JXCo1O4/B0xOw2hx0qFmCJzpW1x1JeKvUY7DpC7XuOErdJeTB2tcsyaIn2/Jg68qYTfD9lpN0HrOS7xKPu/2WyEkrD7Jk9xmCA81MHhBP0fBgt57fb1RoDjddnOa7+GU4vFpvHi/mnwUBoFw83Pq+Wi97Q42I9kEOh8HwWVtISsmhQkwYY/s29t+58uL6rXgHHPlQuR1Uaac7TYGEWwIZ1bUO84e0olbpSC5k5zNi9lbu+WIjSSnZbsmwat853l+0F4A3utWjfvlot5zXbzV7GBr0BcOu9kdIP6k7kVfy34IAEH8vNB4IhgPmPqieHfmYcUv3s2LvOSyBZiYNiCM6zM/nyovCS94PW2eodSfvu1W4YWwRFgxtzcibahIcaGb1/mS6fLiKz1YfwubCWyKTUrJ5YuZmDAPuahZLn6axLjuXuMhkgq5j1UW0Wedg9r1gy9Odyuv4d0EA9SpCmUaQkwKz71Fbx/qIZXvOMG7pfgDe6l6fumXlWYu4DsvfVGW65q1QvonuNIUSFGDmsQ7V+HVYG1pUiSEn384bP+2mx6R17DqZ7vTz5ebbGTI9kdTsfBqWj+aVO+o6/RziCoLDoO9UsETD8Y1qu31xTaQgBIWoH6LQonByM/wyUncipzh6PovhM7cAMLBFRXrGl9cbSHi3U9tg53zABB1e1J3mulUpEcG3D7fgnZ71iQoJZNvxNG7/aA3v/LqH3Hy7087zvx92sv1EGkXDgpg4IB5LoNxW7FYxVaDHxUF9f3wKW2fqzeNlpCAAFKkAPT8HTJD4DSR8rTvRdcnJszNoWiLpuTYaVyjCqK51dEcS3m7ZxaFn9XpC6Xp6sziJyWSib9MKLHmqHbfVL4PdYTBpxUFuHruKdQeuf/DPzI3HmLUpCbMJJtwVR7kioU5ILa5ZzZuh3bNqvWA4nN6uNY43kYLwp2qd1D3dAD+PhBOJevMUkmEYvDh/O7tPpVM8IpiJ/eMIDpR/zeI6HNsA+39To9M7+N7LtCUjQ/i4fxyf3tOE0lEhHDmfzd2fbeCZuVtJyy7c3JatSam8/MNOAJ6+qSatqxd3ZmRxrdo9C9U6q9tzZw2AnAu6E3kFeeT4/1qPUO+v2q3qeoSs87oTXbNp64/y3eYTBJhNTLgrjjLR8qxFXAfDgKWvqXXjAVCsqt48LnRjnVIsHtGWgS0qYjLB7E3H6TRmJQu3nbymWyJTsvIYPC2BPLuDLnVKMbid737PvIY5AHp8ql4tvnAEvnvUL/a/uV5SEP4/s1mND42pAmlJMO9BcDjv/UhXSzh6gdcWqu2jn7u5FjdULaY5kfB6h5bD0TVqz5B2z+hO43KRIUG8fmc95jx6A9VKRpCcaeXxGZt5+JtNnEzNuerX2x0GT3y7mZNpuVQpHs77fRrKrBNPERajhvYFhqhXxFa9pzuRx5OC8E+hRS6ODw1TvxyXv6k7UYGcy7AyZHoC+XaDW+uX5qE2lXVHEt7OMGDpxfG5TR+CaP+50LVJpRh+eqI1wztXJyjAxJLdZ7lxzEq++f0IDseVX034YNFe1hxIJjQogMkD44kKkduKPUqZhnDbxRHlK0bD/sV683g4KQj/plRduGOCWq/+APb8pDfPVdjsDh6fkciZdCvVSkbwbi951iKcYM9PcDIRgsIvDTnzI5bAAIZ3rsHPT7QhvmJRsvLsvPzDTnpNXse+MxmXff5vO08zccVBAN7t1YAapSLdHVkUROP+0OQBwIB5D0HKYd2JPJYUhCup3wuaD1br+YPg/EG9ef7DO7/uYcPhFMKDA5g8IJ4Ii8yVF9fJYb9050KLwRBRQm8ejaqXimTOozfwere6RFgCSTyWym3jVzNm8T6sNvUW5KFzmTw9eysAD7auzO0Ny+qMLK7m5rfVbrq5qTB7IORf/e0jfyQF4b90eR1iW6ixtrMGQF6W7kSX+WnbKT5drRrw+70bUq1khOZEwifsmAfndkNINLQcqjuNdmaziYE3VGLxiLZ0rl2KfLvB+KX7uW38GlbtO8egaQlkWG00qxzDc7fU0h1XXE2gBfp8A2HF1W2PC0fI5Md/UeCCYLVaSU9P/9uHzwsIUkOdIkrB2V3w4xMe9UN04GwGI+eqZy2PtqvCLfXLaE4kfII9/9K1N62GqetyBABlokP59J54JvaPo0SkhQNnM7nni43sO5NJyUgLH93dmKAAed7lFaLLQ68vwGRWW4j/OYRM/KXAP8mjR48mOjr6r4/YWD/ZTzyy9KXxoTvmwobJuhMBkJGbzyNTE8jOs3NDlWKM7FJTdyThKzZPU7eChZeA5oN0p/E4JpOJW+uXYcmT7eh3ca5CoNnExP5xlIwM0ZxOXJMq7aDT/9T6l2fh+Ca9eTyMySjgDb5WqxWr9dIc9fT0dGJjY0lLSyMqKsplAT3G+knw63OqKNy7ACq21BbFMAwGT0vk152nKRMdwoKhrSkeYdGWR/iQ/BwYHwcZJ+Hmd6CFFISr2XkyDbPJRO0yfvB70BcZhroOYfcCiCwLj67y+Wtu0tPTiY6Ovurjd4FfQbBYLERFRf3tw680HwT1eoHDBnPug4zT2qJMWXWIX3eeJihAPWuRciCc5o/PVTmIKg9N7tedxivULRst5cCbmUzQbSIUq65+9ufeD3ab7lQeQd4sKyiTCe4YDyXrQOYZVRLshduG9XqsO5DMu7/uAeB/t9elcYWibs8gfJQ1A9ZcvEe8/XPqQi4h/EFI1MX9b8LhyGpY9pruRB5BCsK1CA5XP0SWKDj2Oywa5dbTn0zNYei3m3EY0Cu+PP2bV3Dr+YWPWz8Jss9DsWrQ8C7daYRwr5K14M6P1XrtONj1g948HkAKwrUqVhW6X7xQccMk2D7XLae12uwMnp7I+aw86pSJ4o0768lmSMJ5slNg3cXNwTq8AAGyl4bwQ3W7ww2Pq/X3Q+DcPr15NJOCUBi1boM2T6n1j0PhzE6Xn/K1BbvYmpRKdGgQUwbGExIkc+WFE60dp/b7KFUf6nTXnUYIfTq/CpXaQF4mzOqv3nrzU1IQCqvDi1ClA+Rnq02UctNcdqo5m5KYvuEYJhOM7deI2Jgwl51L+KGM07Bhilp3fEkNLRPCXwUEqv0RIstA8j744TGP2v/GneQ3QWGZA6Dn5xAdCymH1HbMLhgfuuNEGi9+vwOA4Z1q0KFmSaefQ/i51R+ALQfKN4MaN+lOI4R+ESXVTovmIHUtwu8f6U6khRSE6xFeTP0QBVhg78+XrgB3ktTsPAZNSyDP5qBjrZIM7VjNqccXggtHYdOXat1plLpbRwgBsc3g5tFqvfh/cHi13jwaSEG4XuXi4Lb31XrZG3BgqVMOa3cYDJu5heMXcqgQE8aHfRphNssvb+FkK98FRz5UaQ+V2+pOI4RnafoQNOgHhl3d2p52Qncit5KC4Axx96gPDJj3oHpWdp3GLd3Pyn3nCAkyM3lAPNFhMldeONm5fWoPeoCOL+vNIoQnMpmg64fq4t3sZJhzL9isV/86HyEFwVlueQ/KNoacCzD7HsjPLfShlu4+w/il+wEY3aM+dcrKLm3CBZa/CYYDat4G5eN1pxHCMwWHQd9v1GTT43/Aby/oTuQ2UhCcJShEXY8QGgOntsDPTxfqMEeSsxg+awsA99xQke6NyzsvoxB/OrUVdn0PmKDji7rTCOHZYqpAj0/V+o/PYMu3evO4iRQEZypSAXp9rsaHbp4KCV9f05fn5NnVXPlcG3EVivDSbXVcFFT4vWVvqD/r94JSdfVmEcIb1LgJ2j2n1guHw6ltWuO4gxQEZ6vaUd1LDupVhBMJBfoywzB4Yf529pzOoHhEMBP7xxMcKP96hAscWw/7F4EpANo/rzuNEN6j3bNQ7Uaw5ar9b3Iu6E7kUvII5AqtnlTv69rzYNY9kHX+ql8ydf1R5m8+QYDZxEd3x1E6WubKCxcwDFh6cRBN4wFq63AhRMGYzdDjEyhSEVKPwnePuGT/G08hBcEVzGboPgliqkL6cZj3ADjsV/z0hKMpvLZgFwDP31KLFlWKuSup8DcHl8HRtWrvjnbP6E4jhPcJi4G+UyEwRL0St+pd3YlcRgqCq4REXxwfGgaHVlx6z/cfzmbkMmR6IjaHwW0NyvBg68ruzSn8h2HAstfVuulDEC0XwApRKGUaqtsfAVa8DfsW6c3jIlIQXKlUHbjj4oS8NWNg98K//XW+3cHjMzZzJt1KtZIRvNuzgUxoFK6zZyGc3Kxm3rd+UncaIbxbo7uhyYOAAd89BCmHdSdyOikIrla/F7QYotbfD4bkA3/91Tu/7GHj4RQiLIFMHhBPuEVG7AoXcdhh2ZtqfcMQiCihN48QvuDm0VCuiRrWN2sg5GXrTuRUUhDc4cbXoEJLNU531gCwZrJw20k+W6Ma5/u9G1CtZITmkMKnbZ8L53art77+nHcvhLg+gRa1/01YcTizHX4a4VOTH6UguENAEPT+CiJKw7ndpM8ZzDNztwIwqF1Vbq5XRm8+4dvs+bDiLbVuNRxCi+hMI4RviS4Hvb9U+99s/RY2fa47kdNIQXCXyFLQ52sMcyBRB36kn/0nWlYtxtNdauhOJnzd5qlw4QiEl4Tmj+pOI4TvqdwWOr+i1r88B0l/aI3jLFIQ3MiIbc6smEEAvBA0nUltrAQGyL8C4UL5OWpiI0DbpyE4XG8eIXxVyyeg9h1qOurseyDzrO5E100endxo8spDPHf8Bn50tCIQB9ELHoL0U7pjCV/2x+eQcQqiYyH+Pt1phPBdJhPcORGK14CMkzD3AbDbdKe6LlIQ3GTtgWTe+20PYCLnpjFQsi5knb04PjRPdzzhi3LTYfUHat3uWXVBlRDCdSyRav+b4Ag4shqWvqI70XWRguAGJ1JzGPrtZhwG9I4vT5+WNdVOXJZoSNoAi0fpjih80fpJkJMCxapBw7t0pxHCP5SoCd0+Vut1E2Dn91rjXA8pCC5mtdkZMi2BlKw86pWL4vU766nNkIpVhR5T1CdtmAzb5ugNKnxLdgr8/pFad3gRAmSPDSHcpu6d6poEgB8eg3N7tcYpLCkILvbqgl1sPZ5GkbAgJvWPJyQo4NJf1rwF2o5U6x+HwukdekIK37N2rNp3o1R9qHOn7jRC+J9O/4NKbSAv8+L+Nxm6E10zKQguNHtTEjM2HMNkgnH9GhMbE3b5J7V/Xo2ItuVcHB+a6vacwsdknIYNn6h1p1FqeJgQwr0CAqHXlxBZFpL3wfdDvG4TJfnN4SI7TqTx0vfqFYERnWvQrsYVtrY1B0DPzyG6Alw4DPMH+fT4UOEGq95XhbN8M6jeRXcaIfxXRAm106I5CHb/COvG6050TaQguMCFrDwenZpAns1Bp1oleaxDtf/+grAY6PuNGsG77xdY84F7ggrfc+EoJHyl1p1eVrdeCSH0iW0Kt7yt1ktegUMrtca5FlIQnMzuMBg2awsnUnOoWCyMMX0bYTYX4Jd02cZw28VisOxNOLDEtUGFb1r5jtqopUoHqNxGdxohBKipjw3vBsOh9kdIO647UYFIQXCysUv2sWrfOUKCzEweEE90aFDBvzhu4MXNbAyY95B6NihEQZ3bq/aCB+got84K4TFMJug6BkrXh+xkmH0v2Ky6U12VFAQnWrLrDBOWqXHOb/doQO0yUdd+kFvehbJxkHMBZg9UW+UKURDL31LPUGp1hfLxutMIIf6/oFDoMxVCisCJTfDr87oTXZUUBCc5kpzFk7O3AHBfy0rc2bhc4Q701/jQYnBqK/z0tNdd+So0OLkFdn0PmNS+B0IIzxNTGXp+BpjU1MctM3Qn+k9SEJwgO8/GoGkJZOTaiK9YlBdurX19BywSC72+UONDt0yDxK+dE1T4rmVvqD/r94ZSdfRmEUJcWfUbof1zar3wSfVE0ENJQbhOhmHw/Hfb2XM6g+IRFib2jyM40Anf1irtL72P/PNIOJ5w/ccUvuno73BgMZgDL/3iEUJ4rrbPqFuQbbkwa6Da+dQDSUG4Tl+vO8IPW04SYDbx8d2NKRUV4ryDt35SvZ9sz1PjQ7OSnXds4RsMA5a9rtaNB6gtvIUQns1shh6fQNFKkHoUvnvYI/e/kYJwHTYdSeGNn3YD8PwttWhepZhzT/Dn+NBi1SD9uE+MDxVOdnAZHF2r9tBo+4zuNEKIggotqi5aDAxRt7WvfEd3ostIQSiksxm5DJmeiM1h0LVBGR5sXdk1JwqJVuNDg8Lh8EpY/oZrziO8j2HA0tfUuulDEF3IC2OFEHqUaQBdx6r1yrdh329a4/yTFIRCyLc7eHz6Zs5mWKleMoJ3ejZQExpdpWRt6DZBrdd8CLsXuO5cwnvsXgCntqjZ821G6E4jhCiMRnepgg/qrYaUQ3rz/D9SEArh7V/2sPFIChGWQCYPjCfc4oZRuvV6QovH1Hr+YEje7/pzCs/lsMPyN9W6xRAIL643jxCi8G4aDeWbQm4azLoH8rJ1JwKkIFyzH7ee5PM1hwF4v3dDqpaIcN/Jb3wVKraCvIyL40Mz3Xdu4Vm2z4Fze9SmKy0f151GCHE9AoOh99cQXgLObIeFwz1i/xspCNdg35kMnp27DYDB7atyc73S7g0QEKTGh0aUVg8OPz7uET9Ews1sebBitFq3Hq6uUxFCeLfocur3uykAts2CPz7TnUgKQkGl5+YzaGoCOfl2WlcrztNdauoJElnq4vjQQNg5H9ZP1JND6LN5Klw4AuElodkjutMIIZylchv1SjGorZiTNmqNU+CCYLVaSU9P/9uHv3A4DJ6evZVDyVmUjQ5hXL9GBBRkQqOrVGiu3rMCWDQKjqzVl0W4V34OrHpPrduOhOBwvXmEEM51w+NQ5041lXX2PZB5VluUAheE0aNHEx0d/ddHbGysK3N5lMmrDrJo1xmCA8xMGhBPsQiL7kjQ7GGo3wcMO8y5D9JP6U4k3OGPzyDjFERXgPh7dacRQjibyQTdPoLiNdV/6+sn6YtiGAV7E9tqtWK1XhpPmZ6eTmxsLGlpaURFFWJqoZdYsz+Ze77YgMOA0T3qc1ezCrojXZKXDZ/fCGd2QGxzuHehuthF+KbcdBjXEHJSoNvHaudEIYRvOrcPdn6nXik0Bzj10Onp6URHR1/18bvAryBYLBaioqL+9uHrTqTmMPTbRBwG9GlSnn5NPexVk+AwdT2CJRqSNsAimeLn09ZPUuWgWHVo0E93GiGEK5WooWarOLkcXAu5SPEKcvPtDJ6WwIXsfOqXi+a1bvVcuxlSYRWrqvb0Btj4CWydpTePcI3sFFh3cbOsDi9AgBv23hBC+DUpCFfw6oKdbDueRpGwICb2jyMkSF+Lu6qaN1/ah3/BMDi9Q28e4XxrPlT7X5Sury5gEkIIF5OC8C9m/XGMbzcmYTLB+H6NiY0J0x3p6to/B1U7gS1HbaKUk6o7kXCW9FOw8VO17viymgQnhBAuJr9p/mHb8VRG/bATgKdurEHbGiU0JyogcwD0/AyKVIALh2H+ox45PlQUwur3VfGLbQ7Vb9SdRgjhJ6Qg/D8pWXkMnpZIns1B59olGdK+mu5I1yYsRo0PDbDAvl/VA4vwbheOQMLXat3pZXULlBBCuIEUhIvsDoNhMzdzIjWHSsXC+KBPI8w6N0MqrLKNoOsYtV7+FuxfojWOuE4r3lEbplTpAJVa604jhPAjUhAu+nDxPlbvTyYkyMzkgfFEhwbpjlR4jQdA/P2AAfMeVM9Chfc5txe2zVTrTqP0ZhFC+B0pCMDiXWf4aPkBAN7p2YBapX1gj4db3oFy8ZCbCrMGqi16hXdZ/iYYDqjVVf27FEIIN/L7gnA4OYsRs7YAcF/LSnRrVE5vIGcJtKhNlMKKwelt8NNTMvnRm5zcArt+AEzQ8SXdaYQQfsivC0J2no1BUxPIsNpoUrEoL9xaW3ck54ouD72+AJMZtkyHhC91JxIFtewN9WeDPlDSx34uhRBewW8LgmEYPP/ddvaeyaBEpIWJ/eMIDvTBb0eV9urqd4Cfn4Hjm7TGEQVwdB0cWKxGerd/TncaIYSf8sFHxIL5at0RfthykgCziY/vjqNkVIjuSK7Tarh6H/vP8aFZyboTiSsxDFj6ulo3HggxVfTmEUL4Lb8sCH8cSeHNn3YD8MKttWlWOUZzIhczmeDOSWrIT/oJmHs/2G26U4l/c3ApHFun9rJo94zuNEIIP+Z3BeFsei5Dpidicxjc3rAsD7SqpDuSe4REQd9pEBQOh1fBstd1JxL/9P9fPWj2MESV1ZtHCOHX/Kog5NsdPDYjkXMZVmqUiuDtHvU9c0Kjq5SsBd0+Uuu1Y2HXj1rjiH/YvQBObYHgCGj9pO40Qgg/51cFYfTPe/jjyAUiLYFMHhBPuMUPR+bW6wE3PK7W3w+Bc/v05hGKw37pzoUbHoPw4nrzCCH8nt8UhB+2nOCLtYcB+KBPQ6qUiNCcSKPOr0LF1mp88KwBYM3UnUhsmw3JeyGkiCoIQgihmV8UhL2nM3hu3nYAhrSvSpe6pTUn0iwgEHp/CZFl1IPSD4/JJko62fJgxWi1bv0khETrzSOEEPhBQUjPzWfQtARy8u20rlacp7rU1B3JM0SUVDstmoNg1/fw+8e6E/mvzd9A6lGIKAXNHtGdRgghAB8vCA6HwVOzt3I4OYtyRUIZf1djArxxQqOrxDaDmy8+c138MhxerTePP8rPgZXvqXXbkRAcpjePEEJc5NMFYdLKgyzedYbgADOTBsQREx6sO5LnafoQNOgHhl3tj5B+Unci/7LxU8g8DUUqQNy9utMIIcRffLYgrN5/jg8W7QXgtW51aVC+iN5Anspkgq4fQql6kHUOZt+r3hMXrpebDmvGqHW75yBQCqwQwnP4ZEE4fiGbJ77djMOAvk1i6desgu5Ini04DPpOVRfHHd8Iv72gO5F/WD8Rci5A8RrQoK/uNEII8Tc+VxBy8+0MnpbIhex86peL5tVudXVH8g4xVaDHp2r9x6ewdabePL4uOwXWXdy0qsML6s4SIYTwID5XEF75cSfbT6RRNCyISQPiCAkK0B3Je9S4Cdo9q9YLhsPp7Vrj+LQ1H6p9KEo3gNrddKcRQojL+FRBmLnxGDP/SMJkgvF3NaZ8Ubki/Jq1ew6q3Qi2HLWJUs4F3Yl8T/op2PiJWnd6Gcw+9Z+hEMJH+Mxvpm3HU3n5x50APN2lJm2ql9CcyEuZzdDjE3VV/YUj8N2j4HDoTuVbVr0HtlyIbQHVOutOI4QQ/8onCkJKVh6DpyWSZ3PQuXYpBrerqjuSdwuLUZMfA0Ng/2/qAU04R8phSPxarTu9rO4iEUIID+T1BcHuMHji282cSM2hUrEwxvRtiFk2Q7p+ZRqq2x9BbQO8f7HePL5i5TvgsEHVjlCple40QghxRV5fEMYs3suaA8mEBgUwZWATokKCdEfyHY3uhiYPAAbMe0g9+xWFd3YPbJul1h1H6c0ihBBX4dUFYdHO03y8/CAAb/esT83SkZoT+aCb34ZyTSA3FWYPVFsDi8JZ/iYYDqh9O5SL051GCCH+k9cWhEPnMnlq9lYA7m9ViW6NymlO5KMCLWqoU1hxddvjwhEy+bEwTm6G3T8CJujwou40QghxVV5ZELLzbAyalkCG1UbTSkV54dbauiP5tuhy0OsLMJlh6wzY9IXuRN5n2RvqzwZ9oaT8vAohPJ/XFQTDMHh23nb2ncmkRKSFj++OIyjA6/5veJ8q7aDzK2r9y7NwfJPWOF7l6Do4sATMgdD+Od1phBCiQLzukfXLtUdYsPUkgWYTE/vHUTIqRHck/9HyCah9BzjyYdZAyDynO5HnMwxY+ppax90DMZX15hFCiALyqoKw8XAKb/28G4AXb6tN00oxmhP5GZMJ7pyohgtlnFTjoe023ak824GlcOx3tadE25G60wghRIF5TUE4m57LYzMSsTkM7mhYlvtaVtIdyT9ZItUmSsERcGQ1LH1VdyLPZRiw7OKrB00fgqiyevMIIcQ18IqCkG93MGR6IucyrNQsFcnbPetjkh3o9ClRE7pdnES4bjzs+kFvHk+1+0c4tVWVqdYjdKcRQohr4hUF4c2fdrPp6AUiLYFMHhhPWLCMxtWubndoOVStvx8C5/bpzeNpHHZY9qZa3/AYhBfTm0cIIa6RxxeEH7ac4Kt1RwAY07cRlYuH6w0kLun0ClRqA3mZMKs/WDN0J/Ic22ZD8l4ILaoKghBCeBmPLgh7Tqfz3LztADzeoRo31imlOZH4m4BAtT9CZFlI3gc/PCabKAHY8mDFW2rd+kkIidabRwghCsFjC0JaTj6DpiaQk2+nTfXiPHljDd2RxL+JKAl9vgZzkLoWYd0E3Yn0S/waUo9BRClo+rDuNEIIUSgeWRAcDoOnZm/hyPlsyhUJZVy/xgTIhEbPFdsMbh6t1kv+B4dX6c2jU142rHpfrduOhOAwvXmEEKKQPLIgTFxxgCW7zxIcaGbSgDhiwoN1RxJX0/QhaHiXGkY0535IO6E7kR5/fAqZp6FIBYi7V3caIYQotAIXBKvVSnp6+t8+XGHVvnN8sFhdEf96t7o0KF/EJecRTmYywW1joFR9yE6GOfeCzao7lXvlpsOaD9W6/fMQKMVWCOG9ClwQRo8eTXR09F8fsbGxTg9jGAbv/rYHw4C7msXSt2kFp59DuFBwGPSdqi7KO/4H/PaC7kTu9fvHkHMBitdUQ5mEEMKLmQyjYJedW61WrNZLzwjT09OJjY0lLS2NqKgopwVKycrjo2UHeObmmoQEBTjtuMKN9i2CGb3V+s7J0OguvXncIes8jGugbvns/TXUvVN3IiGE+Ffp6elER0df9fG7wK8gWCwWoqKi/vbhCjHhwbx8ex0pB96sRhdod3Fq4cLhcGqb1jhusfZDVQ7KNFQDrYQQwst55EWKwge0exaqdwFbLswaoF5691Xpp2Djp2rdcRSY5T8rIYT3k99kwjXMZug+BYpUhNSj8N0j4HDoTuUaq95TRajCDVCts+40QgjhFFIQhOuExajJj4EhsH8RrHpXdyLnSzmsNkYC6PSyuptDCCF8gBQE4VplGkDXsWq94m11AaMvWfE2OGxQtRNUbKk7jRBCOI0UBOF6je6CJg8CBnz3kHrW7QvO7oZts9S60yi9WYQQwsmkIAj3uPltKN8UctNg1kC1JbG3W/4mYEDt26FsY91phBDCqaQgCPcIDFb7A4SXgDPb4acR3j358UQi7F4AmKDDS7rTCCGE00lBEO4TXQ56fQmmANj6LWz6XHeiwlv2hvqzYT8oWUtvFiGEcAEpCMK9KreBzq+o9S/PQdJGrXEK5chaOLgUzIFqvwchhPBBUhCE+7UcCnW6gSMfZt8DmWd1Jyo4w4Blr6t13L0QU1lvHiGEcBEpCML9TCbo9jEUrwEZp2DuA2C36U5VMAeWwLHf1d4ObUfqTiOEEC4jBUHoYYmEvtMhOAKOrIalr+hOdHUOByx9Ta2bPQxRZfTmEUIIF5KCIPQpUQPunKjW6ybAzu+1xrmq3T/C6W0QHAmtntSdRgghXEoKgtCrTjdo+YRa//AYnNurN8+VOOwX9z0AbngMwovpzSOEEC4mBUHo1+l/UKmNGpc8sz/kputOdLltsyB5H4QWVQVBCCF8nBQEoV9AoNofIbIsnN+vXknwpE2UbHmwYrRat34SQqL05hFCCDeQgiA8Q0QJ6PMNmIPUe/3rxutOdEni15B6DCJKQ9OHdacRQgi3kIIgPEdsU7jlHbVe8gocWqk1DqBmRqx6T63bjYTgML15hBDCTaQgCM/S5AFoeDcYDrU/QtpxvXk2fgKZZ6BIBWh8j94sQgjhRlIQhGcxmaDrGChdH7KTYfa9YLPqyZKbBmvHqnX7F9TAKSGE8BNSEITnCQqFPlMhpAic2AS/Pq8nx+8fQ84FKF4TGvTRk0EIITSRgiA8U0xl6PkZYFJTH7fMcO/5s86rggDQ8UUwB7j3/EIIoZkUBOG5qt8I7S++erDwSTi11X3nXjNG7ctQphHUvsN95xVCCA8hBUF4trYjofpNYMuFWQMhO8X150w/CRs/VeuOo9R1EUII4WekIAjPZjZDjylQtBKkHoXvHlZDk1xp1Xtgt0KFllCtk2vPJYQQHkoKgvB8oUWh7zQ1YvnAElj5juvOlXIYEr9R607y6oEQwn9JQRDeoXR9uH2cWq98G/b95przrHgbHDao1hkqtnTNOYQQwgtIQRDeo2G/S1sdf/cwpBxy7vHP7lZDmQA6vuTcYwshhJeRgiC8y01vQflmahOjWfeorZCdZdkbgKHuWijb2HnHFUIILyQFQXiXwGDo8zWEl4Az22HhcOdMfjyRAHsWgskMHV68/uMJIYSXk4IgvE9UWTUe2hSg3hL447PrP+ayN9SfDfpCyVrXfzwhhPByUhCEd6rcBm58Va1/fR6SNhb+WEfWwMFlatR0++eck08IIbycFAThvW54HOrcCY58mH0PZJ699mMYBix9Xa3j71X7LQghhJCCILyYyQTdPlLDlDJOwZz7wW67tmPsXwxJ69UeC22edk1OIYTwQlIQhHezRKpNlIIj4egaWPK/gn+twwHLLr560OwRiCrjmoxCCOGFpCAI71eiBtw5Ua1//wh2zi/Y1+3+AU5vU+Wi9ZOuyyeEEF5ICoLwDXXugFbD1Pr7x+Dsnv/+fLsNlr+l1i0fh7AY1+YTQggvIwVB+I6OL0PltpCfBbMGQG76lT932yxI3gehMdBiiPsyCiGEl5CCIHxHQCD0/AKiysH5/fDDkH/fRMlmVTMXQL21EBLl3pxCCOEFpCAI3xJRAvpMhYBg2L0A1o67/HMSv4G0YxBZBpo97P6MQgjhBaQgCN9TPh5uuTgSeumrcGjlpb/Ly4ZV76l126chKNT9+YQQwgtIQRC+Kf5+aNQfDAfMvR/Sjqv/feMnkHkGilSExvfozSiEEB5MCoLwTSYT3PYBlG4A2ecv7rR4DtZ8qP6+wwtq8JMQQoh/JQVB+K6gUOg7FUKKqGmNn7SH3FQoUQvq99YcTgghPFuBC4LVaiU9Pf1vH0J4vKKVoOfngAnSL77N0OFFMAfoTCWEEB6vwAVh9OjRREdH//URGxvrylxCOE/1zuotBYCycVD7dr15hBDCC5gM499uFL+c1WrFarX+9c/p6enExsaSlpZGVJTcRy48nGHAoeVQqr66FVIIIfxUeno60dHRV338DizoAS0WCxaLxSnhhHA7kwmqdtSdQgghvIZcpCiEEEKIy0hBEEIIIcRlpCAIIYQQ4jJSEIQQQghxGSkIQgghhLiMFAQhhBBCXEYKghBCCCEuIwVBCCGEEJeRgiCEEEKIy0hBEEIIIcRlpCAIIYQQ4jJSEIQQQghxGSkIQgghhLhMgac5/tOfU6LT09OdFkYIIYQQrvXn4/afj+NXUuiCkJGRAUBsbGxhDyGEEEIITTIyMoiOjr7i35uMq1WIK3A4HJw8eZLIyEhMJlOhA/5Teno6sbGxJCUlERUV5bTj+ir5fhWcfK8KTr5XBSffq4KT71XBufJ7ZRgGGRkZlC1bFrP5ylcaFPoVBLPZTPny5Qv75VcVFRUlP0DXQL5fBSffq4KT71XByfeq4OR7VXCu+l791ysHf5KLFIUQQghxGSkIQgghhLiMxxUEi8XC//73PywWi+4oXkG+XwUn36uCk+9Vwcn3quDke1VwnvC9KvRFikIIIYTwXR73CoIQQggh9JOCIIQQQojLSEEQQgghxGWkIAghhBDiMlIQhBBCCHEZKQhCCCGEuIwUBCGEEEJcRgqCEEIIIS7zf2idq6Fzk8FfAAAAAElFTkSuQmCC", 44 | "text/plain": [ 45 | "
" 46 | ] 47 | }, 48 | "metadata": {}, 49 | "output_type": "display_data" 50 | } 51 | ], 52 | "source": [ 53 | "fig, ax = plt.subplots()\n", 54 | "ax.plot([1, 3, 2, 4])\n", 55 | "ax.plot([2.5, 0.5, 3.5, 1.5])\n", 56 | "\n", 57 | "# Remove text to avoid tiny differences in rendered output.\n", 58 | "from matplotlib.testing.decorators import remove_ticks_and_titles\n", 59 | "\n", 60 | "remove_ticks_and_titles(fig)" 61 | ] 62 | }, 63 | { 64 | "cell_type": "code", 65 | "execution_count": 4, 66 | "id": "de9dc5fd-da82-4c02-98d4-544844feaeac", 67 | "metadata": {}, 68 | "outputs": [ 69 | { 70 | "data": { 71 | "image/png": "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", 72 | "text/plain": [ 73 | "
" 74 | ] 75 | }, 76 | "execution_count": 4, 77 | "metadata": {}, 78 | "output_type": "execute_result" 79 | } 80 | ], 81 | "source": [ 82 | "ax.set_ylim(1, 3)\n", 83 | "fig" 84 | ] 85 | }, 86 | { 87 | "cell_type": "code", 88 | "execution_count": 5, 89 | "id": "da38699d-7e19-4874-acad-100ee072fdfc", 90 | "metadata": {}, 91 | "outputs": [ 92 | { 93 | "data": { 94 | "image/png": "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", 95 | "text/plain": [ 96 | "
" 97 | ] 98 | }, 99 | "metadata": {}, 100 | "output_type": "display_data" 101 | } 102 | ], 103 | "source": [ 104 | "ax.set_xlim(1, 3)\n", 105 | "display(fig)" 106 | ] 107 | }, 108 | { 109 | "cell_type": "code", 110 | "execution_count": null, 111 | "id": "5fd4fe0f-ba55-461f-b99d-a3ca6f65c667", 112 | "metadata": {}, 113 | "outputs": [], 114 | "source": [] 115 | } 116 | ], 117 | "metadata": { 118 | "kernelspec": { 119 | "display_name": "Python 3 (ipykernel)", 120 | "language": "python", 121 | "name": "python3" 122 | }, 123 | "language_info": { 124 | "codemirror_mode": { 125 | "name": "ipython", 126 | "version": 3 127 | }, 128 | "file_extension": ".py", 129 | "mimetype": "text/x-python", 130 | "name": "python", 131 | "nbconvert_exporter": "python", 132 | "pygments_lexer": "ipython3", 133 | "version": "3.13.5" 134 | } 135 | }, 136 | "nbformat": 4, 137 | "nbformat_minor": 5 138 | } 139 | --------------------------------------------------------------------------------