mirror of
https://github.com/rhasspy/espeak-ng.git
synced 2026-11-07 15:24:02 +00:00
[1.31.08]
Fixed bug of missed character after & sequence when --punct option is used. lang=ta: First attempt at phoneme [l.] retroflex-l. lang=no: Use phoneme [R] for all cases of "r". git-svn-id: https://espeak.svn.sourceforge.net/svnroot/espeak/trunk@138 d46cf337-b52f-0410-862d-fd96e6ae7743
This commit is contained in:
@@ -171,15 +171,14 @@ v v2 w x z
|
||||
|
||||
Dictionary no_dict
|
||||
|
||||
@ @- @2 a A a: A: AI
|
||||
aI aU E E: e: I i: O
|
||||
o: OI U u- u-: u-I u: W
|
||||
y y: Y: Yy
|
||||
@ @2 a A a: A: AI aI
|
||||
aU E E: e: I i: O o:
|
||||
OI U u- u-: u-I u: W y
|
||||
y: Y: Yy
|
||||
|
||||
* : ; b d f g h
|
||||
j k l m n N p r
|
||||
R s S s; t v w x
|
||||
z
|
||||
: ; b d f g h j
|
||||
k l m n N p r R
|
||||
s S s; t v w x z
|
||||
|
||||
|
||||
Dictionary pl_dict
|
||||
|
||||
+20
-7
@@ -1,11 +1,11 @@
|
||||
|
||||
/
|
||||
|
||||
|
||||
// This file in UTF8 encoded
|
||||
|
||||
// 2006-11-18 Gilles Casse <gcasse@oralux.org>
|
||||
//
|
||||
// Updated 2008-02-06 Michel Such <michel.such@free.fr>
|
||||
// Updated 2008-02-08 Michel Such <michel.such@free.fr>
|
||||
//
|
||||
// * Numbers, a few abbreviations and exceptions.
|
||||
//
|
||||
@@ -330,6 +330,7 @@ où $brk
|
||||
suis $u+ $verb
|
||||
es Ez2 $u+ $verb
|
||||
est Et2 $u+
|
||||
ès Es $u
|
||||
d'est d'Est
|
||||
sommes $u+
|
||||
êtes $u+
|
||||
@@ -372,10 +373,10 @@ y i:gR'Ek $atend
|
||||
consent kO~s'A~t2
|
||||
scient si
|
||||
bénéficient benefisi $verb
|
||||
charisme karism
|
||||
concurrent kO~kyR'A~
|
||||
content kO~t@-t2 $verb
|
||||
couvent k'uvt2 $verb
|
||||
(couvent couvent) kuvA~||k'uvt2
|
||||
dessus d@sy
|
||||
dessous d@su
|
||||
divers divErz2
|
||||
@@ -516,8 +517,11 @@ flirt fl@Rt
|
||||
|
||||
|
||||
// words from other languages
|
||||
about @bawt
|
||||
amazon amaz'On
|
||||
(audible manager) od'ibl||manadZ'@r
|
||||
be bi
|
||||
by baj
|
||||
bluetooth blut'us
|
||||
boy bOj
|
||||
byte bajt
|
||||
@@ -539,12 +543,17 @@ girl g@Rl
|
||||
gnome gnom
|
||||
gnu gnu
|
||||
hamburger _!A~b@rg@r
|
||||
his iz $u
|
||||
inside insajd
|
||||
insight insajt
|
||||
internet E~tERnEt
|
||||
(internet explorer) E~tErn'Et||EksplOr'@r
|
||||
is iz
|
||||
it it
|
||||
its its
|
||||
klaxon klaksOn
|
||||
leader li:d@R
|
||||
light lajt
|
||||
let lEt
|
||||
link link
|
||||
liszt list
|
||||
lite lajt
|
||||
@@ -554,9 +563,9 @@ maker mE:jk@r
|
||||
media medja
|
||||
messenger mesEnZ'@r
|
||||
movy mu:v'i
|
||||
my maj
|
||||
new nj'u
|
||||
news nj'uz
|
||||
night najt
|
||||
not nOt
|
||||
ok oke
|
||||
open Op'@n
|
||||
@@ -574,16 +583,20 @@ spybot spajbOt
|
||||
sun s@n
|
||||
sunlight s@nlajt
|
||||
(text aloud) tEkst||@lawd
|
||||
the D@ $u
|
||||
them DEm $u
|
||||
there DEr $u
|
||||
they DE $u
|
||||
then DEn $u
|
||||
thunderbird f@ndERb@Rd
|
||||
time tajm
|
||||
timer tajm@r
|
||||
ubuntu ubuntu
|
||||
update @pd'E:jt
|
||||
upload @plod
|
||||
viavoice viavOjs
|
||||
while wajll
|
||||
windows windoz
|
||||
word wWRd
|
||||
wright _^_EN
|
||||
writer rajt@r
|
||||
yacht jot
|
||||
yes jEs $brk
|
||||
|
||||
+70
-17
@@ -3,7 +3,7 @@
|
||||
|
||||
// 2006-11-18 Gilles Casse <gcasse@oralux.org>
|
||||
//
|
||||
// Updated: 2008-02-06 Michel Such <michel.such@free.fr>
|
||||
// Updated: 2008-02-08 Michel Such <michel.such@free.fr>
|
||||
//
|
||||
// * The rules are based on Cicero TTS.
|
||||
//
|
||||
@@ -38,7 +38,8 @@
|
||||
a (nnA a // manne
|
||||
an (C A~ // ancien
|
||||
an (_ A~ // élan
|
||||
aoû u // août
|
||||
s) aoul (_ u // saoul
|
||||
aoû ut // août
|
||||
au (l_ O // Paul
|
||||
au o // autruche
|
||||
aud (_ o // chaud
|
||||
@@ -60,8 +61,11 @@
|
||||
cch k // bacchanale
|
||||
cc (Y ks // accéder
|
||||
cc k // occuper
|
||||
ar) ch (éo k // archéologue
|
||||
ar) ch (ét k // archétype architecte
|
||||
_) ch (arism k // charisme, charismatique
|
||||
_ar) ch (a k // archange, archaïque
|
||||
_ar) ch (é k // archéologue
|
||||
_ar) ch (o k // archonte, archosaurien
|
||||
_anar) ch (o k // anarchosyndicalisme
|
||||
_A) ch (o_ k // écho
|
||||
_eu) ch (ari k // eucharistie
|
||||
or) ch (esC k // orchestre
|
||||
@@ -135,6 +139,7 @@
|
||||
_cl) ef (_ e // clef
|
||||
Ck) e (r_ @ // worker, talker
|
||||
eaC) e (r_ @ // speaker, streamer
|
||||
ght) e (r_ @ // writer, fighter
|
||||
ooC) e (r_ @ // scooter
|
||||
ein (C E~ // peindre
|
||||
ein (_ E~
|
||||
@@ -152,6 +157,7 @@
|
||||
en (A A~n // enivrer
|
||||
|
||||
C) en (d_ A~ // comprend dépend
|
||||
od) en (dr E~ // rhododendron
|
||||
C) en (ds_ A~
|
||||
cipi) en (C A~ // récipient
|
||||
qu) en (d_ A~
|
||||
@@ -299,12 +305,12 @@
|
||||
_qu) e (_ @ // que
|
||||
|
||||
CC) e (_C @-
|
||||
CC) es (_C @-
|
||||
CC) es (_C @-z2
|
||||
-j) e (_ @-
|
||||
gu) e (_C @-
|
||||
gu) es (_C @-
|
||||
gu) es (_C @-z2
|
||||
qu) e (_C @-
|
||||
qu) es (_C @-
|
||||
qu) es (_C @-z2
|
||||
|
||||
e (_ // montre
|
||||
|
||||
@@ -335,6 +341,7 @@
|
||||
|
||||
e (CC E // infect pelle mettre
|
||||
e (C_ E
|
||||
es (_ z2
|
||||
|
||||
ll) e (m // actuellement guillemets
|
||||
|
||||
@@ -411,36 +418,71 @@ _) h (amb _! // hamburger
|
||||
_) h (amp _! // hampe
|
||||
_) h (an _! // hanche
|
||||
_) h (app _! // happer
|
||||
_) h (ara _! // haranguer
|
||||
_) h (arc _! // harceler
|
||||
_) h (ari _! // haricot haridelle
|
||||
_) h (arna _! // harnais
|
||||
_) h (ard _! // hardi
|
||||
_) h (are _! // hareng, haret
|
||||
_) h (arf _! // harfang
|
||||
_) h (argn _! // hargne
|
||||
_) h (ari _! // haricot haridelle
|
||||
_) h (arn _! // harnais
|
||||
_) h (arp _! // harpe
|
||||
_) h (as _! // hasard, hase
|
||||
_) h (âs _! // hâte
|
||||
_) h (au _! // haut
|
||||
_) h (av _! // havre
|
||||
_) h (eau _! // heaume
|
||||
_) h (él _! // hélas, héler
|
||||
_) h (èl _! // hèlement
|
||||
_) h (enn _! // henné, hennir
|
||||
_) h (enr _! // henri
|
||||
_) h (ère _! // hère
|
||||
_) h (ériss _! // hérisser, hérisson
|
||||
_) h (ern _! // hernie
|
||||
_) h (éro _! // héros, héron
|
||||
_) h (ers _! // herse
|
||||
_) h (ertz _! // hertz
|
||||
_) h (êtr _! // hêtre, hêtraie
|
||||
_) h (eula _! // heulandite
|
||||
_) h (eurt _! // heurter
|
||||
_) h (iat _! // hiatal, hiatus
|
||||
_) h (ibo _! // hibou
|
||||
_) h (ic _! // hic
|
||||
_) h (ide _! // hideux
|
||||
_) h (iér _! // hiéroglyphe
|
||||
_) h (i-fi _! // hi-fi
|
||||
_) h (igh _! // highlandais
|
||||
_) h (i-han _! // hi-han
|
||||
_) h (iss _! // hisser
|
||||
_) h (it _! // hit, hit-parad
|
||||
_) h (ob _! // hobby, hobereau
|
||||
_) h (och _! // hocher
|
||||
_) h (ock _! // hockey
|
||||
_) h (old _! // holding, hold-up
|
||||
_) h (oll _! // hollandais
|
||||
_) h (oma _! // homard
|
||||
_) h (ong _! // hongrois
|
||||
_) h (ondu _! // Honduras
|
||||
_) h (ong _! // Hongrie
|
||||
_) h (onn _! // honnir
|
||||
_) h (ont _! // honte
|
||||
_) h (oqu _! // hoquet
|
||||
_) h (ord _! // horde
|
||||
_) h (ou _! // houpe
|
||||
_) h (uit_ _! // huit
|
||||
_) h (ul _! // hululer
|
||||
_) h (um _! // humer
|
||||
_) h (orio _! // horion
|
||||
_) h (ormi _! // hormis
|
||||
_) h (ors _! // hors, horsain
|
||||
_) h (osan _! // hosanna
|
||||
_) h (ot _! // hot-dog, hotte
|
||||
_) h (ou _! // houle, housse
|
||||
|
||||
_) h (u _!
|
||||
_) h (uiss // huissier
|
||||
_) h (uî // huître
|
||||
_) h (umain // humain
|
||||
_) h (umani // humanité
|
||||
_) h (umb // humble
|
||||
_) h (umi // humide
|
||||
_) h (umo // humour
|
||||
_) h (un _! // huns
|
||||
_) h (ure_ _! // hure
|
||||
_) h (utte_ _! // hutte
|
||||
h // ahuri
|
||||
|
||||
|
||||
@@ -451,6 +493,8 @@ _) h (utte_ _! // hutte
|
||||
i (es_ i // parties
|
||||
i (e_ i
|
||||
i (A j // fermier portier patio renier
|
||||
ig (ht aj // right, fight, light
|
||||
wh) ile ajll // while, endwhile
|
||||
_) ill ill // illégal
|
||||
_m) ill il // mille
|
||||
v) ill il // village
|
||||
@@ -482,6 +526,8 @@ _) h (utte_ _! // hutte
|
||||
.group ï
|
||||
ïn (C E~ // coïncider
|
||||
ïn (_ E~
|
||||
ïs is // maïs, archaïsme
|
||||
ï (q i // archaïquee
|
||||
a) ï j // aïeul
|
||||
ï i // ambiguïté
|
||||
|
||||
@@ -534,6 +580,10 @@ _) h (utte_ _! // hutte
|
||||
_) oi (gnon O // oignons
|
||||
oin (C wE~
|
||||
oin (_ wE~ // coin
|
||||
C) oing (_ o'iN // going
|
||||
c) oing (_ wE~ // coing
|
||||
p) oing (_ wE~ // poing
|
||||
oing (_ wE~ // poing, coing
|
||||
oi wa // poil
|
||||
oid (_ wa // froid
|
||||
oê (l wa // poêle
|
||||
@@ -653,6 +703,7 @@ mou) rr RR // mourrai
|
||||
s s // verser sien
|
||||
|
||||
s (_S1 z2
|
||||
e) s (_h z2
|
||||
|
||||
_) s' (P2 s // s'amène
|
||||
sç s // immisça
|
||||
@@ -666,6 +717,7 @@ mou) rr RR // mourrai
|
||||
ss s // assez
|
||||
|
||||
ai) s (em s // vraisemblable
|
||||
archo) s s // anarchosyndicalisme
|
||||
ub) s (is z // subsister
|
||||
han) s (on s // chanson
|
||||
A) s (A z // baiser
|
||||
@@ -830,7 +882,8 @@ C) te (_ t@- // patte
|
||||
ym (b E~ // symbolique
|
||||
ym (p E~ // tympan
|
||||
y (nn i
|
||||
y (n_ i
|
||||
y (nA i
|
||||
yx (_ iks
|
||||
|
||||
yn E~ // laryngite
|
||||
|
||||
|
||||
+36
-36
@@ -37,8 +37,8 @@ z sEt
|
||||
_0 n'Ul
|
||||
_1 'e:n
|
||||
_2 t'u:
|
||||
_3 t@-*'e:
|
||||
_4 f'i:*E
|
||||
_3 tR'e:
|
||||
_4 f'i:RE
|
||||
_5 f'Em
|
||||
_6 s'Eks
|
||||
_7 S'u-:
|
||||
@@ -47,26 +47,26 @@ _9 n'i:
|
||||
_10 t'i:
|
||||
_11 'Elv@2
|
||||
_12 t'Olv
|
||||
_13 t@-*'Et:@n
|
||||
_14 fj'Urt@n
|
||||
_13 tR'Et:@n
|
||||
_14 fj'URt@n
|
||||
_15 f'Emt@n
|
||||
_16 s'Ekst@n
|
||||
_17 s'yt:@n
|
||||
_18 'At:@n
|
||||
_19 n'It:@n
|
||||
_2X s;'u-:@2
|
||||
_3X t@-*'Et:i:
|
||||
_4X f'Y:rti:
|
||||
_3X tR'Et:i:
|
||||
_4X f'Y:Rti:
|
||||
_5X f'Emti:
|
||||
_6X s'Eksti:
|
||||
_7X s'yt:i:
|
||||
_8X 'Ot:i:
|
||||
_9X n'It:i:
|
||||
_0C h'u-nd@-*@2
|
||||
_1C 'Et||h'u-nd@-*@2
|
||||
_0C h'u-ndR@2
|
||||
_1C 'Et||h'u-ndR@2
|
||||
_0M1 t'u-:s@n
|
||||
_1M1 'Et||t'u-:s@n
|
||||
_0M2 m'Illi:;,u:n@r
|
||||
_0M2 m'Illi:;,u:n@R
|
||||
_1M2 'e:n||m'Illi:;,u:n
|
||||
|
||||
_0and u:g
|
||||
@@ -75,34 +75,34 @@ _dpt kOmmA
|
||||
// punctuation and symbols
|
||||
//========================
|
||||
|
||||
_! u-:t@-*u:pstENn
|
||||
_" AnfY:rS@l
|
||||
_# nu-mm@rtENn
|
||||
_$ dOllA:r
|
||||
% p@-*'u:s'Ent
|
||||
& O:g
|
||||
_' ApUst@-*'u:f
|
||||
_( pa*aNt'e:s||b@j'ynn@r
|
||||
_) pa*aNt'e:s||Sl'u-t:
|
||||
_* ss;arn@2
|
||||
+ plu-s
|
||||
_! u-:tRu:pstENn
|
||||
_" AnfY:RS@l
|
||||
_# nu-mm@RtENn
|
||||
_$ dOllA:R
|
||||
% pR'u:s'Ent
|
||||
& O:g
|
||||
_' ApUstR'u:f
|
||||
_( paRaNt'e:s||b@j'ynn@R
|
||||
_) paRaNt'e:s||Sl'u-t:
|
||||
_* ss;aRn@2
|
||||
+ plu-s
|
||||
_, kOmmA
|
||||
_- st@-*e:k
|
||||
_- stRe:k
|
||||
_. pu-Nktu-:m
|
||||
/ sk@-*Ost@-*@k
|
||||
/ skROstR@k
|
||||
_: ku:lOn
|
||||
_; se:mi:ku:lOn
|
||||
_< mInd@-*@2||En
|
||||
_= arli:k
|
||||
_< mIndR@2||En
|
||||
_= aRli:k
|
||||
_> stWR@||En
|
||||
_? spWrSmOlstENn
|
||||
@ k@-*WllAlfA
|
||||
_[ v'Enst@-*@2||h'A:ke:pa*aNt'e:s
|
||||
_\ OmvEndt||sk@-*Ost@-*@k
|
||||
_] h'Yy*@2||h'A:ke:pa*aNt'e:s
|
||||
^ sIrku-mflEks
|
||||
__ u-ndarSt@-*@k
|
||||
_` 'OmvEndt||ApUst@-*'u:f
|
||||
_? spWRSmOlstENn
|
||||
@ kRWllAlfA
|
||||
_[ v'EnstR@2||h'A:ke:paRaNt'e:s
|
||||
_\ OmvEndt||skROstR@k
|
||||
_] h'YyR@2||h'A:ke:paRaNt'e:s
|
||||
^ sIRku-mflEks
|
||||
__ u-ndaRStR@k
|
||||
_` 'OmvEndt||ApUstR'u:f
|
||||
|
||||
|
||||
|
||||
@@ -118,7 +118,7 @@ ei $u
|
||||
|
||||
|
||||
// pronouns
|
||||
jeg jaI $u+
|
||||
jeg jE:I $u+
|
||||
du $u+
|
||||
han $u+
|
||||
hun $u+
|
||||
@@ -211,7 +211,7 @@ ikke $u
|
||||
// auxillary verbs (be, have, can, etc)
|
||||
|
||||
være $u+
|
||||
er ,E:r
|
||||
er ,E:R
|
||||
var $u
|
||||
vært $u
|
||||
|
||||
@@ -254,8 +254,8 @@ i i: $atend
|
||||
// MAIN WORD DICTIONARY
|
||||
//*********************
|
||||
|
||||
der dE:r
|
||||
her hE:r
|
||||
der dE:R
|
||||
her hE:R
|
||||
kom kOm
|
||||
loe lu: $capital
|
||||
system syst'e:m
|
||||
|
||||
+6
-10
@@ -128,11 +128,7 @@
|
||||
qu kw
|
||||
|
||||
.group r
|
||||
r r
|
||||
rr R
|
||||
K) r @-*
|
||||
A) r (A *
|
||||
r) r
|
||||
r R
|
||||
rs (_ S
|
||||
|
||||
.group s
|
||||
@@ -210,9 +206,9 @@
|
||||
é 'e:
|
||||
ü y:
|
||||
|
||||
$ dOllA:r
|
||||
\\ OmvEndt||sk@-*Ost@-*@k
|
||||
! _:'u-:t@-*u:pstENn_:
|
||||
$ dOllA:R
|
||||
\\ OmvEndt||skROstR@k
|
||||
! _:'u-:tRu:pstENn_:
|
||||
!) !
|
||||
|
||||
. pu-Nktu-:m
|
||||
@@ -224,12 +220,12 @@
|
||||
C_) - (_D _
|
||||
--) -
|
||||
|
||||
* ss;arn@2
|
||||
* ss;aRn@2
|
||||
*) * (*
|
||||
**
|
||||
**) * (_ _::
|
||||
|
||||
= arli:k
|
||||
= aRli:k
|
||||
= (==
|
||||
=) = (=
|
||||
==) = (_ _::
|
||||
|
||||
+2
-2
@@ -122,8 +122,8 @@
|
||||
ல la
|
||||
ல (B l
|
||||
|
||||
ள l/2a // this should be [l.] not [l/2]
|
||||
ள (B l/2
|
||||
ள l.a
|
||||
ள (B l.
|
||||
|
||||
ழ z.a
|
||||
ழ (B z.
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
fr 44 125
|
||||
fr_ca 11 125
|
||||
hi 50 135
|
||||
ta 15 137
|
||||
ta 16 138
|
||||
hu 23 115
|
||||
nl 28 122
|
||||
pl 15 110
|
||||
@@ -359,6 +359,7 @@ l/l_long [l] base
|
||||
[l;] ro
|
||||
l/lo [(o)] base
|
||||
[l] fr
|
||||
l^/l_rfx [l.] ta
|
||||
l/lu [(u)] base
|
||||
[l] fr
|
||||
l/tl [l] base
|
||||
|
||||
Binary file not shown.
@@ -96,6 +96,12 @@ phoneme u-
|
||||
endphoneme
|
||||
|
||||
|
||||
phoneme l.
|
||||
liquid rfx
|
||||
lengthmod 7
|
||||
formants l^/l_rfx
|
||||
endphoneme
|
||||
|
||||
|
||||
// ?? This is standard [v]. Should be it [v] without the fricative noise?
|
||||
phoneme v
|
||||
|
||||
+1
-1
@@ -279,7 +279,7 @@ static TONE_NUCLEUS tone_nucleus_table[N_TONE_NUCLEUS_TABLE] = {
|
||||
{PITCHfrise, 35, 8, PITCHfrise2, 35,10, NULL, 15, 23, 0}, // 1 comma
|
||||
{PITCHfrise, 39,10, PITCHfrise2, 36,10, NULL, 15, 28, 0}, // 2 question
|
||||
// {PITCHfall, 41, 4, PITCHfall, 41,27, NULL, 16, 4, T_EMPH}, // 3 exclamation
|
||||
{PITCHfall, 43, 3, PITCHfall, 45,35, NULL, 35, 4, T_EMPH}, // 3 exclamation
|
||||
{PITCHfall, 43, 3, PITCHfall, 43,35, NULL, 35, 4, T_EMPH}, // 3 exclamation
|
||||
// {PITCHrisefall,47, 8, PITCHrise, 48,30, NULL, 48, 5, T_EMPH}, // 3 exclamation
|
||||
{PITCHfall, 38, 2, PITCHfall, 42,30, NULL, 15, 5, 0}, // 4 statement, emphatic
|
||||
{PITCHfall, 28, 5, PITCHfall, 28, 9, NULL, 12, 7, 0}, // 5 statement, less intonation
|
||||
|
||||
+3
-3
@@ -723,7 +723,7 @@ int Translator::AnnouncePunctuation(int c1, int c2, char *buf, int bufix)
|
||||
UngetC(c2);
|
||||
if(option_ssml)
|
||||
{
|
||||
if(c1 == '<')
|
||||
if((c1 == '<') || (c1 == '&'))
|
||||
ssml_ignore_l_angle = c1; // this was < which was converted to <, don't pick it up again as <
|
||||
}
|
||||
ungot_char2 = c1;
|
||||
@@ -1791,7 +1791,7 @@ f_input = f_in; // for GetC etc
|
||||
|
||||
if((option_ssml) && (phoneme_mode==0))
|
||||
{
|
||||
if((c1 == '&') && ((c2=='#') || ((c2 >= 'a') && (c2 <= 'z'))))
|
||||
if((ssml_ignore_l_angle != '&') && (c1 == '&') && ((c2=='#') || ((c2 >= 'a') && (c2 <= 'z'))))
|
||||
{
|
||||
n_xml_buf = 0;
|
||||
c1 = c2;
|
||||
@@ -1829,7 +1829,7 @@ f_input = f_in; // for GetC etc
|
||||
}
|
||||
}
|
||||
else
|
||||
if((c1 == '<') && !ssml_ignore_l_angle)
|
||||
if((c1 == '<') && (ssml_ignore_l_angle != '<'))
|
||||
{
|
||||
// SSML Tag
|
||||
n_xml_buf = 0;
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
#include "translate.h"
|
||||
#include "wave.h"
|
||||
|
||||
const char *version_string = "1.31.07 08.Feb.08";
|
||||
const char *version_string = "1.31.08 08.Feb.08";
|
||||
const int version_phdata = 0x013105;
|
||||
|
||||
int option_device_number = -1;
|
||||
|
||||
Reference in New Issue
Block a user