Koch method for learning Morse code with real words: Initial public commit.

master
Andreas Krüger 2020-12-22 18:33:49 +01:00
commit a2dc85716e
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4779172E114322B8
738 zmienionych plików z 38806 dodań i 0 usunięć

3
.dockerignore 100644
Wyświetl plik

@ -0,0 +1,3 @@
*.kmrw
*/*.kmrw

5
.gitignore vendored 100644
Wyświetl plik

@ -0,0 +1,5 @@
__pycache__
*/lettercount.txt
*/letterset2count.kmrw
*/wordlist.txt

17
Dockerfile 100644
Wyświetl plik

@ -0,0 +1,17 @@
FROM debian:buster
MAINTAINER dj3ei@famsik.de
# This is mainly for my convenience, as it uses the Debian server
# that happens to serve my place fastes. Delete this line if you don't like it.
COPY ["sources.list", "/etc/apt/sources.list"]
COPY ["generate_wordlist.py", "count_letters.py", "letter2bitmask.py", "mk_bin_file.py", "find_learning_order.py", "", "/usr/local/bin/"]
COPY ["letters_rare_first.py", "mk_lessons.py", "/usr/local/lib/python3.7/dist-packages/"]
COPY ["tasks.py", "/"]
RUN set -x; apt-get update && apt-get --yes upgrade && \
apt-get --yes install hunspell-de-de-frami hunspell-en-us hunspell-en-gb hunspell-tools python3-pip && \
pip3 install invoke && \
ln /usr/local/bin/generate_wordlist.py /usr/local/bin/count_letters.py /usr/local/bin/letter2bitmask.py /usr/local/bin/mk_bin_file.py /usr/local/bin/find_learning_order.py /usr/local/lib/python3.7/dist-packages && \
python3 -m compileall && \
mkdir -p /fromhost

16
LICENSE 100644
Wyświetl plik

@ -0,0 +1,16 @@
Koch method to learn Morse code using real words.
Copyright (c) 2017-2020 Andreas Krüger, DJ3EI, dj3ei@famsik.de.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

615
README.md 100644
Wyświetl plik

