File: plural-3

package info (click to toggle)
gettext 0.23.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 168,104 kB
  • sloc: ansic: 532,579; sh: 68,252; perl: 28,011; makefile: 9,068; lisp: 3,184; yacc: 1,055; java: 615; cs: 589; cpp: 397; objc: 343; sed: 79; tcl: 63; xml: 40; pascal: 11; awk: 7; php: 7
file content (84 lines) | stat: -rw-r--r-- 30,446 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#! /bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test that ngettext() does not crash when the plural form rule leads to
# a stack overflow.

# In fact, a stack overflow at parsing time is caught by the bison parser
# (plural.c, macro YYMAXDEPTH = 10000), and a stack overflow at evaluation
# time is caught as well (eval-plural.h, macro EVAL_MAXDEPTH = 100).

test -d plural-3-dir || mkdir plural-3-dir
test -d plural-3-dir/ll || mkdir plural-3-dir/ll
test -d plural-3-dir/ll/LC_MESSAGES || mkdir plural-3-dir/ll/LC_MESSAGES

# This one does not exceed YYMAXDEPTH, i.e. the parser succeeds, and we can
# test the stack consumption of plural_eval().

cat > plural-3-ll.po <<EOF
msgid ""
msgstr ""
"Project-Id-Version: dummy 0.0\n"
"PO-Revision-Date: 2023-09-22 12:51:48 CEST\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: lalala\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(n!=1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));\n"

msgid "X"
msgid_plural "Y"
msgstr[0] "x"
msgstr[1] "y"
EOF

: ${MSGFMT=msgfmt}
${MSGFMT} -o plural-3-dir/ll/LC_MESSAGES/plural.mo plural-3-ll.po || Exit 1

LANGUAGE= TEXTDOMAIN=plural TEXTDOMAINDIR=plural-3-dir \
$NGETTEXT --env LC_ALL=ll X Y 42 > dataout
test $? = 0 || Exit 1
test x = "`cat dataout`" || Exit 1

LANGUAGE= TEXTDOMAIN=plural TEXTDOMAINDIR=plural-3-dir \
$NGETTEXT --env LC_ALL=ll --thread X Y 42 > thread-dataout
test $? = 0 || Exit 1
test x = "`cat thread-dataout`" || Exit 1

# This one is large enough that YYMAXDEPTH is exceeded, i.e. the parser fails.

cat > plural-3-ll.po <<EOF
msgid ""
msgstr ""
"Project-Id-Version: dummy 0.0\n"
"PO-Revision-Date: 2023-09-22 12:51:48 CEST\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: lalala\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(!(1-(n!=1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))));\n"

msgid "X"
msgid_plural "Y"
msgstr[0] "x"
msgstr[1] "y"
EOF

: ${MSGFMT=msgfmt}
${MSGFMT} -o plural-3-dir/ll/LC_MESSAGES/plural.mo plural-3-ll.po || Exit 1

LANGUAGE= TEXTDOMAIN=plural TEXTDOMAINDIR=plural-3-dir \
$NGETTEXT --env LC_ALL=ll X Y 42 > parserfail-dataout
test $? = 0 || Exit 1
test y = "`cat parserfail-dataout`" || Exit 1

LANGUAGE= TEXTDOMAIN=plural TEXTDOMAINDIR=plural-3-dir \
$NGETTEXT --env LC_ALL=ll --thread X Y 42 > thread-parserfail-dataout
test $? = 0 || Exit 1
test y = "`cat thread-parserfail-dataout`" || Exit 1

Exit 0