forked from pool/python-panel
Accepting request 1037185 from home:bnavigator:branches:devel:languages:python:numeric
- Update to 0.14.1 * This release primarily addresses regressions introduced in 0.14.0 and various long standing bugs. Many thanks to external contributors @liu-kan and @KedoKudo and the maintainers @Hoxbro, @maximlt and @philippjfr for contributing a number of fixes. ## Minor enhancements * Improve support for requests in pyodide (#3973) * Add option to clear value of DatetimePicker (#3990) * Add support for hashing dates in pn.cache (#4004) * Silence EMPTY_LAYOUT warnings (#4056) ## Compatibility * Fix Jupyterlite and latest PyScript compatibility (#4040) ## Bugs ### Webassembly conversion * Correctly handle resource mode in when converting to WebAssembly (#3967) ### Jupyter and Server * Correctly handle future exceptions on threads (#3977) * Fix panel serve index template (#3980) * Do not error if curdoc has been destroyed (#3994) * Ensure extensions loaded in jupyter kernel are served by StaticHandler (#4000) * Various fixes for OAuth handling with pn.serve (#4006) * Fix bug in on_load callback exception handling (#4007) * Ensure periodic callbacks are only started on main thread (#4011) * Ensure jupyter server extension handles explicit root_dir (#4029) * Ensure futures are correctly awaited when executed on thread OBS-URL: https://build.opensuse.org/request/show/1037185 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-panel?expand=0&rev=19
This commit is contained in:
parent
46355c2fe4
commit
11841f43c5
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:0e9008f0a851cbcffbce0273d62b5bc62644d9030cc68535c824381df52113af
|
|
||||||
size 17959938
|
|
3
panel-0.14.1.tar.gz
Normal file
3
panel-0.14.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:0922421e5625498a5041123c01e8be7e12c350ce3ef180c534b45419bf20052b
|
||||||
|
size 20052944
|
@ -1,3 +1,173 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Nov 21 17:47:47 UTC 2022 - Ben Greiner <code@bnavigator.de>
|
||||||
|
|
||||||
|
- Update to 0.14.1
|
||||||
|
* This release primarily addresses regressions introduced in
|
||||||
|
0.14.0 and various long standing bugs. Many thanks to external
|
||||||
|
contributors @liu-kan and @KedoKudo and the maintainers
|
||||||
|
@Hoxbro, @maximlt and @philippjfr for contributing a number of
|
||||||
|
fixes.
|
||||||
|
## Minor enhancements
|
||||||
|
* Improve support for requests in pyodide (#3973)
|
||||||
|
* Add option to clear value of DatetimePicker (#3990)
|
||||||
|
* Add support for hashing dates in pn.cache (#4004)
|
||||||
|
* Silence EMPTY_LAYOUT warnings (#4056)
|
||||||
|
## Compatibility
|
||||||
|
* Fix Jupyterlite and latest PyScript compatibility (#4040)
|
||||||
|
## Bugs
|
||||||
|
### Webassembly conversion
|
||||||
|
* Correctly handle resource mode in when converting to
|
||||||
|
WebAssembly (#3967)
|
||||||
|
### Jupyter and Server
|
||||||
|
* Correctly handle future exceptions on threads (#3977)
|
||||||
|
* Fix panel serve index template (#3980)
|
||||||
|
* Do not error if curdoc has been destroyed (#3994)
|
||||||
|
* Ensure extensions loaded in jupyter kernel are served by
|
||||||
|
StaticHandler (#4000)
|
||||||
|
* Various fixes for OAuth handling with pn.serve (#4006)
|
||||||
|
* Fix bug in on_load callback exception handling (#4007)
|
||||||
|
* Ensure periodic callbacks are only started on main thread
|
||||||
|
(#4011)
|
||||||
|
* Ensure jupyter server extension handles explicit root_dir
|
||||||
|
(#4029)
|
||||||
|
* Ensure futures are correctly awaited when executed on thread
|
||||||
|
(#4031)
|
||||||
|
### Components
|
||||||
|
* Ensure Tabulator handles filtering on edited values correctly
|
||||||
|
if show_index=False (#3988, #4016)
|
||||||
|
* Ensure Tabulator declares numeric sorter for numeric dtypes
|
||||||
|
(#3999)
|
||||||
|
* Fix regression initializing DiscreteSlider with non-integer
|
||||||
|
value (#4009)
|
||||||
|
* Ensure that template.config.raw_css is correctly applied
|
||||||
|
(#4018)
|
||||||
|
* Fix handling MenuButton clicks when split=True (#4021)
|
||||||
|
* Ensure styling on Tabulator with empty DataFrame does not error
|
||||||
|
(#4028)
|
||||||
|
* Allow changing level on Debugger widget (#4057)
|
||||||
|
- Release 0.14.0
|
||||||
|
* This release focuses on three main themes:
|
||||||
|
- Support for running Panel apps entirely in the browser using
|
||||||
|
WebAssembly (via Pyodide and PyScript)
|
||||||
|
- Improvements in the app-user experience by making it easier
|
||||||
|
to build responsive and performant applications
|
||||||
|
- Improvements in the developer experience through static
|
||||||
|
typing and docstrings.
|
||||||
|
* Many, many thanks to everyone who filed issues or contributed
|
||||||
|
to this release. In particular we would like to thank @janimo,
|
||||||
|
@xavArtley, @thuydotm, @jmosbacher, @dmarx, @2WoLpH, @ipopa144,
|
||||||
|
@sdc50 for contributions and @philippjfr, @Hoxbro, @maximlt,
|
||||||
|
and @MarcSkovMadsen for ongoing maintenance and development.
|
||||||
|
## Features
|
||||||
|
* Add support for converting Panel apps to pyscript/pyodide
|
||||||
|
(#3817, #3830, #3851, #3856, #3857, #3858, #3860, #3861, #3863,
|
||||||
|
#3864, #3868, #3878)
|
||||||
|
* Manage our own CDN to improve performance and reliability for
|
||||||
|
delivering JS payloads (#3867, #3870)
|
||||||
|
* Add ability to defer_load of components (#3882)
|
||||||
|
* Add pn.widget helper function (#1826, #3589)
|
||||||
|
* Add config.exception_handler to easily capture, log and notify
|
||||||
|
users about errors (#3893)
|
||||||
|
* Implement pn.cache function for memoization support (#2411)
|
||||||
|
* Rewrite server extension to run Panel applications in kernels
|
||||||
|
so that previews run in the same environment as the deployed
|
||||||
|
app (#3763)
|
||||||
|
* Add ability to define authorization callback (#3777)
|
||||||
|
* Support memray profiler (#3509)
|
||||||
|
* Add liveness endpoint (#3832)
|
||||||
|
* Add ability to configure exception handler (#3896)
|
||||||
|
## Enhancements
|
||||||
|
* Ensure OAuth redirects to requested app and retains query
|
||||||
|
arguments (#3555)
|
||||||
|
* Add extension entry point (#3738)
|
||||||
|
* Update Admin Logs page to use Tabulator (#3694)
|
||||||
|
* Ensure location.unsync unsets query params (#3806)
|
||||||
|
* Allow None value on numeric sliders and LiteralInput (#3174)
|
||||||
|
* Allow serving admin panel with pn.serve (#3798)
|
||||||
|
* Improve ReactiveHTML loop support and validation (#3813)
|
||||||
|
* Support declaring Perspective.plugin_config pane (#3814)
|
||||||
|
* Do not flicker busy indicator during --autoreload check (#3804)
|
||||||
|
* Improve robustness of state.curdoc in threaded and async
|
||||||
|
contexts (#3776, #3810, #3834)
|
||||||
|
* Support datetime bounds for DatetimePicker and
|
||||||
|
DatetimeRangePicker (#3788)
|
||||||
|
* Allow setting the Oauth provider using environment variables
|
||||||
|
(#3698)
|
||||||
|
* Implement Player.value_throttled (#3756)
|
||||||
|
* Ensure that URL query parameters are preserved during OAuth
|
||||||
|
(#3656)
|
||||||
|
* Improve Markdown code syntax highlighting (#3758)
|
||||||
|
* Ensure components do not re-render if background or loading
|
||||||
|
parameters change (#3599)
|
||||||
|
* Add ability to define admin dashboard plugins (#3668)
|
||||||
|
* Do not calculate embed state for disabled widgets (#3757)
|
||||||
|
* Add hard bounds to editable sliders (#3739)
|
||||||
|
* Add bundling of shared resources (#3894)
|
||||||
|
* Add Tabulator as default param.DataFrame widget (#3912)
|
||||||
|
## Compatibility & Version updates
|
||||||
|
* Support ipywidgets>=8.0 (#3782)
|
||||||
|
* Bump jsoneditor package (#3838)
|
||||||
|
* Upgrade to Tabulator 5.3.2 (#3784)
|
||||||
|
* Improve Django compatibility (#3843, #3835)
|
||||||
|
* Remove all usage of deprecated Pane
|
||||||
|
## Bugs
|
||||||
|
### Server
|
||||||
|
* Ensure closed websocket does not cause errors
|
||||||
|
* Handle session and websocket close cleanly (#3769)
|
||||||
|
* Fix prefix handling for admin page (#3809)
|
||||||
|
* Support admin dashboard in multi-process deployments (#3812)
|
||||||
|
* Improve document cleanup when not invoked using server_destroy
|
||||||
|
(#3842)
|
||||||
|
* Ensure pn.state.execute dispatches immediately if possible
|
||||||
|
(#3859)
|
||||||
|
* Ensure autoload.js resources are appropriately prefixed (#3873)
|
||||||
|
### Notebook
|
||||||
|
* Fix support for copying cells and creating new views in
|
||||||
|
JupyterLab (#3652)
|
||||||
|
* Ensure output renders in VSCode notebook with latest ipywidgets
|
||||||
|
(#3765)
|
||||||
|
* Resolve issues with Jupyter slowdown due to event_loop patching
|
||||||
|
on Windows (#3770)
|
||||||
|
* Ensure old comm managers do not raise errors in notebook
|
||||||
|
(#3853)
|
||||||
|
* Simplify rendering of ipywidget (#3937)
|
||||||
|
### Tabulator
|
||||||
|
* Do not re-render Tabulator on css_classes or background change
|
||||||
|
(#3598)
|
||||||
|
* Ensure expand icon updates on Tabulator.expanded change (#3703)
|
||||||
|
* Update page Parameter when pagination is 'local' (#3704)
|
||||||
|
* Do not apply sorters on Tabulator cell edits (#3744)
|
||||||
|
* Ensure Tabulator.controls renders (#3768)
|
||||||
|
* Ensure correctness of event row and selection indices in
|
||||||
|
Tabulator (#3771, #3841)
|
||||||
|
* Fix issues with frontend and backend sorters being out of sync
|
||||||
|
in Tabulator (#3825, #3839)
|
||||||
|
* Fix default values of a list header filter in Tabulator (#3826)
|
||||||
|
* Fix the edit event with a python filter in Tabulator (#3829)
|
||||||
|
* Disable client-side date filtering on Tabulator (#3849)
|
||||||
|
* Support editing of pandas masked array dtypes in Tabulator
|
||||||
|
(#3850)
|
||||||
|
* Fix issues editing a cell when client-side filtering applied
|
||||||
|
(#3852)
|
||||||
|
* Do not recompute data when local pagination is enabled (#3854)
|
||||||
|
* Don't skip filtering when the column name is undefined (#3862)
|
||||||
|
### Misc
|
||||||
|
* Fix FileInput.save (#3579)
|
||||||
|
* Fix issues with Matplotlib.high_dpi option (#3591, #3594)
|
||||||
|
* Ensure layout recomputes on HTML/Markdown re-rerender (#3616)
|
||||||
|
* Allow overriding all widget parameters on Param pane (#3754)
|
||||||
|
* Ensure DatePicker start/end are transformed when jslinked
|
||||||
|
(#3759)
|
||||||
|
* Ensure notifications can be enabled without a template (#3820)
|
||||||
|
* Ensure ReactiveHTML inline callbacks on loop variables return
|
||||||
|
correct node (#3840)
|
||||||
|
* Ensure that Perspective does not take precedence on empty dict
|
||||||
|
(#3936)
|
||||||
|
* Improve sizing_mode behavior when width/height are specified
|
||||||
|
(#3955)
|
||||||
|
* Do not load notyf resources unless notifications are enabled
|
||||||
|
(#3958)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jun 22 00:20:11 UTC 2022 - Atri Bhattacharya <badshah400@gmail.com>
|
Wed Jun 22 00:20:11 UTC 2022 - Atri Bhattacharya <badshah400@gmail.com>
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-panel
|
# spec file
|
||||||
#
|
#
|
||||||
# Copyright (c) 2022 SUSE LLC
|
# Copyright (c) 2022 SUSE LLC
|
||||||
#
|
#
|
||||||
@ -16,7 +16,6 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
|
||||||
%global flavor @BUILD_FLAVOR@%{nil}
|
%global flavor @BUILD_FLAVOR@%{nil}
|
||||||
%if "%{flavor}" == "test"
|
%if "%{flavor}" == "test"
|
||||||
%define psuffix -test
|
%define psuffix -test
|
||||||
@ -25,11 +24,10 @@
|
|||||||
%define psuffix %{nil}
|
%define psuffix %{nil}
|
||||||
%bcond_with test
|
%bcond_with test
|
||||||
%endif
|
%endif
|
||||||
%define skip_python2 1
|
|
||||||
%define skip_python36 1
|
|
||||||
%define modname panel
|
%define modname panel
|
||||||
Name: python-panel%{psuffix}
|
Name: python-panel%{psuffix}
|
||||||
Version: 0.13.1
|
Version: 0.14.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: A high level app and dashboarding solution for Python
|
Summary: A high level app and dashboarding solution for Python
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
@ -38,8 +36,9 @@ URL: https://panel.holoviz.org
|
|||||||
Source: https://files.pythonhosted.org/packages/source/p/panel/panel-%{version}.tar.gz
|
Source: https://files.pythonhosted.org/packages/source/p/panel/panel-%{version}.tar.gz
|
||||||
Source99: python-panel-rpmlintrc
|
Source99: python-panel-rpmlintrc
|
||||||
BuildRequires: %{python_module Markdown}
|
BuildRequires: %{python_module Markdown}
|
||||||
BuildRequires: %{python_module bleach}
|
BuildRequires: %{python_module base >= 3.7}
|
||||||
BuildRequires: %{python_module bokeh >= 2.4.0}
|
BuildRequires: %{python_module bokeh >= 2.4.0 with %python-bokeh < 2.5}
|
||||||
|
BuildRequires: %{python_module nbval}
|
||||||
BuildRequires: %{python_module param >= 1.12.0}
|
BuildRequires: %{python_module param >= 1.12.0}
|
||||||
BuildRequires: %{python_module pyct >= 0.4.4}
|
BuildRequires: %{python_module pyct >= 0.4.4}
|
||||||
BuildRequires: %{python_module pyviz-comms >= 0.7.4}
|
BuildRequires: %{python_module pyviz-comms >= 0.7.4}
|
||||||
@ -52,11 +51,13 @@ BuildRequires: nodejs
|
|||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
%if %{with test}
|
%if %{with test}
|
||||||
BuildRequires: %{python_module altair}
|
BuildRequires: %{python_module altair}
|
||||||
|
BuildRequires: %{python_module diskcache}
|
||||||
|
BuildRequires: %{python_module flaky}
|
||||||
BuildRequires: %{python_module folium}
|
BuildRequires: %{python_module folium}
|
||||||
BuildRequires: %{python_module holoviews}
|
BuildRequires: %{python_module holoviews}
|
||||||
BuildRequires: %{python_module ipympl}
|
BuildRequires: %{python_module ipympl}
|
||||||
BuildRequires: %{python_module ipython >= 7.0}
|
BuildRequires: %{python_module ipython >= 7.0}
|
||||||
BuildRequires: %{python_module nbsmoke >= 0.2.0}
|
BuildRequires: %{python_module markdown-it-py}
|
||||||
BuildRequires: %{python_module pandas >= 1.3}
|
BuildRequires: %{python_module pandas >= 1.3}
|
||||||
BuildRequires: %{python_module parameterized}
|
BuildRequires: %{python_module parameterized}
|
||||||
BuildRequires: %{python_module plotly >= 4.0}
|
BuildRequires: %{python_module plotly >= 4.0}
|
||||||
@ -70,18 +71,20 @@ BuildRequires: %{python_module twine}
|
|||||||
Requires: jupyter-panel
|
Requires: jupyter-panel
|
||||||
Requires: python-Markdown
|
Requires: python-Markdown
|
||||||
Requires: python-bleach
|
Requires: python-bleach
|
||||||
Requires: python-bokeh >= 2.4.0
|
|
||||||
Requires: python-param >= 1.10.0
|
Requires: python-param >= 1.10.0
|
||||||
Requires: python-pyct >= 0.4.4
|
Requires: python-pyct >= 0.4.4
|
||||||
Requires: python-pyviz-comms >= 0.7.4
|
Requires: python-pyviz-comms >= 0.7.4
|
||||||
Requires: python-requests
|
Requires: python-requests
|
||||||
|
Requires: python-setuptools
|
||||||
Requires: python-tqdm >= 4.48.0
|
Requires: python-tqdm >= 4.48.0
|
||||||
|
Requires: python-typing_extensions
|
||||||
|
Requires: (python-bokeh >= 2.4.0 with python-bokeh < 2.5)
|
||||||
Requires(post): update-alternatives
|
Requires(post): update-alternatives
|
||||||
Requires(postun):update-alternatives
|
Requires(postun):update-alternatives
|
||||||
Recommends: python-Pillow
|
Recommends: python-Pillow
|
||||||
Recommends: python-holoviews > 1.14.1
|
Recommends: python-holoviews > 1.14.1
|
||||||
|
Recommends: python-jupyterlab
|
||||||
Recommends: python-matplotlib
|
Recommends: python-matplotlib
|
||||||
Recommends: python-notebook >= 5.4
|
|
||||||
Recommends: python-plotly >= 4.0
|
Recommends: python-plotly >= 4.0
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
@ -107,38 +110,40 @@ to all Python flavors.
|
|||||||
%autosetup -p1 -n panel-%{version}
|
%autosetup -p1 -n panel-%{version}
|
||||||
# Do not try to rebuild the bundled npm stuff. We don't have network. Just use the shipped bundle.
|
# Do not try to rebuild the bundled npm stuff. We don't have network. Just use the shipped bundle.
|
||||||
sed -i '/def _build_paneljs/ a \ return' setup.py
|
sed -i '/def _build_paneljs/ a \ return' setup.py
|
||||||
|
# fix python call in test, upstream expects them to be run inside tox or venv
|
||||||
|
sed -i -e '/import ast/ a import sys' -e 's/"python",/sys.executable,/' panel/tests/test_docs.py
|
||||||
|
|
||||||
|
%if ! %{with test}
|
||||||
%build
|
%build
|
||||||
%python_build
|
%python_build
|
||||||
|
|
||||||
%if ! %{with test}
|
|
||||||
%install
|
%install
|
||||||
%python_install
|
%python_install
|
||||||
%jupyter_move_config
|
|
||||||
|
|
||||||
%{python_expand # FIX HASHBANG AND LINK EXAMPLES INTO PACKAGE DOCS
|
|
||||||
mkdir examples-%{$python_bin_suffix}
|
|
||||||
ln -s %{$python_sitelib}/%{modname}/examples examples-%{$python_bin_suffix}/examples
|
|
||||||
sed -i "1{s|#!/usr/bin/env python|#!%{__$python}|}" \
|
|
||||||
%{buildroot}%{$python_sitelib}/%{modname}/examples/apps/django2/manage.py \
|
|
||||||
%{buildroot}%{$python_sitelib}/%{modname}/examples/apps/django_multi_apps/manage.py
|
|
||||||
}
|
|
||||||
|
|
||||||
%python_clone -a %{buildroot}%{_bindir}/panel
|
%python_clone -a %{buildroot}%{_bindir}/panel
|
||||||
|
%{python_expand #
|
||||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
rm %{buildroot}%{$python_sitelib}/panel/dist/bundled/js/@microsoft/fast-colors@5.3.1/.prettierignore
|
||||||
|
rm %{buildroot}%{$python_sitelib}/panel/dist/bundled/js/@microsoft/fast-colors@5.3.1/.eslintignore
|
||||||
|
%fdupes %{buildroot}%{$python_sitelib}
|
||||||
|
}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with test}
|
%if %{with test}
|
||||||
%check
|
%check
|
||||||
# DISABLE TESTS REQUIRING NETWORK ACCESS
|
# DISABLE TESTS REQUIRING NETWORK ACCESS
|
||||||
donttest="test_loading_a_image_from_url or test_image_alt_text or test_image_link_url or test_vtk_pane_from_url or test_vtkjs_pane or test_pdf_embed or test_server"
|
donttest="test_loading_a_image_from_url"
|
||||||
|
donttest="$donttest or test_image_alt_text"
|
||||||
|
donttest="$donttest or test_image_link_url"
|
||||||
|
donttest="$donttest or test_vtk_pane_from_url"
|
||||||
|
donttest="$donttest or test_vtkjs_pane"
|
||||||
|
donttest="$donttest or test_pdf_embed"
|
||||||
|
donttest="$donttest or test_server"
|
||||||
|
donttest="$donttest or (test_markdown_codeblocks and build_app.md)"
|
||||||
|
donttest="$donttest or (test_markdown_codeblocks and APIs.md)"
|
||||||
# https://github.com/holoviz/panel/issues/2101
|
# https://github.com/holoviz/panel/issues/2101
|
||||||
donttest+=" or test_record_modules_not_stdlib"
|
donttest="$donttest or test_record_modules_not_stdlib"
|
||||||
# flaky async test
|
# flaky async test
|
||||||
donttest+=" or test_server_async_callbacks"
|
donttest="$donttest or test_server_async_callbacks"
|
||||||
# -s: some tests execute twice and fail without it (?)
|
%pytest -ra -k "not ($donttest)"
|
||||||
%pytest -s -ra -k "not ($donttest)"
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%post
|
%post
|
||||||
@ -151,15 +156,15 @@ donttest+=" or test_server_async_callbacks"
|
|||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%license LICENSE.txt
|
%license LICENSE.txt
|
||||||
%doc README.md
|
%doc README.md
|
||||||
%doc examples-%{python_bin_suffix}/examples
|
|
||||||
%docdir %{python_sitelib}/%{modname}/examples
|
|
||||||
%python_alternative %{_bindir}/panel
|
%python_alternative %{_bindir}/panel
|
||||||
%{python_sitelib}/%{modname}/
|
%{python_sitelib}/%{modname}/
|
||||||
%{python_sitelib}/%{modname}-%{version}-py%{python_version}.egg-info/
|
%exclude %{python_sitelib}/%{modname}/tests
|
||||||
|
%{python_sitelib}/%{modname}-%{version}*-info/
|
||||||
|
|
||||||
%files -n jupyter-panel
|
%files -n jupyter-panel
|
||||||
%license LICENSE.txt
|
%license LICENSE.txt
|
||||||
%{_jupyter_server_confdir}/panel-client-jupyter.json
|
%_jupyter_config %{_jupyter_servextension_confdir}/panel-client-jupyter.json
|
||||||
|
%_jupyter_config %{_jupyter_server_confdir}/panel-client-jupyter.json
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user