@ -0,0 +1,615 @@
# What is this?
Koch method with real words. Prepare a list of words to learn Morse
code by the Koch method, using real words.
## TL;DR
If you just want to learn Morse code:
* Find a programm that can play text files as Morse code.
* Choose your language. We have [German](de_DE), [British
English](en_GB) and [American English](en_US) on offer.
* Let your program play `lesson_01_0.txt` to you at speed 12 wpm = 60
cpm. There are several blanks after each word, so you'll get a
small break after each word to comprehend it. You may need to copy
to paper at first, but try to copy in your head only.
* Do not set up your program to introduce additional gaps between
letters of the same word, so as to slow down the speeds of the words
below 60 cpm.
* Next, let your program play `lesson_01_1.txt`, then
`lesson_01_2.txt` and so on. Keep track how many of the words you
can copy. If you are down to five non-copies per lesson file, you
are done with lesson 01 and can continue to lesson 02.
* The initial lesson 01 teaches you the three letters. All other
lessons introduce one new letter per lesson. Which letters these
are depends on the language. You can read up `learning_order.json`
to find out the details.
* Skip to the next lesson whenever you are down to five or fewer
non-copies per lesson file. No reason to listen to all files from 0
to 9 just because they are there.
* It is recommended to practice for 30 minutes per day.
* For the practice frequency, it is recommended to practice anything
between daily down to twice a week. This depending on how much in a
hurry you are to learn Morse code and how much time you're willing
to spend per week.
* On each new learning session (day), start by listening again to one
file (or more, as needed) of the lesson you stopped with at the end
of the previous learning session. In that sense, it is not quite
"one lesson per day". Proceed further when you have five non-copies
in that file or less.
With this system, you can expect to learn receiving the 26 letters of
the alphabet as Morse code within some 25 to 30 half-hour learning
sessions. As you have always practiced at 12 wpm or 60 cpm, that is
the speed you will have mastered.
This speed is already above the dreaded 50 cpm "plateau of unlearning
of thinking", so you'll never get stuck there.
## What is that "Koch method"?
Ludwig Koch was a German scientist who developed, in his research, a
method of teaching Morse code. This was published in February 1936:
> Ludwig Koch (Braunschweig): "Arbeitspsychologische Untersuchung der
> Tätigkeit bei der Aufnahme von Morsezeichen, zugleich ein neues
> Anlernverfahren für Funker" (Dissertation der Technischen Hochschule
> Braunschweig), Zeitschrift für angewandte Psychologie und
> Charakterkunde, Band 50 Heft 1 u. 2, Februar 1936.
The main results of his research and key points of his method are
(crudely) summarized as follows (all speeds in characters per minute):
* Speeds below 50 invite people to think while listening to Morse
code.
* As long as thinking is involved, speeds above about 50 cannot be
reached.
* It is important to hear Morse code as characters "automatically"
without thinking.
* Thinking doesn't work at speeds above 50. So all Morse code
training should be at speeds above that, from the very beginning.
* Koch's research established his method as an improvement over the
Fansworth method of sending individual letters at high speed and
leaving gaps between them to reduce speed much below 50, which again
facilitates thinking. For the record: At the time, the method wasn't
called by its now popular name "Fansworth" yet, Koch calls it
"Klangbildverfahren", but it was commonly used.
* A moderate speed of 60 is ideal for learning Morse code. (He also
experimented with higher initial speeds, but that lead to slower
learning.)
* One should start initial Morse code practice by being offered two
different characters only, at speed 60.
* During the initial minutes of the original Koch-method course, one
listens to those Morse characters, but does not yet know which
letters they represent. One simply writes a dot for each letter
heard.
* Then the characters are disclosed and are copied on paper as heard.
* Practice is always in groups of five letters, as common for the
encrypted traffic of that day.
* When 90 % of the characters are copied correctly by the learning
group as a whole, the next (third) letter is introduced.
* This continues throughout the course: Each time the group as a whole
copies the letters learned thus far 90 % correctly, a new letter is
added.
* Each new letter is introduced as sound only. It is not initially
disclosed which character the letter stands for. At first, students
copy a dot for each new letter heard.
* Throughout the course, it is stressed to always put a dot for a
letter not immediately copied. Trying to think when a letter is not
immediately copied is discouraged: Thinking is not likely to help,
but likely to hinder copying the next letter.
* Course lectures are given in half-hour units. Koch gives reasons
why this is the optimal time frame.
* Koch recommends against binge learning. Even in the common military
setting of the day, Koch recommends half-hour Morse code sessions
should not be held more frequently than twice per day. In his own
experiments, volunteers from all walks of life were given half-hour
sessions two or three times a week.
* When the first two half-hour sessions have been completed and the
90 % rule has been followed, the typical course will have picked up
4 different characters. Some courses manage 5.
* Koch observes that people who have not picked up 4 characters after
two half-hour sessions of learning, fairly typically do not manage
to learn Morse code at all, even when putting in a lot of effort.
He recommends using these first two sessions as a sort of entry
exam.
* It should be mentioned that, in his day, the qualification target
was speed 100 in copying cipher text and speed 125 in copying plain
text.
* Each half-hour session starts with a repetition of the previously
learned material. Later in the course, in most session, only a
single new character is introduced.
* The letters p x v y q z tend to be particularly difficult to pick
up. Some of these characters may require two sessions before the
course copies them 90 % and the next character can be introduced.
* Koch gives no clear recommendation in which order to learn the
letters. The first letters introduced should be quite
different-sounding from each other, that much is clear. One of his
courses used: h f a b g c d e ch l k i o t m p q r s n u w v y x z.
This contradicts a recommendation he also gives: The more difficult
letters should be introduced somewhat early in the course, after
about a third or so, so they see some repetition later.
* Koch recommends dual pitch: Sending "dits" in a slightly lower pitch
than "dahs", at first. The different in pitch should be "quite low"
(Koch is not specific here). The general impression is that
difference was not rigorously controlled and may have varied
somewhat from course session to course session. This dual pitch is
held up only for the first half or third or so of the course.
Thereafter, the pitch difference is gradually reduced; so normal
single pitch is reached some time before the end of the course.
Koch does not claim dual pitch to be essential, but offers a
comparison: A dual-pitch course finished three sessions earlier than
a single-pitch companion course.
* How long does it take to learn Morse code by the Koch method?
During his research, Koch took the shortcut of teaching only the 26
letters of the alphabet. As his courses were taught to conduct
research, not to train radio people, digits, punctuation, or pro
signs were not introduced. Teaching 26 alphabet characters usually
took 24 to 28 half-hour sessions, apparently spread over some 8 to
14 weeks (depending on twice or thrice a week schedule). For the
record: The text mentions teaching "ch" (no longer a character in
today's international Morse code as specified by the ITU), but all
the graphs show 26 characters being taught; the publication is not
entirely clear here.
It strikes me that in his 70 page paper, Koch never even mentions
Morse code keying training. Sending does not seem to be an issue that
needs a lot of concern, once reception is mastered.
That rather fits my own experience and that of many other radio
amateurs: Once solid code copy is mastered, keying is reduced to a
mere mechanical task. There is some concern about avoiding cramping
and "glass fist", yes. But Morse code knowledge straightforwardly
transfers from copy to keying.
## Koch and today's radio amateur
The speeds are comparable. In Koch's age, the top-notch professional
radio men on board of ships or airplanes had passed exams demanding
solid copy of 100 characters per minute cipher text or 125 plain, for
five minutes. Today's radio amateur "high speed club" demands those
same 125 characters per minute, plain text, but for half an hour,
mixed reception and sending. In contests, many CW stations use
similar speed ranges.
Koch mentions less demanding environments of his days, where average
communication speeds of 60-90 were common. Today, we have a lot of
Morse code communication going on in these slower 60+ speed ranges, in
particular on the lower bands. Quite a few radio amateurs need such
relatively slow speeds in order to be able to join the party.
Unfortunately, many have learned to copy Morse code in a way that
involves some kind of thinking or mental processing, rather than
automatism. Trying to get faster, they have thoroughly practiced, but
what they practice is exactly such mental processing. In the end, they
find themselves stuck at a speed level of maybe 50 or, with lots of
more practice, 60 characters per minute.
That's the end speed that can be reached with mental processing, with
thinking. In contrast, higher speed requires getting rid of thinking,
replacing the processing with automatism. This is by no means
impossible, but hard to do.
Many never break that barrier.
That same barrier at about speed 50 cpm was well-known in Koch's days.
His brilliant idea was to sneak new learners around it.
But Koch's method can also be used to break the barrier in those that
already struggle with it. I happen to know from first-hand personal
experience.
Important differences between then and now exist. In Koch's days,
radio operators copied to paper all they heard, to be forwarded to the
intended recipients. Today's Morse code users, we radio amateurs, are
typically ourselves the intended recipients of messages we receive.
There is no need for paper copy of every character received, if we
manage to manage to comprehend the messages directly.
The traditional training back then involved copying five-letter groups
of random text to paper. If comprehension independent of paper copy
is our goal, this might not be optimal.
I therefore propose doing away with meaningless five-letter groups. If
comprehension is to be trained, let us use comprehensible words.
Can we combine Koch' method with real words? That's exactly what this
software is about.
## Koch with real words
Pretty much same as Koch, but with real words from your mother tongue
replacing traditional meaningless five-letter groups.
You may choose to copy them on paper. But I recommend to simply try
to understand them in your head. You'll know the word once you "have"
it.
Koch starts initial training with two characters. We have to bite the
lemmon and start with three characters instead. There is hope that we
can find a few meaningful words that can be spelled with some chosen
three letters.
Which initial three letters allow at least some words to be spelled?
How to choose?
That's where software comes in.
Given our alphabet of 26 letters, there are 2600 choices of three
different letters from that alphabet. Software can simply and
systematically try out all these 2600 choices, and find the choice
that allows the most words to be spelled with just those three letters
chosen.
In German, those three letters are "a", "p", and "s". 21 short German
words can be spelled with just these three letters. In alphabetic
order, these are:
> aa aas app apps ass papa papas papp pass passa passas ppp pps ps sap
> saps sas sass spa spas spass
21 different words is not a whole lot. But for the first 20 minutes
of practice or so, such a restricted set of words may just be good
enough. Then, a new, fourth letter can be added.
Again, software to the rescue. The "t" is a good choice here, adding
it to gives 29 new German words. And so on. For details, see
`learning_order.json` (of your chosen language).
## Disadvantages
* If you follow these suggestion, you'll learn only the letters and
have to deal with numbers and other characters separately later.
* The present implementation is based on a dictionary. So odd, funny
words are practiced. We might want an improvement that takes word
frequency into account.
# How to run this?
## Installation
Have `docker` installed.
## Preparation
Run, in this directory (that contains this `README.md` file):
```
docker build -t registry.invalid/kmrw:latest .
```
_Beware! There's a `.` at the end of that line. It is needed._
This prepares the software and a spell checking dictionary and packs
it all into the Docker image.
If you want to develop the code and rebuild frequently, it is
convenient to have a local HTTP proxy, in which case you'd use
something like
```
docker build --build-arg=http_proxy=http://172.18.0.1:3128/ -t registry.invalid/kmrw:latest .
```
If you don't know what a local HTTP proxy is, you can safely ignore
this.
### What's this `registry.invalid`?
(Skip this section if you only want the recipe, not the explanation.)
Docker uses a registry, which is a place in the cloud where Docker
images are served (and, more likely than not, the company that
operates it spies on you). Out of the box, the `docker` command uses
`registry-1.docker.io` when you don't mention another one.
I would like a way to say "cut out this registry stuff, this
particular Docker image lives locally on my computer only and goes
nowhere". I would much prefer a Docker image without a registry would
be just that, a Docker image without a registry, but that's not how
the `docker` command has been designed. But I can achieve the same
effect by using a bogus registry name.
The `.invalid` top level domain has been set aside officially to be
just that - invalid. A registry ending with ".invalid" will be
nowhere. (Technically, DNS will not yield an IP for any hostname in
the `.invalid` domain.)
## Run
This is for the people who want to play with the system and create
their own lesson files.
I run the following in a `bash`.
The `docker build ...` command needs to happen in the directory that
has this `README.md` file and, more to the point, the `Dockerfile`.
In contrast, you can run everything that follows in any (one)
directory of your choosing.
Why "(one)"? Later commands generally depend on files produced by
earlier ones. So, for smoothest sailing, don't switch directories in
between calls.
Unless you want to switch languages. One directory per language is an
excellent idea.
Some of the reasonably fast running commands produce no output. This
follows the time-honored "no news is good news" command line
tradition. If you know about exit values, check those.
I run the commands in a `bash` on a Linux system. If you are in a
non-Linux environment, you can probably remove the `--user="$(id
--user):$(id --group)"` stances. If you remove those, there is some
concern: Both the user inside the Docker container and you on the
outside want access to the files. But then, rumors have it that on
some non-Linux operating systems, the Docker installation handles this
for you automatically. I don't know; in my spare time, I'm not
polyglot, generally, I never leave Linuxland unless I have to.
### All in one swoop
If you are like me and want to run the whole thing in one swoop, for
all three languages supported (which takes some 4,5 hours on my
laptop):
```
docker run --rm -ti --mount=type=bind,src="$(pwd)",dst=/fromhost --user="$(id --user):$(id --group)" --workdir=/fromhost registry.invalid/kmrw:latest invoke all
```
Or you can do stuff for only one language: Replace the `all`
in the above by `de-de`, or `en-gb`, or `en-us`. This cuts the
time needed down to about 1,5 hours on my laptop.
### A word on my invoke tasks
Those invoke tasks tend to be conservative. What one invocation
constructed, the next will not knowingly overwrite. Even `invoke
--list` will show fewer and fewer possible tasks.
If you actually do want to run stuff again, delete the file that was
produced.
### Wordlist generation
This step generates a list of words, only ASCII characters, one word
per line, from the material of spell checking dictionaries.
Those spell checking dictionaries and accompanying software is in the
Docker container we built. Currently it has German, and the two
English flavors GB and US.
The German command line is:
```
docker run --rm -ti --mount=type=bind,src="$(pwd)",dst=/fromhost --user="$(id --user):$(id --group)" --workdir=/fromhost registry.invalid/kmrw:latest invoke de-de.mk-wordlist-de-de
```
For US-English, replace the `invoke` target `de-de.mk-wordlist-de-de`
with `en-us.mk-wordlist-en-us`, for British English, with
`en-gb.mk-wordlist-en-gb`.
This spills out a bit of output from the spell check software we use.
If all is well, you'd find a file `wordlist.txt` in the language
sub-directory that contains, one word a line, all words the spell
checker knows that are at most 6 characters long.
Reading words in your head gets much harder with increasing word
length. Hence the restriction to at most 6 characters.
### Letter count file generation
Next, I use that to generate a count, for each letter, in how many
words that letter occurs. The invoke targets are
`de-de.mk-lettercount-de-de`, `en-gb.mk-lettercount-en-gb`, and
`en-us.mk-lettercount-en-us`.
Each of these results in a plain text file `lettercount.txt`. Have a
look, if you want to.
### Database generation
Now, the fun stuff with "databases" starts. We generate a database
`letterset2count.kmrw`. (The abbreviation `kmrw` is intended to stand
for "Koch method - real words".) This database contains, for each set
of letters, the number of words that can be build from (spelled with)
those letters.
That file `letterset2count.kmrw` will be 268,435,456 bytes long,
2 ** 26 * 4.
An earlier version took roughly 10 hours on my laptop. After some
optimization, that's down to about 1 hour 20 minutes.
This program tries to keep you entertained by occasionally posting
estimates for when it'll finish. The time printed is (probably) UTC.
With each estimate, it also posts a number, counting down from 2**26 =
67108864. As the hard work is done first, all estimates tend to be
(decreasingly) pessimistic. The initial estimate is outright
ridiculous.
The invoke targets are `de-de.mk-lettercount-de-de`,
`en-gb.mk-lettercount-en-gb`, and `en-us.mk-lettercount-en-us`.
Upon completion, this process leaves a database file `letterset2count.kmrw` in
your current directory. For any possible choice of a handful of
letters from the alphabet a...z, that database gives you the number of
words that can be spelled with only the letters from your chosen
handful.
To be interpreted, that database requires the `lettercount.txt` to be
available as well. The details:
## What's the deal with these database files?
You can skip this section if you are only interested in the results,
not the details.
### Database logic
The databases can be thought of as key/value maps.
The key is a set of letters a-z. Order of letters is ignored, as is
repetition, so "aab" and "ba" come down to the same set of letters,
hence the same key.
The value is simply an integral number between 0 (inclusive) and
2^{32} (exclusive): The numbers of words than can be spelled with just
the letters from the set.
### Database file layout
Every individual letter is associated with a power of 2.
Which power of 2 depends in the number of words containing that
letter, hence on the language. Common letters get higher powers of
two, less common letters get lower ones. To see for yourself, change
to the language directory that has the `lettercount.txt` file and
there, execute this:
```
docker run --rm -ti --mount=type=bind,src=$(pwd),dst=/fromhost --user="$(id --user):$(id --group)" --workdir=/fromhost registry.invalid/kmrw:latest letter2bitmask.py --lettercount lettercount.txt
```
Given a set of these letters, I simply "bitwise or" the corresponding
powers of two. (If that sounds like a weird or interesting idea to
you, I recommend you research "bitmasks".) (If you don't understand
"bitwise or", you can think "add". As long as the same number isn't
added twice, it boils down to the same thing.)
The result is a number. That number completely determines the set of
letters, hence the key into the dictionary.
If you have a `lettercount` file in your current directory, you can
explore this mapping from sets of letters to numbers and reverse at
the interactive `python3` prompt. Here is one sample session.
Gory details:
* The stuff following ">>>" or "..." is what I typed at the Python
prompt. I typed two spaces before `map = ...`, and the next line
was completely empty. (If you know Python, this will not surprise
you.)
* You may get different numbers if you use a `letterfile` different
from mine. (This particular example was done with the en-US
wordlist.)
```
andreas@meise:~/amateurfunk/floss/python/koch-method-real-words/en_US
$ docker run --rm -ti --mount=type=bind,src=$(pwd),dst=/fromhost -e HOME=/tmp --user="$(id --user):$(id --group)" --workdir=/fromhost registry.invalid/kmrw:latest python3
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from letters_rare_first import from_lettercount_file
from letters_rare_first import from_lettercount_file
>>> from letter2bitmask import Letter2Bitmask
from letter2bitmask import Letter2Bitmask
>>> with open('lettercount.txt', 'r') as file:
with open('lettercount.txt', 'r') as file:
... map = Letter2Bitmask(from_lettercount_file(file))
map = Letter2Bitmask(from_lettercount_file(file))
...
>>> map.number("kochmethod")
map.number("kochmethod")
34826368
>>> map.chars(34826368)
map.chars(34826368)
['c', 'd', 'e', 'h', 'k', 'm', 'o', 't']
>>> map.number(['c', 'd', 'e', 'h', 'k', 'm', 'o', 't'])
map.number(['c', 'd', 'e', 'h', 'k', 'm', 'o', 't'])
34826368
>>> [map.number(ch) for ch in ['c', 'd', 'e', 'h', 'k', 'm', 'o', 't']]
[map.number(ch) for ch in ['c', 'd', 'e', 'h', 'k', 'm', 'o', 't']]
[16384, 65536, 33554432, 2048, 128, 8192, 1048576, 131072]
>>> 16384 | 65536 | 33554432 | 2048 | 128 | 8192 | 1048576 | 131072
16384 | 65536 | 33554432 | 2048 | 128 | 8192 | 1048576 | 131072
34826368
>>> 16384 + 65536 + 33554432 + 2048 + 128 + 8192 + 1048576 + 131072
16384 + 65536 + 33554432 + 2048 + 128 + 8192 + 1048576 + 131072
34826368
>>> exit(0)
exit(0)
```
Letters common in the language are coded to larger numbers. This
tremendously helps speed up the database generation and also makes
`kmrw` files more easily compressible (with `xz`, `zip`, and the
like).
So, what we now have is a key that still _represents_ a set of
letters, but actually _is_ a mere integral number.
The database format is rather simple. Here is how it works:
* Multiply that number by 4 to get at a position. E.g., the number
34826368 would yield a position of 139305472.
* Go to that position in the file, and read the next four bytes.
* Interpret those four bytes as a 32 bit integer - and voila, that is
the value.
In my example, that value happened to be 270:
```
$ docker run --rm -ti --mount=type=bind,src=$(pwd),dst=/fromhost --user="$(id --user):$(id --group)" --workdir=/fromhost registry.invalid/kmrw:latest /bin/bash -c "dd if=letterset2count.kmrw bs=1 skip=139305472 count=4 | od -td"
4+0 records in
4+0 records out
0000000 270
0000004
4 bytes copied, 0.0213296 s, 0.2 kB/s
```
That can be verified by straightforwardly counting all words in the
`wordlist.txt` file that consist of those letters:
```
$ docker run --rm -ti --mount=type=bind,src=$(pwd),dst=/fromhost --user="$(id --user):$(id --group)" --workdir=/fromhost registry.invalid/kmrw:latest /bin/bash -c "grep -P '^[cdehkmot]+$' wordlist.txt | wc -l"
270
```
So that's what a `.kmrw` file is. (If you know what "memory mapped"
means: Internally in my Python program, it's a memory mapped array of
integers. That's all.)
Don't open a `.kmrw` file with standard tools (unless for you, a hex
viewer or similar qualifies as "standard tool").

