mirror of
https://github.com/barrucadu/dejafu.git
synced 2024-11-25 09:24:16 +03:00
Fix formatting issues in CHANGELOGs
This commit is contained in:
parent
99b654190d
commit
ee99cbb975
@ -46,7 +46,7 @@ Fixed
|
|||||||
|
|
||||||
|
|
||||||
1.11.0.0 (2020-05-14)
|
1.11.0.0 (2020-05-14)
|
||||||
--------------------
|
---------------------
|
||||||
|
|
||||||
* Git: :tag:`concurrency-1.11.0.0`
|
* Git: :tag:`concurrency-1.11.0.0`
|
||||||
* Hackage: :hackage:`concurrency-1.11.0.0`
|
* Hackage: :hackage:`concurrency-1.11.0.0`
|
||||||
@ -183,9 +183,7 @@ Changed
|
|||||||
|
|
||||||
* (:issue:`286`) Copy across changes from the :hackage:`stm` package:
|
* (:issue:`286`) Copy across changes from the :hackage:`stm` package:
|
||||||
|
|
||||||
* Make definition of ``readTQueue`` consistent with
|
* Make definition of ``readTQueue`` consistent with ``readTBQueue``
|
||||||
``readTBQueue``
|
|
||||||
|
|
||||||
* Performance improvements to ``peekTQueue`` and ``peekTBQueue``.
|
* Performance improvements to ``peekTQueue`` and ``peekTBQueue``.
|
||||||
|
|
||||||
Miscellaneous
|
Miscellaneous
|
||||||
|
@ -139,6 +139,7 @@ Added
|
|||||||
|
|
||||||
* Thread action constructors for the ``MonadConc`` ``getMaskingState``
|
* Thread action constructors for the ``MonadConc`` ``getMaskingState``
|
||||||
function:
|
function:
|
||||||
|
|
||||||
* ``Test.DejaFu.Types.ThreadAction``, ``GetMaskingState``
|
* ``Test.DejaFu.Types.ThreadAction``, ``GetMaskingState``
|
||||||
* ``Test.DejaFu.Types.Lookahead``, ``WillGetMaskingState``
|
* ``Test.DejaFu.Types.Lookahead``, ``WillGetMaskingState``
|
||||||
|
|
||||||
@ -194,25 +195,28 @@ Miscellaneous
|
|||||||
Added
|
Added
|
||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
* The ``Test.DejaFu.Types.MonadDejaFu`` typeclass, containing the
|
* The ``Test.DejaFu.Types.MonadDejaFu`` typeclass, containing the primitives
|
||||||
primitives needed to run a concurrent program. There are instances
|
needed to run a concurrent program. There are instances for:
|
||||||
for:
|
|
||||||
* ``IO``, which is probably the ``MonadConc`` instance people used
|
* ``IO``, which is probably the ``MonadConc`` instance people used previously,
|
||||||
previously, so there is no breaking change there.
|
so there is no breaking change there.
|
||||||
* ``CatchT (ST t)``, meaning that concurrent programs can be run
|
* ``CatchT (ST t)``, meaning that concurrent programs can be run without
|
||||||
without ``IO`` once more.
|
``IO`` once more.
|
||||||
|
|
||||||
|
* Thread action constructors for ``MonadConc`` ``supportsBoundThreads``
|
||||||
|
function:
|
||||||
|
|
||||||
* Thread action constructors for ``MonadConc``
|
|
||||||
``supportsBoundThreads`` function:
|
|
||||||
* ``Test.DejaFu.Types.ThreadAction``, ``SupportsBoundThreads``
|
* ``Test.DejaFu.Types.ThreadAction``, ``SupportsBoundThreads``
|
||||||
* ``Test.DejaFu.Types.Lookahead``, ``WillSupportsBoundThreads``
|
* ``Test.DejaFu.Types.Lookahead``, ``WillSupportsBoundThreads``
|
||||||
|
|
||||||
Changed
|
Changed
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
* Many functions which had a ``MonadConc`` constraint now have a
|
* Many functions which had a ``MonadConc`` constraint now have a ``MonadDejaFu``
|
||||||
``MonadDejaFu`` constraint:
|
constraint:
|
||||||
|
|
||||||
* In ``Test.DejaFu``
|
* In ``Test.DejaFu``
|
||||||
|
|
||||||
* ``autocheck``
|
* ``autocheck``
|
||||||
* ``autocheckWay``
|
* ``autocheckWay``
|
||||||
* ``autocheckWithSettings``
|
* ``autocheckWithSettings``
|
||||||
@ -225,11 +229,15 @@ Changed
|
|||||||
* ``runTest``
|
* ``runTest``
|
||||||
* ``runTestWay``
|
* ``runTestWay``
|
||||||
* ``runTestWithSettings``
|
* ``runTestWithSettings``
|
||||||
|
|
||||||
* In ``Test.DejaFu.Conc``
|
* In ``Test.DejaFu.Conc``
|
||||||
|
|
||||||
* ``runConcurrent``
|
* ``runConcurrent``
|
||||||
* ``recordSnapshot``
|
* ``recordSnapshot``
|
||||||
* ``runSnapshot``
|
* ``runSnapshot``
|
||||||
|
|
||||||
* In ``Test.DejaFu.SCT``
|
* In ``Test.DejaFu.SCT``
|
||||||
|
|
||||||
* ``runSCT``
|
* ``runSCT``
|
||||||
* ``resultsSet``
|
* ``resultsSet``
|
||||||
* ``runSCT'``
|
* ``runSCT'``
|
||||||
@ -269,6 +277,7 @@ Added
|
|||||||
|
|
||||||
* The ``Program`` types and their constructors (re-exported from
|
* The ``Program`` types and their constructors (re-exported from
|
||||||
``Test.DejaFu``):
|
``Test.DejaFu``):
|
||||||
|
|
||||||
* ``Test.DejaFu.Conc.Program``
|
* ``Test.DejaFu.Conc.Program``
|
||||||
* ``Test.DejaFu.Conc.Basic``
|
* ``Test.DejaFu.Conc.Basic``
|
||||||
* ``Test.DejaFu.Conc.WithSetup``
|
* ``Test.DejaFu.Conc.WithSetup``
|
||||||
@ -279,6 +288,7 @@ Added
|
|||||||
|
|
||||||
* The ``Invariant`` type and associated functions (re-exported from
|
* The ``Invariant`` type and associated functions (re-exported from
|
||||||
``Test.DejaFu``):
|
``Test.DejaFu``):
|
||||||
|
|
||||||
* ``Test.DejaFu.Conc.Invariant``
|
* ``Test.DejaFu.Conc.Invariant``
|
||||||
* ``Test.DejaFu.Conc.registerInvariant``
|
* ``Test.DejaFu.Conc.registerInvariant``
|
||||||
* ``Test.DejaFu.Conc.inspectIORef``
|
* ``Test.DejaFu.Conc.inspectIORef``
|
||||||
@ -286,6 +296,7 @@ Added
|
|||||||
* ``Test.DejaFu.Conc.inspectTVar``
|
* ``Test.DejaFu.Conc.inspectTVar``
|
||||||
|
|
||||||
* New snapshotting functions:
|
* New snapshotting functions:
|
||||||
|
|
||||||
* ``Test.DejaFu.Conc.Snapshot``
|
* ``Test.DejaFu.Conc.Snapshot``
|
||||||
* ``Test.DejaFu.Conc.recordSnapshot``
|
* ``Test.DejaFu.Conc.recordSnapshot``
|
||||||
* ``Test.DejaFu.Conc.runSnapshot``
|
* ``Test.DejaFu.Conc.runSnapshot``
|
||||||
@ -299,6 +310,7 @@ Added
|
|||||||
* ``Test.DejaFu.runTestWithSettings`` function.
|
* ``Test.DejaFu.runTestWithSettings`` function.
|
||||||
|
|
||||||
* A simplified form of the concurrency state:
|
* A simplified form of the concurrency state:
|
||||||
|
|
||||||
* ``Test.DejaFu.Types.ConcurrencyState``
|
* ``Test.DejaFu.Types.ConcurrencyState``
|
||||||
* ``Test.DejaFu.Types.isBuffered``
|
* ``Test.DejaFu.Types.isBuffered``
|
||||||
* ``Test.DejaFu.Types.numBuffered``
|
* ``Test.DejaFu.Types.numBuffered``
|
||||||
@ -318,6 +330,7 @@ Changed
|
|||||||
return a representative trace for each unique condition.
|
return a representative trace for each unique condition.
|
||||||
|
|
||||||
* Functions which took a ``ConcT`` now take a ``Program pty``:
|
* Functions which took a ``ConcT`` now take a ``Program pty``:
|
||||||
|
|
||||||
* ``Test.DejaFu.autocheck``
|
* ``Test.DejaFu.autocheck``
|
||||||
* ``Test.DejaFu.autocheckWay``
|
* ``Test.DejaFu.autocheckWay``
|
||||||
* ``Test.DejaFu.autocheckWithSettings``
|
* ``Test.DejaFu.autocheckWithSettings``
|
||||||
@ -343,22 +356,27 @@ Changed
|
|||||||
* ``Test.DejaFu.Conc.ConcT`` is an alias for ``Program Basic``.
|
* ``Test.DejaFu.Conc.ConcT`` is an alias for ``Program Basic``.
|
||||||
|
|
||||||
* ``Test.DejaFu.Types.Bounds``:
|
* ``Test.DejaFu.Types.Bounds``:
|
||||||
|
|
||||||
* Removed ``boundLength`` field.
|
* Removed ``boundLength`` field.
|
||||||
|
|
||||||
* ``Test.DejaFu.Types.Condition``:
|
* ``Test.DejaFu.Types.Condition``:
|
||||||
|
|
||||||
* Added ``InvariantFailure`` constructor
|
* Added ``InvariantFailure`` constructor
|
||||||
* Removed ``STMDeadlock`` constructor
|
* Removed ``STMDeadlock`` constructor
|
||||||
|
|
||||||
* ``Test.DejaFu.Types.Error``:
|
* ``Test.DejaFu.Types.Error``:
|
||||||
* Removed ``NestedSubconcurrency``, ``MultithreadedSubconcurrency``,
|
|
||||||
and ``LateDontCheck`` constructors.
|
* Removed ``NestedSubconcurrency``, ``MultithreadedSubconcurrency``, and
|
||||||
|
``LateDontCheck`` constructors.
|
||||||
|
|
||||||
* ``Test.DejaFu.Types.Lookahead``:
|
* ``Test.DejaFu.Types.Lookahead``:
|
||||||
|
|
||||||
* Added ``WillRegisterInvariant`` constructor
|
* Added ``WillRegisterInvariant`` constructor
|
||||||
* Removed ``WillSubconcurrency``, ``WillStopSubconcurrency``, and
|
* Removed ``WillSubconcurrency``, ``WillStopSubconcurrency``, and
|
||||||
``WillDontCheck`` constructors
|
``WillDontCheck`` constructors
|
||||||
|
|
||||||
* ``Test.DejaFu.Types.ThreadAction``:
|
* ``Test.DejaFu.Types.ThreadAction``:
|
||||||
|
|
||||||
* Added ``RegisterInvariant`` constructor
|
* Added ``RegisterInvariant`` constructor
|
||||||
* Removed ``Subconcurrency``, ``StopSubconcurrency``, and
|
* Removed ``Subconcurrency``, ``StopSubconcurrency``, and
|
||||||
``DontCheck`` constructors
|
``DontCheck`` constructors
|
||||||
@ -367,6 +385,7 @@ Removed
|
|||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
* The deprecated functions:
|
* The deprecated functions:
|
||||||
|
|
||||||
* ``Test.DejaFu.dejafuDiscard``
|
* ``Test.DejaFu.dejafuDiscard``
|
||||||
* ``Test.DejaFu.SCT.runSCTDiscard``
|
* ``Test.DejaFu.SCT.runSCTDiscard``
|
||||||
* ``Test.DejaFu.SCT.runSCTDiscard'``
|
* ``Test.DejaFu.SCT.runSCTDiscard'``
|
||||||
@ -382,6 +401,7 @@ Removed
|
|||||||
* The deprecated type ``Test.DejaFu.Types.Failure``
|
* The deprecated type ``Test.DejaFu.Types.Failure``
|
||||||
|
|
||||||
* Old snapshotting functions:
|
* Old snapshotting functions:
|
||||||
|
|
||||||
* ``Test.DejaFu.Conc.DCSnapshot``
|
* ``Test.DejaFu.Conc.DCSnapshot``
|
||||||
* ``Test.DejaFu.Conc.runForDCSnapshot``
|
* ``Test.DejaFu.Conc.runForDCSnapshot``
|
||||||
* ``Test.DejaFu.Conc.runWithDCSnapshot``
|
* ``Test.DejaFu.Conc.runWithDCSnapshot``
|
||||||
@ -408,6 +428,7 @@ Added
|
|||||||
|
|
||||||
* ``Test.DejaFu.Types.Error`` for internal errors and misuses, with
|
* ``Test.DejaFu.Types.Error`` for internal errors and misuses, with
|
||||||
predicates:
|
predicates:
|
||||||
|
|
||||||
* ``Test.DejaFu.Types.isSchedulerError``
|
* ``Test.DejaFu.Types.isSchedulerError``
|
||||||
* ``Test.DejaFu.Types.isIncorrectUsage``
|
* ``Test.DejaFu.Types.isIncorrectUsage``
|
||||||
|
|
||||||
@ -817,22 +838,28 @@ Added
|
|||||||
|
|
||||||
* (:pull:`238`) A record-based approach to SCT configuration:
|
* (:pull:`238`) A record-based approach to SCT configuration:
|
||||||
|
|
||||||
* ``Test.DejaFu.Settings``
|
* ``Test.DejaFu.Settings`` (re-exported from ``Test.Dejafu`` and
|
||||||
(re-exported from ``Test.Dejafu`` and ``Test.DejaFu.SCT``)
|
``Test.DejaFu.SCT``)
|
||||||
* ``Test.DejaFu.Settings.Settings``
|
* ``Test.DejaFu.Settings.Settings``
|
||||||
* ``Test.DejaFu.Settings.defaultSettings``
|
* ``Test.DejaFu.Settings.defaultSettings``
|
||||||
* ``Test.DejaFu.Settings.fromWayAndMemType``
|
* ``Test.DejaFu.Settings.fromWayAndMemType``
|
||||||
|
|
||||||
* Lenses:
|
* Lenses:
|
||||||
|
|
||||||
* ``Test.DejaFu.Settings.lway``
|
* ``Test.DejaFu.Settings.lway``
|
||||||
* ``Test.DejaFu.Settings.lmemtype``
|
* ``Test.DejaFu.Settings.lmemtype``
|
||||||
* ``Test.DejaFu.Settings.ldiscard``
|
* ``Test.DejaFu.Settings.ldiscard``
|
||||||
* ``Test.DejaFu.Settings.learlyExit``
|
* ``Test.DejaFu.Settings.learlyExit``
|
||||||
* ``Test.DejaFu.Settings.ldebugShow``
|
* ``Test.DejaFu.Settings.ldebugShow``
|
||||||
* ``Test.DejaFu.Settings.ldebugPrint``
|
* ``Test.DejaFu.Settings.ldebugPrint``
|
||||||
|
|
||||||
* Lens helpers:
|
* Lens helpers:
|
||||||
|
|
||||||
* ``Test.DejaFu.Settings.get``
|
* ``Test.DejaFu.Settings.get``
|
||||||
* ``Test.DejaFu.Settings.set``
|
* ``Test.DejaFu.Settings.set``
|
||||||
|
|
||||||
* Runners:
|
* Runners:
|
||||||
|
|
||||||
* ``Test.DejaFu.SCT.runSCTWithSettings``
|
* ``Test.DejaFu.SCT.runSCTWithSettings``
|
||||||
* ``Test.DejaFu.SCT.runSCTWithSettings'``
|
* ``Test.DejaFu.SCT.runSCTWithSettings'``
|
||||||
* ``Test.DejaFu.SCT.resultsSetWithSettings``
|
* ``Test.DejaFu.SCT.resultsSetWithSettings``
|
||||||
@ -1366,9 +1393,9 @@ Added
|
|||||||
* (:issue:`90`) A way to selectively discard results or traces:
|
* (:issue:`90`) A way to selectively discard results or traces:
|
||||||
|
|
||||||
* Type: ``Test.DejaFu.SCT.Discard``
|
* Type: ``Test.DejaFu.SCT.Discard``
|
||||||
* Functions: ``Test.DejaFu.SCT.runSCTDiscard``,
|
* Functions: ``Test.DejaFu.SCT.runSCTDiscard``, ``resultsSetDiscard``,
|
||||||
``resultsSetDiscard``, ``sctBoundDiscard``,
|
``sctBoundDiscard``, ``sctUniformRandomDiscard``, and
|
||||||
``sctUniformRandomDiscard``, and ``sctWeightedRandomDiscard``.
|
``sctWeightedRandomDiscard``.
|
||||||
|
|
||||||
* (:issue:`90`) Discarding variants of the testing functions:
|
* (:issue:`90`) Discarding variants of the testing functions:
|
||||||
|
|
||||||
@ -1439,13 +1466,12 @@ Added
|
|||||||
* Smart constructors for ``Test.DejaFu.SCT.Way`` (also re-exported
|
* Smart constructors for ``Test.DejaFu.SCT.Way`` (also re-exported
|
||||||
from ``Test.DejaFu``):
|
from ``Test.DejaFu``):
|
||||||
|
|
||||||
* ``Test.DejaFu.SCT.systematically``, like the old
|
* ``Test.DejaFu.SCT.systematically``, like the old ``Systematically``.
|
||||||
``Systematically``.
|
|
||||||
* ``Test.DejaFu.SCT.randomly``, like the old ``Randomly``.
|
* ``Test.DejaFu.SCT.randomly``, like the old ``Randomly``.
|
||||||
* ``Test.DejaFu.SCT.uniformly``, a new uniform (as opposed to
|
* ``Test.DejaFu.SCT.uniformly``, a new uniform (as opposed to weighted) random
|
||||||
weighted) random scheduler.
|
scheduler.
|
||||||
* ``Test.DejaFu.SCT.swarmy``, like the old ``Randomly`` but which
|
* ``Test.DejaFu.SCT.swarmy``, like the old ``Randomly`` but which can use the
|
||||||
can use the same weights for multiple executions.
|
same weights for multiple executions.
|
||||||
|
|
||||||
Changed
|
Changed
|
||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
@ -90,6 +90,7 @@ Added
|
|||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
* Re-exports for the ``Program`` types and their constructors:
|
* Re-exports for the ``Program`` types and their constructors:
|
||||||
|
|
||||||
* ``Test.HUnit.DejaFu.Program``
|
* ``Test.HUnit.DejaFu.Program``
|
||||||
* ``Test.HUnit.DejaFu.Basic``
|
* ``Test.HUnit.DejaFu.Basic``
|
||||||
* ``Test.HUnit.DejaFu.ConcT``
|
* ``Test.HUnit.DejaFu.ConcT``
|
||||||
@ -101,6 +102,7 @@ Added
|
|||||||
* ``Test.HUnit.DejaFu.withSetupAndTeardown``
|
* ``Test.HUnit.DejaFu.withSetupAndTeardown``
|
||||||
|
|
||||||
* Re-exports for the ``Invariant`` type and its functions:
|
* Re-exports for the ``Invariant`` type and its functions:
|
||||||
|
|
||||||
* ``Test.HUnit.DejaFu.Invariant``
|
* ``Test.HUnit.DejaFu.Invariant``
|
||||||
* ``Test.HUnit.DejaFu.registerInvariant``
|
* ``Test.HUnit.DejaFu.registerInvariant``
|
||||||
* ``Test.HUnit.DejaFu.inspectIORef``
|
* ``Test.HUnit.DejaFu.inspectIORef``
|
||||||
@ -111,6 +113,7 @@ Changed
|
|||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
* Functions which took a ``ConcIO`` now take a ``Program pty IO``:
|
* Functions which took a ``ConcIO`` now take a ``Program pty IO``:
|
||||||
|
|
||||||
* ``Test.HUnit.DejaFu.testAuto``
|
* ``Test.HUnit.DejaFu.testAuto``
|
||||||
* ``Test.HUnit.DejaFu.testAutoWay``
|
* ``Test.HUnit.DejaFu.testAutoWay``
|
||||||
* ``Test.HUnit.DejaFu.testAutoWithSettings``
|
* ``Test.HUnit.DejaFu.testAutoWithSettings``
|
||||||
@ -125,6 +128,7 @@ Removed
|
|||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
* The deprecated functions:
|
* The deprecated functions:
|
||||||
|
|
||||||
* ``Test.HUnit.DejaFu.testDejafuDiscard``
|
* ``Test.HUnit.DejaFu.testDejafuDiscard``
|
||||||
* ``Test.HUnit.DejaFu.testDejafusDiscard``
|
* ``Test.HUnit.DejaFu.testDejafusDiscard``
|
||||||
|
|
||||||
|
@ -158,6 +158,7 @@ Added
|
|||||||
~~~~~
|
~~~~~
|
||||||
|
|
||||||
* Re-exports for the ``Program`` types and their constructors:
|
* Re-exports for the ``Program`` types and their constructors:
|
||||||
|
|
||||||
* ``Test.Tasty.DejaFu.Program``
|
* ``Test.Tasty.DejaFu.Program``
|
||||||
* ``Test.Tasty.DejaFu.Basic``
|
* ``Test.Tasty.DejaFu.Basic``
|
||||||
* ``Test.Tasty.DejaFu.ConcT``
|
* ``Test.Tasty.DejaFu.ConcT``
|
||||||
@ -169,6 +170,7 @@ Added
|
|||||||
* ``Test.Tasty.DejaFu.withSetupAndTeardown``
|
* ``Test.Tasty.DejaFu.withSetupAndTeardown``
|
||||||
|
|
||||||
* Re-exports for the ``Invariant`` type and its functions:
|
* Re-exports for the ``Invariant`` type and its functions:
|
||||||
|
|
||||||
* ``Test.Tasty.DejaFu.Invariant``
|
* ``Test.Tasty.DejaFu.Invariant``
|
||||||
* ``Test.Tasty.DejaFu.registerInvariant``
|
* ``Test.Tasty.DejaFu.registerInvariant``
|
||||||
* ``Test.Tasty.DejaFu.inspectIORef``
|
* ``Test.Tasty.DejaFu.inspectIORef``
|
||||||
@ -179,6 +181,7 @@ Changed
|
|||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
* Functions which took a ``ConcIO`` now take a ``Program pty IO``:
|
* Functions which took a ``ConcIO`` now take a ``Program pty IO``:
|
||||||
|
|
||||||
* ``Test.Tasty.DejaFu.testAuto``
|
* ``Test.Tasty.DejaFu.testAuto``
|
||||||
* ``Test.Tasty.DejaFu.testAutoWay``
|
* ``Test.Tasty.DejaFu.testAutoWay``
|
||||||
* ``Test.Tasty.DejaFu.testAutoWithSettings``
|
* ``Test.Tasty.DejaFu.testAutoWithSettings``
|
||||||
@ -193,6 +196,7 @@ Removed
|
|||||||
~~~~~~~
|
~~~~~~~
|
||||||
|
|
||||||
* The deprecated functions:
|
* The deprecated functions:
|
||||||
|
|
||||||
* ``Test.Tasty.DejaFu.testDejafuDiscard``
|
* ``Test.Tasty.DejaFu.testDejafuDiscard``
|
||||||
* ``Test.Tasty.DejaFu.testDejafusDiscard``
|
* ``Test.Tasty.DejaFu.testDejafusDiscard``
|
||||||
|
|
||||||
@ -687,8 +691,8 @@ Miscellaneous
|
|||||||
|
|
||||||
* Git: :tag:`tasty-dejafu-0.1.1.0`
|
* Git: :tag:`tasty-dejafu-0.1.1.0`
|
||||||
|
|
||||||
**Note:** this was misnumbered (it should have been 0.2.1.0) *and* was
|
**Note:** this was misnumbered (it should have been 0.2.1.0) *and* was never
|
||||||
never pushed to Hackage, whoops!
|
pushed to Hackage, whoops!
|
||||||
|
|
||||||
Miscellaneous
|
Miscellaneous
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
|
Loading…
Reference in New Issue
Block a user