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
|
from enum import Enum
from typing import Dict, List
class Template(Enum):
MAXIMUM = "Maximum"
LONG = "Long"
MEDIUM = "Medium"
SHORT = "Short"
PIN = "PIN"
NAME = "Name"
PHRASE = "Phrase"
BASIC = "Basic"
_templates: Dict[Template, List[str]] = {
Template.MAXIMUM: [
"anoxxxxxxxxxxxxxxxxx",
"axxxxxxxxxxxxxxxxxno",
],
Template.LONG: [
"CvcvnoCvcvCvcv",
"CvcvCvcvnoCvcv",
"CvcvCvcvCvcvno",
"CvccnoCvcvCvcv",
"CvccCvcvnoCvcv",
"CvccCvcvCvcvno",
"CvcvnoCvccCvcv",
"CvcvCvccnoCvcv",
"CvcvCvccCvcvno",
"CvcvnoCvcvCvcc",
"CvcvCvcvnoCvcc",
"CvcvCvcvCvccno",
"CvccnoCvccCvcv",
"CvccCvccnoCvcv",
"CvccCvccCvcvno",
"CvcvnoCvccCvcc",
"CvcvCvccnoCvcc",
"CvcvCvccCvccno",
"CvccnoCvcvCvcc",
"CvccCvcvnoCvcc",
"CvccCvcvCvccno",
],
Template.MEDIUM: [
"CvcnoCvc",
"CvcCvcno",
],
Template.SHORT: [
"Cvcn",
],
Template.PIN: [
"nnnn",
],
Template.NAME: [
"cvccvcvcv",
],
Template.PHRASE: [
"cvcc cvc cvccvcv cvc",
"cvc cvccvcvcv cvcv",
"cv cvccv cvc cvcvccv",
],
Template.BASIC: [
"aaanaaan",
"aannaaan",
"aaannaaa",
],
}
_characters: Dict[str, str] = {
"V": "AEIOU",
"C": "BCDFGHJKLMNPQRSTVWXYZ",
"v": "aeiou",
"c": "bcdfghjklmnpqrstvwxyz",
"A": "AEIOUBCDFGHJKLMNPQRSTVWXYZ",
"a": "AEIOUaeiouBCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz",
"n": "0123456789",
"o": "@&%?,=[]_:-+*$#!'^~;()/.",
"x": "AEIOUaeiouBCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz0123456789!@#$%^&*()",
" ": " ",
}
|