39
count_letters.py 100755
Wyświetl plik

@ -0,0 +1,39 @@
#!/usr/bin/env python3
import argparse
import sys
def count(infile, outfile):
result = {}
for _,c in enumerate("abcdefghijklmnopqrstuvwxyz"):
result[c] = 0
for word in infile:
for c in set(word):
if c != "\n":
result[c] += 1
for c, count in sorted([[k,v] for k,v in result.items()],
key=lambda kv: kv[1],
reverse=True):
outfile.write("{}: {}\n".format(c,count))
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Count, for each letter, in how many words it occurs.")
parser.add_argument("--in",
dest="infile",
default="wordlist.txt",
type=argparse.FileType("r", encoding="UTF-8"),
help="wordlist.txt file as generated by generate-wordlist")
parser.add_argument("--out",
type=argparse.FileType("w", encoding="UTF-8"),
required=False,
default="lettercount.txt",
help="The output file with letters and counts.")
args = parser.parse_args()
count(args.infile, args.out)

Wyświetl plik

@ -0,0 +1,494 @@
{
"lesson_01": {
"letters": [
"a",
"p",
"s"
],
"new_words": 21,
"words_total": 21
},
"lesson_02": {
"new_letter": "t",
"old_letters": [
"a",
"p",
"s"
],
"new_words": 29,
"words_total": 50
},
"lesson_03": {
"new_letter": "e",
"old_letters": [
"a",
"p",
"s",
"t"
],
"new_words": 100,
"words_total": 150
},
"lesson_04": {
"new_letter": "l",
"old_letters": [
"a",
"e",
"p",
"s",
"t"
],
"new_words": 142,
"words_total": 292
},
"lesson_05": {
"new_letter": "b",
"old_letters": [
"a",
"e",
"l",
"p",
"s",
"t"
],
"new_words": 164,
"words_total": 456
},
"lesson_06": {
"new_letter": "f",
"old_letters": [
"a",
"b",
"e",
"l",
"p",
"s",
"t"
],
"new_words": 120,
"words_total": 576
},
"lesson_07": {
"new_letter": "d",
"old_letters": [
"a",
"b",
"e",
"f",
"l",
"p",
"s",
"t"
],
"new_words": 120,
"words_total": 696
},
"lesson_08": {
"new_letter": "m",
"old_letters": [
"a",
"b",
"d",
"e",
"f",
"l",
"p",
"s",
"t"
],
"new_words": 234,
"words_total": 930
},
"lesson_09": {
"new_letter": "g",
"old_letters": [
"a",
"b",
"d",
"e",
"f",
"l",
"m",
"p",
"s",
"t"
],
"new_words": 280,
"words_total": 1210
},
"lesson_10": {
"new_letter": "z",
"old_letters": [
"a",
"b",
"d",
"e",
"f",
"g",
"l",
"m",
"p",
"s",
"t"
],
"new_words": 120,
"words_total": 1330
},
"lesson_11": {
"new_letter": "w",
"old_letters": [
"a",
"b",
"d",
"e",
"f",
"g",
"l",
"m",
"p",
"s",
"t",
"z"
],
"new_words": 131,
"words_total": 1461
},
"lesson_12": {
"new_letter": "k",
"old_letters": [
"a",
"b",
"d",
"e",
"f",
"g",
"l",
"m",
"p",
"s",
"t",
"w",
"z"
],
"new_words": 330,
"words_total": 1791
},
"lesson_13": {
"new_letter": "c",
"old_letters": [
"a",
"b",
"d",
"e",
"f",
"g",
"k",
"l",
"m",
"p",
"s",
"t",
"w",
"z"
],
"new_words": 171,
"words_total": 1962
},
"lesson_14": {
"new_letter": "h",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"k",
"l",
"m",
"p",
"s",
"t",
"w",
"z"
],
"new_words": 669,
"words_total": 2631
},
"lesson_15": {
"new_letter": "u",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"k",
"l",
"m",
"p",
"s",
"t",
"w",
"z"
],
"new_words": 1545,
"words_total": 4176
},
"lesson_16": {
"new_letter": "j",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"k",
"l",
"m",
"p",
"s",
"t",
"u",
"w",
"z"
],
"new_words": 121,
"words_total": 4297
},
"lesson_17": {
"new_letter": "y",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"j",
"k",
"l",
"m",
"p",
"s",
"t",
"u",
"w",
"z"
],
"new_words": 136,
"words_total": 4433
},
"lesson_18": {
"new_letter": "o",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"j",
"k",
"l",
"m",
"p",
"s",
"t",
"u",
"w",
"y",
"z"
],
"new_words": 1642,
"words_total": 6075
},
"lesson_19": {
"new_letter": "x",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"j",
"k",
"l",
"m",
"o",
"p",
"s",
"t",
"u",
"w",
"y",
"z"
],
"new_words": 122,
"words_total": 6197
},
"lesson_20": {
"new_letter": "v",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"j",
"k",
"l",
"m",
"o",
"p",
"s",
"t",
"u",
"w",
"x",
"y",
"z"
],
"new_words": 159,
"words_total": 6356
},
"lesson_21": {
"new_letter": "i",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"j",
"k",
"l",
"m",
"o",
"p",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z"
],
"new_words": 2635,
"words_total": 8991
},
"lesson_22": {
"new_letter": "n",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"o",
"p",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z"
],
"new_words": 4897,
"words_total": 13888
},
"lesson_23": {
"new_letter": "r",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z"
],
"new_words": 7248,
"words_total": 21136
},
"lesson_24": {
"new_letter": "q",
"old_letters": [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z"
],
"new_words": 110,
"words_total": 21246
}
}

Wyświetl plik

@ -0,0 +1,50 @@
ppp
passa
aa
app
spa
pass
ps
ass
saps
saps
aas
pps
sap
papa
spass
apps
papp
spas
sass
passas
sas
sass
passas
papas
passa
papp
app
papas
pass
spa
aa
spas
ps
papa
spa
ass
apps
spass
sas
ppp
sap
pps
spass
aas
saps
ps
papp
spas
apps
passas

Wyświetl plik

@ -0,0 +1,50 @@
aas
papp
spas
papa
pass
ppp
saps
papas
passa
app
sap
papas
spass
sas
pps
passas
pass
spa
apps
aa
aas
ass
ps
app
sass
ppp
papa
saps
spa
apps
spas
sas
spass
ass
sass
ps
passas
sap
pps
spass
passa
apps
aa
papp
ppp
passa
papa
spas
aas
papp

Wyświetl plik

@ -0,0 +1,50 @@
spas
sap
apps
ass
papas
aa
sass
ass
spass
aas
app
spa
pps
papa
sas
ppp
passa
ps
passas
papp
saps
spass
ppp
aas
papa
aa
pass
apps
papas
app
passas
sas
spas
pps
passa
spa
sap
sass
ass
papas
aa
pass
papp
apps
saps
ps
spass
spa
saps
papp

Wyświetl plik

@ -0,0 +1,50 @@
passa
sass
spas
passa
aa
pps
spa
ppp
papas
spass
papp
sap
sas
ps
apps
passas
ass
pass
aas
saps
app
sass
aa
papa
pass
spa
spa
apps
aas
ass
papas
ps
ppp
sas
papp
app
spas
pps
papa
papa
saps
ps
pps
spass
passas
sap
ppp
pass
sap
ass

Wyświetl plik

@ -0,0 +1,50 @@
papa
saps
pps
ass
aa
passas
passa
ps
ppp
sass
sap
app
spass
sas
spass
papas
papp
aas
spas
spa
apps
pass
pps
ppp
spa
saps
pass
aas
app
ps
ppp
passa
passas
sass
papa
apps
papp
app
pps
sap
apps
spas
papp
papas
ass
aa
sas
saps
spass
ps

Wyświetl plik

@ -0,0 +1,50 @@
papp
passa
saps
ass
papa
sas
sass
aas
spas
ppp
pps
sap
aa
spass
spa
apps
pass
passas
ps
app
papas
passas
aas
apps
sas
pps
sass
papas
app
pass
papp
saps
ass
sap
spa
ppp
papa
ps
passa
spas
spass
aa
app
pass
sas
ps
papas
passa
papp
papa

Wyświetl plik

@ -0,0 +1,50 @@
passa
aa
saps
ps
pass
papas
aas
app
aas
spa
ass
sap
spass
sas
passas
papp
spas
pps
ppp
spass
sass
apps
papa
app
sass
apps
saps
aa
ppp
saps
pps
passas
ps
pass
passa
spa
sas
sap
spas
papp
papas
papa
papp
ass
pps
passa
passas
aas
app
pps

Wyświetl plik

@ -0,0 +1,50 @@
sap
saps
ass
sass
papp
spa
ps
sas
ppp
aas
spass
app
apps
papa
pass
aa
passas
pps
saps
papas
passas
passa
spas
passa
sas
papas
aas
apps
pass
ass
sass
aa
spass
spa
ps
papa
ppp
app
spass
pps
sap
spas
papp
passas
sass
papa
apps
papp
ps
spa

Wyświetl plik

@ -0,0 +1,50 @@
spass
pass
papas
passa
aa
spas
sas
ass
sap
papp
apps
ps
sass
ppp
passas
spa
saps
passa
aas
papa
app
papp
pps
aas
apps
passas
papas
sas
sass
ppp
sap
pps
spa
saps
papa
ps
saps
aa
papp
ppp
app
spass
ass
pass
pps
spas
aas
pass
ass
sas

Wyświetl plik

@ -0,0 +1,50 @@
passas
ass
ass
spa
papa
saps
passa
ps
aa
sap
app
aas
ppp
app
pps
sas
sas
spas
saps
apps
ps
pass
papp
papas
sass
spass
pass
papas
sass
spass
sap
passa
papa
aas
aa
spa
ppp
spas
pps
saps
passas
papp
spa
papas
sap
spas
passas
apps
papp
papas

Wyświetl plik

@ -0,0 +1,50 @@
pappst
pappt
satt
asst
spasst
spat
asta
passat
patts
statt
ast
ptt
tapst
spats
sasst
staat
tat
papst
patts
passt
tatst
tappst
tappt
asst
astas
staats
tapas
asta
spasst
patt
at
saat
saat
spats
ast
staat
pasta
pappt
statt
tappt
staats
satt
tapas
at
patt
pappt
ptt
tatst
tapst
tappst

Wyświetl plik

@ -0,0 +1,50 @@
asta
tatst
pappst
sasst
tapst
passat
papst
spasst
ptt
asst
staats
statt
at
tat
ast
spats
patt
spat
passat
satt
tappst
saat
passt
patts
pasta
staats
tapas
staat
tatst
pappt
astas
spats
ptt
tappt
patt
spasst
astas
sasst
tappst
ast
saat
asta
at
satt
pappst
statt
sasst
pappt
tapas
spat

Wyświetl plik

@ -0,0 +1,50 @@
statt
pappst
tapas
tapst
tat
asta
staat
spasst
patts
asst
patt
at
tatst
passat
papst
ast
tappt
sasst
passt
tappst
ptt
astas
pappt
pasta
spats
asta
spat
patts
staats
pasta
saat
satt
statt
satt
pappt
passt
spat
tat
papst
passat
tapst
at
tatst
spats
spasst
saat
staat
tapas
asst
tappst

Wyświetl plik

@ -0,0 +1,50 @@
patts
passat
tappst
pappt
ast
at
statt
asta
tappt
sasst
tapst
satt
astas
tatst
ptt
spat
pasta
pappst
tapas
asst
staat
saat
patt
tat
spasst
passt
staats
spats
papst
ast
pappst
tappst
pasta
papst
tappt
at
sasst
staats
pappt
ptt
spat
passat
tat
spasst
patt
asta
satt
statt
saat
tapst

Wyświetl plik

@ -0,0 +1,50 @@
ptt
statt
spats
saat
ast
tappt
astas
tat
satt
passat
spasst
spat
ast
passt
sasst
pappt
patt
tapas
papst
at
tatst
pappst
staats
asst
staats
pasta
pappt
staat
tapst
pappst
tappst
asta
patts
statt
passt
passat
asta
pasta
tapst
tapas
spasst
tatst
tat
patts
astas
at
sasst
ptt
asst
staat

Wyświetl plik

@ -0,0 +1,50 @@
tapas
statt
spasst
tatst
staats
patt
tappst
at
ast
asst
saat
at
ptt
pappt
tapst
passat
papst
tat
pappst
tappt
staat
pasta
satt
spats
passt
asta
spat
sasst
patts
ptt
passt
asst
staats
astas
tapst
astas
pappst
tatst
spat
spats
patt
tappst
satt
patts
papst
pappt
saat
ast
tapas
tat

Wyświetl plik

@ -0,0 +1,50 @@
tatst
tapst
asta
papst
pappt
tappst
sasst
passt
ptt
ast
tappt
spat
astas
statt
pappst
at
patt
spasst
saat
pasta
staat
patts
staats
asst
satt
tapas
passat
staat
tat
saat
spasst
patt
tapas
pappst
pasta
spats
sasst
at
tappt
satt
passt
ptt
tat
ast
staats
pappt
spats
statt
tapst
asst

Wyświetl plik

@ -0,0 +1,50 @@
staat
patt
ptt
tappt
spat
tapst
astas
pasta
patts
asst
saat
passt
satt
statt
ast
asta
spats
sasst
passat
pappt
tat
staats
spasst
papst
pappst
tat
statt
tappst
tatst
passat
satt
at
pappst
tapas
statt
tapas
saat
pappt
staat
ptt
staats
asst
at
pasta
tappt
astas
patt
tapst
spat
tatst

Wyświetl plik

@ -0,0 +1,50 @@
passat
astas
pappt
pasta
pappt
tapst
asta
patt
saat
tatst
tappt
passt
spats
at
ast
statt
satt
tapas
staats
tappst
pappst
tat
asst
patt
sasst
patts
astas
spat
spasst
staat
papst
ptt
tapas
statt
spasst
passt
tapst
asta
satt
passat
ptt
tat
staats
tappst
tatst
pappst
saat
at
staat
asst

Wyświetl plik

@ -0,0 +1,50 @@
tat
asst
statt
pasta
tatst
tapas
tappst
staats
ptt
pappt
tapst
spats
passat
satt
saat
tappt
spasst
patt
ast
at
patts
passt
spat
staat
papst
sasst
ast
asta
pappst
astas
papst
astas
staat
tat
sasst
tapst
spats
pappst
staats
tapas
tappst
pappt
at
tapst
passat
saat
statt
spat
tatst
satt

Wyświetl plik

@ -0,0 +1,50 @@
eta
tessa
satte
aese
espe
stetes
sees
see
pest
tapet
tees
asses
taetet
paesse
asse
tappte
spates
peppe
pep
saesse
saet
esst
spaet
passes
saee
tessas
spaete
tatet
esse
spate
tests
passe
tapete
ae
aestet
steppe
taete
sattes
testat
aasee
passte
pappe
tappe
taste
spasse
pappte
et
peppt
passee
spee

Wyświetl plik

@ -0,0 +1,50 @@
pet
spe
statte
tee
stets
peppst
espe
aeste
spaete
peseta
passte
tapste
esst
pate
aese
saete
peppt
spees
spaet
teste
tests
aest
saest
tappe
passee
stetes
pest
paste
aases
tapete
saee
eta
stet
see
aestet
ae
pate
passes
tatest
tappte
esse
pappte
etats
satte
tapet
spate
aasees
sept
etappe
et

Wyświetl plik

@ -0,0 +1,50 @@
asses
esst
pate
testat
pappe
passee
peppte
etappe
tests
paesse
aases
sepps
spe
sattes
ae
sets
stetes
testet
ess
tastet
teste
testes
tatet
tapet
spaet
tapste
passte
tee
statte
asse
tasse
taetet
statte
aest
saesse
etat
sees
pet
aese
aesset
saee
aesse
steppt
es
saet
tappe
saest
see
taste
etats

Wyświetl plik

@ -0,0 +1,50 @@
tees
tests
sept
saetet
tapete
sepps
pesete
passes
peseta
pep
sets
tapste
taetet
saee
saesse
pappte
aese
tapse
es
steppe
taste
esse
asse
spe
tappte
set
tapet
aestet
spates
pest
spee
eta
asses
testes
peppst
aesest
staate
et
pappe
tatest
pate
saet
pet
testat
sepp
saete
peppte
satte
spate
aest

Wyświetl plik

@ -0,0 +1,50 @@
sees
stets
septe
etats
passes
staate
peppt
pate
saesse
see
sattes
saee
saest
spees
asses
stet
pet
tapse
taetet
tappte
testes
tappe
testat
esst
esse
tasse
assest
tee
stete
aesest
aesset
spee
taste
spaete
steppe
spe
peseta
spate
tapse
attest
et
saet
ae
spee
tapete
tees
stetes
tessas
tatet
aest

Wyświetl plik

@ -0,0 +1,50 @@
statte
sees
test
septe
aesset
aese
aasee
aesest
peppt
testat
asse
tessas
pate
spasse
teste
tapete
taetet
tapet
sets
tapse
aest
paesse
tests
aeste
espe
passe
asses
passes
saee
see
stetes
saet
steppe
sepp
aestet
stet
stets
tees
saest
spee
este
satte
esst
pep
peppte
spates
tatet
tappe
spaete
pest

Wyświetl plik

@ -0,0 +1,50 @@
tee
este
tapete
aeste
tests
ae
pate
paste
aesse
tapet
passte
stete
passee
stet
spasse
peseta
sepp
test
aasee
asses
testes
spe
saetet
satte
paesse
taetet
statte
etats
passes
stets
et
spate
asse
tees
espe
tapse
spees
passe
aest
saesse
taste
pep
saest
astes
sees
etappe
tessas
sept
tappe
peppe

Wyświetl plik

@ -0,0 +1,50 @@
peppt
attest
tasse
taetet
spaet
pest
peppst
aases
stets
sets
pappe
taete
sepps
pappte
tapete
passee
es
aeste
testes
stete
tessa
etappe
aesest
saest
teste
stetes
aestet
testat
etat
paste
spasse
spe
set
peppe
pep
ess
aesse
sees
peppte
tapse
saete
peseta
tests
test
tappte
taete
pet
sepp
et
tastet

Wyświetl plik

@ -0,0 +1,50 @@
saest
stete
spates
aesse
assest
peppte
saet
pesete
tastet
sepps
passe
pet
saee
spe
tasse
attest
saee
tessas
tappte
taetet
tests
spees
set
tapet
saetet
espe
aases
taste
sattes
etats
steppe
es
pest
esst
taete
sees
aeste
pate
passte
peseta
peppst
test
aasees
eta
peppst
aesest
spaete
esse
esst
etat

Wyświetl plik

@ -0,0 +1,50 @@
saetet
tapet
testat
asses
tappte
espe
set
sept
este
ae
asse
steppt
sepp
tappe
aese
aesse
spaet
pate
paesse
saest
tessas
peppst
saete
pesete
etats
stete
tests
tappe
et
esse
spates
test
stets
satte
peppe
stetes
spasse
eta
aeste
aest
peppte
astes
saee
sets
steppe
steppt
etappe
stet
spate
tapste

Wyświetl plik

@ -0,0 +1,50 @@
tele
lea
letale
allels
apples
tals
lasest
applet
seppel
ettal
allel
else
salats
tesla
palea
palast
apple
stell
leaste
tales
latte
paella
pellte
alls
letal
stellt
las
sattle
spatel
seele
esel
appell
aals
petal
septal
saal
saales
lallte
lappt
altast
altes
petals
pellst
elspes
lasset
stapel
als
stele
spalte
stetls

Wyświetl plik

@ -0,0 +1,50 @@
pell
applet
salat
altast
ettal
lappe
saal
atlas
letal
elspes
alles
letale
elsass
al
ettals
seele
lese
laesst
stele
aals
saals
tales
appell
lastet
septal
lette
sattel
all
stell
else
als
spalts
stellt
sessel
stele
platt
lassa
lala
alls
laste
lappt
alt
stetl
lappst
leas
allel
eleate
tals
aale
lalle

Wyświetl plik

@ -0,0 +1,50 @@
lappte
apple
salat
lasse
palpe
aalst
pallas
stalls
leas
alls
stetls
palea
tael
tell
else
assel
lasst
tele
eleate
lease
elsas
platte
tesla
aales
palast
lasest
lappe
als
appell
allel
tals
esel
stele
pellte
elast
stetl
palas
allele
lest
saals
spalt
tepale
altes
alt
alp
lasset
pellet
ettals
laese
applet

Wyświetl plik

@ -0,0 +1,50 @@
pallas
alls
stellt
stetls
platte
palas
paella
altes
saals
stele
al
lalle
alp
ettal
pelle
tel
elsass
petal
lallt
stall
spatel
salat
spalt
alles
pellte
all
salsa
applet
palpe
apples
laeset
sessel
esel
esel
sattle
spalts
pappel
laese
lappt
pellst
taels
leas
lassas
ettals
lasse
sattel
lassa
laas
stetl
elspes

Wyświetl plik

@ -0,0 +1,50 @@
stapel
lees
lease
ettal
palea
elsass
stalls
allee
leas
esels
esel
palpe
stellt
spalt
else
lala
stele
spatel
lastet
allels
elspes
aal
aale
last
pellt
atlas
petals
eleate
petal
plessa
platte
elsas
spatel
leaste
sattel
tells
lass
spalte
lee
aaltet
tal
latte
sessel
lappe
seele
paella
lassa
pellte
saele
laas

Wyświetl plik

@ -0,0 +1,50 @@
lallte
pellte
seele
ettals
esels
salsa
latte
laeset
altast
allee
laeset
lasst
spalte
aaltet
palea
platte
alt
stellt
saals
apple
platt
elsass
tepale
lasset
elspes
palas
lea
lat
seppel
allele
lass
esel
ettal
elle
lalle
allel
lassas
elspe
pellst
sattel
tells
aalt
lest
stetl
leaste
staple
lette
palast
plaste
laesst

Wyświetl plik

@ -0,0 +1,50 @@
apple
lees
aale
stalls
elspe
laesst
aal
palast
platte
lappe
altes
alte
else
alls
plaste
lese
tel
allele
palea
pallas
pell
seppel
petals
platte
lette
esels
apples
tell
alles
salats
spalt
spatel
tepale
lass
laese
seppel
elsass
alle
stelle
atlas
tells
aalte
stall
seele
elsas
spalts
stetl
lappst
tales
lassas

Wyświetl plik

@ -0,0 +1,50 @@
salsa
saales
laese
lastet
spatel
als
letal
leaste
lees
last
las
alle
staple
seele
tele
lest
sessel
palast
laeset
applet
ettal
pappel
elle
stellt
plessa
assel
pellst
lette
petal
ettals
leas
lasset
stetls
stalls
alles
tal
elaste
all
lasst
sattel
altast
pellet
palas
applet
letale
lappe
lala
lallte
lallst
tales

Wyświetl plik

@ -0,0 +1,50 @@
sattel
paella
stellt
assel
lastet
lala
salt
alte
latte
lest
aalt
letal
least
laesst
lee
lat
spalts
allele
letale
pellte
lette
lappte
tel
stapel
stalls
laese
stele
all
palpe
allee
atlas
lea
alp
aales
tell
tepale
saale
elsass
salsa
elle
apple
sessel
altes
elsas
salat
lass
stall
aaltet
lalle
lappst

Wyświetl plik

@ -0,0 +1,50 @@
alles
taels
laas
aals
salate
spatel
tales
lasst
altes
sattel
eleate
else
saal
ettals
assel
esels
aale
palast
aalte
aales
lat
alte
stele
tells
lala
lappst
lasse
atlas
lese
leaste
elsass
lee
als
stetl
staple
plessa
alls
lassa
apple
salsa
elspe
staple
allee
salats
tepale
plaste
saele
elaste
lappt
stellt

Wyświetl plik

@ -0,0 +1,50 @@
staebe
saeble
sabble
bettet
abtes
ablebt
bastes
abebbe
baete
basses
lebst
salbst
ballte
bette
stabs
bettle
balte
batest
selb
selbe
betts
labels
belle
baesse
bebels
blass
labt
ablebe
belebe
basalt
ablass
bp
lab
bestes
tabs
batet
lebe
labe
beas
salbe
blast
abebbt
blas
ab
base
lebte
ablast
bebst
basels
tab

Wyświetl plik

@ -0,0 +1,50 @@
labe
label
abesse
abtes
blasse
stabte
balls
selbes
elbtal
baals
stabe
lebte
salbst
abblas
ballst
bebel
bebels
asbest
lebst
ebbte
labelt
basal
baetet
abebbt
blatts
abtast
bastle
alba
ablass
betet
basta
stabs
labsal
bebtet
blesse
betest
bebt
bse
basale
abebbt
besass
babel
bett
beates
bat
bass
bellt
lable
bellst
batst

Wyświetl plik

@ -0,0 +1,50 @@
asbest
belebe
abtes
ebbte
bettel
lebe
abels
beets
stabt
ballst
betel
batst
ablese
stabte
beatle
labsal
bebte
saeble
stabs
batet
lable
betest
blast
lesbe
aebte
basalt
blesse
stabes
baete
abblas
beete
abesse
lebtet
abtast
basal
ablebe
basta
bebt
balle
batest
ebbst
basale
labt
selbes
base
stab
elbe
bellte
tabs
ablest

Wyświetl plik

@ -0,0 +1,50 @@
balle
balte
blesse
blatts
ebbtet
selbes
bettes
bettel
bsp
besass
betest
baal
basses
ablast
abtast
bebte
lesbe
blasse
selbs
stabt
basal
tabs
ablebt
alb
bast
bse
labels
abebbt
baesse
elba
bete
baals
selbe
belle
baete
labsal
bebt
selbst
lebe
bellte
asbest
ballte
saebel
bebe
albtal
belebt
bp
stabe
lebst
bastes

Wyświetl plik

@ -0,0 +1,50 @@
bsp
ebbe
belle
labsal
lebe
selbes
bebels
ballst
stabst
basta
tabs
label
beates
abebbt
beete
balle
beta
blass
ablast
balte
selbst
betet
ablebe
betts
baete
abesst
bettes
belt
bast
staebe
elbe
bp
bea
lebtet
abesse
lab
labte
basal
blesse
blasse
plebs
elbas
beat
salbe
best
selbe
lebst
basses
best
blase

Wyświetl plik

@ -0,0 +1,50 @@
plebs
abesse
batst
base
betts
selb
labst
bp
bebel
stabte
selbes
sabbat
alba
basses
selbes
baelle
baal
labt
absass
basale
labst
bellst
elbtal
abblas
blast
elbas
bett
belebe
bastes
bellte
saeble
bastel
beste
ablast
staebe
elbe
baals
stabes
lebtet
basels
basel
abtat
abbat
bebtet
bettet
labtet
lebe
lebst
ablebt
beate

Wyświetl plik

@ -0,0 +1,50 @@
blesse
balte
blass
bettel
saeble
bse
stab
albtal
bellte
ebbte
baelle
bett
beete
ebbt
ablast
staebe
elbe
stabs
salbst
batest
bette
base
basale
blase
bebe
sabble
bp
belle
ablas
basal
abblas
blasst
alb
bebtet
bestes
labsal
lebe
ablebe
basses
lesbe
bebst
abels
blaest
salbte
beate
beas
selbst
labte
lebst
abtat

Wyświetl plik

@ -0,0 +1,50 @@
blast
stabs
betete
bellt
stabte
baal
bast
abtast
basses
salbt
lab
lebte
labt
albas
labsal
labelt
bebe
sabble
stabe
sabbat
abesse
ablebt
ball
beste
abels
baete
blaest
bette
ablebe
balle
bass
salbe
ebbst
blase
abtat
stab
labels
bellte
beate
balls
lesbe
bat
lebe
salbte
bea
albtal
beat
ballst
aebte
label

Wyświetl plik

@ -0,0 +1,50 @@
labte
bestes
abbat
betel
abebbt
ebbte
bellte
abt
beete
baesse
bebte
bebt
bellt
ablebt
albtal
basses
stabe
bsp
blast
asbest
bass
saebel
bebel
ebbt
ablass
bebe
abel
blatt
belebe
salbt
balle
ballte
saeble
bebte
besass
best
bse
ebbtet
lebtet
bett
labtet
beat
bellst
stab
bettes
bastle
bebels
betts
beta
batet

Wyświetl plik

@ -0,0 +1,50 @@
bellt
abtast
abt
ebbst
selb
beat
belebe
ablas
beets
albtal
selbst
ebbt
blatts
bettel
blas
absass
bse
abesst
beate
stabst
ablese
abtat
basel
ablebe
lebe
bat
base
baelle
elbe
aebte
abebbe
saeble
belt
abel
lebtet
bestes
ball
baetet
lable
bettle
salbt
abtes
staebe
stab
balle
basel
beatle
besass
bast
ballt

Wyświetl plik

@ -0,0 +1,50 @@
elf
tafts
fall
effet
fee
fasses
alfa
falbe
safe
alaaf
ftp
aeffte
elft
taft
effets
baff
fatal
aefft
falls
elfte
fete
befall
falt
fastet
alf
saefte
festes
fessel
fasel
paff
fell
falte
ff
fest
leffe
fels
fatale
baffes
fasst
fetts
alfs
fabele
bfs
pafft
fett
abfall
laffe
faelle
stapfe
aeffst

Wyświetl plik

@ -0,0 +1,50 @@
tafts
elftel
fall
efta
aeffe
taft
fallt
safe
fatale
fasst
fes
fett
fabele
felle
pfaffe
eefs
basf
faste
eef
effeff
fessel
aeffte
fell
paffe
ff
leffes
fasele
paffte
fable
apfels
falls
taffes
taffe
tafelt
elft
fetale
fetts
tft
fabelt
falle
falt
taefle
fest
alfa
fettes
alfas
taff
apfel
faltet
faelle

Wyświetl plik

@ -0,0 +1,50 @@
stapft
fete
fells
taff
baff
fetal
elfte
faste
fests
safes
fabelt
abfall
fetale
stapfe
falt
befall
paffst
aefft
abfall
falb
fettes
fatal
fette
affe
saft
elfe
elftes
taffes
alfas
falls
tafelt
fell
aeffe
leffe
taefel
baffes
fass
apfel
fatale
basf
fallt
faselt
tafel
fata
falte
fasse
faelle
fall
paff
fabel

Wyświetl plik

@ -0,0 +1,50 @@
paff
taefle
falb
fes
felles
tafele
efta
fasste
stapft
eef
elftel
fass
laffe
lfs
safte
fasle
felle
elft
fasele
fetale
fessel
tafel
affe
fell
falbe
afa
alaaf
elf
fettet
fest
tafelt
fests
befall
tft
fasst
saft
tafle
fable
fette
fett
festes
fastet
pfaffe
saftes
falbes
elftes
eefs
taefel
fessle
alfs

Wyświetl plik

@ -0,0 +1,50 @@
fass
faelle
alfas
bfs
tafts
fessel
elf
fests
baffes
effets
eefs
fette
basf
falles
affe
fasst
tft
fasste
ftp
elfte
fett
taft
ff
tafelt
safte
fetts
baff
falbes
taefle
apfels
fettes
taffes
fee
feste
faselt
abfall
fettet
felles
eef
fete
leffe
fasel
aeffte
fatale
fetts
alf
fell
safes
tafle
taffe

Wyświetl plik

@ -0,0 +1,50 @@
tafelt
effeff
fest
fatale
falle
fatal
fata
tafele
elftel
faelle
felles
falbes
taffe
fabel
stapft
fasse
tafts
fetts
falles
leffes
paffte
fetale
basf
baffes
elftes
taefel
fasst
ftp
fels
apfels
faste
leffe
saft
apfel
safte
fasste
festes
fass
falte
alfa
fasst
baffe
alfs
aeffst
efta
tafle
paffe
fette
fessel
taffes

Wyświetl plik

@ -0,0 +1,50 @@
fests
effets
afa
fetal
tafts
fessle
fasele
eef
fasste
elfe
afb
leffe
taefel
baffe
fatal
falbe
apfels
fast
taff
alfas
faselt
tafele
fell
apfel
paffte
fettet
effet
fable
fastet
fasse
fasle
falt
elf
alaaf
alfs
faltet
paff
aeffte
lfs
fass
fasses
leffes
safte
laffe
pfaffe
fee
fels
tft
aefft
elftel

Wyświetl plik

@ -0,0 +1,50 @@
befall
faellt
faselt
felles
aeffe
tafelt
elftes
effets
apfel
afa
stapft
faelle
falls
saefte
fasse
falbe
alfas
eefs
fetale
fabele
safes
falte
fallt
abfall
taefle
saefte
effeff
paffe
falt
eef
tft
feste
fata
alfs
elft
fall
bfs
fee
aeffst
affe
faste
leffes
falles
fessel
fabelt
alf
fell
fettet
aeffte
alaaf

Wyświetl plik

@ -0,0 +1,50 @@
saftes
fete
aefft
fells
falle
pafft
fasste
fettet
fasse
taft
pfaffe
taffes
festes
falte
fasele
fable
taefle
ff
fastet
fes
fell
efta
fasst
paffte
effeff
elftes
aeffe
apfels
paff
aeffst
fels
stapfe
felles
alaaf
tafele
alfs
faltet
stapft
afa
befall
faselt
elftel
tft
fatal
feste
taff
taffe
safte
laffe
falbe

Wyświetl plik

@ -0,0 +1,50 @@
fasel
fata
paffe
fests
fasste
fasse
safe
lfs
fettes
fells
elfe
fatal
tafel
faste
fetale
effets
alfas
fell
laffe
paffte
tafts
fete
aeffe
baff
elftes
fasele
taffes
falls
aefft
falle
felle
apfel
fasst
felles
falbe
fetal
aeffte
falbes
alfs
falbe
tafele
elfe
aeffst
fallt
falb
safes
alfa
leffe
faltet
taefle

Wyświetl plik

@ -0,0 +1,50 @@
adept
paddle
adle
sed
depps
adelt
pdfs
feldes
adel
tadelt
sadats
des
pds
badete
badet
dallas
de
feld
stades
dealst
bades
assads
delta
deltas
stade
da
edelst
fadste
dattel
deal
pfades
edle
spd
fade
belade
adelte
std
dada
detlef
de
leds
db
dass
dasass
fades
faedel
ddatp
bade
dlls
fad

Wyświetl plik

@ -0,0 +1,50 @@
eads
belade
dell
deal
edles
dpa
ladet
bads
de
bda
delft
db
pds
assads
dallas
depps
das
fadste
tadel
pfad
dada
feldes
badest
baelde
pdfs
ad
dattel
spd
dealt
deltas
dsl
stade
sebald
dass
delle
pfades
ldap
data
adel
elde
ada
detlef
assad
dealst
fadest
fdp
faedle
edle
datp
bald

Wyświetl plik

@ -0,0 +1,50 @@
elde
assads
tadelt
bald
felds
paddel
tdl
lade
fadest
ada
datp
pedal
spd
dassel
sadat
edles
ade
led
dealte
adels
feldes
eddas
feld
dtp
afd
dsl
stade
deale
eads
dass
delle
dealst
ddatp
fadste
depp
bad
tadel
delft
sed
adelt
edle
depps
fades
fad
adle
felde
dattel
baelde
faedle
des

Wyświetl plik

@ -0,0 +1,50 @@
edle
deal
adelt
dass
laedt
tadele
eads
adle
des
pfade
baelde
pfades
edles
depp
dll
badete
sed
paddle
dtp
dealst
felds
bald
bades
std
bde
delle
sadat
fade
fades
dells
badest
pedale
adept
pdf
delta
dealte
delfts
adels
edel
dasass
dada
depps
ddttp
elde
sebald
fadst
delft
dlls
tadele
spd

Wyświetl plik

@ -0,0 +1,50 @@
ldap
pfade
delta
eads
dfb
dlls
dattel
adelte
edda
da
deals
felds
bads
baelde
bda
deal
feldes
sadat
tadle
delta
tadelt
pedale
eddas
laedt
ablade
pedals
spd
tdl
fade
delft
assads
bad
led
tadele
datp
edel
dpa
ade
bald
tadel
adels
adele
pds
ddatp
sadats
assad
badest
feld
pfades
des

Wyświetl plik

@ -0,0 +1,50 @@
stades
tadele
dealte
pfads
pedal
eads
depp
fdp
dattel
fade
bda
delle
dealst
dassel
edle
eddas
des
detlef
edel
depps
ada
ladet
fadste
baelde
dealt
pedals
ablade
sebald
dasass
stade
pfade
bald
adelst
datp
dlls
bad
ldap
leds
std
fadest
led
dpa
dfb
assads
adsl
sed
tdl
assad
ddatp
delta

Wyświetl plik

@ -0,0 +1,50 @@
pfade
stades
fadest
badete
adele
des
ada
edle
de
fdp
delft
dpa
leds
pfades
bde
dsl
pedal
dasass
das
dll
dell
dlls
assads
faedel
badest
fades
adelt
tadel
deal
adelst
bads
feld
deals
pfad
dtp
detlef
sadat
edel
elde
fadst
pedals
ad
dealt
dassel
std
adle
da
data
adsl
dealst

Wyświetl plik

@ -0,0 +1,50 @@
pds
pfades
edel
bades
bad
ad
pedale
tdl
ablade
adelst
dtp
detlef
laedt
fades
edda
elde
dattel
laedst
edles
dlls
fade
ddatp
delft
fadest
faedel
paddel
felds
depps
deal
bade
dasass
dfb
feld
depp
lade
tadle
adele
dass
pedals
fadst
spd
dells
das
felde
dpa
tadele
da
tadel
ladet
paddle

Wyświetl plik

@ -0,0 +1,50 @@
ladet
bald
fadste
sadats
dell
faedle
dallas
sadat
delfts
stadt
adels
pfades
pedals
adelst
fdp
dells
da
feldes
adept
adel
edle
db
eads
fades
de
bad
dada
adelt
depps
deals
delta
dealt
edles
dsl
edel
badest
ldap
adle
assads
feld
detlef
eddas
ablade
leds
sebald
faedel
edelst
pfade
felds
dattel

Wyświetl plik

@ -0,0 +1,50 @@
adsl
bda
de
fad
dattel
elde
dealst
deale
pedal
edle
fdp
tadel
fades
das
assads
pedale
bads
fadst
bade
dasass
faedle
adel
adelst
ade
stade
felde
dealt
dpa
tdl
baelde
sadat
ad
assad
ladet
afd
dell
lsd
fade
sed
bades
belade
detlef
edda
deltas
sebald
sed
pfad
stadt
ablade
pedals

Wyświetl plik

@ -0,0 +1,50 @@
spams
mfs
mattem
besamt
amme
ms
maeate
mda
meldet
dm
abmalt
teamte
sams
stamme
sam
besame
melles
lama
maat
balsam
md
flame
metall
melde
emma
salm
falbem
mastes
mbbs
amtes
maleat
bembel
sattem
melle
mad
mm
dem
mappe
dammes
malt
madame
ampel
saddam
mast
semmel
damm
malate
memme
pampas
mamas

Wyświetl plik

@ -0,0 +1,50 @@
amt
amts
emesa
mattes
mdb
emesas
smtp
malst
melle
emblem
medeas
besame
tamtam
fettem
flamme
adams
tempel
malad
mdl
mass
malat
stamms
samtes
festem
messel
damms
amds
elfmal
medea
sesam
malta
md
mm
messe
dammes
maltas
mess
masst
stemm
masse
selbem
ppm
maeate
malte
atme
bemass
ems
mamas
stemme
madame

Wyświetl plik

@ -0,0 +1,50 @@
mess
mda
mamas
palme
bemale
edams
dampf
amtete
malte
daemme
dame
lamas
pampe
adam
atm
sammel
maas
edam
bemalt
mfs
lamm
lemma
beatme
assams
salems
stemm
pamela
festem
flame
baffem
mampf
emblem
mette
mad
allem
tamtam
stamm
melde
elfmal
lambda
plasma
besame
stemme
tempel
mal
elams
memels
amt
dampfe
abmale

Wyświetl plik

@ -0,0 +1,50 @@
sesams
sattem
ems
flame
masse
met
edams
mampf
sam
emblem
maeate
alm
dem
maates
memme
lamas
emma
same
masses
stemma
palmas
psalms
amt
metall
flamme
mdl
amtete
teamt
mama
abmale
lama
memels
amsel
bemass
edam
atmet
sams
dampfe
mt
assams
daemme
alldem
stamms
memel
mdb
atmest
teamte
mattes
spam
bemalt

Wyświetl plik

@ -0,0 +1,50 @@
maats
emblem
palme
mattem
masts
metall
mass
tempel
maeate
am
meltem
mt
madame
bembel
ml
edlem
lammes
sesam
malade
mdb
spam
edams
lambda
dame
atme
memel
mett
tamtam
elam
amds
salem
stemm
emesa
lampe
melles
maste
adams
malst
messt
salm
dem
lamms
lamee
beatme
stamms
palmas
palma
mess
mbb
flammt

Wyświetl plik

@ -0,0 +1,50 @@
lamas
bembel
spammt
mbb
messel
metall
stemmt
stamms
elam
melles
mm
maltet
elm
elams
dampfe
maltas
abmass
adams
masada
edam
emesa
amts
amt
stetem
damm
lambda
edlem
lamms
palme
am
pampas
elmpts
masts
ampel
mfs
medeas
saddam
bestem
mast
medea
alm
samplt
masses
stamm
elmpt
besame
maeate
same
assam
beamte

Wyświetl plik

@ -0,0 +1,50 @@
pampe
mfs
tempel
abmass
bemale
amt
stamme
maedel
malst
maas
malat
tamtam
salem
teamt
atems
palmas
bammel
masada
sambas
amts
spam
sesam
mal
flamme
amtes
emmas
dammes
stamms
ml
mbbs
sam
amd
lammes
melle
flammt
besame
dm
palma
massas
taffem
stemme
sammle
smd
plasma
emesas
elmpts
melde
atmest
mad
dampfs

Wyświetl plik

@ -0,0 +1,50 @@
stamme
spam
mappe
matt
maedel
falbem
stemme
salem
sam
palma
amme
ms
massa
am
malade
masse
mets
daemmt
lamms
mama
meltem
mdbs
tempel
lemmas
mbb
messt
stampa
malst
mdbs
mett
team
selbem
damm
maltet
mb
amte
mastes
salm
dem
altem
elmpts
besame
beamte
dame
malt
lampe
stemm
malat
malta
emma

Wyświetl plik

@ -0,0 +1,50 @@
atem
messe
ms
same
abmalt
dampfs
stamms
maates
samts
atme
sams
sammle
assam
mampf
mappe
beamte
pamela
lemmas
maleat
met
flamme
mama
amtet
malt
maeate
meldet
dampf
maltas
malad
mass
stamm
sambas
malta
lemma
edams
abm
teamte
dem
elm
atmest
besamt
adams
alm
teamst
metts
sammel
matte
stemma
bembel
stamme

Wyświetl plik

@ -0,0 +1,50 @@
sammle
alma
samba
mette
mattem
amtet
mdls
edlem
matte
stemma
mda
same
lampe
elmpt
massa
mbb
memels
sammel
medea
saddam
amd
madame
salm
atmest
atem
abmalt
malade
abm
ma
ml
spam
palme
meldet
adam
teamt
amte
malst
dame
dampfe
melles
masst
damast
mt
amme
festem
stamms
atm
teamte
mastes
malt

Wyświetl plik

@ -0,0 +1,50 @@
dgtp
gala
abgab
plagt
gabel
ag
gelage
gel
laegt
fdgb
balge
pagat
balgs
segel
legate
gelegt
belegs
gt
segge
pegel
gambe
gesaet
gams
gates
tagst
sagt
betagt
gebets
mpeg
lgpl
abgebt
fegte
egge
agfas
gamet
gelabt
tag
mg
gelass
gesagt
gema
lpg
gtpase
alge
belegt
apg
gelees
bgb
gelle
gambas

Wyświetl plik

@ -0,0 +1,50 @@
abgabe
gabel
lage
gelde
gelbes
stalag
balges
gags
plagt
gpl
gaffe
sag
begast
gtpase
saegst
lgs
gabelt
getagt
plage
gesagt
begebt
geste
gasas
segel
gaemse
etage
tag
gebebt
gatte
gb
tagte
gelege
lege
balg
gaffst
besagt
mag
gelds
gelte
gema
gaelte
gaffel
talg
belag
legats
legtet
geld
gelebt
gelb
balge

Wyświetl plik

@ -0,0 +1,50 @@
begebe
gelege
galt
legst
gelbem
gebets
lgs
segels
ablage
egel
begab
etage
dalagt
stegs
gelass
saegst
gaemse
legt
ggt
gage
legte
segel
ags
baelge
gal
gambe
gesaet
tags
abgabt
gelbes
dgtp
legate
laage
talgs
fegt
pflege
gebete
agp
alltag
agfa
pgp
balgte
gaeb
abgebt
gell
legats
gabel
ablege
gabelt
magst

Wyświetl plik

@ -0,0 +1,50 @@
atg
sagte
galtst
gesamt
ablagt
aeg
gaffte
balge
gaebe
dalagt
gesas
saga
belegs
gaeste
gaebet
magdas
gebell
glases
gele
fg
gastes
belag
tages
magma
fegt
dalag
laages
lgpl
ablege
gelage
belege
tagte
bagage
dgb
lgs
btmg
ablage
gaffst
egge
egel
galtet
gable
gag
gelee
begebt
eg
segel
gage
gels
gambe

Wyświetl plik

@ -0,0 +1,50 @@
egal
gases
gelle
gesagt
absage
gelbem
mpeg
abgebe
segle
lgs
abgase
saege
legat
apg
laege
atg
gabt
plagst
aeg
gaffte
maegde
gag
gabe
gelass
dgtp
abgase
plagt
begabt
mpegs
gaebet
flegle
legate
gdp
gaffel
pflege
laegst
gst
balges
sag
gesa
galle
segge
agb
gebets
gaeste
gaebst
page
ablegt
bgb
gates

Wyświetl plik

@ -0,0 +1,50 @@
laages
gelegt
gelage
gelees
dalag
stalag
gates
segel
gasse
gb
stgb
gambas
plagt
saegte
balgt
fdgb
gdp
mpegs
legte
gelass
gebe
gemalt
steges
gel
begabt
ablage
magda
begebt
apg
tagt
gellt
begase
legtet
pegel
gelb
abgase
egels
ddgtp
gelabt
gal
saegst
fg
legst
gamma
gag
aeg
ablag
gebt
lag
etage

Wyświetl plik

@ -0,0 +1,50 @@
sagte
legtet
gaebe
talgs
begab
segelt
lage
laegst
tagt
belag
agfas
gelds
gellst
gab
gebets
gebet
gage
gelass
laage
segele
gelte
glems
gams
stege
stgb
legat
pagat
agb
glases
ablagt
bgb
lgpl
steges
tagtet
gabe
abgas
telgte
gemme
spagat
gdp
gebt
gt
magma
gamet
lag
gebete
geeggt
gaffe
gasa
dgb

Wyświetl plik

@ -0,0 +1,50 @@
gelees
balge
gams
etage
gell
segels
stegs
bagage
malaga
gaffe
gala
gebe
mg
dgtp
gaeste
galtet
lage
glatte
gelle
gelbem
begast
gebets
bega
gelabt
gmt
gatte
getagt
plagst
plagt
gelb
gesas
absagt
lag
gaebt
bgb
estg
laages
plage
fegst
ablagt
page
segels
gaffte
mpegs
gebet
geld
gas
mgs
belegt
gb

Wyświetl plik

@ -0,0 +1,50 @@
gesell
geaest
gamma
flegel
gebt
gels
magma
glatt
gamba
gafft
gambas
segle
belege
legt
bgbl
mpeg
bettag
abgabe
geldes
gebell
legat
dalagt
tagt
agfa
stalag
galtet
fdgb
belags
geest
mag
sagst
abgebe
apg
gefegt
belag
laegst
abgas
bega
pegel
gelegt
saege
plagst
gesa
alltag
lpgs
bgb
gellte
abgabt
bagage
balge

Wyświetl plik

@ -0,0 +1,50 @@
bgs
aeg
atg
abgas
gas
gema
dgb
geaest
laegst
geldes
gebell
belege
sagt
tegel
begase
tag
sagtet
gefegt
absagt
legate
begast
gable
lege
gaffe
gpl
mag
talgs
abgabt
etage
gaebet
sage
belegt
segele
gab
gatte
segle
egel
leg
galtet
stalag
dgtp
gemalt
gelte
bagdad
lage
geest
begabt
bettag
segge
plagte

Wyświetl plik

@ -0,0 +1,50 @@
fetzte
aetze
eltz
zage
satze
metzle
zelts
falze
blz
stelze
zeltes
taz
absatz
gaza
patzt
platzt
pfalz
zettel
glatze
balzt
satzes
flaeze
gez
pelz
saetze
zeltet
mazdas
plazet
azetat
zappst
zeta
zappel
letzt
zelt
plazet
zell
zelte
zettle
aetzte
malzes
salze
fetzt
spelz
zapple
petzte
gazas
zapfst
zdf
platz
feze

Wyświetl plik

@ -0,0 +1,50 @@
falz
zapfe
fez
zelt
zaza
zapple
platze
gezagt
gesetz
pelze
metz
platzt
zagtet
metzle
fetze
falzt
flaeze
letzte
satz
zelts
zells
saetze
setz
salzes
zappst
etzel
letzt
zapf
zappte
spelze
latz
mazdas
balzte
platz
malz
zage
zelle
aetzte
gez
azalee
tzbfg
satze
metze
etzels
fezes
spatz
pfalz
setzt
flaez
eszett

Wyświetl plik

@ -0,0 +1,50 @@
fez
flaezt
plz
azalee
pfalz
zapfst
etzels
fetzt
spatz
balzte
zapfe
zappte
platze
zdf
zelts
zell
mazdas
malzes
balzt
zapft
pelzes
zappt
salze
latzes
zapfte
patzte
zagte
zelle
absetz
zappe
balze
glatze
petzt
falz
feze
zage
salzt
azetat
latz
falzt
zeta
falzes
salz
balz
salzte
setzte
flaez
setze
flaeze
zagtet

Some files were not shown because too many files have changed in this diff Show More