diff --git a/EXAMPLES.md b/EXAMPLES.md index 852f5c822..dc502de02 100644 --- a/EXAMPLES.md +++ b/EXAMPLES.md @@ -4,7 +4,7 @@ ### 0.1 Installation using `pip` -Getting started with `pText` is easy. +Getting started with `borb` is easy. 1. Create a virtual environment (if you have not done so already) @@ -14,26 +14,21 @@ Getting started with `pText` is easy. `source venv/bin/activate` -3. Install `pText` using pip +3. Install `borb` using pip - `pip install ptext-joris-schellekens` - - If you have installed `pText` before, and you want to ensure you're installing the latest version, execute the following commands - - `pip uninstall ptext-joris-schellekens` - `pip install --no-cache ptext-joris-schellekens` + `pip install borb` 4. Done :tada: You are all ready to go. -Try out some of the examples to get to know `pText`. +Try out some of the examples to get to know `borb`. -**Note**: if you have used `pText` in the past, it's best to ensure that pip is not serving -you a version of `pText` from its cache. Uninstall your previous version using: +**Note**: if you have used `borb` in the past, it's best to ensure that pip is not serving +you a version of `borb` from its cache. Uninstall your previous version using: -`pip uninstall ptext-joris-schellekens` +`pip uninstall borb` and install the latest version using: -`pip install --no-cache ptext-joris-schellekens` +`pip install --no-cache borb` ### 0.2 About AGPLv3 @@ -72,7 +67,7 @@ Now that we've processed the `Page`, we can get the resulting text and store it. with open("output.txt", "w") as txt_file_handle: txt_file_handle.write(l.get_text(0)) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 1.2 Working with ligatures using `SimpleNonLigatureTextExtraction` @@ -98,7 +93,7 @@ Once the `Document` is done processing, we can easily obtain and store the text: with open("output.txt", "w") as txt_file_handle: txt_file_handle.write(l.get_text(0)) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 1.3 Looking for a regular expression in a `Document` using `RegularExpressionTextExtraction` @@ -143,7 +138,7 @@ In the example `Document`, this was the output: }, ... -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 1.4 Extracting keywords from a `Document` using `TFIDFKeywordExtraction` @@ -181,7 +176,7 @@ For the document I picked, this gives me the following output: }, ... -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 1.5 Meta-Information @@ -217,7 +212,7 @@ This dictionary could contain an entry for `\Author`. author = doc["XRef"]["Trailer"]["Info"]["Author"] print("The author of this PDF is %s" % author) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 1.5.1.2 Getting all meta-information of an existing PDF using `DocumentInfo` @@ -234,7 +229,7 @@ You can use it to quickly query the meta-information. print("ids : %s" % doc_info.get_ids()) print("language : %s" % doc_info.get_language()) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 1.5.1.3 Changing the author of an existing PDF @@ -266,7 +261,7 @@ Now we can store the PDF `Document` again: with open("output.pdf", "wb") as out_file_handle: PDF.dumps(out_file_handle, doc) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 1.5.1.4 Changing the producer of an existing PDF @@ -291,14 +286,14 @@ If there is no `\Info` dictionary in the `\Trailer`, we create it Let's set the `\Producer` entry in the `\Info` dictionary # change author - doc["XRef"]["Trailer"]["Info"]["Producer"] = String("pText") + doc["XRef"]["Trailer"]["Info"]["Producer"] = String("borb") Now we can store the PDF `Document` again: with open("output.pdf", "wb") as out_file_handle: PDF.dumps(out_file_handle, doc) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.5.2 Using the XMP metadata in a `Document` @@ -338,7 +333,7 @@ I tried this on a `Document` with XMP meta-data, and it printed the following: modification date : 2017-12-15T16:23:53+01:00 metadata date : 2017-12-15T16:23:53+01:00 -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 1.6 Images @@ -436,7 +431,7 @@ The result should be something like this (keep in mind the rendering of the rubb ![adding an annotation to an existing pdf](readme_img/adding_a_rubber_stamp_annotation_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.2 Adding all possible rubber stamp annotations to an existing PDF @@ -483,7 +478,7 @@ The end result (at least the annotations) should look something like this: ![adding an annotation to an existing pdf](readme_img/adding_all_rubber_stamp_annotations_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.3 Adding a circle annotation to an existing PDF @@ -511,7 +506,7 @@ The end result (at least the annotations) should look something like this: ![adding an annotation to an existing pdf](readme_img/adding_a_circle_annotation_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.4 Adding a square annotation to an existing PDF @@ -539,7 +534,7 @@ The end result (at least the annotations) should look something like this: ![adding an annotation to an existing pdf](readme_img/adding_a_square_annotation_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.5 Adding a polygon annotation to an existing PDF @@ -569,7 +564,7 @@ The end result (at least the annotations) should look something like this: ![adding an annotation to an existing pdf](readme_img/adding_a_polygon_annotation_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.6 Adding a polyline annotation to an existing PDF @@ -599,7 +594,7 @@ The end result (at least the annotations) should look something like this: ![adding a_polyline_annotation](readme_img/adding_a_polyline_annotation.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.7 Adding an annotation using a shape from the `LineArtFactory` to an existing PDF @@ -640,7 +635,7 @@ The end result (at least the annotations) should look something like this: ![adding_a_polyline_annotation_using_line_art_factory](readme_img/adding_a_polyline_annotation_using_line_art_factory.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.8 Adding a highlight annotation to an existing PDF @@ -670,7 +665,7 @@ The end result (at least the annotations) should look something like this: ![adding a_highlight_annotation to an existing pdf](readme_img/adding_a_highlight_annotation_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.9 Adding a link annotation to an existing PDF @@ -702,7 +697,7 @@ The end result (at least the annotations) should look something like this: ![adding a_link_annotation to an existing pdf](readme_img/adding_a_link_annotation.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.10 Adding a text annotation to an existing PDF @@ -728,7 +723,7 @@ Finally, we need to store the resulting PDF `Document`. with open("output.pdf", "wb") as out_file_handle: PDF.dumps(out_file_handle, doc) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.11 Adding a square annotation around a regular expression match to an existing PDF @@ -768,7 +763,7 @@ The end result (at least the annotations) should look something like this: ![adding an annotation to an existing pdf](readme_img/adding_an_annotation_around_a_regular_expression_match_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.12 Adding a square annotation in the free space of a page to an existing PDF @@ -777,7 +772,7 @@ as long as it does not block any other visible content. Finding the available free space on a `Page` can be tricky, it would involve re-parsing all the content to figure out where existing content intersects with the desired location of the annotation. -That is why `pText` comes with `FreeSpaceFinder`, this class searches for an `Rectangle` of a given size, nearest to a given point (in Euclidean space). +That is why `borb` comes with `FreeSpaceFinder`, this class searches for an `Rectangle` of a given size, nearest to a given point (in Euclidean space). Let's see it in action. We start by reading the PDF: @@ -826,7 +821,7 @@ Notice how our use of `FreeSpaceFinder` meant that the annotation did not collid ![adding an annotation to an existing pdf](readme_img/adding_a_square_annotation_in_free_space_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.13 Getting all annotations from a PDF @@ -843,7 +838,7 @@ Let's check the first `Page`. if "Annots" in page: print("%s has %d annotations" % ("input.pdf", len(page["Annots"]))) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.14 Showcase : Adding a collection of annotations shaped like super mario to an existing PDF @@ -937,7 +932,7 @@ The result should be something like this: ![adding an annotation to an existing pdf](readme_img/adding_multiple_annotations_shaped_like_super_mario_to_an_existing_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.8.15 Adding redaction annotations to a PDF @@ -1011,7 +1006,7 @@ The last step is to actually apply the redaction annotations. You could do this #### 1.9.1 Exporting a PDF as JSON -This scenario is particularly useful when debugging. It enables you to see the PDF `Document` in the same way `pText` sees it. +This scenario is particularly useful when debugging. It enables you to see the PDF `Document` in the same way `borb` sees it. We'll start by opening and reading the `Document`: @@ -1061,7 +1056,7 @@ This table acts as the starting point of the document, it contains references to #### 1.9.2 Exporting a PDF as SVG -Sometimes, all you need is an image. With `pText` you can easily convert any `Page` of a `Document` into an SVG image. +Sometimes, all you need is an image. With `borb` you can easily convert any `Page` of a `Document` into an SVG image. As usual, we start by reading the `Document`: @@ -1084,12 +1079,12 @@ This was the input document: ![export_a_pdf_to_svg_original](readme_img/export_a_pdf_to_svg_original.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 1.9.2 Exporting a PDF as MP3 For those with hearing-impairments, it can be very useful to be able to convert a PDF `Document` to an MP3 file. -This is perfectly possible with `pText`. +This is perfectly possible with `borb`. with open("input.pdf", "rb") as pdf_file_handle: l = PDFToMP3() @@ -1232,7 +1227,7 @@ And finally we store the modified `Document` ### 2.0 Creating an empty PDF -This basic example gives you an idea of how to create a `Document` using `pText`. +This basic example gives you an idea of how to create a `Document` using `borb`. Other examples will show you how to add rich content to it. # create empty document @@ -1252,7 +1247,7 @@ The result should be something like this: ![write_empty_document](readme_img/write_empty_document.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 2.1 Adding text to a `Document` @@ -1338,7 +1333,7 @@ The result should be something like this: #### 2.1.2 Adding text to a `Document` using `ChunkOfText` Luckily, there is an easier way to get content on a PDF. -Let's look at the convenience classes `pText` provides. +Let's look at the convenience classes `borb` provides. We'll start similar to our previous example, by creating an empty `Document` and `Page`. @@ -1349,7 +1344,7 @@ We'll start similar to our previous example, by creating an empty `Document` and page = Page() pdf.append_page(page) -Now instead of having to figure out all these instructions ourselves, we can let `pText` do the heavy lifting. +Now instead of having to figure out all these instructions ourselves, we can let `borb` do the heavy lifting. Here we add a `ChunkOfText` to the `Page`, but other classes allow you to add lines of text, paragraphs, tables, etc. ChunkOfText( @@ -1371,7 +1366,7 @@ The result should be something like this: ![create_hello_world_using_low_level_commands](readme_img/create_hello_world_using_low_level_commands.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.1.2 (ctd) Adding text to a `Document` using `ChunkOfText` @@ -1409,7 +1404,7 @@ The result should be something like this: ![creating_a_colorful_hello_world](readme_img/creating_a_colorful_hello_world.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.1.3 Adding text to a `Document` using `LineOfText` @@ -1424,7 +1419,7 @@ We start by creating an empty `Document` (just like the other examples). pdf.append_page(page) Here we're going to add 4 lines of text, all of them will be justified `RIGHT` -That means we're going to give them all the same bounding box (apart from the y-coordinate), and have `pText` work out where to start the text to achieve the correct Alignment. +That means we're going to give them all the same bounding box (apart from the y-coordinate), and have `borb` work out where to start the text to achieve the correct Alignment. for i, s in enumerate( [ @@ -1465,7 +1460,7 @@ The result should be something like this: ![adding lines of text justified right](readme_img/adding_lines_of_text_justified_right.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.1.3 Adding text to a `Document` using `Paragraph` @@ -1516,7 +1511,7 @@ The result should be something like this: ![adding paragraph](readme_img/adding_a_paragraph.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 2.1.3.2 Setting justification @@ -1552,7 +1547,7 @@ The result should be something like this: ![adding paragraph_justified_full](readme_img/adding_paragraph_justified_full.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 2.1.3.3 Setting padding @@ -1586,11 +1581,11 @@ The result should be something like this: ![adding_paragraph_justified_center_with_padding](readme_img/adding_paragraph_justified_center_with_padding.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 2.1.3.4 Setting borders -`pText` also allows you to set borders on any `LayoutElement` +`borb` also allows you to set borders on any `LayoutElement` Let's try that: padding = Decimal(5) @@ -1615,7 +1610,7 @@ The result should be something like this: ![adding_paragraph_justified_center_with_padding_and_border](readme_img/adding_paragraph_justified_center_with_padding_and_border.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 2.1.3.5 Setting color @@ -1645,7 +1640,7 @@ The result should be something like this (maybe salmon was not the greatest colo ![adding_paragraph_justified_center_with_padding_and_border_salmon](readme_img/adding_paragraph_justified_center_with_padding_and_border_salmon.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 2.1.3.6 Forcing a split @@ -1691,11 +1686,11 @@ The result should be something like this: ![adding_a_paragraph_forcing_split](readme_img/adding_a_paragraph_forcing_split.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ##### 2.1.3.7 Setting the Font -`Font` objects in `pText` are as close to the PDF level as possible, whilst still keeping it user-friendly. +`Font` objects in `borb` are as close to the PDF level as possible, whilst still keeping it user-friendly. In the PDF spec, there are 2 kinds of `Fonts`. `SimpleFont` (in general) represents a `Font` that maps only the bytes `0..255` to unicode characters. Among these `SimpleFonts` are the so called 'standard 14 fonts'. These are fonts that any conforming reader should have available to it. @@ -1787,14 +1782,14 @@ The result should be something like this: ![adding_headings_to_a_document.png](readme_img/adding_headings_to_a_document.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 2.2 Using a `PageLayout` So far we've used absolute positioning whenever we wanted to add something to a `Page`. Although this gives us precise control over where the content needs to go, it makes it harder to add multiple `LayoutElement` objects. -Luckily, `pText` comes with various `PageLayout` classes. These keep track of what parts of a `Page` are free, and where to flow content to. +Luckily, `borb` comes with various `PageLayout` classes. These keep track of what parts of a `Page` are free, and where to flow content to. #### 2.2.1 Using `SingleColumnLayout` @@ -1834,11 +1829,11 @@ The result should be something like this: ![adding_paragraphs_using_single_column_layout.png](readme_img/adding_paragraphs_using_single_column_layout.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.2.2 Using `MultiColumnLayout` -`pText` also comes with `MultiColumnLayout`, which enables you to create a `Document` with multiple columns on each page. +`borb` also comes with `MultiColumnLayout`, which enables you to create a `Document` with multiple columns on each page. Most of our previous code will stay the same. We will need to change the `PageLayout` we used. Now we're using `MultiColumnLayout`. @@ -1870,7 +1865,7 @@ The result should be something like this: ![adding_paragraphs_using_multi_column_layout.png](readme_img/adding_paragraphs_using_multi_column_layout.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.2.3 Mixing various `PageLayout` instances @@ -2052,7 +2047,7 @@ The result should be something like this: ![showcase_writing_the_raven_document](readme_img/showcase_writing_the_raven_document.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 2.3 Using `Table` @@ -2109,7 +2104,7 @@ The result should be something like this: ![adding a_simple_table](readme_img/adding_a_simple_table.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.3.2 Using `row_span` @@ -2168,7 +2163,7 @@ The result should be something like this: ![adding a_table_with_row_span](readme_img/adding_a_table_with_row_span.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.3.3 Using `col_span` @@ -2187,7 +2182,7 @@ The result should be something like this: ![adding a_table_with_col_span](readme_img/adding_a_table_with_col_span.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.3.4 Using other `LayoutElement` objects in a `Table` @@ -2203,7 +2198,7 @@ This method will accept the URL of the `Image`, and a `Table` as arguments: ) table.add(Image(im, width=Decimal(128), height=Decimal(128))) -In order to keep `pText` `Image` separate from `PIL` `Image` I use the following import statement: +In order to keep `borb` `Image` separate from `PIL` `Image` I use the following import statement: from PIL import Image as PILImage @@ -2268,7 +2263,7 @@ The result should be something like this: ![adding_image_objects_to_a_table](readme_img/adding_image_objects_to_a_table.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.3.5 Showcase : displaying a `Table` that doubles as a heatmap-plot @@ -2326,7 +2321,7 @@ We're going to make the border on each cell a bit thinner than the default: # set border table.set_border_width_on_all_cells(Decimal(0.2)) -Padding can make a `Table` a lot more legible. Let's have a look at how you'd set the padding on a `Table` in `pText` +Padding can make a `Table` a lot more legible. Let's have a look at how you'd set the padding on a `Table` in `borb` Just like with borders, we could set them on each `TableCell` individually. But `Table` offers a convenience-method to set the padding on each of its `TableCell`objects: @@ -2349,7 +2344,7 @@ The result should be something like this: ![using_padding_on_a_table](readme_img/using_padding_on_a_table.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 2.4 Using `OrderedList` and `UnorderedList` @@ -2382,7 +2377,7 @@ The result should be something like this: ![adding an_ordered_list](readme_img/adding_an_ordered_list.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.4.2 Using `UnorderedList` @@ -2414,7 +2409,7 @@ The result should be something like this: ![adding an_unordered_list](readme_img/adding_an_unordered_list.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.4.3 Nested lists @@ -2454,7 +2449,7 @@ The result should be something like this: ![adding a_nested_unordered_list](readme_img/adding_a_nested_unordered_list.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.4.4 Showcase : Recreating a Wikipedia article @@ -2561,13 +2556,13 @@ The result should be something like this: ![showcase_creating_a_wikipedia_article](readme_img/showcase_creating_a_wikipedia_article.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 2.5 Using `Image` #### 2.5.1 Using a `PIL` `Image` -As you have seen in earlier examples, `pText` also handles `Image` objects. +As you have seen in earlier examples, `borb` also handles `Image` objects. They act like any other `LayoutElement`. The most versatile way of constructing them is by passing a `PIL` `Image` to the constructor. @@ -2581,9 +2576,9 @@ The most versatile way of constructing them is by passing a `PIL` `Image` to the layout.add(Image(im, width=Decimal(256))) You can specify a `width` and `height` for the `Image`. -If you don't specify anything, `pText` will use the original width and height of the `Image`. -If you specify only one, `pText` will derive the missing parameter by scaling the original width/height by the same ratio. -If you specify both, `pText` will stick to the dimensions you've given. +If you don't specify anything, `borb` will use the original width and height of the `Image`. +If you specify only one, `borb` will derive the missing parameter by scaling the original width/height by the same ratio. +If you specify both, `borb` will stick to the dimensions you've given. #### 2.5.2 Using a `URL` to create an `Image` @@ -2717,7 +2712,7 @@ It seems a bit redundant to repeat that here. ) layout.add( Paragraph( - "Your support and encouragement have always been the driving factors in the development of pText. " + "Your support and encouragement have always been the driving factors in the development of borb. " "I want you to know that I value your appreciation immensely!" ) ) @@ -2732,7 +2727,7 @@ It seems a bit redundant to repeat that here. layout.add( Barcode( - data="https://github.com/jorisschellekens/ptext-release/stargazers", + data="https://github.com/jorisschellekens/borb-release/stargazers", type=BarcodeType.QR, width=Decimal(128), stroke_color=self.ACCENT_COLOR_1, @@ -2749,13 +2744,13 @@ The result should be something like this: ![showcase_100_stars_document](readme_img/showcase_100_stars_document.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 2.6 Using `Barcode` #### 2.6.1 Basic Example -`pText` also supports most barcode formats. +`borb` also supports most barcode formats. Let's create an example `Document`: pdf: Document = Document() @@ -2785,7 +2780,7 @@ The result should be something like this: ![adding_a_barcode_to_a_document](readme_img/adding_a_barcode_to_a_document.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.6.2 Using `Color` on `Barcode` objects @@ -2853,7 +2848,7 @@ The result should be something like this: ![adding_a_table_of_barcodes_to_a_document](readme_img/adding_a_table_of_barcodes_to_a_document.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.6.3 Showcase : Outputting the results of a Jenkins run @@ -3061,7 +3056,7 @@ The result should be something like this: ![showcase_converting_junit_results_to_pdf](readme_img/showcase_converting_junit_results_to_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 2.7 Using `Chart` @@ -3144,7 +3139,7 @@ The result should be something like this: ![adding_a_chart_to_a_pdf](readme_img/adding_a_chart_to_a_pdf.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. ### 2.8 Using `Shape` @@ -3208,7 +3203,7 @@ The result should be something like this: ![adding_a_shape](readme_img/adding_a_shape.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. #### 2.8.2 Using `DisjointShape` to display a maze @@ -3406,5 +3401,5 @@ The end result should be something like this (keeping in mind the maze is genera ![adding_a_disjointshape](readme_img/adding_a_disjointshape.png) -Check out the `tests` directory to find more tests like this one, and discover what you can do with `pText`. +Check out the `tests` directory to find more tests like this one, and discover what you can do with `borb`. \ No newline at end of file diff --git a/MANIFEST.in b/MANIFEST.in index 3c144fd6b..a0b282b82 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,5 @@ -include ptext/pdf/canvas/font/afm/*.afm -include ptext/io/write/ascii_art/ascii_logo.txt \ No newline at end of file +include borb/io/write/ascii_art/ascii_logo.txt +include borb/pdf/canvas/font/composite_font/cmaps/* +include borb/pdf/canvas/font/simple_font/afm/*.afm +include borb/pdf/canvas/layout/emoji/resources/*.png +include borb/pdf/canvas/layout/hyphenation/resources/*.json \ No newline at end of file diff --git a/README.md b/README.md index 5e574dc86..1dccae6ab 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ -# pText +# ![borb logo](readme_img/logo/borb_64.png) borb + [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Corpus Coverage : 97.0%](https://img.shields.io/badge/corpus%20coverage-97.0%25-green)]() @@ -7,11 +8,12 @@ [![Public Method Documentation : 100%](https://img.shields.io/badge/public%20method%20documentation-100%25-green)]() -pText is a library for creating and manipulating PDF files in python. +`borb` is a library for creating and manipulating PDF files in python. +This project (previously `pText`) has been renamed to avoid ruffling any feathers. -## 0. About pText +## 0. About borb -pText is a pure python library to read, write and manipulate PDF documents. It represents a PDF document as a JSON-like datastructure of nested lists, dictionaries and primitives (numbers, string, booleans, etc) +`borb` is a pure python library to read, write and manipulate PDF documents. It represents a PDF document as a JSON-like datastructure of nested lists, dictionaries and primitives (numbers, string, booleans, etc) This is currently a one-man project, so the focus will always be to support those use-cases that are more common in favor of those that are rare. @@ -33,15 +35,15 @@ They include; ### 1.1 Hello World -To give you an immediate idea of the way `pText` works, this is the classic `Hello World` example, in `pText`: +To give you an immediate idea of the way `borb` works, this is the classic `Hello World` example, in `borb`: from pathlib import Path - from ptext.pdf.canvas.layout.page_layout import SingleColumnLayout - from ptext.pdf.canvas.layout.text.paragraph import Paragraph, - from ptext.pdf.document import Document - from ptext.pdf.page.page import Page - from ptext.pdf.pdf import PDF + from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout + from borb.pdf.canvas.layout.text.paragraph import Paragraph, + from borb.pdf.document import Document + from borb.pdf.page.page import Page + from borb.pdf.pdf import PDF # create an empty Document pdf = Document() @@ -62,22 +64,23 @@ To give you an immediate idea of the way `pText` works, this is the classic `Hel ## 2. License -pText is dual licensed as AGPL/Commercial software. +`borb` is dual licensed as AGPL/Commercial software. AGPL is a free / open source software license. This doesn't mean the software is [gratis](https://en.wikipedia.org/wiki/Gratis_versus_libre)! -Buying a license is mandatory as soon as you develop commercial activities distributing the pText software inside your product or deploying it on a network without disclosing the source code of your own applications under the AGPL license. +Buying a license is mandatory as soon as you develop commercial activities distributing the borb software inside your product or deploying it on a network without disclosing the source code of your own applications under the AGPL license. These activities include: - offering paid services to customers as an ASP - serving PDFs on the fly in the cloud or in a web application -- shipping pText with a closed source product +- shipping `borb` with a closed source product Contact sales for more info. ## 3. Acknowledgements -I would like to thank the following people, for their contributions / advice with regards to developing `pText`: +I would like to thank the following people, for their contributions / advice with regards to developing `borb`: +- Aleksander Banasik - Benoît Lagae - Michael Klink diff --git a/ptext/__init__.py b/borb/__init__.py similarity index 80% rename from ptext/__init__.py rename to borb/__init__.py index 1d4349092..bcf77caad 100644 --- a/ptext/__init__.py +++ b/borb/__init__.py @@ -1,6 +1,6 @@ """ - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV Authors: Joris Schellekens, et al. This program is free software; you can redistribute it and/or modify @@ -8,7 +8,7 @@ as published by the Free Software Foundation with the addition of the following permission added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS This program is distributed in the hope that it will be useful, but @@ -27,17 +27,17 @@ Section 5 of the GNU Affero General Public License. In accordance with Section 7(b) of the GNU Affero General Public License, a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. + or manipulated using borb. You can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without + develop commercial activities involving the borb software without disclosing the source code of your own applications. These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed + serving PDFs on the fly in a web application, shipping borb with a closed source product. - For more information, please contact ptext Software Corp. at this + For more information, please contact borb Software Corp. at this address: joris.schellekens.1989@gmail.com """ diff --git a/ptext/io/__init__.py b/borb/datastructure/__init__.py similarity index 80% rename from ptext/io/__init__.py rename to borb/datastructure/__init__.py index 1d4349092..bcf77caad 100644 --- a/ptext/io/__init__.py +++ b/borb/datastructure/__init__.py @@ -1,6 +1,6 @@ """ - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV Authors: Joris Schellekens, et al. This program is free software; you can redistribute it and/or modify @@ -8,7 +8,7 @@ as published by the Free Software Foundation with the addition of the following permission added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS This program is distributed in the hope that it will be useful, but @@ -27,17 +27,17 @@ Section 5 of the GNU Affero General Public License. In accordance with Section 7(b) of the GNU Affero General Public License, a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. + or manipulated using borb. You can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without + develop commercial activities involving the borb software without disclosing the source code of your own applications. These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed + serving PDFs on the fly in a web application, shipping borb with a closed source product. - For more information, please contact ptext Software Corp. at this + For more information, please contact borb Software Corp. at this address: joris.schellekens.1989@gmail.com """ diff --git a/ptext/pdf/canvas/datastructure/disjoint_set.py b/borb/datastructure/disjoint_set.py similarity index 100% rename from ptext/pdf/canvas/datastructure/disjoint_set.py rename to borb/datastructure/disjoint_set.py diff --git a/borb/datastructure/str_trie.py b/borb/datastructure/str_trie.py new file mode 100644 index 000000000..85ad2f836 --- /dev/null +++ b/borb/datastructure/str_trie.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This class represents a trie[str, typing.Any] +""" +import typing + + +class Trie: + """ + This class represents a trie[str, typing.Any] + """ + + class TrieNode: + """ + This class represents a node in a trie + """ + + def __init__(self, value: typing.Optional[typing.Any] = None): + self._children: typing.Dict[str, "TrieNode"] = {} + self._value: typing.Optional[typing.Any] = value + + def __len__(self) -> int: + return (0 if self._value is None else 1) + sum( + [len(v) for k, v in self._children.items()] + ) + + def __init__(self): + self._root: typing.Optional[Trie.TrieNode] = None + + def __len__(self) -> int: + return 0 if self._root is None else len(self._root) + + def __getitem__(self, item) -> typing.Optional[typing.Any]: + n: typing.Optional[Trie.TrieNode] = self._root + if n is None: + return None + for c in item: + if c in n._children: + n = n._children[c] + else: + return None + assert n is not None + return n._value + + def __setitem__(self, key, value): + n: typing.Optional[Trie.TrieNode] = self._root + if n is None: + self._root = Trie.TrieNode() + n = self._root + assert n is not None + for c in key: + if c not in n._children: + n._children[c] = Trie.TrieNode() + n = n._children[c] + assert n is not None + n._value = value + return self diff --git a/ptext/io/filter/__init__.py b/borb/io/__init__.py similarity index 80% rename from ptext/io/filter/__init__.py rename to borb/io/__init__.py index 1d4349092..bcf77caad 100644 --- a/ptext/io/filter/__init__.py +++ b/borb/io/__init__.py @@ -1,6 +1,6 @@ """ - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV Authors: Joris Schellekens, et al. This program is free software; you can redistribute it and/or modify @@ -8,7 +8,7 @@ as published by the Free Software Foundation with the addition of the following permission added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS This program is distributed in the hope that it will be useful, but @@ -27,17 +27,17 @@ Section 5 of the GNU Affero General Public License. In accordance with Section 7(b) of the GNU Affero General Public License, a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. + or manipulated using borb. You can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without + develop commercial activities involving the borb software without disclosing the source code of your own applications. These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed + serving PDFs on the fly in a web application, shipping borb with a closed source product. - For more information, please contact ptext Software Corp. at this + For more information, please contact borb Software Corp. at this address: joris.schellekens.1989@gmail.com """ diff --git a/ptext/io/read/__init__.py b/borb/io/filter/__init__.py similarity index 80% rename from ptext/io/read/__init__.py rename to borb/io/filter/__init__.py index 1d4349092..bcf77caad 100644 --- a/ptext/io/read/__init__.py +++ b/borb/io/filter/__init__.py @@ -1,6 +1,6 @@ """ - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV Authors: Joris Schellekens, et al. This program is free software; you can redistribute it and/or modify @@ -8,7 +8,7 @@ as published by the Free Software Foundation with the addition of the following permission added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS This program is distributed in the hope that it will be useful, but @@ -27,17 +27,17 @@ Section 5 of the GNU Affero General Public License. In accordance with Section 7(b) of the GNU Affero General Public License, a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. + or manipulated using borb. You can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without + develop commercial activities involving the borb software without disclosing the source code of your own applications. These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed + serving PDFs on the fly in a web application, shipping borb with a closed source product. - For more information, please contact ptext Software Corp. at this + For more information, please contact borb Software Corp. at this address: joris.schellekens.1989@gmail.com """ diff --git a/ptext/io/filter/ascii85_decode.py b/borb/io/filter/ascii85_decode.py similarity index 100% rename from ptext/io/filter/ascii85_decode.py rename to borb/io/filter/ascii85_decode.py diff --git a/ptext/io/filter/flate_decode.py b/borb/io/filter/flate_decode.py similarity index 100% rename from ptext/io/filter/flate_decode.py rename to borb/io/filter/flate_decode.py diff --git a/ptext/io/filter/lzw_decode.py b/borb/io/filter/lzw_decode.py similarity index 100% rename from ptext/io/filter/lzw_decode.py rename to borb/io/filter/lzw_decode.py diff --git a/ptext/io/filter/run_length_decode.py b/borb/io/filter/run_length_decode.py similarity index 100% rename from ptext/io/filter/run_length_decode.py rename to borb/io/filter/run_length_decode.py diff --git a/ptext/io/filter/stream_decode_util.py b/borb/io/filter/stream_decode_util.py similarity index 89% rename from ptext/io/filter/stream_decode_util.py rename to borb/io/filter/stream_decode_util.py index 8a0d4842e..f54fa4e35 100644 --- a/ptext/io/filter/stream_decode_util.py +++ b/borb/io/filter/stream_decode_util.py @@ -7,11 +7,11 @@ """ import typing -from ptext.io.filter.ascii85_decode import ASCII85Decode -from ptext.io.filter.flate_decode import FlateDecode -from ptext.io.filter.lzw_decode import LZWDecode -from ptext.io.filter.run_length_decode import RunLengthDecode -from ptext.io.read.types import Decimal, Dictionary, List, Name, Stream +from borb.io.filter.ascii85_decode import ASCII85Decode +from borb.io.filter.flate_decode import FlateDecode +from borb.io.filter.lzw_decode import LZWDecode +from borb.io.filter.run_length_decode import RunLengthDecode +from borb.io.read.types import Decimal, Dictionary, List, Name, Stream def decode_stream(s: Stream) -> Stream: diff --git a/borb/io/read/__init__.py b/borb/io/read/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/io/read/font/__init__.py b/borb/io/read/font/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/font/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/font/read_font_dictionary_transformer.py b/borb/io/read/font/read_font_dictionary_transformer.py similarity index 85% rename from ptext/io/read/font/read_font_dictionary_transformer.py rename to borb/io/read/font/read_font_dictionary_transformer.py index 82c0a2dbe..dd3e4e056 100644 --- a/ptext/io/read/font/read_font_dictionary_transformer.py +++ b/borb/io/read/font/read_font_dictionary_transformer.py @@ -8,19 +8,19 @@ import typing from typing import Any, Optional, Union -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Dictionary, Stream -from ptext.pdf.canvas.event.event_listener import EventListener -from ptext.pdf.canvas.font.composite_font.cid_font_type_0 import CIDType0Font -from ptext.pdf.canvas.font.composite_font.cid_font_type_2 import CIDType2Font -from ptext.pdf.canvas.font.composite_font.font_type_0 import Type0Font -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font, Type1Font -from ptext.pdf.canvas.font.simple_font.font_type_3 import Type3Font -from ptext.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont +from borb.io.read.types import AnyPDFType, Dictionary, Stream +from borb.pdf.canvas.event.event_listener import EventListener +from borb.pdf.canvas.font.composite_font.cid_font_type_0 import CIDType0Font +from borb.pdf.canvas.font.composite_font.cid_font_type_2 import CIDType2Font +from borb.pdf.canvas.font.composite_font.font_type_0 import Type0Font +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font, Type1Font +from borb.pdf.canvas.font.simple_font.font_type_3 import Type3Font +from borb.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont class ReadFontDictionaryTransformer(ReadBaseTransformer): diff --git a/borb/io/read/function/__init__.py b/borb/io/read/function/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/function/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/function/read_function_dictionary_transformer.py b/borb/io/read/function/read_function_dictionary_transformer.py similarity index 93% rename from ptext/io/read/function/read_function_dictionary_transformer.py rename to borb/io/read/function/read_function_dictionary_transformer.py index 71b3add2c..a5f5e35ef 100644 --- a/ptext/io/read/function/read_function_dictionary_transformer.py +++ b/borb/io/read/function/read_function_dictionary_transformer.py @@ -9,12 +9,12 @@ from decimal import Decimal from typing import Any, Optional, Union -from ptext.io.filter.stream_decode_util import decode_stream -from ptext.io.read.read_base_transformer import ( +from borb.io.filter.stream_decode_util import decode_stream +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import ( +from borb.io.read.types import ( AnyPDFType, Dictionary, Function, @@ -22,7 +22,7 @@ Reference, Stream, ) -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.pdf.canvas.event.event_listener import EventListener class FunctionDictionaryTransformer(ReadBaseTransformer): diff --git a/borb/io/read/image/__init__.py b/borb/io/read/image/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/image/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/image/read_ccitt_fax_image_transformer.py b/borb/io/read/image/read_ccitt_fax_image_transformer.py similarity index 93% rename from ptext/io/read/image/read_ccitt_fax_image_transformer.py rename to borb/io/read/image/read_ccitt_fax_image_transformer.py index 05db8c06b..0f8101c55 100644 --- a/ptext/io/read/image/read_ccitt_fax_image_transformer.py +++ b/borb/io/read/image/read_ccitt_fax_image_transformer.py @@ -11,12 +11,12 @@ from PIL import Image # type: ignore [import] -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Stream, add_base_methods -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Stream, add_base_methods +from borb.pdf.canvas.event.event_listener import EventListener logger = logging.getLogger(__name__) diff --git a/ptext/io/read/image/read_compressed_jpeg_image_transformer.py b/borb/io/read/image/read_compressed_jpeg_image_transformer.py similarity index 92% rename from ptext/io/read/image/read_compressed_jpeg_image_transformer.py rename to borb/io/read/image/read_compressed_jpeg_image_transformer.py index c79977fba..9a6e12232 100644 --- a/ptext/io/read/image/read_compressed_jpeg_image_transformer.py +++ b/borb/io/read/image/read_compressed_jpeg_image_transformer.py @@ -11,13 +11,13 @@ from PIL import Image # type: ignore [import] -from ptext.io.filter.stream_decode_util import decode_stream -from ptext.io.read.read_base_transformer import ( +from borb.io.filter.stream_decode_util import decode_stream +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Name, Stream, add_base_methods -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Name, Stream, add_base_methods +from borb.pdf.canvas.event.event_listener import EventListener logger = logging.getLogger(__name__) diff --git a/ptext/io/read/image/read_grayscale_image_transformer.py b/borb/io/read/image/read_grayscale_image_transformer.py similarity index 92% rename from ptext/io/read/image/read_grayscale_image_transformer.py rename to borb/io/read/image/read_grayscale_image_transformer.py index f4c2924a3..9bde5540d 100644 --- a/ptext/io/read/image/read_grayscale_image_transformer.py +++ b/borb/io/read/image/read_grayscale_image_transformer.py @@ -11,13 +11,13 @@ from PIL import Image # type: ignore [import] -from ptext.io.filter.stream_decode_util import decode_stream -from ptext.io.read.read_base_transformer import ( +from borb.io.filter.stream_decode_util import decode_stream +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Reference, Stream, add_base_methods -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Reference, Stream, add_base_methods +from borb.pdf.canvas.event.event_listener import EventListener logger = logging.getLogger(__name__) diff --git a/ptext/io/read/image/read_jbig2_image_transformer.py b/borb/io/read/image/read_jbig2_image_transformer.py similarity index 93% rename from ptext/io/read/image/read_jbig2_image_transformer.py rename to borb/io/read/image/read_jbig2_image_transformer.py index 7d88310a1..ad197d2fb 100644 --- a/ptext/io/read/image/read_jbig2_image_transformer.py +++ b/borb/io/read/image/read_jbig2_image_transformer.py @@ -11,12 +11,12 @@ from PIL import Image # type: ignore [import] -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Stream, add_base_methods -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Stream, add_base_methods +from borb.pdf.canvas.event.event_listener import EventListener logger = logging.getLogger(__name__) diff --git a/ptext/io/read/image/read_jpeg_2000_image_transformer.py b/borb/io/read/image/read_jpeg_2000_image_transformer.py similarity index 93% rename from ptext/io/read/image/read_jpeg_2000_image_transformer.py rename to borb/io/read/image/read_jpeg_2000_image_transformer.py index 61a5dd64b..06d5dfcbe 100644 --- a/ptext/io/read/image/read_jpeg_2000_image_transformer.py +++ b/borb/io/read/image/read_jpeg_2000_image_transformer.py @@ -11,12 +11,12 @@ from PIL import Image # type: ignore [import] -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Stream, add_base_methods -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Stream, add_base_methods +from borb.pdf.canvas.event.event_listener import EventListener logger = logging.getLogger(__name__) diff --git a/ptext/io/read/image/read_jpeg_image_transformer.py b/borb/io/read/image/read_jpeg_image_transformer.py similarity index 93% rename from ptext/io/read/image/read_jpeg_image_transformer.py rename to borb/io/read/image/read_jpeg_image_transformer.py index 2ded3297e..ae9bfc1d5 100644 --- a/ptext/io/read/image/read_jpeg_image_transformer.py +++ b/borb/io/read/image/read_jpeg_image_transformer.py @@ -11,12 +11,12 @@ from PIL import Image # type: ignore [import] -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Stream, add_base_methods -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Stream, add_base_methods +from borb.pdf.canvas.event.event_listener import EventListener logger = logging.getLogger(__name__) diff --git a/borb/io/read/metadata/__init__.py b/borb/io/read/metadata/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/metadata/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/metadata/read_xmp_metadata_transformer.py b/borb/io/read/metadata/read_xmp_metadata_transformer.py similarity index 93% rename from ptext/io/read/metadata/read_xmp_metadata_transformer.py rename to borb/io/read/metadata/read_xmp_metadata_transformer.py index 57e32d05a..8bbcb92c6 100644 --- a/ptext/io/read/metadata/read_xmp_metadata_transformer.py +++ b/borb/io/read/metadata/read_xmp_metadata_transformer.py @@ -18,10 +18,10 @@ import xml.etree.ElementTree as ET from typing import Any, Optional, Union -from ptext.io.read.object.read_stream_transformer import ReadStreamTransformer -from ptext.io.read.read_base_transformer import ReadTransformerContext -from ptext.io.read.types import AnyPDFType, Element, Stream -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.object.read_stream_transformer import ReadStreamTransformer +from borb.io.read.read_base_transformer import ReadTransformerContext +from borb.io.read.types import AnyPDFType, Element, Stream +from borb.pdf.canvas.event.event_listener import EventListener logger = logging.getLogger(__name__) diff --git a/borb/io/read/object/__init__.py b/borb/io/read/object/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/object/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/object/read_array_transformer.py b/borb/io/read/object/read_array_transformer.py similarity index 90% rename from ptext/io/read/object/read_array_transformer.py rename to borb/io/read/object/read_array_transformer.py index 75fb0dfef..d3203642b 100644 --- a/ptext/io/read/object/read_array_transformer.py +++ b/borb/io/read/object/read_array_transformer.py @@ -8,12 +8,12 @@ import typing from typing import Any, Optional, Union -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, List -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, List +from borb.pdf.canvas.event.event_listener import EventListener class ReadArrayTransformer(ReadBaseTransformer): diff --git a/ptext/io/read/object/read_dictionary_transformer.py b/borb/io/read/object/read_dictionary_transformer.py similarity index 91% rename from ptext/io/read/object/read_dictionary_transformer.py rename to borb/io/read/object/read_dictionary_transformer.py index 7a0abfee4..a35597967 100644 --- a/ptext/io/read/object/read_dictionary_transformer.py +++ b/borb/io/read/object/read_dictionary_transformer.py @@ -8,12 +8,12 @@ import typing from typing import Any, Optional, Union -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Dictionary -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Dictionary +from borb.pdf.canvas.event.event_listener import EventListener class ReadDictionaryTransformer(ReadBaseTransformer): diff --git a/ptext/io/read/object/read_stream_transformer.py b/borb/io/read/object/read_stream_transformer.py similarity index 90% rename from ptext/io/read/object/read_stream_transformer.py rename to borb/io/read/object/read_stream_transformer.py index 07e45ceb5..730864506 100644 --- a/ptext/io/read/object/read_stream_transformer.py +++ b/borb/io/read/object/read_stream_transformer.py @@ -8,13 +8,13 @@ import typing from typing import Any, Optional, Union -from ptext.io.filter.stream_decode_util import decode_stream -from ptext.io.read.read_base_transformer import ( +from borb.io.filter.stream_decode_util import decode_stream +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Reference, Stream -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Reference, Stream +from borb.pdf.canvas.event.event_listener import EventListener class ReadStreamTransformer(ReadBaseTransformer): diff --git a/borb/io/read/page/__init__.py b/borb/io/read/page/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/page/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/page/read_page_dictionary_transformer.py b/borb/io/read/page/read_page_dictionary_transformer.py similarity index 86% rename from ptext/io/read/page/read_page_dictionary_transformer.py rename to borb/io/read/page/read_page_dictionary_transformer.py index 0c81cdd63..41ff415a5 100644 --- a/ptext/io/read/page/read_page_dictionary_transformer.py +++ b/borb/io/read/page/read_page_dictionary_transformer.py @@ -9,18 +9,18 @@ import zlib from typing import Any, Dict, Optional, Union -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Dictionary, List, Stream, Name -from ptext.io.read.types import Decimal as pDecimal -from ptext.pdf.canvas.canvas import Canvas -from ptext.pdf.canvas.canvas_stream_processor import CanvasStreamProcessor -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.end_page_event import EndPageEvent -from ptext.pdf.canvas.event.event_listener import EventListener -from ptext.pdf.page.page import Page +from borb.io.read.types import AnyPDFType, Dictionary, List, Stream, Name +from borb.io.read.types import Decimal as pDecimal +from borb.pdf.canvas.canvas import Canvas +from borb.pdf.canvas.canvas_stream_processor import CanvasStreamProcessor +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.end_page_event import EndPageEvent +from borb.pdf.canvas.event.event_listener import EventListener +from borb.pdf.page.page import Page class ReadPageDictionaryTransformer(ReadBaseTransformer): diff --git a/ptext/io/read/page/read_root_dictionary_transformer.py b/borb/io/read/page/read_root_dictionary_transformer.py similarity index 89% rename from ptext/io/read/page/read_root_dictionary_transformer.py rename to borb/io/read/page/read_root_dictionary_transformer.py index 84a6c9d92..d86658cfd 100644 --- a/ptext/io/read/page/read_root_dictionary_transformer.py +++ b/borb/io/read/page/read_root_dictionary_transformer.py @@ -8,16 +8,16 @@ import typing from typing import Any, Dict, List, Optional, Union -from ptext.io.read.object.read_dictionary_transformer import ReadDictionaryTransformer -from ptext.io.read.read_base_transformer import ( +from borb.io.read.object.read_dictionary_transformer import ReadDictionaryTransformer +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Decimal, Dictionary -from ptext.io.read.types import List as pList -from ptext.io.read.types import Name -from ptext.pdf.canvas.event.event_listener import EventListener -from ptext.pdf.page.page import Page +from borb.io.read.types import AnyPDFType, Decimal, Dictionary +from borb.io.read.types import List as pList +from borb.io.read.types import Name +from borb.pdf.canvas.event.event_listener import EventListener +from borb.pdf.page.page import Page class ReadRootDictionaryTransformer(ReadBaseTransformer): diff --git a/borb/io/read/postfix/__init__.py b/borb/io/read/postfix/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/postfix/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/postfix/postfix_eval.py b/borb/io/read/postfix/postfix_eval.py similarity index 100% rename from ptext/io/read/postfix/postfix_eval.py rename to borb/io/read/postfix/postfix_eval.py diff --git a/borb/io/read/primitive/__init__.py b/borb/io/read/primitive/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/primitive/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/primitive/read_number_transformer.py b/borb/io/read/primitive/read_number_transformer.py similarity index 87% rename from ptext/io/read/primitive/read_number_transformer.py rename to borb/io/read/primitive/read_number_transformer.py index 655640ecf..86e05208b 100644 --- a/ptext/io/read/primitive/read_number_transformer.py +++ b/borb/io/read/primitive/read_number_transformer.py @@ -8,12 +8,12 @@ import typing from typing import Any, Optional, Union -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Decimal -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, Decimal +from borb.pdf.canvas.event.event_listener import EventListener class ReadNumberTransformer(ReadBaseTransformer): diff --git a/ptext/io/read/primitive/read_string_transformer.py b/borb/io/read/primitive/read_string_transformer.py similarity index 87% rename from ptext/io/read/primitive/read_string_transformer.py rename to borb/io/read/primitive/read_string_transformer.py index 409ddf887..530a2eb05 100644 --- a/ptext/io/read/primitive/read_string_transformer.py +++ b/borb/io/read/primitive/read_string_transformer.py @@ -8,12 +8,12 @@ import typing from typing import Any, Optional, Union -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, HexadecimalString, Name, String -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.types import AnyPDFType, HexadecimalString, Name, String +from borb.pdf.canvas.event.event_listener import EventListener class ReadStringTransformer(ReadBaseTransformer): diff --git a/ptext/io/read/read_any_object_transformer.py b/borb/io/read/read_any_object_transformer.py similarity index 68% rename from ptext/io/read/read_any_object_transformer.py rename to borb/io/read/read_any_object_transformer.py index 1e2ae9734..42f7f4f58 100644 --- a/ptext/io/read/read_any_object_transformer.py +++ b/borb/io/read/read_any_object_transformer.py @@ -9,48 +9,48 @@ import typing from typing import Any, Optional, Union -from ptext.io.read.font.read_font_dictionary_transformer import ( +from borb.io.read.font.read_font_dictionary_transformer import ( ReadFontDictionaryTransformer, ) -from ptext.io.read.function.read_function_dictionary_transformer import ( +from borb.io.read.function.read_function_dictionary_transformer import ( FunctionDictionaryTransformer, ) -from ptext.io.read.image.read_ccitt_fax_image_transformer import ( +from borb.io.read.image.read_ccitt_fax_image_transformer import ( ReadCCITTFaxImageTransformer, ) -from ptext.io.read.image.read_compressed_jpeg_image_transformer import ( +from borb.io.read.image.read_compressed_jpeg_image_transformer import ( ReadCompressedJPEGImageTransformer, ) -from ptext.io.read.image.read_grayscale_image_transformer import ( +from borb.io.read.image.read_grayscale_image_transformer import ( ReadGrayscaleImageTransformer, ) -from ptext.io.read.image.read_jbig2_image_transformer import ReadJBIG2ImageTransformer -from ptext.io.read.image.read_jpeg_2000_image_transformer import ( +from borb.io.read.image.read_jbig2_image_transformer import ReadJBIG2ImageTransformer +from borb.io.read.image.read_jpeg_2000_image_transformer import ( ReadJPEG2000ImageTransformer, ) -from ptext.io.read.image.read_jpeg_image_transformer import ReadJPEGImageTransformer -from ptext.io.read.metadata.read_xmp_metadata_transformer import ( +from borb.io.read.image.read_jpeg_image_transformer import ReadJPEGImageTransformer +from borb.io.read.metadata.read_xmp_metadata_transformer import ( ReadXMPMetadataTransformer, ) -from ptext.io.read.object.read_array_transformer import ReadArrayTransformer -from ptext.io.read.object.read_dictionary_transformer import ReadDictionaryTransformer -from ptext.io.read.object.read_stream_transformer import ReadStreamTransformer -from ptext.io.read.page.read_page_dictionary_transformer import ( +from borb.io.read.object.read_array_transformer import ReadArrayTransformer +from borb.io.read.object.read_dictionary_transformer import ReadDictionaryTransformer +from borb.io.read.object.read_stream_transformer import ReadStreamTransformer +from borb.io.read.page.read_page_dictionary_transformer import ( ReadPageDictionaryTransformer, ) -from ptext.io.read.page.read_root_dictionary_transformer import ( +from borb.io.read.page.read_root_dictionary_transformer import ( ReadRootDictionaryTransformer, ) -from ptext.io.read.primitive.read_number_transformer import ReadNumberTransformer -from ptext.io.read.primitive.read_string_transformer import ReadStringTransformer -from ptext.io.read.read_base_transformer import ( +from borb.io.read.primitive.read_number_transformer import ReadNumberTransformer +from borb.io.read.primitive.read_string_transformer import ReadStringTransformer +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.reference.read_reference_transformer import ReadReferenceTransformer -from ptext.io.read.reference.read_xref_transformer import ReadXREFTransformer -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.reference.read_reference_transformer import ReadReferenceTransformer +from borb.io.read.reference.read_xref_transformer import ReadXREFTransformer +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.event.event_listener import EventListener class ReadAnyObjectTransformer(ReadBaseTransformer): diff --git a/ptext/io/read/read_base_transformer.py b/borb/io/read/read_base_transformer.py similarity index 95% rename from ptext/io/read/read_base_transformer.py rename to borb/io/read/read_base_transformer.py index abcfeb978..6556eb69f 100644 --- a/ptext/io/read/read_base_transformer.py +++ b/borb/io/read/read_base_transformer.py @@ -9,9 +9,9 @@ import typing from typing import Any, Optional, Union -from ptext.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer -from ptext.io.read.types import AnyPDFType, Reference -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer +from borb.io.read.types import AnyPDFType, Reference +from borb.pdf.canvas.event.event_listener import EventListener class ReadTransformerContext: diff --git a/borb/io/read/reference/__init__.py b/borb/io/read/reference/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/reference/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/reference/read_reference_transformer.py b/borb/io/read/reference/read_reference_transformer.py similarity index 95% rename from ptext/io/read/reference/read_reference_transformer.py rename to borb/io/read/reference/read_reference_transformer.py index b12d3b814..4d71280ee 100644 --- a/ptext/io/read/reference/read_reference_transformer.py +++ b/borb/io/read/reference/read_reference_transformer.py @@ -10,13 +10,13 @@ import typing from typing import Any, Optional, Union -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.types import AnyPDFType, Reference -from ptext.pdf.canvas.event.event_listener import EventListener -from ptext.pdf.xref.xref import XREF +from borb.io.read.types import AnyPDFType, Reference +from borb.pdf.canvas.event.event_listener import EventListener +from borb.pdf.xref.xref import XREF logger = logging.getLogger(__name__) diff --git a/ptext/io/read/reference/read_xref_transformer.py b/borb/io/read/reference/read_xref_transformer.py similarity index 94% rename from ptext/io/read/reference/read_xref_transformer.py rename to borb/io/read/reference/read_xref_transformer.py index 83d376d0c..648c9c4d4 100644 --- a/ptext/io/read/reference/read_xref_transformer.py +++ b/borb/io/read/reference/read_xref_transformer.py @@ -10,17 +10,17 @@ from decimal import Decimal from typing import Any, Optional, Union -from ptext.io.read.read_base_transformer import ( +from borb.io.read.read_base_transformer import ( ReadBaseTransformer, ReadTransformerContext, ) -from ptext.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer -from ptext.io.read.types import AnyPDFType, Dictionary, Name -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.document import Document -from ptext.pdf.xref.plaintext_xref import PlainTextXREF -from ptext.pdf.xref.stream_xref import StreamXREF -from ptext.pdf.xref.xref import XREF +from borb.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer +from borb.io.read.types import AnyPDFType, Dictionary, Name +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.document import Document +from borb.pdf.xref.plaintext_xref import PlainTextXREF +from borb.pdf.xref.stream_xref import StreamXREF +from borb.pdf.xref.xref import XREF class BeginDocumentEvent(Event): diff --git a/borb/io/read/tokenize/__init__.py b/borb/io/read/tokenize/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/read/tokenize/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/read/tokenize/high_level_tokenizer.py b/borb/io/read/tokenize/high_level_tokenizer.py similarity index 98% rename from ptext/io/read/tokenize/high_level_tokenizer.py rename to borb/io/read/tokenize/high_level_tokenizer.py index dd707f66f..d7150339a 100644 --- a/ptext/io/read/tokenize/high_level_tokenizer.py +++ b/borb/io/read/tokenize/high_level_tokenizer.py @@ -9,8 +9,8 @@ import re from typing import Optional -from ptext.io.read.tokenize.low_level_tokenizer import LowLevelTokenizer, TokenType -from ptext.io.read.types import ( +from borb.io.read.tokenize.low_level_tokenizer import LowLevelTokenizer, TokenType +from borb.io.read.types import ( AnyPDFType, Boolean, CanvasOperatorName, diff --git a/ptext/io/read/tokenize/low_level_tokenizer.py b/borb/io/read/tokenize/low_level_tokenizer.py similarity index 100% rename from ptext/io/read/tokenize/low_level_tokenizer.py rename to borb/io/read/tokenize/low_level_tokenizer.py diff --git a/ptext/io/read/types.py b/borb/io/read/types.py similarity index 99% rename from ptext/io/read/types.py rename to borb/io/read/types.py index 6c0ce5553..9e7201780 100644 --- a/ptext/io/read/types.py +++ b/borb/io/read/types.py @@ -15,8 +15,8 @@ from PIL.Image import Image # type: ignore [import] -from ptext.io.read.postfix.postfix_eval import PostScriptEval -from ptext.pdf.canvas.event.event_listener import EventListener +from borb.io.read.postfix.postfix_eval import PostScriptEval +from borb.pdf.canvas.event.event_listener import EventListener def add_base_methods(object: typing.Any) -> typing.Any: diff --git a/borb/io/write/__init__.py b/borb/io/write/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/write/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/io/write/ascii_art/__init__.py b/borb/io/write/ascii_art/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/write/ascii_art/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/io/write/ascii_art/ascii_logo.txt b/borb/io/write/ascii_art/ascii_logo.txt new file mode 100644 index 000000000..a2a2fb0d4 --- /dev/null +++ b/borb/io/write/ascii_art/ascii_logo.txt @@ -0,0 +1,2 @@ +borb version 2.0.6 +Joris Schellekens diff --git a/ptext/io/write/ascii_art/write_ascii_art_transformer.py b/borb/io/write/ascii_art/write_ascii_art_transformer.py similarity index 90% rename from ptext/io/write/ascii_art/write_ascii_art_transformer.py rename to borb/io/write/ascii_art/write_ascii_art_transformer.py index 20d4bc4e5..015c6cfc6 100644 --- a/ptext/io/write/ascii_art/write_ascii_art_transformer.py +++ b/borb/io/write/ascii_art/write_ascii_art_transformer.py @@ -7,8 +7,8 @@ from pathlib import Path from typing import Optional -from ptext.io.read.types import AnyPDFType, Stream -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, Stream +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) @@ -26,7 +26,7 @@ def __init__(self): def can_be_transformed(self, any: AnyPDFType): """ This function returns True once per Document (on the first Stream object) and embeds some ASCII art - This is used to embed the current pText version in each Document + This is used to embed the current version in each Document """ return isinstance(any, Stream) and not self._has_been_used diff --git a/borb/io/write/image/__init__.py b/borb/io/write/image/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/write/image/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/write/image/write_image_transformer.py b/borb/io/write/image/write_image_transformer.py similarity index 94% rename from ptext/io/write/image/write_image_transformer.py rename to borb/io/write/image/write_image_transformer.py index 443c6ce8d..d859d448f 100644 --- a/ptext/io/write/image/write_image_transformer.py +++ b/borb/io/write/image/write_image_transformer.py @@ -10,10 +10,10 @@ from PIL import Image as PILImage # type: ignore [import] -from ptext.io.read.types import AnyPDFType -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Name, Reference, Stream, add_base_methods -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Name, Reference, Stream, add_base_methods +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/borb/io/write/object/__init__.py b/borb/io/write/object/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/write/object/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/write/object/write_array_transformer.py b/borb/io/write/object/write_array_transformer.py similarity index 96% rename from ptext/io/write/object/write_array_transformer.py rename to borb/io/write/object/write_array_transformer.py index 74e6d56d3..8aa426bc3 100644 --- a/ptext/io/write/object/write_array_transformer.py +++ b/borb/io/write/object/write_array_transformer.py @@ -10,8 +10,8 @@ from PIL.Image import Image # type: ignore [import] -from ptext.io.read.types import AnyPDFType, Dictionary, List, Reference, Stream -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, Dictionary, List, Reference, Stream +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/ptext/io/write/object/write_dictionary_transformer.py b/borb/io/write/object/write_dictionary_transformer.py similarity index 96% rename from ptext/io/write/object/write_dictionary_transformer.py rename to borb/io/write/object/write_dictionary_transformer.py index 45cb01de6..e789509b6 100644 --- a/ptext/io/write/object/write_dictionary_transformer.py +++ b/borb/io/write/object/write_dictionary_transformer.py @@ -10,8 +10,8 @@ from PIL.Image import Image # type: ignore [import] -from ptext.io.read.types import AnyPDFType, Dictionary, Element, List, Reference, Stream -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, Dictionary, Element, List, Reference, Stream +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/ptext/io/write/object/write_stream_transformer.py b/borb/io/write/object/write_stream_transformer.py similarity index 94% rename from ptext/io/write/object/write_stream_transformer.py rename to borb/io/write/object/write_stream_transformer.py index ce7ee4313..19d037abf 100644 --- a/ptext/io/write/object/write_stream_transformer.py +++ b/borb/io/write/object/write_stream_transformer.py @@ -9,10 +9,10 @@ import zlib from typing import Optional -from ptext.io.read.types import AnyPDFType -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Dictionary, List, Name, Reference, Stream -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Dictionary, List, Name, Reference, Stream +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/borb/io/write/page/__init__.py b/borb/io/write/page/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/write/page/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/write/page/write_page_transformer.py b/borb/io/write/page/write_page_transformer.py similarity index 88% rename from ptext/io/write/page/write_page_transformer.py rename to borb/io/write/page/write_page_transformer.py index 123dc249f..584e68307 100644 --- a/ptext/io/write/page/write_page_transformer.py +++ b/borb/io/write/page/write_page_transformer.py @@ -8,12 +8,12 @@ import logging from typing import Optional -from ptext.io.read.types import AnyPDFType, Dictionary, Name -from ptext.io.write.object.write_dictionary_transformer import ( +from borb.io.read.types import AnyPDFType, Dictionary, Name +from borb.io.write.object.write_dictionary_transformer import ( WriteDictionaryTransformer, ) -from ptext.io.write.write_base_transformer import WriteTransformerContext -from ptext.pdf.document import Document +from borb.io.write.write_base_transformer import WriteTransformerContext +from borb.pdf.document import Document logger = logging.getLogger(__name__) diff --git a/ptext/io/write/page/write_pages_transformer.py b/borb/io/write/page/write_pages_transformer.py similarity index 90% rename from ptext/io/write/page/write_pages_transformer.py rename to borb/io/write/page/write_pages_transformer.py index f366090e5..e31f8a7d2 100644 --- a/ptext/io/write/page/write_pages_transformer.py +++ b/borb/io/write/page/write_pages_transformer.py @@ -9,11 +9,11 @@ import typing from typing import Optional -from ptext.io.read.types import AnyPDFType, Dictionary, Name, Reference -from ptext.io.write.object.write_dictionary_transformer import ( +from borb.io.read.types import AnyPDFType, Dictionary, Name, Reference +from borb.io.write.object.write_dictionary_transformer import ( WriteDictionaryTransformer, ) -from ptext.io.write.write_base_transformer import WriteTransformerContext +from borb.io.write.write_base_transformer import WriteTransformerContext logger = logging.getLogger(__name__) diff --git a/borb/io/write/primitive/__init__.py b/borb/io/write/primitive/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/write/primitive/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/write/primitive/write_boolean_transformer.py b/borb/io/write/primitive/write_boolean_transformer.py similarity index 91% rename from ptext/io/write/primitive/write_boolean_transformer.py rename to borb/io/write/primitive/write_boolean_transformer.py index 3201f3b2e..385bab908 100644 --- a/ptext/io/write/primitive/write_boolean_transformer.py +++ b/borb/io/write/primitive/write_boolean_transformer.py @@ -6,8 +6,8 @@ """ from typing import Optional -from ptext.io.read.types import AnyPDFType, Boolean -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, Boolean +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/ptext/io/write/primitive/write_name_transformer.py b/borb/io/write/primitive/write_name_transformer.py similarity index 90% rename from ptext/io/write/primitive/write_name_transformer.py rename to borb/io/write/primitive/write_name_transformer.py index 3d4894d4f..2fe82c4a9 100644 --- a/ptext/io/write/primitive/write_name_transformer.py +++ b/borb/io/write/primitive/write_name_transformer.py @@ -6,8 +6,8 @@ """ from typing import Optional -from ptext.io.read.types import AnyPDFType, Name -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, Name +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/ptext/io/write/primitive/write_number_transformer.py b/borb/io/write/primitive/write_number_transformer.py similarity index 92% rename from ptext/io/write/primitive/write_number_transformer.py rename to borb/io/write/primitive/write_number_transformer.py index 523c9e7ce..696fb10f2 100644 --- a/ptext/io/write/primitive/write_number_transformer.py +++ b/borb/io/write/primitive/write_number_transformer.py @@ -6,8 +6,8 @@ """ from typing import Optional -from ptext.io.read.types import AnyPDFType, Decimal -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, Decimal +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/ptext/io/write/primitive/write_string_transformer.py b/borb/io/write/primitive/write_string_transformer.py similarity index 92% rename from ptext/io/write/primitive/write_string_transformer.py rename to borb/io/write/primitive/write_string_transformer.py index 8f46412df..6c6acdb72 100644 --- a/ptext/io/write/primitive/write_string_transformer.py +++ b/borb/io/write/primitive/write_string_transformer.py @@ -6,8 +6,8 @@ """ from typing import Optional -from ptext.io.read.types import AnyPDFType, HexadecimalString, String -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, HexadecimalString, String +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/borb/io/write/reference/__init__.py b/borb/io/write/reference/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/write/reference/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/write/reference/write_reference_transformer.py b/borb/io/write/reference/write_reference_transformer.py similarity index 92% rename from ptext/io/write/reference/write_reference_transformer.py rename to borb/io/write/reference/write_reference_transformer.py index 50382a0a1..fd8d9da00 100644 --- a/ptext/io/write/reference/write_reference_transformer.py +++ b/borb/io/write/reference/write_reference_transformer.py @@ -6,8 +6,8 @@ """ from typing import Optional -from ptext.io.read.types import AnyPDFType, Reference -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, Reference +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/ptext/io/write/reference/write_xref_transformer.py b/borb/io/write/reference/write_xref_transformer.py similarity index 97% rename from ptext/io/write/reference/write_xref_transformer.py rename to borb/io/write/reference/write_xref_transformer.py index 4550a7dae..c882c03ee 100644 --- a/ptext/io/write/reference/write_xref_transformer.py +++ b/borb/io/write/reference/write_xref_transformer.py @@ -7,12 +7,12 @@ import typing from typing import Optional -from ptext.io.read.types import AnyPDFType, Decimal, Dictionary, Name, Reference -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType, Decimal, Dictionary, Name, Reference +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) -from ptext.pdf.xref.xref import XREF +from borb.pdf.xref.xref import XREF class WriteXREFTransformer(WriteBaseTransformer): diff --git a/ptext/io/write/write_any_object_transformer.py b/borb/io/write/write_any_object_transformer.py similarity index 66% rename from ptext/io/write/write_any_object_transformer.py rename to borb/io/write/write_any_object_transformer.py index 92b27bb39..b07dd8116 100644 --- a/ptext/io/write/write_any_object_transformer.py +++ b/borb/io/write/write_any_object_transformer.py @@ -8,30 +8,30 @@ import io from typing import Optional, Union -from ptext.io.read.types import AnyPDFType -from ptext.io.write.ascii_art.write_ascii_art_transformer import ( +from borb.io.read.types import AnyPDFType +from borb.io.write.ascii_art.write_ascii_art_transformer import ( WriteASCIIArtTransformer, ) -from ptext.io.write.image.write_image_transformer import WriteImageTransformer -from ptext.io.write.object.write_array_transformer import WriteArrayTransformer -from ptext.io.write.object.write_dictionary_transformer import ( +from borb.io.write.image.write_image_transformer import WriteImageTransformer +from borb.io.write.object.write_array_transformer import WriteArrayTransformer +from borb.io.write.object.write_dictionary_transformer import ( WriteDictionaryTransformer, ) -from ptext.io.write.object.write_stream_transformer import WriteStreamTransformer -from ptext.io.write.page.write_page_transformer import WritePageTransformer -from ptext.io.write.page.write_pages_transformer import WritePagesTransformer -from ptext.io.write.primitive.write_boolean_transformer import WriteBooleanTransformer -from ptext.io.write.primitive.write_name_transformer import WriteNameTransformer -from ptext.io.write.primitive.write_number_transformer import WriteNumberTransformer -from ptext.io.write.primitive.write_string_transformer import WriteStringTransformer -from ptext.io.write.reference.write_reference_transformer import WriteReferenceTransform -from ptext.io.write.reference.write_xref_transformer import WriteXREFTransformer -from ptext.io.write.write_base_transformer import ( +from borb.io.write.object.write_stream_transformer import WriteStreamTransformer +from borb.io.write.page.write_page_transformer import WritePageTransformer +from borb.io.write.page.write_pages_transformer import WritePagesTransformer +from borb.io.write.primitive.write_boolean_transformer import WriteBooleanTransformer +from borb.io.write.primitive.write_name_transformer import WriteNameTransformer +from borb.io.write.primitive.write_number_transformer import WriteNumberTransformer +from borb.io.write.primitive.write_string_transformer import WriteStringTransformer +from borb.io.write.reference.write_reference_transformer import WriteReferenceTransform +from borb.io.write.reference.write_xref_transformer import WriteXREFTransformer +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) -from ptext.io.write.write_pdf_transformer import WritePDFTransformer -from ptext.io.write.xmp.write_xmp_transformer import WriteXMPTransformer +from borb.io.write.write_pdf_transformer import WritePDFTransformer +from borb.io.write.xmp.write_xmp_transformer import WriteXMPTransformer class WriteAnyObjectTransformer(WriteBaseTransformer): diff --git a/ptext/io/write/write_base_transformer.py b/borb/io/write/write_base_transformer.py similarity index 90% rename from ptext/io/write/write_base_transformer.py rename to borb/io/write/write_base_transformer.py index d020edd45..7d3b6677b 100644 --- a/ptext/io/write/write_base_transformer.py +++ b/borb/io/write/write_base_transformer.py @@ -8,7 +8,7 @@ import typing from typing import Optional -from ptext.io.read.types import AnyPDFType, Reference +from borb.io.read.types import AnyPDFType, Reference class WriteTransformerContext: @@ -27,20 +27,14 @@ def __init__( destination: Optional[typing.Union[io.BufferedIOBase, io.RawIOBase]] = None, root_object: Optional[AnyPDFType] = None, ): - self.destination = ( - destination # this is the destination to write to (file, byte-buffer, etc) - ) - self.root_object: Optional[ - AnyPDFType - ] = root_object # this is the root object (PDF) - self.indirect_objects_by_id: typing.Dict[int, AnyPDFType] = {} - self.indirect_objects_by_hash: typing.Dict[ - int, typing.List[AnyPDFType] - ] = {} # these are all the indirect objects - self.resolved_references: typing.List[ - Reference - ] = [] # these references have already been written - self.compression_level = 9 + # fmt: off + self.destination = destination # this is the destination to write to (file, byte-buffer, etc) + self.root_object: Optional[AnyPDFType] = root_object # this is the root object (PDF) + self.indirect_objects_by_id: typing.Dict[int, AnyPDFType] = {} # these are the indirect objects (by id) + self.indirect_objects_by_hash: typing.Dict[int, typing.List[AnyPDFType]] = {} # these are the indirect objects (by hash) + self.resolved_references: typing.List[Reference] = [] # these references have already been written + self.compression_level = 9 # default compression level + # fmt: on class WriteBaseTransformer: diff --git a/ptext/io/write/write_pdf_transformer.py b/borb/io/write/write_pdf_transformer.py similarity index 96% rename from ptext/io/write/write_pdf_transformer.py rename to borb/io/write/write_pdf_transformer.py index 1b33d4765..f2c6a3f21 100644 --- a/ptext/io/write/write_pdf_transformer.py +++ b/borb/io/write/write_pdf_transformer.py @@ -10,7 +10,7 @@ import typing from typing import Any, Optional -from ptext.io.read.types import ( +from borb.io.read.types import ( AnyPDFType, Dictionary, HexadecimalString, @@ -18,11 +18,11 @@ Name, String, ) -from ptext.io.write.write_base_transformer import ( +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) -from ptext.pdf.document import Document +from borb.pdf.document import Document logger = logging.getLogger(__name__) @@ -90,7 +90,7 @@ def transform( # set Producer object_to_transform["XRef"]["Trailer"]["Info"][Name("Producer")] = String( - "pText" + "borb" ) # transform XREF diff --git a/borb/io/write/xmp/__init__.py b/borb/io/write/xmp/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/io/write/xmp/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/io/write/xmp/write_xmp_transformer.py b/borb/io/write/xmp/write_xmp_transformer.py similarity index 91% rename from ptext/io/write/xmp/write_xmp_transformer.py rename to borb/io/write/xmp/write_xmp_transformer.py index 1579f3df4..dbb739864 100644 --- a/ptext/io/write/xmp/write_xmp_transformer.py +++ b/borb/io/write/xmp/write_xmp_transformer.py @@ -9,10 +9,10 @@ import xml.etree.ElementTree as ET from typing import Optional -from ptext.io.read.types import AnyPDFType -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Name, Reference, Stream -from ptext.io.write.write_base_transformer import ( +from borb.io.read.types import AnyPDFType +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Name, Reference, Stream +from borb.io.write.write_base_transformer import ( WriteBaseTransformer, WriteTransformerContext, ) diff --git a/borb/pdf/__init__.py b/borb/pdf/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/pdf/canvas/__init__.py b/borb/pdf/canvas/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/canvas.py b/borb/pdf/canvas/canvas.py similarity index 89% rename from ptext/pdf/canvas/canvas.py rename to borb/pdf/canvas/canvas.py index 41816df26..c7551b0bc 100644 --- a/ptext/pdf/canvas/canvas.py +++ b/borb/pdf/canvas/canvas.py @@ -7,8 +7,8 @@ It takes its name from the canvas used in visual arts. """ -from ptext.io.read.types import Dictionary -from ptext.pdf.canvas.canvas_graphics_state import CanvasGraphicsState +from borb.io.read.types import Dictionary +from borb.pdf.canvas.canvas_graphics_state import CanvasGraphicsState class Canvas(Dictionary): diff --git a/ptext/pdf/canvas/canvas_graphics_state.py b/borb/pdf/canvas/canvas_graphics_state.py similarity index 95% rename from ptext/pdf/canvas/canvas_graphics_state.py rename to borb/pdf/canvas/canvas_graphics_state.py index 6723c7f86..4c54017dc 100644 --- a/ptext/pdf/canvas/canvas_graphics_state.py +++ b/borb/pdf/canvas/canvas_graphics_state.py @@ -10,10 +10,10 @@ import typing from decimal import Decimal -from ptext.io.read.types import Name -from ptext.pdf.canvas.color.color import RGBColor -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.geometry.matrix import Matrix +from borb.io.read.types import Name +from borb.pdf.canvas.color.color import RGBColor +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.geometry.matrix import Matrix class CanvasGraphicsState: diff --git a/ptext/pdf/canvas/canvas_stream_processor.py b/borb/pdf/canvas/canvas_stream_processor.py similarity index 69% rename from ptext/pdf/canvas/canvas_stream_processor.py rename to borb/pdf/canvas/canvas_stream_processor.py index 4463a231a..b03af83de 100644 --- a/ptext/pdf/canvas/canvas_stream_processor.py +++ b/borb/pdf/canvas/canvas_stream_processor.py @@ -11,84 +11,84 @@ import time import typing -from ptext.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer -from ptext.io.read.types import AnyPDFType, CanvasOperatorName, Dictionary -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator -from ptext.pdf.canvas.operator.color.set_cmyk_non_stroking import SetCMYKNonStroking -from ptext.pdf.canvas.operator.color.set_cmyk_stroking import SetCMYKStroking -from ptext.pdf.canvas.operator.color.set_color_non_stroking import SetColorNonStroking -from ptext.pdf.canvas.operator.color.set_color_space_non_stroking import ( +from borb.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer +from borb.io.read.types import AnyPDFType, CanvasOperatorName, Dictionary +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.pdf.canvas.operator.color.set_cmyk_non_stroking import SetCMYKNonStroking +from borb.pdf.canvas.operator.color.set_cmyk_stroking import SetCMYKStroking +from borb.pdf.canvas.operator.color.set_color_non_stroking import SetColorNonStroking +from borb.pdf.canvas.operator.color.set_color_space_non_stroking import ( SetColorSpaceNonStroking, ) -from ptext.pdf.canvas.operator.color.set_color_space_stroking import ( +from borb.pdf.canvas.operator.color.set_color_space_stroking import ( SetColorSpaceStroking, ) -from ptext.pdf.canvas.operator.color.set_color_stroking import SetColorStroking -from ptext.pdf.canvas.operator.color.set_gray_non_stroking import SetGrayNonStroking -from ptext.pdf.canvas.operator.color.set_gray_stroking import SetGrayStroking -from ptext.pdf.canvas.operator.color.set_rgb_non_stroking import SetRGBNonStroking -from ptext.pdf.canvas.operator.color.set_rgb_stroking import SetRGBStroking -from ptext.pdf.canvas.operator.compatibility.begin_compatibility_section import ( +from borb.pdf.canvas.operator.color.set_color_stroking import SetColorStroking +from borb.pdf.canvas.operator.color.set_gray_non_stroking import SetGrayNonStroking +from borb.pdf.canvas.operator.color.set_gray_stroking import SetGrayStroking +from borb.pdf.canvas.operator.color.set_rgb_non_stroking import SetRGBNonStroking +from borb.pdf.canvas.operator.color.set_rgb_stroking import SetRGBStroking +from borb.pdf.canvas.operator.compatibility.begin_compatibility_section import ( BeginCompatibilitySection, ) -from ptext.pdf.canvas.operator.compatibility.end_compatibility_section import ( +from borb.pdf.canvas.operator.compatibility.end_compatibility_section import ( EndCompatibilitySection, ) -from ptext.pdf.canvas.operator.marked_content.begin_marked_content import ( +from borb.pdf.canvas.operator.marked_content.begin_marked_content import ( BeginMarkedContent, ) -from ptext.pdf.canvas.operator.marked_content.begin_marked_content_with_property_list import ( +from borb.pdf.canvas.operator.marked_content.begin_marked_content_with_property_list import ( BeginMarkedContentWithPropertyList, ) -from ptext.pdf.canvas.operator.marked_content.end_marked_content import EndMarkedContent -from ptext.pdf.canvas.operator.path_construction.append_cubic_bezier import ( +from borb.pdf.canvas.operator.marked_content.end_marked_content import EndMarkedContent +from borb.pdf.canvas.operator.path_construction.append_cubic_bezier import ( AppendCubicBezierCurve1, AppendCubicBezierCurve2, AppendCubicBezierCurve3, ) -from ptext.pdf.canvas.operator.path_construction.append_line_segment import ( +from borb.pdf.canvas.operator.path_construction.append_line_segment import ( AppendLineSegment, ) -from ptext.pdf.canvas.operator.path_construction.begin_subpath import BeginSubpath -from ptext.pdf.canvas.operator.path_construction.close_subpath import CloseSubpath -from ptext.pdf.canvas.operator.path_painting.close_and_stroke_path import ( +from borb.pdf.canvas.operator.path_construction.begin_subpath import BeginSubpath +from borb.pdf.canvas.operator.path_construction.close_subpath import CloseSubpath +from borb.pdf.canvas.operator.path_painting.close_and_stroke_path import ( CloseAndStrokePath, ) -from ptext.pdf.canvas.operator.path_painting.stroke_path import StrokePath -from ptext.pdf.canvas.operator.state.modify_transformation_matrix import ( +from borb.pdf.canvas.operator.path_painting.stroke_path import StrokePath +from borb.pdf.canvas.operator.state.modify_transformation_matrix import ( ModifyTransformationMatrix, ) -from ptext.pdf.canvas.operator.state.pop_graphics_state import PopGraphicsState -from ptext.pdf.canvas.operator.state.push_graphics_state import PushGraphicsState -from ptext.pdf.canvas.operator.state.set_line_width import SetLineWidth -from ptext.pdf.canvas.operator.text.begin_text import BeginTextObject -from ptext.pdf.canvas.operator.text.end_text import EndTextObject -from ptext.pdf.canvas.operator.text.move_text_position import MoveTextPosition -from ptext.pdf.canvas.operator.text.move_text_position_set_leading import ( +from borb.pdf.canvas.operator.state.pop_graphics_state import PopGraphicsState +from borb.pdf.canvas.operator.state.push_graphics_state import PushGraphicsState +from borb.pdf.canvas.operator.state.set_line_width import SetLineWidth +from borb.pdf.canvas.operator.text.begin_text import BeginTextObject +from borb.pdf.canvas.operator.text.end_text import EndTextObject +from borb.pdf.canvas.operator.text.move_text_position import MoveTextPosition +from borb.pdf.canvas.operator.text.move_text_position_set_leading import ( MoveTextPositionSetLeading, ) -from ptext.pdf.canvas.operator.text.move_to_next_line import MoveToNextLine -from ptext.pdf.canvas.operator.text.move_to_next_line_show_text import ( +from borb.pdf.canvas.operator.text.move_to_next_line import MoveToNextLine +from borb.pdf.canvas.operator.text.move_to_next_line_show_text import ( MoveToNextLineShowText, ) -from ptext.pdf.canvas.operator.text.set_character_spacing import SetCharacterSpacing -from ptext.pdf.canvas.operator.text.set_font_and_size import SetFontAndSize -from ptext.pdf.canvas.operator.text.set_horizontal_text_scaling import ( +from borb.pdf.canvas.operator.text.set_character_spacing import SetCharacterSpacing +from borb.pdf.canvas.operator.text.set_font_and_size import SetFontAndSize +from borb.pdf.canvas.operator.text.set_horizontal_text_scaling import ( SetHorizontalScaling, ) -from ptext.pdf.canvas.operator.text.set_spacing_move_to_next_line_show_text import ( +from borb.pdf.canvas.operator.text.set_spacing_move_to_next_line_show_text import ( SetSpacingMoveToNextLineShowText, ) -from ptext.pdf.canvas.operator.text.set_text_leading import SetTextLeading -from ptext.pdf.canvas.operator.text.set_text_matrix import SetTextMatrix -from ptext.pdf.canvas.operator.text.set_text_rendering_mode import SetTextRenderingMode -from ptext.pdf.canvas.operator.text.set_text_rise import SetTextRise -from ptext.pdf.canvas.operator.text.set_word_spacing import SetWordSpacing -from ptext.pdf.canvas.operator.text.show_text import ShowText -from ptext.pdf.canvas.operator.text.show_text_with_glyph_positioning import ( +from borb.pdf.canvas.operator.text.set_text_leading import SetTextLeading +from borb.pdf.canvas.operator.text.set_text_matrix import SetTextMatrix +from borb.pdf.canvas.operator.text.set_text_rendering_mode import SetTextRenderingMode +from borb.pdf.canvas.operator.text.set_text_rise import SetTextRise +from borb.pdf.canvas.operator.text.set_word_spacing import SetWordSpacing +from borb.pdf.canvas.operator.text.show_text import ShowText +from borb.pdf.canvas.operator.text.show_text_with_glyph_positioning import ( ShowTextWithGlyphPositioning, ) -from ptext.pdf.canvas.operator.xobject.do import Do +from borb.pdf.canvas.operator.xobject.do import Do logger = logging.getLogger(__name__) @@ -211,8 +211,7 @@ def get_resource( e.g. for a content stream in an XObject, first its own /Resources entry is tried, and lastly the Page resources. """ # check external Resources - for i in range(0, len(self._resource_dictionaries)): - i = len(self._resource_dictionaries) - i - 1 + for i in range(len(self._resource_dictionaries) - 1, -1, -1): rd = self._resource_dictionaries[i] if (resource_type_name in rd) and (name in rd[resource_type_name]): return rd[resource_type_name][name] diff --git a/borb/pdf/canvas/color/__init__.py b/borb/pdf/canvas/color/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/color/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/color/color.py b/borb/pdf/canvas/color/color.py similarity index 99% rename from ptext/pdf/canvas/color/color.py rename to borb/pdf/canvas/color/color.py index c94bde09d..69cd0d910 100644 --- a/ptext/pdf/canvas/color/color.py +++ b/borb/pdf/canvas/color/color.py @@ -9,7 +9,7 @@ import typing from decimal import Decimal -from ptext.io.read.types import Function, List, Name +from borb.io.read.types import Function, List, Name logger = logging.getLogger(__name__) diff --git a/ptext/pdf/canvas/color/pantone.py b/borb/pdf/canvas/color/pantone.py similarity index 99% rename from ptext/pdf/canvas/color/pantone.py rename to borb/pdf/canvas/color/pantone.py index 313550e35..d12f5ce26 100644 --- a/ptext/pdf/canvas/color/pantone.py +++ b/borb/pdf/canvas/color/pantone.py @@ -11,7 +11,7 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.color.color import Color, HexColor, RGBColor +from borb.pdf.canvas.color.color import Color, HexColor, RGBColor class Pantone(HexColor): diff --git a/borb/pdf/canvas/event/__init__.py b/borb/pdf/canvas/event/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/event/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/event/begin_page_event.py b/borb/pdf/canvas/event/begin_page_event.py similarity index 84% rename from ptext/pdf/canvas/event/begin_page_event.py rename to borb/pdf/canvas/event/begin_page_event.py index 39c28122d..fd1ec8000 100644 --- a/ptext/pdf/canvas/event/begin_page_event.py +++ b/borb/pdf/canvas/event/begin_page_event.py @@ -4,8 +4,8 @@ """ This implementation of Event is triggered right before the Canvas is being processed. """ -from ptext.pdf.canvas.event.event_listener import Event -from ptext.pdf.page.page import Page +from borb.pdf.canvas.event.event_listener import Event +from borb.pdf.page.page import Page class BeginPageEvent(Event): diff --git a/ptext/pdf/canvas/event/begin_text_event.py b/borb/pdf/canvas/event/begin_text_event.py similarity index 83% rename from ptext/pdf/canvas/event/begin_text_event.py rename to borb/pdf/canvas/event/begin_text_event.py index 23a5546c6..edadfc51f 100644 --- a/ptext/pdf/canvas/event/begin_text_event.py +++ b/borb/pdf/canvas/event/begin_text_event.py @@ -4,7 +4,7 @@ """ This implementation of Event is triggered when an BT instruction is being processed. """ -from ptext.pdf.canvas.event.event_listener import Event +from borb.pdf.canvas.event.event_listener import Event class BeginTextEvent(Event): diff --git a/ptext/pdf/canvas/event/chunk_of_text_render_event.py b/borb/pdf/canvas/event/chunk_of_text_render_event.py similarity index 95% rename from ptext/pdf/canvas/event/chunk_of_text_render_event.py rename to borb/pdf/canvas/event/chunk_of_text_render_event.py index a513b899e..78d3d6f4b 100644 --- a/ptext/pdf/canvas/event/chunk_of_text_render_event.py +++ b/borb/pdf/canvas/event/chunk_of_text_render_event.py @@ -7,13 +7,13 @@ import typing from decimal import Decimal -from ptext.io.read.types import String -from ptext.pdf.canvas.canvas_graphics_state import CanvasGraphicsState -from ptext.pdf.canvas.event.event_listener import Event -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.font.glyph_line import GlyphLine -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.io.read.types import String +from borb.pdf.canvas.canvas_graphics_state import CanvasGraphicsState +from borb.pdf.canvas.event.event_listener import Event +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.glyph_line import GlyphLine +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText class ChunkOfTextRenderEvent(Event, ChunkOfText): diff --git a/ptext/pdf/canvas/event/end_page_event.py b/borb/pdf/canvas/event/end_page_event.py similarity index 84% rename from ptext/pdf/canvas/event/end_page_event.py rename to borb/pdf/canvas/event/end_page_event.py index 9ed26b30d..c0565266b 100644 --- a/ptext/pdf/canvas/event/end_page_event.py +++ b/borb/pdf/canvas/event/end_page_event.py @@ -4,8 +4,8 @@ """ This implementation of Event is triggered right after the Canvas has been processed. """ -from ptext.pdf.canvas.event.event_listener import Event -from ptext.pdf.page.page import Page +from borb.pdf.canvas.event.event_listener import Event +from borb.pdf.page.page import Page class EndPageEvent(Event): diff --git a/ptext/pdf/canvas/event/end_text_event.py b/borb/pdf/canvas/event/end_text_event.py similarity index 83% rename from ptext/pdf/canvas/event/end_text_event.py rename to borb/pdf/canvas/event/end_text_event.py index 45dcc81c9..834ccf662 100644 --- a/ptext/pdf/canvas/event/end_text_event.py +++ b/borb/pdf/canvas/event/end_text_event.py @@ -4,7 +4,7 @@ """ This implementation of Event is triggered when an ET instruction is being processed. """ -from ptext.pdf.canvas.event.event_listener import Event +from borb.pdf.canvas.event.event_listener import Event class EndTextEvent(Event): diff --git a/ptext/pdf/canvas/event/event_listener.py b/borb/pdf/canvas/event/event_listener.py similarity index 100% rename from ptext/pdf/canvas/event/event_listener.py rename to borb/pdf/canvas/event/event_listener.py diff --git a/ptext/pdf/canvas/event/image_render_event.py b/borb/pdf/canvas/event/image_render_event.py similarity index 84% rename from ptext/pdf/canvas/event/image_render_event.py rename to borb/pdf/canvas/event/image_render_event.py index 71de943a6..206e1465c 100644 --- a/ptext/pdf/canvas/event/image_render_event.py +++ b/borb/pdf/canvas/event/image_render_event.py @@ -6,10 +6,10 @@ """ from decimal import Decimal -from PIL import Image # type: ignore [import] +from PIL import Image as PILImage # type: ignore [import] -from ptext.pdf.canvas.canvas_graphics_state import CanvasGraphicsState -from ptext.pdf.canvas.event.event_listener import Event +from borb.pdf.canvas.canvas_graphics_state import CanvasGraphicsState +from borb.pdf.canvas.event.event_listener import Event class ImageRenderEvent(Event): @@ -17,8 +17,8 @@ class ImageRenderEvent(Event): This implementation of Event is triggered when an Image has been processed using a Do instruction """ - def __init__(self, graphics_state: CanvasGraphicsState, image: Image): - self._image = image + def __init__(self, graphics_state: CanvasGraphicsState, image: PILImage): + self._image: PILImage = image # calculate position v = graphics_state.ctm.cross(Decimal(0), Decimal(0), Decimal(1)) @@ -30,7 +30,7 @@ def __init__(self, graphics_state: CanvasGraphicsState, image: Image): self._width: Decimal = max(abs(v[0]), Decimal(1)) self._height: Decimal = max(abs(v[1]), Decimal(1)) - def get_image(self) -> Image: + def get_image(self) -> PILImage: """ Get the (source) Image This Image may have different dimensions than diff --git a/ptext/pdf/canvas/event/line_render_event.py b/borb/pdf/canvas/event/line_render_event.py similarity index 79% rename from ptext/pdf/canvas/event/line_render_event.py rename to borb/pdf/canvas/event/line_render_event.py index 20f38a809..f22e14aa6 100644 --- a/ptext/pdf/canvas/event/line_render_event.py +++ b/borb/pdf/canvas/event/line_render_event.py @@ -4,9 +4,9 @@ """ This implementation of Event is triggered right after the Canvas has processed a stroke-path instruction. """ -from ptext.pdf.canvas.canvas_graphics_state import CanvasGraphicsState -from ptext.pdf.canvas.event.event_listener import Event -from ptext.pdf.canvas.geometry.line_segment import LineSegment +from borb.pdf.canvas.canvas_graphics_state import CanvasGraphicsState +from borb.pdf.canvas.event.event_listener import Event +from borb.pdf.canvas.geometry.line_segment import LineSegment class LineRenderEvent(Event): diff --git a/borb/pdf/canvas/font/__init__.py b/borb/pdf/canvas/font/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/font/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/font/adobe_standard_encoding.py b/borb/pdf/canvas/font/adobe_standard_encoding.py similarity index 100% rename from ptext/pdf/canvas/font/adobe_standard_encoding.py rename to borb/pdf/canvas/font/adobe_standard_encoding.py diff --git a/borb/pdf/canvas/font/composite_font/__init__.py b/borb/pdf/canvas/font/composite_font/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/font/composite_font/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/font/composite_font/cid_font_type_0.py b/borb/pdf/canvas/font/composite_font/cid_font_type_0.py similarity index 95% rename from ptext/pdf/canvas/font/composite_font/cid_font_type_0.py rename to borb/pdf/canvas/font/composite_font/cid_font_type_0.py index 3aef5e6ce..9c539f9b2 100644 --- a/ptext/pdf/canvas/font/composite_font/cid_font_type_0.py +++ b/borb/pdf/canvas/font/composite_font/cid_font_type_0.py @@ -15,9 +15,9 @@ """ import typing -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import List, Name -from ptext.pdf.canvas.font.font import Font +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import List, Name +from borb.pdf.canvas.font.font import Font class CIDType0Font(Font): @@ -108,7 +108,7 @@ def _empty_copy(self) -> "Font": def __deepcopy__(self, memodict={}): # fmt: off f_out: CIDType0Font = super(CIDType0Font, self).__deepcopy__(memodict) - f_out[Name("Subtype")] = Name("Type0") + f_out[Name("Subtype")] = Name("CIDFontType0") f_out._width_cache: typing.Dict[int, pDecimal] = {k: v for k, v in self._width_cache.items()} return f_out # fmt: on diff --git a/ptext/pdf/canvas/font/composite_font/cid_font_type_2.py b/borb/pdf/canvas/font/composite_font/cid_font_type_2.py similarity index 84% rename from ptext/pdf/canvas/font/composite_font/cid_font_type_2.py rename to borb/pdf/canvas/font/composite_font/cid_font_type_2.py index 15d177a7f..e8804953f 100644 --- a/ptext/pdf/canvas/font/composite_font/cid_font_type_2.py +++ b/borb/pdf/canvas/font/composite_font/cid_font_type_2.py @@ -15,10 +15,10 @@ """ import typing -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Name -from ptext.pdf.canvas.font.composite_font.cid_font_type_0 import CIDType0Font -from ptext.pdf.canvas.font.font import Font +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Name +from borb.pdf.canvas.font.composite_font.cid_font_type_0 import CIDType0Font +from borb.pdf.canvas.font.font import Font class CIDType2Font(CIDType0Font): @@ -36,7 +36,7 @@ def _empty_copy(self) -> "Font": def __deepcopy__(self, memodict={}): # fmt: off f_out: CIDType2Font = super(CIDType2Font, self).__deepcopy__(memodict) - f_out[Name("Subtype")] = Name("Type0") + f_out[Name("Subtype")] = Name("CIDFontType2") f_out._width_cache: typing.Dict[int, pDecimal] = {k: v for k, v in self._width_cache.items()} return f_out # fmt: on diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/78-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/78-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/78-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/78-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/78-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/78-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/78-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/78-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/78-H b/borb/pdf/canvas/font/composite_font/cmaps/78-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/78-H rename to borb/pdf/canvas/font/composite_font/cmaps/78-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/78-RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/78-RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/78-RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/78-RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/78-RKSJ-V b/borb/pdf/canvas/font/composite_font/cmaps/78-RKSJ-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/78-RKSJ-V rename to borb/pdf/canvas/font/composite_font/cmaps/78-RKSJ-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/78-V b/borb/pdf/canvas/font/composite_font/cmaps/78-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/78-V rename to borb/pdf/canvas/font/composite_font/cmaps/78-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/78ms-RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/78ms-RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/78ms-RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/78ms-RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/78ms-RKSJ-V b/borb/pdf/canvas/font/composite_font/cmaps/78ms-RKSJ-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/78ms-RKSJ-V rename to borb/pdf/canvas/font/composite_font/cmaps/78ms-RKSJ-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/83pv-RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/83pv-RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/83pv-RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/83pv-RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/90ms-RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/90ms-RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/90ms-RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/90ms-RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/90ms-RKSJ-V b/borb/pdf/canvas/font/composite_font/cmaps/90ms-RKSJ-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/90ms-RKSJ-V rename to borb/pdf/canvas/font/composite_font/cmaps/90ms-RKSJ-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/90msp-RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/90msp-RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/90msp-RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/90msp-RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/90msp-RKSJ-V b/borb/pdf/canvas/font/composite_font/cmaps/90msp-RKSJ-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/90msp-RKSJ-V rename to borb/pdf/canvas/font/composite_font/cmaps/90msp-RKSJ-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/90pv-RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/90pv-RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/90pv-RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/90pv-RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/90pv-RKSJ-V b/borb/pdf/canvas/font/composite_font/cmaps/90pv-RKSJ-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/90pv-RKSJ-V rename to borb/pdf/canvas/font/composite_font/cmaps/90pv-RKSJ-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Add-H b/borb/pdf/canvas/font/composite_font/cmaps/Add-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Add-H rename to borb/pdf/canvas/font/composite_font/cmaps/Add-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Add-RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/Add-RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Add-RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/Add-RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Add-RKSJ-V b/borb/pdf/canvas/font/composite_font/cmaps/Add-RKSJ-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Add-RKSJ-V rename to borb/pdf/canvas/font/composite_font/cmaps/Add-RKSJ-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Add-V b/borb/pdf/canvas/font/composite_font/cmaps/Add-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Add-V rename to borb/pdf/canvas/font/composite_font/cmaps/Add-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-0 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-0 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-0 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-0 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-1 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-1 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-1 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-1 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-2 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-2 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-2 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-2 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-3 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-3 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-3 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-3 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-4 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-4 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-4 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-4 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-5 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-5 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-5 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-5 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-6 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-6 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-6 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-6 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-7 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-7 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-7 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-CNS1-7 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-0 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-0 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-0 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-0 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-1 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-1 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-1 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-1 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-2 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-2 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-2 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-2 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-3 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-3 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-3 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-3 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-4 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-4 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-4 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-4 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-5 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-5 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-5 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-GB1-5 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Identity b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Identity similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Identity rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Identity diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Identity-H b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Identity-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Identity-H rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Identity-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Identity-V b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Identity-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Identity-V rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Identity-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-0 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-0 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-0 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-0 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-1 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-1 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-1 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-1 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-2 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-2 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-2 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-2 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-3 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-3 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-3 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-3 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-4 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-4 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-4 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-4 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-5 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-5 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-5 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-5 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-6 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-6 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-6 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-6 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-7 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-7 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-7 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan1-7 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan2-0 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan2-0 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Japan2-0 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Japan2-0 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-0 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-0 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-0 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-0 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-1 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-1 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-1 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-1 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-2 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-2 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-2 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-2 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-3 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-3 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-3 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-3 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-4 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-4 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-4 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-4 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-5 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-5 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-5 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-5 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-6 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-6 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-6 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-6 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-7 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-7 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-7 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-7 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-8 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-8 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-8 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-8 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-9 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-9 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-KR-9 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-KR-9 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-0 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-0 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-0 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-0 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-1 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-1 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-1 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-1 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-2 b/borb/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-2 similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-2 rename to borb/pdf/canvas/font/composite_font/cmaps/Adobe-Korea1-2 diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/B5-H b/borb/pdf/canvas/font/composite_font/cmaps/B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/B5-V b/borb/pdf/canvas/font/composite_font/cmaps/B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/B5pc-H b/borb/pdf/canvas/font/composite_font/cmaps/B5pc-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/B5pc-H rename to borb/pdf/canvas/font/composite_font/cmaps/B5pc-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/B5pc-V b/borb/pdf/canvas/font/composite_font/cmaps/B5pc-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/B5pc-V rename to borb/pdf/canvas/font/composite_font/cmaps/B5pc-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/CNS-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/CNS-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/CNS-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/CNS-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/CNS-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/CNS-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/CNS-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/CNS-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/CNS1-H b/borb/pdf/canvas/font/composite_font/cmaps/CNS1-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/CNS1-H rename to borb/pdf/canvas/font/composite_font/cmaps/CNS1-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/CNS1-V b/borb/pdf/canvas/font/composite_font/cmaps/CNS1-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/CNS1-V rename to borb/pdf/canvas/font/composite_font/cmaps/CNS1-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/CNS2-H b/borb/pdf/canvas/font/composite_font/cmaps/CNS2-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/CNS2-H rename to borb/pdf/canvas/font/composite_font/cmaps/CNS2-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/CNS2-V b/borb/pdf/canvas/font/composite_font/cmaps/CNS2-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/CNS2-V rename to borb/pdf/canvas/font/composite_font/cmaps/CNS2-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/ETHK-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/ETHK-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/ETHK-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/ETHK-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/ETHK-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/ETHK-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/ETHK-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/ETHK-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/ETen-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/ETen-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/ETen-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/ETen-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/ETen-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/ETen-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/ETen-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/ETen-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/ETenms-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/ETenms-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/ETenms-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/ETenms-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/ETenms-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/ETenms-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/ETenms-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/ETenms-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Ext-H b/borb/pdf/canvas/font/composite_font/cmaps/Ext-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Ext-H rename to borb/pdf/canvas/font/composite_font/cmaps/Ext-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Ext-RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/Ext-RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Ext-RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/Ext-RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Ext-RKSJ-V b/borb/pdf/canvas/font/composite_font/cmaps/Ext-RKSJ-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Ext-RKSJ-V rename to borb/pdf/canvas/font/composite_font/cmaps/Ext-RKSJ-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Ext-V b/borb/pdf/canvas/font/composite_font/cmaps/Ext-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Ext-V rename to borb/pdf/canvas/font/composite_font/cmaps/Ext-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GB-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/GB-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GB-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/GB-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GB-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/GB-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GB-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/GB-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GB-H b/borb/pdf/canvas/font/composite_font/cmaps/GB-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GB-H rename to borb/pdf/canvas/font/composite_font/cmaps/GB-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GB-V b/borb/pdf/canvas/font/composite_font/cmaps/GB-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GB-V rename to borb/pdf/canvas/font/composite_font/cmaps/GB-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBK-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/GBK-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBK-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/GBK-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBK-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/GBK-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBK-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/GBK-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBK2K-H b/borb/pdf/canvas/font/composite_font/cmaps/GBK2K-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBK2K-H rename to borb/pdf/canvas/font/composite_font/cmaps/GBK2K-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBK2K-V b/borb/pdf/canvas/font/composite_font/cmaps/GBK2K-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBK2K-V rename to borb/pdf/canvas/font/composite_font/cmaps/GBK2K-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBKp-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/GBKp-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBKp-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/GBKp-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBKp-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/GBKp-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBKp-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/GBKp-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBT-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/GBT-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBT-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/GBT-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBT-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/GBT-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBT-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/GBT-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBT-H b/borb/pdf/canvas/font/composite_font/cmaps/GBT-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBT-H rename to borb/pdf/canvas/font/composite_font/cmaps/GBT-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBT-V b/borb/pdf/canvas/font/composite_font/cmaps/GBT-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBT-V rename to borb/pdf/canvas/font/composite_font/cmaps/GBT-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBTpc-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/GBTpc-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBTpc-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/GBTpc-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBTpc-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/GBTpc-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBTpc-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/GBTpc-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBpc-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/GBpc-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBpc-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/GBpc-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/GBpc-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/GBpc-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/GBpc-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/GBpc-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/H b/borb/pdf/canvas/font/composite_font/cmaps/H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/H rename to borb/pdf/canvas/font/composite_font/cmaps/H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKdla-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/HKdla-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKdla-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/HKdla-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKdla-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/HKdla-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKdla-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/HKdla-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKdlb-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/HKdlb-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKdlb-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/HKdlb-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKdlb-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/HKdlb-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKdlb-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/HKdlb-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKgccs-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/HKgccs-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKgccs-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/HKgccs-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKgccs-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/HKgccs-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKgccs-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/HKgccs-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKm314-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/HKm314-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKm314-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/HKm314-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKm314-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/HKm314-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKm314-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/HKm314-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKm471-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/HKm471-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKm471-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/HKm471-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKm471-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/HKm471-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKm471-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/HKm471-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKscs-B5-H b/borb/pdf/canvas/font/composite_font/cmaps/HKscs-B5-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKscs-B5-H rename to borb/pdf/canvas/font/composite_font/cmaps/HKscs-B5-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/HKscs-B5-V b/borb/pdf/canvas/font/composite_font/cmaps/HKscs-B5-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/HKscs-B5-V rename to borb/pdf/canvas/font/composite_font/cmaps/HKscs-B5-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Hankaku b/borb/pdf/canvas/font/composite_font/cmaps/Hankaku similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Hankaku rename to borb/pdf/canvas/font/composite_font/cmaps/Hankaku diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Hiragana b/borb/pdf/canvas/font/composite_font/cmaps/Hiragana similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Hiragana rename to borb/pdf/canvas/font/composite_font/cmaps/Hiragana diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Hojo-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/Hojo-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Hojo-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/Hojo-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Hojo-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/Hojo-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Hojo-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/Hojo-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Hojo-H b/borb/pdf/canvas/font/composite_font/cmaps/Hojo-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Hojo-H rename to borb/pdf/canvas/font/composite_font/cmaps/Hojo-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Hojo-V b/borb/pdf/canvas/font/composite_font/cmaps/Hojo-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Hojo-V rename to borb/pdf/canvas/font/composite_font/cmaps/Hojo-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSC-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/KSC-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSC-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/KSC-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSC-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/KSC-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSC-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/KSC-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSC-H b/borb/pdf/canvas/font/composite_font/cmaps/KSC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSC-H rename to borb/pdf/canvas/font/composite_font/cmaps/KSC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSC-Johab-H b/borb/pdf/canvas/font/composite_font/cmaps/KSC-Johab-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSC-Johab-H rename to borb/pdf/canvas/font/composite_font/cmaps/KSC-Johab-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSC-Johab-V b/borb/pdf/canvas/font/composite_font/cmaps/KSC-Johab-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSC-Johab-V rename to borb/pdf/canvas/font/composite_font/cmaps/KSC-Johab-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSC-V b/borb/pdf/canvas/font/composite_font/cmaps/KSC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSC-V rename to borb/pdf/canvas/font/composite_font/cmaps/KSC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-H b/borb/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-H rename to borb/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-HW-H b/borb/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-HW-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-HW-H rename to borb/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-HW-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-HW-V b/borb/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-HW-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-HW-V rename to borb/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-HW-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-V b/borb/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-V rename to borb/pdf/canvas/font/composite_font/cmaps/KSCms-UHC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSCpc-EUC-H b/borb/pdf/canvas/font/composite_font/cmaps/KSCpc-EUC-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSCpc-EUC-H rename to borb/pdf/canvas/font/composite_font/cmaps/KSCpc-EUC-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/KSCpc-EUC-V b/borb/pdf/canvas/font/composite_font/cmaps/KSCpc-EUC-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/KSCpc-EUC-V rename to borb/pdf/canvas/font/composite_font/cmaps/KSCpc-EUC-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Katakana b/borb/pdf/canvas/font/composite_font/cmaps/Katakana similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Katakana rename to borb/pdf/canvas/font/composite_font/cmaps/Katakana diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/NWP-H b/borb/pdf/canvas/font/composite_font/cmaps/NWP-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/NWP-H rename to borb/pdf/canvas/font/composite_font/cmaps/NWP-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/NWP-V b/borb/pdf/canvas/font/composite_font/cmaps/NWP-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/NWP-V rename to borb/pdf/canvas/font/composite_font/cmaps/NWP-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/RKSJ-H b/borb/pdf/canvas/font/composite_font/cmaps/RKSJ-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/RKSJ-H rename to borb/pdf/canvas/font/composite_font/cmaps/RKSJ-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/RKSJ-V b/borb/pdf/canvas/font/composite_font/cmaps/RKSJ-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/RKSJ-V rename to borb/pdf/canvas/font/composite_font/cmaps/RKSJ-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/Roman b/borb/pdf/canvas/font/composite_font/cmaps/Roman similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/Roman rename to borb/pdf/canvas/font/composite_font/cmaps/Roman diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF16-H b/borb/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF16-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF16-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF16-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF8-H b/borb/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF8-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF8-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniAKR-UTF8-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UCS2-H b/borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UCS2-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UCS2-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UCS2-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UCS2-V b/borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UCS2-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UCS2-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UCS2-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF16-H b/borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF16-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF16-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF16-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF16-V b/borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF16-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF16-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF16-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF32-V b/borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF32-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF32-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF32-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF8-H b/borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF8-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF8-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF8-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF8-V b/borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF8-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF8-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniCNS-UTF8-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UCS2-H b/borb/pdf/canvas/font/composite_font/cmaps/UniGB-UCS2-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UCS2-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniGB-UCS2-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UCS2-V b/borb/pdf/canvas/font/composite_font/cmaps/UniGB-UCS2-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UCS2-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniGB-UCS2-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF16-H b/borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF16-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF16-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF16-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF16-V b/borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF16-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF16-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF16-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF32-V b/borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF32-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF32-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF32-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF8-H b/borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF8-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF8-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF8-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF8-V b/borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF8-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniGB-UTF8-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniGB-UTF8-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UCS2-H b/borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UCS2-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UCS2-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UCS2-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UCS2-V b/borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UCS2-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UCS2-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UCS2-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF16-H b/borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF16-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF16-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF16-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF16-V b/borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF16-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF16-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF16-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF32-V b/borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF32-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF32-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF32-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF8-H b/borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF8-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF8-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF8-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF8-V b/borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF8-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF8-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniHojo-UTF8-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-HW-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-HW-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-HW-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-HW-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-HW-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-HW-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-HW-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-HW-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UCS2-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF16-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF16-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF16-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF16-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF16-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF16-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF16-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF16-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF32-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF32-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF32-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF32-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF8-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF8-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF8-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF8-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF8-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF8-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF8-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS-UTF8-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF16-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF16-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF16-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF16-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF16-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF16-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF16-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF16-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF32-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF32-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF32-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF32-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF8-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF8-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF8-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF8-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF8-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF8-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF8-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJIS2004-UTF8-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJISPro-UCS2-HW-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJISPro-UCS2-HW-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJISPro-UCS2-HW-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJISPro-UCS2-HW-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJISPro-UCS2-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJISPro-UCS2-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJISPro-UCS2-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJISPro-UCS2-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJISPro-UTF8-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJISPro-UTF8-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJISPro-UTF8-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJISPro-UTF8-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJISX0213-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJISX0213-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJISX0213-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJISX0213-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJISX0213-UTF32-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJISX0213-UTF32-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJISX0213-UTF32-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJISX0213-UTF32-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJISX02132004-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniJISX02132004-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJISX02132004-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniJISX02132004-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniJISX02132004-UTF32-V b/borb/pdf/canvas/font/composite_font/cmaps/UniJISX02132004-UTF32-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniJISX02132004-UTF32-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniJISX02132004-UTF32-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UCS2-H b/borb/pdf/canvas/font/composite_font/cmaps/UniKS-UCS2-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UCS2-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniKS-UCS2-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UCS2-V b/borb/pdf/canvas/font/composite_font/cmaps/UniKS-UCS2-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UCS2-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniKS-UCS2-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF16-H b/borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF16-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF16-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF16-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF16-V b/borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF16-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF16-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF16-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF32-H b/borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF32-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF32-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF32-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF32-V b/borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF32-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF32-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF32-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF8-H b/borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF8-H similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF8-H rename to borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF8-H diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF8-V b/borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF8-V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/UniKS-UTF8-V rename to borb/pdf/canvas/font/composite_font/cmaps/UniKS-UTF8-V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/V b/borb/pdf/canvas/font/composite_font/cmaps/V similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/V rename to borb/pdf/canvas/font/composite_font/cmaps/V diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/WP-Symbol b/borb/pdf/canvas/font/composite_font/cmaps/WP-Symbol similarity index 100% rename from ptext/pdf/canvas/font/composite_font/cmaps/WP-Symbol rename to borb/pdf/canvas/font/composite_font/cmaps/WP-Symbol diff --git a/borb/pdf/canvas/font/composite_font/cmaps/__init__.py b/borb/pdf/canvas/font/composite_font/cmaps/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/font/composite_font/cmaps/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/font/composite_font/font_type_0.py b/borb/pdf/canvas/font/composite_font/font_type_0.py similarity index 73% rename from ptext/pdf/canvas/font/composite_font/font_type_0.py rename to borb/pdf/canvas/font/composite_font/font_type_0.py index a570c8515..0001aae9c 100644 --- a/ptext/pdf/canvas/font/composite_font/font_type_0.py +++ b/borb/pdf/canvas/font/composite_font/font_type_0.py @@ -10,9 +10,9 @@ import typing from pathlib import Path -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import List, Name, Stream -from ptext.pdf.canvas.font.font import Font +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import List, Name, Stream +from borb.pdf.canvas.font.font import Font logger = logging.getLogger(__name__) @@ -52,6 +52,9 @@ def _read_encoding_cmap(self): self._byte_to_char_identifier = { k: v for k, v in self._read_cmap(cmap_bytes).items() } + self._char_to_byte_identifier = { + v: k for k, v in self._byte_to_char_identifier.items() + } def character_identifier_to_unicode( self, character_identifier: int @@ -84,27 +87,12 @@ def character_identifier_to_unicode( return None assert cid is not None - # b) Obtain the registry and ordering of the character collection used by the font’s CMap - # (for example, Adobe and Japan1) from its CIDSystemInfo dictionary. - assert "DescendantFonts" in self - assert isinstance(self["DescendantFonts"], List) - assert len(self["DescendantFonts"]) == 1 - assert "CIDSystemInfo" in self["DescendantFonts"][0] - assert "Registry" in self["DescendantFonts"][0]["CIDSystemInfo"] - assert "Ordering" in self["DescendantFonts"][0]["CIDSystemInfo"] - registry: str = str(self["DescendantFonts"][0]["CIDSystemInfo"]["Registry"]) - ordering: str = str(self["DescendantFonts"][0]["CIDSystemInfo"]["Ordering"]) - - # c) Construct a second CMap name by concatenating the registry and ordering obtained in step (b) in - # the format registry–ordering–UCS2 (for example, Adobe–Japan1–UCS2). - cmap_name: str = "".join([registry, "-", ordering, "-", "UCS2"]) - # d) Obtain the CMap with the name constructed in step (c) (available from the ASN Web site; see the # Bibliography). # https://github.com/adobe-type-tools/cmap-resources if len(self._character_identifier_to_unicode_lookup) == 0: self._character_identifier_to_unicode_lookup = ( - Type0Font._find_best_matching_predefined_cmap(cmap_name) + Type0Font._find_best_matching_predefined_cmap(self._get_cmap_name()) ) self._unicode_lookup_to_character_identifier = { v: k @@ -118,6 +106,24 @@ def character_identifier_to_unicode( # default return None + def _get_cmap_name(self) -> str: + # b) Obtain the registry and ordering of the character collection used by the font’s CMap + # (for example, Adobe and Japan1) from its CIDSystemInfo dictionary. + assert "DescendantFonts" in self + assert isinstance(self["DescendantFonts"], List) + assert len(self["DescendantFonts"]) == 1 + assert "CIDSystemInfo" in self["DescendantFonts"][0] + assert "Registry" in self["DescendantFonts"][0]["CIDSystemInfo"] + assert "Ordering" in self["DescendantFonts"][0]["CIDSystemInfo"] + registry: str = str(self["DescendantFonts"][0]["CIDSystemInfo"]["Registry"]) + ordering: str = str(self["DescendantFonts"][0]["CIDSystemInfo"]["Ordering"]) + + # c) Construct a second CMap name by concatenating the registry and ordering obtained in step (b) in + # the format registry–ordering–UCS2 (for example, Adobe–Japan1–UCS2). + cmap_name: str = "".join([registry, "-", ordering, "-", "UCS2"]) + + return cmap_name + @staticmethod def _find_best_matching_predefined_cmap(cmap_name: str) -> typing.Dict[int, str]: cmap_dir: Path = Path(__file__).parent / "cmaps" @@ -128,29 +134,30 @@ def _find_best_matching_predefined_cmap(cmap_name: str) -> typing.Dict[int, str] if cmap_name not in predefined_cmaps: if cmap_name == "Adobe-Identity-UCS2": - logger.info( - "Encoding Adobe-Identity-UCS2 was specified, using Adobe-Identity-H in stead" - ) + # fmt: off + logger.info("Encoding Adobe-Identity-UCS2 was specified, using Adobe-Identity-H in stead") cmap_name = "Adobe-Identity-H" + # fmt: on if cmap_name == "Adobe-Japan1-UCS2": - logger.info( - "Encoding Adobe-Identity-UCS2 was specified, using Adobe-Japan1-0 in stead" - ) + # fmt: off + logger.info("Encoding Adobe-Identity-UCS2 was specified, using Adobe-Japan1-0 in stead") cmap_name = "Adobe-Japan1-0" + # fmt: on if cmap_name not in predefined_cmaps: - logger.info( - "Encoding %s was specified, defaulting to Adobe-Identity-H in stead" - % cmap_name - ) + # fmt: off + logger.info("Encoding %s was specified, defaulting to Adobe-Identity-H in stead" % cmap_name) cmap_name = "Adobe-Identity-H" + # fmt: on + # read predefined cmap cmap_bytes: typing.Optional[bytes] = None with open(cmap_dir / cmap_name, "rb") as cmap_file_handle: cmap_bytes = cmap_file_handle.read() - assert cmap_bytes is not None + + # use Font._read_cmap to process (and return) return Font._read_cmap(cmap_bytes) def unicode_to_character_identifier(self, unicode: str) -> typing.Optional[int]: @@ -161,6 +168,25 @@ def unicode_to_character_identifier(self, unicode: str) -> typing.Optional[int]: if Name("ToUnicode") in self: self._read_to_unicode() return self._unicode_lookup_to_character_identifier.get(unicode) + + if Name("Encoding") in self: + assert str(self["Encoding"]) in [ + "Identity", + "Identity-H", + ], "Only Identity and Identity-H are currently supported." + if len(self._character_identifier_to_unicode_lookup) == 0: + self._character_identifier_to_unicode_lookup = ( + Type0Font._find_best_matching_predefined_cmap(self._get_cmap_name()) + ) + self._unicode_lookup_to_character_identifier = { + v: k + for k, v in self._character_identifier_to_unicode_lookup.items() + } + + # e) Map the CID obtained in step (a) according to the CMap obtained in step (d), producing a + # Unicode value. + return self._unicode_lookup_to_character_identifier.get(unicode, None) + # default return None diff --git a/ptext/pdf/canvas/font/font.py b/borb/pdf/canvas/font/font.py similarity index 95% rename from ptext/pdf/canvas/font/font.py rename to borb/pdf/canvas/font/font.py index 774ef65d8..1c2f38aef 100644 --- a/ptext/pdf/canvas/font/font.py +++ b/borb/pdf/canvas/font/font.py @@ -18,10 +18,10 @@ import typing from decimal import Decimal -from ptext.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer -from ptext.io.read.tokenize.low_level_tokenizer import Token, TokenType -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Dictionary, List, Name +from borb.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer +from borb.io.read.tokenize.low_level_tokenizer import Token, TokenType +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Dictionary, List, Name class Font(Dictionary): @@ -176,13 +176,14 @@ def _read_cmap(cmap_bytes: bytes) -> typing.Dict[int, str]: token = cmap_tokenizer.next_non_comment_token() assert token is not None - unicode_str: str = str(token.get_text())[1:-1].replace(" ","") - unicode_str = "".join( - [ - chr(int(unicode_str[j: j + 4], 16)) - for j in range(0, len(unicode_str), 4) - ] - ) + if token.get_text().startswith("<") and token.get_text().endswith(">"): + unicode_str: str = str(token.get_text())[1:-1].replace(" ","") + unicode_str = "".join([chr(int(unicode_str[j: j + 4], 16)) for j in range(0, len(unicode_str), 4)]) + elif token.get_text().startswith("/"): + # TODO + assert False, "Unsupported CMAP syntax" + else: + assert False, "Invalid CMAP" out_map[char_code] = unicode_str if token.get_text() == "begincidrange": diff --git a/ptext/pdf/canvas/font/glyph_line.py b/borb/pdf/canvas/font/glyph_line.py similarity index 98% rename from ptext/pdf/canvas/font/glyph_line.py rename to borb/pdf/canvas/font/glyph_line.py index b339ff46d..47f07fe5c 100644 --- a/ptext/pdf/canvas/font/glyph_line.py +++ b/borb/pdf/canvas/font/glyph_line.py @@ -10,8 +10,8 @@ from curses.ascii import isspace from decimal import Decimal -from ptext.io.read.types import Decimal as pDecimal -from ptext.pdf.canvas.font.font import Font +from borb.io.read.types import Decimal as pDecimal +from borb.pdf.canvas.font.font import Font class Glyph: diff --git a/borb/pdf/canvas/font/simple_font/__init__.py b/borb/pdf/canvas/font/simple_font/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/font/simple_font/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/pdf/canvas/font/simple_font/afm/__init__.py b/borb/pdf/canvas/font/simple_font/afm/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/font/simple_font/afm/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/font/simple_font/afm/courier-bold-oblique.afm b/borb/pdf/canvas/font/simple_font/afm/courier-bold-oblique.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/courier-bold-oblique.afm rename to borb/pdf/canvas/font/simple_font/afm/courier-bold-oblique.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/courier-bold.afm b/borb/pdf/canvas/font/simple_font/afm/courier-bold.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/courier-bold.afm rename to borb/pdf/canvas/font/simple_font/afm/courier-bold.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/courier-oblique.afm b/borb/pdf/canvas/font/simple_font/afm/courier-oblique.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/courier-oblique.afm rename to borb/pdf/canvas/font/simple_font/afm/courier-oblique.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/courier.afm b/borb/pdf/canvas/font/simple_font/afm/courier.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/courier.afm rename to borb/pdf/canvas/font/simple_font/afm/courier.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/helvetica-bold-oblique.afm b/borb/pdf/canvas/font/simple_font/afm/helvetica-bold-oblique.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/helvetica-bold-oblique.afm rename to borb/pdf/canvas/font/simple_font/afm/helvetica-bold-oblique.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/helvetica-bold.afm b/borb/pdf/canvas/font/simple_font/afm/helvetica-bold.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/helvetica-bold.afm rename to borb/pdf/canvas/font/simple_font/afm/helvetica-bold.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/helvetica-oblique.afm b/borb/pdf/canvas/font/simple_font/afm/helvetica-oblique.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/helvetica-oblique.afm rename to borb/pdf/canvas/font/simple_font/afm/helvetica-oblique.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/helvetica.afm b/borb/pdf/canvas/font/simple_font/afm/helvetica.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/helvetica.afm rename to borb/pdf/canvas/font/simple_font/afm/helvetica.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/symbol.afm b/borb/pdf/canvas/font/simple_font/afm/symbol.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/symbol.afm rename to borb/pdf/canvas/font/simple_font/afm/symbol.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/times-bold-italic.afm b/borb/pdf/canvas/font/simple_font/afm/times-bold-italic.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/times-bold-italic.afm rename to borb/pdf/canvas/font/simple_font/afm/times-bold-italic.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/times-bold.afm b/borb/pdf/canvas/font/simple_font/afm/times-bold.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/times-bold.afm rename to borb/pdf/canvas/font/simple_font/afm/times-bold.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/times-italic.afm b/borb/pdf/canvas/font/simple_font/afm/times-italic.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/times-italic.afm rename to borb/pdf/canvas/font/simple_font/afm/times-italic.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/times-roman.afm b/borb/pdf/canvas/font/simple_font/afm/times-roman.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/times-roman.afm rename to borb/pdf/canvas/font/simple_font/afm/times-roman.afm diff --git a/ptext/pdf/canvas/font/simple_font/afm/zapfdingbats.afm b/borb/pdf/canvas/font/simple_font/afm/zapfdingbats.afm similarity index 100% rename from ptext/pdf/canvas/font/simple_font/afm/zapfdingbats.afm rename to borb/pdf/canvas/font/simple_font/afm/zapfdingbats.afm diff --git a/ptext/pdf/canvas/font/simple_font/font_type_1.py b/borb/pdf/canvas/font/simple_font/font_type_1.py similarity index 79% rename from ptext/pdf/canvas/font/simple_font/font_type_1.py rename to borb/pdf/canvas/font/simple_font/font_type_1.py index 66d913476..97397c11d 100644 --- a/ptext/pdf/canvas/font/simple_font/font_type_1.py +++ b/borb/pdf/canvas/font/simple_font/font_type_1.py @@ -5,22 +5,25 @@ encoding for the glyph descriptions, and it includes hint information that enables high-quality rendering even at small sizes and low resolutions. """ +import copy +import io import logging import typing from pathlib import Path from fontTools.afmLib import AFM # type: ignore [import] from fontTools.agl import toUnicode # type: ignore [import] +from fontTools.cffLib import CFFFontSet, TopDict # type: ignore [import] -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Dictionary, Name -from ptext.pdf.canvas.font.adobe_standard_encoding import ( +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Dictionary, Name +from borb.pdf.canvas.font.adobe_standard_encoding import ( adobe_standard_decode, adobe_standard_encode, ) -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.font.simple_font.simple_font import SimpleFont -from ptext.pdf.canvas.font.symbol_encoding import symbol_decode, zapfdingbats_decode +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.simple_font.simple_font import SimpleFont +from borb.pdf.canvas.font.symbol_encoding import symbol_decode, zapfdingbats_decode logger = logging.getLogger(__name__) @@ -39,12 +42,85 @@ def __init__(self): self._character_identifier_to_unicode_lookup: typing.Dict[int, str] = {} self._unicode_lookup_to_character_identifier: typing.Dict[str, int] = {} + def _read_encoding_with_unclear_glyph_names(self): + + # figure out how many characters we'll need to calculate + assert "FirstChar" in self + assert isinstance(self["FirstChar"], pDecimal) + assert "LastChar" in self + assert isinstance(self["LastChar"], pDecimal) + first_char: int = int(self["FirstChar"]) + last_char: int = int(self["LastChar"]) + self._character_identifier_to_unicode_lookup = {} + + i: int = 0 + for i in range(first_char, last_char + 1): + y: typing.Optional[str] = None + try: + if self["Encoding"]["BaseEncoding"] == "WinAnsiEncoding": + y = bytes([i]).decode("cp1252") + elif self["Encoding"]["BaseEncoding"] == "MacRomanEncoding": + y = bytes([i]).decode("mac-roman") + elif self["Encoding"]["BaseEncoding"] == "MacExpertEncoding": + # TODO replace by actual MacExpertEncoding + logger.debug( + "Font %s uses MacExpertEncoding, defaulting to MacRomanEncoding" + % str(self["BaseFont"]) + ) + y = bytes([i]).decode("mac-roman") + elif self["Encoding"]["BaseEncoding"] == "StandardEncoding": + y = adobe_standard_decode(bytes([i])) + except: + pass + if y is not None: + self._character_identifier_to_unicode_lookup[i] = y + + # apply differences + j: int = 0 + i = 0 + encoding_without_differences: typing.Dict[int, str] = copy.deepcopy( + self._character_identifier_to_unicode_lookup + ) + while i < len(self["Encoding"]["Differences"]): + assert isinstance(self["Encoding"]["Differences"][i], pDecimal) + character_code: int = self["Encoding"]["Differences"][i] + j = i + 1 + while j < len(self["Encoding"]["Differences"]) and not isinstance( + self["Encoding"]["Differences"][j], pDecimal + ): + glyph_name: str = str(self["Encoding"]["Differences"][j]) + cid: int = int(glyph_name[1:]) + self._character_identifier_to_unicode_lookup[ + int(character_code) + ] = encoding_without_differences[cid] + character_code += 1 + j += 1 + i = j + + # build reverse map + self._unicode_lookup_to_character_identifier = { + v: k for k, v in self._character_identifier_to_unicode_lookup.items() + } + def _read_encoding_with_differences(self) -> None: # check whether we've been here before if len(self._unicode_lookup_to_character_identifier) > 0: return + # IF self["Encoding"]["Differences"] only has non-standard glyph names, + # AND those glyph names all resolve to (using fontTools.agl.toUnicode) + # THEN attempt to parse them as numbers, using those as CIDs + if all( + [ + str(x).startswith("G") and toUnicode(str(x)) == "" + for x in self["Encoding"]["Differences"] + if isinstance(x, Name) + ] + ): + self._read_encoding_with_unclear_glyph_names() + return + # figure out how many characters we'll need to calculate assert "FirstChar" in self assert isinstance(self["FirstChar"], pDecimal) @@ -76,6 +152,21 @@ def _read_encoding_with_differences(self) -> None: if y is not None: self._character_identifier_to_unicode_lookup[i] = y + # read font file + if "FontDescriptor" in self and "FontFile3" in self["FontDescriptor"]: + font_file_bytes: bytes = self["FontDescriptor"]["FontFile3"]["DecodedBytes"] + cff: CFFFontSet = CFFFontSet() + cff.major = 1 + cff.decompile(io.BytesIO(font_file_bytes), otFont=None) + assert len(cff.keys()) == 1 + top_level_dict: TopDict = cff[0] + # A Type 1 font program’s glyph descriptions are keyed by glyph names, not by character codes. Glyph names + # are ordinary PDF name objects. Descriptions of Latin alphabetic characters are normally associated with + # names consisting of single letters, such as A or a. Other characters are associated with names composed of + # words, such as three, ampersand, or parenleft. A Type 1 font’s built-in encoding shall be defined by an + # Encoding array that is part of the font program, not to be confused with the Encoding entry in the PDF font + # dictionary. + # apply differences j: int = 0 i = 0 @@ -363,6 +454,7 @@ def __init__(self, font_name: typing.Optional[str] = None): self._unicode_lookup_to_character_identifier = {v:k for k,v in self._character_identifier_to_unicode_lookup.items()} else: + self[Name("Encoding")] = Name("WinAnsiEncoding") for c in range(0, 256): try: self._character_identifier_to_unicode_lookup[c] = bytes([c]).decode("cp1252") diff --git a/ptext/pdf/canvas/font/simple_font/font_type_3.py b/borb/pdf/canvas/font/simple_font/font_type_3.py similarity index 93% rename from ptext/pdf/canvas/font/simple_font/font_type_3.py rename to borb/pdf/canvas/font/simple_font/font_type_3.py index c5e1db7b7..ca9ba024c 100644 --- a/ptext/pdf/canvas/font/simple_font/font_type_3.py +++ b/borb/pdf/canvas/font/simple_font/font_type_3.py @@ -12,10 +12,10 @@ import logging import typing -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Name -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.font.simple_font.font_type_1 import Type1Font +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Name +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.simple_font.font_type_1 import Type1Font logger = logging.getLogger(__name__) diff --git a/ptext/pdf/canvas/font/simple_font/simple_font.py b/borb/pdf/canvas/font/simple_font/simple_font.py similarity index 98% rename from ptext/pdf/canvas/font/simple_font/simple_font.py rename to borb/pdf/canvas/font/simple_font/simple_font.py index ff64b5635..53a778899 100644 --- a/ptext/pdf/canvas/font/simple_font/simple_font.py +++ b/borb/pdf/canvas/font/simple_font/simple_font.py @@ -17,7 +17,7 @@ and other attributes of the font; see 9.8, "Font Descriptors". Among those attributes is an optional font file stream containing the font program. """ -from ptext.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.font import Font class SimpleFont(Font): diff --git a/borb/pdf/canvas/font/simple_font/true_type_font.py b/borb/pdf/canvas/font/simple_font/true_type_font.py new file mode 100644 index 000000000..b6a57e330 --- /dev/null +++ b/borb/pdf/canvas/font/simple_font/true_type_font.py @@ -0,0 +1,331 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +The TrueType font format was developed by Apple Computer, Inc., and has been adopted as a standard font +format for the Microsoft Windows operating system. Specifications for the TrueType font file format are +available in Apple’s TrueType Reference Manual and Microsoft’s TrueType 1.0 Font Files Technical +Specification (see Bibliography). +""" +import typing +import zlib +from decimal import Decimal +from pathlib import Path + +from fontTools.pens.boundsPen import BoundsPen # type: ignore [import] +from fontTools.ttLib import TTFont # type: ignore [import] +from fontTools.agl import toUnicode # type: ignore [import] + +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Dictionary, List, Name, Stream, String +from borb.pdf.canvas.font.composite_font.cid_font_type_2 import CIDType2Font +from borb.pdf.canvas.font.composite_font.font_type_0 import Type0Font +from borb.pdf.canvas.font.simple_font.font_type_1 import Type1Font + + +class TrueTypeFont(Type1Font): + """ + A TrueType font dictionary may contain the same entries as a Type 1 font dictionary (see Table 111), with these + differences: + • The value of Subtype shall be TrueType. + • The value of Encoding is subject to limitations that are described in 9.6.6, "Character Encoding". + • The value of BaseFont is derived differently. The PostScript name for the value of BaseFont may be determined in one of two ways: + • If the TrueType font program's “name” table contains a PostScript name, it shall be used. + • In the absence of such an entry in the “name” table, a PostScript name shall be derived from the name by + which the font is known in the host operating system. On a Windows system, the name shall be based on + the lfFaceName field in a LOGFONT structure; in the Mac OS, it shall be based on the name of the FOND + resource. If the name contains any SPACEs, the SPACEs shall be removed. + """ + + @staticmethod + def true_type_font_from_file( + path_to_font_file: Path, + ) -> typing.Union["TrueTypeFont", "Type0Font"]: + """ + This function returns the PDF TrueTypeFont object for a given TTF file + """ + assert path_to_font_file.exists() + assert path_to_font_file.name.endswith(".ttf") + + font_file_bytes: typing.Optional[bytes] = None + with open(path_to_font_file, "rb") as ffh: + font_file_bytes = ffh.read() + assert font_file_bytes + + # read file + ttf_font_file: TTFont = TTFont(path_to_font_file) + + # read cmap + cmap: typing.Optional[typing.Dict[int, str]] = ttf_font_file.getBestCmap() + assert cmap is not None + cmap_reverse: typing.Dict[str, int] = {} + for k, v in cmap.items(): + if v in cmap_reverse: + cmap_reverse[v] = min(cmap_reverse[v], k) + else: + cmap_reverse[v] = k + glyph_order: typing.List[str] = [ + x for x in ttf_font_file.glyphOrder if x in cmap_reverse + ] + + # if there are more than 256 glyphs, we need to switch to a Type0Font + if len(glyph_order) >= 256: + # fmt: off + type_0_font: Type0Font = TrueTypeFont._type_0_font_from_file(ttf_font_file) + type_0_font["DescendantFonts"][0]["FontDescriptor"][Name("FontFile2")] = TrueTypeFont._get_font_file_stream(font_file_bytes) + return type_0_font + # fmt: on + + # build font + font: TrueTypeFont = TrueTypeFont() + font_name: str = TrueTypeFont._get_base_font(ttf_font_file) + font[Name("Name")] = Name(font_name) + font[Name("BaseFont")] = Name(font_name) + + # build widths + units_per_em: pDecimal = pDecimal(ttf_font_file["head"].unitsPerEm) + if cmap is not None: + font[Name("FirstChar")] = pDecimal(0) + font[Name("LastChar")] = pDecimal(len(glyph_order)) + font[Name("Widths")] = List() + for glyph_name in glyph_order: + w: typing.Union[pDecimal, Decimal] = (pDecimal(ttf_font_file.getGlyphSet()[glyph_name].width) / units_per_em) * Decimal(1000) + w = pDecimal(round(w, 2)) + font["Widths"].append(w) + + assert font[Name("FirstChar")] >= 0 + assert ( + font[Name("LastChar")] < 256 + ), "TrueType fonts with more than 256 glyphs are currently not supported." + + font[Name("FontDescriptor")] = TrueTypeFont._get_font_descriptor(ttf_font_file) + font[Name("Encoding")] = Dictionary() + font["Encoding"][Name("BaseEncoding")] = Name("WinAnsiEncoding") + font["Encoding"][Name("Differences")] = List() + for i in range(0, len(glyph_order)): + font["Encoding"]["Differences"].append(pDecimal(i)) + font["Encoding"]["Differences"].append(Name(glyph_order[i])) + + # embed font file + font["FontDescriptor"][Name("FontFile2")] = TrueTypeFont._get_font_file_stream( + font_file_bytes + ) + + # return + return font + + @staticmethod + def _get_font_file_stream(font_file_bytes: bytes) -> Stream: + font_stream: Stream = Stream() + font_stream[Name("Type")] = Name("Font") + font_stream[Name("Subtype")] = Name("TrueType") + font_stream[Name("Length")] = pDecimal(len(font_file_bytes)) + font_stream[Name("Length1")] = pDecimal(len(font_file_bytes)) + font_stream[Name("Filter")] = Name("FlateDecode") + font_stream[Name("DecodedBytes")] = font_file_bytes + font_stream[Name("Bytes")] = zlib.compress(font_file_bytes, 9) + return font_stream + + @staticmethod + def _get_font_descriptor(ttf_font_file: TTFont) -> Dictionary: + + # fmt: off + font_descriptor: Dictionary = Dictionary() + font_descriptor[Name("Type")] = Name("FontDescriptor") + font_descriptor[Name("FontName")] = String(TrueTypeFont._get_base_font(ttf_font_file)) + font_descriptor[Name("FontStretch")] = Name("Normal") # TODO + font_descriptor[Name("FontWeight")] = pDecimal(400) # TODO + font_descriptor[Name("Flags")] = pDecimal(4) # TODO + # fmt: on + + # determine FontBBox, CapHeight + units_per_em: float = ttf_font_file["head"].unitsPerEm + min_x: float = 1000 + min_y: float = 1000 + max_x: float = 0 + max_y: float = 0 + cap_height: typing.Optional[pDecimal] = None + glyph_set = ttf_font_file.getGlyphSet() + for glyph_name in ttf_font_file.glyphOrder: + pen = BoundsPen(glyph_set) + glyph_set[glyph_name].draw(pen) + if pen.bounds is None: + continue + # determine CapHeight + if glyph_name in "EFHIJLMNTZ" and cap_height is None: + cap_height = pDecimal(pen.bounds[3]) + min_x = min(min_x, pen.bounds[0] / units_per_em * 1000) + min_y = min(min_y, pen.bounds[1] / units_per_em * 1000) + max_x = max(max_x, pen.bounds[2] / units_per_em * 1000) + max_y = max(max_y, pen.bounds[3] / units_per_em * 1000) + if cap_height is None: + cap_height = pDecimal(840) + + font_descriptor[Name("FontBBox")] = List().set_can_be_referenced(False) + font_descriptor["FontBBox"].append(pDecimal(min_x)) + font_descriptor["FontBBox"].append(pDecimal(min_y)) + font_descriptor["FontBBox"].append(pDecimal(max_x)) + font_descriptor["FontBBox"].append(pDecimal(max_y)) + + # fmt: off + font_descriptor[Name("ItalicAngle")] = pDecimal(ttf_font_file["post"].italicAngle) + units_per_em: pDecimal = pDecimal(ttf_font_file["head"].unitsPerEm) + font_descriptor[Name("Ascent")] = pDecimal(pDecimal(ttf_font_file["hhea"].ascent) / units_per_em * Decimal(1000)) + font_descriptor[Name("Descent")] = pDecimal(pDecimal(ttf_font_file["hhea"].descent) / units_per_em * Decimal(1000)) + font_descriptor[Name("CapHeight")] = cap_height + font_descriptor[Name("StemV")] = pDecimal(297) # TODO + # fmt: on + + return font_descriptor + + @staticmethod + def _get_base_font(ttf_font_file: TTFont) -> str: + font_name: str = str( + [ + x + for x in ttf_font_file["name"].names + if x.platformID == 3 and x.platEncID == 1 and x.nameID == 6 + ][0].string, + "latin1", + ) + font_name = "".join( + [x for x in font_name if x.lower() in "abcdefghijklmnopqrstuvwxyz-"] + ) + return font_name + + @staticmethod + def _build_custom_cmap(ttf_font_file: TTFont) -> Stream: + cmap_prefix: str = """ + /CIDInit /ProcSet findresource begin + 12 dict begin + begincmap + /CIDSystemInfo + << /Registry (Adobe) + /Ordering (UCS) + /Supplement 0 + >> def + /CMapName /Adobe-Identity-UCS def + /CMapType 2 def + 1 begincodespacerange + <0000> + endcodespacerange + """ + + # 1 beginbfchar + # <0000> <0000> + # endbfchar + + pairs: typing.List[typing.Tuple[str, str]] = [] + for i, g in enumerate(ttf_font_file.glyphOrder): + g_unicode: str = toUnicode(g) + if len(g_unicode) == 0: + continue + g_hex: str = "" + if len(g_unicode) == 1: + g_hex = hex(ord(g_unicode))[2:] + if len(g_unicode) == 2: + g_hex = hex(ord(g_unicode[0]))[2:] + hex(ord(g_unicode[1]))[2:] + while len(g_hex) < 4: + g_hex = "0" + g_hex + i_hex: str = hex(i)[2:] + while len(i_hex) < 4: + i_hex = "0" + i_hex + pairs.append((i_hex, g_hex)) + + cmap_content: str = "" + for i in range(0, len(pairs), 100): + start_index: int = i + end_index: int = min(start_index + 100, len(pairs)) + n: int = end_index - start_index + cmap_content += "%d beginbfchar\n" % n + for j in range(start_index, end_index): + cmap_content += "<%s> <%s>\n" % (pairs[j][0], pairs[j][1]) + cmap_content += "endbfchar\n" + + cmap_suffix: str = """ + endcmap + CMapName currentdict /CMap defineresource pop + end + end + """ + + bts: bytes = (cmap_prefix + cmap_content + cmap_suffix).encode("latin1") + to_unicode_stream = Stream() + to_unicode_stream[Name("DecodedBytes")] = bts + to_unicode_stream[Name("Bytes")] = zlib.compress(bts, 9) + to_unicode_stream[Name("Filter")] = Name("FlateDecode") + to_unicode_stream[Name("Length")] = pDecimal(len(bts)) + return to_unicode_stream + + @staticmethod + def _type_0_font_from_file(ttf_font_file: TTFont) -> "Type0Font": + type_0_font: Type0Font = Type0Font() + + # build BaseFont + font_name: str = TrueTypeFont._get_base_font(ttf_font_file) + type_0_font[Name("BaseFont")] = Name(font_name) + + # set Encoding + type_0_font[Name("Encoding")] = Name("Identity-H") + + # set ToUnicode + type_0_font[Name("ToUnicode")] = TrueTypeFont._build_custom_cmap(ttf_font_file) + + # build DescendantFont + descendant_font: CIDType2Font = CIDType2Font() + descendant_font[Name("Type")] = Name("Font") + descendant_font[Name("Subtype")] = Name("CIDFontType2") + descendant_font[Name("BaseFont")] = Name(font_name) + descendant_font[Name("FontDescriptor")] = TrueTypeFont._get_font_descriptor( + ttf_font_file + ) + descendant_font[Name("DW")] = pDecimal(250) + + # build W array + cmap = ttf_font_file["cmap"].getcmap(3, 1).cmap + glyph_set = ttf_font_file.getGlyphSet() + widths_array: List = List() + for cid, g in enumerate(ttf_font_file.glyphOrder): + glyph_width: float = 0 + try: + glyph_width = glyph_set[cmap[ord(toUnicode(g))]].width + except: + continue + # set DW based on the width of a space character + if toUnicode(g) == " ": + descendant_font[Name("DW")] = pDecimal(glyph_width) + widths_array.append(pDecimal(cid)) + widths_array.append(List()) + widths_array[-1].append(pDecimal(glyph_width)) + descendant_font[Name("W")] = widths_array + descendant_font[Name("CIDToGIDMap")] = Name("Identity") + + # build CIDSystemInfo + # fmt: off + descendant_font[Name("CIDSystemInfo")] = Dictionary() + descendant_font[Name("CIDSystemInfo")][Name("Registry")] = String("Adobe") + descendant_font[Name("CIDSystemInfo")][Name("Ordering")] = String("Identity") + descendant_font[Name("CIDSystemInfo")][Name("Supplement")] = pDecimal(0) + # fmt: on + + # add to DescendantFonts + type_0_font[Name("DescendantFonts")] = List() + type_0_font[Name("DescendantFonts")].append(descendant_font) + + # return + return type_0_font + + def __init__(self): + super(TrueTypeFont, self).__init__() + self[Name("Subtype")] = Name("TrueType") + + def _empty_copy(self) -> "Font": # type: ignore [name-defined] + return TrueTypeFont() + + def __deepcopy__(self, memodict={}): + # fmt: off + f_out: TrueTypeFont = super(TrueTypeFont, self).__deepcopy__(memodict) + f_out[Name("Subtype")] = Name("TrueType") + f_out._character_identifier_to_unicode_lookup: typing.Dict[int, str] = {k: v for k, v in self._character_identifier_to_unicode_lookup.items()} + f_out._unicode_lookup_to_character_identifier: typing.Dict[str, int] = {k: v for k, v in self._unicode_lookup_to_character_identifier.items()} + return f_out + # fmt: on diff --git a/ptext/pdf/canvas/font/symbol_encoding.py b/borb/pdf/canvas/font/symbol_encoding.py similarity index 100% rename from ptext/pdf/canvas/font/symbol_encoding.py rename to borb/pdf/canvas/font/symbol_encoding.py diff --git a/borb/pdf/canvas/geometry/__init__.py b/borb/pdf/canvas/geometry/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/geometry/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/geometry/line_segment.py b/borb/pdf/canvas/geometry/line_segment.py similarity index 96% rename from ptext/pdf/canvas/geometry/line_segment.py rename to borb/pdf/canvas/geometry/line_segment.py index 92f713e5e..044e304b1 100644 --- a/ptext/pdf/canvas/geometry/line_segment.py +++ b/borb/pdf/canvas/geometry/line_segment.py @@ -8,7 +8,7 @@ from math import sqrt from typing import Tuple -from ptext.pdf.canvas.geometry.matrix import Matrix +from borb.pdf.canvas.geometry.matrix import Matrix class LineSegment: diff --git a/ptext/pdf/canvas/geometry/matrix.py b/borb/pdf/canvas/geometry/matrix.py similarity index 100% rename from ptext/pdf/canvas/geometry/matrix.py rename to borb/pdf/canvas/geometry/matrix.py diff --git a/ptext/pdf/canvas/geometry/rectangle.py b/borb/pdf/canvas/geometry/rectangle.py similarity index 100% rename from ptext/pdf/canvas/geometry/rectangle.py rename to borb/pdf/canvas/geometry/rectangle.py diff --git a/borb/pdf/canvas/layout/__init__.py b/borb/pdf/canvas/layout/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/pdf/canvas/layout/emoji/__init__.py b/borb/pdf/canvas/layout/emoji/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/emoji/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/layout/emoji/emoji.py b/borb/pdf/canvas/layout/emoji/emoji.py similarity index 99% rename from ptext/pdf/canvas/layout/emoji/emoji.py rename to borb/pdf/canvas/layout/emoji/emoji.py index d07bb4bd6..510f1ea1f 100644 --- a/ptext/pdf/canvas/layout/emoji/emoji.py +++ b/borb/pdf/canvas/layout/emoji/emoji.py @@ -15,7 +15,7 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.image.image import Image class Emoji(Image): @@ -28,6 +28,7 @@ class Emoji(Image): the term "emoji" in the strict sense refers to such pictures which can be represented as encoded characters, but it is sometimes applied to messaging stickers by extension. """ + def __init__(self, path_to_resource: Path): super(Emoji, self).__init__(path_to_resource) self.set_font_size(Decimal(12)) @@ -50,6 +51,7 @@ class Emojis(enum.Enum): """ This enum.Enum holds all available Emoji. """ + # fmt: off A = Emoji(Path(__file__).parent / "resources/a.png") AB = Emoji(Path(__file__).parent / "resources/ab.png") @@ -893,6 +895,7 @@ class Emojis(enum.Enum): ZZZ = Emoji(Path(__file__).parent / "resources/zzz.png") # fmt: on + if __name__ == "__main__": lines_to_write: typing.List[str] = [] diff --git a/borb/pdf/canvas/layout/emoji/resources/__init__.py b/borb/pdf/canvas/layout/emoji/resources/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/emoji/resources/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/layout/emoji/resources/a.png b/borb/pdf/canvas/layout/emoji/resources/a.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/a.png rename to borb/pdf/canvas/layout/emoji/resources/a.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ab.png b/borb/pdf/canvas/layout/emoji/resources/ab.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ab.png rename to borb/pdf/canvas/layout/emoji/resources/ab.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/abc.png b/borb/pdf/canvas/layout/emoji/resources/abc.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/abc.png rename to borb/pdf/canvas/layout/emoji/resources/abc.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/abcd.png b/borb/pdf/canvas/layout/emoji/resources/abcd.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/abcd.png rename to borb/pdf/canvas/layout/emoji/resources/abcd.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/aerial_tramway.png b/borb/pdf/canvas/layout/emoji/resources/aerial_tramway.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/aerial_tramway.png rename to borb/pdf/canvas/layout/emoji/resources/aerial_tramway.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/airplane.png b/borb/pdf/canvas/layout/emoji/resources/airplane.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/airplane.png rename to borb/pdf/canvas/layout/emoji/resources/airplane.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/alarm_clock.png b/borb/pdf/canvas/layout/emoji/resources/alarm_clock.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/alarm_clock.png rename to borb/pdf/canvas/layout/emoji/resources/alarm_clock.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/alien.png b/borb/pdf/canvas/layout/emoji/resources/alien.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/alien.png rename to borb/pdf/canvas/layout/emoji/resources/alien.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ambulance.png b/borb/pdf/canvas/layout/emoji/resources/ambulance.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ambulance.png rename to borb/pdf/canvas/layout/emoji/resources/ambulance.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/anchor.png b/borb/pdf/canvas/layout/emoji/resources/anchor.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/anchor.png rename to borb/pdf/canvas/layout/emoji/resources/anchor.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/angel.png b/borb/pdf/canvas/layout/emoji/resources/angel.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/angel.png rename to borb/pdf/canvas/layout/emoji/resources/angel.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/anger.png b/borb/pdf/canvas/layout/emoji/resources/anger.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/anger.png rename to borb/pdf/canvas/layout/emoji/resources/anger.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/angry.png b/borb/pdf/canvas/layout/emoji/resources/angry.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/angry.png rename to borb/pdf/canvas/layout/emoji/resources/angry.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/anguished.png b/borb/pdf/canvas/layout/emoji/resources/anguished.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/anguished.png rename to borb/pdf/canvas/layout/emoji/resources/anguished.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ant.png b/borb/pdf/canvas/layout/emoji/resources/ant.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ant.png rename to borb/pdf/canvas/layout/emoji/resources/ant.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/apple.png b/borb/pdf/canvas/layout/emoji/resources/apple.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/apple.png rename to borb/pdf/canvas/layout/emoji/resources/apple.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/aquarius.png b/borb/pdf/canvas/layout/emoji/resources/aquarius.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/aquarius.png rename to borb/pdf/canvas/layout/emoji/resources/aquarius.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/aries.png b/borb/pdf/canvas/layout/emoji/resources/aries.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/aries.png rename to borb/pdf/canvas/layout/emoji/resources/aries.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_backward.png b/borb/pdf/canvas/layout/emoji/resources/arrow_backward.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_backward.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_backward.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_double_down.png b/borb/pdf/canvas/layout/emoji/resources/arrow_double_down.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_double_down.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_double_down.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_double_up.png b/borb/pdf/canvas/layout/emoji/resources/arrow_double_up.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_double_up.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_double_up.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_down.png b/borb/pdf/canvas/layout/emoji/resources/arrow_down.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_down.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_down.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_down_hook.png b/borb/pdf/canvas/layout/emoji/resources/arrow_down_hook.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_down_hook.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_down_hook.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_down_small.png b/borb/pdf/canvas/layout/emoji/resources/arrow_down_small.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_down_small.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_down_small.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_forward.png b/borb/pdf/canvas/layout/emoji/resources/arrow_forward.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_forward.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_forward.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_left.png b/borb/pdf/canvas/layout/emoji/resources/arrow_left.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_left.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_left.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_left_hook.png b/borb/pdf/canvas/layout/emoji/resources/arrow_left_hook.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_left_hook.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_left_hook.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_left_right.png b/borb/pdf/canvas/layout/emoji/resources/arrow_left_right.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_left_right.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_left_right.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_lower_left.png b/borb/pdf/canvas/layout/emoji/resources/arrow_lower_left.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_lower_left.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_lower_left.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_lower_right.png b/borb/pdf/canvas/layout/emoji/resources/arrow_lower_right.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_lower_right.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_lower_right.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_right.png b/borb/pdf/canvas/layout/emoji/resources/arrow_right.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_right.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_right.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_right_hook.png b/borb/pdf/canvas/layout/emoji/resources/arrow_right_hook.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_right_hook.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_right_hook.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_up.png b/borb/pdf/canvas/layout/emoji/resources/arrow_up.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_up.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_up.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_up_down.png b/borb/pdf/canvas/layout/emoji/resources/arrow_up_down.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_up_down.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_up_down.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_up_hook.png b/borb/pdf/canvas/layout/emoji/resources/arrow_up_hook.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_up_hook.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_up_hook.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_up_small.png b/borb/pdf/canvas/layout/emoji/resources/arrow_up_small.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_up_small.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_up_small.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_upper_left.png b/borb/pdf/canvas/layout/emoji/resources/arrow_upper_left.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_upper_left.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_upper_left.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrow_upper_right.png b/borb/pdf/canvas/layout/emoji/resources/arrow_upper_right.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrow_upper_right.png rename to borb/pdf/canvas/layout/emoji/resources/arrow_upper_right.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrows_clockwise.png b/borb/pdf/canvas/layout/emoji/resources/arrows_clockwise.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrows_clockwise.png rename to borb/pdf/canvas/layout/emoji/resources/arrows_clockwise.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrows_counterclockwise.png b/borb/pdf/canvas/layout/emoji/resources/arrows_counterclockwise.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrows_counterclockwise.png rename to borb/pdf/canvas/layout/emoji/resources/arrows_counterclockwise.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/arrows_right_twisted.png b/borb/pdf/canvas/layout/emoji/resources/arrows_right_twisted.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/arrows_right_twisted.png rename to borb/pdf/canvas/layout/emoji/resources/arrows_right_twisted.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/art.png b/borb/pdf/canvas/layout/emoji/resources/art.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/art.png rename to borb/pdf/canvas/layout/emoji/resources/art.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/articulated_lorry.png b/borb/pdf/canvas/layout/emoji/resources/articulated_lorry.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/articulated_lorry.png rename to borb/pdf/canvas/layout/emoji/resources/articulated_lorry.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/astonished.png b/borb/pdf/canvas/layout/emoji/resources/astonished.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/astonished.png rename to borb/pdf/canvas/layout/emoji/resources/astonished.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/atm.png b/borb/pdf/canvas/layout/emoji/resources/atm.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/atm.png rename to borb/pdf/canvas/layout/emoji/resources/atm.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/b.png b/borb/pdf/canvas/layout/emoji/resources/b.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/b.png rename to borb/pdf/canvas/layout/emoji/resources/b.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/baby.png b/borb/pdf/canvas/layout/emoji/resources/baby.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/baby.png rename to borb/pdf/canvas/layout/emoji/resources/baby.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/baby_bottle.png b/borb/pdf/canvas/layout/emoji/resources/baby_bottle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/baby_bottle.png rename to borb/pdf/canvas/layout/emoji/resources/baby_bottle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/baby_chick.png b/borb/pdf/canvas/layout/emoji/resources/baby_chick.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/baby_chick.png rename to borb/pdf/canvas/layout/emoji/resources/baby_chick.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/baby_symbol.png b/borb/pdf/canvas/layout/emoji/resources/baby_symbol.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/baby_symbol.png rename to borb/pdf/canvas/layout/emoji/resources/baby_symbol.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bagage_claim.png b/borb/pdf/canvas/layout/emoji/resources/bagage_claim.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bagage_claim.png rename to borb/pdf/canvas/layout/emoji/resources/bagage_claim.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/balloon.png b/borb/pdf/canvas/layout/emoji/resources/balloon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/balloon.png rename to borb/pdf/canvas/layout/emoji/resources/balloon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ballot_box_with_check.png b/borb/pdf/canvas/layout/emoji/resources/ballot_box_with_check.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ballot_box_with_check.png rename to borb/pdf/canvas/layout/emoji/resources/ballot_box_with_check.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bamboo.png b/borb/pdf/canvas/layout/emoji/resources/bamboo.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bamboo.png rename to borb/pdf/canvas/layout/emoji/resources/bamboo.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/banana.png b/borb/pdf/canvas/layout/emoji/resources/banana.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/banana.png rename to borb/pdf/canvas/layout/emoji/resources/banana.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bang_bang.png b/borb/pdf/canvas/layout/emoji/resources/bang_bang.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bang_bang.png rename to borb/pdf/canvas/layout/emoji/resources/bang_bang.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bank.png b/borb/pdf/canvas/layout/emoji/resources/bank.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bank.png rename to borb/pdf/canvas/layout/emoji/resources/bank.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bar_chart.png b/borb/pdf/canvas/layout/emoji/resources/bar_chart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bar_chart.png rename to borb/pdf/canvas/layout/emoji/resources/bar_chart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/barber.png b/borb/pdf/canvas/layout/emoji/resources/barber.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/barber.png rename to borb/pdf/canvas/layout/emoji/resources/barber.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/baseball.png b/borb/pdf/canvas/layout/emoji/resources/baseball.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/baseball.png rename to borb/pdf/canvas/layout/emoji/resources/baseball.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/basketball.png b/borb/pdf/canvas/layout/emoji/resources/basketball.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/basketball.png rename to borb/pdf/canvas/layout/emoji/resources/basketball.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bath.png b/borb/pdf/canvas/layout/emoji/resources/bath.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bath.png rename to borb/pdf/canvas/layout/emoji/resources/bath.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bathtub.png b/borb/pdf/canvas/layout/emoji/resources/bathtub.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bathtub.png rename to borb/pdf/canvas/layout/emoji/resources/bathtub.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/battery.png b/borb/pdf/canvas/layout/emoji/resources/battery.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/battery.png rename to borb/pdf/canvas/layout/emoji/resources/battery.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bear.png b/borb/pdf/canvas/layout/emoji/resources/bear.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bear.png rename to borb/pdf/canvas/layout/emoji/resources/bear.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/beer.png b/borb/pdf/canvas/layout/emoji/resources/beer.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/beer.png rename to borb/pdf/canvas/layout/emoji/resources/beer.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/beers.png b/borb/pdf/canvas/layout/emoji/resources/beers.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/beers.png rename to borb/pdf/canvas/layout/emoji/resources/beers.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/beetle.png b/borb/pdf/canvas/layout/emoji/resources/beetle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/beetle.png rename to borb/pdf/canvas/layout/emoji/resources/beetle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/beginner.png b/borb/pdf/canvas/layout/emoji/resources/beginner.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/beginner.png rename to borb/pdf/canvas/layout/emoji/resources/beginner.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bell.png b/borb/pdf/canvas/layout/emoji/resources/bell.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bell.png rename to borb/pdf/canvas/layout/emoji/resources/bell.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bento.png b/borb/pdf/canvas/layout/emoji/resources/bento.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bento.png rename to borb/pdf/canvas/layout/emoji/resources/bento.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bicyclist.png b/borb/pdf/canvas/layout/emoji/resources/bicyclist.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bicyclist.png rename to borb/pdf/canvas/layout/emoji/resources/bicyclist.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bike.png b/borb/pdf/canvas/layout/emoji/resources/bike.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bike.png rename to borb/pdf/canvas/layout/emoji/resources/bike.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bikini.png b/borb/pdf/canvas/layout/emoji/resources/bikini.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bikini.png rename to borb/pdf/canvas/layout/emoji/resources/bikini.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bird.png b/borb/pdf/canvas/layout/emoji/resources/bird.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bird.png rename to borb/pdf/canvas/layout/emoji/resources/bird.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/birthday.png b/borb/pdf/canvas/layout/emoji/resources/birthday.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/birthday.png rename to borb/pdf/canvas/layout/emoji/resources/birthday.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/black_circle.png b/borb/pdf/canvas/layout/emoji/resources/black_circle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/black_circle.png rename to borb/pdf/canvas/layout/emoji/resources/black_circle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/black_joker.png b/borb/pdf/canvas/layout/emoji/resources/black_joker.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/black_joker.png rename to borb/pdf/canvas/layout/emoji/resources/black_joker.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/black_nib.png b/borb/pdf/canvas/layout/emoji/resources/black_nib.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/black_nib.png rename to borb/pdf/canvas/layout/emoji/resources/black_nib.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/black_square_button.png b/borb/pdf/canvas/layout/emoji/resources/black_square_button.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/black_square_button.png rename to borb/pdf/canvas/layout/emoji/resources/black_square_button.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/blossom.png b/borb/pdf/canvas/layout/emoji/resources/blossom.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/blossom.png rename to borb/pdf/canvas/layout/emoji/resources/blossom.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/blowfish.png b/borb/pdf/canvas/layout/emoji/resources/blowfish.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/blowfish.png rename to borb/pdf/canvas/layout/emoji/resources/blowfish.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/blue_book.png b/borb/pdf/canvas/layout/emoji/resources/blue_book.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/blue_book.png rename to borb/pdf/canvas/layout/emoji/resources/blue_book.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/blue_car.png b/borb/pdf/canvas/layout/emoji/resources/blue_car.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/blue_car.png rename to borb/pdf/canvas/layout/emoji/resources/blue_car.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/blue_circle.png b/borb/pdf/canvas/layout/emoji/resources/blue_circle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/blue_circle.png rename to borb/pdf/canvas/layout/emoji/resources/blue_circle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/blue_diamond.png b/borb/pdf/canvas/layout/emoji/resources/blue_diamond.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/blue_diamond.png rename to borb/pdf/canvas/layout/emoji/resources/blue_diamond.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/blue_heart.png b/borb/pdf/canvas/layout/emoji/resources/blue_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/blue_heart.png rename to borb/pdf/canvas/layout/emoji/resources/blue_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/blush.png b/borb/pdf/canvas/layout/emoji/resources/blush.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/blush.png rename to borb/pdf/canvas/layout/emoji/resources/blush.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/boar.png b/borb/pdf/canvas/layout/emoji/resources/boar.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/boar.png rename to borb/pdf/canvas/layout/emoji/resources/boar.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/boat.png b/borb/pdf/canvas/layout/emoji/resources/boat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/boat.png rename to borb/pdf/canvas/layout/emoji/resources/boat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bomb.png b/borb/pdf/canvas/layout/emoji/resources/bomb.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bomb.png rename to borb/pdf/canvas/layout/emoji/resources/bomb.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/book.png b/borb/pdf/canvas/layout/emoji/resources/book.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/book.png rename to borb/pdf/canvas/layout/emoji/resources/book.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bookmark.png b/borb/pdf/canvas/layout/emoji/resources/bookmark.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bookmark.png rename to borb/pdf/canvas/layout/emoji/resources/bookmark.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bookmark_tabs.png b/borb/pdf/canvas/layout/emoji/resources/bookmark_tabs.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bookmark_tabs.png rename to borb/pdf/canvas/layout/emoji/resources/bookmark_tabs.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/books.png b/borb/pdf/canvas/layout/emoji/resources/books.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/books.png rename to borb/pdf/canvas/layout/emoji/resources/books.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/boom.png b/borb/pdf/canvas/layout/emoji/resources/boom.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/boom.png rename to borb/pdf/canvas/layout/emoji/resources/boom.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/boot.png b/borb/pdf/canvas/layout/emoji/resources/boot.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/boot.png rename to borb/pdf/canvas/layout/emoji/resources/boot.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bouquet.png b/borb/pdf/canvas/layout/emoji/resources/bouquet.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bouquet.png rename to borb/pdf/canvas/layout/emoji/resources/bouquet.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bow.png b/borb/pdf/canvas/layout/emoji/resources/bow.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bow.png rename to borb/pdf/canvas/layout/emoji/resources/bow.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bowling.png b/borb/pdf/canvas/layout/emoji/resources/bowling.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bowling.png rename to borb/pdf/canvas/layout/emoji/resources/bowling.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bowtie.png b/borb/pdf/canvas/layout/emoji/resources/bowtie.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bowtie.png rename to borb/pdf/canvas/layout/emoji/resources/bowtie.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/boy.png b/borb/pdf/canvas/layout/emoji/resources/boy.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/boy.png rename to borb/pdf/canvas/layout/emoji/resources/boy.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bread.png b/borb/pdf/canvas/layout/emoji/resources/bread.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bread.png rename to borb/pdf/canvas/layout/emoji/resources/bread.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bride_with_veil.png b/borb/pdf/canvas/layout/emoji/resources/bride_with_veil.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bride_with_veil.png rename to borb/pdf/canvas/layout/emoji/resources/bride_with_veil.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bridge_at_night.png b/borb/pdf/canvas/layout/emoji/resources/bridge_at_night.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bridge_at_night.png rename to borb/pdf/canvas/layout/emoji/resources/bridge_at_night.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/briefcase.png b/borb/pdf/canvas/layout/emoji/resources/briefcase.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/briefcase.png rename to borb/pdf/canvas/layout/emoji/resources/briefcase.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/broken_heart.png b/borb/pdf/canvas/layout/emoji/resources/broken_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/broken_heart.png rename to borb/pdf/canvas/layout/emoji/resources/broken_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bug.png b/borb/pdf/canvas/layout/emoji/resources/bug.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bug.png rename to borb/pdf/canvas/layout/emoji/resources/bug.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bulb.png b/borb/pdf/canvas/layout/emoji/resources/bulb.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bulb.png rename to borb/pdf/canvas/layout/emoji/resources/bulb.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bullettrain_front.png b/borb/pdf/canvas/layout/emoji/resources/bullettrain_front.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bullettrain_front.png rename to borb/pdf/canvas/layout/emoji/resources/bullettrain_front.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bullettrain_side.png b/borb/pdf/canvas/layout/emoji/resources/bullettrain_side.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bullettrain_side.png rename to borb/pdf/canvas/layout/emoji/resources/bullettrain_side.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bus.png b/borb/pdf/canvas/layout/emoji/resources/bus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bus.png rename to borb/pdf/canvas/layout/emoji/resources/bus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/busstop.png b/borb/pdf/canvas/layout/emoji/resources/busstop.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/busstop.png rename to borb/pdf/canvas/layout/emoji/resources/busstop.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/bust_in_silhouette.png b/borb/pdf/canvas/layout/emoji/resources/bust_in_silhouette.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/bust_in_silhouette.png rename to borb/pdf/canvas/layout/emoji/resources/bust_in_silhouette.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/busts_in_silhouette.png b/borb/pdf/canvas/layout/emoji/resources/busts_in_silhouette.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/busts_in_silhouette.png rename to borb/pdf/canvas/layout/emoji/resources/busts_in_silhouette.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cactus.png b/borb/pdf/canvas/layout/emoji/resources/cactus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cactus.png rename to borb/pdf/canvas/layout/emoji/resources/cactus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cake.png b/borb/pdf/canvas/layout/emoji/resources/cake.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cake.png rename to borb/pdf/canvas/layout/emoji/resources/cake.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/calendar.png b/borb/pdf/canvas/layout/emoji/resources/calendar.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/calendar.png rename to borb/pdf/canvas/layout/emoji/resources/calendar.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/calling.png b/borb/pdf/canvas/layout/emoji/resources/calling.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/calling.png rename to borb/pdf/canvas/layout/emoji/resources/calling.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/camel.png b/borb/pdf/canvas/layout/emoji/resources/camel.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/camel.png rename to borb/pdf/canvas/layout/emoji/resources/camel.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/camera.png b/borb/pdf/canvas/layout/emoji/resources/camera.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/camera.png rename to borb/pdf/canvas/layout/emoji/resources/camera.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cancer.png b/borb/pdf/canvas/layout/emoji/resources/cancer.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cancer.png rename to borb/pdf/canvas/layout/emoji/resources/cancer.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/candy.png b/borb/pdf/canvas/layout/emoji/resources/candy.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/candy.png rename to borb/pdf/canvas/layout/emoji/resources/candy.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/capital_abcd.png b/borb/pdf/canvas/layout/emoji/resources/capital_abcd.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/capital_abcd.png rename to borb/pdf/canvas/layout/emoji/resources/capital_abcd.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/capricorn.png b/borb/pdf/canvas/layout/emoji/resources/capricorn.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/capricorn.png rename to borb/pdf/canvas/layout/emoji/resources/capricorn.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/car.png b/borb/pdf/canvas/layout/emoji/resources/car.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/car.png rename to borb/pdf/canvas/layout/emoji/resources/car.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/card_index.png b/borb/pdf/canvas/layout/emoji/resources/card_index.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/card_index.png rename to borb/pdf/canvas/layout/emoji/resources/card_index.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/carousel_horse.png b/borb/pdf/canvas/layout/emoji/resources/carousel_horse.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/carousel_horse.png rename to borb/pdf/canvas/layout/emoji/resources/carousel_horse.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cat.png b/borb/pdf/canvas/layout/emoji/resources/cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cat.png rename to borb/pdf/canvas/layout/emoji/resources/cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cat_2.png b/borb/pdf/canvas/layout/emoji/resources/cat_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cat_2.png rename to borb/pdf/canvas/layout/emoji/resources/cat_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cd.png b/borb/pdf/canvas/layout/emoji/resources/cd.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cd.png rename to borb/pdf/canvas/layout/emoji/resources/cd.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/chart.png b/borb/pdf/canvas/layout/emoji/resources/chart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/chart.png rename to borb/pdf/canvas/layout/emoji/resources/chart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/chart_with_downwards_trend.png b/borb/pdf/canvas/layout/emoji/resources/chart_with_downwards_trend.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/chart_with_downwards_trend.png rename to borb/pdf/canvas/layout/emoji/resources/chart_with_downwards_trend.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/chart_with_upwards_trend.png b/borb/pdf/canvas/layout/emoji/resources/chart_with_upwards_trend.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/chart_with_upwards_trend.png rename to borb/pdf/canvas/layout/emoji/resources/chart_with_upwards_trend.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/checkered_flag.png b/borb/pdf/canvas/layout/emoji/resources/checkered_flag.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/checkered_flag.png rename to borb/pdf/canvas/layout/emoji/resources/checkered_flag.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cherries.png b/borb/pdf/canvas/layout/emoji/resources/cherries.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cherries.png rename to borb/pdf/canvas/layout/emoji/resources/cherries.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cherry_blossom.png b/borb/pdf/canvas/layout/emoji/resources/cherry_blossom.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cherry_blossom.png rename to borb/pdf/canvas/layout/emoji/resources/cherry_blossom.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/chestnut.png b/borb/pdf/canvas/layout/emoji/resources/chestnut.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/chestnut.png rename to borb/pdf/canvas/layout/emoji/resources/chestnut.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/chicken.png b/borb/pdf/canvas/layout/emoji/resources/chicken.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/chicken.png rename to borb/pdf/canvas/layout/emoji/resources/chicken.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/children_crossing.png b/borb/pdf/canvas/layout/emoji/resources/children_crossing.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/children_crossing.png rename to borb/pdf/canvas/layout/emoji/resources/children_crossing.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/chocolate_bar.png b/borb/pdf/canvas/layout/emoji/resources/chocolate_bar.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/chocolate_bar.png rename to borb/pdf/canvas/layout/emoji/resources/chocolate_bar.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/christmas_tree.png b/borb/pdf/canvas/layout/emoji/resources/christmas_tree.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/christmas_tree.png rename to borb/pdf/canvas/layout/emoji/resources/christmas_tree.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/church.png b/borb/pdf/canvas/layout/emoji/resources/church.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/church.png rename to borb/pdf/canvas/layout/emoji/resources/church.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cinema.png b/borb/pdf/canvas/layout/emoji/resources/cinema.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cinema.png rename to borb/pdf/canvas/layout/emoji/resources/cinema.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/circus_tent.png b/borb/pdf/canvas/layout/emoji/resources/circus_tent.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/circus_tent.png rename to borb/pdf/canvas/layout/emoji/resources/circus_tent.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/city_sunrise.png b/borb/pdf/canvas/layout/emoji/resources/city_sunrise.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/city_sunrise.png rename to borb/pdf/canvas/layout/emoji/resources/city_sunrise.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/city_sunset.png b/borb/pdf/canvas/layout/emoji/resources/city_sunset.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/city_sunset.png rename to borb/pdf/canvas/layout/emoji/resources/city_sunset.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cl.png b/borb/pdf/canvas/layout/emoji/resources/cl.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cl.png rename to borb/pdf/canvas/layout/emoji/resources/cl.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clap.png b/borb/pdf/canvas/layout/emoji/resources/clap.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clap.png rename to borb/pdf/canvas/layout/emoji/resources/clap.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clapper.png b/borb/pdf/canvas/layout/emoji/resources/clapper.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clapper.png rename to borb/pdf/canvas/layout/emoji/resources/clapper.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clipboard.png b/borb/pdf/canvas/layout/emoji/resources/clipboard.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clipboard.png rename to borb/pdf/canvas/layout/emoji/resources/clipboard.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_1.png b/borb/pdf/canvas/layout/emoji/resources/clock_1.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_1.png rename to borb/pdf/canvas/layout/emoji/resources/clock_1.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_10.png b/borb/pdf/canvas/layout/emoji/resources/clock_10.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_10.png rename to borb/pdf/canvas/layout/emoji/resources/clock_10.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_10_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_10_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_10_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_10_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_11.png b/borb/pdf/canvas/layout/emoji/resources/clock_11.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_11.png rename to borb/pdf/canvas/layout/emoji/resources/clock_11.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_11_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_11_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_11_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_11_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_12.png b/borb/pdf/canvas/layout/emoji/resources/clock_12.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_12.png rename to borb/pdf/canvas/layout/emoji/resources/clock_12.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_12_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_12_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_12_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_12_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_1_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_1_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_1_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_1_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_2.png b/borb/pdf/canvas/layout/emoji/resources/clock_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_2.png rename to borb/pdf/canvas/layout/emoji/resources/clock_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_2_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_2_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_2_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_2_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_3.png b/borb/pdf/canvas/layout/emoji/resources/clock_3.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_3.png rename to borb/pdf/canvas/layout/emoji/resources/clock_3.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_3_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_3_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_3_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_3_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_4.png b/borb/pdf/canvas/layout/emoji/resources/clock_4.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_4.png rename to borb/pdf/canvas/layout/emoji/resources/clock_4.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_4_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_4_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_4_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_4_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_5.png b/borb/pdf/canvas/layout/emoji/resources/clock_5.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_5.png rename to borb/pdf/canvas/layout/emoji/resources/clock_5.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_5_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_5_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_5_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_5_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_6.png b/borb/pdf/canvas/layout/emoji/resources/clock_6.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_6.png rename to borb/pdf/canvas/layout/emoji/resources/clock_6.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_6_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_6_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_6_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_6_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_7.png b/borb/pdf/canvas/layout/emoji/resources/clock_7.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_7.png rename to borb/pdf/canvas/layout/emoji/resources/clock_7.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_7_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_7_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_7_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_7_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_8.png b/borb/pdf/canvas/layout/emoji/resources/clock_8.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_8.png rename to borb/pdf/canvas/layout/emoji/resources/clock_8.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_8_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_8_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_8_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_8_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_9.png b/borb/pdf/canvas/layout/emoji/resources/clock_9.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_9.png rename to borb/pdf/canvas/layout/emoji/resources/clock_9.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clock_9_30.png b/borb/pdf/canvas/layout/emoji/resources/clock_9_30.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clock_9_30.png rename to borb/pdf/canvas/layout/emoji/resources/clock_9_30.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/closed_book.png b/borb/pdf/canvas/layout/emoji/resources/closed_book.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/closed_book.png rename to borb/pdf/canvas/layout/emoji/resources/closed_book.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/closed_lock_with_key.png b/borb/pdf/canvas/layout/emoji/resources/closed_lock_with_key.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/closed_lock_with_key.png rename to borb/pdf/canvas/layout/emoji/resources/closed_lock_with_key.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/closed_umbrella.png b/borb/pdf/canvas/layout/emoji/resources/closed_umbrella.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/closed_umbrella.png rename to borb/pdf/canvas/layout/emoji/resources/closed_umbrella.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cloud.png b/borb/pdf/canvas/layout/emoji/resources/cloud.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cloud.png rename to borb/pdf/canvas/layout/emoji/resources/cloud.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/clubs.png b/borb/pdf/canvas/layout/emoji/resources/clubs.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/clubs.png rename to borb/pdf/canvas/layout/emoji/resources/clubs.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cn.png b/borb/pdf/canvas/layout/emoji/resources/cn.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cn.png rename to borb/pdf/canvas/layout/emoji/resources/cn.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cocktail.png b/borb/pdf/canvas/layout/emoji/resources/cocktail.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cocktail.png rename to borb/pdf/canvas/layout/emoji/resources/cocktail.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/coffee.png b/borb/pdf/canvas/layout/emoji/resources/coffee.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/coffee.png rename to borb/pdf/canvas/layout/emoji/resources/coffee.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/collision.png b/borb/pdf/canvas/layout/emoji/resources/collision.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/collision.png rename to borb/pdf/canvas/layout/emoji/resources/collision.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/computer.png b/borb/pdf/canvas/layout/emoji/resources/computer.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/computer.png rename to borb/pdf/canvas/layout/emoji/resources/computer.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/confetti_ball.png b/borb/pdf/canvas/layout/emoji/resources/confetti_ball.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/confetti_ball.png rename to borb/pdf/canvas/layout/emoji/resources/confetti_ball.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/confounded.png b/borb/pdf/canvas/layout/emoji/resources/confounded.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/confounded.png rename to borb/pdf/canvas/layout/emoji/resources/confounded.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/confused.png b/borb/pdf/canvas/layout/emoji/resources/confused.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/confused.png rename to borb/pdf/canvas/layout/emoji/resources/confused.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/construction.png b/borb/pdf/canvas/layout/emoji/resources/construction.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/construction.png rename to borb/pdf/canvas/layout/emoji/resources/construction.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/construction_worker.png b/borb/pdf/canvas/layout/emoji/resources/construction_worker.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/construction_worker.png rename to borb/pdf/canvas/layout/emoji/resources/construction_worker.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/convenience_store.png b/borb/pdf/canvas/layout/emoji/resources/convenience_store.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/convenience_store.png rename to borb/pdf/canvas/layout/emoji/resources/convenience_store.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cookie.png b/borb/pdf/canvas/layout/emoji/resources/cookie.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cookie.png rename to borb/pdf/canvas/layout/emoji/resources/cookie.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cool.png b/borb/pdf/canvas/layout/emoji/resources/cool.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cool.png rename to borb/pdf/canvas/layout/emoji/resources/cool.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cop.png b/borb/pdf/canvas/layout/emoji/resources/cop.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cop.png rename to borb/pdf/canvas/layout/emoji/resources/cop.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/copyright.png b/borb/pdf/canvas/layout/emoji/resources/copyright.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/copyright.png rename to borb/pdf/canvas/layout/emoji/resources/copyright.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/corn.png b/borb/pdf/canvas/layout/emoji/resources/corn.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/corn.png rename to borb/pdf/canvas/layout/emoji/resources/corn.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/couple.png b/borb/pdf/canvas/layout/emoji/resources/couple.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/couple.png rename to borb/pdf/canvas/layout/emoji/resources/couple.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/couple_with_heart.png b/borb/pdf/canvas/layout/emoji/resources/couple_with_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/couple_with_heart.png rename to borb/pdf/canvas/layout/emoji/resources/couple_with_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/couplekiss.png b/borb/pdf/canvas/layout/emoji/resources/couplekiss.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/couplekiss.png rename to borb/pdf/canvas/layout/emoji/resources/couplekiss.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cow.png b/borb/pdf/canvas/layout/emoji/resources/cow.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cow.png rename to borb/pdf/canvas/layout/emoji/resources/cow.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cow_2.png b/borb/pdf/canvas/layout/emoji/resources/cow_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cow_2.png rename to borb/pdf/canvas/layout/emoji/resources/cow_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/credit_card.png b/borb/pdf/canvas/layout/emoji/resources/credit_card.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/credit_card.png rename to borb/pdf/canvas/layout/emoji/resources/credit_card.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/crocodile.png b/borb/pdf/canvas/layout/emoji/resources/crocodile.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/crocodile.png rename to borb/pdf/canvas/layout/emoji/resources/crocodile.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/crossed_flags.png b/borb/pdf/canvas/layout/emoji/resources/crossed_flags.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/crossed_flags.png rename to borb/pdf/canvas/layout/emoji/resources/crossed_flags.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/crown.png b/borb/pdf/canvas/layout/emoji/resources/crown.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/crown.png rename to borb/pdf/canvas/layout/emoji/resources/crown.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cry.png b/borb/pdf/canvas/layout/emoji/resources/cry.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cry.png rename to borb/pdf/canvas/layout/emoji/resources/cry.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/crying_cat_face.png b/borb/pdf/canvas/layout/emoji/resources/crying_cat_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/crying_cat_face.png rename to borb/pdf/canvas/layout/emoji/resources/crying_cat_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/crystal_ball.png b/borb/pdf/canvas/layout/emoji/resources/crystal_ball.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/crystal_ball.png rename to borb/pdf/canvas/layout/emoji/resources/crystal_ball.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cupid.png b/borb/pdf/canvas/layout/emoji/resources/cupid.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cupid.png rename to borb/pdf/canvas/layout/emoji/resources/cupid.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/curly_loop.png b/borb/pdf/canvas/layout/emoji/resources/curly_loop.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/curly_loop.png rename to borb/pdf/canvas/layout/emoji/resources/curly_loop.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/currency_exchange.png b/borb/pdf/canvas/layout/emoji/resources/currency_exchange.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/currency_exchange.png rename to borb/pdf/canvas/layout/emoji/resources/currency_exchange.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/curry.png b/borb/pdf/canvas/layout/emoji/resources/curry.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/curry.png rename to borb/pdf/canvas/layout/emoji/resources/curry.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/custard.png b/borb/pdf/canvas/layout/emoji/resources/custard.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/custard.png rename to borb/pdf/canvas/layout/emoji/resources/custard.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/customs.png b/borb/pdf/canvas/layout/emoji/resources/customs.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/customs.png rename to borb/pdf/canvas/layout/emoji/resources/customs.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/cyclone.png b/borb/pdf/canvas/layout/emoji/resources/cyclone.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/cyclone.png rename to borb/pdf/canvas/layout/emoji/resources/cyclone.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dancer.png b/borb/pdf/canvas/layout/emoji/resources/dancer.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dancer.png rename to borb/pdf/canvas/layout/emoji/resources/dancer.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dancers.png b/borb/pdf/canvas/layout/emoji/resources/dancers.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dancers.png rename to borb/pdf/canvas/layout/emoji/resources/dancers.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dango.png b/borb/pdf/canvas/layout/emoji/resources/dango.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dango.png rename to borb/pdf/canvas/layout/emoji/resources/dango.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dart.png b/borb/pdf/canvas/layout/emoji/resources/dart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dart.png rename to borb/pdf/canvas/layout/emoji/resources/dart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dash.png b/borb/pdf/canvas/layout/emoji/resources/dash.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dash.png rename to borb/pdf/canvas/layout/emoji/resources/dash.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/date.png b/borb/pdf/canvas/layout/emoji/resources/date.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/date.png rename to borb/pdf/canvas/layout/emoji/resources/date.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/de.png b/borb/pdf/canvas/layout/emoji/resources/de.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/de.png rename to borb/pdf/canvas/layout/emoji/resources/de.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/deciduous_tree.png b/borb/pdf/canvas/layout/emoji/resources/deciduous_tree.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/deciduous_tree.png rename to borb/pdf/canvas/layout/emoji/resources/deciduous_tree.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/department_store.png b/borb/pdf/canvas/layout/emoji/resources/department_store.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/department_store.png rename to borb/pdf/canvas/layout/emoji/resources/department_store.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/diamond_shape_with_dot_inside.png b/borb/pdf/canvas/layout/emoji/resources/diamond_shape_with_dot_inside.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/diamond_shape_with_dot_inside.png rename to borb/pdf/canvas/layout/emoji/resources/diamond_shape_with_dot_inside.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/diamonds.png b/borb/pdf/canvas/layout/emoji/resources/diamonds.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/diamonds.png rename to borb/pdf/canvas/layout/emoji/resources/diamonds.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/disappointed.png b/borb/pdf/canvas/layout/emoji/resources/disappointed.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/disappointed.png rename to borb/pdf/canvas/layout/emoji/resources/disappointed.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/disappointed_relieved.png b/borb/pdf/canvas/layout/emoji/resources/disappointed_relieved.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/disappointed_relieved.png rename to borb/pdf/canvas/layout/emoji/resources/disappointed_relieved.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dizzy.png b/borb/pdf/canvas/layout/emoji/resources/dizzy.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dizzy.png rename to borb/pdf/canvas/layout/emoji/resources/dizzy.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dizzy_face.png b/borb/pdf/canvas/layout/emoji/resources/dizzy_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dizzy_face.png rename to borb/pdf/canvas/layout/emoji/resources/dizzy_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/do_not_litter.png b/borb/pdf/canvas/layout/emoji/resources/do_not_litter.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/do_not_litter.png rename to borb/pdf/canvas/layout/emoji/resources/do_not_litter.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dog.png b/borb/pdf/canvas/layout/emoji/resources/dog.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dog.png rename to borb/pdf/canvas/layout/emoji/resources/dog.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dog_2.png b/borb/pdf/canvas/layout/emoji/resources/dog_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dog_2.png rename to borb/pdf/canvas/layout/emoji/resources/dog_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dollar.png b/borb/pdf/canvas/layout/emoji/resources/dollar.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dollar.png rename to borb/pdf/canvas/layout/emoji/resources/dollar.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dolls.png b/borb/pdf/canvas/layout/emoji/resources/dolls.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dolls.png rename to borb/pdf/canvas/layout/emoji/resources/dolls.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dolphin.png b/borb/pdf/canvas/layout/emoji/resources/dolphin.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dolphin.png rename to borb/pdf/canvas/layout/emoji/resources/dolphin.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/door.png b/borb/pdf/canvas/layout/emoji/resources/door.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/door.png rename to borb/pdf/canvas/layout/emoji/resources/door.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/doughnut.png b/borb/pdf/canvas/layout/emoji/resources/doughnut.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/doughnut.png rename to borb/pdf/canvas/layout/emoji/resources/doughnut.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dragon.png b/borb/pdf/canvas/layout/emoji/resources/dragon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dragon.png rename to borb/pdf/canvas/layout/emoji/resources/dragon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dragon_face.png b/borb/pdf/canvas/layout/emoji/resources/dragon_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dragon_face.png rename to borb/pdf/canvas/layout/emoji/resources/dragon_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dress.png b/borb/pdf/canvas/layout/emoji/resources/dress.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dress.png rename to borb/pdf/canvas/layout/emoji/resources/dress.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dromedary_camel.png b/borb/pdf/canvas/layout/emoji/resources/dromedary_camel.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dromedary_camel.png rename to borb/pdf/canvas/layout/emoji/resources/dromedary_camel.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/droplet.png b/borb/pdf/canvas/layout/emoji/resources/droplet.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/droplet.png rename to borb/pdf/canvas/layout/emoji/resources/droplet.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/dvd.png b/borb/pdf/canvas/layout/emoji/resources/dvd.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/dvd.png rename to borb/pdf/canvas/layout/emoji/resources/dvd.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/e_mail.png b/borb/pdf/canvas/layout/emoji/resources/e_mail.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/e_mail.png rename to borb/pdf/canvas/layout/emoji/resources/e_mail.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ear.png b/borb/pdf/canvas/layout/emoji/resources/ear.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ear.png rename to borb/pdf/canvas/layout/emoji/resources/ear.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ear_of_rice.png b/borb/pdf/canvas/layout/emoji/resources/ear_of_rice.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ear_of_rice.png rename to borb/pdf/canvas/layout/emoji/resources/ear_of_rice.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/earth_africa.png b/borb/pdf/canvas/layout/emoji/resources/earth_africa.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/earth_africa.png rename to borb/pdf/canvas/layout/emoji/resources/earth_africa.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/earth_americas.png b/borb/pdf/canvas/layout/emoji/resources/earth_americas.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/earth_americas.png rename to borb/pdf/canvas/layout/emoji/resources/earth_americas.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/earth_asia.png b/borb/pdf/canvas/layout/emoji/resources/earth_asia.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/earth_asia.png rename to borb/pdf/canvas/layout/emoji/resources/earth_asia.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/egg.png b/borb/pdf/canvas/layout/emoji/resources/egg.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/egg.png rename to borb/pdf/canvas/layout/emoji/resources/egg.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/eggplant.png b/borb/pdf/canvas/layout/emoji/resources/eggplant.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/eggplant.png rename to borb/pdf/canvas/layout/emoji/resources/eggplant.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/eight.png b/borb/pdf/canvas/layout/emoji/resources/eight.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/eight.png rename to borb/pdf/canvas/layout/emoji/resources/eight.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/eight_pointed_black_star.png b/borb/pdf/canvas/layout/emoji/resources/eight_pointed_black_star.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/eight_pointed_black_star.png rename to borb/pdf/canvas/layout/emoji/resources/eight_pointed_black_star.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/eight_pointed_blue_star.png b/borb/pdf/canvas/layout/emoji/resources/eight_pointed_blue_star.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/eight_pointed_blue_star.png rename to borb/pdf/canvas/layout/emoji/resources/eight_pointed_blue_star.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/electric_plug.png b/borb/pdf/canvas/layout/emoji/resources/electric_plug.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/electric_plug.png rename to borb/pdf/canvas/layout/emoji/resources/electric_plug.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/elephant.png b/borb/pdf/canvas/layout/emoji/resources/elephant.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/elephant.png rename to borb/pdf/canvas/layout/emoji/resources/elephant.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/email.png b/borb/pdf/canvas/layout/emoji/resources/email.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/email.png rename to borb/pdf/canvas/layout/emoji/resources/email.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/end.png b/borb/pdf/canvas/layout/emoji/resources/end.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/end.png rename to borb/pdf/canvas/layout/emoji/resources/end.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/envelope.png b/borb/pdf/canvas/layout/emoji/resources/envelope.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/envelope.png rename to borb/pdf/canvas/layout/emoji/resources/envelope.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/es.png b/borb/pdf/canvas/layout/emoji/resources/es.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/es.png rename to borb/pdf/canvas/layout/emoji/resources/es.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/euro.png b/borb/pdf/canvas/layout/emoji/resources/euro.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/euro.png rename to borb/pdf/canvas/layout/emoji/resources/euro.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/european_castle.png b/borb/pdf/canvas/layout/emoji/resources/european_castle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/european_castle.png rename to borb/pdf/canvas/layout/emoji/resources/european_castle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/european_post_office.png b/borb/pdf/canvas/layout/emoji/resources/european_post_office.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/european_post_office.png rename to borb/pdf/canvas/layout/emoji/resources/european_post_office.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/evergreen_tree.png b/borb/pdf/canvas/layout/emoji/resources/evergreen_tree.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/evergreen_tree.png rename to borb/pdf/canvas/layout/emoji/resources/evergreen_tree.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/exclamation.png b/borb/pdf/canvas/layout/emoji/resources/exclamation.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/exclamation.png rename to borb/pdf/canvas/layout/emoji/resources/exclamation.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/expressionless.png b/borb/pdf/canvas/layout/emoji/resources/expressionless.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/expressionless.png rename to borb/pdf/canvas/layout/emoji/resources/expressionless.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/eyeglasses.png b/borb/pdf/canvas/layout/emoji/resources/eyeglasses.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/eyeglasses.png rename to borb/pdf/canvas/layout/emoji/resources/eyeglasses.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/eyes.png b/borb/pdf/canvas/layout/emoji/resources/eyes.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/eyes.png rename to borb/pdf/canvas/layout/emoji/resources/eyes.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/facepunch.png b/borb/pdf/canvas/layout/emoji/resources/facepunch.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/facepunch.png rename to borb/pdf/canvas/layout/emoji/resources/facepunch.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/factory.png b/borb/pdf/canvas/layout/emoji/resources/factory.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/factory.png rename to borb/pdf/canvas/layout/emoji/resources/factory.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fallen_leaf.png b/borb/pdf/canvas/layout/emoji/resources/fallen_leaf.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fallen_leaf.png rename to borb/pdf/canvas/layout/emoji/resources/fallen_leaf.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/family.png b/borb/pdf/canvas/layout/emoji/resources/family.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/family.png rename to borb/pdf/canvas/layout/emoji/resources/family.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fast_forward.png b/borb/pdf/canvas/layout/emoji/resources/fast_forward.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fast_forward.png rename to borb/pdf/canvas/layout/emoji/resources/fast_forward.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fax.png b/borb/pdf/canvas/layout/emoji/resources/fax.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fax.png rename to borb/pdf/canvas/layout/emoji/resources/fax.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fearful.png b/borb/pdf/canvas/layout/emoji/resources/fearful.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fearful.png rename to borb/pdf/canvas/layout/emoji/resources/fearful.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/feelsgood.png b/borb/pdf/canvas/layout/emoji/resources/feelsgood.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/feelsgood.png rename to borb/pdf/canvas/layout/emoji/resources/feelsgood.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/feet.png b/borb/pdf/canvas/layout/emoji/resources/feet.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/feet.png rename to borb/pdf/canvas/layout/emoji/resources/feet.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ferris_wheel.png b/borb/pdf/canvas/layout/emoji/resources/ferris_wheel.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ferris_wheel.png rename to borb/pdf/canvas/layout/emoji/resources/ferris_wheel.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/file_folder.png b/borb/pdf/canvas/layout/emoji/resources/file_folder.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/file_folder.png rename to borb/pdf/canvas/layout/emoji/resources/file_folder.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/finnadie.png b/borb/pdf/canvas/layout/emoji/resources/finnadie.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/finnadie.png rename to borb/pdf/canvas/layout/emoji/resources/finnadie.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fire.png b/borb/pdf/canvas/layout/emoji/resources/fire.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fire.png rename to borb/pdf/canvas/layout/emoji/resources/fire.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fire_engine.png b/borb/pdf/canvas/layout/emoji/resources/fire_engine.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fire_engine.png rename to borb/pdf/canvas/layout/emoji/resources/fire_engine.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fireworks.png b/borb/pdf/canvas/layout/emoji/resources/fireworks.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fireworks.png rename to borb/pdf/canvas/layout/emoji/resources/fireworks.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/first_quarter_moon.png b/borb/pdf/canvas/layout/emoji/resources/first_quarter_moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/first_quarter_moon.png rename to borb/pdf/canvas/layout/emoji/resources/first_quarter_moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/first_quarter_moon_with_face.png b/borb/pdf/canvas/layout/emoji/resources/first_quarter_moon_with_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/first_quarter_moon_with_face.png rename to borb/pdf/canvas/layout/emoji/resources/first_quarter_moon_with_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fish.png b/borb/pdf/canvas/layout/emoji/resources/fish.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fish.png rename to borb/pdf/canvas/layout/emoji/resources/fish.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fish_cake.png b/borb/pdf/canvas/layout/emoji/resources/fish_cake.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fish_cake.png rename to borb/pdf/canvas/layout/emoji/resources/fish_cake.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fishing_pole_and_fish.png b/borb/pdf/canvas/layout/emoji/resources/fishing_pole_and_fish.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fishing_pole_and_fish.png rename to borb/pdf/canvas/layout/emoji/resources/fishing_pole_and_fish.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fist.png b/borb/pdf/canvas/layout/emoji/resources/fist.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fist.png rename to borb/pdf/canvas/layout/emoji/resources/fist.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/five.png b/borb/pdf/canvas/layout/emoji/resources/five.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/five.png rename to borb/pdf/canvas/layout/emoji/resources/five.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/flags.png b/borb/pdf/canvas/layout/emoji/resources/flags.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/flags.png rename to borb/pdf/canvas/layout/emoji/resources/flags.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/flashlight.png b/borb/pdf/canvas/layout/emoji/resources/flashlight.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/flashlight.png rename to borb/pdf/canvas/layout/emoji/resources/flashlight.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/floppy_disk.png b/borb/pdf/canvas/layout/emoji/resources/floppy_disk.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/floppy_disk.png rename to borb/pdf/canvas/layout/emoji/resources/floppy_disk.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/flower_playing_cards.png b/borb/pdf/canvas/layout/emoji/resources/flower_playing_cards.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/flower_playing_cards.png rename to borb/pdf/canvas/layout/emoji/resources/flower_playing_cards.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/flushed.png b/borb/pdf/canvas/layout/emoji/resources/flushed.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/flushed.png rename to borb/pdf/canvas/layout/emoji/resources/flushed.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/foggy.png b/borb/pdf/canvas/layout/emoji/resources/foggy.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/foggy.png rename to borb/pdf/canvas/layout/emoji/resources/foggy.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/football.png b/borb/pdf/canvas/layout/emoji/resources/football.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/football.png rename to borb/pdf/canvas/layout/emoji/resources/football.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fountain.png b/borb/pdf/canvas/layout/emoji/resources/fountain.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fountain.png rename to borb/pdf/canvas/layout/emoji/resources/fountain.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/four.png b/borb/pdf/canvas/layout/emoji/resources/four.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/four.png rename to borb/pdf/canvas/layout/emoji/resources/four.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/four_leaf_clover.png b/borb/pdf/canvas/layout/emoji/resources/four_leaf_clover.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/four_leaf_clover.png rename to borb/pdf/canvas/layout/emoji/resources/four_leaf_clover.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fr.png b/borb/pdf/canvas/layout/emoji/resources/fr.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fr.png rename to borb/pdf/canvas/layout/emoji/resources/fr.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/free.png b/borb/pdf/canvas/layout/emoji/resources/free.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/free.png rename to borb/pdf/canvas/layout/emoji/resources/free.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fried_shrimp.png b/borb/pdf/canvas/layout/emoji/resources/fried_shrimp.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fried_shrimp.png rename to borb/pdf/canvas/layout/emoji/resources/fried_shrimp.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fries.png b/borb/pdf/canvas/layout/emoji/resources/fries.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fries.png rename to borb/pdf/canvas/layout/emoji/resources/fries.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/frog.png b/borb/pdf/canvas/layout/emoji/resources/frog.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/frog.png rename to borb/pdf/canvas/layout/emoji/resources/frog.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/frowning.png b/borb/pdf/canvas/layout/emoji/resources/frowning.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/frowning.png rename to borb/pdf/canvas/layout/emoji/resources/frowning.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fu.png b/borb/pdf/canvas/layout/emoji/resources/fu.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fu.png rename to borb/pdf/canvas/layout/emoji/resources/fu.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/fuelpump.png b/borb/pdf/canvas/layout/emoji/resources/fuelpump.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/fuelpump.png rename to borb/pdf/canvas/layout/emoji/resources/fuelpump.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/full_moon.png b/borb/pdf/canvas/layout/emoji/resources/full_moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/full_moon.png rename to borb/pdf/canvas/layout/emoji/resources/full_moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/full_moon_with_face.png b/borb/pdf/canvas/layout/emoji/resources/full_moon_with_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/full_moon_with_face.png rename to borb/pdf/canvas/layout/emoji/resources/full_moon_with_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/game_die.png b/borb/pdf/canvas/layout/emoji/resources/game_die.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/game_die.png rename to borb/pdf/canvas/layout/emoji/resources/game_die.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/gb.png b/borb/pdf/canvas/layout/emoji/resources/gb.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/gb.png rename to borb/pdf/canvas/layout/emoji/resources/gb.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/gem.png b/borb/pdf/canvas/layout/emoji/resources/gem.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/gem.png rename to borb/pdf/canvas/layout/emoji/resources/gem.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/gemini.png b/borb/pdf/canvas/layout/emoji/resources/gemini.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/gemini.png rename to borb/pdf/canvas/layout/emoji/resources/gemini.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ghost.png b/borb/pdf/canvas/layout/emoji/resources/ghost.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ghost.png rename to borb/pdf/canvas/layout/emoji/resources/ghost.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/gift.png b/borb/pdf/canvas/layout/emoji/resources/gift.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/gift.png rename to borb/pdf/canvas/layout/emoji/resources/gift.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/gift_heart.png b/borb/pdf/canvas/layout/emoji/resources/gift_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/gift_heart.png rename to borb/pdf/canvas/layout/emoji/resources/gift_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/girl.png b/borb/pdf/canvas/layout/emoji/resources/girl.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/girl.png rename to borb/pdf/canvas/layout/emoji/resources/girl.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/globe_with_meridians.png b/borb/pdf/canvas/layout/emoji/resources/globe_with_meridians.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/globe_with_meridians.png rename to borb/pdf/canvas/layout/emoji/resources/globe_with_meridians.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/goat.png b/borb/pdf/canvas/layout/emoji/resources/goat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/goat.png rename to borb/pdf/canvas/layout/emoji/resources/goat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/goberserk.png b/borb/pdf/canvas/layout/emoji/resources/goberserk.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/goberserk.png rename to borb/pdf/canvas/layout/emoji/resources/goberserk.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/godmode.png b/borb/pdf/canvas/layout/emoji/resources/godmode.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/godmode.png rename to borb/pdf/canvas/layout/emoji/resources/godmode.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/golf.png b/borb/pdf/canvas/layout/emoji/resources/golf.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/golf.png rename to borb/pdf/canvas/layout/emoji/resources/golf.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/grapes.png b/borb/pdf/canvas/layout/emoji/resources/grapes.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/grapes.png rename to borb/pdf/canvas/layout/emoji/resources/grapes.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/green_apple.png b/borb/pdf/canvas/layout/emoji/resources/green_apple.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/green_apple.png rename to borb/pdf/canvas/layout/emoji/resources/green_apple.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/green_book.png b/borb/pdf/canvas/layout/emoji/resources/green_book.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/green_book.png rename to borb/pdf/canvas/layout/emoji/resources/green_book.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/green_heart.png b/borb/pdf/canvas/layout/emoji/resources/green_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/green_heart.png rename to borb/pdf/canvas/layout/emoji/resources/green_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/grey_exclamation.png b/borb/pdf/canvas/layout/emoji/resources/grey_exclamation.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/grey_exclamation.png rename to borb/pdf/canvas/layout/emoji/resources/grey_exclamation.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/grey_question.png b/borb/pdf/canvas/layout/emoji/resources/grey_question.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/grey_question.png rename to borb/pdf/canvas/layout/emoji/resources/grey_question.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/grimacing.png b/borb/pdf/canvas/layout/emoji/resources/grimacing.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/grimacing.png rename to borb/pdf/canvas/layout/emoji/resources/grimacing.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/grin.png b/borb/pdf/canvas/layout/emoji/resources/grin.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/grin.png rename to borb/pdf/canvas/layout/emoji/resources/grin.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/grinning.png b/borb/pdf/canvas/layout/emoji/resources/grinning.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/grinning.png rename to borb/pdf/canvas/layout/emoji/resources/grinning.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/guardsman.png b/borb/pdf/canvas/layout/emoji/resources/guardsman.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/guardsman.png rename to borb/pdf/canvas/layout/emoji/resources/guardsman.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/guitar.png b/borb/pdf/canvas/layout/emoji/resources/guitar.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/guitar.png rename to borb/pdf/canvas/layout/emoji/resources/guitar.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/gun.png b/borb/pdf/canvas/layout/emoji/resources/gun.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/gun.png rename to borb/pdf/canvas/layout/emoji/resources/gun.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/haircut.png b/borb/pdf/canvas/layout/emoji/resources/haircut.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/haircut.png rename to borb/pdf/canvas/layout/emoji/resources/haircut.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hamburger.png b/borb/pdf/canvas/layout/emoji/resources/hamburger.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hamburger.png rename to borb/pdf/canvas/layout/emoji/resources/hamburger.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hammer.png b/borb/pdf/canvas/layout/emoji/resources/hammer.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hammer.png rename to borb/pdf/canvas/layout/emoji/resources/hammer.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hamster.png b/borb/pdf/canvas/layout/emoji/resources/hamster.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hamster.png rename to borb/pdf/canvas/layout/emoji/resources/hamster.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hand.png b/borb/pdf/canvas/layout/emoji/resources/hand.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hand.png rename to borb/pdf/canvas/layout/emoji/resources/hand.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/handbag.png b/borb/pdf/canvas/layout/emoji/resources/handbag.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/handbag.png rename to borb/pdf/canvas/layout/emoji/resources/handbag.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hankey.png b/borb/pdf/canvas/layout/emoji/resources/hankey.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hankey.png rename to borb/pdf/canvas/layout/emoji/resources/hankey.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hash.png b/borb/pdf/canvas/layout/emoji/resources/hash.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hash.png rename to borb/pdf/canvas/layout/emoji/resources/hash.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hatched_chick.png b/borb/pdf/canvas/layout/emoji/resources/hatched_chick.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hatched_chick.png rename to borb/pdf/canvas/layout/emoji/resources/hatched_chick.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hatching_chick.png b/borb/pdf/canvas/layout/emoji/resources/hatching_chick.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hatching_chick.png rename to borb/pdf/canvas/layout/emoji/resources/hatching_chick.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/headphones.png b/borb/pdf/canvas/layout/emoji/resources/headphones.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/headphones.png rename to borb/pdf/canvas/layout/emoji/resources/headphones.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hear_no_evil.png b/borb/pdf/canvas/layout/emoji/resources/hear_no_evil.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hear_no_evil.png rename to borb/pdf/canvas/layout/emoji/resources/hear_no_evil.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heart.png b/borb/pdf/canvas/layout/emoji/resources/heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heart.png rename to borb/pdf/canvas/layout/emoji/resources/heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heart_decoration.png b/borb/pdf/canvas/layout/emoji/resources/heart_decoration.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heart_decoration.png rename to borb/pdf/canvas/layout/emoji/resources/heart_decoration.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heart_eyes.png b/borb/pdf/canvas/layout/emoji/resources/heart_eyes.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heart_eyes.png rename to borb/pdf/canvas/layout/emoji/resources/heart_eyes.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heart_eyes_cat.png b/borb/pdf/canvas/layout/emoji/resources/heart_eyes_cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heart_eyes_cat.png rename to borb/pdf/canvas/layout/emoji/resources/heart_eyes_cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heartbeat.png b/borb/pdf/canvas/layout/emoji/resources/heartbeat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heartbeat.png rename to borb/pdf/canvas/layout/emoji/resources/heartbeat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heartpulse.png b/borb/pdf/canvas/layout/emoji/resources/heartpulse.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heartpulse.png rename to borb/pdf/canvas/layout/emoji/resources/heartpulse.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hearts.png b/borb/pdf/canvas/layout/emoji/resources/hearts.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hearts.png rename to borb/pdf/canvas/layout/emoji/resources/hearts.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heavy_check_mark.png b/borb/pdf/canvas/layout/emoji/resources/heavy_check_mark.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heavy_check_mark.png rename to borb/pdf/canvas/layout/emoji/resources/heavy_check_mark.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heavy_division_sign.png b/borb/pdf/canvas/layout/emoji/resources/heavy_division_sign.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heavy_division_sign.png rename to borb/pdf/canvas/layout/emoji/resources/heavy_division_sign.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heavy_dollar_sign.png b/borb/pdf/canvas/layout/emoji/resources/heavy_dollar_sign.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heavy_dollar_sign.png rename to borb/pdf/canvas/layout/emoji/resources/heavy_dollar_sign.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heavy_exclamation_mark.png b/borb/pdf/canvas/layout/emoji/resources/heavy_exclamation_mark.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heavy_exclamation_mark.png rename to borb/pdf/canvas/layout/emoji/resources/heavy_exclamation_mark.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heavy_minus_sign.png b/borb/pdf/canvas/layout/emoji/resources/heavy_minus_sign.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heavy_minus_sign.png rename to borb/pdf/canvas/layout/emoji/resources/heavy_minus_sign.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heavy_multiplication.png b/borb/pdf/canvas/layout/emoji/resources/heavy_multiplication.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heavy_multiplication.png rename to borb/pdf/canvas/layout/emoji/resources/heavy_multiplication.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/heavy_plus_sign.png b/borb/pdf/canvas/layout/emoji/resources/heavy_plus_sign.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/heavy_plus_sign.png rename to borb/pdf/canvas/layout/emoji/resources/heavy_plus_sign.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/helicopter.png b/borb/pdf/canvas/layout/emoji/resources/helicopter.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/helicopter.png rename to borb/pdf/canvas/layout/emoji/resources/helicopter.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/herb.png b/borb/pdf/canvas/layout/emoji/resources/herb.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/herb.png rename to borb/pdf/canvas/layout/emoji/resources/herb.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hibiscus.png b/borb/pdf/canvas/layout/emoji/resources/hibiscus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hibiscus.png rename to borb/pdf/canvas/layout/emoji/resources/hibiscus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/high_brightness.png b/borb/pdf/canvas/layout/emoji/resources/high_brightness.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/high_brightness.png rename to borb/pdf/canvas/layout/emoji/resources/high_brightness.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/high_heel.png b/borb/pdf/canvas/layout/emoji/resources/high_heel.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/high_heel.png rename to borb/pdf/canvas/layout/emoji/resources/high_heel.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hocho.png b/borb/pdf/canvas/layout/emoji/resources/hocho.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hocho.png rename to borb/pdf/canvas/layout/emoji/resources/hocho.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/honey_pot.png b/borb/pdf/canvas/layout/emoji/resources/honey_pot.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/honey_pot.png rename to borb/pdf/canvas/layout/emoji/resources/honey_pot.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/honeybee.png b/borb/pdf/canvas/layout/emoji/resources/honeybee.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/honeybee.png rename to borb/pdf/canvas/layout/emoji/resources/honeybee.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/horse.png b/borb/pdf/canvas/layout/emoji/resources/horse.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/horse.png rename to borb/pdf/canvas/layout/emoji/resources/horse.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/horse_racing.png b/borb/pdf/canvas/layout/emoji/resources/horse_racing.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/horse_racing.png rename to borb/pdf/canvas/layout/emoji/resources/horse_racing.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hospital.png b/borb/pdf/canvas/layout/emoji/resources/hospital.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hospital.png rename to borb/pdf/canvas/layout/emoji/resources/hospital.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hotel.png b/borb/pdf/canvas/layout/emoji/resources/hotel.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hotel.png rename to borb/pdf/canvas/layout/emoji/resources/hotel.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hotsprings.png b/borb/pdf/canvas/layout/emoji/resources/hotsprings.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hotsprings.png rename to borb/pdf/canvas/layout/emoji/resources/hotsprings.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hourglass.png b/borb/pdf/canvas/layout/emoji/resources/hourglass.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hourglass.png rename to borb/pdf/canvas/layout/emoji/resources/hourglass.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hourglass_flowing_sand.png b/borb/pdf/canvas/layout/emoji/resources/hourglass_flowing_sand.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hourglass_flowing_sand.png rename to borb/pdf/canvas/layout/emoji/resources/hourglass_flowing_sand.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/house.png b/borb/pdf/canvas/layout/emoji/resources/house.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/house.png rename to borb/pdf/canvas/layout/emoji/resources/house.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/house_with_garden.png b/borb/pdf/canvas/layout/emoji/resources/house_with_garden.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/house_with_garden.png rename to borb/pdf/canvas/layout/emoji/resources/house_with_garden.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hundred.png b/borb/pdf/canvas/layout/emoji/resources/hundred.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hundred.png rename to borb/pdf/canvas/layout/emoji/resources/hundred.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hurtrealbad.png b/borb/pdf/canvas/layout/emoji/resources/hurtrealbad.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hurtrealbad.png rename to borb/pdf/canvas/layout/emoji/resources/hurtrealbad.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/hushed.png b/borb/pdf/canvas/layout/emoji/resources/hushed.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/hushed.png rename to borb/pdf/canvas/layout/emoji/resources/hushed.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ice_cream.png b/borb/pdf/canvas/layout/emoji/resources/ice_cream.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ice_cream.png rename to borb/pdf/canvas/layout/emoji/resources/ice_cream.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/icecream.png b/borb/pdf/canvas/layout/emoji/resources/icecream.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/icecream.png rename to borb/pdf/canvas/layout/emoji/resources/icecream.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/id.png b/borb/pdf/canvas/layout/emoji/resources/id.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/id.png rename to borb/pdf/canvas/layout/emoji/resources/id.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/imp.png b/borb/pdf/canvas/layout/emoji/resources/imp.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/imp.png rename to borb/pdf/canvas/layout/emoji/resources/imp.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/inbox_tray.png b/borb/pdf/canvas/layout/emoji/resources/inbox_tray.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/inbox_tray.png rename to borb/pdf/canvas/layout/emoji/resources/inbox_tray.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/incoming_envelope.png b/borb/pdf/canvas/layout/emoji/resources/incoming_envelope.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/incoming_envelope.png rename to borb/pdf/canvas/layout/emoji/resources/incoming_envelope.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/information_desk_person.png b/borb/pdf/canvas/layout/emoji/resources/information_desk_person.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/information_desk_person.png rename to borb/pdf/canvas/layout/emoji/resources/information_desk_person.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/information_source.png b/borb/pdf/canvas/layout/emoji/resources/information_source.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/information_source.png rename to borb/pdf/canvas/layout/emoji/resources/information_source.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/innocent.png b/borb/pdf/canvas/layout/emoji/resources/innocent.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/innocent.png rename to borb/pdf/canvas/layout/emoji/resources/innocent.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/interrobang.png b/borb/pdf/canvas/layout/emoji/resources/interrobang.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/interrobang.png rename to borb/pdf/canvas/layout/emoji/resources/interrobang.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/iphone.png b/borb/pdf/canvas/layout/emoji/resources/iphone.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/iphone.png rename to borb/pdf/canvas/layout/emoji/resources/iphone.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/it.png b/borb/pdf/canvas/layout/emoji/resources/it.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/it.png rename to borb/pdf/canvas/layout/emoji/resources/it.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/izakaya_lantern.png b/borb/pdf/canvas/layout/emoji/resources/izakaya_lantern.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/izakaya_lantern.png rename to borb/pdf/canvas/layout/emoji/resources/izakaya_lantern.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/jack_o_lantern.png b/borb/pdf/canvas/layout/emoji/resources/jack_o_lantern.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/jack_o_lantern.png rename to borb/pdf/canvas/layout/emoji/resources/jack_o_lantern.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/japan.png b/borb/pdf/canvas/layout/emoji/resources/japan.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/japan.png rename to borb/pdf/canvas/layout/emoji/resources/japan.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/japanese_castle.png b/borb/pdf/canvas/layout/emoji/resources/japanese_castle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/japanese_castle.png rename to borb/pdf/canvas/layout/emoji/resources/japanese_castle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/japanese_goblin.png b/borb/pdf/canvas/layout/emoji/resources/japanese_goblin.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/japanese_goblin.png rename to borb/pdf/canvas/layout/emoji/resources/japanese_goblin.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/japanese_ogre.png b/borb/pdf/canvas/layout/emoji/resources/japanese_ogre.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/japanese_ogre.png rename to borb/pdf/canvas/layout/emoji/resources/japanese_ogre.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/jeans.png b/borb/pdf/canvas/layout/emoji/resources/jeans.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/jeans.png rename to borb/pdf/canvas/layout/emoji/resources/jeans.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/joy.png b/borb/pdf/canvas/layout/emoji/resources/joy.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/joy.png rename to borb/pdf/canvas/layout/emoji/resources/joy.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/joy_cat.png b/borb/pdf/canvas/layout/emoji/resources/joy_cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/joy_cat.png rename to borb/pdf/canvas/layout/emoji/resources/joy_cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/jp.png b/borb/pdf/canvas/layout/emoji/resources/jp.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/jp.png rename to borb/pdf/canvas/layout/emoji/resources/jp.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/key.png b/borb/pdf/canvas/layout/emoji/resources/key.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/key.png rename to borb/pdf/canvas/layout/emoji/resources/key.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/keycap_ten.png b/borb/pdf/canvas/layout/emoji/resources/keycap_ten.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/keycap_ten.png rename to borb/pdf/canvas/layout/emoji/resources/keycap_ten.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/kimono.png b/borb/pdf/canvas/layout/emoji/resources/kimono.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/kimono.png rename to borb/pdf/canvas/layout/emoji/resources/kimono.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/kiss.png b/borb/pdf/canvas/layout/emoji/resources/kiss.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/kiss.png rename to borb/pdf/canvas/layout/emoji/resources/kiss.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/kissing.png b/borb/pdf/canvas/layout/emoji/resources/kissing.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/kissing.png rename to borb/pdf/canvas/layout/emoji/resources/kissing.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/kissing_cat.png b/borb/pdf/canvas/layout/emoji/resources/kissing_cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/kissing_cat.png rename to borb/pdf/canvas/layout/emoji/resources/kissing_cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/kissing_closed_eyes.png b/borb/pdf/canvas/layout/emoji/resources/kissing_closed_eyes.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/kissing_closed_eyes.png rename to borb/pdf/canvas/layout/emoji/resources/kissing_closed_eyes.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/kissing_heart.png b/borb/pdf/canvas/layout/emoji/resources/kissing_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/kissing_heart.png rename to borb/pdf/canvas/layout/emoji/resources/kissing_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/kissing_smiling_eyes.png b/borb/pdf/canvas/layout/emoji/resources/kissing_smiling_eyes.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/kissing_smiling_eyes.png rename to borb/pdf/canvas/layout/emoji/resources/kissing_smiling_eyes.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/knife_and_fork.png b/borb/pdf/canvas/layout/emoji/resources/knife_and_fork.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/knife_and_fork.png rename to borb/pdf/canvas/layout/emoji/resources/knife_and_fork.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/koala.png b/borb/pdf/canvas/layout/emoji/resources/koala.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/koala.png rename to borb/pdf/canvas/layout/emoji/resources/koala.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/koko.png b/borb/pdf/canvas/layout/emoji/resources/koko.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/koko.png rename to borb/pdf/canvas/layout/emoji/resources/koko.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/kr.png b/borb/pdf/canvas/layout/emoji/resources/kr.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/kr.png rename to borb/pdf/canvas/layout/emoji/resources/kr.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/last_quarter_moon.png b/borb/pdf/canvas/layout/emoji/resources/last_quarter_moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/last_quarter_moon.png rename to borb/pdf/canvas/layout/emoji/resources/last_quarter_moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/last_quarter_moon_with_face.png b/borb/pdf/canvas/layout/emoji/resources/last_quarter_moon_with_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/last_quarter_moon_with_face.png rename to borb/pdf/canvas/layout/emoji/resources/last_quarter_moon_with_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/laughing.png b/borb/pdf/canvas/layout/emoji/resources/laughing.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/laughing.png rename to borb/pdf/canvas/layout/emoji/resources/laughing.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/leaves.png b/borb/pdf/canvas/layout/emoji/resources/leaves.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/leaves.png rename to borb/pdf/canvas/layout/emoji/resources/leaves.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ledger.png b/borb/pdf/canvas/layout/emoji/resources/ledger.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ledger.png rename to borb/pdf/canvas/layout/emoji/resources/ledger.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/left_luggage.png b/borb/pdf/canvas/layout/emoji/resources/left_luggage.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/left_luggage.png rename to borb/pdf/canvas/layout/emoji/resources/left_luggage.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/lemon.png b/borb/pdf/canvas/layout/emoji/resources/lemon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/lemon.png rename to borb/pdf/canvas/layout/emoji/resources/lemon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/leo.png b/borb/pdf/canvas/layout/emoji/resources/leo.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/leo.png rename to borb/pdf/canvas/layout/emoji/resources/leo.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/leopard.png b/borb/pdf/canvas/layout/emoji/resources/leopard.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/leopard.png rename to borb/pdf/canvas/layout/emoji/resources/leopard.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/libra.png b/borb/pdf/canvas/layout/emoji/resources/libra.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/libra.png rename to borb/pdf/canvas/layout/emoji/resources/libra.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/light_rail.png b/borb/pdf/canvas/layout/emoji/resources/light_rail.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/light_rail.png rename to borb/pdf/canvas/layout/emoji/resources/light_rail.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/link.png b/borb/pdf/canvas/layout/emoji/resources/link.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/link.png rename to borb/pdf/canvas/layout/emoji/resources/link.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/lips.png b/borb/pdf/canvas/layout/emoji/resources/lips.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/lips.png rename to borb/pdf/canvas/layout/emoji/resources/lips.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/lipstick.png b/borb/pdf/canvas/layout/emoji/resources/lipstick.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/lipstick.png rename to borb/pdf/canvas/layout/emoji/resources/lipstick.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/lock.png b/borb/pdf/canvas/layout/emoji/resources/lock.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/lock.png rename to borb/pdf/canvas/layout/emoji/resources/lock.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/lock_with_ink_pen.png b/borb/pdf/canvas/layout/emoji/resources/lock_with_ink_pen.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/lock_with_ink_pen.png rename to borb/pdf/canvas/layout/emoji/resources/lock_with_ink_pen.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/lollipop.png b/borb/pdf/canvas/layout/emoji/resources/lollipop.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/lollipop.png rename to borb/pdf/canvas/layout/emoji/resources/lollipop.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/loop.png b/borb/pdf/canvas/layout/emoji/resources/loop.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/loop.png rename to borb/pdf/canvas/layout/emoji/resources/loop.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/loudspeaker.png b/borb/pdf/canvas/layout/emoji/resources/loudspeaker.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/loudspeaker.png rename to borb/pdf/canvas/layout/emoji/resources/loudspeaker.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/love_hotel.png b/borb/pdf/canvas/layout/emoji/resources/love_hotel.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/love_hotel.png rename to borb/pdf/canvas/layout/emoji/resources/love_hotel.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/love_letter.png b/borb/pdf/canvas/layout/emoji/resources/love_letter.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/love_letter.png rename to borb/pdf/canvas/layout/emoji/resources/love_letter.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/low_brightness.png b/borb/pdf/canvas/layout/emoji/resources/low_brightness.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/low_brightness.png rename to borb/pdf/canvas/layout/emoji/resources/low_brightness.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/m.png b/borb/pdf/canvas/layout/emoji/resources/m.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/m.png rename to borb/pdf/canvas/layout/emoji/resources/m.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mag.png b/borb/pdf/canvas/layout/emoji/resources/mag.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mag.png rename to borb/pdf/canvas/layout/emoji/resources/mag.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mag_right.png b/borb/pdf/canvas/layout/emoji/resources/mag_right.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mag_right.png rename to borb/pdf/canvas/layout/emoji/resources/mag_right.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/magic_8_ball.png b/borb/pdf/canvas/layout/emoji/resources/magic_8_ball.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/magic_8_ball.png rename to borb/pdf/canvas/layout/emoji/resources/magic_8_ball.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mahjong.png b/borb/pdf/canvas/layout/emoji/resources/mahjong.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mahjong.png rename to borb/pdf/canvas/layout/emoji/resources/mahjong.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mailbox.png b/borb/pdf/canvas/layout/emoji/resources/mailbox.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mailbox.png rename to borb/pdf/canvas/layout/emoji/resources/mailbox.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mailbox_closed.png b/borb/pdf/canvas/layout/emoji/resources/mailbox_closed.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mailbox_closed.png rename to borb/pdf/canvas/layout/emoji/resources/mailbox_closed.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mailbox_with_mail.png b/borb/pdf/canvas/layout/emoji/resources/mailbox_with_mail.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mailbox_with_mail.png rename to borb/pdf/canvas/layout/emoji/resources/mailbox_with_mail.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mailbox_with_no_mail.png b/borb/pdf/canvas/layout/emoji/resources/mailbox_with_no_mail.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mailbox_with_no_mail.png rename to borb/pdf/canvas/layout/emoji/resources/mailbox_with_no_mail.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/man.png b/borb/pdf/canvas/layout/emoji/resources/man.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/man.png rename to borb/pdf/canvas/layout/emoji/resources/man.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/man_with_gua_pi_mao.png b/borb/pdf/canvas/layout/emoji/resources/man_with_gua_pi_mao.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/man_with_gua_pi_mao.png rename to borb/pdf/canvas/layout/emoji/resources/man_with_gua_pi_mao.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/man_with_turban.png b/borb/pdf/canvas/layout/emoji/resources/man_with_turban.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/man_with_turban.png rename to borb/pdf/canvas/layout/emoji/resources/man_with_turban.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mans_shoe.png b/borb/pdf/canvas/layout/emoji/resources/mans_shoe.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mans_shoe.png rename to borb/pdf/canvas/layout/emoji/resources/mans_shoe.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/maple_leaf.png b/borb/pdf/canvas/layout/emoji/resources/maple_leaf.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/maple_leaf.png rename to borb/pdf/canvas/layout/emoji/resources/maple_leaf.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mask.png b/borb/pdf/canvas/layout/emoji/resources/mask.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mask.png rename to borb/pdf/canvas/layout/emoji/resources/mask.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/massage.png b/borb/pdf/canvas/layout/emoji/resources/massage.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/massage.png rename to borb/pdf/canvas/layout/emoji/resources/massage.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/meat_on_bone.png b/borb/pdf/canvas/layout/emoji/resources/meat_on_bone.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/meat_on_bone.png rename to borb/pdf/canvas/layout/emoji/resources/meat_on_bone.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mega.png b/borb/pdf/canvas/layout/emoji/resources/mega.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mega.png rename to borb/pdf/canvas/layout/emoji/resources/mega.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/melon.png b/borb/pdf/canvas/layout/emoji/resources/melon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/melon.png rename to borb/pdf/canvas/layout/emoji/resources/melon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/memo.png b/borb/pdf/canvas/layout/emoji/resources/memo.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/memo.png rename to borb/pdf/canvas/layout/emoji/resources/memo.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mens.png b/borb/pdf/canvas/layout/emoji/resources/mens.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mens.png rename to borb/pdf/canvas/layout/emoji/resources/mens.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/metal.png b/borb/pdf/canvas/layout/emoji/resources/metal.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/metal.png rename to borb/pdf/canvas/layout/emoji/resources/metal.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/microphone.png b/borb/pdf/canvas/layout/emoji/resources/microphone.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/microphone.png rename to borb/pdf/canvas/layout/emoji/resources/microphone.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/microscope.png b/borb/pdf/canvas/layout/emoji/resources/microscope.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/microscope.png rename to borb/pdf/canvas/layout/emoji/resources/microscope.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/milky_way.png b/borb/pdf/canvas/layout/emoji/resources/milky_way.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/milky_way.png rename to borb/pdf/canvas/layout/emoji/resources/milky_way.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/minibus.png b/borb/pdf/canvas/layout/emoji/resources/minibus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/minibus.png rename to borb/pdf/canvas/layout/emoji/resources/minibus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/minidisc.png b/borb/pdf/canvas/layout/emoji/resources/minidisc.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/minidisc.png rename to borb/pdf/canvas/layout/emoji/resources/minidisc.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/minus_1.png b/borb/pdf/canvas/layout/emoji/resources/minus_1.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/minus_1.png rename to borb/pdf/canvas/layout/emoji/resources/minus_1.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mobile_phone_off.png b/borb/pdf/canvas/layout/emoji/resources/mobile_phone_off.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mobile_phone_off.png rename to borb/pdf/canvas/layout/emoji/resources/mobile_phone_off.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/money_with_wings.png b/borb/pdf/canvas/layout/emoji/resources/money_with_wings.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/money_with_wings.png rename to borb/pdf/canvas/layout/emoji/resources/money_with_wings.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/moneybag.png b/borb/pdf/canvas/layout/emoji/resources/moneybag.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/moneybag.png rename to borb/pdf/canvas/layout/emoji/resources/moneybag.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/monkey.png b/borb/pdf/canvas/layout/emoji/resources/monkey.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/monkey.png rename to borb/pdf/canvas/layout/emoji/resources/monkey.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/monkey_face.png b/borb/pdf/canvas/layout/emoji/resources/monkey_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/monkey_face.png rename to borb/pdf/canvas/layout/emoji/resources/monkey_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/monorail.png b/borb/pdf/canvas/layout/emoji/resources/monorail.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/monorail.png rename to borb/pdf/canvas/layout/emoji/resources/monorail.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/moon.png b/borb/pdf/canvas/layout/emoji/resources/moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/moon.png rename to borb/pdf/canvas/layout/emoji/resources/moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mortar_board.png b/borb/pdf/canvas/layout/emoji/resources/mortar_board.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mortar_board.png rename to borb/pdf/canvas/layout/emoji/resources/mortar_board.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mount_fuji.png b/borb/pdf/canvas/layout/emoji/resources/mount_fuji.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mount_fuji.png rename to borb/pdf/canvas/layout/emoji/resources/mount_fuji.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mountain_bicyclist.png b/borb/pdf/canvas/layout/emoji/resources/mountain_bicyclist.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mountain_bicyclist.png rename to borb/pdf/canvas/layout/emoji/resources/mountain_bicyclist.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mountain_cableway.png b/borb/pdf/canvas/layout/emoji/resources/mountain_cableway.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mountain_cableway.png rename to borb/pdf/canvas/layout/emoji/resources/mountain_cableway.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mountain_railway.png b/borb/pdf/canvas/layout/emoji/resources/mountain_railway.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mountain_railway.png rename to borb/pdf/canvas/layout/emoji/resources/mountain_railway.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mouse.png b/borb/pdf/canvas/layout/emoji/resources/mouse.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mouse.png rename to borb/pdf/canvas/layout/emoji/resources/mouse.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mouse_2.png b/borb/pdf/canvas/layout/emoji/resources/mouse_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mouse_2.png rename to borb/pdf/canvas/layout/emoji/resources/mouse_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/movie_camera.png b/borb/pdf/canvas/layout/emoji/resources/movie_camera.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/movie_camera.png rename to borb/pdf/canvas/layout/emoji/resources/movie_camera.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/moyai.png b/borb/pdf/canvas/layout/emoji/resources/moyai.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/moyai.png rename to borb/pdf/canvas/layout/emoji/resources/moyai.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/muscle.png b/borb/pdf/canvas/layout/emoji/resources/muscle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/muscle.png rename to borb/pdf/canvas/layout/emoji/resources/muscle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mushroom.png b/borb/pdf/canvas/layout/emoji/resources/mushroom.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mushroom.png rename to borb/pdf/canvas/layout/emoji/resources/mushroom.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/musical_keyboard.png b/borb/pdf/canvas/layout/emoji/resources/musical_keyboard.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/musical_keyboard.png rename to borb/pdf/canvas/layout/emoji/resources/musical_keyboard.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/musical_note.png b/borb/pdf/canvas/layout/emoji/resources/musical_note.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/musical_note.png rename to borb/pdf/canvas/layout/emoji/resources/musical_note.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/musical_score.png b/borb/pdf/canvas/layout/emoji/resources/musical_score.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/musical_score.png rename to borb/pdf/canvas/layout/emoji/resources/musical_score.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/mute.png b/borb/pdf/canvas/layout/emoji/resources/mute.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/mute.png rename to borb/pdf/canvas/layout/emoji/resources/mute.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/nail_care.png b/borb/pdf/canvas/layout/emoji/resources/nail_care.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/nail_care.png rename to borb/pdf/canvas/layout/emoji/resources/nail_care.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/name_badge.png b/borb/pdf/canvas/layout/emoji/resources/name_badge.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/name_badge.png rename to borb/pdf/canvas/layout/emoji/resources/name_badge.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/neckbeard.png b/borb/pdf/canvas/layout/emoji/resources/neckbeard.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/neckbeard.png rename to borb/pdf/canvas/layout/emoji/resources/neckbeard.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/necktie.png b/borb/pdf/canvas/layout/emoji/resources/necktie.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/necktie.png rename to borb/pdf/canvas/layout/emoji/resources/necktie.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/negative_squared_cross_mark.png b/borb/pdf/canvas/layout/emoji/resources/negative_squared_cross_mark.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/negative_squared_cross_mark.png rename to borb/pdf/canvas/layout/emoji/resources/negative_squared_cross_mark.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/neutral_face.png b/borb/pdf/canvas/layout/emoji/resources/neutral_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/neutral_face.png rename to borb/pdf/canvas/layout/emoji/resources/neutral_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/new.png b/borb/pdf/canvas/layout/emoji/resources/new.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/new.png rename to borb/pdf/canvas/layout/emoji/resources/new.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/new_moon.png b/borb/pdf/canvas/layout/emoji/resources/new_moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/new_moon.png rename to borb/pdf/canvas/layout/emoji/resources/new_moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/new_moon_with_face.png b/borb/pdf/canvas/layout/emoji/resources/new_moon_with_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/new_moon_with_face.png rename to borb/pdf/canvas/layout/emoji/resources/new_moon_with_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/newspaper.png b/borb/pdf/canvas/layout/emoji/resources/newspaper.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/newspaper.png rename to borb/pdf/canvas/layout/emoji/resources/newspaper.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ng.png b/borb/pdf/canvas/layout/emoji/resources/ng.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ng.png rename to borb/pdf/canvas/layout/emoji/resources/ng.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/nine.png b/borb/pdf/canvas/layout/emoji/resources/nine.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/nine.png rename to borb/pdf/canvas/layout/emoji/resources/nine.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/no_bell.png b/borb/pdf/canvas/layout/emoji/resources/no_bell.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/no_bell.png rename to borb/pdf/canvas/layout/emoji/resources/no_bell.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/no_bicycles.png b/borb/pdf/canvas/layout/emoji/resources/no_bicycles.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/no_bicycles.png rename to borb/pdf/canvas/layout/emoji/resources/no_bicycles.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/no_entry.png b/borb/pdf/canvas/layout/emoji/resources/no_entry.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/no_entry.png rename to borb/pdf/canvas/layout/emoji/resources/no_entry.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/no_good.png b/borb/pdf/canvas/layout/emoji/resources/no_good.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/no_good.png rename to borb/pdf/canvas/layout/emoji/resources/no_good.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/no_mobile_phones.png b/borb/pdf/canvas/layout/emoji/resources/no_mobile_phones.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/no_mobile_phones.png rename to borb/pdf/canvas/layout/emoji/resources/no_mobile_phones.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/no_mouth.png b/borb/pdf/canvas/layout/emoji/resources/no_mouth.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/no_mouth.png rename to borb/pdf/canvas/layout/emoji/resources/no_mouth.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/no_pedestrians.png b/borb/pdf/canvas/layout/emoji/resources/no_pedestrians.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/no_pedestrians.png rename to borb/pdf/canvas/layout/emoji/resources/no_pedestrians.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/no_smoking.png b/borb/pdf/canvas/layout/emoji/resources/no_smoking.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/no_smoking.png rename to borb/pdf/canvas/layout/emoji/resources/no_smoking.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/non_potable_water.png b/borb/pdf/canvas/layout/emoji/resources/non_potable_water.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/non_potable_water.png rename to borb/pdf/canvas/layout/emoji/resources/non_potable_water.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/nose.png b/borb/pdf/canvas/layout/emoji/resources/nose.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/nose.png rename to borb/pdf/canvas/layout/emoji/resources/nose.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/notebook.png b/borb/pdf/canvas/layout/emoji/resources/notebook.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/notebook.png rename to borb/pdf/canvas/layout/emoji/resources/notebook.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/notebook_with_decorative_cover.png b/borb/pdf/canvas/layout/emoji/resources/notebook_with_decorative_cover.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/notebook_with_decorative_cover.png rename to borb/pdf/canvas/layout/emoji/resources/notebook_with_decorative_cover.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/notes.png b/borb/pdf/canvas/layout/emoji/resources/notes.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/notes.png rename to borb/pdf/canvas/layout/emoji/resources/notes.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/nut_and_bolt.png b/borb/pdf/canvas/layout/emoji/resources/nut_and_bolt.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/nut_and_bolt.png rename to borb/pdf/canvas/layout/emoji/resources/nut_and_bolt.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/o.png b/borb/pdf/canvas/layout/emoji/resources/o.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/o.png rename to borb/pdf/canvas/layout/emoji/resources/o.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ocean.png b/borb/pdf/canvas/layout/emoji/resources/ocean.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ocean.png rename to borb/pdf/canvas/layout/emoji/resources/ocean.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/octocat.png b/borb/pdf/canvas/layout/emoji/resources/octocat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/octocat.png rename to borb/pdf/canvas/layout/emoji/resources/octocat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/octopus.png b/borb/pdf/canvas/layout/emoji/resources/octopus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/octopus.png rename to borb/pdf/canvas/layout/emoji/resources/octopus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/oden.png b/borb/pdf/canvas/layout/emoji/resources/oden.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/oden.png rename to borb/pdf/canvas/layout/emoji/resources/oden.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/office.png b/borb/pdf/canvas/layout/emoji/resources/office.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/office.png rename to borb/pdf/canvas/layout/emoji/resources/office.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ok.png b/borb/pdf/canvas/layout/emoji/resources/ok.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ok.png rename to borb/pdf/canvas/layout/emoji/resources/ok.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ok_hand.png b/borb/pdf/canvas/layout/emoji/resources/ok_hand.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ok_hand.png rename to borb/pdf/canvas/layout/emoji/resources/ok_hand.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ok_woman.png b/borb/pdf/canvas/layout/emoji/resources/ok_woman.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ok_woman.png rename to borb/pdf/canvas/layout/emoji/resources/ok_woman.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/older_man.png b/borb/pdf/canvas/layout/emoji/resources/older_man.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/older_man.png rename to borb/pdf/canvas/layout/emoji/resources/older_man.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/older_woman.png b/borb/pdf/canvas/layout/emoji/resources/older_woman.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/older_woman.png rename to borb/pdf/canvas/layout/emoji/resources/older_woman.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/on.png b/borb/pdf/canvas/layout/emoji/resources/on.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/on.png rename to borb/pdf/canvas/layout/emoji/resources/on.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/oncoming_automobile.png b/borb/pdf/canvas/layout/emoji/resources/oncoming_automobile.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/oncoming_automobile.png rename to borb/pdf/canvas/layout/emoji/resources/oncoming_automobile.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/oncoming_bus.png b/borb/pdf/canvas/layout/emoji/resources/oncoming_bus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/oncoming_bus.png rename to borb/pdf/canvas/layout/emoji/resources/oncoming_bus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/oncoming_police_car.png b/borb/pdf/canvas/layout/emoji/resources/oncoming_police_car.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/oncoming_police_car.png rename to borb/pdf/canvas/layout/emoji/resources/oncoming_police_car.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/oncoming_taxi.png b/borb/pdf/canvas/layout/emoji/resources/oncoming_taxi.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/oncoming_taxi.png rename to borb/pdf/canvas/layout/emoji/resources/oncoming_taxi.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/one.png b/borb/pdf/canvas/layout/emoji/resources/one.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/one.png rename to borb/pdf/canvas/layout/emoji/resources/one.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/one_two_three_four.png b/borb/pdf/canvas/layout/emoji/resources/one_two_three_four.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/one_two_three_four.png rename to borb/pdf/canvas/layout/emoji/resources/one_two_three_four.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/open_file_folder.png b/borb/pdf/canvas/layout/emoji/resources/open_file_folder.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/open_file_folder.png rename to borb/pdf/canvas/layout/emoji/resources/open_file_folder.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/open_hands.png b/borb/pdf/canvas/layout/emoji/resources/open_hands.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/open_hands.png rename to borb/pdf/canvas/layout/emoji/resources/open_hands.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/open_mouth.png b/borb/pdf/canvas/layout/emoji/resources/open_mouth.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/open_mouth.png rename to borb/pdf/canvas/layout/emoji/resources/open_mouth.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ophiuchus.png b/borb/pdf/canvas/layout/emoji/resources/ophiuchus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ophiuchus.png rename to borb/pdf/canvas/layout/emoji/resources/ophiuchus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/orange_book.png b/borb/pdf/canvas/layout/emoji/resources/orange_book.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/orange_book.png rename to borb/pdf/canvas/layout/emoji/resources/orange_book.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/orange_diamond.png b/borb/pdf/canvas/layout/emoji/resources/orange_diamond.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/orange_diamond.png rename to borb/pdf/canvas/layout/emoji/resources/orange_diamond.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/outbox_tray.png b/borb/pdf/canvas/layout/emoji/resources/outbox_tray.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/outbox_tray.png rename to borb/pdf/canvas/layout/emoji/resources/outbox_tray.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ox.png b/borb/pdf/canvas/layout/emoji/resources/ox.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ox.png rename to borb/pdf/canvas/layout/emoji/resources/ox.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/page_facing_up.png b/borb/pdf/canvas/layout/emoji/resources/page_facing_up.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/page_facing_up.png rename to borb/pdf/canvas/layout/emoji/resources/page_facing_up.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/page_with_curl.png b/borb/pdf/canvas/layout/emoji/resources/page_with_curl.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/page_with_curl.png rename to borb/pdf/canvas/layout/emoji/resources/page_with_curl.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pager.png b/borb/pdf/canvas/layout/emoji/resources/pager.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pager.png rename to borb/pdf/canvas/layout/emoji/resources/pager.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/palm_tree.png b/borb/pdf/canvas/layout/emoji/resources/palm_tree.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/palm_tree.png rename to borb/pdf/canvas/layout/emoji/resources/palm_tree.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/panda_face.png b/borb/pdf/canvas/layout/emoji/resources/panda_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/panda_face.png rename to borb/pdf/canvas/layout/emoji/resources/panda_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/paperclip.png b/borb/pdf/canvas/layout/emoji/resources/paperclip.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/paperclip.png rename to borb/pdf/canvas/layout/emoji/resources/paperclip.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/parking.png b/borb/pdf/canvas/layout/emoji/resources/parking.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/parking.png rename to borb/pdf/canvas/layout/emoji/resources/parking.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/part_alternation_mark.png b/borb/pdf/canvas/layout/emoji/resources/part_alternation_mark.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/part_alternation_mark.png rename to borb/pdf/canvas/layout/emoji/resources/part_alternation_mark.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/partly_sunny.png b/borb/pdf/canvas/layout/emoji/resources/partly_sunny.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/partly_sunny.png rename to borb/pdf/canvas/layout/emoji/resources/partly_sunny.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/passport_control.png b/borb/pdf/canvas/layout/emoji/resources/passport_control.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/passport_control.png rename to borb/pdf/canvas/layout/emoji/resources/passport_control.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/paw_prints.png b/borb/pdf/canvas/layout/emoji/resources/paw_prints.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/paw_prints.png rename to borb/pdf/canvas/layout/emoji/resources/paw_prints.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/peach.png b/borb/pdf/canvas/layout/emoji/resources/peach.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/peach.png rename to borb/pdf/canvas/layout/emoji/resources/peach.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pear.png b/borb/pdf/canvas/layout/emoji/resources/pear.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pear.png rename to borb/pdf/canvas/layout/emoji/resources/pear.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pencil.png b/borb/pdf/canvas/layout/emoji/resources/pencil.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pencil.png rename to borb/pdf/canvas/layout/emoji/resources/pencil.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pencil_2.png b/borb/pdf/canvas/layout/emoji/resources/pencil_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pencil_2.png rename to borb/pdf/canvas/layout/emoji/resources/pencil_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/penguin.png b/borb/pdf/canvas/layout/emoji/resources/penguin.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/penguin.png rename to borb/pdf/canvas/layout/emoji/resources/penguin.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pensive.png b/borb/pdf/canvas/layout/emoji/resources/pensive.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pensive.png rename to borb/pdf/canvas/layout/emoji/resources/pensive.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/performing_arts.png b/borb/pdf/canvas/layout/emoji/resources/performing_arts.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/performing_arts.png rename to borb/pdf/canvas/layout/emoji/resources/performing_arts.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/persevere.png b/borb/pdf/canvas/layout/emoji/resources/persevere.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/persevere.png rename to borb/pdf/canvas/layout/emoji/resources/persevere.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/phone.png b/borb/pdf/canvas/layout/emoji/resources/phone.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/phone.png rename to borb/pdf/canvas/layout/emoji/resources/phone.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pig.png b/borb/pdf/canvas/layout/emoji/resources/pig.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pig.png rename to borb/pdf/canvas/layout/emoji/resources/pig.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pig_2.png b/borb/pdf/canvas/layout/emoji/resources/pig_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pig_2.png rename to borb/pdf/canvas/layout/emoji/resources/pig_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pig_nose.png b/borb/pdf/canvas/layout/emoji/resources/pig_nose.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pig_nose.png rename to borb/pdf/canvas/layout/emoji/resources/pig_nose.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pill.png b/borb/pdf/canvas/layout/emoji/resources/pill.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pill.png rename to borb/pdf/canvas/layout/emoji/resources/pill.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pineapple.png b/borb/pdf/canvas/layout/emoji/resources/pineapple.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pineapple.png rename to borb/pdf/canvas/layout/emoji/resources/pineapple.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pisces.png b/borb/pdf/canvas/layout/emoji/resources/pisces.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pisces.png rename to borb/pdf/canvas/layout/emoji/resources/pisces.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pizza.png b/borb/pdf/canvas/layout/emoji/resources/pizza.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pizza.png rename to borb/pdf/canvas/layout/emoji/resources/pizza.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/plus_1.png b/borb/pdf/canvas/layout/emoji/resources/plus_1.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/plus_1.png rename to borb/pdf/canvas/layout/emoji/resources/plus_1.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/point_down.png b/borb/pdf/canvas/layout/emoji/resources/point_down.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/point_down.png rename to borb/pdf/canvas/layout/emoji/resources/point_down.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/point_left.png b/borb/pdf/canvas/layout/emoji/resources/point_left.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/point_left.png rename to borb/pdf/canvas/layout/emoji/resources/point_left.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/point_right.png b/borb/pdf/canvas/layout/emoji/resources/point_right.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/point_right.png rename to borb/pdf/canvas/layout/emoji/resources/point_right.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/point_up.png b/borb/pdf/canvas/layout/emoji/resources/point_up.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/point_up.png rename to borb/pdf/canvas/layout/emoji/resources/point_up.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/point_up_2.png b/borb/pdf/canvas/layout/emoji/resources/point_up_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/point_up_2.png rename to borb/pdf/canvas/layout/emoji/resources/point_up_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/police_car.png b/borb/pdf/canvas/layout/emoji/resources/police_car.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/police_car.png rename to borb/pdf/canvas/layout/emoji/resources/police_car.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/poodle.png b/borb/pdf/canvas/layout/emoji/resources/poodle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/poodle.png rename to borb/pdf/canvas/layout/emoji/resources/poodle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/poop.png b/borb/pdf/canvas/layout/emoji/resources/poop.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/poop.png rename to borb/pdf/canvas/layout/emoji/resources/poop.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/post_office.png b/borb/pdf/canvas/layout/emoji/resources/post_office.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/post_office.png rename to borb/pdf/canvas/layout/emoji/resources/post_office.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/postal_horn.png b/borb/pdf/canvas/layout/emoji/resources/postal_horn.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/postal_horn.png rename to borb/pdf/canvas/layout/emoji/resources/postal_horn.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/postbox.png b/borb/pdf/canvas/layout/emoji/resources/postbox.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/postbox.png rename to borb/pdf/canvas/layout/emoji/resources/postbox.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/potable_water.png b/borb/pdf/canvas/layout/emoji/resources/potable_water.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/potable_water.png rename to borb/pdf/canvas/layout/emoji/resources/potable_water.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pouch.png b/borb/pdf/canvas/layout/emoji/resources/pouch.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pouch.png rename to borb/pdf/canvas/layout/emoji/resources/pouch.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/poultry_leg.png b/borb/pdf/canvas/layout/emoji/resources/poultry_leg.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/poultry_leg.png rename to borb/pdf/canvas/layout/emoji/resources/poultry_leg.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pound.png b/borb/pdf/canvas/layout/emoji/resources/pound.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pound.png rename to borb/pdf/canvas/layout/emoji/resources/pound.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pouting_cat.png b/borb/pdf/canvas/layout/emoji/resources/pouting_cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pouting_cat.png rename to borb/pdf/canvas/layout/emoji/resources/pouting_cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pray.png b/borb/pdf/canvas/layout/emoji/resources/pray.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pray.png rename to borb/pdf/canvas/layout/emoji/resources/pray.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/princess.png b/borb/pdf/canvas/layout/emoji/resources/princess.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/princess.png rename to borb/pdf/canvas/layout/emoji/resources/princess.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/punch.png b/borb/pdf/canvas/layout/emoji/resources/punch.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/punch.png rename to borb/pdf/canvas/layout/emoji/resources/punch.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/purple_heart.png b/borb/pdf/canvas/layout/emoji/resources/purple_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/purple_heart.png rename to borb/pdf/canvas/layout/emoji/resources/purple_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/purse.png b/borb/pdf/canvas/layout/emoji/resources/purse.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/purse.png rename to borb/pdf/canvas/layout/emoji/resources/purse.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/pushpin.png b/borb/pdf/canvas/layout/emoji/resources/pushpin.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/pushpin.png rename to borb/pdf/canvas/layout/emoji/resources/pushpin.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/put_litter_in_its_place.png b/borb/pdf/canvas/layout/emoji/resources/put_litter_in_its_place.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/put_litter_in_its_place.png rename to borb/pdf/canvas/layout/emoji/resources/put_litter_in_its_place.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/question.png b/borb/pdf/canvas/layout/emoji/resources/question.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/question.png rename to borb/pdf/canvas/layout/emoji/resources/question.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rabbit.png b/borb/pdf/canvas/layout/emoji/resources/rabbit.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rabbit.png rename to borb/pdf/canvas/layout/emoji/resources/rabbit.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rabbit_2.png b/borb/pdf/canvas/layout/emoji/resources/rabbit_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rabbit_2.png rename to borb/pdf/canvas/layout/emoji/resources/rabbit_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/racehorse.png b/borb/pdf/canvas/layout/emoji/resources/racehorse.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/racehorse.png rename to borb/pdf/canvas/layout/emoji/resources/racehorse.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/radio.png b/borb/pdf/canvas/layout/emoji/resources/radio.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/radio.png rename to borb/pdf/canvas/layout/emoji/resources/radio.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/radio_button.png b/borb/pdf/canvas/layout/emoji/resources/radio_button.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/radio_button.png rename to borb/pdf/canvas/layout/emoji/resources/radio_button.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rage.png b/borb/pdf/canvas/layout/emoji/resources/rage.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rage.png rename to borb/pdf/canvas/layout/emoji/resources/rage.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rage_1.png b/borb/pdf/canvas/layout/emoji/resources/rage_1.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rage_1.png rename to borb/pdf/canvas/layout/emoji/resources/rage_1.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rage_2.png b/borb/pdf/canvas/layout/emoji/resources/rage_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rage_2.png rename to borb/pdf/canvas/layout/emoji/resources/rage_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rage_3.png b/borb/pdf/canvas/layout/emoji/resources/rage_3.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rage_3.png rename to borb/pdf/canvas/layout/emoji/resources/rage_3.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rage_4.png b/borb/pdf/canvas/layout/emoji/resources/rage_4.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rage_4.png rename to borb/pdf/canvas/layout/emoji/resources/rage_4.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/railway_car.png b/borb/pdf/canvas/layout/emoji/resources/railway_car.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/railway_car.png rename to borb/pdf/canvas/layout/emoji/resources/railway_car.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rainbow.png b/borb/pdf/canvas/layout/emoji/resources/rainbow.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rainbow.png rename to borb/pdf/canvas/layout/emoji/resources/rainbow.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/raised_hand.png b/borb/pdf/canvas/layout/emoji/resources/raised_hand.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/raised_hand.png rename to borb/pdf/canvas/layout/emoji/resources/raised_hand.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/raised_hands.png b/borb/pdf/canvas/layout/emoji/resources/raised_hands.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/raised_hands.png rename to borb/pdf/canvas/layout/emoji/resources/raised_hands.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/raising_hand.png b/borb/pdf/canvas/layout/emoji/resources/raising_hand.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/raising_hand.png rename to borb/pdf/canvas/layout/emoji/resources/raising_hand.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ram.png b/borb/pdf/canvas/layout/emoji/resources/ram.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ram.png rename to borb/pdf/canvas/layout/emoji/resources/ram.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ramen.png b/borb/pdf/canvas/layout/emoji/resources/ramen.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ramen.png rename to borb/pdf/canvas/layout/emoji/resources/ramen.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rat.png b/borb/pdf/canvas/layout/emoji/resources/rat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rat.png rename to borb/pdf/canvas/layout/emoji/resources/rat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/recycle.png b/borb/pdf/canvas/layout/emoji/resources/recycle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/recycle.png rename to borb/pdf/canvas/layout/emoji/resources/recycle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/red_car.png b/borb/pdf/canvas/layout/emoji/resources/red_car.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/red_car.png rename to borb/pdf/canvas/layout/emoji/resources/red_car.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/red_circle.png b/borb/pdf/canvas/layout/emoji/resources/red_circle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/red_circle.png rename to borb/pdf/canvas/layout/emoji/resources/red_circle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/registered.png b/borb/pdf/canvas/layout/emoji/resources/registered.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/registered.png rename to borb/pdf/canvas/layout/emoji/resources/registered.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/relaxed.png b/borb/pdf/canvas/layout/emoji/resources/relaxed.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/relaxed.png rename to borb/pdf/canvas/layout/emoji/resources/relaxed.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/relieved.png b/borb/pdf/canvas/layout/emoji/resources/relieved.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/relieved.png rename to borb/pdf/canvas/layout/emoji/resources/relieved.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/repeat.png b/borb/pdf/canvas/layout/emoji/resources/repeat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/repeat.png rename to borb/pdf/canvas/layout/emoji/resources/repeat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/repeat_once.png b/borb/pdf/canvas/layout/emoji/resources/repeat_once.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/repeat_once.png rename to borb/pdf/canvas/layout/emoji/resources/repeat_once.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/restroom.png b/borb/pdf/canvas/layout/emoji/resources/restroom.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/restroom.png rename to borb/pdf/canvas/layout/emoji/resources/restroom.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/revolving_hearts.png b/borb/pdf/canvas/layout/emoji/resources/revolving_hearts.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/revolving_hearts.png rename to borb/pdf/canvas/layout/emoji/resources/revolving_hearts.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rewind.png b/borb/pdf/canvas/layout/emoji/resources/rewind.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rewind.png rename to borb/pdf/canvas/layout/emoji/resources/rewind.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ribbon.png b/borb/pdf/canvas/layout/emoji/resources/ribbon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ribbon.png rename to borb/pdf/canvas/layout/emoji/resources/ribbon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rice.png b/borb/pdf/canvas/layout/emoji/resources/rice.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rice.png rename to borb/pdf/canvas/layout/emoji/resources/rice.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rice_ball.png b/borb/pdf/canvas/layout/emoji/resources/rice_ball.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rice_ball.png rename to borb/pdf/canvas/layout/emoji/resources/rice_ball.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rice_cracker.png b/borb/pdf/canvas/layout/emoji/resources/rice_cracker.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rice_cracker.png rename to borb/pdf/canvas/layout/emoji/resources/rice_cracker.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rice_scene.png b/borb/pdf/canvas/layout/emoji/resources/rice_scene.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rice_scene.png rename to borb/pdf/canvas/layout/emoji/resources/rice_scene.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ring.png b/borb/pdf/canvas/layout/emoji/resources/ring.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ring.png rename to borb/pdf/canvas/layout/emoji/resources/ring.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rocket.png b/borb/pdf/canvas/layout/emoji/resources/rocket.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rocket.png rename to borb/pdf/canvas/layout/emoji/resources/rocket.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/roller_coaster.png b/borb/pdf/canvas/layout/emoji/resources/roller_coaster.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/roller_coaster.png rename to borb/pdf/canvas/layout/emoji/resources/roller_coaster.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rooster.png b/borb/pdf/canvas/layout/emoji/resources/rooster.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rooster.png rename to borb/pdf/canvas/layout/emoji/resources/rooster.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rose.png b/borb/pdf/canvas/layout/emoji/resources/rose.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rose.png rename to borb/pdf/canvas/layout/emoji/resources/rose.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rotating_light.png b/borb/pdf/canvas/layout/emoji/resources/rotating_light.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rotating_light.png rename to borb/pdf/canvas/layout/emoji/resources/rotating_light.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/round_pushpin.png b/borb/pdf/canvas/layout/emoji/resources/round_pushpin.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/round_pushpin.png rename to borb/pdf/canvas/layout/emoji/resources/round_pushpin.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rowboat.png b/borb/pdf/canvas/layout/emoji/resources/rowboat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rowboat.png rename to borb/pdf/canvas/layout/emoji/resources/rowboat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ru.png b/borb/pdf/canvas/layout/emoji/resources/ru.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ru.png rename to borb/pdf/canvas/layout/emoji/resources/ru.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/rugby_football.png b/borb/pdf/canvas/layout/emoji/resources/rugby_football.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/rugby_football.png rename to borb/pdf/canvas/layout/emoji/resources/rugby_football.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/runner.png b/borb/pdf/canvas/layout/emoji/resources/runner.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/runner.png rename to borb/pdf/canvas/layout/emoji/resources/runner.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/running.png b/borb/pdf/canvas/layout/emoji/resources/running.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/running.png rename to borb/pdf/canvas/layout/emoji/resources/running.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/running_shirt_with_sash.png b/borb/pdf/canvas/layout/emoji/resources/running_shirt_with_sash.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/running_shirt_with_sash.png rename to borb/pdf/canvas/layout/emoji/resources/running_shirt_with_sash.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sagittarius.png b/borb/pdf/canvas/layout/emoji/resources/sagittarius.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sagittarius.png rename to borb/pdf/canvas/layout/emoji/resources/sagittarius.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sailboat.png b/borb/pdf/canvas/layout/emoji/resources/sailboat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sailboat.png rename to borb/pdf/canvas/layout/emoji/resources/sailboat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sake.png b/borb/pdf/canvas/layout/emoji/resources/sake.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sake.png rename to borb/pdf/canvas/layout/emoji/resources/sake.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sandal.png b/borb/pdf/canvas/layout/emoji/resources/sandal.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sandal.png rename to borb/pdf/canvas/layout/emoji/resources/sandal.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/santa.png b/borb/pdf/canvas/layout/emoji/resources/santa.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/santa.png rename to borb/pdf/canvas/layout/emoji/resources/santa.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/satelite.png b/borb/pdf/canvas/layout/emoji/resources/satelite.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/satelite.png rename to borb/pdf/canvas/layout/emoji/resources/satelite.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/satisfied.png b/borb/pdf/canvas/layout/emoji/resources/satisfied.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/satisfied.png rename to borb/pdf/canvas/layout/emoji/resources/satisfied.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/saxophone.png b/borb/pdf/canvas/layout/emoji/resources/saxophone.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/saxophone.png rename to borb/pdf/canvas/layout/emoji/resources/saxophone.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/school.png b/borb/pdf/canvas/layout/emoji/resources/school.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/school.png rename to borb/pdf/canvas/layout/emoji/resources/school.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/school_satchel.png b/borb/pdf/canvas/layout/emoji/resources/school_satchel.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/school_satchel.png rename to borb/pdf/canvas/layout/emoji/resources/school_satchel.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/scissors.png b/borb/pdf/canvas/layout/emoji/resources/scissors.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/scissors.png rename to borb/pdf/canvas/layout/emoji/resources/scissors.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/scorpius.png b/borb/pdf/canvas/layout/emoji/resources/scorpius.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/scorpius.png rename to borb/pdf/canvas/layout/emoji/resources/scorpius.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/scream.png b/borb/pdf/canvas/layout/emoji/resources/scream.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/scream.png rename to borb/pdf/canvas/layout/emoji/resources/scream.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/scream_cat.png b/borb/pdf/canvas/layout/emoji/resources/scream_cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/scream_cat.png rename to borb/pdf/canvas/layout/emoji/resources/scream_cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/scroll.png b/borb/pdf/canvas/layout/emoji/resources/scroll.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/scroll.png rename to borb/pdf/canvas/layout/emoji/resources/scroll.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/seat.png b/borb/pdf/canvas/layout/emoji/resources/seat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/seat.png rename to borb/pdf/canvas/layout/emoji/resources/seat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/see_no_evil.png b/borb/pdf/canvas/layout/emoji/resources/see_no_evil.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/see_no_evil.png rename to borb/pdf/canvas/layout/emoji/resources/see_no_evil.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/seedling.png b/borb/pdf/canvas/layout/emoji/resources/seedling.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/seedling.png rename to borb/pdf/canvas/layout/emoji/resources/seedling.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/seven.png b/borb/pdf/canvas/layout/emoji/resources/seven.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/seven.png rename to borb/pdf/canvas/layout/emoji/resources/seven.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/shaved_ice.png b/borb/pdf/canvas/layout/emoji/resources/shaved_ice.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/shaved_ice.png rename to borb/pdf/canvas/layout/emoji/resources/shaved_ice.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sheep.png b/borb/pdf/canvas/layout/emoji/resources/sheep.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sheep.png rename to borb/pdf/canvas/layout/emoji/resources/sheep.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/shell.png b/borb/pdf/canvas/layout/emoji/resources/shell.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/shell.png rename to borb/pdf/canvas/layout/emoji/resources/shell.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ship.png b/borb/pdf/canvas/layout/emoji/resources/ship.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ship.png rename to borb/pdf/canvas/layout/emoji/resources/ship.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/shipit.png b/borb/pdf/canvas/layout/emoji/resources/shipit.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/shipit.png rename to borb/pdf/canvas/layout/emoji/resources/shipit.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/shirt.png b/borb/pdf/canvas/layout/emoji/resources/shirt.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/shirt.png rename to borb/pdf/canvas/layout/emoji/resources/shirt.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/shit.png b/borb/pdf/canvas/layout/emoji/resources/shit.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/shit.png rename to borb/pdf/canvas/layout/emoji/resources/shit.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/shoe.png b/borb/pdf/canvas/layout/emoji/resources/shoe.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/shoe.png rename to borb/pdf/canvas/layout/emoji/resources/shoe.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/shower.png b/borb/pdf/canvas/layout/emoji/resources/shower.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/shower.png rename to borb/pdf/canvas/layout/emoji/resources/shower.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/signal_strength.png b/borb/pdf/canvas/layout/emoji/resources/signal_strength.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/signal_strength.png rename to borb/pdf/canvas/layout/emoji/resources/signal_strength.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/six.png b/borb/pdf/canvas/layout/emoji/resources/six.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/six.png rename to borb/pdf/canvas/layout/emoji/resources/six.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/six_pointed_star.png b/borb/pdf/canvas/layout/emoji/resources/six_pointed_star.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/six_pointed_star.png rename to borb/pdf/canvas/layout/emoji/resources/six_pointed_star.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ski.png b/borb/pdf/canvas/layout/emoji/resources/ski.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ski.png rename to borb/pdf/canvas/layout/emoji/resources/ski.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/skull.png b/borb/pdf/canvas/layout/emoji/resources/skull.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/skull.png rename to borb/pdf/canvas/layout/emoji/resources/skull.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sleeping.png b/borb/pdf/canvas/layout/emoji/resources/sleeping.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sleeping.png rename to borb/pdf/canvas/layout/emoji/resources/sleeping.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sleepy.png b/borb/pdf/canvas/layout/emoji/resources/sleepy.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sleepy.png rename to borb/pdf/canvas/layout/emoji/resources/sleepy.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/slot_machine.png b/borb/pdf/canvas/layout/emoji/resources/slot_machine.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/slot_machine.png rename to borb/pdf/canvas/layout/emoji/resources/slot_machine.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/small_blue_diamond.png b/borb/pdf/canvas/layout/emoji/resources/small_blue_diamond.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/small_blue_diamond.png rename to borb/pdf/canvas/layout/emoji/resources/small_blue_diamond.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/small_orange_diamond.png b/borb/pdf/canvas/layout/emoji/resources/small_orange_diamond.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/small_orange_diamond.png rename to borb/pdf/canvas/layout/emoji/resources/small_orange_diamond.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/small_red_triangle_down.png b/borb/pdf/canvas/layout/emoji/resources/small_red_triangle_down.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/small_red_triangle_down.png rename to borb/pdf/canvas/layout/emoji/resources/small_red_triangle_down.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/small_red_triangle_up.png b/borb/pdf/canvas/layout/emoji/resources/small_red_triangle_up.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/small_red_triangle_up.png rename to borb/pdf/canvas/layout/emoji/resources/small_red_triangle_up.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/smile.png b/borb/pdf/canvas/layout/emoji/resources/smile.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/smile.png rename to borb/pdf/canvas/layout/emoji/resources/smile.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/smile_cat.png b/borb/pdf/canvas/layout/emoji/resources/smile_cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/smile_cat.png rename to borb/pdf/canvas/layout/emoji/resources/smile_cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/smiley.png b/borb/pdf/canvas/layout/emoji/resources/smiley.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/smiley.png rename to borb/pdf/canvas/layout/emoji/resources/smiley.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/smiley_cat.png b/borb/pdf/canvas/layout/emoji/resources/smiley_cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/smiley_cat.png rename to borb/pdf/canvas/layout/emoji/resources/smiley_cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/smiling_imp.png b/borb/pdf/canvas/layout/emoji/resources/smiling_imp.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/smiling_imp.png rename to borb/pdf/canvas/layout/emoji/resources/smiling_imp.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/smirk.png b/borb/pdf/canvas/layout/emoji/resources/smirk.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/smirk.png rename to borb/pdf/canvas/layout/emoji/resources/smirk.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/smirk_cat.png b/borb/pdf/canvas/layout/emoji/resources/smirk_cat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/smirk_cat.png rename to borb/pdf/canvas/layout/emoji/resources/smirk_cat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/smoking.png b/borb/pdf/canvas/layout/emoji/resources/smoking.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/smoking.png rename to borb/pdf/canvas/layout/emoji/resources/smoking.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/snail.png b/borb/pdf/canvas/layout/emoji/resources/snail.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/snail.png rename to borb/pdf/canvas/layout/emoji/resources/snail.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/snake.png b/borb/pdf/canvas/layout/emoji/resources/snake.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/snake.png rename to borb/pdf/canvas/layout/emoji/resources/snake.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/snowboarder.png b/borb/pdf/canvas/layout/emoji/resources/snowboarder.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/snowboarder.png rename to borb/pdf/canvas/layout/emoji/resources/snowboarder.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/snowflake.png b/borb/pdf/canvas/layout/emoji/resources/snowflake.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/snowflake.png rename to borb/pdf/canvas/layout/emoji/resources/snowflake.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/snowman.png b/borb/pdf/canvas/layout/emoji/resources/snowman.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/snowman.png rename to borb/pdf/canvas/layout/emoji/resources/snowman.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sob.png b/borb/pdf/canvas/layout/emoji/resources/sob.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sob.png rename to borb/pdf/canvas/layout/emoji/resources/sob.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/soccer.png b/borb/pdf/canvas/layout/emoji/resources/soccer.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/soccer.png rename to borb/pdf/canvas/layout/emoji/resources/soccer.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/soon.png b/borb/pdf/canvas/layout/emoji/resources/soon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/soon.png rename to borb/pdf/canvas/layout/emoji/resources/soon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sos.png b/borb/pdf/canvas/layout/emoji/resources/sos.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sos.png rename to borb/pdf/canvas/layout/emoji/resources/sos.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sound.png b/borb/pdf/canvas/layout/emoji/resources/sound.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sound.png rename to borb/pdf/canvas/layout/emoji/resources/sound.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/space_invader.png b/borb/pdf/canvas/layout/emoji/resources/space_invader.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/space_invader.png rename to borb/pdf/canvas/layout/emoji/resources/space_invader.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/spades.png b/borb/pdf/canvas/layout/emoji/resources/spades.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/spades.png rename to borb/pdf/canvas/layout/emoji/resources/spades.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/spaghetti.png b/borb/pdf/canvas/layout/emoji/resources/spaghetti.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/spaghetti.png rename to borb/pdf/canvas/layout/emoji/resources/spaghetti.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sparkler.png b/borb/pdf/canvas/layout/emoji/resources/sparkler.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sparkler.png rename to borb/pdf/canvas/layout/emoji/resources/sparkler.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sparkles.png b/borb/pdf/canvas/layout/emoji/resources/sparkles.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sparkles.png rename to borb/pdf/canvas/layout/emoji/resources/sparkles.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sparkling_heart.png b/borb/pdf/canvas/layout/emoji/resources/sparkling_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sparkling_heart.png rename to borb/pdf/canvas/layout/emoji/resources/sparkling_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/speak_no_evil.png b/borb/pdf/canvas/layout/emoji/resources/speak_no_evil.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/speak_no_evil.png rename to borb/pdf/canvas/layout/emoji/resources/speak_no_evil.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/speaker.png b/borb/pdf/canvas/layout/emoji/resources/speaker.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/speaker.png rename to borb/pdf/canvas/layout/emoji/resources/speaker.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/speech_balloon.png b/borb/pdf/canvas/layout/emoji/resources/speech_balloon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/speech_balloon.png rename to borb/pdf/canvas/layout/emoji/resources/speech_balloon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/speedboat.png b/borb/pdf/canvas/layout/emoji/resources/speedboat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/speedboat.png rename to borb/pdf/canvas/layout/emoji/resources/speedboat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/star.png b/borb/pdf/canvas/layout/emoji/resources/star.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/star.png rename to borb/pdf/canvas/layout/emoji/resources/star.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/star_2.png b/borb/pdf/canvas/layout/emoji/resources/star_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/star_2.png rename to borb/pdf/canvas/layout/emoji/resources/star_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/stars.png b/borb/pdf/canvas/layout/emoji/resources/stars.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/stars.png rename to borb/pdf/canvas/layout/emoji/resources/stars.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/station.png b/borb/pdf/canvas/layout/emoji/resources/station.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/station.png rename to borb/pdf/canvas/layout/emoji/resources/station.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/statue_of_liberty.png b/borb/pdf/canvas/layout/emoji/resources/statue_of_liberty.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/statue_of_liberty.png rename to borb/pdf/canvas/layout/emoji/resources/statue_of_liberty.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/steam_locomotive.png b/borb/pdf/canvas/layout/emoji/resources/steam_locomotive.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/steam_locomotive.png rename to borb/pdf/canvas/layout/emoji/resources/steam_locomotive.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/stew.png b/borb/pdf/canvas/layout/emoji/resources/stew.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/stew.png rename to borb/pdf/canvas/layout/emoji/resources/stew.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/straight_ruler.png b/borb/pdf/canvas/layout/emoji/resources/straight_ruler.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/straight_ruler.png rename to borb/pdf/canvas/layout/emoji/resources/straight_ruler.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/strawberry.png b/borb/pdf/canvas/layout/emoji/resources/strawberry.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/strawberry.png rename to borb/pdf/canvas/layout/emoji/resources/strawberry.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/stuck_out_tongue.png b/borb/pdf/canvas/layout/emoji/resources/stuck_out_tongue.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/stuck_out_tongue.png rename to borb/pdf/canvas/layout/emoji/resources/stuck_out_tongue.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/stuck_out_tongue_closed_eyes.png b/borb/pdf/canvas/layout/emoji/resources/stuck_out_tongue_closed_eyes.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/stuck_out_tongue_closed_eyes.png rename to borb/pdf/canvas/layout/emoji/resources/stuck_out_tongue_closed_eyes.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/stuck_out_tongue_winking_eye.png b/borb/pdf/canvas/layout/emoji/resources/stuck_out_tongue_winking_eye.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/stuck_out_tongue_winking_eye.png rename to borb/pdf/canvas/layout/emoji/resources/stuck_out_tongue_winking_eye.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sun_with_face.png b/borb/pdf/canvas/layout/emoji/resources/sun_with_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sun_with_face.png rename to borb/pdf/canvas/layout/emoji/resources/sun_with_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sunflower.png b/borb/pdf/canvas/layout/emoji/resources/sunflower.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sunflower.png rename to borb/pdf/canvas/layout/emoji/resources/sunflower.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sunglasses.png b/borb/pdf/canvas/layout/emoji/resources/sunglasses.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sunglasses.png rename to borb/pdf/canvas/layout/emoji/resources/sunglasses.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sunny.png b/borb/pdf/canvas/layout/emoji/resources/sunny.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sunny.png rename to borb/pdf/canvas/layout/emoji/resources/sunny.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sunrise.png b/borb/pdf/canvas/layout/emoji/resources/sunrise.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sunrise.png rename to borb/pdf/canvas/layout/emoji/resources/sunrise.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sunrise_over_mountains.png b/borb/pdf/canvas/layout/emoji/resources/sunrise_over_mountains.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sunrise_over_mountains.png rename to borb/pdf/canvas/layout/emoji/resources/sunrise_over_mountains.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/surfer.png b/borb/pdf/canvas/layout/emoji/resources/surfer.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/surfer.png rename to borb/pdf/canvas/layout/emoji/resources/surfer.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sushi.png b/borb/pdf/canvas/layout/emoji/resources/sushi.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sushi.png rename to borb/pdf/canvas/layout/emoji/resources/sushi.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/suspect.png b/borb/pdf/canvas/layout/emoji/resources/suspect.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/suspect.png rename to borb/pdf/canvas/layout/emoji/resources/suspect.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/suspension_railway.png b/borb/pdf/canvas/layout/emoji/resources/suspension_railway.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/suspension_railway.png rename to borb/pdf/canvas/layout/emoji/resources/suspension_railway.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sweat.png b/borb/pdf/canvas/layout/emoji/resources/sweat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sweat.png rename to borb/pdf/canvas/layout/emoji/resources/sweat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sweat_drops.png b/borb/pdf/canvas/layout/emoji/resources/sweat_drops.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sweat_drops.png rename to borb/pdf/canvas/layout/emoji/resources/sweat_drops.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sweat_smile.png b/borb/pdf/canvas/layout/emoji/resources/sweat_smile.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sweat_smile.png rename to borb/pdf/canvas/layout/emoji/resources/sweat_smile.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/sweet_potato.png b/borb/pdf/canvas/layout/emoji/resources/sweet_potato.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/sweet_potato.png rename to borb/pdf/canvas/layout/emoji/resources/sweet_potato.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/swimmer.png b/borb/pdf/canvas/layout/emoji/resources/swimmer.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/swimmer.png rename to borb/pdf/canvas/layout/emoji/resources/swimmer.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/symbols.png b/borb/pdf/canvas/layout/emoji/resources/symbols.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/symbols.png rename to borb/pdf/canvas/layout/emoji/resources/symbols.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/syringe.png b/borb/pdf/canvas/layout/emoji/resources/syringe.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/syringe.png rename to borb/pdf/canvas/layout/emoji/resources/syringe.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tada.png b/borb/pdf/canvas/layout/emoji/resources/tada.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tada.png rename to borb/pdf/canvas/layout/emoji/resources/tada.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tanabata_tree.png b/borb/pdf/canvas/layout/emoji/resources/tanabata_tree.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tanabata_tree.png rename to borb/pdf/canvas/layout/emoji/resources/tanabata_tree.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tangerine.png b/borb/pdf/canvas/layout/emoji/resources/tangerine.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tangerine.png rename to borb/pdf/canvas/layout/emoji/resources/tangerine.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/taurus.png b/borb/pdf/canvas/layout/emoji/resources/taurus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/taurus.png rename to borb/pdf/canvas/layout/emoji/resources/taurus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/taxi.png b/borb/pdf/canvas/layout/emoji/resources/taxi.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/taxi.png rename to borb/pdf/canvas/layout/emoji/resources/taxi.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tea.png b/borb/pdf/canvas/layout/emoji/resources/tea.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tea.png rename to borb/pdf/canvas/layout/emoji/resources/tea.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/telephone.png b/borb/pdf/canvas/layout/emoji/resources/telephone.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/telephone.png rename to borb/pdf/canvas/layout/emoji/resources/telephone.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/telephone_receiver.png b/borb/pdf/canvas/layout/emoji/resources/telephone_receiver.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/telephone_receiver.png rename to borb/pdf/canvas/layout/emoji/resources/telephone_receiver.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/telescope.png b/borb/pdf/canvas/layout/emoji/resources/telescope.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/telescope.png rename to borb/pdf/canvas/layout/emoji/resources/telescope.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tennis.png b/borb/pdf/canvas/layout/emoji/resources/tennis.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tennis.png rename to borb/pdf/canvas/layout/emoji/resources/tennis.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tent.png b/borb/pdf/canvas/layout/emoji/resources/tent.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tent.png rename to borb/pdf/canvas/layout/emoji/resources/tent.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/thought_balloon.png b/borb/pdf/canvas/layout/emoji/resources/thought_balloon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/thought_balloon.png rename to borb/pdf/canvas/layout/emoji/resources/thought_balloon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/three.png b/borb/pdf/canvas/layout/emoji/resources/three.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/three.png rename to borb/pdf/canvas/layout/emoji/resources/three.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/thumbsdown.png b/borb/pdf/canvas/layout/emoji/resources/thumbsdown.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/thumbsdown.png rename to borb/pdf/canvas/layout/emoji/resources/thumbsdown.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/thumbsup.png b/borb/pdf/canvas/layout/emoji/resources/thumbsup.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/thumbsup.png rename to borb/pdf/canvas/layout/emoji/resources/thumbsup.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/ticket.png b/borb/pdf/canvas/layout/emoji/resources/ticket.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/ticket.png rename to borb/pdf/canvas/layout/emoji/resources/ticket.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tiger.png b/borb/pdf/canvas/layout/emoji/resources/tiger.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tiger.png rename to borb/pdf/canvas/layout/emoji/resources/tiger.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tiger_2.png b/borb/pdf/canvas/layout/emoji/resources/tiger_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tiger_2.png rename to borb/pdf/canvas/layout/emoji/resources/tiger_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tired_face.png b/borb/pdf/canvas/layout/emoji/resources/tired_face.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tired_face.png rename to borb/pdf/canvas/layout/emoji/resources/tired_face.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tm.png b/borb/pdf/canvas/layout/emoji/resources/tm.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tm.png rename to borb/pdf/canvas/layout/emoji/resources/tm.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/toilet.png b/borb/pdf/canvas/layout/emoji/resources/toilet.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/toilet.png rename to borb/pdf/canvas/layout/emoji/resources/toilet.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tokyo_tower.png b/borb/pdf/canvas/layout/emoji/resources/tokyo_tower.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tokyo_tower.png rename to borb/pdf/canvas/layout/emoji/resources/tokyo_tower.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tomato.png b/borb/pdf/canvas/layout/emoji/resources/tomato.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tomato.png rename to borb/pdf/canvas/layout/emoji/resources/tomato.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tongue.png b/borb/pdf/canvas/layout/emoji/resources/tongue.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tongue.png rename to borb/pdf/canvas/layout/emoji/resources/tongue.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/top.png b/borb/pdf/canvas/layout/emoji/resources/top.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/top.png rename to borb/pdf/canvas/layout/emoji/resources/top.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tophat.png b/borb/pdf/canvas/layout/emoji/resources/tophat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tophat.png rename to borb/pdf/canvas/layout/emoji/resources/tophat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tractor.png b/borb/pdf/canvas/layout/emoji/resources/tractor.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tractor.png rename to borb/pdf/canvas/layout/emoji/resources/tractor.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/traffic_light.png b/borb/pdf/canvas/layout/emoji/resources/traffic_light.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/traffic_light.png rename to borb/pdf/canvas/layout/emoji/resources/traffic_light.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/train.png b/borb/pdf/canvas/layout/emoji/resources/train.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/train.png rename to borb/pdf/canvas/layout/emoji/resources/train.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/train_2.png b/borb/pdf/canvas/layout/emoji/resources/train_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/train_2.png rename to borb/pdf/canvas/layout/emoji/resources/train_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tram.png b/borb/pdf/canvas/layout/emoji/resources/tram.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tram.png rename to borb/pdf/canvas/layout/emoji/resources/tram.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/triangular_flag_on_post.png b/borb/pdf/canvas/layout/emoji/resources/triangular_flag_on_post.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/triangular_flag_on_post.png rename to borb/pdf/canvas/layout/emoji/resources/triangular_flag_on_post.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/triangular_ruler.png b/borb/pdf/canvas/layout/emoji/resources/triangular_ruler.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/triangular_ruler.png rename to borb/pdf/canvas/layout/emoji/resources/triangular_ruler.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/trident.png b/borb/pdf/canvas/layout/emoji/resources/trident.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/trident.png rename to borb/pdf/canvas/layout/emoji/resources/trident.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/triumph.png b/borb/pdf/canvas/layout/emoji/resources/triumph.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/triumph.png rename to borb/pdf/canvas/layout/emoji/resources/triumph.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/trolleybus.png b/borb/pdf/canvas/layout/emoji/resources/trolleybus.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/trolleybus.png rename to borb/pdf/canvas/layout/emoji/resources/trolleybus.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/trollface.png b/borb/pdf/canvas/layout/emoji/resources/trollface.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/trollface.png rename to borb/pdf/canvas/layout/emoji/resources/trollface.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/trophy.png b/borb/pdf/canvas/layout/emoji/resources/trophy.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/trophy.png rename to borb/pdf/canvas/layout/emoji/resources/trophy.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tropical_drink.png b/borb/pdf/canvas/layout/emoji/resources/tropical_drink.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tropical_drink.png rename to borb/pdf/canvas/layout/emoji/resources/tropical_drink.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tropical_fish.png b/borb/pdf/canvas/layout/emoji/resources/tropical_fish.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tropical_fish.png rename to borb/pdf/canvas/layout/emoji/resources/tropical_fish.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/truck.png b/borb/pdf/canvas/layout/emoji/resources/truck.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/truck.png rename to borb/pdf/canvas/layout/emoji/resources/truck.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/trumpet.png b/borb/pdf/canvas/layout/emoji/resources/trumpet.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/trumpet.png rename to borb/pdf/canvas/layout/emoji/resources/trumpet.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tshirt.png b/borb/pdf/canvas/layout/emoji/resources/tshirt.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tshirt.png rename to borb/pdf/canvas/layout/emoji/resources/tshirt.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tulip.png b/borb/pdf/canvas/layout/emoji/resources/tulip.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tulip.png rename to borb/pdf/canvas/layout/emoji/resources/tulip.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/turtle.png b/borb/pdf/canvas/layout/emoji/resources/turtle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/turtle.png rename to borb/pdf/canvas/layout/emoji/resources/turtle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/tv.png b/borb/pdf/canvas/layout/emoji/resources/tv.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/tv.png rename to borb/pdf/canvas/layout/emoji/resources/tv.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/two.png b/borb/pdf/canvas/layout/emoji/resources/two.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/two.png rename to borb/pdf/canvas/layout/emoji/resources/two.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/two_hearts.png b/borb/pdf/canvas/layout/emoji/resources/two_hearts.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/two_hearts.png rename to borb/pdf/canvas/layout/emoji/resources/two_hearts.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/two_men_holding_hands.png b/borb/pdf/canvas/layout/emoji/resources/two_men_holding_hands.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/two_men_holding_hands.png rename to borb/pdf/canvas/layout/emoji/resources/two_men_holding_hands.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/two_women_holding_hands.png b/borb/pdf/canvas/layout/emoji/resources/two_women_holding_hands.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/two_women_holding_hands.png rename to borb/pdf/canvas/layout/emoji/resources/two_women_holding_hands.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/uk.png b/borb/pdf/canvas/layout/emoji/resources/uk.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/uk.png rename to borb/pdf/canvas/layout/emoji/resources/uk.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/umbrella.png b/borb/pdf/canvas/layout/emoji/resources/umbrella.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/umbrella.png rename to borb/pdf/canvas/layout/emoji/resources/umbrella.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/unamused.png b/borb/pdf/canvas/layout/emoji/resources/unamused.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/unamused.png rename to borb/pdf/canvas/layout/emoji/resources/unamused.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/underage.png b/borb/pdf/canvas/layout/emoji/resources/underage.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/underage.png rename to borb/pdf/canvas/layout/emoji/resources/underage.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/unlock.png b/borb/pdf/canvas/layout/emoji/resources/unlock.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/unlock.png rename to borb/pdf/canvas/layout/emoji/resources/unlock.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/up.png b/borb/pdf/canvas/layout/emoji/resources/up.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/up.png rename to borb/pdf/canvas/layout/emoji/resources/up.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/us.png b/borb/pdf/canvas/layout/emoji/resources/us.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/us.png rename to borb/pdf/canvas/layout/emoji/resources/us.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/v.png b/borb/pdf/canvas/layout/emoji/resources/v.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/v.png rename to borb/pdf/canvas/layout/emoji/resources/v.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/vertical_traffic_light.png b/borb/pdf/canvas/layout/emoji/resources/vertical_traffic_light.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/vertical_traffic_light.png rename to borb/pdf/canvas/layout/emoji/resources/vertical_traffic_light.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/vhs.png b/borb/pdf/canvas/layout/emoji/resources/vhs.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/vhs.png rename to borb/pdf/canvas/layout/emoji/resources/vhs.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/vibration_mode.png b/borb/pdf/canvas/layout/emoji/resources/vibration_mode.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/vibration_mode.png rename to borb/pdf/canvas/layout/emoji/resources/vibration_mode.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/video_camera.png b/borb/pdf/canvas/layout/emoji/resources/video_camera.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/video_camera.png rename to borb/pdf/canvas/layout/emoji/resources/video_camera.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/video_game.png b/borb/pdf/canvas/layout/emoji/resources/video_game.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/video_game.png rename to borb/pdf/canvas/layout/emoji/resources/video_game.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/violin.png b/borb/pdf/canvas/layout/emoji/resources/violin.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/violin.png rename to borb/pdf/canvas/layout/emoji/resources/violin.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/virgo.png b/borb/pdf/canvas/layout/emoji/resources/virgo.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/virgo.png rename to borb/pdf/canvas/layout/emoji/resources/virgo.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/volcano.png b/borb/pdf/canvas/layout/emoji/resources/volcano.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/volcano.png rename to borb/pdf/canvas/layout/emoji/resources/volcano.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/vs.png b/borb/pdf/canvas/layout/emoji/resources/vs.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/vs.png rename to borb/pdf/canvas/layout/emoji/resources/vs.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/walking.png b/borb/pdf/canvas/layout/emoji/resources/walking.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/walking.png rename to borb/pdf/canvas/layout/emoji/resources/walking.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/waning_cresent_moon.png b/borb/pdf/canvas/layout/emoji/resources/waning_cresent_moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/waning_cresent_moon.png rename to borb/pdf/canvas/layout/emoji/resources/waning_cresent_moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/waning_gibbous_moon.png b/borb/pdf/canvas/layout/emoji/resources/waning_gibbous_moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/waning_gibbous_moon.png rename to borb/pdf/canvas/layout/emoji/resources/waning_gibbous_moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/warning.png b/borb/pdf/canvas/layout/emoji/resources/warning.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/warning.png rename to borb/pdf/canvas/layout/emoji/resources/warning.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/watch.png b/borb/pdf/canvas/layout/emoji/resources/watch.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/watch.png rename to borb/pdf/canvas/layout/emoji/resources/watch.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/water_buffalo.png b/borb/pdf/canvas/layout/emoji/resources/water_buffalo.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/water_buffalo.png rename to borb/pdf/canvas/layout/emoji/resources/water_buffalo.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/watermelon.png b/borb/pdf/canvas/layout/emoji/resources/watermelon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/watermelon.png rename to borb/pdf/canvas/layout/emoji/resources/watermelon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wave.png b/borb/pdf/canvas/layout/emoji/resources/wave.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wave.png rename to borb/pdf/canvas/layout/emoji/resources/wave.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wavy_dash.png b/borb/pdf/canvas/layout/emoji/resources/wavy_dash.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wavy_dash.png rename to borb/pdf/canvas/layout/emoji/resources/wavy_dash.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/waxing_cresent_moon.png b/borb/pdf/canvas/layout/emoji/resources/waxing_cresent_moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/waxing_cresent_moon.png rename to borb/pdf/canvas/layout/emoji/resources/waxing_cresent_moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/waxing_gibbous_moon.png b/borb/pdf/canvas/layout/emoji/resources/waxing_gibbous_moon.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/waxing_gibbous_moon.png rename to borb/pdf/canvas/layout/emoji/resources/waxing_gibbous_moon.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wc.png b/borb/pdf/canvas/layout/emoji/resources/wc.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wc.png rename to borb/pdf/canvas/layout/emoji/resources/wc.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/weary.png b/borb/pdf/canvas/layout/emoji/resources/weary.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/weary.png rename to borb/pdf/canvas/layout/emoji/resources/weary.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wedding.png b/borb/pdf/canvas/layout/emoji/resources/wedding.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wedding.png rename to borb/pdf/canvas/layout/emoji/resources/wedding.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/whale.png b/borb/pdf/canvas/layout/emoji/resources/whale.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/whale.png rename to borb/pdf/canvas/layout/emoji/resources/whale.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/whale_2.png b/borb/pdf/canvas/layout/emoji/resources/whale_2.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/whale_2.png rename to borb/pdf/canvas/layout/emoji/resources/whale_2.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/white_circle.png b/borb/pdf/canvas/layout/emoji/resources/white_circle.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/white_circle.png rename to borb/pdf/canvas/layout/emoji/resources/white_circle.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/white_flower.png b/borb/pdf/canvas/layout/emoji/resources/white_flower.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/white_flower.png rename to borb/pdf/canvas/layout/emoji/resources/white_flower.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/white_square_button.png b/borb/pdf/canvas/layout/emoji/resources/white_square_button.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/white_square_button.png rename to borb/pdf/canvas/layout/emoji/resources/white_square_button.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wind_chime.png b/borb/pdf/canvas/layout/emoji/resources/wind_chime.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wind_chime.png rename to borb/pdf/canvas/layout/emoji/resources/wind_chime.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wine_glass.png b/borb/pdf/canvas/layout/emoji/resources/wine_glass.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wine_glass.png rename to borb/pdf/canvas/layout/emoji/resources/wine_glass.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wink.png b/borb/pdf/canvas/layout/emoji/resources/wink.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wink.png rename to borb/pdf/canvas/layout/emoji/resources/wink.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wolf.png b/borb/pdf/canvas/layout/emoji/resources/wolf.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wolf.png rename to borb/pdf/canvas/layout/emoji/resources/wolf.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/woman.png b/borb/pdf/canvas/layout/emoji/resources/woman.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/woman.png rename to borb/pdf/canvas/layout/emoji/resources/woman.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/womans_clothes.png b/borb/pdf/canvas/layout/emoji/resources/womans_clothes.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/womans_clothes.png rename to borb/pdf/canvas/layout/emoji/resources/womans_clothes.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/womans_hat.png b/borb/pdf/canvas/layout/emoji/resources/womans_hat.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/womans_hat.png rename to borb/pdf/canvas/layout/emoji/resources/womans_hat.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/womens.png b/borb/pdf/canvas/layout/emoji/resources/womens.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/womens.png rename to borb/pdf/canvas/layout/emoji/resources/womens.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/worried.png b/borb/pdf/canvas/layout/emoji/resources/worried.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/worried.png rename to borb/pdf/canvas/layout/emoji/resources/worried.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/wrench.png b/borb/pdf/canvas/layout/emoji/resources/wrench.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/wrench.png rename to borb/pdf/canvas/layout/emoji/resources/wrench.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/x.png b/borb/pdf/canvas/layout/emoji/resources/x.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/x.png rename to borb/pdf/canvas/layout/emoji/resources/x.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/yellow_heart.png b/borb/pdf/canvas/layout/emoji/resources/yellow_heart.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/yellow_heart.png rename to borb/pdf/canvas/layout/emoji/resources/yellow_heart.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/yen.png b/borb/pdf/canvas/layout/emoji/resources/yen.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/yen.png rename to borb/pdf/canvas/layout/emoji/resources/yen.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/yum.png b/borb/pdf/canvas/layout/emoji/resources/yum.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/yum.png rename to borb/pdf/canvas/layout/emoji/resources/yum.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/zap.png b/borb/pdf/canvas/layout/emoji/resources/zap.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/zap.png rename to borb/pdf/canvas/layout/emoji/resources/zap.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/zero.png b/borb/pdf/canvas/layout/emoji/resources/zero.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/zero.png rename to borb/pdf/canvas/layout/emoji/resources/zero.png diff --git a/ptext/pdf/canvas/layout/emoji/resources/zzz.png b/borb/pdf/canvas/layout/emoji/resources/zzz.png similarity index 100% rename from ptext/pdf/canvas/layout/emoji/resources/zzz.png rename to borb/pdf/canvas/layout/emoji/resources/zzz.png diff --git a/ptext/pdf/canvas/layout/free_space_finder.py b/borb/pdf/canvas/layout/free_space_finder.py similarity index 92% rename from ptext/pdf/canvas/layout/free_space_finder.py rename to borb/pdf/canvas/layout/free_space_finder.py index 25e71d4a7..06cf4e4c0 100644 --- a/ptext/pdf/canvas/layout/free_space_finder.py +++ b/borb/pdf/canvas/layout/free_space_finder.py @@ -9,13 +9,13 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.canvas import Canvas -from ptext.pdf.canvas.canvas_stream_processor import CanvasStreamProcessor -from ptext.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.event.image_render_event import ImageRenderEvent -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.page.page import Page +from borb.pdf.canvas.canvas import Canvas +from borb.pdf.canvas.canvas_stream_processor import CanvasStreamProcessor +from borb.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.event.image_render_event import ImageRenderEvent +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.page.page import Page class FreeSpaceFinder(EventListener): diff --git a/ptext/pdf/canvas/layout/horizontal_rule.py b/borb/pdf/canvas/layout/horizontal_rule.py similarity index 91% rename from ptext/pdf/canvas/layout/horizontal_rule.py rename to borb/pdf/canvas/layout/horizontal_rule.py index a529483d5..ed4a69fed 100644 --- a/ptext/pdf/canvas/layout/horizontal_rule.py +++ b/borb/pdf/canvas/layout/horizontal_rule.py @@ -8,10 +8,10 @@ import typing -from ptext.pdf.canvas.color.color import Color, RGBColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.text.paragraph import LayoutElement -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, RGBColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.text.paragraph import LayoutElement +from borb.pdf.page.page import Page class HorizontalRule(LayoutElement): diff --git a/borb/pdf/canvas/layout/hyphenation/__init__.py b/borb/pdf/canvas/layout/hyphenation/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/pdf/canvas/layout/hyphenation/hyphenation.py b/borb/pdf/canvas/layout/hyphenation/hyphenation.py new file mode 100644 index 000000000..4c2c9c0c4 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/hyphenation.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Syllabification or syllabication, also known as hyphenation, is the separation of a word into syllables, whether spoken, written or signed. +A hyphenation algorithm is a set of rules, especially one codified for implementation in a computer program, +that decides at which points a word can be broken over two lines with a hyphen. +For example, a hyphenation algorithm might decide that impeachment can be broken as impeach-ment or im-peachment but not impe-achment. +One of the reasons for the complexity of the rules of word-breaking is that different "dialects" of English tend to differ on hyphenation[citation needed]: +American English tends to work on sound, +but British English tends to look to the origins of the word and then to sound. +There are also a large number of exceptions, which further complicates matters. +""" +import json +import typing +from pathlib import Path + +from borb.datastructure.str_trie import Trie + + +class Hyphenation: + """ + Syllabification or syllabication, also known as hyphenation, is the separation of a word into syllables, whether spoken, written or signed. + A hyphenation algorithm is a set of rules, especially one codified for implementation in a computer program, + that decides at which points a word can be broken over two lines with a hyphen. + For example, a hyphenation algorithm might decide that impeachment can be broken as impeach-ment or im-peachment but not impe-achment. + One of the reasons for the complexity of the rules of word-breaking is that different "dialects" of English tend to differ on hyphenation[citation needed]: + American English tends to work on sound, + but British English tends to look to the origins of the word and then to sound. + There are also a large number of exceptions, which further complicates matters. + """ + + def __init__(self, iso_language_code: str): + self._patterns: Trie = Trie() + self._min_prefix_length: int = 128 + self._max_prefix_length: int = 0 + self._min_suffix_length: int = 128 + self._max_suffix_length: int = 0 + self._exceptions: typing.List[str] = [] + + # load data + resources_dir: Path = Path(__file__).parent / "resources" + hyphenation_pattern_file: Path = resources_dir / ("%s.json" % iso_language_code) + assert hyphenation_pattern_file.exists(), ( + "No hyphenation file for %s" % iso_language_code + ) + with open(hyphenation_pattern_file, "r") as json_file_handle: + data = json.loads(json_file_handle.read()) + + # load patterns + for p in data["patterns"]: + assert isinstance(p, str) + for i in range(0, len(p)): + if not p[i].isdigit(): + continue + prefix: str = "".join([c for c in p[0:i] if not c.isdigit()]) + suffix: str = "".join([c for c in p[i:] if not c.isdigit()]) + # keep track of prefix length + self._max_prefix_length = max(self._max_prefix_length, len(prefix)) + self._min_prefix_length = min(self._min_prefix_length, len(prefix)) + # keep track of suffix length + self._max_suffix_length = max(self._max_suffix_length, len(suffix)) + self._min_suffix_length = min(self._min_suffix_length, len(suffix)) + # insert into trie + digit: int = int(p[i]) + self._patterns[prefix + "0" + suffix] = digit + + # load exceptions + if "exceptions" in data: + for e in data["exceptions"]: + self._exceptions.append(e) + + def hyphenate(self, s: str, hyphenation_character: str = chr(173)) -> str: + """ + This function hyphenates the input word, inserting the hyphenation_character wherever the word *can* be split + in syllables. This function returns the word with hyphenation_character inserted. + """ + # don't spend effort on stupid input + assert len(hyphenation_character) == 1 + if len(s) <= 1: + return s + + # check exceptions + for e in self._exceptions: + e_raw_str: str = "".join([c for c in e if c.isalpha()]) + if e_raw_str == s: + return "".join([c if c.isalpha() else hyphenation_character for c in e]) + + # normal run of the algorithm + s2: str = "." + s + "." + hyphenation_info: typing.List[int] = [0 for _ in range(0, len(s2))] + for i in range(2, len(s2)): + for j in range(self._min_prefix_length, self._max_prefix_length + 1): + if i - j < 0: + continue + prefix: str = s2[(i - j) : i] + for k in range(self._min_suffix_length, self._max_suffix_length + 1): + if j == 0 and k == 0: + continue + if i + k > len(s): + continue + suffix: str = s2[i : (i + k)] + value: typing.Optional[int] = self._patterns[prefix + "0" + suffix] + if value: + hyphenation_info[i] = max(hyphenation_info[i], value) + s3: str = "" + for i in range(1, len(hyphenation_info) - 1): + if hyphenation_info[i] % 2 == 1: + s3 += hyphenation_character + s2[i] + else: + s3 += s2[i] + return s3 diff --git a/borb/pdf/canvas/layout/hyphenation/resources/af.json b/borb/pdf/canvas/layout/hyphenation/resources/af.json new file mode 100644 index 000000000..46fd27054 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/af.json @@ -0,0 +1,10533 @@ +{ + "patterns":[ + ".aan5s4", + ".aä7lawa", + ".a6bc-b", + ".a4b5la", + ".ab7salo", + ".a6b-ja", + ".ac7cra.", + ".a6farm", + ".af7arm.", + ".a6feet", + ".af7eet.", + ".a4f5en", + ".a6fets", + ".af7ets.", + ".a6foes", + ".af7oes.", + ".a4f5oo", + ".a4f5ra", + ".af6ro'", + ".a7fro's", + ".af6ro-", + ".a7fro-h", + ".a6fry.", + ".af3s", + ".ag6aam", + ".agte6r5", + ".a6guur", + ".a9ha.", + ".ah7lers", + ".a3kw", + ".a6leer", + ".al7eer.", + ".alf4", + ".al7fagr", + ".al5fr", + ".al6lda", + ".a4l3o", + ".al6oïe", + ".a7loïen", + ".al3p", + ".al5st", + ".al7thea", + ".al7twee", + ".al6zhe", + ".amp4s", + ".amps5w", + ".a6naër", + ".an7aëro", + ".an6cpl", + ".and4", + ".an5dr", + ".ang4", + ".an5gl", + ".angs5", + ".a4n5io", + ".an7thro", + ".a3pr", + ".ap7side", + ".a5rag", + ".ara6p.", + ".ar7thur", + ".ar6zbe", + ".as7jas.", + ".a6snog", + ".a6sof.", + ".a5sti", + ".a7straa", + ".a7s6tral", + ".at6hol", + ".a7thol.", + ".a5tsj", + ".atte4", + ".au7drey", + ".b6aanv", + ".ba6din", + ".ba4d5o", + ".ba7loi.", + ".ba7ragw", + ".ba7rins", + ".ba6sek", + ".ba7tho.", + ".be7deks", + ".be6kaf", + ".bek7af.", + ".be5la", + ".be7lol.", + ".be7skos", + ".be7thel", + ".be7thul", + ".bi7sho.", + ".bli4", + ".blus5", + ".bo7kerf", + ".bo7kies", + ".bo7kors", + ".bo7maat", + ".b4on", + ".bo7plaa", + ".bo5ro", + ".bo7sor.", + ".bo5sta", + ".bo7trit", + ".bo7tswa", + ".bo7uit.", + ".bout5j", + ".b4re", + ".bu6eno", + ".bu6lol", + ".bu7thel", + ".by6ldr", + ".by6lho", + ".by6lne", + ".by6lpi", + ".by7port", + ".bys4", + ".by6tal", + ".ca7thy.", + ".ca7yenn", + ".chlo7e.", + ".ci6rca", + ".ci7trus", + ".cos7ta.", + ".cy6pri", + ".d2", + ".da7gon.", + ".dag5s", + ".da6kat", + ".da6koo", + ".da7tage", + ".da6tji", + ".dat7jie", + ".da6wki", + ".de6k7laa", + ".de6klo", + ".de6kwe", + ".de5la", + ".de7roga", + ".de6sal", + ".de6sok", + ".de4sp", + ".diep5l", + ".di6jks", + ".di4si", + ".di7thak", + ".do4m5a", + ".do4m5o", + ".dor7ste.", + ".dr6oef", + ".dun5s", + ".du6pre", + ".dut5j", + ".dy7spie", + ".e6bcu.", + ".ed5wa", + ".ed7win.", + ".eer6sk", + ".ee4t", + ".e6fron", + ".ef7ron.", + ".eg7gofo", + ".e6indu", + ".ei5st", + ".ek4s5k", + ".ek7sopa", + ".ek7sord", + ".eks7tri", + ".eks7tro", + ".en7dres", + ".enk4", + ".en5kl", + ".e6noft", + ".en7ofta", + ".en4t5j", + ".en7topt", + ".ep7soms", + ".er4d5a", + ".er6dwo", + ".er6fle", + ".er6foo", + ".er6inv", + ".ern4", + ".er4t4", + ".er5te", + ".ert5j", + ".ert7se.", + ".erts5w", + ".e2s", + ".e9sau", + ".e4s3k", + ".e3so", + ".es3p", + ".es8p.", + ".es6pma", + ".es3t", + ".es6tco", + ".es6tni", + ".es5tr", + ".e7tage.", + ".et4sn", + ".eur5a", + ".eu7stac", + ".ex7odus", + ".e6zra.", + ".f2", + ".fo6chv", + ".fo6wle", + ".f4ri", + ".fy6tji", + ".g2", + ".ga7lage", + ".ga7lago", + ".ga6lap", + ".ga6loo", + ".g6arbo", + ".ga6sen", + ".ge7dart", + ".ge3g", + ".ge7geks", + ".ge7guil", + ".gekun5", + ".gekuns6", + ".ge5la", + ".ge7mopp", + ".ge7muit", + ".ge7nève", + ".ge7rogg", + ".ges4", + ".ge7sjab", + ".ge7sjar", + ".ge5sk", + ".ge5so", + ".ges7pe.", + ".ge7sper.", + ".ge7steg", + ".gif3", + ".gi7gagr", + ".gi6sen", + ".gly3", + ".gly5k", + ".g6lyna", + ".g4oo", + ".gou7da.", + ".gr6äbe", + ".g6ruba", + ".gui7do.", + ".hang5s", + ".he6blu", + ".he6gor", + ".he6gra", + ".h6eind", + ".hek5o", + ".he7rakl", + ".he6r5en", + ".he6wle", + ".hi8v.", + ".ho6fet", + ".ho6laa", + ".ho6loo", + ".hooi5", + ".ho7taze", + ".ho4t5o", + ".hy6gro", + ".ic7teru", + ".i4gl", + ".ile7us.", + ".i2n1", + ".i9n8a.", + ".in6ari", + ".i7narie", + ".ind4", + ".in7dwar", + ".ing4", + ".in5gr", + ".in5gw", + ".in6iti", + ".in5kl", + ".in6kly", + ".in5kn", + ".in5kw", + ".in6osi", + ".i7nosie", + ".in3s4", + ".in7snee", + ".in7twyf", + ".i5raa", + ".i3sa", + ".i4sk", + ".i3so", + ".ja6gli", + ".jah7we.", + ".ja6spa", + ".ja7taga", + ".j6äger", + ".je7sopp", + ".jo7dofo", + ".jo7safa", + ".ju6kos", + ".juk7os.", + ".j6ü6rge", + ".jy6sel", + ".k2", + ".kaar4", + ".kade4", + ".kadet5", + ".k4af", + ".kaï7ro.", + ".ka7nont", + ".ka6pla", + ".ka7plak", + ".k6arbe", + ".ka7thar", + ".ka7thu.", + ".ka6toë", + ".kat7oë.", + ".ka6tui", + ".ke6ple", + ".ker6k5a", + ".ker6k5l", + ".kerk5r", + ".ker6sa", + ".ker6sl", + ".ker6s5p", + ".ke4s5t", + ".kie6st", + ".ki6pli", + ".ki4r", + ".kit7se.", + ".k4la", + ".k6leyn", + ".k4li", + ".klip5", + ".knik5", + ".kn6opn", + ".ko6maa", + ".ko6maf", + ".k4op", + ".kope4", + ".koper7a", + ".ko6pla", + ".kop5o", + ".ko7rag.", + ".kor6st", + ".kors7te.", + ".k6rak.", + ".kr6üge", + ".kryt5", + ".ku7mon.", + ".k4we", + ".k4wo", + ".ky7otop", + ".l'7etji", + ".la6eti", + ".la6kwa", + ".la5sa", + ".lei5s4", + ".lek7oë.", + ".le6poo", + ".le5pr", + ".le7shab", + ".le6son", + ".le4sp", + ".les5t", + ".le6suu", + ".lig5e", + ".li4gi", + ".li6gom", + ".li6gre", + ".li7pase", + ".l6loyd", + ".lo6chn", + ".lof7ui.", + ".lo6glê", + ".l6ontd", + ".los5k", + ".lu6gen", + ".lui5sl", + ".l6üder", + ".m2", + ".m'7etji", + ".ma6cdo", + ".ma6nal", + ".ma6nur", + ".ma7stek", + ".ma7thes", + ".ma6zda", + ".mel6k5a", + ".mel6k5l", + ".mer6k5l", + ".mes5m", + ".me4sw", + ".me6tem", + ".mi6dos", + ".mi6rba", + ".mi7traa", + ".m4ne", + ".mo7djad", + ".mo7flam", + ".mo6sin", + ".mo4sk", + ".mu4e", + ".my6nen", + ".my6n5in", + ".my7unis", + ".n2", + ".n6aand", + ".na5fl", + ".na6gro", + ".na7groe", + ".na7smaa", + ".na7stor", + ".na7uurs", + ".ne4k5a", + ".ne4k5o", + ".ne6kri", + ".nek7rin", + ".ne6kys", + ".ne4s3", + ".ne7serh", + ".n6etik", + ".ne4t5j", + ".ne6tru", + ".ne6wca", + ".ne6wfo", + ".ne6wla", + ".ne6wma", + ".ni4e", + ".ni6jho", + ".ni6rva", + ".nix7on.", + ".n6kosa", + ".noet4", + ".noe5tj", + ".no6gee", + ".no4k", + ".n6ondu", + ".nu4l", + ".ny7lont", + ".oe5kr", + ".oe4r", + ".oe7ralg", + ".oe7rang", + ".oer7os.", + ".oe4s3", + ".o4gl", + ".oh7rigs", + ".o6klah", + ".ok7laho", + ".ol6ieu", + ".o7lieui", + ".oms4", + ".o2n1", + ".ond6ui", + ".on7duit", + ".o6nemo", + ".on6ias", + ".o7nias.", + ".on3k", + ".on7parm", + ".on3s4", + ".on6she", + ".on6sse", + ".on6t7eer", + ".on6t5er", + ".on4tr", + ".ont7ras", + ".ont5ri", + ".o9nus", + ".on6us.", + ".oon4", + ".oon7de.", + ".o4op", + ".oor5n", + ".oor5s4", + ".oo4s", + ".o6peet", + ".op7eet.", + ".o6peg.", + ".o6pein", + ".o6p5erd", + ".o4pof", + ".o4pr", + ".op5ra", + ".ops4", + ".op7smuk", + ".o7ragie", + ".or6kne", + ".o3ro", + ".orto5", + ".o4sk", + ".os5ko", + ".os7oog.", + ".ot6hel", + ".o7thell", + ".ou6doo", + ".ou7nôi.", + ".ou5tj", + ".p2", + ".pa4d3", + ".pa7die.", + ".pa6vlo", + ".pe5la", + ".pel6sk", + ".per6st", + ".pe4sk", + ".pe4st", + ".pie6tj", + ".pi7laf.", + ".pit5s", + ".p4la", + ".po6dzo", + ".p6oefe", + ".poen4", + ".p6ontw", + ".po6sad", + ".p4re", + ".pu6tad", + ".py6paa", + ".py6pla", + ".py6pol", + ".pyp5r", + ".py7thon", + ".r2", + ".r'7etji", + ".r6aard", + ".ra7dart", + ".ra6seg", + ".ras7eg.", + ".re7aumu", + ".re6gru", + ".rek5s", + ".re6mas", + ".rem7as.", + ".re6mco", + ".re4sl", + ".rie4t", + ".riet5j", + ".riet5r", + ".ri6ple", + ".roc7ky.", + ".ro6gak", + ".ron7do.", + ".rond5s", + ".ro5py", + ".ros5t", + ".ro6tre", + ".ro6wli", + ".ru7klip", + ".ruk4o", + ".ru7kope", + ".ru7staa", + ".ru6suu", + ".ry4k5a", + ".ry6ste", + ".s6aans", + ".s4af", + ".s4ag", + ".sa7gopa", + ".s6akty", + ".s4am", + ".sa6vlo", + ".s4ca", + ".se6an.", + ".see5ra", + ".see7ys.", + ".se7khuk", + ".se6laa", + ".se6lop", + ".se7reni", + ".se6sle", + ".ses5t", + ".se6suu", + ".se6tap", + ".se4tr", + ".sex5y", + ".s6fale", + ".s4fi", + ".s4gr", + ".s4ha4", + ".s4he", + ".s4hi", + ".s4ho", + ".s4hu", + ".s4in", + ".si6nes", + ".si7pho.", + ".si7rag.", + ".s4ja", + ".s4ka", + ".s4ke", + ".s4kl", + ".s4ko", + ".s4kr", + ".s4ku", + ".slag5", + ".s4ma", + ".s4me", + ".s4mi", + ".s4mo", + ".s4mu", + ".s6nags", + ".s4ne", + ".sod4", + ".so7dafa", + ".so7dwan", + ".so7iets", + ".so6kop", + ".some4", + ".s6oms.", + ".s4on", + ".so6neg", + ".s4op", + ".so6pek", + ".so7phok", + ".so7ross", + ".s4pe", + ".s4pl", + ".spo4g", + ".s6pren", + ".s4py", + ".s8ri.", + ".s4ta", + ".s6temp", + ".ste7rol", + ".ster6ta", + ".ster6t7j", + ".s4ti", + ".s4to", + ".straf5", + ".s6trei", + ".s6tuar", + ".stuc5", + ".su7biet", + ".sub5m", + ".sub5p", + ".su8e.", + ".s4ui", + ".su5kr", + ".su7ther", + ".su7tra.", + ".s4we", + ".s4wi", + ".s4wo", + ".sy1", + ".sy6lvi", + ".sy7nagr", + ".sy7slag", + ".t2", + ".t6afsy", + ".t4ag", + ".tee5k", + ".te6flo", + ".te7rafi", + ".te7ragr", + ".ter6tj", + ".tert7ji", + ".te4s5t", + ".te7stud", + ".ti6ene", + ".tie6t5j", + ".ti4k", + ".ti6ner", + ".t6jaai", + ".tjok5", + ".toe7ys.", + ".to6kla", + ".to7ky7o.", + ".to6lun", + ".to7ront", + ".tou3", + ".trap5r", + ".trek5", + ".tre4s", + ".trie4", + ".tries5", + ".t4sa", + ".ts4h", + ".ts6jaa", + ".ty6daa", + ".ty6dor", + ".ty6dra", + ".ui6laa", + ".ui4t3", + ".ui5ti", + ".ui5t6ji", + ".um7hlan", + ".uns4", + ".un5st", + ".u5raa", + ".u5tra", + ".va6kad", + ".va6kei", + ".va6naf", + ".va4n5o", + ".va7raan", + ".va6sen", + ".va6swa", + ".vas7ys.", + ".ve7cino", + ".ve7laar", + ".ve7lare", + ".ve7lêr.", + ".ve7loer", + ".ve7lome", + ".ve7meng", + ".ve7rema", + ".ve7rena", + ".ve7reve", + ".ve7skaf", + ".ve7tore", + ".vlas5", + ".vo6gin", + ".vo6lyw", + ".vo6sko", + ".wa7ghri", + ".wa4n", + ".wa7smou", + ".wa6spa", + ".web5m", + ".we4bo", + ".we6b-o", + ".week7lan", + ".wee4t5", + ".we6kuu", + ".we4l5a", + ".we6lin", + ".wel7ing", + ".we6nan", + ".werk5l", + ".wer6k5r", + ".we4s5k", + ".we6soe", + ".we6swa", + ".w8hê.", + ".w4hi", + ".wi6id.", + ".wins5", + ".wi4p", + ".wi4t", + ".wî9e.", + ".wy7kwas", + ".wy7nand", + ".wy6net", + ".x2", + ".y6amin", + ".y6anni", + ".y6asud", + ".yk7loon", + ".ys3", + ".ys6ere", + ".ys5la", + ".ze5us", + ".z6üric", + ".z4wa", + ".z4wi", + "aa2", + "aad1", + "aa4da", + "aa4de", + "aa4do", + "aa4d3r", + "aaf7emme", + "aaf6sat", + "aag5al", + "aag7asem", + "aag7elas", + "aag3r", + "aag7rond", + "aag5s4l", + "aag5sp", + "aag5st", + "aag7swee", + "aai7lag.", + "aak1", + "aa4ka", + "aa4ko", + "aak3r", + "aak7ster", + "aak3w", + "aal1", + "aal6dys", + "aald7ys.", + "aal5fe", + "aal6fpo", + "aal5sa", + "aal7sfee", + "aam1", + "aa4ma", + "aa4me", + "aa4mo", + "aam7smul", + "aan1", + "aan6dou", + "aand6re", + "aan7dren", + "aan7dros", + "aan7gons", + "aan3k4", + "aan5kl", + "5aankon", + "aan7kry.", + "5aanleg", + "aan7sage", + "aan6see", + "aans7eer", + "aan6sek", + "5aansig", + "aan7skem", + "aan5sl", + "aan5sn", + "aan6som", + "aan6son", + "aan5sp", + "aan7tuig", + "5aanva", + "aap1", + "aa4pa", + "aa4po", + "aap3r", + "aa4pu", + "aar3a", + "aar6dan", + "aard7ang", + "aard7as.", + "aar5de", + "aar7ding", + "aar4du", + "aar3e", + "aar3i", + "aar7kwek", + "aar6lbe", + "aar6lka", + "aar6lva", + "aar6lzi", + "aar6l-o", + "aar3o", + "aar7ser.", + "aar7seri", + "aar6sid", + "aars8teek", + "aars8tell", + "aars6ti", + "5aartap", + "aar6tin", + "aar7tomo", + "aar7tryb", + "aar3u", + "aas3", + "aa4so", + "aas7omel", + "aat1", + "aat7nagt", + "aa4to", + "aat3r", + "aat6sef", + "aat7sfee", + "aat7slim", + "aat6slo", + "aat6sly", + "aat7sonn", + "aat6sow", + "aat6sti", + "aau6wbe", + "aä5ron", + "aba6kas", + "abak7as.", + "aba7komb", + "abare4", + "aba7ster", + "ab3d", + "aber6sp", + "ab5lau", + "ab5rup", + "3abso", + "abu7scha", + "ab5wie", + "ac5que", + "a2d", + "a3da", + "a4d3aa", + "adam4", + "adam7pe.", + "ada4r", + "a3de", + "ades7lan", + "ade7smee", + "a3di", + "adi6eus", + "5adjud", + "5admin", + "a3do", + "a4dow", + "a3dr", + "5adres.", + "ads7erwe", + "ad4sn", + "ads6op.", + "ad5sor", + "ads7teso", + "ad4su", + "a3du", + "ad5uit", + "adu7spel", + "adu5tj", + "5advert", + "a3dy", + "ady7smit", + "a1e", + "ael7atoo", + "ae4l5ei", + "ae4lo", + "aes5to", + "aes5tr", + "aes7tuur", + "aë1", + "4afee", + "af5eks", + "afel5aa", + "af4fre", + "af5gha", + "af5inr", + "af3l", + "a4fof", + "af1r", + "af5raa", + "af5ram", + "af5ran", + "a4f3re", + "3afri", + "a4f5rit", + "a4f3ro", + "a5frod", + "a4f3ru", + "af3s4w", + "3afva", + "afval5", + "ag3aa", + "a6gaanv", + "a4gaar", + "ag5adv", + "a4g3ak", + "ag5alg", + "ag5api", + "ag5are", + "4age.", + "4ageb", + "4aged", + "age6ddo", + "a4gei", + "4agem", + "a4g5erv", + "4ages", + "a6g5ewen", + "agge7us.", + "a3gi", + "a5ging", + "a4g5ins", + "agi5s6tr", + "ag1l", + "ag5ogg", + "ag5ord", + "ag5ork", + "ag5oud", + "a4g3re", + "ag5rei", + "a4g3ru", + "ag3sa", + "ags7abno", + "ag6sins", + "ag5ska", + "ags7koev", + "ag5skol", + "ag5skr", + "ag5sky", + "ags4lo", + "ag4sn", + "ags6oep", + "ag5som.", + "ags6oom", + "ags6op.", + "ag5spe", + "ag5s6por", + "ags4t", + "ags7taal", + "ag5sti", + "ags6waa", + "ags6wee", + "ag4tu", + "agt7uur.", + "a4g3ui", + "ag5ure", + "ag5uur", + "ag-7lag.", + "aher4", + "ahe5ri", + "a4hs.", + "ai1", + "aig6ne.", + "aiï5er", + "ai4lp", + "ain6ste", + "aip6eis", + "ai3s4k", + "ai5sla", + "ais4p", + "ais7prys", + "ais4t", + "ai3tj", + "ai3t4r", + "a4k5aan", + "ak5arb", + "ake6lee", + "ake6lof", + "ak5ess", + "ak5ins", + "akis4", + "akis7te.", + "5akkoo", + "a2k3l", + "a5klank", + "ak6leet", + "a2k3n", + "ako6bre", + "ak5oms", + "a1kr", + "a4k3re", + "ak5rig", + "ak4sc", + "ak5sme", + "ak3sp", + "a4k3ui", + "a2kw", + "ak3we", + "ak5win", + "a3ky", + "a4kys", + "a1la", + "ala7gadi", + "a5lagm", + "al5agt", + "ala7kled", + "alan7gaa", + "al5dei", + "a4lef", + "ale6str", + "al4f3e", + "alf6eni", + "al4fh", + "al5fie", + "al4fj", + "alf7olie", + "alf6sko", + "alf6sni", + "alf6sta", + "alfs7tan", + "al4fu", + "alf4-", + "5algori", + "alien5s", + "ali6gal", + "ali7glas", + "alk7aard", + "alk7laag", + "alk7oond", + "alk5sp", + "al4kui", + "alk7wyk.", + "5alleen", + "alm7eier", + "alm7lont", + "a1lo", + "als4a", + "als7agti", + "als7ghaa", + "al6skel", + "als7kelk", + "als5li", + "al4s5oo", + "als7pret", + "als5waa", + "als7werw", + "alt6hea", + "alt6hus", + "alt7rots", + "alt6sas", + "alt6wee", + "a1lu", + "alve5o", + "a2m", + "a3ma", + "ama3k4", + "aman6t5j", + "ama7rins", + "am5atoo", + "5ambag", + "5ambass", + "a3me", + "am5egt", + "ame6sin", + "ame5sm", + "ame6spo", + "a3mi", + "ami7skyw", + "amm6afu", + "5ammun", + "a3mo", + "amp7arre", + "amp7lag.", + "amp7leer", + "amp7lig.", + "amp7lug.", + "amp7omhe", + "amp7seël", + "amp7sfee", + "amp7sier", + "amp7staf", + "amp7staw", + "ams7esel", + "am6s5kop", + "ams7lend", + "am6smet", + "ams7meti", + "ams6mul", + "am4s3o", + "ams7pels", + "am6swan", + "am6swar", + "ams7wyn.", + "a3mu", + "a4mui", + "am5uit", + "a3my", + "an5agt", + "ana7kwal", + "an5alf", + "ana6spi", + "an4c-", + "and7aans", + "and7adel", + "an6dakt", + "an5dan", + "and7anal", + "an4dap", + "an6dase", + "an6datt", + "and7attr", + "an6degt", + "and7egte", + "and5eks", + "and7emal", + "an6derf", + "and7erf.", + "an6dete", + "and7etes", + "and7eval", + "an6dinw", + "and7inwa", + "and6ja.", + "and6jar", + "an4d5om", + "an4don", + "an4d5op", + "and7oud.", + "an6drak", + "an4dro", + "and6ser", + "and6s7kop", + "and7spaa", + "and7spre", + "and7steg", + "and7swee", + "an7dwing", + "and7wyn.", + "ane6ron", + "ang7aal.", + "ang7adem", + "ang7ghor", + "ang6hai", + "ang6lad", + "an5g4li", + "an6glig", + "ang7lig.", + "ang7lip.", + "ang6nol", + "ang6ons", + "ang7ore.", + "ang7repu", + "ang7sakm", + "ang6ska", + "ang7snee", + "ang6s7te.", + "ang7stem", + "ang6sur", + "ang7ure.", + "anie6t5r", + "an5inl", + "ani5sf", + "ani7slaw", + "an6kase", + "ank7asem", + "ank7refe", + "an4kry", + "ank3w", + "an5ops", + "an5opt", + "an5opv", + "an5ord", + "an5org", + "ano7roei", + "ano7stoe", + "anr6hyn", + "ans7aalw", + "an4s5am", + "an6sass", + "ans7asse", + "an4sc", + "ans7eila", + "ans7eura", + "an6sink", + "ans7ink.", + "an6sjek", + "ans7jekk", + "ans7jord", + "an4ske", + "ans5kei", + "an6skin", + "an6s5kop", + "ans7kous", + "an6slat", + "ans7mada", + "an4sn", + "ans7oran", + "an4s5pa", + "an6sper", + "ans7pet.", + "an4spo", + "ans4ti", + "ans7toil", + "ant5aan", + "ant5aar", + "an6tass", + "ant7asso", + "an4tei", + "an6teks", + "ant7ekst", + "5antenn", + "ant7ete.", + "an6tins", + "ant5jo", + "an4tol", + "ant7opru", + "ant7rest", + "ant5rin", + "ant7rob.", + "ant6ski", + "ant6sko", + "an4tui", + "5antwo", + "a1ny", + "a1o", + "a2p", + "a3pa", + "a4p5aan", + "a4p5agt", + "ap5aks", + "ap5arm", + "5aparth", + "a3pe", + "ape6nop", + "a3pi", + "api6rfa", + "ap3l", + "a3po", + "apo6kaa", + "ap5ond", + "apo5sta", + "5appar", + "ap1r", + "ap5rol", + "ap3ru", + "a4pry", + "ap5ryk", + "a5prys", + "ap6sall", + "aps7alli", + "ap6seko", + "aps7iden", + "ap6skof", + "ap6s5taa", + "ap5sti", + "aps7toet", + "aps5we", + "a3pu", + "a4pui", + "ap5uit", + "a3py", + "a1ra", + "ara7gwan", + "ara7klee", + "ara6kop", + "ara3p4", + "ara6ppa", + "ar6d5agt", + "ar6das.", + "ar6datm", + "ar5der", + "ar6deti", + "ar6d5opp", + "3area", + "aree5s", + "areg7swe", + "ar3ei", + "are7knip", + "ar5fla", + "arg4h", + "ar5gha", + "5argite", + "ar4gl", + "arg4o", + "arie4f", + "ari6jke", + "ar6k5ana", + "ar6kini", + "ark7leer", + "ar5klo", + "ark6los", + "ark7onvo", + "arko6v.", + "ark7snui", + "ark5sp", + "ar4kw", + "ark5wa", + "arn6avo", + "a1ro", + "aroet6j", + "aroe7tji", + "aroo5h", + "aroom4", + "aroo5p", + "aroo5s", + "ar3op", + "aro6wva", + "ar5rag", + "arres5t", + "ars5ag", + "ars7elek", + "5arsena", + "ar5sie", + "ars6kou", + "ars7krap", + "ar6skre", + "ars7kree", + "ar6skro", + "ars7pan.", + "ar4spr", + "ar6stal", + "ars7tall", + "ars7tee.", + "ars6-in", + "ar6taas", + "art7aasv", + "ar6talb", + "art7albu", + "ar4t5as", + "ar4tc", + "ar5te.", + "art7eend", + "ar5teh", + "ar4tei", + "art6hol", + "art6hur", + "art6omo", + "art5oog", + "art5oor", + "ar4tor", + "art7reek", + "art7roep", + "art6ryb", + "art7samb", + "art6slu", + "art6spr", + "art7spyn", + "a1ru", + "arus6o.", + "a1ry", + "ary7taal", + "as3ag", + "as5app", + "as3c", + "as4d.", + "as4dh", + "as5egt", + "ase6rak", + "as5ete", + "as3f", + "asg6hit", + "as4hi", + "asi7freu", + "a4sj.", + "a4sjm", + "a2s3k", + "a5skool", + "a5skri", + "as5kru", + "a2s3l", + "as5laag", + "as3m", + "a4smy", + "a4sna", + "as3no", + "as9of.", + "as5ogi", + "a4s3oo", + "as3op", + "as3p", + "as4por", + "as3t", + "as4t.", + "a5staa", + "as4th", + "ast6les", + "a5stof", + "a7strak.", + "a5s6tran", + "a5s6troo", + "as3w", + "a4sys", + "as5yst", + "at5aar", + "a4tag", + "ata3s4", + "ata6sse", + "atas7se.", + "ata6wba", + "ate5it", + "5atelj", + "ate6rar", + "ate6rer", + "ate6ron", + "a6tetes", + "ath7cart", + "a5t4hee", + "ath7kinp", + "ath7lone", + "atie6te", + "a2t3j", + "atk6v-s", + "5atleet", + "5atmos", + "at5oog", + "at5ry.", + "ats7alma", + "at6sint", + "ats7inte", + "at4sj", + "at6skin", + "ats6kom", + "at6skop", + "ats7kop.", + "ats7krip", + "at4s5le", + "ats7lykh", + "at4sm", + "ats6maa", + "ats7nood", + "at6somw", + "ats7omwe", + "at4son", + "ats5ond", + "ats7onko", + "ats7onlu", + "ats5op", + "ats7ower", + "ats7tend", + "ats7trek", + "ats8treke", + "at6stro", + "ats3w", + "at5the", + "att6hys", + "at4tu", + "atu6maa", + "2au", + "aud6rey", + "au5gra", + "aug6sbu", + "aul6spo", + "au3p", + "aure5u", + "auri5s4", + "aus4t", + "aus7tin.", + "au5str", + "aus7tus.", + "aut6ste", + "ava6lop", + "ave7lott", + "avlo6v.", + "3avon", + "awa7glas", + "awas4", + "awe5ga", + "awe4r5a", + "awer6ui", + "aws6han", + "ax5ofo", + "a3ya", + "ay4a.", + "ay5ist", + "ayn6ard", + "ayn6or.", + "a3yo", + "a3yw", + "azoo7ka.", + "azz7agti", + "az4zl", + "azz7orke", + "1ä", + "1b2", + "2b.", + "babak4", + "bab7wiër", + "ba4d5ra", + "bad5sp", + "ba4kin", + "ba3kl", + "ba4kla", + "ba6kleu", + "ba4k3o", + "ba4k3r", + "bak3w", + "bal6kla", + "ba4lo", + "bal7onts", + "bal5or", + "bal7tsas", + "ban4da", + "ban6dek", + "ban4d5r", + "ban7glad", + "bang7ste", + "bangs8te.", + "ban4k5a", + "ban6kre", + "ban4kw", + "bar7kaan", + "bar4s3", + "bar5th", + "bas7ekst", + "bas7ghit", + "bas7jan.", + "ba4sn", + "ba5spe", + "bas7peer", + "bat5aan", + "ba3t4j", + "2bb", + "b3ba", + "b3be", + "b3bi", + "b3bl", + "b3bo", + "b3by", + "2bd", + "b3de", + "b3di", + "b3do", + "bed7slaa", + "bed6sta", + "beds7taa", + "be3dw", + "beel6dr", + "bek7neus", + "bek7wind", + "bel6aga", + "belk6li", + "bel7klik", + "bel6ldo", + "ber6gaa", + "berg7aar", + "ber4gl", + "ber4g5r", + "ber7grys", + "ber6gzi", + "bers7pan", + "ber6spr", + "bers7pre", + "bert6sk", + "bes6aan", + "bes4k", + "be5ska", + "be3sl", + "be3sm", + "be3so", + "be5son", + "be5sôr", + "be3s4t", + "be6s5ter", + "be5sti", + "be6stia", + "bes7tial", + "bes7trol", + "bet4h", + "be5tha", + "bet7hesd", + "be5ton", + "be3tw", + "2b1f", + "2b1g", + "b3ge", + "bid3s", + "bi4du", + "bid7ure.", + "bie6dui", + "bie4g", + "bieg5r", + "bi4jl", + "bin6dri", + "bio7sfee", + "bi4rc", + "bis4a", + "bis6ho.", + "bis7scho", + "bi3tr", + "2bj", + "b3je", + "2b1k", + "b3kl", + "b3ko", + "b3ku", + "bla4d5a", + "bla6don", + "bla4d5r", + "bla5so", + "4blau", + "bleem5", + "ble4s", + "ble7ser.", + "bles5k", + "ble6tji", + "blet7jie", + "blê6rfl", + "blik5o", + "blix7en.", + "blo4k3", + "blo7kaal", + "blo4m3", + "blu6sem", + "bly7mare", + "bly3s4", + "2b1n", + "b3no", + "bob7slee", + "boe6kil", + "boe6kom", + "boe6koo", + "boer6st", + "boers7te", + "boe4s5k", + "bog7gher", + "bog7skut", + "bo2k1", + "bo3ka", + "bok6aak", + "bok6ale", + "bok6as.", + "bok6erf", + "bok6ies", + "bok3l", + "bo7kleed", + "bok6om.", + "bok6ors", + "bok6ost", + "bok3r", + "bok6rag", + "bo4m5aa", + "bom6aat", + "bo4m3o", + "bon6dam", + "bon6dra", + "bond7raa", + "bon6tel", + "bon4t5r", + "bo9op.", + "bop6laa", + "bor6dak", + "bor6des", + "bor4g5a", + "bor6gri", + "b4ors", + "bor6saa", + "bor4s5k", + "bor4s5l", + "bor4s5t", + "bo2s", + "bos7anem", + "bos7jamb", + "bos7pepe", + "bos7taai", + "bo5s4tr", + "bos7uil.", + "bo5t4ha", + "bot6sto", + "bou6it.", + "bou3s4", + "b3pr", + "brand5a", + "breek5", + "br4ei", + "brei5s4", + "brengs7t", + "brie6kw", + "briek7wa", + "3bro", + "bro4n", + "bro4sk", + "bro6vni", + "bro6wni", + "bru4l", + "4brup", + "br4üm", + "2b1s", + "b3se", + "b3si", + "b3sk", + "b3so", + "b3sp", + "b3st", + "bs4ti", + "b3su", + "2bt", + "b3te", + "b3ti", + "buc7cleu", + "buik5s", + "bui5t4j", + "bult7af.", + "bul4t5j", + "bul6top", + "bult7op.", + "bul6tui", + "bun7senb", + "bus6had", + "bus7toer", + "but6hel", + "buu7rend", + "2bv", + "b3ve", + "b3vi", + "2bw", + "b3we", + "by1", + "by3d", + "by3k", + "by4lb", + "by4lt", + "by3n4a", + "by3s", + "bys6kot", + "bys4l", + "bys6tek", + "bys7ter.", + "bys6tor", + "bys4w", + "byt7alka", + "byt7eier", + "by3tr", + "1c2", + "2c.", + "ca4es", + "cam5ph", + "ca3pr", + "ca3ra", + "car6lto", + "caru7so.", + "cat4h", + "ca5tha", + "2cc", + "c3ca", + "c3ch", + "c3ci", + "c3co", + "ce4st", + "ces5te", + "2ch.", + "che6lan", + "5chemi", + "che6reg", + "che5r4i", + "che7ryl.", + "che7styl", + "che6vvi", + "ch5hoe", + "ch5lei", + "ch5nik", + "cho7rage", + "ch5sia", + "2cht", + "2ck", + "c3ke", + "cot7rand", + "cove7ry.", + "2ct", + "c3ta", + "c3to", + "c3tu", + "cus5to", + "cyp7rian", + "1d", + "2d.", + "4d5aanb", + "d5aand", + "4d5aank", + "d5aansl", + "daard5u", + "4dabs", + "2d1af", + "da2g", + "da5gas", + "dag5et", + "da5gha", + "dag6ham", + "da5gra", + "dag4sk", + "dag5so", + "dag7ster", + "dak7lei.", + "dak7oorh", + "da4k3r", + "dak5wa", + "4d5alar", + "4damb", + "dam6plu", + "3dan", + "dan6k7erk", + "dan6sak", + "dan6sko", + "dans5m", + "dan4so", + "dan4s5t", + "dan4t5r", + "daph7ne.", + "dap4l", + "da5pla", + "4d3arm", + "4dart", + "d5arti", + "da4s.", + "das7lag.", + "das7traa", + "da3t4j", + "2db", + "dby6lvo", + "2dd", + "dda5kl", + "dda3s4", + "dde6lee", + "ddel5so", + "dder7aal", + "dde6ras", + "dder7as.", + "d3dh", + "dd4hi", + "deba4t", + "dee4g", + "deeg5r", + "dee4l", + "dee7lig.", + "4d5eenh", + "deë7skou", + "4deg.", + "2dei", + "de3ka", + "dek6aan", + "de6klad", + "de6k5lat", + "de6klei", + "dek7lei.", + "de4kna", + "6dekono", + "de6krie", + "dek7riet", + "4deksa", + "dek6ska", + "del7appe", + "del5eeu", + "del5egg", + "d5elekt", + "del7elek", + "6d5eleme", + "de6leng", + "del7enge", + "del6fer", + "del5fi", + "del6fos", + "delf7os.", + "del5oor", + "del7oper", + "del6ser", + "del4so", + "del7sold", + "del7sone", + "del4sp", + "del6str", + "del7stre", + "delt6ag", + "del7tagt", + "del7weis", + "4demm", + "dem6pla", + "den6din", + "4d3eng", + "4denj", + "den6kar", + "den6kja", + "den4k5l", + "den4kr", + "dens7pre", + "den4t5j", + "den6tri", + "deo7plek", + "deo7sfee", + "3dep", + "der5ast", + "de6reen", + "der7een.", + "der7emig", + "der7ent.", + "der7flap", + "de6rin.", + "derm7ins", + "der5na", + "de4ro", + "de5rob", + "de5roe", + "der5of", + "de5rol", + "der5on", + "der5ow", + "der5ps", + "der6sjo", + "der5s6kr", + "der6slu", + "der6spu", + "der7thal", + "der6uit", + "de5sag", + "des7alni", + "des5ap", + "de6seng", + "des7enge", + "de4s5in", + "deskat5", + "de6skor", + "des7leed", + "de4sn", + "des7offe", + "des7oksi", + "de4s5on", + "de4sor", + "de4spa", + "des7pari", + "des7poës", + "des7prik", + "des7taal", + "des7tele", + "de4sti", + "de5stig", + "de4sw", + "des7weë.", + "4d5ete.", + "deten6te", + "de3tw", + "4deuro", + "deur5s6w", + "2d1f", + "2d1g", + "dge5sp", + "dg4li", + "2dh", + "dias4", + "dia7stol", + "dia6zvi", + "dic7kie.", + "dic7tio.", + "die6fal", + "die6kes", + "5diens", + "die4pl", + "die6tom", + "die4t5u", + "dig6ofa", + "di4gre", + "digs4", + "dig7skro", + "dig7som.", + "di6kamp", + "dik7amp.", + "di4k3l", + "di4kr", + "dik7ribs", + "di4kw", + "dik7wyn.", + "di4l5al", + "din6gas", + "din4gr", + "4d3inl", + "4dins", + "4d3int", + "4d3inv", + "di6sass", + "dis7assi", + "di4so", + "di5son", + "dis6pne", + "dis7quis", + "dit6hak", + "dit7jies", + "2dj", + "dja7dji.", + "d4ji.", + "d4jia", + "2d1k", + "dklo4", + "2d1l", + "d3la", + "2dm", + "2d1n", + "doek5r", + "doe6lon", + "doe6sko", + "does7kop", + "2dof", + "4dogi", + "do4l5os", + "dol6sou", + "dols7ou.", + "3dom", + "dom6pli", + "dom6sap", + "4d5omse", + "dom7slim", + "dom6swê", + "4domt", + "don4sk", + "4d5oord", + "4dopn", + "dop6rof", + "dop6rys", + "3dor", + "4d3org", + "dor7othy", + "dor4sl", + "dor4st", + "dos6tel", + "dou3t", + "do3y", + "doy4e", + "2dp", + "d2r", + "3dra", + "dra6gaa", + "4d5rand", + "dra7stan", + "4dreë", + "4d3reg", + "d4rela", + "d4rew", + "4driff", + "d5rigt", + "d5riss", + "4driv", + "droë7ys.", + "4d5rond", + "d5rooi", + "4d5roos", + "dr4op", + "dro6pan", + "dro5pn", + "dro7sfee", + "4d3rug", + "d5ruim", + "d5ruit", + "4d3rus", + "4d3ry.", + "4d3rye", + "4d3ryk", + "4drym", + "d4ryw", + "2ds", + "ds5aamb", + "ds5aar", + "d4s3ad", + "d5sakr", + "ds5aks", + "ds5angs", + "d4s3ar", + "ds3as", + "d3se", + "d4s5een", + "ds5eis.", + "d4s5eko", + "dse4l", + "dse7leer", + "d4s5eng", + "d4s5era", + "dser6tj", + "dsert7ji", + "d4s5erv", + "d5sfeer", + "ds3id", + "ds5imp", + "ds5inde", + "d4s5ins", + "ds5int", + "d2s3j", + "d5skee", + "d4skin", + "ds5kind", + "d4skis", + "d5skole", + "d4skom", + "d5skoo", + "d6skraa", + "d6skrit", + "d6skroo", + "d4s3le", + "ds3li", + "ds6luie", + "ds3m", + "d5s4mee", + "ds6moor", + "d4sna", + "ds5neu", + "ds5noo", + "ds5not", + "d2s1o", + "d3soe", + "d5some", + "ds3on", + "d7sonde.", + "d7sondes", + "dson4t", + "ds5oog", + "ds3op", + "ds3ow", + "d5s4pel", + "d5spes", + "d3spi", + "ds5pop", + "ds6prek", + "d7spreker", + "ds7preki", + "d1st", + "ds5taak", + "d4staf", + "d5stand", + "ds5tea", + "d5stel", + "ds5tent", + "d5ster.", + "ds5terr", + "d5sters", + "ds4ti", + "d3str", + "d3stu", + "ds3w", + "d3sy", + "2dt", + "dter6tj", + "dtert7ji", + "du4e-", + "duns6te", + "dur6rhe", + "dusie5k", + "dus6kap", + "dus6pel", + "2dv", + "dverdiens9", + "dverdien8st", + "dve6sid", + "dvie4", + "2dw", + "d4waal", + "d5waar", + "5d4wang", + "dwa6nor", + "4dwarm", + "dwar7se.", + "d3wat", + "d4weil", + "5dwerg", + "dwerk5o", + "dwe6tar", + "d3wil", + "d4wing", + "4dwoo", + "d4wyn", + "dys5ag", + "dys6mit", + "dys7tuin", + "2d-", + "d-r6hod", + "e1a", + "eam6ses", + "eang4", + "eate4", + "eau7mont", + "e3ba", + "eb5adr", + "eb9cu.", + "ebou5t", + "ebou6t.", + "eb4re", + "ebrons5", + "eb5tui", + "ec5cle", + "e4chn", + "ech7tiaa", + "eda7gaat", + "eda5go", + "e3de", + "ed5eis", + "eder7as.", + "ede7ring", + "ede6sap", + "ed5off", + "edors5", + "ed4ra", + "ed5rep", + "ed6saks", + "eds7kalm", + "ed4sl", + "eds7lafe", + "eds5om", + "ed3sp", + "ed5s4we", + "ed5uit", + "ed2w", + "ed5woo", + "ed5yst", + "ed3yw", + "ee5agt", + "eed6atu", + "eed5we", + "ee4dy", + "ee2f", + "eef7laag", + "eef7lopi", + "eef7rant", + "eef7rek.", + "eeg3l", + "eeg5ru", + "eeg3s4", + "eeg6sdi", + "e5eila", + "ee2k", + "eek5ass", + "ee5klaa", + "ee5klag", + "eek5lo", + "eek3n", + "eek5og", + "eek7oors", + "eek7rooi", + "eek3w", + "eek6wal", + "eel5ap", + "eel6doo", + "eel7doos", + "eel5een", + "eel7eer.", + "eel5ei", + "eel7indr", + "eeling7s6", + "ee6lins", + "eel5int", + "ee4l3o", + "ee5lob", + "eel6ood", + "eel6oon", + "eel5sa", + "eel7snag", + "eem7onde", + "eem5ou", + "ee2n1", + "5eendj", + "een6ema", + "ee5nen", + "3eenj", + "eenk4", + "een5kl", + "een7slot", + "een5sm", + "eens6pa", + "een7swee", + "een7topp", + "ee4ny", + "eep7esel", + "eep7leer", + "eep7loog", + "ee4pop", + "eep7roes", + "eep6sam", + "eep7skep", + "eeps5ko", + "eep7skui", + "eep6sti", + "ee2r", + "eer5ap", + "ee5red", + "eer5ee", + "eer5end", + "eer5in", + "ee5rob", + "eer7oes.", + "eer5om", + "eer5on", + "ee5row", + "eer5ps", + "eer7skur", + "eers7lam", + "eer7smed", + "eer6sow", + "eer3u", + "eer6ust", + "eery4", + "eer5ys", + "ee2s3", + "ee4s.", + "ees6ala", + "ees6ap.", + "ees6lep", + "ees5me", + "ees7muil", + "ee5sna", + "ee5sny", + "ees6op.", + "ees6pre", + "ee5staa", + "ees6tal", + "ees4tr", + "ee6styd", + "ee4sw", + "ee5syd", + "ees6yfe", + "eet7appe", + "eet7eenh", + "ee4ti", + "eet5in", + "eet7rek.", + "ee6troe", + "eet7roed", + "eet7ruik", + "eet7wiel", + "eeu3g4", + "eeu5in", + "eeus4", + "eeu7spoe", + "eeu5tj", + "eeu6ur.", + "ee5yst", + "e3êr", + "eë5aan", + "eëks5t", + "eël7eier", + "eël7yste", + "eë4na", + "e3ër", + "eër7agti", + "eë5ran", + "eër7arm.", + "eë5rod", + "eër6ske", + "eë4sk", + "eët6ste", + "eëts7te.", + "e4faf", + "ef5afs", + "ef5eks", + "5effek", + "ef5inh", + "e1fl", + "ef5loo", + "e4fly", + "ef5oms", + "ef5oue", + "ef3st", + "efs6tal", + "eg5amp", + "ega5s4k", + "e3ge", + "ege6las", + "egel7as.", + "eges7per", + "eges4t", + "ege6vwo", + "e6ginko", + "eg5ogg", + "eg5rig", + "egs7enti", + "eg6sins", + "eg6s5int", + "eg3sk", + "egs6lot", + "egs6pre", + "egs6pri", + "egs6pyk", + "eg6s7taal", + "egte6re", + "e4g3ui", + "eher6in", + "ehe7rinn", + "eho6kra", + "eib7niz.", + "eid7rok.", + "eid7saam", + "eid7salo", + "eid7sirk", + "eid7skou", + "eid7sku.", + "eid7spa.", + "eid7spek", + "eid7ste.", + "eid7stoo", + "eid7sug.", + "ei1e", + "eie7naan", + "eig6h-n", + "eig7opro", + "eik7aard", + "ei5kno", + "eik7wydt", + "eil6spa", + "3eind", + "ei4n5ed", + "ein7eed.", + "ein7glas", + "ei4non", + "ein7oord", + "ei4n5op", + "ein7otte", + "ein6sad", + "ein6sep", + "eis7angs", + "ei5sei", + "ei6s5ind", + "ei5sja", + "eis7kamm", + "eis6kaw", + "ei5skê", + "eis6kot", + "eis6laa", + "4eiso", + "eis7ouer", + "eis6pir", + "ei5s6tel", + "ei5s6tre", + "eit2", + "eit7hand", + "ei3tj", + "eit7klin", + "eit7nisp", + "eit7onde", + "ei5tra", + "eits5ko", + "eits5l", + "eits5o", + "eit7spor", + "eit7stak", + "eit7stra", + "eits5w", + "eï5mit", + "eï4na", + "eïn7klin", + "eï4no", + "eï4nu", + "eï5oni", + "eï4sl", + "eja7stas", + "ek5aan", + "ekaars8te", + "ek5aks", + "e3kan", + "ek5asg", + "e3ke", + "ek5een", + "eke7naar", + "eke6tam", + "e3kê", + "e4k5ins", + "ek3k", + "e4k5les", + "e5kleu", + "e4klê", + "ek5log", + "e3koe", + "eko6mol", + "ekom4s", + "ek5omsl", + "ekoms5t", + "5ekono", + "ek5ooi", + "e3kop", + "eko6pap", + "e4k5opm", + "ek5opn", + "ekor6da", + "eko7rum.", + "ekou6st", + "ek5owe", + "e1kr", + "ek5rad", + "e4k5rok", + "e5krom", + "ek5rug", + "ek6sapp", + "5eksemp", + "eks5esk", + "eks7inge", + "eks7logi", + "eks7loks", + "eks7outo", + "eks5pir", + "eks5po", + "eks6poe", + "eks6tel", + "ek6sten", + "ek4sti", + "eks7uur.", + "ek5uit", + "e4kwê", + "ek5wie", + "e4kwu", + "e1ky", + "e1la", + "e6l5aand", + "el5aanh", + "e6laanv", + "el5aard", + "el5adm", + "el5adv", + "el3af", + "el3ag", + "e5lag.", + "ela7klon", + "e4l3al", + "e5lari", + "e4l5arm", + "ela7slan", + "el5asp", + "eld7adel", + "el4dap", + "el5de.", + "el6d5ele", + "eld7erfe", + "eld7evan", + "eld7olie", + "eld7onde", + "eld7smid", + "e3le", + "el5eien", + "eleis6t", + "elei7sta", + "e6lelek", + "el5erts", + "ele7sett", + "ele6too", + "el4faa", + "elf6abr", + "elf6eit", + "elf7en-d", + "elf5erk", + "elf6lan", + "elf6les", + "el4fon", + "elf7onth", + "elf7ontp", + "el6foop", + "elf7oops", + "el6foor", + "elf7oors", + "elf6ron", + "elf7twyf", + "e3li", + "eling8stell", + "el5inh", + "e6linko", + "el5inv", + "elk7nage", + "elks4", + "el4kwi", + "el4lv", + "elm5agt", + "e1lo", + "el4ob", + "e4lol", + "el5oli", + "el5ond", + "el5ont", + "e4loor", + "e4l5opd", + "el6ope.", + "e4l3or", + "el5phi", + "els7angs", + "el5sfe", + "el6sind", + "els7indr", + "el6skan", + "el6skom", + "els7korr", + "els7krit", + "els7lof.", + "el5smi", + "els7mora", + "els6nag", + "els7nood", + "els7onde", + "els7oork", + "el6stek", + "el6s7tran", + "els7ware", + "el5swee", + "elt7akke", + "e1lu", + "el5uit", + "eluit6j", + "elui7tji", + "e3ly", + "ely6kaa", + "em5app", + "e5masj", + "eme6lek", + "eme6lew", + "eme6ron", + "eme4s", + "eme7sis.", + "emes5m", + "emes5t", + "e5metf", + "em5eva", + "e4moef", + "em3op", + "em5org", + "emp7laag", + "emp6skr", + "ems4p", + "em5spl", + "e4naf", + "ena7glas", + "en5agt", + "en5akk", + "en5alt", + "e4n5art", + "ena6spe", + "en6d5agt", + "ende7ro.", + "end7raak", + "end7rit.", + "ends7oë.", + "end7sons", + "end7ure.", + "end6wer", + "en5eil", + "en4en", + "e4n5ent", + "5energ", + "ener6tj", + "enert7ji", + "eng6hor", + "eng4la", + "eng6lor", + "e3ni", + "en4ig", + "en4im", + "en5inh", + "e6n5ink.", + "eni7soms", + "3enji", + "en6kinh", + "enkom4", + "enkoms5", + "enk3w", + "e5nomm", + "eno7ryn.", + "en5out", + "ens7adem", + "en6sall", + "ens7are.", + "ens7eise", + "ens7elek", + "ens7elik", + "en5sen", + "ens5erv", + "ens7esse", + "ens6haw", + "en5sie", + "ens7inga", + "en5sji", + "ens7koei", + "ens7kyke", + "ens7luik", + "ens6med", + "ens7nuk.", + "en4son", + "ens7onru", + "ens7onva", + "en6spei", + "ens7pist", + "ens7pot.", + "en6spou", + "ens7pous", + "ens7taak", + "en6stak", + "ens6tam", + "en6steh", + "ens6tei", + "ens6tel", + "ens7tele", + "en7sters", + "en7s6tes.", + "ens6tet", + "ens6teu", + "ens6too", + "ens7toom", + "ens7trek", + "ens7uil.", + "ens7ure.", + "en5sy.", + "ent5akt", + "en6teks", + "ent7inte", + "ent7rif.", + "ent7rok.", + "ent6sin", + "ent6son", + "ent6spa", + "ent6wen", + "en3ui", + "enu6lin", + "enu5sk", + "enu5st", + "e3ny", + "en-7steg", + "e1o", + "eoe4s", + "eo5fag", + "eo3g4n", + "eoi6ste", + "eop6lek", + "eo3ro", + "eo1s", + "eos4t", + "eo3tr", + "e4paf", + "e4p3ag", + "epe6loo", + "ep5emm", + "ep5epi", + "epers7te", + "5epidem", + "e4p5int", + "ep4la", + "ep5lap", + "ep5ligg", + "ep5lus", + "epoet4", + "epo6nin", + "ep5ops", + "e4p5rei", + "eps7ameu", + "ep6s5eis", + "eps5id", + "ep4sj", + "ep4sk", + "eps7kano", + "ep5ski", + "eps7kohe", + "ep4slu", + "eps7luik", + "eps6oms", + "eps5on", + "ep4s5pr", + "eps7waar", + "ep5uit", + "e1ra", + "er4a.", + "er5aan", + "er5afd", + "er5afh", + "er5afsk", + "er5aft", + "er5afv", + "er5afw", + "er3ag", + "era7gree", + "era7kles", + "er5aks", + "er5akt", + "er5alb", + "er6ald.", + "er5alt", + "er5ana", + "e5randa", + "e4rapp", + "er3ar", + "era6ser", + "era7uitv", + "erd7ryle", + "erd7slip", + "erd7tree", + "er3dw", + "er4eb", + "er6eenk", + "er5eers", + "er5eff", + "er5eie", + "er5eil", + "er4ek", + "er5ekst", + "er5elm", + "e4r5emm", + "e6rengt", + "e4reni", + "e4renj", + "er5erg", + "er5erv", + "e3r4es", + "er5esel", + "ere7spio", + "eres6ta", + "ere6stp", + "ere7temm", + "e5rewa", + "e1rê", + "er4fh", + "er6flaa", + "erf7leen", + "er6flet", + "erf7lett", + "er5flo", + "erf7lug.", + "erf7lus.", + "erf7omhe", + "erf7oom.", + "er4fp", + "erf7reuk", + "erf7ruik", + "erg7aren", + "erg7lyn.", + "erg7renm", + "erg7rymp", + "erg6rys", + "erg6sho", + "erg7stra", + "erg7uitj", + "er4id", + "eri5fr", + "e3rig", + "eri4g5a", + "e4r5ind", + "e6rink.", + "e6rinna", + "er5ins", + "e4r5int", + "e6r5ital", + "eri7trea", + "erk5aan", + "erk7esel", + "erk6has", + "erk7ink.", + "er6kins", + "erk7inwy", + "er4kj", + "er6klat", + "er5kle", + "erk7onde", + "erk6opn", + "erk6s5on", + "erk7spas", + "erk6sto", + "erk7uurr", + "er6kweë", + "erk7weë.", + "erk7ywer", + "er5lik", + "er5lui", + "erm4a", + "erm7aanh", + "erm7afsl", + "ern7eiwi", + "ern7kwes", + "er4nm", + "er4nn", + "ern7oes.", + "er4nr", + "e1ro", + "er5oew", + "er3oë", + "er5ogg", + "e3roï", + "e5rok.", + "e4r5oks", + "e4r5oli", + "er5om.", + "er5omh", + "er5oms", + "er6ona.", + "er5oog", + "e5room", + "er5oond", + "e5roos", + "e4r3op", + "e5ropa", + "er6opla", + "e5ropo", + "e4ror", + "e5rora", + "5erosi", + "e4r5oss", + "ero7stil", + "er5oud", + "er5oue", + "erou6t.", + "erp7anke", + "er6pinh", + "erp7inho", + "erp6lan", + "erp7ruik", + "erp6sig", + "err6ein", + "ers7assi", + "er6s5eli", + "ers7ete.", + "ers7inda", + "ers7jean", + "ers7kaia", + "er6skaj", + "ers7kaju", + "er7skake", + "ers7kaki", + "ers7kete", + "ers7kiss", + "ers7koet", + "ers7koor", + "ers7kop.", + "er5sky", + "ers7less", + "ers7lone", + "ers7luid", + "ers6mal", + "er7smara", + "er6smat", + "er4s5om", + "ers7onvr", + "ers6opn", + "ers7ower", + "ers7pien", + "ers7put.", + "ers7scen", + "er5ste", + "ers7tele", + "ers6teo", + "ers4ti", + "ers7treg", + "ers7waar", + "ert5aan", + "er6taap", + "ert7aap.", + "er5tap", + "ert7ape.", + "er6tend", + "ert7end.", + "er5tes", + "ert6hal", + "ert7jakk", + "ert7opin", + "ert7orre", + "er6tres", + "ert7rok.", + "erts5l", + "ert7uur.", + "ert6wak", + "er5twi", + "e1ru", + "erug3", + "er5uin", + "er5uit", + "er3uu", + "e1ry", + "ery7doel", + "ery7salf", + "erys6ma", + "ery7smaa", + "ery7suur", + "ery7trek", + "e5saan.", + "e5sage", + "es5agt", + "es4ak", + "es5all", + "esa6mol", + "es4an", + "es3c", + "es4dh", + "e3se", + "e4s5een", + "e4s5epi", + "es4er", + "e3si", + "es4ia", + "es4ie", + "es4if", + "esi6gei", + "e4sill", + "esin6s5i", + "es4it", + "e2sj", + "e4s5ke.", + "es5kle", + "eskor6s", + "eskors7t", + "e5s4kut", + "e3sla", + "es5lem", + "es4lip", + "e1sm", + "es4me", + "es5me.", + "es5men", + "es9mè.", + "e5smou", + "es4mu", + "es5nie", + "es5noo", + "es4ny", + "esoet6j", + "esoe7tji", + "eso7fagu", + "es4ol", + "e3s4oo", + "es4ou", + "e1sp", + "e5spel", + "es5pen", + "e4sper", + "es5pet", + "es5pir", + "es4pli", + "es4pra", + "ess6opv", + "e1st", + "es4t.", + "e5stad", + "es5tas", + "e4s5te.", + "es5tea", + "es5teli", + "e4s5tes", + "estes5o", + "est6her", + "es6tik.", + "es5toi", + "es5tos", + "e6strak", + "es4tre", + "e5stuk", + "e3sw", + "es4yd", + "e4t3ag", + "eta7stas", + "e3te", + "e4t5eie", + "ete5r6aa", + "etie4l5", + "5etike", + "et7jie-k", + "etk6ysi", + "eto6nop", + "et5opv", + "e4t5ord", + "e4t5ram", + "e6treke", + "e6treko", + "etre7kor", + "et5rim", + "ets7fyn.", + "et6skat", + "ets7kato", + "ets7kous", + "ets7krie", + "et6s5lap", + "ets6maa", + "ets5ong", + "et6spaa", + "et4spr", + "et6stek", + "ett6re.", + "et5uits", + "et5unie", + "et4wi", + "et5win", + "et4wy", + "et5yst", + "2eu.", + "eug6rie", + "e3uit", + "euk7inte", + "euk4l", + "eul7eien", + "eu4loo", + "eu5mon", + "eum7uitg", + "eu4na", + "eun6sla", + "eup7aand", + "eu4ra", + "eur5aa", + "eur6aal", + "eu5ral", + "eu4ree", + "eur7eet.", + "eu6reg.", + "eu6regt", + "eur7egth", + "eur7ekst", + "eur7elem", + "eur7spar", + "eu4sa", + "eus7ape.", + "eus7jig.", + "eus6kot", + "eus6tac", + "eute4l", + "eu5tem", + "eu3tr", + "e1uu", + "2eu-", + "eva7kwaa", + "eva6les", + "evr6ore", + "evu6es.", + "ewal4s5", + "ew4ar", + "ewee4", + "ewe7gaan", + "ewe7goed", + "ewe7inde", + "e5weis", + "ewe6nee", + "ewen8stes", + "ewe6res", + "ewe7span", + "ewik4s", + "ewiks7te", + "exy7ste.", + "eyn4o", + "e5yste", + "e3yw", + "e4zka", + "ez9ra.", + "è1r", + "ê1", + "êe4ro", + "êla7flui", + "ê4rde", + "êre6loe", + "ê4rhe", + "1ë", + "ë1g", + "ëi3e", + "ëk4sk", + "ëks3p", + "ëks6pek", + "ëk4st", + "ë3laa", + "ël5agt", + "ël5alb", + "ël5as.", + "ë4lei", + "ël5ent", + "ëlf4l", + "ël5fle", + "ë5loop", + "ëls7kuil", + "ën5agt", + "ën4tr", + "ënt5re", + "ëpre4", + "ër5aan", + "ër5afd", + "ër5off", + "ërog4", + "ëro3s", + "ër5owe", + "ërs7kent", + "ë1ry", + "ë1s", + "2f.", + "1fa", + "f5aanb", + "f3aar", + "f3ad", + "2f1ag", + "f4agi", + "fah7renh", + "fai6r-n", + "fak6ste", + "faks7te.", + "fan4t5j", + "fan4tr", + "fant6s5t", + "f3ap", + "f3art", + "faru6q.", + "2fb", + "2fd", + "f5dein", + "fde4s", + "fde7sake", + "fde7sess", + "fde7skei", + "fde7stor", + "fde7stra", + "fde7sust", + "f3d2w", + "1fe", + "4feen", + "3f4ees", + "f3eie", + "fe4l5ap", + "fel7asem", + "fel7enti", + "fe6loon", + "fel7oond", + "fel5s4m", + "fel6spoo", + "fe4lu", + "fe4ly", + "fel5ys", + "fer6skr", + "fers7kra", + "fer6sku", + "fers7kui", + "f5erts", + "fe2s", + "fes3t", + "fet7ete.", + "f1f", + "ffe6las", + "ffe6ret", + "ffe6tet", + "ffi6eek", + "ffies6m", + "ff5rei", + "f1g", + "fge7sper", + "fg4ha", + "fg4li", + "fg4ly", + "fgod4s5", + "1fi", + "fi3d", + "fid6ji-", + "fie7ekst", + "fie7lafo", + "fie7smaa", + "fie4s5o", + "fie6tol", + "fi5lag", + "fil4m5a", + "4finr", + "fi5sto", + "fit4z", + "2f1k", + "fkom6st", + "fkoms7te", + "fla4p", + "flap5o", + "f2le", + "f5lees", + "f5lese", + "fle4t", + "flet5j", + "flex7or.", + "2fli", + "5f4liek", + "3f4lit", + "2fm", + "fmo4no", + "f1n", + "fni4s3", + "1fo", + "f3of", + "4foff", + "fok4s5t", + "fol4k3", + "4foms", + "5fonds", + "fond6sk", + "fond6st", + "fonds7te", + "f5ontb", + "5fonte", + "f5ontl", + "f5oorl", + "2fop", + "fo4po", + "fop7spen", + "f5orde", + "f3org", + "for7oksi", + "fo5rom", + "fo3ru", + "fos7feen", + "fout5j", + "fox7hill", + "fox7stra", + "fp4sa", + "1f2r", + "frag6aa", + "4fram", + "f4ras", + "f4ren", + "fre4s5k", + "4f3rig", + "fri6too", + "f4rod", + "fru5ga", + "f3ry", + "2f1s", + "fs5agt", + "f4s5ank", + "f4s5eko", + "f4skon", + "fs5log", + "f3sm", + "f4sma", + "fs4me", + "fs4mi", + "f3sp", + "fs4pl", + "f4spro", + "f4s5tak", + "fs4ti", + "2ft", + "ftre4", + "ftre5d", + "ftrek5", + "1fu", + "fu4ch", + "fur6ore", + "fu3so", + "4fuur", + "f5uur.", + "2fv", + "fva4l", + "2fw", + "1fy", + "fyn7goud", + "2f1ys", + "fyt7appe", + "fyt7jie.", + "2g.", + "1ga", + "g4aai", + "gaam6s7te", + "g4aan.", + "g5aanbi", + "g6aandh", + "g5aanl", + "g5aanw", + "g4aat", + "4g3add", + "2g1af", + "g4afo", + "2g1ag", + "g4agr", + "ga5gre", + "gag6rep", + "gak4l", + "ga5kla", + "gal7afsk", + "gal7appe", + "galei5", + "gal7oog.", + "gan6gra", + "4g5anke", + "gans7ke.", + "g3app", + "ga3ra", + "4g3arb", + "4g3arm", + "gar4s3", + "gars6ti", + "gar7stig", + "g5arti", + "ga6sarm", + "gas7arm.", + "gas6mok", + "ga4so", + "ga5sol", + "gas6pel", + "gas6tre", + "ga4tr", + "gat7ruik", + "gay7nor.", + "2gb", + "gbys4", + "2gd", + "gde7roof", + "gdut7jie", + "g3dw", + "gd4wa", + "1ge", + "ge3d", + "gedi4s", + "g5eenh", + "gee6tal", + "geet7al.", + "geës3", + "geë6sti", + "ge3f", + "4ge4ff", + "gef4l", + "ge1g2", + "4geg.", + "geges5p", + "geg6uil", + "g3eie", + "geï7migr", + "ge7k6lik.", + "4geks", + "gek4y", + "gel6agk", + "gel6dad", + "gel4do", + "ge5lol", + "ge5loo", + "ge6loon", + "gel7oond", + "gel6s7te.", + "gemi7au.", + "gem6opp", + "3gen", + "gen4dr", + "gen6dur", + "genes5t", + "4geng", + "ge4oi", + "gep4a", + "ge5pag", + "geper6st", + "gepon6s", + "3ger", + "ge5rap", + "ger6ard", + "ger5ete", + "ger7iden", + "ge6roef", + "ger6ogg", + "ger6spo", + "ger5sw", + "ger6uit", + "ge3sa", + "ge5sfe", + "ge5sin", + "ges7jagt", + "ges4k", + "ges7kade", + "ge3sl", + "ge3s4m", + "ge5sne", + "ge3sp", + "ges7perb", + "ges7pers", + "ges7pes.", + "ge3st", + "ges6tas", + "ges6tig", + "ges4w", + "ge5tja", + "ge3tw", + "ge3ui", + "ge5um.", + "gev7woes", + "gewens7te", + "ge1y", + "2g1f", + "g3fl", + "gf4li", + "2g1g2", + "g3ga", + "gga7kwee", + "gga7stre", + "gga5t4j", + "gge6sti", + "2gh", + "5g4hoer", + "gho7ghok", + "gho4l", + "5gholf", + "g4hs.", + "ghu6moe", + "1gi", + "g5iden", + "gie6far", + "gi4fa", + "4gimp", + "gin6gaa", + "4g5inri", + "gip4s", + "gip7siet", + "gis7enti", + "gi5tra", + "git5sw", + "2g1k", + "gkaar4", + "5g4lans", + "gla4sa", + "gla6sel", + "gla6ska", + "glas5o", + "g4le.", + "5g4len.", + "gli6don", + "g4lif", + "gli6gur", + "4glik", + "g4lim", + "g4lip", + "3glis", + "g4lob", + "4glod", + "3g4loe", + "g4lof", + "3g4lom", + "g3lop", + "3g4lot", + "g4lo-", + "g3lus", + "3g4luu", + "g4ly.", + "4glyn", + "2gm", + "gma7skui", + "2g1n", + "gneem5", + "gneet5", + "gnie6ko", + "1go", + "god6sak", + "god6sid", + "4g3oef", + "goe7krui", + "4goes", + "g5oes.", + "g5oeta", + "goe7the.", + "goë7lary", + "2g1of", + "3gogi", + "gol4f5o", + "4g5olie", + "go4mag", + "4g3ong", + "gon6sto", + "g3ont", + "goo5gl", + "4g3oor", + "2g1op", + "go5pla", + "3g4opo", + "g5orig", + "go3sl", + "gos7pelr", + "g5osse", + "go3s4t", + "gou4d3", + "goud6a.", + "gou7dief", + "gou7dini", + "gou7dink", + "goud6s.", + "gow7rie.", + "go9ya.", + "2gp", + "1g2r", + "g4rab", + "g5rak.", + "gra4ma", + "gra7mado", + "gra4m5o", + "g4ras", + "gra4s5a", + "gra4se", + "4g3red", + "g4ree4", + "g5reek", + "greep5", + "4greë", + "g4ren", + "gren6st", + "g5rese", + "gre4sp", + "gre6sur", + "gre6tji", + "gret7jie", + "g4reu", + "griek6s7t", + "grie6t5j", + "4grig", + "gri4p", + "g5rit.", + "4g3rok", + "g4ron", + "4g5rooi", + "g5rook", + "g5room", + "g5rowe", + "4grug", + "g5ruim", + "4g3ryk", + "4grym", + "gry6ste", + "2gs", + "g2s1a", + "g5saam", + "gs3ad", + "gs6ade.", + "g4saf", + "gs5agt", + "gs5aks", + "g5sala", + "g5sale", + "gs5ana", + "gs5ant", + "gs5app", + "gs6appe", + "gs3ar", + "gs3as", + "g4s5een", + "g4s3ef", + "gs5eis.", + "g6seise", + "gs5eko", + "gs5eks", + "g5sekt", + "g4s5ele", + "g4s5eli", + "g4s5ene", + "g4s5est", + "g4sew", + "gs5ewe", + "gs3f", + "g5s6feer", + "g4sid", + "gs5ide", + "g6simpa", + "gs5inde", + "gs5ini", + "gs5inl", + "gs5ins", + "g2s3j", + "g2s1k", + "g5skaal", + "gs5kab", + "g5skad", + "g6skapa", + "g5skatt", + "g5sked", + "g5sker", + "g7skeur.", + "gs7keurd", + "g3ski", + "g4s5kin", + "g4skl", + "g5skof", + "g5skole", + "g4skom", + "g5skoo", + "g6s5koor", + "gs5korr", + "g5skot", + "g5skou", + "gs3kr", + "g2s3l", + "g3s4la", + "g5s4lop", + "gs3m", + "g5snel", + "g2s3o", + "gs4ol", + "gso6pro", + "gs4ou", + "gs3p", + "g5s4pel", + "gs5per", + "g5spes", + "g3s4pi", + "g6spill", + "gs4poe", + "gs6pore", + "g7sports", + "g5s4pru", + "g1st", + "g6s5taak", + "g4s5tab", + "gs6tabi", + "g4stak", + "g4stal", + "g4star", + "g4s5tek", + "g6stelg", + "g6stera", + "gs5teri", + "g6sterr", + "gster6s", + "g6stese", + "g4sti", + "g5stigt", + "g4stoe", + "g7stoele", + "gs5toer", + "gs5toet", + "g4s5ton", + "gs5trad", + "g6strak", + "g6stran", + "g6strap", + "g6strib", + "gs5troe", + "gs7troon", + "g6struu", + "g4s3ui", + "gs3w", + "gs6werw", + "2gt", + "gte7eenh", + "gte7lagi", + "gte6ras", + "gte6rer", + "gte4ro", + "gte7roer", + "gte7rol.", + "gtes4", + "gte7sfee", + "gte7smee", + "gt5uri", + "1gu", + "gu2a", + "gu2e", + "gu5ela", + "guid6o.", + "gui6rla", + "4guit", + "2gv", + "2gw", + "g3yst", + "2g-", + "1h2", + "2h.", + "2ha.", + "hal4f3", + "hal6m5ag", + "4halo", + "hal4s5k", + "hal6s5tr", + "ham7pagn", + "ham6skr", + "hams7kra", + "han6dan", + "han7dja.", + "han4dr", + "han4du", + "han6gli", + "han6gor", + "hangs6l", + "hang5s6w", + "han4s5k", + "han6ska", + "har6dop", + "hard7op.", + "har6sel", + "har6sol", + "har6spa", + "har6t5aa", + "har4t5j", + "har4to", + "har7toem", + "ha4wk", + "haw7shan", + "hay6eli", + "heb7lus.", + "hee4l", + "heer8s7te.", + "hees6e.", + "heg7orga", + "heg7rank", + "heg7spyk", + "5heid.", + "heid7stem", + "he4ko", + "hek7saan", + "he4k3w", + "hel7ange", + "hend4", + "hen4so", + "he2r", + "her3a", + "he9ra.", + "her6akl", + "he7rald.", + "he5r4an", + "he3re", + "her7egpa", + "he4r5ek", + "he4r5ev", + "herf4", + "herfs5", + "her3i", + "her6ib.", + "he5rid", + "he5rod", + "he5rol", + "her5ond", + "her7ontm", + "he5ros", + "her6oss", + "he5rou", + "her5ow", + "her7sche", + "her3u", + "her5yk", + "he4sp", + "hes7peru", + "he4s3t", + "hete5r6o", + "heu6paa", + "he3us", + "hev3", + "he4vr", + "hewen7st", + "hie4r", + "hier7in.", + "hie7roni", + "hie7rony", + "hië1", + "hil6lbr", + "5hings", + "hing6s5t", + "hipe4", + "hi4rl", + "hi4sp", + "his5pa", + "hi4v-", + "2hl", + "h3li", + "2hm", + "h3ma", + "2hn", + "hode6sl", + "hodes7la", + "hoe7kaai", + "hoe6kys", + "hoe6spi", + "hoe4s5t", + "hoër7op.", + "ho4fa", + "hof5aa", + "hof7amp.", + "hof7uits", + "hog6hok", + "hoi7swer", + "hok7rakk", + "hol7aar.", + "holes5", + "4holf", + "hol5in", + "hol7oog.", + "4hon.", + "hon6daa", + "hon6dag", + "hon6dro", + "hop7land", + "hop7smaa", + "ho3ro", + "hor4s", + "hor4t5j", + "hos6hol", + "ho4ta", + "hou4t5a", + "hout5j", + "hou6tol", + "hou6tom", + "hou6who", + "2hr", + "hre6sto", + "hrie4", + "hries5", + "hris5t", + "h3te", + "h3to", + "hu9go.", + "hui6daa", + "hui6dui", + "hui6sef", + "huit6ji", + "hui7tjie", + "huk6hun", + "hul4p5a", + "hul6pek", + "hul6ple", + "hul6por", + "hul6ste", + "huls7te.", + "hu3mo", + "hum7oes.", + "humus5", + "huter6s", + "hut7jie.", + "hut6spo", + "hut6ste", + "huts7te.", + "h5vill", + "2hw", + "hyg7roma", + "hys3k", + "hys7tang", + "i1a", + "iaan6so", + "iaan6sp", + "iaan6st", + "iaans7te", + "iam7son.", + "ia4nop", + "ias6koo", + "ia5spo", + "ia5sta", + "ia5s4tr", + "i4baf", + "i4bag", + "ibou6s.", + "ic5ky.", + "i2d", + "i3da", + "ida7groe", + "id5agt", + "idde6ra", + "i3de", + "ide7snui", + "i3dê", + "i3di", + "idia5s", + "id4ja", + "i5djan", + "i3do", + "i3dr", + "id2s1", + "id4s5et", + "ids7inoe", + "id4ska", + "ids7kerm", + "ids5kr", + "ids3l", + "ids7lags", + "ids7nye.", + "ids3o", + "ids3p", + "ids6pa.", + "ids6pek", + "ids6pie", + "id6spil", + "ids6pri", + "id6spry", + "ids7taal", + "ids7tee.", + "ids7teks", + "ids7tele", + "ids5ti", + "ids5toe", + "id6s7trek", + "ids7ure.", + "i3du", + "id3uu", + "ieding6s7", + "ied7ione", + "ied5rol", + "ied3w", + "i1ee", + "i4eee", + "ie5een", + "ieë7aard", + "ieë6lys", + "ief7alar", + "ie5fie", + "ie4f3r", + "ief7stal", + "ief7uitg", + "ie5gla", + "ieg7loka", + "ieg7riem", + "ie6grit", + "ieg5st", + "iek7asyn", + "ie5ke.", + "ie6k5erv", + "iek7esse", + "ie5kie", + "ie6klaa", + "iek7laai", + "ie4kni", + "ie6k5ond", + "iek7ople", + "ie6kops", + "iek7opse", + "iek5opv", + "ie4kre", + "iek7revu", + "iek7rigt", + "iek7ware", + "iek7wees", + "ie4k5wi", + "iek6wos", + "iek7wyd.", + "ie4laa", + "iel6afo", + "ie6lene", + "iel7oor.", + "iel6san", + "iel6s5on", + "ien7anal", + "ien7glor", + "ien6kro", + "ien7olie", + "ie4n5oo", + "ien4s", + "ien7sakk", + "iens5or", + "ien7sout", + "ien7span", + "iens5t", + "ien7stam", + "ien7stel", + "ien8stele", + "ien7stet", + "ien7stoo", + "ien5suu", + "ie4n5ur", + "ie6poog", + "iep7oog.", + "ie6proo", + "iep7rooi", + "ier7afma", + "ie6rafs", + "ier7engt", + "ier7eter", + "ier7neff", + "ier7omtr", + "ie4r5on", + "ier6oni", + "ier6ony", + "ier7swee", + "ies6amp", + "ie5se.", + "ie6senk", + "ies7enke", + "ies7ents", + "ies7ferw", + "ies7kaf.", + "ie6skon", + "ies7kop.", + "ies7kraa", + "ies6kry", + "ies7laag", + "ie6slep", + "ies7lepe", + "ies5li", + "ies7luik", + "ies7meub", + "ies7mooi", + "ie3so", + "ies7oes.", + "ies5ond", + "ies7oorp", + "ie6sopn", + "ies7opne", + "ies7pane", + "ies5per", + "ies7plig", + "ie6s7taal", + "ies6tas", + "ies7tee.", + "ie6steh", + "ies7tele", + "ies7tent", + "ies6tin", + "ies5uil", + "ie4s3w", + "iet7aans", + "iet7aard", + "iet7alba", + "ie5te.", + "iet7erts", + "iet7omse", + "iet7reke", + "iet7reko", + "iet4sl", + "iet7uie.", + "ie5twi", + "ie4tys", + "i1eu", + "i4eub", + "i4eud", + "i4eug", + "ieu7grie", + "i4e3ui", + "ieu7ing.", + "i4eul", + "i4eum", + "ieu7skot", + "i4euu", + "i4euv", + "i4euw", + "ie5wie", + "ie4w-", + "ie5yst", + "ie-7klik", + "i3èr", + "i1ê", + "iël6sku", + "iën6tji", + "iënt7jie", + "ië4s3t", + "i4fei", + "i4fim", + "i4fin", + "if1l", + "i2f3r", + "i4f3ui", + "i4g5aan", + "i4gap", + "igare4", + "igaret5", + "ig5eff", + "ige6naa", + "ig5ete", + "ig5ins", + "ig1l", + "ig5loe", + "ig4op", + "ig5opt", + "ig5org", + "igo7roos", + "ig5res", + "ig5roo", + "i4g3ry", + "ig3sa", + "igs6ins", + "igs7kaps", + "ig7skend", + "igs5ko", + "ig5sku", + "igs6mee", + "igs6ona", + "ig5soo", + "igs7poei", + "ig5sti", + "ig7stoei", + "igu7era.", + "ihu6ahu", + "i1i", + "ike6roe", + "iket5j", + "ik5kli", + "i2k3n", + "iko6nat", + "i1kr", + "ik6sakt", + "iks7akte", + "iks7iden", + "ik4sin", + "iks7inve", + "iks7juk.", + "ik6skom", + "iks7paar", + "iks6pad", + "iks7pare", + "iks6tik", + "iks6tuu", + "iks6wel", + "ik5wan", + "i4k3we", + "i4kwy", + "2il", + "i1la", + "il5agt", + "ila6too", + "ilbe6st", + "ild7agti", + "ild7smaa", + "ild6stj", + "ild7temm", + "ilet5a", + "ile6tji", + "ilet7jie", + "ilf4l", + "il5fli", + "il5gha", + "ilinde6", + "illo4w", + "3illu", + "il4m5at", + "ilm7oper", + "i1lo", + "ilo5sk", + "ils7insp", + "ils7orde", + "il4spr", + "ilt7aar.", + "i1lu", + "i2m", + "i3ma", + "im5agt", + "i3me", + "i4mek", + "im5eks", + "ime7laar", + "iment6s", + "ime4s", + "imes5t", + "i3mê", + "i3mi", + "5immigr", + "i3mo", + "i4m3o4p", + "imo7theu", + "5implik", + "i3mu", + "imu6maa", + "in5aard", + "i4naf", + "i4n3ag", + "in5akk", + "in5arg", + "in4d5aa", + "in4das", + "inder7as", + "5indiv", + "ind6oef", + "in6doog", + "ind7oogm", + "in6d5oor", + "ind7sleu", + "ind5sw", + "3indu", + "in5dwi", + "inee7tji", + "ine5ra", + "2inf", + "ing7aars", + "in5gan", + "ing7eter", + "ing6hpa", + "in6gind", + "in6ginf", + "ing7infr", + "ing7inst", + "ing6leb", + "ing6ope", + "ing6opl", + "ing5ou", + "ing7pseu", + "in4g5ru", + "ing7saag", + "ing7sap.", + "ing7see.", + "ing7sekr", + "ing7seku", + "ing7sfer", + "ing7sin.", + "ing7sinj", + "ing7skal", + "ing7skêr", + "ing7skud", + "ing7slep", + "ing7slym", + "ing7sofa", + "ing7som.", + "ing7somm", + "ing6s7pil", + "ings9telle", + "ing7stin", + "ing7suie", + "ing7suil", + "ing7swel", + "ing7uil.", + "i3ni", + "ini6gaa", + "in4ik", + "in5inf", + "5inisia", + "ink7erts", + "ink7laag", + "ink7ler.", + "ink7nerf", + "ink5nu", + "ink7ogie", + "in4kol", + "ink7olie", + "5inkom", + "ink7ring", + "in6krol", + "ink5st", + "ink7wit.", + "5innam", + "5innemi", + "innes6t", + "inne7ste", + "in5ong", + "ino7skaa", + "in5rag", + "5inrig", + "ins7epou", + "in6s5ete", + "5insets", + "in4sg", + "ins7kaps", + "ins6kin", + "in3sl", + "ins7molt", + "ins7moor", + "ins6ond", + "5inspek", + "ins7prie", + "ins4t", + "5insti", + "insti7t.", + "ins6ton", + "ins7twis", + "int7appe", + "int5ess", + "inte6s5t", + "int6he.", + "int6uit", + "int6wyf", + "inu5e.", + "5invlo", + "i1o", + "io3pr", + "ior6ubr", + "io1s", + "ios4k", + "io5skl", + "ios4p", + "ios4t", + "io3tr", + "i2p", + "i3pa", + "i4p3ag", + "i3pe", + "i3pi", + "i3pl", + "ip4lo", + "i3po", + "ipo4s5t", + "i3pr", + "ipre4", + "ip4s.", + "ips7kopi", + "i3pu", + "i4pui", + "i3py", + "i1r", + "ir4ch", + "irke4", + "irkel5o", + "irop4", + "iro5pr", + "iru4s", + "i4rwa", + "is3ag", + "i5sagi", + "i4s5aks", + "i6sangs", + "is3ar", + "i4sarg", + "is5asp", + "i4sav", + "is3c", + "i4s3ei", + "i4s3et", + "ise5um", + "i5sfeer", + "ish7nie.", + "i4s5int", + "is5inv", + "i2sj", + "i4sj.", + "is5jan", + "is5joe", + "i2s3k", + "is4k.", + "i4ska", + "is6kaaf", + "is5kan", + "is4kê", + "is5kui", + "i2s3l", + "is5laa", + "i5slag", + "is3m", + "i5s4mit", + "i2s3n", + "is5oes", + "is5ond", + "is3or", + "is3p", + "is4p.", + "is3t", + "is4t.", + "is4th", + "isto7pho", + "i5s4tyn", + "i4s3ui", + "i5suik", + "isu6maa", + "is3w", + "i2t", + "i3ta", + "it3ag", + "ita6tis", + "it3b", + "i3te", + "ite7dwal", + "ite7glas", + "itek7te.", + "ite6mas", + "i5tenh", + "it4er", + "ite5ru", + "i4t5ete", + "i3tê", + "i3ti", + "it4in", + "i4t5ins", + "i3to", + "ito5fa", + "ito7plan", + "ito7rowe", + "it1r", + "it3re", + "it3ry", + "it4sc", + "it5ser", + "its5ete", + "its7jood", + "it4s5oo", + "its7perk", + "its6tek", + "its7tori", + "its7uur.", + "i3tu", + "itu6saa", + "it5win", + "i3ty", + "ity7sokk", + "itz7laan", + "i1u", + "ium1", + "iu4ma", + "iu4me", + "iu4mi", + "iu5mie", + "ium6uur", + "iwel6s5k", + "iwe7mos.", + "iwes4", + "iwe7spor", + "iwe5st", + "1ï", + "ï2m", + "ïn5akt", + "ïn3o", + "ïns4t", + "ïn5und", + "ïs5lam", + "ïs3t", + "1j", + "3jaa", + "jaar6s7kr", + "3jac", + "ja4cq", + "3jag", + "ja4ga", + "jan7ghai", + "jan7knap", + "jap4l", + "ja5pla", + "3jare", + "3jari", + "ja4sm", + "jas7pant", + "jas6tas", + "jaz4z", + "jaz7zeri", + "je4kn", + "je4kr", + "jek7rasi", + "je5rop", + "jes7nië.", + "jes4t", + "je4t3r", + "jet6sjn", + "jeu4g", + "5jie5kn", + "jie6nan", + "jie6nol", + "jien5s", + "5jieon", + "5jieop", + "jie6ska", + "jie7skap", + "jies7kat", + "jie6ski", + "jie6skop", + "jie6s5lo", + "jie6slu", + "jie6sol", + "jie6son", + "jie6spa", + "jie6s5tr", + "jie6sui", + "jie7suik", + "ji4eu", + "jin7gope", + "ji4rp", + "job4s3", + "joe7kwee", + "joen6sk", + "5joern", + "3jong", + "jos6afa", + "jou7kuit", + "juit6sp", + "juk7riem", + "3jun", + "jun6kre", + "2k.", + "1ka", + "k4aal", + "k5aand", + "kaan8s7te.", + "k5aanw", + "kaar7se.", + "kaars7te", + "5kaart", + "kaar6ti", + "kaar6t5j", + "kade6la", + "kade6sl", + "4k3adv", + "5kafee", + "kaf6oef", + "4kafr", + "4k3afs", + "2k1ag", + "5kagem", + "k4agg", + "5kagge", + "k4ago", + "k4agr", + "4kaks", + "kal4k5a", + "kal4k5l", + "5kalko", + "kal6koo", + "kal4kw", + "kal4s5p", + "kal4st", + "3kam", + "kam6par", + "kam6ple", + "kams4", + "3kana", + "kaner5o", + "3kank", + "kan6ont", + "kan6sko", + "kan6ste", + "kans7te.", + "3kant", + "kan4t5j", + "kant7om.", + "kan4t5r", + "ka4pak", + "5kapas", + "kap7inte", + "5kapit", + "kap6lak", + "kap7lat.", + "kapo4", + "ka5pri", + "kap7seis", + "kap6spr", + "kap6stek", + "5kapte", + "3kar.", + "5karak", + "4k5arbe", + "k5arm.", + "ka5roo", + "kar6oor", + "kar4st", + "k5arti", + "kar5to", + "3kas", + "4kasg", + "kas7laai", + "kas6maa", + "kas7traa", + "ka5s6tro", + "5kateg", + "kat7etes", + "kat6har", + "kat6hu.", + "ka4too", + "kat7ryk.", + "kats4", + "kat5sw", + "kat7uil.", + "kay6aku", + "2kb", + "kbe6kwi", + "kbout7ji", + "2kd", + "k3de", + "1ke", + "kede6lo", + "kee2", + "keel5a", + "4keen", + "keep6s5t", + "keer6so", + "keer6ste", + "keë6laa", + "keël7aar", + "4keff", + "kei6dro", + "keids7pr", + "4keik", + "keis4", + "kei5st", + "4k3eks", + "ke4l5ak", + "ke6lane", + "kel7anem", + "kel7assi", + "kel7eenh", + "4k5elem", + "ke6linb", + "kel7inbr", + "kel6mag", + "ke4l5ou", + "kels8onde", + "kem6afa", + "4k3emm", + "ken6aar", + "ken6dra", + "ken7eel.", + "4k3enj", + "3kenm", + "3kenn", + "ke4nou", + "ken7son.", + "kep7laai", + "kep7ler.", + "ke4p5lo", + "kep5sk", + "ker7een.", + "ke4rel", + "ker7els.", + "ker7flan", + "3kerk", + "ker6kal", + "ker6kin", + "ker6k5or", + "ker6kow", + "ker4kr", + "ker7kris", + "ker6kui", + "kerk7uil", + "kerk5wy", + "ker6m7eng", + "ker6naf", + "ker6nei", + "ker6nen", + "ker4n5o", + "ker7oes.", + "ke4r5on", + "ker6pru", + "ker6set", + "ker4sk", + "ker7skil", + "kers7kom", + "ker6slo", + "ker4sn", + "ker4so", + "ker7son.", + "ker6s5pi", + "kers5w", + "4kerts", + "6k5ervar", + "kes6el.", + "ke4sn", + "ke6trol", + "ket6ska", + "5ketti", + "ke4tu", + "keu6ror", + "3keus", + "keut7jie", + "key7kleu", + "key7nooi", + "kê4rb", + "2k1f", + "2k1g", + "kga7laga", + "kge5la", + "2kh", + "kha7yeli", + "k4hoi", + "khu7khun", + "1ki", + "ki2e", + "kie6dro", + "kie7laai", + "kie6mas", + "kiem7as.", + "kie6sent", + "kie4s5k", + "kie7skry", + "kies5l", + "kie6slo", + "kies7tan", + "kie4ta", + "kieu5s", + "ki4kl", + "ki4ma", + "4kimm", + "5kind.", + "6k5indel", + "kin5dr", + "4kindu", + "k3inh", + "4kinl", + "4k5inst", + "kio4s", + "kios7ke.", + "kip7ling", + "ki4rc", + "3kis.", + "kis7obli", + "ki5s4po", + "ki5s6tew", + "kit4s", + "kits5k", + "2k1k", + "kk4ag", + "kka7smaa", + "kka5str", + "k3ke", + "kke6nee", + "kker5kr", + "kk4li", + "1k2l", + "k5ladi", + "4kland", + "k5lang", + "k4lank", + "klas3", + "klas6e.", + "kla6sin", + "k5leerd", + "4kleg", + "k5lege", + "k4l4ei", + "4klel", + "4k3len", + "3kle4p", + "klep7as.", + "k4ler", + "5klere", + "kle5us", + "k3lê", + "4klied", + "k4lier", + "4k3lig", + "4k3lik", + "5klikk", + "kli6kop", + "k4lim", + "kli6moe", + "k4lin", + "5klink", + "k5linn", + "kli4p3", + "k4lis", + "kli7sjee", + "4klog", + "klo6kon", + "k5loos.", + "k4lou", + "klub5h", + "klu6bre", + "4klug", + "2k3ly", + "2km", + "kman7spo", + "1k2n", + "k4nap", + "4knav", + "5kneg.", + "4knei", + "4knem", + "kne4t", + "knet5j", + "3kni", + "kni6kla", + "kni4p3", + "knoe4", + "knoe7te.", + "4k3nom", + "k5noot", + "k4nop", + "knor7os.", + "1ko", + "kob7rego", + "3kod", + "4k3oef", + "3koek", + "koe6kei", + "koe4l5o", + "koe5pl", + "3koer", + "koe4s3", + "koe7sist", + "3koë", + "4koë.", + "k4ofi", + "4kogi", + "kok7onth", + "kok6skr", + "ko5lag", + "kol6for", + "3koll", + "3kolo", + "3kolw", + "3kom", + "kom7aan.", + "kom7bina", + "4komg", + "kom7ghad", + "k5omhu", + "kom7miss", + "kom7saal", + "kom4sp", + "kon7atoo", + "4k5ontl", + "kon5tr", + "4k5onts", + "4k3oog", + "ko4op", + "5koord", + "3koö", + "ko4pag", + "kop7ape.", + "kope7la.", + "kop7las.", + "4koplo", + "3kopm", + "4kopn", + "5kopno", + "ko4po", + "6kopper", + "kop7uits", + "kord7aan", + "kor6doe", + "kor6foo", + "k3org", + "koring7s", + "k3ork", + "ko3ro", + "3korp", + "kor4s5l", + "kor7sten", + "kor4t5a", + "kor6tji", + "kort7jie", + "3kos", + "kos7eetp", + "kos7inko", + "kos7juff", + "ko4sk", + "ko5ski", + "kos5ko", + "kos5pe", + "kos5taa", + "ko4t5ak", + "5kotel", + "kous7te.", + "kou5tj", + "kovi7ev.", + "ko4vk", + "ko4vs", + "k5owerh", + "2kp", + "kpro6pa", + "kp4si", + "k2r", + "k5raad", + "3kra4g", + "kra7gers", + "krag5o", + "k5rak.", + "4krand", + "5krank", + "5kredi", + "5kreet.", + "k4reëe", + "4k3reg", + "4k3rek", + "k3rel", + "k5rese", + "3kret", + "4kri4f3", + "4krig", + "kri4k3", + "kri6moo", + "3krin", + "kri4p", + "krip7lee", + "3kris", + "4k3riv", + "k5roet", + "k5rolp", + "5kroon", + "kr4or", + "4k3row", + "4krub", + "3krui", + "4kruim", + "kru6kas", + "kruk6s.", + "kru4l", + "k5rusp", + "kry6fin", + "krygs5t", + "4k3ryk", + "kry7sket", + "3kryt", + "2k1s", + "ks6aan.", + "ks5agt", + "ks4ak", + "ks5chi", + "k4s5een", + "k4s5erv", + "k4s5eti", + "k3si", + "k6singe", + "ks5ins", + "ks6jari", + "k4skan", + "ks5kin", + "k4skon", + "k4slê", + "ks3li", + "k5s6maak", + "ks5moo", + "k5smou", + "k2s3n", + "k5snob", + "k4sob", + "ks5obj", + "k4s5ond", + "ks5onl", + "ks5opk", + "k2sp", + "k5spek", + "k5spel", + "ks5pen", + "ks5per", + "k5spes", + "k3spi", + "k4spir", + "k5spra", + "k5spri", + "ks5pur", + "k6s5taal", + "ks5tant", + "k6steken", + "k6stemp", + "ks5tens", + "k6stera", + "k6s5teri", + "k6sterr", + "kster6t7j", + "ks5tet", + "ks5tip", + "k7strado", + "k6s5trah", + "k5s6trak", + "ks5tur", + "ks5tuu", + "k3sty", + "ks3ui", + "k4s5ure", + "ks3w", + "k5swei", + "ksyn4", + "2kt", + "kte6rad", + "kte6ron", + "kter6sp", + "ktes4", + "k4the", + "k3ti", + "k3to", + "kto6rev", + "k3tu", + "kt4wi", + "1ku", + "kud7aksi", + "3kuik", + "4kuim", + "kuin4", + "kuins5t", + "4kuit", + "kul6der", + "kul6plo", + "kul6poo", + "3kult", + "3kun", + "4k3uni", + "kun6sin", + "3kurs", + "3kus", + "ku6seen", + "kus7lang", + "kus7node", + "kus7taak", + "kut3r", + "kut6slu", + "kuus6te", + "kuu7ste.", + "2kv", + "kvang6s", + "1k2w", + "4k5waar", + "k3wae", + "k4wan", + "3k4war", + "kwa7skaa", + "k4week", + "4kwees", + "4kweg", + "4k3wer", + "kwê7lafl", + "kwik3", + "kwi6kwa", + "3kwis", + "2k3wo", + "3k4wot", + "k3wu", + "ky4fa", + "kyk7uit.", + "k1ys", + "2k-", + "k-5kli", + "2l.", + "4laanb", + "4laanh", + "4laard", + "laat7slo", + "laat6str", + "lad7onde", + "la4du", + "4ladv", + "2laf", + "la4fa", + "l3afd", + "2lag", + "l4ag.", + "la4ga", + "la5ga.", + "la5gas", + "l4agi", + "la5gie", + "l4agl", + "lag7lag.", + "l4ago", + "lag5ri", + "lag7some", + "lai6rgo", + "lak7albu", + "lak6led", + "lak7okul", + "lak7oore", + "4l5aksi", + "lak3w", + "lak7ware", + "lamb7da.", + "la4m5oo", + "lam6pli", + "lam6pol", + "lamp7oli", + "lam6sko", + "lam6sle", + "lam6spe", + "3land", + "lan6daa", + "land7aar", + "lan6dad", + "lan4d5r", + "land6sta", + "land6s7te", + "lan6gaa", + "lan7gnol", + "lan4go", + "lang7ste", + "langs8te.", + "lan6gur", + "lan4k5a", + "lan4k5l", + "lan6kop", + "lank7ope", + "lan4k5r", + "lan6kwi", + "lan4s5k", + "lan4sp", + "lan4s5t", + "lan6taa", + "lan7taat", + "lan4t5j", + "lan6tre", + "4lantw", + "lap3r", + "4l3art", + "las7elek", + "las6ie.", + "la4sn", + "la4so", + "la5sol", + "la4sp", + "las5pa", + "late5r6a", + "5lawaa", + "lba6spe", + "lbe6kne", + "lbo6wvi", + "lb4re", + "ld5amb", + "ldan7ha.", + "ld5apt", + "l4d5een", + "ld5eis", + "lde6rat", + "lder7os.", + "ld5ins", + "ld3of", + "ld5oor", + "ld6oor.", + "ld5ord", + "l4dow", + "ld5owe", + "l5draa", + "l4d3re", + "lds4k", + "lds6maa", + "ld3so", + "lds6ond", + "ld3sp", + "l4d5uit", + "1le", + "lec5tr", + "lee2", + "lee4g3", + "4leep3", + "leer5a", + "leer7eis", + "5leerl", + "leer5o", + "leer5s", + "lee4s", + "lees7tra", + "lee7tjie", + "lee7vaar", + "4l3eff", + "leg7slot", + "4leien", + "lei7gleu", + "lei6kaa", + "lei6naa", + "lei6not", + "lei7skoo", + "lei6spa", + "leis7pan", + "lei7spir", + "leit5s", + "lek7loti", + "le4kn", + "lek6suu", + "3leli", + "5lengt", + "4lenj", + "len6sel", + "len6ste", + "lens7te.", + "len6tji", + "lent7jie", + "le5pel", + "lep5li", + "lep7oog.", + "lep7ratw", + "lep5sk", + "lep6szy", + "leps7zy.", + "ler4a", + "5leraa", + "ler6kam", + "lerk7amp", + "lerk5sp", + "4lerts", + "le4see", + "le4set", + "les5ete", + "les6hab", + "les7insl", + "le4ske", + "les7kes.", + "les7lie.", + "les7onde", + "le4s5oo", + "le3st", + "les7taak", + "le4ste", + "le5stel", + "les6tin", + "les5tra", + "les4ty", + "les7uur.", + "les7wete", + "l5etan", + "le4tc", + "let5em", + "let7oorb", + "let7rol.", + "let6sko", + "4leuf", + "le3u4m", + "leun5s", + "leur7eg.", + "leu4r5o", + "leute4", + "lew6ein", + "6l5ewena", + "4l5ewig", + "3ley", + "1lê", + "lê4rw", + "lf5aan", + "lfa7stra", + "lf3ei", + "l4fek", + "lf5eks", + "l4fen", + "l4f3ev", + "lf4ie", + "l4fin", + "lf5ing", + "lf3l", + "l5flap", + "lf5onde", + "l5fone", + "lf5onts", + "lf3op", + "l2f3r", + "lf6skar", + "lfs7karm", + "lfs7kop.", + "lfs7kuil", + "lfs7nier", + "lfs7oog.", + "lfs7perk", + "lft4w", + "l4f3ui", + "l4f3uu", + "l1g", + "lg4ha", + "l4gli", + "lgo7lagn", + "lg6ordy", + "lgs6mee", + "1li", + "liat6ji", + "lia7tjie", + "3lid", + "lid7onts", + "3lied", + "lie6gli", + "lie6kwy", + "lie5la", + "liers5w", + "lie5sme", + "lie7steg", + "lie7stys", + "lie7swak", + "4l3i4eu", + "lig7inte", + "lig6las", + "lig6ny.", + "lig7omge", + "lig7rekl", + "lig7riet", + "li4gro", + "lig7skag", + "lig7sona", + "lig5s4p", + "lig5s4w", + "lig7ure.", + "lik7aspa", + "4likk", + "5likkew", + "li4kl", + "lik7opsi", + "lik6see", + "lik6sju", + "lik6soo", + "li4k5wa", + "lin6gid", + "lin6gin", + "lin6gli", + "lin6goo", + "ling7ooi", + "4linh", + "lin4k5l", + "lin4kr", + "l5inli", + "4l3inr", + "l5insp", + "lin4t5j", + "4linv", + "li4pa", + "li4p3l", + "lip5la", + "li5plo", + "li6poml", + "lip7omly", + "li4p3r", + "lips4", + "lip7soom", + "5lisen", + "l5item", + "liter6t7j", + "lit3j", + "litjie6", + "lit3r", + "lit7sha.", + "lit4sp", + "lit4s5t", + "lit6zdo", + "ljus4", + "l1k", + "l4kaf", + "lka6tio", + "lkat7ion", + "lk5een", + "lks7emos", + "lks7epos", + "lk6skap", + "lk4sku", + "lk4sl", + "lk4son", + "lks7ower", + "lk5spe", + "lk5spr", + "lk6stel", + "lks7tell", + "lkter6t", + "lktert7j", + "lk5uil", + "lk5wat", + "lk5wit", + "l4kwy", + "lk5wyf", + "2l1l", + "l3la", + "llat6ji", + "lla7tjie", + "llei5s", + "lle7knop", + "lle6rui", + "lle6swe", + "lleve7ë.", + "llo5sk", + "lls7moor", + "l4maf", + "lmo6kal", + "lmo4no", + "lm3sm", + "l1n", + "lne4s", + "lob7eend", + "loe6dal", + "loe6det", + "loe7dja.", + "loe6don", + "loe4d5r", + "4loef", + "loe6gos", + "loeg7os.", + "loers7te", + "loe6skr", + "loe4st", + "lof7opri", + "lof6spa", + "4logig", + "log4o", + "lo5gop", + "log7sot.", + "log4st", + "log7stok", + "lo4k3l", + "lok7onde", + "lok7swin", + "lo5kwi", + "l5olie.", + "lomer4", + "lomert5", + "loms4", + "4lond", + "lon6gaa", + "long7aar", + "lon6spa", + "lon6ste", + "lons7te.", + "4lont", + "lon4t5j", + "3lood", + "loofs5w", + "l4oop", + "5loopb", + "l5oore", + "5loosh", + "loo7stra", + "lop7emme", + "4lopl", + "lop6rys", + "lo3ro", + "lo5ryn", + "5lose.", + "lo4sj", + "lo4sk", + "los7laat", + "los5ta", + "los7trum", + "los7wikk", + "lo4tak", + "lot7riet", + "lot7ruïn", + "lot7swan", + "lot5ui", + "loui7sa.", + "lou3t", + "lou6wna", + "lou6wre", + "lou6wtj", + "lo4wr", + "low5ry", + "lox7era.", + "lö4jd", + "löj6don", + "lp5aan", + "lpe6nin", + "lp4he", + "l4pon", + "lp5ond", + "l1r", + "2l1s", + "l4s5aar", + "l4sad", + "ls5arm", + "l4s5asp", + "l4s5eko", + "lse4l", + "lse5le", + "lse6mek", + "ls5erva", + "ls5fei", + "lsg6haa", + "lsi6g5aa", + "ls5jas", + "l4s5kin", + "l4skon", + "l6skorr", + "l4skre", + "l4skru", + "l5s6maak", + "l5s4mee", + "l4snaa", + "ls5opw", + "ls6plet", + "l5s4pli", + "l4spu", + "l3st", + "ls4ti", + "l6stoeg", + "ls5waar", + "ls5wet", + "ls5wyn", + "l4t3ag", + "l4t5amp", + "lta7spie", + "lter6sk", + "lt5oond", + "l5t4wak", + "lu4bh", + "lu4bl", + "lub5le", + "lub7loka", + "lu2g1", + "lug6er.", + "lu5gub", + "3lui.", + "4l5uie.", + "lui7masi", + "lui7slan", + "4luit", + "luk5raa", + "luk7rake", + "luk6s5pa", + "l5unie.", + "luns6a.", + "lur6pag", + "lus7moor", + "lu3t4h", + "lut6zpu", + "luus6te", + "luu7ste.", + "lva7soor", + "lve5ti", + "lwe4r5a", + "lwe6rui", + "1ly", + "lyce7um.", + "ly4fe", + "ly4fo", + "lyk7aant", + "lyk7lope", + "lyk7lug.", + "ly4kn", + "ly4k3o", + "lyk6ont", + "lyk7rede", + "lyk5sk", + "ly4ma", + "lym5ag", + "lym7uint", + "3lyn", + "lyn6aaf", + "ly3pl", + "ly3sp", + "lyt7ring", + "1m", + "2m.", + "mac7dona", + "made7us.", + "mae4s", + "m1af", + "4mafd", + "m4afo", + "ma5fro", + "4mafs", + "mag6sta", + "ma4hd", + "mah5di", + "mak6lot", + "ma3kw", + "ma5lag", + "mal7thus", + "mamat6j", + "mama7tji", + "man7djar", + "man3g4", + "man7gona", + "man6n-p", + "man7salm", + "man7spen", + "man6spr", + "man6s7taa", + "man6sto", + "man7ure.", + "map4l", + "ma3ra", + "mar6kek", + "mar6kle", + "mar6kom", + "mar6kon", + "mar4k5r", + "mar6lpr", + "mar4s5k", + "mar4s5t", + "mar6tro", + "mary7na.", + "mas6koo", + "mas6kri", + "mas6kui", + "mas6tek", + "ma5s4tr", + "mat6hes", + "mat7thys", + "may7nard", + "2mb", + "mb4re", + "2md", + "mdo6poë", + "mdop7oë.", + "md5soo", + "m3dw", + "md4wa", + "4meder", + "mee7kole", + "mee5kr", + "5meel.", + "mee5l4o", + "mee5ne", + "mee7reis", + "mee7reke", + "mee5sl", + "mee7spre", + "meest7al", + "mee6tre", + "me3ga", + "megas4", + "mega5st", + "4megt", + "mei6nee", + "mel6aar", + "mel7ekwa", + "mel6kal", + "mel6kjo", + "mel6kla", + "mel6kna", + "mel4k5r", + "melk5s", + "mel4k5w", + "mel7spul", + "mel6too", + "mem7phis", + "men7angs", + "men7eise", + "men7opga", + "men6sky", + "men6snu", + "men4s5p", + "men6s5ta", + "men6tin", + "men4t5j", + "men4t5r", + "me5phi", + "me4rak", + "me6rass", + "mer7asse", + "mer5ast", + "mer7dein", + "me4rei", + "me6reng", + "mer7enge", + "mer7esse", + "mering8s9taa", + "mer6kli", + "mer6kna", + "mer7kopn", + "mer4kw", + "mer7kwar", + "mer5oes", + "mer7onth", + "mer7treë", + "mes4a", + "me4sal", + "me4s5ka", + "me6s7koor", + "me6skor", + "mes7kore", + "me6skro", + "mes7kroe", + "me4sl", + "me5slu", + "mes7moss", + "mes7port", + "me6stas", + "me4s5to", + "mes7ware", + "me4t5ee", + "met7emps", + "meter6so", + "meu6las", + "meul7as.", + "2m1f", + "mfloer6", + "2m1g", + "mgang4", + "mgangs5", + "mgeper6", + "mges7per", + "2mh", + "mh4ei", + "4mid.", + "mid7osea", + "4mids", + "mids5t", + "mie6kas", + "mie6kwa", + "mie6ret", + "mie4r5y", + "mie6skr", + "mie6taa", + "mie6tji", + "miet7jie", + "mig6re.", + "migu7el.", + "mih7rab.", + "mil6taa", + "min7gopl", + "4m5insp", + "6minstu", + "mi4rl", + "mi3sf", + "mis7sêr.", + "mis6tkr", + "mis6tok", + "mit7swa.", + "mi4v-", + "2m1k", + "mkaar4", + "mkom6st", + "mkoms7te", + "2m1l", + "m3la", + "2mm", + "mma5sp", + "mmas6to", + "mma7stor", + "mmat6ji", + "mma7tjie", + "mme7loor", + "mme6res", + "mme4r5o", + "mmi7stok", + "2m1n", + "3mod", + "mode4l", + "mod6jad", + "3moe", + "moed4s", + "moe6nes", + "moe4st", + "mof6lam", + "mok7alba", + "mole4s5", + "m5olie.", + "mol4m5a", + "mon6dch", + "mon6dop", + "4m5onts", + "3moon", + "moor6da", + "2mop", + "m3opl", + "4morg", + "mo3ro", + "mor6sju", + "mor6spo", + "mor4s5t", + "mo5saa", + "mos3f", + "mos7fles", + "mos7inen", + "mo4ske", + "mos7keë.", + "mo5sta", + "3mot", + "mote7us.", + "mot6heu", + "motor5a", + "mou5fl", + "mou7slip", + "mou6ste", + "mous7te.", + "mou6tek", + "mo9ya.", + "5môre.", + "2mp", + "m4pag", + "mpa7gne.", + "mp5agt", + "mpe6lys", + "mpen6to", + "mp4her", + "mp5ops", + "mps7kraa", + "mp5sli", + "mps7taal", + "2m1r", + "2m1s", + "ms5app", + "m4s5kat", + "m4skon", + "ms7kraal", + "m5slin", + "m3s4me", + "ms3op", + "ms5pen", + "m6s5taal", + "ms4te", + "m5steg", + "m5steo", + "m3sw", + "2mt", + "mter6t5j", + "muc7klen", + "mues7li.", + "muf7smaa", + "mui6les", + "4muit", + "3mul", + "mum7aant", + "muns4", + "mun5st", + "mun6tou", + "mur4g", + "mur7gie.", + "3mus", + "2mv", + "mvi6tra", + "2mw", + "myl7afst", + "myl6sla", + "3myn", + "myn7ent.", + "myn7impa", + "myn7inge", + "m1ys", + "2m-", + "2n.", + "1na", + "3naal", + "3n4aam", + "4n3aan", + "6n5aardi", + "naar6skr", + "n5admi", + "4n3adv", + "nae6lys", + "nael7yst", + "n1af", + "n4afi", + "naf6lad", + "nag6aand", + "na6gaap", + "na4g5ap", + "na6gemm", + "nag7emme", + "nag6las", + "n4ago", + "nag5ron", + "nag3s", + "4nagt", + "n5agtig", + "na4gu", + "nai7set.", + "na5kli", + "nak6lip", + "4nalf", + "4nalt", + "3nam", + "na3p4l", + "na3pr", + "nap7roet", + "4n3arb", + "4narea", + "na3s4k", + "nas7klip", + "na3s4l", + "nas6maa", + "na3sp", + "nas6pel", + "nas4pr", + "na5s4ta", + "nas6ten", + "nas6tor", + "na5s4tr", + "na5stu", + "nas6tuu", + "nas4w", + "na5swe", + "na5t4ha", + "nat6jie", + "nat7onde", + "3nav", + "5nawee", + "na9yl.", + "2nb", + "nba6chs", + "4nche", + "2nd", + "nda7gesk", + "nd5akt", + "nd5app", + "n4d5arb", + "nd5art", + "n4d5ass", + "nda7stoe", + "nde7eier", + "n4d5een", + "nd5eg.", + "nd3ei", + "nd5eksa", + "ndel8s7kor", + "ndel8s7taa", + "nd5emm", + "nde6rad", + "nde6raf", + "nder7af.", + "nde6rar", + "nde6rem", + "nde6r7ent", + "nde6r7ess", + "nde6rim", + "nder7in.", + "n6deros", + "nde7rosi", + "nde7sill", + "nde6zvo", + "nd5ide", + "ndi5go", + "nd5ins", + "nd3of", + "n5dome", + "nd5omt", + "nd5ond", + "nd5ont", + "n4d5opb", + "ndo5st", + "nd5rak", + "nd5rat", + "n4d3re", + "nd6resd", + "nd5riff", + "nd5riv", + "nd5roe", + "nd5rok", + "nd5rot", + "n6druim", + "nds7ertj", + "nds7geru", + "nd6sinl", + "nds7kenn", + "nds7koor", + "nds7kraa", + "nd6s7laag", + "nds6leg", + "nd5s6maa", + "nds6ons", + "nds7oorn", + "nd5sor", + "nd6spre", + "nd5spu", + "nds7taal", + "nd6stek", + "nds7toet", + "nds7troe", + "nds6wee", + "ndt6wis", + "ndu4e", + "n4d5uit", + "ndu7kraa", + "n4d3ys", + "1ne", + "nebe6st", + "nec7ticu", + "5neder", + "nee2", + "nee4l", + "neel5a", + "n4eem", + "4n5eend", + "4n5eenh", + "neer5o", + "neer5s", + "nee6tew", + "neeu3", + "nee7uur.", + "nee7woor", + "4neff", + "4neg.", + "ne5gla", + "n3eie", + "4neil", + "4neksp", + "n5ekspe", + "nel6lma", + "ne6loon", + "nel7oond", + "nel6spo", + "3nem", + "nem6afi", + "nen4sl", + "nep7olie", + "3ner.", + "ner6faf", + "nerf7af.", + "ne4ros", + "ner7psig", + "ner6sle", + "ner5sw", + "ners6we", + "nes7evan", + "nes6tas", + "ne4ste", + "net7omge", + "ne4tri", + "ne5um.", + "neu7moko", + "neu7raal", + "neu6sji", + "neu6ska", + "neu7stoo", + "neu6toë", + "neut7oë.", + "ne4wt", + "3nez", + "1nê", + "2n1f2", + "n3fl", + "nfy6tap", + "2ng", + "n4gad", + "n4g3ak", + "n4g5apt", + "n4g5ase", + "ng5ass", + "n4g5een", + "n4g3ei", + "ng5eks", + "nge6r7aap", + "nge6r5al", + "nger6d5r", + "nge6ret", + "nges7per", + "ng5eten", + "n6geter", + "ng5imp", + "n4g5ink", + "n6ginst", + "ng1l", + "ng6lasu", + "n4goë", + "ng5oë.", + "n4g3on", + "n4g5oog", + "n4gou", + "ngp6seu", + "n6g5raad", + "ng5ran", + "ng5rat", + "n4g3ri", + "ng7sade.", + "ngs7agit", + "ng7sappe", + "ng4see", + "ngs7eise", + "ng4sek", + "ng6serk", + "ngs7erke", + "ng6sero", + "ng6serv", + "ngs6fer", + "ngs7impa", + "ng4sin", + "ngs5int", + "ngs5kan", + "ng7skat.", + "ng7skoel", + "ngs7koep", + "ngs7kop.", + "ng7skors", + "ngs7kort", + "ngs7kurw", + "ngs7kuur", + "ng6s5laa", + "ng6slab", + "ngs7labo", + "ngs7ladi", + "ngs6lep", + "ng7s6loop", + "ngs6lym", + "ng4sn", + "ng5sni", + "ngs6oet", + "ngs6ofa", + "ngs6omm", + "ngs7pelo", + "ngs7pill", + "ng5spoe", + "ng7stabi", + "ngs7tal.", + "ng6steh", + "ng6stei", + "ngs7teik", + "ngs7telg", + "ng6stem", + "ngs7tema", + "ng7stemm", + "ngs7temp", + "ng6s5ten", + "ngs7tese", + "ngs6tin", + "ng6stou", + "ngs7tou.", + "ngs7trap", + "ngs7truu", + "ngs6uie", + "ngs7ure.", + "ngs6wel", + "ng5uit", + "2nh", + "1ni", + "nie6kaa", + "nie7knik", + "nie6raa", + "nier7aar", + "niers5w", + "nie6uin", + "nig7aard", + "ni4g5ee", + "ni4g5ie", + "niks7py.", + "nik7warm", + "4n3ind", + "4ninf", + "nin6g7ele", + "nin6get", + "4ninh", + "4n3ins", + "4n3int", + "4ninv", + "n5invo", + "n2is", + "nis7alma", + "nis6ara", + "ni5see", + "nis5id", + "nis7insp", + "nis6oms", + "ni4son", + "ni3tr", + "nit7sare", + "nje7glas", + "nje7krui", + "njie6st", + "2n1k", + "nkaar4", + "nk5aard", + "n4k3af", + "n4kak", + "nk5aks", + "nk5eff", + "n4kei", + "nk5eie", + "nke6las", + "nke6lit", + "nke6ree", + "nkers6w", + "nker7swe", + "n4k3li", + "n2kn", + "nk3na", + "nk5nes", + "nk5neu", + "n4k3of", + "n5kofi", + "nk5psi", + "nk5rig", + "nk5rol", + "n4k5roo", + "nk5ros", + "nk5rye", + "nks6noe", + "nk4s5om", + "nk3sp", + "nks4t", + "nk3s4w", + "nk5uit", + "n2kw", + "nk5wat", + "n5kwen", + "2n1l", + "n3la", + "nli4ga", + "nlu4s", + "n1n", + "nna6spo", + "nna7tjie", + "nne6pol", + "nne6sev", + "nni4s", + "1no", + "4noef", + "4noes", + "noe4st", + "no4g5al", + "nog7eens", + "nok5as", + "no9ko.", + "nok7riww", + "3n4oma", + "n4omm", + "nomo7yi.", + "no4n3a", + "4n3ond", + "4n3ont", + "noo6dan", + "n3oog", + "noor6di", + "4nopb", + "no5pla", + "nop6laa", + "4noplo", + "nop7omhu", + "nop6rod", + "4norg", + "n5orga", + "nor6kla", + "3norm", + "nor7tham", + "nos6kaa", + "no3sp", + "3nota", + "3note", + "not4r", + "no5tre", + "2np", + "n1r", + "nroet6j", + "nroe7tji", + "2n1s", + "n4s5aar", + "ns3ag", + "ns4an", + "ns5angs", + "ns4e.", + "ns4el", + "nse4pr", + "nser6to", + "nser6tr", + "ns3f", + "ns6feer", + "ns5gel", + "n3si", + "ns4ia", + "ns4ie", + "ns4ig", + "nsi6gar", + "ns7inges", + "nsi6tri", + "ns4iu", + "ns3ja", + "n6skafe", + "n5skap", + "n4skar", + "n4s5kel", + "ns5kin", + "n6skous", + "n4s5kra", + "n2sl", + "n3sla", + "ns5lam", + "n6sland", + "ns3le", + "n4s3li", + "n4s3lo", + "ns6lotg", + "ns6lott", + "n3slu", + "ns4mee", + "n5snar", + "n4sne", + "n5snel", + "ns5noo", + "n5soek", + "n4soë", + "ns5oë.", + "ns5ond", + "nson4t5", + "ns5onw", + "ns3op", + "ns5par", + "ns5pas", + "n4s5per", + "ns7portr", + "n4spot", + "n6sprat", + "ns6prek", + "n6staak", + "n4staf", + "ns5teh", + "ns6tel.", + "ns6tels", + "n5s6ter.", + "ns6ters", + "ns5trak", + "n3s4tu", + "n4s3tw", + "nst6wyf", + "ns5tyd", + "ns3w", + "ns6weer", + "n4syw", + "ns5ywe", + "2nt", + "nt5ags", + "nt5ark", + "n4t5art", + "nta5tj", + "n4t5eie", + "nte6ram", + "nte5sm", + "nte6sti", + "n5t4hon", + "nti7kwaa", + "nt5inv", + "nt3ja", + "n4tjo", + "nto7fakt", + "nt7oksie", + "n4t5oli", + "nto6nad", + "nt5ond", + "n4top", + "nt5ops", + "n4t5org", + "nt7radin", + "nt5raf", + "n5tref", + "ntre7kor", + "nt5rim", + "nt5roe", + "nt5rom", + "nt5ron", + "nt5room", + "n5troos", + "n5trou", + "nt5row", + "nt5rui", + "nt5ryk", + "nt3sa", + "nts7inge", + "nt6skan", + "nts7kand", + "nt4s5le", + "nt3s4m", + "nts7onde", + "nts5paa", + "nt3st", + "nt5uit", + "ntu4m3", + "n4t3ys", + "1nu", + "3nua", + "nu4e.", + "nu4es.", + "2nui", + "nuk4w", + "nu5kwa", + "nul7soms", + "4nuni", + "nu5skr", + "nu6skra", + "nus4t", + "nu3tr", + "4n3uur", + "2nv", + "nva6lis", + "2nw", + "ny4so", + "nza6cs.", + "o1a", + "o4bag", + "ob5agt", + "o3bo", + "ob5vor", + "oby6nro", + "ock7wyn.", + "oda5gr", + "od5een", + "ode7leie", + "ode7spaa", + "od5lui", + "od3op", + "od3re", + "ods7akke", + "ods7kish", + "od6slak", + "ods7lake", + "ods7lopi", + "ods5oo", + "ods6op.", + "ods6org", + "ods7paar", + "ods7rogg", + "ods6uit", + "ods6waa", + "ods6war", + "ods6wyg", + "odu4k", + "oe4d5aa", + "oe4d5ag", + "oe4dei", + "oed7eie.", + "oed7ette", + "oe6dind", + "oed6ja.", + "oed7onde", + "oe4d5oo", + "oe4d5op", + "oe4d5or", + "oe4d5ro", + "oed7stry", + "oe4du", + "oed3w", + "oed7wyn.", + "oe4f5aa", + "oe4f5an", + "3oefe", + "oe4fek", + "oe4f5lo", + "oe4f3o", + "oef7rit.", + "oeg7aand", + "oeg7laer", + "oeg7lam.", + "oe4gog", + "oeg3s", + "oeg7yska", + "oei1", + "oeien6a", + "oeis4", + "oei7sker", + "oe4kaa", + "oek7eier", + "oe6kerf", + "oek7erf.", + "oek7eval", + "oe4k3l", + "oek6lap", + "oek7olie", + "oek7oort", + "oe4kr", + "oek5rak", + "oek5re", + "oek5ro", + "oek7sten", + "oe4k3w", + "oe4lei", + "oe5leie", + "oe6lemm", + "oel7emme", + "oel7eter", + "oeling6", + "oelings7", + "oe6lins", + "oel7inst", + "oel7onbe", + "oel7opri", + "oel6ser", + "oel6skr", + "oel7slik", + "oe4nei", + "oen7eike", + "oe6nert", + "oen7ertj", + "oen7esse", + "oenk4", + "oen5kl", + "oen7knoo", + "oen5kw", + "oe4n3o", + "oens5ko", + "oen5sm", + "oens4o", + "oen7ysbe", + "oep7aang", + "oep7inst", + "oe6pinv", + "oe4pl", + "oe5pla", + "oep5li", + "oe5plo", + "oep6s5ee", + "oep6s5in", + "oep4sl", + "oe4pu", + "oeras5e", + "oer3k", + "oe4r5on", + "oer5ou", + "oer6ske", + "oer7twak", + "oe5ser", + "oe5sie", + "oe5sje", + "oes7kraa", + "oes7limt", + "oe4s5lo", + "oes7medi", + "oes7pil.", + "oe4s5po", + "oes5ter", + "oes7troe", + "oe4swe", + "oet7aanp", + "oe4t5am", + "oet6he.", + "oe4t3j", + "oe6t5oli", + "oe4t5oo", + "oe4t5ri", + "oe4t5ru", + "oets7kra", + "oet6sna", + "oet6spe", + "oet6s5te", + "oet6sti", + "oet5wy", + "oë5rug", + "of3at", + "of5een", + "5offis", + "o4f3in", + "of3l", + "o4fok", + "of5oks", + "o4f3om", + "of5psa", + "o2f3r", + "of6sant", + "ofs7iden", + "of6sins", + "ofs7insi", + "of4s5le", + "of4s5oo", + "ofs7paar", + "o4fui", + "o1g", + "og4d.", + "oge4s5t", + "ogge6lo", + "oggel7oo", + "ogi7faal", + "3ogig", + "og1l", + "og4nat", + "ogo7steo", + "o4gry", + "og5rye", + "og4s.", + "og4sg", + "ogs6inf", + "og5ska", + "ogs7last", + "ogs6ot.", + "ogs4p", + "ogs7pad.", + "ogs7pris", + "ogs6uip", + "ogs6wan", + "oi1", + "oig6aff", + "oi3k", + "oile4", + "ois4a", + "oi5sag", + "oi5ski", + "ois6kuu", + "oi5sky", + "oi5sla", + "ois4p", + "ois4t", + "ois7teïs", + "ois6wer", + "oi3tj", + "oje4k", + "ojek5l", + "o4k5aas", + "o4kag", + "ok4am", + "ok4an", + "oke4t", + "oket5j", + "okie4", + "o4k5ins", + "ok5lat", + "ok6leed", + "ok3n", + "oko7seil", + "oko6sol", + "o4kou", + "o1kr", + "o4k3ro", + "ok4s.", + "ok5sig", + "ok6sins", + "ok4sj", + "oks7kraa", + "oks6lip", + "ok3sp", + "ok3st", + "oks6win", + "o2k3w", + "ok4win", + "o1la", + "ol5agt", + "olf7ent.", + "ol5fèg", + "olf6lap", + "olf6sku", + "olf6sme", + "ol4gl", + "olg7onde", + "ol4g5or", + "olg7smee", + "5olieb", + "olies6m", + "olie7sma", + "5olifa", + "oli7gny.", + "olk6sem", + "olk6sep", + "olk6sow", + "olk6sti", + "o1lo", + "olo5kw", + "o4l5oor", + "olo5sp", + "olp6hta", + "ol4sar", + "ols7are.", + "olt6zha", + "o1lu", + "olyf5o", + "o2m", + "o3ma", + "om5agt", + "oma7pleg", + "o4m5arm", + "omat6ji", + "oma7tjie", + "o3me", + "ome4s", + "ome5us", + "omg6had", + "o3mi", + "omka5s4", + "5omloop", + "o3mo", + "omos6fe", + "omo7sfee", + "omp7ligs", + "omp7oor.", + "om6pop.", + "oms6aal", + "om5sla", + "oms6lag", + "oms7perk", + "5omstan", + "oms6tin", + "o4n3ag", + "o5n4age", + "o3n4an", + "ona6skl", + "ona7sten", + "ond7aap.", + "ond5agt", + "ond7ampt", + "ond7dwaa", + "4ondes", + "onde7us.", + "on4did", + "on4dom", + "ond7rol.", + "ond5sle", + "ond5so", + "ond5sp", + "ond6spl", + "ond7twis", + "on5eff", + "o4n3ei", + "ong5aan", + "on4g5os", + "o3n4ik", + "o4nil", + "onin6gr", + "onk7ert7j", + "on4kj", + "on5kno", + "onk7omge", + "onk7rugh", + "onne5st", + "o4n5oks", + "ono7sfee", + "on4s.", + "onse4p5", + "ons7iden", + "ons7kepe", + "ons7kori", + "ons7pamp", + "ons7self", + "ons4t", + "on5ste", + "ons7tol.", + "on6t5aar", + "3ontd", + "ont7elsi", + "5ontgi", + "ont5raa", + "on4tri", + "ont7rol.", + "on4t5ru", + "ont7slik", + "3ontw", + "o1ny", + "ony7okol", + "oo2", + "oo5agt", + "ood3a", + "oo5deb", + "ood5ee", + "oo5dek", + "ood5er", + "ood5et", + "ood5ok", + "ood7onge", + "ood3r", + "ood6san", + "ood7smoo", + "ood7sorg", + "ood7spui", + "ood7suit", + "ood7swaa", + "ood7swar", + "ood5ui", + "oof1", + "oof6ser", + "oof6sid", + "oog3", + "oog6enh", + "oog6les", + "5oogpu", + "oog7sinf", + "oog7suip", + "oog6-lo", + "ooi6spa", + "ook3", + "oo4ka", + "ook6sst", + "ool1", + "ool6and", + "ool7snaa", + "oom1", + "oo4ma", + "oo4me", + "oo4mo", + "oon1", + "oon6ag.", + "oong4", + "oons6ko", + "oon5sl", + "oop1", + "oo4pa", + "oo4pe", + "oop7klik", + "o4opn", + "oo4po", + "oop6swe", + "oor1", + "oor6daa", + "oor7daad", + "oor6dap", + "oor7darm", + "oor6dca", + "oor6d5om", + "oor7doop", + "oor7frek", + "oor3i", + "oor7klik", + "5oorlog", + "oor6ot.", + "4oort.", + "oor6taa", + "oor6t5in", + "oort7ja.", + "oor6tyl", + "oort7yl.", + "oorve7ë.", + "oos3a", + "oos3k", + "oo4so", + "oos7pers", + "oot1", + "oo4ta", + "oot6aai", + "oot6en.", + "oo4ti", + "oo4to", + "oo4t3r", + "oo4tu", + "oo3v", + "oö5spo", + "o2p", + "o3pa", + "o4paf", + "op5agt", + "opa6les", + "o4p3am", + "5opdrag", + "o3pe", + "op5een", + "op9eg.", + "5openi", + "op4er", + "oper7aar", + "ope7rage", + "op6horu", + "o3pi", + "opie6le", + "opk6lik", + "op3l", + "op4lan", + "op6lein", + "3oplo", + "1opn", + "4opno", + "o3po", + "opo7fagi", + "op5off", + "op5ont", + "opo7sfee", + "5opperv", + "op3r", + "o5p4rot", + "o4pru", + "op6skre", + "ops6maa", + "ops7neus", + "op5son", + "ops5or", + "op3st", + "op3sw", + "ops7wels", + "o3pu", + "o1ra", + "or5afd", + "or5agt", + "ora6lee", + "ora6loo", + "orat6ji", + "ora7tjie", + "ord7akti", + "ord6arm", + "ord7eksa", + "ord7ierl", + "ord7inst", + "ord5oes", + "or4d5oo", + "ord6oop", + "or6dord", + "ord7orde", + "or4d5ri", + "ord7roma", + "ore7ster", + "o3rê", + "orf7oond", + "4org.", + "or3gh", + "or4glo", + "4orgp", + "org7ring", + "3orië", + "orings8ku", + "or5kaa", + "orkes5", + "ork7lag.", + "ork6lik", + "ork7ney.", + "orkom6s", + "orkoms7t", + "or6maan", + "or4mj", + "or4nj", + "or5ond", + "or5ong", + "o5rot.", + "oro7thy.", + "or3p4h", + "orp6ski", + "orp4sn", + "ors7aar.", + "ors5ag", + "ors7jurk", + "ors5mo", + "ors7pot.", + "ors7teri", + "ors7tery", + "or4sti", + "ors7trek", + "ort7aan.", + "ort5aar", + "ort5akt", + "or4tar", + "ort6ham", + "5ortod", + "ort7onde", + "ort7rol.", + "ort7ruk.", + "ort5sw", + "or1u", + "o3r4us", + "o3ry.", + "ory4s", + "os3ag", + "osa7phat", + "os5api", + "osas4", + "osa7tjie", + "os5cen", + "o3se", + "ose7phin", + "ose7phus", + "o3si", + "osi6nen", + "o4sjo", + "os1k", + "o4s3ka", + "os5kee", + "os5kis", + "os5koe", + "os5kop.", + "os5kor", + "os5kou", + "os5kow", + "os3kr", + "o5skri", + "o4sku", + "o2s3l", + "os3m", + "o2s3n", + "os5oli", + "os5oor", + "o4sor", + "os5ord", + "os3p", + "os4pe", + "os5ste", + "os3t", + "os4t.", + "os4ta", + "os5taf", + "os5tak", + "os5tal", + "os5tar", + "os4td", + "os4th", + "ost7impe", + "os4tm", + "o5strat", + "os6trev", + "ost7revo", + "ost6roo", + "os4tw", + "os4t-", + "os3w", + "os-7lond", + "o2t", + "o3ta", + "ot5akk", + "otas4", + "ota5st", + "ota7tjie", + "o3te", + "oteek5", + "ote4s5a", + "ote6sno", + "ote6spr", + "ote4s5t", + "o4the", + "oth7nage", + "o3ti", + "ot3j", + "o3to", + "ot5opm", + "oto6ran", + "oto6ren", + "otor5o", + "otos4", + "oto5sk", + "ot3re", + "o3tro", + "ot5ryk", + "ots7eila", + "ots7karr", + "ot4s5ko", + "ot4sl", + "ots5la", + "ot4s5po", + "ots7rûe.", + "ots7tee.", + "ot6stek", + "ots7toet", + "ot4stu", + "otte6l5o", + "o3tu", + "o4tui", + "otu6set", + "oua6che", + "oud7agti", + "ou6dakt", + "oud7akti", + "oud6ief", + "oud6ini", + "oud6ink", + "oud7oorg", + "oud7styd", + "ou4du", + "oud7uitg", + "oue6rio", + "ou3g", + "ou4gh", + "ou4gl", + "oug4r", + "ou1i", + "ou5ill", + "ouis6a.", + "ou1k", + "oul7ontl", + "ou3m", + "ou5nyw", + "ou5rei", + "ous6kak", + "ous6ken", + "ou5ski", + "ous6lip", + "ous6ouw", + "ou3s4p", + "ous7pan.", + "ou3s4t", + "ous7tert", + "ou7stiek", + "ous7ties", + "out7aar.", + "out7aksy", + "ou4t5as", + "out7ekst", + "out7emme", + "5outoma", + "out7omhe", + "ou4t5oo", + "out3r", + "out6rap", + "out6rei", + "ou4wb", + "ouw7rens", + "ou4wv", + "ou4-o", + "ove5re", + "over6y.", + "ovie6v.", + "ov5ket", + "owe6nal", + "owen7al.", + "owe6ral", + "ower7al.", + "ower7kon", + "oy4a.", + "oy4eu", + "ô1", + "ô2i", + "ôi3e", + "ôre5st", + "1ö", + "öjd7onde", + "ö1l", + "1p", + "2p.", + "5paaie.", + "4paanv", + "paar7dui", + "3pad.", + "pa4da", + "pad6ie.", + "pa4d3r", + "pad6-eg", + "p1af", + "pag6ne.", + "3pak", + "pa4ke", + "pak5es", + "paki3", + "pakket5", + "pa4ko", + "pak5os", + "4p5akti", + "3pale", + "pal7esse", + "pal5fr", + "pal6mol", + "pa4nop", + "pan5sp", + "pan4t5j", + "3pap", + "pa5pri", + "pap7ryp.", + "paps4", + "pap7saf.", + "pap7smee", + "3pa3ra", + "pa6ramn", + "par7amne", + "3park", + "par6kar", + "par4ko", + "park5r", + "4parm", + "par4sk", + "par6ste", + "pars7te.", + "5party", + "pa5sja", + "pa4so", + "p5aspi", + "3pass", + "5paste", + "pas7til.", + "pa4taa", + "pat7are.", + "4patel", + "pat4j", + "pa5tji", + "3patr", + "pats4", + "pat5sj", + "pav7lov.", + "2pb", + "pbe6koo", + "pbreng6", + "2pd", + "p3dw", + "pd4wa", + "pd4wi", + "3pe.", + "pe4ak", + "pe4ar", + "3ped", + "pede4r", + "pe5dof", + "pee2", + "peel5a", + "peel5u", + "4peen", + "peet3", + "3pei", + "4peie", + "p5eien", + "4p3eis", + "pek7nek.", + "pe4k3r", + "pel7aktr", + "pe4l5oe", + "pel7oond", + "pels7kra", + "pel6tak", + "pel7yste", + "4pemm", + "pe6nars", + "3penn", + "pen7opsl", + "pen6slu", + "pen7smed", + "pen6sop", + "4pepi", + "3pera", + "pe6raap", + "per7aap.", + "per7admi", + "per6ary", + "per7asid", + "pera5s6t", + "5perd.", + "per6dag", + "per6dry", + "per6dwy", + "per7enke", + "per5est", + "3peri", + "pe4rok", + "3pers", + "pers5ag", + "per6set", + "per6sje", + "pers7med", + "5perso", + "per6s7ond", + "pers8tel.", + "5pertj", + "per6top", + "per7tsja", + "per7uran", + "3pes.", + "4pesi", + "pe4sl", + "pe4s5te", + "peu6rel", + "2p1f", + "p3fl", + "pf4li", + "2p1g", + "pges4", + "pge5sp", + "pg4ly", + "2ph", + "phe6ars", + "p2hi", + "phi5s4t", + "p3hit", + "piek5n", + "pie6raf", + "pie6rom", + "pie4ru", + "pie7samp", + "pie6ska", + "pik7erts", + "pik3s4", + "6p5inges", + "ping6la", + "pin7glas", + "pin5kl", + "4pinst", + "pipe4", + "pipet5", + "pi3s4k", + "pit3j", + "pit4s5k", + "pit4st", + "pits5te", + "pits7tek", + "pit6suu", + "pit6zko", + "2pj", + "2p1k", + "pkom4s5", + "p2l", + "pla6kal", + "pla6kok", + "5plan.", + "5p4lant", + "4p3lap", + "3p4las", + "3p4lat", + "pla4t5r", + "plee4", + "pleet5", + "p5leie", + "ple4k", + "5pleks", + "4p3lep", + "pleu7ra.", + "p3lê", + "pli4g", + "pli4t5e", + "4plits", + "p5loos", + "p5lose", + "plu6ska", + "4plyn", + "2pm", + "2p1n", + "p4neum", + "poe6doe", + "3poei", + "poe4s5t", + "poe6tol", + "po4fa", + "pog7rest", + "pog5sk", + "pok5aa", + "pok7olie", + "3pol", + "3pom", + "4pomh", + "3pone", + "pon7opbr", + "pon4s5k", + "pons7te.", + "4pont", + "5pont.", + "p5onts", + "4poor.", + "5poort.", + "3poot", + "poo6tel", + "po4pag", + "4popd", + "pop6lek", + "4pops", + "p5ordo", + "po3ro", + "por6tak", + "6portso", + "por6t5ui", + "3pos", + "po4sk", + "pos6tim", + "pos6tko", + "pos6tna", + "po4t5as", + "3pote", + "pou6ste", + "2pp", + "ppe6las", + "ppel7as.", + "ppe6rad", + "ppe4ro", + "ppie6sl", + "ppoor6t", + "ppoort7j", + "p2r", + "p4raa", + "4praak", + "p5raam", + "5praat", + "pra6esi", + "5prakt", + "3pren", + "3pres", + "pre4s5t", + "4preu", + "3p4ria", + "p3rib", + "p4rie4", + "prie7ël.", + "5pries5", + "priet5j", + "5prins", + "3prio", + "3prob", + "3prod", + "pr4oe", + "3prof", + "3p4rog", + "3proj", + "4p5rok.", + "3p4rop", + "pro6pop", + "pro5pr", + "pr4or", + "3pros", + "pro5sa", + "pro7sopa", + "pru4t", + "3pry", + "pry4st", + "2p1s", + "p4sad", + "p4s5aks", + "p4sakt", + "5psalm.", + "p4sas", + "ps5asp", + "p4sat", + "p4sid", + "5p4sigi", + "5psigo", + "p4s5ing", + "p4s5int", + "ps3j", + "p5skaa", + "p4s5ket", + "ps5kof", + "p4skon", + "ps5loj", + "ps3m", + "ps4my", + "p4son", + "p5son.", + "p4s3oo", + "p4sor", + "ps7portr", + "p6stera", + "ps4ti", + "p6stoet", + "p4ston", + "p5swar", + "ps5wer", + "2pt", + "ptos4", + "3pub", + "pue4b", + "4puit", + "3pun", + "pun4t5j", + "pus7tipo", + "put7adde", + "put7emme", + "put5ji", + "put7rioo", + "2pv", + "2pw", + "3pyn", + "3pyp", + "pyp7aard", + "pyp3l", + "pyp7las.", + "pyp3o", + "py4pr", + "pys3k", + "4p5yste", + "py5tha", + "pyt6hon", + "2p-", + "1q", + "qu2", + "qua7driv", + "que6str", + "qui7nas.", + "2r.", + "raa6min", + "4raan", + "r6aans.", + "4r5aard", + "4rabs", + "rac5te", + "5radio", + "4r3adv", + "4rafd", + "ra4fek", + "4rafh", + "ra4foe", + "4raft", + "ra4fu", + "raf7urn.", + "4rafv", + "4rafw", + "2rag", + "rag6aal", + "5rageb", + "ra5gie", + "ra6ginl", + "rag7inli", + "r4agr", + "rag7raad", + "rag7ryer", + "rag6sab", + "rag6sak", + "rag6sin", + "rag7soep", + "ragu5e", + "rag6wan", + "rai7gne.", + "rak6les", + "rak7oper", + "rak7wate", + "4ralb", + "ral7eer.", + "ral7oor.", + "4ralt", + "ram7argi", + "4r5ameu", + "ram6pla", + "r4anda", + "ran6daa", + "ran7dafe", + "ran6d7akk", + "ran6dem", + "ran6dev", + "ran6doe", + "ran4dr", + "ran4g5o", + "rank5l", + "ran4k5r", + "ran6saa", + "ran6seu", + "ran6sjo", + "ran6sko", + "ran6sor", + "ran4s5p", + "ran4s5t", + "ran6tad", + "ran6tet", + "ran4t5j", + "ran4tr", + "4r3any", + "rapa7da.", + "ra6pas.", + "ra5pes", + "rap7ewen", + "rap6loï", + "ra4pon", + "rap7onge", + "rap7para", + "rap7rem.", + "rap7righ", + "r4ari", + "4rarm", + "4rarr", + "4rart", + "r5asia", + "ras6tan", + "ra5s4to", + "ra5s4tr", + "ra4su", + "ras5ui", + "ra5t4ho", + "4r5atom", + "rats5o", + "rbo6lol", + "rd5agti", + "r4d5ame", + "rd5eil", + "r6delek", + "rd5esel", + "rde5sm", + "rd5euro", + "r3do", + "r4d5oli", + "r4d5ont", + "r4d5oon", + "rdô6nne", + "rd7raais", + "r6droma", + "rds6lip", + "rd3so", + "rd3sp", + "rdt6ree", + "rdu6sol", + "rd4wa", + "r5dwar", + "r4dwu", + "r4d5yst", + "1re", + "3r2e.", + "3reak", + "reed5a", + "ree4k", + "reek5e", + "ree7kier", + "ree7loon", + "4r5eend", + "4r5eenh", + "4reenv", + "ree6pes", + "ree6ple", + "ree6pro", + "4reers", + "ree7sala", + "ree7stra", + "3reë", + "4reë.", + "4reff", + "3reg.", + "reg7ruk.", + "reg6sen", + "reg6skw", + "regs7om.", + "reg7spre", + "4reie", + "4reil", + "rei6nar", + "4reind", + "rei6noo", + "rei6ser", + "rei6sou", + "reit7ze.", + "re4kn", + "rek7naar", + "rek5ne", + "rek4r", + "rek7spoe", + "4rekst", + "re4kwa", + "rel4d", + "rel7dae.", + "rel7diag", + "rel7dopp", + "reld7ran", + "rel7duik", + "rel7oest", + "ren6agt", + "r4end", + "5rend.", + "r5enig", + "ren7shaw", + "ren4so", + "ren4sp", + "rens7te.", + "ren6sto", + "ren6str", + "ren6tak", + "ren6tcl", + "ren4t5j", + "ren4t5r", + "4rerg", + "4r3er4t", + "rert5j", + "4resel", + "re4s5ka", + "res7lap.", + "res5lo", + "re3s4m", + "res7ore.", + "re4spi", + "re4ste", + "re5stel", + "re4sti", + "res7toet", + "res7toma", + "res7ure.", + "ret5art", + "reu6kin", + "reu4kl", + "reu4k5o", + "re5usg", + "r4ewa", + "rey5no", + "rê4rh", + "r4faa", + "rf5laa", + "rf5lat", + "r3fle", + "r5f4lie", + "r5flui", + "rf5opv", + "r4fre", + "rf5reg", + "rf4sl", + "r1g", + "r4gak", + "rg5akt", + "rgek6li", + "rge7klik", + "rg5eng", + "rgeper6", + "rge6rid", + "rg4hu", + "rg5hut", + "rg4len", + "rg4let", + "rg5loo", + "r4g3lu", + "rg4ly", + "rgo6wri", + "rgrie4", + "rg5ros", + "rg3s", + "rg4s.", + "rgs4p", + "rguit6j", + "rgui7tji", + "1r2i", + "3rib.", + "rib7file", + "rie6dio", + "rie6dop", + "rieket5", + "rie6klo", + "rie5me", + "rie6pri", + "ries6e.", + "rie6skr", + "rie6taa", + "ri4fa", + "rif6ree", + "rig6ska", + "rig7smee", + "rig7styf", + "ri4kl", + "rik6sid", + "rik5sj", + "rik7spad", + "ri4kw", + "rim4s", + "4r3inf", + "rin6gaa", + "rin7gaan", + "ring7aar", + "6r7ingest", + "rin7gleb", + "rin4g5r", + "rin6gui", + "4r3inh", + "rin6kar", + "4r5inko", + "rink5w", + "rin6kwa", + "4r3inl", + "4r3inr", + "4rins", + "r5inst", + "rin7the.", + "r3inv", + "4rinve", + "rio7rye.", + "rip4s5t", + "ri5s4ko", + "ris4o", + "ri5son", + "ris5op", + "ris6per", + "rit5ji", + "rit7oond", + "rit6rea", + "ri5tro", + "rit6zri", + "5rivie", + "rix7tont", + "2r1k", + "r4kaan", + "rk5een", + "rk5eik", + "rke6lap", + "rke4s3", + "rke7sel.", + "r6kink.", + "rk5inl", + "rk5leie", + "r4klid", + "r5klip", + "r4k5los", + "rk5nei", + "rk5omg", + "rkom6sti", + "r4k5opd", + "r4k5ops", + "rk5rand", + "rk5red", + "rk5rib", + "rk5rok", + "rks6maa", + "rk5spo", + "rks6uid", + "rk5twi", + "rk5uit", + "r4k5ure", + "rk5wag", + "r4k5wat", + "rk5wee", + "r4k5wet", + "rk5wil", + "rk5win", + "r4kwy", + "r1l", + "r3la", + "rli4g", + "rlo6gja", + "rloo7ple", + "rlo6wpa", + "2rm", + "r6maanh", + "rma5gô", + "rma6gun", + "rma7klot", + "rma7plaa", + "rma7raan", + "rme6raa", + "rmer7aar", + "rme5sa", + "rmi4l", + "rmos4", + "rmo7stro", + "rm5uit", + "rmy6nim", + "2r1n", + "r5nagte", + "rna6spl", + "r4n5ele", + "rne4s", + "rne4t5a", + "rne6tom", + "rn5oor", + "rn6stig", + "rns6tin", + "r3nu", + "roduk5", + "roe6fas", + "roef7as.", + "roe4f5l", + "roe6fri", + "roe4ga", + "roe7glas", + "roe4n5a", + "roe4pa", + "roep5l", + "roe4p5o", + "roe4s5k", + "roe6sla", + "roes7lag", + "roe4s5t", + "roes5w", + "roe6taa", + "4roew", + "rog7akke", + "4rogg", + "rog6lis", + "ro5gna", + "ro4kn", + "rok4r", + "rok7slip", + "rok4s5p", + "ro5kyn", + "ro4l5aa", + "rol7gord", + "r6olien", + "rol7mops", + "romp7op.", + "4roms", + "ron7aar.", + "ron6dag", + "ron6dak", + "ron6d7er6t7", + "ron6d5et", + "ron4d5o", + "rond6o.", + "ron4d5r", + "ronds4", + "rond5sw", + "ron4du", + "ron6gaa", + "ron6kaa", + "ronker6", + "ron6kert", + "ron4k5l", + "ron6kow", + "ron4kr", + "ronk7wa.", + "ron6ske", + "ron6ste", + "rons7te.", + "ron7stel", + "ron6s5ti", + "r5ontp", + "ron4t5r", + "ron6tui", + "4rontw", + "roo7dewa", + "roo7dist", + "3roof", + "4roog", + "roo7gron", + "roo7mens", + "roo7nag.", + "4roond", + "roop6la", + "4r3oor", + "roo7taai", + "r4opa", + "rop7aans", + "rop7anys", + "ro5pee", + "rop6een", + "4r5open", + "r4opi", + "r4opo", + "r1or", + "r4ora", + "ro3ro", + "ros6afr", + "4r5osea", + "ros7kie.", + "ro3s4p", + "ro5sta", + "ros6til", + "rot6hsc", + "ro5ton", + "ro3tr", + "rot4sa", + "4roud", + "rou7floe", + "rou5sk", + "rou3t", + "rovi7ch.", + "rov7nik.", + "ro4w-", + "rox9y.", + "r2ö", + "rpe4s3", + "r4pid", + "rp5ide", + "r4p5lik", + "rp5opd", + "r4p5reg", + "rps7idio", + "rp4sl", + "rps5no", + "rp6spri", + "rp4stu", + "2r1r2", + "rre7glob", + "rre7nagt", + "rre4st", + "rre7stau", + "rres5tr", + "rri6gin", + "rron7kaa", + "2rs", + "r4sakt", + "rs5alm", + "r4s3ar", + "r5scha", + "rs5eila", + "rseuns6", + "rs3f", + "r5s6feer", + "rs4ie", + "rsi7flag", + "r6sinda", + "rs5inko", + "r6sinsp", + "r6sinst", + "r5sjam", + "r6skaki", + "r5skap", + "r6skapa", + "r6skapi", + "r6skeus", + "r4s5kin", + "rs6kink", + "r6skoet", + "rs6komm", + "rs6koni", + "r4skor", + "r5skors", + "r5skou", + "rs5krib", + "r6skroo", + "r4skur", + "r4slê", + "rs5lis", + "r4s5los", + "rs5lyf", + "rs6maad", + "rs6maai", + "r5s6maak", + "r6smaat", + "rs6magt", + "rs6mak.", + "r6smake", + "rs6mara", + "rs6mede", + "rs4mee", + "r5smeer", + "rs4mel", + "rsnee5m", + "r5snoo", + "r4snot", + "r4s3og", + "rsonde6", + "rsonder7", + "rs5ong", + "rs5oog", + "r6soors", + "rs3op", + "rs4op.", + "rs5ord", + "r1sp", + "r6spaar", + "r4s5par", + "r6spien", + "r5spri", + "r1st", + "r6s5tal.", + "r4stb", + "r6stegn", + "rs6terp", + "r5s6ters", + "rs6tigl", + "rs4tik", + "rs4tis", + "r4s5tit", + "r4stj", + "r6s5toet", + "r6streg", + "r3sty", + "rs3un", + "rsu4s", + "rs5wa.", + "rs5wap", + "rs3we", + "rs6werf", + "rs5wyk", + "2rt", + "rt5afd", + "rt7angel", + "rt5art", + "r6teend", + "rte6loe", + "rtie4s", + "rting4", + "rti7saan", + "r4t3om", + "rt5ont", + "rt5opr", + "rt5org", + "r6treda", + "rt5reis", + "rt5ren", + "r4t5rie", + "r6trol.", + "r4t3ry", + "rt6s5aar", + "rts5ond", + "rts6pyn", + "rt5uits", + "rt4wis", + "rt4wyf", + "3rub", + "ru4ga", + "rug6-sk", + "rui6lek", + "rui6moe", + "5ruimte", + "rui6niv", + "4ruit5s", + "ru2k3", + "ru5kaa", + "ruk6lip", + "ruk6opp", + "ruk6-en", + "rul5aa", + "rul7ape.", + "rul7yste", + "r2um", + "rum7grok", + "4runi", + "rup7lys.", + "ru5spi", + "rus6tak", + "rus6tka", + "rus6tma", + "rus6tvo", + "rus7uur.", + "rut7oond", + "2ruu", + "ruus6te", + "ruu7ste.", + "rweg5a", + "rwe6gei", + "rwe6skr", + "rwi7sje.", + "rwoes5", + "rwy6sak", + "rwy6see", + "ry4fa", + "ryf7ink.", + "ry4fo", + "ryf7ode.", + "ryf6sch", + "ryf6sin", + "ryf6ska", + "ryg7stek", + "ryg6str", + "ry6kinr", + "ryk3l", + "ry5klu", + "3rym.", + "ryn4s5l", + "ryp7arm.", + "ry5ple", + "ryp7lus.", + "ryp7nagt", + "ry4s3a", + "rys6alf", + "ry6sinl", + "rys5pi", + "rys5po", + "ry3st", + "rys4ti", + "ry4su", + "ry4ta", + "ry5tra", + "s2", + "2s.", + "s'9ie.", + "1sa", + "3sa.", + "s4aad", + "saa6dui", + "3saak", + "3saal", + "4s3aan", + "4s3aap", + "4s5aard", + "4s3aas", + "4s3adm", + "s5adre", + "4s3adv", + "2s3af", + "2sag", + "3s4ag.", + "sa4gal", + "s3age", + "s4agi", + "s4ag4n", + "sa5gne", + "3s4ago", + "sag6opa", + "5sagte.", + "5s6agtew", + "3sak.", + "s5akad", + "3sake", + "3sakk", + "sa6k5rok", + "sa6krus", + "saks4", + "s3akt", + "4s5akti", + "sa6lamm", + "sal7ammo", + "4salb", + "s5albu", + "3salf", + "sal6fol", + "4s3alg", + "4salm", + "sal6mei", + "sal6tro", + "3sam", + "4samba", + "same4n", + "4s3amp", + "sam6swy", + "4sana", + "s5anal", + "san6d5ag", + "san6dak", + "sand7akk", + "san6dru", + "3sang", + "san4g5a", + "san6gre", + "sang7ste", + "4s5anke", + "sap6hat", + "s5appa", + "s5appel", + "sa3pr", + "4s3arb", + "4sarea", + "sar7olie", + "4s3art", + "4sase", + "s5asem", + "4s5aspe", + "sa5spr", + "sat6jie", + "4s3atl", + "4s5atta", + "sav7lon.", + "2sb", + "s3ba", + "s3be", + "s3bi", + "s3bl", + "s3bo", + "s3br", + "s3bu", + "s3by", + "s3ca", + "s3ci", + "2sd", + "s3da", + "s3de", + "s3di", + "s3do", + "s3dr", + "s3du", + "s3dw", + "sd4wa", + "s3dy", + "1se", + "3se.", + "s5eed.", + "see3f", + "see3k", + "s5eenhe", + "see6plo", + "see5ram", + "seer7as.", + "see5rei", + "see7roet", + "see3s4", + "see7soog", + "see5sw", + "seë7kran", + "s5egpa", + "4segt", + "4s3eie", + "4seik", + "s5eik.", + "4seila", + "sei6nan", + "4seind", + "4seis.", + "sek6huk", + "4seksa", + "s5eksam", + "sek4s5k", + "sek4s5p", + "sek4st", + "3sel", + "sel5aan", + "sel7anal", + "se4l5el", + "sel4f5a", + "sel7fabr", + "sel6fer", + "self5i", + "sel6fid", + "6seliks", + "sel5of", + "sel7oor.", + "sel5op", + "sels7kak", + "sel6slo", + "sel7spen", + "sel6s7taa", + "se4m5ag", + "4s5emal", + "sem7ekst", + "sen6dan", + "sen7ghor", + "sen7sord", + "sen6str", + "sep6hus", + "ser7afse", + "4serf", + "s5erf.", + "ser6s5in", + "ser6skr", + "ser6sta", + "sers7taa", + "ser7stad", + "sers7tal", + "ser6tuu", + "s5ervar", + "ses6aan", + "4se4s5ka", + "ses7lett", + "se4s5po", + "se4st", + "se4s5ur", + "ses7uur.", + "se4sw", + "ses7weke", + "s4et.", + "sewes6t", + "sewe7ste", + "sey7stof", + "1sê", + "2s1f2", + "s3fa", + "s3fi", + "s3fl", + "s3fo", + "s3fr", + "s3fu", + "2s1g", + "s3ga", + "sga4s5e", + "s3ge", + "sges7per", + "s3gi", + "s3gl", + "sg4ly", + "s3go", + "s3gr", + "s3gu", + "2sh", + "s3ha", + "s4ha.", + "sha7ron.", + "s3he", + "s3hi", + "s3ho", + "sho7shol", + "s3hu", + "1si", + "4s5idea", + "s5idee.", + "4s5ideo", + "3sie", + "sie7kwos", + "sies6li", + "sies7mee", + "si5fle", + "sif6reu", + "4si3go", + "si4gro", + "4simpl", + "3sin.", + "si5nag", + "s5indek", + "5sindr", + "4sindu", + "sin7enti", + "sin7este", + "4s3inf", + "s4ing", + "sin6gaa", + "sing7aan", + "6singes", + "sin7gle.", + "sin6gre", + "s5ingry", + "4s3inh", + "sin6kch", + "sin4kl", + "4sinko", + "s5inlig", + "4s3inm", + "4s3inr", + "sin6see", + "sin6sin", + "6sinslu", + "sin5sn", + "4sinv", + "sip6ho.", + "s4ist", + "sit6are", + "4s5item", + "si3tr", + "si4tre", + "sit7riem", + "sit6sik", + "sit5sl", + "3situ", + "siu6mur", + "1sj", + "2sja", + "sje6ans", + "5sjoko", + "4sjuf", + "1sk2", + "2sk.", + "5skaaf", + "skaar6s", + "6skaart", + "s5kafe", + "3skak", + "6skakeb", + "s5kakt", + "4s5kalf", + "4skam", + "4skant", + "3skap", + "ska6pin", + "ska6pon", + "skap5r", + "4skar.", + "4skara", + "4skas", + "s5kata", + "ska6tel", + "ska6tit", + "5skawe", + "3skem", + "4skenn", + "3s4kep", + "ske6pla", + "ske4p5r", + "4skerk", + "4s5kern", + "ske7smee", + "5skets", + "4skett", + "s5kiem", + "ski7klub", + "s4kil", + "4s5kilj", + "ski6lol", + "s4kip", + "5skip.", + "4skis.", + "2s3kl", + "2s3kn", + "4skod", + "4s5koeë", + "5s4koen", + "4skoer", + "sko6kaa", + "sko4ko", + "4skoll", + "4skolo", + "4skolw", + "4skomb", + "4skomi", + "4skomp", + "s3kon", + "s4kone", + "4skonf", + "4skong", + "4skons", + "4skont", + "6skoord", + "s4koot", + "4skoö", + "4skos", + "sko6see", + "5skott", + "4skow", + "6skraan", + "4skrag", + "4skran", + "sk4re", + "6skreet", + "s5kres", + "5skrif", + "4skrin", + "5s4krip", + "4skris", + "4skrui", + "3s4kry", + "4s5kryt", + "sku6dak", + "4skuik", + "s5kuip", + "5skuld", + "4skult", + "4skun", + "5skurf", + "4skus", + "sku6tar", + "2s3kw", + "sky7drin", + "s4kyf", + "s4kyw", + "1sl", + "s4laa", + "4s3lad", + "s4la4g", + "4slam", + "4s5land", + "s4lang", + "s5lant", + "4s3las", + "4s3lat", + "s4law", + "4s3led", + "5sleep", + "4s5leer", + "4s3leë", + "s4leë.", + "4s3lei", + "4s3lek", + "4slel", + "4sleng", + "sle6tji", + "slet7jie", + "s4leu", + "4s5leue", + "s5leus", + "5sleut", + "4s3lew", + "4sley", + "s3lê", + "2sli", + "slib3", + "5slier", + "s3li4g", + "5slinge", + "slo6bee", + "s4lof", + "4sloj", + "4slok", + "4s5loon", + "4s5loos", + "4slop", + "slo4t5a", + "s5loter", + "s4low", + "sl4öj", + "4s3lug", + "4slui.", + "4s5luia", + "s5luih", + "5sluit", + "4s3lus", + "4s3lye", + "4slyf", + "sly6mui", + "4slyn", + "sly6paf", + "4s3lys", + "2sm", + "s3ma", + "s4mad", + "5s4mart", + "s3me", + "s5melk", + "5s4melt", + "s3mi", + "5smid.", + "smi4s", + "smit4h5", + "3smok", + "s5mol.", + "s3mon", + "s3mu", + "3smy", + "smy6nin", + "s4myt", + "1sn", + "s5naai", + "4snaam", + "s5naat", + "4s3na4g", + "snag5e", + "snag6s.", + "4snam", + "sna6pro", + "s4nar", + "s3nas", + "4snat", + "4snav", + "snee7tji", + "4s3nek", + "3s4nel", + "4s3nes", + "4s3net", + "4sneu", + "sni6kwa", + "sni6tre", + "s4nob", + "5snoet", + "4s3nom", + "4snoo", + "4snorm", + "s4nui", + "sny3", + "s4nye", + "5snyer", + "sny6-ys", + "1so", + "4soef", + "3s4oek", + "soe6kal", + "soe6kev", + "soe6kol", + "soe4k5u", + "s4oen", + "soe6nys", + "4soes", + "5soet.", + "soets6t", + "soet7ste", + "sof6agu", + "4soff", + "so3fr", + "sof6ree", + "sog4l", + "soi6ets", + "sok7opho", + "3sol", + "s5olie.", + "sol6lme", + "solo5s", + "s4om.", + "s4ome", + "4s3omg", + "4s3oms", + "4s3omv", + "3s4on.", + "s6onde.", + "s7ondern", + "3s4one", + "so6neek", + "son7eekh", + "son5eg", + "4son3g", + "son7kwas", + "so4n5op", + "son4so", + "4s3ont", + "son7uit.", + "s4onv", + "4sonw", + "4soog", + "3s4ool", + "4s5oond", + "soon4s", + "4s5oor.", + "4s5oorb", + "4s5oord", + "4s5oore", + "s5oorg", + "4s5oorl", + "s5oors", + "5soort.", + "s5oortr", + "2s1op", + "3sop.", + "sop7ekst", + "so5phi", + "sop6hok", + "s4opi", + "5sopie", + "s3opl", + "3sopo", + "so3pr", + "5s4op4ra", + "s3ops", + "s3opt", + "s3opv", + "4sord", + "5sorg.", + "4s5orga", + "sor6gee", + "sor6gra", + "sorg7raa", + "s5orke", + "so5ror", + "4sorto", + "sos4h", + "so5sha", + "so3th", + "sot4ho", + "so3tr", + "3sou", + "4soud", + "s5oude", + "sou6spa", + "sou4s5t", + "sou6taa", + "sou6tak", + "4souto", + "s5outom", + "so9ya.", + "s5paal", + "5spaan", + "4spad", + "4spak", + "3s4pan", + "span5o", + "spa6noo", + "4spap", + "4spark", + "4s5pas.", + "4spast", + "spa6tar", + "4spatr", + "4spe.", + "3s4pee", + "spe4k5l", + "spe6kne", + "spe6lak", + "5speler", + "s4pell", + "6spelot", + "4spen", + "s5pen.", + "4sperd", + "4sperk", + "5sperm.", + "4spers", + "4spes.", + "5spesi", + "4spet", + "s4peu", + "4s5piek", + "s4pio", + "2s3pl", + "5s4plee", + "5s4plin", + "5splits", + "3s4ply", + "4spoei", + "4spol", + "4spom", + "spon6st", + "5spoor.", + "4spoot", + "5spore", + "6sportr", + "4spos", + "4spote", + "s5poti", + "5spraak", + "6sprakt", + "4s5prat", + "spreek5", + "s5prem", + "4spres", + "5spreu", + "4sprob", + "5sproei", + "4sprof", + "4sprog", + "5s4pron", + "4spros", + "5spruit", + "4spry", + "s3ps", + "sp4si", + "4spub", + "3s4pul", + "4spun", + "4spyn", + "4spyp", + "2s1r", + "s3ra", + "sra4e", + "s3re", + "s3ri", + "s3ro", + "s3ru", + "s3ry", + "2s1s", + "s3sa", + "ss4af", + "ss4ag", + "ssa6rol", + "ssay7is.", + "s3se", + "sse6nas", + "sse4n5i", + "sser4s", + "sse5st", + "s3si", + "ssie6l7ei", + "s3sk", + "ss4ko", + "s3sl", + "s3sm", + "ss4ma", + "ss4me", + "s3sn", + "s3so", + "s3sp", + "ss4pl", + "s3st", + "ss4ti", + "s3su", + "s3sw", + "s3sy", + "2st.", + "4sta.", + "s4taa", + "st5aard", + "5staat", + "3s4tad", + "4stafe", + "sta6las", + "stal7as.", + "4stale", + "sta6lee", + "sta6lem", + "4stali", + "5s4talt", + "5s4tam.", + "sta4m5o", + "5s4tan.", + "stand8s7ta", + "4stari", + "3s4tat", + "s5tatr", + "4stea", + "s4tedd", + "5s4tede", + "s4tee4k", + "5s4teen", + "4steer", + "4steg", + "ste6gre", + "st4ei", + "ste6kli", + "ste6lek", + "stel7eks", + "6stelev", + "5s6telse", + "stel6tj", + "stelt7ji", + "5s4tem.", + "5stemm", + "ste6mom", + "ste6nou", + "4stent", + "s5teny", + "4steo", + "6sterap", + "ste6r5ei", + "5sterkt", + "4sterm", + "ste6rom", + "ster5sm", + "ste6rys", + "ster7ys.", + "ste6ser", + "ste6sin", + "ste6ska", + "ste6ski", + "ste4sl", + "ste6sma", + "2sth", + "s3ti", + "4stie", + "s4tigt", + "4s5tiku", + "sti6laa", + "s4timu", + "sting5a", + "5stinkh", + "s4tip", + "4stir", + "4s5tite", + "s3tj", + "4sto.", + "s5toeg", + "s5toek", + "5stoel.", + "6stoela", + "s5toen", + "4stoer", + "4stoes", + "s5toev", + "s4tof", + "sto6fek", + "sto6fem", + "sto6fen", + "sto4fo", + "4stog", + "sto4ka", + "sto6kle", + "sto6kre", + "3s4tom", + "4stone", + "4stoon", + "st4op", + "sto6poo", + "4stos", + "sto4st", + "3s4tot", + "s4tow", + "s4traa", + "4strad", + "s6trak.", + "4s5trei", + "s4trew", + "4s5tril", + "6strins", + "4stroe", + "s5trog", + "str6ont", + "6stroon", + "6strosp", + "4strot", + "s5trots", + "4strou", + "4strov", + "s4tru", + "5struk", + "4s5trus", + "3s4try", + "stu4c", + "3s4tud", + "4stuig", + "3s4tuk", + "stu6kin", + "stu7klep", + "stu7stra", + "stu4to", + "stu6tys", + "st4wi", + "2sty", + "4styd", + "5styf.", + "3s4tyl", + "sty6loo", + "1su", + "su2b1", + "sub3a", + "sub7gids", + "sub7hoof", + "sub7nasi", + "sub5oo", + "sub7reko", + "3suid", + "sui6daf", + "sui6dei", + "s4uik", + "s4uil", + "suip5l", + "sui6pro", + "4s3uit", + "s4uiw", + "sul6tin", + "sum7aans", + "2sun", + "s3uni", + "su4su", + "sut6her", + "su9yo.", + "2sv", + "s3va", + "s3ve", + "s3vi", + "s3vl", + "s3vo", + "s3vr", + "s3vu", + "s3vy", + "svy7kraa", + "2sw", + "5s4waai", + "5swael", + "s5waen", + "3s4wak", + "3s4wa4m", + "swam5a", + "s5wand", + "5swart", + "s3wat", + "3s4waw", + "6sweefs", + "s6weeft", + "s5week", + "5s4weep", + "5s4weet", + "4sweg", + "5sweis", + "s4welg", + "3s4we4m", + "5s4werm", + "swe6tre", + "s3wê", + "s3wi", + "s4wik", + "4swil", + "s3wo", + "5swoeg", + "swor6st", + "4swort", + "s3wr", + "s3wu", + "3swyg", + "1sy", + "5syfer", + "sy3k", + "syn6agr", + "syn6sin", + "syn5sm", + "sy5pla", + "sy3sk", + "4syst", + "s5yster", + "4sywe", + "s5ywer", + "2s-", + "1t", + "2t.", + "3ta.", + "taa6nam", + "4taand", + "taan5s6f", + "6taansi", + "4taant", + "4t5aanv", + "3tabb", + "4tadm", + "ta4d5ro", + "tad6ser", + "tad4s5i", + "tad6ska", + "tads5n", + "tads5p", + "tad6ste", + "tad6s5to", + "4taf.", + "4tafd", + "3tafe", + "tafe4l", + "4ta4fr", + "4t3afs", + "4tafv", + "4t3afw", + "t4age", + "4t5agen", + "4tags", + "4t3agt", + "tai4l", + "ta5inv", + "tai7peis", + "5take.", + "tak6lep", + "ta5kli", + "ta4kr", + "tak7rol.", + "3takt", + "tak7wyn.", + "3tale", + "tal7eenh", + "tal7emme", + "5talig", + "tal6kaa", + "tal6sor", + "ta6mind", + "tam7inde", + "tan6dat", + "tan4dr", + "tand7rin", + "tand6sto", + "tang5st", + "4t5anna", + "tan4sk", + "tap5ro", + "3tari", + "4tark", + "4tarm", + "t5arm.", + "tar5oo", + "t5artik", + "ta4s.", + "t5asem", + "tas4p", + "tas6tas", + "tat7isol", + "tat4j", + "tat7jies", + "ta4t5ra", + "2tb", + "tba6lun", + "tby6tei", + "2td", + "tdy7ing.", + "teby6s.", + "3tedo", + "teek5r", + "tee6lee", + "tee7lood", + "tee6mev", + "tee4mo", + "tee4n", + "4teenh", + "3teer", + "tee7raad", + "tee7renv", + "tees4", + "tee5sk", + "tee5sl", + "tee5st", + "tee7suik", + "4t3eeu", + "tef7lon.", + "3tegn", + "teg6ori", + "teg7ren.", + "5tehui", + "tei6noo", + "tek2", + "5tekam", + "tek7bak.", + "5teken", + "teke8n7aap", + "tek7haak", + "tek7limi", + "5tekor", + "tek7semp", + "tek6sin", + "teks5k", + "teks5t", + "tek7stel", + "tek5vo", + "te6laap", + "tel7aap.", + "te4l5ak", + "te4l5ap", + "tel7dwei", + "te4l5el", + "tel7fles", + "tel7idee", + "5telik", + "tel6lho", + "tel7oes.", + "tel7oog.", + "te6loon", + "tel7oond", + "tel7smed", + "tem7asse", + "4temm", + "tem7omva", + "te6moog", + "tem7oog.", + "5tempo", + "tena6ge", + "5tend.", + "t4enh", + "ten6kaa", + "ten6koo", + "ten7ouer", + "ten6san", + "ten7slot", + "5tenso", + "ten4s5u", + "ten4t5j", + "ten4tr", + "tent7reg", + "ten7treu", + "ten7twen", + "3teo", + "te3p4h", + "ter7adel", + "5te4r5af", + "ter6afi", + "ter6ago", + "te4rak", + "ter7akro", + "ter7als.", + "ter7aman", + "ter7amer", + "te6ramp", + "ter7amp.", + "5terap", + "ter5app", + "ter6arg", + "ter6dro", + "terd7roo", + "ter5een", + "te4r5el", + "te4rem", + "4terft", + "te6rin.", + "ter7ink.", + "terk7wyn", + "3term", + "ter7omra", + "ter5ond", + "ter5ont", + "5teror", + "ter5os.", + "te4r5ow", + "ter7raan", + "5terrei", + "ter7rein", + "5terri", + "ter6sas", + "ter6sef", + "ter6seg", + "ter6skop", + "ter7sopn", + "ters6we", + "ter7swee", + "ter7syst", + "ter6tap", + "te4rui", + "ter7uie.", + "te6ryst", + "ter7yste", + "ter6-in", + "3tesi", + "tes7inst", + "tes7loe.", + "tes7lydi", + "tes7mart", + "tes7meto", + "tes7proe", + "tes7teri", + "tes6tud", + "te5sty", + "te4s3w", + "3teti", + "teun5s4", + "2t1f", + "tf4li", + "2t1g", + "tg4af", + "tge6nap", + "tg4li", + "2th", + "3tha.", + "t4has", + "4thei", + "3t4hen", + "ther6aa", + "the7raan", + "the5ro", + "3t2hi", + "4thit", + "t5hitt", + "th5leh", + "t4ho.", + "tho6nat", + "ths7chil", + "t4hy.", + "tib7niet", + "tie4f", + "tief5o", + "tie6gri", + "tie6kap", + "tie4k5l", + "tie6kom", + "tie4k5r", + "tie4k5w", + "tie6roë", + "tie7smoo", + "4tif.", + "4tiff", + "4tigm", + "tike4", + "ti4kla", + "tik7lug.", + "tik5ro", + "tik6waa", + "4til.", + "til7aan.", + "4tild", + "4til3s", + "4tilt", + "4t3ind", + "tin7erts", + "tin4ga", + "tin7gaal", + "ting7aan", + "ting7eg.", + "tin4g5r", + "ting6su", + "tings7uu", + "4tinkh", + "tink7wa.", + "4t3inl", + "4tinv", + "5tipe.", + "5tipes", + "ti4rp", + "tis6aan", + "ti3sj", + "ti3tr", + "tive5r", + "t2j", + "2tja", + "tje6sni", + "tjo4k", + "2t1k", + "tki6sob", + "tkom4s5", + "2t1l", + "t3la", + "tla6sin", + "t3li", + "t3lo", + "t5lont", + "2tm", + "tme6sti", + "2t1n", + "tne6ywe", + "tnot4s5", + "3to.", + "toe7eien", + "4toef", + "5toef.", + "toe7gly.", + "toe7klap", + "toe5kr", + "4toel.", + "5toe5la", + "4toele", + "toe6let", + "toe6lop", + "4toelt", + "4toep.", + "toe7plei", + "5toern", + "toe6rou", + "5toeru", + "3toes", + "toe5sl", + "toe5sm", + "toe7swel", + "toë7roti", + "to4fa", + "tof7ekst", + "tof7emis", + "to4f5io", + "tof7onde", + "3tog", + "to4gl", + "tok7las.", + "tok7lett", + "tok5ou", + "t5olie.", + "4tom.", + "4tond", + "3tone", + "ton4gr", + "tong5s", + "4tont", + "t5ontl", + "t5onts", + "3toon", + "t5oper", + "to5p4he", + "4topm", + "top7oorl", + "4topv", + "tor7eien", + "tor7eval", + "to6rint", + "tor7inte", + "tor6m5ag", + "tor6mom", + "to1s", + "to3sf", + "tos6tro", + "to3tr", + "tot6ste", + "tou3s4", + "tou7tjie", + "tou6wsr", + "to4wn", + "toy7ota.", + "2tp", + "tpen6sk", + "tpie6tj", + "tpiet7ji", + "tplek5", + "tpoor6t", + "tpoort7j", + "tp4sa", + "t5psal", + "t2r", + "4t5raad", + "t5raam", + "5tradis", + "4traf", + "tra6fas", + "traf5o", + "tra6foo", + "5trakta", + "5transa", + "5transf", + "tra6paf", + "trap7as.", + "tra6pew", + "tra7ploï", + "5trapp", + "trat4", + "tra5tj", + "4tratu", + "4trea", + "t3rec", + "t5reda", + "t5redd", + "t4ree", + "4treek", + "4t5reen", + "4treë", + "4treg.", + "t5regi", + "tr4ei", + "t5reini", + "tre6ink", + "4treis", + "tre4ka", + "tre4k5l", + "tre4ko", + "tre4kr", + "trek5w", + "tre6kwi", + "t4rer", + "t5rese", + "tre4st", + "tre4t", + "tre7talb", + "tret5j", + "t5reuk", + "t5rewo", + "5tribu", + "t5rief", + "trie6kl", + "5tries", + "tri5g4l", + "4tring", + "trobo5", + "4t5roer", + "tro6las", + "trol7as.", + "tro6lin", + "tro6naf", + "troo4", + "4troom", + "tro6ski", + "3trou", + "3trov", + "4trub", + "4t3rug", + "truit6j", + "trui7tji", + "4truk", + "tru7kopp", + "trust5r", + "4tryk", + "2t1s", + "ts5agt", + "t4sam", + "t4sar", + "ts5arg", + "t4s5eks", + "t4s5eng", + "tse6raf", + "tse6rys", + "tser7ys.", + "t6singr", + "t4s5ins", + "ts5inv", + "tsi7tsik", + "ts5jae", + "t4skar", + "ts5kok", + "t4skon", + "t4skor", + "t6skrie", + "t6skrip", + "t4skru", + "ts5lam", + "t5s6maak", + "t5s4mee", + "ts4mel", + "t4smo", + "ts5mot", + "t5smou", + "ts5nat", + "ts5neu", + "ts5oon", + "t4s5pas", + "ts5pen", + "ts5pot", + "t4s5pro", + "ts5tea", + "t5stel", + "t6stend", + "ts4ti", + "ts5toer", + "ts5tron", + "t3stu", + "t3su", + "ts5waar", + "t5swar", + "t5swen", + "ts6wing", + "ts5wyn", + "2tt", + "tta5tj", + "tte6loë", + "tte6ral", + "tte6ram", + "tte7ridg", + "tte4ro", + "tte7ruil", + "tte6slo", + "tte6s5ta", + "tte5us", + "tt4he", + "tting5a", + "tt5uur", + "3tua", + "3tue", + "3tuig", + "3tuin", + "4tuits", + "tu4kl", + "tum7aanw", + "tur6kna", + "4turt", + "tus7aart", + "tus7eter", + "tussen5", + "tu5têr", + "2tv", + "tv4li", + "2tw", + "twee5k", + "twee5l", + "twees4", + "twerp5o", + "twi6sap", + "3tyd", + "tyd7aanw", + "tyd7lont", + "tyd7orde", + "tyd3r", + "tyd6sat", + "3tye", + "tyl7oorw", + "3tyn", + "tyn7spre", + "ty3o", + "t5yster", + "2tz", + "tze6nel", + "2t-", + "u1a", + "ua4e4s", + "uahu6a.", + "u4b3ag", + "ubas4", + "uba7slag", + "ub5eko", + "ub3f", + "ub5gro", + "ub5int", + "u3bl", + "u4blu", + "ub5lun", + "ub3or", + "ub5sch", + "ub3t", + "ub3v", + "ub5wyk", + "uck6len", + "u4d3ar", + "udi6top", + "u4d3re", + "u4dri", + "uds6med", + "ud5sor", + "ud6stoe", + "uds6tyd", + "u1e", + "ueb5lo", + "uer7ione", + "ue4ron", + "uer7onde", + "ues7tria", + "ue5uni", + "u4fri", + "uf5rin", + "ufs6maa", + "ug5aan", + "u4gei", + "uge6ska", + "ug1l", + "u2go", + "ugo6mol", + "ug3or", + "u2g3r", + "ug3s", + "ugs4k", + "ugs4l", + "ug4soo", + "ugs4p", + "ug5ste", + "ugs6tek", + "ug5sto", + "ug5sui", + "ug4ub", + "ui4dag", + "uid7arts", + "ui4d3o", + "ui4dr", + "uid7reek", + "uid7simb", + "uid7skat", + "uid7skel", + "uid7skil", + "uid7slui", + "uid5spr", + "uids6to", + "uid7stoe", + "uid7uits", + "ui1e", + "uiers6w", + "uies6ma", + "uie7smaa", + "ui4f3a", + "uif7eend", + "uif5le", + "ui4go", + "ui4g3r", + "uig3s4", + "ui4k3a", + "ui4k3l", + "ui4k3r", + "uik7sfee", + "uik6sta", + "uik7uitk", + "ui4kw", + "uil7aap.", + "uil5eks", + "uil7esel", + "ui4l5oo", + "uil7tjan", + "ui4ma", + "uim7oes.", + "ui4na", + "ui5nae", + "uin5ar", + "uin7asyn", + "uind4", + "uin7drek", + "uin7ivoo", + "uin7kole", + "ui4n3o", + "uin7ser.", + "uin5si", + "uin6ska", + "ui4pl", + "ui4po", + "uip5oo", + "uip7ore.", + "uip7roes", + "ui4s3a", + "uis3j", + "ui4s3o", + "uis5ta", + "ui4t3a", + "uit7dein", + "ui4t5ee", + "ui5ter", + "uit3j", + "uit3r", + "uit4sj", + "uit6-as", + "uk4aa", + "ukaar4", + "uk5loo", + "u4kof", + "uk5off", + "u4kor", + "u5krat", + "uk3ry", + "ukse4s", + "uk4ski", + "uks4m", + "uks7pop.", + "uk4sv", + "uk4th", + "uku7yama", + "u2k3w", + "u1la", + "ul3ag", + "uld5erk", + "ule6sta", + "ulê6r-w", + "ulf6api", + "ul5ins", + "u1lo", + "ul5oog", + "ulp7eksa", + "ulp7oort", + "ulp7orga", + "ul4saa", + "uls6oms", + "ult7inge", + "ult7uit.", + "u1lu", + "u2m", + "u3ma", + "um5agt", + "umat4", + "uma5tj", + "u3me", + "umg6rok", + "u3mi", + "um4ie", + "um5ond", + "um4s.", + "ums7feld", + "u3mu", + "u4mui", + "umu4s", + "un5arm", + "uner6st", + "5unifo", + "3univ", + "unk7reda", + "un2s3", + "uns6enb", + "un4sid", + "uns6kap", + "un5s6kol", + "un7s6kool", + "uns7lagg", + "uns7taal", + "un5str", + "unt7eenh", + "un6tinn", + "unt7real", + "unt6roe", + "unts6ko", + "unt5sw", + "unug6s.", + "u1o", + "upi6lop", + "u4ply", + "u4pon", + "u1ra", + "ur5aar", + "ur3af", + "ur5agt", + "ur3ak", + "u5ra5s4t", + "ur5atl", + "ur5een", + "u4ref", + "ur5eff", + "ure5um", + "urf7loop", + "urg6h-s", + "urg7laag", + "u4r5int", + "urke5s", + "urk7nael", + "u1ro", + "uro7pesi", + "urp7agti", + "urr7heim", + "urs7agte", + "ur4s5ek", + "urs6fee", + "ur6sloo", + "urs7mous", + "ur4sno", + "ur4s5oo", + "urs7paar", + "urs6par", + "ur4spr", + "urs6wee", + "urs6wie", + "ur6t5oor", + "ur4top", + "urt7room", + "u1ru", + "u1ry", + "us3ag", + "usa7lag.", + "u4sap", + "us5een", + "use5st", + "ush7die.", + "ush7koal", + "usie4k", + "usiek5l", + "u4s5ins", + "u2s3k", + "us4k.", + "us4kok", + "us4kri", + "u2s3l", + "u3s4lu", + "u4sno", + "u2s3o", + "us4ol", + "us4or", + "us3p", + "us4pie", + "u4spo", + "us5pot", + "usse7us.", + "us3t", + "us4t.", + "ust5akt", + "usta6v.", + "us4tb", + "us4tf", + "us4tg", + "us4th", + "us6tink", + "us4to", + "us6trek", + "us5tru", + "us4ts", + "us3w", + "u2t", + "u3ta", + "ut5adm", + "u4t3ag", + "uta7spek", + "u3te", + "ute7ling", + "ute7rago", + "u3ti", + "u3to", + "u4topl", + "ut5org", + "ut4rek", + "uts7luis", + "ut4spr", + "u3tu", + "u3ty", + "uu2", + "uur1", + "uur3i", + "uur6s5in", + "uus3", + "uus6khe", + "uut3j", + "uwees4", + "uwe7smit", + "u5yste", + "u3yu", + "û1", + "1ü1", + "1v2", + "vaar6st", + "va4kar", + "vak7eie.", + "va4kes", + "va4ki", + "va5kie", + "va4k3o", + "va4kr", + "val7este", + "val7fees", + "val7funk", + "val7isog", + "valk7oë.", + "val7opto", + "val4sa", + "val6spa", + "vals7pan", + "val6spo", + "val6spr", + "val6s5te", + "val6sth", + "va4n5ee", + "van7effe", + "van6gap", + "van6gre", + "van7uit.", + "vari5et", + "var6kja", + "var6kle", + "var4k5n", + "var4k5o", + "var4k5r", + "vas7ent.", + "vas6oor", + "vas7waai", + "ve2", + "ve3d", + "vee7kong", + "vee5kr", + "vee4l", + "veer5a", + "vee3s4", + "ve9ga.", + "veis4", + "vei5st", + "vel6don", + "vel4d5r", + "vel5oo", + "ve5lop", + "vel5sm", + "vel7sple", + "ve5lum", + "ve3na", + "ve3ne", + "ve5nor", + "ven4t5j", + "ve3nu", + "vep7legi", + "3ver1", + "ve9ra.", + "verd4", + "verdien7s8", + "ve5reb", + "ve5rek", + "ver6ema", + "ver6ena", + "ve5rend", + "ver6eve", + "ver6flu", + "ver6fru", + "ve3ri", + "ve6r5inn", + "verk4", + "ver5kl", + "ver5kw", + "ve7rona.", + "ver5sa", + "vers6ki", + "ver7skin", + "vers8kop.", + "ver5sl", + "ver5sm", + "vers6mag", + "ver5sp", + "ver7stal", + "ver5s4w", + "vers8waar", + "ver4t5j", + "ver5tw", + "ves3p", + "ves3t", + "ves7taal", + "ve5suv", + "vet5in", + "vet5ji", + "vet7opga", + "vet3r", + "vets4", + "vet5sm", + "vid5so", + "vie7ring", + "vig4s", + "vi5rag", + "vi4rg", + "vi4r-", + "vi4sar", + "vi4so", + "vis5ol", + "vis7oog.", + "vis5tr", + "vi3tr", + "vit7rate", + "vlag5s", + "vla4k", + "vla7koek", + "vla6sak", + "vle4k", + "vlek5l", + "v4lie", + "vlie6so", + "voe6rek", + "voe6rui", + "voë4l", + "voël7oë.", + "vog7inho", + "vo4gr", + "vo4lei", + "vol4g5a", + "vol6gon", + "vo4l3o", + "vol7song", + "vol7uit.", + "vol7ywer", + "vond6s7te", + "von6klo", + "voo7doo.", + "voor5s4", + "vor4s5t", + "vor7ster", + "vou7pops", + "vou5tj", + "vra6gry", + "v4re.", + "vree6tj", + "vreet7ji", + "vrie6sp", + "vri6jze", + "vry7duik", + "vry7kyk.", + "vry3s4", + "vry5st", + "vry7uit.", + "vu4e.", + "vu9yo.", + "vyf7armi", + "vy3s", + "1w", + "2w.", + "4wael", + "wae6lat", + "4wa4eo", + "3wag.", + "wag6las", + "wal6ste", + "wand6sk", + "wan6gaa", + "wan7inge", + "wans4", + "wan5sm", + "5wapen", + "3warm", + "war4s3", + "wars6e.", + "4wart", + "war6thi", + "war4t5j", + "war6toë", + "wart7oë.", + "war6too", + "war4t5r", + "war6tys", + "wa5shi", + "was6kaa", + "was5la", + "was6mou", + "was7pan.", + "wa5str", + "wate6ra", + "water7aa", + "wat5so", + "we4bad", + "we4bm", + "we4b5ru", + "web7taal", + "web7vlie", + "3wed", + "we4d3r", + "we5dra", + "we5dry", + "we4dy", + "5weefse", + "weeg6s.", + "wee5ran", + "wee5sa", + "wee7skaa", + "wee5sko", + "wee5sl", + "wee5s4p", + "wee5st", + "wee6tru", + "3weg", + "we4ga", + "weg7dof.", + "weg3l", + "we4go", + "weg7orde", + "we4g3r", + "weg3s4", + "weg5st", + "we4gu", + "4weis", + "we4k5ro", + "wek7uur.", + "wel7aanb", + "we6larg", + "we4l5ee", + "wel7flan", + "wel7fron", + "wel5oor", + "we4l5op", + "wel6ske", + "we4m3o", + "wem6os.", + "we4nak", + "we4n5as", + "wen7eens", + "wen6sad", + "wen6san", + "wen6sar", + "wen6sei", + "wen6ser", + "wen6ses", + "wen4sk", + "wens5ka", + "wen7skud", + "wen4s5l", + "wen4so", + "wen6spr", + "wen6ste", + "wens7tes", + "wen4s5u", + "wer7esse", + "wer6fom", + "wer6gar", + "wer6gre", + "wer6int", + "3werk", + "wer6kad", + "wer6k5af", + "wer6kes", + "wer4kl", + "werk7laa", + "wer7klan", + "wer7klap", + "wer7klok", + "wer6koms", + "wer6kon", + "wer7kony", + "wer6kre", + "wer6kro", + "wer6kuu", + "wer4kw", + "wer5kwa", + "wer4ky", + "we4r3o", + "wer6paf", + "wer6pan", + "wer6plo", + "wer6pon", + "wer6poo", + "wer6por", + "wer7smed", + "wer7uil.", + "wes6mit", + "wes7oewe", + "we4sp", + "wes7pemi", + "we4s3t", + "we5sta", + "wes4th", + "we5s4tr", + "wes7waar", + "3wet.", + "wet7regu", + "wet4s5o", + "wet4s5t", + "wet7wysi", + "3wêr", + "4wfon", + "wids7tor", + "wiel5a", + "wie4t5j", + "wi4gr", + "wi4kl", + "wi4ko", + "wiks7te.", + "wil6dag", + "wil6sin", + "wil4sk", + "wind7as.", + "win6del", + "win6dop", + "wind7op.", + "win4dr", + "wind7ruk", + "win6kle", + "win4sk", + "win7sky.", + "win4s5t", + "win7ston", + "win6tap", + "win6tes", + "wip7lig.", + "wip7roos", + "wit5el", + "wit7inkb", + "wit5ji", + "wi4t3o", + "wit5ro", + "2wj", + "wje6tun", + "4woeg", + "woe4s", + "wo4l3a", + "wol7invo", + "wol6klo", + "wo4l3o", + "woor6dr", + "wo5rum", + "wou6dag", + "w2r", + "wree4", + "wri6gon", + "2ws", + "wur4gr", + "wur4m", + "wurm5a", + "2ww", + "wwe7rint", + "wyd5oo", + "wyd7uite", + "wyk6was", + "wyn6and", + "wyn5sm", + "3wys", + "wys7aksi", + "wys3k", + "wys3p", + "wys5ta", + "wyt7raak", + "x'9ie.", + "x1a", + "xe1", + "x3em", + "xerox7e.", + "x2h", + "x1i", + "xys6te.", + "y1a", + "y4ama", + "ybe6lil", + "y2d", + "y3da", + "y3de", + "yden4s", + "ydgele6", + "ydg6leu", + "y3di", + "yd3of", + "yd3re", + "yd3ro", + "yd4sin", + "yd6skat", + "yds7krit", + "yds7orde", + "y1e", + "y4enn", + "yer2", + "yer7hof.", + "yer7maat", + "yer4s", + "yer7ton.", + "yer7vill", + "yer7voël", + "yes6agt", + "3yeu", + "yf3aa", + "y4far", + "yf5as.", + "yf3l", + "y2f3r", + "yf5ren", + "yf4sl", + "yf4su", + "y1g", + "yg4le", + "yg4li", + "yg4ly", + "yg5saa", + "ygs7kans", + "yg5sko", + "ygs5le", + "ygs6tek", + "yg4sto", + "yg4stu", + "ykaar4", + "yker6st", + "y4k5ins", + "y2kl", + "yk3li", + "yk4lu", + "yk5lui", + "yk5lus", + "ykoms4", + "y4kor", + "yk3ri", + "yk4s5ad", + "yk4sk", + "yks7kans", + "yk3sp", + "yks4t", + "yk4su", + "y2k3w", + "y1la", + "y1lo", + "y4loe", + "yls7laar", + "y2n1a", + "yn4a.", + "y4nei", + "y4n5ete", + "yn1g2", + "yn5kli", + "yn5kwa", + "y2n1o", + "y3n4om", + "yns6agt", + "yn4s5am", + "yns5ins", + "yn5sly", + "yns4m", + "yns7maan", + "yn4s5or", + "yn4sp", + "yns7paar", + "yns4t", + "yn3u", + "yo9yo.", + "y2p", + "y3pa", + "y3pe", + "y3pi", + "y5plan", + "yp3li", + "yp5org", + "y3pr", + "y3pu", + "y1r", + "y4sam", + "ys4ig", + "y4s5ind", + "y4s5ins", + "y2sk", + "ys5kar", + "ys3ko", + "y5s4koo", + "y2s3l", + "y2s3n", + "y2s3o", + "ys4ok", + "ys4ou", + "ys5poe", + "ys3t", + "ys4ta", + "y4s5taf", + "y5s4tel", + "y4ster", + "y3s4tr", + "ys4tu", + "ys3ui", + "ys3w", + "y2t", + "y3ta", + "yt3ag", + "y3te", + "yt4ha", + "y3ti", + "y3tj", + "y3to", + "y3tu", + "y3ty", + "yve7sant", + "1z", + "2z.", + "4zbur", + "zee7rust", + "zen7elle", + "zi2c", + "zi5cat", + "4zman", + "zook6a.", + "2zz", + "2-1", + "-er4t", + "-ert5j", + "-ha-7ha.", + "-k4li", + "-na6gew", + "-s4ti", + "-t4we", + "-5twee" + ], + "exceptions":[ + "sandaal", + "aand-e-tes", + "aan-gons", + "aan-sit-riem", + "af-ets", + "af-glooi", + "a-fri-kaans-eer-ste-taal-spre-ker", + "al-berts-kroon", + "al-ler-geen", + "baad-jie-mou-e", + "baan-vak", + "bar-mit-swa", + "boek-il-lus-tra-sies", + "bruids-ka-mer", + "buf-fels-poort", + "bur-ger-drag", + "chris-sies-meer", + "da-gha-men-ger", + "dak-oor-hang", + "dek-la-ding", + "dek-weef-sel", + "del-gings-fonds-plan", + "deur-swer-we", + "di-a-lek-woor-de-boek", + "dik-bek-wind", + "di-vi-dend-uit-ke-ring", + "dom-siek-te", + "drie-hoeks-me-ting", + "druk-ker-fonts", + "ei-en-doms-wê-reld", + "eks-trin-sie-ke", + "e-lands-kraal", + "e-lek-tro-ne-ga-ti-wi-teit", + "et-ter-sweer", + "fru-ga-le", + "gang-lig", + "gars-aar", + "ge-beds-ket-ting", + "ge-bruik-sfeer", + "ge-loofs-i-den-ti-teit", + "gem-mer-es-sens", + "ge-skoert", + "ge-slags-om-gang", + "ge-voels-kri-tiek", + "ge-voels-waar-de", + "ge-we-tens-angs", + "ge-wrig-smeer", + "gras-ta-pyt", + "grie-kwa", + "groeps-por-tret-te", + "grond-sop", + "haard-ys-ter", + "haat-skrif", + "han-dels-per-seel", + "han-ger-tjie-hei-de", + "har-sing-aan-doe-ning", + "hel-toe-gaan-vloek-woor-de", + "hond-ag-tig", + "ie-der-een", + "in-dink", + "in-gaar", + "in-skink", + "in-steek-slot", + "in-tap", + "in-ter-net-om-ge-wing", + "in-tree-da-tum", + "in-twy-fel-trek-king", + "ja-ka-ran-da-ko-nin-gin", + "jong-mei-sie-dro-me", + "ka-juits-maat", + "ka-li-glas", + "kam-de-bo-stink-hout", + "ka-me-roens", + "kam-sti-ge", + "kant-ruit", + "ka-ree-paal", + "karst-treg-ter", + "keg-an-ker", + "kies-a-re-as", + "klik-spaan", + "knal-kwik", + "kon-sep-or-don-nan-sie", + "kooks-oond", + "ko-tan-gens", + "kui-pers-am-bag", + "kuns-te-ra-de", + "kwak-sal-wers-mid-del", + "lamp-staan-der", + "lands-op-me-ting", + "lang-ter-myn-im-pak", + "lang-u-re", + "la-ven-tel-tak-kies", + "le-wens-kiem", + "lies-maat", + "lig-gaams-tem-pe-ra-tuur", + "limf-weef-sel", + "lip-om-ly-ner", + "maand-uit-ga-we", + "man-gaan-staal", + "mas-korf", + "mens-ky-ker", + "me-to-diek-es-sen-sies", + "mid-o-se-a-nie-se", + "mou-ska-kel", + "na-gaan-de", + "nar-re-slee", + "ne-gev-woes-tyn", + "nek-a-re", + "om-me-swaai", + "on-der-wys-ak-sie", + "on-tra-di-si-o-ne-le", + "oor-deels-plek", + "o-ra-gie", + "paarl-oos", + "pa-si-ënt-re-kords", + "pas-to-rie-tuin", + "plan-ke-koors", + "poe-toe-pap", + "pos-a-dres", + "pot-te-bak-kers-oond", + "pries-ter-amp", + "prins-loo-straat", + "proe-gla-sie", + "pte-ri-gi-um", + "raar-der", + "re-gi-ments-kom-man-dant", + "regs-en-ti-teit", + "res-lap", + "rond-skink", + "rooi-poot-el-sie", + "room-ter-te", + "ru-staal", + "se-ren-ge-ti", + "seun-so-praan", + "siek-wees", + "sies-tog", + "skaats-loop-baan", + "skree-tjies", + "slet-jie", + "snik-warm", + "soet-o-lie", + "son-de-val", + "sor-ghum-oes", + "spoed-oe-fe-nin-ge", + "spoor-weg-in-kom-ste", + "stads-nôi", + "sti-let-jie", + "stok-siel-sa-lig-al-leen", + "straat-slim", + "stre-pies-fer-weel", + "suid-ein-de", + "suip-roes", + "swaan-nes-te", + "swart-aas-vo-ëls", + "swie-ren-ga", + "ta-ke-la-sie", + "teen-sank-sies", + "tip-pe-ra-ry", + "tref-en-trap-on-ge-luk", + "tui-me-laar-dop", + "twis-ap-pel", + "tyds-ter-me", + "ui-er-sweer", + "uit-tree-loon", + "val-reep-leer", + "ver-band-uit-ma-ker", + "ver-koops-wel-sla-e", + "ver-sap-te", + "ver-val-funk-sie", + "ver-wy-sings-half-le-we-in-deks", + "vin-ger-e-te", + "volks-e-mo-sie", + "volks-ka-pi-ta-lis-me", + "vol-son-ge", + "vond-se", + "vos-kop", + "vre-des-en-gel", + "vre-des-par-ty", + "wa-pen-stil-stand", + "wa-ter-ver-koe-lings-to-rings", + "we-du-wee-skof", + "wel-oor-wo-ë", + "werp-lood", + "wes-oe-wer", + "xho-sa-tjie" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/as.json b/borb/pdf/canvas/layout/hyphenation/resources/as.json new file mode 100644 index 000000000..6d8c1c9b1 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/as.json @@ -0,0 +1,76 @@ +{ + "patterns" :[ + "2‍2", + "1‌1", + "অ1", + "আ1", + "ই1", + "ঈ1", + "উ1", + "ঊ1", + "ঋ1", + "ৠ1", + "ঌ1", + "ৡ1", + "এ1", + "ঐ1", + "ও1", + "ঔ1", + "া1", + "ি1", + "ী1", + "ু1", + "ূ1", + "ৃ1", + "ৄ1", + "ৢ1", + "ৣ1", + "ে1", + "ৈ1", + "ো1", + "ৌ1", + "2়2", + "ৗ1", + "1ক", + "1খ", + "1গ", + "1ঘ", + "1ঙ", + "1চ", + "1ছ", + "1জ", + "1ঝ", + "1ঞ", + "1ট", + "1ঠ", + "1ড", + "1ড়", + "1ঢ", + "1ঢ়", + "1ণ", + "1ত", + "1থ", + "1দ", + "1ধ", + "1ন", + "1প", + "1ফ", + "1ব", + "1ভ", + "1ম", + "1য", + "1য়", + "1র", + "1ল", + "1শ", + "1ষ", + "1স", + "1হ", + "ৎ1", + "2ঃ1", + "2ং1", + "2ঁ1", + "2ঽ1", + "2্2" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/bg.json b/borb/pdf/canvas/layout/hyphenation/resources/bg.json new file mode 100644 index 000000000..fc41b0010 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/bg.json @@ -0,0 +1,6890 @@ +{ + "patterns":[ + ".антиа4", + ".антиб4", + ".антив4", + ".антиг4", + ".антид4", + ".антие4", + ".антиж4", + ".антиз4", + ".антии4", + ".антий4", + ".антик4", + ".антил4", + ".антим4", + ".антин4", + ".антио4", + ".антип4", + ".антир4", + ".антис4", + ".антит4", + ".антиу4", + ".антиф4", + ".антих4", + ".антиц4", + ".антиш4", + ".антищ4", + ".антиъ4", + ".антию4", + ".антия4", + ".бб8", + ".бв8", + ".бг8", + ".бд8", + ".бж8", + ".бз8", + ".бк8", + ".бл8", + ".бм8", + ".бн8", + ".бп8", + ".бр8", + ".бс8", + ".бт8", + ".бф8", + ".бх8", + ".бц8", + ".бч8", + ".бш8", + ".бщ8", + ".вб8", + ".вбб8", + ".вбв8", + ".вбг8", + ".вбд8", + ".вбж8", + ".вбз8", + ".вбк8", + ".вбл8", + ".вбм8", + ".вбн8", + ".вбп8", + ".вбр8", + ".вбс8", + ".вбт8", + ".вбф8", + ".вбх8", + ".вбц8", + ".вбч8", + ".вбш8", + ".вбщ8", + ".вв8", + ".ввб8", + ".ввв8", + ".ввг8", + ".ввд8", + ".ввж8", + ".ввз8", + ".ввк8", + ".ввл8", + ".ввм8", + ".ввн8", + ".ввп8", + ".ввр8", + ".ввс8", + ".ввт8", + ".ввф8", + ".ввх8", + ".ввц8", + ".ввч8", + ".ввш8", + ".ввщ8", + ".вг8", + ".вгб8", + ".вгв8", + ".вгг8", + ".вгд8", + ".вгж8", + ".вгз8", + ".вгк8", + ".вгл8", + ".вгм8", + ".вгн8", + ".вгп8", + ".вгр8", + ".вгс8", + ".вгт8", + ".вгф8", + ".вгх8", + ".вгц8", + ".вгч8", + ".вгш8", + ".вгщ8", + ".вд8", + ".вдб8", + ".вдв8", + ".вдг8", + ".вдд8", + ".вдж8", + ".вдз8", + ".вдк8", + ".вдл8", + ".вдм8", + ".вдн8", + ".вдп8", + ".вдр8", + ".вдс8", + ".вдт8", + ".вдф8", + ".вдх8", + ".вдц8", + ".вдч8", + ".вдш8", + ".вдщ8", + ".вж8", + ".вжб8", + ".вжв8", + ".вжг8", + ".вжд8", + ".вжж8", + ".вжз8", + ".вжк8", + ".вжл8", + ".вжм8", + ".вжн8", + ".вжп8", + ".вжр8", + ".вжс8", + ".вжт8", + ".вжф8", + ".вжх8", + ".вжц8", + ".вжч8", + ".вжш8", + ".вжщ8", + ".вз8", + ".взб8", + ".взв8", + ".взг8", + ".взд8", + ".взж8", + ".взз8", + ".взк8", + ".взл8", + ".взм8", + ".взн8", + ".взп8", + ".взр8", + ".взс8", + ".взт8", + ".взф8", + ".взх8", + ".взц8", + ".взч8", + ".взш8", + ".взщ8", + ".вк8", + ".вкб8", + ".вкв8", + ".вкг8", + ".вкд8", + ".вкж8", + ".вкз8", + ".вкк8", + ".вкл8", + ".вкм8", + ".вкн8", + ".вкп8", + ".вкр8", + ".вкс8", + ".вкт8", + ".вкф8", + ".вкх8", + ".вкц8", + ".вкч8", + ".вкш8", + ".вкщ8", + ".вл8", + ".влб8", + ".влв8", + ".влг8", + ".влд8", + ".влж8", + ".влз8", + ".влк8", + ".влл8", + ".влм8", + ".влн8", + ".влп8", + ".влр8", + ".влс8", + ".влт8", + ".влф8", + ".влх8", + ".влц8", + ".влч8", + ".влш8", + ".влщ8", + ".вм8", + ".вмб8", + ".вмв8", + ".вмг8", + ".вмд8", + ".вмж8", + ".вмз8", + ".вмк8", + ".вмл8", + ".вмм8", + ".вмн8", + ".вмп8", + ".вмр8", + ".вмс8", + ".вмт8", + ".вмф8", + ".вмх8", + ".вмц8", + ".вмч8", + ".вмш8", + ".вмщ8", + ".вн8", + ".внб8", + ".внв8", + ".внг8", + ".внд8", + ".внж8", + ".внз8", + ".внк8", + ".внл8", + ".внм8", + ".внн8", + ".внп8", + ".внр8", + ".внс8", + ".внт8", + ".внф8", + ".внх8", + ".внц8", + ".внч8", + ".внш8", + ".внщ8", + ".вп8", + ".впб8", + ".впв8", + ".впг8", + ".впд8", + ".впж8", + ".впз8", + ".впк8", + ".впл8", + ".впм8", + ".впн8", + ".впп8", + ".впр8", + ".впс8", + ".впт8", + ".впф8", + ".впх8", + ".впц8", + ".впч8", + ".впш8", + ".впщ8", + ".вр8", + ".врб8", + ".врв8", + ".врг8", + ".врд8", + ".врж8", + ".врз8", + ".врк8", + ".врл8", + ".врм8", + ".врн8", + ".врп8", + ".врр8", + ".врс8", + ".врт8", + ".врф8", + ".врх8", + ".врц8", + ".врч8", + ".врш8", + ".врщ8", + ".вс8", + ".всб8", + ".всв8", + ".всг8", + ".всд8", + ".всж8", + ".всз8", + ".вск8", + ".всл8", + ".всм8", + ".всн8", + ".всп8", + ".вср8", + ".всс8", + ".вст8", + ".всф8", + ".всх8", + ".всц8", + ".всч8", + ".всш8", + ".всщ8", + ".вт8", + ".втб8", + ".втв8", + ".втг8", + ".втд8", + ".втж8", + ".втз8", + ".втк8", + ".втл8", + ".втм8", + ".втн8", + ".втп8", + ".втр8", + ".втс8", + ".втт8", + ".втф8", + ".втх8", + ".втц8", + ".втч8", + ".втш8", + ".втщ8", + ".вф8", + ".вфб8", + ".вфв8", + ".вфг8", + ".вфд8", + ".вфж8", + ".вфз8", + ".вфк8", + ".вфл8", + ".вфм8", + ".вфн8", + ".вфп8", + ".вфр8", + ".вфс8", + ".вфт8", + ".вфф8", + ".вфх8", + ".вфц8", + ".вфч8", + ".вфш8", + ".вфщ8", + ".вх8", + ".вхб8", + ".вхв8", + ".вхг8", + ".вхд8", + ".вхж8", + ".вхз8", + ".вхк8", + ".вхл8", + ".вхм8", + ".вхн8", + ".вхп8", + ".вхр8", + ".вхс8", + ".вхт8", + ".вхф8", + ".вхх8", + ".вхц8", + ".вхч8", + ".вхш8", + ".вхщ8", + ".вц8", + ".вцб8", + ".вцв8", + ".вцг8", + ".вцд8", + ".вцж8", + ".вцз8", + ".вцк8", + ".вцл8", + ".вцм8", + ".вцн8", + ".вцп8", + ".вцр8", + ".вцс8", + ".вцт8", + ".вцф8", + ".вцх8", + ".вцц8", + ".вцч8", + ".вцш8", + ".вцщ8", + ".вч8", + ".вчб8", + ".вчв8", + ".вчг8", + ".вчд8", + ".вчж8", + ".вчз8", + ".вчк8", + ".вчл8", + ".вчм8", + ".вчн8", + ".вчп8", + ".вчр8", + ".вчс8", + ".вчт8", + ".вчф8", + ".вчх8", + ".вчц8", + ".вчч8", + ".вчш8", + ".вчщ8", + ".вш8", + ".вшб8", + ".вшв8", + ".вшг8", + ".вшд8", + ".вшж8", + ".вшз8", + ".вшк8", + ".вшл8", + ".вшм8", + ".вшн8", + ".вшп8", + ".вшр8", + ".вшс8", + ".вшт8", + ".вшф8", + ".вшх8", + ".вшц8", + ".вшч8", + ".вшш8", + ".вшщ8", + ".вщ8", + ".вщб8", + ".вщв8", + ".вщг8", + ".вщд8", + ".вщж8", + ".вщз8", + ".вщк8", + ".вщл8", + ".вщм8", + ".вщн8", + ".вщп8", + ".вщр8", + ".вщс8", + ".вщт8", + ".вщф8", + ".вщх8", + ".вщц8", + ".вщч8", + ".вщш8", + ".вщщ8", + ".въ2за4", + ".въ2зб4", + ".въ2зв4", + ".въ2зг4", + ".въ2зд4", + ".въ2зе4", + ".въ5з4ел", + ".въ5з4е5ла", + ".въ5з4е5лът", + ".въ2зж4", + ".въ2зз4", + ".въ2зи4", + ".въ2зй4", + ".въ2зк4", + ".въ2зл4", + ".въ2зм4", + ".въ2зн4", + ".въ2зо4", + ".въ2зп4", + ".въ2зр4", + ".въ2зс4", + ".въ2зт4", + ".въ2зу4", + ".въ2зф4", + ".въ2зх4", + ".въ2зц4", + ".въ2зч4", + ".въ2зш4", + ".въ2зщ4", + ".въ2зъ4", + ".въ2зю4", + ".въ2зя4", + ".гб8", + ".гв8", + ".гг8", + ".гд8", + ".гж8", + ".гз8", + ".гк8", + ".гл8", + ".гм8", + ".гн8", + ".гп8", + ".гр8", + ".гс8", + ".гт8", + ".гф8", + ".гх8", + ".гц8", + ".гч8", + ".гш8", + ".гщ8", + ".дб8", + ".дв8", + ".дг8", + ".дд8", + ".дж8", + ".дз8", + ".дк8", + ".дл8", + ".дм8", + ".дн8", + ".доа4", + ".доб4", + ".до4б5лест", + ".до4б5р", + ".до4б6ро", + ".дов4", + ".дог4", + ".до4г5м", + ".дод4", + ".дое4", + ".дож4", + ".доз4", + ".дои4", + ".док4", + ".до4к5л", + ".до4к5т", + ".дол4", + ".до4л5н", + ".до4л5ч", + ".дом4", + ".дон4", + ".до4н5г", + ".до4н5д", + ".до4н5ж", + ".до4н5к", + ".до4н5с", + ".до4н5ч", + ".доо4", + ".доп4", + ".дор4", + ".дос4", + ".до4с5то", + ".дот4", + ".доу4", + ".доф4", + ".дох4", + ".доц4", + ".доч4", + ".дош4", + ".дощ4", + ".доъ4", + ".дою4", + ".доя4", + ".дп8", + ".др8", + ".дс8", + ".дт8", + ".дф8", + ".дх8", + ".дц8", + ".дч8", + ".дш8", + ".дщ8", + ".жб8", + ".жв8", + ".жг8", + ".жд8", + ".жж8", + ".жз8", + ".жк8", + ".жл8", + ".жм8", + ".жн8", + ".жп8", + ".жр8", + ".жс8", + ".жт8", + ".жф8", + ".жх8", + ".жц8", + ".жч8", + ".жш8", + ".жщ8", + ".заа4", + ".заб4", + ".зав4", + ".заг4", + ".зад4", + ".за4д5гран", + ".за4д5гроб", + ".за4д5кулис", + ".за4д5мин", + ".за4д5мор", + ".за4д5н", + ".зае4", + ".заж4", + ".заз4", + ".заи4", + ".зак4", + ".зал4", + ".за4л5п", + ".зам4", + ".зан4", + ".за4н5д", + ".зао4", + ".зап4", + ".за4п5т", + ".зар4", + ".за4р5з", + ".зас4", + ".зат4", + ".зау4", + ".заф4", + ".зах4", + ".зац4", + ".зач4", + ".заш4", + ".защ4", + ".заъ4", + ".заю4", + ".зая4", + ".зб8", + ".зв8", + ".зг8", + ".зд8", + ".зж8", + ".зз8", + ".зк8", + ".зл8", + ".зм8", + ".зн8", + ".зп8", + ".зр8", + ".зс8", + ".зт8", + ".зф8", + ".зх8", + ".зц8", + ".зч8", + ".зш8", + ".зщ8", + ".иза4", + ".изб4", + ".изв4", + ".изг4", + ".изд4", + ".изе4", + ".изж4", + ".изз4", + ".изи4", + ".изй4", + ".изк4", + ".изл4", + ".изм4", + ".изн4", + ".изо2бб4", + ".изо2бв4", + ".изо2бг4", + ".изо2бд4", + ".изо2бж4", + ".изо2бз4", + ".изо4би", + ".изо2бк4", + ".изо2бл4", + ".изо2бм4", + ".изо2бн4", + ".изо2бп4", + ".изо2бр4", + ".изо2бс4", + ".изо2бт4", + ".изо2бф4", + ".изо2бх4", + ".изо2бц4", + ".изо2бч4", + ".изо2бш4", + ".изо2бщ4", + ".изохк", + ".изп4", + ".изпоа4", + ".изпоб4", + ".изпов4", + ".изпог4", + ".изпод4", + ".изпое4", + ".изпож4", + ".изпоз4", + ".изпои4", + ".изпой4", + ".изпок4", + ".изпол4", + ".изпо4л5з", + ".изпом4", + ".изпо4м5п", + ".изпон4", + ".изпоо4", + ".изпоп4", + ".изпор4", + ".изпо4р5т", + ".изпос4", + ".изпот4", + ".изпоу4", + ".изпоф4", + ".изпох4", + ".изпоц4", + ".изпоч4", + ".изпош4", + ".изпощ4", + ".изпоъ4", + ".изпою4", + ".изпоя4", + ".изр4", + ".изс4", + ".изт4", + ".изу4", + ".изф4", + ".изх4", + ".изц4", + ".изч4", + ".изш4", + ".изщ4", + ".изъ4", + ".изю4", + ".изя4", + ".кб8", + ".кв8", + ".кг8", + ".кд8", + ".кж8", + ".кз8", + ".кк8", + ".кл8", + ".км8", + ".кн8", + ".кп8", + ".кр8", + ".кс8", + ".кт8", + ".кф8", + ".кх8", + ".кц8", + ".кч8", + ".кш8", + ".кщ8", + ".лб8", + ".лв8", + ".лг8", + ".лд8", + ".лж8", + ".лз8", + ".лк8", + ".лл8", + ".лм8", + ".лн8", + ".лп8", + ".лр8", + ".лс8", + ".лт8", + ".лф8", + ".лх8", + ".лц8", + ".лч8", + ".лш8", + ".лщ8", + ".мб8", + ".мв8", + ".мг8", + ".мд8", + ".мж8", + ".мз8", + ".мк8", + ".мл8", + ".мм8", + ".мн8", + ".мп8", + ".мр8", + ".мс8", + ".мт8", + ".мф8", + ".мх8", + ".мц8", + ".мч8", + ".мш8", + ".мщ8", + ".наа4", + ".наб4", + ".нав4", + ".наг4", + ".на4г5ло", + ".на2дб4", + ".на2дв4", + ".на2дг4", + ".на2дд4", + ".на2д3ж4", + ".на3д4жав", + ".на3д4жас", + ".на2дз4", + ".на4ди4гр", + ".на2дк4", + ".на2дл4", + ".на2дм4", + ".на2дн4", + ".на2дп4", + ".на2др4", + ".над4ращ", + ".над4реб", + ".над4рем", + ".над4роб", + ".над4рус", + ".над4рън", + ".над4рям", + ".на2дс4", + ".на2дт4", + ".на2дф4", + ".на2дх4", + ".на2дц4", + ".на2дч4", + ".на2дш4", + ".на2дщ4", + ".нае4", + ".наж4", + ".наз4", + ".наи4", + ".нак4", + ".нал4", + ".нам4", + ".нан4", + ".нао4", + ".нап4", + ".нар4", + ".на4р5г", + ".на4р5к", + ".нас4", + ".нат4", + ".нау4", + ".наф4", + ".нах4", + ".нац4", + ".нач4", + ".наш4", + ".нащ4", + ".наъ4", + ".наю4", + ".ная4", + ".нб8", + ".нв8", + ".нг8", + ".нд8", + ".нж8", + ".нз8", + ".нк8", + ".нл8", + ".нм8", + ".нн8", + ".нп8", + ".нр8", + ".нс8", + ".нт8", + ".нф8", + ".нх8", + ".нц8", + ".нч8", + ".нш8", + ".нщ8", + ".оа4", + ".оа5зис", + ".оба4гн", + ".обб4", + ".обв4", + ".обг4", + ".обд4", + ".обж4", + ".обз4", + ".оби4гр", + ".обк4", + ".обл4", + ".об4лаго", + ".об4лаж", + ".обм4", + ".обн4", + ".обо4бщ", + ".обоз4н", + ".обоз4р", + ".обос4н", + ".обособ", + ".обп4", + ".обр4", + ".об4рем", + ".об4рул", + ".об4ръс", + ".обс4", + ".обт4", + ".обу4зд", + ".обусл", + ".обф4", + ".обх4", + ".обц4", + ".обч4", + ".обш4", + ".общ4", + ".об4щ5н", + ".обя4сн", + ".ов4", + ".ов4дов", + ".ов4лад", + ".ов5ц", + ".ов5ч", + ".ог4", + ".ог5н", + ".од4", + ".ое4", + ".ож4", + ".оз4", + ".озд4р", + ".ои4", + ".ой4", + ".ок4", + ".ок5си", + ".ок5т", + ".ол4", + ".ол5тар", + ".ом4", + ".ом5лет", + ".ом5ни", + ".он4", + ".он5баш", + ".он5дул", + ".он5зи", + ".он5ко", + ".он5лайн", + ".он5то", + ".оо4", + ".оп4", + ".оп5т", + ".оп5ци", + ".ор4", + ".ор5б", + ".ор5г", + ".ор5д", + ".ор5к", + ".ор5л", + ".ор5н", + ".ор5т", + ".ор5ф", + ".ор5х", + ".ос4", + ".ос5ман", + ".ос5мин", + ".ос5миц", + ".ос5мич", + ".ос5мо", + ".ос5те", + ".ос5тро", + ".ос5ци", + ".отб4", + ".отв4", + ".отг4", + ".отд4", + ".отж4", + ".отз4", + ".оти4в", + ".оти4д", + ".отк4", + ".отл4", + ".отм4", + ".отн4", + ".отп4", + ".отр4", + ".отс4", + ".отт4", + ".оту4ч", + ".отф4", + ".отх4", + ".отц4", + ".отч4", + ".отш4", + ".отщ4", + ".оу4", + ".оф4", + ".ох4", + ".ох5ва", + ".ох5ка", + ".ох5на", + ".оц4", + ".оч4", + ".ош4", + ".ощ4", + ".оъ4", + ".ою4", + ".оя4", + ".пб8", + ".пв8", + ".пг8", + ".пд8", + ".пж8", + ".пз8", + ".пк8", + ".пл8", + ".пм8", + ".пн8", + ".поа4", + ".поб4", + ".пов4", + ".пог4", + ".по2дб4", + ".по2дв4", + ".под4воу", + ".по2дг4", + ".по2дд4", + ".по2д3ж4", + ".по3д4жав", + ".по3д4жур", + ".по2дз4", + ".по2ди4гр", + ".по2ди4зр", + ".по2дк4", + ".по2дл4", + ".по2дм4", + ".по2дн4", + ".по2до4паш", + ".по2до4стр", + ".по2до4тд", + ".по2до4тч", + ".по2до4ф", + ".по2дп4", + ".по2др4", + ".под4рем", + ".под4рън", + ".под4ръп", + ".под4рям", + ".по2дс4", + ".по2дт4", + ".по2ду4пр", + ".по2ду4ч", + ".по2дф4", + ".по2дх4", + ".по2дц4", + ".по2дч4", + ".по2дш4", + ".по2дщ4", + ".пое4", + ".пож4", + ".поз4", + ".позаа4", + ".позаб4", + ".позав4", + ".позаг4", + ".позад4", + ".позае4", + ".позаж4", + ".позаз4", + ".позаи4", + ".позай4", + ".позак4", + ".позал4", + ".позам4", + ".позан4", + ".позао4", + ".позап4", + ".позар4", + ".позас4", + ".позат4", + ".позау4", + ".позаф4", + ".позах4", + ".позац4", + ".позач4", + ".позаш4", + ".позащ4", + ".позаъ4", + ".позаю4", + ".позая4", + ".пои4", + ".пои2за4", + ".пои2зб4", + ".пои2зв4", + ".пои2зг4", + ".пои2зд4", + ".пои2зе4", + ".пои2зж4", + ".пои2зз4", + ".пои2зи4", + ".пои2зй4", + ".пои2зк4", + ".пои2зл4", + ".пои2зм4", + ".пои2зн4", + ".пои2зо4", + ".пои2зп4", + ".пои2зр4", + ".пои2зс4", + ".пои2зт4", + ".пои2зу4", + ".пои2зф4", + ".пои2зх4", + ".пои2зц4", + ".пои2зч4", + ".пои2зш4", + ".пои2зщ4", + ".пои2зъ4", + ".пои2зю4", + ".пои2зя4", + ".пой4", + ".пок4", + ".пол4", + ".по4л5з", + ".по4л5к", + ".по4л5с", + ".пом4", + ".по4м5п", + ".пон4", + ".понаа4", + ".понаб4", + ".понав4", + ".понаг4", + ".пона2дб4", + ".пона2дв4", + ".пона2дг4", + ".пона2дд4", + ".пона2дж4", + ".пона2дз4", + ".пона2ди4гр", + ".пона2дк4", + ".пона2дл4", + ".пона2дм4", + ".пона2дн4", + ".пона2дп4", + ".пона2др4", + ".понад4ращ", + ".понад4реб", + ".понад4рем", + ".понад4роб", + ".понад4рус", + ".понад4рън", + ".понад4рям", + ".пона2дс4", + ".пона2дт4", + ".пона2дф4", + ".пона2дх4", + ".пона2дц4", + ".пона2дч4", + ".пона2дш4", + ".пона2дщ4", + ".понае4", + ".понаж4", + ".поназ4", + ".понаи4", + ".понай4", + ".понак4", + ".понал4", + ".понам4", + ".понан4", + ".понао4", + ".понап4", + ".понар4", + ".понас4", + ".понат4", + ".понау4", + ".понаф4", + ".понах4", + ".понац4", + ".понач4", + ".понаш4", + ".понащ4", + ".понаъ4", + ".понаю4", + ".поная4", + ".по4н5т", + ".пооа4", + ".поо4бад", + ".поо4бажд", + ".поо2бб4", + ".поо2бв4", + ".поо2бг4", + ".поо2бд4", + ".поо2бж4", + ".поо2бз4", + ".поо2би4гр", + ".поо4бик", + ".поо2бк4", + ".поо2бл4", + ".поо2бм4", + ".поо2бн4", + ".поо2бп4", + ".поо2бр4", + ".поо2бс4", + ".поо2бт4", + ".поо2бф4", + ".поо2бх4", + ".поо2бц4", + ".поо2бч4", + ".поо2бш4", + ".поо2бщ4", + ".поо2бя4сн", + ".поов4", + ".поог4", + ".поод4", + ".поое4", + ".поож4", + ".пооз4", + ".поои4", + ".поой4", + ".поок4", + ".поол4", + ".поом4", + ".поон4", + ".пооо4", + ".пооп4", + ".поор4", + ".поос4", + ".поо2тб4", + ".поо2тв4", + ".поо2тг4", + ".поо2тд4", + ".поо2тж4", + ".поо2тз4", + ".поо2тк4", + ".поо2тл4", + ".поо2тм4", + ".поо2тн4", + ".поо2тп4", + ".поо2тр4", + ".поо2тс4", + ".поо2тт4", + ".поо2ту4ч", + ".поо2тф4", + ".поо2тх4", + ".поо2тц4", + ".поо2тч4", + ".поо2тш4", + ".поо2тщ4", + ".пооу4", + ".пооф4", + ".поох4", + ".пооц4", + ".пооч4", + ".поош4", + ".поощ4", + ".поо4щ5р", + ".пооъ4", + ".поою4", + ".пооя4", + ".поп4риа4", + ".поп4риб4", + ".поп4рив4", + ".поп4риг4", + ".поп4рид4", + ".поп4рие4", + ".поп4риж4", + ".поп4риз4", + ".поп4рии4", + ".поп4рий4", + ".поп4рик4", + ".поп4рил4", + ".поп4рим4", + ".поп4рин4", + ".поп4рио4", + ".поп4рип4", + ".поп4рир4", + ".поп4рис4", + ".поп4рит4", + ".поп4риу4", + ".поп4риф4", + ".поп4рих4", + ".поп4риц4", + ".поп4рич4", + ".поп4риш4", + ".поп4рищ4", + ".поп4риъ4", + ".поп4рию4", + ".поп4рия4", + ".пор4", + ".по4р5н", + ".по4р5т", + ".по4р5ф", + ".по4р5ц", + ".пос4", + ".по4с4т", + ".пот4", + ".по4т5н", + ".поу4", + ".поф4", + ".пох4", + ".поц4", + ".пош4", + ".пощ4", + ".поъ4", + ".пою4", + ".поя4", + ".пп8", + ".пр8", + ".преа4", + ".преб4", + ".прев4", + ".превъ2за4", + ".превъ2зб4", + ".превъ2зв4", + ".превъ2зг4", + ".превъ2зд4", + ".превъ2зе4", + ".превъ2зж4", + ".превъ2зз4", + ".превъ2зи4", + ".превъ2зй4", + ".превъ2зк4", + ".превъ2зл4", + ".превъ2зм4", + ".превъ2зн4", + ".превъ2зо4", + ".превъ2зп4", + ".превъ2зр4", + ".превъ2зс4", + ".превъ2зт4", + ".превъ2зу4", + ".превъ2зф4", + ".превъ2зх4", + ".превъ2зц4", + ".превъ2зч4", + ".превъ2зш4", + ".превъ2зщ4", + ".превъ2зъ4", + ".превъ2зю4", + ".превъ2зя4", + ".прег4", + ".пре2дб4", + ".пре2дв4", + ".пре2дг4", + ".пре2дд4", + ".пре2дж4", + ".пре2дз4", + ".пре2ди4зб4", + ".пре2ди4зв4", + ".пре2ди4нфар", + ".пре2ди4стор", + ".пре2дк4", + ".пре2дл4", + ".пре2дм4", + ".пре2дн4", + ".пре2до4бед", + ".пре2до4ктом", + ".пре2доп4ред", + ".пре2дос4воб", + ".пре2до2та4", + ".пре2до2тб4", + ".пре2до2тв4", + ".пре2до2тг4", + ".пре2до2тд4", + ".пре2до2те4", + ".пре2до2тж4", + ".пре2до2тз4", + ".пре2до2ти4", + ".пре2до2тй4", + ".пре2до2тк4", + ".пре2до2тл4", + ".пре2до2тм4", + ".пре2до2тн4", + ".пре2до2то4", + ".пре2до2тп4", + ".пре2до2тр4", + ".пре2до2тс4", + ".пре2до2тт4", + ".пре2до2ту4", + ".пре2до2тф4", + ".пре2до2тх4", + ".пре2до2тц4", + ".пре2до2тч4", + ".пре2до2тш4", + ".пре2до2тщ4", + ".пре2до2тъ4", + ".пре2до2тю4", + ".пре2до2тя4", + ".пре2дох4р", + ".пре2дп4", + ".пре2др4", + ".пред4рем", + ".пре2д4реш", + ".пред4рям", + ".пре2дс4", + ".пре2дт4", + ".пре2ду4бед", + ".пре2ду4бежд", + ".пре2дугад", + ".пре2думис", + ".пре2думиш", + ".пре2ду4пр", + ".пре2дусе", + ".пре2дус4л", + ".пре2ду4трин", + ".пре2ду4чил", + ".пре2дф4", + ".пре2дх4", + ".пре2дц4", + ".пре2дч4", + ".пре2дш4", + ".пре2дщ4", + ".пре2дя4в", + ".пре2дя4ст", + ".прее4", + ".преж4", + ".пре4ж5д", + ".презаа4", + ".презаб4", + ".презав4", + ".презаг4", + ".презад4", + ".презае4", + ".презаж4", + ".презаз4", + ".презаи4", + ".презай4", + ".презак4", + ".презал4", + ".презам4", + ".презан4", + ".презао4", + ".презап4", + ".презар4", + ".презас4", + ".презат4", + ".презау4", + ".презаф4", + ".презах4", + ".презац4", + ".презач4", + ".презаш4", + ".презащ4", + ".презаъ4", + ".презаю4", + ".презая4", + ".пре2зб4", + ".пре2зв4", + ".пре2зг4", + ".пре2зд4", + ".пре2зж4", + ".пре2зз4", + ".пре2зк4", + ".пре2зл4", + ".пре2зм4", + ".пре2зн4", + ".пре4з5о4кеан", + ".пре2зп4", + ".през4р", + ".пре4з5рам", + ".пре4з5ред", + ".пре2зс4", + ".пре2зт4", + ".пре2зф4", + ".пре2зх4", + ".пре2зц4", + ".пре2зч4", + ".пре2зш4", + ".пре2зщ4", + ".преи4", + ".преи2за4", + ".преи2зб4", + ".преи2зв4", + ".преи2зг4", + ".преи2зд4", + ".преи2зе4", + ".преи2зж4", + ".преи2зз4", + ".преи2зи4", + ".преи2зй4", + ".преи2зк4", + ".преи2зл4", + ".преи2зм4", + ".преи2зн4", + ".преи2зо4", + ".преи2зп4", + ".преи2зр4", + ".преи2зс4", + ".преи2зт4", + ".преи2зу4", + ".преи2зф4", + ".преи2зх4", + ".преи2зц4", + ".преи2зч4", + ".преи2зш4", + ".преи2зщ4", + ".преи2зъ4", + ".преи2зю4", + ".преи2зя4", + ".прей4", + ".прек4", + ".прел4", + ".прем4", + ".прен4", + ".пренаа4", + ".пренаб4", + ".пренав4", + ".пренаг4", + ".пренад4", + ".пренае4", + ".пренаж4", + ".преназ4", + ".пренаи4", + ".пренай4", + ".пренак4", + ".пренал4", + ".пренам4", + ".пренан4", + ".пренао4", + ".пренап4", + ".пренар4", + ".пренас4", + ".пренат4", + ".пренау4", + ".пренаф4", + ".пренах4", + ".пренац4", + ".пренач4", + ".пренаш4", + ".пренащ4", + ".пренаъ4", + ".пренаю4", + ".преная4", + ".прео4", + ".преп4", + ".прер4", + ".прес4", + ".пре4с5но", + ".пре4с5па", + ".пре4с4пи", + ".пре4с5ц", + ".прет4", + ".преу4", + ".преф4", + ".прех4", + ".прец4", + ".преч4", + ".пре4ч5к", + ".прещ4", + ".преъ4", + ".прею4", + ".прея4", + ".приа4", + ".приб4", + ".прив4", + ".приг4", + ".прид4", + ".прие4", + ".приж4", + ".приз4", + ".при4з5м", + ".прии4", + ".прий4", + ".прик4", + ".прил4", + ".прим4", + ".при4м5к", + ".прин4", + ".при4н5т", + ".при4н5ц", + ".прио4", + ".прип4", + ".при4п5в", + ".при4п5к", + ".при4п5н", + ".прир4", + ".прис4", + ".прит4", + ".при4т5ч", + ".приу4", + ".приф4", + ".прих4", + ".при4х5н", + ".приц4", + ".прич4", + ".приш4", + ".при4ш5к", + ".прищ4", + ".приъ4", + ".прию4", + ".прия4", + ".проа4", + ".проб4", + ".про4б5в", + ".про4б5к", + ".про4б5лем", + ".пров4", + ".прог4", + ".прод4", + ".прое4", + ".прож4", + ".проз4", + ".прои4", + ".прок4", + ".про4к5с", + ".прол4", + ".пром4", + ".прон4", + ".проо4", + ".проп4", + ".прор4", + ".прос4", + ".про4с5б", + ".про4с4т", + ".про4с5ф", + ".прот4", + ".проу4", + ".прох4", + ".проц4", + ".проч4", + ".прош4", + ".прощ4", + ".проъ4", + ".прою4", + ".проя4", + ".пс8", + ".пт8", + ".пф8", + ".пх8", + ".пц8", + ".пч8", + ".пш8", + ".пщ8", + ".ра2за4", + ".ра2зб4", + ".ра2зв4", + ".ра2зг4", + ".ра2зд4", + ".ра2зе4", + ".ра2зж4", + ".ра2зз4", + ".ра2зи4", + ".ра2зй4", + ".ра2зк4", + ".ра2зл4", + ".ра2зм4", + ".ра2зн4", + ".ра2зо4", + ".ра2зп4", + ".ра2зр4", + ".ра2зс4", + ".ра2зт4", + ".ра2зу4", + ".ра2зф4", + ".ра2зх4", + ".ра2зц4", + ".ра2зч4", + ".ра2зш4", + ".ра2зщ4", + ".ра2зъ4", + ".ра2зю4", + ".ра2зя4", + ".рб8", + ".рв8", + ".рг8", + ".рд8", + ".рж8", + ".рз8", + ".рк8", + ".рл8", + ".рм8", + ".рн8", + ".рп8", + ".рр8", + ".рс8", + ".рт8", + ".рф8", + ".рх8", + ".рц8", + ".рч8", + ".рш8", + ".рщ8", + ".сб8", + ".св8", + ".сг8", + ".сд8", + ".сж8", + ".сз8", + ".ск8", + ".сл8", + ".см8", + ".сн8", + ".сп8", + ".ср8", + ".сс8", + ".ст8", + ".сф8", + ".сх8", + ".сц8", + ".сч8", + ".сш8", + ".сщ8", + ".тб8", + ".тв8", + ".тг8", + ".тд8", + ".тж8", + ".тз8", + ".тк8", + ".тл8", + ".тм8", + ".тн8", + ".тп8", + ".тр8", + ".тс8", + ".тт8", + ".тф8", + ".тх8", + ".тц8", + ".тч8", + ".тш8", + ".тщ8", + ".уа4", + ".уб4", + ".ув4", + ".уг4", + ".уд4", + ".уе4", + ".уж4", + ".уж5ки", + ".уз4", + ".уз5бе", + ".уи4", + ".уй4", + ".уй5дис", + ".уй5ду", + ".ук4", + ".ул4", + ".ул5т", + ".ун4", + ".ун5гар", + ".ун5ци", + ".уо4", + ".уп4", + ".ур4", + ".ур5ба", + ".ур5в", + ".ур5н", + ".ур5суз", + ".ур5ти", + ".ус4", + ".ус5та", + ".ус5те", + ".ус5ти", + ".ут4", + ".ут5ре.", + ".ут5реш", + ".ут5рин", + ".ут4ро", + ".уу4", + ".уф4", + ".ух4", + ".уц4", + ".уч4", + ".уч5тив", + ".уш4", + ".уш5но", + ".ущ4", + ".уъ4", + ".ую4", + ".ую5те", + ".уя4", + ".фб8", + ".фв8", + ".фг8", + ".фд8", + ".фж8", + ".фз8", + ".фк8", + ".фл8", + ".фм8", + ".фн8", + ".фп8", + ".фр8", + ".фс8", + ".фт8", + ".фф8", + ".фх8", + ".фц8", + ".фч8", + ".фш8", + ".фщ8", + ".хб8", + ".хв8", + ".хг8", + ".хд8", + ".хж8", + ".хз8", + ".хк8", + ".хл8", + ".хм8", + ".хн8", + ".хп8", + ".хр8", + ".хс8", + ".хт8", + ".хф8", + ".хх8", + ".хц8", + ".хч8", + ".хш8", + ".хщ8", + ".цб8", + ".цв8", + ".цг8", + ".цд8", + ".цж8", + ".цз8", + ".цк8", + ".цл8", + ".цм8", + ".цн8", + ".цп8", + ".цр8", + ".цс8", + ".цт8", + ".цф8", + ".цх8", + ".цц8", + ".цч8", + ".цш8", + ".цщ8", + ".чб8", + ".чв8", + ".чг8", + ".чд8", + ".чж8", + ".чз8", + ".чк8", + ".чл8", + ".чм8", + ".чн8", + ".чп8", + ".чр8", + ".чс8", + ".чт8", + ".чф8", + ".чх8", + ".чц8", + ".чч8", + ".чш8", + ".чщ8", + ".шб8", + ".шв8", + ".шг8", + ".шд8", + ".шж8", + ".шз8", + ".шк8", + ".шл8", + ".шм8", + ".шн8", + ".шп8", + ".шр8", + ".шс8", + ".шт8", + ".шф8", + ".шх8", + ".шц8", + ".шч8", + ".шш8", + ".шщ8", + ".щб8", + ".щв8", + ".щг8", + ".щд8", + ".щж8", + ".щз8", + ".щк8", + ".щл8", + ".щм8", + ".щн8", + ".щп8", + ".щр8", + ".щс8", + ".щт8", + ".щф8", + ".щх8", + ".щц8", + ".щч8", + ".щш8", + ".щщ8", + "а1", + "4б3б4", + "8бб.", + "4ббб4", + "ббв4", + "ббг4", + "ббд4", + "ббж4", + "ббз4", + "4ббк4", + "ббл4", + "ббм4", + "ббн4", + "4ббп4", + "ббр4", + "ббс4", + "4ббт4", + "ббф4", + "ббх4", + "4ббц4", + "4ббч4", + "ббш4", + "ббщ4", + "2б3в", + "8бв.", + "4бвб4", + "4бвв", + "4бвг4", + "4бвд4", + "4бвк4", + "4бвп4", + "4бвт4", + "4бвф", + "4бвц4", + "4бвч4", + "2б3г", + "8бг.", + "4бгб4", + "4бгг", + "4бгк4", + "4бгп4", + "4бгт4", + "4бгц4", + "4бгч4", + "2б3д", + "8бд.", + "4бдб4", + "4бдг", + "4бдд", + "4бдк4", + "4бдп4", + "4бдт4", + "4бдц4", + "4бдч4", + "2б3ж", + "8бж.", + "4бжб4", + "4бжг4", + "4бжд4", + "4бжж", + "4бжк4", + "4бжп4", + "4бжс", + "4бжт4", + "4бжф", + "4бжх", + "4бжц4", + "4бжч4", + "4бжш", + "2б3з", + "8бз.", + "4бзб4", + "4бзг4", + "4бзд4", + "4бзз", + "4бзк4", + "4бзп4", + "4бзс", + "4бзт4", + "4бзф", + "4бзх", + "4бзц4", + "4бзч4", + "4бзш", + "бй4", + "4б3к4", + "8бк.", + "4бкб4", + "бкв4", + "4бкг4", + "4бкд4", + "бкж4", + "бкз4", + "4бкк4", + "бкл4", + "бкм4", + "бкн4", + "4бкп4", + "бкр4", + "бкс4", + "4бкт4", + "бкф4", + "бкх4", + "4бкц4", + "4бкч4", + "бкш4", + "бкщ4", + "2б3л4", + "8бл.", + "4блб4", + "4блк4", + "4блл", + "4блп4", + "4блт4", + "4блц4", + "4блч4", + "2б3м4", + "8бм.", + "4бмб4", + "4бмк4", + "4бмм", + "4бмп4", + "4бмт4", + "4бмц4", + "4бмч4", + "2б3н4", + "8бн.", + "4бнб4", + "4бнк4", + "4бнн", + "4бнп4", + "4бнт4", + "4бнц4", + "4бнч4", + "4б3п4", + "8бп.", + "4бпб4", + "бпв4", + "4бпг4", + "4бпд4", + "бпж4", + "бпз4", + "4бпк4", + "бпл4", + "бпм4", + "бпн4", + "4бпп4", + "бпр4", + "бпс4", + "4бпт4", + "бпф4", + "бпх4", + "4бпц4", + "4бпч4", + "бпш4", + "бпщ4", + "2б3р4", + "8бр.", + "4брб4", + "4брк4", + "4брп4", + "4брр", + "4брт4", + "4брц4", + "4брч4", + "4б3с", + "8бс.", + "4бсб4", + "4бсг4", + "4бсд4", + "4бсж", + "4бсз", + "4бск4", + "4бсп4", + "4бсс", + "4бст4", + "4бсц4", + "4бсч4", + "4б3т4", + "8бт.", + "4бтб4", + "бтв4", + "4бтг4", + "4бтд4", + "бтж4", + "бтз4", + "4бтк4", + "бтл4", + "бтм4", + "бтн4", + "4бтп4", + "бтр4", + "бтс4", + "4бтт4", + "бтф4", + "бтх4", + "4бтц4", + "4бтч4", + "бтш4", + "бтщ4", + "4б3ф", + "8бф.", + "4бфб4", + "4бфв", + "4бфг4", + "4бфд4", + "4бфж", + "4бфз", + "4бфк4", + "4бфп4", + "4бфт4", + "4бфф", + "4бфц4", + "4бфч4", + "4б3х", + "8бх.", + "4бхб4", + "4бхг4", + "4бхд4", + "4бхж", + "4бхз", + "4бхк4", + "4бхп4", + "4бхт4", + "4бхх", + "4бхц4", + "4бхч4", + "4б3ц4", + "8бц.", + "4бцб4", + "бцв4", + "4бцг4", + "4бцд4", + "бцж4", + "бцз4", + "4бцк4", + "бцл4", + "бцм4", + "бцн4", + "4бцп4", + "бцр4", + "бцс4", + "4бцт4", + "бцф4", + "бцх4", + "4бцц4", + "4бцч4", + "бцш4", + "бцщ4", + "4б3ч4", + "8бч.", + "4бчб4", + "бчв4", + "4бчг4", + "4бчд4", + "бчж4", + "бчз4", + "4бчк4", + "бчл4", + "бчм4", + "бчн4", + "4бчп4", + "бчр4", + "бчс4", + "4бчт4", + "бчф4", + "бчх4", + "4бчц4", + "4бчч4", + "бчш4", + "бчщ4", + "4б3ш", + "8бш.", + "4бшб4", + "4бшг4", + "4бшд4", + "4бшж", + "4бшз", + "4бшк4", + "4бшп4", + "4бшт4", + "4бшц4", + "4бшч4", + "4бшш", + "4б3щ", + "8бщ.", + "4бщб4", + "4бщк4", + "4бщп4", + "4бщт4", + "4бщц4", + "4бщч4", + "4бщщ", + "2в3б", + "8вб.", + "4вбб", + "4вбв4", + "4вбк", + "4вбп", + "4вбт", + "4вбф4", + "4вбц", + "4вбч", + "4в3в4", + "8вв.", + "ввб4", + "4ввв4", + "ввг4", + "ввд4", + "ввж4", + "ввз4", + "ввк4", + "ввл4", + "ввм4", + "ввн4", + "ввп4", + "ввр4", + "ввс4", + "ввт4", + "4ввф4", + "ввх4", + "ввц4", + "ввч4", + "ввш4", + "ввщ4", + "2в3г", + "8вг.", + "4вгв4", + "4вгг", + "4вгк", + "4вгп", + "4вгт", + "4вгф4", + "4вгц", + "4вгч", + "2в3д", + "8вд.", + "4вдб", + "4вдв4", + "4вдг", + "4вдд", + "4вдк", + "4вдп", + "4вдт", + "4вдф4", + "4вдц", + "4вдч", + "2в3ж", + "8вж.", + "4вжв4", + "4вжж", + "4вжс", + "4вжф4", + "4вжх", + "4вжш", + "2в3з", + "8вз.", + "4взв4", + "4взз", + "4взс", + "4взф4", + "4взх", + "4взш", + "вй4", + "2в3к", + "8вк.", + "4вкб", + "4вкв4", + "4вкг", + "4вкд", + "4вкк", + "4вкф4", + "2в3л4", + "8вл.", + "4влв4", + "4влл", + "4влф4", + "2в3м4", + "8вм.", + "4вмв4", + "4вмм", + "4вмф4", + "2в3н4", + "8вн.", + "4внв4", + "4внн", + "4внф4", + "2в3п", + "8вп.", + "4впб", + "4впв4", + "4впг", + "4впд", + "4впп", + "4впф4", + "2в3р4", + "8вр.", + "4врв4", + "4врр", + "4врф4", + "2в3с", + "8вс.", + "4всв4", + "4всж", + "4всз", + "4всс", + "4всф4", + "2в3т", + "8вт.", + "4втб", + "4втв4", + "4втг", + "4втд", + "4втк", + "4втп", + "4втт", + "4втф4", + "4втц", + "4втч", + "4в3ф4", + "8вф.", + "вфб4", + "4вфв4", + "вфг4", + "вфд4", + "4вфж4", + "4вфз4", + "вфк4", + "вфл4", + "вфм4", + "вфн4", + "вфп4", + "вфр4", + "вфс4", + "вфт4", + "4вфф4", + "вфх4", + "вфц4", + "вфч4", + "вфш4", + "вфщ4", + "2в3х", + "8вх.", + "4вхв4", + "4вхж", + "4вхз", + "4вхф4", + "4вхх", + "2в3ц", + "8вц.", + "4вцб", + "4вцв4", + "4вцг", + "4вцд", + "4вцк", + "4вцп", + "4вцт", + "4вцф4", + "4вцц", + "4вцч", + "2в3ч", + "8вч.", + "4вчб", + "4вчв4", + "4вчг", + "4вчд", + "4вчк", + "4вчп", + "4вчт", + "4вчф4", + "4вчц", + "4вчч", + "2в3ш", + "8вш.", + "4вшв4", + "4вшж", + "4вшз", + "4вшф4", + "4вшш", + "2в3щ", + "8вщ.", + "4вщв4", + "4вщф4", + "4вщщ", + "2г3б", + "8гб.", + "4гбб", + "4гбг4", + "4гбк4", + "4гбп4", + "4гбт4", + "4гбц4", + "4гбч4", + "2г3в", + "8гв.", + "4гвб4", + "4гвв", + "4гвг4", + "4гвд4", + "4гвк4", + "4гвп4", + "4гвт4", + "4гвф", + "4гвц4", + "4гвч4", + "4г3г4", + "8гг.", + "ггб4", + "ггв4", + "4ггг4", + "ггд4", + "ггж4", + "ггз4", + "4ггк4", + "ггл4", + "ггм4", + "ггн4", + "4ггп4", + "ггр4", + "ггс4", + "4ггт4", + "ггф4", + "ггх4", + "4ггц4", + "4ггч4", + "ггш4", + "ггщ4", + "2г3д", + "8гд.", + "4гдб", + "4гдг4", + "4гдд", + "4гдк4", + "4гдп4", + "4гдт4", + "4гдц4", + "4гдч4", + "2г3ж", + "8гж.", + "4гжб4", + "4гжг4", + "4гжд4", + "4гжж", + "4гжк4", + "4гжп4", + "4гжс", + "4гжт4", + "4гжф", + "4гжх", + "4гжц4", + "4гжч4", + "4гжш", + "2г3з", + "8гз.", + "4гзб4", + "4гзг4", + "4гзд4", + "4гзз", + "4гзк4", + "4гзп4", + "4гзс", + "4гзт4", + "4гзф", + "4гзх", + "4гзц4", + "4гзч4", + "4гзш", + "гй4", + "4г3к4", + "8гк.", + "4гкб4", + "гкв4", + "4гкг4", + "4гкд4", + "гкж4", + "гкз4", + "4гкк4", + "гкл4", + "гкм4", + "гкн4", + "4гкп4", + "гкр4", + "гкс4", + "4гкт4", + "гкф4", + "гкх4", + "4гкц4", + "4гкч4", + "гкш4", + "гкщ4", + "2г3л4", + "8гл.", + "4глг4", + "4глк4", + "4глл", + "4глп4", + "4глт4", + "4глц4", + "4глч4", + "2г3м4", + "8гм.", + "4гмг4", + "4гмк4", + "4гмм", + "4гмп4", + "4гмт4", + "4гмц4", + "4гмч4", + "2г3н4", + "8гн.", + "4гнг4", + "4гнк4", + "4гнн", + "4гнп4", + "4гнт4", + "4гнц4", + "4гнч4", + "4г3п4", + "8гп.", + "4гпб4", + "гпв4", + "4гпг4", + "4гпд4", + "гпж4", + "гпз4", + "4гпк4", + "гпл4", + "гпм4", + "гпн4", + "4гпп4", + "гпр4", + "гпс4", + "4гпт4", + "гпф4", + "гпх4", + "4гпц4", + "4гпч4", + "гпш4", + "гпщ4", + "2г3р4", + "8гр.", + "4грг4", + "4грк4", + "4грп4", + "4грр", + "4грт4", + "4грц4", + "4грч4", + "4г3с", + "8гс.", + "4гсб4", + "4гсг4", + "4гсд4", + "4гсж", + "4гсз", + "4гск4", + "4гсп4", + "4гсс", + "4гст4", + "4гсц4", + "4гсч4", + "4г3т4", + "8гт.", + "4гтб4", + "гтв4", + "4гтг4", + "4гтд4", + "гтж4", + "гтз4", + "4гтк4", + "гтл4", + "гтм4", + "гтн4", + "4гтп4", + "гтр4", + "гтс4", + "4гтт4", + "гтф4", + "гтх4", + "4гтц4", + "4гтч4", + "гтш4", + "гтщ4", + "4г3ф", + "8гф.", + "4гфб4", + "4гфв", + "4гфг4", + "4гфд4", + "4гфж", + "4гфз", + "4гфк4", + "4гфп4", + "4гфт4", + "4гфф", + "4гфц4", + "4гфч4", + "4г3х", + "8гх.", + "4гхб4", + "4гхг4", + "4гхд4", + "4гхж", + "4гхз", + "4гхк4", + "4гхп4", + "4гхт4", + "4гхх", + "4гхц4", + "4гхч4", + "4г3ц4", + "8гц.", + "4гцб4", + "гцв4", + "4гцг4", + "4гцд4", + "гцж4", + "гцз4", + "4гцк4", + "гцл4", + "гцм4", + "гцн4", + "4гцп4", + "гцр4", + "гцс4", + "4гцт4", + "гцф4", + "гцх4", + "4гцц4", + "4гцч4", + "гцш4", + "гцщ4", + "4г3ч4", + "8гч.", + "4гчб4", + "гчв4", + "4гчг4", + "4гчд4", + "гчж4", + "гчз4", + "4гчк4", + "гчл4", + "гчм4", + "гчн4", + "4гчп4", + "гчр4", + "гчс4", + "4гчт4", + "гчф4", + "гчх4", + "4гчц4", + "4гчч4", + "гчш4", + "гчщ4", + "4г3ш", + "8гш.", + "4гшб4", + "4гшг4", + "4гшд4", + "4гшж", + "4гшз", + "4гшк4", + "4гшп4", + "4гшт4", + "4гшц4", + "4гшч4", + "4гшш", + "4г3щ", + "8гщ.", + "4гщг4", + "4гщк4", + "4гщп4", + "4гщт4", + "4гщц4", + "4гщч4", + "4гщщ", + "4д3б4", + "8дб.", + "4дбб4", + "дбв4", + "4дбг4", + "4дбд4", + "дбж4", + "дбз4", + "4дбк4", + "дбл4", + "дбм4", + "дбн4", + "4дбп4", + "дбр4", + "дбс4", + "4дбт4", + "дбф4", + "дбх4", + "4дбц4", + "4дбч4", + "дбш4", + "дбщ4", + "2д3в", + "8дв.", + "4двб4", + "4двв", + "4двг4", + "4двд4", + "4двк4", + "4двп4", + "4двт4", + "4двф", + "4двц4", + "4двч4", + "4д3г4", + "8дг.", + "4дгб4", + "дгв4", + "4дгг4", + "4дгд4", + "дгж4", + "дгз4", + "4дгк4", + "дгл4", + "дгм4", + "дгн4", + "4дгп4", + "дгр4", + "дгс4", + "4дгт4", + "дгф4", + "дгх4", + "4дгц4", + "4дгч4", + "дгш4", + "дгщ4", + "4д3д4", + "8дд.", + "4ддб4", + "ддв4", + "4ддг4", + "4ддд4", + "ддж4", + "ддз4", + "4ддк4", + "ддл4", + "ддм4", + "ддн4", + "4ддп4", + "ддр4", + "ддс4", + "4ддт4", + "ддф4", + "ддх4", + "4ддц4", + "4ддч4", + "ддш4", + "ддщ4", + "8дж.", + "4джб4", + "2джв", + "4джг4", + "4джд4", + "4джж", + "2джз", + "4джк4", + "2джл", + "2джм", + "2джн", + "4джп4", + "2джр", + "4джс", + "4джт4", + "4джф", + "4джх", + "4джц4", + "4джч4", + "4джш", + "2джщ", + "8дз.", + "4дзб4", + "2дзв", + "4дзг4", + "4дзд4", + "2дзж", + "4дзз", + "4дзк4", + "2дзл", + "2дзм", + "2дзн", + "4дзп4", + "2дзр", + "4дзс", + "4дзт4", + "4дзф", + "4дзх", + "4дзц4", + "4дзч4", + "4дзш", + "2дзщ", + "дй4", + "4д3к4", + "8дк.", + "4дкб4", + "дкв4", + "4дкг4", + "4дкд4", + "дкж4", + "дкз4", + "4дкк4", + "дкл4", + "дкм4", + "дкн4", + "4дкп4", + "дкр4", + "дкс4", + "4дкт4", + "дкф4", + "дкх4", + "4дкц4", + "4дкч4", + "дкш4", + "дкщ4", + "2д3л4", + "8дл.", + "4длб4", + "4длг4", + "4длд4", + "4длк4", + "4длл", + "4длп4", + "4длт4", + "4длц4", + "4длч4", + "2д3м4", + "8дм.", + "4дмб4", + "4дмг4", + "4дмд4", + "4дмк4", + "4дмм", + "4дмп4", + "4дмт4", + "4дмц4", + "4дмч4", + "2д3н4", + "8дн.", + "4днб4", + "4днг4", + "4днд4", + "4днк4", + "4днн", + "4днп4", + "4днт4", + "4днц4", + "4днч4", + "4д3п4", + "8дп.", + "4дпб4", + "дпв4", + "4дпг4", + "4дпд4", + "дпж4", + "дпз4", + "4дпк4", + "дпл4", + "дпм4", + "дпн4", + "4дпп4", + "дпр4", + "дпс4", + "4дпт4", + "дпф4", + "дпх4", + "4дпц4", + "4дпч4", + "дпш4", + "дпщ4", + "2д3р4", + "8др.", + "4дрб4", + "4дрг4", + "4дрд4", + "4дрк4", + "4дрп4", + "4дрр", + "4дрт4", + "4дрц4", + "4дрч4", + "4д3с", + "8дс.", + "4дсб4", + "4дсг4", + "4дсд4", + "4дсж", + "4дсз", + "4дск4", + "4дсп4", + "4дсс", + "4дст4", + "4дсц4", + "4дсч4", + "4д3т4", + "8дт.", + "4дтб4", + "дтв4", + "4дтг4", + "4дтд4", + "дтж4", + "дтз4", + "4дтк4", + "дтл4", + "дтм4", + "дтн4", + "4дтп4", + "дтр4", + "дтс4", + "4дтт4", + "дтф4", + "дтх4", + "4дтц4", + "4дтч4", + "дтш4", + "дтщ4", + "4д3ф", + "8дф.", + "4дфб4", + "4дфв", + "4дфг4", + "4дфд4", + "4дфж", + "4дфз", + "4дфк4", + "4дфп4", + "4дфт4", + "4дфф", + "4дфц4", + "4дфч4", + "4д3х", + "8дх.", + "4дхб4", + "4дхг4", + "4дхд4", + "4дхж", + "4дхз", + "4дхк4", + "4дхп4", + "4дхт4", + "4дхх", + "4дхц4", + "4дхч4", + "4д3ц4", + "8дц.", + "4дцб4", + "дцв4", + "4дцг4", + "4дцд4", + "дцж4", + "дцз4", + "4дцк4", + "дцл4", + "дцм4", + "дцн4", + "4дцп4", + "дцр4", + "дцс4", + "4дцт4", + "дцф4", + "дцх4", + "4дцц4", + "4дцч4", + "дцш4", + "дцщ4", + "4д3ч4", + "8дч.", + "4дчб4", + "дчв4", + "4дчг4", + "4дчд4", + "дчж4", + "дчз4", + "4дчк4", + "дчл4", + "дчм4", + "дчн4", + "4дчп4", + "дчр4", + "дчс4", + "4дчт4", + "дчф4", + "дчх4", + "4дчц4", + "4дчч4", + "дчш4", + "дчщ4", + "4д3ш", + "8дш.", + "4дшб4", + "4дшг4", + "4дшд4", + "4дшж", + "4дшз", + "4дшк4", + "4дшп4", + "4дшт4", + "4дшц4", + "4дшч4", + "4дшш", + "4д3щ", + "8дщ.", + "4дщб4", + "4дщг4", + "4дщд4", + "4дщк4", + "4дщп4", + "4дщт4", + "4дщц4", + "4дщч4", + "4дщщ", + "е1", + "2ж3б", + "8жб.", + "4жбб", + "4жбж4", + "4жбз4", + "4жбк", + "4жбп", + "4жбс4", + "4жбт", + "4жбф4", + "4жбх4", + "4жбц", + "4жбч", + "4жбш4", + "2ж3в", + "8жв.", + "4жвв", + "4жвж4", + "4жвс4", + "4жвф4", + "4жвх4", + "4жвш4", + "2ж3г", + "8жг.", + "4жгг", + "4жгж4", + "4жгз4", + "4жгк", + "4жгп", + "4жгс4", + "4жгт", + "4жгф4", + "4жгх4", + "4жгц", + "4жгч", + "4жгш4", + "2ж3д", + "8жд.", + "4ждб", + "4ждг", + "4ждд", + "4ждж4", + "4ждз4", + "4ждк", + "4ждп", + "4ждс4", + "4ждт", + "4ждф4", + "4ждх4", + "4ждц", + "4ждч", + "4ждш4", + "4ж3ж4", + "8жж.", + "жжб4", + "жжв4", + "жжг4", + "жжд4", + "4жжж4", + "жжз4", + "жжк4", + "жжл4", + "жжм4", + "жжн4", + "жжп4", + "жжр4", + "4жжс4", + "жжт4", + "4жжф4", + "4жжх4", + "жжц4", + "жжч4", + "4жжш4", + "жжщ4", + "2ж3з", + "8жз.", + "4жзж4", + "4жзз", + "4жзс4", + "4жзф4", + "4жзх4", + "4жзш4", + "жй4", + "4ж3к", + "8жк.", + "4жкб", + "4жкг", + "4жкд", + "4жкж4", + "4жкз4", + "4жкк", + "4жкс4", + "4жкф4", + "4жкх4", + "4жкш4", + "2ж3л4", + "8жл.", + "4жлж4", + "4жлл", + "4жлс4", + "4жлф4", + "4жлх4", + "4жлш4", + "2ж3м4", + "8жм.", + "4жмж4", + "4жмм", + "4жмс4", + "4жмф4", + "4жмх4", + "4жмш4", + "2ж3н4", + "8жн.", + "4жнж4", + "4жнн", + "4жнс4", + "4жнф4", + "4жнх4", + "4жнш4", + "4ж3п", + "8жп.", + "4жпб", + "4жпг", + "4жпд", + "4жпж4", + "4жпз4", + "4жпп", + "4жпс4", + "4жпф4", + "4жпх4", + "4жпш4", + "2ж3р4", + "8жр.", + "4жрж4", + "4жрр", + "4жрс4", + "4жрф4", + "4жрх4", + "4жрш4", + "4ж3с4", + "8жс.", + "жсб4", + "жсв4", + "жсг4", + "жсд4", + "4жсж4", + "4жсз4", + "жск4", + "жсл4", + "жсм4", + "жсн4", + "жсп4", + "жср4", + "4жсс4", + "жст4", + "4жсф4", + "4жсх4", + "жсц4", + "жсч4", + "4жсш4", + "жсщ4", + "4ж3т", + "8жт.", + "4жтб", + "4жтг", + "4жтд", + "4жтж4", + "4жтз4", + "4жтк", + "4жтп", + "4жтс4", + "4жтт", + "4жтф4", + "4жтх4", + "4жтц", + "4жтч", + "4жтш4", + "4ж3ф4", + "8жф.", + "жфб4", + "4жфв4", + "жфг4", + "жфд4", + "4жфж4", + "4жфз4", + "жфк4", + "жфл4", + "жфм4", + "жфн4", + "жфп4", + "жфр4", + "4жфс4", + "жфт4", + "4жфф4", + "4жфх4", + "жфц4", + "жфч4", + "4жфш4", + "жфщ4", + "4ж3х4", + "8жх.", + "жхб4", + "жхв4", + "жхг4", + "жхд4", + "4жхж4", + "4жхз4", + "жхк4", + "жхл4", + "жхм4", + "жхн4", + "жхп4", + "жхр4", + "4жхс4", + "жхт4", + "4жхф4", + "4жхх4", + "жхц4", + "жхч4", + "4жхш4", + "жхщ4", + "4ж3ц", + "8жц.", + "4жцб", + "4жцг", + "4жцд", + "4жцж4", + "4жцз4", + "4жцк", + "4жцп", + "4жцс4", + "4жцт", + "4жцф4", + "4жцх4", + "4жцц", + "4жцч", + "4жцш4", + "4ж3ч", + "8жч.", + "4жчб", + "4жчг", + "4жчд", + "4жчж4", + "4жчз4", + "4жчк", + "4жчп", + "4жчс4", + "4жчт", + "4жчф4", + "4жчх4", + "4жчц", + "4жчч", + "4жчш4", + "4ж3ш4", + "8жш.", + "жшб4", + "жшв4", + "жшг4", + "жшд4", + "4жшж4", + "4жшз4", + "жшк4", + "жшл4", + "жшм4", + "жшн4", + "жшп4", + "жшр4", + "4жшс4", + "жшт4", + "4жшф4", + "4жшх4", + "жшц4", + "жшч4", + "4жшш4", + "жшщ4", + "4ж3щ", + "8жщ.", + "4жщж4", + "4жщс4", + "4жщф4", + "4жщх4", + "4жщш4", + "4жщщ", + "2з3б", + "8зб.", + "4збб", + "4збж4", + "4збз4", + "4збк", + "4збп", + "4збс4", + "4збт", + "4збф4", + "4збх4", + "4збц", + "4збч", + "4збш4", + "2з3в", + "8зв.", + "4звв", + "4звз4", + "4звс4", + "4звф4", + "4звх4", + "4звш4", + "2з3г", + "8зг.", + "4згг", + "4згж4", + "4згз4", + "4згк", + "4згп", + "4згс4", + "4згт", + "4згф4", + "4згх4", + "4згц", + "4згч", + "4згш4", + "2з3д", + "8зд.", + "4здб", + "4здг", + "4здд", + "4здж4", + "4здз4", + "4здк", + "4здп", + "4здс4", + "4здт", + "4здф4", + "4здх4", + "4здц", + "4здч", + "4здш4", + "2з3ж", + "8зж.", + "4зжж", + "4зжз4", + "4зжс4", + "4зжф4", + "4зжх4", + "4зжш4", + "4з3з4", + "8зз.", + "ззб4", + "ззв4", + "ззг4", + "ззд4", + "ззж4", + "4ззз4", + "ззк4", + "ззл4", + "ззм4", + "ззн4", + "ззп4", + "ззр4", + "4ззс4", + "ззт4", + "4ззф4", + "4ззх4", + "ззц4", + "ззч4", + "4ззш4", + "ззщ4", + "зй4", + "4з3к", + "8зк.", + "4зкб", + "4зкг", + "4зкд", + "4зкж4", + "4зкз4", + "4зкк", + "4зкс4", + "4зкф4", + "4зкх4", + "4зкш4", + "2з3л4", + "8зл.", + "4злз4", + "4злл", + "4злс4", + "4злф4", + "4злх4", + "4злш4", + "2з3м4", + "8зм.", + "4змз4", + "4змм", + "4змс4", + "4змф4", + "4змх4", + "4змш4", + "2з3н4", + "8зн.", + "4знз4", + "4знн", + "4знс4", + "4знф4", + "4знх4", + "4знш4", + "4з3п", + "8зп.", + "4зпб", + "4зпг", + "4зпд", + "4зпж4", + "4зпз4", + "4зпп", + "4зпс4", + "4зпф4", + "4зпх4", + "4зпш4", + "2з3р4", + "8зр.", + "4зрз4", + "4зрр", + "4зрс4", + "4зрф4", + "4зрх4", + "4зрш4", + "4з3с4", + "8зс.", + "зсб4", + "зсв4", + "зсг4", + "зсд4", + "4зсж4", + "4зсз4", + "зск4", + "зсл4", + "зсм4", + "зсн4", + "зсп4", + "зср4", + "4зсс4", + "зст4", + "4зсф4", + "4зсх4", + "зсц4", + "зсч4", + "4зсш4", + "зсщ4", + "4з3т", + "8зт.", + "4зтб", + "4зтг", + "4зтд", + "4зтж4", + "4зтз4", + "4зтк", + "4зтп", + "4зтс4", + "4зтт", + "4зтф4", + "4зтх4", + "4зтц", + "4зтч", + "4зтш4", + "4з3ф4", + "8зф.", + "зфб4", + "4зфв4", + "зфг4", + "зфд4", + "4зфж4", + "4зфз4", + "зфк4", + "зфл4", + "зфм4", + "зфн4", + "зфп4", + "зфр4", + "4зфс4", + "зфт4", + "4зфф4", + "4зфх4", + "зфц4", + "зфч4", + "4зфш4", + "зфщ4", + "4з3х4", + "8зх.", + "зхб4", + "зхв4", + "зхг4", + "зхд4", + "4зхж4", + "4зхз4", + "зхк4", + "зхл4", + "зхм4", + "зхн4", + "зхп4", + "зхр4", + "4зхс4", + "зхт4", + "4зхф4", + "4зхх4", + "зхц4", + "зхч4", + "4зхш4", + "зхщ4", + "4з3ц", + "8зц.", + "4зцб", + "4зцг", + "4зцд", + "4зцж4", + "4зцз4", + "4зцк", + "4зцп", + "4зцс4", + "4зцт", + "4зцф4", + "4зцх4", + "4зцц", + "4зцч", + "4зцш4", + "4з3ч", + "8зч.", + "4зчб", + "4зчг", + "4зчд", + "4зчж4", + "4зчз4", + "4зчк", + "4зчп", + "4зчс4", + "4зчт", + "4зчф4", + "4зчх4", + "4зчц", + "4зчч", + "4зчш4", + "4з3ш4", + "8зш.", + "зшб4", + "зшв4", + "зшг4", + "зшд4", + "4зшж4", + "4зшз4", + "зшк4", + "зшл4", + "зшм4", + "зшн4", + "зшп4", + "зшр4", + "4зшс4", + "зшт4", + "4зшф4", + "4зшх4", + "зшц4", + "зшч4", + "4зшш4", + "зшщ4", + "4з3щ", + "8зщ.", + "4зщз4", + "4зщс4", + "4зщф4", + "4зщх4", + "4зщш4", + "4зщщ", + "и1", + "4й1б", + "4й1в", + "4й1г", + "4й1д", + "4й1ж", + "4й1з", + "4й1к", + "4й1л", + "4й1м", + "4й1н", + "4й1п", + "4й1р", + "4й1с", + "4й1т", + "4й1ф", + "4й1х", + "4й1ц", + "4й1ч", + "4й1ш", + "4й1щ", + "4к3б4", + "8кб.", + "4кбб4", + "кбв4", + "4кбг4", + "4кбд4", + "кбж4", + "кбз4", + "4кбк4", + "кбл4", + "кбм4", + "кбн4", + "4кбп4", + "кбр4", + "кбс4", + "4кбт4", + "кбф4", + "кбх4", + "4кбц4", + "4кбч4", + "кбш4", + "кбщ4", + "2к3в4", + "8кв.", + "4квб4", + "4квв", + "4квг4", + "4квд4", + "4квк4", + "4квп4", + "4квт4", + "4квф", + "4квц4", + "4квч4", + "4к3г4", + "8кг.", + "4кгб4", + "кгв4", + "4кгг4", + "4кгд4", + "кгж4", + "кгз4", + "4кгк4", + "кгл4", + "кгм4", + "кгн4", + "4кгп4", + "кгр4", + "кгс4", + "4кгт4", + "кгф4", + "кгх4", + "4кгц4", + "4кгч4", + "кгш4", + "кгщ4", + "4к3д4", + "8кд.", + "4кдб4", + "кдв4", + "4кдг4", + "4кдд4", + "кдж4", + "кдз4", + "4кдк4", + "кдл4", + "кдм4", + "кдн4", + "4кдп4", + "кдр4", + "кдс4", + "4кдт4", + "кдф4", + "кдх4", + "4кдц4", + "4кдч4", + "кдш4", + "кдщ4", + "2к3ж4", + "8кж.", + "4кжб4", + "4кжг4", + "4кжд4", + "4кжж", + "4кжк4", + "4кжп4", + "4кжс", + "4кжт4", + "4кжф", + "4кжх", + "4кжц4", + "4кжч4", + "4кжш", + "2к3з4", + "8кз.", + "4кзб4", + "4кзг4", + "4кзд4", + "4кзз", + "4кзк4", + "4кзп4", + "4кзс", + "4кзт4", + "4кзф", + "4кзх", + "4кзц4", + "4кзч4", + "4кзш", + "кй4", + "4к3к4", + "8кк.", + "4ккб4", + "ккв4", + "4ккг4", + "4ккд4", + "ккж4", + "ккз4", + "4ккк4", + "ккл4", + "ккм4", + "ккн4", + "ккп4", + "ккр4", + "ккс4", + "ккт4", + "ккф4", + "ккх4", + "ккц4", + "ккч4", + "ккш4", + "ккщ4", + "2к3л4", + "8кл.", + "4клб4", + "4клг4", + "4клд4", + "4клк4", + "4клл", + "2к3м4", + "8км.", + "4кмб4", + "4кмг4", + "4кмд4", + "4кмк4", + "4кмм", + "2к3н4", + "8кн.", + "4кнб4", + "4кнг4", + "4кнд4", + "4кнк4", + "4кнн", + "2к3п", + "8кп.", + "4кпб4", + "4кпг4", + "4кпд4", + "4кпк4", + "4кпп", + "2к3р4", + "8кр.", + "4крб4", + "4крг4", + "4крд4", + "4крк4", + "4крр", + "2к3с", + "8кс.", + "4ксб4", + "4ксг4", + "4ксд4", + "4ксж", + "4ксз", + "4кск4", + "4ксп4", + "4ксс", + "4кст4", + "4ксц4", + "4ксч4", + "2к3т", + "8кт.", + "4ктб4", + "4ктг4", + "4ктд4", + "4ктк4", + "4ктп", + "4ктт", + "4ктц", + "4ктч", + "2к3ф", + "8кф.", + "4кфб4", + "4кфв", + "4кфг4", + "4кфд4", + "4кфж", + "4кфз", + "4кфк4", + "4кфп4", + "4кфт4", + "4кфф", + "4кфц4", + "4кфч4", + "2к3х", + "8кх.", + "4кхб4", + "4кхг4", + "4кхд4", + "4кхж", + "4кхз", + "4кхк4", + "4кхп4", + "4кхт4", + "4кхх", + "4кхц4", + "4кхч4", + "2к3ц", + "8кц.", + "4кцб4", + "4кцг4", + "4кцд4", + "4кцк4", + "4кцп", + "4кцт", + "4кцц", + "4кцч", + "2к3ч", + "8кч.", + "4кчб4", + "4кчг4", + "4кчд4", + "4кчк4", + "4кчп", + "4кчт", + "4кчц", + "4кчч", + "2к3ш", + "8кш.", + "4кшб4", + "4кшг4", + "4кшд4", + "4кшж", + "4кшз", + "4кшк4", + "4кшп4", + "4кшт4", + "4кшц4", + "4кшч4", + "4кшш", + "2к3щ", + "8кщ.", + "4кщб4", + "4кщг4", + "4кщд4", + "4кщк4", + "4кщщ", + "4л3б", + "8лб.", + "4лбб", + "4лбк", + "4лбл4", + "4лбп", + "4лбт", + "4лбц", + "4лбч", + "4л3в", + "8лв.", + "4лвв", + "4лвл4", + "4лвф", + "4л3г", + "8лг.", + "4лгг", + "4лгк", + "4лгл4", + "4лгп", + "4лгт", + "4лгц", + "4лгч", + "4л3д", + "8лд.", + "4лдб", + "4лдг", + "4лдд", + "4лдк", + "4лдл4", + "4лдп", + "4лдт", + "4лдц", + "4лдч", + "4л3ж", + "8лж.", + "4лжж", + "4лжл4", + "4лжс", + "4лжф", + "4лжх", + "4лжш", + "4л3з", + "8лз.", + "4лзз", + "4лзл4", + "4лзс", + "4лзф", + "4лзх", + "4лзш", + "4л3к", + "8лк.", + "4лкб", + "4лкг", + "4лкд", + "4лкк", + "4лкл4", + "4л3л4", + "8лл.", + "ллб4", + "ллв4", + "ллг4", + "ллд4", + "ллж4", + "ллз4", + "ллк4", + "4ллл4", + "ллм4", + "ллн4", + "ллп4", + "ллр4", + "ллс4", + "ллт4", + "ллф4", + "ллх4", + "ллц4", + "ллч4", + "ллш4", + "ллщ4", + "4л3м", + "8лм.", + "4лмл4", + "4лмм", + "4л3н", + "8лн.", + "4лнл4", + "4лнн", + "4л3п", + "8лп.", + "4лпб", + "4лпг", + "4лпд", + "4лпл4", + "4лпп", + "2л3р4", + "8лр.", + "4лрл4", + "4лрр", + "4л3с", + "8лс.", + "4лсж", + "4лсз", + "4лсл4", + "4лсс", + "4л3т", + "8лт.", + "4лтб", + "4лтг", + "4лтд", + "4лтк", + "4лтл4", + "4лтп", + "4лтт", + "4лтц", + "4лтч", + "4л3ф", + "8лф.", + "4лфв", + "4лфж", + "4лфз", + "4лфл4", + "4лфф", + "4л3х", + "8лх.", + "4лхж", + "4лхз", + "4лхл4", + "4лхх", + "4л3ц", + "8лц.", + "4лцб", + "4лцг", + "4лцд", + "4лцк", + "4лцл4", + "4лцп", + "4лцт", + "4лцц", + "4лцч", + "4л3ч", + "8лч.", + "4лчб", + "4лчг", + "4лчд", + "4лчк", + "4лчл4", + "4лчп", + "4лчт", + "4лчц", + "4лчч", + "4л3ш", + "8лш.", + "4лшж", + "4лшз", + "4лшл4", + "4лшш", + "4л3щ", + "8лщ.", + "4лщл4", + "4лщщ", + "4м3б", + "8мб.", + "4мбб", + "4мбк", + "4мбм4", + "4мбп", + "4мбт", + "4мбц", + "4мбч", + "4м3в", + "8мв.", + "4мвв", + "4мвм4", + "4мвф", + "4м3г", + "8мг.", + "4мгг", + "4мгк", + "4мгм4", + "4мгп", + "4мгт", + "4мгц", + "4мгч", + "4м3д", + "8мд.", + "4мдб", + "4мдг", + "4мдд", + "4мдк", + "4мдм4", + "4мдп", + "4мдт", + "4мдц", + "4мдч", + "4м3ж", + "8мж.", + "4мжж", + "4мжм4", + "4мжс", + "4мжф", + "4мжх", + "4мжш", + "4м3з", + "8мз.", + "4мзз", + "4мзм4", + "4мзс", + "4мзф", + "4мзх", + "4мзш", + "4м3к", + "8мк.", + "4мкб", + "4мкг", + "4мкд", + "4мкк", + "4мкм4", + "2м3л4", + "8мл.", + "4млл", + "4млм4", + "4м3м4", + "8мм.", + "ммб4", + "ммв4", + "ммг4", + "ммд4", + "ммж4", + "ммз4", + "ммк4", + "ммл4", + "4ммм4", + "ммн4", + "ммп4", + "ммр4", + "ммс4", + "ммт4", + "ммф4", + "ммх4", + "ммц4", + "ммч4", + "ммш4", + "ммщ4", + "2м3н4", + "8мн.", + "4мнм4", + "4мнн", + "4м3п", + "8мп.", + "4мпб", + "4мпг", + "4мпд", + "4мпм4", + "4мпп", + "2м3р4", + "8мр.", + "4мрм4", + "4мрр", + "4м3с", + "8мс.", + "4мсж", + "4мсз", + "4мсм4", + "4мсс", + "4м3т", + "8мт.", + "4мтб", + "4мтг", + "4мтд", + "4мтк", + "4мтм4", + "4мтп", + "4мтт", + "4мтц", + "4мтч", + "4м3ф", + "8мф.", + "4мфв", + "4мфж", + "4мфз", + "4мфм4", + "4мфф", + "4м3х", + "8мх.", + "4мхж", + "4мхз", + "4мхм4", + "4мхх", + "4м3ц", + "8мц.", + "4мцб", + "4мцг", + "4мцд", + "4мцк", + "4мцм4", + "4мцп", + "4мцт", + "4мцц", + "4мцч", + "4м3ч", + "8мч.", + "4мчб", + "4мчг", + "4мчд", + "4мчк", + "4мчм4", + "4мчп", + "4мчт", + "4мчц", + "4мчч", + "4м3ш", + "8мш.", + "4мшж", + "4мшз", + "4мшм4", + "4мшш", + "4м3щ", + "8мщ.", + "4мщм4", + "4мщщ", + "на2д3з", + "4н3б", + "8нб.", + "4нбб", + "4нбк", + "4нбн4", + "4нбп", + "4нбт", + "4нбц", + "4нбч", + "4н3в", + "8нв.", + "4нвв", + "4нвн4", + "4нвф", + "4н3г", + "8нг.", + "4нгг", + "4нгк", + "4нгн4", + "4нгп", + "4нгт", + "4нгц", + "4нгч", + "4н3д", + "8нд.", + "4ндб", + "4ндг", + "4ндд", + "4ндк", + "4ндн4", + "4ндп", + "4ндт", + "4ндц", + "4ндч", + "4н3ж", + "8нж.", + "4нжж", + "4нжн4", + "4нжс", + "4нжф", + "4нжх", + "4нжш", + "4н3з", + "8нз.", + "4нзз", + "4нзн4", + "4нзс", + "4нзф", + "4нзх", + "4нзш", + "4н3к", + "8нк.", + "4нкб", + "4нкг", + "4нкд", + "4нкк", + "4нкн4", + "2н3л4", + "8нл.", + "4нлл", + "4нлн4", + "4н3м", + "8нм.", + "4нмм", + "4нмн4", + "4н3н4", + "8нн.", + "ннб4", + "ннв4", + "ннг4", + "ннд4", + "ннж4", + "ннз4", + "ннк4", + "ннл4", + "ннм4", + "4ннн4", + "ннп4", + "ннр4", + "ннс4", + "ннт4", + "ннф4", + "ннх4", + "ннц4", + "ннч4", + "ннш4", + "ннщ4", + "4н3п", + "8нп.", + "4нпб", + "4нпг", + "4нпд", + "4нпн4", + "4нпп", + "2н3р4", + "8нр.", + "4нрн4", + "4нрр", + "4н3с", + "8нс.", + "4нсж", + "4нсз", + "4нсн4", + "4нсс", + "4н3т", + "8нт.", + "4нтб", + "4нтг", + "4нтд", + "4нтк", + "4нтн4", + "4нтп", + "4нтт", + "4нтц", + "4нтч", + "4н3ф", + "8нф.", + "4нфв", + "4нфж", + "4нфз", + "4нфн4", + "4нфф", + "4н3х", + "8нх.", + "4нхж", + "4нхз", + "4нхн4", + "4нхх", + "4н3ц", + "8нц.", + "4нцб", + "4нцг", + "4нцд", + "4нцк", + "4нцн4", + "4нцп", + "4нцт", + "4нцц", + "4нцч", + "4н3ч", + "8нч.", + "4нчб", + "4нчг", + "4нчд", + "4нчк", + "4нчн4", + "4нчп", + "4нчт", + "4нчц", + "4нчч", + "4н3ш", + "8нш.", + "4ншж", + "4ншз", + "4ншн4", + "4ншш", + "4н3щ", + "8нщ.", + "4нщн4", + "4нщщ", + "о1", + "4п3б4", + "8пб.", + "4пбб4", + "пбв4", + "4пбг4", + "4пбд4", + "пбж4", + "пбз4", + "4пбк4", + "пбл4", + "пбм4", + "пбн4", + "4пбп4", + "пбр4", + "пбс4", + "4пбт4", + "пбф4", + "пбх4", + "4пбц4", + "4пбч4", + "пбш4", + "пбщ4", + "2п3в4", + "8пв.", + "4пвб4", + "4пвв", + "4пвг4", + "4пвд4", + "4пвк4", + "4пвп4", + "4пвт4", + "4пвф", + "4пвц4", + "4пвч4", + "4п3г4", + "8пг.", + "4пгб4", + "пгв4", + "4пгг4", + "4пгд4", + "пгж4", + "пгз4", + "4пгк4", + "пгл4", + "пгм4", + "пгн4", + "4пгп4", + "пгр4", + "пгс4", + "4пгт4", + "пгф4", + "пгх4", + "4пгц4", + "4пгч4", + "пгш4", + "пгщ4", + "4п3д4", + "8пд.", + "4пдб4", + "пдв4", + "4пдг4", + "4пдд4", + "пдж4", + "пдз4", + "4пдк4", + "пдл4", + "пдм4", + "пдн4", + "4пдп4", + "пдр4", + "пдс4", + "4пдт4", + "пдф4", + "пдх4", + "4пдц4", + "4пдч4", + "пдш4", + "пдщ4", + "2п3ж4", + "8пж.", + "4пжб4", + "4пжг4", + "4пжд4", + "4пжж", + "4пжк4", + "4пжп4", + "4пжс", + "4пжт4", + "4пжф", + "4пжх", + "4пжц4", + "4пжч4", + "4пжш", + "2п3з4", + "8пз.", + "4пзб4", + "4пзг4", + "4пзд4", + "4пзз", + "4пзк4", + "4пзп4", + "4пзс", + "4пзт4", + "4пзф", + "4пзх", + "4пзц4", + "4пзч4", + "4пзш", + "пй4", + "2п3к", + "8пк.", + "4пкб4", + "4пкг4", + "4пкд4", + "4пкк", + "4пкп4", + "2п3л4", + "8пл.", + "4плб4", + "4плг4", + "4плд4", + "4плл", + "4плп4", + "2п3м4", + "8пм.", + "4пмб4", + "4пмг4", + "4пмд4", + "4пмм", + "4пмп4", + "2п3н4", + "8пн.", + "4пнб4", + "4пнг4", + "4пнд4", + "4пнн", + "4пнп4", + "по2д3з", + "4п3п4", + "8пп.", + "4ппб4", + "ппв4", + "4ппг4", + "4ппд4", + "ппж4", + "ппз4", + "ппк4", + "ппл4", + "ппм4", + "ппн4", + "4ппп4", + "ппр4", + "ппс4", + "ппт4", + "ппф4", + "ппх4", + "ппц4", + "ппч4", + "ппш4", + "ппщ4", + "2п3р4", + "8пр.", + "4прб4", + "4прг4", + "4прд4", + "пре2д2ж", + "пре2д3з", + "4прп4", + "4прр", + "2п3с", + "8пс.", + "4псб4", + "4псг4", + "4псд4", + "4псж", + "4псз", + "4пск4", + "4псп4", + "4псс", + "4пст4", + "4псц4", + "4псч4", + "2п3т", + "8пт.", + "4птб4", + "4птг4", + "4птд4", + "4птк", + "4птп4", + "4птт", + "4птц", + "4птч", + "2п3ф", + "8пф.", + "4пфб4", + "4пфв", + "4пфг4", + "4пфд4", + "4пфж", + "4пфз", + "4пфк4", + "4пфп4", + "4пфт4", + "4пфф", + "4пфц4", + "4пфч4", + "2п3х", + "8пх.", + "4пхб4", + "4пхг4", + "4пхд4", + "4пхж", + "4пхз", + "4пхк4", + "4пхп4", + "4пхт4", + "4пхх", + "4пхц4", + "4пхч4", + "2п3ц", + "8пц.", + "4пцб4", + "4пцг4", + "4пцд4", + "4пцк", + "4пцп4", + "4пцт", + "4пцц", + "4пцч", + "2п3ч", + "8пч.", + "4пчб4", + "4пчг4", + "4пчд4", + "4пчк", + "4пчп4", + "4пчт", + "4пчц", + "4пчч", + "2п3ш", + "8пш.", + "4пшб4", + "4пшг4", + "4пшд4", + "4пшж", + "4пшз", + "4пшк4", + "4пшп4", + "4пшт4", + "4пшц4", + "4пшч4", + "4пшш", + "2п3щ", + "8пщ.", + "4пщб4", + "4пщг4", + "4пщд4", + "4пщп4", + "4пщщ", + "4р3б", + "8рб.", + "4рбб", + "4рбк", + "4рбп", + "4рбр4", + "4рбт", + "4рбц", + "4рбч", + "4р3в", + "8рв.", + "4рвв", + "4рвр4", + "4рвф", + "4р3г", + "8рг.", + "4ргг", + "4ргк", + "4ргп", + "4ргр4", + "4ргт", + "4ргц", + "4ргч", + "4р3д", + "8рд.", + "4рдб", + "4рдг", + "4рдд", + "4рдк", + "4рдп", + "4рдр4", + "4рдт", + "4рдц", + "4рдч", + "4р3ж", + "8рж.", + "4ржж", + "4ржр4", + "4ржс", + "4ржф", + "4ржх", + "4ржш", + "4р3з", + "8рз.", + "4рзз", + "4рзр4", + "4рзс", + "4рзф", + "4рзх", + "4рзш", + "4р3к", + "8рк.", + "4ркб", + "4ркг", + "4ркд", + "4ркк", + "4ркр4", + "4р3л", + "8рл.", + "4рлл", + "4рлр4", + "4р3м", + "8рм.", + "4рмм", + "4рмр4", + "4р3н", + "8рн.", + "4рнн", + "4рнр4", + "4р3п", + "8рп.", + "4рпб", + "4рпг", + "4рпд", + "4рпп", + "4рпр4", + "4р3р4", + "8рр.", + "ррб4", + "ррв4", + "ррг4", + "ррд4", + "ррж4", + "ррз4", + "ррк4", + "ррл4", + "ррм4", + "ррн4", + "ррп4", + "4ррр4", + "ррс4", + "ррт4", + "ррф4", + "ррх4", + "ррц4", + "ррч4", + "ррш4", + "ррщ4", + "4р3с", + "8рс.", + "4рсж", + "4рсз", + "4рср4", + "4рсс", + "4р3т", + "8рт.", + "4ртб", + "4ртг", + "4ртд", + "4ртк", + "4ртп", + "4ртр4", + "4ртт", + "4ртц", + "4ртч", + "4р3ф", + "8рф.", + "4рфв", + "4рфж", + "4рфз", + "4рфр4", + "4рфф", + "4р3х", + "8рх.", + "4рхж", + "4рхз", + "4рхр4", + "4рхх", + "4р3ц", + "8рц.", + "4рцб", + "4рцг", + "4рцд", + "4рцк", + "4рцп", + "4рцр4", + "4рцт", + "4рцц", + "4рцч", + "4р3ч", + "8рч.", + "4рчб", + "4рчг", + "4рчд", + "4рчк", + "4рчп", + "4рчр4", + "4рчт", + "4рчц", + "4рчч", + "4р3ш", + "8рш.", + "4ршж", + "4ршз", + "4ршр4", + "4ршш", + "4р3щ", + "8рщ.", + "4рщр4", + "4рщщ", + "2с3б4", + "8сб.", + "4сбб", + "4сбж4", + "4сбз4", + "4сбк", + "4сбп", + "4сбс4", + "4сбт", + "4сбф4", + "4сбх4", + "4сбц", + "4сбч", + "4сбш4", + "2с3в4", + "8св.", + "4свв", + "4свж4", + "4свз4", + "4свс4", + "4свф", + "2с3г4", + "8сг.", + "4сгг", + "4сгж4", + "4сгз4", + "4сгк", + "4сгп", + "4сгс4", + "4сгт", + "4сгф4", + "4сгх4", + "4сгц", + "4сгч", + "4сгш4", + "2с3д4", + "8сд.", + "4сдб", + "4сдг", + "4сдд", + "4сдж4", + "4сдз4", + "4сдк", + "4сдп", + "4сдс4", + "4сдт", + "4сдф4", + "4сдх4", + "4сдц", + "4сдч", + "4сдш4", + "4с3ж4", + "8сж.", + "сжб4", + "сжв4", + "сжг4", + "сжд4", + "4сжж4", + "4сжз4", + "сжк4", + "сжл4", + "сжм4", + "сжн4", + "сжп4", + "сжр4", + "4сжс4", + "сжт4", + "4сжф4", + "4сжх4", + "сжц4", + "сжч4", + "4сжш4", + "сжщ4", + "4с3з4", + "8сз.", + "сзб4", + "сзв4", + "сзг4", + "сзд4", + "4сзж4", + "4сзз4", + "сзк4", + "сзл4", + "сзм4", + "сзн4", + "сзп4", + "сзр4", + "4сзс4", + "сзт4", + "4сзф4", + "4сзх4", + "сзц4", + "сзч4", + "4сзш4", + "сзщ4", + "сй4", + "2с3к", + "8ск.", + "4скб", + "4скг", + "4скд", + "4скж4", + "4скз4", + "4скк", + "4скс4", + "4скф4", + "4скх4", + "4скш4", + "2с3л4", + "8сл.", + "4слж4", + "4слз4", + "4слл", + "4слс4", + "2с3м4", + "8см.", + "4смж4", + "4смз4", + "4смм", + "4смс4", + "2с3н4", + "8сн.", + "4снж4", + "4снз4", + "4снн", + "4снс4", + "2с3п", + "8сп.", + "4спб", + "4спг", + "4спд", + "4спж4", + "4спз4", + "4спп", + "4спс4", + "4спф4", + "4спх4", + "4спш4", + "2с3р4", + "8ср.", + "4срж4", + "4срз4", + "4срр", + "4срс4", + "4с3с4", + "8сс.", + "ссб4", + "ссв4", + "ссг4", + "ссд4", + "4ссж4", + "4ссз4", + "сск4", + "ссл4", + "ссм4", + "ссн4", + "ссп4", + "сср4", + "4ссс4", + "сст4", + "ссф4", + "ссх4", + "ссц4", + "ссч4", + "ссш4", + "ссщ4", + "2с3т", + "8ст.", + "4стб", + "4стг", + "4стд", + "4стж4", + "4стз4", + "4стк", + "4стп", + "4стс4", + "4стт", + "4стф4", + "4стх4", + "4стц", + "4стч", + "4стш4", + "2с3ф", + "8сф.", + "4сфв", + "4сфж4", + "4сфз4", + "4сфс4", + "4сфф", + "2с3х", + "8сх.", + "4схж4", + "4схз4", + "4схс4", + "4схх", + "2с3ц", + "8сц.", + "4сцб", + "4сцг", + "4сцд", + "4сцж4", + "4сцз4", + "4сцк", + "4сцп", + "4сцс4", + "4сцт", + "4сцф4", + "4сцх4", + "4сцц", + "4сцч", + "4сцш4", + "2с3ч", + "8сч.", + "4счб", + "4счг", + "4счд", + "4счж4", + "4счз4", + "4счк", + "4счп", + "4счс4", + "4счт", + "4счф4", + "4счх4", + "4счц", + "4счч", + "4счш4", + "2с3ш", + "8сш.", + "4сшж4", + "4сшз4", + "4сшс4", + "4сшш", + "2с3щ", + "8сщ.", + "4сщж4", + "4сщз4", + "4сщс4", + "4сщщ", + "4т3б4", + "8тб.", + "4тбб4", + "тбв4", + "4тбг4", + "4тбд4", + "тбж4", + "тбз4", + "4тбк4", + "тбл4", + "тбм4", + "тбн4", + "4тбп4", + "тбр4", + "тбс4", + "4тбт4", + "тбф4", + "тбх4", + "4тбц4", + "4тбч4", + "тбш4", + "тбщ4", + "2т3в4", + "8тв.", + "4твб4", + "4твв", + "4твг4", + "4твд4", + "4твк4", + "4твп4", + "4твт4", + "4твф", + "4твц4", + "4твч4", + "4т3г4", + "8тг.", + "4тгб4", + "тгв4", + "4тгг4", + "4тгд4", + "тгж4", + "тгз4", + "4тгк4", + "тгл4", + "тгм4", + "тгн4", + "4тгп4", + "тгр4", + "тгс4", + "4тгт4", + "тгф4", + "тгх4", + "4тгц4", + "4тгч4", + "тгш4", + "тгщ4", + "4т3д4", + "8тд.", + "4тдб4", + "тдв4", + "4тдг4", + "4тдд4", + "тдж4", + "тдз4", + "4тдк4", + "тдл4", + "тдм4", + "тдн4", + "4тдп4", + "тдр4", + "тдс4", + "4тдт4", + "тдф4", + "тдх4", + "4тдц4", + "4тдч4", + "тдш4", + "тдщ4", + "2т3ж4", + "8тж.", + "4тжб4", + "4тжг4", + "4тжд4", + "4тжж", + "4тжк4", + "4тжп4", + "4тжс", + "4тжт4", + "4тжф", + "4тжх", + "4тжц4", + "4тжч4", + "4тжш", + "2т3з4", + "8тз.", + "4тзб4", + "4тзг4", + "4тзд4", + "4тзз", + "4тзк4", + "4тзп4", + "4тзс", + "4тзт4", + "4тзф", + "4тзх", + "4тзц4", + "4тзч4", + "4тзш", + "тй4", + "4т3к4", + "8тк.", + "4ткб4", + "ткв4", + "4ткг4", + "4ткд4", + "ткж4", + "ткз4", + "4ткк4", + "ткл4", + "ткм4", + "ткн4", + "4ткп4", + "ткр4", + "ткс4", + "4ткт4", + "ткф4", + "ткх4", + "4ткц4", + "4ткч4", + "ткш4", + "ткщ4", + "2т3л4", + "8тл.", + "4тлб4", + "4тлг4", + "4тлд4", + "4тлк4", + "4тлл", + "4тлп4", + "4тлт4", + "4тлц4", + "4тлч4", + "2т3м4", + "8тм.", + "4тмб4", + "4тмг4", + "4тмд4", + "4тмк4", + "4тмм", + "4тмп4", + "4тмт4", + "4тмц4", + "4тмч4", + "2т3н4", + "8тн.", + "4тнб4", + "4тнг4", + "4тнд4", + "4тнк4", + "4тнн", + "4тнп4", + "4тнт4", + "4тнц4", + "4тнч4", + "4т3п4", + "8тп.", + "4тпб4", + "тпв4", + "4тпг4", + "4тпд4", + "тпж4", + "тпз4", + "4тпк4", + "тпл4", + "тпм4", + "тпн4", + "4тпп4", + "тпр4", + "тпс4", + "4тпт4", + "тпф4", + "тпх4", + "4тпц4", + "4тпч4", + "тпш4", + "тпщ4", + "2т3р4", + "8тр.", + "4трб4", + "4трг4", + "4трд4", + "4трк4", + "4трп4", + "4трр", + "4трт4", + "4трц4", + "4трч4", + "2т3с", + "8тс.", + "4тсб4", + "4тсг4", + "4тсд4", + "4тсж", + "4тсз", + "4тск4", + "4тсп4", + "4тсс", + "4тст4", + "4тсц4", + "4тсч4", + "4т3т4", + "8тт.", + "4ттб4", + "ттв4", + "4ттг4", + "4ттд4", + "ттж4", + "ттз4", + "4ттк4", + "ттл4", + "ттм4", + "ттн4", + "4ттп4", + "ттр4", + "ттс4", + "4ттт4", + "ттф4", + "ттх4", + "4ттц4", + "4ттч4", + "ттш4", + "ттщ4", + "2т3ф", + "8тф.", + "4тфб4", + "4тфв", + "4тфг4", + "4тфд4", + "4тфж", + "4тфз", + "4тфк4", + "4тфп4", + "4тфт4", + "4тфф", + "4тфц4", + "4тфч4", + "2т3х", + "8тх.", + "4тхб4", + "4тхг4", + "4тхд4", + "4тхж", + "4тхз", + "4тхк4", + "4тхп4", + "4тхт4", + "4тхх", + "4тхц4", + "4тхч4", + "4т3ц4", + "8тц.", + "4тцб4", + "тцв4", + "4тцг4", + "4тцд4", + "тцж4", + "тцз4", + "4тцк4", + "тцл4", + "тцм4", + "тцн4", + "4тцп4", + "тцр4", + "тцс4", + "4тцт4", + "тцф4", + "тцх4", + "4тцц4", + "4тцч4", + "тцш4", + "тцщ4", + "4т3ч4", + "8тч.", + "4тчб4", + "тчв4", + "4тчг4", + "4тчд4", + "тчж4", + "тчз4", + "4тчк4", + "тчл4", + "тчм4", + "тчн4", + "4тчп4", + "тчр4", + "тчс4", + "4тчт4", + "тчф4", + "тчх4", + "4тчц4", + "4тчч4", + "тчш4", + "тчщ4", + "2т3ш", + "8тш.", + "4тшб4", + "4тшг4", + "4тшд4", + "4тшж", + "4тшз", + "4тшк4", + "4тшп4", + "4тшт4", + "4тшц4", + "4тшч4", + "4тшш", + "2т3щ", + "8тщ.", + "4тщб4", + "4тщг4", + "4тщд4", + "4тщк4", + "4тщп4", + "4тщт4", + "4тщц4", + "4тщч4", + "4тщщ", + "у1", + "2ф3б4", + "8фб.", + "4фбб", + "4фбв4", + "4фбж4", + "4фбз4", + "4фбк", + "4фбп", + "4фбс4", + "4фбт", + "4фбф4", + "4фбх4", + "4фбц", + "4фбч", + "4фбш4", + "4ф3в4", + "8фв.", + "фвб4", + "4фвв4", + "фвг4", + "фвд4", + "4фвж4", + "4фвз4", + "фвк4", + "фвл4", + "фвм4", + "фвн4", + "фвп4", + "фвр4", + "фвс4", + "фвт4", + "4фвф4", + "фвх4", + "фвц4", + "фвч4", + "фвш4", + "фвщ4", + "2ф3г4", + "8фг.", + "4фгв4", + "4фгг", + "4фгж4", + "4фгз4", + "4фгк", + "4фгп", + "4фгс4", + "4фгт", + "4фгф4", + "4фгх4", + "4фгц", + "4фгч", + "4фгш4", + "2ф3д4", + "8фд.", + "4фдб", + "4фдв4", + "4фдг", + "4фдд", + "4фдж4", + "4фдз4", + "4фдк", + "4фдп", + "4фдс4", + "4фдт", + "4фдф4", + "4фдх4", + "4фдц", + "4фдч", + "4фдш4", + "4ф3ж4", + "8фж.", + "фжб4", + "4фжв4", + "фжг4", + "фжд4", + "4фжж4", + "4фжз4", + "фжк4", + "фжл4", + "фжм4", + "фжн4", + "фжп4", + "фжр4", + "4фжс4", + "фжт4", + "4фжф4", + "4фжх4", + "фжц4", + "фжч4", + "4фжш4", + "фжщ4", + "4ф3з4", + "8фз.", + "фзб4", + "4фзв4", + "фзг4", + "фзд4", + "4фзж4", + "4фзз4", + "фзк4", + "фзл4", + "фзм4", + "фзн4", + "фзп4", + "фзр4", + "4фзс4", + "фзт4", + "4фзф4", + "4фзх4", + "фзц4", + "фзч4", + "4фзш4", + "фзщ4", + "фй4", + "2ф3к", + "8фк.", + "4фкб", + "4фкв4", + "4фкг", + "4фкд", + "4фкж4", + "4фкз4", + "4фкк", + "4фкс4", + "4фкф4", + "4фкх4", + "4фкш4", + "2ф3л4", + "8фл.", + "4флв4", + "4флж4", + "4флз4", + "4флл", + "4флф4", + "2ф3м4", + "8фм.", + "4фмв4", + "4фмж4", + "4фмз4", + "4фмм", + "4фмф4", + "2ф3н4", + "8фн.", + "4фнв4", + "4фнж4", + "4фнз4", + "4фнн", + "4фнф4", + "2ф3п", + "8фп.", + "4фпб", + "4фпв4", + "4фпг", + "4фпд", + "4фпж4", + "4фпз4", + "4фпп", + "4фпс4", + "4фпф4", + "4фпх4", + "4фпш4", + "2ф3р4", + "8фр.", + "4фрв4", + "4фрж4", + "4фрз4", + "4фрр", + "4фрф4", + "2ф3с", + "8фс.", + "4фсв4", + "4фсж4", + "4фсз4", + "4фсс", + "4фсф4", + "2ф3т", + "8фт.", + "4фтб", + "4фтв4", + "4фтг", + "4фтд", + "4фтж4", + "4фтз4", + "4фтк", + "4фтп", + "4фтс4", + "4фтт", + "4фтф4", + "4фтх4", + "4фтц", + "4фтч", + "4фтш4", + "4ф3ф4", + "8фф.", + "ффб4", + "4ффв4", + "ффг4", + "ффд4", + "4ффж4", + "4ффз4", + "ффк4", + "ффл4", + "ффм4", + "ффн4", + "ффп4", + "ффр4", + "ффс4", + "ффт4", + "4ффф4", + "ффх4", + "ффц4", + "ффч4", + "ффш4", + "ффщ4", + "2ф3х", + "8фх.", + "4фхв4", + "4фхж4", + "4фхз4", + "4фхф4", + "4фхх", + "2ф3ц", + "8фц.", + "4фцб", + "4фцв4", + "4фцг", + "4фцд", + "4фцж4", + "4фцз4", + "4фцк", + "4фцп", + "4фцс4", + "4фцт", + "4фцф4", + "4фцх4", + "4фцц", + "4фцч", + "4фцш4", + "2ф3ч", + "8фч.", + "4фчб", + "4фчв4", + "4фчг", + "4фчд", + "4фчж4", + "4фчз4", + "4фчк", + "4фчп", + "4фчс4", + "4фчт", + "4фчф4", + "4фчх4", + "4фчц", + "4фчч", + "4фчш4", + "2ф3ш", + "8фш.", + "4фшв4", + "4фшж4", + "4фшз4", + "4фшф4", + "4фшш", + "2ф3щ", + "8фщ.", + "4фщв4", + "4фщж4", + "4фщз4", + "4фщф4", + "4фщщ", + "2х3б4", + "8хб.", + "4хбб", + "4хбж4", + "4хбз4", + "4хбк", + "4хбп", + "4хбс4", + "4хбт", + "4хбф4", + "4хбх4", + "4хбц", + "4хбч", + "4хбш4", + "2х3в4", + "8хв.", + "4хвв", + "4хвж4", + "4хвз4", + "4хвф", + "4хвх4", + "2х3г4", + "8хг.", + "4хгг", + "4хгж4", + "4хгз4", + "4хгк", + "4хгп", + "4хгс4", + "4хгт", + "4хгф4", + "4хгх4", + "4хгц", + "4хгч", + "4хгш4", + "2х3д4", + "8хд.", + "4хдб", + "4хдг", + "4хдд", + "4хдж4", + "4хдз4", + "4хдк", + "4хдп", + "4хдс4", + "4хдт", + "4хдф4", + "4хдх4", + "4хдц", + "4хдч", + "4хдш4", + "4х3ж4", + "8хж.", + "хжб4", + "хжв4", + "хжг4", + "хжд4", + "4хжж4", + "4хжз4", + "хжк4", + "хжл4", + "хжм4", + "хжн4", + "хжп4", + "хжр4", + "4хжс4", + "хжт4", + "4хжф4", + "4хжх4", + "хжц4", + "хжч4", + "4хжш4", + "хжщ4", + "4х3з4", + "8хз.", + "хзб4", + "хзв4", + "хзг4", + "хзд4", + "4хзж4", + "4хзз4", + "хзк4", + "хзл4", + "хзм4", + "хзн4", + "хзп4", + "хзр4", + "4хзс4", + "хзт4", + "4хзф4", + "4хзх4", + "хзц4", + "хзч4", + "4хзш4", + "хзщ4", + "хй4", + "2х3к", + "8хк.", + "4хкб", + "4хкг", + "4хкд", + "4хкж4", + "4хкз4", + "4хкк", + "4хкс4", + "4хкф4", + "4хкх4", + "4хкш4", + "2х3л4", + "8хл.", + "4хлж4", + "4хлз4", + "4хлл", + "4хлх4", + "2х3м4", + "8хм.", + "4хмж4", + "4хмз4", + "4хмм", + "4хмх4", + "2х3н4", + "8хн.", + "4хнж4", + "4хнз4", + "4хнн", + "4хнх4", + "2х3п", + "8хп.", + "4хпб", + "4хпг", + "4хпд", + "4хпж4", + "4хпз4", + "4хпп", + "4хпс4", + "4хпф4", + "4хпх4", + "4хпш4", + "2х3р4", + "8хр.", + "4хрж4", + "4хрз4", + "4хрр", + "4хрх4", + "2х3с", + "8хс.", + "4хсж4", + "4хсз4", + "4хсс", + "4хсх4", + "2х3т", + "8хт.", + "4хтб", + "4хтг", + "4хтд", + "4хтж4", + "4хтз4", + "4хтк", + "4хтп", + "4хтс4", + "4хтт", + "4хтф4", + "4хтх4", + "4хтц", + "4хтч", + "4хтш4", + "2х3ф", + "8хф.", + "4хфв", + "4хфж4", + "4хфз4", + "4хфф", + "4хфх4", + "4х3х4", + "8хх.", + "ххб4", + "ххв4", + "ххг4", + "ххд4", + "4ххж4", + "4ххз4", + "ххк4", + "ххл4", + "ххм4", + "ххн4", + "ххп4", + "ххр4", + "ххс4", + "ххт4", + "ххф4", + "4ххх4", + "ххц4", + "ххч4", + "ххш4", + "ххщ4", + "2х3ц", + "8хц.", + "4хцб", + "4хцг", + "4хцд", + "4хцж4", + "4хцз4", + "4хцк", + "4хцп", + "4хцс4", + "4хцт", + "4хцф4", + "4хцх4", + "4хцц", + "4хцч", + "4хцш4", + "2х3ч", + "8хч.", + "4хчб", + "4хчг", + "4хчд", + "4хчж4", + "4хчз4", + "4хчк", + "4хчп", + "4хчс4", + "4хчт", + "4хчф4", + "4хчх4", + "4хчц", + "4хчч", + "4хчш4", + "2х3ш", + "8хш.", + "4хшж4", + "4хшз4", + "4хшх4", + "4хшш", + "2х3щ", + "8хщ.", + "4хщж4", + "4хщз4", + "4хщх4", + "4хщщ", + "4ц3б4", + "8цб.", + "4цбб4", + "цбв4", + "4цбг4", + "4цбд4", + "цбж4", + "цбз4", + "4цбк4", + "цбл4", + "цбм4", + "цбн4", + "4цбп4", + "цбр4", + "цбс4", + "4цбт4", + "цбф4", + "цбх4", + "4цбц4", + "4цбч4", + "цбш4", + "цбщ4", + "2ц3в4", + "8цв.", + "4цвб4", + "4цвв", + "4цвг4", + "4цвд4", + "4цвк4", + "4цвп4", + "4цвт4", + "4цвф", + "4цвц4", + "4цвч4", + "4ц3г4", + "8цг.", + "4цгб4", + "цгв4", + "4цгг4", + "4цгд4", + "цгж4", + "цгз4", + "4цгк4", + "цгл4", + "цгм4", + "цгн4", + "4цгп4", + "цгр4", + "цгс4", + "4цгт4", + "цгф4", + "цгх4", + "4цгц4", + "4цгч4", + "цгш4", + "цгщ4", + "4ц3д4", + "8цд.", + "4цдб4", + "цдв4", + "4цдг4", + "4цдд4", + "цдж4", + "цдз4", + "4цдк4", + "цдл4", + "цдм4", + "цдн4", + "4цдп4", + "цдр4", + "цдс4", + "4цдт4", + "цдф4", + "цдх4", + "4цдц4", + "4цдч4", + "цдш4", + "цдщ4", + "2ц3ж4", + "8цж.", + "4цжб4", + "4цжг4", + "4цжд4", + "4цжж", + "4цжк4", + "4цжп4", + "4цжс", + "4цжт4", + "4цжф", + "4цжх", + "4цжц4", + "4цжч4", + "4цжш", + "2ц3з4", + "8цз.", + "4цзб4", + "4цзг4", + "4цзд4", + "4цзз", + "4цзк4", + "4цзп4", + "4цзс", + "4цзт4", + "4цзф", + "4цзх", + "4цзц4", + "4цзч4", + "4цзш", + "цй4", + "4ц3к4", + "8цк.", + "4цкб4", + "цкв4", + "4цкг4", + "4цкд4", + "цкж4", + "цкз4", + "4цкк4", + "цкл4", + "цкм4", + "цкн4", + "4цкп4", + "цкр4", + "цкс4", + "4цкт4", + "цкф4", + "цкх4", + "4цкц4", + "4цкч4", + "цкш4", + "цкщ4", + "2ц3л4", + "8цл.", + "4цлб4", + "4цлг4", + "4цлд4", + "4цлк4", + "4цлл", + "4цлп4", + "4цлт4", + "4цлц4", + "4цлч4", + "2ц3м4", + "8цм.", + "4цмб4", + "4цмг4", + "4цмд4", + "4цмк4", + "4цмм", + "4цмп4", + "4цмт4", + "4цмц4", + "4цмч4", + "2ц3н4", + "8цн.", + "4цнб4", + "4цнг4", + "4цнд4", + "4цнк4", + "4цнн", + "4цнп4", + "4цнт4", + "4цнц4", + "4цнч4", + "4ц3п4", + "8цп.", + "4цпб4", + "цпв4", + "4цпг4", + "4цпд4", + "цпж4", + "цпз4", + "4цпк4", + "цпл4", + "цпм4", + "цпн4", + "4цпп4", + "цпр4", + "цпс4", + "4цпт4", + "цпф4", + "цпх4", + "4цпц4", + "4цпч4", + "цпш4", + "цпщ4", + "2ц3р4", + "8цр.", + "4црб4", + "4црг4", + "4црд4", + "4црк4", + "4црп4", + "4црр", + "4црт4", + "4црц4", + "4црч4", + "2ц3с", + "8цс.", + "4цсб4", + "4цсг4", + "4цсд4", + "4цсж", + "4цсз", + "4цск4", + "4цсп4", + "4цсс", + "4цст4", + "4цсц4", + "4цсч4", + "4ц3т4", + "8цт.", + "4цтб4", + "цтв4", + "4цтг4", + "4цтд4", + "цтж4", + "цтз4", + "4цтк4", + "цтл4", + "цтм4", + "цтн4", + "4цтп4", + "цтр4", + "цтс4", + "4цтт4", + "цтф4", + "цтх4", + "4цтц4", + "4цтч4", + "цтш4", + "цтщ4", + "2ц3ф", + "8цф.", + "4цфб4", + "4цфв", + "4цфг4", + "4цфд4", + "4цфж", + "4цфз", + "4цфк4", + "4цфп4", + "4цфт4", + "4цфф", + "4цфц4", + "4цфч4", + "2ц3х", + "8цх.", + "4цхб4", + "4цхг4", + "4цхд4", + "4цхж", + "4цхз", + "4цхк4", + "4цхп4", + "4цхт4", + "4цхх", + "4цхц4", + "4цхч4", + "4ц3ц4", + "8цц.", + "4ццб4", + "ццв4", + "4ццг4", + "4ццд4", + "ццж4", + "ццз4", + "4ццк4", + "ццл4", + "ццм4", + "ццн4", + "4ццп4", + "ццр4", + "ццс4", + "4ццт4", + "ццф4", + "ццх4", + "4ццц4", + "4ццч4", + "ццш4", + "ццщ4", + "4ц3ч4", + "8цч.", + "4цчб4", + "цчв4", + "4цчг4", + "4цчд4", + "цчж4", + "цчз4", + "4цчк4", + "цчл4", + "цчм4", + "цчн4", + "4цчп4", + "цчр4", + "цчс4", + "4цчт4", + "цчф4", + "цчх4", + "4цчц4", + "4цчч4", + "цчш4", + "цчщ4", + "2ц3ш", + "8цш.", + "4цшб4", + "4цшг4", + "4цшд4", + "4цшж", + "4цшз", + "4цшк4", + "4цшп4", + "4цшт4", + "4цшц4", + "4цшч4", + "4цшш", + "2ц3щ", + "8цщ.", + "4цщб4", + "4цщг4", + "4цщд4", + "4цщк4", + "4цщп4", + "4цщт4", + "4цщц4", + "4цщч4", + "4цщщ", + "4ч3б4", + "8чб.", + "4чбб4", + "чбв4", + "4чбг4", + "4чбд4", + "чбж4", + "чбз4", + "4чбк4", + "чбл4", + "чбм4", + "чбн4", + "4чбп4", + "чбр4", + "чбс4", + "4чбт4", + "чбф4", + "чбх4", + "4чбц4", + "4чбч4", + "чбш4", + "чбщ4", + "2ч3в4", + "8чв.", + "4чвб4", + "4чвв", + "4чвг4", + "4чвд4", + "4чвк4", + "4чвп4", + "4чвт4", + "4чвф", + "4чвц4", + "4чвч4", + "4ч3г4", + "8чг.", + "4чгб4", + "чгв4", + "4чгг4", + "4чгд4", + "чгж4", + "чгз4", + "4чгк4", + "чгл4", + "чгм4", + "чгн4", + "4чгп4", + "чгр4", + "чгс4", + "4чгт4", + "чгф4", + "чгх4", + "4чгц4", + "4чгч4", + "чгш4", + "чгщ4", + "4ч3д4", + "8чд.", + "4чдб4", + "чдв4", + "4чдг4", + "4чдд4", + "чдж4", + "чдз4", + "4чдк4", + "чдл4", + "чдм4", + "чдн4", + "4чдп4", + "чдр4", + "чдс4", + "4чдт4", + "чдф4", + "чдх4", + "4чдц4", + "4чдч4", + "чдш4", + "чдщ4", + "2ч3ж4", + "8чж.", + "4чжб4", + "4чжг4", + "4чжд4", + "4чжж", + "4чжк4", + "4чжп4", + "4чжс", + "4чжт4", + "4чжф", + "4чжх", + "4чжц4", + "4чжч4", + "4чжш", + "2ч3з4", + "8чз.", + "4чзб4", + "4чзг4", + "4чзд4", + "4чзз", + "4чзк4", + "4чзп4", + "4чзс", + "4чзт4", + "4чзф", + "4чзх", + "4чзц4", + "4чзч4", + "4чзш", + "чй4", + "4ч3к4", + "8чк.", + "4чкб4", + "чкв4", + "4чкг4", + "4чкд4", + "чкж4", + "чкз4", + "4чкк4", + "чкл4", + "чкм4", + "чкн4", + "4чкп4", + "чкр4", + "чкс4", + "4чкт4", + "чкф4", + "чкх4", + "4чкц4", + "4чкч4", + "чкш4", + "чкщ4", + "2ч3л4", + "8чл.", + "4члб4", + "4члг4", + "4члд4", + "4члк4", + "4члл", + "4члп4", + "4члт4", + "4члц4", + "4члч4", + "2ч3м4", + "8чм.", + "4чмб4", + "4чмг4", + "4чмд4", + "4чмк4", + "4чмм", + "4чмп4", + "4чмт4", + "4чмц4", + "4чмч4", + "2ч3н4", + "8чн.", + "4чнб4", + "4чнг4", + "4чнд4", + "4чнк4", + "4чнн", + "4чнп4", + "4чнт4", + "4чнц4", + "4чнч4", + "4ч3п4", + "8чп.", + "4чпб4", + "чпв4", + "4чпг4", + "4чпд4", + "чпж4", + "чпз4", + "4чпк4", + "чпл4", + "чпм4", + "чпн4", + "4чпп4", + "чпр4", + "чпс4", + "4чпт4", + "чпф4", + "чпх4", + "4чпц4", + "4чпч4", + "чпш4", + "чпщ4", + "2ч3р4", + "8чр.", + "4чрб4", + "4чрг4", + "4чрд4", + "4чрк4", + "4чрп4", + "4чрр", + "4чрт4", + "4чрц4", + "4чрч4", + "2ч3с", + "8чс.", + "4чсб4", + "4чсг4", + "4чсд4", + "4чсж", + "4чсз", + "4чск4", + "4чсп4", + "4чсс", + "4чст4", + "4чсц4", + "4чсч4", + "4ч3т4", + "8чт.", + "4чтб4", + "чтв4", + "4чтг4", + "4чтд4", + "чтж4", + "чтз4", + "4чтк4", + "чтл4", + "чтм4", + "чтн4", + "4чтп4", + "чтр4", + "чтс4", + "4чтт4", + "чтф4", + "чтх4", + "4чтц4", + "4чтч4", + "чтш4", + "чтщ4", + "2ч3ф", + "8чф.", + "4чфб4", + "4чфв", + "4чфг4", + "4чфд4", + "4чфж", + "4чфз", + "4чфк4", + "4чфп4", + "4чфт4", + "4чфф", + "4чфц4", + "4чфч4", + "2ч3х", + "8чх.", + "4чхб4", + "4чхг4", + "4чхд4", + "4чхж", + "4чхз", + "4чхк4", + "4чхп4", + "4чхт4", + "4чхх", + "4чхц4", + "4чхч4", + "4ч3ц4", + "8чц.", + "4чцб4", + "чцв4", + "4чцг4", + "4чцд4", + "чцж4", + "чцз4", + "4чцк4", + "чцл4", + "чцм4", + "чцн4", + "4чцп4", + "чцр4", + "чцс4", + "4чцт4", + "чцф4", + "чцх4", + "4чцц4", + "4чцч4", + "чцш4", + "чцщ4", + "4ч3ч4", + "8чч.", + "4ччб4", + "ччв4", + "4ччг4", + "4ччд4", + "ччж4", + "ччз4", + "4ччк4", + "ччл4", + "ччм4", + "ччн4", + "4ччп4", + "ччр4", + "ччс4", + "4ччт4", + "ччф4", + "ччх4", + "4ччц4", + "4ччч4", + "ччш4", + "ччщ4", + "2ч3ш", + "8чш.", + "4чшб4", + "4чшг4", + "4чшд4", + "4чшж", + "4чшз", + "4чшк4", + "4чшп4", + "4чшт4", + "4чшц4", + "4чшч4", + "4чшш", + "2ч3щ", + "8чщ.", + "4чщб4", + "4чщг4", + "4чщд4", + "4чщк4", + "4чщп4", + "4чщт4", + "4чщц4", + "4чщч4", + "4чщщ", + "2ш3б4", + "8шб.", + "4шбб", + "4шбж4", + "4шбз4", + "4шбк", + "4шбп", + "4шбс4", + "4шбт", + "4шбф4", + "4шбх4", + "4шбц", + "4шбч", + "4шбш4", + "2ш3в4", + "8шв.", + "4швв", + "4швж4", + "4швз4", + "4швф", + "4швш4", + "2ш3г4", + "8шг.", + "4шгг", + "4шгж4", + "4шгз4", + "4шгк", + "4шгп", + "4шгс4", + "4шгт", + "4шгф4", + "4шгх4", + "4шгц", + "4шгч", + "4шгш4", + "2ш3д4", + "8шд.", + "4шдб", + "4шдг", + "4шдд", + "4шдж4", + "4шдз4", + "4шдк", + "4шдп", + "4шдс4", + "4шдт", + "4шдф4", + "4шдх4", + "4шдц", + "4шдч", + "4шдш4", + "4ш3ж4", + "8шж.", + "шжб4", + "шжв4", + "шжг4", + "шжд4", + "4шжж4", + "4шжз4", + "шжк4", + "шжл4", + "шжм4", + "шжн4", + "шжп4", + "шжр4", + "4шжс4", + "шжт4", + "4шжф4", + "4шжх4", + "шжц4", + "шжч4", + "4шжш4", + "шжщ4", + "4ш3з4", + "8шз.", + "шзб4", + "шзв4", + "шзг4", + "шзд4", + "4шзж4", + "4шзз4", + "шзк4", + "шзл4", + "шзм4", + "шзн4", + "шзп4", + "шзр4", + "4шзс4", + "шзт4", + "4шзф4", + "4шзх4", + "шзц4", + "шзч4", + "4шзш4", + "шзщ4", + "шй4", + "2ш3к", + "8шк.", + "4шкб", + "4шкг", + "4шкд", + "4шкж4", + "4шкз4", + "4шкк", + "4шкс4", + "4шкф4", + "4шкх4", + "4шкш4", + "2ш3л4", + "8шл.", + "4шлж4", + "4шлз4", + "4шлл", + "4шлш4", + "2ш3м4", + "8шм.", + "4шмж4", + "4шмз4", + "4шмм", + "4шмш4", + "2ш3н4", + "8шн.", + "4шнж4", + "4шнз4", + "4шнн", + "4шнш4", + "2ш3п", + "8шп.", + "4шпб", + "4шпг", + "4шпд", + "4шпж4", + "4шпз4", + "4шпп", + "4шпс4", + "4шпф4", + "4шпх4", + "4шпш4", + "2ш3р4", + "8шр.", + "4шрж4", + "4шрз4", + "4шрр", + "4шрш4", + "2ш3с", + "8шс.", + "4шсж4", + "4шсз4", + "4шсс", + "4шсш4", + "2ш3т", + "8шт.", + "4штб", + "4штг", + "4штд", + "4штж4", + "4штз4", + "4штк", + "4штп", + "4штс4", + "4штт", + "4штф4", + "4штх4", + "4штц", + "4штч", + "4штш4", + "2ш3ф", + "8шф.", + "4шфв", + "4шфж4", + "4шфз4", + "4шфф", + "4шфш4", + "2ш3х", + "8шх.", + "4шхж4", + "4шхз4", + "4шхх", + "4шхш4", + "2ш3ц", + "8шц.", + "4шцб", + "4шцг", + "4шцд", + "4шцж4", + "4шцз4", + "4шцк", + "4шцп", + "4шцс4", + "4шцт", + "4шцф4", + "4шцх4", + "4шцц", + "4шцч", + "4шцш4", + "2ш3ч", + "8шч.", + "4шчб", + "4шчг", + "4шчд", + "4шчж4", + "4шчз4", + "4шчк", + "4шчп", + "4шчс4", + "4шчт", + "4шчф4", + "4шчх4", + "4шчц", + "4шчч", + "4шчш4", + "4ш3ш4", + "8шш.", + "шшб4", + "шшв4", + "шшг4", + "шшд4", + "4шшж4", + "4шшз4", + "шшк4", + "шшл4", + "шшм4", + "шшн4", + "шшп4", + "шшр4", + "шшс4", + "шшт4", + "шшф4", + "шшх4", + "шшц4", + "шшч4", + "4шшш4", + "шшщ4", + "2ш3щ", + "8шщ.", + "4шщж4", + "4шщз4", + "4шщш4", + "4шщщ", + "2щ3б4", + "8щб.", + "4щбб", + "4щбк", + "4щбп", + "4щбт", + "4щбц", + "4щбч", + "4щбщ4", + "2щ3в4", + "8щв.", + "4щвв", + "4щвф", + "4щвщ4", + "2щ3г4", + "8щг.", + "4щгг", + "4щгк", + "4щгп", + "4щгт", + "4щгц", + "4щгч", + "4щгщ4", + "2щ3д4", + "8щд.", + "4щдб", + "4щдг", + "4щдд", + "4щдк", + "4щдп", + "4щдт", + "4щдц", + "4щдч", + "4щдщ4", + "2щ3ж4", + "8щж.", + "4щжж", + "4щжс", + "4щжф", + "4щжх", + "4щжш", + "4щжщ4", + "2щ3з4", + "8щз.", + "4щзз", + "4щзс", + "4щзф", + "4щзх", + "4щзш", + "4щзщ4", + "щй4", + "2щ3к", + "8щк.", + "4щкб", + "4щкг", + "4щкд", + "4щкк", + "4щкщ4", + "2щ3л4", + "8щл.", + "4щлл", + "4щлщ4", + "2щ3м4", + "8щм.", + "4щмм", + "4щмщ4", + "2щ3н4", + "8щн.", + "4щнн", + "4щнщ4", + "2щ3п", + "8щп.", + "4щпб", + "4щпг", + "4щпд", + "4щпп", + "4щпщ4", + "2щ3р4", + "8щр.", + "4щрр", + "4щрщ4", + "2щ3с", + "8щс.", + "4щсж", + "4щсз", + "4щсс", + "4щсщ4", + "2щ3т", + "8щт.", + "4щтб", + "4щтг", + "4щтд", + "4щтк", + "4щтп", + "4щтт", + "4щтц", + "4щтч", + "4щтщ4", + "2щ3ф", + "8щф.", + "4щфв", + "4щфж", + "4щфз", + "4щфф", + "4щфщ4", + "2щ3х", + "8щх.", + "4щхж", + "4щхз", + "4щхх", + "4щхщ4", + "2щ3ц", + "8щц.", + "4щцб", + "4щцг", + "4щцд", + "4щцк", + "4щцп", + "4щцт", + "4щцц", + "4щцч", + "4щцщ4", + "2щ3ч", + "8щч.", + "4щчб", + "4щчг", + "4щчд", + "4щчк", + "4щчп", + "4щчт", + "4щчц", + "4щчч", + "4щчщ4", + "2щ3ш", + "8щш.", + "4щшж", + "4щшз", + "4щшш", + "4щшщ4", + "4щ3щ4", + "8щщ.", + "щщб4", + "щщв4", + "щщг4", + "щщд4", + "щщж4", + "щщз4", + "щщк4", + "щщл4", + "щщм4", + "щщн4", + "щщп4", + "щщр4", + "щщс4", + "щщт4", + "щщф4", + "щщх4", + "щщц4", + "щщч4", + "щщш4", + "4щщщ4", + "ъ1", + "ю1", + "я1" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/ca.json b/borb/pdf/canvas/layout/hyphenation/resources/ca.json new file mode 100644 index 000000000..4fabe5441 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/ca.json @@ -0,0 +1,901 @@ +{ + "patterns":[ + "1ba", + "1be", + "1bi", + "1bo", + "1bu", + "1ca", + "1ce", + "1ci", + "1co", + "1cu", + "1da", + "1de", + "1di", + "1do", + "3du", + "1fa", + "1fe", + "1fi", + "1fo", + "1fu", + "1ga", + "1ge", + "1gi", + "1go", + "1gu", + "1ha", + "1he", + "1hi", + "1ho", + "1hu", + "1ja", + "1je", + "1ji", + "1jo", + "1ju", + "1la", + "1le", + "1li", + "1lo", + "1lu", + "1ma", + "1me", + "1mi", + "1mo", + "1mu", + "1na", + "1ne", + "3ni", + "1no", + "1nu", + "1pa", + "3pe", + "3pi", + "3po", + "1pu", + "1qu", + "1ra", + "1re", + "1ri", + "1ro", + "1ru", + "1sa", + "1se", + "1si", + "1so", + "1su", + "1ta", + "1te", + "1ti", + "1to", + "1tu", + "1va", + "1ve", + "1vi", + "1vo", + "1vu", + "1xa", + "1xe", + "1xi", + "1xo", + "1xu", + "1za", + "1ze", + "1zi", + "1zo", + "1zu", + "1bé", + "1bí", + "1bó", + "1bú", + "1bà", + "1bè", + "1bò", + "1cé", + "1cí", + "1có", + "1cú", + "1cà", + "1cè", + "1cò", + "1ço", + "1ça", + "1çu", + "1çó", + "1çú", + "1çà", + "1çò", + "1dé", + "1dí", + "1dó", + "1dú", + "1dà", + "1dè", + "1dò", + "1fé", + "1fí", + "1fó", + "1fú", + "1fà", + "1fè", + "1fò", + "1gé", + "1gí", + "1gó", + "1gú", + "1gà", + "1gè", + "1gò", + "1gü", + "1hé", + "1hí", + "1hó", + "1hú", + "1hà", + "1hè", + "1hò", + "1jé", + "1jí", + "1jó", + "1jú", + "1jà", + "1jè", + "1jò", + "1lé", + "1lí", + "1ló", + "1lú", + "1là", + "1lè", + "1lò", + "1mé", + "1mí", + "1mó", + "1mú", + "1mà", + "1mè", + "1mò", + "1né", + "1ní", + "1nó", + "1nú", + "1nà", + "1nè", + "1nò", + "1pé", + "1pí", + "1pó", + "1pú", + "1pà", + "1pè", + "1pò", + "1qü", + "1ré", + "1rí", + "1ró", + "1rú", + "1rà", + "1rè", + "1rò", + "1sé", + "1sí", + "1só", + "1sú", + "1sà", + "1sè", + "1sò", + "1té", + "1tí", + "1tó", + "1tú", + "1tà", + "1tè", + "1tò", + "1vé", + "1ví", + "1vó", + "1vú", + "1và", + "1vè", + "1vò", + "1xé", + "1xí", + "1xó", + "1xú", + "1xà", + "1xè", + "1xò", + "1zé", + "1zí", + "1zó", + "1zú", + "1zà", + "1zè", + "1zò", + "3l2la", + "1l2le", + "1l2li", + "3l2lo", + "1l2lu", + "1b2la", + "1b2le", + "1b2li", + "1b2lo", + "1b2lu", + "1b2ra", + "1b2re", + "1b2ri", + "1b2ro", + "1b2ru", + "1c2la", + "1c2le", + "1c2li", + "1c2lo", + "1c2lu", + "1c2ra", + "1c2re", + "1c2ri", + "1c2ro", + "1c2ru", + "1d2ra", + "1d2re", + "1d2ri", + "1d2ro", + "1d2ru", + "1f2la", + "1f2le", + "1f2li", + "1f2lo", + "1f2lu", + "1f2ra", + "1f2re", + "1f2ri", + "1f2ro", + "1f2ru", + "1g2la", + "1g2le", + "1g2li", + "1g2lo", + "1g2lu", + "1g2ra", + "1g2re", + "1g2ri", + "1g2ro", + "1g2ru", + "1p2la", + "1p2le", + "1p2li", + "1p2lo", + "1p2lu", + "1p2ra", + "1p2re", + "1p2ri", + "1p2ro", + "1p2ru", + "1t2ra", + "1t2re", + "1t2ri", + "1t2ro", + "1t2ru", + "1n2ya", + "1n2ye", + "1n2yi", + "1n2yo", + "1n2yu", + "1l2lé", + "1l2lí", + "1l2ló", + "1l2lú", + "1l2là", + "1l2lè", + "1l2lò", + "1b2lé", + "1b2lí", + "1b2ló", + "1b2lú", + "1b2là", + "1b2lè", + "1b2lò", + "1b2ré", + "1b2rí", + "1b2ró", + "1b2rú", + "1b2rà", + "1b2rè", + "1b2rò", + "1c2lé", + "1c2lí", + "1c2ló", + "1c2lú", + "1c2là", + "1c2lè", + "1c2lò", + "1c2ré", + "1c2rí", + "1c2ró", + "1c2rú", + "1c2rà", + "1c2rè", + "1c2rò", + "1d2ré", + "1d2rí", + "1d2ró", + "1d2rú", + "1d2rà", + "1d2rè", + "1d2rò", + "1f2lé", + "1f2lí", + "1f2ló", + "1f2lú", + "1f2là", + "1f2lè", + "1f2lò", + "1f2ré", + "1f2rí", + "1f2ró", + "1f2rú", + "1f2rà", + "1f2rè", + "1f2rò", + "1g2lé", + "1g2lí", + "1g2ló", + "1g2lú", + "1g2là", + "1g2lè", + "1g2lò", + "1g2ré", + "1g2rí", + "1g2ró", + "1g2rú", + "1g2rà", + "1g2rè", + "1g2rò", + "1p2lé", + "1p2lí", + "1p2ló", + "1p2lú", + "1p2là", + "1p2lè", + "1p2lò", + "1p2ré", + "1p2rí", + "1p2ró", + "1p2rú", + "1p2rà", + "1p2rè", + "1p2rò", + "1t2ré", + "1t2rí", + "1t2ró", + "1t2rú", + "1t2rà", + "1t2rè", + "1t2rò", + "1n2yé", + "1n2yí", + "1n2yó", + "1n2yú", + "1n2yà", + "1n2yè", + "1n2yò", + "a1a", + "a1e", + "a1o", + "e1a", + "e1e", + "e1o", + "i1a", + "i1e", + "i1o", + "o1a", + "o1e", + "o1o", + "u1a", + "u1e", + "u1o", + "a1é", + "a1í", + "a1ó", + "a1ú", + "a1à", + "a1è", + "a1ò", + "a1ï", + "a1ü", + "e1é", + "e1í", + "e1ó", + "e1ú", + "e1à", + "e1è", + "e1ò", + "e1ï", + "e1ü", + "i1é", + "i1í", + "i1ó", + "i1ú", + "i1à", + "i1è", + "i1ò", + "i1ï", + "i1ü", + "o1é", + "o1í", + "o1ó", + "o1ú", + "o1à", + "o1è", + "o1ò", + "o1ï", + "o1ü", + "u1é", + "u1í", + "u1ó", + "u1ú", + "u1à", + "u1è", + "u1ò", + "u1ï", + "u1ü", + "é1a", + "é1e", + "é1o", + "é1ï", + "é1ü", + "í1a", + "í1e", + "í1o", + "í1ï", + "í1ü", + "ó1a", + "ó1e", + "ó1o", + "ó1ï", + "ó1ü", + "ú1a", + "ú1e", + "ú1o", + "ú1ï", + "ú1ü", + "à1a", + "à1e", + "à1o", + "à1ï", + "à1ü", + "è1a", + "è1e", + "è1o", + "è1ï", + "è1ü", + "ò1a", + "ò1e", + "ò1o", + "ò1ï", + "ò1ü", + "ï1a", + "ï1e", + "ï1o", + "ï1é", + "ï1í", + "ï1ó", + "ï1ú", + "ï1à", + "ï1è", + "ï1ò", + "ï1i", + "ü1a", + "ü1e", + "ü1o", + "ü1é", + "ü1í", + "ü1ó", + "ü1ú", + "ü1à", + "ü1è", + "ü1ò", + "a1i2a", + "a1i2e", + "a1i2o", + "a1i2u", + "a1u2a", + "a1u2e", + "a1u2i", + "a1u2o", + "a1u2u", + "e1i2a", + "e1i2e", + "e1i2o", + "e1i2u", + "e1u2a", + "e1u2e", + "e1u2i", + "e1u2o", + "e1u2u", + "i1i2a", + "i1i2e", + "i1i2o", + "i1i2u", + "i1u2a", + "i1u2e", + "i1u2i", + "i1u2o", + "i1u2u", + "o1i2a", + "o1i2e", + "o1i2o", + "o1i2u", + "o1u2a", + "o1u2e", + "o1u2o", + "o1u2i", + "o1u2u", + "u1i2a", + "u1i2e", + "u1i2o", + "u1i2u", + "u1u2a", + "u1u2e", + "u1u2i", + "u1u2o", + "u1u2u", + "a1i2é", + "a1i2í", + "a1i2ó", + "a1i2ú", + "a1i2à", + "a1i2è", + "a1i2ò", + "a1u2é", + "a1u2í", + "a1u2ó", + "a1u2ú", + "a1u2à", + "a1u2è", + "a1u2ò", + "e1i2é", + "e1i2í", + "e1i2ó", + "e1i2ú", + "e1i2à", + "e1i2è", + "e1i2ò", + "e1u2é", + "e1u2í", + "e1u2ó", + "e1u2ú", + "e1u2à", + "e1u2è", + "e1u2ò", + "i1i2é", + "i1i2í", + "i1i2ó", + "i1i2ú", + "i1i2à", + "i1i2è", + "i1i2ò", + "i1u2é", + "i1u2í", + "i1u2ó", + "i1u2ú", + "i1u2à", + "i1u2è", + "i1u2ò", + "o1i2é", + "o1i2í", + "o1i2ó", + "o1i2ú", + "o1i2à", + "o1i2è", + "o1i2ò", + "o1u2é", + "o1u2í", + "o1u2ó", + "o1u2ú", + "o1u2à", + "o1u2è", + "o1u2ò", + "u1i2é", + "u1i2í", + "u1i2ó", + "u1i2ú", + "u1i2à", + "u1i2è", + "u1i2ò", + "u1u2é", + "u1u2í", + "u1u2ó", + "u1u2ú", + "u1u2à", + "u1u2è", + "u1u2ò", + "é1i2a", + "é1i2e", + "é1i2o", + "é1i2u", + "é1u2a", + "é1u2e", + "é1u2o", + "é1u2i", + "é1u2u", + "í1i2a", + "í1i2e", + "í1i2o", + "í1i2u", + "í1u2a", + "í1u2e", + "í1u2o", + "í1u2i", + "í1u2u", + "ó1i2a", + "ó1i2e", + "ó1i2o", + "ó1i2u", + "ó1u2a", + "ó1u2e", + "ó1u2o", + "ó1u2i", + "ó1u2u", + "ú1i2a", + "ú1i2e", + "ú1i2o", + "ú1i2u", + "ú1u2a", + "ú1u2e", + "ú1u2o", + "ú1u2i", + "ú1u2u", + "à1i2a", + "à1i2e", + "à1i2o", + "à1i2u", + "à1u2a", + "à1u2e", + "à1u2o", + "à1u2i", + "à1u2u", + "è1i2a", + "è1i2e", + "è1i2o", + "è1i2u", + "è1u2a", + "è1u2e", + "è1u2o", + "è1u2i", + "è1u2u", + "ò1i2a", + "ò1i2e", + "ò1i2o", + "ò1i2u", + "ò1u2a", + "ò1u2e", + "ò1u2o", + "ò1u2i", + "ò1u2u", + "ï1i2a", + "ï1i2e", + "ï1i2o", + "ï1i2é", + "ï1i2í", + "ï1i2ó", + "ï1i2ú", + "ï1i2à", + "ï1i2è", + "ï1i2ò", + "ï1i2u", + "ï1u2a", + "ï1u2e", + "ï1u2o", + "ï1u2é", + "ï1u2í", + "ï1u2ó", + "ï1u2ú", + "ï1u2à", + "ï1u2è", + "ï1u2ò", + "ï1u2i", + "ï1u2u", + "ü1i2a", + "ü1i2e", + "ü1i2o", + "ü1i2é", + "ü1i2í", + "ü1i2ó", + "ü1i2ú", + "ü1i2à", + "ü1i2è", + "ü1i2ò", + "ü1i2u", + "ü1u2a", + "ü1u2e", + "ü1u2o", + "ü1u2é", + "ü1u2í", + "ü1u2ó", + "ü1u2ú", + "ü1u2à", + "ü1u2è", + "ü1u2ò", + "ü1u2i", + "ü1u2u", + ".hi2a", + ".hi2e", + ".hi2o", + ".hi2u", + ".hu2a", + ".hu2e", + ".hu2i", + ".hu2o", + ".i2è", + ".i2ò", + ".u2è", + ".u2ò", + ".hi2é", + ".hi2ó", + ".hi2ú", + ".hi2à", + ".hi2è", + ".hi2ò", + ".hu2é", + ".hu2í", + ".hu2ó", + ".hu2à", + ".hu2è", + ".hu2ò", + "gu2a", + "gu2e", + "gu2i", + "gu2o", + "qu2a", + "qu2e", + "qu2i", + "qu2o", + "gu2é", + "gu2í", + "gu2ó", + "gu2à", + "gu2è", + "gu2ò", + "qu2é", + "qu2í", + "qu2ó", + "qu2à", + "qu2è", + "qu2ò", + "gü2e", + "gü2é", + "gü2í", + "gü2è", + "gü2i", + "qü2e", + "qü2é", + "qü2í", + "qü2è", + "qü2i", + "a1isme.", + "e1isme.", + "i1isme.", + "o1isme.", + "u1isme.", + "a1ista.", + "e1ista.", + "i1ista.", + "o1ista.", + "u1ista.", + "a1um.", + "e1um.", + "i1um.", + "o1um.", + "u1um.", + ".antihi2", + ".be2n", + ".be2s", + ".bi2s", + ".ca2p", + ".ce2l", + ".cla2r", + ".co2ll", + ".co2n", + ".co2r", + ".de2s", + ".di2s", + ".en3a", + ".hipe2r", + ".hiperm2n", + ".in3ac", + ".in3ad", + ".in3ap", + ".in3es", + ".in3o", + ".inte2r", + ".ma2l", + ".mal1t2hus", + ".pa2n", + ".pe2r", + ".pe3ri", + ".pos2t", + ".psa2l", + ".rebe2s", + ".re2d", + ".su2b", + ".sub3o", + ".subde2s", + ".supe2r", + ".tran2s", + "g2no", + "p2si", + "p2se", + "p2neu", + "g2nò", + "p2sí", + ".ch2", + ".th2", + "ein1s2tein", + "ru1t2herford", + "ni2etz1sc2he", + "3exp", + "3nef", + "3nei", + "3pr", + "3ser", + "a3ne", + "a3ri", + "bi3se", + "des3ag", + "des3ar", + "des3av", + "des3enc", + "e3ism", + "e3le", + "e3rio", + "e3ris", + "es3aco", + "es3af", + "es3ap", + "es3arr", + "es3as", + "es3int", + "ig3n", + "in3ex", + "n3si", + "o3ro", + "qui3e", + "s3emp", + "s3esp", + "sub3a", + "ui3et", + "o3gnò" + ], + "exceptions":[ + "cu-rie", + "cu-ries", + "gei-sha", + "gei-shes", + "goua-che", + "goua-ches", + "hip-py", + "hip-pies", + "hob-by", + "hob-bies", + "jeep", + "jeeps", + "joule", + "joules", + "klee-nex", + "klee-nexs", + "lar-ghet-ti", + "lar-ghet-to", + "lied", + "lieder", + "nos-al-tres", + "ro-yal-ties", + "ro-yal-ty", + "vos-al-tres", + "whis-ky", + "whis-kies" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/cy.json b/borb/pdf/canvas/layout/hyphenation/resources/cy.json new file mode 100644 index 000000000..8d353f35e --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/cy.json @@ -0,0 +1,6732 @@ +{ + "patterns":[ + ".ac4t", + ".ad3ae", + ".add5as", + ".add3o", + ".ad4eg", + ".ad4eny", + ".ad4fer", + ".adl4", + ".ad3r", + ".ae3a", + ".af3a", + ".af4an", + ".aff3", + ".afl4u", + ".af5lw", + ".ag3w", + ".am4le", + ".am3s", + ".an5ad", + ".an4g3", + ".anghen5a", + ".anghen4r", + ".an2o", + ".anrhyd4", + ".ansodd4e", + ".an5te", + ".an3w4", + ".an5we", + ".ar4bo", + ".ar4cha", + ".ar5ddel", + ".ared4", + ".ar4en", + ".arff4", + ".ar4ge", + ".ar2i", + ".ar3we", + ".ar4wed", + ".as3g", + ".as3t", + ".aw4e", + ".ban4as", + ".ban4ed", + ".bara5t", + ".bel3y", + ".be3t4a", + ".bl2", + ".bl4e", + ".br2", + ".br4e", + ".call5", + ".ce4n", + ".ch2", + ".ch4e", + ".ch4l", + ".ch4o", + ".chollad4", + ".chr2", + ".chwyn5", + ".cl2", + ".cr2", + ".cy5we", + ".dad3r", + ".dd2", + ".ddefn5", + ".dd4i", + ".ddi5an", + ".ddi5dd", + ".ddi3e", + ".ddill5adas", + ".ddill5ade", + ".ddill5ado", + ".ddill5adw", + ".ddin4", + ".ddiw5eddas", + ".ddiw5edde", + ".ddiw5eddo", + ".ddiw5eddw", + ".ddwl3", + ".ddy5fala", + ".ddy5fale", + ".ddy5falo", + ".ddy5falw", + ".ddylad4", + ".deallad4", + ".defn3", + ".der4w", + ".deth5", + ".di5an", + ".di5dd", + ".di3e", + ".di3gy", + ".dill5adas", + ".dill5ade", + ".dill5ado", + ".dill5adw", + ".din4", + ".diw5eddas", + ".diw5edde", + ".diw5eddo", + ".diw5eddw", + ".dr4e", + ".dwl3", + ".dy5fala", + ".dy5fale", + ".dy5falo", + ".dy5falw", + ".dy5fo", + ".dylad4", + ".dyrchafad4", + ".eb2", + ".eb3r", + ".eb4rw", + ".ec2", + ".ed2", + ".edl4", + ".edr4", + ".eg2", + ".egn3", + ".el4or", + ".els4", + ".en3as", + ".eny5na", + ".er2", + ".erfy5na", + ".ern4", + ".ewy5na", + ".fadd3", + ".falch5", + ".fan3a", + ".farn4ais.", + ".fasg4", + ".fas5ge", + ".ff2", + ".ff4a", + ".ffer4a", + ".ffe5ras", + ".ffer4e", + ".ff4o", + ".ffor5t", + ".ff4y", + ".ffydd5", + ".ffynad4", + ".ffy5nas", + ".fign5", + ".fis5g", + ".fon4edi", + ".fordd4", + ".for4o", + ".for4w", + ".for4y", + ".fr4i", + ".fryn4d", + ".fydd5", + ".fyn5as", + ".fyw3", + ".gal3e", + ".gal5o", + ".gan3l", + ".gan5olas", + ".gan5ole", + ".gen5as", + ".ger5b", + ".geu5d", + ".ghwy5na", + ".gl2", + ".glaf5y", + ".gl4e", + ".gleid4", + ".gl4y", + ".glyn3", + ".glywad4", + ".god3y", + ".gof3a", + ".goffad4wy", + ".gollad4", + ".gr2", + ".grynho4em", + ".grynho4wn", + ".gwedd4er", + ".gyd3", + ".gyf5al", + ".gyf5arc", + ".gyfer5byna", + ".gyfer5byni", + ".gyfer5bynn", + ".gyffel5", + ".gym3o", + ".gyn3a", + ".gyn5e", + ".gynef5", + ".gyth5ru", + ".gy5we", + ".hac4", + ".hadl4", + ".haf4a", + ".haf3l4", + ".hagr3", + ".ham4le", + ".han5as", + ".han4g5", + ".hanghen5a", + ".han5t", + ".han5w4", + ".har5ddel", + ".hared4", + ".har4en", + ".har3n", + ".harn4a", + ".har3w", + ".has3g", + ".haw4", + ".heb2", + ".hec2", + ".hed2", + ".hedl4", + ".he4o", + ".herfy5na", + ".her4w", + ".heur5", + ".hof4r3", + ".hol4y", + ".holyn5", + ".hw2", + ".hwn4", + ".hwyl5u", + ".hwyn5a", + ".hwyr5", + ".hwyth4au", + ".hyd4", + ".hydr4", + ".hy3ff", + ".hyf4od", + ".hy5fry", + ".hy3g", + ".hyl4", + ".hym3e", + ".hym4u", + ".hym4y", + ".hymy5na", + ".hymysg4", + ".hyn2", + ".hy3no", + ".hy3rw", + ".iach4", + ".iac5has", + ".iac5he", + ".iac5hw", + ".ir3", + ".ladr3", + ".ledr4e", + ".le3na", + ".le3o", + ".lest4", + ".lin3", + ".ll2", + ".llaw4e", + ".lle5na", + ".llo5nas", + ".llon4e", + ".llythr5", + ".lo3na", + ".lon4e", + ".ludd3", + ".lygr3", + ".lyn3a", + ".lythr5", + ".man4ed", + ".mant4a", + ".mar4f", + ".mign5", + ".mis5g", + ".mol3", + ".mon4edi", + ".mwyth5a", + ".mwyth5w", + ".myn5as", + ".neilltu4ad", + ".neis4i", + ".nen3a", + ".ner4w", + ".ng2", + ".ngen5as", + ".nghyt5u", + ".nghy5wa", + ".ngl4", + ".ng4w", + ".ngy4", + ".ni5an", + ".ni3e", + ".ni5fei", + ".nig2", + ".ni5ga", + ".ni3ge", + ".ni3gw", + ".ni3gy", + ".ni5re", + ".ni3wa", + ".niwl5", + ".no4e", + ".no4w", + ".nwl3", + ".nwyn3", + ".oddefad4", + ".od4l", + ".of3a", + ".of4o", + ".of4u", + ".og2", + ".og4l4", + ".ol2", + ".oll3", + ".ol5yga", + ".ol5yge", + ".olyn3", + ".or1", + ".orddad4", + ".pl4a", + ".pl4e", + ".rad3r", + ".rag3l", + ".ra3na", + ".ran5d4", + ".rew3", + ".rhi5a", + ".ria4", + ".rin4t", + ".rug4l5", + ".ry3n4a", + ".ryn4e", + ".sas4", + ".ses4", + ".st2", + ".sych3", + ".sych5e", + ".talad4", + ".tan4e", + ".th2", + ".thag5", + ".th4i", + ".tho5e", + ".th4r4", + ".thrad4", + ".th4u", + ".torad4", + ".tr2", + ".tr4a", + ".trad4", + ".tr4o", + ".tro4en", + ".uch2", + ".wa5r4as", + ".war4es", + ".wedd4er", + ".weithiad4", + ".welad4", + ".wen3a", + ".west4", + ".wn4io", + ".wobr3", + ".wybr4", + ".wy3by", + ".wy4r", + ".wyw3", + ".ydd4", + ".yd4l", + ".yf4ar", + ".ym4adw", + ".ym3e", + ".ym4yl", + ".ymysg4", + ".yn4d", + ".ys4b", + ".ysg4", + ".ys4i", + ".ys4n", + ".ys4t", + "a1a", + "a3ar2", + "2ab", + "ab3a", + "ab4ad", + "ab3ed", + "ab3el", + "ab5ine", + "abl1", + "a2b1o", + "ab4or", + "abr3", + "a1bu", + "a4bu.", + "a4bum", + "2ac", + "ac1a", + "ac5ade", + "acan3", + "ac4aol", + "ac3ei", + "ace3ne", + "ac5enni.", + "ach1", + "a4ch.", + "ach5ac", + "ach5aw", + "a5chef", + "ach3o", + "ach3r", + "ach5us", + "a3chwa", + "achwyn5", + "achy4", + "aci5mw", + "acl3", + "ac3o", + "ac3ta", + "ac3te", + "4ad3ac", + "ad3ad", + "ad5afa", + "ad3arf", + "adar4g", + "a4dd.", + "add3ad", + "ad3dal", + "ad3dd", + "add3eu", + "add5ew", + "add3f", + "add3i", + "add2o", + "ad4du", + "addun4", + "add3yc", + "add3ys", + "2ad1e", + "ad3eg", + "ad3el", + "ad4el.", + "ad4ena", + "ad4ene", + "ad4eni", + "ad4eno", + "ad4enw", + "ad3i", + "2adl", + "ad3len", + "ad5lys", + "ad2na", + "adnabydd4e", + "adnabydded4", + "ad2no", + "2ado", + "ad3oc", + "ad3od", + "ad3of", + "ad3on", + "4adr.", + "ad4red", + "ad3ri", + "adr4od", + "adr3on", + "ad4ru", + "4adunia", + "ad5uniad", + "ad5uro", + "adwel4ed.", + "ad3wi", + "ad5wr.", + "3ad3wys", + "ad5wyt", + "ad1y", + "ady4n", + "ad4yrn", + "2aea", + "ae4ada", + "ae5an.", + "aedd3", + "ae3i", + "ael1", + "ael4edda", + "aen3", + "ae3oc", + "ae3og", + "aer1", + "aerw4", + "aer5we", + "aer5wy", + "aes3", + "aest4", + "aeth5a", + "aethr4", + "ae1w", + "ae5wyd", + "af3adw", + "4af5aid", + "af4al", + "af3an", + "afan5e", + "af4ann", + "4afar3", + "af5arn", + "af4at", + "4af3au", + "2af3e", + "2aff", + "aff3a", + "aff3ed", + "aff3ei", + "aff3i", + "affl3", + "aff3w", + "aff3y", + "aff4yr", + "af3i", + "afl3a", + "afl5edi", + "af4l3u", + "2afn1", + "af3odd", + "4afol", + "af3ont", + "2afr", + "af3ra", + "af3res", + "af5rif", + "af4ru", + "af5rwy", + "af1u", + "2af1w", + "af1y", + "2a2g", + "ag1a", + "ag3ad", + "ag3al", + "age3na", + "age5ne", + "ag3law", + "agl3o", + "ag3lu", + "agl3w", + "ag3n", + "ag3od", + "ag3of", + "ag4ori", + "ag1r", + "ag3ri", + "ag3ry", + "ag1u", + "ag2w", + "ag3wa", + "ag3wel", + "ag3wn", + "ag3wr", + "ag5yma", + "agy4w", + "a1h2", + "ahan3", + "ahanad4", + "ahedr4", + "a2i", + "2aig", + "2ail1", + "ailen3", + "2ain", + "4ainc", + "2ait", + "2al", + "al5abr", + "al3ad", + "4al3ae", + "alaf3", + "4alaid", + "al3an", + "al5arc", + "al5aso", + "al3ce", + "alch3w", + "al5cwl", + "al4di", + "al1e", + "al5edau", + "al3ei", + "al3en", + "al4ena", + "al4es.", + "al2fo", + "al3fy", + "al3i", + "al4is", + "all3a", + "all3e", + "all3i", + "all3oc", + "all3w", + "all3y", + "3aln", + "al3oc", + "al3od", + "al4ogia", + "alo3na", + "alo3n4e", + "al3ono", + "al3or", + "alp4e", + "al1u", + "4alwc", + "alw3e", + "4alwr", + "al5wst", + "al3wy", + "4alwy.", + "al1y", + "2am", + "ambl3", + "am3d", + "amdan5", + "amel5o", + "am3er", + "amgym5r", + "amhen4", + "amhobl4", + "amhryd4", + "am5las", + "am4led", + "am4lf", + "am4lg", + "am5nif", + "am4of", + "am2or", + "amor5w", + "am4pa", + "a4mwa", + "am5wed", + "am5wri", + "am5wyd", + "am3wyt", + "amyn3", + "a2n", + "2an.", + "an1a", + "a4nab", + "anadl3", + "a4nae", + "a4naf", + "an4afi", + "a4nai", + "an2as", + "an3at4", + "a4nau", + "a4naw", + "4anco", + "an2da", + "an5dda", + "an4ddy", + "an2de", + "an2do", + "an1e", + "an2ed", + "an3ed.", + "an5eda", + "an5edd.", + "an5edo", + "a4n3eg", + "a4nel", + "an3eli", + "an5er.", + "an5ewi", + "2anf", + "an3fy", + "2ang1", + "ang3ad", + "an4gd", + "ang3e", + "an4gf", + "anghaff4", + "anghelf4", + "anghredad4", + "anghrist4", + "anghy4", + "anghyd4", + "anghydna4", + "anghyf4", + "anghyfar4", + "anghyff4", + "anghyfiawn4", + "anghym4", + "anghyn4e", + "angl4", + "ang5or", + "an3if", + "an3igi", + "4annau", + "an3oc", + "an3od.", + "an3odd", + "an5og.", + "an5og4ae", + "4anol", + "an3ol.", + "an3om", + "an3ont", + "an3or", + "1anr", + "an5sic", + "ans4ie", + "ans4iw", + "an5siwn", + "an4ta", + "ant5ac", + "an5the", + "ant3rw", + "an1w", + "an3wes", + "4anwl", + "anwy4", + "an3wyd", + "anwyn3", + "an1y", + "any4l3", + "a1oe", + "ap3a", + "ap4cy", + "ap5elw", + "ap3l", + "apl4a", + "ap5ost", + "ap5rwn", + "ap5ryn", + "ap5wll", + "2ar", + "ar3ab", + "aradr3", + "arae3", + "ar3af.", + "ara5ff", + "ar3an", + "ar4an.", + "aran3a", + "aran3e", + "arat4", + "ar3aw", + "ar4ber", + "arc3as", + "arch5en", + "ar5clo", + "ar2da", + "ar2de", + "ard5es", + "ar4dr", + "ardyn3", + "ar1e", + "ar2eb", + "ar2ei", + "ar5eid", + "ar3eit", + "ar3fa", + "arfan5", + "arf5ed", + "ar5fel", + "ar4ff", + "ar3fod", + "ar1i", + "ar4ian", + "ar2m", + "4arn.", + "arn5adwy.", + "ar4nd", + "3arnh", + "ar4no", + "ar4nw", + "ar4ny", + "ar1o", + "ar4od.", + "ar4odi", + "arogl3", + "3aror", + "ar3os", + "5aros.", + "ar4p3as", + "arp3w", + "ar3sy", + "ar3te", + "ar4th3", + "ar3ug", + "ar3ut", + "aru5wc", + "3arwai", + "ar5wch", + "arwd2", + "arw5der", + "ar3wed", + "3ar3wi", + "arw3n", + "ar3wn.", + "ar3wni", + "ar3wy", + "4arwyn", + "ar3y", + "2as.", + "2asas", + "as5awr", + "1asb", + "as5boe", + "2asd", + "2ased", + "as4enn", + "2asf", + "2asg", + "as5gal", + "asgl3", + "asg4oda", + "as3gwr", + "asg3wy", + "2asia", + "4asie", + "2asl", + "2asn", + "as4ny", + "as4od.", + "2asoe", + "2asr", + "2ast", + "as4tal", + "as3tan", + "astat5", + "as3te", + "as4tl", + "as4tr", + "as5trus", + "ast2w", + "as5ty.", + "as3tyl", + "astyn3", + "2asu", + "as3ur", + "as5wir", + "2aswr", + "2asy", + "as5ynn", + "2a2t", + "at3ad", + "at5alf", + "ateb3", + "at3em", + "ath3a", + "athl3", + "ath3o", + "ath4r3e", + "athr3w", + "athr5yc", + "ath3w", + "ath3y", + "ato2i", + "at3ol", + "a3tô", + "at3ran", + "atr5oc", + "at3rod", + "atro5e", + "atr5yc", + "at3wy", + "aty3na", + "aty5ne", + "a2u", + "2aul", + "2aw", + "aw1a", + "aw5art", + "aw5chw", + "aw5ddr", + "aw5dry", + "aw3ed", + "aw3ei", + "aw3el", + "aw3es", + "aw3f", + "aw3ga", + "aw1i", + "awl5ed", + "awn3a", + "awr1", + "awr3d", + "awy4r3", + "3áu.", + "1â", + "bab4i", + "bab5yd", + "b3ac", + "bach3", + "badd3", + "b3adw", + "1bae", + "2baet", + "b1af", + "b1ai", + "b1an", + "ban3a", + "ban3e", + "b4ann", + "ban3o", + "5barch", + "bar4f", + "bar4lys.", + "barn3", + "bar4wy", + "b1as", + "bas3g2", + "bast4", + "bat4a", + "b4ath", + "b1au", + "bawd4a", + "bawe5na", + "b1d", + "b1ec", + "2bed", + "beir4a", + "be4iw", + "b1em", + "ben4ae", + "be3nas", + "be5ned", + "bengl4", + "bens4", + "bent4", + "b3ent.", + "ben3w", + "benwy5na", + "b3ert", + "b3esi", + "bgal4", + "2b1i", + "b3ia", + "bi5aidd", + "3bib1", + "b3id3", + "b3ie", + "3b2ig1", + "b4inc", + "bin2e", + "b3io", + "b3ir", + "bisg4", + "b3it", + "bl3af", + "bl5air", + "bla3na", + "bla5nedi", + "bla5nes", + "2blau", + "bl5awd", + "bl3ec", + "bl4enni.", + "blew3", + "4blwr", + "b4lyc", + "4blyn", + "bl5yn.", + "bo4b4l", + "b1oc", + "4b3odd", + "bol3", + "b1om", + "b2on", + "bon4d", + "b2r", + "bra3na", + "br3ed", + "breg3y", + "br3em", + "br4enn", + "br2i", + "br4il", + "br3ir", + "brod4iae", + "brog4", + "br4wd", + "bryf3", + "bryn4d", + "b1s2", + "bse3na", + "bse5ne", + "2bu.", + "1bua", + "budd4l", + "bu4lo", + "3buo", + "bw3a", + "b1wc", + "3bwll", + "b1wn", + "b4wns", + "bwr1", + "4bwyd", + "b3wyd.", + "4b3wyf", + "bwyllt4", + "3bwyn", + "bwy4r3", + "2by", + "b3ych.", + "bydd5i", + "b2yl", + "3bylla", + "by3na", + "by3ned", + "by3nes", + "byrf4", + "b4yrw", + "3byst.", + "byw3", + "cabl4en", + "c1ad", + "cad3a", + "cad3l", + "cae4a", + "caethiw4ed", + "c1af", + "c3ai", + "cal3e", + "cal3o", + "cam4enn", + "camn4", + "can3a", + "ca4ne", + "canghe5na", + "can3l", + "c4ann", + "can5olas", + "can5ole", + "c3ant", + "can4yd", + "car4en", + "car4ped.", + "c1as", + "casg4e", + "3cat", + "ca4t3r", + "c3au", + "c3áu", + "c1b", + "cd2", + "c1e", + "c3ed", + "c5edig", + "ceg3", + "c3el", + "c2en", + "ce3na", + "c3ent", + "cer5by", + "cer4f", + "cer3y", + "ceu4l", + "c3ff", + "3chae", + "ch3af.", + "ch4afb", + "ch4afi", + "chan3a", + "changhe5na", + "char4enn", + "chasg4e", + "chdr5y", + "ch3eba", + "ch3ebe", + "ch3ebi", + "ch3ebo", + "ch3ebw", + "ch3ech", + "ch3ed.", + "ch3edi", + "5chein", + "chelad4", + "ch3ent", + "chen3y", + "ch3er.", + "cher4f", + "ch3esg", + "3chest", + "4chestio", + "4chestol", + "4chestwa", + "4chestwe", + "ch3eta", + "ch5ig.", + "chleid4", + "chl5ent", + "4chmyni", + "4chmynnol", + "chn5eg", + "chob3", + "chobl4", + "ch3odd", + "chon5ad4", + "ch3ont", + "chon4y", + "chra4", + "ch4ro", + "4chu.", + "ch4ub", + "4chus", + "5chwant", + "ch3wch", + "chw4f", + "ch4wi", + "ch3wn.", + "ch3wyf", + "chyd3", + "chym4an", + "ch4ynn", + "chysg3", + "chys5o", + "chyt3u", + "chy5wa", + "c1i", + "cib3", + "cig1", + "c3in", + "ci3od.", + "cl2e", + "cleid4", + "cl2i", + "c1ll", + "cllon3", + "cloe4", + "cl2w", + "cl4wm", + "cly4w", + "clywad4", + "cn2", + "cno4en", + "cn4yw", + "cob1", + "co4bl4", + "c1oc", + "c1od", + "cod4l", + "coffad4wy", + "collad4", + "c1om", + "c1on", + "con4y", + "corn4an", + "cosb3", + "cr3ae", + "cra4m", + "3crat", + "credad4", + "cr4el", + "cr3ie", + "cring4", + "crof4", + "crog3", + "cron4a", + "cro5nas", + "cron4e", + "cryg3", + "crygl4", + "cr4yl", + "cr4ym", + "crynho4em", + "crynho4i", + "cs3a", + "c3s4aw", + "cs3yn", + "ct2a", + "c4teg", + "ct4id", + "c1to", + "ctor3", + "c3tr", + "1cu", + "2cus", + "c1w", + "c3wa", + "cwast3", + "cw4fa", + "cwm3", + "cwn4ed", + "c3wy", + "c4wyn3", + "cwy4r", + "cyb3y", + "2c1yc", + "cych3", + "cyd3", + "cydl4", + "cydr4", + "cy4f3a", + "cyfer3", + "cyffel5", + "c1yl", + "cyll5a", + "cym3", + "cym4an", + "cym4ero", + "c1yn", + "cyn3a", + "c5ynau", + "cyn3e", + "cynef3", + "c2yny", + "cy4se", + "cysg3", + "cys5on", + "cys3t", + "cys3w", + "cyth5rud", + "cy1w", + "cy3wa", + "cy3wi", + "cy3wy", + "d1a2", + "dach3", + "d3ach.", + "d5achwr", + "d2ad", + "dad3u", + "dad3w", + "d5adwy", + "dae5ara", + "dae5ared", + "dae5ari", + "dae5arw", + "d2ael", + "d4afe", + "d4afo", + "dag1", + "dag3w", + "4dail", + "da5ion", + "d4ait", + "d4al.", + "d4ald", + "d4aln", + "d4alr", + "d2an3a", + "d2an3e", + "dan3f", + "d2ano", + "d2anu", + "d2anw", + "d2any", + "dar3a", + "dar4ana", + "dar4d", + "darf2", + "d5arne", + "dar3w", + "d5aryd", + "2das", + "2dau", + "2daw", + "dawd3", + "d5awd.", + "d1b", + "ddad3r", + "4ddaf", + "3ddang", + "dd4ani", + "dd3ara", + "dd3ari", + "dd3arw", + "2ddas", + "dd4aw", + "ddd2", + "d4dda", + "ddd4e", + "dd4d4i4", + "dd3dr", + "dd4du", + "dd4dy", + "dd5dy.", + "dd3er.", + "ddeth5", + "ddeuad4", + "dd4eug", + "dd4ew", + "dd2f", + "dd4fg", + "2ddi.", + "dd4ic", + "dd4if", + "ddif3a", + "dd4ig.", + "ddi3gy", + "dd4il", + "dd4im", + "dd4ini", + "4ddit", + "dd1l2", + "dd5len", + "2ddo.", + "4ddoc", + "dd3odd", + "4ddom", + "4ddon3", + "dd2or3", + "ddr2", + "ddr4a", + "ddr4e", + "ddr4i", + "ddr4o", + "ddr4w", + "dd4ry", + "d2du", + "4dd3un", + "dd5us.", + "dd5waw", + "4ddwc", + "dd2we", + "4ddwn", + "5ddwrn", + "dd4wyn", + "3ddwyr", + "dd2y", + "4ddyc", + "dd4ydd", + "dd5yf.", + "ddym4d", + "dd4yn", + "ddy5nad", + "5ddyni", + "4ddynt", + "3ddyr", + "3deb.", + "debr3", + "d1ec", + "dech4a", + "d1ed", + "d5edd.", + "deddf3", + "def3a", + "d1eg", + "d5egol.", + "de1h", + "deheu5", + "d2eil", + "d4eim", + "delff5", + "d3ella", + "d3elle", + "d3elli", + "d3ello", + "dellt5", + "d3ellw", + "del3o", + "d1em", + "d3em.", + "2d1en1", + "d4eng", + "d3ent", + "de2o", + "der3f", + "derfyn5", + "2d1es", + "d3esi", + "5destu", + "d1et", + "det5an", + "deth4o", + "d1eu1", + "deul4", + "deu4ny", + "d4eut", + "d1f2", + "d3f4ae", + "df4ann", + "df4ao", + "d4fa5ol", + "df4at", + "df4aw", + "dfed5r", + "d3fei", + "dfe5ne", + "d5ferf", + "d4fery", + "dff4y", + "d2fi", + "df4id", + "df4od", + "d4f3ol", + "df4ry", + "d2fu", + "dfwr2", + "d4fyd", + "dfyn3a", + "dfyn4ed.", + "d1g2", + "dgam2", + "dgan5e", + "dg4ei", + "dgl2", + "dgrynho5", + "dgyf5ar", + "d1h2", + "dha5ol", + "dhegl5", + "2d1i", + "di5ach", + "di1b2", + "dibryd4", + "di1d", + "did2e", + "di5den", + "d4ido", + "di5dos", + "di4et", + "di3eu", + "dif4an", + "di5fat", + "di3fe", + "di3ffr", + "di5fli", + "di5flo", + "di5fra", + "di3fw", + "di5gab", + "dig2e", + "di5gel", + "di3gen", + "dige5na", + "dige5ne", + "digl4", + "di5gof", + "di3gry", + "di3gw", + "dig2y", + "di3gym4", + "di3gys", + "dil4a", + "dil4e", + "di5lec", + "di5les", + "dill4a", + "di3lu", + "dil2w", + "di3lys", + "d3in.", + "di5niw", + "di3nod", + "d4inoe", + "di3or", + "d2ir", + "d3ir.", + "di3ra", + "d4i3r2e", + "di5rif", + "3d4iro", + "di4rw", + "di3rym", + "dis3g", + "di3so", + "dis3t", + "di3sw", + "di3sy", + "4d3it.", + "d2iw2", + "d4iw.", + "di3w4a", + "d4iwe", + "di5wen", + "d3iwyf", + "d1ï", + "d3ladd", + "dladr3", + "dl3af", + "d3lam", + "d4lau", + "dl3ed", + "d3l4ei", + "d4len.", + "dle3na", + "dle5ne", + "d4lent", + "dl3er", + "d3lew", + "d2lo", + "dl3oc", + "dl3od", + "d3lon3", + "dlon5e", + "d1lu", + "dludd3", + "d2lw", + "dl3yc", + "d3lyd.", + "d3lyn", + "dl4yr", + "d3lyw", + "d1m2", + "dm4ar", + "dm4er", + "dm4od", + "d3my", + "d1n", + "d3nap", + "dn3as", + "d3naw", + "dneb4", + "d2n3ed", + "dn3es", + "d2ni", + "d3ni.", + "dno2i", + "d3nos", + "d2n1w", + "d2ny", + "d1o", + "d3och", + "d2od.", + "d2odi", + "d4odia", + "dod3r", + "2doe", + "do4en", + "d2of", + "dof5yddio", + "d3ol.", + "d4oll", + "dol4wg", + "d3om", + "don2a", + "don2e", + "d3ont", + "dor2a", + "dor4da", + "dor5we", + "dos3", + "do2w", + "2dr.", + "3dra.", + "dr3ad.", + "dr3ada", + "dradd3", + "dr3adw", + "dr3a4f", + "dr5aid", + "dr5ain", + "dram4g", + "dr4an.", + "dra3na", + "dra3ne", + "dr4ann", + "dr3ant", + "dr5au.", + "dr3c", + "dr3ed", + "dr4edo", + "dr3en", + "d4reu", + "drew3", + "dr3f", + "drff4", + "dr4iau", + "d4r3id", + "d4rir", + "d4roe", + "dro3es", + "4drog", + "drog4e", + "dr3ol", + "dr5ol.", + "dr3on.", + "dron3a", + "dr3ont", + "d4rwg", + "dr3wn", + "dr3wyf", + "dr3yd", + "dr3yn.", + "d3ryw", + "d1s2", + "d1ug1", + "d4un.", + "dun3a", + "d4unia", + "d1ur", + "d1us", + "1dut", + "du5wch", + "d1w", + "dw2a", + "dw3adw", + "d3wae", + "dw3af", + "d3wait", + "d3wal", + "dw3an", + "dw3as", + "dwb3", + "dwbl4", + "d3wc", + "dwd2", + "dw3edi", + "d2wen", + "dwer5y", + "d4w3id", + "d4w3ir", + "d4wit", + "dw5mig", + "dw3o", + "dwr3e", + "d2wrn", + "dwy3b", + "d4wyc", + "dwyn3", + "dwy4on.", + "d2wyr", + "3dy.", + "d1yc", + "d5ych.", + "d1yd", + "d3yd.", + "4dydd", + "dyd2w", + "dydw5y", + "dyf5an", + "dyff4", + "dyf4n3", + "dyf4od", + "dyf5odd", + "dy5fodi", + "dyf2r3", + "dyfrad4", + "d3yg.", + "d3ygl", + "dy3gy", + "d2yl", + "dyl5ad", + "dy3lan", + "dyll3", + "dy3lu", + "d1ym", + "dymag5", + "dym5od", + "3dyna", + "dy3nas", + "dy3nes", + "dy3n4od", + "dy3r2a", + "dyr2e", + "dy3ri", + "dy5ryd", + "2dys.", + "4dysa", + "dys4g", + "dysg5a", + "4dyso", + "2ea", + "e1ad", + "e4adf", + "e4adl", + "eaf1", + "e3af.", + "ea4fa", + "e4afg", + "e1ai", + "e1an3", + "e4ang", + "ear1", + "earf2", + "ear5fo", + "earn4i", + "e1as", + "e1au", + "e3aw", + "eb3ad", + "eb5ar.", + "eb1e", + "ebl2", + "eb1o", + "eb3ont", + "ebra5ne", + "ebr3e", + "eb4r3i", + "ebr3o", + "eb1w", + "eb3wy", + "eb5yll", + "2ec1a", + "2ec3e", + "ech1", + "ech5od", + "echr4", + "ech3ry", + "ech5we", + "ech5wyd", + "echwy5na", + "echwy5ne", + "2eco", + "econ2", + "eco5no", + "ec5ord", + "ecr1", + "2ect", + "ec4to", + "2ecw", + "ec3y", + "2ed3a", + "ed4al", + "edd3ad", + "edd3al", + "edd3ar", + "edd3e", + "2eddf", + "eddf3a", + "eddf5i", + "eddf3o", + "eddf3w", + "eddf3y", + "4eddg", + "edd3o", + "edd3yc", + "edd3yg", + "edd5yla", + "edd5yled", + "edd5ylo", + "edd5ylw", + "edd5yn", + "ed1e", + "ed3eg", + "ed2ei", + "eden5a", + "ed3fa", + "ed3fe", + "ed3fi", + "edf4w", + "4edia", + "edi4f", + "ed3ig", + "ed3i4n", + "ed3ir", + "ed3iw", + "3edï", + "2edl1", + "ed4lo", + "4edr.", + "edr3e", + "edr3o", + "edr4yd", + "2edw", + "ed2we", + "edw3en", + "edw5lw", + "ed3wy4", + "ed3y", + "edym4", + "2e1e", + "ef5adwy.", + "ef3an", + "ef5an.", + "ef3ar3", + "ef3au", + "ef1e", + "efer2", + "eff4e", + "eff3r4", + "eff5re", + "effro4er", + "eff3y", + "ef3id", + "ef3ig", + "ef2l3", + "ef4lo", + "efn1", + "ef5nos", + "ef1o", + "ef4odo", + "ef2r", + "efr3e", + "ef4ri", + "ef4ry", + "ef4us", + "ef1w", + "efyddad5", + "efy3na", + "efy5ne", + "e2g1", + "4eg5an.", + "eg4ana", + "egar3", + "egeir4", + "eg5ell", + "4egen.", + "2egf", + "eg5ig.", + "egl3a", + "egl3e", + "egl3o", + "2ego", + "eg4on.", + "4egos", + "eg5os.", + "egr3a", + "egr3e", + "egr3i", + "egr3o", + "egr3w", + "eg3ry", + "egr3yc", + "eg2u", + "eg3yr", + "e1ho", + "e1hy", + "e2i", + "2ei1a", + "eiaf3", + "ei5afr", + "ei3bre", + "eich3", + "eidal5", + "eidd3", + "eidd5y", + "ei5der", + "eidl2", + "eid5la", + "2eidr", + "eidr5o", + "ei1e", + "2eig", + "eigl5ad", + "eig5lenn", + "eigl3w", + "ei4gr", + "3eilad", + "4eiladwy.", + "eil5ec", + "eil5eg", + "eil3es", + "ei4ll", + "ein2a", + "eind5i", + "ein4drw", + "4einf", + "eing4a", + "ein5io", + "4einl", + "4einy", + "2ei1o", + "ei3ont", + "eir3y", + "2eit", + "eith5e", + "ei1w", + "ei3y", + "2e2l", + "el1a", + "el5ain", + "elan5e", + "el4co", + "el1e", + "el3ed", + "el4eno", + "el4era", + "el4ere", + "el5far", + "el5fed", + "elgri5", + "3elh", + "el5iff", + "4elig", + "ell1", + "ell5ac", + "ellt4ir", + "ell5wy", + "ell3y", + "el2m3", + "el5myn", + "el1o", + "el2od", + "el3odd", + "4elog", + "el4oga", + "el2ri", + "el4wi", + "el3wy", + "el5ybia", + "el5ybr", + "el3yc", + "4elyd", + "el5yd.", + "el3ydd", + "elyn3", + "el3yna", + "el5yned", + "elyng4", + "el3ynn", + "el3yr", + "el3ys", + "el4ysg", + "el4yst", + "em5ain", + "em4at", + "2em3e", + "2emo", + "em4os", + "2emp", + "empr3", + "em5ryn", + "2emt", + "em5tas", + "2emy", + "en5ada", + "e4n3adu", + "e4nae", + "en3af", + "e4nag", + "en5ago", + "en3ai", + "en3an", + "e4nar3", + "enar4g", + "e4n3aw", + "en5byl", + "en3c", + "en4ct", + "en4cy", + "2end", + "endig3", + "endr4", + "en3ec", + "en3ed.", + "en5edd", + "en3el", + "en3em", + "en3en", + "en3er", + "en3est", + "en3eu", + "e4new", + "enew5y", + "en5fyd", + "eng3h", + "en4gi", + "engl3", + "en5gl4og", + "en5ise", + "en3it", + "en3o", + "en4oli", + "4enti", + "ent4ir", + "en3tr", + "ent4wr", + "4enty", + "en5tya", + "en5uch", + "enw3ad", + "en3wc", + "en3wn", + "en3wr", + "en3wyd", + "en3wyf", + "en3yc", + "en5ych.", + "en5ychase", + "en5ychia", + "en4yg", + "2eo", + "e5och.", + "e1od", + "e1oe", + "e4olae", + "e4olaid", + "e4olau", + "e1om", + "e1on", + "eor3", + "ep5ach", + "ep3l", + "er1a", + "er5ain", + "er2c", + "erc3a", + "er4ch", + "4erco", + "2er2d", + "er3de", + "erd3y", + "er1e", + "2erf", + "er5fan", + "erf5au", + "er3fed", + "er3ff", + "er4fl", + "er4fu", + "er3fyd", + "er3gl", + "er2gy", + "er3i", + "er4ic", + "er4il", + "erin3", + "er5ir.", + "er5it.", + "er2l", + "er5lys", + "er4md", + "er4mw", + "er4my", + "er3na", + "ern4i", + "er5ni5as", + "er5nyw", + "er1o", + "4erob", + "erog4", + "4erol", + "er5oli", + "er4ony", + "er2se", + "er5sei", + "2ert", + "erw3a", + "er4w3e", + "er4wl", + "er3wn", + "er4wre", + "er3wy", + "er4wyc", + "er4wydd", + "er3yc", + "er3ydd", + "er3yg", + "er3yl", + "eryl3e", + "er4yll", + "er3yn", + "eryn4a", + "eryn4e", + "es3a", + "es3ba", + "es3e", + "es5gar", + "es4ge", + "es4gn", + "es4g3w", + "es4gyn", + "es3n", + "es4ne", + "es4t3a", + "es5tam", + "est3er", + "2estf", + "2estl", + "est5ol", + "4estu", + "es5tyll.", + "esty5na", + "esty5ne", + "2esu", + "esurad4", + "es4yd.", + "es3yn3", + "e2t", + "et3ac", + "et3ad", + "e3tae", + "et5eg.", + "eter4", + "et3er.", + "eth1", + "eth3e", + "eth3i", + "eth4le", + "eth3os", + "eth4r3", + "eth3w", + "et5iro", + "et1o", + "et5re.", + "et5swy", + "et1w", + "4etwr", + "ety5wy", + "e2u", + "eu3a", + "4euau", + "2eu1b2", + "2eud2", + "eu3da", + "eu3d4e", + "eud4i", + "2eu1f", + "eu1g", + "eull4", + "eu5lys", + "2eun2", + "eu5nan", + "eu5nos", + "eu5nyddi", + "eu5sil", + "eus3t", + "eu4th", + "eu4tu", + "eu3w", + "2ew", + "ew1a", + "ew3d", + "ew1e", + "ew3g", + "ewgl4", + "ewg4w", + "ew3ir", + "ewis3", + "ewl1", + "ew3o", + "ew5par", + "e3wyd.", + "e3wyf", + "2ey", + "e1yc", + "ey4en", + "1ë", + "3fa.", + "fab3", + "fab4i", + "fach3", + "fac4w", + "fadd2", + "fad4ei", + "fad4r3", + "fael3", + "f1af", + "3fag", + "fag4d", + "fagl3", + "f1ai", + "falch4", + "f4al5on", + "f4alu", + "f3am", + "f4an.", + "fan3d", + "fan5edd", + "fan4es", + "f3anf", + "fan3o", + "fant2", + "3faoe", + "far3a", + "far4ch3", + "4far2e", + "f3arf", + "far4fa", + "far4l", + "3farn", + "farn3a", + "f3arp", + "f3art", + "f4arwe", + "f3arwy", + "f1as", + "fas4iw", + "f3at", + "fat4o", + "fawd4a", + "3fawr", + "f1b2", + "f1d2", + "fdd2", + "f2dw", + "fd5wr.", + "f4eb.", + "febr3", + "f1ec", + "fed4n", + "f2edr", + "3feia", + "3feie", + "fe4io", + "feiriad4u", + "feith3", + "fe4iw", + "f4el.", + "f3ell", + "fel5yno", + "f1em", + "fe3na", + "feng3", + "fent4", + "fentr5", + "fenw3", + "fen3y", + "2fera", + "ferch4er", + "ferdd4", + "2f2ere", + "2f2eri", + "fer4in", + "2f2ero", + "f2erw", + "ferw5yc", + "f4er3y", + "f1es", + "feth3", + "f4eth.", + "f4etha", + "feu1", + "3fey", + "f2f", + "ff3ad", + "ff3ant", + "ff4at", + "ff3au", + "ff3ed.", + "ff5edig", + "ff5eio", + "ff5el.", + "ffen5ed", + "ff3ent", + "ff3er.", + "3ffert", + "ff3esu", + "ffet4", + "2ffi", + "ffidl5", + "ff2l", + "ff4la", + "ffl4ac", + "ff4lo", + "ff5log", + "ff5los", + "ff3n", + "ff3od", + "ffod5e", + "ff4odi", + "3ffon.", + "ffo3n4a", + "ffo3n4e", + "ff3ont", + "ff2or", + "5ffor.", + "ff4os", + "ff2ra", + "ff2ri", + "ff4rod", + "ff2rw", + "4ffry", + "ffr3yn", + "ff2t", + "5ffurf3", + "ff5wyf", + "ff5yl.", + "f1g", + "fg4wr", + "f1h2", + "fha5ol", + "f1i", + "f4iadae", + "2fic", + "fic4e", + "f2id", + "f3id.", + "fig4en.", + "fil3y", + "fin3", + "f4in.", + "f3ind", + "fin4t", + "fisg4", + "f2ï", + "fl2", + "fl3ad", + "flaf4", + "fl3ai", + "flamad4", + "fla3na", + "flan5ed", + "f2las", + "flaw4", + "fl3ec", + "fl5eis", + "fl3em", + "fle3na", + "fle5ne", + "fl4eo", + "fl3id", + "fl4ig", + "flin3e", + "fl3ir", + "fl4iw", + "fl3om", + "f3lon", + "fl5rwy", + "f4l3wr", + "f1ly", + "f5lychw", + "f4l4yd", + "fl4yf", + "flyn3a", + "flyn3e", + "f2n", + "fn3a", + "fn3d", + "f4n3ec", + "f4n3ed", + "f4n3em", + "f4nen", + "f3nif", + "fn3ig", + "f3nith", + "fn5lu.", + "f4n3oc", + "f4n3om", + "f4n3on", + "fn3w", + "fn2y", + "f4n3yc", + "fn3yn", + "f1oc", + "fodd3", + "fod4enn", + "f4odf", + "fodr4", + "fod3rw", + "f4odu", + "f3oedd", + "f1og", + "fol3", + "fol4enn", + "f1om", + "fon4d", + "5fonog", + "f4ony", + "f4or.", + "for4c", + "f4ord", + "for3f", + "f3os2", + "fos4i", + "fos3o", + "f3ot", + "f4otr", + "fr2a", + "f2raf", + "f2rai", + "fra3na", + "fra5ned", + "fras4au", + "f4r3au", + "fr3d", + "frdd2", + "fre2", + "f2rec", + "f4red.", + "f4reg", + "freg3y", + "f2rem", + "f4ren", + "f3reo", + "f2rer", + "fr3f", + "f2rh", + "f2rid", + "fr3id.", + "f2rir", + "f4rit", + "fr2o", + "f3roa", + "f5roadw", + "f2roc", + "frod4iae", + "fro2e", + "fro4en", + "fro5esi", + "f3ro2i", + "f2rom", + "f2ron", + "f3roo", + "fr4ot", + "f3row", + "fro4wc", + "fro4wn", + "f1ru", + "fr2w", + "f2rwc", + "f2ry", + "f3ryn", + "f1ta", + "f3ter", + "fudd4l", + "fud3w", + "fu2l", + "f1un3", + "f4urf", + "f3wa", + "f1wc", + "fwd3", + "f1we", + "4fwl.", + "f1wn2", + "f3wr.", + "fwr5ne", + "f4wy.", + "f3wyd", + "fwyllt4", + "fwyn3", + "f4wyn.", + "f4wys", + "f1yc", + "fyd2", + "fyddad4", + "fydd4l", + "fydd5y", + "fyd4l3", + "f4ydr", + "fyd3y", + "3fyf", + "fyf4y", + "f1yl", + "f4yl.", + "f2yn", + "4fyn.", + "f3yng", + "fyn3o", + "fyn5od", + "f2yr", + "fy3r2a", + "f3yrd", + "fyr2e", + "fyrf4y", + "fyr4y", + "fys4t", + "fystyr4o", + "fys4w", + "gabl4en", + "g5ach.", + "gad1", + "gad3a", + "5gadar", + "g4ad2u", + "5gaduri", + "g4adwr", + "g1ae", + "gae3a", + "g3af.", + "gaf3a", + "gaf4r3", + "g1ai", + "1gal2", + "gal5ara", + "gal5are", + "gal5ari", + "gal5aro", + "gal5arwy", + "galed5", + "4gall", + "gam4enn", + "gamn4", + "gan3a", + "gan4d", + "ga4ne", + "ganghe5na", + "g3ant", + "4ganwr", + "g3ao", + "gar3eg", + "gar4enn", + "g3arf", + "gar4ge", + "3gart", + "4garthia", + "gar4we", + "g1as", + "5gased", + "gasg4e", + "ga4t3r", + "2g1au", + "4gawe", + "2g1b", + "gb4er", + "g1c", + "2g1d2", + "gdd2", + "gddig5", + "gdo3ra", + "gdo5r4e", + "g2dw", + "gd5wr.", + "g1ec", + "g1ed", + "gedd3", + "g2ede", + "g4edi.", + "g4edid", + "g4edir", + "g4edit", + "g2edo", + "g4edu", + "g4edyc", + "geg3", + "g2egy", + "g2ei.", + "g3eid", + "g4el.", + "gell5a", + "gel3o", + "g1em", + "gen4d", + "g5enni.", + "gen2r", + "g3ent", + "g4enu", + "g3er.", + "3g4erd", + "ger4f", + "ger3y", + "g1es", + "geu4l", + "g1f2", + "gfa3na", + "gfa5ne", + "gfe5ne", + "gfyn3", + "g3ga", + "gh2", + "ghae4", + "ghan3a", + "ghanghe5na", + "ghar4en", + "ghasg4e", + "ghen5i", + "gher4f", + "gh4le", + "ghleid4", + "gh4ne", + "ghob3", + "ghobl4", + "ghof5r", + "gh4og", + "ghon4y", + "ghr2", + "ghra4", + "ghred4adu", + "ghred4inia", + "ghw4f", + "ghyd3", + "ghym4an", + "ghysg3", + "g1i", + "gib3", + "g4ida", + "gi5en.", + "g2ig1", + "3gil", + "1gip", + "g3iw", + "g2l", + "gl3ac", + "gl3adw", + "glaf2", + "glan5e", + "gl3ant", + "glas3", + "g5las.", + "g3lat", + "gl5au.", + "gl2e", + "g3le.", + "gl3ech", + "gl3edi", + "g5leisiaso", + "g3leo", + "gl3es", + "gl3eu", + "gl3f", + "gl3ia", + "gl3id", + "g3liw", + "gl4odi", + "gl4ody", + "glo4e", + "gl4of", + "5gl4oga", + "glo2i", + "g4lu.", + "g4lwc", + "g4l4wm", + "g4l3wn", + "g4lwyf", + "gl3yc", + "g3lyd.", + "gl4ym", + "gl4ys", + "gl4yw", + "g2n", + "gn2i", + "gn3io", + "g4niw", + "g3nï1", + "gno3e", + "gn2of", + "gn2u", + "gn1w", + "gn4yw", + "gobl4", + "g1oc", + "goddefad4", + "go5ddr", + "g2od2y", + "god5yn", + "g2oe", + "go5fau", + "go3fer", + "goff4au", + "gof4un", + "gog2", + "go3gan", + "gog3e", + "gog4l4", + "go5gyn", + "g3ol.", + "goleu5", + "3g4oll3", + "go4lw", + "gol5yga", + "gol5yge", + "gol5ygwy", + "g3om.", + "go3me", + "gon5ad", + "g4one", + "g3ont", + "gon4yn", + "g2or", + "gor5chy", + "gorddad4", + "gord5i", + "g4orf", + "gorn4an", + "g4orol", + "gor3t", + "1gos", + "gosb3a", + "g3ota", + "g3ote", + "g3oti", + "g3oto", + "g3otw", + "g2r", + "gra4m", + "gran3a", + "gr4el", + "gr3f", + "gr2i", + "g4rid4", + "gr3ie", + "gring4", + "g4r3ir", + "g4rit.", + "gr2o", + "gr3od", + "gr4oe", + "gr5oed", + "grof4", + "grog3", + "gron4a", + "gro5nas", + "gron4ed", + "gron4es", + "gr4ono", + "grwn5a", + "gr3wo", + "gr4wt", + "gr2wy", + "g5rwydd", + "g4ryc", + "gryg3", + "grygl4", + "gr4ym", + "gr4yn", + "g1s2", + "gsym4", + "gub3", + "gudr4", + "gu5edd", + "gu4to", + "gw2", + "gwa5r4as", + "gwar4es", + "gw4as", + "g3wc", + "gweithiad4", + "gwelad4", + "gwel5e", + "gwen3a", + "gwerthad4", + "gwm3", + "gwn4a", + "gw4n4e", + "gwobr3", + "g3wr.", + "g4wrd", + "g5wth.", + "gwy3by", + "g3wyd.", + "gwydr5", + "g3wyf", + "gwy4r", + "gwyw3", + "3gyb", + "gyb3y", + "g1yc", + "gych3", + "g4ycho", + "gydd4f5", + "g2ydi", + "gydl4", + "gyd3r4", + "g4ydu", + "g4ydy", + "3gyf", + "gyf5an", + "gy4fe", + "gy4fl", + "gy4fr", + "g3yl3a", + "3gylc", + "g3yle", + "g4ylio", + "g3ylo", + "g3ylw", + "g2ym", + "gym4an", + "gym3u", + "gyng3", + "g2yno", + "g2yr", + "g4yro", + "g2ys", + "gy4se", + "gysg3", + "gys5on", + "gys3t", + "gys5to", + "3gyw", + "gy3wa", + "gy3wed", + "gy3wi", + "gy3wy", + "hab3yd", + "hadd5as", + "hadd3o", + "had4eg", + "had4eny", + "h4adf", + "had4fer", + "hadl4a", + "had3n", + "had3r4", + "h5aeol", + "ha4f3a", + "h4afl", + "haf5ol", + "h4afs", + "hag3w", + "h1ai", + "h4aif", + "hal3e", + "hall3o", + "hal3o", + "ham4enn", + "hamn4", + "ham3s", + "han3ad", + "h4anau", + "hanc4", + "han3d", + "ha4ne", + "han5edd", + "han4er", + "h4ange", + "hanghen4r", + "han3ig", + "han3l", + "han2o", + "han4oda", + "han5olai", + "han5olas", + "han5ole", + "han5olwy", + "hanrhyd4", + "hansodd4ei", + "har5adwy.", + "hara3t", + "harato4en", + "har4bwr", + "har4cha", + "har4fo", + "h1as", + "h3asf", + "hast4a", + "ha4tr", + "hatr3e", + "h1au", + "hawe5nas", + "hawe5ne", + "hawl3", + "h2â", + "h1b2", + "hbl4a", + "h1d2", + "hddad3", + "h3di", + "hd4ir", + "hdo3na", + "hdo3ne", + "hd4ra", + "hdr3e", + "hdr5oc", + "hdr5od", + "hdro5ed", + "hdr5wyd", + "h4dwr", + "h2eb", + "h3eb.", + "heb3ra", + "hedd3", + "hedd4fo", + "h2ede", + "hed5fo", + "hed5fw", + "h4edid", + "h4edir", + "h4edit", + "h2edo", + "hedr5wy", + "h4edu", + "h4edy", + "h2ef", + "h2eg", + "hegn3", + "h4egy", + "he4ho", + "h2ei2", + "h4e3ia", + "h4eil", + "heimlad4w", + "h4el.", + "4helad", + "4helaf", + "4helai", + "4helan", + "4helas", + "h3eld", + "2hele", + "4heli", + "2hel3o", + "hels4", + "2helw", + "4hely", + "hel3yd", + "h1em", + "hen5cy", + "hen4id", + "hens4", + "hen3wy", + "henwy5na", + "henwy5ne", + "heny5na", + "he3ol", + "her3b", + "h2ero", + "h3esi", + "h2et", + "h3ete", + "h3eto", + "5heuae", + "heu4aetha", + "heu3d", + "heu2l", + "he4wi", + "hewy5nas", + "h1f2", + "hfil4", + "hfonhedd5", + "hf4os", + "hf4wy", + "h1g2", + "hgan3", + "hgap2", + "hgi5ai", + "h1i2", + "hiach4", + "hiac5has", + "hiac5he", + "hiac5hw", + "hi4a4n", + "hib3", + "hidl3", + "h2ig1", + "hig3y", + "hin4t", + "hir3", + "hi4wa", + "h2ï1", + "hï4en", + "hl2", + "hl4ad", + "hl5adw", + "hl4am", + "hla3na", + "h5las.", + "hl3asi", + "hl3aso", + "hl4aw", + "hl5ech.", + "hl5edig", + "hledr5", + "h3lef", + "4hleit", + "hl4en", + "hl4et", + "hl3id", + "hlon3a", + "hlon5e", + "h4lus", + "h4lwm", + "h5lyd.", + "hl3ydd", + "hlym4u", + "h4lyn", + "hl3yn.", + "hlywad4", + "h1m2", + "h3myg", + "hmygad4", + "h3myn.", + "hmy3na", + "hmy5ne", + "h5myni", + "hn2", + "h3nad", + "h2neg", + "h4new", + "hn4ie", + "h1nï1", + "hnod3", + "h2nol", + "hn5ole", + "hn4yw", + "ho4ad.", + "ho4bl", + "hod4l", + "ho4dy", + "ho4en", + "hoffad4wy", + "h3og.", + "h3o4ga", + "hog5lu", + "ho2h", + "h2ol", + "h3ol.", + "hol5ud", + "h1om", + "h2or", + "h3or.", + "hor4c", + "horn4an", + "h4os.", + "hosb3", + "hos3o", + "h2ow", + "hp2", + "h2r", + "hra3dd", + "hr3adw", + "hr3af.", + "hra3g", + "hr4aid.", + "hr3ant", + "h5raul", + "hr5edig", + "hr3em.", + "hr3f", + "hr2i", + "hr3ia", + "hr3id.", + "hrid4a", + "hr3ie", + "hring4", + "hr3ir", + "hrisiad4", + "hr3it", + "hr3iwy", + "hr2o", + "hro4ad4", + "hr5och.", + "hr3odd", + "hrog3", + "hr3om.", + "hron4a", + "hro5nas", + "hron4e", + "hrong5", + "hr3ont", + "hr4ud", + "hr3wn.", + "hr5wyd.", + "h5rwydd.", + "hr3wyf", + "h4ryc", + "hryg3", + "hrygl4", + "hry3l", + "hr4ym", + "hrynho4e", + "hrynho4i", + "hrynho4wn", + "h4rys", + "h1s2", + "hsef4", + "h2t", + "h2u", + "hub5on", + "hudd3", + "hudd5y", + "hudr4", + "hud3w", + "hud5yl", + "h4uge", + "hug4l", + "hun3ad", + "h4unn", + "h3ur.", + "h3us.", + "h4use", + "h4ust", + "h4usw", + "hw2a", + "hw4as", + "hwbl5e", + "hwd3", + "hw2e", + "hwedl5", + "h3wei", + "h4wel.", + "hwen3", + "hwen4y", + "hwe5nychaso", + "hwe5nyched", + "hwerw5", + "hwe5ug", + "hw2i", + "hwiw5g", + "hwm3", + "hwn4e", + "h3wr.", + "h2wy", + "h4wy.", + "h4wya", + "hwybr4", + "hw4yc", + "hwyll5t", + "hw4ym", + "h4wyo", + "h5wyol", + "hwy4r", + "hyb4l", + "hyb4wyl", + "hyb3y", + "hydd4id", + "hyd4fo", + "h2ydi", + "hydl4", + "hyd4naw", + "hy4f3a", + "hyfad4", + "hyf4ae", + "hyfar5f", + "hyfer3", + "hyffel5", + "hyffred4in.", + "hyf4iai", + "hy4ga", + "hygl4o", + "hygl4w", + "hygr4", + "hyll3a", + "hym4adw", + "hym4ant", + "hym5el", + "hym4en.", + "hymerad4", + "hym3o", + "hymp4", + "hym3u", + "hym5yr", + "hym5ys", + "hyn3a", + "hyn3e", + "hynef3", + "hyn3yc", + "hyr3a", + "hyrdd5", + "hyrf3", + "hyr5n4o", + "hyr2w", + "hys4b", + "hy4se", + "hysg5od", + "hys4ig", + "hys4n", + "hys5oni", + "hyt4bw", + "hyth5ru", + "hyt2u", + "hytun4deba", + "hy3was", + "hy3we", + "hy5wed", + "hy3wi", + "hy3wyd", + "1ia", + "iab4a", + "iach2", + "iad3", + "i4ada", + "5iadaeth.", + "iad4lo", + "5iaduro", + "i3ael", + "3iaet", + "4iafo", + "iag3w", + "2ial1", + "ial4ae", + "2i3am2", + "iam3h", + "ia3na", + "4iand", + "ian5da", + "ia3n2e", + "4i3ang", + "iang4e", + "ianghen5", + "ian3o", + "ian3w", + "2iar", + "i3ard", + "i3arf", + "iar4l", + "iarll5", + "iar4s", + "i3asg", + "iat5er", + "i2au", + "iawnad4", + "2ib", + "ib3ed", + "ib3el", + "iben5y", + "ib3es", + "ibetr4", + "ib3i", + "ib4il", + "ibl3e", + "ibl3o", + "ibl3w", + "ib5og.", + "ib3on", + "ibr3a", + "ibr3w", + "iby4nad4", + "2ic", + "ic3en", + "ichl4", + "ic5ied", + "icon2", + "ic5oni", + "ic5rwy", + "ics4i", + "ic5siw", + "ic3t2", + "2ida", + "idal4", + "2idd", + "i4ddai", + "idd4au", + "i2dde", + "idd3f4", + "idd3i", + "i4ddir", + "i4ddod", + "idd3r", + "2ide", + "idel4", + "ider4", + "2idf", + "idf4w", + "2id3i", + "idi4a", + "id4lo", + "idl3w", + "2idm", + "2i2d2o", + "id3og", + "i3dola", + "i3dole", + "i3dolo", + "i5dolwy", + "ido3na", + "ido5ne", + "i3dor", + "2idr", + "idr4a", + "idr4o", + "id3rwy", + "2idu", + "2idw", + "idw3a", + "idwad4w", + "id4wr", + "2idy", + "id3yl", + "id2ym", + "1ie", + "4iedd", + "4iedi.", + "iedif5", + "ied4yl", + "2i3ef", + "i3eg", + "iegwydd4", + "2iei", + "i3eid", + "ieis4", + "4ien.", + "ien4a", + "ien4c", + "4iend", + "i3ene", + "2ienn", + "ienw4", + "i3eny", + "i3esg", + "2if", + "if4add", + "if4ae", + "if4al", + "ifan3a", + "ifan5e", + "if4ao", + "if4ar", + "if5ard", + "ifar3e", + "if4at", + "if5ath", + "if4aw", + "if5bin", + "i4fec", + "i4fed.", + "i4fedi", + "i5feio", + "i5feiw", + "i4fem", + "ife4n", + "i4fent", + "i4fer.", + "i3fery", + "i4fesi", + "i3fet", + "iffl3", + "iff5or", + "i3ffu2", + "iffy5na", + "iffy5ne", + "if3i", + "i3flas", + "if4on.", + "i3fre", + "i3fry", + "i1fu", + "i4fwc", + "i4fwn", + "i4fwyd", + "i4fwyf", + "i1fy", + "i4fyc", + "i4f4yl", + "ify5re", + "ig3ad", + "ig3af", + "ig4ain", + "2igan", + "4i3gar", + "ig1e", + "ig3ed", + "ig3es", + "ig5hal4", + "2ig3i", + "ig5lan.", + "ig5lann", + "ig5law", + "ig5let", + "ig4l3o", + "ig4ly", + "ig5lyd", + "igl3yn", + "ign1", + "2igo", + "ig3odd", + "ig4ode", + "ig3oe", + "ig3om", + "2igr", + "i3gre", + "igref4", + "i3gro", + "ig3rw", + "igryb4", + "2igw", + "ig5wai", + "i4gwc", + "i4g3wn", + "ig4wrn", + "2ig1y", + "igyff4", + "ig5yn.", + "ig4yna", + "ig4yr", + "igys4", + "ig5yso", + "igysyllt4", + "igyt4", + "igy4w", + "2i1h2", + "i2han", + "ihat4", + "ihe4w", + "2i1i", + "i3iw", + "2i2l", + "il3a", + "5ilau.", + "ilc2", + "ild5ir", + "il3ed", + "il5en.", + "ilew4", + "il1f", + "ilf4y", + "il3i", + "il4ip", + "ill3", + "ill5iw", + "illt4", + "il3oc", + "il3od", + "il5ofy", + "il3on", + "il2s3", + "il4sy", + "il4ti", + "iludd4", + "il3un", + "il1w", + "il5wai", + "ilwen3", + "il4ws", + "il3yd", + "il3yg4", + "il3yn.", + "ily3na", + "ily5ne", + "i4lysia", + "il5ywa", + "2im2", + "im4bi", + "im3i", + "iml3", + "im4le", + "2in", + "in1a", + "in3ac", + "in3ad", + "in3af", + "in3ai", + "in3an", + "in2be", + "inc4e", + "in4ci", + "inc2o", + "in4cy", + "in4dai", + "in1e", + "3in4eb", + "in3f", + "ing5en", + "in4g3o", + "ing3w", + "ing5yl", + "in5gyn", + "in3ia", + "in3id", + "in5iew", + "in3ig", + "iniw4", + "in4iwe", + "in1o", + "in4ode", + "in4odi", + "in4ody", + "in3oed", + "in3on", + "in3os", + "int4a", + "in4te", + "in2t3r", + "in4ty", + "in3w2", + "in5wyc", + "in1y", + "1io", + "3io.", + "2iod.", + "i3odde", + "iod5le", + "iod5wy", + "2ioe", + "2i1of", + "iog3", + "4iolc", + "iom3", + "i2on", + "ion3a", + "ior4c", + "ior4f", + "i4orw", + "2ios", + "2iot", + "2ip", + "ip5ell", + "ip4og", + "ir1", + "ir2a", + "ir5agl", + "ir3an", + "ir4áf", + "ir3b", + "irch3", + "irdy5na", + "irdy5ne", + "2ir3f", + "2iri", + "i4ria", + "ir3io", + "i3ris", + "ir4li", + "ir4ll", + "ir3na", + "irnad4wy.", + "ir3no", + "irn4y", + "2ir3o", + "ir3w", + "irw2i", + "ir4wo", + "ir2y", + "ir3yn", + "i3ryw", + "2is", + "isaf4", + "is3b", + "is5eld", + "is2er", + "is5er.", + "is4gam", + "is4ge", + "isg3o", + "is3gr", + "isg5wyd", + "is3gy", + "is4la", + "is5myn", + "is2o", + "is5odd", + "is3ol", + "is3on", + "ist2", + "is4ti", + "is5tol", + "is2w", + "is3wn", + "is5wyd.", + "is4yc", + "is4yr", + "1it.", + "3it2a", + "2ith1", + "ith3a", + "ith4au", + "ith3eg", + "ith3i", + "ith5or", + "ith3w", + "ith3y", + "2iw.", + "iw3adw", + "iw3af", + "i4wair", + "i3wal", + "iw3an", + "iw3as", + "3iwc", + "iw4ch", + "2iw1d2", + "iwd4i", + "iw5edd.", + "iw3edi", + "iw3eid", + "iwg4w", + "2iw1i", + "iw1l2", + "iwl4e", + "iwl4i", + "iwl4o", + "iwl4w", + "iwm4e", + "iwmp4", + "3iwn", + "iwn4i", + "4iwnl", + "iw3o", + "i3wre", + "i3wrt", + "iw5ter", + "1iwy", + "iw4yd", + "iw4yf", + "iwyn3", + "4iwyr", + "1iy", + "2iyd", + "2i1ym", + "iyn3", + "2i1ys", + "ï3ae", + "ï2i", + "l1ac", + "lach3", + "2lad.", + "l4ad4d3", + "lad2m", + "lad2o", + "lad3r4w", + "4laen", + "l3af.", + "5lafar", + "l1ai", + "l4ain", + "l4air", + "l4ait", + "lam3", + "l4an.", + "lan5ced", + "lan5de", + "landr3", + "l2ane", + "lan4es", + "l4ann", + "lan3o", + "4lant3", + "lar3a", + "lar4ia", + "lar3n", + "l1as", + "l4as.", + "lasg4", + "last2", + "las5ta", + "4lat.", + "lathr3", + "lats5i", + "2l3au", + "law5dde", + "lawen3", + "law3l", + "law3no", + "lawr2", + "law5ro", + "law3y", + "2l1b", + "lb4an", + "l2c", + "lch1", + "lch5io", + "lch5iw", + "lch3r", + "lch5wyd.", + "l3co", + "lc3yn.", + "2l1d2", + "ldd2", + "ld3i", + "ld4ir", + "ldro3", + "ldy5na", + "ldy5ne", + "1le.", + "le3a", + "le4ad.", + "le4ada", + "lebr3", + "lech3", + "l3ed.", + "leddf5", + "l4eddog", + "led5fy", + "led3l4", + "l4edr", + "lef1", + "lef3e", + "lef3y", + "l2ega", + "leg5ar.", + "l2egw", + "leg5yr", + "le5iau", + "le3id.", + "lei3l4", + "le3ir.", + "le3it.", + "le4iw", + "l3el", + "2l1em", + "l3em.", + "l2ema", + "len2d", + "len5di", + "len5ig", + "l3ent", + "len3y", + "1leo", + "le3oc", + "le4on.", + "l3er.", + "l4erau", + "ler5ig", + "lesg5e", + "l4esn", + "let4em", + "le4tr", + "l4euad", + "l4euh", + "4leuon", + "l5euon.", + "le3wch", + "le3wn", + "lew3yn", + "lf2", + "lf5air", + "l3fan", + "lfe3ne", + "lf4fa", + "lff4y", + "l1fi", + "lf5icy", + "l1fo", + "lf5oda", + "l1fr", + "lf4wy", + "lf3yd", + "lfy5re", + "l1g2", + "lg4an", + "lgo4f3", + "2l1h2", + "l3ha", + "l3he", + "l3hi", + "l3ho", + "l3hw", + "l1i2", + "liach3", + "4lian", + "libr3", + "2lid", + "li3de", + "1lif1", + "li4fr", + "4lio.", + "li5oed", + "li5pal", + "2lir", + "l3ir.", + "lis4g3", + "l3it.", + "lith4r3", + "l4iw.", + "l2l", + "2ll.", + "ll4ada", + "lladr3", + "ll5adwy.", + "ll3ant", + "ll5arn", + "lledr4e", + "ll4edy", + "lle3o", + "llest4", + "lleu4a", + "ll1f", + "llf4y", + "llin3e", + "ll3odd", + "llosgad4", + "ll5tyr", + "lludd3", + "llw2", + "ll3wa", + "llw4e", + "5llyd.", + "llygr3", + "ll4ynn", + "ll4yr2", + "ll5yro", + "lm2", + "l1ma", + "l4mad", + "l4maf", + "lm3ai", + "l2m3as", + "l4mau", + "lm3o", + "lm3w", + "lm4yn", + "l1n", + "2lo.", + "lob5yn", + "2loc", + "loch3", + "2lod", + "lodd3", + "lo3ed.", + "l1og3", + "logl2", + "l1ol", + "lol2w", + "lolyg4", + "2l1om", + "l3om.", + "lon2a", + "lon3d", + "lon4es", + "4l3ont", + "l3or.", + "l4orau", + "l4org", + "l4ory", + "2lot", + "lo5ynn", + "lp3a", + "l3pu", + "l1r2", + "l3rh", + "ls4ig", + "l4syn", + "l2t", + "lt3ad", + "lt5eg.", + "lt3em", + "l5tera", + "l5tero", + "l4tia", + "lt4ig", + "l4tio", + "lt1o", + "l3tra", + "ltr4e", + "l3tu", + "l4tu.", + "lt1w", + "2lu.", + "l2ud", + "ludd5y", + "lud3w", + "lu4edd", + "l2un3", + "l4un.", + "lur5ig", + "lust5l", + "lw1a", + "lwadd4", + "lw4ae", + "l1wc", + "l3wch", + "lw3ed", + "lw3er", + "lw3es", + "lw4fa", + "lwfr5e", + "l4wgr", + "lw1i", + "lw4ig", + "l1wn", + "l3wn.", + "lw3o", + "l1wr1", + "4lwre", + "l4wyc", + "l4wydi", + "lwyd4io", + "l4wyn3", + "l4wyr", + "3l4wyt", + "lyb3", + "2lyc", + "l3ych.", + "lyd2", + "l4yd.", + "2lydd", + "lydn3", + "lydr3", + "lyf3a", + "lyf5an5", + "lyf4n3", + "lyf4r3", + "5lyfr.", + "l2yg", + "4lygedd", + "4lygia", + "lym3", + "l4ynau", + "lyng3a", + "l4yn3y", + "lyr3a", + "4lysau", + "4lysen.", + "lys3ga", + "lys3ge", + "l4ysl", + "4lysn", + "4lysr", + "4lysyn", + "lyw1", + "m1", + "mab3", + "mab4i", + "m3ac", + "mac4w", + "m4adad", + "m4adaf", + "m4adai", + "m4adan", + "m4adas", + "m2adi", + "mad4r3", + "m4adwc", + "m4adwn", + "m4ady", + "mael3", + "maf4l3", + "m3ag", + "2mai", + "m3am", + "man3a", + "man3e", + "m4anf", + "man2o", + "m3ar", + "m4ar.", + "mar4ch3", + "m4are", + "m4ari", + "mar4l", + "marn3", + "m4aru", + "mar4wy", + "masg2", + "mas3ge", + "m3at", + "mat5eg", + "mat4o", + "m3aw", + "mawd4a", + "mbarato5", + "m3bi", + "m3by", + "mcan3", + "md2", + "m4dai", + "mdan4a", + "mda5nas", + "mda5n4e", + "mdd2", + "mddadl4", + "mddef3", + "mddi4d", + "m5der.", + "m4dera", + "mdog4aetho", + "mdo3na", + "mdo5ne", + "mdro3e", + "mdwy4", + "mdyng5", + "mdy5re", + "4meda", + "4meddia", + "4meddwr", + "4medi", + "4medï", + "medr3", + "meg3n4", + "megni3", + "meith3", + "me4iw", + "mel5yno", + "mens4", + "ment4e", + "mentr5", + "5menty", + "men5yd", + "m2er", + "m3er.", + "m3erad", + "m4eradwy.", + "m4eraf", + "m4erai", + "m4eran", + "m4eras", + "merch4er", + "merdd4", + "m4ere", + "m5eriada", + "m4eroc", + "m4erom", + "m4eron", + "m4erw", + "m4ery", + "4mesia", + "4mesol", + "mest4", + "4meswr", + "4mesy", + "meu1", + "mfalchi5a", + "mfalchi5e", + "mffl4", + "mfydd4", + "mg2", + "mgyff4", + "mgyffr5o", + "mgym4", + "mgym5eria", + "mgys2", + "mh2", + "mhar5ad", + "mheir4a", + "mhe3na", + "mhe5ned", + "mhe5nes", + "mhen3t4", + "mhen5w", + "mhet2", + "mhe3ta", + "m2heu", + "mhob4l", + "mhr4a", + "mhryf5", + "mhyd4", + "mhy3f", + "2mi", + "m3ias", + "m3id3", + "m3ie", + "mi5gei", + "min1", + "min4t", + "m3io", + "m3ir", + "mis2", + "misg4", + "mis4i", + "m3it", + "m3iw", + "m3iy", + "ml2", + "m2las", + "ml5blw", + "m3led", + "mlew3", + "m3lin", + "m5liwiais", + "m5liwiase", + "m5liwiwy", + "mlo3na", + "mlon4ed", + "mlyn3", + "m2n", + "m3na", + "mn4as", + "m3ne", + "m4ned", + "mn5edi", + "m5niau", + "m3nï3", + "m2od", + "m3odd", + "mod4ig", + "mod3r", + "mof5yd", + "m3og", + "m4on.", + "mon3a", + "mon4d", + "m4onï", + "mor2", + "mor3c", + "mordd4", + "morddiw5", + "mor4o", + "m3os2", + "mos4i", + "mo5siy", + "m2p", + "mpr3a", + "mpr3o", + "mpr3w", + "mp5wai", + "mr2", + "m2r3ai", + "mra3na", + "m2r4ed", + "mreg3y", + "m4ria", + "m4rie", + "m4rig", + "mro4ad", + "mrod4iae", + "mrod4ir", + "m2roe", + "m2roi", + "m2roo", + "m2row", + "m4roy", + "m4ryn", + "mryn4d", + "mrys4o", + "ms2", + "m3sa", + "m2se", + "mse3na", + "mse5ne", + "m2so", + "mstr4", + "m2t", + "mt2a", + "mtas4", + "m3th", + "m2u", + "mu4an", + "mudd4l", + "mud3w", + "mu2l3", + "mun3", + "m3us", + "m3w2a", + "mw3as", + "m3wch", + "m3wi", + "mwr2", + "mwr3i", + "m3wt", + "mwy3b", + "mwyllt4", + "mwyn3", + "m5wyse", + "mwyth4adw", + "mwyth4af", + "mwyth4asan", + "mwyth4aso", + "mwyth4asw", + "mwyth4ec", + "mwyth4em", + "mwyth4er", + "mwyth4i", + "mwyth4oc", + "mwyth4w", + "mwyth4y", + "2m2y", + "m3yc", + "mych3", + "m3yd", + "mydd5i", + "mydr3", + "myd3y", + "myf4y", + "m4yl.", + "myl3a", + "m4yln", + "m3ym", + "myn4ai.", + "m3yr", + "myr4as", + "myr5asa", + "myr4edi", + "myrf4", + "m3ys", + "m4ysg.", + "mys4w", + "myw3y", + "3na3b2", + "na4bl", + "na4bo", + "na4ch3", + "n2ad", + "n3adl", + "nad4n", + "nadna4", + "n4ado", + "nad3r", + "nad3u", + "nad3w", + "n3adwr", + "n1ae", + "nae5ara", + "nae5arw", + "nael4", + "n2afa", + "n5afau", + "n2af3o", + "n4afy", + "n4aic", + "n4aig", + "n4ain", + "n4air", + "n3al", + "nan3a", + "nan3e", + "nan3f", + "nap4om", + "n3ar", + "narllenad4", + "n3asg", + "n4asol", + "n3as4t", + "1nat", + "nau3", + "n1b2", + "nbyd5r", + "n2c", + "nc3an", + "nc5des", + "nc4ed", + "nc2ei", + "nc5en.", + "n3ch", + "nchwiliad4", + "n4cia", + "n4cid", + "n4cie", + "n4cio", + "n5ciod.", + "n4cir", + "n4cit", + "n4ciw", + "n4ciy", + "n3cl", + "ncr1", + "nct1", + "n5cyd.", + "n5cyny", + "n1d2", + "nd3as", + "nd3aw", + "ndd2", + "nd4da", + "nden2", + "n4d3ia", + "nd3ie", + "n3di3f", + "n3di4g", + "n3dil", + "nd3io", + "nd4ir", + "n3dis", + "n3dit", + "nd3iw", + "nd3iy", + "n3dod", + "nd3oe", + "ndo3ra", + "ndo5r4e", + "n2dwr", + "ndy5na", + "ndy5ne", + "n4dys", + "neallad4", + "n2eb1", + "neb3o", + "n5ebry", + "neddf5", + "n2ede", + "n4edid", + "n5ediga", + "n4edir", + "n4edit", + "n2edo", + "n4edu", + "n3edy", + "n1ef", + "nefn3", + "n4efy", + "n1eg", + "neg5in", + "ne3h", + "n3eidd", + "n2eis", + "n1el", + "3nel.", + "nel5yn", + "3nenty", + "ner3a", + "nerch5", + "n4erg", + "n4erl", + "3nert", + "3nese", + "4nesia", + "n4esio", + "nes4m", + "3neso", + "n2est", + "3nesw", + "n2esy", + "neth5o", + "n2eu", + "neu3d", + "n4euf", + "neul4", + "3new", + "new5yll.", + "newyn3", + "n1f2", + "nfadd4", + "nf4am", + "nfan3", + "nfan5e", + "nfan4t", + "nfa5ol", + "nf4at", + "nfel2", + "nff2", + "nf4fa", + "nff4o", + "nffyn4", + "nffynad4", + "nf4id", + "n4fil", + "nfod4l", + "n2fon", + "nfon5a", + "n5fonedi", + "nf4ri", + "nf4wy", + "n2fy", + "n5fyd.", + "nfyd3a", + "ng2ad", + "ng5adwy.", + "n4gai", + "ngal4", + "n3gam", + "n3gar", + "n4gau", + "ng4ddy", + "ngel4", + "nghwyn5", + "n2gi", + "n2gl2", + "n3glwm", + "n4gly", + "n5glym", + "nglyn3", + "ngn2", + "ng3oe", + "ngof3a", + "ngol4ed", + "ng3on", + "ngop2", + "n1gr", + "ngr4a", + "n2gw", + "ng4wi", + "ngwy5nas", + "ngy3f", + "n4gyn", + "2n1h2", + "nha3o", + "nhar4", + "nhaws4", + "nheb5r", + "nhe3na", + "nhe3ne", + "nhep2", + "nh4es", + "nho3ed", + "nho5esi", + "nho3n4a", + "nhon4e", + "nhudd4ed.", + "nhu4e", + "nhyc4", + "nhyd2", + "nhyl4", + "nhym4", + "n1i", + "4ni4ad", + "n5iald", + "ni1b", + "nib4a", + "nib4e", + "nibryd4", + "ni1d", + "nidd4", + "ni5dde", + "nid4e", + "n3ie", + "ni4et", + "ni3eu", + "n4iew", + "ni3fed", + "ni3fen", + "ni4feryc", + "ni3ffr", + "ni3fw", + "n2ig", + "n5igam", + "nige5na", + "4nigiad", + "n5igiad.", + "n5igiada", + "5nigiadw", + "4nigion", + "n5igion.", + "5nigiont", + "4n5igiwr", + "nigl4", + "4nigy", + "ni3gym4", + "nilead4", + "nill5adas", + "n5illio", + "ni3lu", + "ni3lys", + "nin2", + "ni3no", + "nin4w", + "ni3or", + "ni3ra", + "nir4e", + "ni3ri", + "ni4rw", + "ni3rym", + "nis3g", + "ni3so", + "nis3ty", + "ni3sw", + "ni3sy", + "nith4e", + "niw2", + "niw4a", + "ni4wc", + "niw5eddas", + "niw5edde", + "niw5eddo", + "niw5eddw", + "niwl3", + "niwl5e", + "niwl5o", + "niwl5w", + "ni5ydd", + "n2ïi", + "nï4yc", + "n1l2", + "nladr3", + "nlin3", + "nll2", + "nllon4", + "nl4lw", + "n4llyn", + "n2ly", + "nly3na", + "nly3ne", + "n1m2", + "nmolad4", + "n1n2", + "nn4al", + "nn4ar", + "nned4", + "nneth4", + "n3nh", + "nni2", + "nnif4", + "nni4l", + "nnill4", + "nni4o", + "nnis4", + "nni4w", + "n5nos4b", + "nn4wy", + "nny3na", + "nny5ne", + "nn4yw", + "no4ada", + "n3ob", + "n2od.", + "n2odo", + "nod3r", + "n2oe", + "noe4o", + "no3er", + "3no4et", + "n1of1", + "nof4el", + "n2ofy", + "n1og", + "nol5eg", + "nom3", + "n4omi", + "n5ones", + "n1or", + "norch4", + "nor4f", + "2nos3", + "nö5es.", + "np4et", + "n1r2", + "nre4o", + "n1s2", + "n2se", + "n3sei", + "ns3en", + "ns3i", + "ns4ic", + "ns4ig", + "n3s4il", + "ns4iy", + "ns5iyc", + "n3siyn", + "nsy3na", + "nsy3ne", + "nt3ad", + "nt5af.", + "nt5aid", + "nt4ana", + "nt3aw", + "n2te", + "n3tei", + "nt3el", + "nt3em", + "nt3er.", + "ntew3", + "nth2", + "n4tia", + "nt5il.", + "nt4in", + "n3tis", + "nt3oc", + "nt3od", + "nt5od.", + "nt3oe", + "n4t3or", + "n1tr", + "nt1w", + "nt3yn", + "nty3ra", + "nty3r4e", + "n1u", + "nud2o", + "nun4i", + "nut1", + "nw3af", + "n3wait", + "nw3an", + "n3war", + "nwar4ed.", + "nw3as", + "nwbl4", + "nwb5le", + "nwd3e", + "n5wedd", + "nw3edi", + "n3wei", + "nweithi5au", + "nwelad4", + "nwen5d", + "nw4ia", + "nw3id", + "nwir4", + "nw3ir.", + "n3wis", + "nw3o", + "nwr5ei", + "n4wy.", + "nwybod4a", + "n4wyc", + "n3wyl", + "n2wyn", + "n4wyn.", + "n3wyt", + "nych3", + "nyf2", + "ny5fala", + "ny5fale", + "ny5falo", + "nyff4", + "nyf4n", + "nyf4o", + "ny5fod", + "nyfr3", + "n2yg", + "ny3gy", + "n1yl", + "ny3lan", + "ny3lu", + "nym4a", + "nym4y", + "n5ynnau", + "ny3n4od", + "ny3ra", + "nyrchafad4", + "ny3ri", + "n1ys", + "n4ys.", + "nys4g", + "n3yw", + "2o1a", + "2o2b", + "ob3ae", + "ob4an", + "ob5ant", + "ob3ed", + "ob3el", + "ob5en.", + "oben5y", + "ob5er.", + "obl3a", + "obl5ed", + "ob3ler", + "obl5es", + "obl3o", + "obl3w", + "o3b4ly", + "ob3o", + "obr1", + "ob3yd", + "oc1a", + "oc5byn", + "oc3e", + "och3a", + "och5an", + "och5en", + "ochl3a", + "ochl5es", + "ochl3o", + "ochl3w", + "och3n", + "och4ni", + "och3o", + "ochr3", + "och3w", + "och3y", + "2oci", + "2ocr", + "2oct", + "2od3a", + "od4ao", + "odar4", + "odd3a", + "oddf5y", + "odd5il", + "oddiw3", + "odd3r", + "odd5ri", + "4oddu", + "odd3y", + "odd5yd", + "odd5yn", + "odeb3", + "o5debau", + "o5debu", + "od5edi", + "od5eid", + "od3el", + "od3er", + "od3i", + "odl3a", + "odl3ec", + "odl5esi", + "odl3w", + "od5off", + "2odog", + "od4oga", + "2odr", + "odr3a", + "odr5ec", + "odr5em", + "odr3o", + "odr5wyd.", + "od4ry", + "odr5yc", + "2odw", + "od3wa", + "od5wed", + "od5wen", + "od3yc", + "od3yn", + "od4ynn", + "o1ec", + "o4edd3", + "oed3i", + "o3edig", + "oedl4a", + "oed5lan", + "oed5ra", + "oeg3", + "oel3c", + "o1em", + "oen3", + "o3ent", + "oer3", + "oes3", + "oesg4o", + "oet5an", + "oetr3", + "2of.", + "of3ad", + "of3ai", + "ofan3", + "ofan5e", + "of3ant", + "ofa5ol", + "of5ebi", + "of3ed", + "of3el", + "of3en", + "of4enn", + "of3er.", + "o4ferl", + "o4fery", + "of4f3a", + "off3ed", + "off5id", + "off3w", + "ofiad4w", + "ofl3", + "of3n", + "of4na", + "of4nd", + "of4ne", + "of4nf", + "of1o", + "of4odo", + "ofr3a", + "of3re", + "of4rec", + "of4red", + "of4rem", + "of4rer", + "of5wyf", + "of4yn", + "ofy3na", + "ofy3ne", + "og1", + "og3ai", + "og2an3", + "o4ganau", + "o4ganu", + "og3as", + "og4edy", + "og5elyn", + "og3er", + "og5erd", + "og3es", + "2ogf", + "og3i", + "2ogl", + "ogl3w", + "ogl3y", + "2ogn3", + "3og2o4f", + "og5oru", + "og3rwy", + "o3gry", + "og3yd", + "ogyf4", + "og4yl", + "og5yrn", + "o1h2", + "oheb3", + "oher4", + "o1id", + "oig1", + "o1ir", + "o1it", + "ol1", + "2olau", + "ol4ce", + "ol3d", + "ol4da", + "4oleu", + "ol3eua", + "ol4eued", + "ol5euo", + "ol4euwr", + "olew3", + "ol3i", + "oll1", + "oll3e", + "oll5ed", + "ol4lt", + "oll5wy", + "olo2", + "o3los", + "ol3s", + "ol4sb", + "2olu", + "2olwr", + "olw4y", + "ol3wyd", + "ol5wyno", + "ol4yne", + "ol4yni", + "ol4yno", + "ol4ynw", + "2oma", + "om4at", + "2omb", + "om2e", + "om5eda", + "om5edi", + "om5eg.", + "om3ei", + "om3en", + "om5isi", + "2oml", + "om4og4", + "2omp", + "om5pre", + "on1", + "on5ach.", + "on5adu", + "on3af", + "o4n3ai", + "4onair", + "on3an", + "o4n3au", + "on5au.", + "2onb", + "on5cyf", + "2ond", + "on5did", + "on2do", + "2one", + "on5edd.", + "on3el", + "onest3", + "2onf", + "ongl3", + "ong2o", + "ong3w", + "on4gyr", + "2oni", + "2onn", + "4onnu", + "on5of.", + "2onog", + "on2t", + "4onto", + "on3w", + "2o1o", + "2op", + "op3a", + "op4ao", + "op5aon", + "opl3", + "opr5ai", + "op5ren", + "or1a", + "4orac", + "or3ach", + "or5aeth.", + "or5aetha", + "or3af", + "or3ai", + "or3an", + "o4r3au", + "or3aw4", + "or3b", + "or2c", + "or3chw", + "or4dd", + "or5ddyn", + "ord3en", + "or5din", + "or4d5yn", + "or1e", + "or2eb", + "or4edd", + "ore5ddy", + "4oreg", + "or4egw", + "or4et", + "or3fa", + "orfa5na", + "orfa5ne", + "orff4e", + "or3fo", + "or3f4y", + "2or3g", + "or3i", + "or3l", + "or4mu", + "or4my", + "orn3a", + "or3nel", + "or1o", + "or3of", + "or4oh", + "oron5a", + "or3one", + "or5oni.", + "or5onid", + "or5onir", + "or5onit", + "or5pws", + "4orth.", + "ort4i", + "or4ty", + "or5uwc", + "or1w", + "or5wah", + "orw4e", + "or4wel", + "or5wgl", + "or1y", + "or3ydd", + "2os", + "os3a", + "os4ana", + "osb3as", + "osb5ed", + "osb3o", + "osb3w", + "osb3y", + "os5eai", + "osg3a", + "os3gl", + "osgo5e", + "os3gor", + "osg3wy", + "os5iae", + "os5ibi", + "os2o", + "os3odd", + "os3ol", + "os3on", + "os3te", + "os3tr4", + "os4tu", + "os3w", + "os3y", + "2ot1", + "3ot.", + "ot3e", + "ot5esa", + "oth3", + "ots4i", + "ot5sia", + "o2u", + "o1wc", + "owg3", + "owl5as", + "owl3e", + "o1wn", + "owt5er", + "o1wy", + "o1yc", + "oyw3", + "oy4we", + "ôr3f", + "p1", + "p2a", + "pab5yd", + "2p3ad", + "2p3af", + "2p3ai", + "2p3an", + "pa3od", + "para3t", + "par4c", + "par3w", + "past4", + "p3au", + "pawe5na", + "2pec", + "4p5edig", + "p2ei", + "peir4a", + "p5eli.", + "pel3y", + "2pem", + "pengl4", + "pens4", + "pen3t2", + "pen3w", + "penwy5na", + "2per", + "2pes", + "pet2", + "pe3ta", + "p2h2", + "pheir4a", + "phen3t4", + "phen5w", + "phet2", + "phe3ta", + "phob4l", + "phr4a", + "phryf5", + "p3ia", + "pib1", + "p3ie", + "p3io", + "p3iw", + "p2l", + "pla3na", + "p4lau", + "pl5eda", + "p4lyc", + "3plyg", + "po4b4l", + "pog4y", + "pol3", + "p2r2", + "pr3as", + "pryf3", + "pr5ynn", + "p2s", + "ps4iw", + "pt2", + "p2ud", + "p4usr", + "pw2", + "pwd3", + "pwr1", + "p4wy.", + "pydr3", + "p2yr", + "r4abe", + "r4abi", + "rab5lyd", + "rab3y", + "rach5wy", + "r4a4ci", + "racs4", + "r4a4ct", + "r2ada", + "r4add", + "radd5ol", + "rad4ri", + "radwr4i", + "r2ae", + "raed4", + "raeddad4", + "r4aen", + "ra5fann", + "ra5fán", + "r4aff", + "rag1", + "ra4ge", + "rag3o", + "ra3gra", + "ra4ha", + "ra5hau", + "r1ai", + "4raidd", + "ram3od", + "ra5mor", + "ra3m2w", + "ran4d3", + "ran2e", + "r4anf", + "ran3o", + "r4anod.", + "ra5phe", + "r3ar3", + "rar4c", + "2r1as", + "ras4ie", + "ras3t2", + "r3atao", + "rat3e", + "2r1au", + "raw3e", + "5rawes", + "3rawi", + "rawn3", + "2r1b", + "r2ba", + "r3bar", + "r4bec", + "r4bem", + "r4bent", + "rb4er", + "r4bes", + "r2bl", + "r4boc", + "r4bom", + "r4bont", + "r4bwc", + "r4bwd", + "r4bwn", + "rbyd3", + "rc2a", + "rc5adw", + "rc5af.", + "r3car", + "rc3e", + "rc4er", + "r2ch", + "rch3ad", + "rch3an", + "rch3ar5", + "rch5eb", + "r5chei", + "rch3et", + "rch3l", + "r3chm", + "rch3oc", + "rch3oe", + "rch3og", + "r3chu", + "r3chwa", + "r3chwi", + "rch5wyd", + "r5chwyn", + "rch3yc", + "rchyf4", + "rchym4", + "r1cy", + "2rd2", + "r1da", + "r3dai", + "rdan3", + "rd5au.", + "r2dd", + "rdd3ad", + "rdd5as", + "rdd5ell", + "rdd5in", + "rdd5iwy", + "rdd3o", + "rdd4od.", + "r5ddodi", + "r3dd4u", + "r4ddu.", + "rddw4", + "rdd3yc", + "r5ddychw", + "rddyrch5", + "r5ddyw", + "r1de", + "rd3i", + "rd4in", + "rd4ir", + "r1do", + "r5dod.", + "r1dr", + "rdro3", + "rdro4ada", + "r3dw", + "r1dy", + "rdy4n", + "rd3yn.", + "re3a", + "r3ebai", + "r3ebas", + "r3ebe", + "r3ebi", + "rebl3", + "r3ebo", + "rech3", + "rec3i", + "4redd", + "r5edd.", + "r4edio", + "r4edol", + "r4edwr", + "red4yn.", + "re4fa", + "refn5y", + "ref3y", + "r4egl", + "r5egl.", + "r4egog", + "re5iau", + "r4eic", + "re5id.", + "reidd5", + "r4eig", + "r4eil", + "r4eine", + "re5ir.", + "re5it.", + "re4iw", + "r3ell", + "r4emi", + "ren4d", + "r4eng3", + "r4eni", + "ren3in", + "r4ennyd", + "re1o", + "r1er", + "r4er4id", + "rer5in", + "restr3", + "r4esw", + "r4eua", + "r4euo", + "r2euy", + "re4wi", + "rew5id", + "re5wn.", + "rew5ynn", + "2r2f", + "r1fa", + "r4f3ad", + "r4faeth.", + "r4faf", + "r4fai", + "rf4ao", + "r4fas", + "rf4at", + "r4fau", + "r3fedw", + "rfel3", + "rf3en", + "rf4eny", + "rf4ey", + "r4ff.", + "rff3i", + "rff3l", + "rff3o", + "r3ffw", + "rff3y", + "rf3id", + "r5fil.", + "r3fl", + "rf3lu", + "rfodad4", + "rf5ol.", + "rf3on", + "rfor2", + "rf5ord", + "r3fr", + "r3fu", + "rf1w", + "rf5wis", + "rfyn5yc", + "rf4yr", + "r3fys", + "2r1g2", + "rgal4", + "rgan3", + "r3ge", + "rgel4y", + "rge3na", + "rge5ne", + "rgo4f", + "r1h2", + "rhag5e", + "rhag3l", + "rhag3o", + "rha3n4a", + "rhan4e", + "r4haw", + "rh4es", + "rhew5y", + "rhif3", + "rho4ec", + "rhon5a", + "rhost4ir", + "rhugl5", + "rhyf2", + "rhy3n4a", + "rhyn4e", + "ri2", + "2ria", + "r4iaethu", + "riaf3", + "r4iag", + "ri5agl", + "r3iai", + "r4i5aidd", + "ri5all", + "ri4an", + "r5iant", + "r3ias", + "r4iaw", + "ri5awd", + "rib3e", + "ribl3", + "rib3w", + "rib3y", + "ri5can", + "r4ida", + "ridd3", + "ridd5y", + "r4idi", + "rid4yllau", + "2rie", + "ri3ei", + "rif1", + "rig3", + "r4igo", + "ri3i", + "rin5dir", + "rin3e", + "ringl5", + "r4ini", + "r4inl", + "2rio", + "r3ioc", + "ri5odad", + "ri5odaf", + "ri5odai", + "ri5odan", + "ri5odasai", + "ri5odasan", + "ri5odase", + "ri5odasi", + "ri5odasoc", + "ri5odasom", + "ri5odasw", + "r3iodd", + "ri3ode", + "ri3odi", + "ri5odoc", + "ri5odod", + "ri5odom", + "ri5odon", + "ri5odwc", + "ri5odwn", + "ri5odwy", + "ri5ody", + "r4ioe", + "r3iom", + "ri3ong", + "r3iont", + "r1ir", + "ris4g", + "risgl3", + "rist3", + "3r4ith", + "2riw", + "ri4wa", + "riw3l4", + "r5iwr.", + "2r3iy", + "r1l2", + "rla3na", + "rla3ne", + "r3lew", + "rl3ia", + "rl3ie", + "rl3io", + "r3ll", + "r4ll.", + "rll4e", + "rllen3", + "rl4l4w", + "rl5og.", + "r3lon", + "rludd4", + "r3lw", + "r2lym", + "rlyn3", + "rl5yn.", + "r1m2", + "r2ma", + "rm4ac", + "rm3i", + "rm4il", + "r2mo", + "rm4od", + "r3my", + "2r2n1", + "r4nai.", + "r4nau", + "rn4es.", + "rn4esa", + "r5nest", + "rng4e", + "rn3i", + "rn5iae", + "rn4ii", + "rn5iol", + "r3n2ï1", + "rn4os", + "rn3y", + "rn4yw", + "2roa", + "4road", + "4roau", + "rob3l4", + "roch3", + "rochl4", + "ro3cr", + "rodd3", + "r4odr", + "rod5rw", + "ro4ea", + "roed3", + "ro4eo", + "ro3er", + "r2of", + "rof3l4", + "rofun4ed.", + "rof3w", + "r3og.", + "r4ogae", + "ro4ge", + "rol3", + "r1om3", + "r4onau", + "rongl4", + "rong5lwy", + "ron3i", + "r4os.", + "r4osf", + "rosg4", + "ros3o", + "2rot", + "rö5edi", + "rp2", + "r1pa", + "rpar3", + "r1pe", + "rp5ech", + "rp5em.", + "r2pen", + "rp5ent", + "rp5er.", + "rp5esi", + "rp3i", + "rp3o", + "rp3wy", + "rp3y", + "r1r2", + "r3ra", + "rr4og", + "r1s2", + "rs4ai", + "r4sau", + "r2s3en", + "rs3i", + "rs4in", + "rs5li.", + "r2s3t2", + "r2sy", + "r1t2a", + "r4tau", + "r4ted", + "r3teis", + "r4ten", + "r4tes", + "rth3a", + "rth4eg", + "r3thin", + "rth3la", + "rth3o", + "rth5ol", + "rth5ru", + "r5thryc", + "r4thw", + "rth5wyon.", + "rth5ydd", + "rt4iy", + "r1tr", + "rtr4a", + "rt5rwy", + "rt2u", + "rt3y", + "rub4a", + "r3uc", + "rudd3", + "3rudd.", + "run4i", + "r1us", + "rw2a", + "rw3ad", + "rw3af", + "r3w4ag", + "r3wait", + "rwb5an", + "rwbl3", + "r1wc", + "r5wdenn", + "rwedd3", + "r4weddog", + "r4weddol", + "r4w3eid", + "r3wel", + "r3wer", + "r2wg", + "rw5hel", + "rw1i", + "rw3in", + "r3wl", + "r4wnc", + "rw4ni", + "rw4n3o", + "rwobr4", + "rw3od", + "rw5old", + "r1wr", + "rwr5es", + "rwr4iaetho", + "rw2y", + "r4wyb", + "r5wydden.", + "rwydd4iad4u", + "r4wyde", + "r4wydo", + "rwydr3", + "r4wydy", + "3rwym", + "rwyn3", + "r4wys", + "3ry.", + "3rybl", + "ry3bo", + "rych5wai", + "r2yd", + "r4yd.", + "ry5dano", + "rydd4on.", + "rydl4", + "ry3f4a", + "ryf2e", + "ry3fer", + "ryf4od", + "ryl3a", + "ryl2e", + "ryl5it", + "rym2r3", + "ryn3a", + "rync4", + "4rynd", + "ryn3e", + "ryn3f", + "ryng5a", + "4rynn", + "rynod4", + "ryno5ded", + "ryno5der", + "ryn3yc", + "rys3b", + "rys5ba", + "rysg5w", + "rysg3y", + "ry3wa", + "ryw3i", + "s1", + "sach3", + "saf3a", + "saf3o", + "san3a", + "san3e", + "san3o", + "sarf5a", + "sat4a", + "sath4", + "sathraw4", + "s3au", + "sá4it", + "s2b2", + "sbad4w", + "s4bai", + "s3bet", + "sb3iw", + "sb5iyc", + "s3bl", + "sbr5io", + "sd4or", + "se2", + "sec4an", + "sedd3", + "3sef", + "se5ion", + "sen5ol", + "senw3", + "s4erc", + "serch5", + "s4eri", + "s2et", + "sf4am", + "sfedd4", + "sff4y", + "sf4wy", + "sf4yr", + "s2g", + "s5g4adr", + "sg3adw", + "s3gam", + "sg3an", + "sgar5a", + "s3gaw", + "s3geda", + "s3gede", + "s4gedig", + "s5gedo", + "s5gedw", + "sgel4", + "sg5en.", + "s3ge3na", + "sge5ne", + "s4gia", + "s4gl.", + "sgl3a", + "sgl3o", + "s3gn", + "sg3ni", + "sg3od", + "sg4od.", + "sgo4g3", + "sg4ol", + "sg3om", + "sg3on", + "sg5oty", + "sg5rwy", + "sg5ryw", + "s4gwc", + "sg3wn", + "s4gyc", + "sgy4f3", + "sgy3na", + "sgy5nes", + "2si", + "s5ial.", + "s5ialu", + "si4am", + "5siand", + "s4iar", + "s3id3", + "sid4a", + "s3ie", + "s4iet", + "s2ig", + "s3ig.", + "si4ga", + "s3ige", + "sigl3", + "5sigl.", + "s3igr", + "s5igyn", + "sil4f", + "sins4", + "s3io", + "s3ir", + "s3it", + "si4wr", + "s2iyn", + "2s2ï1", + "2sl2", + "sl4au", + "slo3na", + "slo3n4e", + "s3ly", + "slyw4", + "sm2", + "sm4ar", + "sm4er", + "smwyt5haso", + "s4nau", + "sn2e", + "sneg2", + "s2n3i", + "sn4ob", + "s3oc", + "sodd3", + "sod4l3", + "s3oe", + "sof4l", + "2s3og3", + "s3om3", + "son3", + "s4on.", + "s4onau", + "son4deba", + "son4der", + "s3one", + "s4ong", + "sra3na", + "sra5ne", + "s2t", + "st3ac", + "s4tade", + "s4taf", + "st4am", + "st2an", + "st3as", + "s4tau", + "st5awc", + "s4tec", + "s4ted", + "s4tei", + "s4t3em", + "s4ten", + "s4tes", + "st3f", + "s5tiro", + "stl3o", + "st5lyt", + "st2o", + "s3tod.", + "sto3ra", + "sto3r4e", + "st4ra", + "s3tra.", + "str3ec", + "str3es", + "str3oc", + "str3ol", + "s4tr3w", + "str3yc", + "st2u", + "st3ur", + "st5us.", + "s5twyi", + "styr3", + "s2u", + "sur3", + "s3us", + "sw2a", + "s3wc", + "swcr3", + "s3we", + "s4wed", + "sw5edd", + "swen3", + "2swi", + "swmp3", + "s3wyf", + "swyn3", + "swy4r", + "s2y", + "s3yc", + "s5ych.", + "s3yd", + "syf4l3", + "2syg", + "syll3a", + "syllt3", + "sym4l3", + "symudad4", + "2s3yn.", + "syn4fe", + "s3yr", + "syr2a", + "syr2e", + "s3ys", + "3syt", + "s4ywa", + "1tac", + "tach3", + "3tad4l3", + "tad3r", + "t1af", + "ta4fa", + "taf4l", + "tag3", + "t1ai", + "t3aid", + "t5aliae", + "tal2m3", + "t1an", + "4tanc", + "tan3e", + "tang5n", + "tan3o", + "tan3w", + "t3ao", + "3tar4d", + "tar4f", + "t1as", + "tat1", + "t1au", + "tawl3", + "t1b", + "t3ch", + "t1ec", + "t1ed", + "tedd3", + "4teg.", + "4tegio", + "t3eidi", + "teimlad4w", + "tel4y", + "t3em.", + "t4emi", + "t1en", + "ten4d", + "te4ne", + "terf4", + "terfyn5", + "t1es", + "t4esa", + "tes4io", + "tet4a", + "3tew", + "4tew.", + "4tewc", + "tew5id", + "t1f", + "tff2", + "tff4e", + "tfod4", + "tfydd4", + "t1g2", + "tg4af", + "tg4an", + "tg4en", + "tg4er", + "tgl4a", + "tgn2", + "t2gor", + "t5gor.", + "t5goria", + "t5gorn", + "tg4wc", + "tg4wy", + "tgy3w", + "t2h", + "thalad4", + "thal4m3", + "thang5n", + "th4ar", + "thar4f", + "th4at", + "that5y", + "th1e", + "th4ef", + "th5ell", + "therfyn5", + "thet4", + "thl3a", + "thl5ent", + "th5let", + "th3n", + "th5nod", + "th1o", + "th5old", + "thollt4", + "thon4e", + "thorad4", + "thr3ac", + "th3red", + "thr5ent", + "thrid4", + "thro3f", + "th5rwf", + "thryd4", + "thry5da", + "th3ug", + "th3um", + "th3un", + "th3us", + "th1w", + "th3wa", + "th4wl", + "th3wyd", + "th3wyf", + "thwysg4", + "th3ych", + "thydd5", + "th5yma", + "thyrf4au", + "thyr3w", + "thy4w", + "2t1i", + "t3ia", + "tid3", + "t3ie", + "t3in", + "ting3", + "t4ino", + "tion4", + "t4iono", + "tï5ol.", + "tl3a", + "tl4ae", + "tl1e", + "tl4en.", + "tl3on", + "tl3wy", + "t3lyd", + "t1n2", + "t3och", + "t4od.", + "t3odd", + "to4ec", + "to3edi", + "to4em", + "to3esi", + "tof3", + "t3og3", + "3tois", + "t2ol", + "tollt4", + "tol3y", + "t1om", + "t3om.", + "t1on", + "ton4e", + "t3ont", + "3tor", + "tor2a", + "tor4c", + "t3os", + "to4wc", + "to4wn", + "tra3c", + "tra3dd", + "tr3adw", + "tr3af.", + "tra3g", + "tra3na", + "tra5ne", + "tr3ant", + "3traw", + "tr3ed", + "3tr4ef", + "tref5a", + "tref3l", + "4treg", + "tr3em.", + "tr3ent", + "3trew", + "tr3id4", + "tr5ig.", + "tro4ada", + "tr3odd", + "tro5fa", + "tr3ola", + "tr3olo", + "tr3olw", + "tron4o", + "tr3ont", + "2trw", + "tr4wm", + "tr3wn", + "tr5wyd.", + "t5r4wydd", + "tr3wyf", + "try3da", + "tryd4y", + "try3f", + "try3l", + "tr5yn.", + "3tryw", + "ts2", + "ts5ach", + "t1se", + "ts3i", + "3tud", + "tudr4", + "1tum", + "t1un3", + "1tur", + "t4urm", + "tw2", + "t3wai", + "t1wc", + "t1wn", + "t1wr1", + "twr4n", + "3twya", + "t3wyd", + "3twye", + "t3wyf", + "tw4ym", + "3twyo", + "twysg4", + "3twyw", + "t1yc", + "t1yd", + "tydd5y", + "ty5gar", + "ty3li", + "tymp4", + "4t3yn.", + "tyng5ad", + "1tyr", + "tyr2a", + "tyr4es", + "ty3wr", + "2u1a", + "ual3", + "u2and", + "u4ane", + "u3ar", + "u3aw", + "ub1", + "2uc", + "uch1", + "uch3e", + "uch5ed", + "ud3ad", + "u5dale", + "udd1", + "udd3a", + "udd4eg", + "udd3el", + "udd3f", + "udd3i", + "ud5eir", + "ud3er", + "ud3i", + "ud1l", + "udr3", + "ud5rwydd", + "ud2w", + "ud3wn", + "ud3wr", + "ud3yn", + "u1e", + "uedd3", + "u4estai.", + "u4estau", + "u4estwr", + "u4esty", + "uf5au.", + "uff4y", + "uf3y", + "ug3ad", + "ug3af", + "ug3en", + "ug3i", + "ugl3a", + "ugl3e", + "ug3lw", + "ugn3", + "ug1o", + "ug1u", + "ug1w", + "ug3y", + "u1h2", + "u1i", + "ul3ad", + "ul3af", + "u5lan.", + "u5lann", + "ul3ant", + "u5lath", + "ul3d", + "u2l1e", + "ul1f", + "ul5igr", + "ull1", + "u1lo", + "ul3oc", + "ul3od", + "ulon3", + "ulon5e", + "ul1u", + "ul1w", + "ul3yc", + "u3lyd", + "un1", + "un4edy", + "un5ell", + "un5es.", + "un3i", + "unig3", + "un5od.", + "un2ol", + "un5ol.", + "2u1o", + "uog3", + "u3os3", + "up2", + "ur1", + "urb4w", + "ur5ddu", + "ur3e", + "ur5fau", + "ur4fl", + "ur2gy", + "4urn.", + "urof4", + "ur2s3", + "ur4ty", + "ur4ud", + "u5rwydd", + "ur3y", + "ur4yw", + "1us.", + "us4edda", + "us5end", + "usg1", + "4usi.", + "us3o", + "3usr", + "us3ter", + "us3tod", + "us3tr", + "ut3a", + "ut1e", + "uth4r3", + "uth3u", + "uth4un", + "ut3o", + "utr3", + "2u1w", + "u2wc", + "uwch3", + "u1y", + "2wa", + "wac5ew", + "wadd3", + "wad2n3", + "w5adwy.", + "waen4i", + "waer2", + "wag1", + "w1ai", + "w3ai.", + "w3aid", + "w2air", + "w3ais", + "w4ait", + "wallt5", + "w4an.", + "wan3a", + "wan3e", + "wan3o", + "war5ddr", + "war3e", + "war4edd", + "war5ia", + "warth4", + "wart5hai", + "wart5has", + "wart5hi", + "wart5hw", + "war3w", + "3w4as.", + "w3ase", + "was4g", + "w3asi", + "w3aso", + "w4as4t", + "w3asw", + "wat5er", + "w1au", + "2wb", + "wbl5es", + "w2c", + "2wca", + "wc4ed", + "wch1", + "4wchu", + "2wci", + "wc5wll", + "wc4yn", + "2wd", + "wdd3eg", + "w5ddew", + "wd2e", + "wd3ed", + "wde3n4a", + "wde5n4e", + "wd3i", + "wd4ih", + "wd3ly", + "w3dod.", + "wdr1", + "wd4ra", + "wdry4", + "wd2u", + "w1eb3", + "2w1ec", + "2w3ed.", + "w4eda", + "4weddf", + "4weddi", + "4wedi", + "w3edig", + "we4gi", + "wegr4", + "wein3", + "well5ti", + "wel3o", + "welw5l", + "2w1em", + "wen3au", + "wen4d", + "2w3ent", + "wenwyn5", + "wen3y", + "2w3er.", + "wer4i", + "wer5id", + "w4ers", + "wer4yd", + "2wes", + "4w3esi", + "w4esir", + "w4esit", + "5west.", + "west4ai", + "w1et", + "w4eth", + "2weu", + "weu2g", + "weun3", + "2wf2", + "w1fa", + "w1fe", + "wff3a", + "w1fi", + "wf4id", + "w1fo", + "wfor2", + "w1fw", + "wf4wy", + "w3fy", + "wg1", + "2wg.", + "w5gig.", + "2wgl", + "wg3n", + "2w1h2", + "w3he", + "w3hw", + "2wi", + "wi4an", + "wib5an", + "wibl5a", + "wib5ol", + "widl3", + "wi4fr", + "3wig1", + "wigl5e", + "wil3", + "win5gada", + "win5gade", + "win5gadi", + "win5gado", + "w4ione", + "wir3", + "wisg3", + "w1it", + "3wiw.", + "wiw4e", + "2wl", + "3wlad.", + "wlan3", + "wl4co", + "wl3in", + "w4lip", + "wll5yn", + "wl5ws.", + "wl4yc", + "2wm", + "wm3a", + "wman3", + "wm4br", + "wm2i", + "wm5iai", + "wm5ian", + "wm4wl", + "wn1", + "wn5adwy.", + "wn2ae", + "2wnd", + "wn3de", + "wn3di", + "wndr3", + "wn4ei", + "wn4êl", + "2wn3g", + "wngl4", + "wn3in", + "wn3l", + "wn2o", + "w4n3oc", + "wn3odd", + "wn3og", + "wn3ol", + "w4n3om", + "w4n3on", + "2wnw", + "2w1o", + "w2od", + "w3od.", + "w3odd", + "w2ol", + "w3ol.", + "w3olae", + "w2or", + "2wp", + "wp3e", + "wpl1", + "wp5wrd", + "wr5aet", + "wrb5yn", + "wrc2", + "wr3ca", + "wr4ce", + "wr4ch3", + "wr4ci", + "wr5cwd", + "2wrd", + "wr5dei", + "wr3ed", + "wreig3", + "wr5esi", + "wr3f", + "wr5fau", + "wr4fi", + "4wri.", + "wrid3", + "wr3id.", + "wr3ie", + "wr3l", + "wr4ll", + "wr3n2a", + "wrn4es", + "wr3no", + "wr1o", + "wr2t", + "wrth3", + "wr1w", + "wr4ws", + "w5rwydd", + "wry4w", + "ws5bre", + "ws3e", + "ws3g", + "ws4gl", + "ws4ig", + "ws4og", + "ws4ta", + "wst5an", + "ws5ter.", + "wstr3", + "ws4us", + "ws3wa", + "2wt", + "wt3a", + "wtan3", + "wt3em", + "wt5ery", + "wth1", + "4wth.", + "wth3w", + "wt3od", + "wt3wy", + "wt3y", + "2w1w", + "2wya", + "wy5alc", + "4wybr", + "wybr5y", + "wy3bu", + "w1yc", + "wych3", + "wyd3a", + "2wydd", + "wydd4ly", + "wydd4yd", + "wydr3o", + "2wydy", + "2wye", + "wy3fr", + "wy3h", + "2wyi", + "2wyl", + "wyl4deb", + "wyll3a", + "wyn5ad.", + "4wynd", + "wyn3eg", + "wyn3f", + "wyn3g4", + "wy4ni", + "wyn3o", + "wyn3y", + "2wyo", + "wyr3ad", + "wy3ran", + "5wyrdd.", + "wyrl3i", + "2wys", + "2wyt", + "2wyw", + "wy3wr", + "wy3wy", + "2wyy", + "2y1a", + "y3ar3", + "y4ar.", + "y4arn", + "2yb", + "yb4ac", + "yb5edd", + "yber4", + "ybl1", + "yb3ly", + "ybr1", + "ybr3i", + "yb3w", + "ych1", + "ychan5", + "ych4anwr", + "ych5ei", + "ych3r", + "4ychwe", + "ych3wy", + "ychwy5na", + "ychwy5ne", + "ycl3", + "2yd.", + "2yda", + "yd3ad", + "yd4al", + "yd2an3", + "y3dana", + "y3dane", + "yd3ant", + "y5danw", + "y3dar", + "yd3as", + "yd3au", + "ydd3", + "ydd5an", + "yd4de", + "yd4df4", + "yd4di4", + "ydd4in.", + "ydd4of", + "ydd5yn.", + "yddy5ne", + "ydd4ysg", + "2yde", + "y3deb", + "yd3ed", + "yd4eddau", + "yd3ei", + "yd3er", + "yd4eu", + "yd5ffu", + "ydfwr3", + "ydfyn3", + "yd3i", + "yd1l", + "yd4ma", + "yd2ne", + "ydne5b", + "2yd3o", + "yd4od.", + "ydol3", + "yd4os", + "4ydrau", + "ydr3ec", + "ydr3em", + "ydr5esid", + "yd3rew", + "yd4ri", + "4ydria", + "ydr3oc", + "4ydrol", + "ydr5wyd.", + "yd5rwydd", + "4ydry", + "ydr3yc", + "2ydw", + "yd3wa", + "yd5wed", + "ydweithi5ol", + "ydwel5e", + "yd3wr", + "yd1y", + "ydy4l", + "y1e", + "y3el", + "y4era", + "y4ern", + "2yf1", + "y4f3ag", + "yf3ai", + "yfan3t", + "yf3are", + "yf3arh", + "yfar5wa", + "yf3eda", + "yf3ede", + "yf3edi", + "yf3edo", + "yf3edw", + "yf3ei", + "yfel3", + "yf5erf", + "yfer3n", + "yf5esi", + "yf5ewi", + "yff1", + "yf4fa", + "yf5fait", + "yf5fei", + "y4ff3i", + "yff5in", + "y4ffl", + "yffr3a", + "yffro5ed", + "yffro5em", + "yffro5en", + "yffro5wc", + "yffr3w", + "yff3ry", + "yf3i", + "yfl4ed", + "yflo3e", + "yf3ne", + "yf3no", + "yf3ny", + "yf3o", + "yf5od.", + "yfogl4", + "yf5rait", + "yfra5ne", + "yf5ryw", + "yf3u", + "yf5wng", + "yf3yg", + "yf5yn.", + "yfy3na", + "yfy5ne", + "yfyng5", + "yf4yt", + "yg1", + "yg3a", + "yg5adu", + "yg4ar", + "ygeg4", + "yg4eid", + "yg3i", + "yg4il", + "3ygin", + "ygl3a", + "ygl3o", + "ygl3w", + "ygl3y", + "ygn3", + "yg3o", + "yg4oe", + "yg4of", + "ygr1", + "ygrad4", + "yg5wyd", + "y4gyc", + "4ygyd", + "y1h2", + "y2he", + "yhe3i", + "yhe3w", + "y1i", + "y3ie", + "yl3ad.", + "yl5adwy.", + "yl3af", + "ylan3", + "yl3ant", + "y5law.", + "2ylc", + "ylch3w", + "yl4dera", + "yl1e", + "yl1f", + "y3lin", + "y4lit", + "yll5ad.", + "yll3e", + "4yllf", + "yll5ida", + "yll3o", + "yll3w", + "yll3y", + "yl5nos", + "yl3oc", + "yl3od", + "yl3on", + "yl5ore", + "y4lu.", + "4ylwe", + "yl3wy", + "yl1y", + "ym5ait", + "ym4al", + "ym5an.", + "yman5t", + "ymar5w", + "ymbl2", + "ym5edr", + "ym4eri", + "ym5es3u", + "3ymg", + "ym3heu", + "ym2le", + "ym2li", + "ymlo5ne", + "ym4oli", + "ym3on", + "ymp3a", + "ym4pi", + "ymp5od", + "ym3pr", + "ymra5ne", + "ymr5ig", + "ymro5e", + "ym4ru", + "ym3se", + "ym4um", + "5ymwyb", + "ym3y", + "ymyn5y", + "ym5yra", + "ym5yre", + "ym5yri", + "ym5yro", + "ym5yrw", + "yn4ada", + "yn3ae", + "yn3af", + "yn3ai", + "yn3an3", + "ynas3", + "2yn3au", + "yn4aw", + "yn5byn", + "ync5ed", + "yn3dir", + "yn4eb", + "yn3ec", + "yn3ed.", + "yn3edd", + "yn2eg", + "yn3ei", + "yn3em", + "yn3en", + "yn3er", + "y3nesa", + "y4nesau", + "2ynf", + "ynfyd3", + "2yng1", + "yn4ge", + "yng5er", + "yn3gl", + "yniaw4", + "yni4d", + "yn3i4f", + "y3nig", + "yn5igy", + "yn3il3", + "yn3n", + "yn1o", + "yn5o5ad", + "yn5odd", + "yn4odi", + "yn4ody", + "yn3oe", + "yn3os4", + "2ynr", + "ynt1", + "ynt4a", + "yn4te", + "yn4ti", + "yn4to", + "yn4tu", + "yn4ud", + "yn1w", + "yn3wa", + "yn2w4e", + "yn3wy", + "yn4wyr", + "yn1y", + "yn2yc", + "ynydd5", + "y1o", + "ypl3a", + "ypl3e", + "ypl3o", + "ypl3w", + "yp3ly", + "yr3ae", + "yr3af", + "yra3na", + "yra3ne", + "yr3ant", + "y4r3au", + "yr4ch", + "yrch3e", + "yrch3o", + "yrch3w", + "yrch3y", + "yr4dd3", + "yr5ddyd", + "yr1e", + "yr2ei", + "yr5el.", + "yren5d", + "yrf3e", + "yr3ff4", + "yr4fu", + "yrf5yd", + "y4ria", + "yr3id", + "yr2l", + "yr3ly", + "yrn3", + "yr1o", + "yr5ol.", + "yr2s", + "yr1w", + "yr5way", + "yr1y", + "2ysa", + "ys3aw", + "2ysb", + "ysb5ïw", + "ys4bl", + "ysb3yd", + "2yse", + "ys5etl", + "2ysf", + "4ysgar.", + "ys5garai", + "ys5garasa", + "ys5garia", + "ys5garwy", + "ysge4", + "ysgl4e", + "ysg5lw", + "ys4gn", + "3ysgr", + "ys4gy", + "2ysi", + "ys5ni.", + "2yso", + "ys3od", + "4ysol", + "ys5ol.", + "ys3ta", + "4yste", + "yst5eb", + "ys5ted", + "ys3ter", + "ys4try", + "yst4w", + "ys3u", + "2ysw", + "ys4we", + "ys4wi", + "2ys3y", + "ys4yg", + "yt3ad", + "yt1e", + "yth3a", + "yth3e", + "ythi3e", + "yth3l", + "yth3o", + "yth4re", + "ythr5ec", + "ythr5ed", + "ythr5es", + "yth5reu", + "ythr3o", + "yth5rwb", + "ythr5yc", + "yth5ur", + "yth3w", + "yth3yn", + "yt5iro", + "yt3o", + "ytr2", + "yt3ras", + "yt3s", + "ytw5ad", + "yt3wy", + "yt5ysa", + "2yw", + "yw4ae", + "y3wait", + "y1wc", + "y3wedd", + "y5weddia", + "yw5eg.", + "y4wel", + "yw5en.", + "yw3es", + "yw1g2", + "y4wia", + "yw3id", + "y4wio", + "y4wir.", + "y1wn", + "yw3ol", + "y2wr1", + "ywr4a", + "ywr5ain", + "y4wyc", + "y3wyf", + "ywy3na", + "ywy5ne", + "y1y" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/da.json b/borb/pdf/canvas/layout/hyphenation/resources/da.json new file mode 100644 index 000000000..7fafe2b02 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/da.json @@ -0,0 +1,1148 @@ +{ + "patterns":[ + ".ae3", + ".an3k", + ".an1s", + ".be5la", + ".be1t", + ".bi4tr", + ".der3i", + ".diagno5", + ".her3", + ".hoved3", + ".ne4t5", + ".om1", + ".ove4", + ".po1", + ".til3", + ".yd5r", + "ab5le", + "3abst", + "a3c", + "ade5la", + "5adg", + "a1e", + "5afg", + "5a4f1l", + "af3r", + "af4ri", + "5afs", + "a4gef", + "a4gi", + "ag5in", + "ag5si", + "3agti", + "a4gy", + "a3h", + "ais5t", + "a3j", + "a5ka", + "a3ke", + "a5kr", + "aku5", + "a3la", + "a1le", + "a1li", + "al3k", + "4alkv", + "a1lo", + "al5si", + "a3lu", + "a1ly", + "am4pa", + "3analy", + "an4k5r", + "a3nu", + "3anv", + "a5o", + "a5pe", + "a3pi", + "a5po", + "a1ra", + "ar5af", + "1arb", + "a1re", + "5arg", + "a1ri", + "a3ro", + "a3sa", + "a3sc", + "a1si", + "a3sk", + "a3so", + "3a3sp", + "a3ste", + "a3sti", + "a1ta1", + "a1te", + "a1ti", + "a4t5in", + "a1to", + "ato5v", + "a5tr", + "a1tu", + "a5va", + "a1ve", + "a5z", + "1ba", + "ba4ti", + "4bd", + "1be", + "be1k", + "be3ro", + "be5ru", + "be1s4", + "be1tr", + "1bi", + "bi5sk", + "b1j", + "4b1n", + "1bo", + "bo4gr", + "bo3ra", + "bo5re", + "1br4", + "4bs", + "bs5k", + "b3so", + "b1st", + "b5t", + "3bu", + "bu4s5tr", + "b5w", + "1by", + "by5s", + "4c1c", + "1ce", + "ce5ro", + "3ch", + "4ch.", + "ci4o", + "ck3", + "5cy", + "3da", + "4d3af", + "d5anta", + "da4s", + "d1b", + "d1d4", + "1de", + "de5d", + "4de4lem", + "der5eri", + "de4rig", + "de5sk", + "d1f", + "d1g", + "d3h", + "1di", + "di1e", + "di5l", + "d3j", + "d1k", + "d1l", + "d1m", + "4d1n", + "3do", + "4dop", + "d5ov", + "d1p", + "4drett", + "5d4reve", + "3drif", + "3driv", + "d5ros", + "d5ru", + "ds5an", + "ds5in", + "d1ski", + "d4sm", + "d4su", + "dsu5l", + "ds5vi", + "d3ta", + "d1te", + "dt5o", + "d5tr", + "dt5u", + "1du", + "dub5", + "d1v", + "3dy", + "e5ad", + "e3af", + "e5ag", + "e3ak", + "e1al", + "ea4la", + "e3an", + "e5ap", + "e3at", + "e3bl", + "ebs3", + "e1ci", + "ed5ar", + "edde4", + "eddel5", + "e4do", + "ed5ra", + "ed3re", + "ed3rin", + "ed4str", + "e3e", + "3eff", + "e3fr", + "3eft", + "e3gu", + "e1h", + "e3in", + "ei5s", + "e3je", + "e4j5el", + "e1ka", + "e3ke", + "e3kl", + "4e1ko", + "e5kr", + "ek5sa", + "3eksem", + "3eksp", + "e3ku", + "e1kv", + "e5ky", + "e3lad", + "el3ak", + "el3ar", + "e1las", + "e3le", + "e4lek", + "3elem", + "e1li", + "5elim", + "e3lo", + "el5sa", + "e5lu", + "e3ly", + "e4mad", + "em4p5le", + "em1s", + "en5ak", + "e4nan", + "4enn", + "e4no", + "en3so", + "e5nu", + "e5ol", + "e3op", + "e1or", + "e3ov", + "epi3", + "e1pr", + "e3ra", + "er3af", + "e4rag", + "e4rak", + "e1re", + "e4ref", + "er5ege", + "5erhv", + "e1ri", + "e4rib", + "er1k", + "ero5d", + "er5ov", + "er3s", + "er5tr", + "e3rum", + "er5un", + "e5ry", + "e1ta", + "e1te", + "etek4s", + "e1ti", + "e3tj", + "e1to", + "e3tr", + "e3tu", + "e1ty", + "e3um", + "e3un", + "3eur", + "e1va", + "e3ve", + "e4v3erf", + "e1vi", + "e5x", + "1fa", + "fa4ce", + "fags3", + "f1b", + "f1d", + "1fe", + "fej4", + "fejl1", + "f1f", + "f1g", + "f1h", + "1fi", + "f1k", + "3fl", + "1fo", + "for1en", + "fo4ri", + "f1p", + "f1s4", + "4ft", + "f3ta", + "f1te", + "f1ti", + "f5to", + "f5tvi", + "1fu", + "f1v", + "3fy", + "1ga", + "g3art", + "g1b", + "g1d", + "1ge", + "4g5enden", + "ger3in", + "ge3s", + "g3f", + "g1g", + "g1h", + "1gi", + "gi4b", + "gi3st", + "5gj", + "g3k", + "g1l", + "g1m", + "3go", + "4g5om", + "g5ov", + "g3p", + "1gr", + "gs1a", + "gsde4len", + "g4se", + "gsha4", + "g5sla", + "gs3or", + "gs1p", + "g5s4tide", + "g4str", + "gs1v", + "g3ta", + "g1te", + "g1ti", + "g5to", + "g3tr", + "gt4s", + "g3ud", + "gun5", + "g3v", + "1gy", + "g5yd", + "4ha.", + "heds3", + "he5s", + "4het", + "hi4e", + "hi4n5", + "hi3s", + "ho5ko", + "ho5ve", + "4h3t", + "hun4", + "hund3", + "hvo4", + "i1a", + "i3b", + "i4ble", + "i1c", + "i3dr", + "ids5k", + "i1el", + "i1en", + "i3er", + "i3et.", + "if3r", + "i3gu", + "i3h", + "i5i", + "i5j", + "i1ka", + "i1ke", + "ik1l", + "i5ko", + "ik3re", + "ik5ri", + "iks5t", + "ik4tu", + "i3ku", + "ik3v", + "i3lag", + "il3eg", + "il5ej", + "il5el", + "i3li", + "i4l5id", + "il3k", + "i1lo", + "il5u", + "i3mu", + "ind3t", + "5inf", + "ings1", + "in3s", + "in4sv", + "inter1", + "i3nu", + "i3od", + "i3og", + "i5ok", + "i3ol", + "ion4", + "ions1", + "i5o5r", + "i3ot", + "i5pi", + "i3pli", + "i5pr", + "i3re", + "i3ri", + "ir5t", + "i3sc", + "i3si", + "i4sm", + "is3p", + "i1ster", + "i3sti", + "i5sua", + "i1ta", + "i1te", + "i1ti", + "i3to", + "i3tr", + "it5re.", + "i1tu", + "i3ty", + "i1u", + "i1va", + "i1ve", + "i1vi", + "j3ag", + "jde4rer", + "jds1", + "jek4to", + "4j5en.", + "j5k", + "j3le", + "j3li", + "jlmeld5", + "jlmel4di", + "j3r", + "jre5", + "ju3s", + "5kap", + "k5au", + "5kav", + "k5b", + "kel5s", + "ke3sk", + "ke5st", + "ke4t5a", + "k3h", + "ki3e", + "ki3st", + "k1k", + "k5lak", + "k1le", + "3klu", + "k4ny", + "5kod", + "1kon", + "ko3ra", + "3kort", + "ko3v", + "1kra", + "5kry", + "ks3an", + "k1si", + "ks3k", + "ks1p", + "k3ste", + "k5stu", + "ks5v", + "k1t", + "k4tar", + "k4terh", + "kti4e", + "kt5re", + "kt5s", + "3kur", + "1kus", + "3kut", + "k4vo", + "k4vu", + "5lab", + "lad3r", + "5lagd", + "la4g3r", + "5lam", + "1lat", + "l1b", + "ldiagnos5", + "l3dr", + "ld3st", + "1le.", + "5led", + "4lele", + "le4mo", + "3len", + "1ler", + "1les", + "4leu", + "l1f", + "lfin4", + "lfind5", + "l1go1", + "l3h", + "li4ga", + "4l5ins", + "4l3int", + "li5o", + "l3j", + "l1ke", + "l1ko", + "l3ky", + "l1l", + "l5mu", + "lo4du", + "l3op", + "4l5or", + "3lov", + "4l3p", + "l4ps", + "l3r", + "4ls", + "lses1", + "ls5in", + "l5sj", + "l1ta", + "l4taf", + "l1te", + "l4t5erf", + "l3ti", + "lt3o", + "l3tr", + "l3tu", + "lu5l", + "l3ve", + "l3vi", + "1ma", + "m1b", + "m3d", + "1me", + "4m5ej", + "m3f", + "m1g", + "m3h", + "1mi", + "mi3k", + "m5ing", + "mi4o", + "mi5sty", + "m3k", + "m1l", + "m1m", + "mmen5", + "m1n", + "3mo", + "mo4da", + "4mop", + "4m5ov", + "m1pe", + "m3pi", + "m3pl", + "m1po", + "m3pr", + "m1r", + "mse5s", + "ms5in", + "m5sk", + "ms3p", + "m3ste", + "ms5v", + "m3ta", + "m3te", + "m3ti", + "m3tr", + "m1ud", + "1mul", + "mu1li", + "3my", + "3na", + "4nak", + "1nal", + "n1b", + "n1c", + "4nd", + "n3dr", + "nd5si", + "nd5sk", + "nd5sp", + "1ne", + "ne5a", + "ne4da", + "nemen4", + "nement5e", + "neo4", + "n3erk", + "n5erl", + "ne5sl", + "ne5st", + "n1f", + "n4go", + "4n1h", + "1ni", + "4nim", + "ni5o", + "ni3st", + "n1ke", + "n1ko", + "n3kr", + "n3ku", + "n5kv", + "4n1l", + "n1m", + "n1n", + "1no", + "n3ord", + "n5p", + "n3r", + "4ns", + "n3si", + "n1sku", + "ns3po", + "n1sta", + "n5sti", + "n1ta", + "nta4le", + "n1te", + "n1ti", + "ntiali4", + "n3to", + "n1tr", + "nt4s5t", + "nt4su", + "n3tu", + "n3ty", + "4n1v", + "3ny", + "n3z", + "o3a", + "o4as", + "ob3li", + "o1c", + "o4din", + "od5ri", + "od5s", + "od5un", + "o1e", + "of5r", + "o4gek", + "o4gel", + "o4g5o", + "og5re", + "og5sk", + "o5h", + "o5in", + "oi6s5e", + "o1j", + "o3ka", + "o1ke", + "o3ku", + "o3la", + "o3le", + "o1li", + "o1lo", + "o3lu", + "o5ly", + "1omr", + "on3k", + "ook5", + "o3or", + "o5ov", + "o3pi", + "op3l", + "op3r", + "op3s", + "3opta", + "4or.", + "or1an", + "3ordn", + "ord5s", + "o3re.", + "o3reg", + "o3rek", + "o3rer", + "o3re3s", + "o3ret", + "o3ri", + "3orient", + "or5im", + "o4r5in", + "or3k", + "or5o", + "or3sl", + "or3st", + "o3si", + "o3so", + "o3t", + "o1te", + "o5un", + "ov4s", + "3pa", + "pa5gh", + "p5anl", + "p3d", + "4pec", + "3pen", + "1per", + "pe1ra", + "pe5s", + "pe3u", + "p3f", + "4p5h", + "1pla", + "p4lan", + "4ple.", + "4pler", + "4ples", + "p3m", + "p3n", + "5pok", + "4po3re", + "3pot", + "4p5p4", + "p4ro", + "1proc", + "p3sk", + "p5so", + "ps4p", + "p3st", + "p1t", + "1pu", + "pu5b", + "p5ule", + "p5v", + "5py3", + "qu4", + "4raf", + "ra5is", + "4rarb", + "r1b", + "r4d5ar", + "r3dr", + "rd4s3", + "4reks", + "1rel", + "re5la", + "r5enss", + "5rese", + "re5spo", + "4ress", + "re3st", + "re5s4u", + "5rett", + "r1f", + "r1gu", + "r1h", + "ri1e", + "ri5la", + "4rimo", + "r4ing", + "ringse4", + "ringso4r", + "4rinp", + "4rint", + "r3ka", + "r1ke", + "r1ki", + "rk3so", + "r3ku", + "r1l", + "rmo4", + "r5mu", + "r1n", + "ro1b", + "ro3p", + "r3or", + "r3p", + "r1r", + "rre5s", + "rro4n5", + "r1sa", + "r1si", + "r5skr", + "r4sk5v", + "rs4n", + "r3sp", + "r5stu", + "r5su", + "r3sv", + "r5tal", + "r1te", + "r4teli", + "r1ti", + "r3to", + "r4t5or", + "rt5rat", + "rt3re", + "r5tri", + "r5tro", + "rt3s", + "r5ty", + "r3ud", + "run4da", + "5rut", + "r3va", + "r1ve", + "r3vi", + "ry4s", + "s3af", + "1sam", + "sa4ma", + "s3ap", + "s1ar", + "1sat", + "4s1b", + "s1d", + "sdy4", + "1se", + "s4ed", + "5s4er", + "se4se", + "s1f", + "4s1g4", + "4s3h", + "si4bl", + "1sig", + "s5int", + "5sis", + "5sit", + "5siu", + "s5ju", + "4sk.", + "1skab", + "1ske", + "s3kl", + "sk5s4", + "5sky", + "s1le", + "s1li", + "slo3", + "5slu", + "s5ly", + "s1m", + "s4my", + "4snin", + "s4nit", + "so5k", + "5sol", + "5som.", + "3somm", + "s5oms", + "5somt", + "3son", + "4s1op", + "sp4", + "3spec", + "4sper", + "3s4pi", + "s1pl", + "3sprog.", + "s5r4", + "s1s4", + "4st.", + "5s4tam", + "1stan", + "st5as", + "3stat", + "1stav", + "1ste.", + "1sted", + "3stel", + "5stemo", + "1sten", + "5step", + "3ster.", + "3stes", + "5stet", + "5stj", + "3sto", + "st5om", + "1str", + "s1ud", + "3sul", + "s3un", + "3sur", + "s3ve", + "3s4y", + "1sy1s", + "5ta.", + "1tag", + "tands3", + "4tanv", + "4tb", + "tede4l", + "teds5", + "3teg", + "5tekn", + "teo1", + "5term", + "te5ro", + "4t1f", + "6t3g", + "t1h", + "tialis5t", + "3tid", + "ti4en", + "ti3st", + "4t3k", + "4t1l", + "tli4s5", + "t1m", + "t1n", + "to5ra", + "to1re", + "to1ri", + "tor4m", + "4t3p", + "t4ra", + "4tres", + "tro5v", + "1try", + "4ts", + "t3si", + "ts4pa", + "ts5pr", + "t3st", + "ts5ul", + "4t1t", + "t5uds", + "5tur", + "t5ve", + "1typ", + "u1a", + "5udl", + "ud5r", + "ud3s", + "3udv", + "u1e", + "ue4t5", + "uge4ri", + "ugs3", + "u5gu", + "u3i", + "u5kl", + "uk4ta", + "uk4tr", + "u1la", + "u1le", + "u5ly", + "u5pe", + "up5l", + "u5q", + "u3ra", + "u3re", + "u4r3eg", + "u1rer", + "u3ro", + "us5a", + "u3si", + "u5ska", + "u5so", + "us5v", + "u1te", + "u1ti", + "u1to", + "ut5r", + "ut5s4", + "5u5v", + "va5d", + "3varm", + "1ved", + "ve4l5e", + "ve4reg", + "ve3s", + "5vet", + "v5h", + "vi4l3in", + "1vis", + "v5j", + "v5k", + "vl4", + "v3le", + "v5li", + "vls1", + "1vo", + "4v5om", + "v5p", + "v5re", + "v3st", + "v5su", + "v5t", + "3vu", + "y3a", + "y5dr", + "y3e", + "y3ke", + "y5ki", + "yk3li", + "y3ko", + "yk4s5", + "y3kv", + "y5li", + "y5lo", + "y5mu", + "yns5", + "y5o", + "y1pe", + "y3pi", + "y3re", + "yr3ek", + "y3ri", + "y3si", + "y3ti", + "y5t3r", + "y5ve", + "zi5o", + ".så3", + ".ær5i", + ".øv3r", + "a3tø", + "a5væ", + "brød3", + "5bæ", + "5drøv", + "dstå4", + "3dæ", + "3dø", + "e3læ", + "e3lø", + "e3rø", + "er5øn", + "e5tæ", + "e5tø", + "e1væ", + "e3æ", + "e5å", + "3fæ", + "3fø", + "fø4r5en", + "giø4", + "g4sø", + "g5så", + "3gæ", + "3gø1", + "3gå", + "i5tæ", + "i3ø", + "3kø", + "3kå", + "lingeniø4", + "l3væ", + "5løs", + "m5tå", + "1mæ", + "3mø", + "3må", + "n3kæ", + "n5tæ", + "3næ", + "4n5æb", + "5nø", + "o5læ", + "or3ø", + "o5å", + "5præ", + "5pæd", + "på3", + "r5kæ", + "r5tæ", + "r5tø", + "r3væ", + "r5æl", + "4røn", + "5rør", + "3råd", + "r5år", + "s4kå", + "3slå", + "s4næ", + "5stø", + "1stå", + "1sæ", + "4s5æn", + "1sø", + "s5øk", + "så4r5", + "ti4ø", + "3træk.", + "t4sø", + "t5så", + "t3væ", + "u3læ", + "3værd", + "1værk", + "5vå", + "y5væ", + "æb3l", + "æ3c", + "æ3e", + "æg5a", + "æ4gek", + "æ4g5r", + "ægs5", + "æ5i", + "æ5kv", + "ælle4", + "æn1dr", + "æ5o", + "æ1re", + "ær4g5r", + "æ3ri", + "ær4ma", + "ær4mo", + "ær5s", + "æ5si", + "æ3so", + "æ3ste", + "æ3ve", + "øde5", + "ø3e", + "ø1je", + "ø3ke", + "ø3le", + "øms5", + "øn3st", + "øn4t3", + "ø1re", + "ø3ri", + "ørne3", + "ør5o", + "ø1ve", + "å1d", + "å1e", + "å5h", + "å3l", + "å3re", + "års5t", + "å5sk", + "å3t" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/de.json b/borb/pdf/canvas/layout/hyphenation/resources/de.json new file mode 100644 index 000000000..15d63b8bf --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/de.json @@ -0,0 +1,24539 @@ +{ + "patterns":[ + ".ab1a", + ".ab3l", + ".abo2", + ".ab3ol", + ".ab1or", + ".ab3s2", + ".ab3u", + ".ade3n", + ".ae3", + ".aft2", + ".ag4r", + ".ag2u", + ".ai2s", + ".akt2a", + ".al2e", + ".al3k", + ".al3lei", + ".al5len", + ".al3li", + ".al3se", + ".al4tei", + ".al4tel", + ".alter6s5", + ".alt3s4", + ".al4tu", + ".ampe4", + ".amt2s1", + ".amt4sc", + ".ana1c", + ".an4a3t", + ".an3d2", + ".anden6k", + ".an1er", + ".ang2", + ".an3g4li", + ".an3go", + ".angs4", + ".angst3", + ".ani2s", + ".an3k4", + ".an3na", + ".an3s2", + ".an4si.", + ".an4tar", + ".an3z2", + ".ap5p6le.", + ".ari1e", + ".ar3k2a", + ".ar4m3ac", + ".ar4mun", + ".ar2sc", + ".ar4tan", + ".ar4t3ei", + ".arter4", + ".ar6t5erh", + ".ar2t1r", + ".arz2", + ".asbe2", + ".as4ta", + ".as3tr", + ".ata1", + ".at2h", + ".at4r", + ".au3d", + ".au4f3", + ".au2s3", + ".auß2", + ".ax2", + ".äm3", + ".är6schl", + ".ät2h", + ".ät2s", + ".bahn3", + ".bah6ner", + ".bal3t", + ".baus4", + ".be3erb", + ".beige4", + ".bel2a", + ".be3r2a", + ".ber2e", + ".ber4g3a", + ".ber6g5e6b", + ".ber4g3r", + ".ber4tr", + ".bi4os", + ".bi2t", + ".bit1a", + ".blau3", + ".boge2", + ".bogen3", + ".bogens6", + ".bo4s3k", + ".bu4ser", + ".bu3ta", + ".by4t", + ".ca2s3t", + ".ce2ra", + ".ch6", + ".char8mes", + ".chi3er", + ".dab4", + ".da2r1", + ".dar3in", + ".dar2m1", + ".da4te.", + ".da4tes", + ".de2al", + ".de1i", + ".dein2", + ".de3lo", + ".de8ments", + ".de3na", + ".den4ka", + ".den4kl", + ".den4ko", + ".de1o2", + ".de3r4en", + ".de1s", + ".de3sk", + ".des2t", + ".di3el", + ".di4en", + ".dien4e", + ".dien6st", + ".dienst7a8d", + ".do3b", + ".do2mo", + ".do1pe", + ".dor2f1", + ".do2tr", + ".dy2s3", + ".ebe2r1", + ".eg2o", + ".eh2e", + ".ehe1i", + ".ehe5n", + ".ei3e2", + ".ei3f2e", + ".ei3k", + ".ei4na", + ".ein3d", + ".ei2ne2", + ".ein3eb", + ".ein6erl", + ".ein3sp", + ".eise4", + ".ei2sp", + ".eis3s2", + ".ei2s5t", + ".ei4tr", + ".eke2", + ".ek3li", + ".el2a", + ".el2bi", + ".el2bl", + ".elb3s", + ".el4fei", + ".el2fl", + ".em3m2", + ".en1", + ".en4da", + ".en4d3er4", + ".en2d3r", + ".end3s", + ".en4dü", + ".en3ga", + ".en2gl", + ".enk2", + ".enn2", + ".enns3", + ".ent3", + ".en2ta", + ".en4tei", + ".en7thalp", + ".en4tio", + ".en4t1r", + ".en5trop", + ".ents4", + ".er4bei", + ".er8brecht", + ".er2bu", + ".er4dan", + ".erden6k", + ".er4d3er", + ".er1e", + ".ere3c", + ".er2em", + ".erf4", + ".er1i", + ".ers2", + ".er8stein", + ".erster6", + ".er8stritt.", + ".er8stritten.", + ".er4z3el", + ".er4zen4", + ".es3p", + ".es3ta2", + ".est6e", + ".es3th", + ".es3t3r", + ".et2s", + ".eu3", + ".eug4", + ".eur4", + ".ext4", + ".fe3la", + ".fer4no", + ".fi3d", + ".fi3est", + ".fi4le.", + ".fi4len", + ".fi2s", + ".flu2g1", + ".fs4", + ".fu2sc", + ".ga2me", + ".gan4ga", + ".ga2s1", + ".gas3e", + ".ga4sp", + ".ga4t", + ".gd2", + ".gebe4a", + ".geb2l", + ".gee4", + ".gel4b3r", + ".gel2d1", + ".ge3lu", + ".ge3m", + ".ge5nar", + ".ge3n4e", + ".gene7cke", + ".ge3n2o", + ".ge3r4a", + ".ger2e", + ".ge3ro", + ".ger4s", + ".ge3sa", + ".glan2", + ".glanz3", + ".gol6der", + ".gs4", + ".gus2", + ".halt4e", + ".hau2t1", + ".he2", + ".he4bei", + ".he3fe", + ".he3le", + ".he4r3an", + ".he3rat", + ".her6b5ra", + ".he3rer", + ".he3ri", + ".he6r5inn", + ".hin3u", + ".hips4", + ".hi4s", + ".hof1", + ".ho4fen", + ".ho4met", + ".ia4", + ".im2a", + ".ima4ge", + ".im5m2", + ".in1", + ".ind2", + ".in3gl", + ".ink2", + ".in3n2e", + ".in3sk", + ".in3t2", + ".inu1", + ".io4d", + ".ioni1", + ".ire3", + ".is2a", + ".is3ta", + ".it2h", + ".iv2", + ".joni1", + ".ka2b3l", + ".ka2i", + ".kal2a", + ".ka3le", + ".ka3t2a", + ".kat3i", + ".ka4ti4o", + ".ki4e", + ".klang3", + ".ko3b", + ".kopf1", + ".kor4da", + ".kraf2", + ".ks4", + ".kus2", + ".la3be", + ".lan8de8mi", + ".le4ar", + ".le4gas", + ".le3n2i", + ".lich8t7er8s", + ".li2f", + ".li4ve.", + ".lo4g3in", + ".lo2sc", + ".los3s4", + ".lo2tr", + ".lo3ver", + ".luster6", + ".lus4tr", + ".lut2h", + ".ly2s3", + ".ma3d", + ".ma3ge", + ".mal4e", + ".ma2st", + ".mat4c", + ".ma5tr", + ".matu3", + ".md2", + ".mel2a", + ".me3ne", + ".me3no", + ".men8schl", + ".men8schw", + ".mes4sp", + ".mi2f", + ".mik4", + ".mil2z1", + ".mi2s", + ".mi4t1", + ".mm2", + ".mutter5", + ".na3no", + ".na3t", + ".näs1c", + ".nebe4n", + ".ner2f", + ".ne1ro", + ".ne2s", + ".nich2", + ".nicht5e", + ".ni4e", + ".ni3k4l", + ".no2th", + ".nul2", + ".nus2", + ".oa3", + ".ob1a", + ".obe2", + ".ober5ei", + ".ob3i4t", + ".och3", + ".of2e", + ".oper4", + ".or2a", + ".ord4e", + ".or3g", + ".or3k2", + ".ort2", + ".orts3e", + ".os3s", + ".os4ta4", + ".oste2", + ".ost5end", + ".os8ten8de", + ".oste6re", + ".os8terwe", + ".os4tes", + ".os2t3i", + ".os4tig", + ".os4t3r", + ".os4tu", + ".ot1a", + ".ou2t", + ".ou4te", + ".ozo4", + ".öd2", + ".öl3l", + ".pab4", + ".part4h", + ".pe2c", + ".pe3la", + ".pe3le", + ".pe3na", + ".pf4", + ".ph4", + ".poka2", + ".po4st", + ".postei6", + ".pro1", + ".ps2", + ".rabe4", + ".ra3ch4e", + ".ra3me", + ".rau2m", + ".rau8schl", + ".räu3sc", + ".re3ale", + ".reb3s2", + ".re3cha", + ".re5insz", + ".reis6e5i", + ".rei4s5t", + ".reli1", + ".res6tr", + ".ri4as", + ".richt6e", + ".ro4a", + ".ro3be", + ".ro2e", + ".ro2h", + ".ro3m", + ".rom4a", + ".ro2st", + ".ro2t3r", + ".rö2s", + ".ruf3s", + ".ruh2r1", + ".runder6", + ".rü1b", + ".rü6cker6", + ".sa3br", + ".sali3e", + ".sami1", + ".sau1c", + ".sau4er", + ".sau5er.", + ".sch4", + ".schaf8t7end", + ".scheiner8", + ".se3ck", + ".se2e", + ".seein4", + ".se2ha", + ".sen4f", + ".sen5s", + ".se3re", + ".se1ro", + ".se2t1", + ".sha2", + ".si4en", + ".si3gn", + ".si4te", + ".ski1e", + ".skis2", + ".sour2", + ".spani7er.", + ".spiege8lei", + ".st4", + ".stau8be8cken.", + ".ste2i", + ".steiner8k", + ".sto4re", + ".stro6ma", + ".sucher6", + ".tage4s", + ".ta3mi", + ".tan4k3a", + ".tan4k3l", + ".ta3ra", + ".tar3t2", + ".ta2t1h", + ".ta2to", + ".ta4tor", + ".ta2t1u", + ".te2e", + ".te2f", + ".tehe3", + ".teiler8s", + ".tei8l7ersc", + ".te3le", + ".te3no", + ".te1ra", + ".te2s", + ".te4st", + ".test3r", + ".th4", + ".ti2a", + ".ti2e", + ".ti2me", + ".ti4mes", + ".ti3r", + ".ti2s", + ".tischen8", + ".ti8sch7end", + ".tite4", + ".tode4", + ".to4der", + ".todes3", + ".to2n", + ".to4nat", + ".ton3i", + ".to4nin", + ".tons2", + ".to4pl", + ".to2pr", + ".to2w", + ".tri3es", + ".tro2s", + ".ts4", + ".tse3", + ".tu3ra", + ".tu3ri", + ".turm1", + ".tur4ma", + ".ub2", + ".ufe2", + ".ufer3", + ".ul2b3", + ".um3", + ".uma2", + ".ume2", + ".umo2", + ".un3a2", + ".un3d", + ".un3g2", + ".uni4t", + ".un3s", + ".uns4t", + ".ur3a2d", + ".uran6fa", + ".ur1c", + ".ur1e", + ".ur4inf", + ".ur3o4m", + ".ur1o2p", + ".ur3s2", + ".ut2a", + ".ut3r", + ".ve5n2e", + ".voll1", + ".vo4r", + ".wah4l", + ".wa2s", + ".weg5s", + ".weine4", + ".wei4ta", + ".welter8e", + ".welter8k", + ".wer6ker", + ".wer4kr", + ".wer4tr", + ".wetterer8", + ".wi4e", + ".wor2", + ".wort5en6", + ".wor8tend", + ".wor4tu", + ".wur2f1", + ".xe3", + ".ya4l", + ".zel4la", + ".zelle4", + ".zel6leb", + ".zeug4i", + ".zi2e", + ".zie4l3u", + ".zin4ka", + ".zin4s3c", + ".zin4st", + ".zuch2", + ".zug3l", + ".zu4gra", + ".zu2pf", + ".zwe2", + ".zweigen8", + ".zwei8g7end", + "a1ab", + "aa2be", + "aa1c", + "a1a2ce", + "aa2gr", + "a1akt", + "aals2t", + "a1a2n", + "a2ans", + "a1aq", + "2a2ar", + "aa2r3a", + "aar3b", + "aar3d", + "aa3rea", + "aa2rei", + "aarf4", + "aar3g2", + "aar3k4", + "aart4", + "1aas", + "aas5t", + "aata2", + "aa2th", + "aa4t3r", + "aat4s3", + "2a3au", + "a1ä", + "a1b", + "2aba", + "3abad", + "abais4", + "ab1alt", + "a3b2am", + "ab2ant", + "ab1au", + "ab1ä", + "ab2är", + "ab2äu", + "2abbat", + "2abbin", + "1abd", + "2a3be.", + "2a3bec", + "2abee", + "ab1eic", + "abe3i4d", + "ab1eil", + "ab1ein", + "2ab2el", + "abe2la2", + "2a3ben.", + "1abent", + "2aber", + "a2berd", + "a3bere", + "a3beri", + "ab1er2k", + "ab1er2r", + "ab1er2z", + "4abes", + "abe2s1e", + "ab3esse", + "2abet", + "2abew", + "1abf", + "1abg", + "3abga", + "1abh", + "2abi", + "4abil", + "ab1ins", + "ab1ir", + "abi3st", + "ab1it", + "abi4tur", + "1abk", + "ab1l", + "1a2bla", + "a3blat", + "1a2blä", + "a2b3led", + "3ab3lei", + "a3blem", + "2ablet", + "ab3li", + "a2blin", + "ab4lit", + "2ablo", + "1a2blö", + "a2blu", + "1abn", + "2abo", + "3a2bo.", + "ab2of", + "3a2bon", + "4abot", + "2abö", + "ab3r", + "a4brä", + "a2bre", + "ab4ros", + "2abrö", + "a4bs", + "1ab5sc", + "1ab3s2p", + "abst2", + "3absta", + "1abstu", + "ab3sz", + "1abtei", + "abte2s", + "3abtr", + "2abu", + "abu3g4", + "a2bum", + "ab1ur", + "2abü", + "1abw", + "2aby", + "aby4t", + "3abz", + "2ac.", + "2a3ca", + "1ac1c", + "2acci", + "a1cem", + "a1cen", + "a2ceo", + "ach1a", + "a1chal", + "a3chari", + "ach3as", + "ach3au", + "2achb", + "2a1che", + "a2ch1e4c", + "ach1ei", + "ach4ei.", + "a2chep", + "a4cherf", + "ach5erfa", + "a4ch3erh", + "a4ch3erl", + "a4cherö", + "a4ch3erw", + "2achf", + "2a1chi", + "a2chim", + "ach3l", + "2ach3m", + "ach3n", + "a1cho", + "a3cho.", + "a2cho2r", + "ach3öf", + "4ach3r", + "2achsc", + "achs4el", + "ach3s2i", + "ach3skr", + "achs4or", + "ach3su", + "a4cht", + "ach4tak", + "ach6terf", + "ach8tersp", + "ach6t5erw", + "ach4t1o", + "acht5rat", + "ach8traum", + "ach8träume.", + "ach8träumen.", + "ach6trit", + "acht6s5al", + "ach4tum", + "a1chu", + "ach1u2f", + "ach3ü", + "2achv", + "4ach1w", + "a2chy", + "a1ci", + "a1ckar", + "a3ckel", + "a2ckin", + "ack2sp", + "acksta4", + "2a1cl", + "acon4n", + "2acu", + "a1ç", + "a1d", + "2ad.", + "2ada.", + "4adab", + "ad2abr", + "ad2ag", + "ad1an", + "3adap", + "4a3d2a2r3", + "2adas", + "2adat", + "a2d1au", + "a3dau.", + "1a2dä", + "ad1c", + "1add", + "2ade.", + "ade2al", + "a3dec", + "a3dee", + "adefi2", + "2adeg", + "a3dell", + "4a3den", + "aden1a", + "ade4nat", + "adeo2", + "ade1ra", + "a2d1erk", + "4ade1s", + "ade3s2p", + "ades4s", + "2adf", + "4adh", + "4adi", + "adi3en", + "adi3er.", + "adie4sc", + "adi4st", + "3adj", + "2adli", + "3admi", + "4admu", + "ad2ob", + "ado2n", + "ado4na", + "a2dop", + "ad2os", + "2adp", + "2adq", + "a2dre", + "2ad3rec", + "ad3rei", + "ad3run", + "2ads2", + "ad3st", + "ad3sz", + "2ad2t1", + "ad4te2", + "1adv", + "2a3dy", + "2a1e1", + "ae2b", + "a2ec", + "ae2ck", + "ae2d", + "ae2i", + "a2ek", + "a2el", + "a3el.", + "a4ela", + "a4ele", + "a4eli", + "a3els", + "ae2m", + "ae2o3", + "aeop2", + "ae2p", + "a3er.", + "3a2er2o1", + "aes2a", + "ae2sc", + "aes5t", + "a2ew", + "ae2x", + "2afa", + "af1ab", + "a2f1a2n", + "a3far", + "a2f1au", + "2afä", + "a2f1än", + "2afe", + "a2f1ec", + "a4fentl", + "a4f1ep", + "aff4a", + "af2f3l", + "aff2s", + "aff4th", + "2afi", + "afi6kanz", + "afi4kat", + "afi2t", + "2af3l", + "af1la", + "a1f4lu", + "2afo", + "a2f3oc", + "a2ford", + "a2f1ort", + "afo1s", + "2afra", + "af3rau", + "af3rä", + "af3re", + "2afro", + "af3rö", + "af4rü", + "af3s2a", + "af3s2h", + "af2si", + "af2sp", + "afs4t", + "af2t1a", + "af3tat", + "af2tei", + "af2te2l", + "aft4erk", + "af2t1o", + "af2tö", + "aft3r", + "af2tra", + "aft5rei", + "aft4stä", + "af2tur", + "a2f3ur", + "2afü", + "afür3", + "a1g", + "2ag.", + "2aga", + "ag1a2b", + "ag1a2d", + "ag1ar", + "a2g1au", + "ag2del", + "ag2dr", + "ag2du", + "4age.", + "age4l3ei", + "age4ler", + "4a3gen.", + "age4neb", + "a2gent", + "2ages", + "age4sam", + "age4s3in", + "ages3p", + "ages6sen", + "ages3ti", + "3aggr", + "a2g1id", + "a2gim", + "2a2gl", + "ag4lan", + "ag4las", + "ag3le", + "a4glö", + "2agm", + "ag2n", + "ag4nat", + "a4gnä", + "ag4ne.", + "ag4nu", + "ago3b", + "ag3rat", + "a2g3re", + "a2gri", + "ag3rie", + "ag3rin", + "2ags", + "ag3s2ah", + "ag4sam", + "ag3s4eid", + "ag7s8porta", + "agst2", + "ag1ste", + "ag3stö", + "2agt", + "ag2th", + "2agu", + "a2gund", + "2ah.", + "2a1ha", + "ah2an", + "ah4at", + "a1hä", + "2a1he", + "ahe1in", + "a2h1er2h", + "ahe1s", + "ahe3u", + "a1h2i", + "ahin3", + "ah2l3a2", + "ah2l1ä", + "ah2l1ei", + "ah2lel", + "ahle4na", + "ah4l3erd", + "ah4l3erh", + "ahl1o2", + "ah2lö", + "ahl3sz", + "ahme1i", + "ahme3s", + "ah3mu", + "ah4n3a", + "ah3nee", + "ah2nef", + "ahn3el", + "ah4nerd", + "ahner4e", + "ahner6le", + "ahner4n", + "ah2nin", + "ah2no", + "1a2hor", + "ah1os", + "ah3ös", + "4ahr", + "ahr1a", + "ah3r2e", + "ahren6sc", + "ahre4s", + "ahr6tage", + "ahr6teng", + "ahr2ti", + "ahr4tro", + "ahr4tun", + "ah2ta", + "ah2te2l", + "ah2t1ex", + "ah4t3r", + "aht3s6", + "a1hu", + "ah1w", + "a1hy", + "2ai.", + "ai1a4", + "a1ia.", + "2aib", + "ai2bl", + "aid2s", + "ai1e4", + "ai3en3", + "aif4", + "ai1fr", + "a4i3g4", + "a3ik.", + "ai3ke", + "ai2lar", + "ail3d4", + "ai2lei", + "ail3g", + "ai2lo", + "4ain", + "ain2a", + "a1ind", + "ai5n4e", + "ain3s", + "ains2p", + "3airb", + "ai2sa", + "a3isch.", + "ai5schw", + "ai3s2e", + "ais4se.", + "ait4", + "a3iv.", + "a3ivl", + "a3ivs", + "a1j", + "a2jat", + "aje2", + "ajekt4o", + "2ak.", + "2aka.", + "2aka3b", + "akab4r", + "a2kad", + "2akal", + "2a3kam", + "2akan", + "2akar", + "ak4at", + "akat1a", + "aka4tak", + "1akaz", + "4akä", + "2akb", + "2akc", + "2akd", + "2a1ke", + "a2kef", + "a2k1em", + "a2kent", + "a2kes", + "ak2et", + "a2keu", + "2a1ki", + "ak1ins", + "aki1s", + "1akku", + "2ak3l", + "a1k4la", + "ak4li", + "3aklö", + "a1kna", + "2ako", + "2a1kr", + "4akra", + "ak3res", + "a3k4ri", + "3akro", + "ak3rü", + "2aks", + "ak3sh", + "ak2t1a2b", + "2aktb", + "ak2tel", + "akt2er", + "2aktg", + "2aktik", + "2aktis", + "2aktm", + "ak2to4b", + "ak2tö", + "ak2t3r", + "ak5t4ri", + "2aktsi", + "2aktsp", + "2aktst", + "2aktw", + "a1ku", + "2akun", + "a2kup", + "2akur", + "aku2s", + "4akü", + "1akz", + "3akze", + "a1la", + "2ala.", + "2alabo", + "al1af", + "al1age", + "2alai", + "al1akr", + "al1am", + "al1ana", + "2aland", + "a2lang", + "al1anz", + "al1app", + "a3lar.", + "al3arc", + "a3lare", + "2al1arr", + "a2lart", + "ala2s", + "al1asi", + "al1ass", + "a3lat.", + "al4atm", + "alat3z", + "al1au", + "al3aug", + "a1lä", + "a2l1äm", + "al1än", + "al1ärm", + "al1äu", + "3albat", + "al2bär", + "alber4e", + "al4berh", + "al4b3er4w", + "al2b1l", + "al2boh", + "al2bon", + "alb3ru", + "alb3st", + "al4dan", + "al2dä", + "al4d3erl", + "al4d3ern", + "alde2s", + "ald3inn", + "al2dra", + "al2drä", + "alds2", + "2ale", + "4a3le.", + "ale4ar", + "a2l1e2b", + "al1eck", + "a4l1ef", + "a2l1ei", + "a3l2eic", + "a4lein", + "a2l1el", + "3a2lema", + "a2l1e2mi", + "4a3len.", + "alende4", + "al3endr", + "a4l3ends", + "a2leng", + "al2enn", + "ale2p", + "al1epo", + "4aler.", + "a2l1erb", + "aler2e", + "a2l1erf", + "a2l1er2h", + "aler4kl", + "a2l3erl", + "al1erm", + "aler4mi", + "a2l1er4r", + "al2ers", + "a2l1ert", + "3a4l3erwä", + "4ales", + "a2l1e4sk", + "a2less", + "a4leth", + "a2l1eu", + "alf4r", + "3algi", + "al2gli", + "al3glo", + "1algo", + "3algor", + "alg4r", + "2ali", + "al2imb", + "al1imm", + "ali4nal", + "al1ind", + "alin4ge", + "a2l1in2q", + "al1ins", + "alken1", + "al2klö", + "al2kne", + "al2kof", + "1alkoh", + "alk3s2", + "alks4t", + "al2lab", + "al3lad", + "al2l1an", + "al2l1a2r", + "al3le.", + "al4lec", + "3allee", + "al3lend", + "all3erk", + "aller4z", + "al3les", + "al2lid", + "alli5er.", + "alli7ers.", + "al2lob", + "al2lop", + "al2löf", + "al2map", + "al4m3ast", + "almo6de.", + "2alo.", + "a2l1ob", + "3a2loe", + "a2l1of", + "4alog", + "alo2ga", + "alo2gr", + "al1ont", + "al1ort", + "2alos", + "a2l1ö", + "al2ös", + "3alp.", + "3alpe.", + "1alph", + "al2pho", + "alrat4", + "al3sak", + "al6schei", + "alsch3s", + "al3ska", + "al5s6terb", + "al2stu", + "al2sum", + "al2t1ak", + "alt3alg", + "al3tam", + "al2tan", + "al2tat", + "al2tau", + "1altä", + "alt3eis", + "alt3elt", + "al4temu", + "al4t3er5f", + "al2teu", + "al2tid", + "al2tin", + "alt1op", + "al2tö", + "al4t3rat", + "al2tre", + "al4t3ri", + "al2t3ro", + "alt4stü", + "a1lu", + "alu3b4", + "al2u3f", + "alu3g", + "al1u2k", + "a2lum", + "al1umb", + "a2l1ur", + "a3lus", + "4aly", + "al2zar", + "al2zau", + "al3zen", + "alz4erk", + "al2zw", + "2am.", + "am2a", + "ama2ba", + "ama3d2", + "ama3g", + "a2malg", + "2a3m4an", + "1a2maz", + "2amä", + "4ame.", + "a2meb", + "2amel", + "am4e4n1", + "amen6spr", + "ame3r2a", + "amera3u", + "a2m1erf", + "1a2meri", + "ame5r2u", + "2ame1s", + "a4mesh", + "2a3met", + "2amf", + "a3mi.", + "a3mie", + "ami2k", + "am4ing", + "2a3mir", + "2a3mis", + "2amit", + "2amk", + "2aml", + "2amm.", + "am2mab", + "am2m1ac", + "2ammal", + "am4mant", + "am2mar", + "am2mei", + "ammes3", + "am2mid", + "ammi2e", + "am2min", + "am2mor", + "am2m1ö", + "ammu2", + "amni1", + "a2mö", + "2ampe.", + "2ampen", + "am4pf", + "amp2f1a2", + "2am2ple", + "2ampo", + "am3pr", + "amp3s2", + "2am2s", + "am3sa", + "4amsc", + "am4schl", + "3amse", + "am3s2h", + "am3so", + "am3sp", + "am3su", + "1amt.", + "am2t1a2", + "am4tau", + "am2t1ä", + "am2tei", + "amt3eig", + "am4tel", + "am2tem", + "amter4", + "am4terh", + "am4t3ern", + "am2t1ex", + "am2tis", + "am2tit", + "am2to", + "am6tou", + "am2tö", + "am2t3r", + "am4tre", + "am4tri", + "am2t1u", + "2amtv", + "2amu", + "3a2mul", + "2ana.", + "2anab", + "ana3c", + "4an2ad", + "anadi1", + "an2ag", + "2a3nak", + "an1alg", + "ana4lin", + "2anam", + "an2a3ma", + "2anan", + "an4and", + "2ana1s", + "a5nat.", + "ana4th", + "a5n4atm", + "a2nato", + "ana4tr", + "a5nats", + "an3aug", + "1a2n1äs", + "1anb", + "2anbas", + "2anbö", + "2anbu", + "an3ch", + "2and.", + "3an3d2ac", + "and3arm", + "and3ei", + "anden6ga", + "an4d3ent", + "and5erob", + "ande4sc", + "an2d1ex", + "and4sas", + "and4seh", + "and2so", + "and6spar", + "and6spas", + "and2su", + "4andu2", + "an2d1ur", + "andy1", + "2ane", + "an3e2c", + "a3nee", + "an2ei.", + "an3eif", + "3aneig", + "a4neis", + "3a2n1e4k", + "ane2l", + "an1e2mi", + "a2nemo", + "aner4fa", + "a3nerg", + "an2erh", + "a4nerke", + "4anern", + "a4nerz.", + "an4erze", + "an1eth", + "3anex", + "1anf", + "2anf.", + "2anfab", + "3anfä", + "an3fe", + "2anfi", + "an4fj", + "anf3le", + "4anfors", + "anf5rau", + "2anfs", + "an3f2u", + "4ang.", + "1anga", + "2anga.", + "an2g1ar", + "2angas", + "2ange.", + "1angeb", + "an2g1ei", + "an4g3erf", + "an4g3er4h", + "an4g3er4w", + "an4g3erz", + "2angh", + "2angie", + "ang1l", + "an2gla", + "ang5n", + "ang1r", + "ang3ra", + "1an3gri", + "2angs.", + "ang4sto", + "angt2", + "1anh", + "2a3ni", + "an2i3d", + "ani3els", + "ani5ers.", + "anig2", + "ani3ke", + "3a4nim", + "a4nind", + "ani2o", + "an3i4on", + "a4niso", + "2anj", + "2ank.", + "an2kab", + "an2k1ak", + "an2kan", + "an2kei", + "2an3ken", + "ank5erfa", + "an3kes", + "2anki", + "an2kid", + "an2klö", + "an2klu", + "ank3no", + "an4k3opf", + "an2kor", + "ank1r", + "ank3ra", + "an4kras", + "ank3rä", + "an2kro", + "2anks", + "ank3se", + "anks2p", + "2ankt4", + "1anl", + "2anlad", + "3anlag", + "2anmo", + "1anmu", + "2ann.", + "1annah", + "an2nar", + "an3ne", + "an4nef", + "an4nei", + "an4nene", + "annen3s4", + "ann2er", + "2anns", + "ann4s3p", + "2annt", + "2ano.", + "1an1od", + "2anof", + "2anog", + "2a3nol", + "ano2la", + "1a2nom", + "a3nom.", + "2anoo", + "a2n1or", + "ano2ri", + "2a3nos", + "2a1nö", + "2anpu", + "1anr", + "2anrö", + "an4same", + "an3sar", + "1an3s2ä", + "3anschr", + "an3skr", + "ans1pa", + "ans3pon", + "1anspr", + "1anst", + "an3s2z", + "2ant.", + "ant3ar", + "anta4re", + "an3t2ä", + "1antá", + "3antei", + "an3tha", + "2antie", + "3antise", + "anton2", + "1antr", + "ant3rin", + "1antw", + "2anu", + "anu3r", + "anu1s", + "a1nü", + "1anw", + "2anwi", + "an2zä", + "2anzb", + "2anzd", + "1anzei", + "anz3elf", + "anze2n", + "2anzes", + "2anzg", + "2anzh", + "anzi2d", + "an2z1i4n", + "2anzk", + "2anzm", + "2anzr", + "2anzs", + "2anzt", + "1anzü", + "3anzün", + "2anzv", + "2anzw", + "an2zwi", + "2anzy", + "2ao", + "aof4", + "ao3i", + "a1op", + "aopf4", + "a1or", + "a1os5", + "aost2", + "a3ot.", + "ao3t4s", + "2a1ö2", + "a1p", + "4ap.", + "ap4a", + "apa3b", + "a2pe.", + "a3pel", + "a2pé", + "a2pf", + "ap2fa", + "1apfel", + "2apfes", + "a3pfl", + "a2pht", + "2api", + "2apl", + "ap4la", + "a3plä", + "ap3le", + "ap3li", + "ap2n", + "3a2pos", + "a2pot", + "ap3pu", + "2apr", + "ap2so", + "aps4ter", + "ap5t2", + "2a3pu", + "2ar.", + "a1ra", + "a3ra.", + "ar2ab", + "2ar3abb", + "ar3abf", + "ar3abt", + "ara3d2", + "ar3adr", + "ara3ge", + "2a2r3al", + "a3r4ale", + "a3rali", + "a3ralo", + "2aran", + "a2r1ang", + "a2r1anz", + "2arap", + "a4r3app", + "2a2rar", + "ara2st", + "ar2asy", + "4arat", + "a2r1au", + "a1rä", + "ar1äs", + "1arb", + "2arb.", + "2arba", + "ar2bak", + "ar2b3at", + "ar2bau", + "4arbef", + "ar4b3ein", + "2arbek", + "2arben", + "2arber", + "arb3erl", + "4arbi", + "2ar2bl", + "2arbo", + "2arb1r", + "2arbs2", + "arb3sk", + "arb3so", + "2arb3t2", + "2arbu", + "1ar1c", + "2archl", + "2archr", + "ar2dau", + "arde4i", + "ar2dop", + "ar2d3r", + "ar2du", + "a2rea", + "are5aler", + "a2reb4", + "aree2", + "ar1eff", + "a2reh", + "ar1ehr", + "2arei", + "a3rei.", + "ar1eid", + "a3reie", + "a3reih", + "areim3", + "a2rein", + "arein4b", + "arein4s", + "arein4t", + "a2rele", + "4arem", + "4aren.", + "aren6sem", + "are3r2a", + "arer2e", + "a4r3erei", + "a2rerg", + "a2rer3h", + "a2reri", + "a2rerk", + "a2rerl", + "a2rert", + "ar2erw", + "2ares", + "ar2et", + "are3u", + "a2rev", + "arf1r", + "arf3ra", + "arf2sp", + "4arg.", + "ar3gan", + "ar2gl", + "ar4gn", + "2arg4o", + "ar3g4r", + "arg4s", + "2arh", + "2ari", + "ar2ia", + "a2rid", + "ari3e2n", + "ari3erd", + "ari3erg", + "arin3it", + "arin3s4", + "ar1int", + "a3r4io", + "ar2ir", + "ar4is", + "ari2su", + "a3riu", + "ar2kal", + "ar2k1ar", + "ark3aue", + "arker2", + "ar2kil", + "2ark3l", + "ar4klag", + "ar2kle", + "ar2klo", + "ark4lö", + "ar2koa", + "ar2kor", + "ark3s4a", + "ark2se", + "ark3she", + "ark4tre", + "ar2les", + "ar3mad", + "arm1au", + "ar3m2ä", + "ar2m1eg", + "ar2m1ei", + "arm2or", + "ar2mum", + "4armü", + "4arn", + "ar2nan", + "arn2el", + "ar3ni", + "a1ro", + "arob2", + "4aroc", + "aro8ckeng", + "ar1o2d", + "ar1of", + "aro2fe", + "2a3rol", + "aro3m", + "a2r1op", + "a2ror", + "aros3", + "aro4st", + "1a2rou", + "a2r1ö4", + "2arp", + "arr1ac", + "ar2r1ad", + "ar2r1as", + "arre4n1", + "ar2rh", + "2arri", + "ar2r3or", + "ar3se", + "ar3s2h", + "ar3s2i", + "ars3ka", + "ars4kat", + "ar3sta", + "ar2tau", + "2artb", + "ar3t2e", + "2artei", + "2artex", + "ar3t2i", + "2arto", + "art3r", + "art4res", + "ar2tri", + "2arts", + "art3ske", + "art2sp", + "2artuc", + "2arty", + "2aru", + "a2r1uh", + "ar1um", + "a3rumm", + "a2rü", + "2arv", + "arwa2", + "2a3r2y", + "2arza", + "ar2zau", + "ar2zä", + "2arze", + "2arzi", + "ar2zö", + "1arzt", + "arz4tei", + "arz4tem", + "arz4ti", + "arz2t3r", + "2arzu", + "ar2z1w", + "2asa", + "a4s3aa", + "a2s3af", + "a3sag", + "a3s2al", + "asal2t1", + "as1am", + "as3art", + "asa2s", + "as3at", + "asau4f", + "a4s3aug", + "a2sä", + "as3ät", + "asbes2", + "a6sca", + "a4schec", + "a4schef", + "a4sch3ei", + "a6scher6g", + "a3s4chi", + "a2schm", + "2ascht", + "a3schu", + "a4schum", + "2asd", + "4ase", + "a2seb", + "a2sec", + "a2s1ef", + "as1eie", + "as1emi", + "a3sen.", + "ase4na", + "ase4n3o", + "asen6sem", + "as2er", + "as4erd", + "ase2re", + "aser6geb", + "a4s3erke", + "as4es", + "ase4t", + "a2sex", + "2asf", + "asges4", + "2ash", + "a3s2hi", + "as3hir", + "2asig", + "a2s3i2k", + "2asim", + "asin2g", + "as1inn", + "2asis", + "aska3s", + "as3ku", + "2aso", + "as3ob", + "as1of", + "a3sol", + "a3som", + "as1o2p", + "as1or", + "a4soz", + "a2sö", + "a2s1p", + "aspek6to", + "as2ph", + "a3s2pi", + "as3pik", + "as3pio", + "a4spir", + "2aspr", + "as2pra", + "2as3sa", + "ass2a3b", + "ass6aus.", + "ass2e", + "ass3ein", + "asse3le", + "ass2i", + "as3ski", + "as3so", + "as2spo", + "as2spr", + "as2st", + "as3sta", + "as3stei", + "as3sti", + "as3str", + "as3stu", + "2asta", + "a3stad", + "a1stas", + "as3tat", + "a3stä", + "as3te", + "ast2el", + "ast2er", + "as4t3ese", + "as4tex", + "as2th", + "ast2id", + "as3tie", + "as3til", + "as3to", + "as4tof", + "ast3orc", + "a1str", + "ast3re", + "as3t4ren", + "as6t5ritt", + "ast5roll", + "as3tub", + "2asu", + "as2ur", + "asu4s3", + "a2sü", + "aswa2s", + "1asy", + "3asyl", + "2asys", + "a1ß", + "aße4", + "aß2en3", + "2a1t", + "4ata", + "at1abe", + "at1abr", + "at2a1f", + "a5ta3g", + "at2ago", + "ata3la", + "a3tam", + "at1apf", + "at2ast", + "at3att", + "a2t1au", + "at1än", + "4atb", + "at2c", + "a2teb", + "a3tec", + "ateien6d", + "at1eig", + "3a2teli", + "3a2temg", + "at2en", + "ate4na", + "aten3s4e", + "a2tep", + "4ater", + "ate3r4al", + "ate3ran", + "at4ere", + "atern2", + "ater3st", + "ate2ru", + "4ates", + "ates4sa", + "a3tet", + "at2eu", + "a2tew", + "4atha", + "at3hag", + "at3hal", + "a3t2heb", + "ath3in.", + "3athl", + "a4thr", + "at2hu", + "at3hü", + "4a3ti", + "ati4kab", + "ati6k5erw", + "a4tinf", + "at2is", + "ati2sa", + "ati2se", + "a4tiso", + "atis3s", + "ati6v5erf", + "3atla", + "4atli", + "3atm", + "4atma", + "4atmä", + "4atmus", + "a2t1ob", + "3a2t4om", + "atom1e", + "ato2mo", + "at1op", + "at1ort", + "a3to3s", + "atra4t", + "a2t3rau", + "a2t3rä", + "at3re", + "at3rin", + "at3rom", + "at4ron", + "at3rot", + "at3rü", + "at2sa", + "at4schn", + "at2se", + "ats1e2h", + "at2si", + "ats1in", + "at2s1o", + "at2s1p", + "ats3tät", + "at2su", + "at3ta", + "3attac", + "at4tad", + "at4t1ak", + "atta2l", + "at4tale", + "at4tals", + "at4tang", + "at4tar", + "at4tau", + "at2tä", + "4atte.", + "at2t3ec", + "at2tei", + "at3t2el", + "4at5ter", + "at3thä", + "at3ti", + "4atto", + "at2tob", + "at2t3rä", + "att3s2", + "at3t2u", + "4atu", + "a3tub", + "atu2n", + "a3tü", + "atze4l", + "atz3ela", + "atz3elt", + "at2zem", + "at2z1er", + "a3tzere", + "at2z1in", + "atz3t2", + "at2z1w", + "a2u", + "2au.", + "2au3a2", + "2aub", + "au2bab", + "au2ban", + "au2b1au", + "aube4n", + "au2beu", + "au2blä", + "au2bli", + "au2blo", + "au2blu", + "aub2si", + "2auc", + "au2dr", + "2aue", + "aue2b", + "au2ere", + "aue3rei", + "auer3ö", + "au5erst.", + "au3ert", + "aue2s", + "au2fa", + "auf1ak", + "auf1an", + "2aufe.", + "2aufeh", + "4aufen.", + "3aufent", + "auf1er", + "au4fer4k", + "au2feu", + "auff4", + "auf3ind", + "1aufla", + "1aufn", + "2aufo", + "auf3ski", + "auf3t2", + "2auft.", + "2aug", + "au2ga", + "au3g2ar", + "4augeb", + "4augeh", + "4augel", + "aug2er", + "4augl", + "4augr", + "au3gu", + "au3h", + "2au1i", + "au2is", + "4auj", + "auk3t", + "aule2s", + "aul4les", + "au3lü", + "4aum", + "au2mal", + "aume4n", + "au4m3ent", + "au2m1e2r1", + "aum3eri", + "au2m1id", + "au4mil", + "au4mit", + "au2m1o", + "aumo2r", + "aum3p2", + "aum3s6", + "au4mun", + "4aun", + "au3n2a", + "aun2e", + "au4n3ei", + "au2nio", + "au2no", + "au3nu", + "a4unz", + "2aup2", + "2aur2", + "au1rh", + "aurü3", + "au2s1ah", + "ausan8ne.", + "au2sas", + "au2sau", + "2ausc", + "au6schmi", + "1ausd", + "2ause.", + "au4s1eh", + "2ausen", + "au4s3erb", + "au4serf", + "au4s3erk", + "aus3erp", + "au4serw", + "1ausg", + "au2sin", + "au2sis", + "1ausl", + "au2so", + "aus1or", + "au2spr", + "1ausr", + "auss2", + "3aussag", + "aus4se.", + "aus3st", + "aust2a", + "2auste", + "au5stein", + "aust2o", + "aus5tri", + "3ausü", + "1ausw", + "1ausz", + "auße2", + "2aut.", + "au2tab", + "au2t1äu", + "2autb", + "2aute", + "au4t1e2l", + "au4ten4g", + "au4t3erh", + "aut5ero", + "2autg", + "au2thy", + "1auto", + "au4trö", + "2auts", + "2auu", + "2auv", + "auve4", + "2auw", + "2aux", + "2auz", + "auz2w", + "2a1ü", + "a1v", + "av2a", + "a3vang", + "avas4", + "ava3t2", + "avener4", + "2avi", + "a2v3r", + "2a1w", + "awi3e", + "a2wr", + "a1x", + "ax2am", + "a2xans", + "a3x2e", + "a3xid", + "a2xio", + "axis1", + "2a1ya", + "a1yeu", + "ayma4", + "ay1of", + "ays2", + "aysi1", + "ay3t", + "a1z", + "az4a", + "a3za3d", + "3azal", + "a3z2i", + "az2o", + "a3z2u", + "az2zen", + "az2zw", + "ä1a", + "1ää", + "2ä1b", + "ä2b3l", + "äb2s", + "äbte1", + "ä1ce", + "ä1che", + "äche1e", + "äche4n", + "ä1chi", + "äch3l", + "ä2chr", + "äch4sa", + "äch2s1o", + "äch2sp", + "äch2st", + "ächt4e", + "ä1chu", + "ä1ck", + "ä1d", + "ä2da", + "äde1s2", + "ä2d1ia", + "ä2d3r", + "äd2s", + "äd3te", + "2ä1e", + "äe4k", + "ä3eu", + "äe2x", + "äfe4n", + "äf2fl", + "äfig3", + "äf3l", + "äf3r", + "äf4ro", + "äf2s", + "äf3t2e", + "äft4s3", + "ä1g", + "ä2g1a", + "1ä2gä", + "ägd2", + "ägen4e", + "äge2r3a", + "äge3s", + "ä2g3l", + "äg2n", + "ä2g3r", + "äg4ra", + "ägst2", + "äg3sta", + "äg3str", + "1ä2gy", + "äh1a", + "2ä3he", + "ä4h1ei", + "äher8gebn", + "äher5t", + "ä1hi", + "äh1in", + "ähl1a", + "äh3l2e", + "äh4l3e4be", + "äh5ler", + "2ähm", + "äh3na", + "äh3ne", + "1ähnl", + "2ähr", + "äh2rel", + "äh3ri", + "2ähs", + "2äht", + "ä1hu", + "äh1w", + "2äi", + "ä1im", + "ä2is", + "ä3is.", + "ä3isch.", + "ä3isk", + "ä1j", + "ä1k", + "äka2la", + "äk3l", + "ä2kle", + "äk4li", + "ä2k3r", + "ä1la", + "älbe2", + "äl4bl", + "älk3", + "älks4", + "äl2l1a", + "äl2p3", + "äl4schl", + "äl2st", + "ält2e", + "älte1i", + "ä1lu", + "2äm4a3", + "ä3me", + "ämer2s", + "ämi3en", + "2äml", + "ämoni3e", + "2ämp", + "ämp7f4e", + "äm2s", + "ämt2e", + "ämter3", + "2än.", + "än2dr", + "2än2e", + "äne2n1", + "äne1s", + "2än2f5", + "änft2", + "4än3g2e", + "änge4ra", + "2än2gl", + "äng3le", + "än2gr", + "äng3se", + "2ä3ni", + "än3k2e", + "än2k3l", + "än2kr", + "änk2s", + "2änn", + "än3n4e2", + "2äns", + "än4s1a", + "än2s1c", + "äns2e", + "2änz", + "ä1on", + "äo3s2", + "ä1pa", + "1äpfel", + "äp2pl", + "äp2pr", + "äp2s1c", + "äp4st", + "1äq", + "ä2r3a4", + "är4af", + "är1ä", + "är2b3le", + "är1c", + "2ärd", + "ärde4s", + "2äre", + "ä2r1ei", + "ä2r1e2l", + "äre2m", + "är1emi", + "äre2n", + "ä2rene", + "ä2rerh", + "är2es", + "ärf2s", + "är3ge", + "ärg4s", + "ä2r1ind", + "är1int", + "är3ke", + "ärk2s", + "ärm3arm", + "ärm3at", + "ärme1e", + "ärm3ent", + "ärm2s", + "är1ob", + "är1of", + "ä1rö", + "är3re", + "ärse2", + "är2seb", + "är4seh", + "ärs1er", + "är2si", + "är3spu", + "är2st", + "är3str", + "2ärt", + "ärt4e", + "är2th", + "ärt2s3", + "ä2rü", + "1ärz", + "är2zu", + "är2zw", + "2ä3s2e", + "äse3g", + "äse1i4", + "äse5ref", + "äser4ei", + "äse4ren", + "äser2i", + "ä3s2kr", + "ä2s1p", + "2äs2s1c", + "äss2e", + "äss5erkr", + "äss5ersa", + "äss3erw", + "äs2sp", + "äs2s3t", + "ä4s3t", + "äst4e", + "1ästh", + "äs4tr", + "ä3su", + "ä1ß", + "äß1erk", + "äß1ers", + "ä2t3a2", + "2ä3te", + "äte3a", + "äte1e", + "äte1i", + "äte3l2", + "äte2n", + "äteo2", + "äter4bl", + "ät2et", + "ät1id", + "ät1ob", + "ä2t3r", + "ät4s3a", + "ät2sä", + "ät4schl", + "ät4schr", + "ät2s1i2", + "äts3l", + "äts1or", + "ät2s1p", + "ät2s3t", + "ät2su", + "ät2tei", + "ätte4n", + "ät4tr", + "ätze3l", + "ät2zw", + "2äub", + "äu2b3l", + "äu2br", + "äu1c", + "äu3d", + "äude3", + "äuder2", + "2ä2uf", + "1äug", + "äug3l", + "2äul", + "2äum", + "äu2ma", + "äum3p", + "äumpf4", + "äum4s5", + "2ä2un", + "äun2e", + "äu3nu", + "2äu3r2", + "äure1", + "2ä3us.", + "2äusc", + "äu4schi", + "äu4schm", + "äu3s2e", + "äuse1i", + "ä3usg", + "ä3usk", + "ä3usn", + "äu2s1p", + "äus2s1c", + "1äuß", + "äut2e", + "äu2tr", + "ä1v", + "ä2vi", + "1äx", + "ä1z", + "ä3ze", + "â1t", + "á1n", + "3ba.", + "b2aa", + "b3a2ba", + "2babf", + "2babg", + "ba2bl", + "ba2br", + "2b1abs", + "bach7t4e", + "ba4ck3er", + "back3s4", + "ba3d2e", + "bade1i", + "2b1adel", + "2b1adl", + "2b1adm", + "b1a2dr", + "ba2du", + "2b1af", + "3bah", + "bah6nene", + "bai3d", + "bais2", + "b2ak", + "ba2ka", + "ba2k1er", + "ba2k1i", + "ba2k5l", + "ba2k3r", + "ba2lab", + "ba2l1ak", + "ba3lal", + "ba2lau", + "baler2", + "ba4l3erk", + "balk4a", + "balke4", + "bal4l3eh", + "bal4l3ei", + "bal6lerg", + "ball6erk", + "2b1am", + "b2a3ma", + "ba2me", + "4bamt", + "ban2a", + "3b2and", + "band1a", + "ban4dal", + "ban4dan", + "ban4dar", + "ban6deng", + "ban2dr", + "ba3n2e", + "2banf", + "b1ang", + "ban3gl", + "ban4k1a", + "banker4", + "ban2kl", + "ban2kn", + "ban2kr", + "ban2ku", + "2banl", + "b1anna", + "ban2o", + "2b1ans", + "b1ant", + "2banw", + "b1anz", + "ba2r3ab", + "ba2rad", + "bar3ast", + "ba2rat", + "bar3de", + "ba2rei", + "ba3r2en", + "barer5ei", + "barer4t", + "barf4", + "3bar2s", + "bar3sc", + "b1arz", + "bar3zw", + "3b2as", + "ba3sa", + "ba2sc", + "bas2i", + "bas4sa", + "bas4st", + "ba2st", + "ba4t3ent", + "bat2o", + "3bau.", + "bau3b", + "bauer4l", + "bauer4s", + "bauer4w", + "bau1fl", + "bau1fr", + "bau3g2", + "b2auk", + "bau3r", + "bau1s", + "bau3s2k", + "baus4t", + "b1a2x", + "ba1yo", + "3b2ä1c", + "3b2äd", + "2b1äh", + "b2äl", + "2bärz", + "b2äs", + "2bäug", + "4b1b", + "b3be", + "bbe4n3", + "bbens2", + "bbe4p", + "bb3le.", + "bb2lö", + "b3brec", + "b3bru", + "bbru2c", + "bb2s", + "bbu1", + "4b1c", + "2b5d2", + "bdä4", + "bdän3", + "bde1s", + "bdome4", + "1be.", + "3bea", + "be3ab", + "be3an", + "beat2m", + "be3au", + "be4au.", + "3beb", + "b1ebb", + "1be1c", + "2becht", + "2b1e2del", + "bedi4", + "be1e2h", + "bee2l", + "be3ela", + "bee4rei", + "be1erh", + "be1erl", + "be1ert", + "be1eta", + "bef4", + "2b1eff", + "be3g4", + "be2he.", + "beh5ri", + "bei3b", + "2b1eier", + "bei1f4", + "bei4ge.", + "beige4l", + "beige4p", + "bei3k4", + "bei3l2a", + "2b1eime", + "be1ind", + "be1inh", + "bein6hal", + "bein4hi", + "bei3sc", + "beis2e", + "bei1s4t", + "beit4e", + "beit2s", + "beit4sk", + "beits3p", + "3bek", + "3bel", + "be3lag", + "be3las", + "bel3d", + "be3lec", + "4be2lek", + "be2l1en", + "bel3ere", + "be2let", + "bel3f", + "beli4e", + "bel3la", + "belle4n3", + "bel3li", + "bel3om", + "be2löf", + "bel3sz", + "belt2", + "bel4un", + "1bem4", + "3b2em.", + "3b2e3ma", + "2b1emp", + "2bemul", + "1ben", + "be5nabe", + "ben3ar", + "be4nas", + "be4nat", + "be2nä", + "b2ene", + "be3nei", + "be4n3end", + "be4ners", + "ben2eu", + "3beng", + "be2nid", + "be4nis", + "ben3n", + "5benp", + "b2ens", + "ben4s3pa", + "ben4spr", + "benst4", + "3bensz", + "2b1entb", + "2bentd", + "4benteu", + "2bentf", + "ben3th", + "ben6thei", + "ben5t4r", + "2b1ents", + "2b3entw", + "ben3un", + "b2en3z2", + "be1o", + "2b1epi", + "2bepoc", + "be1ra", + "be2rak", + "be2r3am", + "be2ran", + "bera2s", + "berb2", + "berbla4", + "ber3d", + "be2r1e2b", + "be4reck", + "be4r3eiw", + "bere2m", + "be4rene", + "ber4erg", + "ber4erw", + "bere4sc", + "bere4t", + "berf4", + "ber4g3af", + "ber4gal", + "ber4gli", + "ber4hab", + "beri2d", + "ber4in.", + "be5r6inne", + "berin4s", + "be2ri4o", + "ber3iss", + "ber3ko", + "ber3kr", + "ber3n2a", + "bern2e", + "b1ernt", + "be2rö", + "3bers.", + "ber5se", + "ber3st4a", + "bert2a", + "bert2e", + "bert2i", + "berz2", + "ber3ze", + "ber2zö", + "3b2e1s", + "be3sa", + "bes4abb", + "bes2am", + "bes2an", + "be4sap", + "be4sar", + "bes2au", + "be2sep", + "be2s1er", + "be2s1id", + "bes2po", + "bes3sa", + "bess4e", + "b3esst.", + "bes3sz", + "be4stab", + "beste2", + "be6stein", + "bester4", + "bes6terh", + "be4s5tol", + "bes4t3o4r", + "bes3tos", + "best4r", + "be4s3trä", + "be4s3tur", + "be2sur", + "be3s4ze", + "3bet", + "be3tam", + "be3tha", + "be3thi", + "bet2sp", + "be1un", + "be1ur", + "3bev", + "3b2ew2", + "2b3e2x", + "3b2ez", + "2b5f4", + "bfal2", + "bfal3t", + "2b1g2", + "b5ga", + "bge3", + "bgel2e", + "bge5n", + "bges4", + "2b1h2", + "b5hä", + "1bi", + "bi1ak", + "bi2ar", + "3bib2", + "bibe2", + "biber1", + "bi2c", + "bi3do", + "bien3s", + "bieres4", + "bie2s", + "biet2s", + "3bietu", + "biga1", + "bik2a", + "bi2ke.", + "bi2kes", + "bi2kre", + "3bil", + "bil2an", + "bil3ans", + "bil4deb", + "bi2lei", + "4billu", + "bi2lu", + "2bimp", + "2b1inb", + "bin2e", + "bine4n", + "b1inf", + "bin4fo", + "bin2g3a", + "2b1inh", + "bi2n3ok", + "bin4ol", + "2b1int", + "2b1inv", + "bi2o3", + "bioi2", + "biri1", + "3bis", + "bi3si", + "b1iso", + "bi2sp", + "bis2s1c", + "bi2st", + "bi3sta", + "bi1s4tr", + "b2it.", + "b2ita", + "b2ite", + "b2iti", + "bit4r", + "bi2tu", + "bi3z2", + "4b1j", + "bjek4to", + "2b5k4", + "bl4", + "2bl.", + "bla3b4", + "2b1lac", + "b3lad", + "b2lanc", + "blas3er", + "b2latt", + "b2lau.", + "b3laus4", + "2b3law", + "2b1län", + "b2läse", + "3blät", + "b2le", + "3ble2a", + "b3leb", + "3blec", + "b3leg", + "4bleh", + "b4lei.", + "2b3leid", + "2bleih", + "b3lein", + "blei3sc", + "2bleit", + "ble3l", + "ble2n", + "b3lenk", + "b3lese", + "2blesu", + "ble3s4z", + "3blet", + "b3leu", + "2blich", + "3blick", + "b2lie", + "2blief", + "4blig", + "b2lind", + "2b5ling4", + "b2lis", + "2blis.", + "b2lit", + "b3lite", + "b2lo", + "b4lo.", + "3b4loc", + "b4loi", + "b3los", + "3b4lum", + "2blun", + "b2lus", + "3blut", + "blu4tem", + "blut1o", + "3blü", + "2b1m", + "4b5n2", + "bnas4", + "bni2", + "bnis1", + "bo4a", + "bo5as", + "b1o2b", + "bo3ben", + "bob3r", + "bo2c", + "bo3ch2", + "bo3d2", + "boe1", + "bo2e3i", + "2b1of", + "bo3fe", + "bo3he", + "boh2ra", + "boh3rer", + "boh2u", + "bo1is", + "bo2lan", + "bo2lau", + "bol5le", + "3bon.", + "bo3n2a", + "bon2da", + "bon2d1e", + "bo2ne", + "3bons", + "boo4l", + "boo2ti", + "b1op", + "3bor.", + "bo1ra", + "bor2an", + "bo2r3as", + "bo2rau", + "bo4rä", + "bor2da", + "bor2d3r", + "bo2rei", + "bo4rig", + "bor3m", + "bor2s", + "b1ort", + "bor4ter", + "bor6t5rat", + "bo4ruh", + "bo2sc", + "bo3se", + "bo4s3p", + "bos3t", + "3bot", + "bote3n4e", + "bo3th", + "bot2st", + "bot5t", + "bo2xo", + "b1oz", + "bö2b3", + "2böf", + "2b1öl", + "bölk3", + "2b1p4", + "bpa2g", + "2b1q", + "b2r4", + "2br.", + "b4ra.", + "2b3rad", + "2b4rah", + "b4ra3k", + "brast4", + "2b3rat.", + "brat3er4", + "bra6terg", + "2b3ratg", + "3brä", + "4bräd", + "brä4u", + "2bre.", + "6b5rechte", + "2b3red", + "2b3ref", + "2breg", + "b3reif", + "2brek", + "breli1", + "b4rem", + "b4ren.", + "2b3rent", + "2breo", + "2b3rep", + "b4rer", + "b4res.", + "b3rest", + "b4ret", + "bret6t5en", + "b4rez", + "bri2da", + "brie4fa", + "2b3riem", + "b4rien", + "bri2er", + "b3ries", + "2brigk", + "b4rina", + "2b3rind", + "b4rio", + "b4risc", + "b3ritt", + "brob2", + "2b3roh", + "2b3rol", + "bro2ma", + "b4ron", + "2b3rost", + "bro4tr", + "brot3t4", + "2b3rou", + "3b4rö", + "b4ruc", + "2bruf", + "b4rum", + "2b3rund", + "brus4", + "brust3", + "bru2th", + "3brü", + "4b3rüb", + "2b1s", + "b2s1ad", + "bs2am", + "bs3amb", + "b4s3amt", + "bsau2r", + "b4s3är", + "b3s2äu", + "b3sc", + "bsch2", + "b4schan", + "b6schef", + "bs2chi", + "b4sco", + "bs2cu", + "bse2b", + "b3sel.", + "bse2n1", + "b3sen.", + "b2s1ent", + "bs1erf", + "bs1erg", + "bs3e4r3in", + "bs1erk", + "bs1ers", + "b3s2es", + "b2sim", + "bsi4t", + "b4ski", + "bs2ku", + "b2s1of", + "b3s2oh", + "b3sol", + "b4sop", + "bso2r", + "b2sö", + "b3s2pi", + "bs2pl", + "bs2pu", + "bss2", + "bs2t", + "bst1a2b", + "bst1ak", + "bst3ank", + "bs4t1as", + "b3stä", + "bs3tät", + "bst3emi", + "bst1er", + "bst1h", + "bst3ink", + "b2stip", + "b3sto", + "b4stob", + "b4stod", + "bs4tol", + "b4stor", + "b3stö", + "b4strac", + "b2s3trä", + "b4s3treu", + "bs4tri", + "bst3ro", + "b3stü", + "b4stüb", + "b2s1un", + "bs2zep", + "bs2zi", + "4b1t", + "b3t2a", + "bta2s", + "btast3r", + "b5te", + "b2t1h", + "bt2i", + "bti2s", + "bt4r", + "btran2", + "bts2", + "b3tü1", + "buche4", + "bu4chec", + "bucher4", + "bu6ch5ers", + "bu2chi", + "buch3s4p", + "bu2e3", + "bu2f", + "bug3", + "bu2gr", + "bul2l3a", + "2bumf", + "2b3umk", + "2buml", + "2b3umr", + "bun4a", + "bun4d3er", + "bunde4s", + "b1une", + "bung4", + "b3un3gn", + "2b1unh", + "bur1c", + "b2ure", + "b2urg", + "burg1a", + "bur4gan", + "bur4gar", + "bur4gin", + "bur2gr", + "bu3r2i", + "2burn", + "b3ursa", + "burts3", + "bu2sa", + "bu2sc", + "bus3cha", + "bu3sche", + "bu6schei", + "bu6sch5el", + "busch3w", + "bu3shi", + "bu2sin", + "bu2s1p", + "buster4", + "bu2su", + "but2a", + "buto3re", + "2büb", + "bü1c", + "bügel3e", + "2b1v", + "4b5w", + "3b2y1", + "bya2", + "byo2", + "by3p2", + "bys4", + "2b1z4", + "b5ze", + "bzeit1", + "1c2a", + "cab4", + "ca3bl", + "3ca2c", + "ca2e3", + "ca3g2", + "ca1h", + "cal2a", + "cala3b", + "cal2f3", + "cal3t", + "3cam", + "2can", + "cana3", + "ca2pe", + "car5n2", + "carri1", + "car2s", + "ca3s2a3", + "cas5to", + "ca3t2h", + "ca1y2", + "cä3", + "cäs2", + "c1b", + "2cc", + "c1ce", + "c1ch2", + "c2d2", + "c3do", + "2cec", + "1ced", + "ce2dr", + "2cef", + "ce1i", + "ce3in", + "2cek", + "3cels", + "cen3a", + "ce3nu", + "cen3un", + "ceo2", + "1cer", + "cer3a", + "cere1", + "cere3u", + "ce3r2i", + "ce4ris", + "ce1ro", + "ce3s4h", + "1cet", + "ceta2", + "cet1am", + "ce1u", + "1cé", + "c1f", + "c1g4", + "c2h", + "4ch.", + "2chab", + "ch3a2b3i", + "cha2ck", + "2chaf", + "2ch1a2g", + "2ch1ak", + "chal6l5ei", + "chan4a", + "3chanc", + "chan3f", + "ch1ang", + "4chanl", + "4chanz", + "3chao", + "4char.", + "3chara", + "3chard", + "3charta", + "cha2sc", + "chasi1", + "1chato", + "2chatt", + "ch5austr", + "chau3t", + "ch1äh", + "ch1ärm", + "ch1äs", + "1châ", + "2chb", + "2chc", + "2chd", + "che3b4", + "ch3e4ben", + "ch3echt", + "ch1edi", + "che2el", + "1chef", + "3chef.", + "che4fer", + "3chefs", + "2cheh", + "2chei", + "ch1eim", + "4chelem", + "che4ler", + "3chemi", + "2chemp", + "che4neb", + "che4nid", + "che2no", + "4chents", + "4chentw", + "che2r3a", + "4ch3erbs", + "6chergeb", + "4cherke", + "cher6zie", + "ch3es4s", + "ches5t", + "4ch1e4ta", + "2ch3e4x", + "1ché", + "2chf", + "2chg", + "2chh", + "1chia", + "chi3na", + "4chind", + "3chines", + "2chinf", + "2chinh", + "2ch1ins", + "2ch1int", + "2ch1inv", + "1chip.", + "1chiru", + "2chiso", + "2chj", + "2chk", + "2chl4", + "ch2le", + "chle2i", + "ch3lein", + "ch4len", + "4chli", + "ch2lu", + "4ch2m4", + "4chn4", + "chner8ei.", + "2chob", + "cho2f", + "ch1off", + "chof4s", + "ch1oh", + "cho3l2a", + "ch1orc", + "cho4rei", + "ch1ori", + "ch2os", + "ch3öl", + "3chör", + "2chp", + "ch2r4", + "2chra", + "ch3rad", + "2chre", + "ch3rh", + "4chrit", + "3chromo", + "3chron", + "ch5ros", + "4chs", + "ch2spo", + "ch4stal", + "2cht", + "ch2tru", + "2chuf", + "2chuh", + "2chum", + "2ch1unf", + "2chunm", + "2chunt", + "2chur", + "ch1urs", + "2chut", + "chut4t", + "4chü", + "2chv", + "4chw", + "1chy", + "2chz", + "ci1c", + "ci1es", + "c1ind", + "cins2", + "c1int", + "ci2s1", + "1ci3t2", + "c1j", + "c2k", + "4ck.", + "c4k1a", + "1cka.", + "2cka2b", + "2cka2c", + "ck2ad", + "1ck2ag", + "2ckal", + "cka2m", + "2ckan", + "2ckap", + "cka4r1", + "1ckat", + "ck1ä", + "2ckb", + "2ckc", + "2ckd", + "1cke", + "2cke2c", + "2ck1ef", + "4ckeff", + "2ck1eh", + "4ck1ei", + "2ckemp", + "cke4na", + "6ckensem", + "4ckentf", + "4ckentw", + "cke2ra", + "ck2ere", + "6ckergeb", + "4ck3er4hö", + "ckerk4", + "cker6lau", + "ck2ern", + "2cke2ro", + "ck1err", + "6ckerzeu", + "4ckese", + "ck2et", + "4ckex", + "2ckf", + "2ckg", + "2ckh", + "1cki", + "2ck1i2d", + "ck1in", + "4ckint", + "3ck4is", + "2ckk", + "2ck3l", + "2ckm", + "2ck5n", + "2ck3o2", + "ckos6t", + "ck3ö2", + "2ckp", + "2ck3r", + "4cks", + "cks2al", + "ck4spen", + "2ckt", + "ck3te", + "ck3t2i", + "1cku", + "2ck1uh", + "ck1um", + "2ckunt", + "2ck1up", + "2ckü", + "2ckv", + "2ckw", + "1cky", + "2ckz", + "c2l2", + "cle4a", + "clet4", + "clin2g", + "cli2p1", + "clip3a", + "clo1c", + "clo2ck", + "clo3f", + "1clu", + "clu4b", + "c2m2", + "c3me", + "c3mu", + "1c2o", + "co2c", + "co3ch", + "co2d2", + "co3di", + "cof3f2", + "coi4", + "co1it", + "co2ke", + "co3la3", + "co2leu", + "co3l2o", + "com4te.", + "comtes4", + "con2ne", + "co2o", + "coo1p", + "co1p", + "co1ra", + "cor2da", + "co4re", + "cor3t", + "cos3t", + "co4te", + "cou3si", + "cô4", + "2cp", + "2c1q", + "1c2r2", + "c3rä", + "c4re2", + "cre4mes", + "3crew", + "2cri", + "cros4", + "2cry", + "2cs", + "cs2a", + "cs4f", + "c4si", + "cst2", + "c1s2ti", + "c1s4tr", + "4c5t", + "cti2", + "cti4o2", + "ction3", + "ctur6", + "c6tz", + "1c4u", + "2cua", + "cu2e", + "cu2p3", + "cup1e", + "cussi4", + "c1w", + "2cx", + "1cy", + "c1z", + "3da.", + "da1a", + "2d1ab", + "d3a2bak", + "d2abä", + "d2abe", + "d3a2ben", + "d3a2bi", + "da3blu", + "d3a2bo", + "dab4ra", + "da2bri", + "da3brie", + "d2ab4rü", + "d1ac", + "dach3a", + "da2cho", + "4d3achse", + "2d1ad", + "da2de", + "da2do", + "da2d4r", + "d1af", + "2daff", + "da1f4l", + "dafo4n", + "d1ag", + "dagi4", + "dag2o", + "da1h", + "dah3l", + "dail5", + "da1in", + "2d1air", + "da1is", + "da2kro", + "dal2a", + "2d1a2lar", + "dal3b2", + "4d1all", + "da2lop", + "da3lö", + "2d1alp", + "d1al3t", + "2dalte", + "da1lü", + "3dam", + "da2mei", + "d1amma", + "4d1ammä", + "damo3", + "d2amp", + "damp7f8erf", + "4d1amt", + "3d2an.", + "d1ana", + "da2nan", + "da4n4at", + "2danb", + "dan4ce.", + "d1and2", + "2danda", + "d2andy", + "3dane", + "4d3anei", + "2danf", + "d1ang", + "2danh", + "dan2kl", + "dan2k1o", + "dan2kr", + "2danl", + "d1ann", + "2danna", + "d1a2no", + "2d1ans", + "2dantw", + "2danw", + "d1anz", + "d2anz.", + "2danzi", + "2danzü", + "2d1ap", + "d2apa", + "d2aph", + "da2po", + "da3pos", + "4dapp", + "d3apte", + "4daq", + "da4r1a", + "2darb2", + "2d3arc", + "dar2d1e", + "dare2", + "daren1", + "dar3g", + "dark2a", + "3darl", + "dar2m1a", + "dar2m1i", + "dar4mu", + "da2r3o", + "3dars", + "2d1art", + "dar2th", + "dar2tr", + "da2ru", + "d1arz", + "da1s2", + "da3sh", + "d1as3p", + "das3s", + "das4t", + "dat2e2", + "da3tei", + "4d3a2tel", + "date4n", + "da2th", + "2d3atl", + "4datm", + "d3ato", + "dat2st", + "2d3atta", + "3daub", + "2daud", + "dau3e2", + "dauer3e", + "daue6rei", + "2d3au2f", + "2d3aug", + "2dauk", + "da3unt", + "2d1aus3", + "dau2ß", + "3daw", + "d1ax", + "3däc", + "2d1äg", + "2d1äh", + "2d1ämt", + "dän3a", + "2d1änd", + "2d1äp", + "2däq", + "2därz", + "2d1ä2u", + "dä3us", + "2däx", + "4d1b4", + "dbau2c", + "dbauch3", + "dbe2e", + "dbu2c", + "2dc", + "d3ch", + "4d1d2", + "d3da", + "d3dä", + "d3de", + "d3dh", + "1de", + "dea2d", + "de3ar", + "de3a2t", + "deb4", + "3debü", + "de1c", + "de4ca.", + "de2cka", + "de2del", + "de2dit", + "2de3e4", + "def4a", + "de2fa.", + "2d1eff", + "def4l", + "deg2", + "degene7", + "de3gl", + "deh2a", + "dehe2", + "3dehn", + "de3ho", + "2d1ehr", + "d1ei", + "3d2eic", + "de3i4den", + "de3il", + "3d2eim", + "4deime", + "dein2d", + "de3inse", + "de3inst", + "dein6sta", + "dein6sti", + "4d3einw", + "de3io", + "2deise", + "d4e1ism", + "dei2sp", + "2dekz", + "de2l1ac", + "del4ade", + "de3lak", + "de4l3aug", + "del3änd", + "del3b2", + "del3d", + "del1ec", + "3de3leg", + "delei4g", + "2delek", + "2delem", + "de2len", + "deler2", + "deler4r", + "2delf.", + "2delfm", + "3delik", + "del2la", + "dell3au", + "del2l1ä", + "delle2", + "del4l3eb", + "del4lei", + "del4l3er", + "de2l1ob", + "de2lop", + "del2se", + "del2so", + "del2s1p", + "del3t4", + "dem2ar", + "2d1emb", + "dement4", + "de6mentg", + "dem5ents", + "de3min", + "2d1emot", + "2d1emp", + "d2emu", + "d4en.", + "den2am", + "dend2", + "de2n1e2d", + "de4n3end", + "de2nep", + "4denerg", + "de3n2es", + "4d3en4ge.", + "de2ni", + "denk3li", + "dens4am", + "den6scho", + "dense2", + "4den4sem", + "den6sere", + "den6s5tau", + "2dentd", + "2dentf", + "2dentg", + "den3th", + "2dentn", + "2dentw", + "2dentz", + "den6zers", + "de2ob", + "2deol", + "dep4l", + "2depoc", + "d4er.", + "der3af", + "de2rak", + "dera2n", + "de3rand", + "de2r3ap", + "de1r2a4s", + "de4r3asi", + "der2bl", + "4d1erbs", + "2derdb", + "de2r1e2b", + "de4reck", + "de4r3ei4s", + "5d4erem", + "d4eren", + "de4r3end", + "5d4erer", + "der4erf", + "derer3n", + "der3ero", + "derer4t", + "derer6ze", + "5d4eres", + "de2r3eu", + "derf4", + "d4erfl", + "d3erheb", + "d2erhü", + "de2r3id", + "derin4f", + "de6rinnu", + "derin8teg", + "der3k2", + "4derklä", + "d2erm", + "de1ro", + "derö2", + "der3r", + "derst2", + "der3sta", + "dert7ende.", + "derter6e", + "dert4ra", + "6dertrag", + "der8trage", + "3de3ru", + "de4ruh", + "de4rum", + "2d1erz.", + "2d1erzv", + "d2es.", + "de2sa", + "des1ah", + "de4sam", + "de2s1än", + "de2seb", + "de4se2h", + "de2sei", + "de4seil", + "2d1esel", + "des3elt", + "de3sem", + "de3s4end", + "desen3e", + "de2set", + "de2sin", + "des1o", + "de2sor", + "de2s1p", + "de3spe", + "de3spu", + "dess2", + "dess4t", + "dest5alt", + "des6temp", + "de5stern", + "des4tex", + "de1sto", + "dest5rat", + "de3stri", + "des4tum", + "de2su", + "des1un", + "3desw", + "det2", + "de3ta", + "deten4t", + "2d1e2th", + "2d1etw", + "2d1eul", + "de1un", + "de1url", + "de3us", + "2d1e2vid", + "devil2", + "de1x2a", + "de2xer", + "de2xis", + "2dexpe", + "2dexpo", + "2d1f6", + "2d1g2", + "dgas3tr", + "d2ge.", + "dger2", + "dge3s", + "d2gesh", + "dge2t3a", + "dge4t1e", + "2d1h2", + "dha1s4", + "4dho", + "d3hu", + "1di", + "di4ap", + "di2a3s4", + "diat4", + "di4ath", + "3dic", + "di1ce", + "di3chl", + "dicht6er", + "di4ck3el", + "4d3i2co", + "3dida", + "d1ide", + "2didee", + "di2den", + "2didy", + "di2e", + "di3e4d", + "di3enb", + "die4neb", + "diener6l", + "di3e2ni", + "dienst5r", + "die2p", + "di3ers.", + "dies1c", + "di3e4th", + "3dif", + "3dig", + "dige2s", + "dig4n", + "dik2a", + "dil2s3", + "2d1imb", + "2dimp", + "din4a", + "2d1ind", + "di3n2e", + "2d1inf", + "3ding", + "2d1inh", + "di3ni", + "2d1inj", + "2d1ink", + "2d1ins", + "2d3int", + "2d1inv", + "di2o3b", + "dion3in", + "dion3s4", + "di3ora", + "dios2", + "di2osk", + "di1p2", + "di3pt", + "d1i2ra", + "di4re.", + "di2ren", + "di2rin", + "di2ris", + "2d1irl", + "2d1irr", + "di2s1a2", + "2d1iso", + "di2sp", + "di3s4per", + "2d1isr", + "dist2", + "di1s4ta", + "di2s3te", + "di4stra", + "di4sz", + "di2ta", + "dite1c", + "di4t3erl", + "di4t3erm", + "di4t3ers", + "di1the", + "di2tin", + "di2tob", + "di4t3r", + "dit3s", + "di2t1u", + "di5v2", + "di3z2", + "2d1j", + "d2jar", + "2d1k4", + "4d1l2", + "d3la", + "dla3g", + "dlap4", + "d3le", + "dle2ra", + "dli4f", + "dl3m", + "dl3s", + "2d3m2", + "4d3n2", + "dni2", + "dnis1", + "do5at", + "2d1ob", + "3d2oba", + "dob2s", + "d1of", + "do2fe", + "2d1oh", + "do3ha", + "dole4", + "doll2", + "dol3la", + "d3o2ly", + "3dom", + "do2mal", + "do2mar", + "domen1", + "do4ming", + "4domn", + "do2mu", + "don2a", + "do3nan", + "doni1e", + "4dony", + "2dope", + "2d1opf", + "do1r4a", + "2d1orc", + "2d1ord", + "dor2f1a", + "dor2fä", + "dor2f1i", + "dor2fl", + "dor2fo", + "dor2fr", + "dor2f3u", + "2d1org", + "d2orn", + "2dort", + "dor4ter", + "dor4tr", + "d1os2", + "d2os.", + "2d3osm", + "dos3s", + "dos4t1", + "dost3a", + "dosten4", + "do4stu", + "do3ta", + "do2tof", + "do3un", + "dow2s", + "d2o3x2", + "d1ö", + "dö2d", + "dö2f", + "döl1", + "döll2", + "d2ön", + "3d2ör", + "dö2s1c", + "4d3p2", + "dpass3", + "dpol4n", + "dpost1", + "2d1q", + "d2r4", + "3d4ra.", + "3d4rab", + "4d3rad", + "2drahm", + "2d3rak", + "3d4ral", + "d3ramp", + "d3rand", + "dran3k", + "2d3rast", + "dra4tin", + "2draub", + "2d3rauc", + "d4rauf", + "2draum", + "2draup", + "2dräd", + "d4räh", + "2d3rät", + "2d3räu", + "4dre.", + "2d3rea", + "d4rea.", + "d4reas", + "3d4reck", + "2d3ref", + "4dreg", + "3d4reh", + "dre2ha", + "2d3reic", + "3d4reie", + "d4reiv", + "d4rej", + "dreli1", + "4drem", + "4d3ren", + "d4reo", + "4d3rep", + "4d3rer", + "4dres.", + "d4resc", + "dres6sei", + "dres6sel", + "d4rew", + "2drez", + "2d3rh", + "d4ria", + "4d3ric", + "d3rieg", + "3drif", + "4d3riff", + "d4rift", + "4d3rind", + "2d3rip", + "2d3risi", + "2driss", + "2d3ritu", + "2d3rob", + "d3rod", + "2drogg", + "2drohr", + "3d4rohu", + "2d3roll", + "2d3rose", + "d4ross", + "2d3rost", + "2d3rot", + "2d3rou", + "2d3rov", + "d3row", + "drö2sc", + "d5rub", + "3d4ruc", + "2d3rud", + "2d3ruh", + "2d5rut", + "drü1b", + "drü5cke", + "3d4rüs", + "2d1s", + "4ds.", + "4dsa", + "ds3ab", + "d2s1ad", + "ds1al", + "d2salk", + "d2sall", + "d4s1amt", + "d2san", + "ds3ane", + "ds3assi", + "dsau2", + "d2saut", + "ds1än", + "ds2äu", + "4dsb", + "d4schef", + "d4schin", + "d3s4co", + "d2scr", + "d2s1e2b", + "dse2e", + "d2s1ef", + "ds1ehr", + "ds4eign", + "d2sein", + "d2s1emb", + "dsen3er", + "d2s1eng", + "d2s1ent", + "d2s1erf", + "d2serh", + "d2s1erk", + "d2s1erl", + "ds1err", + "d2s1ers", + "d2s1ert", + "d2serz", + "dse4t", + "d2s1eta", + "d2s1ev", + "d2sex", + "d3sha2", + "ds2hak", + "d4shal", + "d3sho", + "d4shor", + "4dsi", + "d2sid", + "d2s1im", + "d3s2inf", + "ds2kal", + "d3s2kel", + "d4sko", + "4dsl", + "d4sli", + "d3soh", + "d2sop", + "dso2r", + "ds1ori", + "d2sö", + "ds1pas", + "d2s1pat", + "d2spä", + "d2s1pec", + "ds2pen", + "d4speri", + "d2s3ph", + "d3s2pi", + "ds2por", + "d6sporto", + "d3spri", + "d2spro", + "ds2pu", + "dss4", + "dst2", + "d4stag", + "d2stas", + "ds3tauf", + "d4s3täti", + "d2ste", + "d3stec", + "d3stei", + "d4steil", + "d5stell", + "d4stem", + "d4sten", + "d3s4tern", + "ds2ti", + "ds4til", + "d4stoch", + "ds4tol", + "d5strei", + "d3s4tro", + "ds2tur", + "dsu2m", + "d2sun", + "ds1url", + "ds2zen", + "2d1t", + "dta2be", + "d3t2ac", + "dtach3", + "dta2d", + "dt2ag", + "dta2n", + "dt3ane", + "d3t2as", + "dt2ax", + "d5tea", + "dte3mo", + "dt2et", + "d2th", + "d4thei", + "d3to2", + "d4tob", + "dt2op", + "d3tö", + "dt3r", + "dtran2", + "dt3sa", + "dt5st", + "dtt4", + "dt2un", + "d3t2ur", + "d3tü", + "d3ty", + "1du", + "du1alv", + "du1ar", + "du2b3li", + "du1ce", + "duel3la", + "du2f", + "2d1ufe", + "duf4ter", + "duf4to", + "duf2tr", + "2d1uh", + "du1i", + "du2in", + "du2kr", + "dul3art", + "2d1umb", + "2dumd", + "2d1u2m1e", + "2dumf", + "2dumg", + "4d3umk", + "2duml", + "d2ump", + "2dumr", + "2d1ums", + "d2ums.", + "2d1umv", + "du2n", + "2d3und", + "2d1unf", + "dung4", + "2dungl", + "2d1uni", + "dun3ke", + "dun2kl", + "2dunr", + "dun2s", + "2dunsi", + "dunst3r", + "2dunt", + "2dunw", + "2d3unz", + "du1os", + "dup4", + "dur2", + "dur3au", + "durch3", + "2d1urk", + "2d1url", + "2d1urn", + "2d1ursa", + "2d1ur3t", + "du4schn", + "du4schr", + "du4sch3w", + "1dü", + "2düb", + "d3über", + "2d1v2", + "2d1w", + "dwa2", + "dwa4r", + "dwer3te", + "dwes2", + "dwest1", + "1dy", + "dy2l1", + "dym3", + "3dyn", + "dy2s1c", + "dy2sp", + "4d3z2", + "2e1a", + "ea2be", + "ea2b3l", + "ea4br", + "ea2c", + "eadli4", + "e3a2dr", + "ea2g", + "ea3ga4", + "ea3g4l", + "eakt2", + "e2akta", + "e3akto", + "ea2la", + "e3alei", + "e4alem", + "ea4l3ent", + "ealen4z", + "ealer2", + "e3a4lerg", + "e3alex", + "e3a2lin", + "eal1o", + "ea2lon", + "ea2lop", + "e2alti2", + "eal3tr", + "ea2l3u2", + "eam3", + "e2am4e", + "eam1o", + "eamt2", + "ea4na", + "ean3a2r", + "e3anf", + "e2ano", + "e3ar.", + "ea2ra", + "ea3rat", + "e2are", + "e4are.", + "ea2r1ei", + "ea4rene", + "e4arer", + "e4ares", + "ea2ro", + "e3arz", + "e3a2sc", + "e3asf", + "easin4", + "ea4sp", + "eas3s", + "eate2", + "eater1", + "eat4mes", + "eat2mu", + "eat4mun", + "ea5tr", + "eat3s2", + "e3at5t2", + "eatu2", + "e3aue", + "e3auf", + "eau2fe", + "eau4fl", + "e4aufo", + "eau3n", + "e2av", + "e2az", + "e3ä2", + "e1b", + "2eba", + "e3bak", + "eba2p", + "e3bän", + "2ebec", + "ebe1er", + "ebein7h", + "eb2el", + "ebe4ler", + "ebe2lo", + "ebels4t", + "ebel5ste", + "ebenen3", + "ebe4ras", + "ebert4", + "ebese2", + "ebe4s3eh", + "ebe2so", + "2ebet", + "ebet4s", + "2ebh", + "2ebi", + "2ebl", + "e3blä", + "eb3le.", + "eb3ler", + "eb4leu", + "e3blie", + "eb3lo", + "eb2lö", + "2ebo", + "e2bob", + "ebot2", + "ebö2s", + "2ebr", + "e5brau", + "eb4rea", + "eb2s1", + "eb4sche", + "ebse2", + "ebs7panne", + "ebs3tau", + "eb4stät", + "ebs3tem", + "ebs3t2h", + "ebs3ti", + "eb3str", + "2ebu", + "e2bunt", + "ebu2t3", + "eby4t", + "2e3ca", + "2e3ce", + "ech1am", + "ech1ä", + "2e1che", + "ech1ei", + "ech2en1", + "e6ch5erzi", + "e1chi", + "ech3l", + "ech3m", + "ech3n", + "e2cho.", + "ech3ö2", + "ech3r", + "ech4ri", + "echs4er", + "echst5re", + "ech3tab", + "ech3t4ei", + "ech6terh", + "echter8ha", + "e1chu", + "ech1w", + "2echz", + "e1ci", + "eci2a", + "ec4k", + "ecke4n1", + "e4ckerr", + "eck3ser", + "eck4sta", + "2eckt", + "3eckty", + "2e1cl", + "2eco", + "2e3cr", + "ec1s", + "2ect", + "e1d", + "ed2a", + "ed2dr", + "ed4e", + "ede2al", + "ede3n4er", + "edens1", + "eden4sa", + "eden4se", + "eden4sp", + "edeo2", + "ede2r", + "eder3a", + "ede3rat", + "eder3t2", + "edes2t", + "ed2i", + "e3di.", + "2edip", + "edi6teng", + "e3d2o", + "ed2ö", + "e3drei", + "ed4rö", + "ed2sal", + "ed4seh", + "ed2s1es", + "ed2si", + "ed2s1o", + "ed2s1p", + "ed2sto", + "ed2s3tr", + "ed2s1u", + "edun3", + "edund2", + "e3dy3", + "edys4", + "2ee", + "ee3a4", + "eeb2l", + "ee1c", + "ee4ce", + "ee2cho", + "e1e2ck", + "eede3", + "eede1s", + "eed3s2", + "ee1e2", + "e1eff", + "eef4l", + "eeg4", + "e1ei", + "ee2i3e", + "eein4se", + "eei4sc", + "eeis3s", + "e2ela", + "eel2e", + "e3e2lek", + "eele4n", + "eel2ö", + "e2e3m2a", + "e1emb", + "ee3min", + "e1emp", + "e1en", + "eena2g", + "e2enä", + "e2enc", + "een1e", + "e3eng", + "ee3ni", + "e3enk", + "e3enl", + "e2eno4", + "een3s", + "een2z", + "ee3o", + "e2ep", + "ee3po", + "eer4at", + "e1erbt", + "e1erd", + "ee3re", + "eer1ei", + "ee4r3en4g", + "eer2e2s", + "eere2t", + "eer3eti", + "e1ermä", + "ee1ro", + "ee1rö", + "e1eröf", + "eer2ös", + "ee3r2un", + "e1erz", + "ee1s2", + "ee3sh", + "ees3k", + "ee3sp", + "ee3s4t", + "e2et.", + "ee3t2a", + "ee4tat", + "ee2th", + "eet2i", + "ee3t4r", + "ee2tu", + "ee1u2", + "eewa4r", + "e1e2x", + "e1f", + "e2f1ad", + "e3fah", + "ef1ana", + "ef1ar", + "e2farc", + "ef3arm", + "e2fat", + "2efä", + "ef2äl", + "e2fäu", + "2efe", + "e2f1e2b", + "e3fef", + "efe4l3ei", + "ef1em", + "e2femi", + "efe2n1", + "3e2f1ene", + "e2fent", + "efer5f", + "eferin6d", + "efeuil4", + "3effek", + "1effi", + "ef2fl", + "ef3flu", + "2efi", + "ef1id", + "e2f1ins", + "efi2s", + "2efl", + "ef4le", + "e3f4lu", + "e3flü", + "2e3f2o", + "2efr", + "ef4reih", + "ef3rol", + "ef3rom", + "ef4ru", + "ef4rü", + "efs2", + "efs4c", + "ef3so", + "ef3sp", + "ef2tan", + "ef2tei", + "ef2tro", + "2efu", + "e2fum", + "e1g", + "ega2m", + "e3g2anz", + "egd4", + "e3ge", + "egein3", + "ege4lan", + "ege4l3au", + "ege8l7ei8er", + "ege4ler", + "ege2lo", + "eg2en", + "ege4n1a", + "ege6nero", + "ege2ra", + "ege5stal", + "ege4s3tr", + "ege1u", + "2egi", + "2egl", + "e2glo", + "e2glu", + "e2gn", + "eg3nä", + "eg3ni", + "ego1p", + "eg4sal", + "egsau3g", + "eg3se", + "eg4sei", + "egse3l", + "eg3si", + "eg4sk", + "egst2", + "eg4sto", + "eg2th", + "egung4", + "egus3", + "2e1ha", + "eh1ach", + "eh1ad", + "eh2ade", + "e3h2ah", + "eh2al", + "ehalt4s", + "e3hand", + "e2harz", + "e3haut", + "e1hä", + "e1he", + "eh1eff", + "eh1ein", + "eh1elt", + "e4hense", + "e4h3ente", + "ehen6tr", + "ehe3o", + "1e2hep", + "2eher", + "ehe1ra", + "e2h1er2f", + "e2h1er2l", + "ehe3str", + "2e1hi", + "eh3im", + "eh1lam", + "eh2l3au", + "eh1lä", + "ehl3ein", + "eh4lent", + "eh5l2er", + "ehlo2", + "ehl1or", + "eh2lö", + "ehl2se", + "ehls2t", + "2ehm", + "eh2mab", + "eh4mant", + "eh3mu", + "eh3na", + "eh3no", + "2e1ho", + "eho2f", + "eho2l", + "eh3oly", + "2e3hö", + "ehö4rer", + "eh2r1a2", + "ehr1ä", + "ehr1e2c", + "eh2rei", + "eh2rel", + "ehr6erle", + "ehr4ern", + "ehre3s", + "eh4rin", + "eh1roc", + "ehr1of", + "eh1rö", + "ehs2", + "eh3sh", + "eh1ste", + "2eh3t2", + "eht3h", + "eht4r", + "2e1hu", + "e2hum", + "eh1unf", + "e2huni", + "e3hur", + "e1hü", + "eh3üb", + "eh1w", + "e1hy", + "2ei3a2", + "eia4t", + "ei2bar", + "ei2bli", + "ei4blu", + "eibu4t", + "ei4b3ute", + "e4ic", + "ei1ce", + "ei2cho", + "e2id", + "ei2d1a", + "ei3de", + "ei4deis", + "eid5erre", + "2eidn", + "ei3do", + "ei3dr", + "ei1e", + "eie2b", + "eie2d", + "ei3e2l", + "eie2m", + "4ei3e2n3", + "eienge4", + "ei3es", + "eie2t", + "4eif.", + "ei1flo", + "1eifr", + "eif3t", + "2eig.", + "2eiga", + "eig2ar", + "2eigä", + "2eige.", + "2eigeb", + "2eigeh", + "4eigeno", + "5eigensc", + "4eig2er", + "2eiges", + "2eigew", + "2eigi", + "1ei2g3n", + "ei2go", + "ei4g3rat", + "2eigre", + "2eigrö", + "2eigru", + "2eigrü", + "2eigs", + "2eigt", + "2eigu", + "4eih", + "ei2hum", + "ei2kab", + "ei2kak", + "eik4am", + "eik2ar", + "eik2i", + "eik2l", + "ei3k4la", + "ei3klä", + "eik2o", + "e2il", + "4eil.", + "ei4l3ab", + "ei2lam", + "eila2n", + "ei4l3ane", + "ei4lang", + "ei4lanz", + "ei2lar", + "2eilb", + "eil3d4", + "ei4lein", + "eile2n1", + "ei2let", + "eil3f4", + "eilm2", + "ei2lob", + "eil2ö", + "2eim.", + "ei2mab", + "ei2m1ag", + "eim3all", + "eim3alp", + "ei2m1or", + "2eimö", + "2eimp", + "eim2p4l", + "eim3sa", + "ei2mur", + "e4i2n1a", + "ei4na2d", + "ei4nae", + "ei4n3an", + "ei4na4s", + "ei4n3at", + "ei2n3ä", + "ein3d2e", + "ein6derk", + "e1indu", + "2eineb", + "einen4e", + "ei4n3en4g", + "ei6nen6se", + "ein5erbe", + "ei4nerf", + "ei4nerk", + "ein5er6la", + "einer6sc", + "ei2neu", + "ein4fiz", + "2einfo", + "ein4fo.", + "ein4fos", + "ein3g2", + "3einger", + "e2ingr", + "e2inhä", + "ei2nie", + "e1init", + "ein3k4", + "ein6karn", + "3einkä", + "e2inl", + "ein3n2", + "3einna", + "ei2n1o2", + "1einri", + "e6insa", + "3einsat", + "e2insc", + "5einschä", + "ein6stal", + "ein6terv", + "3eintö", + "1einu", + "ei3o", + "eio2p", + "eio4s", + "ei1p", + "eip2f", + "2eir", + "eir2c", + "ei3re", + "e1irr", + "e4is.", + "ei2sa", + "ei3sas", + "ei6schwu", + "e4ise", + "ei4ser4g", + "ei4s3er4l", + "ei6s5erst", + "ei4s3erw", + "1eisho", + "ei3s2ky", + "ei2so", + "eis2pe", + "e2iss", + "eisser6s", + "4ei1sto", + "ei2sum", + "ei2sur", + "1eiswo", + "e2it", + "ei2t1a2b", + "ei2tal", + "ei2t1an", + "ei2tap", + "ei2tar", + "ei4tat", + "2eitä", + "ei2tän", + "eite4ra", + "ei4tess", + "ei2t1h", + "ei2tin", + "eito2", + "ei4trau", + "ei4tro", + "eitsa4g", + "eit3t4", + "4eitu", + "ei4t1um", + "ei2t1ur", + "eit3z2", + "eiv2", + "eive4", + "ei2zar", + "eiz1in", + "2e3j", + "e1k", + "2ek.", + "2e3k2a", + "1ekd", + "ek2e", + "e3ke.", + "e3ke4n", + "e3kes", + "e3key", + "e3k2l", + "ek4lo", + "ek4n", + "e3k2o", + "ekor4da", + "2e3kr", + "ek4s1p", + "4ekt", + "ek2tan", + "ek5t6ante", + "ekt3at", + "ek2t1ä", + "ek2te2l", + "ekt3erf", + "ekt3erk", + "ek4t3er4z", + "ekt2o", + "ek2t3o4b", + "ek5tri", + "2e3ku", + "ekur2a", + "e3k2w", + "1ekz", + "e1la", + "el2abt", + "el3abu", + "ela2ck", + "el3ader", + "el1af", + "ela4h", + "e2l1ak", + "e2l1a2m", + "el2a3mi", + "e3lamp", + "el1ana", + "e4landa", + "e2lanm", + "e4l1ans", + "e2l1ant", + "e4lanw", + "el1anz", + "2elao", + "e2l1ap", + "e2l1ar", + "el3a2ri", + "ela2s", + "el1a4si", + "el1asp", + "ela3su", + "el3aufw", + "2e1lä", + "2elbil", + "2elbr", + "2eld", + "elda2r", + "eld3ari", + "eld4arm", + "el4d3erf", + "elder4p", + "elder4s", + "eld5erst", + "el3des", + "elds2", + "4e3le.", + "2e3lea", + "elea2r", + "2e3leb", + "4ele2c", + "el1ech", + "1elefa", + "eleg3s", + "4eleh", + "el3ehe.", + "2elei", + "e6l5ei6ern", + "e2l1ein", + "e3leine", + "e5leit", + "1elek", + "2eleko", + "e2l1el", + "1e2lem", + "2e3lem.", + "e3lema", + "ele2mi", + "e3lemm", + "2el1emp", + "2e3len.", + "elen4k3l", + "e4lense", + "e2l1ent", + "e3lep", + "2eler", + "e3ler.", + "eler2a", + "el1erd", + "e6lereig", + "el1erf", + "e4ler4fa", + "e4lerfi", + "e2lerg", + "el1erh", + "el1erk", + "e2l1erl", + "e4l3ernä", + "eler2ö", + "e2l1err", + "el3eru", + "el1erw", + "e2l1ess", + "e2l1e4ta", + "ele2ti", + "elet4ta", + "2el1ex", + "e3lex.", + "1elf.", + "elf2er", + "1elfm", + "elf4r", + "1elft", + "elgi5er.", + "elgi5ers", + "el3g2l", + "elg4r", + "e2l1id", + "2e3lie", + "eli3ef.", + "2elig", + "e2lim", + "elin3a", + "eli3no", + "el1ins", + "2elk", + "el4larb", + "ellar4t", + "el3lär", + "el5le.", + "ell2ei", + "ell3ein", + "ell3eis", + "el4lel", + "el5lend", + "ellenen5", + "ell2er", + "eller8fas", + "eller7g", + "ell3erh", + "el3les", + "el2lim", + "1ellip", + "el2lor", + "ell2ö", + "ell3sp", + "el3ma", + "elm2e", + "elm3ein", + "2eln", + "el3na", + "2elo", + "e2l3oa", + "e2lof", + "e2lol", + "e2lom", + "e2lonk", + "el1opf", + "e2l1or", + "e3lore", + "elo2ri", + "e3lot", + "e3l2ov", + "2elö", + "elö2s", + "el3p4", + "el4s5ein", + "el3sen", + "els4tri", + "el2sum", + "el4tans", + "elte4m", + "el5ten.", + "el4t3ent", + "elter4b", + "elter4f", + "elt3erh", + "elter6le", + "3elter4n", + "elt5ero", + "elter6sc", + "elte2s", + "el4tesc", + "elt3eth", + "el3the", + "el5tri", + "elts3pa", + "2e1lu", + "el1uf", + "e2l1um", + "e2l3u2r", + "elu2s", + "el3use", + "elu2t", + "el3uto", + "e1lü", + "2ely", + "e2lya", + "el3z2ac", + "el2zar", + "el4zene", + "elz1in", + "el2zwa", + "2elzy", + "e1m", + "e2m3a2b", + "e2m1alk", + "em3anf", + "e2m1ano", + "em1ans", + "1emanz", + "e4m1a4s3p", + "em1au", + "2e3mä", + "em2äh", + "1emba", + "1embo", + "1embry", + "em2dä", + "emd1r", + "em2dra", + "2eme", + "e2m1e2b", + "e2mef", + "eme2i", + "e2mele", + "em2en", + "emen6gel", + "emen4t3h", + "eme3r2i", + "e2m1er2l", + "em1erw", + "e4mesu", + "3e2meti", + "e2m1i2d", + "emi2ei", + "e2mig", + "emik2", + "em1im", + "2emin", + "emi3n2a", + "e3mind", + "em1int", + "1e2mir", + "e3misc", + "emi3tr", + "emma3u", + "em2m1ei", + "e2moa", + "e3mol", + "emo3s", + "1empf4", + "em3pfl", + "em3po", + "empo1s", + "em2sa", + "em4scha", + "em4sei", + "em2sim", + "em2spr", + "em2st", + "ems5tr", + "ems3tro", + "em3t2", + "1e2mul", + "3emuls", + "emune7", + "e3mur", + "2emü", + "e2na", + "4ena.", + "e4na2b", + "en3aba", + "en3abo", + "4ena2c", + "en3ache", + "e4n3ack", + "enadi4", + "e4naf", + "4enah", + "en3ak", + "en1al", + "enal2a", + "e4nalb", + "e3nale", + "en2alg", + "ena3l2i", + "e4nalk", + "e4nalm", + "e4nalo", + "enal3p", + "4en1am", + "ena4n", + "e4nand", + "en3ane", + "e4nant", + "e4nanz", + "en1ap", + "ena2pa", + "en3are", + "en3ark", + "en3aro", + "en1as", + "ena2sc", + "e4nast", + "2enat", + "4e5nati", + "e4natl", + "enat4s", + "e4n3att", + "4enatu", + "e4nau2f", + "en3aug", + "e4n3aur", + "e6nausta", + "e4naut", + "en1a2x", + "en1a4z", + "en1ä", + "en3äb", + "e3näi", + "e2när", + "en2ä3s", + "en3äst", + "en2ce.", + "end2ac", + "en2dal", + "en4dang", + "2endel", + "ende4lä", + "en4d3es4s", + "en2dex", + "en2did", + "en3d4ort", + "end3s4au", + "end3s2l", + "end3s2p", + "end3sz", + "en3d2um", + "en3d2ü", + "2ene.", + "en3e4ben", + "en1e2c", + "e2neff", + "ene2h", + "en2eid", + "e3neien", + "e4neige", + "4eneigu", + "e4nein", + "e4neis", + "e2n1el", + "ene4le", + "2ene2m", + "e2n1emi", + "2enen", + "e4nense", + "e4n1ent", + "en4entr", + "en3envi", + "en1ep", + "4e3ner.", + "en2era", + "e2n1erd", + "en3erei", + "e2nerf", + "en4erfr", + "1energ", + "e2nerh", + "e2nerk", + "e2n1erl", + "e4nermi", + "e4n3ermo", + "4enern", + "e4n3erne", + "ene2ro", + "e2n1err", + "en1ers", + "4eners.", + "e2n1ert", + "en4ert.", + "e2n3eru", + "e2n1erw", + "2enes", + "e3nes.", + "e2n1e2sc", + "e2n1esk", + "e2n1ess", + "en1eta", + "e2n1eth", + "en1eul", + "e2n1e2v", + "e4ne2x", + "en3f", + "enf2u", + "1engad", + "1engag", + "en3g2al", + "enge3r4a", + "en3g2i", + "en3gn", + "en3g2o", + "1engp", + "eng4ra", + "eng3se", + "2eni", + "e3ni.", + "e3nic", + "4e3nie", + "eni3er.", + "eni3erp", + "eni5ers.", + "en3i2ko", + "en3ill", + "eni4m", + "en1ima", + "en1imi", + "e2n1in", + "e3nio", + "eni2ö", + "e2nir", + "eni4sa", + "e4n3iso", + "e3nit2", + "e3niv", + "enk3aus", + "3enkeli", + "enk3erg", + "en4k3erk", + "en3k2ü", + "en2nef", + "en2nel", + "en4ner4f", + "enn3erg", + "en4n3erl", + "enn2i", + "enni6ger", + "2enniv", + "enns2", + "enn3ste", + "e2n3oa", + "e2n1ob", + "e3nobel", + "eno2br", + "e2nof", + "en3olm", + "eno2ma", + "eno4n", + "e2n1op", + "e2n1o2r", + "en2ora", + "eno4ri", + "4enorm", + "e2n1ost", + "4e3not", + "eno2w", + "2e1nö", + "en1ö2d", + "en3sabb", + "en2san", + "en5sche", + "en2seb", + "1ensem", + "ensen3e", + "ens3ere", + "en3spo", + "ens4por", + "enst5alt", + "en4s3tät", + "ens4tel", + "ens6temp", + "ens2th", + "2ensto", + "enst2ü", + "en5t2ag", + "en4tanm", + "en4tanw", + "en3t4ark", + "1entd", + "en3t2el", + "ente2n", + "3entera", + "en4terb", + "1entf", + "2entfo", + "1entg", + "3entgeg", + "en2thi", + "1enthu", + "1enthü", + "en4t1id", + "3entla", + "1entn", + "en2tob", + "entopf3", + "en2t1os", + "2entö", + "en4t3rol", + "1entsc", + "1entso", + "ent4sto", + "1entw", + "4entwet", + "3entwic", + "1entz", + "e2n1u", + "e3nu.", + "e4nu4r", + "2enu4t", + "e4nuto", + "e1nü", + "enü1st", + "4enwü", + "2e1ny", + "en3zare", + "enz2äp", + "1enzep", + "enz3erg", + "en4z3erk", + "en4zerl", + "en4z3erm", + "enz5ersc", + "enzi2d", + "enzlan4", + "enzo2l", + "1enzy", + "e1ñ", + "4eo", + "e1o2b1", + "eo3ben", + "eo3bl", + "eo3bo", + "eo3br", + "eo1c", + "eoch2", + "eo3dr", + "e1of", + "eo3g2", + "e1oh", + "eo3la", + "e3o2ly", + "e1on", + "e3o2nat", + "eo1o", + "e1opf", + "eop4r", + "e1or", + "e3or.", + "eo1ra", + "e3orb", + "eorgi1", + "e3ors", + "eort2", + "e3orw", + "eo1s2", + "e3os.", + "eo3se", + "e1oste", + "e1ou4", + "eo1ul", + "e1ö4", + "e1p", + "2ep2a", + "epa2g", + "epas6ser", + "2eper", + "e3p2f4", + "e5pfi", + "1e2pid", + "e2pig", + "e2pik", + "1e2pile", + "e3pio", + "1epis", + "2epist", + "1e2pit", + "ep3le", + "1epoc", + "eport4", + "1e2pos.", + "ep2p1a", + "eppe3l", + "ep2pl", + "ep2pr", + "2epr", + "ep3sh", + "ep2tal", + "ept2an", + "ep2tau", + "2e3pu", + "epu2s", + "4e3q", + "er1a", + "e3ra.", + "era2be", + "e2r3a2ch", + "e3rad.", + "e3radi", + "e2radj", + "e2radm", + "e4radmi", + "e4r3adr", + "eraf4a", + "era2g", + "e1rah", + "e1rai", + "er3aic", + "e3rake", + "e1rald", + "eral4eb", + "er3alke", + "e2r3all", + "er2an.", + "era4n4a", + "eran3d", + "e3rand.", + "e4rangr", + "e2ranh", + "e2rano", + "e1rap", + "er3apa", + "er3apf", + "e2rar", + "er3are", + "e3rari", + "e3ras.", + "era2si", + "e1rast", + "era2ß", + "e4ratel", + "e2ratl", + "e1raub", + "e1rauc", + "er3aue", + "erau2f", + "er3aug", + "e2ra2v", + "e1raw", + "e2r3ax", + "e1raz", + "e1rä", + "er1äf", + "er1äh", + "er1ä2m", + "er1äp", + "e2r1äs", + "er1ätz", + "3erbarm", + "erb2au", + "erb2e", + "2erbru", + "erb2sp", + "er1c", + "er3chl", + "erch2o", + "erd2am", + "erda3me", + "1erdb", + "2erdec", + "2erdel", + "er4d3en4g", + "erd3erw", + "erdes4t", + "erdeu2", + "1erdg", + "erd3st", + "2erdy", + "4ere.", + "er3e4ben", + "e3r2ech", + "er3echs", + "er1e2ck", + "er1edi", + "ere4dit", + "er1eff", + "e2r1e2h", + "ere4i", + "4e3rei.", + "e3reib", + "er1eig", + "4ereih", + "e4r3eime", + "e4reink", + "er3eis.", + "er5eisar", + "er3eisb", + "er3eisf", + "er3eisr", + "erei5str", + "e4rek", + "er1e2l", + "e2rele", + "ere3lev", + "ereli1", + "2erem", + "4erem.", + "er1emi", + "ere4mis", + "e2remp", + "2eren", + "4e3ren.", + "e3rena", + "eren1e", + "e4rense", + "e4rentn", + "e4rents", + "e3renz", + "eren8z7en8d", + "er1epe", + "4erer.", + "2ererb", + "erer3fa", + "e4r3erfo", + "e2rerh", + "e2rerk", + "e2rer2l", + "erer5lau", + "4erern.", + "e4rerne", + "e2rer2o", + "erer4ri", + "er1ers", + "4erers.", + "e8rersche", + "e2rert", + "2ererv", + "2ererw", + "2eres", + "4eres.", + "ere2sp", + "er1ess", + "eres3sk", + "er1eta", + "er1eu", + "ere4vid", + "erf2e", + "4erform", + "erf4r", + "4erfür", + "er4g3are", + "4ergebi", + "3ergebn", + "4ergebü", + "4ergeha", + "4ergehä", + "ergel4s3", + "erg5elst", + "4ergeni", + "2ergn", + "er2gop", + "4ergrem", + "erg1s", + "erg3s2o", + "ergs2p", + "ergs4t", + "e4rh", + "1erhab", + "er3hag", + "2erhai", + "4erhals", + "2erham", + "2erhan", + "2erhas", + "er3hei", + "2erher", + "er3hu", + "2eri", + "e2riat", + "e3rib", + "4e3ric", + "e4r3ico", + "er1id", + "4e3rie", + "eri3en1", + "e3ri3k", + "erik4l", + "4e3rin.", + "e2r1ind", + "e2r1ini", + "er1ink", + "er1inl", + "er1int", + "er1inz", + "e2ri2on", + "4eris", + "e2riso", + "e2risr", + "er1ita", + "3eritr", + "e3riv", + "2erk.", + "2erkaj", + "er3ker", + "1erklä", + "2erkm", + "2erkre", + "erk5t4", + "er2kum", + "2erl.", + "2erlag", + "3erlebn", + "4erleh", + "2erln", + "er3m2", + "ermen4s", + "er4m3ers", + "er4n3alt", + "er3ne", + "er4nene", + "er4nerf", + "er4nerk", + "3erneue", + "er2nob", + "erno2r", + "ern1os", + "2e1ro.", + "e1roa", + "er1ob", + "ero2bl", + "ero2br", + "e2r1o2f", + "e1rog", + "e1roh", + "e1rok", + "e1rol", + "er3oly", + "e1rom", + "er3omb", + "2e3ron", + "e2r1oo", + "er1op", + "2e4ro4r", + "eror2a", + "e1ros", + "1erosi", + "e3rosit", + "e1rou", + "e1row", + "er1o2x", + "er1oz", + "erö2d", + "2eröh", + "erö4l", + "er1ös", + "erö2sc", + "er3p", + "er3rä", + "2erren", + "er3ro", + "2errü", + "er3s2a", + "ers4ana", + "ersch4", + "er5schn", + "4ersei", + "ers2el", + "er3sen", + "er5s2i", + "er3sk", + "4ersted", + "er3stel", + "erst5ers", + "4erstil", + "ers4tod", + "ers6tr", + "er3swi", + "er3sz", + "ert1ab", + "er3tat", + "er4t3erf", + "er4t3er4g", + "er4ter4h", + "er4ter4k", + "er4ters", + "ert1h", + "er2tho", + "4ertö", + "er5tri", + "4ertru", + "erts2e", + "erts2p", + "2eru", + "eruf4s3", + "e4r3uhr", + "er1u2m1", + "er1und", + "e4rundu", + "erung4", + "er1up.", + "er3ur", + "er3use", + "e2r3uz", + "erü4b", + "3erweck", + "er4zerk", + "er4z3ers", + "es3ab", + "e4sabe", + "e2s1a2d", + "e3saf", + "es3ak", + "e4s3all", + "es1ami", + "es3ampl", + "es2ank", + "es2anm", + "es2anr", + "es3anz", + "e3sap", + "es2apa", + "esa2ra", + "e3sa2s", + "es2ast", + "esa2v", + "es1ax", + "2esb", + "esbi5er.", + "e3s2ce", + "esch2", + "es4chi", + "e2s3ec", + "es1ehr", + "esein4s", + "es2el", + "ese4nal", + "ese4neu", + "esen3o", + "es2ens", + "esen3sk", + "esen3th", + "eser4at", + "ese4r1u2", + "eses2k", + "e2s3e2x", + "2esf", + "2esh", + "es2har", + "es3he", + "2esi", + "esi1er", + "e2s3i2k", + "e2s1il", + "esi2st", + "es2kat", + "e4s3ke", + "e4s3kl", + "es3ku", + "e4s3ky", + "es3l", + "2esm", + "e2s3oa", + "e4s3ob", + "e2s1od", + "es2oh", + "eso2r", + "es1ora", + "eso3re", + "es2ort", + "e3sot", + "e3s2ö", + "4esp", + "e3spal", + "es4park", + "es2pek", + "e4spers", + "e2sph", + "e3s2pi", + "e3s2por", + "2esr", + "2ess.", + "es2s1ag", + "essali3", + "essau4s", + "1essay", + "2essä", + "2es3sc", + "ess6ere", + "ess4erf", + "ess3erg", + "ess5er6la", + "2essk", + "2esso", + "es2sof", + "2essp", + "es2s1pa", + "es2spu", + "es4stab", + "ess3tie", + "es3stu", + "estab4b", + "esta3ge", + "est1ak", + "es4tanb", + "es4tang", + "e4stant", + "e1st4ap", + "e1star", + "e4starb", + "e2st1a4s", + "e1stat", + "e4stat.", + "e4staum", + "e4staus", + "es2tec", + "este4i", + "est5eing", + "est5eink", + "est5einl", + "e1ste2l", + "es4t3emi", + "e4sten", + "es4t3eng", + "est5entr", + "est5erha", + "es4ter4ö", + "es4t3erz", + "es4t3ess", + "es2th", + "es2tid", + "e4stig", + "e1stil", + "e2stip", + "es2tis", + "estmo6de", + "1estn", + "e2stom", + "e3strec", + "es4tri", + "e1strö", + "e1stu", + "est3ums", + "es2tur", + "e1s6tü", + "e3sty", + "e3suh", + "e2s1um", + "es3ums", + "es3unt", + "es1ur", + "esu4s", + "2es3w", + "e3sy", + "es3z", + "es4zene", + "2e1ß", + "e2ß1el", + "e2ßent", + "eße3re", + "e2ß1er2g", + "e2ß1erl", + "eß3t", + "e1t", + "etab4", + "eta2c", + "2e3taf", + "2etal", + "et1ami", + "et4an.", + "et4at", + "etat3r", + "et1äh", + "2e3te", + "ete2e", + "e4t1ef", + "e4t1ein", + "ete3ke", + "eten3d2", + "ete2o", + "eter4hö", + "ete1ro", + "eter4tr", + "ete2s", + "2eth.", + "et2ha", + "e4t3hal", + "e3the", + "et2hi", + "e4thik", + "3ethn", + "et2hu", + "e4t1i2d", + "eti2m", + "etin1", + "et1ini", + "et2it", + "eti2ta", + "eti2th", + "et3l", + "2e3to", + "e2tob", + "e4t1o2f", + "et4on", + "eto4n3al", + "etons4", + "e4torg", + "eto2s", + "2etr", + "et3rad", + "e4traum", + "et3rec", + "e2t3res", + "et4ros", + "ets2c", + "etscher7e", + "etsch3w", + "ets1p", + "et2spe", + "et2ste", + "ett1a", + "et2ta2b", + "et2tad", + "et2tak", + "et4tans", + "ett2as", + "et2tau", + "et2tei", + "ette4n1", + "ett4er", + "et2t1h", + "et2t3r", + "et2t1um", + "3e2tui", + "e3tur", + "e3tü", + "etwa4r", + "1e2tym", + "2etz", + "et2zw", + "eu1a2", + "eu3b4", + "2euc", + "euch4ta", + "2eud", + "eude1s", + "eudi4e", + "2eue", + "eu2eb", + "eue6r5eif", + "eue6reis", + "euerer6s", + "euerer6t", + "eu3eri", + "eu3erk", + "eu3err", + "eu2esc", + "4euf", + "eu2fer", + "eu2g1a", + "euge4mi", + "eu6gense", + "eu3g2er", + "eugin2", + "eugin4f", + "eu4gin4g", + "eu2gre", + "eu2gri", + "eugs4", + "eug3sp", + "eu3h", + "eu1id", + "eu1in1", + "e4uk", + "1eukal", + "eu2kä", + "eulan2", + "euland3", + "eu3l2e", + "eul2i", + "2e1um", + "e3um.", + "eu3m4a", + "e3umb", + "e3umf", + "e3uml", + "e3um2s1", + "eum5st", + "e3umw", + "2eun", + "eu2na", + "eun2e", + "eu4nei", + "e3un2g", + "eu2nio", + "eu4nis", + "eunk2", + "eun3ka", + "eu1o2", + "eu1p", + "e1up.", + "eu3p2f", + "e3upg", + "eu4r1an", + "eu4r3ast", + "eura3t", + "eu2rau", + "eur1c", + "e2ure", + "euren2", + "eu4rens", + "eur4er", + "eur3f4", + "1euro", + "2eus", + "e3usar", + "eusch4o", + "eus2i", + "eu4sk", + "eu3sp", + "eust4", + "eu1sta", + "eu1sto", + "eu1s4tr", + "2eut", + "eut2e", + "eut2h", + "3eu3tha", + "eut2i", + "eu5t2o", + "eut6scha", + "eut6schn", + "eut6schr", + "2eux", + "eu2za", + "eu2zo", + "eu2z1w", + "e3ü", + "e1v", + "e2vak", + "e3var", + "eva4s3", + "2ev2e", + "eve5ri", + "evie3le", + "2e3vor", + "e1w", + "ewä2s", + "e2we.", + "ewei4sc", + "ewert4", + "ewer3te", + "e3wir", + "ewi2s", + "e3wit", + "2ex.", + "1exam", + "ex3at", + "2exc", + "2exd", + "e2xel", + "ex1er", + "2exes", + "e1xi", + "2exik", + "e2xil", + "e2x1in", + "e3xio", + "1exis", + "ex3l", + "1exp", + "2expu", + "2exs", + "2ext.", + "2ex2ta", + "ex2tin", + "1extr", + "2extu", + "2extv", + "2exu", + "e2xum", + "2e1xy", + "2ey1", + "eyl2", + "ey2n", + "ey3no", + "eys4", + "e1z", + "e3z2a", + "ez2ä", + "e2z1enn", + "e3zi", + "ezi2s", + "e3z2o", + "ez2w", + "ez3z2", + "é1b", + "é1c", + "é1g", + "égi2", + "é1h", + "é1l2", + "élu2", + "é1m2", + "é1n", + "é1o", + "é1p", + "é1r2", + "é1s", + "ési2s", + "é1t", + "é1u2", + "é1v", + "é1z2", + "è1c", + "è1m", + "ène1", + "ènes4", + "è1r", + "1ën", + "ë1t", + "ê1p", + "ê4t", + "1fa", + "fab4", + "2f1ab5b", + "fa2ben", + "2fabf", + "2fabg", + "2f1a2b5l", + "2fabn", + "3f2abr", + "2f1ab5s", + "2fabw", + "fa4cheb", + "fa4chel", + "fa2ch1i", + "fa2cho", + "fach3s4p", + "fa2dan", + "fa2del", + "f1ader", + "fa2di", + "fa2dr", + "fa3e", + "fah6l5ent", + "3fahre", + "5fahrt", + "fai3b", + "f1a2ka", + "fa2ke", + "f3aktio", + "f4akto", + "3f2aku", + "fa3la", + "fa3le", + "fal2kl", + "fal2l1a", + "fal4l3ei", + "fall5ent", + "fal6lerk", + "faller6s", + "fal6scha", + "fal6schl", + "fal6schm", + "fal2tr", + "fa2mei", + "f1amp", + "f1amt", + "3f2an.", + "fa2nar", + "fand2a", + "f2anf", + "fan2ga", + "fan2gr", + "2f1an3k", + "2fanl", + "4fann", + "f1anp", + "2fanr", + "2fanw", + "2f1an3z", + "2f1a2p", + "f2ar", + "far2b1a", + "far4bel", + "far4b3er", + "far4bin", + "farb1l", + "far2bo", + "far2b3r", + "far2b3u", + "f3arc", + "3fa5ri", + "far2r1a", + "farr3s", + "2f3art", + "2f3arz", + "fa3s4a", + "fa3sh", + "fa2st", + "2f1astr", + "fa2ß", + "f3at", + "f4at.", + "fa2to", + "f4ats", + "2f1auf", + "f3aug", + "fau2s", + "f1ausb", + "faus4t3r", + "3f4av", + "fa2xa", + "1fä", + "3fä1c", + "fäh4rin", + "fäh2ru", + "f1älte", + "2fäq", + "3färb", + "2f1ärm", + "2färz", + "fässer4", + "fäs6serk", + "fäs6serw", + "fä2ßer", + "2f1ätz", + "2fäug", + "2fäx", + "4f1b4", + "fbau1", + "fber2", + "2f1c", + "f3ch", + "2f3d4", + "fdien2", + "1fe", + "3fe.", + "featu4", + "fe2c", + "f2ech", + "fe3che", + "fe2del", + "fe2dr", + "fe2e1i", + "feein5", + "fe1em", + "2f1e2he", + "fehle2", + "feh4lei", + "f2eie", + "f2eind", + "2f1eing", + "fe3ini", + "fe3ins.", + "fei4nu", + "2f1einw", + "f1eis", + "fek4tin", + "fe2l3a2", + "fe2l1ä", + "fel2da", + "felde4m", + "feld6erh", + "fel2dr", + "2fe2lek", + "2felem", + "fe2l1er", + "fe2les", + "fe2l1o", + "fel4s3oh", + "fels2t", + "felt4", + "6fel6tern", + "f2em.", + "2femb", + "fem4m", + "2femp", + "fen3a", + "fe2nä", + "fend2", + "4fenerg", + "fe2ni", + "fe2no", + "fen3s2a", + "fen5s2c", + "fenst2", + "f1ent", + "fen3t2a", + "2f3entf", + "f2enti", + "4fentla", + "f2ento", + "2f3entw", + "4f3entz", + "3fep", + "fe2pi", + "f2er.", + "fe1ra", + "fe2rab", + "fer3a2d", + "fe2ral", + "fe4rang", + "fer4ant", + "fe4ranz", + "fe2rau", + "fe2r1ä", + "2ferd.", + "fer3da", + "fer3d2e3", + "f2ere", + "fe2r1e2b", + "fe2rec", + "3fer2ei", + "4f3ereig", + "fer3eis", + "f4erel", + "fer3ell", + "fe4rer4g", + "fer4fah", + "fer4fol", + "ferg4", + "f4ergr", + "feri2d", + "ferie4n3", + "feri4on", + "4fer4leb", + "f2ern.", + "fer4nei", + "fe2rö", + "f4erpa", + "f4erpf", + "f4erpl", + "f4erra", + "fer4reg", + "ferri2", + "f2ers.", + "f2ert", + "fert4r", + "f2erz", + "fess2e", + "fe2st", + "fest3a4b", + "fest3an", + "fest3ei", + "fes4tel", + "fes4t1o", + "fes4t3r", + "2f1e2ta", + "fe4tag", + "3fete", + "fe2th", + "fet4t3a", + "fetti3s", + "2feu.", + "feuer3ö", + "3few", + "2f1ex", + "fe1y2", + "3fez", + "1fé", + "4f1f", + "ffab6s", + "ff1a2d", + "f3f2ak", + "ff3ar", + "f3fas", + "ffa2t", + "ff1au", + "f2f1e2b", + "ffe2e", + "f2f1ef", + "f2f1ei", + "ffe3in.", + "f5fek", + "ff1e2m", + "f2femi", + "ff2en", + "ff3erle", + "fff4", + "ffi3k", + "f2fim", + "ffin3s", + "ff1lag", + "ff3le", + "ff3li", + "f3flü", + "ffo2r", + "ff1ox", + "f3f4rä", + "ff3ro", + "ffs2am", + "ff2s1p", + "ffs3tie", + "ffs3tut", + "ff3stü", + "ff3t2", + "ffus3s", + "f2fy", + "4f3g2", + "fgeb2", + "fge3s", + "fglim2", + "4f3h2", + "1fi", + "3fi.", + "fi4ak", + "fi2ar", + "fi3at", + "fid4", + "fi2do", + "f2ie", + "fi2e1i", + "fien3", + "fi1er2f", + "fi2gr", + "fi2k1as", + "fi2kel", + "fi2kin", + "fi2kn", + "fi2k1o4", + "fi4k3r", + "f2il", + "fi2l1an", + "fil3d", + "fi2les", + "fil2et", + "filg4", + "fi3li", + "fi4lin", + "fil2ip", + "fil2ma", + "fil2mä", + "fil4med", + "fil4mei", + "fi2lo", + "2fimp", + "3f2in2a", + "fin2e", + "2f1inf", + "fing2", + "fing4s4", + "fi3ni", + "f2ink", + "fin2s", + "fin3sc", + "fin3sti", + "2f1int", + "fi2o", + "fi3ol", + "fi2r", + "fi3ra", + "fi4re", + "fir3me", + "fi3s2a", + "fi4sch3a", + "fi6schei", + "fisch3o", + "fi4schr", + "fi4sch3w", + "fi3s2h", + "2f1iso", + "fis2p", + "fi2s3t", + "fite2", + "fi2tin", + "fit1o2", + "fi4tor", + "five4", + "fi2xel", + "fi2za", + "2f1j", + "3f2jo", + "4f1k4", + "fka4t3", + "f2l2", + "2fl.", + "f3lad", + "f5land", + "f4lans", + "f3lap", + "f4lasc", + "f3lats", + "flauma4", + "1flä", + "3f4läc", + "4fläd", + "2fläh", + "2f3län", + "2flär", + "2f3läu", + "f5le.", + "2f3leb", + "f4lee", + "2f5lein", + "flek3", + "flekt2", + "f3ler", + "f4lex", + "f3li.", + "3f4lim", + "f3lind", + "fli4ne", + "f3ling", + "2f3lins", + "2f5lon", + "1f4lop", + "1floß", + "1f4lot", + "flo2w", + "f3lö", + "4flöf", + "f4lög", + "3f4luc", + "f3luf", + "1f4lug", + "1f4luss", + "f4lut", + "flut1o", + "f4lü", + "f5lüm", + "fly1", + "4f3m2", + "fma5che", + "fma2d", + "4f3n2", + "fni2s", + "1fo", + "f1ob", + "fo2be", + "2fober", + "fob2l", + "2f1o2f", + "5foli3", + "fo2na", + "fo4nan", + "fon3au", + "fon3dr", + "fo4n3in", + "fo2nop", + "fons4", + "fo2nu", + "2f1op", + "4f3org", + "3form", + "for4m3a4g", + "for4mas", + "for4m3ei", + "for4min", + "forni7er.", + "for6schl", + "for4st", + "for4t3ei", + "for4ter", + "for2t1h", + "for2t3r", + "fort3s2", + "for3tu", + "for2u", + "fot4r", + "1fö", + "2fö2f", + "2f1ök", + "4f1öl", + "för4s5", + "4f3p4", + "2f1q", + "f2r4", + "f3ra.", + "frach6tr", + "2f3rad", + "2f3rah", + "fra4m", + "f3rand", + "f5rap", + "fras3ta", + "f3rat", + "1frau.", + "f3rauc", + "2fräd", + "1f4rän", + "2fre.", + "f3rec", + "f3red", + "2fref", + "f4rei.", + "f3reic", + "f4reie", + "frei1f", + "f4reig", + "frei3k2", + "2frein", + "2frek", + "2f3rep", + "2frest", + "3f4reu", + "2f3ric", + "fricht6e", + "fri3d", + "fri2e", + "2frig", + "f4ri3k", + "f3rip", + "1fris", + "f4risc", + "f4rist", + "2f3roc", + "2frol", + "1f4ro2n", + "fro4n1a", + "f4rop", + "fro2s", + "f3rot", + "frös2", + "f3ru", + "f4ruc", + "f3rü", + "4f1s", + "f2s1al", + "f2sa2n", + "fs3ane", + "f4s3ar", + "f2s1a2s", + "fsa2t", + "fs3ate", + "f2saut", + "fs2än", + "f3sc", + "f4sca", + "f4sce", + "f4schan", + "f4schef", + "f4schro", + "f4scr", + "f2s1e2b", + "fse2ei", + "f4s1ehr", + "fse2n", + "fs1en1e", + "f2s1ent", + "f2s1er", + "fse4t", + "f2s1eta", + "f2s1i4d", + "f3s2ky", + "f2s1o2", + "f3soh", + "f3sol", + "f3spann", + "f2s1pas", + "f2sph", + "f3s2pl", + "f3s2por", + "f2spre", + "f2spro", + "fs2pul", + "fs3s4", + "fs2t", + "fst2a", + "fs3tak", + "f2stas", + "f3stat", + "fs3tät", + "f4stäti", + "f3stel", + "f3stern", + "fs3th", + "f2stip", + "fs4tol", + "fs4tor", + "fst4r", + "f4s3tres", + "fs3trü", + "f4stüte", + "f2s1un", + "f3sy", + "4f1t", + "f4ta.", + "ft1a2be", + "ft1abl", + "ft1af", + "ft2ag", + "ft1ala", + "ft1an", + "f2t1ap", + "ft1a2r", + "ft3att", + "f2t1äu", + "fte2c", + "ft1eck", + "ft1edi", + "ft1eh", + "fte2he", + "ft1eig", + "ft1ein", + "ft1eis", + "ft1eli", + "fte3ma", + "ft1emi", + "f4t1ent", + "ft3erfü", + "ft1erk", + "f2t1erl", + "f2t1erz", + "f2t1e2ti", + "f2t1ex", + "f2t1h", + "f4t3hei", + "f2t1id", + "f3tik", + "f2tim", + "f2t1in", + "ft2ing", + "fto2", + "f2t1of", + "f2t3ot", + "f3t4ran", + "f2t3res", + "f3treu", + "ft4rit", + "ft3ro", + "ft3ruh", + "ft2s1", + "ft4sam", + "ft3s2c", + "ft4sche", + "ftse2", + "ft4seh", + "ftsen1", + "ft3st", + "ft4staf", + "fts3tät", + "ft4stei", + "ft4stem", + "ft6stier", + "ft6s5treu", + "ftstro4", + "ft4stru", + "f2tum", + "ft1urk", + "ft1url", + "f3tü", + "ftwa4", + "ftwa6r", + "ft3z2", + "ftze3d", + "1fu", + "3fuc", + "3fug", + "f2uh", + "fuku3", + "fulb4", + "f1um1", + "fu2mei", + "f2umm", + "fund3er", + "fun6derg", + "fun6derh", + "2f1unf", + "fung4", + "2fungl", + "2f1u2ni", + "fun2kl", + "fun2ko", + "fun2k3r", + "fun2ku", + "2f1unm", + "2funr", + "2funt", + "f2ur", + "furch2", + "fu4re.", + "2f3url", + "fus2sa", + "fus2s1p", + "fus2st", + "fu2ß1er", + "3fut", + "1fü", + "2füb", + "fühl4sc", + "fün2", + "fü2r", + "2f1v", + "4f1w", + "f1y", + "4f1z", + "fz2a", + "fzeiten6", + "fzei8t7end", + "fz2ö", + "fzu2ga", + "fz2w", + "3ga.", + "2gabf", + "2gabg", + "2g1a2b3l", + "gab2o", + "g1abr", + "gab4ri", + "2gabsc", + "g2abt.", + "2gabtr", + "ga3bu", + "2gabw", + "2gabz", + "ga1c", + "gade2r", + "ga3d2i", + "gadi4e", + "ga2dr", + "gae2", + "ga1fl", + "5gag.", + "ga1k", + "ga2ka", + "ga2ku", + "gal2a", + "ga3laf", + "ga2lar", + "2g1alau", + "2g1alb", + "2g1alg", + "gal3lo", + "2g1alp", + "2g1alta", + "2g1altd", + "g1a2lu", + "ga2mec", + "ga3mel", + "gam3ma", + "5g4amo", + "2g1amt", + "g1a2na", + "2ganal", + "gan3d4", + "2ganf", + "2ganga", + "4gangeb", + "gan2gr", + "gang4sp", + "gan2g1u", + "2g1ank", + "2ganl", + "2ganmu", + "3g2ano", + "ga2nob", + "2ganr", + "gans2", + "g2ans.", + "2g1ansi", + "2ganst", + "2ganw", + "ga1ny", + "2g1anz", + "ga3pe", + "2g1app", + "ga1q", + "3gar.", + "g2ara", + "2garc", + "3g2ard", + "ga3ret", + "ga3r2i", + "2g3arm", + "ga3r2o", + "gar2s", + "2g1arti", + "ga3ru", + "2g1arz", + "g2as.", + "ga2sa", + "ga4s3al", + "ga4sam", + "gasche4", + "gase2", + "ga2sei", + "ga2sel", + "ga2se4m", + "ga2si", + "ga2sor", + "gas3s2", + "5g4asse.", + "g3asses", + "6gassess", + "ga2st", + "ga4ste", + "gas4t3el", + "ga4str", + "gast3rä", + "ga3t2a", + "2gatm", + "gat4r", + "gau1c", + "2g1auf", + "2g3aug", + "g2auk", + "gau5ne", + "2g1aus", + "2g1aut", + "ga3z", + "2g1äp", + "gär3th", + "2gärz", + "gä4u", + "2g5b4", + "gber2", + "gbi2", + "gby4t", + "2g1c", + "2gd", + "g1da", + "g3d2ad", + "gda3de", + "g2d1ak", + "g2d1an", + "g2d1ar", + "g2d1au", + "g1dä1", + "g2dei4", + "gd1els", + "g2dent", + "g2d1er", + "g2d1et", + "g2d1in", + "g1do", + "g2dop", + "g1dö", + "g1dr", + "gd3re", + "gd3ru", + "gd3s2", + "gdt4", + "ge3a2", + "ge4ate", + "geb2a", + "ge3ble", + "geb4lin", + "geb4lo", + "gebot4", + "3gebü", + "ge1c", + "ge3ck", + "ge1e2", + "ge3ec", + "ge2es", + "geest3", + "ge5fa", + "3gefä", + "4g1eff", + "gef4l", + "gef4r", + "ge3fu", + "g4eg", + "gege2n1", + "gegene4", + "gegen3s4", + "ge3g2l", + "geg4r", + "geher3l", + "ge3ho", + "2g1eid", + "ge4ie2", + "ge4ig", + "g2eil", + "ge1in1", + "ge2inf", + "gein4h", + "2g1einr", + "gein2s", + "gein2v", + "ge1ir", + "2g1eise", + "gei3sh", + "geis4s3c", + "gei2st", + "geist3r", + "2gek.", + "ge4lanz", + "gelb1r", + "gel4b3ra", + "gelb3s", + "gel4den", + "gelder4", + "gel6derh", + "gel6ders", + "ge3lec", + "gele5cke", + "ge2lef", + "2ge2lek", + "2gelem", + "gelen1", + "ge4lene", + "gel3ere", + "ge4lerk", + "geler3ö", + "ge4l3ers", + "ge2l1ev", + "gel3f", + "gel1i4m", + "gel3la", + "gell2i", + "gel2ö", + "gel3sa", + "gels2p", + "gels2t", + "gel3ste", + "gel3sz", + "gel3ta", + "gelt4r", + "gel3z2", + "gem2", + "ge4ma.", + "gem6e", + "4g1emp", + "ge3mu", + "g4en.", + "ge3na", + "ge4n1ac", + "ge4nad", + "ge4nak", + "ge4n3al", + "ge4nam", + "ge4nap", + "ge4nar", + "ge4nat", + "gen4aug", + "4genda.", + "gend3in3", + "4g3endmo", + "gen2d3r", + "gen3eid", + "gener4f", + "4generg", + "ge4n3ern", + "gen6erwe", + "gener4z", + "ge2nim", + "gen3k4", + "gen3n", + "ge2noc", + "gen4sam", + "gen6semb", + "gen3sk", + "gen3sz", + "gen3tä", + "2gentf", + "gen3t2h", + "gen5tr", + "2gentw", + "gen3zw", + "ge1oo", + "geo2ri", + "g2ep4", + "ge3pl", + "ge3po", + "ge1ra", + "ge2rab", + "ge2rak", + "ge2r3al", + "ge3rann", + "ge4rant", + "ge4r3a2r", + "ger2as", + "2gerdg", + "ge3rem", + "ge4rene", + "ge4reng", + "ge4ren4s", + "ge4r3ent", + "ger2er", + "gerin4d", + "gerin4f", + "ger4inn", + "gerin4t", + "4ger4klä", + "g3erlas", + "ger5me", + "ger3no", + "2g1ernt", + "ge1ro", + "ge2rob", + "ge1r2ö", + "ger4sat", + "4g3er4seh", + "ge3r2u", + "ge1s2", + "g4es.", + "ges3auf", + "3ge3sc", + "gesch4", + "ge6sche.", + "ge2s3eb", + "4g3e4sel.", + "ges3elt", + "ge2s3er", + "ge3sha", + "ge3si", + "ge3so", + "ge3spa", + "ges4pi", + "ges3se", + "ges3s4t", + "gest2", + "gest4a", + "ge3stak", + "ges4tan", + "ge3st6e", + "ge4s3ter", + "ges3th", + "ges6tier", + "ge4s3tur", + "ge3t2a", + "ge4tang", + "ge4tant", + "g1etap", + "ge2thi", + "ge5trei", + "ge5tri", + "ge5t4u", + "2g1e1ul", + "ge3unk", + "ge1urt", + "ge3u4t", + "4g1e2x", + "2g5f4", + "gfi2l", + "2g1g", + "gga4t", + "g5ge", + "gge2ne", + "gg2l", + "g3gla", + "g3glo", + "g2g3n", + "gg4r", + "ggs2", + "2g1h", + "4gh.", + "gh2a", + "3ghale", + "gh2e", + "3g2het", + "3g2hie", + "gh1l", + "3gh2r", + "ghs4", + "gh3sc", + "g2hu", + "gh1w", + "gi3alo", + "gich2", + "gicht1", + "gie3g", + "gi2e1i", + "gi2e3l", + "giel2a", + "gie5n2e", + "gi4eno", + "gie3res", + "gie1st", + "gift5s", + "gi2gu", + "gi2kel", + "2g1ill", + "gi2me.", + "gi4mes", + "gi2met", + "2gimp", + "2gin2d", + "gi3ne", + "2g1inf", + "2gin4h", + "2g1ins", + "gin2sa", + "2g3int", + "2gin2v", + "gi2ob", + "2giok", + "2g3isel", + "git2a", + "gitt4e", + "gi3tu", + "gi4us", + "2g1j", + "4g5k4", + "gl2", + "4gl.", + "4g1lab", + "2g1lac", + "2gladu", + "2g1lag", + "2g1lam", + "2gland", + "gla2s1c", + "glas3t4", + "3g2laub", + "2g1lauf", + "2gländ", + "2gläuf", + "gl3b", + "g2l4e", + "2g3le.", + "3glea", + "2g3leb", + "g3lec", + "4g3led", + "g3lee", + "2g3leg", + "2gleh", + "g4leic", + "4g3lein", + "gleiter8s", + "glei4t5r", + "g3len", + "4glenk", + "4g3ler", + "glerei4", + "2gles", + "3gles.", + "g3lese", + "g2lia", + "2glib", + "3g2lid", + "3g2lie", + "4g3lieb", + "2glif", + "g2lik", + "4glil", + "g2lim", + "2glin", + "g2lio", + "2glis", + "g2lit", + "g3lite", + "g2liz", + "g3lize", + "g2loa", + "g2lob", + "g2loc", + "2g3loch", + "g2lok", + "g2lom", + "g2lop", + "2glorb", + "2glos", + "g2lot", + "2glöch", + "2glös", + "2glöw", + "2gls", + "g1lu", + "2g3luf", + "2gluk", + "2g3lun", + "g2lut", + "3g2lü", + "g3lüg", + "2glw", + "3g2ly", + "2g1m2", + "gmen4tr", + "gmi2s", + "g1n", + "2gn.", + "g2n2a", + "g4na.", + "2gnac", + "g4nad", + "2g5nah", + "gn4al", + "gna4l3er3", + "2gnanl", + "3g2nä", + "2gnb", + "2gnc", + "2gnd", + "gn2e", + "g3neh", + "2gn3ent", + "gne2tr", + "gneu1", + "2gnf", + "2gng", + "2gnh", + "g2nie", + "g2nif", + "g4nin", + "2gnint", + "2gni4s3", + "gnise2", + "2gnk", + "2gnl", + "2gnm", + "g2no", + "3g4non", + "gno1r", + "g3not", + "2gnp", + "2gnr", + "2gns", + "2gnt", + "2gnu", + "3g2num.", + "g2nü", + "2gnv", + "2gnw", + "g2ny", + "2gnz", + "go4a", + "goa3li", + "g1ob", + "gobe3l", + "2gobj", + "g2ob2l", + "gob2s", + "2g1o2f", + "2gog", + "2g1oh2", + "goh3ren", + "go1i", + "gol2a", + "gol2da", + "gol2fr", + "3gon.", + "go4nat", + "gon2e", + "3gons", + "3g2opa", + "gopf4", + "go2pos", + "2gopt", + "gor2a", + "2g1ord", + "2g1org", + "go2si", + "go2s3p", + "go1ste", + "2g1osz", + "go3t2h", + "got6terb", + "got6t5erg", + "gotte4s", + "3gou", + "go1y", + "gö2f", + "g1öl", + "3göt", + "2g3p4", + "2g1q", + "g2r4", + "g4rab", + "gra2ba", + "gra2bi", + "gra4bl", + "2g3radl", + "2g3rah", + "2g3rak", + "gram1", + "grammen6", + "gram8m7end", + "gram6mer", + "g3rand.", + "2gra2r", + "grar1e", + "gra4s3a", + "gra4sh", + "gra4sp", + "gra2st", + "2g3raub", + "grau3f", + "2graum", + "grau3sk", + "2gräd", + "gräs1c", + "g3räu", + "2g5re.", + "g4reb", + "2g3rec", + "g3rede", + "g4re2e", + "2g3ref", + "gre2fr", + "2grege", + "2g3reic", + "grei4fr", + "2g3reih", + "g3rein", + "g3reit", + "3g4rem", + "3gren", + "4g3renn", + "gre3no", + "gren6z5ei", + "grenz3w", + "g4rer", + "2grese", + "gres6ser6", + "g3ret", + "g3rev", + "2g3ric", + "gri2e", + "2g3riem", + "g3riese", + "2grig", + "gril4la", + "4g3ring", + "4g3rinn", + "gro2b3a", + "gro3ber", + "gro2bl", + "gro2b3r", + "2groc", + "2groh", + "2g3rol", + "2g3rose", + "g4ross", + "gros6sel", + "g4rot", + "2gröh", + "2gruf.", + "g4ruft", + "2g3ruh", + "g3rui", + "2g3rum", + "grun2g", + "3grup", + "3grus", + "3gruß", + "2g3rut", + "2g3rüc", + "4g2s1", + "gs3a2b", + "g4sac", + "g5sack", + "gsa2d", + "gs3a2k", + "g3sal", + "g4s3alb", + "g4sall", + "g4salm", + "g4salt", + "gs2am", + "g4s3ama", + "gs3amb", + "g4s3amp", + "gs3a4p", + "gs3a2r", + "g3sat", + "gsau2g", + "gsau4r", + "gsa2v", + "g3säu", + "g3s2c", + "g4sca", + "g4s3ce", + "gsch4", + "g4schef", + "gs4chi", + "g4sco", + "gse2", + "gs2e3h", + "gs4eil", + "gse4kl", + "g3sel.", + "g4sela", + "g3seln", + "gs3em", + "gsen1", + "g4s3ent", + "g4s3er", + "g3sere", + "gser1i", + "g4se4s", + "gse4t", + "g4seu", + "gsfi2l", + "gsgene4", + "gs3ha", + "gsi2d", + "gs3i2k", + "g3sil", + "gs3io", + "g4s3ita", + "gs2ki1e", + "gs3kr", + "gso2", + "g4s3o4b", + "g3sol", + "gs4on", + "g4s3op", + "g5s4orge", + "gs4pant", + "g4s3pas", + "g3spei", + "g3s2pek", + "g3s2pi", + "g5s6pie", + "g4s3pl", + "g5s6port.", + "g4s3pru", + "gsrat4", + "gsrü2c", + "gs3s4", + "gs3ta", + "g3s4tad", + "g4stag", + "g3s4tan", + "g4stanz", + "g3star", + "gs4tati", + "gs3tä", + "g3steh", + "g3s4tein", + "g3st2el", + "gs4tell", + "gste2r", + "gst3err", + "g1steu", + "gs2thy", + "g3stif", + "g3stil", + "g3stim", + "g3stir", + "g3sto", + "g4stoch", + "g4stod", + "g4stor", + "gs3tö", + "gs4tör", + "gs3tr", + "gst4ra", + "gs4tras", + "gs4trat", + "gst5reit", + "gst4res", + "g4streu", + "gst3rit", + "gst3ros", + "g3stun", + "gs3tü", + "gs3un", + "g3sy", + "2g1t", + "g3te", + "gtei3s", + "gt1h", + "gt2hy", + "gt2i", + "gti2m", + "g3to", + "gt4r", + "gt4s", + "g3tü", + "gu4ale", + "gu3am", + "gu1an.", + "gu1ant", + "gu1as", + "gu1c", + "gu4d3r", + "gu2e", + "2gued", + "guet4", + "2g1u2f", + "2g1uh", + "gu3ins", + "gu1is", + "gum2e", + "3gumm", + "gummi1", + "gun2e", + "2g1unf", + "gunge2", + "4gungew", + "2gungl", + "2g1u2ni", + "2g3unk", + "2gunr", + "gun2s", + "2gunt", + "3gur", + "gure4", + "4g1url", + "gur2t3h", + "gur2tr", + "gurt3s", + "guru1", + "gu2s", + "gu4s3a", + "gu3sc", + "guschi5", + "gu3se", + "guss1o", + "gus2sp", + "gus2st", + "gu4st", + "gust3a4b", + "gus3te", + "gus6t5en6d", + "gus6terl", + "gus4tr", + "gu2t", + "gut1a", + "gut3er4h", + "gut1h", + "gut2s3p", + "2güb", + "3gür3", + "gü2s3", + "2g1v", + "2g1w", + "gy3n", + "gy4na", + "2g3z2", + "gzeu4gi", + "2ha.", + "hab2a", + "hab2e", + "h3abf", + "hab2i", + "h1ablu", + "2habn", + "h1a2br", + "h1abs", + "2habw", + "ha4ch3en", + "ha2cho", + "hacks4", + "2hada", + "ha2del", + "hade2n", + "h1adle", + "h1a2dr", + "ha3dri", + "2hae", + "ha3el", + "ha4far", + "haf2e", + "h1affä", + "haf3f4l", + "h2aft", + "haf4to", + "haf2tr", + "haf4tre", + "haft4s3p", + "hag2a", + "h2agg", + "h1ah", + "ha3ha", + "h2ahs", + "h2ai", + "3hai.", + "h2aj", + "2haka", + "ha1kl", + "2h2al.", + "ha3l2al", + "halan4c", + "h1a2lar", + "ha2lau", + "hal2ba", + "hal4bel", + "hal4bin", + "hal2b3r", + "hal2bu", + "2hale", + "2halh", + "hal2i", + "hal2l1a", + "hal6lere", + "haller6f", + "hal6lerg", + "ha3lo", + "4halp", + "hal4sk", + "hal2sp", + "hal4tal", + "hal4tei", + "hal2t3r", + "hamot4", + "2h1amt", + "h2an.", + "2hana", + "ha2nal", + "ha2nan", + "han2au", + "2hanb", + "h2anbe", + "h2and", + "han2da", + "han4d3er", + "han2d3r", + "hand3s", + "ha2nem", + "han2f1", + "han6g5end", + "han4gro", + "han2k1", + "2hanl", + "2hano", + "2hanr", + "h1ansc", + "2hanz", + "2h1ap", + "3h2ape", + "ha2pl", + "ha2po", + "ha2pr", + "h2a3ra", + "ha4rab", + "2harb", + "2harc", + "h2ard", + "har2fr", + "h1arm.", + "har3ma", + "h2arme", + "har4me.", + "har4ne", + "ha2rom", + "2hars", + "hart4e", + "har2th", + "h1arti", + "har4tr", + "har2za", + "h2as", + "2has.", + "2ha3sa", + "has4c", + "has2h3", + "has4sa", + "hasser4", + "has4s3t", + "ha2str", + "h1a2ß", + "ha2ta", + "hat2i", + "h3atl", + "ha2t3r", + "2hats", + "hat5t2", + "h3attr", + "h1audi", + "h1aufb", + "hau5f6lie", + "hau3f4lo", + "2h1aufm", + "h1aufs", + "h3au3g2", + "h1aukt", + "hau2sa", + "hau4san", + "hau2s1c", + "h2ause", + "hau4sel", + "hau6s5ent", + "hau4spa", + "hau4spe", + "haussen6", + "hau4sur", + "hau2t1a", + "hau4t3r", + "ha2ve.", + "häde2", + "h1äff", + "2häi", + "hä2kl", + "2härz", + "hä6s5chen", + "2h1äst", + "2häug", + "häu2s1c", + "hä3usp", + "2h3b4", + "hba4ras", + "hber2e", + "2h1c", + "2h3d2", + "hdan2", + "2hea", + "he2ad", + "he3be", + "heb3eis", + "he2b3l", + "he3br", + "he3bu", + "he3ch2e", + "he3chi", + "he1cho", + "h3echs", + "he3cke", + "hed2g", + "he2dit", + "he1e4m", + "hee2n", + "hee2s", + "he1e2t", + "h2ef.", + "he2fan", + "he2fau", + "he2f1ei", + "he3f2em", + "hef3erm", + "2heff", + "he2fid", + "he4f3in4g", + "he2f5le", + "2hefr", + "hef4ra", + "he2fre", + "3heft", + "he2fu", + "he3gu", + "he2hel", + "hei4a", + "h4eib", + "h1eie", + "h1eif", + "h1eig", + "he2im", + "hei4mal", + "hei4man", + "hei4mar", + "hei4mei", + "heim3p", + "hei4mu", + "2hein", + "hei4na", + "heine2", + "hei4n3eb", + "hei6nene", + "hei4n3er", + "h3eintr", + "2heio", + "2he1ism", + "he1ist", + "h2eit", + "heit4s3", + "h1eiw", + "hekt3a", + "he2la", + "he3lag", + "hel1an", + "hel3au", + "hel1ec", + "he2lek", + "h3elem", + "he2len", + "h2elf", + "he3li", + "hell2a", + "hel4l3au", + "hel4mei", + "he3lo", + "he4lof", + "hel2or", + "he2lö", + "4helt", + "h4em.", + "2hema", + "hem2b", + "1hemd", + "2heme2", + "h2e3m2i", + "he4mia", + "h3e4miss", + "1hemm", + "2h3emp", + "h2en.", + "he4n3a2", + "he2nä", + "hen3ebe", + "henen1", + "hen3end", + "he4nene", + "he4nens", + "hen3erg", + "he4nerm", + "he2n1e4t", + "2henga", + "hen4gag", + "hen4kan", + "hen4kau", + "2heno", + "heno3t", + "hen4sem", + "henst2", + "hen3str", + "hent2a", + "hen3te", + "hen4ter", + "hen5tr", + "hen4tri", + "h1ents", + "2h3entw", + "h3entz", + "he4n3u", + "hen3z2", + "2he2o", + "he3on", + "he3op", + "he3pa", + "he3ph", + "h1e2pi", + "hept2", + "h2er.", + "her3a2b", + "he2rad", + "2herap", + "he4r3a2r", + "herau2", + "herb2", + "he2r1e2b", + "he4reck", + "her4eif", + "4he3reig", + "he6reis.", + "her7eises", + "he2rel", + "he4rene", + "he6rersc", + "he4rerw", + "h1erfo", + "her4fol", + "6hergebn", + "2herif", + "herin4d", + "herin4f", + "he6rin6nu", + "herin4s", + "h1erke", + "her4klä", + "h5er6kran", + "h6erlad", + "2herm", + "he3ro", + "he4r3o2b", + "he4rof", + "he4rop", + "he4rot", + "h1erör", + "hert4", + "her3th", + "her3um", + "her4zap", + "her6zeng", + "h3erzeu", + "her2z1w", + "he3s4a", + "2hese", + "he3si", + "he3s2p", + "hes6tä", + "he2tap", + "he3tä", + "heter2", + "he3th", + "het2i", + "he3t4s", + "he2u", + "heu3g", + "he3unt", + "3heusc", + "he3x", + "he1x2a", + "2hexp", + "hey2", + "he1ye", + "1hè", + "2h3f4", + "hfaller6", + "hfan2", + "hfel2l3", + "hfi2s", + "hflei2", + "2h3g4", + "hga2s1", + "2h1h2", + "hhoh2", + "4hi.", + "2hia", + "hi2ar", + "h1iat", + "2hic", + "hi1ce", + "hich6t5er", + "hicht6sp", + "hi3d", + "hid4e", + "hi4dio", + "2hido", + "hi2e", + "hi3ens", + "hie4rei", + "hier3i", + "hie4rin", + "hiers2", + "hif3f4r", + "hi2k3r", + "hi2l3a4", + "hile3n2", + "hil2fr", + "h2im", + "2hima", + "h3i4mit", + "h4imm", + "h3impe", + "hi2n", + "hi3nak", + "hi3nam", + "hi3nap", + "hi5n2as", + "h2inde", + "hine2i", + "hi3nel", + "hin2en5", + "h1inf", + "h1inh", + "2hi3n2i", + "hin3n2", + "hi3n2o", + "hin3s2", + "hin2t1a", + "2hio", + "hi3ob", + "hi4on", + "hi2p3", + "hi4pl", + "hips2", + "hi4pu", + "hi2r", + "hi3ra", + "2hi3re", + "hi3ri", + "hir2m1a", + "hir2mi", + "hirn1", + "hir4ner", + "hir2s", + "1hirt", + "2his.", + "his2a", + "hi4se", + "h1i2so", + "hi3tac", + "hi2tan", + "hi2tel", + "hi1th", + "hi3t2i", + "hit1r", + "hi2tro", + "hit3z2e", + "hi2v1o", + "2h1j", + "2h1k4", + "hkamp2", + "h2keu", + "hki2n1", + "h3kö", + "2hl", + "h4laf", + "hl2ag", + "hla2gr", + "hlan4d3a", + "hl1ans", + "hl1anz", + "h1las", + "h1lat", + "h1laut", + "h1lay", + "h3läche", + "h1läs", + "h1läu", + "hlb4", + "hl3d4", + "h3le.", + "hle3a", + "h3leb", + "h3led", + "hle3e", + "h2leis", + "h3leist", + "hl1el", + "h5len.", + "hle4nas", + "hlenen3", + "hl2enn", + "h4l3entr", + "h4lents", + "hl2enz", + "h3ler", + "hle2r3a", + "hl4ere", + "h2lerg", + "hler4hö", + "hl2erk", + "h6l3er4nä", + "hle3run", + "hl1erw", + "h4lerz", + "h3les", + "h4lesi", + "h4leud", + "hlf4", + "hlg4", + "h2lie", + "h3lied", + "h2lif", + "h2lim", + "hl1ind", + "hling4s3", + "h2lip", + "h2lis", + "h2lit1", + "hl3l2", + "hl3m2", + "h2lo", + "hl1ob", + "h3loc", + "hl1o2f", + "h3log", + "h4lor", + "hlo2ra", + "h3los.", + "h3losi", + "h4loss", + "hlos4st", + "h2lös", + "hl4sar", + "hl2ser", + "hl3ska", + "hl3s2lo", + "hl5s6tern", + "hls3tie", + "hl5str", + "hl2su", + "hl3t2", + "h3luf", + "h3luk", + "h3lumpe", + "h1lüf", + "hlz2", + "2h1m", + "hm2a", + "hm3abl", + "h3mad", + "h3mag", + "h3mak", + "h3man", + "h2mant", + "h3mar", + "h4m3arc", + "h3mä", + "h4mäc", + "h4mäh", + "h4mäl", + "hm2e", + "h3me.", + "h3med", + "hme1e4", + "hmeer4s", + "h3mein", + "h3meld", + "hme3le", + "h3men", + "hmen2s", + "hme4ran", + "hme4rei", + "hme1s2t", + "h3mex", + "hmi2e", + "h3mind", + "h3mini", + "h3minz", + "h3mirr", + "h2mo", + "h3mop", + "h3mot", + "h3m2ö", + "h4möl", + "hm3p2", + "hm2s", + "hm3sa", + "hms1p", + "h2mu", + "h3mul", + "hmut4s", + "2hn", + "h2na", + "hna2c", + "h3nag", + "h3nam", + "h4nar", + "hn3a2te", + "h4natt", + "h3nau.", + "h2nä", + "hn1äh", + "h3näs", + "hn3d4", + "hn2e", + "hne3b", + "hne2e3", + "hn3eff", + "hn3eig", + "hn3ein", + "h2nel", + "hne4n", + "hn4eng", + "hne4pf", + "h3ner", + "hner4de", + "hner3ei", + "h4n3e2ro", + "h4n3ersa", + "hn3ex", + "hn3f4", + "hnflei4", + "hnhof8stras", + "h2nic", + "h2nid", + "h2nie", + "hn1im", + "hn1in", + "h2nip", + "hni4sa", + "hnk4", + "hnno2", + "h2no2r", + "hnra2", + "hn3sa", + "hn3s2p", + "hnst2", + "hns4to", + "hnsuch4", + "hnts2", + "h2nul", + "h2n1unf", + "hn3z2", + "ho4ar", + "ho3bern", + "ho2b3l", + "ho2ch3", + "ho4cha", + "hoche2", + "ho2cka", + "ho6ckerl", + "hock3t", + "2hod", + "2ho2e", + "hoe3n", + "ho3er", + "ho2f1a2", + "ho2fä", + "ho2fed", + "ho2feu", + "hof3f4a", + "ho2f3l", + "ho2f1o", + "ho2f3r", + "ho2fu", + "2hoi", + "ho2l1a2", + "hol3ar", + "1hole", + "ho2l1ei", + "ho2lem", + "hol3g4", + "hol3k", + "holl4", + "hol3s", + "2holy", + "h3olym", + "1holz", + "hol6zene", + "hom2e", + "ho2me.", + "ho2mec", + "ho2med", + "h2on", + "hon2er", + "ho1on", + "hoo2r", + "2hop", + "ho1ra", + "h1o2r2an", + "ho2rau", + "h1or3d", + "2hore", + "ho4rens", + "ho3ret", + "2h1org", + "hor3ta", + "hor4ter", + "h1ortu", + "h2os.", + "hose2", + "ho2sei", + "ho3sl", + "ho4sla", + "ho2sp", + "ho3spr", + "ho4ßene", + "2hot.", + "ho3th", + "2hotr", + "2hot3s2", + "1hou", + "hou4s", + "2ho2w1", + "h1ox", + "ho1y2", + "1h2ö", + "2hö.", + "hö2c", + "hö3ck", + "5höhe", + "2hö2s1", + "h3öst", + "2h3p4", + "h1q", + "2hr", + "hra2b", + "hr3a2c", + "hr3ad", + "hr1a2g", + "h1r4ah", + "h1rai", + "h1rane", + "hr3ap", + "h3räu", + "hrb4", + "hr1c", + "hr3d", + "h2rec", + "h3r2ech", + "h3red", + "h3ref", + "hr3eff", + "h2r1eh", + "h4rei.", + "hrei4ba", + "hrei4br", + "h3reic", + "h3reif", + "h4r3eig", + "hr4eini", + "h4reinl", + "hrei3th", + "hreli1", + "h3rep", + "hrer6geb", + "hr2erh", + "hr2erk", + "h4rerla", + "h6rer6leb", + "hr2erm", + "hrer3s", + "hrer4sa", + "hr2erw", + "hr2erz", + "h3re2s3", + "hress2", + "hrest2", + "hre2t", + "h2r1eta", + "h2r1eu", + "h2rev", + "hrg2", + "h2ri", + "h3ric", + "h4rick", + "hri4e", + "h3riesl", + "h3rin", + "h4r1ind", + "hr1int", + "h4rist", + "h5ritter", + "hr3l", + "hr3m2", + "h3rog", + "h3roh", + "h1ro2l", + "h4romat", + "h4rome", + "h4romi", + "h4romo", + "h4ron", + "h1ropa", + "hro4r", + "h3rou", + "h3rö2s", + "hrr4", + "hr4s1ac", + "hr4s3and", + "hr3schl", + "hr2s1em", + "hr2sen", + "hr2s1er", + "hr2set", + "hr4sh", + "hr2sin", + "hrs3k", + "hrs3l", + "hr4s1of", + "hrst2", + "hr2su", + "hr2tab", + "hr2tan", + "hr2te2l", + "hr2th", + "hr2top", + "hrt3ric", + "hrt2s", + "h3ruh", + "hr1ums", + "h3rut", + "h3rü", + "h4rüb", + "h4ry", + "hrz2", + "4hs", + "h4s3acht", + "h2s1a2d", + "h2s1alk", + "h2sall", + "h4samt", + "h2san", + "hs3and", + "h2s1as", + "h2sath", + "h2sato", + "h2saud", + "h4s3aur", + "h2saut", + "h2säh", + "h2säug", + "h4schan", + "hs2cr", + "h2s3ec", + "hse4e", + "h4s1ehr", + "h2s1eie", + "h4seind", + "h6seinst", + "h3sele", + "hse4lin", + "hs1emi", + "h4sendw", + "hsen5erg", + "h2s1ent", + "h2s1erf", + "hs1erg", + "h2serh", + "h4serkl", + "h2s1erl", + "hs1ern", + "h4sernä", + "hs4erne", + "h2serö", + "h2s1erw", + "h2serz", + "h2sex", + "h3s2ext", + "hsha2k", + "h2s1i2d", + "hs2im", + "h2s1ing", + "h3s4inni", + "h4s3ita", + "hs2kal", + "h3skand", + "hs1of", + "h2sop", + "hs1org", + "h2spac", + "h4s3pani", + "h2s1par", + "h2s1pat", + "h3spec", + "h3spei", + "h3sperb", + "h2sph", + "h3spoi", + "h2sprä", + "h2spro", + "hss4", + "h1st2a", + "hs3tabl", + "h3stad", + "h2staf", + "hst3alt", + "h3stan", + "hst3arb", + "h2s3tau", + "h2s3täu", + "h1stec", + "h1stei", + "h1stel", + "h4stele", + "h3s4terb", + "h3s4tern", + "h1s2ti", + "h2stit", + "h1sto", + "h2stol", + "h2stor", + "h1str", + "h4s3treu", + "hstro2", + "hs3tum", + "h1stun", + "h1stü", + "h2s1u", + "hs2ung", + "4h1t", + "ht1a", + "h2tab", + "hta2bl", + "h2ta2d", + "ht2ag", + "ht4akt.", + "ht4akte", + "h2tall", + "h4talo", + "h2talp", + "h2talt", + "h4ta2m", + "h2ta2n", + "ht3ane", + "ht2ank", + "h2tap", + "h2ta2r", + "ht2a2s", + "h2t3asi", + "h2tasy", + "h2t3at", + "h3tat.", + "h3tate", + "h2tau", + "h3taum", + "h4tax", + "ht1ä", + "h2tär", + "ht3e4ber", + "ht1e2c", + "hte3cha", + "h2t1e2d", + "ht1eff", + "ht1e2he", + "h2teif", + "h2t1eig", + "h4t3eilz", + "h2t1eim", + "ht1ein", + "h2t1eis", + "h2t1eke", + "h4t3elas", + "hte6l5ei.", + "h4telek", + "h4t3elfe", + "h4t3elit", + "hte4m", + "h2t1emi", + "h2temp", + "h4tenga", + "h4t3engl", + "h4t3enta", + "h4tentf", + "h4tents", + "hter6de.", + "hterer6s", + "ht3erfo", + "ht3erfü", + "h6terfül", + "h6tergeb", + "ht3ergr", + "hter6gri", + "ht1erh", + "hter6häl", + "hter8höhu", + "h6terleb", + "h6t5erleu", + "h6terneu", + "ht5erspa", + "hter8spar", + "ht3erst", + "h6tersta", + "hter6tra", + "ht3erwä", + "ht3erze", + "h4t1e2se", + "h4t1ess", + "h2teta", + "hte4th", + "h2t1eu", + "h4textr", + "h2t1h", + "h4thei", + "h3thera", + "h3thes", + "h4tho", + "h2t1i2d", + "h2t1im", + "h2t1i6n3", + "ht3ine", + "h2t1is", + "hti5t2", + "htni2", + "h2t1ob", + "hto4d1", + "h2t1o2f", + "h4t3oly", + "h2tope", + "h4tord", + "ht3rak", + "h3tran", + "ht3rand", + "h4t3ras", + "ht6rates", + "ht3rau", + "h4traub", + "ht6raume", + "ht3rec", + "h5treck", + "ht3rei", + "h2t3res", + "ht3ric", + "h4t3rieg", + "h4t3rin", + "h2t3rol", + "h2t3ros", + "ht3röm", + "ht3ru", + "h2t3rü", + "h4ts", + "ht2sah", + "ht2sal", + "ht4s3a4n", + "ht2scr", + "ht4sein", + "ht2sel", + "ht4s3end", + "ht4seng", + "htse2r1", + "ht4s3eri", + "htsha2", + "ht3s4hak", + "hts3kr", + "ht2s1o", + "ht2sp", + "hts3par", + "hts3tät", + "hts4tie", + "hts5trau", + "ht4s3tur", + "ht4s3tür", + "ht2su", + "htt4", + "htti2", + "h3tub", + "htu2e", + "h2t1urs", + "h3tü", + "ht3z2", + "hu2b1a", + "hu2b1ei", + "hu4bel", + "hu2b1en2", + "hu2bi", + "hu2b3l", + "hu4b5r", + "hu2bu", + "hu1c", + "hu2fa", + "hu2h3a", + "hu2h1i", + "h1uhr", + "h1uhu", + "hu2kä", + "hu2k1in", + "huko1", + "huk3t4", + "hu2l3a2", + "hu4lab", + "hu2lä", + "hule2", + "hu2l1eb", + "hu2l1ei", + "hu2lem", + "hu4l3eng", + "hu4lent", + "hu2l1er", + "hu2let", + "hu2lid", + "hu2l1in", + "hul3l2", + "hu2lo", + "hu2lö", + "hul3s2", + "hu3m2a", + "h1umh", + "h1ums", + "hu2n", + "h1una", + "hun3d2e", + "hunde3i", + "hunde3s", + "hun2e", + "2hunf", + "hung2", + "hun3ge", + "hung4s", + "hungsa4", + "h1uni", + "h1unm", + "2hunt", + "h1ups", + "2hur", + "hur3g2", + "hur2t3h", + "hu3sa", + "hu2so", + "hus2s3a", + "hus3se", + "hus4ser4", + "hus2s1o", + "hus2sp", + "hus2st", + "hu2tab", + "hu2ti", + "hu2t1o", + "hu2t3r", + "hut2t", + "hut3te", + "hut4zen", + "hut4z3er", + "hut2zu", + "h2ü", + "h3über", + "h4übs", + "h3übu", + "hüf2", + "hüft1", + "hühne4", + "hüs3", + "2h1v", + "hvil2", + "2hw2", + "h2wall", + "hwe1c", + "h1weib", + "h1weih", + "hweins3", + "hwein6sa", + "h2wirr", + "1hyd4", + "hy3dr", + "hy2lor", + "1hymn", + "h1yo", + "hy3os", + "1hyp", + "hy2pe.", + "2hy2t", + "2h1z", + "hz2a", + "h3z2o", + "hzug4", + "h3z2w", + "i3ad.", + "iad2a", + "i1adn", + "ia3do", + "iaf4l", + "i2ago", + "ia1h2", + "i1ai", + "i3ak.", + "i3ake", + "ia2kei", + "ia2kr", + "i1akt", + "i1al", + "ia2l1a2", + "ial3ar", + "ial3as", + "ia2lä", + "ial3b4", + "ial3d4", + "i3aleb", + "i3alef", + "i3alei", + "ia3lek", + "i3alel", + "i3aleng", + "i3alent", + "i3alerb", + "i3aler4f", + "i3alerh", + "i3a4lerm", + "i3a2l1et", + "i3alex", + "i3a2lia", + "i3alim", + "i3a2lin", + "i3al3l", + "ial4ler", + "iall2i", + "i2alo", + "ia2lon", + "ia2lop", + "ia2l1o2r", + "ial3p", + "ial3t2", + "ia2l3u4", + "ial3z2", + "i3am.", + "ia3ma", + "iampe4", + "i1ams", + "i1an.", + "i1an2a", + "ia2nal", + "ian3alt", + "ia2nau", + "i1anc", + "i3and2", + "i3a2n1e2b", + "ian2er", + "i1ann", + "i1ans", + "ian2s1p", + "i3ant", + "i3anz", + "ianza4", + "ia1o", + "ia2op", + "ia3p", + "ia1q", + "i1ar", + "i3ar.", + "ia2ra", + "i2are", + "iar3r", + "i1as", + "i3as.", + "ia3sh", + "i2asi", + "ia3s2p", + "ias3s", + "iast4", + "i3at.", + "i3at2h", + "i4athe", + "1iatr", + "i3ats", + "i3au", + "ia3un", + "i2az", + "2iä", + "i1ä2m", + "i1äp", + "iär2", + "i1är.", + "iär3m", + "i1ärs", + "iär3z", + "i1ät", + "i3ä4tem", + "iä2ti", + "iä4tr", + "iät5s4", + "i1äv", + "4i1b", + "ib1art", + "i2b1auf", + "i2b1aus", + "i2baut", + "ib2bli", + "i2b1eig", + "i2b1eis", + "ibe4n1", + "i6ber6geb", + "i4b3er4la", + "ibe1ro", + "i2bim", + "i2b1in", + "i2blad", + "i2bleu", + "i3blu", + "i3b2o", + "i2bö", + "i2b3rau", + "ib3ric", + "i2b3roc", + "ib2ser", + "ib4ste", + "ib2un", + "i2b3unk", + "i2b3unt", + "ibus1c", + "2ic", + "i3ca", + "ic1c", + "ice1", + "ich1a2", + "ich6art.", + "ich1ä", + "i1che", + "ich1ei", + "ich2er", + "icherin5", + "i1chi", + "ich1l", + "ich3le", + "ich3li", + "i3ch6lo", + "ich5m", + "ich3n", + "i1cho", + "ich3ort", + "i2ch3r", + "ich6sele", + "ich2s1i", + "ich4spe", + "ich6stie", + "ich2tr", + "i1chu", + "ich1w", + "i1ci", + "i3cke", + "ickt2", + "i1cl", + "ic3la", + "ic3ra", + "i3cu", + "i1d", + "2ida", + "id2ab", + "i3d2ac", + "id4al", + "id1a2n", + "i3d2ans", + "i3d4at", + "id1au", + "id2ax", + "idä1", + "id2e", + "2i3de.", + "i2dea", + "1idee", + "id3eis", + "2idel", + "idel4ä", + "i4demul", + "4i3den.", + "ide4n1o", + "iden4se", + "ide3ran", + "iderin8nu", + "ide1rö", + "ider6reg", + "2i3des", + "ide5sa", + "ide3so", + "ides2p", + "1i2di2o", + "idi4on", + "i4diot", + "2idk", + "idni3", + "id2o", + "i2dol", + "2idoo", + "i2dö", + "i2d3r", + "id4rä", + "id4rit", + "id4ro", + "id4ru", + "id2s1p", + "idt4", + "1i2dy", + "ie3a2", + "ie2bä", + "ie2bl", + "ieb3re", + "ie2bri", + "ie4b3rü", + "ieb4sto", + "ie1c", + "ie2cho", + "iech3t", + "ie2ck", + "ie2d3an", + "ie3de", + "ie2dr", + "ie1e2", + "ief3akt", + "ie2f1an", + "ie2far", + "ie2fau", + "ie2fäh", + "iefe2m", + "ief3f4", + "ief2i", + "ie2f3l", + "ie4fonk", + "ief1r", + "ie2fro", + "ie2gl", + "ieg5li", + "ie3g4n", + "ie2g3re", + "ieg4s5c", + "ieg4se", + "ieg4si", + "ieg4st", + "ie3her", + "ie2h1in", + "ieh3r2", + "i1ei", + "ie1ind", + "i2e2l1a", + "iela2r", + "ie2läs", + "iel3d4", + "i2ele", + "ie4l1e2b", + "iel1ec", + "iel3eid", + "ie2lek", + "i4elen", + "ie4lene", + "ie4leng", + "ieler4e", + "ieler6fi", + "ieler8geb", + "ieler6ke", + "ieler6la", + "ieler8lebn", + "iel4erw", + "ieles2", + "i2eli", + "ieli2d", + "i1ell2", + "ie2lo2b", + "ie2lop", + "ie6lor", + "i2els2", + "iel3sz", + "ielt2", + "iem2e", + "iemis2", + "i1en", + "i3en.", + "i3ena", + "ien1ag", + "ien4am", + "ie4nas", + "i3enä", + "i3end", + "i2ene", + "ien1eb", + "i3enec", + "i3e2n1e4k", + "iener6fo", + "ien3er4g", + "iener6la", + "i3enex", + "i3enf", + "i3eng4", + "ienge4f", + "ienge4z", + "i3enh", + "ie2nid", + "ie2nim", + "ie4n3in", + "i3enj", + "i3enk", + "i3enla", + "i3enle", + "i3enm", + "i3enn", + "i3e2no", + "i3enö", + "i3enp", + "i3enr", + "ien2s", + "i3ens.", + "i3ensa", + "i3en3sc", + "i3en3s2e", + "ien3si", + "ien3s2k", + "i3en3s2p", + "iens6t5er", + "ienst5rä", + "i3en3sz", + "ien4t3ar", + "i3enth", + "ien3tr", + "i3enty", + "ie3nu", + "ie4num", + "i3env", + "i3enw", + "i3enz", + "ie1o4", + "ier3a", + "ie2ra2d", + "ie2rap", + "ierb4", + "i3erbun", + "ier3d", + "i2ere", + "ie4reck", + "iere5ins", + "ie4r3eis", + "ie3r2er", + "ierer3k", + "ie4r3erz", + "ierf4", + "ierg4", + "i1ergi", + "i4eri", + "ierk2", + "i1ern", + "i3ern.", + "iern2a", + "i2erni", + "ie2rö", + "ier4re.", + "ier4s3eh", + "ier3sei", + "iers2t", + "ier3sta", + "ier3ste", + "ier3te", + "iert2i", + "ier3z2", + "2ies", + "ie2san", + "i2esc", + "i2ese", + "iesen3s4", + "ie3s4pa", + "ies2pe", + "ie2spu", + "ies6ser6g", + "ies6serl", + "ies2st", + "iest6e", + "ie4stin", + "ie1str", + "ie3su", + "ie4t1ag", + "ie2t1ak", + "ie2tan", + "ie2t1ap", + "ie2tat", + "ie2tau", + "ie4tent", + "ie4t3erh", + "ie4t3ert", + "i4ethe", + "iet3her", + "ie2t1ho", + "ie2thy", + "ie4tob", + "ie2t1ö4s", + "ie2t3ri", + "ie2t3ru", + "iet2se", + "i1ett", + "iet3zw", + "ieu2e", + "ie1un", + "ie2w3u", + "i1e2x", + "2if", + "if3ange", + "if1ar", + "i2f3arm", + "if4at", + "i2f1au", + "if1än", + "i2fec", + "i2f1ef", + "ife4i", + "if1ein", + "if2e4n", + "i2f1erg", + "if1erh", + "if2far", + "if2f3l", + "if2fro", + "iff2s", + "iff4ste", + "if3l", + "if1lac", + "if4lä", + "iflo4", + "if4los", + "i1flü", + "if3r", + "i1fre", + "i2freg", + "if4rev", + "if2s", + "if3sa", + "if3se", + "if3sp", + "if3sta", + "if2t3a", + "if2ted", + "if2t3ef", + "if4t1ei", + "if2te2l", + "if2tep", + "if4terk", + "ifte2s", + "if4t3esc", + "if4th", + "if2t1op", + "if2t1r", + "if4t3ri", + "ift3sp", + "ifts2t", + "ift3sz", + "if2tur", + "i1fy", + "2i1g", + "i2ganb", + "i2garb", + "ig1art", + "iga1s", + "i2g3att", + "igd2", + "i6gebrau", + "i4gefar", + "ige4füg", + "3i2gel.", + "ige5lau", + "i2geln", + "ige4me", + "ige4mis", + "ige4na", + "ige6nene", + "ige4nid", + "ige2o", + "ige2pa", + "ige2ra", + "ig5erwer", + "ig1erz", + "iger4ze", + "ige4sel", + "i2g1ess", + "ige4tra", + "ige4tre", + "ige4woh", + "i2gim", + "i2gl", + "ig1lau", + "i3glä", + "i3gle", + "ig3lim", + "ig4na", + "i4gnä", + "i3g4neu", + "ig4no", + "igo1p", + "ig3rad", + "i2g3re", + "ig4ren", + "i2grou", + "ig3s2ag", + "ig4sal", + "ig3sä", + "ig4schr", + "ig3s2o", + "ig3sp", + "ig4spa", + "ig3stei", + "ig4sti", + "ig4s3to", + "ig3str", + "ig6stras", + "ig3s4tü", + "igung4", + "2i1h", + "i2har", + "i3he", + "ihe1e", + "ih1elt", + "ihe4n", + "ihe3u", + "ih3m", + "ih3n", + "ih3r2", + "ihs2", + "ih1um.", + "ih1w", + "ii2", + "ii3a4", + "i1ie", + "i3ig", + "i1im", + "i3in", + "i1i4s", + "i2is.", + "ii3t", + "i1it.", + "i1j", + "1i2js", + "2i1k", + "ika2ge", + "ik1aka", + "ikaken3", + "i2k1akt", + "ik3amt", + "i2k1ang", + "i6kantei", + "ikanten8n", + "ik1art", + "ik3att", + "i2k1au", + "i3kaz", + "ik1äh", + "i2kär", + "4ike", + "i2keb", + "ik1ebe", + "ike2c", + "i2k1ed", + "i2k1ef", + "i2k1ei", + "ike4l1", + "ike2n1", + "ik1en2s", + "ik1ent", + "ike2ra", + "i2k1e4r2e", + "i2k1er2f", + "i5kerfam", + "i2k1er2h", + "i2ker2l", + "i2kero", + "i2ke3ru", + "i2k1eta", + "4iki", + "i3ki.", + "ik1i2d", + "i3kie", + "ik1in", + "i2kins", + "iki1s", + "i2k3l", + "ik4län", + "i3k4leri", + "i3k4let", + "ik4lim", + "i3klu", + "i2kne", + "ik3nu", + "iko3be", + "i2k1off", + "iko1p2", + "ik1or", + "iko2ri", + "iko1s", + "i2köl", + "ik3rä", + "ik3re", + "i2kres", + "ik4ris", + "i3kro", + "i2krö", + "iks2", + "ik3sa", + "ik3ste", + "ik3sz", + "ikt3erk", + "ik4t3esk", + "ik2t3re", + "ikt2u", + "i2k1uh", + "i2kup", + "i3kus", + "i2kü", + "i1la", + "i2lab", + "i2l1ac", + "i2l1ak", + "il1a2ma", + "il1ang", + "i2l1anm", + "i2lano", + "il1ans", + "ilan6zer", + "i2larb", + "il1asp", + "i2l1au", + "i3laub", + "i3l4aufb", + "i1lä1", + "i2lär", + "2ilb", + "ilb4l", + "il2c", + "il5chen", + "il2da", + "il2dä", + "ild3ebe", + "il4d3en4t", + "il3der", + "ild4erp", + "ilde2s", + "ildi2", + "ild1o", + "il2dor", + "il2dr", + "4ile", + "il1e2c", + "il1ein", + "il1el", + "i2lemb", + "i2l1e2mi", + "il1ent", + "i4lentl", + "i4lents", + "i2l1erd", + "iler4ei", + "i6lereig", + "il1erf", + "iler4fo", + "i2ler2g", + "i2l1er2h", + "i4ler4kl", + "il1err", + "i4lerri", + "i3l2erz", + "ile4th", + "il1ex", + "ilf2", + "ilfe3s", + "il2f3l", + "il2f3re", + "ilf4s3", + "il2gl", + "2ilh", + "2ili", + "ili3e4n3", + "iliga2", + "ili4g3ab", + "ilik4", + "i2l1ind", + "i4l3init", + "il1ins", + "i2l1ip", + "ili1pf", + "il3la", + "ill2an", + "il4lenn", + "il3l2er", + "1illu", + "il2mak", + "il2m1ap", + "il2m1au", + "ilm1ei", + "il2min", + "il2mor", + "2ilo", + "il1ob", + "il2oh", + "il2op", + "i2l1o2r", + "i3lou", + "i3lov", + "il1ox", + "ils3ent", + "ils4to", + "ilt2", + "il3th", + "i1lu", + "i2lum", + "ilung4", + "i2l1ur", + "i3lus", + "ilü4", + "2ilv4", + "il2zar", + "il2zau", + "ilz3erk", + "il2zwa", + "imad2", + "ima1i", + "im2al", + "i2m3anh", + "im1ans", + "i2marc", + "im3aren", + "i2m1arm", + "i2m1art", + "im2as", + "im4at", + "ima2tr", + "imat5sc", + "ima4tur", + "im1aus", + "i2maut", + "im3b", + "1imbi", + "i2meg", + "im1ein", + "i2mej", + "i2mek", + "i2mele", + "i2melf", + "im2en", + "i2m1er2f", + "i2m1er2l", + "i2m1er2z", + "i4me3sh", + "imes3s", + "i2meti", + "i2mew", + "imhau2", + "i2mid", + "im1i2de", + "i2mim", + "i2m1ind", + "i2minf", + "i2m1ins", + "im2mä", + "im2mei", + "immen1", + "imm3ent", + "im6menth", + "1immo", + "im2mor", + "2imo", + "i2m1ob", + "i2mo2p", + "imo3re", + "i2mö", + "1imp", + "imp2fa", + "im3pf2o", + "imp2s", + "im3pse", + "im4set", + "im3sph", + "2imt", + "imt2e", + "im3t2i", + "imt3s2", + "imtu2", + "4imu", + "im2um", + "im1urk", + "2in.", + "ina2be", + "in3abu", + "in1a2c", + "i4nack", + "in1ad", + "i3nald", + "inaler4", + "ina6lere", + "in2alp", + "i2n1am", + "in2an", + "in3an.", + "in3ana", + "in3ann", + "i2narb", + "in3att", + "i2n3au2", + "2inä", + "i2n1äh", + "in2är", + "in1äs", + "2ind.", + "inda2", + "ind2ac", + "in2dal", + "in2dan", + "2indä", + "2inde.", + "2inden", + "ind5erke", + "inder3t", + "inde3sp", + "1index", + "ind2i", + "1indik", + "in3dö", + "2indr", + "ind3se", + "1indus", + "in3d2ü", + "2ine", + "in1e2c", + "i3nee", + "i2neff", + "in4elen", + "ine2n1", + "ine3nä", + "i4nen4zy", + "i5ner.", + "i4n3erbi", + "in4erha", + "i4ner4he", + "i3nerk", + "i3n3erle", + "i6ner6leb", + "iner4lö", + "i4n3er4tr", + "i3nes", + "i4nesk", + "in2et", + "in1eu", + "ine3un", + "in3f4", + "1infek", + "1infiz", + "1info", + "2inga", + "in2g1af", + "in2g1ag", + "in2g1al", + "in2gam", + "ing1ar", + "2ingä", + "3ingeni", + "in3g2er", + "in4g3er4w", + "inges4", + "2in2gl", + "in3gla", + "in3glä", + "ing4s3am", + "ings6por", + "1inhab", + "2inhar", + "2inhau", + "2inhe", + "2ini.", + "in2id", + "ini3de", + "2inie", + "2inig", + "inig2a", + "ini3k4r", + "2inis", + "ini3se", + "init2", + "i3nitz", + "3inkarn", + "1inkas", + "inkels6t", + "in4k3ent", + "ink4er", + "in2kro", + "in3k2ü", + "inma4le", + "2inn.", + "inne4n", + "in4ner4m", + "2innl", + "in2nor", + "1innta", + "2ino", + "in1od", + "ino3e4", + "in3ols", + "in1or", + "ino1s", + "i3no3t", + "i2n1ou", + "i1nö", + "in1ö2d", + "2inr", + "2ins.", + "ins2am", + "in6samt.", + "insch2", + "2inse.", + "in2seb", + "2insed", + "2insen", + "2insk", + "in3sof", + "3instal", + "in4s3tät", + "4inst2e", + "in3s4tip", + "3instit", + "ins4to", + "4instra", + "in4strü", + "1insuf", + "ins3umz", + "in2sur", + "in3sz", + "2inta", + "2inte.", + "1integ", + "in3tei", + "2intep", + "2int2h", + "inthi1", + "int2o", + "2intö", + "2in3t4r", + "4inträ", + "in5tri", + "3intrig", + "int3s", + "i2n1u", + "i4nuh", + "in3unz", + "4inverm", + "invil2", + "i1ny2", + "in3z2e", + "inzel8ler", + "in3z2i", + "in3z2sc", + "inz2u", + "in3zw", + "i1ñ", + "2i1o", + "iob2l", + "io1c", + "io2d", + "io3da", + "io3e4", + "i2of", + "iof4l", + "i2oh", + "io1i", + "io3k6r", + "i3ol.", + "i3ols", + "i3om.", + "io3me", + "i3oms", + "ion2", + "i3on.", + "ion3an", + "io2n3au", + "ion3d2", + "io4nee", + "i3ono", + "io2nor", + "i3ons3", + "ion4sa", + "ion4sen", + "i2ony", + "i2oo", + "i2o1p", + "i3o4pf", + "i3opt", + "i2or", + "i3or.", + "i3orc", + "ior2e", + "iore4n", + "io1r2h", + "i3orp", + "i3ors", + "i3ort", + "4ios", + "i3os.", + "io3sh", + "ios2p", + "i2o1st", + "ios2u", + "i2o3sz", + "io3t", + "i3ot.", + "iote3l", + "iot4r", + "i3ots", + "i2ou", + "i2ov", + "i3ox", + "i2oz", + "i3oz.", + "i1ö2k", + "i1ön", + "i1ös.", + "i1öst", + "i1pa", + "ip2an", + "i1pe", + "i3ped", + "i3per", + "2ipf2", + "i3pfan", + "ipfe2", + "iph2", + "2i1pi", + "ipi3a", + "ipi3el", + "ipi3en", + "ip4lu", + "ip2pan", + "ip3pe", + "ipp1f", + "ip4pl", + "ip3pu", + "i1pr", + "ip2sa", + "ip2sei", + "ip2sp", + "ips3t", + "ip4sta", + "ip4stü", + "ipt2a", + "ipt2i", + "ipt2u", + "2ipu", + "2i1q", + "i1r4a", + "i3ra.", + "2i3rad", + "i3ras", + "irat4", + "i1rä", + "ir1äh", + "ir2b3l", + "ir1c", + "ir2ch1o", + "ir4e", + "i3ree", + "2irek", + "ire4na", + "i3ré", + "irg4", + "ir2he", + "ir2i", + "2i5rig", + "2irk", + "irke4n", + "ir4kene", + "ir2k3l", + "irk4s3c", + "ir3k2u", + "irli4n", + "ir2m1ag", + "ir2mak", + "irm1au", + "ir2mä", + "ir2m1ei", + "irme4n1", + "ir2m1o2", + "irm4th", + "ir2mum", + "ir4munt", + "2irn", + "ir2n3a", + "ir4nat", + "ir2no", + "i3ro", + "i1rö", + "irpla2", + "irre4l", + "ir2rh", + "ir3sche", + "ir4schl", + "ir4schm", + "ir4sch3r", + "ir4sch3w", + "ir3se3", + "ir3s2h", + "ir2st", + "irt2s3t", + "2iru", + "ir1u2m", + "iru2s1", + "i3r2ü", + "i2sac", + "isa2m3", + "i4samp", + "i4s1amt", + "is2ap", + "isa2r", + "is3are", + "i3sat", + "is3att", + "i2sau", + "is3auf", + "isau2g", + "i2säh", + "i2s1än", + "2isb", + "i2sca", + "i4schar", + "i3s2che", + "i4schef", + "i4sch3e4h", + "isch3ei", + "ische4m", + "i6schemi", + "i6scher6z", + "i4schin", + "i5sching", + "i2sch3l", + "i2schm", + "isch3ma", + "i4schna", + "i4sch3re", + "isch3ru", + "i3schu", + "i4schüb", + "i4schwa", + "i6schwir", + "i4schwo", + "isch3wu", + "i4schwü", + "i2scr", + "2ise", + "ise3a", + "ise1e", + "iseh2a", + "ise3hi", + "is4eind", + "is4eli", + "i6sel6ter", + "ise2n1", + "ise4na", + "is2end", + "i4senho", + "isen3s", + "ise4r3ei", + "is1erg", + "i2serh", + "iser4he", + "i2s1erm", + "i2s1es4s", + "i3s2et", + "i4s3etat", + "i3s2eu", + "2isf", + "4ish", + "2isi", + "isi2a", + "i2s1i2d", + "isi4de", + "isik2", + "i2sim", + "isin3g4", + "isi1s", + "i4ski", + "i4sku", + "is3la", + "3islam", + "2isma", + "2ismi", + "ismu2", + "is1of", + "i3soh", + "1i2sol", + "2is4o2n1", + "isonen4", + "iso6nend", + "isono2", + "i2sop", + "is1ort", + "3isot", + "i2s1ou", + "2isp", + "is1pa", + "i2spar", + "is2pat", + "is1pe", + "is1pic", + "is2por", + "i2spro", + "is3sa", + "is4s1ac", + "is4sau", + "is6s5chen", + "isser4f", + "iss2po", + "is2st", + "is3sta", + "is3sto", + "iss3tr", + "is3strä", + "is3stu", + "is2sum", + "is4tab", + "ist3a2c", + "ist2an", + "is3tang", + "i1stat", + "is3täu", + "ist4e", + "i1stel", + "iste4n", + "istes3", + "i1steu", + "i1stil", + "istin4f", + "is3t6o", + "is4toc", + "is3tör", + "is3tr", + "ist4ra", + "is4tro", + "is4tru", + "i1stü", + "i3suf", + "isu2m", + "isum3p", + "i2sü", + "2isy", + "i1ß", + "ißer2s", + "iß3ersc", + "it1ab.", + "it1abs", + "ital1a", + "it1alt", + "it1am", + "ita3ne", + "it3anr", + "it1app", + "it1a2re", + "it1art", + "i3tat", + "it1au", + "i3tauc", + "i2taut", + "4itä", + "it1änd", + "i2t1äs", + "ität2", + "it1eff", + "i2t1ei", + "it2eic", + "2itel", + "ite4l1a", + "i4telek", + "i2t1emi", + "i2temp", + "ite2n", + "iten3s2", + "i4tents", + "i2tepo", + "i6tereig", + "i4t3er4fo", + "iterin6d", + "iter6klä", + "it2erö", + "i8t7ersche", + "i4t1esk", + "i2t1ex", + "i3text", + "i5thr", + "i2thy", + "i5tic", + "i2t1id", + "i5tig", + "1itii", + "it1in1", + "i3tis", + "i4tiso", + "iti3sp", + "iti2v5a", + "it5le", + "itmen2", + "4ito", + "it1ob", + "i5toc", + "ito3d", + "i2t1of", + "ito2p", + "it2os", + "4itr", + "i2t3rad", + "i3tradi", + "it3raf", + "it3ras", + "it3rau", + "it3räu", + "it3re", + "i4tren", + "it4ret", + "it3rob", + "it3rom", + "i2t3run", + "it3rut", + "2its", + "it2sa", + "its1ag", + "it2s1e", + "it4se2h", + "it4s3e2r1", + "it4sh", + "its1or", + "it6stras", + "it2sur", + "2itt", + "it2tan", + "it2teb", + "itt3hä", + "it2tob", + "it2top", + "it4tri", + "itt3ric", + "itt6schi", + "itt4se4h", + "itt4sei", + "itt4sor", + "itt2sp", + "itt4sti", + "it1uh", + "it1ums", + "it2ung", + "i2tuns", + "ituran4", + "it1urg", + "itut4", + "i3tü", + "4ity1", + "ityl2", + "it2ze2c", + "itz2er", + "itz3erg", + "it6zergr", + "it4z3erl", + "it2zö", + "it2z1w", + "2i3u2", + "i4u3l", + "iu4m3", + "iuma2", + "ium4se", + "ium4ste", + "iun2", + "i4up", + "iu4r", + "ius3t", + "i1ü4", + "2i1v", + "i2v1ad", + "i2v1ak", + "i2v1am", + "iv1an", + "i2v1ä", + "i2veb", + "i2v1ef", + "iv1ei", + "iv1elt", + "ive4n", + "iv1ene", + "i2v1ent", + "i2v1ep", + "ive3re", + "iv1erh", + "iver4kl", + "iv1erl", + "iver3s", + "ive3s", + "i2v1ex", + "i2v1im", + "i2v1ind", + "iv1int", + "i3vol", + "ivo3re", + "i2v1r", + "i2vun", + "i2v1ur", + "i2vü", + "2i1w", + "2i1x", + "i2xa", + "ix2em", + "i3xi", + "ixt2", + "i1y", + "4i1z", + "iz1a", + "iz2ac", + "i2zag", + "i2zan", + "i2zap", + "i3z2as", + "i2zau", + "i2zä", + "i3ze", + "iz2ei", + "izei3c", + "izeits4", + "i2zele", + "ize2n", + "i4zener", + "i4zentz", + "i4z1erl", + "izid3", + "iz1ir", + "izo2f", + "i2zö", + "i2zuna", + "i2z1w", + "i3z2wi", + "í1l", + "j2a", + "jab4", + "ja1c", + "jah4r3ei", + "jahr2s", + "ja3l", + "jal2a", + "ja3ne", + "jani1", + "jani3t4", + "ja5ru", + "jas2o", + "ja1st", + "jat2", + "2j1d4", + "jda3", + "je2a", + "jean2s", + "je2g", + "jek4ta", + "jek4ter", + "jek4tin", + "jekt3o2", + "jektor4", + "jek6t3r", + "je3na", + "je2p", + "je3r", + "jer2e", + "jes3t", + "je2t1a", + "je4t3h", + "je2tin", + "je4tor", + "je2t3r", + "jet3s2", + "jet3t", + "je2t1u2", + "je3v", + "je3wo", + "ji2v", + "2j1m", + "joa3", + "jo2b1", + "job3r", + "jo2da", + "jo2i", + "jol2a", + "jong2", + "jo2p3", + "jo1r2a", + "jor3d2", + "jo1s4", + "jo2sc", + "jost2", + "3jou", + "jou2l", + "2j1t", + "jty1", + "j2u", + "ju2b3l", + "jugen6", + "jugend3", + "ju1i", + "ju2k", + "jul2i", + "jung3s4", + "ju3ni", + "ju3r", + "jur4a", + "jur2o", + "jus3t", + "ju3t2e1", + "2j1v", + "1ka", + "3ka.", + "ka3ar", + "2k1abb", + "kab2bl", + "2kabd", + "2k1a2ben", + "2kabf", + "2kabg", + "2kabh", + "2kabn", + "2k3a2bo", + "2k1abs", + "2k1abt", + "2kabw", + "2kabz", + "ka1c", + "kade2r", + "2k1adm", + "2k3a2dr", + "3kadu", + "2kadv", + "ka1f4l", + "ka1fr", + "kaf3t2", + "kag2", + "kaga3", + "2k1age", + "3kah", + "ka1ho", + "ka1in", + "kaken2", + "ka1kl", + "2k1akt.", + "2kala.", + "kala3b", + "ka2l1a2d", + "ka2lan", + "kal3d", + "ka4l1eh", + "ka4lens", + "kal3eri", + "3k2alk", + "kal2k1a", + "kal4kan", + "kal2k3l", + "kall2i", + "2k1allt", + "ka2lop", + "ka2l1os", + "kal4tex", + "kal4th", + "ka2lu", + "k2amt", + "kan4al", + "ka4n1a2s", + "ka2nau", + "2kanb", + "kan3d2", + "2kanda", + "2kandä", + "kan2e", + "2kanf", + "2kanim", + "kank4", + "2kanl", + "2kanom", + "2k1anor", + "2k1ans", + "k2ans.", + "kan4tar", + "6k5antenn", + "2k1anth", + "ka3nu", + "kan2um", + "2kanw", + "2k1anzu", + "2kanzü", + "ka2o1", + "3kape", + "ka3po", + "3kara", + "2karbe", + "2karc", + "k2ard", + "kar3d2a", + "k1area", + "k2arg", + "ka3r2i", + "kari3es", + "k2ark", + "2k1arm", + "kar2pf", + "k2ars", + "k2ar3ta", + "k1arti", + "4kartik", + "karu2", + "k2arw", + "3k2asc", + "kas2e", + "kase1i", + "kasi1", + "kas2o", + "ka4sp", + "ka2s3t", + "2k1ast.", + "ka4ste", + "kas6tras", + "3kasu", + "ka3sz", + "ka2tan", + "3kateg", + "k3atel", + "ka3t2h", + "ka4t3r", + "2katt4", + "kau4fer", + "kau2f1o", + "kauf6s5ag", + "kauf4sp", + "kaufs7tem", + "kauf6sti", + "k2aus.", + "2k1auss", + "kau2st", + "2kausw", + "kau3t2", + "2kauto", + "ka3ve", + "2kaz", + "1kä", + "käl3", + "k1ämi", + "2k1änd", + "kär2", + "2k1ärg", + "kä2s1c", + "käse3", + "4k3b4", + "kbo4n", + "kbu2s", + "kby4", + "2k3c", + "2k3d4", + "ke2ben", + "2k1e1c", + "ke2di", + "2k1eff", + "kefi2", + "kege2", + "ke2gl", + "ke2he.", + "ke2hen", + "kehrer4", + "kehr2s", + "kehr4s3o", + "2k1eic", + "2k1eig", + "kei2li", + "ke2im", + "2k1ein", + "kein4du", + "kein4e", + "k1ei1s", + "2keise", + "keit2", + "keits1", + "ke2l1a", + "ke3l2ag", + "ke4l3am", + "ke2lä", + "kelb4", + "keld4", + "kel3eis", + "2ke2lek", + "ke2l1en", + "ke2l1er", + "kel7l4e", + "kell2i", + "ke2l1o2", + "ke2lö", + "kel3sk", + "kel7s8tern", + "k4elt", + "kelt4e", + "2k1e2mi", + "2k1emp", + "k2en.", + "ken1a", + "ken3au", + "ke2nä", + "kend4", + "ken3dr", + "ke2n1e2b", + "kenen1", + "ke4nene", + "ke4nens", + "kener4n", + "kene4t", + "4ken4gag", + "k5en6gel.", + "ke2nim", + "ken3in", + "4kenlad", + "4kenläd", + "kenn2a", + "kenn2e", + "ke2no", + "k2ensa", + "4ken4sem", + "ken3si", + "ken3s2k", + "ken5s6tei", + "ken3sz", + "k3en4te.", + "ken6ten.", + "2kentf", + "2kentg", + "ken3th", + "2kentl", + "2k1ents", + "2kentw", + "2kentz", + "ke3ny", + "k2en3z2", + "2ke1o2", + "2kep", + "ke2pl", + "k2er.", + "ke1ra", + "ke2ran", + "ke2rau", + "ke2r1ä", + "ker4ble", + "k2erc", + "2kerd", + "ke2r1e2b", + "ke2rec", + "ke3reig", + "ker3ein", + "4kerfah", + "k4erfam", + "ker2fo", + "k3ergeb", + "2kergu", + "ke6rin6nu", + "kerin6st", + "kerin4t", + "k3erken", + "k2erko", + "k3erlau", + "k3er4leb", + "k6erlebe", + "ker2na", + "ker4nei", + "4k3er4neu", + "kern5eur", + "k1ero", + "k2e1rod", + "2keros", + "ker4reg", + "k2ers.", + "2kersa", + "kert2", + "ker6werb", + "kerz2", + "k1erz.", + "ker4zeu", + "2k1er2zi", + "k2es.", + "ke2sa", + "k2esc", + "k1ese", + "ke2sel", + "kes2sa", + "ke4t1a", + "ket2ag", + "kete4", + "ke4t1eb", + "ke4tel", + "2k1e2th", + "ket3ha", + "ke2tu", + "keu6schl", + "2k1e2va", + "2k1e2x", + "4k3f4", + "2k3g2", + "kga2s1", + "kge3s", + "2k1h4", + "k3he", + "kho3m", + "k3hu", + "ki1a", + "ki2ad", + "ki2ag", + "ki3ak", + "ki3a2r", + "ki1c", + "ki3d4r", + "k2ids", + "2kidy", + "ki2el", + "kie4lei", + "kiel3o", + "2kiern", + "kier2s", + "kier4st", + "kie4z", + "ki1f4l", + "ki1f4r", + "ki3k4", + "2ki3l2a", + "2kilä", + "2kim", + "3kin.", + "ki2nä", + "4kindex", + "2k1indi", + "2k1indu", + "2k1inf", + "k2ing", + "kin2ga", + "king3s", + "2kinh", + "k2ini3", + "kinik2", + "k2inn", + "ki3n4o3", + "kinos2", + "kin3s", + "2k1inse", + "k1inst", + "2k1int", + "ki3or", + "kio4s", + "3kir", + "2k1i2so", + "kis2p", + "kis3s", + "kist2", + "kis4to", + "kiv2", + "kive4", + "2kiz", + "2k3j", + "2k1k4", + "kkab4", + "kl4", + "4kl.", + "4kla.", + "2k1lac", + "klan2", + "2kland", + "klan3du", + "k4lar", + "k1last", + "k1lauf", + "k3laug", + "2kläd", + "k2lär", + "k2le", + "4k3le.", + "kle2br", + "k3leg", + "2kleh", + "klei2e", + "k3leit", + "k3lem.", + "kle2o", + "2k3ler", + "kle2ra", + "2k3leu", + "kle3us", + "2klic", + "k2lien", + "k2lif", + "2klig", + "3k2lim", + "k2lin", + "k3lin.", + "3k4lina", + "k4link", + "k2lip", + "k2lir", + "k2lisc", + "2klist", + "klit2s", + "2k3liz", + "2k3loc", + "2klok", + "3k4lop", + "k3lor", + "klost6", + "2klöc", + "2klöf", + "k2löst", + "k4löt", + "k1lu", + "klu4b", + "k2lud", + "k2lug", + "k2lum", + "klung4", + "2klux", + "2k1lüc", + "2kly", + "2k1m", + "4kma", + "kma2la", + "k2n2", + "k4nac", + "2k5nach", + "2k3nad", + "2knah", + "2k3nam", + "2k3näp", + "k3ne", + "k4nec", + "kne1e", + "2knes", + "2knetz", + "2k5neu", + "4kney", + "2k3niv", + "kno2b3l", + "k4nol", + "2knorm", + "2knov", + "2k3num", + "1ko", + "ko5ad", + "ko2al", + "kobal2", + "2kobj", + "kob4s", + "kof3f2", + "koffe3i", + "kohl2e", + "kohle3i", + "koh3lu", + "koka3", + "ko3l2a", + "ko3le", + "kol2k3", + "3kom", + "komer3", + "4komn", + "ko4mu", + "k2on", + "kone2", + "ko2nem", + "kon3s4", + "kont6e", + "ko2nu", + "ko3on", + "2kop.", + "ko1pe", + "2koper", + "kopfa2", + "kop4fen", + "kop6f5err", + "kop3s", + "ko3pte", + "ko3r2a", + "kor2ba", + "kor2bl", + "kor2br", + "2k1orc", + "korder4", + "kor6derg", + "ko2rel", + "2k1org", + "kor2k1a", + "kor3m", + "kor4nac", + "kor2n3ä", + "kor4no2", + "2korpi", + "k2os", + "k4os.", + "ko4sk", + "ko2sp", + "3k4ost", + "ko2stü", + "ko4ter", + "ko3ti", + "kot4r", + "kot3s2", + "kot4tak", + "k1ou", + "ko3un", + "3kow", + "ko2we", + "2k1ox", + "1kö", + "köde2", + "k2öf", + "k1öl", + "2k1p2", + "2k3q", + "k2r2", + "2k3rad", + "2k3rah", + "k4ral", + "k3rats", + "2kraum", + "k4raw", + "k4raz", + "k4räc", + "2kräd", + "k4rän", + "2k3räum", + "2k5re.", + "2k3reak", + "2k3real", + "k4reb", + "2k3rec", + "2kred.", + "2k3rede", + "2kredn", + "2kredu", + "2k3ref", + "2kreg", + "2k3reic", + "kre1i2e4", + "kreier4", + "k3reif", + "2k3reih", + "2kreim", + "krei6sei", + "krei4st", + "kreli1", + "k3ren", + "2kresu", + "2k3rh", + "2krib", + "2k3ric", + "2k3ries", + "2krip", + "k3risi", + "krob4", + "k4roch", + "4k3roh", + "k4rok", + "k4ron", + "k4rop", + "2krot", + "3kroth", + "k3rou", + "2kröh", + "2kruf", + "2k3run", + "4k1s", + "ks3a2b", + "ksa2k", + "k4s1amt", + "k2san", + "ks3a2r", + "ksa2s", + "k2sau", + "ksau2f", + "k2sav", + "k2säh", + "k3s2c", + "ksch4", + "k2s1e2b", + "k2s1ec", + "k3s2ed", + "ks1ei", + "ks2eid", + "ks2eif", + "k4seind", + "kse2le", + "k2s1eng", + "k2s1ent", + "ks1er", + "ks2ere", + "k2serf", + "k2serg", + "k2serk", + "k2serl", + "k2sers", + "k2serw", + "k2s1e2v", + "k2sex", + "ks3ha", + "k4s1i2d", + "ks2im", + "k2s1in", + "k2s1is", + "k3s2ke", + "ks3kl", + "ks1o", + "ks4on", + "k2sop", + "k2so2r", + "k2sö", + "ks1pa", + "k2spal", + "k3s2pat", + "k2spä", + "k3spe", + "ks2pel", + "ks2pen", + "k2sph", + "ks2por", + "ks2pul", + "ks3s4", + "kst2", + "k2stal", + "k4s3tanz", + "k3stat4", + "k3stäl", + "ks4tel", + "ks2tep", + "k4stier", + "k2stit", + "ks4tol", + "k2stor", + "k4strop", + "k2stuc", + "k2stum", + "k2stur", + "k2stüt", + "k2s1u", + "k3sul", + "ks2zen", + "4k1t", + "kt1abr", + "kt1abs", + "k2t1ad", + "kt1akt", + "k3tal", + "kt1am", + "kt1an", + "kt2and", + "k2t1a2r", + "kta4re", + "kta3ri", + "k2t1au", + "kt3aug", + "ktä3s", + "kt1ein", + "k2tek", + "k4t1ela", + "kte4n1", + "kten3s2", + "k2tent", + "k4tentf", + "k4tents", + "kten3z", + "kte2ra", + "kte3ran", + "kt4ere", + "k4t3erfo", + "kt1erg", + "k2t1erh", + "k2terö", + "kte3ru", + "k2tex", + "k2t1h", + "k2t1i2d", + "kti2me", + "kt3ind", + "kt1ing", + "kt1ini", + "kt3inn", + "k2tint", + "kti2s1e", + "k2tiso", + "kti4ter", + "kto3b", + "k2t1of", + "kto5ren.", + "k3t4ran", + "kt3ras", + "k2t3rau", + "k4tref", + "ktro1s", + "kt3run", + "kt3rü", + "kt3s4a", + "kt3sä", + "kt3se", + "kts2el", + "ktsen1", + "kt3si", + "kts1o", + "kt2sor", + "kt3s2z", + "ktt2", + "k3tub", + "kt1ums", + "k2tuns", + "k3tü", + "kt3z2", + "ku2al", + "ku1c", + "kud4r", + "3kug", + "ku2h", + "2k1uhr", + "ku3la", + "ku3l2e", + "ku3l2i", + "4kulp", + "kul4to", + "kul2tr", + "k2um.", + "k2um4e", + "2kumg", + "2kuml", + "kum2sa", + "kum2sp", + "k2u3n2a", + "kun3da", + "kund2e", + "kunden3", + "kung4", + "kun4s4", + "kunst3", + "2kunt", + "2kunw", + "4k1up.", + "kur2bl", + "ku2rei", + "kuri2e", + "kuri4er", + "2k1urk", + "ku2ro", + "kurs1c", + "kur2sp", + "kur2st", + "2k1urt4", + "kur3tsc", + "kus3a2r", + "ku4schl", + "ku2sp", + "2ku2s3t2", + "ku2su", + "2kut.", + "kut2a", + "kuto3", + "1kü", + "kü1c", + "3küne", + "3kür", + "kür4s", + "2k3v", + "2k1w", + "k3wa", + "2k3z2", + "kze3l", + "3la.", + "la3ar", + "l1ab", + "3l2ab.", + "lab2a", + "la2bad", + "l2abä", + "2labb", + "lab2br", + "2labd", + "lab2e", + "4la2ben", + "4labf", + "2labg", + "2labh", + "3labi", + "l3a2bit", + "2la2b3l", + "2labn", + "3lab2o", + "4labo.", + "la3b4ra", + "lab4res", + "la2bri", + "2labs", + "la2bus", + "2labw", + "2labz", + "la1ce", + "la2ce.", + "l4a3che", + "lachter8f", + "lacks2", + "1lad", + "2l1ad2a", + "2ladd", + "3laden", + "la3d2i", + "2ladj", + "2l1adl", + "2ladm", + "2l1a2dr", + "3l2adu", + "2laf", + "la2fa", + "la2f1ei", + "la2f1er", + "laf1r", + "laf3s", + "laf3t4", + "la2fu", + "la2g1a", + "lag3d", + "l2ager", + "lagerin5", + "4lagg", + "la2gio", + "lag3l", + "la4g3n", + "lago4", + "la2gob", + "lag3str", + "2la3ho", + "3lai", + "lake2", + "la2kin", + "l2akk", + "la1k4l", + "la2kro", + "lak3t2", + "2l1al", + "la2la", + "3lala.", + "3lali", + "4lalt", + "lami3t", + "lam2m1a", + "1lammf", + "la2mor", + "l2amp", + "2l1amt", + "lamt4s", + "la4mun", + "la2na", + "la3nan", + "la4n4at", + "la4nau", + "2la2nä", + "3l2and", + "l4and.", + "lan2da", + "lan4dam", + "land3au", + "l4ande", + "lan6derh", + "lan6d5erw", + "lan6d5erz", + "lan6d5inn", + "l4an2dr", + "lan3dri", + "land3rü", + "lan3erd", + "laner4f", + "2lanf", + "lan4gan", + "lan6g5esc", + "lang3s4", + "2lanha", + "l2anhe", + "3lan2i", + "4lanl", + "2l1ann", + "l1ano", + "la2nof", + "2l1anp", + "2lans2", + "l1ansi", + "2lantr", + "2lantw", + "2lanw", + "lan2z1w", + "3lao", + "2l1apf", + "la2ph", + "2l1a2po", + "lap2pl", + "la2r1an", + "2larc", + "lar1e2b", + "la2r1ei", + "la2rel", + "la4rene", + "larf4", + "lar3g", + "lar3ini", + "4l1a2rom", + "l1art", + "2lart.", + "lart2h", + "l3arti", + "lart4r", + "3laru", + "l2as.", + "la2sa", + "la4sam", + "la4sä", + "lasche4", + "4lasd", + "la3seb", + "la2sei", + "la2s1e2l", + "2lash", + "la2sin", + "la2sis", + "la2so", + "2la4sp", + "3lasser", + "l2a2st", + "las4t3an", + "la4ste", + "last3ri", + "la4stu", + "la3t2e", + "2l3a4tel", + "la5t2i", + "2l3atl", + "2latm", + "lat2o", + "la2tö", + "la2t3ra", + "lat4ri", + "lat2s", + "lat3st", + "2lat2ta", + "lat4tan", + "lat4tex", + "lat4t3in", + "lat2t3r", + "latzer4", + "1laub.", + "lauben6s5", + "lau2b3r", + "laub4se", + "lau4fin", + "2laufn", + "lau2fo", + "lau4fri", + "1laug", + "lau3gl", + "2laun.", + "la4us", + "3l2aus.", + "2l1ausb", + "lau6scha", + "2lausd", + "2l1ausf", + "2lausg", + "2lausl", + "2lausr", + "2l1auss", + "lau2st", + "2lausw", + "2lausz", + "2lauto", + "lau2tr", + "la3va", + "lave4n", + "1law", + "lawa4", + "1l2ax", + "la4xel", + "l2ay", + "lay1s", + "lä1c", + "3läd", + "4läf", + "2l1ähn", + "2lämt", + "1länd", + "2l1äpf", + "2läq", + "lär2ma", + "l1ärme", + "2lärz", + "lä2s1c", + "2lät", + "2läub", + "2läuc", + "2läue", + "1läuf", + "2läug", + "2läx", + "1là", + "2l1b", + "l3bac", + "l2bant", + "lb3a2ri", + "lbau1c", + "lb1ärm", + "lbb4", + "lbby4", + "lb2ei", + "l4b3eink", + "l4b3eise", + "lbe4ral", + "lberin5", + "lbe7s", + "l4b1e4ta", + "l2b1id", + "l2b1ins", + "lb4lad", + "l3b2lat", + "l3blä", + "lb3le", + "l2bled", + "l2blic", + "l3blo", + "l3b2lö", + "l3b2lu", + "l2b1o2ra", + "lb3rea", + "lb2s", + "lb3sa", + "lb3se", + "lb3si", + "lb3sp", + "lbs4t", + "lbst3ac", + "lbst3ei", + "lbst1u", + "l2b1uf", + "l3bum", + "lbu4n", + "lbzei2", + "2l1c", + "l3ca", + "l3che", + "l4chei", + "l4chent", + "l3chi", + "lch3le", + "lch3li", + "l3chlo", + "lch3n", + "lch3r", + "lch3s2", + "lch3ü", + "lch1w", + "l2ck", + "l3cl", + "l3co", + "4l1d", + "ld3a2b1", + "ld2ac", + "ld3a2ck", + "l2daf", + "lda2g", + "l2d1ah", + "lda2i", + "l2d1ak", + "l2d1al", + "l2d3a4n", + "ld1arm", + "ld1ass", + "l2d1au", + "ld3aus", + "l3däm", + "ld1är", + "ld1äs", + "ld1ät", + "l3de.", + "lde4ben", + "l2dei", + "ldein7", + "l2d1elf", + "l2d1e2mi", + "l2d1ems", + "lde4na", + "lden5erg", + "l4dentl", + "l3der.", + "l4d3er4fa", + "l6der6geb", + "ld1erh", + "l4der4he", + "l3d2erl", + "l6d5erlas", + "l3d2ern", + "l2d1er2p", + "lder4tr", + "lde3sa", + "l2d1es2s", + "l2dex", + "l2d1id", + "ld1i4mi", + "l2d3ion", + "ldo2b", + "ld2on", + "l2dop", + "ldo2r", + "l2d1ori", + "ld2os", + "ldos5t", + "ld2ö2", + "ld3r", + "ld4ram", + "l2dran", + "l2dre", + "l3d4ris", + "ld4ru", + "l2drüc", + "ld3sa", + "lds4an", + "ld3ska", + "ld3st", + "ldt4", + "ld3th", + "ldt5s", + "ld3tu", + "l2d1ul", + "l2d1um", + "ldwes4", + "ldy2", + "1le", + "le2ad", + "le3ar", + "le2as", + "3leba", + "leben4s3", + "le2bl", + "3lebr", + "le2b3re", + "lebs2", + "2lec", + "lech1a", + "le2chi", + "lech7t6e", + "le2dr", + "le2er", + "lee4ret", + "le3f2a", + "2l1eff", + "lef4o", + "le2g1ab", + "leg1as", + "le2gä", + "le2gl", + "leg4r", + "legs4", + "3leh", + "4lehe.", + "leh3r2e", + "4lehs", + "4leht", + "lei4ble", + "l2eid", + "lei3ere", + "lei4fan", + "lei4fei", + "leifer6g", + "leif3s", + "2l1eig", + "lei3gl", + "3leih", + "lei4hau", + "lei3l2", + "leim3p", + "3l2ein.", + "l2eind", + "lein4du", + "l4eine", + "lei6nerb", + "le2inf", + "le2ini", + "2leink", + "4l3einsa", + "2leint", + "l2einu", + "le2is", + "leisch5a", + "lei8schei", + "lei6scho", + "lei6sern", + "l1eisf", + "leis6s5er", + "l4eist", + "lei4str", + "lei4ßer", + "l2eit", + "lei2ta", + "lei4to", + "lei5tri", + "leit3s2", + "leits4t", + "3leko", + "2lektr", + "2lekz", + "3l2ela", + "le2le", + "le3lei", + "2lelek", + "4leleme", + "le3len", + "leler2", + "leler4s", + "le3les", + "2lelf.", + "2l1elfe", + "l2eli", + "l2em.", + "le3mal", + "le2mau", + "le2m1ei", + "3lemes", + "3lemet", + "lem1o2", + "le2mor", + "2lemp", + "lem3s", + "le2mu", + "le4mun", + "l4en.", + "len1a", + "len3ab", + "le4na2d", + "le4n3an", + "le4n3a4t", + "le2nä", + "4lendet", + "l1endp", + "4lendun", + "le2n1ed", + "4lenerg", + "le4neur", + "4leneuv", + "len4gag", + "len4kau", + "len4k3lo", + "len4klu", + "l1enni", + "len6sein", + "4len4sem", + "len3ska", + "len3sz", + "2lentg", + "2l1entk", + "4lentla", + "2lentn", + "4l3en4tro", + "4l3entw", + "lent4wä", + "5lentwet", + "2lentz", + "2lenzy", + "leo2f", + "le1o2s", + "2lep", + "3lepf", + "4l1e2pi", + "4lepoc", + "3lepr", + "l2er.", + "l2e1ra", + "le2rag", + "le2r3ap", + "le2ra2s", + "le2rau", + "le2r1ä", + "le2r1e2b", + "ler2e3c", + "l3ereig", + "le4r3ei4m", + "le4r3eis", + "le2rel", + "le4reng", + "le4rerg", + "le4rers", + "le2re4t", + "4l3erfas", + "2l1erfo", + "l2erfr", + "l2erfü", + "l1erg", + "l2erga", + "l4ergef", + "3lergeh", + "6lergen.", + "l4erger", + "l4erges", + "3l4ergew", + "2lergi", + "l2ergl", + "l2ergr", + "4ler4heb", + "4lerhol", + "lerin4s", + "lerk2", + "l2erka", + "2lerke", + "l1erkl", + "4lerklä", + "l4erkle", + "l2erko", + "ler3kr", + "ler3l", + "5l6erlebe", + "3l4erlei", + "2lermä", + "ler4nal", + "ler4nar", + "3l4erne", + "ler4nei", + "2l1erö", + "3l2erra", + "ler4ric", + "l4ers.", + "l1ersa", + "lers2t", + "ler4sto", + "lert2", + "ler4trä", + "le2rup", + "l4erwa", + "ler4wer", + "2ler2wo", + "2l1erz", + "ler2zä", + "l3erzeu", + "ler2zo", + "l4es.", + "les2am", + "les2e", + "lese1i", + "2l1esel", + "le3s4h", + "lesi1", + "le3s2k", + "les4ki", + "le3so", + "le2spo", + "lest6", + "le1sta", + "les2te3", + "lester6i", + "le1sto", + "le1str", + "3lesu", + "4lesw", + "2lesy", + "le2tab", + "2le2tap", + "2le2tat", + "l1e2th", + "le3tha", + "2lethi", + "let2i", + "letsche6", + "let4top", + "lett1r", + "letts2", + "le2u", + "4leue", + "3le3u2f", + "2l1eul", + "le3unt", + "2leuro", + "3leut", + "l1e2vol", + "2lex", + "3lexd", + "3lexik", + "le2xis", + "1lé", + "2l1f", + "l3fah", + "lf4at", + "l2f1ec", + "lfe1e", + "lf3einh", + "l2feis", + "lf2en", + "l4ferei", + "lfe4rel", + "lf1erl", + "l3fi", + "l3f4lä", + "lf3led", + "lf4lö", + "l3f4lu", + "lf3ram", + "lf3res", + "lf4ru", + "lf4rü", + "lf2spe", + "lf2sti", + "lf2su", + "lfun2", + "lfur1", + "2l1g", + "l3gas", + "lga3t", + "lgen2a", + "lgene2", + "lgeräu3", + "l2geti", + "l3g2i", + "lg2lö", + "l3go", + "lg4p", + "l3gra", + "lg3re", + "l3gro", + "lgung4", + "2l3h2", + "4lhe", + "3lhi.", + "4lhu", + "1li", + "li1a", + "lia2b", + "li2ad", + "li4am.", + "lian2g", + "li2ast", + "3lib4", + "libi1", + "li1c", + "lich4ta", + "lich4to", + "4lick", + "li2cka", + "li2cl", + "li3d2a", + "l1ido", + "l2idy", + "3lie.", + "liebe4s3", + "lie2br", + "li1efa", + "3liefer", + "li1efk", + "li3efl", + "lie4n1a2", + "li3ene", + "lien3s", + "lien3t", + "lie4rei", + "lier4sp", + "lie2s1c", + "3lig", + "liga3s", + "li4g3ers", + "li4gl", + "lig4n", + "li3ker", + "lik2o", + "likop4", + "lik2sp", + "lik4ter", + "lik2ti", + "lik4t1o2", + "lik2u", + "li3l", + "lil2a", + "li3m2a1", + "limas4", + "lima3t4", + "2limm", + "3limo", + "2limp", + "lin2a", + "li3nar", + "2lindi", + "2l1indu", + "li2nef", + "li2neh", + "li2nep", + "li2nes", + "2l1inf", + "2l1inh", + "li5nie", + "lin1it", + "2l1inj", + "lin4kan", + "lin4kar", + "link2s", + "li2nol", + "l2insa", + "4linsel", + "2linsp", + "2linst", + "2linsu", + "2linsz", + "2l1int", + "li3n2u", + "2l1inv", + "2linz", + "li2o", + "li4om", + "li3o2st", + "3lipf", + "3lipt", + "3lis.", + "li3s2a", + "li3schm", + "li4schu", + "lis2h", + "li3shi", + "3lisk", + "2l1isl", + "2l1i2so", + "li2sp", + "liss4", + "3list", + "lit4a", + "l1i2tal", + "li3t2ä", + "l2i3t2e", + "3liter", + "li4t3r", + "lit1s2", + "lit3se", + "lit3sz", + "li3tu", + "li6tun", + "li4tur", + "litz4er", + "3liu", + "liv2e", + "li2vea", + "li2ves", + "livi3e", + "li3vr", + "2lixi", + "li4z3ä", + "lizei3", + "2l3j", + "2l1k", + "l3kale", + "lk1alp", + "l3k2an", + "l3kap", + "l3kar.", + "lk1erd", + "lke3r2e", + "lk2l", + "lk3lad", + "l3k4las", + "lk3lic", + "l3k4lu", + "lk2men", + "lk4ne", + "lk5ner", + "lko2f", + "lk1ofe", + "lkor2b1", + "lk3roc", + "lk2s1", + "lk3sän", + "lk3si", + "lk4spe", + "lks3t", + "lkt2", + "lk2ü", + "4l1l", + "l2labk", + "l2labt", + "l3labu", + "l3lage", + "lla3gl", + "l2l1am", + "lla2ma", + "l3lame", + "ll2ami", + "ll2anb", + "lla4ner", + "l4lani", + "l3lans.", + "ll4anwa", + "ll1anz", + "l4l3appl", + "ll1arm", + "l4latm", + "ll3att", + "ll3aufg", + "ll1aus", + "ll1äm", + "l2lär", + "llb4", + "llch4", + "ll3d4", + "ll5ebene", + "l3lec", + "ll1ech", + "lle3er", + "l2l1ef", + "ll1eic", + "ll1eim", + "ll2eis", + "l4leise", + "lle2la", + "lle2m", + "l2l1emi", + "l3len.", + "lle4na", + "llen3dr", + "ll5en6dun", + "l4lentf", + "l4lents", + "l3lep", + "l3ler.", + "lle2ra", + "ll2ere", + "l6ler6eig", + "ller4fo", + "ller6geb", + "l8lergene", + "l4lergo", + "ll3erho", + "l4l3ermi", + "l4l3ernt", + "ll3ertr", + "ll2es", + "lle4th", + "ll1exe", + "llg4", + "lli4gan", + "l2limb", + "l2l1ind", + "l4linf", + "ll1ins", + "ll3k4", + "ll3l2", + "ll5m2", + "ll3n2", + "ll1ob", + "l2lobe", + "l2l1o2f", + "ll3ol", + "l2lope", + "ll1opf", + "ll1or", + "l6lorb", + "llor2g", + "l2lo2ri", + "l2l1ou", + "l3low", + "ll1ox", + "ll2säu", + "ll2s1es", + "ll3ska", + "ll2spr", + "ll3t", + "llt2e", + "llt2i", + "llti2m", + "ll5t4r", + "llts2", + "ll1ur", + "llus5t6", + "l3ly", + "ll3z2", + "2l1m", + "l2m3a2b", + "l2m1ad", + "lm1a2ge", + "lm1aka", + "l2m1a2m", + "l3mana", + "lm1apf", + "lm1art", + "lm3att", + "lm1äst", + "lmbu2", + "lm1c", + "lmd2", + "lm3e4dit", + "l2m1ef", + "l2ment", + "l2m1e2p", + "lmer2", + "l2m1erf", + "l2m1erl", + "l2m1erz", + "l4messa", + "l2m1i2d", + "lm1ind", + "lm1ins", + "l2mof", + "lm1orc", + "lm3p2", + "lmpf4", + "lm3s2k", + "lms2t", + "lm3ste", + "lm3s2z", + "lm3t4", + "l2mum", + "l4munt", + "2ln", + "ln2ab", + "lna2r", + "ln3are", + "lnd2", + "l3n2e", + "lnes2s", + "l2n1in", + "lnus2", + "l1nü", + "l1ny", + "1lo", + "lo4ak", + "3lob.", + "l2oba", + "3lobb", + "lobe2s", + "2lobj", + "l1o2bl", + "l2obr", + "lob4ri", + "lo4chel", + "l1ofe", + "lo2fen", + "lo4gh", + "lo2gl", + "lo2gor", + "lo2gre", + "lo3ha", + "loh2e", + "4l1ohr", + "loi4r", + "3lok", + "4l3okk", + "lo2k3r", + "5loks", + "l4ole", + "2l3o2ly", + "lomä3", + "lo2min", + "lo2ner", + "lo4nin", + "lo2n1o", + "lo2o", + "2lopf", + "lop2p1a", + "2lopt", + "lor3am", + "lor2an", + "lo4rä", + "5lorb", + "2l1orc", + "2l1ord", + "lo3r2en", + "2l1org2", + "lori4di", + "2lort2", + "l2os.", + "lo4sa", + "3lose", + "lo4ske", + "lo2spe", + "lo2spr", + "los3t", + "lo4ste", + "lo2st4r", + "4loß", + "lo2ta", + "lo3tha", + "loti4o", + "2l1ov", + "lo2ve", + "2lox", + "1lö", + "lö2b3", + "2löck", + "2löd", + "lö2f", + "2l3öfe", + "2l1öhr", + "2lök", + "2l1öl3", + "2löp", + "3lösc", + "3lösu", + "4löß", + "4löz", + "2l1p", + "lp2ar", + "lpar2k1", + "l4p1är", + "lp2f", + "lph4", + "l3phä", + "l2phir", + "lp1ho", + "l3phr", + "lpt4", + "l3pu", + "2l1q", + "2l3r2", + "lrau2s", + "lrebs2", + "lro2h", + "lrö2", + "4l1s", + "ls3a2b", + "l2s1a2d", + "ls2al", + "l4s1amb", + "l4samp", + "ls2amt", + "l2san", + "ls3ane", + "l3sare", + "ls3a2ri", + "l3sark", + "lsau2", + "lsau4m", + "lsau4r", + "l3s2äm", + "ls2äug", + "ls1äus", + "ls2c", + "l4schin", + "l4schmü", + "lschs2", + "l2s1e2b", + "ls2ele", + "ls1eli", + "l2sent", + "ls1er", + "l2serf", + "l2serg", + "l2serh", + "l2serk", + "l2serl", + "l2sers", + "l2serw", + "lse2t", + "ls1eta", + "ls2ext", + "ls3ha", + "l2s1id", + "l2simp", + "ls2kal", + "l3s4kele", + "ls2ky", + "lso4b", + "l2sop", + "l4s3ort.", + "l3s2öl", + "l2spac", + "ls2pe", + "l2s3ph", + "l2s1pir", + "l3s2pit", + "ls2po", + "l3spri", + "ls2pu", + "l3spul", + "ls3s4", + "lst2a", + "lstab6", + "ls3tabl", + "ls4taf", + "lstahl3", + "l2stas", + "l4stat.", + "l4state", + "l4s3täti", + "l2ste", + "l3stea", + "l3stec", + "l3steh", + "l3stei", + "l4steil", + "l3stel", + "l3stemp", + "l4sten", + "ls4t3erk", + "l5s6terne", + "l5s6terns", + "ls2tie", + "l2stit", + "l4stoch", + "ls4toi", + "ls4tol", + "ls4tru", + "l2s3trü", + "ls2tu", + "ls4tüm", + "l3suf", + "ls1um", + "l2s1un", + "ls2und", + "ls3unk", + "4l1t", + "l2tab", + "lt1abs", + "ltag4", + "lt1am", + "l4tame", + "ltampe4", + "l3tan.", + "ltan3d", + "l2t1ap", + "lt1ara", + "ltar8beitn", + "l3tark", + "lt1art", + "ltar6tik", + "l3tartu", + "lt1au", + "l4tauf", + "lt3aut", + "lt1äh", + "ltbau1", + "lte2c", + "lt1eh", + "l3tehu", + "lt1eig", + "lt1ein", + "lte3mi", + "lt2en", + "lten6gel", + "lten4sp", + "lt3ents", + "lte4ral", + "lter4fa", + "l3t2erg", + "l4terhe", + "lter6ken", + "lter4ku", + "lter4nä", + "lte2ro", + "lt2erö", + "lter4se", + "l4t1es3k", + "lt2est", + "lte3str", + "lt2et", + "l2t1h", + "lt3hag", + "l3thas", + "l4t3hei", + "lthol2", + "l3t2hu", + "lt1ide", + "ltimo4", + "l3tine", + "l2tiso", + "l3t2i3t", + "l2t1ob", + "l2t1o2f", + "l4tord", + "l4torg", + "l4t1o2ri", + "lto2w", + "lt1öl", + "lt1ös", + "l4t1öt", + "ltra3l", + "lt3räu", + "lt3rec", + "lt3rei", + "lt3ris", + "lt3rol", + "l2t3rö", + "l2t3rus", + "l4ts", + "lt2se2l", + "lt4s3ort", + "lt2s1pe", + "lt3s2ph", + "lt2sti", + "lt3t", + "l3tub", + "lt1uh", + "l2t1um", + "lturan4", + "lturen4", + "ltu2ri", + "l3tü", + "lu1an", + "4lu2b3", + "luba2", + "lubs2", + "lu2dr", + "lu2ec", + "lu2es", + "lu2et", + "1lu2f2", + "2l1ufe", + "2luff", + "lu3fo", + "luft1a", + "luft3e", + "luf4tei", + "luft3r", + "lu2g1a", + "lu2g1e2b", + "lu2gei", + "lugen1", + "lu2gi", + "lug3l", + "lu2go", + "lu2g3r", + "lug3sp", + "lu2gu", + "2l1uh", + "lu1id.", + "lu4ig", + "lu1is.", + "lul2ö", + "2lumd", + "lume4", + "2lumf", + "2lumg", + "2l1umh", + "2lumk", + "2luml", + "l2ump", + "1lumpe", + "lum2ph", + "2lumr", + "2l1ums", + "lu3mu", + "2l1umw", + "2lumz", + "1lu2n", + "2l1una", + "lund4", + "2l1unf", + "lung4sc", + "2l1uni", + "2lunr", + "2l1uns", + "2lunt", + "2lunw", + "4luo", + "l2ura", + "lu2r1an", + "lu2rat", + "lu2rei", + "2lurg", + "l2uri", + "lu2ris", + "l1urn", + "lu2ro", + "2lurs", + "l1urt", + "lu4ru", + "lu3sak", + "2luse", + "lu3si", + "lu2sp", + "lus4s3a", + "lus2s1c", + "lus4sel", + "lus4s3er4", + "lus2s1o", + "lus4s1p", + "lus2s3t", + "lus4stä", + "luss5tr", + "1lu2st", + "lus6terl", + "lus4t1o2", + "lust3re", + "lu2s1u", + "lu2t1a4", + "lu4tas", + "lu4t3au", + "lu2tä", + "lu2t1e4g", + "lu2tel", + "luter2", + "lu4t3erg", + "luter4s", + "lu6t5ersa", + "lu2thy", + "2luto", + "lu2tob", + "lu2t1o2f", + "lu2top", + "lu4t1or", + "lu4t3r", + "lut5schl", + "2lüb", + "3lübd", + "lück4e2", + "lücker3", + "5lüd", + "lüf3te", + "lü2hel", + "lüh1l", + "2l1v2", + "lva3", + "l3vl", + "lv3r", + "4l3w4", + "2lx", + "1ly", + "ly1a2", + "ly3c", + "ly3es", + "ly1l", + "2lymp", + "3lyn", + "ly3no", + "ly1o", + "ly3t", + "ly1u", + "2l1z", + "l2z1ac", + "l2z1ag", + "l2zan", + "l2z1ap", + "l2zat", + "lz1aus", + "l2zäp", + "l2zär", + "lze2l", + "l2zele", + "l4z3enth", + "l2z1ep", + "l2z1er2h", + "l2zerz", + "l2z1id", + "lzi4m", + "lz1imi", + "lz3l", + "lzo2f", + "l2zö", + "lz3t2", + "l2z1u4fe", + "lzvol2", + "lz1w", + "lz2wec", + "l2zwu", + "1ma", + "3ma.", + "maa2", + "m1ab", + "m3a2bar", + "m2abä", + "2m3abb", + "m2abe", + "2m3abf", + "2mabg", + "2mabh", + "2mabk", + "m2abli", + "2mabm", + "ma2br", + "m2a3b4ra", + "2mabs", + "2mabt", + "2mabz", + "ma3chan", + "mach2e", + "mach8terh", + "mach8t7ers", + "mach4tr", + "ma2ci", + "mack2s", + "2m1act", + "mada2m", + "m2adä", + "ma2del", + "ma3dj", + "2m1adm", + "2m1a2d4r", + "ma4d2s", + "mae4", + "ma1f4", + "mag2a", + "ma2ge.", + "ma2geb", + "ma2gef", + "ma2geg", + "ma2gek", + "ma2gep", + "ma4ges.", + "ma2get", + "ma2gev", + "ma2gew", + "2m1agg", + "magi5er.", + "magi5ers", + "ma3gl", + "ma3g4n", + "2m1ago", + "ma3ha", + "mahl4st", + "ma1ho", + "mai4s3e", + "ma2ke.", + "2m1akt", + "mal2ag", + "mal1ak", + "ma4lakt", + "ma2lan", + "ma2lau", + "ma2lär", + "2mal2de", + "m2aldi", + "ma3le", + "ma4leb", + "mal2er", + "ma4lex", + "mali1e", + "mal3lo", + "2mallt", + "ma2lon", + "ma2lop", + "m2alp", + "mal3t", + "malu4", + "ma2l3ut", + "3malv", + "ma2mid", + "mam3m", + "2m1a2nal", + "ma2nar", + "2m1a4n4at", + "ma2nau", + "2m1anä", + "2manb", + "man2ce", + "3man3d4", + "ma2net", + "m2anf", + "mang2", + "2man3ga", + "m4angel", + "2m1angr", + "m2anh", + "3manip", + "2manl", + "m2anle", + "3m2ann", + "2manod", + "2m1ansa", + "2mansä", + "man2t1h", + "2mantr", + "manu3", + "ma4n1ut", + "2manw", + "2manz", + "m1anza", + "ma2or", + "ma2phr", + "ma2po", + "ma1q", + "m2ara", + "4marag", + "mar2an", + "2marb", + "mar3g2", + "3ma1rh", + "ma3r2i", + "m2ark", + "mar2kr", + "4mar2o", + "maro3d", + "4marr", + "mar6schl", + "mar6schm", + "mar6schr", + "mar2sp", + "mar2su", + "2m1arti", + "ma3r2u", + "m1arz", + "3mas", + "ma3s4a", + "mas2e", + "ma3s2p", + "masse4n3", + "mas4ta", + "mas4tel", + "mas2ti", + "mas4to", + "mas4tr", + "ma4s3z", + "3maß", + "ma2ta2b", + "ma2tan", + "ma2tä", + "m3a2tel", + "ma4t3erd", + "ma4t3erz", + "m4atme", + "2matmo", + "ma2to", + "ma4tort", + "mat3se", + "mat3sp", + "matt4r", + "mat3url", + "2m1au2f", + "3maul", + "ma3un", + "mau3r", + "2maus", + "mau2ta", + "m4ay", + "ma1yo", + "1mä", + "2m1ähn", + "mäh1r", + "4m1änd", + "2mäo", + "2m1äp", + "2mäq", + "mär1", + "mär2kl", + "mär2z1", + "mä3t4r", + "mäu2s1c", + "2m1b2", + "mbe2e", + "mber2e", + "mbe3ri", + "mbert4", + "mbi3er.", + "mb4l", + "mble1i", + "mb4r", + "mbu3sc", + "mby4t", + "2mc", + "m3ch", + "4m1d", + "m2dan", + "m2d1a2s", + "md1är", + "mde2a", + "m2dei", + "mde2m", + "m2d1emi", + "m2d1ent", + "mder2", + "m2d1erl", + "md2ö", + "md3ras", + "md3s2e", + "mdt4", + "m2d1um", + "1me", + "me3an", + "me3at", + "meb4", + "me2ben", + "3mebr", + "me1c", + "medi3e4", + "me1e2m", + "mee2n", + "mee4r3ei", + "2m1eff", + "mega3", + "me4gel", + "3meh", + "meh6l3er", + "mehrer4", + "2m1eif", + "2m1eig", + "m2ei3l2", + "mein4da", + "meinde3", + "meiner6k", + "mei6nerl", + "3m2einu", + "3m2eist", + "me3lam", + "me3l4ant", + "me2l1au", + "melb2", + "mel3d2", + "melde3i", + "me2lek", + "2melem", + "me2ler", + "melet4", + "2melf.", + "3melk", + "mel4k3ei", + "mell2", + "3melo", + "me2lob", + "mel2se", + "mel5t4", + "6mel6tern", + "2m1e2mis", + "2m1emp", + "2m1e2mu", + "m2en.", + "men3ab", + "me3nage", + "me4n3an", + "men3ar", + "me4nas", + "men3au", + "2m1endl", + "menen1", + "4men4gag", + "men3ge", + "me2nim", + "men3k4", + "men2on", + "men4se.", + "men4sem", + "6mensemb", + "men4sen", + "men4ser", + "men4ses", + "mensi4d", + "men2so", + "menst4", + "m4enta", + "men4t3ak", + "m4entei", + "ment5eig", + "men6t5ers", + "2mentn", + "ment4sp", + "me1o", + "2meou", + "2meö", + "2mepa", + "2m1e2pi", + "3m4er.", + "me1ra", + "mera3l", + "mer2a3s4", + "me2r1e2b", + "me4rens", + "mer4err", + "mer4erw", + "4m3er4gän", + "merin4d", + "merin4t", + "4mer4klä", + "mern3s2", + "m4ersh", + "mer5sm", + "mer6stel", + "mer4sto", + "mert4r", + "merz6eng", + "3mes", + "me2sal", + "me4sä", + "4meser", + "mes2po", + "mes1pr", + "2mes4sa", + "mess3an", + "mes6ser6g", + "mes4s1o", + "mes2sp", + "mes2st", + "mes3ta", + "me1sto", + "me3su", + "me3sze", + "me3ta", + "meta1s", + "me3th", + "meto1", + "me2tö", + "me4trig", + "met6t5en6d", + "me3tu", + "meu1", + "2m1ex", + "me2xe", + "1mé", + "2m1f4", + "mfi2le", + "4m1g2", + "mgang4", + "mglim2", + "4m1h2", + "1mi", + "mi1a", + "mia2b", + "mi2am", + "2m1iat", + "mi1ä", + "mibi1", + "mic1e", + "mi1ch", + "mi2ci", + "mi3da", + "mi2di.", + "mi3dr", + "2midy", + "mie3dr", + "mi3ele", + "mi4e3no", + "mien3s", + "mierer4", + "mie1s", + "mie2ti", + "mie4to", + "mie2tr", + "mi1f4", + "3mige", + "mi3h", + "mik1an", + "mi3ke", + "mi4kel", + "mi4kens", + "mi3k4l", + "mi2ku", + "3mil", + "mi3l2a", + "milch1", + "mil4che", + "mild4s", + "mi3l2i", + "mi3l2u", + "4milz", + "m2im2a", + "2m1imm", + "2mimp", + "min2ac", + "mi3nak", + "min5anze", + "m2inde", + "minde4s", + "2m1indu", + "mi2nef", + "miner1", + "mi4n3e4ri", + "min2eu", + "2minfo", + "min2ga", + "ming3s", + "2minh", + "mi3ni", + "mini3k4", + "mi3nod", + "mi2nof", + "2m1inse", + "m1inst", + "mi3nu", + "mioni1", + "mi1p", + "3mir.", + "3miri", + "3mirs", + "3mirw", + "3mirz", + "3mis.", + "mi2sa", + "mi4scha", + "misch3w", + "mi3se1", + "2m1i2so", + "mis2pa", + "mi2spe", + "mis5sar", + "mis4ser", + "mis4st", + "mis3te", + "mi1sto", + "mi1s4tr", + "3misu", + "3mit", + "mi2ta", + "mi2t1h", + "mi2to", + "mi2tr", + "mit3s2", + "mit5sa", + "mit3ta", + "mit3t2e", + "mitte3s", + "mi2t1u", + "4mitz", + "mi3v2", + "2m1j", + "4m1k4", + "m3kn", + "4m1l2", + "ml3c", + "m3le", + "ml3f", + "ml3k", + "m3lo", + "ml3p", + "ml3s", + "4m1m", + "mma3a", + "m2m1ak", + "m2m1al", + "m2m1ans", + "mm1anz", + "m2m1ap", + "mm1art", + "mma1st", + "mm1aus", + "mm1äu", + "mmd2", + "m2m1e2b", + "m2m1ef", + "mm1ein", + "mme2l1a2", + "mme4lin", + "mm2ene", + "mmen6te.", + "mmen6ten", + "m4mentl", + "m4ments", + "m4mentw", + "mme2r3a", + "mme4rec", + "mmer6geb", + "mme2s", + "mme3sc", + "mme4sz", + "m2m1eu", + "mmi3el", + "mm1inb", + "mm1inh", + "m2m1ins", + "mm1int", + "mm2is", + "mmi3sc", + "mmisch4", + "mmi1s4t", + "mmi5tw", + "mm3m2", + "mm3p2", + "mmpf4", + "mm2s", + "mm3sa", + "mm3s2i", + "mm3so", + "mm3s2p", + "mm3sta", + "mm3sti", + "mm3te", + "m2mum", + "mm2un", + "mmu3r", + "mmül2", + "mmüll1", + "2m3n2", + "m4nesi", + "1mo", + "2m1o2be", + "3mobi", + "2mobj", + "3m2od", + "mo3de", + "mode1s", + "mo2dr", + "m1of", + "mo2fe", + "3mog", + "2mog.", + "mo2g1al", + "3m2oh", + "moh2a", + "moi3r", + "mo2k1l", + "mol3d", + "3mom", + "mom2e", + "3m2on", + "mo2nan", + "mo2nä", + "mon4dac", + "mon4del", + "mon2do", + "mond3r", + "mo2ner", + "mon2s3", + "mon3sa", + "mons4e", + "mon3s4u", + "mont2a", + "mon3th", + "mo1ny", + "3m2o2o", + "2mo1pe", + "mo2per", + "2m1opf", + "2mopt", + "mo1ra", + "mor2an", + "mor2d3a", + "mor2dr", + "mo2rei", + "mor3g", + "morgen5s6", + "mor3t2", + "3mos", + "mo4ska", + "mos3s", + "moster4", + "mos2ti", + "mo3t2h", + "mo5to", + "mot4r", + "mous4", + "2m1ox", + "mo1y", + "1mö", + "möbe2", + "mö2c", + "2mö2f", + "4mök", + "2m1öl", + "4m1p", + "mpa3ne", + "mpe2la", + "mpe4lin", + "mpe2n", + "m2p1ene", + "m2pf", + "mpf1ef", + "mp4f3erf", + "mpf3erg", + "mp6fer6ge", + "mpf3erp", + "mp6ferpr", + "mp4f3err", + "mp4f3er4z", + "mp2f3l", + "mpf1or", + "mp2fr", + "mp1haf", + "mp1hos", + "mpin2", + "m3plä", + "mp3lei", + "m4p3lem.", + "m2p3len", + "m2p3les", + "mp4lis", + "m3pon", + "mpor6tag", + "mpor6ter6", + "mp3sh", + "mp3str", + "m3pu", + "2m1q", + "2m3r4", + "4m1s", + "m2sam", + "m2san", + "m4sap", + "ms1as", + "m3sat", + "m2sau", + "msau3e", + "m3sä", + "m4s1än", + "m3sc", + "msch2", + "m4sco", + "m3se", + "m4s1e2d", + "m4s1ef", + "m4seig", + "m4sein", + "m4se2le", + "mse2n", + "m4s1ene", + "m4sent", + "ms1erf", + "ms2erh", + "mse2t", + "m4s1eu", + "m4sex", + "m2s1o2d", + "mso2r", + "ms1ori", + "m2spä", + "m2sped", + "m4spl", + "ms2po", + "m2spot", + "m2spro", + "ms2pu", + "ms3s4", + "mst2", + "m6stag", + "m3stä", + "m3steh", + "m3stei", + "m3stel", + "ms2ti", + "m2stit", + "m3s4to", + "m3s4tr", + "ms5trä", + "m3s2tu", + "ms4tü", + "m2sü", + "m4sw", + "m3sy", + "m4szi", + "4m1t", + "mt1ab", + "mt1ak", + "mta2m", + "mt1ar", + "mt3aug", + "m2t1e2d", + "mt1ein", + "mt1eis", + "mt1elt", + "mt1emi", + "m4tenga", + "m4t3engl", + "m4tentf", + "m4tentg", + "m4t3en4tr", + "m4tents", + "mter2", + "m2t1erb", + "m4t3erei", + "m2t1erf", + "m2t1erg", + "mt1erh", + "m2t3e2r4i", + "m2t1erk", + "m2t1erl", + "mter4n", + "m2t1ers", + "m2t1ert", + "m2teta", + "m2t1eu", + "m2t1ev", + "m2t1h", + "mt3ho", + "m2t1i2d", + "m2tim", + "m2t1in", + "m2t1i2r", + "mti2s", + "mtmen2", + "mt1ob", + "mt1op", + "m2t1öl", + "mt1ös", + "m2t3ro", + "m2trö", + "m4ts", + "mt2sa", + "mt3sco", + "mt2s1e", + "mt3send", + "mt3s2ka", + "mt3s4kel", + "mts3tät", + "mt3stu", + "mtt4", + "mt1um", + "mtu3re", + "m3tü", + "mt3z", + "1mu", + "mu1a", + "mu3cke", + "mu4ckel", + "2m1uh", + "mu3la", + "3muld", + "mul4lau", + "3mult", + "3mumi", + "m1ums", + "mum2s1p", + "3mun", + "mundan4", + "mun6derf", + "mu2ner2", + "4m1unf", + "4m3ungeb", + "mu3ni", + "mu4nin", + "4mu4niv", + "4munw", + "4munz", + "mu4r1u2f", + "3m4us", + "mu4s1a", + "mu2s1o", + "mu2sp", + "mu2s3t2", + "4must.", + "must4e", + "mu2su", + "mut1au", + "mut2st", + "1mü", + "2müb", + "3müh", + "mü2her", + "mühl1a", + "mül4len", + "3mün", + "3müt", + "mütter3", + "2m1v", + "mvoll1", + "2m1w2", + "mwa2", + "mwa4r", + "mweg4s", + "mwel4", + "mwelt3", + "mwu1", + "3my", + "my1al", + "my2s3", + "2m1z2", + "mzug4", + "1na", + "3na.", + "2n1ab", + "3naba", + "na2bä", + "naben3s4", + "n3abh", + "3nabi", + "n3abk", + "na2b3l", + "na2bor", + "na2br", + "nab4rü", + "4n3abs2", + "na2bus", + "3nac", + "n4ac.", + "na2ch1", + "nachen6", + "na5chen.", + "n3achse", + "nach3sp", + "nach8t7ersc", + "nacht8raum", + "n1ada", + "na3dab", + "3nade", + "na3de.", + "nadel1", + "na2der", + "4n1adl", + "4n3adm", + "n1a2dr", + "3nae", + "na3el", + "2n1af", + "na1fra", + "nag2a", + "na3ge.", + "na2gem", + "4n1agg", + "n1a2gi", + "na3gin", + "na3g4r", + "3n2ah", + "na2h1a", + "n4ahm", + "4n3ahn", + "4n3aho", + "3nai", + "nai2e", + "n1aig", + "4n3air", + "nai4re", + "n2ais", + "2n1ak", + "3nakä", + "3nako", + "na2kro", + "4nakt", + "n2al.", + "na2l1a2", + "nal3am", + "na4lar", + "na2lä", + "2n1albk", + "n2ald", + "nal3da", + "nal3ei", + "na4l3ent", + "na6lerei", + "na4ler4g", + "na4lerm", + "na4l3erw", + "nales2", + "nal1et", + "nal1ex", + "nalg2", + "na2lid", + "na2lop", + "nal2ph", + "n2als.", + "nal3t", + "nalt2a", + "nal5tr", + "n2alty", + "na2lu", + "2naly", + "na2mat", + "3name", + "na3me.", + "4na2mei", + "n4a3men", + "namens3", + "4n1a2mer", + "na2mid", + "na2min", + "na3m4n", + "3n2amo", + "n1amp", + "nam4sp", + "2n1amt", + "namt4s", + "na4my", + "n1an", + "4na2n4a", + "na4nat", + "n3a2nä", + "4n3anb", + "n3and2", + "nan1eu", + "4n3anf", + "4n3ang", + "4nanh", + "2nani", + "4n3ank", + "4n3anl", + "3n2ann", + "4n3anna", + "4nano", + "nan2o3b", + "4n3anp", + "2nanr", + "4n3ans", + "2nantr", + "2nanw", + "n2anz.", + "nanzen4", + "nan6zene", + "nan6zeng", + "nanzer4", + "na3ot", + "na2per", + "n1apfe", + "4napfel", + "n3a2pr", + "n1aq", + "n1ar", + "5nar.", + "na2r1a", + "2narc", + "n2ard", + "n2are", + "n4are.", + "3nari", + "n2ark", + "n2arle", + "2narm", + "n2aro", + "na2rom", + "n2arr", + "n2ars", + "2nart", + "n2arta", + "n2arth", + "na3r2u", + "3nas", + "n4as.", + "na3sä", + "na4schw", + "4n1a4sp", + "nas2s1c", + "4n1assi", + "nas4ta", + "na2str", + "4na2sy", + "nasyl2", + "3nat", + "n4at.", + "na4t3au", + "nat1ei", + "na2tem", + "na2t2h", + "4natm", + "nat2o", + "4natom", + "5nator", + "nat1r", + "nat4sa", + "nats1e", + "na3tu", + "n1au", + "nauf4fr", + "nau2fr", + "5naui", + "3n2aul", + "4nausb", + "4nausd", + "4nausf", + "4nausg", + "4nausl", + "n2auso", + "4nausr", + "4n3auss", + "4nausw", + "4nausz", + "3nav", + "nave4", + "navi5er.", + "navi5ers", + "1nä", + "2näb", + "3n4äc", + "3näe", + "2n1äf", + "3näg", + "nä2hi", + "3nähm", + "2n1ähn", + "nä2hu", + "2n1ä2m", + "2n1än", + "4näpfel", + "2näq", + "när4s5t", + "nä2sc", + "n2äss", + "2näu", + "3nä1um", + "2n3b4", + "nbais4", + "nbe2in", + "nber2e", + "nbes4", + "nby4", + "2n1c", + "n2c3ab", + "n3can", + "n3ce4n", + "n3ces.", + "n3chl", + "nch3m", + "n2ck", + "ncor2", + "n3cr", + "n3cu", + "4n1d", + "nda1f", + "nd2ag", + "n3dai", + "n2d1ak", + "n2dana", + "n2dani", + "n2danz", + "nd1arr", + "n3dat", + "nd3att", + "nd1au", + "n2daut", + "n2dax", + "nd1äng", + "nd1c", + "nde4al.", + "n2d1ede", + "n3dee", + "n2dei", + "nd3elfe", + "ndel3l", + "ndel4s3a", + "ndel6s5en", + "ndel7ster", + "nde4mot", + "nden3sk", + "n4dentl", + "n4dents", + "nde3o2", + "n5der.", + "n5deren", + "nd2erh", + "n5deri", + "nder6läs", + "nde4rob", + "n4de4ros", + "n6der6sat", + "nder5ste", + "n3d2es1", + "nde2se", + "ndes3s", + "ndi2a3", + "nd1imm", + "ndo1c", + "n2dof", + "ndo2n3a", + "n2dopt", + "nd1or", + "n2do2ri", + "nd2os", + "ndo1st", + "n2d3ott", + "n2dö", + "nd2ös", + "nd4ram", + "n2d3rat", + "nd3rau", + "n2d3re", + "n2drif", + "n2d3roc", + "n2drod", + "n2d3rö", + "n2drui", + "n2d3run", + "nd4sene", + "nd2spr", + "nd3th", + "ndt4r", + "n2duns", + "ndwa5re", + "ndy3", + "1ne", + "3ne.", + "ne2ap", + "3neas", + "ne3at", + "ne3au", + "4n3ebene", + "ne2bl", + "2n1ebn", + "neb4r", + "2nec", + "3neca", + "3nece", + "ne2ch", + "ne1ck", + "neck2a", + "ne2dit", + "2nee", + "neei2", + "ne3ein", + "ne3eis", + "neen2", + "nee1r", + "neer2e", + "n1ef", + "n2ef.", + "n2e3f2a", + "2nefr", + "2n1egg", + "neg4l", + "n1e2go", + "neg4r", + "n1ehe", + "2ne2he.", + "2nehem", + "2nehen2", + "nehe2r", + "3nehm", + "4n3ehr", + "2n1ei", + "3neia", + "4neic", + "nei4dei", + "nei4dr", + "4neier", + "3neigt", + "3neigu", + "nei4la", + "4neing", + "4neinh", + "4neink", + "4neinl", + "4neinz", + "4neip", + "neiss4", + "ne2ke", + "2n1eks", + "nek3t2", + "2nekz", + "ne2la", + "nel3b", + "n1e2le", + "4nelek", + "4nelem", + "ne3len", + "ne3lex", + "nel2i", + "ne3lid", + "ne2lit", + "3nelk", + "n2ell", + "nel2l1a", + "nel4lei", + "neller6f", + "3ne3l2o", + "3nelu", + "3n2em.", + "4n1emb", + "4n3emp", + "2n1ems", + "4nemu", + "3nen", + "n4en.", + "n2en3a", + "nen4am", + "ne4nan", + "ne2nä", + "n2enb", + "n2enc", + "nen4dar", + "4n1endb", + "4n1endd", + "4n1endf", + "n1endg", + "4n1endh", + "4n1endk", + "n1endl", + "4n1endp", + "4n1endt", + "4n1endw", + "nene2b", + "nen3ei", + "nene4m", + "nenen1", + "ne4nene", + "nen3erb", + "ne2n3eu", + "n2enf", + "4n1engb", + "nen4gen", + "4n1engs", + "4n1engt", + "n1engu", + "n2enh", + "ne4n3i", + "n2enj", + "n2enk2", + "n2enm", + "nen4nar", + "ne2no4", + "nen3s4e", + "nen3sk", + "nen3s2p", + "5n2en3t2a", + "4n1entb", + "4nentd", + "4nentf", + "5n2enti", + "4n1entl", + "4nentn", + "5nentr", + "4n1ents", + "4n3entw", + "4nentz", + "ne4n3u", + "n2env", + "n2enw", + "nenz4er", + "ne2o3b", + "ne2oh", + "ne2or", + "neos4", + "ne2pen", + "2nepf", + "2ne2pi", + "2nepo", + "ne2pos", + "nept4", + "n4er.", + "ne1ra", + "ne2rab", + "ne2rac", + "ne2r3af", + "ne2rag", + "ne3r4al", + "ne2ram", + "ne2ran", + "ne2r3ap", + "n2erat", + "ne6ratio", + "ne3rato", + "ne2rau", + "n2erb2a", + "4n3erbe.", + "4n3erben", + "2nerdb", + "ner4dig", + "nere2", + "ne2r1eb", + "ne2rec", + "n1erf", + "4nerfas", + "3nerfr", + "2nerfü", + "2ner3g4", + "3nergr", + "n1erh", + "4n3erhö", + "3neri", + "n2erj", + "n1erk", + "5nerka", + "n2erkö", + "n2erli", + "2n1erlö", + "n1ermi", + "2n1ernä", + "4n3erneu", + "2n1ernt", + "n1eros", + "n1eröf", + "ne1rös", + "n2ers.", + "2n1ersa", + "3nerse", + "ner4sk", + "4n3ersts", + "nert4", + "3nert.", + "ne2rup", + "3n2erv", + "4nerwar", + "2n1erz", + "n2es.", + "ne2sal", + "nes2an", + "n4ese", + "ne2sei", + "ne2s1ev", + "2ne3sh", + "ne3si", + "ne3ska", + "ne2s1of", + "ne2s1or", + "ne2s1pa", + "4n1es2si", + "nes4sig", + "ne1sta", + "ne2ste", + "nes3ti", + "2n1est3r", + "4nesyn", + "3neß", + "ne2tab", + "2ne4tag", + "net1ak", + "ne2t1an", + "2ne2tap", + "2ne2tat", + "ne4te2l", + "ne2th", + "net3ha", + "ne3ti", + "ne4tin", + "ne4tob", + "n2ett", + "net3ta", + "net3te", + "net3tr", + "2n1e2tu", + "net4zer", + "net2z1i", + "ne2u", + "neu1c", + "neu4ere", + "neuer4f", + "neuer4k", + "neuer4r", + "neuer4s", + "neuer4w", + "neu3g4", + "2n1eup", + "neur2", + "neu2ra", + "neu3t", + "3n2evi", + "n2ew", + "ne3wa", + "2n1ex", + "ne2xi", + "5ney", + "3nez", + "3né", + "2n1f", + "n3f2al", + "nfalt4", + "n3f2ang", + "nf4ar", + "n3f2ä", + "nfe2i", + "n3f2en", + "n3f2er", + "nf2es", + "n4fex", + "nff4", + "n3fi", + "nfi4le.", + "nf4le", + "nf2o", + "nfo1s", + "nf4r", + "nf3s2", + "nf2tan", + "nf2t3r", + "nft4st", + "nfts3tr", + "nf3tu", + "n2f1u", + "4n1g", + "n3gabe", + "ng1abt", + "n2g1a2c", + "n2g1ad", + "n2g1ak", + "ng1a2me", + "ng3anda", + "n2ganh", + "n4ganl", + "ng1ans", + "ng1ant", + "ng1are", + "n3g2ars", + "n2g1a2v", + "n2g1äl", + "ng3d", + "n2g1eif", + "n2g1ein", + "ngelb4", + "nge3l4ei", + "ngelt2", + "n3g4en", + "n5gene", + "nge5nerw", + "ngen3sa", + "nge4ram", + "n2g1erg", + "nger4zä", + "n3g4es", + "nge3sa", + "nge5t", + "ngg3s", + "ng3hu", + "n2g1id", + "ng2lad", + "ng2läs", + "n2glic", + "ng4lok", + "n3glot", + "n2gn", + "ng3ne", + "n4g3ni", + "ng4nom", + "ng2nu", + "ng2ob", + "n2g1op", + "n2g1or", + "ngo2ri", + "n2gö", + "n2g3rai", + "ng4ran", + "n2g3rat", + "ng3roc", + "ng3rost", + "ng4s3au", + "ng4scr", + "ng4s3e4h", + "ng4sek", + "ng4sens", + "ng4spar", + "ngs5tan", + "ngs4teu", + "n4gt", + "ng3ts", + "n2gum", + "ngung4", + "ngzei4t", + "4n3h2", + "nhe2r", + "1ni", + "3n2ia", + "ni3alo", + "ni2ar", + "nibb4", + "nic4", + "ni1ce", + "n1id", + "3n2id.", + "ni3da", + "ni2de", + "2nidea", + "ni3d4r", + "2n3idy", + "n2ie", + "nie3b", + "ni1el", + "nie3l2a", + "nie4n3", + "ni3ene", + "ni3eni", + "nie4rei", + "ni4erna", + "nie2sa", + "ni2eu", + "nife4s3", + "ni1fl", + "niga2", + "ni2g1ab", + "ni2g1am", + "ni2g1an", + "4n3i2gel", + "n4igen", + "2niget", + "ni4gl", + "nig3li", + "ni2gn", + "nig4sp", + "nihi3", + "ni2kar", + "3nike", + "ni2kel", + "ni3kerh", + "ni2ki", + "nik3ing", + "ni2kor", + "ni2k3r", + "nik3t4", + "3n2il", + "ni3l2a", + "ni3l2i", + "4nimp", + "nin1", + "3nin.", + "3n2ina", + "nin2ac", + "ni2nal", + "3n2inb", + "2n1ind", + "2ninf", + "3n2ing", + "ning4s", + "2n1inh", + "4n1ink2", + "3nino", + "ni2nor", + "3n2inp", + "2n1ins", + "4ninse", + "4ninsu", + "4n1int", + "ni3nu", + "4n1inv", + "3n2inw", + "ni2ob", + "ni3ok", + "ni3ora", + "n2ip", + "ni4ron", + "n1irr", + "3n2is", + "ni4sam", + "ni2san", + "ni2sä", + "nis3cha", + "ni4schw", + "ni2s1e", + "4n3isol", + "ni2som", + "4nisot", + "ni2sp", + "ni3spi", + "nis3s4", + "nis3tha", + "ni2s1u", + "2nit", + "3nita", + "ni2ti", + "4ni4tia", + "nit2o", + "3nitr", + "nit3s", + "nit6ter6g", + "nit6t5er6k", + "nit4tra", + "nitt4sa", + "3niu", + "ni3v2", + "3nix", + "2n1j", + "4n1k", + "nk1abr", + "n2k1ac", + "nka2ge", + "n3kal", + "n4kalg", + "nk1ang", + "nk1apf", + "nk3art.", + "nka3sc", + "n2katm", + "n2kato", + "nk1aus", + "n2kaut", + "n2k1äh", + "n2k1äp", + "nke2c", + "nk1ei", + "nk2eil", + "nke4lei", + "n4kelem", + "nke4na", + "nken4te", + "n4k3erle", + "nke4ros", + "nk3ersa", + "n3kesc", + "nke2t", + "nk1eti", + "n2ketu", + "nk1i2d", + "n2kide", + "nk1inh", + "n2k1ins", + "n4klade", + "n3klag", + "nk3leis", + "n2k3len", + "nk3les", + "n3klin", + "nk2lo", + "nk4neb", + "n2knis", + "n2knit", + "n2knu", + "n2k1o4be", + "n2kopt", + "nko2r", + "nkord2", + "nk1ori", + "n2k1ort", + "n2köl", + "nk4rab", + "nk3rät", + "n4kre.", + "n2k3rel", + "n2kren", + "nk3rep", + "n2krez", + "nk3ro", + "n2krol", + "nk2sal", + "nk2se", + "nk3sen", + "nk2so", + "nks2ti", + "nk3s2z", + "nk2tak", + "nk2tan", + "nk4tau", + "nk4tent", + "nk4terg", + "nk4t3ern", + "nkte3sk", + "nkt2et", + "nk2tin", + "nkt1it", + "nk2top", + "nkt1r", + "nkt3ric", + "nk2tro", + "nk2tru", + "nkt4sen", + "n2k1um", + "nku2n", + "nk1urh", + "n2küb", + "2n3l2", + "nla3ge", + "nle2ga", + "2n1m2", + "n3ma", + "n3mä", + "nmen2s", + "n5mi", + "4n1n", + "n2nada", + "nna2g", + "n2nalg", + "n2n1all", + "nna3m", + "n2nan", + "nna3st", + "n2nau", + "n3nec", + "nn2ei.", + "n3nelb", + "nne4le", + "nne4na", + "nn2ens", + "nner4ei", + "n6n5ereig", + "nner4fü", + "nner6geb", + "nn4ergr", + "nn2erh", + "nn2erk", + "nner4la", + "nn2ero", + "nne2rö", + "nn3erwa", + "nner6war", + "nner2z", + "nne4s1e", + "nn2eu", + "nn2ex", + "nn3f", + "nng4", + "n3ni", + "nnk2", + "nn2o3b", + "nn3obl", + "nn3obs", + "n2nof", + "n2nop", + "nno2r", + "nn1ori", + "nn4sam", + "nn3ser", + "nn3s2p", + "nnst4", + "nn4stoc", + "nn2stö", + "nn5t2a", + "nn2th", + "n2n1uf", + "n2n1unf", + "nn1ur", + "nnvoll4", + "nnvol5le", + "1no", + "3no.", + "no5at", + "3n2oba", + "n2obel", + "2nobj", + "no2bla", + "n2oble", + "3noblo", + "3noblö", + "2n1ob2s", + "nobu2", + "nobut3", + "3noby", + "no1c", + "noche4", + "noch4r", + "2nod", + "no2de", + "no2ed", + "n1of", + "no2fe", + "2noff", + "2n1oh", + "3n2ohe", + "no2kel", + "2n3okk", + "no3kr", + "n3ole", + "no2leu", + "no4lig", + "no2liv", + "2n3o2ly", + "3no3me3", + "no3mi", + "3nomp", + "non2e", + "n1onk", + "nons4", + "n1ont", + "2nony", + "no2o", + "3n2opa", + "3nopä", + "no2per", + "2n1o2pi", + "2n1ops", + "no3p2te", + "3nor.", + "nor2a", + "no2rad", + "n2o3rak", + "no3ral", + "no3rar", + "2norc", + "nor4da", + "3nordb", + "nor4des", + "nor2d3r", + "no3r2e", + "2n1org", + "3norh", + "3n2orl", + "3norm", + "norm2a", + "nor3mal", + "3norö", + "3nors", + "2n1ort", + "3n2os.", + "nos2e1", + "no3sh", + "no5s2k", + "no2s3p", + "2no2sti", + "nost1r", + "2nostv", + "nos2u", + "no2tan", + "no3tart", + "no2tä", + "no4t1e2i", + "no6t5entr", + "no4ter2", + "noterb3", + "no4tex", + "not1h", + "no2tho", + "no2t3in", + "no2t3op", + "no2t3r", + "3nov", + "2n1o2x", + "3noz", + "2nöd", + "4nö2f", + "4n1ök", + "4n1öl", + "n2ör", + "1n2öt", + "4n3p4", + "npa2ge", + "npa2s", + "npf4", + "npro1", + "npsy3", + "2n1q", + "6n3r2", + "nran2", + "nrau4ma", + "nräu3s", + "nrebe2", + "nreli1", + "nre3s4z", + "nro2h", + "nrö2s", + "nrücker6", + "4n1s", + "n3sabo", + "n2s1a2d", + "n2s1a2gi", + "nsa2kr", + "n2sall", + "ns4alp", + "n2salt", + "ns4anat", + "ns3ane", + "n2sanm", + "nsa2r", + "ns2arg", + "n3sark", + "nsa2s", + "ns4ath", + "nsau4r", + "nsau2s", + "n2saut", + "ns2av", + "ns2ax", + "n2s1än", + "ns2äug", + "n2s1äus", + "n3sche.", + "n4schef", + "nsch5eul", + "n4schl.", + "nsch2o", + "nscht4", + "n3schu", + "nsch7werd", + "ns2cr", + "ns1eb", + "nse4ein", + "ns2eh", + "nse2ha2", + "nseh5ere", + "n4seinf", + "ns2ele", + "ns3elem", + "n2sem.", + "n2sene", + "nsen4sp", + "n2sepo", + "n2s1erf", + "n2s1erg", + "n2serh", + "n2s1erk", + "ns4erko", + "ns1erl", + "n4serle", + "n4s3erne", + "n2serö", + "ns1ers", + "n4sersc", + "ns3ertr", + "n2s1erw", + "n2serz", + "n2sety", + "n2s1eu", + "ns2ext", + "nsfi2l", + "ns3iden", + "n3sim", + "n4simp", + "ns2inf", + "n2sini", + "nsinn2", + "nsinns3", + "n3sis", + "n4siso", + "nsi4te", + "nsi2tr", + "n3s2kal", + "n3s2kel", + "ns2kis", + "n3skle", + "n3s2ky", + "n5smara", + "n2s1o2d", + "ns1of", + "n4soff", + "ns4om", + "n4s3ont", + "n2s1op", + "n4s3ort.", + "ns2pac", + "nspa2g", + "ns4pek", + "ns2pel", + "n5s4pen", + "n4speri", + "n2sph", + "n3s2pi", + "ns4pie", + "ns4pir", + "n2spo", + "n2sprä", + "n4s3prie", + "n2spro", + "n2sput", + "nsrü2", + "ns3s4", + "ns3tabl", + "n3stad", + "ns8tagent", + "nst1ak", + "n4stale", + "ns4ta2n1", + "n3stand", + "nst3ane", + "n3s4tar", + "n2stas", + "n4stat.", + "n6staten", + "ns4tati", + "n4stats", + "n3stäm", + "n3s4tän", + "nst5eife", + "nst7einhe", + "ns4tent", + "ns2tep", + "nst5erge", + "n5s6terne", + "n5s6terns", + "ns4teu", + "ns2ti", + "n3s4tic", + "n3stif", + "n4stilg", + "n3stim", + "n2stob", + "nst5opfe", + "ns4tor", + "n4strie", + "n4strik", + "ns4trip", + "ns4trun", + "ns2tu", + "nst3u4t", + "ns4tüm", + "n3suf", + "ns2um", + "ns1un", + "ns2ung", + "ns4unk", + "ns2unw", + "ns4unz", + "ns1urs", + "n2s1ut", + "n3sy", + "ns4zene", + "2n1t", + "n3t2a3c", + "ntak4ta", + "ntal1a", + "nta4lin", + "n4t1all", + "nta2lo", + "nt2alp", + "n3ta3m", + "n3t2anb", + "nta3ne", + "n4tansp", + "nt1ant", + "n4tanza", + "n3t2arb", + "nt1ark", + "n3t2arm", + "nt1art", + "ntar6tik", + "nt3artu", + "n2t1ass", + "n2tath", + "n3tatl", + "nt1äm", + "n2t1äu", + "nte3au", + "nte1e", + "nte3g6", + "nt1eh", + "n3tehe", + "n2teig", + "nt1ein", + "n2t1eis", + "nte4lin", + "n2t1emo", + "nt4en", + "nte4na", + "nten6te.", + "ntera2", + "nte6r5eis", + "nt4erh", + "nt4erk", + "nt4erm", + "nt4ern", + "ntern4e", + "nt4ers", + "nt4ert", + "nte3sa", + "n4t1es4s", + "nte2st", + "n6testri", + "n2te4ta", + "nteu3", + "nteu6eri", + "nte3v", + "nt1hel", + "nt1hie", + "n2thot", + "n3thr", + "nt4hu", + "n2t5hum", + "nt4hy", + "n3t2i", + "nti3c", + "ntim3p", + "n4t3ind", + "n4t3inf", + "n4t3inh", + "ntini1", + "n5t2lem", + "ntmen2", + "ntmo4", + "ntni2", + "ntnis1", + "nto3re", + "n4torg", + "n4t3o4rie", + "n2t1öl", + "nt4ral", + "nt1rau", + "nt4raum", + "nt3rea", + "nt3rec", + "n5t4ree", + "nt3reif", + "n5trep", + "nt4repr", + "nt3rich", + "n4t3rieg", + "n2troh", + "n3trop", + "n4tropi", + "n2t3rü", + "n4ts", + "nts2ah", + "nt3s2p", + "nts3par", + "nt5spe", + "nts2t", + "nt2sur", + "ntt2", + "n3tub", + "ntu4re.", + "ntu1s", + "n3tü", + "nt3z", + "1nu", + "3nu1a", + "nu4ale", + "nu3a2r3", + "nubi1", + "2nu1c", + "3nud", + "nude2", + "3nue", + "nu2es", + "nu2fe", + "3nug", + "2n1uh", + "3nuhi", + "3nui", + "n2uk4", + "nu3kl", + "n3u2kr", + "null1a", + "nulle2", + "null3eb", + "n2um.", + "2n3umb", + "n2ume", + "2numf", + "4numg", + "2numl", + "3n2umm", + "4numr", + "2n1ums", + "2n1umv", + "2n3umz", + "nu4n", + "4nuna", + "2n1une", + "3n2ung4", + "4n3ungl", + "4n1uni", + "n3unk", + "2nunr", + "nun3s", + "4nunt", + "4nunv", + "3nunz", + "3nuo", + "2nup", + "2nu2r", + "nur2i", + "nur3s", + "nur2z", + "3nu2s", + "nu3sc", + "nu3se", + "nus1p", + "nu3spo", + "nuss3er4", + "nus6serl", + "3nut", + "nu2t1a", + "n3uto", + "nu4top", + "nu4t3r", + "3nuu", + "3nux", + "3nuz", + "3nü.", + "2nü4b", + "nür1c", + "3nüs", + "1nüt", + "2n1v2", + "n3ver", + "n3vl", + "nvoran4", + "2n3w", + "1ny.", + "2n1ya", + "n2ya.", + "1nyh", + "n1yo", + "1nyr", + "1nys", + "1nyw", + "4n1z", + "n2zac", + "n2z1a2g", + "n2z3a2k", + "n2zan", + "nz3a4ne", + "n3zani", + "n2zar", + "nza2s", + "n2zat", + "n2z1au", + "n2zän", + "n2zär", + "nze4la", + "nzel6lig", + "n6zenerg", + "n3zeni", + "n4zense", + "n4zentl", + "n4zents", + "nz3erem", + "n2z1erh", + "nz1erl", + "nzer4lö", + "n5z4err", + "nz5erste", + "nzer6tra", + "n3z4es", + "nze3sk", + "nze2t", + "nz1eta", + "nze3u4t", + "n2z1id", + "nzi2ga", + "n2zinh", + "n2z1ini", + "nz1int", + "nz1inv", + "nz3le", + "n2z1op", + "n2zöl", + "nz3st", + "nzt4r", + "n2z1wa", + "n2z1wä", + "n2zwet", + "n2zwir", + "n2zwö", + "n2z1wu", + "ño1", + "ñor2", + "2o3a2", + "o4a3bi", + "o4ac", + "oa3che", + "oa3chi", + "o4ad", + "oa3de", + "oad4st", + "oa3in", + "o4a3ke", + "oa4k5l", + "o4a3la", + "o4a3mi", + "oa4n", + "oan4a", + "o4a3q", + "o2a4r", + "o2as", + "3oa3se", + "o5ass", + "o4at", + "oa4tr", + "o5au", + "2o1ä", + "o1b", + "2ob.", + "o3b2al", + "ob2am", + "ob2ar", + "ob1auf", + "2o3b2ä", + "2obb", + "ob2e", + "2obe.", + "2obea", + "2o3bec", + "2obef", + "o2b3ein", + "2oben", + "obe4na", + "oben3d4", + "1o2ber", + "2o3ber.", + "ober5eis", + "ober3in", + "oberin6g", + "obe4ris", + "2obev", + "2obez", + "2o3b2i", + "3obj", + "ob1la", + "ob3lei", + "1ob3li", + "2oblo2", + "2ob2lö", + "ob2lu", + "2obo", + "ob1or", + "2obö", + "ob3rei", + "2obrü", + "o4bs", + "ob3s2h", + "ob3sk", + "obs2p", + "ob3sz", + "2o3bu", + "o4bunt", + "obu2s", + "2o3bü", + "o4büb", + "2oby", + "oby4t", + "2oc", + "o3ca", + "oc1c", + "3occl", + "o1ce", + "och1a", + "ocha2b", + "ocha2r", + "o1che", + "oche4b", + "o2ch1e4c", + "och1eh", + "och1ei", + "oche2l", + "ocher4k", + "ochi4d", + "och3l", + "och3m", + "och1o", + "ochö2f", + "och3r", + "och1s", + "ocht4", + "o1chu", + "ochu2f", + "och3u4t", + "och1w", + "o1ci", + "o1c4k", + "o2ckar", + "o2ckau", + "o3cke", + "o6ck5er6sc", + "o3cki", + "ock3sz", + "ock3ta", + "o1cl", + "o3cu", + "o1ç", + "o1d", + "2od2a", + "od3ak", + "od2dr", + "o3dec", + "o3d2e3i", + "odein3", + "ode4l3ag", + "ode4man", + "ode2n1", + "o3der", + "ode2s1e", + "ode3sp", + "od2et", + "o3dex", + "od2i", + "2o3dia", + "2odi3c", + "2odif", + "2o3dir", + "2odn", + "od2o", + "o2don", + "o2d3op", + "odo4s", + "od2ö", + "2odr", + "o2dre", + "odt4", + "2o3du", + "o3dy", + "ody2m", + "2o1e2", + "oe3di", + "oe4m", + "oen1e", + "oe3ri", + "o2e3s", + "oe4sc", + "o2e3t2", + "o3et.", + "o3ets", + "2ofa", + "ofa2c", + "of1a2d", + "of1a2g", + "of2an", + "of1au", + "2ofä", + "o2f1e2b", + "o2f1ec", + "2ofee", + "o2f1ei", + "2ofem", + "o2fent", + "2o3fer", + "o4ferb", + "2o3f2es", + "o2f1e2t", + "2ofeu", + "of3eun", + "of2f1a", + "off3erz", + "of2f1in", + "1offiz", + "of2f3l", + "of2f1o", + "of2f3r", + "offs2", + "off3sh", + "off3si", + "off3sp", + "of2fu", + "2ofi", + "ofi3e2i", + "ofi3k4l", + "ofi3s4", + "2o1fl", + "of3le", + "of3li", + "of4lö", + "2ofo", + "2ofö", + "2o1fr", + "of3rä", + "of4rü", + "of2s1", + "of4sam", + "of3sä", + "ofs2ch", + "of4sen", + "of3sta", + "of4staf", + "of3str", + "2oft", + "oft2a", + "of2tei", + "of3th", + "oft4r", + "2ofu", + "of3ur", + "2o1g", + "o2g1ab", + "o2g1ac", + "oga3d", + "og1ang", + "og1ans", + "o2g1e2i", + "oge2li", + "ogener4", + "ogerätein8", + "o2g1eth", + "og2gl", + "o3gh", + "ogi2er", + "ogin1", + "o2g1ini", + "og3ins", + "og1l", + "og3le", + "og2lo", + "o3g4n", + "og1o2ri", + "ogs2", + "og3sp", + "og1ste", + "og3sti", + "2o1ha", + "oh1alk", + "o1hä", + "o1he", + "o3he.", + "oh1eis", + "o3hem", + "o3hen.", + "ohen3s", + "o3her.", + "o3here", + "oh1er4t", + "oh1er2z", + "o3hes", + "2o1hi", + "2ohl", + "ohl1a", + "oh2la2d", + "oh2lä", + "oh3lec", + "ohl1ei", + "oh3lep", + "ohler2", + "oh4lerg", + "oh4l3erh", + "oh4lerw", + "oh3lo", + "ohl1o2r", + "ohls2e", + "oh2lu", + "1ohmi", + "ohn1a", + "oh4nac", + "oh3nee", + "oh2ni", + "1ohnm", + "oh2n1o", + "ohn3sk", + "2o1ho", + "oho2l1e", + "ohol1o", + "oh1o2p", + "2ohö", + "oh3öl", + "ohr3a", + "oh2rel", + "oh2rem", + "ohren3s", + "ohrer2", + "oh4rerg", + "oh3ri", + "oh4rin", + "oh2rol", + "ohr5t4r", + "oh1s", + "oh3sa", + "oh3t", + "o1hu", + "oh1w", + "2o1hy", + "2oi", + "o1id.", + "o3i2da", + "o1ids", + "o3ie", + "o1i2m", + "o1in", + "o4ine", + "oi2r", + "o3isch.", + "o4ische", + "o1ism", + "oiss2", + "oi1th", + "o1i4tu", + "2o1j", + "ojek8tori", + "2o1k", + "ok2a", + "oka3b2", + "o2k3ac", + "oka3i", + "oka2la", + "okale2", + "oka6lere", + "okas4t", + "ok2e", + "oki4o", + "ok2la", + "ok3lau", + "ok1lä", + "ok2li", + "ok2o", + "oko4pt", + "ok2so", + "ok2s1p", + "ok5t2", + "3okw", + "2ol", + "o1la", + "ol3abu", + "olaf4", + "o2l1a2m", + "ol1ant", + "ol2ar", + "olar3s2", + "o3l2as", + "olast4", + "ol1a2v", + "4o1lä", + "ol1ät", + "ol2chr", + "ol4d1am", + "ol2dä", + "ol2d1ed", + "ol4d3eng", + "old5ersa", + "olde2s", + "ol2deu", + "ol2dim", + "ol2d3o", + "ol2dr", + "4o3le.", + "o2l1ef", + "ol1eie", + "o2l1eis", + "ol1emb", + "oler2", + "ol1erk", + "ol1er3t", + "ole3s", + "ol1ess", + "ole2st", + "ole4sti", + "ole3u2", + "ol1exz", + "ol2fa", + "ol2fem", + "olf3ere", + "ol2f3l", + "olf1r", + "ol2f3ra", + "olft4", + "olgege3", + "olge4ne", + "ol2gl", + "ol2gr", + "ol2i", + "olie4n1", + "oli2er", + "oli3k4", + "oli5tu", + "3oliv", + "ol3ke", + "ol2kl", + "ol2k3re", + "ol2kro", + "olks3", + "olk4sc", + "olk4si", + "ol2l1ac", + "ol2l1ad", + "ol2l1ak", + "oll3am", + "ol4lang", + "ol2l1au", + "ol2l1e2b", + "ol4l1e2c", + "ol2l1ei", + "ol2lel", + "ol4l3erh", + "ol4ler4k", + "oll3erl", + "ol4l3erw", + "ol4l3ess", + "ol2lop", + "oll3s2a", + "oll3sp", + "4olo", + "ol2of", + "olo1p", + "ol1ort", + "ol2ov", + "ol3s2k", + "ol4ster", + "ol3t2h", + "o1lu", + "olu2th", + "ol2y", + "4o3lys", + "ol2z1a2", + "ol3zan", + "ol4z3ern", + "ol2zim", + "ol2zo", + "ol2zw", + "ol2zy", + "2om", + "o2mab", + "oma2bl", + "o2m1a2ge", + "om1alg", + "om1all", + "oma4n3er", + "o2m1ang", + "om2anr", + "om3ansc", + "o4mante", + "o2m1ap", + "o2m1ar4s", + "o2m1art", + "omar4te", + "o4ma2sy", + "omat2i", + "o4matom", + "o2m1au", + "o2meb", + "om1ebe", + "o2m1ef", + "o2m1ei", + "o2mel", + "o3meld", + "omen5t6an", + "o4mep", + "omer2", + "om1erh", + "o2meru", + "om1erz", + "omi2c3", + "omiet1", + "o3mig", + "om1ind", + "om1ing", + "om1ins", + "o2m1int", + "om3ma", + "omm2e", + "3o4mn", + "4omo", + "o2m3oa", + "o2m1org", + "om1o2ri", + "om3pf", + "oms2", + "om3sk", + "om3t2", + "o2mum", + "o4munt", + "2ona", + "on3a2b", + "on2ac", + "ona3g", + "o3nal", + "on3ann", + "onan6z5ei", + "o2n1ap", + "o2n3arb", + "ona3th", + "4onatol", + "onat2s", + "o4n3at4t", + "on2au", + "2onä", + "on1äh", + "2onc", + "on2dan", + "onde8rers", + "onderer7t", + "ond1r", + "on2dra", + "on4drin", + "ond3sk", + "2one", + "on1ec", + "one2ck", + "o3nee", + "o2nef", + "o3neig", + "on3ein", + "on1ema", + "one2n1", + "o4n3ends", + "on2eng", + "onen3s2", + "on1ep", + "o3ner.", + "on1erb", + "o2n1erd", + "oner4fa", + "o2nerh", + "on4erka", + "on1ers", + "o3nes", + "o3nett", + "on2eu", + "on3f2", + "on3gl", + "ong4le", + "ong4r", + "ong3s2", + "on2gue", + "4o3ni", + "on2i3d", + "onie3g", + "oni2ga", + "on4ik", + "o4nikr", + "o4nim", + "o4nind", + "o4ninh", + "o4nins", + "on3k4", + "3onke", + "onli4", + "onlo2c", + "onna2", + "on3n2an", + "on3n2e", + "2ono1", + "o3nod", + "o2nof", + "ono2i", + "o2n3oke", + "o3nom", + "on1orc", + "on3ord", + "ono3s", + "ono3t2", + "onrad3", + "ons1a", + "on4sam", + "on2seb", + "onsen1", + "onse4t", + "onsi2d", + "ons3ing", + "ons3l", + "ons1p", + "on4spin", + "onst2a", + "onst4r", + "ons5tri", + "on3ta", + "on2t1eb", + "on2te2l", + "ont5end", + "on4t3erl", + "on2th", + "on4t3rat", + "2onuk", + "o3nur", + "2onut", + "on3v", + "1ony", + "o3ny.", + "on3z2", + "onze3in", + "o1ñ", + "oo1c", + "ooch2", + "oo2gl", + "oo2k3l", + "oo2kn", + "oo2mo", + "oo2ne", + "o1op", + "oop2s", + "o1or", + "oor3d", + "oo4sk", + "oos3s4", + "oo2su", + "oo2t1a", + "oo4t1ei", + "oo2t1h", + "oo2tr", + "oot2st", + "oot3t", + "oo2tur", + "2o1ö2", + "2op.", + "o1pa", + "op3adr", + "op1akt", + "opa2le", + "op1ang", + "opa5s", + "opa3s4t", + "2opä", + "1ope", + "o1pec", + "2o1ped", + "op1ef", + "2o1pei", + "o1pek", + "2opel", + "2open", + "2opep", + "o2pera", + "op1erh", + "o1pes", + "2opf.", + "op2f3a", + "op3fah", + "op2fä", + "o2pfe", + "op2fem", + "op2fin", + "opf3la", + "op1flü", + "op2fo", + "4oph2", + "o3phe", + "o1pi", + "opi5a4", + "opi3er.", + "opi5ers.", + "opie4r3u", + "opin2", + "2opl", + "op3lag", + "o2p5le", + "o3p2n", + "2opo", + "opo2la", + "op2pan", + "op4pl", + "1oppo", + "op2p3r", + "2oppt", + "2o1pr", + "3o4psi", + "op3sz", + "1opt4", + "2opte", + "op3th", + "o2pum", + "2opy", + "2o1q", + "2or.", + "or1a", + "2ora.", + "o1raa", + "2or3a2b", + "o2rabb", + "o2r3add", + "or3adr", + "o1r2ag", + "o2rak", + "1orake", + "o1ral", + "o4r3alm", + "or4alt", + "or2am", + "or3a2mi", + "o1ran3d", + "or4ane", + "oran2f", + "oran2m", + "oran4ze", + "or3ap", + "2orar", + "o1r2as", + "o2ratt", + "2orau4", + "oraus6wa", + "or2av", + "2o1raw", + "o1ray", + "o3rä", + "or1änd", + "or1ät", + "orb2l", + "or1c", + "2orca", + "or2ce", + "2ord.", + "4orda", + "ord1am", + "or2dar", + "or2dau", + "2ordb", + "ord3eng", + "orde4s", + "or2deu", + "or4d3ing", + "or2d1ir", + "or2dit", + "1ordn", + "or2do2", + "2ordr", + "ord3s2t", + "ord3t", + "2ordu", + "2ordw", + "2ore", + "ore2a", + "o2r1e2b", + "o2r1e2ck", + "ore2di", + "o5ree", + "o3ref", + "or1eff", + "ore2h", + "or1ei", + "o3rei.", + "o3reie", + "o3r2eif", + "o3r2eis", + "oreli1", + "orems2", + "o3renn", + "o3rep", + "o2r1er", + "o3r2ere", + "o3r2ero", + "ore4th", + "o2r1eu", + "2orf", + "or2fac", + "or2far", + "org4a", + "org2e", + "2orget", + "or3ghi", + "2orgia", + "or2gl", + "or3gla", + "or3gle", + "or2gn", + "or3gne", + "2orgr", + "2orh", + "2o3ria", + "2o3r2id", + "orid3i", + "4o3rie.", + "o3rien.", + "o6rienti", + "o3rier", + "o3ril", + "or1ima", + "ori4mi", + "2o3rin1", + "o4r1ind", + "o4rins", + "2or4io", + "o2riso", + "2orit", + "2ork", + "ork4r", + "ork2s", + "ork3sh", + "2orm", + "or2mam", + "or4mang", + "or4mans", + "orm3asp", + "or2m1eb", + "or4m3erf", + "or4m3er4g", + "or2mor", + "orm3ord", + "or2mum", + "ormu4n", + "or4muni", + "or4munt", + "ormwa5", + "or2n1a2c", + "or2nal", + "or2nan", + "or2nar", + "or5ne.", + "or3ni", + "or4nin", + "or3no1", + "2o1ro", + "o2r1ob", + "or3oly", + "oro3n2a", + "or1opf", + "o2ro2r", + "o3rou", + "or1ox", + "2o1rö", + "2orp", + "2orq", + "2orr", + "orr4a", + "or3r2e", + "2ors2", + "or3s4a", + "or3sh", + "or3si", + "or3sk", + "ors4tin", + "or3sz", + "or2t1ak", + "or2t1an", + "orta2r", + "or2tef", + "orte4n", + "or4ten5g", + "ort3erb", + "or4t3ere", + "ort3erf", + "ort3erg", + "or4terk", + "or4t3erl", + "orter6sc", + "or2t3e2v", + "or2the", + "or2tin", + "or4t3off", + "or4t1o2r", + "or2tö", + "ort3rad", + "or4trau", + "or4t3räu", + "ort3re", + "or2t1um", + "2o3ru", + "or2uf", + "or1uh", + "orum4s", + "o4r3un", + "oru2r", + "o5rus", + "o2rü", + "or3z2e", + "orzel5", + "or2zw", + "2o3s2a", + "os3ad", + "osal2", + "o4s3ami", + "osa1s", + "2osc", + "o4s3ca", + "osch3ar", + "o3sche", + "osch3le", + "os4co", + "2ose", + "ose1e", + "ose1in2", + "os2el", + "ose2n", + "o2s1er2k", + "os2ex", + "2osh", + "o3s2hi", + "os2ho", + "os4hu", + "2osi", + "os4it", + "o3sk", + "os2kal", + "o4ski", + "2os2kl", + "2os2ko", + "o4skr", + "o4sky", + "1osm", + "os4mog", + "2oso", + "osol1", + "o2sö", + "2os1p", + "os2pac", + "os2pe", + "os3pec", + "os3pero", + "o3sphä", + "o3s2po", + "os4pot", + "os2pra", + "2oss", + "os2sa", + "os6s3a2c", + "os3sag", + "oss3ala", + "oss3and", + "os4sä", + "os2sei", + "oss5enke", + "os4s3enz", + "os2s1ep", + "os4s3er4b", + "osser4e", + "os4ser4f", + "os4sik", + "os4sim", + "os2s1o2", + "os4son", + "os2sp", + "oss1pa", + "os2s3t", + "ost1a", + "ost3ang", + "os5tarr", + "ost4art", + "os4tat", + "ost3aut", + "os4tä", + "oste2c", + "oste2n", + "oster3e", + "ost5erwe", + "oster8wei", + "ostes5s", + "os4teu", + "ost3eur", + "os2t1h", + "os2tid", + "os3til", + "os4tim", + "os2tin", + "os3tina", + "os2tit", + "os3toc", + "os4tor", + "ost3ran", + "ost3rä", + "ost3re", + "ost3rot", + "ost3uf", + "os2tug", + "os4tüc", + "2osu4", + "os1um", + "2o3sy", + "o3s4ze", + "2oß", + "o2ß1el", + "o2ß1ent", + "o2ß1en2z", + "oßer2", + "o2ß1erb", + "o2ß1ere", + "o2ß1erf", + "oß1is", + "2o1t", + "o3tabe", + "o2t3abi", + "o2t1ah", + "o2t1ak", + "o3tal", + "o3tam", + "ot1ant", + "o3tark", + "o2tarz", + "ota2s", + "ot1ast", + "o2t1au", + "o3tau.", + "ot1ä", + "o3te", + "o4teb", + "ote1i", + "o4t1eib", + "o4t1eic", + "otei4n", + "o4t1eis", + "ot2el", + "ote4l1a", + "ote4lin", + "otel3s2", + "o4t1emi", + "ot2em3p2", + "ote4na", + "o4tentb", + "ot1erb", + "o4t1er2l", + "o4t1erw", + "ot2e2s", + "ot2har", + "o2them", + "o2t1hi", + "o2thr", + "4oti", + "o2til", + "o2t1i2m", + "ot2in", + "ot3inh", + "otli4", + "ot2o", + "oto3b4", + "ot3off", + "oto2ph", + "o2t1ö", + "otra3c", + "o3t4ran", + "ot3rat", + "ot4rau", + "ot3re", + "ot3ric", + "ot4rig", + "ot3rin", + "ot3rus", + "ot2s3at", + "ot3sch", + "ots2en", + "ots1o", + "ots1p", + "ots2pe", + "ot2spr", + "ots3tau", + "ot3sti", + "ot3stra", + "ot2su", + "ott1a", + "ot4tan", + "ot4ta2s", + "ot2teb", + "ot4terh", + "ot4ter4k", + "otte2s", + "ot2t1h", + "ot2tim", + "ott2o", + "ot2t3r", + "ot3t4ra", + "ot4tri", + "ot3t4ru", + "ot1url", + "o3tü", + "ouff6", + "ou1f4l", + "oug2", + "ou4ge", + "ou3gl", + "o1uh", + "ou1is.", + "2oul", + "ou2le.", + "ou2les", + "ou4li", + "2o1um", + "2o2u2n", + "oun4ge.", + "4our", + "oure2", + "ou2ret", + "ouri4", + "ourie4", + "ourme4", + "our4ne.", + "ou3sa", + "ous2i", + "ou3ti", + "3outp", + "out3s2", + "ou3tu4", + "2o1ü", + "o1v", + "ov2a", + "2ovel", + "o3ven", + "ove3s", + "oviso3", + "2ovo", + "2o1w", + "o2w3al", + "o3wec", + "o2wh", + "o3wi", + "o2wu", + "2ox.", + "o1x2a", + "2oxe", + "o2x1el", + "2oxk", + "ox3l", + "o1xo", + "o2x1u", + "1o2xy", + "o1yo", + "oy1s2", + "o1z2", + "o3za", + "1ozea", + "2o3zen", + "ozen4ta", + "ozes4sc", + "4o3zi", + "ozir3", + "ozon1a", + "2ozy", + "oz3z", + "ór3", + "órd2", + "ö1b", + "ö3b4a", + "öb2l", + "ö2b3le", + "ö2b3r", + "öb2s3", + "ö1c", + "öch1l", + "ö2chr", + "öch2s", + "öch4ste", + "öchst5ei", + "öchst3r", + "öchs4tu", + "ö3cke", + "ö1d", + "ödel3l", + "öde1r", + "ödi3", + "ödien3", + "öd2st", + "1ödu", + "ö1e", + "1öf", + "öf2fl", + "öf3l", + "ö1g", + "öge3le", + "ögen2s1", + "ö2g3l", + "ö2g3r", + "ö1he", + "öhe4n1", + "öhl2e4", + "öhre4", + "öh3ri", + "ö1hu", + "ö3ig.", + "ö3isch.", + "ö1ke", + "1ö2k2o3", + "ök3r", + "ök2s", + "ö2l", + "3öl.", + "öl1a2", + "öl1ei", + "öl1em", + "öl4en", + "öl2f1ei", + "ölf2er", + "öl1in", + "ölk4e", + "öl2k3l", + "ölks4", + "öll1a", + "öl3le", + "3ölm", + "öl2nar", + "öl1o2", + "öls2", + "öl3sa", + "öl3sz", + "öl3tu", + "1ölu", + "ölz2w", + "ö1m", + "öm2s", + "ön2e", + "ö3ni", + "önizi1", + "önn2e", + "ön2s", + "ön3sc", + "ön3sp", + "öo1", + "öo2ta", + "öoti1", + "2öp", + "ö1pe", + "öpf3l", + "öp4s3t", + "ör3a2", + "ör2b3l", + "ör1c", + "ör2dr", + "ör3dra", + "ö2r1ec", + "ö2r1ei", + "ö2r1e2l", + "ö2r1e2m", + "öre2n", + "ö2r1ene", + "ö2rent", + "ö3r2erb", + "ö2r1er2e", + "ö2rer2f", + "ö2rer2g", + "ör2erh", + "ö2rer2l", + "ör2err", + "ör2erw", + "ö3r2erz", + "ör1ess", + "ör2f3l", + "ör2gl", + "ö2rim", + "ör2kl", + "örn2e", + "örner4v", + "ör1o", + "örpe2", + "örs2e", + "ör3sk", + "ört2e", + "ör5tri", + "öru4", + "ö2r1une", + "ö2sa", + "2ösc", + "ö2sch3a", + "ösche2", + "ö4sch3ei", + "öscher4", + "ö6sch5erf", + "ö6sch5eri", + "ö2schi", + "ö2sch1l", + "ö2sch3m", + "ö2schn", + "ö2schw", + "ös1ei", + "ö2sein", + "öse3str", + "ö3set", + "2ösl", + "ö2sp", + "ös2s1c", + "ös2st", + "ö2st", + "öst1a2", + "ös3te", + "ös2th", + "ös3tr", + "ö3su", + "ö1ß", + "ößen3", + "öß2ti", + "ö1t", + "ö4t3a", + "öte4n1", + "ö2t3r", + "öts2", + "öt2sc", + "öt2tr", + "ö1v2", + "ö1w", + "ö1z", + "öze3", + "özes4", + "1pa.", + "1paa", + "p1ab", + "p2abe", + "pab2l", + "pab4rü", + "2pabw", + "1pac", + "1p2ad", + "pae2", + "pa3el", + "pa2es", + "pa1fr", + "1pag4", + "pa3gh", + "pa1ho", + "1pak", + "pa3ke", + "pa1kl", + "pak4to", + "3pala", + "pala3t", + "3palä", + "3pal2e", + "pa3l2i", + "1palm", + "pal2ma", + "pal2mä", + "pal2m1o", + "2palt", + "pal2t1a", + "pal4tei", + "pal2tr", + "pa2m3a", + "pa2nar", + "pa4n3at", + "pan3d", + "pand2a", + "pan4ds", + "pa2neu", + "panf4", + "pang4", + "pa4nisl", + "pank4", + "2panl", + "2pann", + "panne2", + "pan4n3eb", + "4pannu", + "1pa2no", + "pan3sl", + "pan3t2h", + "1panto", + "2pantr", + "panz2", + "pan3ze", + "1pap", + "papi2", + "papieren8", + "papie8r7end", + "pap2pr", + "pap4s", + "papst1", + "pa1q", + "1para", + "pa4r3aff", + "par3akt", + "pa4rant", + "pa3rap", + "pa2rä", + "2parb", + "1p2arc", + "par3d", + "parer8geb", + "1parf", + "2parfö", + "pargel6d", + "1park.", + "park3am", + "par4kau", + "par4kr", + "1parks", + "par3m2", + "par3ne", + "1pa2ro", + "2parp", + "2parr", + "4parta", + "3partei", + "1parti", + "1partn", + "3party", + "par3z", + "pas2e", + "pa3sp", + "pa4spe", + "passer4", + "pas6serg", + "pas2s1p", + "pa4st", + "2paß", + "pat1a", + "pat4c", + "pa5t4e2", + "2patel", + "1pat2h", + "1pati", + "1pa5t4r", + "1pau", + "2p1auf", + "pa3uni", + "2pausz", + "1pav", + "1pä", + "3pä2c", + "pä3cke", + "pä4ck3er", + "3päd", + "päde2", + "pä2d1er", + "3pär", + "3päs", + "pä4t1e2h", + "pä4tent", + "pä4tep", + "pä4t3erb", + "pä2t1h", + "pä2to", + "pä4tr", + "pät3s4", + "2p1b", + "2p3c", + "2p1d2", + "pda4", + "1pe.", + "pe2a2", + "pea4r", + "p1e2b", + "pech1", + "1peda", + "1peel", + "pe2en", + "2pef", + "4p1eff", + "1peg", + "pege2l", + "pei1", + "4peic", + "1peil", + "p2eim", + "2peis", + "1peit", + "pekt2i", + "1p4el", + "3pel.", + "pe4l3ab", + "pe4lai", + "pe2l1au", + "pe2l3ax", + "pe2l1ä", + "pelb2", + "pel3d4", + "3pele", + "pe4l1e2h", + "pe2l1er", + "pe2let", + "pe2leu", + "peli2d", + "peli4n", + "pe4l3ink", + "pel3inn", + "pel4ins", + "pel3k", + "pel3l2a", + "pell4e", + "pell2i", + "pe2lob", + "3pels2", + "pel3sp", + "pel3t2a", + "pel4zin", + "1pem", + "1pen", + "pena2r", + "pe4nas", + "pe2nä", + "pen3d2a", + "pe4nen1", + "pe4ni2t", + "pe2n1o", + "pens2a", + "3pen3si", + "pen3s2o3", + "pens2p", + "pen3sz", + "pent2a", + "2pentw", + "penty2", + "penu2", + "pen3z", + "1pep", + "pe3pi", + "pe1ra", + "pe2rak", + "per2am", + "pe2rau", + "pe2r1ä", + "per1e2b", + "perer2", + "perer3z", + "pe3r2id", + "3pe3r4io", + "1perle", + "1perlh", + "per4r3an", + "1pers", + "2perse", + "2persi", + "3perso", + "3persp", + "peru2", + "pe3run", + "1perü", + "perwa4r", + "pe3s2a", + "pese2n", + "1pes5s2", + "pe2st", + "pes4ter", + "pest1o", + "3pet", + "pet4r", + "1pé", + "4pf.", + "p2f1ab", + "p2fad", + "p2faf", + "pf1ai", + "p2f1ak", + "pf1am", + "pf1ans", + "p2fa2r", + "pf3are", + "p2f1au", + "1pfä", + "p2fär", + "p2f1äu", + "4pfe.", + "p2fef", + "p2fei", + "pf1eim", + "pf1ein", + "pf1e2m", + "p3fen.", + "p4fener", + "p3fens", + "p3fent", + "p4f1ep", + "pfer5a", + "p4ferde", + "pfer6pro", + "pf4es", + "p2f1et", + "pff4", + "p2f1i2d", + "pf1inn", + "p2f1in3s", + "pfi2s", + "pf1lam", + "pf4lan", + "pf4leg", + "pf3lei", + "pf3lo", + "pfo2", + "p2fob", + "p2fom", + "p2for", + "pf1ori", + "pf3r", + "pf1ra", + "pf4rü", + "2pfs2", + "pf3sa", + "pf3se", + "pf3sl", + "pfs4ti", + "pf3sz", + "2pf3t2", + "pft4r", + "p2fum", + "2p3g2", + "pgra2", + "1ph", + "4ph.", + "ph2a", + "phal4te4", + "p1hand", + "3pha1s", + "p1hau", + "phä1", + "3phän", + "4phär", + "4phb", + "2phd", + "2p1hei", + "phen3d2", + "phe4n1e", + "phen3s2", + "2ph1ers", + "4phf", + "4phg", + "p2hid", + "phik1a", + "phi4kan", + "2phk", + "ph2l", + "4phm", + "2phn", + "p2ho.", + "p2hob", + "2phö", + "ph2r", + "4phs", + "ph3t2", + "2phthe", + "phu4s", + "phu3t", + "2p1hü", + "3p2hy", + "4phz", + "p2i2a1", + "piab4", + "pia3k", + "pi4ali", + "pia3n", + "piap2", + "pi1ce", + "pid2", + "pi2e1i", + "pi2el", + "piel3a", + "3pier", + "pie2ra", + "pie4reb", + "pie4rei", + "pi3gl", + "1pil", + "pi3le", + "3pilo", + "pil4zer", + "pil2zw", + "p2im", + "3pin.", + "pi2nad", + "3ping", + "pingen4", + "ping3s", + "3pins.", + "3pinse", + "pin3s2p", + "pi2o", + "pi3oide", + "pi3onu", + "pi3os", + "1pip", + "pi2pe", + "3pirate", + "pi3ri", + "3pirin", + "1pis", + "2piso", + "pit2a", + "pi3t2h", + "pit2s", + "pit3z2e", + "pi2z1in", + "2p1j", + "2p1k2", + "pku2", + "1p2l2", + "2pl.", + "3pla", + "4p3lad", + "p1lah", + "pla3na", + "p4lau", + "pla2y1", + "2p3le.", + "ple1c", + "ple2e", + "p4leg", + "ple3n2", + "2p3ler", + "p4leu", + "2plig", + "3p4lik", + "p4liz", + "plo3n", + "2p3lu", + "plu2s", + "2p3m2", + "2p1n2", + "1p2o", + "pob2", + "2po1c", + "3pock", + "3pod", + "3poe", + "po2el", + "2poh", + "po2i", + "po3id.", + "po3ids", + "3poin", + "3pol", + "po2lan", + "po2l1au", + "pold2e", + "po3li", + "po3lo3p", + "pol3z2", + "pom2ph", + "2pond", + "pont2", + "po1ob", + "po2p1ak", + "po2p1ar", + "po2p3l", + "po3p2t", + "po1rau", + "porf4", + "por3s", + "3portal", + "por2t1h", + "3portio", + "3porto.", + "3portos", + "3portr", + "por4tre", + "3posi", + "poss2", + "po2sta", + "pos4tag", + "po2stä", + "post3ei", + "pos3tel", + "pos4tem", + "pos4tr", + "post3ra", + "po2ta", + "pot1ar", + "3potä", + "3pote", + "pot2h", + "po2t3in", + "pott1r", + "po2t1u", + "po3un", + "po2w", + "powe2", + "po3x", + "pö2bl", + "pö2c", + "4p1p", + "p2pab", + "pp1ans", + "p2pat", + "pp1au", + "ppe3e", + "p2p1ei", + "ppe2l1a", + "ppeli5ne", + "ppel3s", + "pp2e2n1", + "p2p1erz", + "p2pf4", + "pp1fr", + "p2p1h", + "pp3he", + "pp3l", + "p4p1lac", + "p4plan", + "p2p1lä", + "p2ple", + "pp3oh", + "p2p1ö4", + "pp3p4", + "p2p3ra", + "p2p5rä", + "p2pri", + "pp3rol", + "pp3rot", + "p2p3ru", + "p4ps", + "pp3s4a", + "pps2p", + "pp3sy", + "ppt4", + "p4p1um", + "ppyl2", + "p2r4", + "1prak", + "1prax", + "p4rä", + "1präd", + "1präf", + "1präg", + "1präl", + "3präm", + "1präp", + "3präs", + "1präv", + "2pre.", + "2prec", + "3pred", + "2pree1", + "pre2ei", + "2preg", + "1prei", + "3preis", + "prei4s3c", + "prei6sei", + "prei4s5t", + "2preiz", + "1prem", + "pren4ga", + "2p3rer", + "1pres", + "pre3sa", + "press4e", + "pri4e", + "2prig", + "pri2l1", + "2pring", + "prings4", + "1prinz", + "pri2t1", + "priter4", + "prit5t4", + "2pritz", + "1priv", + "1pro", + "3prob", + "pro3be", + "2proc", + "7p4rod", + "3p4rog", + "3proj", + "4pross", + "pro1st", + "prot2e", + "3proto", + "2prott", + "pro3x", + "2prö", + "1prüf", + "1prüg", + "2prüh", + "2prün", + "2p1s", + "4ps.", + "ps1ad", + "ps2hi", + "ps1od", + "p2sö", + "ps4pi", + "pss4", + "p2st", + "p3sta", + "pst1au", + "p3stä", + "p3stea", + "p3stel", + "ps2th", + "p3s2ti", + "ps4to", + "p3stö", + "ps2tu", + "p3stü", + "3p2sy", + "4psys", + "ps2ze", + "2p1t", + "pt1a", + "pt2ab", + "pta2g", + "p2t3a4t", + "p2t1e2b", + "pt3ec", + "pt1ef", + "pt1ei", + "pt1emi", + "4pten", + "p4t1en2g", + "p4t1ent", + "pt1ep", + "pt3erei", + "pt1erw", + "pt1erz", + "p3tet", + "p4teta", + "p4t1e2ti", + "p2t1h", + "pt1id", + "pti2de", + "pt1in1", + "pto2mo", + "pto4na", + "pto2p", + "pto2w", + "pt3r", + "p2tro", + "pt3s2", + "pt4sl", + "pts4t", + "pt1uh", + "pt1um", + "pt1urs", + "ptü4", + "3p2ty", + "pt3z2", + "1pu", + "pu1a", + "pub4", + "2puc", + "pu2dr", + "2p1uh", + "2puk", + "pu2kl", + "pu2k1o", + "pu2lin", + "pul2sp", + "pul2st", + "2pulw", + "pum2pl", + "3pun", + "4pund", + "pun2e", + "pun2s", + "4punt", + "2pur", + "pu2ra", + "pu2rei", + "pus2h", + "pu3she", + "pu2s3t", + "pu5t2e", + "3put2s", + "3putz", + "puzi3", + "1püf", + "2pül", + "pül3l2", + "2p1v", + "2p1w", + "pwa4r", + "3p4y1", + "py3s", + "py3t", + "2p1z2", + "qu4", + "que3rel", + "quer5n", + "que4te.", + "1queu", + "1ra.", + "r1aa", + "ra2ab", + "2raac", + "2raal", + "ra3ar", + "r2a1as", + "r1ab", + "ra2b1ar", + "r2abä", + "1rabbi", + "rab2b3l", + "2rabd", + "rabdru4", + "ra2bei", + "rab2er", + "rab3erd", + "2rabf", + "2rabg", + "2rabh", + "1rabi", + "2rabk", + "r2able", + "ra2bli", + "ra4b5lo", + "2ra2br", + "2rabs4", + "2rabt", + "2r3abw", + "1raby", + "2rabz", + "ra2ce", + "2r1acet", + "ra4cheb", + "ra2cho", + "2rachs", + "rach6t5rä", + "ra2chu", + "r2ack", + "1r2ad", + "r4ad.", + "rada2", + "ra2dac", + "ra4d1am", + "ra2dan", + "2radap", + "3radar", + "ra2de4i", + "3radf", + "3radh", + "3radio", + "4radit", + "3rado", + "3radp", + "ra4d1r", + "rad3ri", + "rad5t4", + "r2af", + "raf3ahn", + "raf3ar", + "rafe2", + "ra2f1er", + "raf3r", + "raft5s", + "rag2a", + "ragein4", + "rages4", + "2ragg", + "ra3g4le", + "4ragm", + "ra2gn", + "r2ago", + "rahle4n", + "5r4ahm", + "r1ahn", + "2ra1ho", + "4raht", + "r2ai", + "2raic", + "rail2l", + "2r3air", + "raka3", + "1r4a3ke", + "2rakk", + "3ra1k4l", + "ra2kre", + "ra2kro", + "2rakti", + "1rakü", + "2rakz", + "r2al", + "r4al.", + "ra2la2", + "ra4l3ab", + "ral1ak", + "rala4s", + "ra2lä", + "ral3b4", + "3r4ald", + "ra4l3end", + "ra4lent", + "ra4l5ern", + "ra3lex", + "r4ali", + "ra2lid", + "rali3er", + "ra4lin4d", + "ra4l3ing", + "ralin6sp", + "ralin4t", + "2r3alk.", + "2r3alm.", + "2ralp.", + "4ralpe", + "r4als", + "ral3sk", + "ral3su", + "r3alt", + "3r4al5t2h", + "ra2l3u", + "3raly", + "rama3s", + "ra2mei", + "ra2mer", + "r2ami", + "r2amm", + "ram4man", + "ram6mens", + "ram6m5ers", + "ram4m3u", + "2ramn", + "3ramsc", + "2r1amt", + "ramt4s", + "2ramu", + "2rana", + "ran1ad", + "ran3ade", + "r1a2nal", + "ra2nan", + "ra2nar", + "ra2nau", + "2ranb", + "r2anbe", + "r4anda", + "r4ande", + "ran4dep", + "ran4d3er", + "3r2andi", + "rand3s", + "1raner", + "2ranf", + "2ranga", + "ran6g5e6be", + "3rangi", + "r2angl", + "rangs2", + "rang3sp", + "rang5ste", + "rani3e", + "r3a4nil", + "ran3ka", + "ran2kr", + "ran2kü", + "4ranl", + "2r1anm", + "r2anmi", + "r2anmu", + "2ranna", + "ran5ne", + "2r1anp", + "2ranr", + "2rans", + "r2ans.", + "r1ansc", + "ran4spa", + "4r5antei", + "r1anth", + "r2anto", + "2rantr", + "1ranu", + "2ranw", + "r2anz.", + "r2ap", + "2rapa", + "ra2par", + "2rapf", + "2rapo", + "ra2pok", + "rap2pr", + "2r3a2pri", + "2r1aq", + "r1ar", + "r2ar1a", + "2rarb", + "r2are", + "3r4arei", + "raren1", + "rar3et", + "rar1e2v", + "r2arf4", + "ra3rie", + "rar3in", + "ra3ris", + "r3a4rist", + "4r3arit", + "r2ark", + "raro2", + "ra2rom", + "2rart", + "2rarz", + "rar3zw", + "r4as.", + "ras2a", + "ra3san", + "ra4schl", + "r2asm", + "ra3spr", + "r2ast", + "ra2sta", + "ras4t3ei", + "r3asth", + "ras4to", + "2rasyl", + "2raß", + "1rat", + "r4at.", + "ra2t1an", + "ra2t1ei", + "r3a2tel", + "ra4tid", + "2ratm", + "rat2o", + "2ratom", + "ra5tor", + "rat4r", + "r3att", + "2ratta", + "2rattr", + "4ratz", + "rat3ze", + "4rau.", + "3raub.", + "rau3e4n", + "2rauf", + "rau3fä", + "2rau3g2", + "3raum", + "rau4m3ag", + "rau5mes", + "rau2mi", + "3raup", + "4raur", + "2rausb", + "3raus2c", + "2rausd", + "rau3se", + "2rausf", + "2rausg", + "raus8gewä", + "2raush", + "2rausl", + "rau2sp", + "2rauss", + "raus8sche", + "raus5se", + "2rausv", + "2rausw", + "rau3ße", + "2rauto", + "raut1r", + "rau4tra", + "rau4tro", + "raut5s", + "1raü", + "r2ax", + "raxi2", + "r3axt", + "r2ay", + "ray1o", + "r2az", + "räch2s", + "3r2äd", + "4räf", + "rä1fr", + "4räg", + "2räh", + "4räm", + "3rän.", + "3räni", + "3räns", + "2räp", + "2räq", + "2r1är", + "r2är.", + "rä3ra", + "rä1ro", + "rä2sc", + "räse2", + "räte1s", + "3rätse", + "4rätz", + "rä2u", + "4räue", + "räu2s", + "räus4c", + "räu7schen.", + "2räuss", + "2räuß", + "4räut", + "2räx", + "4r1b", + "r2b3a2b1", + "r3bac", + "rba4del", + "rb2al", + "r3bam", + "r2bang", + "r2bant", + "rb1art", + "r2barz", + "rb1auf", + "rbb2", + "rb1ech", + "rbe3erf", + "rbei3d2", + "rbe3inf", + "rb3einh", + "rbe3int", + "r4belä", + "rbel2o", + "r3ben.", + "rbe3r2e", + "rber6gin", + "rbe3rum", + "rbe3sl", + "r2bim", + "r2binf", + "r3bit", + "rbit2a", + "rbi3tu", + "rb4la2d", + "r2blan", + "r8blasser", + "r4b3last", + "r3blat", + "r3blau", + "r2b3le.", + "r3blen", + "rb3ler", + "r2bleu", + "rb2lin", + "rb2lö", + "rb2ob", + "r2bonk", + "rb3ras", + "rb3rea", + "r8b7rechts", + "rb4sam", + "rb2sei", + "rb2ser", + "rb2s1o", + "rb4stä", + "rb2su", + "rb2u", + "rbü4b", + "rby4t", + "2rc", + "r1ce", + "r1che.", + "r1chen", + "r1ch2i", + "rch3l", + "r3chlo", + "rch3m", + "rch3r", + "rch4ro", + "rch1s4", + "rch3sp", + "rch3t2a", + "rchter6r", + "rch1w", + "r1ci", + "r2ck", + "r1cl", + "r1ç", + "4r1d", + "rd2ac", + "r2daf", + "r2d1ak", + "r2d1a2l", + "rd2amm", + "rdani1", + "r2dann", + "rd1ant", + "rd1ara", + "rd1ark", + "r2darz", + "rdär2", + "r3de.", + "r3dee", + "r2dei", + "rd2ei.", + "r2d1elb", + "r2de2le", + "r2delf", + "rdem6", + "rden3d", + "r4dengl", + "r4dents", + "rde3ob", + "rde3ono", + "rde3r4er", + "rderin6s", + "r4d3ernt", + "r3des", + "rde3sp", + "r2d1e2x", + "r2d1inn", + "rd1iri", + "rd1ita", + "r2dof", + "r3don", + "rd3oss", + "rdo4st", + "r2d1oz", + "r2dö", + "rd3rat", + "r2drau", + "rd3ris", + "rd4rö", + "r3d4rü", + "rd2sän", + "rd3s2k", + "rd3s2z", + "rdt4", + "rd3t2a", + "rd3th", + "rdt2s", + "r2d1uk", + "rdwa6r", + "1re", + "3re.", + "rea2d", + "rea6l5erw", + "4re2am", + "re3at.", + "re3ats", + "reatu3", + "2reä", + "re2b1a", + "re2b1l", + "reb1r", + "reb3ra", + "reb3so", + "rech3ar", + "4rechs", + "2reck.", + "2recki", + "3red.", + "re3da", + "4redd", + "2redi", + "re2dik", + "3redn", + "3redu", + "re1ebe", + "re1el", + "re1em", + "ree4mi", + "re1er", + "3refe", + "4reff", + "r2eff.", + "3refl", + "3refo", + "3reg", + "rege4l3ä", + "regene7ra", + "4r1egg", + "re3gi", + "re2hac", + "re2h1ar", + "re4hen4e", + "re4h3ent", + "re2hi", + "reh1l4", + "re2h1o", + "re3hol", + "3rehö", + "reh4th", + "re2hü", + "r2ei.", + "r2eib", + "rei4bel", + "rei4ble", + "r2eic", + "2reid", + "r2eie", + "4reier.", + "rei4fei", + "4reifel", + "2reig", + "3reigä", + "3reigeh", + "r4eigel", + "6reigens", + "3reigi", + "4reign", + "3reigru", + "rei3l2a", + "rei3l2i", + "2r1eilt", + "3reim", + "reim2p", + "r1ein", + "2rein2a", + "rei3nal", + "2reinb", + "rein4du", + "rei3n4e3c", + "reinen5", + "2reinf", + "rein4fe", + "re4info", + "2reing", + "2reinh", + "4reinn", + "4r3einr", + "2reins", + "4reinsa", + "rein6sel", + "rein8s7tre", + "rein4sz", + "2reint", + "rein6teg", + "re1in2v", + "2reinw", + "2reinz", + "4reisar", + "4reisb", + "reises4", + "2reisf", + "2reish", + "2reisr", + "reister6", + "4reisu", + "2reisw", + "reit3s2", + "3rek", + "4re2ke", + "4rekk", + "5rekn", + "2rekz", + "r2el.", + "r2ela", + "re3lat", + "2relb", + "rel2e", + "relea4", + "re5lei", + "re2lek", + "4relem", + "r2elev", + "2relf", + "2relit", + "2relix", + "r2ell", + "rel4lar", + "rel4lei", + "re3lo", + "r2els", + "2relt", + "relu2", + "3r2em.", + "2r1emb", + "rem2da", + "re2m1ei", + "re3men", + "2remi", + "re3mig", + "2rempf", + "rems1c", + "rem4str", + "2rem2u", + "r2en.", + "r2ena", + "2rena.", + "re4nac", + "re3nad", + "re3nal", + "re4n3an", + "re2nä", + "2r1endg", + "3rendi", + "ren3dr", + "4renerg", + "4rengag", + "ren4gan", + "2rengp", + "3renh", + "re2ni", + "3renm", + "ren4nar", + "ren6nene", + "renrü2", + "ren6sein", + "rens2p", + "2rentd", + "6rentera", + "2rentf", + "3rentfo", + "2rentg", + "r3enthä", + "2r1entl", + "2r1ents", + "2r3entw", + "2rentz", + "r2enz", + "ren6z5er6f", + "renzer6l", + "ren6z5er6s", + "renzer6w", + "ren4z3in", + "ren2zw", + "re2ob", + "re3or", + "3repe", + "4re2pen", + "2repi", + "re2pis", + "2repoc", + "2r1e2pos", + "4repp", + "3repu", + "3r2er.", + "rera2", + "2r1erb", + "3r4erber", + "rer2bi", + "2r1erd", + "rere2", + "4r3ereig", + "r1erek", + "re2r1ep", + "r2erer", + "r1erf", + "r3erfa", + "4rerfah", + "2rerfi", + "2rerfo", + "r2erfr", + "rer2fü", + "r1erg", + "4r3ergeb", + "5rergebü", + "r4ergen", + "3r4erges", + "2rer2go", + "rer2gr", + "r4ergru", + "r1erh", + "rer2hö", + "r1erk", + "rer4kan", + "rer2ke", + "4r3erken", + "3r2erki", + "3r2erko", + "r1erl", + "2r3er2la", + "5r4erlag", + "r3erleb", + "r2erli", + "2rerlö", + "2r1erm", + "rer2n", + "2r1ernä", + "r1erne", + "2r1erni", + "4r3erns", + "4r1ernt", + "re1ro", + "re2rob", + "re4rosi", + "2r1er2ö", + "r1erre", + "rer4reg", + "rer4rei", + "r1erri", + "5r2ers.", + "2r1ersa", + "rer3sc", + "r6erschi", + "r2erse", + "2rersp", + "rer2st", + "r6erstad", + "2rer4su", + "r1ert4", + "r2erte", + "2rertr", + "r1erw", + "2rerwa", + "rer4wac", + "rer4wec", + "r4erwes", + "2r1erz", + "rer2zä", + "3r2erzy", + "3r2es.", + "re2sa", + "re4sam", + "resche4", + "re4schw", + "3rese", + "re4se2h", + "re2s1of", + "3resol", + "3reson", + "re2spa", + "res2po", + "2ress", + "4resse", + "res3sei", + "res6s5erw", + "4ressu", + "re1sta", + "res4tas", + "res6tent", + "res4tex", + "2res4tu", + "3resu", + "re2t1ak", + "2re2tap", + "re2tau", + "ret2e", + "2r1e2th", + "re2tra", + "re4trol", + "re2u", + "reu4eri", + "reu3g2", + "2reul", + "re3uni", + "2reur", + "4reuu", + "2reü", + "4r3eva", + "2r1evid", + "rewa4r", + "re2wi", + "2rewo", + "2r1e2x1", + "3rez", + "2rezi", + "1ré", + "4r1f", + "rf1a2ck", + "r3fam", + "rfe2i", + "r2fent", + "r3f2es", + "rff2", + "rf3fe", + "rfi4le.", + "r4fland", + "r3f4lä", + "rf3lic", + "rf4lö", + "r3flü", + "r2fo2b", + "rfolg4s", + "r4frauc", + "rf4ru", + "rf4rü", + "rf2sa", + "rf4sam", + "rf2s1ä", + "rf2su", + "rf2ta", + "rft4r", + "rf2u", + "rfzu3", + "2r1g", + "r2g1a2d", + "r2g1ah", + "r2g1ak", + "rga4ner", + "r2g1ap", + "r2garb", + "rg3art.", + "r2g1ask", + "rgd2", + "rge4an", + "rge2bl", + "r2g1e2c", + "r3gel", + "r4gelef", + "rge4l3er", + "rgen4z3w", + "r4ge4tap", + "r2geto", + "rgi4sel", + "r2glan", + "r3glanz", + "rg5le.", + "r2gleu", + "r2glig", + "r2g3lit", + "rg2log", + "rg2lu", + "r2g3na", + "r2gne", + "r2g3ni", + "r2g3no", + "r2g3oa", + "r2gob", + "r3gog", + "rg3op", + "r2g1or", + "rgö2", + "r2g1öd", + "r2g3ral", + "rg4rau", + "r2greg", + "r2g3res", + "r2gret", + "rg3rin", + "r3grun", + "rg3rüs", + "rg3sä", + "rg3se", + "rgs2ei", + "rg4sel", + "rg3s2i", + "rg3sp", + "rgs2pe", + "rgs2po", + "rg3st", + "rgs4tr", + "rgs2tu", + "rg3su", + "r1h4", + "2rh.", + "r2hag", + "2rhah", + "2rhak", + "r4haltb", + "r3han", + "2rhau", + "2r3hä", + "3r2he.", + "r3hea", + "2rheb", + "2rhef", + "2rhi", + "2rhol", + "r3hop", + "2rhot", + "2rhöl", + "2rhs", + "rhu2s", + "2rhü", + "1ri", + "ri3ams", + "ri1an", + "ri2ano", + "ria1s", + "ri2ast", + "rib2bl", + "ri1ce", + "ri1cha", + "ri3chl", + "richt8spo", + "3richtu", + "ri2con", + "ri2dau", + "2ride", + "ri2d3e2l", + "ri4dent", + "r2i3di", + "2ridol", + "2ridy", + "r2ie", + "4riefm", + "rie2f3r", + "rieg4s3", + "ri2e1i", + "riein1", + "ri1el", + "rie3l2a", + "ri3els", + "ri4enä", + "riene2", + "ri3eni", + "rien3s", + "rie4nu", + "ri1er.", + "rie3r2e", + "riere4n", + "ri3ers.", + "rie3sa", + "ri1eu", + "ri2f1a", + "ri2fä", + "ri2fei", + "ri2fer", + "rif6f5end", + "rif4fer", + "ri2f1o", + "ri2fr", + "rif3s", + "rif4ter", + "3rig", + "4riga", + "4r3i2gel", + "ri4gene", + "4rigg", + "5rigj", + "rig1l", + "ri4glä", + "ri3g2o3", + "4rigr", + "4rij", + "ri2kar", + "ri2kä", + "ri2kin", + "ri2kn", + "ri4kone", + "rik2op", + "ri2kor", + "2rima", + "ri2mag", + "ri2me.", + "2rimm", + "4rimp", + "rim2s", + "rim4sc", + "rim4st", + "ri3na", + "r1inbe", + "rin2c", + "2r1indu", + "ri3n2e", + "rine1i", + "2r1inf", + "rin2fo", + "3r2infr", + "r2ing", + "rin2ga", + "ring3le", + "rin2gr", + "ring3sp", + "2r1inh", + "2rinit", + "4rinj", + "4rink", + "rin2kl", + "rin2ko", + "rin2kr", + "2rinl", + "6r5innenm", + "4r3inner", + "2r1innr", + "r1innu", + "2r1in2q", + "2r1ins", + "rin4si", + "rin2so", + "r4inspi", + "3r2insy", + "2rint", + "4rinte", + "rin6tent", + "rin4t5re", + "2r1inv", + "rin2va", + "2rinz", + "ri2ob", + "r3ion", + "ri3o2st", + "ri2pl", + "ri3po", + "4r1ir", + "r2is", + "ris2a", + "ri3san", + "ri4sch3o", + "ri4schw", + "3risik", + "ri3s2ko", + "r3iso", + "ri4s3p", + "r3isr", + "3riss", + "ri4s3t", + "ris6t5ers", + "ris4th", + "rist3r", + "r2it", + "r3i2tal", + "rit3ant", + "rit2i", + "2ri3t4r", + "ritt3a", + "rit4tau", + "rit6ter6f", + "rit4to", + "rit2t3r", + "rit2u", + "r1i4tum", + "rix1", + "1rí", + "2r1j", + "2r1k", + "rka2b3l", + "rk1ah", + "r2k1ak", + "rk1all", + "rk2am", + "rk1are", + "rk1asp", + "rkauf4s", + "r2k1äh", + "r3kel", + "r4kelem", + "rke2n1", + "rken4er", + "rken3s4t", + "r2k1er2l", + "rk5ersta", + "r2k1er4w", + "r3k2es", + "r3ket", + "rk1im", + "rk4las", + "rk4lau", + "rk4lim", + "r2klis", + "rk2lo", + "rk2lu", + "rk4ne", + "r2kob", + "r3kol", + "r3kon", + "rk2op", + "rk1o2ri", + "r2kou", + "rk2ö", + "rk3räu", + "r3kri", + "rk3rin", + "r2k3rom", + "r2krou", + "rk2sal", + "rk2sei", + "rk2sel", + "rk2ser", + "rk2so", + "rk2sp", + "rkstati6", + "rk4stec", + "rk4stoc", + "rk2ta", + "rk2tel", + "rk4t3eng", + "rk4tent", + "rk4t3erf", + "rk4terg", + "rk4t3erl", + "rkt3ers", + "rk6tersc", + "rk4t3erw", + "rk4t3erz", + "rk4teta", + "rkt2i", + "rk2t3in", + "rk4t1o2", + "rkto4b", + "rk2t3r", + "rk4tri", + "rk2tum", + "rk1ums", + "rku2n", + "r3kup", + "rkur3s", + "r3kus", + "rku2sa", + "r2küb", + "2r1l", + "rl2ab", + "r3lag", + "r5land", + "rlan4d3i", + "r2l1ar", + "r2l1a2sc", + "r2l3aug", + "rle2a", + "r3lec", + "r5lei.", + "r3lep", + "rl2et", + "r3lex", + "rlg4", + "r3l2i", + "rli4ne.", + "rli2s", + "r3l2o", + "rlou1", + "rl2ö", + "rlös3s", + "rls2a", + "rl2spr", + "rl3ste", + "rl2s5to", + "rl3t", + "r3l2u", + "r3ly", + "rlz2", + "4r1m", + "r2mab", + "r2m1ad", + "rma2la", + "rm1ald", + "rm1ami", + "r2m1ank", + "rm1anz", + "r4m3aph", + "r2marc", + "r2marz", + "rma4s3pe", + "rmas3se", + "rmat2o", + "rm2är", + "rm3d2", + "rm1ef", + "r4m3einh", + "rme4na", + "rm2ene", + "r2ment", + "r2meo", + "rmer4fo", + "r2m1erh", + "r2m1erl", + "r2m1erp", + "r2m1erw", + "rm2es", + "rme1st", + "rmes4z", + "rmeta2", + "r2mide", + "rmi6nanz", + "rminen4", + "rmi6neng", + "r4mn", + "r2m1ob", + "rmon3s4", + "rm1o2ri", + "rmo1s", + "rm3p2", + "rm3sa", + "rm3s2k", + "rm3t", + "rmt2a", + "rmu2n", + "r4muna", + "r2muni", + "4rn", + "rna2b", + "r3nad", + "rn4ade", + "r3nage", + "r2n1all", + "rna4n", + "rn4and", + "rn3ani", + "r2nanz", + "rna2r", + "rn3are", + "r4n3ari", + "r4n1ast", + "r4n3att", + "r2nau", + "rn3aug", + "rnd4", + "rn3de", + "rn3dr", + "r4nef", + "rn2eid", + "r4neif", + "r4neis", + "rn1ema", + "rne2n", + "r2n1ene", + "rn2eng", + "r4n1e2p", + "r4n1erg", + "rn4erhi", + "rner4ke", + "rner4ku", + "r4n1erl", + "r4n1ert", + "r4n1erw", + "r4nerz", + "r5nes", + "rn2e2t", + "rnet1e", + "rne4tem", + "rne4ter", + "rne4to", + "rn2eu", + "rne3uf", + "r4nex", + "rn3f", + "rn3g2", + "rngene4", + "r2nid", + "r2n1in", + "r4ninf", + "r3nit", + "rnk2", + "rnn2", + "r3nod", + "rn2oh", + "r2n1op", + "r2n1or", + "rn1ö", + "rnö2d", + "rn3sa", + "rn3s2ä", + "rnse4ha", + "rn3s4p", + "rns2u", + "rn3s2z", + "rn3t2a", + "rn3t2e", + "rn1ur", + "r1nü", + "r1ny", + "rnz2", + "r2oba", + "2robj", + "1robo", + "ro2bo2r", + "2robr", + "ro2bre", + "2robs", + "ro1c", + "roch2a", + "3rock.", + "r2o3de", + "rod4r", + "roe4", + "2roff", + "ro3fl", + "4rog.", + "ro3g2a", + "3rogg", + "ro2h1in", + "roh1l2", + "4rohn", + "ro2hö", + "3rohr", + "1roi", + "ro3in", + "ro1ir", + "rok2l", + "ro3le", + "ro2liv", + "rol4lan", + "rolle4", + "rol6lerg", + "rolls2", + "rol3s", + "2roly", + "4rom.", + "ro2mad", + "ro2mal", + "3roman.", + "2romb", + "romen3e", + "ro2m1er", + "4romm", + "2romn", + "rom3s", + "4romt", + "r2on", + "ro3n4ab", + "ro2nan", + "3rond", + "ro4nerb", + "4ronk", + "3ronn", + "rons2", + "ron4tan", + "ron6tend", + "ron4t3r", + "ron2t1u", + "ro1ny", + "ro1o2f", + "rop2a", + "2rope", + "2ropf", + "1ropl", + "2ropt", + "r1or", + "ro2r3al", + "ro2rat", + "2rorc", + "ro2rel", + "ro2ro", + "ror3th", + "rort2s", + "ror2ü", + "ro3sh", + "ro5s2i", + "ros4ko", + "ros4sal", + "ros4san", + "ros2s1c", + "ros6senk", + "ros4st", + "ro1sta", + "ros6t1r", + "ro2sum", + "4r3osz", + "4roß", + "roßen2", + "ro4ßenk", + "ro2ßi", + "ro2tan", + "ro4tas", + "ro4t3au", + "ro2tä", + "ro2te3i", + "ro2t1ho", + "ro2tru", + "rot3s", + "rots2o", + "rot2ta", + "ro3tu", + "3roul", + "ro3unt", + "3rout", + "2ro1x", + "4roy", + "rö2b3l", + "rö2du", + "2rö2f", + "3röh", + "2r1ök", + "1röl", + "2röl.", + "rö3le", + "röl2l", + "r1ölp", + "3römi", + "r1ör", + "r2ös.", + "rös1c", + "r2öse", + "1rösl", + "3rötu", + "2r1p2", + "r3pa", + "r3pe", + "rper3in", + "rpf4", + "r2pli", + "rp4lu", + "r3po", + "rpro1", + "rp3se", + "rps3t", + "r4p3t", + "r3pu", + "2r1q", + "4r1r", + "rr2ab", + "rr4at", + "rrat2s", + "rr1auf", + "rr1äm", + "rrb2", + "rr1c", + "r5rega", + "r5regi", + "rr2ei", + "rre2le", + "rre2pa", + "rrer2", + "r2rerh", + "r2rerl", + "rrer4s", + "r3res", + "rre2ve", + "r4rezi", + "r3r2hen", + "rr2hos", + "r3r4i", + "rri3k2", + "rrm2", + "rrn3au", + "rr2o", + "rr3obs", + "rro3m", + "rro2re", + "rrr2", + "rr2st", + "rr3str", + "rr3stu", + "rr2th", + "r3r2u", + "r3r2ü", + "rrz2", + "6r1s", + "r3sabo", + "r2s1a2d", + "rs2al", + "r4samp", + "r4s1amt", + "rs2an", + "r4sanf", + "r2s3ang", + "rs3anm", + "r4sanp", + "rs3ant", + "rs3anz", + "rs3ar", + "rs4ark", + "r4sarm", + "r4sch3e4b", + "r6scherl", + "r3schu", + "r2s1ebe", + "rse2e", + "r2s1ef", + "r2sein", + "rse2n", + "rs2end", + "rse4ne", + "r2sepi", + "rs1ere", + "r2serh", + "rs1ers", + "r2serz", + "rse2t", + "rs1eta", + "rs2ext", + "r3s2hav", + "r3shir", + "r3sho", + "rs2hor", + "r4shu", + "rs2il", + "rs2ka", + "rs2kel", + "rs2ki", + "r4skir", + "rs2kl", + "r4skor", + "r3s4kri", + "r4sky", + "rs4mog", + "r3s4no", + "r3so", + "r4sob", + "rs4om", + "r4s1op", + "r4sorie", + "r4s3ort.", + "rso2s", + "rs1ost", + "rs2p", + "r3span", + "r3spe", + "r2s3ph", + "r3spi", + "r3spl", + "rs4por", + "r2sput", + "rs3s2", + "rst3abl", + "r3stad", + "rst3ala", + "r4stale", + "r4stans", + "r4stant", + "r2stas", + "r7stati", + "r7statu", + "r3stä", + "rst5eing", + "r6st5eint", + "rst3emi", + "rs4temp", + "rster2", + "rs4t4erb", + "rst3erl", + "r3s4tern", + "rst3erw", + "rs2tev", + "rs2t1h", + "rs2ti", + "r3s4tie", + "r2stin", + "rst3ing", + "r3stink", + "r2stip", + "r2stit", + "r3sto", + "rs4tob", + "rs4tol", + "rs4tor", + "r4stot", + "rs4tr", + "r3stra", + "r6strang", + "rs5tren", + "rs2tu", + "rs4tuc", + "r3s4tü", + "rsuch4s", + "r3suf", + "rs2ums", + "r3sy", + "r1ß", + "4r1t", + "r2tabo", + "rt1abs", + "rta2ck", + "r2t1a2d", + "r2t3ae", + "rt1akr", + "r4t3albe", + "rta3l2e", + "r2t1all", + "rtal4s3e", + "rt1am", + "rt2ame", + "rt1ann", + "rt1ant", + "r2tanw", + "r2t1ar", + "rt3att", + "r2taut", + "rt3äh", + "rt1änd", + "rt1ärm", + "rte1e2", + "r3teh", + "rt1ein", + "rt4eind", + "r4t3einh", + "rte2i1s4", + "r2telf", + "rtels4t", + "r2temo", + "rte2n1", + "rte4na", + "rten3s4", + "r4t3ents", + "rten3z", + "rteo2", + "rt3erei", + "r6tereig", + "r4ter4fa", + "r4ter4fo", + "rt1erh", + "rt1erk", + "r4t3er4la", + "rter6mit", + "r4t3ernä", + "r2ter2ö", + "rter4re", + "rt1ers", + "rt4ersp", + "rt1erz", + "rte3sk", + "rt1he", + "r2thel", + "r2t1hi", + "rt2hum", + "r2t1id", + "rtik2", + "r2t1ima", + "r4t3inf", + "rt2is", + "rt2it", + "rt3l", + "rt3m", + "r2t1ob", + "rto1pf", + "rt1orc", + "r4torg", + "r4trak", + "rt3rams", + "rt3rand", + "rt3rati", + "rt3rec", + "rtre1s", + "r4t3ris", + "rt3rol", + "rt3roma", + "r3trop", + "r2trou", + "rtrü2c", + "rt3sc", + "rt4s1eh", + "rts2el", + "rt3sex", + "rts3ing", + "rts1o", + "rts1pa", + "rt4s3tan", + "rts4tie", + "rt2su", + "rt3t4", + "rt1umb", + "rt2u3na", + "r2t1urt", + "rtu4t", + "r2t3ute", + "r3tü", + "rty1", + "rt3z2", + "1ru", + "ru1a", + "ru4ale", + "ru3a2r3", + "rube4", + "ruben3", + "rubens4", + "rub2i", + "rucht3s4", + "ru6ckerl", + "ru2cku", + "rude2a", + "ru2dr", + "ru2et", + "3ruf", + "ru2f1a", + "ruff4", + "ruf2s", + "ruf4ter", + "ru2g3r", + "3ruhm", + "2r1uhr", + "3ruin", + "ru3ins", + "ru1is", + "2rum", + "ruma2", + "4r3umd", + "4r3umf", + "4r3umg", + "ru2mi", + "4r3uml", + "4r3umsa", + "4r3umw", + "4rumz", + "2r1una", + "2rund", + "run4d1a", + "runden5e", + "run4d3er", + "run2e", + "runei2", + "4r1unf", + "run2ga", + "2rungl", + "4r1u2ni", + "r3unio", + "ru4nis.", + "run2kr", + "4r1unl", + "2r1unm", + "4runn", + "4runr", + "r1unse", + "4r3unt", + "4runw", + "2rupd", + "ru3pr", + "4r1ur", + "ru2ra", + "ru2r1e", + "5ruro", + "r4us.", + "ru2si", + "rus2p", + "rus2s1p", + "rus4st", + "ru2st", + "ru2tab", + "rute4", + "ru4tei", + "ru4t1el", + "ru2t1er", + "ru4t1o2", + "ru2t3r", + "rut6scha", + "4ruz", + "ru2z1w", + "1rü", + "2rüb", + "4rübu", + "rü1ch", + "rü4ckel", + "rü2hel", + "rüher2", + "rüh1l", + "4rümm", + "rün3z", + "2r1v", + "r3ve", + "rv2el", + "rve4n1e", + "rvenen4", + "r4ventz", + "rve3s", + "r3v2o", + "2r1w", + "rwe4gel", + "r3wei", + "rwelt4s", + "r5werk", + "r5wert", + "r2wo.", + "r3woh", + "r3wort", + "rwun3s", + "4r1x", + "1ry", + "2r1ya", + "ry2c", + "rygi3", + "ry1la", + "ry2le", + "ry1os", + "ry3sth", + "rysti1", + "2r1z", + "rz2an", + "rz3ant", + "r2zar", + "r2zat", + "rz2än", + "r5zene", + "rz1eng", + "r4zents", + "rze2p", + "rze2ra", + "r2z1erd", + "r2z1erf", + "r2z1erg", + "rz1erk", + "r2z1erl", + "r2z1erw", + "r2z1ess", + "rz1id", + "rz1int", + "rzir3", + "r3z2of", + "r2z3ot", + "rz2tan", + "rz3te", + "rz2th", + "rzu4g3l", + "r2zwä", + "r3z2wec", + "r2zwir", + "1sa", + "3sa.", + "3s2aa", + "2s1ab", + "sab2ä", + "4sabd", + "sa2be", + "3sabet", + "sa2bit", + "sa2bl", + "4sabm", + "sa2bor", + "sa2br", + "4s3abs", + "3sac", + "4sacc", + "5sache", + "sa2cho", + "sachs2", + "sach3t", + "s2ack", + "2s1ada", + "sa2der", + "s1adm", + "2s1a2dr", + "3safa", + "sa4fe", + "4s3aff", + "sa1f4r", + "3s2aft", + "saf4tr", + "3saga", + "sag2e", + "5sage.", + "5sagen.", + "4s3agent", + "2s1agg", + "sa2gio", + "sag4n", + "s1a2gr", + "s2ahs", + "3s2ai", + "sa3i2k1", + "sail2", + "sai4r", + "2s1ak", + "sa2ka", + "sak2e", + "3saki", + "4sakk", + "3sako", + "4sakt", + "3s2al.", + "3s2al2a", + "sa2l3an", + "sa2lar", + "sa3lat", + "3s2alb", + "sal3bl", + "3s2ald", + "sa4lerk", + "3sali", + "sa2l1id", + "s1all", + "sal3la", + "sal4le.", + "3sal2o", + "sal3or", + "sal2se", + "s1alt", + "s2al3t2h", + "3salz", + "3sam", + "4s1a2mat", + "4s1a2mei", + "s2amen", + "sa2min", + "5samm", + "6s1amma", + "4s1amn", + "s1am3p4", + "4samph", + "sam4ta", + "sam4to", + "samt3st", + "s1an", + "s2an.", + "2s3a2na", + "san4at", + "sa2nä", + "2s3anb", + "s2an2c", + "3s2and", + "s4and.", + "san4dan", + "san4d3ri", + "sand3s", + "sa2ner", + "3sang.", + "4sanga", + "2s3anh", + "3sani", + "3sanken", + "2s3anl", + "2sa2no", + "2s3anp", + "2s3ans", + "s4anse", + "san4sk", + "san3sp", + "4santei", + "4s3antr", + "4s3anw", + "2sanz", + "2s1ap", + "sa2pe", + "s2aph", + "sap3p", + "3sapr", + "2s1aq", + "2s1ar", + "3s4ar.", + "3sara", + "4s3arb", + "3s2ard", + "s2are", + "s3area", + "3sarg", + "sar2ga", + "sa3rin", + "s2ark", + "sa2rom", + "s2ars", + "4sart", + "sa4r1u2", + "3sas.", + "sas2a", + "s1asc", + "s1a4si", + "2s1a4sp", + "sas2tu", + "4sa2sy", + "sat2a", + "satan4", + "sa4t3ant", + "sat1ei", + "2s3a4tem", + "s3ath", + "3sat2i", + "4s3atl", + "4satm", + "sat2o", + "sa4tol", + "sa2tr", + "sa3ts", + "s3atta", + "4s3attr", + "3satz", + "5satza", + "sat4zel", + "sat4z3en", + "s1au", + "3sau.", + "3sauc", + "3sau2e", + "2sauf", + "4s3aufb", + "3saug", + "saug3le", + "sau2gr", + "3saum", + "3saur", + "sauri1", + "2saus", + "3saus.", + "4s3ausb", + "4s3ausf", + "4sausg", + "sau2sp", + "4sauss", + "3sauste", + "4s3ausw", + "2sauß", + "s1av", + "sa2ve", + "sa2xi", + "sa2y1", + "1sä", + "3säb", + "3s2äc", + "3s2äg", + "s1äh", + "4s3ähn", + "3säl", + "4s1ält", + "2s1äm", + "4s3änd", + "4s3äp", + "2säq", + "2s1är", + "3s2ärg", + "3s2ät", + "3säul", + "4säuß", + "4s3b4", + "sba4ne", + "sbau6men", + "sber2e", + "1sc", + "2sc.", + "2scab", + "2scac", + "2scal", + "2scam", + "2scar", + "2scat", + "2s1ce", + "4s3cei", + "4sch.", + "3s4chal", + "sch3ana", + "4schanc", + "4schang", + "4schao", + "4schara", + "4sch3ar5m", + "s2chä", + "2schäq", + "4schb", + "4schc", + "2schd", + "sch2e", + "4schech", + "sche2f", + "6schef.", + "6schefi", + "6schefs", + "s4chei", + "4sch3ei.", + "sch6ein.", + "s4chema", + "4schemp", + "sch5erfü", + "sch5erla", + "3sches", + "4schess", + "4schex", + "2schf", + "2schg", + "2schh", + "schi4d", + "schi4e", + "4schiru", + "3schis", + "2schk", + "s4chl", + "sch4lac", + "sch4lag", + "4schle.", + "6schlein", + "4schloc", + "4schlöc", + "4schmas", + "4schmed", + "2schmö", + "4schmüh", + "2schmy", + "2schn.", + "4schneb", + "4schobj", + "4schorc", + "4schör", + "4schp", + "2schq", + "4schrad", + "4schre.", + "4schrin", + "4s3chris", + "sch3rom", + "4schron", + "4schrou", + "4schs", + "schs2e", + "sch3s2k", + "schs4ti", + "4sch3t", + "scht2a", + "scht2i", + "s4chu", + "4schunt", + "2schv", + "sch4web", + "4schweg", + "6schwerk", + "4schwet", + "4schwid", + "3schwu", + "2schz", + "2scj", + "4s3cl", + "2s3co", + "4scoa", + "3s4co2p", + "scre4m", + "2scs", + "2scu", + "2scy", + "4s3d2", + "sda3me", + "sde1s2", + "sdien4e", + "sdi1st", + "1se", + "3se.", + "se3at.", + "seb2", + "3sebä", + "2s1e2ben", + "2s1echo", + "sech4st", + "2s1echt", + "2s1e2ck", + "se2dik", + "3see", + "see1i2", + "see3ig", + "se2el", + "see3len", + "se3en.", + "see3n2e", + "se3enp", + "se3er.", + "see1ra", + "seer2e", + "se1erf", + "se3e2r1i", + "se1erk", + "se1ers", + "see3s4", + "2s3eff", + "sef4l", + "3s2eg", + "4s3e2gal", + "se2gl", + "seg4r", + "3seh", + "seh1a", + "se2hag", + "se2hak", + "se2hel", + "seher4e", + "se4herk", + "se2h1in", + "seh3l", + "se4h3ö", + "seh3ra", + "seh3re", + "seh5r2i", + "seh1s", + "se2hüb", + "2sei.", + "2s1eic", + "2s1eid.", + "sei3da", + "4s3eifer", + "2s1eig", + "3seil", + "s2eim", + "s1ein", + "5s4ein.", + "2seinb", + "sein4du", + "2sei3n2e", + "seine3i", + "4seinfl", + "sein4fo", + "2seing", + "2s3einh", + "2seini", + "2seink", + "2seinl", + "2seinn", + "sein4ne", + "2s3einr", + "s4eins.", + "4seinsc", + "4seinsp", + "sein8stit", + "sein6str", + "2seint", + "sein4to", + "4seintr", + "2seinw", + "2s3einz", + "2s1eis", + "3s2eism", + "3s2eit", + "seit2s", + "3sek", + "4s1e2kel", + "4sekz", + "s2el.", + "se2l1a", + "3s2elb", + "sel3d4", + "sel1ec", + "se2lef", + "2s3e2leg", + "6selektr", + "2selem", + "se2ler", + "sel3ers", + "2self.", + "selin4s", + "s3e2lit", + "2s1elix", + "s2ell", + "se2lob", + "s2els", + "sel3sz", + "selt2e", + "selz2", + "sem2e", + "2s1e2mis", + "2s3emp", + "s4en.", + "3sena", + "se4nad", + "se3nal", + "se4nas", + "sen3au", + "se2nä", + "s2enb", + "4s1endl", + "sen3d4r", + "s1endw", + "senen1", + "4senerg", + "se4ners", + "s2enf", + "3s4eni", + "se2nid", + "se2n1im", + "3s2enk", + "sen6keli", + "se2no", + "se4nott", + "se4noz", + "3sens", + "s2ensa", + "sen4s3e4h", + "4sensem", + "s4ensi", + "sen4si4d", + "senst2", + "sen8s7turm", + "sent2a", + "sen3tä", + "2sentd", + "4sentf", + "2sentg", + "4sentla", + "2sentn", + "s2ento", + "sen3tr", + "4s1ents", + "2sentw", + "4sentwu", + "4sentwü", + "4sentz", + "se4n3u2", + "sen3za", + "sen4zer", + "sen3zw", + "seo2r", + "se2pen", + "3seq", + "s4er.", + "se2r3a2d", + "ser3al", + "se3rand", + "ser3äus", + "serb2", + "s3erbe.", + "serd2", + "se2r1e2b", + "se3reie", + "6sereign", + "se4r3eim", + "se4rein", + "sere2m", + "5s4eren", + "se4r3enk", + "s4erfe", + "s1erfo", + "s2erfr", + "s3erfü", + "4serfül", + "serg2", + "ser3ga", + "ser3gl", + "s2ergr", + "s1erh", + "2serhö", + "3seri", + "5serie", + "serk4", + "4s3ermit", + "s2ern.", + "s3erneu", + "2s3ernt", + "sero4b", + "2s1e2ros", + "s1erot", + "s1erö", + "2seröf", + "s2ers.", + "2sersa", + "4serseh", + "ser6sehn", + "4ser4set", + "se3ru", + "se4ruh", + "ser2um", + "s3e4rup", + "5s4er3v", + "s1erz", + "3s4es.", + "se3s4a", + "se2sel", + "se3sk", + "2s1essa", + "se1sta", + "se3stec", + "se3stei", + "se5stemp", + "sest3ri", + "se3su", + "4s3e4tap", + "se2tat", + "2s1e2th", + "set2i", + "4s1e2tik", + "3setz", + "3seuc", + "2s1eul", + "seum4", + "se1u2n", + "s1ex", + "3sex.", + "2sexa", + "se2xe", + "sex3en", + "s2exi", + "s2exo", + "4sexp", + "sex3t4r", + "2sexz", + "1sé", + "4s3f4", + "sfal6l5er", + "4s3g4", + "sgang4", + "sge3sa", + "sge5t", + "2s1h", + "4sh.", + "sh2a", + "3sha.", + "shal4li", + "shalt2", + "shalt4s", + "4shan", + "s3hä", + "sh2e", + "sh2i", + "3shi.", + "s2hip", + "shi4r", + "sh3n", + "4s3hoc", + "4s3hof", + "4shom", + "3shop", + "sho4re", + "3s4how", + "4s3hö", + "sh4r2", + "4shs", + "s3hu", + "1si", + "3si.", + "si3ach.", + "2siat", + "5s4i1c", + "si2cha", + "2s1idea", + "2sidee", + "2s1ideo", + "si3der", + "s2i3do", + "2sidy", + "3s4ie", + "sie2bu", + "siege4s", + "sien3", + "si3ene", + "si1err", + "si1f4", + "3s4ig", + "si2g1a2", + "si2g1ei", + "sig4n", + "si2g3r", + "sig4st", + "si2k1ab", + "si2kak", + "si2kar", + "si2k1ä", + "si2k1el", + "si4kens", + "sik3erl", + "si2k3i", + "sikin1", + "si2k3n", + "si2k3r", + "sik3s", + "sik3t2", + "si2ku", + "3silb", + "sil2br", + "sil2e", + "3sili", + "s1ill", + "3silo", + "2s1imm", + "sim4st", + "3simu", + "si3n4a", + "2s1ind", + "2s1inf", + "4s3infe", + "s3infor", + "sing1a", + "sin3g4le", + "sin2g3r", + "sings2", + "sing3sa", + "sing3so", + "2s1inh", + "s1in1i", + "sini1e", + "s2ink", + "sinner4", + "2s1inno", + "4s1inq", + "2s1ins", + "4sinso", + "4sinst", + "2s1int", + "4s1inv", + "sion4", + "sirn4", + "2sirr", + "3siru", + "si2sa", + "si4sam", + "s2isc", + "si4schu", + "si2s1e2", + "si2si", + "s1i2so", + "sis1or", + "si2s3p", + "sis3s4", + "3s4ist", + "si2su", + "3s2it", + "si2tal", + "si2tau", + "si2tra", + "sit2u", + "si2va", + "sive3", + "siver2", + "si4v3erf", + "si2vin", + "siv1o4", + "si2vor", + "siz2", + "1sí", + "4s3j", + "2s1k2", + "4sk.", + "sk4a", + "4s3kab", + "s3kad", + "4skalk", + "s3kalt", + "4s3kam", + "4skana", + "4skanä", + "3skanda", + "4skann", + "4skap", + "4s3kar", + "4s3kas", + "ska4te.", + "4skateg", + "ska4tes", + "ska4to", + "4skau", + "4s3kä", + "4skb", + "ske2li", + "4sken", + "3skep", + "4sker", + "4s3ket", + "s3kh", + "3s2ki.", + "3s2kif", + "3s2kik", + "s3kim", + "s3kin", + "ski1s", + "s2kis.", + "3skiz", + "sk4l", + "4s3klas", + "3s2klav", + "4s3klu", + "4sk4n", + "4skoh", + "4skol", + "4skom", + "4s3kon", + "3skop.", + "sko2pr", + "4skos", + "4skow", + "4s3kö", + "sk4r", + "4s3kra", + "s3kre", + "4s3kro", + "4sks", + "4sk3t2", + "skto2", + "3skulp", + "4skun", + "sku2s1", + "4skü", + "4skv", + "2s1l2", + "sl4a", + "s3lab", + "3slal", + "sla2ma", + "sla2ve", + "s2law", + "s3lä", + "sl3b", + "4s3le", + "sler3s", + "s3li", + "3s4lip", + "slo3be", + "s3loc", + "s4loga", + "3s2low", + "s3ly", + "4s3m4", + "sma3b4", + "sma3sc", + "sme3na", + "smi2t3", + "2s3n2", + "snab4", + "sni4a", + "sni3er.", + "sni3ers", + "4s5not", + "1so", + "3so.", + "2s3oas", + "2s1o2b", + "3s2o3ba", + "4sobj", + "4s3obo", + "so1c", + "so2di", + "so2do", + "so3et", + "2s1o2fe", + "2soffi", + "3soft", + "3sog", + "sog4l", + "s1o2he", + "3sohl", + "sohle2", + "2s3ohng", + "2s1ohr", + "3soi2", + "so3id", + "2s3ok", + "3sol.", + "so3la", + "so4lau", + "3sold", + "3sole", + "so2l1ei", + "so3li", + "sol2la", + "sol4ler", + "so3l2o", + "4s3o2ly", + "3somm", + "3s2on", + "son2a", + "son3au", + "sone2", + "son4gl", + "son3sä", + "son2s1o", + "so3o", + "2sope", + "2s1opf", + "3sopr", + "sop3s", + "4s3ord", + "sore2", + "so2rei", + "so2rel", + "4s1orga", + "so1rh", + "2s1o2rie", + "so2ro", + "3sorp", + "3s2orti", + "so4ru", + "3sos", + "s2os.", + "4so4sk", + "4sosm", + "4so1st", + "4s1osz", + "3so3ß", + "2sot", + "so3t2h", + "3sott", + "soun2", + "sound1", + "so3unds", + "so3unt", + "2s1out", + "3sov", + "3sow", + "2s1o2x", + "3soz", + "s1oze", + "1sö", + "sö2c", + "2s1ö2d", + "2sö2f", + "2s1ök", + "2s1öl", + "2s1ös", + "1sp2", + "2sp.", + "4spaa", + "s2pace", + "2spack", + "2spag", + "2spak", + "2spala", + "2spalä", + "3spalt", + "spa2m", + "s2pan.", + "3spannu", + "s2pans", + "3spant", + "2spanz", + "2spap", + "2s3para", + "2sparo", + "5s6parten", + "4spartn", + "4sparty", + "3spaß", + "3spat.", + "2spati", + "4spatr", + "2spau", + "3s2paz", + "s2pä", + "2späd", + "3späh", + "2spär", + "2späs", + "2s3pe.", + "2speg", + "4spein", + "4spensi", + "spe3p4", + "s2pera", + "3s2perg", + "s1peri", + "4sperle", + "2spero", + "s2perr", + "2spers", + "2sperü", + "4spet", + "3s4pez", + "4s3pf4", + "2spha", + "s2phä", + "3sphär", + "s3phe", + "s4phin", + "3s2pi4e", + "4spier", + "spier4r", + "spi2k", + "4s3pil", + "3spio", + "4s3pip", + "4s3pis", + "2sp4l", + "4spla", + "4s3plä", + "4sple", + "sp5le.", + "3s2pli", + "4s3plu", + "2s3pn", + "2spod", + "4spoe", + "2spog", + "s2poi", + "4s3pok", + "4spol", + "s2pons", + "4spoo", + "2spop", + "s2pore", + "3s2porn", + "spor6tag", + "4s3pos", + "4spote", + "4spr.", + "3s2prac", + "2sprak", + "2sprax", + "2spräm", + "4spräs", + "3s4prec", + "4spred", + "4spreis", + "5s2pren", + "2s3pres", + "s2pric", + "3spring", + "4sprinz", + "2sprob", + "2sprog", + "4sproj", + "4sprop", + "3spross", + "2sprot", + "2sproz", + "3sprö", + "3s2pru", + "3sprüc", + "2sprüf", + "3sprün", + "4s3ps", + "2s4p3t", + "2spub", + "2spud", + "3spuk", + "3s2pule", + "2spun", + "2spup", + "3s4pur", + "spu4rer", + "2spy", + "2s1q", + "4s3r4", + "srat2s", + "sre3cha", + "sreli1", + "sro2h", + "srö2s", + "srücker6", + "6s1s", + "ss3abi", + "ssa3bo", + "s5sack", + "ss4agi", + "ss1aj", + "s3sal", + "ss3alba", + "s4sall", + "s4samt", + "s2sanf", + "s4sang", + "s4sano", + "s4sans", + "ss2ant", + "s4sanz", + "ss2ara", + "ss2arg", + "s3sars", + "ssa1s", + "s2s3att", + "ssau3e", + "ssau4r", + "s3s2ä", + "s4sce", + "ssch2", + "sschanker8", + "s3schw", + "s4sco", + "s2scr", + "sse3a", + "ss1ec", + "sse1ec", + "sseh2a", + "s2sein", + "ss4eind", + "sse3int", + "sse2lö", + "s3sen", + "ssen6kel", + "ssen6sem", + "ss1epe", + "sse6ratt", + "ss5ereig", + "ss4ergr", + "sser4hö", + "sser6mit", + "sser4öf", + "ss3erse", + "ss4eru", + "sser6wei", + "sses4sa", + "s4s3estr", + "s3set", + "sse3ta", + "s3si", + "ss3i2ko", + "s4sill", + "s4simp", + "s4sind", + "s4sinf", + "ssing3s", + "s4sint", + "s4s1isr", + "s3skala", + "ss3l", + "ssmut4", + "ss1off", + "ssoi4", + "s3sol", + "s4sop", + "ss2pen", + "ss2phi", + "s3spi", + "s3sprä", + "s3spri", + "s2spro", + "ssquet4", + "ss3s4", + "sssau4", + "sst2a", + "s3stad", + "s4stag", + "ss3tak", + "s3stä", + "sst2e", + "s3stel", + "s3s2tep", + "s3s4tern", + "ss4teu", + "sst2i", + "ss2tie", + "ss2t3in", + "s3stof", + "s3stop", + "ss4tör", + "s3stran", + "ss4tras", + "s3s4trat", + "s3strec", + "s3strom", + "s3strö", + "ss2tur", + "s3stü", + "s2sumg", + "s2sumr", + "ss2ur", + "s3sy", + "s1t", + "4st.", + "s2ta", + "2sta.", + "3staa", + "3stab.", + "2stabb", + "4stabel", + "4stabit", + "2stabl", + "4stabt", + "st2ac", + "1stadt", + "1staff", + "2stag", + "3stagl", + "3s4tagr", + "3s4tah", + "2stak", + "3staks", + "2stala", + "sta3lak", + "2stalb", + "s3ta3l2i", + "2stalk", + "st1alp", + "st1alr", + "st1ami", + "1stamm", + "1stan", + "2stanb", + "s6tand", + "2stanf", + "st2ang", + "2stanl", + "s4tanm", + "4st1ann", + "s4tano", + "st3ansp", + "2stanw", + "sta3po1", + "stapos4", + "st1app", + "s4tar.", + "sta6rens", + "4stari", + "s4tark", + "s4t2ars", + "s4tart", + "sta4sie", + "stast4", + "s3tat.", + "2statb", + "3stati", + "s4tatis", + "7statth", + "s4tau.", + "2stauf", + "3s4taur", + "4stausb", + "4stausg", + "4stausr", + "4stauss", + "s4taut", + "s4t1a2ve", + "4stax", + "1s2tä", + "3stäb", + "3städ", + "4stäg", + "4stäp", + "5s4tär", + "3stätt", + "2s3täus", + "2stb", + "2st3c", + "2std", + "4s5te.", + "4steam", + "4stechn", + "s2te2d", + "st1edi", + "2stee", + "3s2teg", + "ste2g3r", + "1steh", + "s2tei", + "st4ei.", + "4steic", + "st1eid", + "3steig", + "stei4gr", + "2steil", + "stei4na", + "6steinga", + "s4teins", + "stein6sp", + "s2tel", + "2stel.", + "st1elb", + "s3tele", + "s3telf", + "st2ell", + "stel6l5än", + "2steln", + "2stels", + "2stem", + "ste4mar", + "ste6ment", + "3stemm", + "2sten", + "s5ten.", + "ste4na", + "s4t3ends", + "s5t2ens", + "s4tentf", + "s4tents", + "st1e2po", + "2ster", + "4s5ter.", + "ste2r3a", + "s6terben", + "3sterbo", + "s3teren", + "3stereo", + "st3erfü", + "3steril", + "4sterm", + "3s4ternb", + "ster4zo", + "4ste2s1", + "ste3sc", + "stes4se", + "s4testn", + "2stet", + "ste4tab", + "ste4tag", + "3s2teti", + "3s4tett", + "3s2teu", + "1steue", + "4steuf", + "st3eun", + "st1ev", + "s2tew", + "4stex", + "s2texa", + "2stf", + "2stg", + "2sth", + "st2hen", + "s2t1hi", + "st3ho", + "s2thu", + "st1hy", + "2stia", + "2stib", + "s2tic", + "1stich", + "st1i2d", + "2stie.", + "4stief.", + "4stiefl", + "2stien", + "1s2tif", + "2stig", + "sti4gel", + "3s4tigm", + "2s3tik", + "s2t2il", + "1s2tim", + "3stimm", + "4stimma", + "2stimp", + "st1inb", + "2s4tinf", + "s3tinn", + "s2tins", + "2s2tint", + "2stio", + "2stip.", + "2stipp", + "s2ti2r", + "st1ira", + "st1iri", + "st1iro", + "4stis", + "2stite", + "1stitu", + "2stiv", + "2stj", + "2stk", + "4stl", + "st3le", + "2stm", + "2stn", + "s2to", + "2sto.", + "sto2bl", + "4stocht", + "2stod", + "4stod.", + "1stof", + "s4toff", + "2stok", + "4stole", + "s4toll", + "sto3mi", + "2s3ton", + "4stona", + "3s4to4ne", + "4stonl", + "4stoo", + "2stopo", + "4stor.", + "s4torb", + "2store", + "2storf", + "2s4torg", + "2stori", + "2storp", + "2stors", + "2stort", + "stos2t", + "1stoß", + "4stote", + "2stotr", + "4stou", + "2stow", + "2stoz", + "1s2tö", + "4stöch", + "2s3töl", + "2stön", + "3stör", + "2stöt", + "2stp", + "2stq", + "s2tr", + "2strac", + "4s3trad", + "st4rade", + "stra4fa", + "4s3trag", + "3strah", + "4strahi", + "4strai", + "4strak", + "2s5tral", + "s3trank", + "4strans", + "1strap", + "3stras", + "3straß", + "4straum", + "4sträc", + "4s5träg", + "4sträne", + "2stre.", + "s4trea", + "4stref", + "4streib", + "3st6reif", + "2strep", + "2stret", + "4streuh", + "2strib", + "strie3s4", + "2s4trig", + "1s4trik", + "2s5tris", + "1stro", + "s3troc", + "s3trog", + "3s4troh", + "s4trome", + "4stropf", + "2stros", + "st4ross", + "2ströp", + "1stru", + "2strua", + "2strub", + "s4trud", + "3struk", + "2strun", + "4strup", + "2strut", + "1strü", + "4s4t3s2", + "stsi4d", + "sts4t", + "2st3t4", + "st2u", + "1stub", + "4stuch", + "3s4tud", + "2stue", + "3stuf", + "2stug", + "st3uga", + "3stuh", + "s2t3uk", + "2stumo", + "2stum2s", + "stum4sc", + "2stumt", + "2stun.", + "st3una", + "5stund", + "2stune", + "2stung", + "s2t3uni", + "4stunn", + "2stuns", + "2stunt", + "2stuö", + "stu3ra", + "stu5re", + "2st3url", + "4sturn", + "2st3urt", + "3s2turz", + "2stus", + "1s2tut", + "1stüc", + "4stüch", + "3s4tück", + "3stüh", + "4stür.", + "4stüre", + "3stürz", + "1stüt", + "2stütc", + "2stv", + "2stw", + "stwor2", + "2sty", + "4sty.", + "1s2tyl", + "4styp", + "4stys", + "2st3z2", + "1su", + "su1an", + "3su2b3", + "su4ba", + "4subi", + "su4br", + "3su1c", + "su2cha", + "su2cho", + "3sud", + "su2eb", + "2s1u2f", + "su3fi", + "2s1uh", + "su1is", + "su1it.", + "su2k", + "su3l2i", + "3sulta", + "sum1a", + "su2man", + "su2mar", + "3s2ume", + "su2mei", + "su2mel", + "sument4", + "su6ments", + "su2m1et", + "2s3umf", + "su2m1id", + "su2min", + "3s2umm", + "sum1o2", + "su2mor", + "s2ump", + "s1ums", + "s3umsa", + "2sumse", + "s2umsp", + "2s3umst", + "2s3umwa", + "su2n", + "3sun.", + "2s1una", + "sunder4", + "sun6d5erh", + "su4ne", + "2s1unf", + "6sungena", + "2sungl", + "sung4s", + "4s1uni", + "2s1unm", + "2s1uns", + "s4uns.", + "s4unst", + "2sunt", + "2sunw", + "s4unwa", + "3sup", + "4supd", + "sup3p4", + "su2ra", + "sure4", + "su2rei", + "su2rer", + "3surf", + "2s1urk", + "su2r1o", + "2surs", + "s1urt", + "su2s", + "su3s2a", + "sus1e", + "sus3i", + "s3u2t", + "su4te", + "su3tr", + "3suv", + "suz2", + "1sü", + "2sü4b", + "3süc", + "sü2d1", + "süden4", + "3süf", + "3sün", + "3s2üs", + "3süß", + "4s3v2", + "svoran4", + "2s1w", + "4s3we", + "swe6gers", + "sweh2", + "4swie", + "4swil", + "4swink", + "4swis", + "4swit", + "s3wü", + "1s4y", + "2syl1", + "sy2lo", + "sy2lu", + "sym3", + "sy2n3", + "3synd", + "sy4no", + "3sy4s3", + "2s1z2", + "4s3za", + "4szä", + "4s3zei", + "4szel", + "3s2zena", + "3s2ze3n2e", + "4szent", + "4szer", + "s2zes", + "4szet", + "4szeu", + "3s2zew", + "4s3zie", + "4s3zo", + "s3zs", + "4s3zu", + "4s3zü", + "4szw", + "2ß3a4", + "2ß1ä", + "2ß1b4", + "2ß1c", + "2ß1d2", + "1ße", + "2ß1e2b", + "2ß1ec", + "2ß1ef", + "2ß1e2g", + "2ß1ei", + "2ß1ek", + "ße2la", + "ße2le", + "2ßelek", + "2ß1emp", + "ße4n3a2", + "4ßenerg", + "ße2ni", + "ß1enke", + "ße2no", + "3ß2ente", + "2ßentz", + "2ß1e2p", + "ßer3b", + "ßer2ei", + "ßer2la", + "2ß1er4se", + "ßer3t", + "ß1erw", + "2ß1es2s", + "2ß1est3r", + "2ß1ex", + "2ß1f4", + "2ß3g2", + "ßge2bl", + "2ß1h", + "1ßi", + "ßi2g1a2", + "ßig4s", + "2ß3i2k", + "2ß1il", + "2ß1im", + "2ß1in", + "2ß1j", + "2ß3k4", + "2ß1l", + "ßler3s", + "2ß1m", + "ßmut4", + "2ß3n2", + "2ß3o2", + "ßos2", + "2ß1ö2", + "2ß1p2", + "ß1q", + "2ß3r2", + "ßrö2", + "2ß3s4", + "ßsau4", + "ßsch2", + "ßst2", + "2ß1t", + "ßt1in", + "ß3tü", + "2ß1um", + "ß1unf", + "2ßunt", + "2ß1ü4", + "2ß1v", + "2ß1w", + "2ß3z2", + "1ta", + "3ta.", + "4taa", + "5taan", + "4tab.", + "3taba", + "ta2b3an", + "2t1abb", + "4tabd", + "3tabel", + "2taben", + "2tabf", + "2tabg", + "2tabh", + "2t3a2bit", + "2tabk", + "2tabla", + "4tabm", + "2t3abn", + "2ta4br", + "4tabs", + "t1abst", + "2t3abt", + "3tabu", + "4tabw", + "4tabz", + "2t1ac", + "4tachs", + "3tacu", + "t1ada", + "2tadd", + "ta2der", + "tadi3", + "tadi5o4", + "t1adm", + "ta2dol", + "2t1a2dr", + "ta3d2s", + "4tadt", + "tad4tr", + "ta2er", + "3taf.", + "3tafe", + "4tafet", + "4taff", + "t1afg", + "t1afr", + "3tag", + "ta2ga", + "ta2g1e2i", + "t3agent", + "tage2s", + "4t1agg", + "4ta3gl", + "4t1a2go", + "tag4san", + "tags3c", + "tag4st", + "tah2", + "tahls4t", + "ta3i2k", + "tai2l1", + "ta1ins", + "tai4r", + "ta1ir.", + "ta1i2s", + "2t1a2ka", + "ta3kes", + "2t1akk", + "ta2kro", + "tak4t1o2", + "t2aktu", + "2takz", + "3t2al.", + "ta2la", + "ta3lad", + "ta3lag", + "tal3au", + "3talbr", + "tald4", + "3tale", + "tal2en", + "ta4l3end", + "tal3eng", + "ta4l3ens", + "taler2", + "ta4ler3g", + "ta2let", + "tal2ga", + "tali6ene", + "tal4l3ac", + "tall3ei", + "tal2l1ö4", + "tall3s2", + "2t1alm.", + "3talo", + "ta2lop", + "ta2l1o2r", + "t1alta", + "tal3th", + "talt4r", + "ta2lu", + "2tam", + "3tam.", + "3tame", + "t2amen", + "t1a2mer", + "ta2mi", + "tamm1a", + "tam4m3er", + "t1ampl", + "3tams", + "4t1amt", + "t1a2na", + "tan3ab", + "4tanal", + "ta4nat", + "2t1a2nä", + "2tanb", + "3tanc", + "tan3d4ar", + "tan2d3r", + "tand4st", + "ta4nerf", + "4tanf", + "2t1ang", + "3tang.", + "t3angeh", + "t2ango", + "tan4gra", + "2tanh", + "t2anho", + "t4ani", + "3tanj", + "3tank", + "tan2kl", + "4tankr", + "4t3anl", + "t1anm", + "2t1anna", + "3t2anne", + "t1ano", + "2tanom", + "2tanp", + "t1ans", + "t2ans.", + "4tansi", + "tan4tan", + "t4ante.", + "4tantei", + "2tantr", + "2tanwa", + "2tanwä", + "t2anz.", + "t1anza", + "4tanzei", + "3tanzk", + "3tanzr", + "2t1anzu", + "2tanzü", + "tan2z1w", + "tao2", + "ta3or", + "t4ape", + "ta2pes", + "2tapf", + "ta2pl", + "ta4poka", + "t2appe", + "ta2ra", + "2tarab", + "3tarabb", + "ta3rak", + "3tar5al", + "2taram", + "tar3ap", + "ta3ras", + "t2arau", + "2tarb", + "3tarba", + "3tarbek", + "3tarber", + "3tarbi", + "3tar3bl", + "2tarc", + "3tarchl", + "3tarchr", + "3t2ard", + "ta2rel", + "ta2r1er", + "tar3g", + "ta1r2h", + "3tari", + "2tark", + "3tark4l", + "3t2arko", + "t2arl", + "2t1arm", + "t2armä", + "ta2rom", + "2tarot", + "2tart", + "3t2arta", + "3tartei", + "tar6ter6e", + "3tartex", + "3t2arth", + "t1arti", + "3t4artis", + "tar4to", + "tar2tr", + "3tarty", + "ta2ru", + "t1arz", + "2tarzt", + "3t2as.", + "ta3s2a", + "3tasc", + "4t1asp", + "2t3assi", + "3tast", + "tas4tem", + "tas4to", + "t2asy", + "t4at.", + "ta2ta2b", + "ta2tan", + "3tatb", + "t4ate", + "tat1ei", + "t5a2tel", + "ta2tem", + "3taten", + "ta2t1er", + "2t3atl", + "2tatom", + "2ta2tr", + "3tatsa", + "2tatt", + "tau2b1a", + "3taubh", + "tau2bl", + "tau2b3r", + "tauchs4", + "tauch5sp", + "4taud", + "2t1auf", + "3taufe.", + "4taufk", + "4t3aufl", + "tau3f4li", + "4taufm", + "t3au2f1o", + "4taufp", + "taufs2", + "4taufw", + "3taug", + "4t3auge", + "t1auk", + "3taume", + "4t1ausb", + "3tausc", + "tau6scha", + "tau6schm", + "tau6schr", + "tau6schw", + "2tausd", + "t2aus2e", + "4t1ausf", + "4t3ausg", + "t1ausk", + "4tausl", + "2tausr", + "4t3auss", + "2tausü", + "2t5ausw", + "4t3ausz", + "4tauu", + "3tav", + "4tava", + "ta2van", + "3tax", + "4t1axt", + "3taz", + "1tä", + "2tää", + "4täb", + "tä1c", + "4täd", + "t2äf", + "3täg", + "4tägä", + "4tägy", + "2täh", + "4täll", + "2t1ält", + "4tä2m", + "t1ämt", + "t1ängs", + "3tänz", + "4t1äp", + "2täq", + "tä4reng", + "tä2ru", + "2tärz", + "tä2s", + "t2ät", + "3tätigk", + "4tätt", + "2täug", + "2täuß", + "2täx", + "1tà", + "4t3b4", + "tbauer4", + "tber2e", + "tblocken8", + "tby4t", + "4t1c", + "t3cha", + "t3che", + "tch2i", + "tch3l", + "t3chr", + "t2ch1u", + "tch1w", + "t4ck", + "t3cl", + "tcor2", + "t3cr", + "4t3d2", + "tdar2m1", + "tdun2", + "1te", + "3te.", + "te2a2", + "te3ab", + "tea3c", + "te3ag", + "2teak", + "te3al", + "3team", + "te3an", + "te3ar", + "tea4s", + "3teba", + "t4ebb", + "2t1e2ben", + "t2ech", + "2techd", + "2teche", + "2techk", + "2techm", + "3techn", + "2techt", + "te2chu", + "2teck", + "te3cker", + "te2cki", + "2t1ecu", + "te2dit", + "te1em", + "teen1", + "te2er.", + "te1erw", + "te2es", + "3tefa", + "2teff", + "2t1egg", + "2teh", + "3teha", + "te2hac", + "3tehä", + "3tehi", + "te2him", + "3tehö", + "t1ehr", + "te3hu", + "3tei.", + "3teic", + "tei1fl", + "2teign", + "teik4", + "3t2eil", + "tei6lent", + "teim2", + "2tein", + "teinen4", + "tei6nens", + "tein6hab", + "t3einkü", + "2t1eis.", + "t1eisb", + "te5isch.", + "teit4", + "t1eiw", + "tei3z", + "te2kel", + "3teko", + "tekt4", + "3tel.", + "3te2la", + "tel3ab", + "tel1ac", + "te3lan", + "te4lant", + "tel1au", + "te2lä", + "telb4", + "3telbr", + "3tel3d4", + "tel1ec", + "tel3ehr", + "2telem", + "tel3eng", + "te2ler", + "tele3s", + "te2leu", + "4t3elf.", + "3telg", + "3telh", + "tel1in", + "te2lit", + "3telk", + "tel3le", + "tel6lein", + "tel3li", + "4tellu", + "3teln", + "te2lob", + "te3lom", + "te4lost", + "te2l1ö", + "3telp", + "3tels", + "tel3s2k", + "3telt4", + "tel3ta", + "3telw", + "3tem.", + "3t2ema", + "te2man", + "te2m1ap", + "te2mau", + "2tem2bo", + "te2m1ei", + "te2m1er", + "te2mi", + "tem3i2m", + "tem3ing", + "2temm", + "te2mo", + "tem1o2r", + "3temper", + "2tempf", + "4tempfi", + "tem3s6", + "te2mu", + "te4mun", + "3ten", + "t6en.", + "ten1a2", + "te4nad", + "te4n3an", + "ten3ar", + "te4nas", + "te4nat", + "ten3au", + "te2n3ä", + "ten3da", + "4t3endal", + "tend4an", + "4tendap", + "4t5endf", + "4t1endl", + "t6endo", + "4t5endp", + "ten3d4r", + "te2n1e2b", + "te2nef", + "te2neh", + "ten3ei", + "te3n4ei.", + "tenei4d", + "tene4m", + "tenen1", + "te4n3end", + "te4nene", + "te4neng", + "te4nens", + "4t3energ", + "te4n3ern", + "tenf4", + "4t1eng.", + "teng2a", + "ten4gag", + "4t3engla", + "te2ni", + "te4nil", + "ten1im", + "te4n3in", + "tenk4", + "ten3n2", + "te2nol", + "te2nos", + "te3nö", + "6t3ensem", + "tens2p", + "tens3th", + "t1entb", + "4tentd", + "4t3entl", + "4t3entn", + "t1ents", + "4t5entw", + "4tentz", + "t2enz", + "ten4z3er", + "teo2f", + "2tep.", + "2t1e2pi", + "2teppu", + "tept2", + "3t4er.", + "t4era", + "ter3a2c", + "te2rad", + "te1ral", + "ter3alg", + "te3r4ane", + "te2r3ap", + "tera4s", + "4terbos", + "2t1erbs", + "2t1erbt", + "3terc", + "4t3erde.", + "ter3d2s", + "3tere.", + "te2r1e2b", + "te2rec", + "t3ereig", + "te5rek", + "3tere2m", + "te4rema", + "te4r3end", + "te4rene", + "te4reng", + "te4r3ent", + "teren5th", + "2tereo", + "3terer", + "terer3k", + "terer6ku", + "terer3l", + "te4r3erp", + "te4rers", + "te4rerw", + "3teres", + "t4erfr", + "terg2", + "ter3ga", + "6tergebn", + "t6ergem", + "t6erges", + "t6ergew", + "ter3gl", + "6tergrei", + "t4ergru", + "t6erhall", + "t6erhau", + "t4erhäu", + "t4erhei", + "7t2erhi", + "t2erho", + "6terhöhu", + "t2erhu", + "te3ria", + "4terii", + "ter3iko", + "2teril", + "teri4o", + "te2r3it", + "teri4ta", + "4terklä", + "t4erlä", + "t4erli", + "ter4lös", + "3term", + "t2ern.", + "ter4nar", + "2t6ernc", + "t4ero", + "te1rob", + "ter4obe", + "2teros", + "t1e2r1ö", + "t4erp", + "t4erra", + "ter4re.", + "t4erro", + "t4ers.", + "t2erse", + "t4erst.", + "t6erstad", + "ter6stat", + "t4erstä", + "t4ersti", + "t4erstr", + "t4erstu", + "t4erstü", + "tert2", + "ter3ta", + "ter4trä", + "t4eru2", + "te4r1uf", + "te3rung", + "t4erv", + "4t3erwäh", + "ter3z2a", + "2t1erzb", + "t4erzei", + "4terzeu", + "ter3zw", + "3tes", + "t2es.", + "tesa2k", + "tes2c", + "tes2ka", + "tes4pen", + "te2spr", + "2t1essa", + "tes3tan", + "te3stei", + "tes4tel", + "tester4", + "tes6terg", + "tes6t5erh", + "tes6terk", + "2testn", + "testo3", + "t3est3ri", + "te2su", + "tet2", + "3tet.", + "t1eta", + "te4tabl", + "2te2tap", + "2te2tat", + "3tete", + "teten3", + "2t1e2th", + "te3tho", + "4tetl", + "tet3ti", + "3teuf", + "3teum", + "3te1u2n", + "4teunu", + "2t1eup", + "3teur.", + "te2va", + "te2vi", + "tewa2s", + "3tewo", + "2texam", + "2t1e2xe", + "2t1e2xi", + "4texp", + "tex4ta", + "2t1exz", + "tè2", + "4t3f6", + "4t1g2", + "tga4s3er", + "tga2su", + "t3ge", + "tge4nen3", + "tger2a", + "tger2i", + "tg4r", + "4th.", + "2t1h2a", + "3tha.", + "3t2hag", + "4thak", + "3thal.", + "3thalh", + "t4hali", + "t2hals", + "t2han.", + "t3hand", + "t3hap", + "4t3hau", + "2t1hä", + "3thäi", + "4thäl", + "2thb", + "th2e", + "1the.", + "3t4hea", + "2t1heb", + "2t1hef", + "2t1hei", + "the1in", + "4theit", + "t2hek", + "3thema", + "2themd", + "2themm", + "1then", + "t1henn", + "3theo", + "t1herd", + "thero1", + "t1herr", + "2t1herz", + "4t1hess", + "t2heu", + "2thf", + "1th2i", + "3thi.", + "thic3k4", + "thi3er.", + "2t1hil", + "2t1him", + "2t1hin", + "thi3nu", + "2t1hir", + "2thk", + "2th3l", + "4th3m", + "thmu2", + "2th3n2", + "1tho", + "2t1hob", + "tho3chr", + "t1hof", + "2t1hoh", + "t1holt", + "2tholz", + "t2hon", + "4thops", + "tho1s", + "t1hose", + "t1hot", + "4thote", + "2thou", + "t1hov", + "4thö", + "2thp", + "1th2r2", + "2ths", + "2tht2", + "t1hu", + "2thub", + "2thuh", + "4t3hun", + "2thut", + "2t1hü", + "2thv", + "1ti", + "t4ia", + "ti3ac", + "ti1ag", + "tial2l", + "ti3alo", + "ti1a2m", + "3tib", + "3ticc", + "ti1ce", + "3ticket", + "t2id.", + "2tidee", + "ti4d3en4d", + "ti3dy", + "3tief.", + "4tiefel", + "3tiefl", + "tie2fr", + "2tieg4", + "2tieh", + "ti2e1i", + "ti1el", + "ti2el.", + "tiel3a", + "ti3e4n1", + "tien3s", + "3tier", + "tie4rei", + "tie4reu", + "ti2ern", + "tie3s2t", + "2tieß", + "ti1eu", + "3tif.", + "ti3fe", + "ti1f4r", + "tifter6k", + "3tig", + "ti4gerz", + "ti2git", + "tigs4tr", + "tih2", + "3tij", + "ti2kam", + "ti2kar", + "tiken2", + "ti4kent", + "ti3k4ere", + "ti3kerl", + "ti2kin", + "ti4klu", + "ti2kn", + "ti2kop", + "tik1r", + "ti2kra", + "ti2krä", + "ti4krei", + "tik5t", + "ti2lar", + "til3d", + "ti2lei", + "ti2lel", + "3tilg", + "2tillu", + "ti2lö", + "tilt4", + "ti2lu", + "ti2ma2g", + "tim4man", + "t3immat", + "timmer4", + "tim6merg", + "3timo", + "2timp", + "tim2s", + "3tin.", + "t4ina", + "ti3naf", + "ti3nak", + "ti2n3an", + "t1ind", + "ti5n2e", + "tine1i", + "2t1inf", + "3ting", + "tin2ga", + "ting3l", + "ting3s", + "2t1inh", + "3tinis", + "t1in1it", + "t1inka", + "tin2k1l", + "tin2kn", + "tin2kr", + "t1inku", + "t2inn", + "ti2nor", + "t1ins", + "3tins.", + "t3insa", + "t2insä", + "4t3inse", + "tin4spa", + "tin4sum", + "t1int", + "3tinte.", + "ti3nu", + "tin2um", + "4t1inv", + "3tio", + "ti2osk", + "tioxi3", + "3tip.", + "2tipe", + "ti3p4l", + "3tipp", + "3tips", + "ti4que.", + "3tirad", + "ti1rh", + "ti4ron", + "3t2isc", + "ti6schei", + "ti4schu", + "tisch3w", + "ti2sei", + "tis2el", + "ti3sk", + "2t1isl", + "t1iso", + "ti2sp", + "t1isr", + "tiss4", + "ti3s2th", + "tis3ti", + "ti1s4tr", + "ti2s1u", + "t1it2a", + "ti2tal", + "3ti3te", + "ti1th", + "3titi", + "2ti3tu", + "3tiu", + "tium4s", + "3tiv", + "ti2van", + "ti2vel", + "ti4vene", + "tiver2", + "ti4verh", + "ti4verk", + "ti4verl", + "ti2v1o", + "ti4v3r", + "ti2za", + "ti2zir", + "2t1j", + "4t3k4", + "4t1l2", + "tlan2g", + "tl4e", + "t2lef", + "tlei6der", + "tle2ra", + "6t3li", + "tlings5", + "tlit1", + "t3lo", + "t5lö", + "tlung4", + "4t1m4", + "tmal2", + "tma2st", + "tmen8schl", + "tmen6t5", + "tments4", + "t3mo", + "tmo4des", + "4t3n4", + "t5na", + "tnes2", + "1to", + "3to.", + "to4as", + "to5at", + "t2oba", + "4tobj", + "tob2l", + "t1obs", + "3tobt", + "to1c", + "t3ochs", + "3tocht", + "to6ck5ent", + "3t4od", + "tod1er2", + "to4dun", + "tof4fa", + "tof6f5ent", + "tof4f3er", + "2toffi", + "toff3s", + "3tog", + "2t3ohr", + "3toi", + "4toi.", + "toi4r", + "4toiz", + "5toj", + "3tok4", + "3tol", + "to3le", + "4tolp", + "4tolz", + "tomar4b", + "to4mene", + "3tomi", + "to2min", + "3tomo", + "to2m1u", + "to4mun", + "to2nan", + "ton3au", + "tond2", + "to2n2eh", + "toner6ke", + "to2nob", + "2tony", + "3too", + "3top.", + "to2pad", + "to2pak", + "to2pan", + "to3pas", + "to2pat", + "top1hi", + "3topo", + "2to4pt", + "3tor", + "t4or.", + "tora2g", + "to4rän", + "4torc", + "t1ord", + "t2ordi", + "4t3ordn", + "t4ore", + "to2rei", + "to2rel", + "to2rem", + "to6renna", + "tor4fan", + "t1or3g", + "4torga", + "t5orient", + "torin4s", + "tor3int", + "5tork", + "to2rö", + "t4ors", + "4t1ort.", + "tor3t2a", + "t1orth", + "4tortn", + "4tort2s", + "to4ru", + "to3rü", + "to4rüb", + "4tory", + "to3sc", + "to3s2e", + "to3s2h", + "to4ska", + "to3s2p", + "4toss", + "3to1st2", + "4toß", + "to1ßu", + "to2tä", + "3tote", + "to2tho", + "3totr", + "tots2", + "5t2ou", + "touil2", + "to3un", + "3tow", + "to1x", + "3toz", + "1tö", + "3töch", + "4töck", + "2t1ö2d", + "2tö2f", + "4t1ök", + "2töl.", + "3tön", + "t2ör", + "t1öst", + "3töt", + "2t3p4", + "tpf4", + "tpi2n", + "2t1q", + "1t2r4", + "2tr.", + "5tra.", + "3trac", + "tra3cha", + "tra3chl", + "2t3rad.", + "2trade", + "tra4dem", + "4t3radie", + "tra4fah", + "tra4far", + "t4rag", + "3trahi", + "4trahl", + "2trahm", + "5t4rai", + "3trak", + "4t3rake", + "t4rakt", + "3tral", + "tral3l", + "3t4ran.", + "4trand", + "4trang", + "t3rann", + "5t4rans", + "tra2st", + "4traß", + "4traub.", + "4trauc", + "t4raue", + "t4rauf", + "2traup", + "4trauß", + "5träc", + "2träd", + "3träg", + "3träne", + "4träng", + "4träs", + "4träß", + "2träuc", + "4träus", + "4träuß", + "4t5re.", + "2trea", + "t3reak", + "4treb", + "tre2br", + "4trec", + "t3rech", + "t4reck", + "5treck.", + "tre5cke", + "2t3red", + "3tref", + "4trefe", + "5treff", + "4trefl", + "4trefo", + "4treg", + "t3reh", + "t4rei.", + "3t4reib", + "4treic", + "4treif", + "2t3reig", + "2t3reih", + "2treim", + "4t3rein", + "2t3reis", + "tre7isch.", + "4treit", + "t3reiz", + "2trek", + "4t3rel", + "t4rem", + "t4ren.", + "3trend", + "4trendi", + "3trennu", + "t3rent", + "2trepe", + "2t3repo", + "3trepp", + "t3repr", + "t4rer", + "5t4res.", + "tre2ta", + "t4rete", + "tret3r", + "2t3rett", + "3treuh", + "4t3rev", + "t4rex", + "4trez", + "5t4ré", + "2t3rh", + "3tri", + "t4rib", + "4tric", + "t4rick", + "t4rid2", + "5trieb", + "trie3fr", + "tri4ena", + "tri2er", + "tri4ers", + "trie1s", + "4trig.", + "5trigg", + "tri3gl", + "t4rik", + "tri4ke.", + "tri4kes", + "5triko", + "4t3rind", + "4tring", + "tri3ni", + "4t3rinn", + "t4rip", + "4tript", + "4t3riv", + "tri2x", + "trizi1", + "5tro.", + "tro3b4", + "4trock.", + "3troe", + "tro4kes", + "trol4la", + "6trom.", + "tro4men", + "tro2mi", + "4tromk", + "4troms", + "4tromv", + "3tron", + "tro3na", + "t4rop", + "tro1pe", + "3tropf", + "5tros.", + "tro5sm", + "3trost", + "t1rot.", + "2trout", + "3troy", + "4t3röc", + "2tröh", + "6tröm", + "3tröp", + "3trös", + "4t3röss", + "3tröt", + "3trua", + "3trub", + "2t3ruc", + "4truf", + "4truk", + "trum2", + "t3rumä", + "trums1", + "t3rund", + "3trunk", + "5t4rup", + "t3russ", + "2trut1", + "tru2th", + "4truw", + "trü1be", + "trü1bu", + "2t3rüc", + "trücker6", + "t4rüg", + "3trümm", + "try1", + "2ts", + "4ts.", + "ts3ab", + "t4sachs", + "t2s1a2d", + "ts1ahn", + "t2sall", + "t2salt", + "t4samp", + "t4s1amt", + "t2san", + "ts3ane", + "tsa2r", + "ts3are", + "ts3ari", + "t2s1a2s3", + "t2sau", + "ts2av", + "t2säh", + "ts1än", + "ts1äus", + "t4scham", + "t6schart", + "t3sche", + "t4schef", + "t3schl", + "tsch4li", + "t4schro", + "t3schü", + "ts4cor", + "t2s1e2b", + "tse2e", + "t2sef", + "tse4he.", + "ts2eil", + "t3seme", + "ts1eng", + "ts2ens", + "t2s1ent", + "t2s1ep", + "t2s1er", + "t6s5essen", + "tse2t", + "ts1eta", + "t2s1eti", + "t2s1e2v", + "t2sex", + "t3sexi", + "ts3he", + "t2s1i2d", + "t2s3i2k", + "t2sim", + "tsing4", + "t2sini", + "ts1ir", + "4tsk", + "t3skal", + "ts4kele", + "tski2", + "t4s3ko", + "t1slal", + "ts1off", + "t2s1op", + "tso2r", + "ts1orc", + "t2s1ori", + "ts3ort.", + "t2sö", + "t2spac", + "t2spal", + "ts1pas", + "t2spat", + "ts3pate", + "t2spä", + "t3sped", + "t3spei", + "t3s2pek", + "ts4pend", + "t2sph", + "t3s2pi", + "t4s3pic", + "t4spins", + "ts3ple", + "t2spo", + "t3s2pon", + "t3s2por", + "t2spro", + "ts2pul", + "ts2put", + "ts3s4", + "4t1st4", + "t4stabe", + "t2staf", + "t4stag", + "ts3tak", + "t4stale", + "t4s3tanz", + "t4stas", + "t4stat.", + "t4s3täti", + "t2stea", + "t3stein", + "ts4terb", + "t3s4tern", + "t3s4tero", + "t4sth", + "t3stif", + "t3stim", + "t4stit", + "t4stoch", + "t4stoi", + "ts4tol", + "t4ston", + "t3strec", + "t4stren", + "t4strie", + "ts2tu", + "t5stub", + "ts4tüm", + "t4sty", + "ts1u", + "t2su.", + "5tsubi", + "t2sumg", + "t2sums", + "t2sumv", + "t2sumz", + "t2s3un", + "tswa2s", + "t3sy", + "4t1t", + "tt1ab", + "tt2ac", + "tt3achs", + "tt1ad", + "tt2ag", + "tta6g5ess", + "t4t1ah", + "tta2ke", + "tt2al", + "t4tan4a", + "t2tanm", + "tt2ant", + "t4t1ap", + "tt1art", + "tt3atr", + "tt1äh", + "tt1ebe", + "tt1eif", + "tt1ein", + "t2t1eis", + "tte4l1a2", + "tte4l3e4b", + "tte4len", + "tte4lin", + "ttel1o", + "ttels4t", + "ttel5ste", + "t2temu", + "tte4na", + "tten6sem", + "t4tentb", + "tten3te", + "t4tentf", + "t4tents", + "tten3z", + "t2teo", + "tt4ere", + "tt3erfo", + "tte4rik", + "tte2ro", + "tt2erö", + "tt4es1", + "tte4s3a2", + "tte4s3ä2", + "tte2so", + "ttest4r", + "tt2häu", + "tt1hi", + "t2t1ho", + "t2ti4d", + "t4t3igi", + "t2tins", + "tt2int", + "t2tiso", + "t6t3la", + "t4torg", + "t2trou", + "tt3rü", + "ttschi4", + "tts1eh", + "tt2sen", + "tts1p", + "tt2spe", + "tt2spr", + "tt4s3tät", + "tt2sum", + "tt3s2z", + "tt5t2", + "tt1u2f", + "t3tü", + "tt3z2", + "1tu", + "3tua", + "tu4ale", + "tu1alm", + "tu1alv", + "tu3ant", + "2tub2", + "tuba3b", + "3tuc", + "tu2chi", + "tu1cho", + "2tud", + "tudie4n3", + "3tue", + "tu2ere", + "2tuf", + "tuf2e", + "tu3fen", + "t3u2fer", + "3tuff", + "tu2gan", + "4tuh", + "tuh4ler", + "tu1ist", + "tu2kr", + "tul2i", + "3tum.", + "tum2b5l", + "3tume", + "4t3umf", + "2t3umg", + "2t1umh", + "2t3umk", + "2tuml", + "3t2umo", + "2t3umr", + "4t3umsat", + "2t1umsc", + "tum2si", + "tum2so", + "tum4s5tr", + "2t3umt", + "2t1umw", + "2t3umz", + "3tun.", + "2t1una", + "2t1und", + "tund2e", + "tun2en", + "2t3unf", + "3tung", + "t3unga", + "tung4s5", + "2tunif", + "2tu2nio", + "2tuniv", + "2t1unm", + "3tunn", + "t1u2no", + "t3uns", + "3tuns.", + "4t3unt", + "2t1unv", + "2t1up.", + "t1upg", + "tu2r1ag", + "tu2ran", + "turan4l", + "tu2ras", + "tu2rau", + "tu2rä", + "tur1c", + "tu2r1e2b", + "tu2rei", + "tur3eis", + "tu4rene", + "tu2r1er", + "tu4res", + "tu2re4t", + "tu2r3e2v", + "tur3f4", + "tur3g2", + "tur1in1", + "tur4mun", + "3turn", + "tu2r3o", + "tu4ru", + "3tus", + "tu2sa", + "tu4schl", + "tu2se", + "tu2so", + "tu3t2a", + "tuto5", + "tuto3re", + "2tü", + "4tüb", + "tü3ber.", + "3tüch", + "tück2s", + "3tüf", + "4tüh", + "3tüm", + "3tür.", + "tür1c", + "3türe", + "3türg", + "3tür3s", + "3türw", + "4türz", + "3tütc", + "3tüte", + "4tütz", + "4t1v2", + "t3vo", + "tvoran4", + "4t3w4", + "t5wa2", + "twi4e", + "t4wist", + "1ty", + "2t1ya", + "3typ", + "ty2p1a", + "ty1s2", + "2t1z", + "t2za2", + "tz1ag", + "tz3ar", + "tz1au", + "t2z1ä", + "t3zäh", + "tz1ec", + "t2z1e2d", + "tz1ehr", + "t2z1eie", + "t4z1eis", + "tze2m", + "tz1emi", + "tze4n1", + "tz2ene", + "tzen5s4t", + "tzen3ta", + "t4zentg", + "t4zentl", + "t4zents", + "tze4reb", + "tzer6gre", + "tz1erw", + "tz2er3z", + "tz3erzi", + "tze2s3", + "tz1e2t", + "t2z1i2d", + "tzi4m", + "tz1imi", + "tz1int", + "tz1inv", + "t2z3om", + "t2zop", + "tz2th", + "tz4tin", + "tzu2gu", + "t2zuni", + "tzwan4d3", + "tz1wä", + "tz1wi", + "t3zwie", + "tz1wu", + "2ua", + "u3a2b", + "u3a2c", + "ua2dan", + "uad4r", + "ua2g", + "u1al.", + "u1a2l1a", + "u1a2l1ä", + "u1alb", + "u1ald", + "u3aleb", + "u3a4lent", + "u3aler2", + "ua4lerg", + "ual3erk", + "u3a2let", + "u1alf", + "u1alg", + "u1alh", + "u3a2lid", + "u1aln", + "ua2l1o2", + "u1alp", + "u1alr", + "u1als", + "u1al5t4", + "ua2lu", + "u1alw", + "u1alz", + "u1am", + "uan2a", + "u1ans", + "u3ar.", + "uara2b", + "u1ars", + "uar4t3an", + "ua3sa", + "uasi1", + "ua2th", + "uat2i", + "uat2o", + "u3au", + "u1ay", + "u1äm", + "uä2s", + "u1äu", + "2u1b", + "u2barb", + "ubb4l", + "ube2be", + "ube2e", + "u2b1ehe", + "u4b3eins", + "u2b1e2m", + "ube4n1a", + "uben3o", + "ub2er", + "u4b3erde", + "ubert4", + "ub4es", + "ub1eul", + "u3bit", + "ub2l", + "ub3läu", + "ub3lic", + "ub3lu", + "ub4lut", + "u2bob", + "u2bop", + "u2boz", + "u2b3rit", + "ub4rü", + "ub2san", + "ubsau2", + "ub4s3che", + "ub2s1o", + "ub2sp", + "ubst2", + "ub3t2h", + "4uc", + "uc1c", + "uch1a", + "u1cha.", + "uch1ä", + "u1che", + "uch1ec", + "u2ched", + "uch1ei", + "ucherin8t", + "u3ches", + "u1chi", + "uch3im", + "uch1in", + "uch3l", + "uch3m", + "uch3n", + "uch1op", + "u2ch3r", + "uch4sel", + "uch2so", + "uch2sp", + "uch2ta", + "uch3tan", + "uch6t5erf", + "uch6t5ert", + "u1chu", + "uch3ü", + "uch1w", + "u1ci", + "uck3elf", + "u2ckem", + "u4ckent", + "uck2er", + "ucker8geb", + "u2ck3i", + "uck4sti", + "u1cl", + "2u1d", + "u3d4a", + "uda3d", + "ud2e", + "ude3i4", + "udein7", + "ude2n1", + "uden3e", + "uden3s2", + "udert4", + "udes2", + "udi3en", + "uditi4", + "ud2o", + "u3dob", + "u2d3on", + "ud3ra", + "u3dru", + "4u1e", + "ueb4l", + "ue1ch", + "ue2ck", + "u2ed", + "ue2en4", + "u2eg", + "u2eh", + "ue2ke", + "u4ela", + "ue2lek", + "ueli4", + "uel2la", + "u3eln", + "ue2mi", + "uen1", + "u3en.", + "ue4n3a2", + "ue2nä", + "u3end", + "uene2", + "ue2neb", + "ue2ner", + "uen4gag", + "uenge2", + "uenge4m", + "uengene7", + "uenge4s", + "uen2gl", + "u3e2ni", + "uenk4", + "ue2no", + "uen6zene", + "uen2zu", + "u2ep", + "ue2r3a2", + "uera4t", + "ue2r1ä", + "uerb2", + "uer6baut", + "uer3d2", + "uere2", + "ue2rec", + "u5ereinn", + "uer3eis", + "uer3ela", + "u3eremp", + "u3e4r3ent", + "ue3r4erb", + "u3ererf", + "ue4rer4g", + "uerer4h", + "uerer4k", + "uerer4m", + "ue6rersc", + "uerer6sp", + "ue6rerst", + "uer3esk", + "ue2re4t", + "u3erex", + "uer3g2", + "uer4geb", + "u3erh", + "ueri2d", + "ue2r1i4m", + "u3erin4t", + "u3erl.", + "u3ern", + "uer4nan", + "uer4nar", + "uer4ne", + "uern3s4t", + "ue2r3o4", + "uer2ö", + "u3errü", + "uer3sc", + "uerst6", + "uer3t2", + "u3eruh", + "u3erum", + "u3erunf", + "u3erunt", + "uer3z2", + "ue2ta", + "ue4tek", + "ue2tik", + "uety2", + "u2ev", + "ue2x1", + "uf1ab", + "u3fac", + "ufa2ck", + "u3fah", + "u3fal", + "ufall4", + "u3fam", + "ufa2n", + "uf3ane", + "u2f3a2r", + "u3fas", + "uf1aß", + "ufa2t", + "uf1au", + "u2f1än", + "u2f1äs", + "u2f1ä2ß", + "u2f1ei", + "ufel4s3a", + "u2f1em", + "4ufen", + "u3fen.", + "u2fent", + "u2ferf", + "u2f1erh", + "u4ferla", + "u4ferle", + "u4ferne", + "u2f1et", + "2uff", + "uf3fe", + "uff4l", + "uf2fro", + "u2f1id", + "u2fim", + "u2f1ins", + "uf3l", + "u2fob", + "ufo2r", + "uf1ori", + "uf3r", + "uf5sä", + "uf2spo", + "uf4stab", + "2uft", + "ufta2b", + "uft1eb", + "uft3erd", + "uft3er4g", + "ufter4l", + "uft3s4", + "u2fum", + "2u1g", + "ug2abe", + "u4gabte", + "ug1a2d", + "ug1ak", + "u2gana", + "u2ganb", + "u2gani", + "u2g1ans", + "u2gant", + "ug1ap", + "u2g1ar", + "uga2s", + "ug1au", + "ug3d2", + "u3ge.", + "u2g1ec", + "ug1e2i", + "u2geig", + "u2gein", + "uge4lob", + "ug1emi", + "ugene2", + "ugen3s2", + "u2g1erf", + "u2g1erl", + "u2gerr", + "u2gerv", + "u3ges.", + "u2g1esk", + "ug2et", + "ugg2", + "ugge4st", + "ug2gl", + "ugg4t", + "ug3hu", + "u2g1i2d", + "u2gim", + "ug1in", + "u2g1l", + "u4glä", + "u6gleitb", + "u6gleitu", + "u4glic", + "u4glis", + "ug3liz", + "u4g3lo", + "u4glu", + "u4g3n", + "ugo3", + "u2go4b", + "ug3oc", + "u3gon", + "ugo4p", + "ug1o4r", + "u3gos", + "u2gö", + "u2g3rä", + "u2greg", + "u4g3reis", + "u2gres", + "u2g3rie", + "ug3ro", + "u2grou", + "ug3rüs", + "ug3span", + "ug4spe", + "ugs4por", + "ug4spr", + "ug4spu", + "ugst2", + "ug3sta", + "ug3stä", + "ugs4to", + "ug3s4tr", + "ug3stu", + "ug4stur", + "ug3s4tü", + "u2gum", + "ugu3te", + "u2gü", + "u1h", + "uh2a", + "2u3he", + "uhe3a2", + "uhe1e2", + "uhe1s", + "2uhi", + "2uhl", + "uh1la", + "uh2lar", + "uh1lä", + "uh4l3ent", + "uhl3erb", + "uh2li", + "uhl2ö", + "2uhm", + "uhme2", + "uhr1a", + "uhrei4s", + "uh2r3er3", + "2uh3ri", + "uh4rin", + "uh2r3o", + "uh2ru", + "uh4rü", + "uhs4", + "uh3t2", + "u2hu", + "2uhü", + "uh1w", + "2ui", + "ui2a", + "ui1ch", + "ui2che", + "ui4cker", + "u1idd", + "u1ie", + "ui1em", + "u3ig", + "u4ige", + "uil4les", + "u1im", + "u3in.", + "u3isch.", + "u3ischs", + "uis2e", + "uisi4n", + "uis3t", + "uit3s", + "u1j", + "uji3", + "uk2a", + "ukä2", + "uk1äh", + "u3käu", + "u1k2e", + "uke2n1", + "u1ki", + "u1k2l", + "ukle1", + "uk4n", + "u2k1ob", + "uko2m1", + "ukom3a", + "uk2ö", + "u1k4r", + "uk2ta", + "uk2t1el", + "uk4tent", + "uk2t1er", + "uk2tin", + "uk4t3o4ri", + "uk4t3r", + "uk2tum", + "u1ku", + "uku2s", + "uk2ü", + "u1l", + "ul1am", + "ulan2e", + "ul2ar", + "ula2s", + "ul1äm", + "ulb4l", + "ul4dan", + "ul2dr", + "uld2se", + "2ule", + "u2l1el", + "ul1emb", + "ule4n", + "ul1er2h", + "ules3t", + "ule2t", + "ul1eta", + "2ul3f4", + "ulg4", + "2uli", + "ul1id", + "uli2k", + "ul1ins", + "uli1p", + "ul3ka", + "ul2kn", + "ull1au", + "ul3len", + "ul3l2i", + "ul2lo", + "ull3s2", + "ulm2e", + "ulni2", + "ulo2i", + "u2lop", + "u2l1or", + "ulp1h", + "ul2pha", + "ul2sa", + "ul4sam", + "ul2s1ec", + "ul2sei", + "ul2ser", + "uls2th", + "ul2sum", + "4ult2a", + "ul3tan", + "ult3ar", + "ul2tau", + "ulter4m", + "ul3ti", + "ul4tri", + "ult3s", + "u2lü", + "ul2vr", + "ulz2w", + "2uma.", + "u2maa3", + "u2mab", + "u2m1ad", + "u2m1a2k", + "um1all", + "um1ang", + "um1anz", + "u2m1ap", + "um1ar", + "u2marc", + "u2marm", + "u2mart", + "u2matl", + "u2matm", + "um1aus", + "u2maut", + "u2m1äh", + "1umd2", + "u3me.", + "u2m1ef", + "u2m1ein", + "ume2n1e", + "um5engel", + "umer2a", + "u2m1erf", + "um1erg", + "u3merk", + "u2m1erl", + "um1erw", + "umes2t", + "1umf", + "4umfi", + "1umg", + "um1ind", + "um1inh", + "um1ir", + "umi2t", + "um1ite", + "1umk", + "1uml", + "2umme", + "um2mei", + "um3mi", + "um1ob", + "u3mol", + "um3ot", + "ump2fa", + "ump4fin", + "umpf4li", + "um2pho", + "1umr", + "um4s3an", + "1umsat", + "um4s1er", + "um2sim", + "um4sk", + "um2s1pe", + "um2sum", + "um3t2", + "u2mum", + "u2m1u2r", + "1umz", + "un1", + "4un.", + "2una.", + "1unab", + "un2a3br", + "un2ag", + "un2al", + "u3n2am", + "u2n3an", + "u2nap", + "u2narb", + "2un2a1s4", + "un3at", + "un2är", + "2und.", + "un2da", + "unda2b", + "un2dän", + "1undd", + "2unde", + "un3de.", + "underer6", + "und3erf", + "und3erö", + "underten8", + "under8tend", + "und3erz", + "un2dex", + "1undf", + "2undg", + "un2did", + "un2dim", + "1undn", + "undo2b", + "un2dop", + "un2dor", + "4un2d3r", + "und3s", + "4unds.", + "2undsc", + "un2d1um", + "undü4", + "1undv", + "1undz", + "u3ne2", + "un3eid", + "un3ein", + "un2emi", + "une4n1", + "unen2t", + "une3re", + "une3ri", + "u4nerk", + "u4n3erz.", + "un2es4", + "unf2", + "un3fa", + "unft4s", + "un2gab", + "un2gam", + "un2gat", + "3ungena", + "unger4e", + "1unget", + "1ungew", + "ung5h", + "1ungl", + "un2glu", + "un2go", + "un2gr", + "ung3ri", + "ungs3", + "ung4sa", + "ungs5tr", + "u3nic", + "un2id", + "un3ide", + "4unie", + "3u2nif", + "uni3k4", + "un2im", + "1unio", + "un2ir", + "un3iro", + "un3isl", + "u3n2it", + "1u2niv", + "2unk", + "un2k1a2", + "un3ker", + "un2k1es", + "un2ket", + "un2kne", + "un2ko2p", + "un2kro", + "unk3s2", + "unk4tit", + "unk2tr", + "unlö2", + "unna2", + "un4n1ad", + "unn2e", + "unne4n", + "u2nob", + "uno4r", + "un2os", + "1unr", + "uns2", + "2uns.", + "unsch5el", + "un3se", + "1un3si", + "un3sk", + "un4ski", + "un3sp", + "unsta4g", + "unste4c", + "uns4t1r", + "4unsy", + "4unsz", + "1unt", + "un3ta", + "un3te", + "unte4ri", + "4unti", + "un3tr", + "unt3s", + "2untu", + "3unty", + "2u2nu", + "u3nuc", + "unvol2", + "unvoll3", + "1unw", + "4unwä", + "3unwe", + "u2ny", + "2unz", + "un3z2a", + "unz2e", + "2uo", + "u1o2b", + "u3of", + "u1or", + "u3or.", + "uo2r3a", + "uor3c", + "u3oret", + "uo2ris", + "u3ors", + "uor5t", + "uos2", + "u1os.", + "uote2", + "u1ox", + "uö2d", + "u1ök", + "u1pa", + "3upd", + "u1pe2", + "uper1", + "uperer4", + "up2fa", + "u2pfe2", + "u2pfi", + "up2fu", + "u3p4i", + "up4lu", + "u3po", + "2upp", + "up2pl", + "u1pr", + "upra3", + "u2p3ras", + "up4t3a2", + "upten1", + "up4tene", + "upt3erf", + "upt3erg", + "upt3erk", + "upt3ers", + "up4tin", + "up4t1o", + "up4tr", + "u1q", + "4ur.", + "u1ra", + "u2rab", + "u3raba", + "ura2be", + "u2r1akt", + "u2ral4t", + "u2r1am", + "ura4na", + "u3rand", + "uran6fän", + "ur1ang", + "uran4ge", + "ur2anh", + "uran5s", + "ur1anz", + "ur3ap", + "u2r3ar", + "ura4ri", + "u3rasc", + "ur1asp", + "ura4str", + "ur4ate", + "u2r1att", + "ur1au", + "2u1rä", + "ur1äl", + "ur1ä2m", + "ur1än", + "ur3b2a", + "2urc", + "urch1", + "urcht3e", + "urd2", + "ur3da", + "ur3di", + "ure1e", + "ur1eff", + "ur1eig", + "u2rele", + "ure2n", + "ure4na", + "u4ren4se", + "u4rentn", + "u2r1ep", + "urer3h", + "urer3k", + "ur2ert", + "u2rerw", + "ur1eta", + "ur2e3th", + "ure3u", + "2urf", + "ur2f3l", + "ur2fro", + "urf4spr", + "urf3t", + "ur6gense", + "urg3inn", + "urg1l", + "ur2gla", + "ur2gri", + "urgros4", + "urg1s4", + "uri2c", + "ur1ide", + "uri3en", + "u2r1ind", + "urin6sek", + "urin8stin", + "u2ri2so", + "ur3ku", + "ur3l", + "ur4matt", + "ur2m1au", + "urm2ei", + "ur4mern", + "urmet1", + "ur2mum", + "ur2mun", + "ur3n2e", + "2u1ro", + "urob2l", + "ur1off", + "uroh2", + "uro1s4", + "urost2", + "2u1rö", + "ur3p4", + "2urr", + "ur3re", + "ur2rh", + "3ursac", + "ur2san", + "ursau4", + "ur2s1er", + "ur4s1of", + "ur2spa", + "ur3sze", + "urt2", + "2urta", + "ur2tai", + "urt3ein", + "ur2tro", + "urts2c", + "u3ru", + "uruf4", + "urü2", + "ur2z1a2", + "ur2zä", + "ur2z1ec", + "ur2zep", + "ur2zi", + "ur2z1op", + "urzt4", + "ur2z1w", + "2us", + "us3a2b", + "usa2gi", + "u4s1amb", + "u4samt", + "u2sang", + "us2ann", + "us3ark", + "usa2s3", + "us1ast", + "u2säh", + "u2s1äs", + "u4schab", + "u4schak", + "u3sche.", + "u4schef", + "usch5eic", + "u4sch3eu", + "u3schi", + "usch3mü", + "u3schu", + "usch5wer", + "u3s2e3b", + "u2s1ec", + "use2ei", + "u2s1ei", + "u4sen4se", + "u4sentl", + "u3sep", + "use4rec", + "u2s1erl", + "u2serp", + "us1erw", + "u2s1ese", + "u2sex", + "u2sid", + "usi3er.", + "usi5ers.", + "u3sik", + "usi4kat", + "us1inn", + "us3kl", + "us3oc", + "us1oh", + "u3sol", + "u2sop", + "us1orc", + "us1ou", + "u2spac", + "us3part", + "u2s1pas", + "u3spec", + "u3spek", + "u2sph", + "us1pic", + "u3spit", + "u3s4piz", + "u2spo", + "us2por", + "u2spu", + "usrich7", + "us2s1ad", + "us2s3eb", + "usse4g", + "usse4n", + "us2sep", + "us5ser.", + "uss3erf", + "usser4z", + "us4sesp", + "us2sez", + "uss3k", + "us2sof", + "us2sum", + "u1stad", + "u1stal", + "us3tau", + "us4tein", + "u1stel", + "ust3erl", + "us2th", + "us3ther", + "us3tin", + "us3tr", + "us4tras", + "us6tris", + "u1stu", + "u2stun", + "u2stur", + "u2sumd", + "u2sumg", + "u2sumz", + "u3sur", + "3usus", + "u2sü", + "2uß", + "uß1u", + "2u1t", + "4ut.", + "u3taf", + "u2t1alt", + "u4t1a2m", + "ut2ans", + "u2t1ap", + "u2t1ar", + "uta2s", + "u2taut", + "ut1äh", + "u2tär", + "ut3c", + "ut1e2d", + "u3teh", + "ut1ei.", + "ut1eie", + "ut1ein", + "u3tek", + "ut1ela", + "u3tem", + "ute2n1", + "uten2a", + "u2tent", + "u4tentf", + "utera2", + "ute4ral", + "ute5r4er", + "ute6ring", + "uter3k", + "ute4ros", + "ut2es", + "ut2et", + "u2t2ev", + "u2t1ex", + "utfi2", + "ut3hal", + "ut3hei", + "ut1hel", + "u2t1hi", + "u2t1ho", + "u2thu", + "u2t1id", + "u4tigel", + "uti2vi", + "utli4n", + "uto3c", + "u5to3m", + "uto1p", + "uto3pa", + "u2tops", + "utor2a", + "u4tord", + "uto2re", + "uto4rin", + "uto3s2", + "4utou", + "u2töl", + "4utr", + "ut3rea", + "u2trou", + "ut3rü", + "4uts", + "utsau2", + "ut2säu", + "ut4schl", + "ut4schm", + "ut4scho", + "ut4schö", + "ut3ser", + "ut3s2k", + "uts2p", + "ut3sta", + "utt4er", + "ut5t2l", + "utts2", + "utu2b", + "u2tum", + "utu4n", + "u2t1une", + "utu4re", + "utu3ro", + "utu5ru", + "u3tü", + "u6tz", + "ut2zeh", + "utz3eng", + "utz2er", + "ut2zet", + "ut2z1in", + "ut2zis", + "ut2zö", + "ut2z1w", + "2u1u4", + "uufe2", + "uum1", + "uuma4", + "uume2", + "u1ü2", + "2u1v4", + "u2ve.", + "uve3rä", + "u1w", + "2u1x", + "ux2e", + "ux2o", + "ux3oe", + "ux3t4", + "u1y", + "u2yo", + "2u1z", + "uze2", + "u2z1ec", + "u2z1ene", + "uz2er", + "uzo2f", + "uz3ot", + "uz1we", + "uz3z2", + "1üb", + "üb1ä", + "2übc", + "2übd", + "übe2", + "übe3c", + "übe3le", + "übe4na", + "übe3ne", + "über1", + "ü4bet", + "üb3l", + "üb5r", + "üb2s3t", + "2üc", + "ü1che", + "üch3l", + "üch2s1c", + "ücht4e", + "ü3cke4n", + "ück1er", + "ück3eri", + "ücker6ke", + "ü4ckers", + "ü2ckin", + "ü2ckum", + "ü4d3a4", + "üde2c", + "üde2l", + "ü3den.", + "üden2g", + "ü3d2ens", + "üd3o4", + "üd3r", + "üd3s2", + "üd3t4", + "üdu2", + "üe2", + "üeb3", + "ü1ei", + "2üf", + "ü2f1a", + "ü2f1ä", + "ü2f1ei", + "ü2fent", + "üfer2", + "ü2f1erg", + "üf2fl", + "ü2f1i", + "üf3l", + "ü2fo", + "ü2fum", + "ü1g", + "üg2e", + "üge2l1a2", + "üge2lä", + "üge4lec", + "üge6lei6s", + "üge2lo", + "ügen3s", + "ü2g3l", + "ü2gn", + "üg3s2", + "üg4s3t", + "üh3a2", + "ü1he", + "ü2h1ei", + "ü2h3e4m", + "ü3hem.", + "ü2h1eng", + "ü2h1ent", + "ü2h1erf", + "ü2h1er2k", + "ü2h1er2z", + "ü2hex", + "üh1i4", + "ühla2", + "üh1lä", + "üh2lel", + "ühl2er", + "üh2lö", + "ühl4sk", + "ühl4sta", + "ühl4sti", + "üh3mo", + "üh3ne", + "ühn2s", + "üh1o2", + "üh3r2e", + "ühr3ei.", + "ühre2n1", + "ühren3s4", + "üh1ro", + "ühr3ta", + "üh1s", + "ühs2p", + "üh3t", + "üht2a", + "üht4r", + "ü1hu", + "üh1w", + "ü1k2", + "ül1a", + "ül2c", + "ü3l2e", + "ü4l3ef", + "üle2r3a2", + "ül2l1a2", + "ül2l1ei", + "üll2er", + "ül2lid", + "ül2lo", + "ül2lö", + "ülls2", + "ü2lö", + "ü1lu", + "ü2ma", + "ü2ment", + "üme2ra", + "ü2m1id", + "ü2m1in", + "ü2m1u", + "2ün", + "ü4n3a2", + "ün2da", + "ün2dr", + "ünd3s", + "ü2n1erd", + "ünf1", + "ünf3li", + "ün2g3l", + "ün2s", + "ün3sc", + "ün3se", + "ün3sp", + "ün3sta", + "ünster3", + "ün3str", + "ün2za", + "ün2z1i", + "ünzu2", + "ün2zun", + "ün2zw", + "ü1pe", + "üpf3l", + "ü1pi", + "üp2pl", + "2ür", + "ür1a", + "ü2r1ei", + "ü2r1e2l", + "ür2f1er", + "ür2fl", + "ür2fr", + "ür4g3en4g", + "ürge4ra", + "ürk2e", + "ü3r2o3", + "ürom2", + "üror2", + "ürr2", + "ür2s", + "ür3sc", + "ür3se", + "ür3si", + "ür3sp", + "ür3sta", + "ürte2l3", + "ürt2h", + "ür2z1in", + "ür2zö", + "ür2z1w", + "üs2a", + "ü2schl", + "ü3s2e", + "üse1e2", + "üse3l2", + "üse4n", + "üse3r4", + "üse1s", + "üs4s3a", + "üs2s1c", + "üss2e", + "üs4s3o", + "üs2st", + "üst3a", + "üste2n", + "2ü1ß", + "2üt", + "ü2t1al", + "üte3m", + "üte4n", + "üten3s", + "ütent4", + "üten3z2", + "üte2ra", + "üte2r1e", + "üterich6", + "üter3n", + "ü2t1h", + "ü2t3r", + "üt2se", + "üt2st", + "ütte4n", + "üt2tr", + "üt3zen", + "üt2zw", + "ü1v", + "ü1z", + "3va.", + "2v1ab", + "vab4r", + "va1c", + "va1f4", + "va3g", + "vag2a", + "va4gh", + "va2la", + "2valu", + "v2an.", + "2vanb", + "2vang", + "v2ans", + "2varb", + "v1arm", + "vas2", + "2v1ass", + "va1st", + "v4at", + "va2t1a4", + "va6tag", + "va4tan", + "va2tei", + "va4t3eng", + "va4tess", + "va2t3h", + "va4tid", + "vati3k2", + "va4tim", + "va4t1in", + "vati8ons.", + "va4tord", + "va4t3r", + "vat3s4", + "va2t1u", + "2v1au", + "2v1b", + "2v1c", + "2v1d2", + "1ve2", + "ve3an", + "ve3ar", + "veau3", + "veau1s", + "ve3b4", + "ve3d", + "ve3fa", + "ve3g", + "ve3h2", + "2veig", + "v2eil", + "2vein", + "veit2", + "veits3", + "ve3la", + "2velan", + "vel2ar", + "ve4l1au", + "v1ele", + "ve3lei", + "ve3l2i", + "ve3lo", + "vel2o1p", + "ve3ma", + "ve3me", + "2v1emp", + "2vemu", + "ve3nal", + "ve4nas", + "ven2c", + "ve3ne", + "ve3ni", + "ve4nin", + "ve3nö", + "ven6t3ag", + "vent4sk", + "2veo", + "ve3of", + "ve4pi", + "ver1", + "ver3a", + "ve3rad", + "2veral", + "ve3rand", + "ve3r4ane", + "vera4s", + "ver6bart", + "ver3b2l", + "ver3d2", + "vere2", + "verf4", + "ver3g4", + "ve3ri", + "ve4rin", + "ver3k", + "vern2", + "ver4sep", + "vert4", + "ver5te", + "ver3u4", + "ve3rus", + "ves1", + "ve3sa", + "2ve3s2c", + "2ve3s2e", + "ves3ti", + "ve3ta", + "vete1", + "vete3r", + "ve3ti", + "ve3tr", + "ve3t2s", + "2veü", + "ve3v", + "ve3w", + "2v1f4", + "2v1g", + "2v1h", + "vi1an", + "vi3ar", + "vi4a3t", + "vi2ä", + "vi2c", + "vi3de", + "vid3s2t", + "3vie", + "vie2h1a", + "vi2el", + "viela2", + "viele2", + "vi2er", + "vie4rec", + "vie2w1", + "vig2", + "2vii", + "v2il", + "vi2l1a", + "vi2lä", + "vi4l1e2h", + "vi2lei", + "viler4", + "vi4lers", + "vi2l1in", + "vi2ma2", + "vi4na", + "vin3d", + "ving3", + "vings4", + "v1ins", + "vi3sa", + "vise4", + "vi3s2i", + "vi3s2o", + "vi2sp", + "vis2u", + "viv2", + "viz2", + "vize5", + "2v1k", + "2v1l4", + "v3le", + "v2lie", + "2v1m", + "vm2e", + "2v1n2", + "1vo", + "2v1ob", + "vo2be", + "vob4l", + "voge2l3", + "vo2gu", + "vol2a", + "vol4l1a", + "vollen6", + "vol6lend", + "vol6ler6t", + "vol2li", + "2v1op", + "vo2r1", + "vo4r3a", + "voran8schl", + "vor3g", + "vo3ri", + "vo4rie", + "vo5rig", + "vorm2", + "vormen4", + "vor3o", + "vort4", + "vot2a", + "voy1", + "vö2c", + "2v1p", + "vr2", + "v1ra", + "v2ree", + "3v2ri", + "2vs", + "vs2c", + "vs2e", + "vs2p", + "v1sta", + "v1steu", + "v3s2z", + "2v1t", + "vue3", + "vu2enu", + "vu2et", + "2vumf", + "2vumg", + "2vumk", + "v1ü", + "2v1v", + "2v1w", + "2v1z", + "w2a", + "1waa", + "wab2bl", + "wa3che", + "wach8stub", + "wach4t4r", + "1wack", + "waffe2", + "waffel3", + "1wag", + "wa5ge", + "3wage4n", + "wa2g3n", + "wa3go", + "1wah", + "wahl5ent", + "wah4ler", + "wah2l1i", + "1wal", + "wa2lar", + "2walb", + "wal4d3a", + "wal4din", + "wal2dr", + "wa2les", + "wa3li", + "wal2m1", + "wals2", + "walt1a", + "wal6tere", + "wal6terl", + "wal4to", + "wal4tur", + "3walz", + "wa3na", + "wan2d1a2", + "wandels6", + "wan2dr", + "w3anf", + "2wang", + "wan3g2e", + "wang4s", + "1wann", + "wan6z5en6d", + "wan4zer", + "wa2p", + "1war2e", + "ware1i", + "wa5ren", + "1warn", + "war4ni", + "wart4e", + "war2th", + "war2za", + "1was", + "wa3sa", + "was2c", + "wa4scha", + "wa3sche", + "wa4sch3l", + "wa4schw", + "wa3se", + "wa3sh", + "was3s", + "wass4e2", + "wa3su", + "w2ä", + "1wäh", + "1wäl", + "2wäng", + "1wäs", + "wäs2c", + "wäss4e", + "2w3äu", + "2w1b2", + "wbu2", + "2w1c", + "2w1d", + "we2a", + "we2b1a", + "webe1i", + "we2b3l", + "we2bo", + "we2b3r", + "webs2c", + "we3cke.", + "we5cken.", + "we3ckes", + "we2e2", + "weed3", + "we2fl", + "1weg", + "we2g1a", + "we4g1ei", + "weg5ersc", + "we4g3l", + "we4gn", + "we2g1o2", + "we4g3r", + "weg3s2", + "wegs4t", + "1weh", + "weh4r3er4", + "wei2bl", + "weib4r", + "2weie", + "weifel6d", + "wei4fre", + "wei2gr", + "weigs4", + "wei3k4", + "3weil", + "weinsau6", + "wei3sc", + "weis6sel", + "weis6spi", + "wei2t1r", + "wei5ze", + "wel5le4", + "wel6schl", + "wel6schr", + "wel2t1", + "wel4t3a2", + "welte4", + "wel6t5en6d", + "wel4th", + "welt3i", + "wel4to", + "wel6t3r", + "wen3a2", + "wendes4", + "wen2gl", + "we3n2i", + "wen2ka", + "wen4kla", + "wen4k3ri", + "we2r3a2", + "wer5be", + "werbe3i", + "wer2bl", + "werb2s", + "1werbu", + "wer3d2", + "5werdens", + "1werdu", + "werer2", + "wer2fl", + "2werg", + "wer2ga", + "wer6gels", + "wer2g3o", + "wer2gr", + "werin2", + "we3rins", + "we2ri4o", + "1werk.", + "wer2k1a", + "1werke", + "wer2ki", + "wer2k3l", + "wer2kn", + "wer2k3o", + "wer4k3re", + "wer2ku", + "we2rö", + "wer2s", + "wer3sp", + "wer2t1a", + "wer2tä", + "wert3ei", + "wer6teig", + "wer6t5erm", + "wer2th", + "wer4tin", + "wer4t1o2", + "wer4tre", + "wer6t3ri", + "wer4tum", + "1wes2e", + "we2sp", + "we4st", + "wes4t1a", + "weste2", + "west3ei", + "wes6ten6d", + "wes4tex", + "wes2ti", + "wes4t1o2", + "wes4t3r", + "wes4tu", + "1wet", + "2wets", + "wett3s", + "2w3ey", + "2w1f", + "2w1g", + "whi4", + "w3ho", + "w2i", + "wicht4s", + "wi1cka", + "1wid", + "wi2e", + "2wieb", + "1wied", + "wie3l", + "wie3n2e", + "wik2", + "1wild", + "wim2ma", + "wim6ment", + "wim4m3u", + "win2a", + "win4d3e4c", + "win3del", + "win6d5erz", + "1win2d3r", + "2wing", + "win2g3r", + "win2kl", + "win8n7er8sc", + "win2no", + "win3s", + "wint2", + "1wi4r", + "wire3", + "wi5s2e", + "wi2sp", + "1wiss", + "wiss4z", + "wi3th", + "1witz.", + "1witzl", + "wiz2", + "2w1k", + "2w1l", + "2w1m", + "2wn", + "wns2a", + "wn3sh", + "1wo1c", + "wo2cha", + "woch2e4", + "1woh", + "woh4lei", + "woh4na", + "1wolf", + "wolf2s3", + "wol2la", + "wol4ler", + "wor3a", + "wor3d", + "wo4r3i", + "worn2", + "wort1a", + "wor4tel", + "wor6terh", + "wor4t3r", + "wort3s2", + "wo4r3u", + "wor3ü", + "3wos", + "wot2", + "1wöc", + "wöl2fo", + "wört2h", + "2w1p", + "w2r", + "w3re", + "w3ro", + "2w1s", + "ws2e", + "w3s2h", + "w3s2k", + "ws2t", + "w4s1u", + "2w1t", + "wti2", + "w2u", + "1wuc", + "wuch4sc", + "wuch4st", + "w3u2f", + "wul2", + "wul3se", + "wund4e", + "wung3r", + "wungs4", + "wun2s", + "wunsch5l", + "4wur.", + "wur2fa", + "wur2f1o", + "wur2fr", + "wur2s", + "1wurst", + "wus2", + "wus3te", + "1wu4t1", + "1wüh", + "wül2", + "wün3", + "1würf", + "1würst", + "2w1w", + "2w1z", + "x1a", + "1xa.", + "2xa2b", + "1x2ac", + "1x2ad", + "1xae", + "xa1fl", + "1x2a3g2", + "2xal", + "xal2l", + "xa2m", + "1xane", + "1xani", + "x2an3t2", + "x2anz", + "xa2r", + "1x2as", + "xa2z", + "2x1b4", + "x1ce", + "x1ch", + "x1cl", + "4x1d", + "xda4", + "xdy2", + "1xe", + "3xe.", + "2x1e4g", + "2xek", + "xe2l", + "3xel.", + "x1ele", + "xe3lei", + "x1em", + "3x2em.", + "2xemp", + "x2ems", + "x2en", + "3xen.", + "xen3s2", + "3x2er.", + "x2ere", + "2x1erl", + "xer2la", + "x2ern", + "xers2", + "x2ers.", + "3xes", + "2x1eu", + "2x1ex", + "2x1f", + "2x1g", + "2x1h", + "xi1c", + "xich2", + "2xid", + "xi2dan", + "xide2", + "xi2dei", + "xi2d3em", + "x1i2do", + "3x2ie", + "xie3l", + "xi3g", + "xi2ler", + "xili3a", + "xi2lo", + "xi2l1u", + "xim2", + "xin3s2", + "x2is", + "xi2sa", + "xi2s1e", + "xi2sp", + "xis3s2", + "xis3t", + "xis4tä", + "xi2su", + "3xit", + "xi3te", + "x1i4tu", + "xive4", + "x1j", + "4x1k2", + "xkal2", + "4x2l2", + "x3lä", + "x3le", + "2x1m", + "2x1n", + "2xod", + "2xoe4", + "x1o2r", + "xos2", + "2x1ö2", + "4x1p", + "xpor6ter", + "xpor4t3r", + "x1q", + "x1r", + "2x3s2", + "4x1t", + "xt1a", + "xta2b3", + "x3tan", + "xt2ant", + "x3tas", + "x2t1ä", + "x3tät", + "xtblo4", + "xtblock5", + "x2t1e2d", + "xt1ein", + "x2t1el", + "x4tent", + "x2t1er2f", + "x2t1ev", + "xtfi2", + "x2t1h", + "x2t1id", + "xti2la", + "x2til2l", + "x2t1o4", + "x4tor", + "xtra3b4", + "x2t3ran", + "x2trau", + "xt3rec", + "xt3s2", + "x2t1um", + "x2t1un", + "1xu", + "xu1a", + "xu2n", + "2xunt", + "xu2s3", + "xusa2", + "xuss4", + "2xv", + "2x1w", + "3xy.", + "x1z", + "2y1ab", + "1ya2c", + "y2ach", + "ya1h", + "y1al.", + "yan2g", + "y1ank", + "ya1q", + "ya3ra", + "yas2", + "yas3t", + "y1ät", + "y1b", + "ybe2r", + "y1c", + "y2chi", + "y3chis", + "ych3n", + "y1d", + "yd2o", + "ydri2", + "ydrid3", + "ydro3", + "y1e", + "y2ec", + "ye2d", + "y2ef", + "y2el2", + "yen4n", + "yera2", + "y2ere", + "yer2n1", + "y2es", + "y4es.", + "yes2p", + "ye2th", + "y1f2", + "y1g", + "ygi2", + "ygie3", + "yg2l", + "y1h", + "y3ho", + "yhr2", + "2y1i4", + "y1j", + "y1k2", + "yke3n", + "yk4l", + "yk3s2", + "yl1a2", + "yl2a3g", + "y1l2ak", + "yla4l", + "y2lam", + "yl3ane", + "y1lant", + "yl4ante", + "yl4anti", + "yl2as", + "ylau2", + "yl3c", + "yle2", + "y2le.", + "yl1em", + "y2l1es3", + "y2l1e4t", + "yli4n", + "ylo1i2", + "yloid3", + "yloni1", + "yl2op", + "yl1ora", + "yl3s2", + "yl5t", + "ym2a", + "ym4an", + "ym4ar", + "ym4as", + "ym4e", + "ymp4", + "ym2pha", + "ympi1e", + "ynä4r", + "yn2eu", + "ynk2", + "y2n1o2", + "yno4t", + "yn2oz", + "yn3t2", + "yob2", + "y2od", + "yoga3", + "yom2", + "yon2a", + "y1ont", + "yo2pe", + "yo1s", + "y2ost", + "y1ou", + "2y1p", + "ypa2b3", + "ypa2n", + "yp2e2", + "ype4r3o2", + "y2pf", + "y2p1i2d", + "y2p1in", + "y2plo", + "y3po3", + "y4p3s", + "yp3th", + "ypu2", + "y2p1um", + "y1q", + "y1r", + "y3r2e", + "y3ri", + "yri1e", + "yri3en", + "y3ro", + "yros3t", + "yrr2", + "2ys", + "ys2an", + "ysch4", + "ys2e1", + "ysein2", + "y4s3l", + "ysme3", + "ys2po", + "ys1pr", + "yst2e", + "yst2h", + "ys2the", + "ys3to", + "ys3tr", + "ys4tra", + "y4stro", + "y3s2ty", + "ysu2", + "y2s1ur", + "y3s2z", + "y1t", + "y2te.", + "y2tes", + "yt2h", + "ythe1", + "y3to1", + "ytos2", + "y4t3r", + "yu2r", + "yur2e3", + "y1v", + "y1w", + "y1y", + "y1z2", + "yze3r2i", + "2z1a2b", + "zab3l", + "za1c", + "2z1ach", + "zach2s", + "2z1a2d", + "2z1af", + "za3gr", + "3z2ah", + "zah3len", + "zah4ner4", + "z1ak", + "4z3akk", + "2z1al", + "4z3ald", + "3zali", + "2z1a2m", + "z1a2n", + "4z3a4n4a", + "2z3anb", + "za3ne", + "2z3anf", + "2z3angs", + "3z2ank", + "zan2ka", + "z3anl", + "2z3anr", + "zanti1", + "za4pf", + "z1aq", + "z1ar", + "3zar.", + "2zarb", + "za3re", + "2zarm", + "3z2aro", + "z2arr", + "zar2t1r", + "2z1as", + "za2sc", + "zast4", + "z3at", + "zat2e", + "za2to", + "3zaub", + "2z1au2f", + "2z3aug", + "3zaun", + "z3aur", + "2z1aut", + "zä2", + "2z1äc", + "z2äh", + "zä3hi", + "3zähn", + "2z1äm", + "z1än", + "z1äp", + "z1är", + "2z1äus", + "2zäuß", + "4z3b4", + "zber2e", + "zbü1b", + "zbübe3", + "2z3c", + "2z3d2", + "zdan2", + "zdä1", + "zdi1st", + "3ze.", + "2zea", + "2z1e2ben", + "ze1c", + "2z1e2cho", + "ze1e2", + "zeeu3", + "2z1eff", + "z1e2ga", + "zehe4", + "zehen1", + "zeh2l", + "ze3ho", + "zei1f4", + "zeik4", + "zeil2", + "zei3la", + "zeile4", + "2z1ein", + "ze3in.", + "z2e1ind", + "zei4ne", + "4z3einh", + "ze3inse", + "ze2i1s4", + "zei3sk", + "3zeit", + "zei2t1a", + "zei4t3er", + "zei4to", + "zei2tr", + "zeit3ri", + "zek4", + "ze2l1a", + "zela2d", + "zel3a2n", + "ze2l1ä", + "zel3d4", + "4ze2lek", + "4zelem", + "ze2len", + "ze2l1er", + "ze2l1in", + "2z1e2lit", + "zel3la", + "zel4lab", + "zel4l3ac", + "zel4lar", + "zel6lein", + "zel6ler6t", + "zeller6z", + "zell3s2", + "zelm4", + "ze2l1o", + "zels2", + "zel3sa", + "zel3sz", + "zel2ti", + "zembe2", + "2z1emp", + "5zen.", + "ze4n1ac", + "ze4nas", + "zen3au", + "ze2nä", + "ze3n2em", + "zenen1", + "4zenge.", + "z4engl", + "2zengp", + "2zeni", + "ze2nid", + "zenk2", + "zen3n", + "ze2n3o", + "ze4not", + "4zen4sem", + "zen4ser", + "zens2p", + "z2entn", + "z1ents", + "2zentw", + "2zentz", + "zen4z3er", + "zen2zw", + "zeo4r", + "3z2er.", + "ze2rad", + "ze1ral", + "ze2rat", + "z2ere", + "ze5rek", + "zer2em", + "z2erfe", + "z3erfül", + "2z1ergä", + "4z3ergeb", + "z4erges", + "z4ergl", + "zer4gon", + "4z1ergu", + "3z2erhe", + "2z3erhö", + "zerin6te", + "z2erko", + "3zerl.", + "zer4lau", + "zer4le.", + "4zerleb", + "zer4len", + "2zerlö", + "3z2ern", + "zer4nan", + "zer4n3e4b", + "zer4nei", + "2z1erö", + "zer2öf", + "2z1erq", + "4z3erreg", + "zers2", + "z2ers.", + "2z1er4sa", + "zerta2", + "zer4t3ag", + "zert4an", + "zer6teng", + "zer6tere", + "zer6terl", + "zer4tin", + "zer2to", + "6z5ertrag", + "zer6trau", + "z1erwe", + "4zerwei", + "z1erz", + "zer2ze", + "3z2es.", + "ze2sä", + "ze3sch", + "zes1e", + "ze2sp", + "ze4spo", + "zes2sa", + "zessen4", + "zes6s5end", + "zes6sent", + "zes4ser4", + "zes2sp", + "zes2st", + "ze1sta", + "ze3stau", + "ze1str", + "z2et.", + "2zeta", + "2ze2th", + "ze2tr", + "2zetts", + "zeu4gem", + "zeu2g3r", + "2z1eul", + "ze1ur", + "2z1e2x1", + "4z3f4", + "zfeue2", + "2z3g4", + "zger2a", + "zger4s3", + "2z1h2", + "z2hen", + "zhir3", + "zi3alo", + "zi2ar", + "zich2o", + "zi2dei", + "zie4ler", + "zie2l1i", + "zien3s", + "zi1erh", + "zi1es", + "zi3ess", + "zig4s", + "z2il", + "zil2e", + "2zimp", + "zim4t3", + "2z1ind", + "zin2e", + "zin3ei", + "2z1inf", + "z1inh", + "zi4n3in", + "zin1it", + "2z1inj", + "zin4na", + "zin4o", + "zin2sa", + "zin4ser", + "4zinsuf", + "2zint", + "zi2o3", + "zirk2", + "zirk6s", + "z1iso", + "zi2sp", + "zisse4", + "zi3s2z", + "zi1th", + "zithe2", + "zi4t1o2", + "zit2u", + "ziv2", + "2z1j", + "4z1k4", + "2z1l2", + "zlei3ti", + "zle1s", + "z3ly", + "2z3m2", + "zme2e", + "2z3n2", + "z3oas", + "2z1ob", + "2z1of", + "zo2gl", + "zog4s3", + "2z1oh", + "zol2la", + "zoller4", + "zol6lerl", + "zol6lert", + "zonal2", + "zon3au", + "zon5s4", + "zon4t3er", + "zo2o", + "2zope", + "2z1o2r", + "zo3re", + "3z2orn", + "zor4ne", + "2z1osz", + "2z1ou", + "2z1o2z", + "2zö2f", + "2z1ök", + "z1öl", + "2zöl.", + "3z2öll", + "2zöls", + "2zön", + "4z3p4", + "2z1q", + "4z3r2", + "2z1s4", + "z3sa", + "zsau2", + "z3sh", + "z3sk", + "zspor2", + "4zst2", + "z3sz", + "2z1t", + "zta2n", + "zt3ane", + "z2t1au", + "z4tehe", + "ztein1", + "zt3eins", + "zt2el", + "zte3ma", + "z4t1ent", + "z4t1erz", + "zte3str", + "zt2et", + "zt1he", + "z3them", + "z3t2her", + "zt1hi", + "zt3ho", + "z3thr", + "z3thy", + "z3ti", + "zt3rec", + "zt3ric", + "zt3s2", + "z3tü", + "zu1", + "zu3a", + "zub4", + "3zuc", + "zuch2e", + "zucht3r", + "zud4", + "zudi4", + "zu2el", + "zu3e2r1", + "zue2t", + "zu3f4", + "zug2em", + "zu4gent", + "zug2i", + "zu3gl", + "zu4gla", + "zu4glö", + "zu2go", + "2z1uhr", + "zu3hu", + "zui2", + "zu3k", + "zul2", + "2z1um.", + "zum2a", + "2z1umb", + "zumen2", + "2zumf", + "2zumg", + "zum2i", + "2zumk", + "2zuml", + "2zumr", + "2z1ums", + "zum2u", + "2zunab", + "zun2e", + "2z1unem", + "zunf4", + "zung4", + "4zunget", + "2zungl", + "z1uni", + "2zu2nio", + "2zuniv", + "2zunr", + "2z1uns", + "2zunt", + "zuo2", + "zup2fi", + "zu3pl", + "zu3r2a", + "2z1urk", + "2z1url", + "2z1urn", + "2z1urs", + "2z1urt", + "zu3s4", + "zusch4", + "zu5t2", + "zut4r", + "zut4u", + "zut3z", + "zuz2", + "2zü4b", + "3züc", + "zür1c", + "2z1v", + "zw2", + "z1wac", + "2zwag", + "4zwah", + "4zwap", + "z1war", + "2zwa2s", + "2zwäs", + "2z1wed", + "2zweg", + "2zweh", + "z2weig", + "2zweil", + "zweiter6", + "2z1wel", + "2z1wen", + "2z1wer", + "2z1wes", + "z2wic", + "zwi4e", + "3zwing", + "2zwirt", + "z2wisc", + "2zwiss", + "z2wit", + "2z1wo", + "z1wör", + "z1wur", + "2z1wü", + "zy1an.", + "zy2le", + "2z1z", + "z3z2a", + "zza3b4", + "z4z3al", + "zz4at", + "z2z1id", + "z2z1in1", + "zzi1s4", + "zz2ö", + "zzug4s" + ]} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/en-gb.json b/borb/pdf/canvas/layout/hyphenation/resources/en-gb.json new file mode 100644 index 000000000..e3f9d57ed --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/en-gb.json @@ -0,0 +1,8541 @@ +{ + "patterns":[ + ".ab4i", + ".ab3ol", + ".ace4", + ".acet3", + ".ach4", + ".ac5tiva", + ".ad4din", + ".ad3e", + ".ad3o", + ".ae5d", + ".aer3i", + ".af3f", + ".af3t", + ".ag4a", + ".ag5n", + ".air3", + ".al5im", + ".al1k", + ".al3le", + ".am5ar", + ".ama5te", + ".am2i", + ".am3pe", + ".am3ph", + ".an1", + ".ana3b", + ".ana3s", + ".and2", + ".an5da", + ".an4el", + ".an4en", + ".an4gl", + ".an4on.", + ".an3s", + ".ant3a", + ".an3ti3", + ".ant4ic", + ".an4t5o", + ".any5", + ".aph5or", + ".ap4i", + ".ar5ab", + ".ar5ap", + ".ar4ci", + ".ar5d", + ".ar4e", + ".ari4", + ".ar4ise", + ".ar4isi", + ".ar5sen", + ".art5icl", + ".as1", + ".as4q", + ".as5sib", + ".at5ar", + ".ateli4", + ".at5omise", + ".at5omiz", + ".at3r", + ".at3t", + ".au3b", + ".au3g4u", + ".aur4e5", + ".aus5", + ".authen5", + ".av4", + ".av5era", + ".bap5tism", + ".barri5c", + ".bas4i", + ".ba5sic", + ".be3di", + ".be3lo", + ".be5r4a", + ".be5sm", + ".bi4er", + ".blaz5o", + ".bo3lo", + ".bos5om", + ".boun4d", + ".bov4", + ".bra5ch", + ".bre2", + ".burn5i", + ".ca3de", + ".ca4gin", + ".cam5i", + ".cam3o", + ".can1", + ".can5ta", + ".ca5pitu", + ".car4i", + ".cas5ual", + ".ca4ti", + ".cen5so", + ".cen5tena", + ".cent5ri", + ".cer4i", + ".ch4", + ".cit4a", + ".clem5e", + ".clima5to", + ".co5it", + ".co3pa", + ".cop5ro", + ".co3ru", + ".co3si", + ".co5ter", + ".cotyle5", + ".cri5tici", + ".custom5", + ".dav5", + ".dea5co", + ".de5lec", + ".del5eg", + ".de3li", + ".deli5r", + ".de1m", + ".de5nit", + ".de3no", + ".der2", + ".de3ra", + ".de5res", + ".de3ri", + ".de5scrib", + ".de5serv", + ".de5signe", + ".de5sir", + ".de5sis", + ".de5spoi", + ".determ5i", + ".de3ve", + ".de4w", + ".di4al.", + ".dia3s", + ".di4at", + ".din4a", + ".dio5c", + ".do2", + ".do4e", + ".domest5", + ".du4al.", + ".du4c", + ".dys3", + ".east5", + ".echin5", + ".eco3", + ".ec3t", + ".ed5em", + ".ed4it.", + ".ed4iti", + ".eg4", + ".ei3d", + ".ei5r", + ".el3ev3", + ".el2i", + ".elu5s", + ".em3b", + ".em5in", + ".emp4", + ".em5py", + ".en1", + ".en5c", + ".en4ded", + ".en3s", + ".ent2", + ".en5ta", + ".eos5", + ".epi1", + ".epi3d", + ".er2a", + ".er5em5", + ".er4i4", + ".er4o2", + ".eros4", + ".erot3", + ".er4ri", + ".es1", + ".escal5", + ".es3p", + ".es3t", + ".etern5", + ".eth3e", + ".eu1", + ".eur4", + ".eval3", + ".evol5ut", + ".ew4", + ".ex1", + ".ex3a", + ".eye3", + ".fal4le", + ".far4i", + ".fec5unda", + ".fen4d", + ".feoff5", + ".fi2", + ".fi5lia", + ".fil5tr", + ".fin5ess", + ".fin3g", + ".fi5n4it", + ".fis4c5", + ".fo3c", + ".fran5ch", + ".fu5ga", + ".ga4m", + ".gam5et", + ".gen4et", + ".ge5neti", + ".gen5ia", + ".ge3ro", + ".glor5io", + ".gnost4", + ".go3no", + ".gos3", + ".hab2", + ".ha5bili", + ".hama5", + ".han4de", + ".hast5i", + ".he4i", + ".hem5a", + ".hi2", + ".hi3b", + ".ho2l", + ".ho5rol", + ".hov3", + ".hy3lo", + ".ico3s", + ".idi2", + ".ig3", + ".ig1n", + ".il4i", + ".im5b", + ".in1", + ".in3d", + ".in3e2", + ".in2i", + ".in3o", + ".in3t", + ".invest5i", + ".ir3r", + ".is4c", + ".is4li", + ".is4o", + ".iso5m", + ".ka5ro", + ".ki4e", + ".kin3e", + ".lab4o", + ".la4me", + ".lam5enta", + ".lan5i", + ".lash4e", + ".le4m", + ".len5ti", + ".le2p", + ".lep5r", + ".les5son", + ".le5van", + ".librar5", + ".lig3a", + ".li3o", + ".li4ons", + ".li4p", + ".loc3a", + ".lo4gia", + ".lo2p", + ".loph3", + ".lous5i", + ".lov5er", + ".lub3", + ".lyo3", + ".mac5u", + ".mal5ad5", + ".ma5lin", + ".mar5ti", + ".math5", + ".me5lodio", + ".ment4", + ".men5ta", + ".me5rid", + ".me5rin", + ".met4er", + ".mi4e", + ".mi3gr", + ".min5ue", + ".mirk4", + ".mis1", + ".mi5to", + ".mo3bi", + ".mo5lec", + ".mon3a", + ".mor5ti", + ".mu3ni", + ".mu3si", + ".musi5co", + ".myth3", + ".na5k", + ".nari4", + ".nast4", + ".nas5ti", + ".nec3t", + ".ni4c", + ".ni5tro", + ".no4c", + ".nom3o", + ".nos3t", + ".no5tic", + ".nucle5", + ".obed5", + ".ob3el", + ".ob3l", + ".od4", + ".oed5", + ".oe5so", + ".of5t", + ".oi4", + ".ol4d", + ".ome2", + ".om5el", + ".on4ce", + ".on4e", + ".op2i", + ".opt5a", + ".or1", + ".or4at4", + ".ora5tori", + ".or5che", + ".or3d", + ".ore4", + ".or3eo", + ".or4i", + ".orner4", + ".or2o", + ".os1", + ".osi4", + ".oth5", + ".out1", + ".ov4", + ".pal5i", + ".para5dis", + ".par5af", + ".para5t", + ".pa5ta", + ".pa4tio", + ".pec3t4", + ".pecu3", + ".ped3e", + ".pend4", + ".pen5de", + ".pep3t", + ".peri5n", + ".perse5c", + ".pe5titi", + ".ph2", + ".phe5nom", + ".phon4i", + ".pi2e", + ".pi3la", + ".plast4", + ".plic4", + ".plica4", + ".plos4", + ".po3la", + ".po5lite", + ".po2p", + ".pop5l", + ".po5sitio", + ".pos5si", + ".pro5bat", + ".pur4r", + ".put4te", + ".ra5cem", + ".ran5gi", + ".re3ca", + ".ref5ere", + ".re5gar", + ".re1i", + ".re5lin", + ".re1m", + ".re5o", + ".res5ci", + ".re5sen", + ".re5spo", + ".re5stat", + ".re5store", + ".re5str", + ".re3ta", + ".re5u", + ".re3w", + ".rib5a", + ".rin4", + ".rit2", + ".rol4la", + ".ros3a", + ".sa2", + ".sac5r", + ".sal4i", + ".sa5lin", + ".salt5er", + ".sanc5", + ".sap5a", + ".sa3vo", + ".sci3e", + ".sea3s", + ".sect4", + ".sec5to", + ".se3gr", + ".sen3t", + ".se1q", + ".ser4ie", + ".ses1", + ".sev5era", + ".sh2", + ".si5gno", + ".sis3", + ".st4", + ".stat4o", + ".stra5to", + ".string5i", + ".su5da", + ".sulph5a", + ".sul3t", + ".tact4i", + ".tac5tic", + ".ta4m", + ".tamar5", + ".tar5o", + ".tect4", + ".tel5a", + ".tell5e", + ".te4m", + ".te5ra5t", + ".ter4p", + ".th4", + ".tho4", + ".thol4", + ".ti2", + ".til4", + ".ti5ni", + ".tit4is", + ".tor1", + ".tran4c", + ".tri5bal", + ".tri3d", + ".trin4a", + ".tri5sti", + ".tro4ph", + ".troph5o", + ".tro4v", + ".tular5", + ".turb4", + ".turi4", + ".tu5te", + ".tu3to", + ".ul4l", + ".ulti5mat", + ".un5ce", + ".un5ch", + ".un3d2", + ".under5", + ".un3e", + ".un3g", + ".uni3c", + ".uni3o", + ".un3k4", + ".un5s", + ".un3t4", + ".un5u", + ".up1", + ".up3l", + ".ura4", + ".ur5eth", + ".ur4o", + ".va5led", + ".ve2", + ".vec5", + ".ve5lo", + ".vent5il", + ".ver4ie", + ".ver3n", + ".vic5to", + ".vi2s", + ".vis3i", + ".vi5so", + ".vo1c", + ".vo5lut", + ".wine5s", + ".xy3l", + ".za5r", + "a4a", + "1ab", + "2ab.", + "2aba", + "ab5are", + "abay4", + "2abb", + "ab5ber", + "2abe4", + "ab3erd", + "ab3err", + "a3bet", + "ab1ic", + "a3bie", + "2abin", + "4abio", + "abi5on", + "ab3ita", + "ab4itu", + "ab3la", + "abli4", + "4abolic", + "ab3om", + "ab3ota", + "3about", + "ab1r", + "2abs.", + "ab1ul", + "abu4lo", + "ab3use", + "ab3usi", + "2aby", + "ac2a", + "ac5abl", + "ac3al", + "5acanth", + "ac5ard", + "a5cat", + "ach5al", + "a5chini", + "ach5ism", + "achro4", + "ach5ur", + "2aci", + "a4cic", + "aci4ers", + "acif4", + "4acit", + "ack5a", + "ac3li", + "4aco.", + "aco3d", + "ac5onr", + "4acos", + "4acou", + "ac1r", + "ac3ry", + "act5ate", + "act5ile", + "ac2to", + "act5ory", + "ac2t5r", + "ac5uat", + "a5dai", + "ada3v", + "4adee", + "ad5eni", + "ad4ha", + "ad3ica", + "a5dif", + "4adil", + "adi4op", + "adi4p", + "adis4i", + "a3diti", + "3adju", + "5admit", + "a2do", + "4adoe", + "4adoi", + "ad3ol", + "a3dos", + "ad1ow", + "ad1r", + "adram4", + "4a2du", + "ad3ula", + "ad3um", + "4ady", + "ae5a", + "ae4cit", + "aeco3", + "4aed", + "aed5is", + "ae5g", + "ae3on", + "ae5p", + "aerody5", + "ae4s", + "ae5si", + "aes3t", + "aet4a", + "aeth4", + "aet4or.", + "aev3a", + "4af.", + "4afe", + "af5ta", + "a4fu", + "ag4ari", + "4ageri", + "a5ghe", + "a5gia", + "agi4as", + "4agino", + "4agl", + "agli4", + "4ag1n", + "ag3oni", + "agor4a", + "ag5ot", + "a2gr", + "ag3ri", + "agru5", + "2ah", + "a1h2a", + "ahar2", + "aha5ra", + "a1he", + "ah4n", + "a5hoo", + "2ai2", + "4ai.", + "ai3a", + "a1ic", + "aid4a", + "aid5er", + "aig2", + "ai5gu", + "ail3er", + "ail3o", + "aim5er", + "ain5ders", + "ai5nea", + "a3ing.", + "ain3i", + "ain5o", + "aint5er", + "air5a", + "air5p", + "air3s", + "ais1i", + "a5ism", + "2a1j", + "a4ju", + "2ak", + "akel4", + "ak5u", + "al5abl", + "alact4", + "a1lae", + "al5ais", + "ala3ma", + "al5ance", + "al3at", + "a5lav", + "alc3at", + "al3ch", + "ald5ri", + "2ale", + "a3lec", + "aleg4", + "ale5ma", + "al5ende", + "a1leo", + "a2let", + "al3ibr", + "ali4ci", + "al5ics", + "al1id", + "al3if", + "5alig", + "al1in", + "a5lini", + "alin5o", + "al5ipe", + "al5ipot", + "4alis.", + "4aliu", + "4alk", + "alk5ie", + "al4lab", + "al4lag", + "alli5an", + "allig4", + "al4lish", + "a5loe", + "al3ogr", + "a3lom", + "a3loo", + "al1or", + "al4orim", + "alos4", + "a4lou", + "al3ous", + "a5low", + "al5pen", + "al3ph", + "al5tati", + "al3tie", + "alu3b", + "al5ued", + "al3ues", + "a5lumnia", + "al1va", + "al5ver", + "alv5u", + "2a1ly4", + "a5lyn", + "2a2m", + "a5mad", + "ama4g", + "aman5d", + "a5marine", + "a3mas.", + "am1at", + "a5m4atic", + "am5atu", + "am4bin", + "3ambu", + "am5elo", + "a3men", + "amen4d", + "am3era", + "am5erl", + "am1i", + "ami2c", + "am5ica", + "amic5r", + "3amid", + "a3mili", + "am5ily", + "amini4f", + "am5iniz", + "aminos4", + "a5mis.", + "a4mium.", + "a3mon", + "amor5a", + "amort3", + "am5ose", + "am2p", + "am5peri", + "amphi5g", + "amp3li", + "ampo5l", + "am3ul", + "amyl5", + "a2n", + "an2a", + "a5nadi", + "an3ae", + "an3age", + "ana5k", + "an3ali", + "an3arc", + "a5nast", + "an4con", + "an3d4at", + "and5au", + "and5eer", + "an5del", + "an5dif", + "and5ist", + "an5dit", + "an4doni", + "an4ea", + "an5eer", + "an3ell", + "anel5li", + "an3eu", + "an3gan", + "angov4", + "an4gur", + "4anh", + "an3ic", + "ani3f", + "an5ifo", + "4anig", + "an5ion", + "anis5te", + "4anity", + "4aniu", + "an5no", + "4anny", + "an1o", + "an2oe", + "an3oma", + "anor3", + "an2os", + "an5ot", + "an2s", + "an3sc", + "an4sco", + "ans3il", + "an4sur", + "an2t2a", + "ant5abl", + "an3tal", + "an5tam", + "an2te", + "1anth", + "an4thi", + "3anthr", + "4antic", + "an4tie", + "an4ting", + "ant4iv", + "an4tone", + "ant4r", + "an4tus", + "an5tym", + "an3ul", + "an3um.", + "an5ums", + "a3nur", + "a5nut", + "an2y", + "an5ya", + "a5nyi", + "2ao", + "aol3i", + "5aow", + "2ap", + "4ap.", + "4apa", + "a1pac", + "ap3al", + "ap5aro", + "ape5li", + "a5peu", + "aph5em", + "aph3i", + "aph5ol", + "aphyl3", + "ap1i", + "ap5icu", + "ap3in", + "ap4ine", + "a5pir", + "a3plan", + "ap5li", + "apo5str", + "apo3th", + "a2pr", + "ap5ron", + "4aps", + "apt5at", + "apu5lar", + "a5pun", + "a4q", + "a5qui", + "a2r", + "4arabi", + "ara5bo", + "aract4i", + "ara2g", + "ar3age", + "ar4aged", + "ar5agi", + "ar3ago", + "a3raj", + "ar3all", + "ara3m", + "aran4g", + "aran5te", + "ar5apa", + "ar1at", + "a3rau", + "ara3v", + "ar3ba", + "arb5et", + "ar4bid", + "ar4bl", + "arb3li", + "ar4bul", + "ar5chet", + "arch5o", + "ar5dina", + "ar4done", + "ar3en", + "aren5d", + "ar5ett", + "ar3ev5", + "ar5gh", + "ar3gu", + "ar3h", + "ar1i", + "ar5iff", + "ar4ill", + "a5ri5net", + "ar5ini", + "a5rishi", + "arm3er", + "ar5mit", + "ar3nal", + "ar3nis", + "ar3od", + "ar5oid", + "aro4mas", + "aro4n", + "a5roti", + "a5rouc", + "ar3ox", + "arp5ers", + "ar4pu", + "2arr", + "ar2rh", + "ar2s", + "ars5al", + "ar3so", + "art5at", + "ar2th", + "arth4e", + "arth3r", + "ar5tiz", + "2aru", + "ar3um", + "ar5un4", + "a3ryo", + "a5ryt", + "ar5z", + "as1a", + "as4af", + "asan2", + "2asc", + "as5con", + "as5cot", + "as2cr", + "as2e", + "as3ect", + "4ased", + "asep4", + "ash5ay", + "ash5il", + "as5ily", + "as3in", + "a5sio", + "a3sit", + "as5iv", + "ask5er", + "aski4", + "as4la", + "as4lo", + "2aso", + "as5och", + "a4soned", + "as5or", + "as3ph", + "ass2", + "assa5gi", + "ass5ibl", + "as4sil", + "assit5", + "2asta", + "as4tat", + "as4tia", + "as3tis", + "as4tit", + "4asto2", + "as3tra", + "as4tri", + "as1u", + "as4un", + "as5ur", + "2a2ta", + "4atabi", + "a5talis", + "atam4", + "ata3p", + "atar3a", + "ata3s", + "ata3t4", + "at3eau", + "at3ech", + "at5eer", + "a5tel.", + "ate5le", + "at5enat", + "at3ent", + "4ater", + "at3era", + "at5ernis", + "at5erniz", + "4atess", + "at5et", + "4a2th", + "ath3a", + "a3then", + "ath5erin", + "ath5ero", + "ath5ete", + "ath3i", + "ath3od", + "a5thon", + "ath5r", + "4a3tia", + "ati2c", + "at5icis", + "ati5cit", + "at5iciz", + "a2tif", + "a4t1i4l", + "a4tim", + "a2t3in", + "4atina", + "at5ing", + "4at4is.", + "at1it", + "atit3u", + "atitud5i", + "4atiu", + "at4ivi", + "a5tiviz", + "a2to", + "5at5od", + "4atog", + "2atol", + "4aton", + "a3too", + "a4tops", + "a5torian", + "a4tory", + "atos4", + "a5toz", + "2a2tr", + "at3ra", + "a4tre", + "5at5ress", + "at1ri", + "atric5u", + "at3ron", + "at5rou", + "at4tag", + "2a2tu", + "at1ul", + "atu4m", + "at3ura", + "at3urg", + "4a2ty", + "2au2", + "4au.", + "aub5i", + "4auc", + "au5cer", + "auc3o", + "aud5er", + "audic4", + "aul3i", + "aul4t", + "aul5ted", + "ault5er", + "ault5i", + "au3ma", + "aun2", + "aun5chie", + "aun3d", + "aun4dre", + "au5reo", + "aur4o", + "au5ror", + "4aus.", + "aus5er", + "aus5p", + "aus4ted", + "aut3ar", + "aut3er", + "au3th", + "2av", + "av4ab", + "ava4g", + "av3age", + "ava5la", + "av5alr", + "av5ant", + "av5ar", + "avas3", + "av3end", + "av3ern", + "av3ig", + "aviol4", + "av1is", + "aw5er.", + "aw5ers", + "aw1i", + "aw5nie", + "aw5y", + "a4x", + "ax2id", + "4ay", + "ay5la", + "ay3m", + "ayn4", + "ays2", + "ay5si", + "ay5sta", + "ayth4", + "2az2", + "az3ar", + "aze4", + "az5ee", + "azyg4", + "azz4l", + "2ba.", + "ba5bir", + "3back", + "baen4", + "bag4a", + "5bah", + "ba4i", + "bal3a", + "balm5i", + "ba5lon", + "bal5u", + "bam4a", + "ban4a", + "ba5nan", + "b4ane", + "5bang", + "b4aniti", + "b4ans", + "ba4p1", + "5barb", + "bar4d", + "bardi4", + "bar4n", + "ba5rom", + "bar3on", + "5bars", + "1bas", + "bas4te", + "ba4th4", + "3batic", + "ba5tio", + "bat5on", + "battle5", + "2b1b2", + "b4bata", + "b3bli", + "b4bone", + "b1c2", + "bcord4", + "2b1d", + "bdeac5", + "bde4b", + "bdi4v", + "b2e", + "4be.", + "3bea", + "4beas", + "be3ca", + "3becu", + "2bed", + "be3da", + "bed5el", + "bed2i", + "be4do", + "be5dra", + "be4du", + "5bee", + "3bef", + "be3go", + "be5gr", + "be3gu", + "1bel", + "be3la", + "2bele", + "be3lit", + "bel4t", + "be3m", + "ben4d", + "bend5a", + "bend5er", + "be1ne", + "be5nig", + "be5nu", + "4beo", + "be3q", + "2bere", + "berga5m", + "berl4", + "5berr", + "ber5s", + "b5ertin", + "be1s2", + "2bes.", + "be3sl", + "be3tr", + "be3w", + "2b1f", + "bfa4", + "4b1h", + "b4ha", + "2bi.", + "1bia", + "bi4b1", + "bicen5", + "3b2id", + "bid5i", + "b4ie", + "bi4ers", + "bif4", + "bi4fid.", + "bi5ga", + "bigu3", + "b1il", + "b2ile", + "5biles", + "3b2ill", + "4bim", + "bimet5", + "5bina", + "5bin4d", + "bind3e", + "bin5et", + "bin5i4", + "1bi2o", + "bio3l", + "bio5m", + "bi3ou", + "bip4", + "bi5q", + "bir4", + "bi3re4", + "bi5rus", + "b2is", + "5bism", + "bis4o", + "bisul5", + "3bitua", + "4bity", + "bi5ve", + "b1j", + "4b5k4", + "2bl2", + "5blac", + "blag4", + "b3lan", + "5blast", + "bla5tu", + "blem5at", + "3bler", + "5blesp", + "4blik", + "blim3a", + "bli3o", + "bli2q", + "b3lis", + "4bly", + "2b1m", + "bment4", + "bmi4", + "4b1n", + "bo2", + "4bo.", + "3boa", + "bo5am", + "5bob", + "bod5i", + "bo5h", + "2boid", + "4boke", + "bol4e", + "4boled", + "bol3i", + "bol4t", + "3bon", + "bon4c", + "bon4e", + "bon4ie", + "boni4f", + "bon4sp", + "1boo", + "b3orat", + "bor3d", + "bor5ee", + "bor5et", + "3bori", + "bor5ic", + "bor5io", + "bor4n", + "bot3an", + "5boti", + "boun5ti", + "3bour", + "bous4", + "bow2", + "bow3s", + "4boxy", + "5boy", + "br4", + "3brach", + "4bral", + "bram4", + "b2ran", + "bran4d", + "4bre.", + "b4reas", + "4b2res", + "brev5et", + "b2rid", + "5brief", + "bring5", + "bri4os", + "b5rist", + "b4roa", + "bro4ma", + "bros4", + "brum4", + "4bry.", + "4b1s2", + "b3sc", + "bscon4", + "bsen4", + "bserv5an", + "b5si", + "bsin4", + "bso2", + "bsol3e", + "bso3lu", + "b4stac", + "bstupe5", + "2b1t", + "b5tlet", + "4bu.", + "5bub", + "buf5fer", + "b4uli", + "b4ulos", + "bun2", + "bun4a", + "b5u5nat", + "bunt4", + "bur3e", + "bur4ri", + "busi4e", + "buss2", + "bus5si", + "3bust", + "bu5tar", + "b3ute", + "b5utin", + "3butio", + "but4iv", + "b5ut5o", + "b1v", + "4b3w", + "2by", + "4by.", + "3byi", + "bys4", + "5byt", + "2ca.", + "cab5in", + "c4ace", + "caco3", + "cad4r", + "5caf", + "ca3go", + "5cai", + "5cak", + "c1al", + "c4ala", + "ca5laman", + "cal5ar", + "3calc", + "ca5lef", + "call5in", + "cal4m", + "ca3ly", + "ca3ma", + "cam4i", + "ca5nar", + "c2an4e", + "c4ano", + "ca3noe", + "can5tar", + "can5ted", + "can4tic", + "can4tr", + "5cao", + "1cap", + "ca5pil", + "capt4", + "cap3ti", + "cap3u", + "1car", + "ca3ra5c", + "car5ame", + "ca3ree", + "ca3r4i3c", + "car3if", + "car5m", + "car3ni", + "car3ol", + "car5on", + "car5oo", + "ca3rou", + "car4v", + "case5", + "cashi4", + "3cas3s", + "cas5tig", + "3casu3", + "c1at", + "c4at.", + "c2atc", + "c4atom", + "ca3t2r", + "c4ats", + "cat4u", + "3cau", + "caulk4i", + "cav3il", + "3cay", + "c1c4", + "ccent5r", + "cces4sa", + "c3ch", + "cci3d4", + "ccip4", + "ccle3", + "4ce.", + "4ceab", + "cean3", + "3ceas", + "ce4ci", + "2ced", + "5ceda", + "ce3dar", + "3cede", + "3cedi", + "4cef", + "ce5g", + "3ceiv", + "cel3ai", + "cel5ib5", + "5cell", + "cel5lin", + "celo4", + "ce5lom", + "4cely", + "2cem", + "ce4met", + "3cemi", + "ce4mo", + "1cen2", + "5cenc", + "cen5ci", + "cen5ded", + "cend5en", + "cend5er", + "cen3i", + "2cenn", + "3cent", + "cent4a", + "cen5ted", + "cen5ter.", + "cen5ters", + "cen5tes", + "1cep", + "cept3a", + "cep5tic", + "3cera", + "cer4bi", + "3cerd", + "ce3rem", + "5cern", + "5cess", + "cest5o", + "ces5tr", + "ce2t", + "cew4", + "2ch", + "4ch.", + "4chab", + "3chae", + "3chai", + "cham5per", + "chan5gi", + "cha3pa", + "chec4", + "4ched", + "3chee", + "3chem", + "che3ol", + "ch1er", + "ch4eri", + "5cherin", + "ch4erl", + "4ches", + "3chete", + "ch5eu", + "che5va", + "3chew", + "ch5ex", + "5chi.", + "3chia", + "3chico", + "ch3ily", + "ch4in.", + "ch3inn", + "3chio", + "5chip", + "chizz4", + "ch5k", + "5chlor", + "4chm", + "1cho", + "cho3a", + "5choc", + "4choi", + "ch5oid", + "3chor", + "4chored", + "chor5ol", + "4choso", + "3chot", + "4choti", + "ch5ous", + "chow5", + "3chr", + "chur4", + "3chut", + "5chyd", + "3chyl", + "3chym", + "1c2i2", + "4ci.", + "4ciac", + "cia4m", + "ci3ca", + "4cids", + "4cie.", + "ci3er", + "ci3est", + "ci5et", + "ci3f", + "cifi4", + "4cig", + "ci3ga", + "cigar5", + "3cil", + "cil5lin", + "2cim", + "cim3a", + "ci3me", + "5cimen", + "4cinab", + "4cind", + "cine5a", + "cine5mat", + "ci5ness", + "4cint", + "ci3ol", + "ci5om", + "ci4po", + "cisi4", + "cit3r", + "ck1", + "ckar5", + "cka5t", + "c4ke", + "ck5if", + "ck4sc", + "cl2", + "cla5rif", + "3clas", + "c2le2", + "2cle.", + "c5lec", + "clemat4", + "clev3", + "cli1m", + "c3ling", + "cli2q", + "clo4q", + "c4lotr", + "clue4", + "clyp5", + "5clys", + "cn2", + "c3ni", + "1c2o2", + "4co.", + "3coa", + "co5ba", + "3coc", + "co3ci", + "co5cu", + "co3dic", + "co3dif", + "4cody", + "3coe", + "co5et", + "co3gr", + "4c3oid", + "co3inc", + "4col.", + "col3a", + "co3log", + "5colou", + "co5ly", + "co5mas", + "co4me", + "co3mo4", + "comp4", + "con1", + "con4ati", + "con4ch", + "cond5er", + "con4ey", + "con4ie", + "con3s", + "con3t", + "conta5d", + "3coo", + "coop4", + "co3or", + "cop4e", + "co3ph", + "co5pl", + "co3po", + "cop4t", + "2cora", + "cor5ded", + "cord5er", + "4cored", + "co3rel", + "3corn", + "4coro", + "co5rol", + "5cort", + "3cos.", + "cost3a", + "cost5er", + "co5ta", + "3co3tr", + "5coty", + "cous5t", + "cov1", + "co3va", + "cow5a", + "coz4", + "co5zi", + "c1q", + "cr2", + "5craf", + "craft5i", + "c4ran", + "5crani", + "cra5niu", + "cras3t", + "cra4te", + "c2re", + "4crean", + "cre3at", + "cre4p3", + "5creti", + "cre4to", + "cret5or", + "cri3l", + "cron4", + "crost4", + "4crou", + "5c4rus", + "cry2", + "crym3", + "cryo3", + "4c5s4", + "csim5", + "2ct", + "c2ta", + "c3tac", + "ctac5u", + "c5ta5g", + "ct1an", + "ct5ant", + "c5taria", + "c3tato", + "c1te", + "c4tea", + "c2t5ee", + "c4tent", + "cter4ia", + "ct5es", + "ct5et", + "ct2ic", + "c5ticia", + "c4tics", + "ctifi4e", + "c3tim", + "ct4in.", + "ct4ina", + "ct5ing", + "c3tini", + "c5tin5o", + "c5tio", + "c3t2is", + "c3tit", + "c4titu", + "c4tity", + "ct5ive", + "ct4ivit", + "ct5olo", + "c1tom", + "c3ton", + "c5toris", + "c5toriz", + "c1tr", + "c2tre", + "ctro5t", + "c1tu", + "c2tum", + "c1ty", + "cub3at", + "c4uf", + "cu5ity", + "cul5ab", + "c2uli", + "cull5er", + "cull5in", + "1c2ult", + "cu4mi", + "5cuna", + "cun4e", + "5cuni", + "5cuol", + "cu5pa", + "cu3pi", + "c3upl", + "1cur", + "cur4er", + "cur5ial", + "4cur4o", + "1cus", + "cus5a", + "c3utiv", + "c3utr", + "5cuu", + "cu5v", + "2cy.", + "cy4bi", + "1cyc", + "cyl3", + "cy4m", + "cy5no", + "cys4", + "cys5to", + "cy4t", + "cz2", + "4da.", + "d4abr", + "1d2ac", + "dach4", + "d5ache", + "3dact", + "d1ag", + "d4a4gi", + "d4ale", + "d4alg", + "dal5ler", + "dam5a", + "3dame", + "d3ami", + "da5mu", + "3dang", + "d1an4t", + "d3ap", + "d3ard", + "5darm", + "3d4as2", + "dast5a", + "d1at", + "dativ4", + "dat4u", + "daugh3", + "daun5te", + "3dav", + "d3b", + "d3c4", + "d1d4", + "d4dere", + "d3di", + "d3dler", + "d3dli", + "d3dyi", + "2de.", + "deac3t", + "de5aw", + "de4bi", + "deb5it", + "3dec", + "de5cant", + "de4cil", + "de1cr", + "4dect", + "ded3i", + "defor5e", + "de4fy.", + "de3g", + "de4gu", + "de3io", + "5de3is", + "de3lat", + "deli4e", + "del5ler", + "del5li", + "de5lo", + "1d4em", + "4demie", + "4dem4is", + "demo4n", + "de4mons", + "de3mor", + "de4mos", + "4demy", + "de1n2a", + "den4d", + "4dene", + "d3enh", + "deni4e", + "dens5a", + "dens5er", + "den5tit", + "de3od", + "deo3l", + "deon2", + "deont5", + "de1p", + "depen4", + "deposi4", + "de2pu", + "d3eq", + "derac4", + "de3rai", + "d4ere", + "4dered", + "de5reg", + "3derer", + "1deri", + "der3k", + "3derm", + "der4mi", + "der5min", + "5derne", + "3dero4", + "der5os", + "der3s", + "5deru", + "4des.", + "de3sa", + "5desc", + "des4ca", + "de5scal", + "de3sec", + "des4i", + "de3sid", + "des5igna", + "des1p", + "des5pon", + "de3sq", + "d3est.", + "des3ti", + "1de1t", + "de3tes", + "de5th", + "de2ti", + "dev3il", + "de3vis", + "de3vit", + "de4voi", + "devol5u", + "3dex", + "2d5f", + "dfol4", + "d2g", + "dg4a", + "dgel4", + "d4gen", + "d3gr", + "4d1h", + "dhot4", + "d4hu", + "4di.", + "1dia", + "di2ad", + "3diar", + "diat5om", + "4d1ib", + "d1ic.", + "dic5am", + "di4ce", + "di3ch", + "d5icl", + "dic5ol", + "1dict", + "dic5tat", + "dic4te", + "5dicul", + "d5icur", + "1did", + "di4ers", + "3di3ev", + "d4ifo", + "dig3al", + "di3gam", + "dil4", + "5dill", + "dilo4", + "di3lu", + "di5mer", + "dimet4", + "di1mi", + "2d1in", + "din4e", + "din5gi", + "di5nos", + "3di1o", + "dio4c", + "di4ola", + "dip5t", + "3dire", + "di3ri", + "4d5iro", + "di4s1", + "d4isc", + "disen3", + "3disia", + "3diss", + "d4itas", + "d4iter", + "dithe4", + "d3ito", + "ditor3", + "2dity", + "1diu", + "1di1v2", + "di4val", + "di5vine", + "dix4i", + "d1j", + "2dl4", + "d1la", + "5dlef", + "5dlest", + "3dlew", + "dlin4", + "d1lo", + "d5lu", + "2d1m", + "4d1n2", + "1do", + "4do.", + "d4ob", + "do4c3u", + "dog4a", + "do4j", + "d4ol.", + "dol3en", + "do5line", + "dol5it", + "do4lon", + "d4ols", + "5dom.", + "doman4", + "domin5", + "dom5ino", + "dom5it", + "do5mo", + "don4at", + "4dony", + "3doo", + "d2or", + "4dor.", + "dor4m", + "dort4", + "d4os", + "do5sim", + "dossi4", + "dot1a", + "dot4tin", + "2dous", + "d4own", + "3dox", + "d1p", + "dr2", + "d5rail", + "d3ral", + "3dram", + "dran4", + "d4ras", + "drast4", + "3drel", + "dres4", + "dress5o", + "dri4e", + "d4rif", + "dri4g3", + "d4rom", + "dropho4", + "drunk3", + "4d1s2", + "d5sl", + "ds3m", + "ds4mi", + "d4sw", + "dt4", + "dt5ho", + "1du", + "2du.", + "du1at", + "3duc", + "duch5", + "duci5an", + "du4co", + "du5eli", + "du5ell", + "du5en", + "du5ett", + "du5in", + "dul3c", + "d3ule", + "dul4l", + "dum4be", + "dun4a", + "d5un4c", + "du2p", + "du3pl", + "5duro", + "d5use", + "dust5er", + "du3u", + "d1v", + "dver2", + "dvert3", + "dvoc5at", + "2d1w", + "dwell3", + "2d2y", + "dy4ad.", + "dy5ar", + "5dy4e", + "5dyk", + "dyl2", + "dyll3", + "5dymi", + "3dyn", + "dys3p", + "d3zo", + "ea2", + "4eab", + "e1act", + "eac4te", + "ea5cu", + "e5add", + "ead3er", + "ead1i", + "ead3li", + "ea4g", + "eak1", + "eal3a", + "eal3er", + "ea3log", + "eam4bl", + "eam3er", + "ean5i", + "eap2", + "eap5er", + "e3app", + "ear3a", + "ear3er", + "ear4li", + "e5ar2r", + "ear4te", + "earth5i", + "eas5er", + "ea4soni", + "e1as1s", + "eassem4", + "eas4t", + "east5i", + "eat5eni", + "eat3er", + "eat5ie", + "e3atif", + "eatit4", + "eat4itu", + "e3atri", + "e4atu", + "eau3", + "eav5i", + "eavi4e", + "eav5ou", + "eaz5i", + "e1b", + "ebar4", + "eb2b", + "ebe4", + "e4bel.", + "e4bels", + "e2ben", + "eb5et", + "eb2i", + "e5bil", + "e4bin", + "e4bis", + "e4bl", + "e4bos", + "ebot3o", + "e2br", + "eb1ra", + "eb2t", + "e4buc", + "ebus5i", + "ec2a", + "ec3ade", + "ecad5en", + "ecal5e", + "e5cam", + "e4capo", + "ec3at", + "ec5ath", + "e1ce", + "ecent5o", + "ech3i", + "e4cib", + "eci4f", + "ecip5i", + "e1cl", + "ec3lip", + "econ4sc", + "econstit5", + "ec3ora", + "ec5oro", + "ec3rat", + "ec5rean", + "e4crem", + "ec1ro", + "ect5ati", + "ec4ter", + "ecti4c", + "ec4tit", + "ec4t5us", + "ec1ul", + "e5culi", + "2ed", + "e5dans", + "e2dat", + "ede2", + "e4ded", + "e5deh", + "e4dele", + "edes3t", + "ede3te", + "edeter5", + "e3dev", + "e5dew", + "ed4g", + "edi4als", + "ed5ical", + "ed5ics", + "ediges4", + "ed5igr", + "ed3ime", + "ed1it", + "edi2v", + "ediv5id", + "ed3li", + "edor4", + "e4dox", + "ed1ro", + "edu5cer", + "e2dul", + "ed3ulo", + "e4d5ur", + "ee4ce", + "eed3er", + "ee4do", + "ee2f", + "ee5g", + "ee1i", + "ee2l1i", + "ee2m", + "eem5er", + "eem3i", + "eep1", + "ee4pa", + "eer4ine", + "eesi4", + "ee3to", + "e1f", + "efact5o", + "efal4", + "ef5eree", + "ef5inite", + "e4fite", + "ef4l", + "efor5est", + "2efu", + "e4fug", + "efut5a", + "egel3", + "egi5a", + "e4gib", + "e3gla", + "eg3le", + "eg4mi", + "eg5nab", + "e5g4on", + "e2gr", + "e5gur", + "e1h2", + "e5ho", + "eh5s", + "ehy2", + "ehyd5r", + "eid4", + "5eido", + "4eif", + "eig2", + "e5ignit", + "e4in.", + "e3inc", + "e2ine", + "e1ing", + "ein5i", + "e4ins.", + "ei4p4", + "eir3o", + "4eis", + "eis3i", + "eit5er", + "eith4", + "e2iv", + "eiv3er", + "e2iz", + "e1j", + "ejudic4", + "ek3en", + "ek5is", + "ek4l", + "e4lac", + "e5lad", + "el5age", + "elam4", + "el5anc", + "elast3", + "e4lates", + "el5ative", + "elch5er", + "eld3er", + "2ele", + "elea5g", + "4e4led", + "el5eni", + "el3eno", + "ele3o", + "ele5ph", + "el1er", + "e1les", + "e5less", + "e4leste", + "el3et3o", + "elev3a", + "ele3vi", + "el5ex", + "e4l3ica4", + "e1lie", + "eli4ers", + "e3lim", + "el3ing", + "eli3on", + "e4li4s", + "elit4t", + "e3liv", + "el4lab", + "ell5iz", + "e3loa", + "e3loc", + "elo5ca", + "eloc3u", + "elo4di", + "e2log", + "elom5ate", + "el5op.", + "el5ops", + "elp5in", + "el3so", + "el5tie", + "e1lu", + "elu4m", + "elus4", + "elv4", + "e5lyi", + "3elyt", + "em3ago", + "em3ana", + "emar4", + "emarc5a", + "em5atiz", + "emat5ol", + "em5bi", + "e1me4", + "e4mee", + "e4mel", + "e3mem", + "e4m3era", + "em5ero", + "emet4e", + "em4icis", + "e4mie", + "e2mig", + "emig5ra", + "em3ina", + "em5ing", + "e3mio", + "em3ism", + "e4mita", + "e4miu", + "em4mae", + "4emnit", + "emo3bi", + "emod4u", + "e2mog", + "e4moi", + "em3olo", + "em5om", + "4emon", + "e3moni", + "emon5ol", + "e2mor", + "em5oris", + "em3orr", + "e4motic", + "e5moz", + "empa5r", + "empara5", + "em5pes", + "4empli.", + "em4pre", + "em3um", + "e5mut", + "en3ac", + "e4nal", + "en3am3o", + "en4ann", + "e2n3ar", + "en3as.", + "ena5ture", + "3encep", + "en4cile", + "enct4", + "2end", + "en4d5al", + "en4dedl", + "end5rit", + "4ene", + "ene5d", + "en3ee", + "e5nelle", + "e5nep", + "e2ner", + "e5nereo", + "ener5v", + "en5esi", + "e3ness", + "en1et", + "en4ett", + "e2n3eu", + "e3new", + "en3gi", + "en3ic", + "en5ier", + "en3ig3r", + "en5in", + "enit5u", + "en3k", + "en1o", + "en3oi", + "eno2m", + "en3oty", + "enov3", + "en2s", + "ens5al", + "en3sp", + "en4sum", + "en4sus", + "ent3ar", + "en4ters", + "en5tia", + "en4tify", + "en2to", + "en4tri", + "ent5rin", + "ent5up", + "en4tus", + "4enu", + "en3ua", + "en3uf", + "en3ur", + "en5ut", + "5enwa", + "eo3b", + "e4och", + "e4oda", + "eof2", + "eo2l", + "eol5ar.", + "eol5at", + "eologi4", + "e5olu", + "eo3m", + "eon4a", + "e3ont", + "eop4t", + "e1or1", + "eor4de", + "eor3e", + "eor5o", + "eo1s2", + "eo4to", + "e1pa", + "ep4al", + "ep5arc", + "epa4t", + "epend5en", + "ep5ert", + "e4pete", + "epe5titio", + "ep5ex", + "eph1", + "eph4i", + "e2pig", + "e5pla", + "ep3lic", + "epol3a", + "epol3i", + "epolit5", + "ep3reh", + "epres5e", + "ep5rim", + "e4p5rob5", + "ept3or", + "e1p4u", + "e3pur5", + "e4puta", + "equin4", + "equi5no", + "er1", + "era4cie", + "era4do", + "era4g", + "era4l", + "er3aph", + "er3api", + "er3apy", + "4erati.", + "4eratim", + "er5atu", + "er3bat", + "er3be", + "erb5os", + "2erc", + "er3ch", + "er3cl", + "2erd", + "erd5ar", + "erdi4e", + "2ere", + "er3eal", + "4ered", + "er3egr", + "er5el.", + "er5ell", + "er5els", + "e4reme", + "er3en", + "5erend", + "eren4e", + "ere5ol", + "e3req", + "er3er", + "ere4s", + "er5ese", + "er3esi", + "er5este", + "er5esti", + "eres5tr", + "eret4", + "er3et.", + "er3ets", + "er3ett", + "ere4v", + "er3ex", + "ergi3v", + "er3gl", + "er3ia.", + "er4ian", + "eri4cid", + "5er5ick", + "er2id", + "er3ie", + "er3iff", + "er4imet", + "er3in", + "eri4na", + "eri4on", + "er3iou", + "er4isc", + "eri5sta", + "4eri2t", + "e3riv", + "er5iz", + "4erj", + "erk4", + "er3me", + "er4moi", + "5ernacl", + "er5nalis", + "ern3er", + "ern3is", + "ern3it", + "4ero.", + "er3oid", + "ero5is", + "ero5st", + "erpent5in", + "erre5la", + "er4rep", + "er5sine", + "er5ted", + "er4ter", + "ert5er.", + "ert5ers", + "er4thi", + "ert5iz", + "2eru", + "eru4b", + "eru5d", + "erund5", + "er4vil", + "5erwau", + "eryth3", + "2erz", + "4es.", + "es5am", + "es5an", + "e2sc", + "es5can", + "es5che", + "esci5e", + "escut5", + "e3sea", + "e3sect", + "e5see", + "e5seg5", + "ese4l", + "es5enc", + "e3sh4a", + "e1shi", + "e5shu", + "esi4an", + "es5ic.", + "e5sick", + "es5iden", + "esi5diu", + "es5ies", + "es3im", + "es3in", + "e5sion", + "e4sit", + "es4it.", + "es4its", + "e3skin", + "e3s4mi", + "es4od", + "es3ola", + "es3ol3u", + "es3ona", + "eso3p", + "e1sor", + "es3per3", + "es5pira", + "es5pit", + "es4pl", + "esplen5", + "es5pot", + "e5s2pr", + "es4s3an", + "essar5", + "ess5ee", + "es4sil", + "es2so", + "esta4b", + "est3an", + "e5star", + "es5tau", + "e2sti", + "est5ifi", + "est5igati", + "e3stoc", + "es5too", + "est4r", + "estud4", + "e1su", + "e2s3ul", + "es4ur5", + "et2a", + "et3al.", + "et5allis", + "et3al5o", + "eta5me", + "eta3p", + "et3ari", + "et5ary", + "et4as", + "et3ate", + "et3ati", + "et5ay", + "et3eer", + "etell5i", + "etend5er", + "et5eni", + "eter2", + "et3er3a", + "et5eria", + "etex4", + "e2th1", + "ethyl3", + "2etia", + "e3ticu", + "eti4gi", + "e5tim", + "et3in", + "eti4na", + "e3tir", + "et5itiv", + "eti4u", + "et5olo", + "e5tomete", + "e2ton", + "et3ona", + "etor3i", + "etra5g", + "4e4tral", + "etra5m", + "et4ran", + "et5ress", + "et1ri", + "et4ria", + "etrib5a", + "e4trim", + "et1ro", + "et2t", + "et3ter", + "etud4", + "et3ude", + "e4tum", + "et4we", + "et5z", + "eudio5", + "eue4", + "euk5", + "4eum", + "e3urg", + "eur5i", + "eus4", + "eu5ten", + "eu3ter", + "eut3i", + "ev4abi", + "eval5e", + "eva2p3", + "ev3ast", + "ev3at", + "ev5eli", + "eve4n", + "ev5erat", + "ev5eren", + "ever4er", + "e4veri", + "e4ves", + "e1via", + "e4viab", + "e2vic", + "evictu4", + "evid3", + "ev5ig", + "ev4ile", + "ev5ish", + "evis5in", + "evis5o", + "e4viu", + "evoc3", + "evol5e", + "evol5ute", + "evu4", + "e1wa", + "e4wag", + "e5way", + "ew1er", + "e3wh", + "ew5ie", + "ew1in", + "ew5ish", + "e3wit", + "e1wr", + "ex5ic", + "ex4on.", + "1exp", + "4ey.", + "ey4as", + "eyl4", + "ey3s2", + "ez5er.", + "ez5ers", + "ez5ie", + "1f2a", + "2fa.", + "fab4i", + "fa3cet", + "fact2", + "fa2c3u", + "2f3ag", + "fall5in", + "5falo", + "fa5lon", + "fals5ifie", + "4fan3a", + "fan5tasiz", + "fant3i", + "5far", + "far3i", + "5faw", + "4f5b", + "2f5d", + "2fe.", + "3feas", + "fea3tu", + "feb5r", + "3fec", + "2fed1", + "5fei", + "fe1li", + "fem3i", + "femin5", + "fend5er", + "f5eni", + "4fered", + "fer3ee", + "3fero", + "fe5roc", + "fer5om", + "3ferr", + "fer3v", + "2fes.", + "fess3o", + "fest3a", + "fest5i", + "fe4t", + "fet4al", + "fet4in", + "fet4o", + "3feu", + "fe5veri", + "2ff", + "f1fe", + "ffec4te", + "f5fet", + "f1fi", + "f5fia", + "f3fic", + "f5fie", + "ffil3", + "f2f3is", + "ff4le", + "ff3lin", + "ffoc3", + "ffoni4", + "ffor3e", + "f3fr", + "ffranch5", + "4f5h", + "fi5ance", + "fib5u", + "4fic.", + "4fical", + "3fici", + "4fics", + "fi5del", + "fid3en", + "fiel4", + "fier4c", + "fight5", + "1fi2l", + "2fin", + "fin2a", + "fi3nal", + "find3", + "fin2e", + "f1ing", + "5finin", + "fin4ni", + "fir2m1", + "f3ita", + "f5itee", + "fl2", + "3fla", + "fle2s", + "f3lica", + "flin4", + "3flo", + "flo5ric", + "3flu", + "flum4i", + "1fo", + "4fo.", + "3foc", + "fo2e", + "foeti4", + "fo1l4i", + "fo4lie", + "foment4", + "fo2n", + "fon4de", + "3foo", + "fo5ram", + "for5ay", + "for5b", + "for4di", + "fore3t", + "5form", + "for4m3a", + "fortu5na", + "fo3v", + "1fr2", + "frag5a", + "frant4", + "frar4", + "fratch4", + "fre4s", + "frost5i", + "fruc4", + "2f3s", + "fs4p", + "2ft", + "f1ted", + "f4ter.", + "ft5es", + "fti4et", + "ft4ine", + "3fu", + "4fu.", + "fu4c", + "fuel5li", + "fug4a", + "fu4min", + "fun2g", + "4fured", + "fur3n", + "fu3sil", + "fus5o", + "fu5til", + "4ga.", + "ga4cie", + "gadi4", + "ga4dos", + "3gag", + "3gai", + "3gale", + "ga5len", + "gali4a", + "gal5ler", + "3galo", + "gam4bl", + "gan5at", + "4ganed", + "gang5er", + "g5ant.", + "gan4tr", + "g5ants", + "g5arc", + "g4are", + "gar3ee", + "gariz4a", + "ga5rot", + "gar5p", + "5garr", + "1ga4s", + "gas5i", + "gas3o", + "gasol5", + "gass5in", + "gast3r", + "g1at", + "g4at.", + "gat5iv", + "g4ato.", + "g4atos", + "g4att", + "gat5u", + "gaud5", + "ga5za", + "g1b", + "g5d4", + "2ge.", + "5geal", + "3gean", + "2ge4d", + "3gedi", + "5gedn", + "4gef", + "1gel", + "4gele", + "ge4li", + "gel4in", + "gel5li", + "ge4lu", + "2gely", + "gem3i", + "5gemo", + "3gen", + "gen4du", + "gen5it", + "gen3o", + "gen5ti", + "ge4o", + "geo3lo", + "4gere", + "3germ4", + "2ges.", + "5gess", + "gest5at", + "3get", + "get3a", + "2g1f", + "2g1g", + "gg4a", + "g2ge", + "g5gedl", + "g3ger", + "g5gerer", + "ggi4a5", + "g3gli", + "gglu3", + "g5gly", + "ggrav3", + "g4gro", + "2gh", + "g5hai", + "gh5eni", + "g3ho", + "g4hos", + "gh2t", + "1g2i", + "4gi.", + "gi4all", + "gi4at", + "3gib", + "gi5co", + "gi4g", + "gi5gan", + "gin5gi", + "3gio", + "gi4or", + "gi4ot", + "5gip", + "gi5pa", + "g4i4s", + "5gis.", + "gi2t1", + "5gitu", + "giv5en.", + "2gl2", + "g3lar", + "5glass.", + "glec4", + "3gler", + "g4leto", + "g4letr", + "g4ley", + "gli5on", + "g5lis4", + "3glo", + "4g5lod", + "glom3", + "4glop", + "3glu", + "glu5te", + "glu5ti", + "3glyp", + "2g1m4", + "2gn2", + "g1na", + "g4nab", + "g5nate", + "5gnath", + "g5nati", + "gna5tur", + "gn5edl", + "gn5ee", + "gn3er", + "g1ni", + "g4nia", + "g2n3in", + "gn4in.", + "g4ni2o", + "g2no", + "5gnori", + "gno4s", + "2go.", + "5goa", + "3goc", + "5god", + "3goe", + "go4et", + "go4ge", + "4gogram", + "g5oid", + "go3is", + "go2me", + "5gonn", + "go5nom", + "3goo", + "goph4", + "4gor.", + "5gorg", + "4gors", + "g4ory", + "3gos", + "gos4t", + "2gou", + "gour4i", + "g1ous", + "gov1", + "g3p", + "1gr2", + "grab4", + "3gram", + "4grame", + "gra2p", + "g4re", + "gril4", + "grim3a", + "g4ro", + "gro4g", + "g5ron", + "grop4", + "3gru", + "gru3en", + "gru5i", + "grum4b", + "2g1s", + "gs4c", + "gs4t", + "g4sti", + "gth5eni", + "g5to", + "g4u2a", + "gu5ab", + "5guan", + "3guard", + "g5uat", + "2gue", + "5gueu", + "5guit4", + "gui5ta", + "gu2ma", + "gu4mi", + "3gun", + "g4uras", + "g4ured", + "gur4n", + "gur4u", + "4gury", + "gust5a", + "2g1w", + "2gy", + "gy2b", + "5gym", + "3gyn", + "gyn5o", + "g5z2", + "ha2", + "4ha.", + "h4ac", + "hadi4e", + "had4ine", + "hae3o", + "haged5", + "hagi3o", + "hag5u", + "ha5ic", + "hais4", + "hak4ine", + "hal5ant", + "ha4m", + "ham5an", + "han4cro", + "han2g", + "h1ani4", + "h5aniz", + "han4t", + "hant3a", + "ha4pe", + "hap3l", + "har1a", + "har5b", + "har4d", + "har5die", + "harge4", + "ha5rism", + "har3o", + "har4ted", + "har4ti", + "has4te", + "hat5o", + "haught5", + "havel4", + "hav5ersi", + "hav5o", + "h1b", + "h1c", + "h1d", + "hdeac5", + "hdu4", + "he2", + "4he.", + "h2ea", + "1head", + "3hear", + "hearch4", + "heast5", + "heav5en", + "hec3t4", + "he5del", + "he3do", + "heek4", + "h4ei", + "he3is", + "he5lat", + "h5elin", + "he3lio", + "he5liu", + "hel4li", + "h3el3o", + "hem1a", + "he3men", + "hemis4", + "he5mop", + "hem4p", + "hende5", + "he3or", + "hep1", + "h1er.", + "her4as", + "her2b", + "herb3a", + "herb3i", + "here3a", + "here3o", + "h5erett", + "h5erh", + "her5ial", + "h5erine", + "h1erl", + "her5om", + "h4eron", + "h1ers", + "h5erwa", + "hes3tr", + "het1", + "h4et3a", + "het3i", + "het4ted", + "heu2", + "heum3", + "heumat5", + "he4v4", + "hev5i", + "hex5o", + "h1f", + "h5h", + "2hi.", + "hi4ar", + "h1ic", + "hi3c4an", + "hi4cin", + "h4icl", + "h5ie.", + "h1ier", + "h4i4ers", + "h1ies", + "h3ifi4", + "h3ify", + "hig4o", + "hi5ka", + "hi4l", + "hi5ma4", + "hi5mer", + "himos4", + "h1in", + "hin4d", + "h2in2e", + "hi5nie", + "h5iniz", + "hi5nop", + "h2ins", + "hio5lo", + "h4ior", + "hi2p", + "hip3l", + "h4ir", + "hir4r", + "hirr5i", + "hit4a", + "hiv5a", + "4hl", + "h3la", + "h1le", + "h3let", + "h1l2i", + "hli4a", + "2h1m", + "h4manic", + "h5mica", + "2h1n2", + "hnocen5", + "4ho.", + "ho3an", + "ho4co", + "ho3don", + "ho5du", + "ho5ep", + "hol3ar", + "hold1", + "hol4is.", + "ho5lys", + "ho4mag", + "hom5in", + "h2o4n", + "hon5em", + "ho5neu", + "hon3ey", + "hong3i", + "ho5nio", + "hon1o", + "1hood", + "hoo5r", + "h4ope", + "ho2p5r", + "h4op4te", + "hor5et", + "h4orn", + "horn5i", + "ho5rog", + "hort5h", + "hosi4", + "ho4ton", + "h2ou", + "3house3", + "4h1p", + "2hr", + "hras5eo", + "hre4", + "hre5ma", + "hr5er", + "hres4", + "hri4", + "hrill5in", + "hrim4", + "h5rit", + "h3rod", + "hrom4i", + "hry4", + "h3rym3", + "2h1s", + "hsi4", + "h4sk", + "ht5ag", + "ht5ee", + "ht3en.", + "ht5ener", + "ht3eni", + "ht3ens", + "ht5eo", + "ht5es", + "ht4foo", + "h1th", + "ht4ine", + "hu4g", + "hu4mat", + "hu5mer", + "hu4min", + "hun4c", + "hunk4", + "hun4t", + "hur3i", + "hu3sia", + "huz4", + "h1w", + "h4wart", + "h2y", + "hy2l", + "hyl5en", + "hy2m", + "hyn4", + "hy3o", + "hyol5i", + "hy1pe", + "hy3ph", + "hyr4", + "hys3te", + "hy4t", + "2i1a2", + "ia4bl", + "iab5olis", + "iab5oliz", + "i2ach", + "iac3o", + "i2ac2r", + "ia5cri", + "ia5dem", + "i5ae", + "iaf4", + "i2ag4", + "ia3gn", + "i5a4g5o", + "ia3gr", + "i3ah", + "i5ai", + "ialect4", + "i3alit", + "ial5li", + "4ialn", + "i2a3lo", + "ia5ly", + "i5amb", + "ia3me", + "ianch5", + "i3ant", + "i5ape", + "ia3ph", + "i2ard", + "4iarit", + "i3at", + "ia5the", + "i5atom", + "iat4u", + "iatur4a", + "i3au", + "iav4", + "ib3era", + "ib1i", + "ibio4", + "ibios4", + "ib5li", + "4ibo", + "i4bon", + "ibor4", + "i4bose", + "i5bou", + "ib1ri", + "4ibu", + "ib3uta", + "ic3ac", + "ic5ado", + "i4cal", + "ic1an", + "2icar", + "iccu4", + "4ice", + "i5ceo", + "4ich", + "ich4i", + "ich5ing", + "ich5ol", + "4icin", + "i5cio", + "2ick", + "ic4lo", + "2i2co", + "ico3c", + "ic5ola", + "icon3o", + "i5cop", + "icotyle5", + "2i1cr", + "i4cri", + "i4cru", + "i4cry", + "ic4tedl", + "ic4ter", + "ict5ic", + "2icu", + "icu4lu", + "ic3um", + "i5cun4", + "i5cut", + "2i1cy", + "i2d", + "id1a", + "i5day", + "ide4m", + "id3enc", + "id3era", + "iderm5", + "i3dicu", + "id3if", + "i5dig", + "i5dil", + "i3dim", + "id4ines", + "idios4", + "idir4", + "id1is4", + "id4ist", + "2i4d1it", + "idi4v", + "id3li", + "id3ol", + "idol3a", + "4idomi", + "id3ow", + "4idr", + "id5ri", + "id3ul", + "ie2", + "4iec", + "2ieg2", + "ie3ga", + "ie5i", + "i5ell", + "4iem", + "2i1en", + "ien2d", + "i1er", + "i3eres", + "i2eri", + "ieri4n", + "4iern", + "ier2o", + "i4ert", + "i3esc", + "ies3el", + "i1es2t", + "i3est.", + "2i1et", + "i4et.", + "iet3ie", + "4ieu", + "i5euti", + "iev3a", + "iev3er", + "iev3o", + "2i1f", + "i2fe", + "if4fa", + "iff5ler", + "if3ic.", + "i4ficac", + "if5ics", + "ifi4d", + "ifi4n", + "4i2fl", + "i3fo", + "ifoc5", + "if5tee", + "i3fy", + "2ig", + "i3gad", + "ig3and", + "3igar", + "i1ge", + "i3ger", + "ight5er.", + "ight5ers", + "4igi", + "ign5iz", + "igno5m", + "i3gon", + "ig1or", + "ig3ot", + "i5gret", + "i4g5ro", + "igu5it", + "ig1ur", + "2i1h", + "ihy4", + "2ii", + "i5in", + "ija4", + "4iju", + "2ik2", + "ik5an", + "ike4b", + "i2l3a", + "ila4g", + "ila5tel", + "i5later", + "il4ax", + "il5dr", + "il4du", + "i3len", + "ilesi4", + "il3f", + "il3ia.", + "il3iar", + "ili4arl", + "i3lici", + "i5lien", + "ili4er", + "ili4fe", + "il4ific", + "il1in", + "il5ine.", + "4iliou", + "il5ipp", + "il5iq", + "il4ite", + "ilit5u", + "il4mo", + "i5lon", + "il3ou", + "ilth4", + "il2tr", + "4ilu", + "il5ul", + "i5lum", + "il5ure", + "il3v", + "4ilym", + "ima4c", + "im2ag", + "im3age", + "im1al", + "im5am", + "i5m2as", + "i4mated", + "i4matin", + "imat5u", + "im1i", + "i3m2ie", + "im4ine", + "im5ino", + "im5mes", + "i2mo", + "i5mog", + "i3mon", + "im5oo", + "i3mos.", + "impar5a", + "imparad5", + "im5pie", + "impot5", + "im5pr", + "impu4", + "im1ul", + "im5um", + "in3ab", + "4inace", + "in4ado", + "in5agl", + "in3air", + "ina4l", + "4inalit", + "in5am", + "in3an", + "in3ap", + "in4ars", + "i3nas.", + "4inata", + "inator5", + "in3au", + "in4aw", + "2inc", + "inc4tua", + "2ind", + "in5dar", + "inde5p", + "indes5", + "inde3t", + "indeterm5", + "in5dro", + "4inea", + "4ined", + "in5ee", + "in5ega", + "4in5eo", + "ine4s", + "in3esi", + "ine5te", + "4ineu", + "inev5", + "infilt5", + "infol4", + "4infu", + "4inga", + "in5gal", + "4inge", + "ing5ha", + "4ingi", + "4ingle", + "4ingli", + "4ingo", + "4ingu", + "ing3um", + "2ini", + "in5ia.", + "4inic", + "in4ici", + "in3ion", + "in4itud", + "4ink", + "ink4ine", + "4inl", + "2inn", + "2ino", + "4ino.", + "in3oi", + "i5nole", + "4inos", + "i3nos.", + "in5ose", + "in3osi", + "4inq", + "ins2", + "in4sch5", + "inse2", + "insect5", + "insec5u", + "in3si", + "5insk", + "insolv5", + "in4tee", + "int5ess", + "in3til", + "int5res", + "intu5m", + "2inu", + "in5ul", + "in5um", + "in3un", + "in3ur", + "invol5u", + "2io2", + "ioact4", + "i1od", + "iod3i4", + "iod5o", + "ioe4", + "io3gr", + "4i1ol", + "io3ma", + "i4omani", + "io3mo", + "i5ope", + "io3ph", + "i5opo", + "iop4s", + "i1or", + "iora4m", + "4iore", + "4iorit", + "5ioriz", + "4iorl", + "ior4n", + "io3sc", + "i3ose", + "i3osi", + "i4oso", + "io5sta", + "i3ot", + "iot4a", + "io5th", + "iot5ic", + "io5tr", + "i4oty", + "i4our.", + "i4ours", + "i5ox", + "2ip", + "ip3al", + "ipap4", + "ipar3o", + "ipart5ite", + "ip1at", + "i3pend", + "i1ph2e", + "iphen3", + "i5pheri", + "iphi4", + "i4phu", + "ip3id", + "i5pil", + "ip3in", + "ip4ine", + "ipir4", + "ip5is", + "ip1i4t", + "ip4iti", + "ip3lin", + "ip3lo", + "i3po", + "i4pog", + "i4poli", + "i4pom", + "ipon3", + "i4pow", + "ip2pl", + "ip3pli", + "ip4re", + "ip5tori", + "ip1ul", + "i5put", + "ipy4", + "2iq", + "i3qua", + "2ir", + "ir1a", + "ir4abi", + "ira4c", + "ir4ae.", + "ir4ag", + "ir4alin", + "ir4alli", + "i5raso", + "irassi4", + "iray4", + "ird3i", + "ire3a", + "ir3ec", + "ir5ee", + "irel4", + "ire5li", + "ires4", + "ir5ess", + "ir1i", + "ir2i4d", + "ir4im", + "ir4is.", + "5iriz", + "irl5ing", + "ir5och", + "ir5ol", + "ir3om", + "ir4q", + "ir2s", + "ir5ta", + "ir5tee", + "irwo4me", + "i4sa", + "is5ad", + "is3age", + "is1al", + "is3am", + "is1an", + "is3ar", + "is5av", + "4isb", + "i2s3c", + "is5chi", + "isci5c", + "4i1sec", + "ise5cr", + "is3ell", + "4is3en", + "is2er", + "is5ere", + "i2s3et", + "4iseu", + "is3har", + "ish5ee", + "4ishio", + "ish3op", + "is5hor", + "2isia", + "is5ic", + "is3ie", + "4isim", + "is3inc", + "4isis", + "is4ke", + "is1l", + "islun4", + "2isma", + "is1on", + "is5oner", + "iso5p", + "is1p", + "i3s2ph", + "5ispr", + "2is1s", + "iss5ad", + "is4sal", + "is5san", + "iss4iv", + "iss4o", + "4ista", + "is4tal", + "ist5enc", + "ist5ent", + "is5terer", + "4isth", + "is4t3ic", + "4istl", + "i4s1to", + "4is4tom", + "is1tr", + "3istry", + "4isty", + "i5sul", + "is3ur", + "2isy", + "it1a", + "it5ab", + "ita4c", + "4itai", + "it3am", + "it4ana", + "it4as", + "it3at", + "i3tect", + "it3ee", + "it3enc", + "it3ent", + "it3era", + "2ith", + "itha5l", + "ith5i", + "i5thol", + "ith3r", + "ithy5", + "2itia", + "iti4co", + "it5icu", + "it1ie", + "it3ig", + "4itim", + "it4in.", + "it4ins", + "4itio.", + "4itione", + "i5tiq", + "4i5tit", + "it3iv", + "it4li", + "it5lo", + "4ito.", + "it5ol", + "2iton", + "it1ou", + "2itr", + "it5ress", + "i4tric", + "2itt", + "it4tit", + "itu4als", + "it5uar", + "4itue", + "it1ul", + "it1ur", + "it3us", + "2i1u2", + "i3um", + "iur5e", + "2iva", + "iv5anc", + "iv1at", + "i4ved", + "iv5el.", + "iv5eling", + "iv5els", + "i4ver.", + "iv3eri", + "i4vers.", + "iver5sal", + "ives4", + "iv3et", + "i4vie", + "iv3if", + "i5vilit", + "5ivist.", + "5ivists", + "iv1it", + "i2vo", + "ivoc3", + "i5vore", + "2i1w", + "2ix", + "ix3o", + "i5ye", + "1iz", + "4izah", + "iz3i2", + "2izo", + "iz5oi", + "2izz", + "1ja", + "2ja.", + "3jac", + "ja2c5o", + "jac3u", + "jag5u", + "jal4", + "ja5lo", + "ja5pan", + "jel5la", + "jeo2", + "jeop3", + "4jes", + "jeu4", + "jew3", + "2ji", + "3jig", + "jil4", + "jill5", + "5jis.", + "3jo2", + "4jo.", + "joc5o", + "joc5u", + "jol4e", + "4jr", + "4js", + "ju1di", + "jui4", + "ju5l", + "ju3ni", + "juscu4", + "jut3a", + "ju1v", + "k4abi", + "k2a5bu", + "kach4", + "k3a4g", + "kais5", + "ka4l", + "ka5lim", + "kal4is", + "k4an", + "ka3o", + "kap4", + "kar4i", + "1kas.", + "kaur4", + "kav4", + "k1b4", + "k1c", + "kcom4", + "k5d2", + "kdo4", + "kdol5", + "4ked", + "ke5da", + "k5ede", + "3kee", + "ke4g", + "ken4d", + "keno4", + "kep5t", + "ker5a", + "k4ere", + "k5erel", + "ker4j", + "ker5o", + "kes4i", + "ket5a", + "key4wo", + "k1f", + "kfur4", + "k3ho", + "5kih", + "ki2l", + "kilo3", + "k1in", + "k2in.", + "3kind", + "kinema4", + "kin5et", + "k3ing", + "kin4i", + "k2ins", + "kir3m", + "kir4r", + "kis4", + "3kis.", + "k1ish", + "kit5c", + "ki4w", + "kk4", + "k5ker", + "k2l2", + "k3la", + "k5lea", + "k3ler", + "k3let", + "k3li", + "k3lo", + "k1m", + "kn2", + "k2no", + "1know", + "ko5a", + "kol4", + "ko5mi", + "ko5pe", + "k1p", + "k5ro4", + "k3ru", + "4k1s", + "k3sl", + "ks2mi", + "ks4t", + "k1t", + "kur5", + "k5v", + "k1w", + "3kyl", + "l2a", + "4la.", + "5laa", + "lab5ar", + "label4", + "5labr", + "l4ac", + "la2ca", + "la5ceo", + "la5cer", + "la4ch", + "la2co", + "5la5col", + "lac5on", + "la3cu", + "la4de", + "l5adm", + "l4ae", + "l4af", + "la3ger", + "la4gis", + "lag3r", + "5lah4", + "la4ic.", + "l4al", + "4lale", + "5lamandr", + "la5melli", + "lam4ie", + "lam1o", + "l5amu", + "lan3at", + "lan2d", + "3land.", + "land3i", + "3lands", + "lan4er", + "lan3et", + "lan5tine", + "lan4tr", + "la4p", + "lapi4", + "lar5an", + "lar5de", + "4lared", + "l4as", + "lat5al", + "la4te", + "5latilis", + "5latiliz", + "5latini", + "lat5us", + "l4au", + "5laur", + "lav5at", + "l4aw", + "4laz", + "l3b", + "lbe4", + "l4bit", + "l4by", + "l1c2", + "l2cat", + "lce4", + "lcen4", + "l4cere", + "lch4e", + "l3dar", + "l3ded", + "l3deh", + "l5dera", + "ld3est", + "l5dew", + "ldi2", + "l3die", + "ld4ine", + "l5di5nes", + "ld3ish", + "ld5li", + "l3do", + "4le.", + "3leagu", + "le5atio", + "leav5er", + "l3eb5ra", + "le3ca", + "le5cha", + "lect5ica", + "2led", + "le5dr", + "leg1a", + "l3egan", + "3legg", + "le4gin", + "leg3o", + "le3gra", + "lek4", + "4leled", + "lel5o", + "lelu5", + "lem5enc", + "lem3is", + "l5emiz", + "5lemm", + "l3emn", + "le2mo", + "lem5on", + "l5enda", + "len5dar", + "lend4e", + "len4do", + "le1ne", + "le5nie", + "len3o", + "4lentio", + "len5u", + "le3on", + "leo4s", + "le5q", + "2ler", + "le5rec", + "5l4eria", + "l4eric", + "le5rig", + "ler3om", + "leros4", + "ler3ot", + "4les.", + "le3sco", + "3les4s", + "1let", + "le5tra", + "le5tre", + "5le5tu5", + "leur5", + "2lev", + "l3eva", + "5leve", + "lev5ita", + "le4wi", + "l5exa", + "1ley", + "lf5id", + "l2fo", + "lf3on", + "l1g2", + "l4gal", + "l4gem", + "lgi4a", + "l4gid", + "l4goi", + "l3h", + "4li.", + "li4ani", + "lias4", + "lib1r", + "l1ic.", + "5lich", + "li4cie", + "5licio", + "l3ic3on", + "lict4o", + "li4cu", + "l3ida", + "l4idar", + "5lidif", + "3lieu", + "l4ife", + "l4ifo", + "lift5er", + "1lig", + "li5ger", + "light5i", + "5lih", + "3lik", + "1l4il", + "lil4i", + "lim2b", + "limet4e", + "lim4p", + "l4ina.", + "l4inas", + "lin4d", + "l4ine", + "5lin3ea", + "lin4er.", + "lin4ers", + "lin4ger", + "ling3i", + "5lingt", + "3lingu", + "3linq", + "lint5i", + "3liog", + "li4ol", + "lio3m", + "liot4", + "li3ou", + "5liph", + "lipt5", + "li1q", + "3lir", + "l1is", + "l4isk", + "5lisse", + "l1it", + "l2it.", + "l3it5a", + "5liter", + "3lith", + "5litia", + "3litr", + "lit4u", + "l4iv", + "l5ivat", + "liv3er", + "liv5id", + "lkal5o", + "lk5at", + "lk3er.", + "lk3ers", + "ll2", + "l1la", + "lla4ba", + "llact4", + "l5las", + "l4law", + "l5leb", + "l1lec", + "l1leg", + "l3lei", + "l1lel", + "lle5m", + "l1len", + "l3lep", + "l3leu", + "l3lev", + "ll3f", + "l1li", + "lli5am", + "lli4an", + "llib4e", + "llic4", + "l4licl", + "lli5co", + "l5lie", + "lligat4", + "l2lin", + "l5lin.", + "l3lina", + "l3line", + "l5lio", + "lli5v", + "ll3m", + "l1lo", + "lloc3a", + "lloc5u", + "llo2q", + "l4lov", + "llow5er", + "ll3p", + "ll3s", + "ll5t", + "l1lu", + "llun4", + "l5lya", + "l3lyc", + "l3lyg", + "l3lyh", + "l3lyi", + "l5lym", + "lm2", + "l1ma", + "l1me", + "l4mer", + "lm3ing", + "l5mip", + "l2m3od", + "l1n4", + "l3ne", + "lneo4", + "2lo.", + "5load", + "5lob3a", + "1loc", + "loc3al", + "loc5ul", + "lo4cus.", + "2locy", + "l3odis", + "3lo3dr", + "1log", + "lo5gan", + "4loi.", + "lo5mi", + "lom4m", + "lon4al", + "lon4e", + "l5onel", + "lo5ney", + "long5in", + "3lonia", + "loni4e", + "l3onis", + "l3oniz", + "loom5er", + "lop4e", + "5lo5pen", + "l3opm", + "1lo1q", + "l4ored", + "lor5iat", + "lor4ife", + "lo5rof", + "loros4", + "l4os.", + "lo1so", + "loss4", + "los5sie", + "lot5at", + "loth4ie", + "lo5tu", + "5loup", + "lp1at", + "lp3er", + "lph2", + "l5phe", + "l3phin", + "l2pho", + "l3pie", + "l3pit", + "lr4", + "l3ri", + "l3ro", + "l5ru", + "4ls", + "l5sam", + "ls5an", + "lsi4fia", + "lsi4m", + "ls4is", + "l5sk", + "ls4p", + "l1s2t", + "ltan3e", + "l4tang", + "lt5ant", + "l5tar", + "l1te", + "l4tei", + "ltern3", + "lth3i", + "lti4ci", + "ltim4a", + "ltin4", + "lti3t", + "l3t4iv", + "lt4or", + "l1tr", + "ltramont5", + "l1tu", + "l4tus", + "4lu.", + "lu1a", + "luch4", + "lu2c5o", + "luc5ra", + "lu4cu", + "4lue", + "lu1en", + "lu5er", + "lu1i", + "lu4it", + "lum4bri", + "lu4mo", + "5lump", + "lu2m5u", + "lunch5eo", + "5lune", + "l3unta", + "lu3ori", + "5lup", + "3lur3o", + "lusk5", + "luss4", + "lut5an", + "4lut5ar", + "5lutioniz", + "lu5toc", + "lut5r", + "lu1v", + "lv5ate", + "l5vet4", + "l4vi", + "l4vor", + "l3w", + "lx4", + "2ly", + "4ly.", + "ly1c", + "ly4ca", + "lyc4l", + "lyc5os", + "lym2", + "lymph5", + "lyp2", + "ly4pa", + "lypt5o", + "3lyr", + "lys5er", + "3lyw", + "3lyz", + "lz4", + "4ma.", + "m4aca", + "mac3ad", + "ma5chine", + "5machy", + "ma4cis", + "mact4", + "4mad.", + "4mada", + "4mads", + "ma4ge", + "5magn", + "2mago4", + "2mah", + "ma5ho", + "3ma4i", + "4mai.", + "maid3", + "5mak", + "mal3ap", + "mal5ari", + "5male2", + "mal5ed", + "mal3ef", + "m3alg", + "m3alis", + "mal4is.", + "mal3le", + "mal4li", + "2mam", + "mament4", + "m5ament.", + "1man", + "3m4an.", + "man3a", + "man5dar", + "man3dr", + "manic4", + "man4ica", + "ma5nil", + "m4ans", + "mantel5", + "2map", + "m3aph", + "1mar", + "5maran", + "mar5ol", + "ma5ron", + "ma3roo", + "mar5ri", + "mar4shi", + "mar3v", + "ma3son", + "massi4", + "mass5ing", + "3mas1t", + "mas4ted", + "mast4ic", + "mas4tin", + "m4at.", + "m4aten", + "ma3ter", + "mater5n4", + "m4atit", + "mat4iti", + "m4atiza", + "ma3tog", + "mat5om", + "ma3top", + "m4ats", + "3m4att", + "ma5ture", + "mav4", + "2m1b", + "mbat4t", + "mb4d", + "m5bec", + "m5berer", + "m4bery", + "m4bes", + "mb2i", + "m2bic", + "m5bil5", + "m4b3ing", + "m4bis", + "mb5ist", + "mbival5", + "m5bler", + "m3bli", + "mbru4", + "mbu3l", + "mbur4", + "m1c", + "m5d", + "m2e", + "2me.", + "mea5g", + "me5and", + "me4ba", + "me4bi", + "2med", + "4med.", + "3media", + "med5icat", + "4medie", + "m5ed5ies", + "3medit", + "me4do", + "m5edy", + "me2g", + "5meg2a1", + "mega5t", + "4mele", + "mel5ee", + "mel5ler", + "mel3on", + "mel4t", + "melt5er", + "me2m", + "4m5eme", + "1men", + "3men.", + "2mena", + "men4ag", + "mend5er", + "mend5o", + "me1ne", + "ment5or", + "5ments", + "5meog", + "me4p", + "m5eran", + "4mere", + "mer4ia", + "2me2s", + "mes5en", + "me5si4a", + "mes5q", + "3mesti4", + "1me2t", + "meta3t", + "met1e", + "4meted", + "meth4i", + "meti4c", + "met5ici", + "met3o", + "met3ri", + "m1f", + "4m3h", + "4mi.", + "m1ic", + "mi4cin", + "mi3co", + "3micro", + "m4ict", + "mi3cul", + "mi4cus", + "m4idi", + "mid4in", + "mid5on", + "mi5fi", + "mig5a", + "migh5ti", + "mi2gr", + "4mij", + "mi5ka", + "m2il", + "m3ila", + "mil4ad", + "4m5ilie", + "mil5ies", + "3mill", + "mi5lo", + "mil4t", + "3m2im", + "mim5i", + "5min4d", + "mind5er", + "min4er.", + "min4ers", + "ming5li", + "min5ie", + "m4init", + "min3ol", + "1m4int", + "minth5o", + "mi3o", + "mi3p", + "mirab4", + "mi5racu", + "m2is.", + "m4isc", + "mi4se", + "4misem", + "mis3ha", + "5missi", + "m3ist.", + "mis4tin", + "m3ists", + "mi2t", + "m5itan", + "4mity", + "3miu", + "5mix", + "4m1l", + "mlo5cuti", + "mlun4", + "2m1m2", + "mman4d", + "mmand5er", + "m3medi", + "mmel5li", + "mmet4e", + "mmig3", + "mmin3u", + "mmis3", + "mmob3", + "m5moc", + "mmor3", + "mmut3a", + "4m1n2", + "mnif4", + "m4nin", + "mni5o", + "mnis4", + "mno5l", + "1mo", + "4mo.", + "2moc", + "mod1", + "mod5ifie", + "mogast4", + "mo4go", + "mog5ri", + "m5oir", + "mok4i", + "mol3a", + "4molog.", + "4mologs", + "4mologu", + "mo3ly", + "mo1m", + "mo4mis", + "m4on", + "mona4", + "4moned", + "mon1g", + "mo4no", + "monolo4", + "monolog5i", + "m4op", + "mophil5i", + "mop4t", + "m3orab", + "m3orat4", + "mor4ato", + "m5ord", + "mo5rel", + "3moria", + "m5oriz", + "mor5on", + "3morp", + "3morse", + "mor5tal", + "mo3sp", + "5most", + "mo3sta", + "2m1ous", + "m1p", + "m3pa", + "m4panc", + "m4pant", + "mpath3", + "mpel5li", + "m5perer", + "mper3i", + "mpet5it", + "mphal5o", + "m4phe", + "m4phl", + "m2pi", + "mp5id", + "m5pig", + "mp3ily", + "mp1in", + "m3pir", + "mp3is", + "m3po", + "mpol5it", + "mpo2t", + "mpov5", + "mp3to", + "mp5tr", + "m3pu", + "m5q", + "m3r", + "m4ry", + "4m1s", + "msel5f", + "m5si", + "msol4", + "mtu4", + "muck4e", + "muff4", + "mul1t2", + "m5unc", + "mu5nio", + "mun3is", + "mus5co", + "mu4se", + "mus5ke", + "mu3til", + "m1v", + "m3w", + "2my", + "5my3c", + "my4d", + "my3e", + "3myi", + "5myst4", + "3myt", + "n1a", + "2na.", + "na2c", + "nach4", + "na5cious.", + "na5ciousl", + "nac4te", + "nac5tiva", + "na5culari", + "na4d4a", + "nadi4", + "nad4op", + "n2ae.", + "naffil4", + "nag4a", + "n4agen", + "5na5geri", + "na4gi", + "n5ago", + "5n4a3gr", + "5nah", + "5nail", + "na5iv", + "nak2", + "4naled", + "n5alg", + "n4alia", + "na3ly", + "1nam", + "3name", + "nam4n", + "na5nas", + "nannot4", + "nan4ta", + "nan5ted", + "nan4to", + "na5o", + "4n4ard", + "nar5tisti", + "n2as", + "nas5i", + "nas5p", + "nas3s", + "nas5te", + "nat5al", + "na5tat", + "n4atee", + "na3the", + "nath4l", + "nati4", + "n4ati.", + "nat5ic", + "n4ato.", + "na3tom", + "na4tos", + "nat4r", + "na5turi", + "naugh5ti", + "naus3", + "3naut", + "naut3i", + "na2v", + "na5vel", + "n3b4", + "nbarric5", + "nbeau4", + "nbe4n", + "nbene4", + "nbet4", + "nbit4", + "n1c2a", + "n4cal.", + "ncarn5at", + "ncel4i", + "ncent5ri", + "n4cept.", + "n3cer", + "ncer4e", + "n4ces.", + "n5cet", + "n5cey", + "n3cha", + "nch4ie", + "n3cho", + "nch5olo", + "n3chu", + "n4cic", + "ncid5en", + "n4cif", + "ncip5ie", + "n1c2l", + "n4cles", + "ncoc4", + "nco5pat", + "n1cr", + "nc1t", + "nc4tin", + "nct4ivi", + "nct2o", + "n1cu", + "ncu4lo", + "n4cun", + "n4curvi", + "ncus4t", + "4nd", + "n2da", + "n3da4c", + "n3dal", + "n4dale", + "n3dam", + "nd3anc", + "nde2", + "n3dea", + "nde3ci", + "n1ded", + "nde4l", + "ndeleg4", + "nd3enc", + "ndepre4", + "n3derl", + "nde4s", + "ndes5cr", + "n5dez", + "nd4hi", + "n1dic", + "ndic5u", + "ndid5a", + "n3die", + "nd5ily", + "nd4ine", + "nd3ise", + "nd5is4i", + "nd5ism.", + "nd5ity", + "nd3ler", + "nd1li", + "n5doc", + "ndor4", + "n2dou", + "nd5our", + "ndrag5", + "ndram4", + "n5dron", + "ndu4b", + "nduct5iv", + "n4dun", + "nd2we", + "n3dyi", + "2ne.", + "ne3alo", + "n3ear", + "ne2b3u", + "5neck", + "ne4cl", + "ne2co", + "n5ectom", + "2ned", + "3nedi", + "ne4du4", + "neg3a", + "ne3go", + "5negu", + "neis4", + "2nele", + "ne5lia", + "neli4g", + "n4ely", + "ne2mo", + "4n1en", + "n3end", + "neo3l", + "neon4", + "ne2p", + "n1er", + "4nered", + "5nering", + "ner5o", + "ner4r5", + "ner2v", + "nerv5in", + "2nes.", + "n1esc", + "ne3sia", + "1ness", + "n1est", + "nes3tr", + "net3a", + "net3ic", + "ne4tog", + "net1r", + "neuma5to", + "neut5r", + "nev5er", + "n4ew", + "news3", + "n4eys.", + "n3f", + "nfo4", + "nform5er", + "nfortu5", + "nfran3", + "4ng", + "ng2a", + "n4gae", + "n5gee", + "n3geri", + "n5gero", + "ngh4", + "n2gi", + "n5gic", + "ngio4g", + "n5glem", + "n3glie", + "n5glio", + "ng1n", + "n1go", + "n4gry", + "n1gu", + "n2gum", + "n1h2", + "nhab3", + "nho4", + "nhy2", + "nhyd5", + "n1i", + "4ni.", + "3niac", + "ni3ba", + "n4icab", + "ni4cen", + "4nicl", + "nict5a", + "ni4cul4", + "ni4dio", + "n2ie", + "ni4ers", + "nif4f", + "nift4", + "nif5ti", + "ni2g", + "night5i", + "n3igm", + "3nign", + "nik5e", + "n2il", + "nil4a", + "n3im1", + "n4ime", + "5nimet", + "n4ines", + "nin4j", + "5ninn", + "n4inu", + "5niol", + "ni1ou", + "3nipu", + "5niq", + "n4is.", + "n4isk", + "nis4l", + "nis4o", + "n5iss", + "nis5ter.", + "nis5ters", + "nitch4", + "ni4te", + "ni3tho", + "n4itos", + "ni5tra", + "nit5res", + "ni3tri", + "nit4ur", + "n2iv", + "niv4a", + "ni3vo", + "nivoc4", + "niz5en", + "n1j", + "njam2", + "njur5i", + "4n2k", + "nk5ar", + "n5kero", + "n3key", + "nk5if", + "nk5il", + "4n1l2", + "nland5", + "n3le", + "nlet4", + "n3m", + "nmater4", + "nmor5ti", + "n1n4", + "nne4", + "nnel5li", + "nnerv5a", + "n3ni", + "nni3ki", + "nnov3", + "n5nyi", + "4no.", + "n5obi", + "no5bil", + "nob4l", + "no5blem", + "nobser4", + "n5ocula", + "no4di", + "n4ody", + "noe4c", + "no4fa", + "nois5i", + "n5ol.", + "no3la", + "nol4i", + "nom3al", + "1nomi", + "no2mo", + "4none", + "3nonic", + "5nood", + "nop5i", + "nora4t", + "nor5di", + "nor4ia", + "nor4is", + "nor3ma", + "n4oro", + "nor4t", + "n4os.", + "nos4o", + "no3sp", + "not1a", + "3note", + "n1ou", + "n4oug", + "3noun", + "2nous", + "nou5v", + "nova4l", + "nove2", + "nov3el", + "novel5e", + "n4ow", + "now5er", + "now3l", + "n3p4", + "npil4", + "npla4", + "npoin4", + "npo5la", + "npos4", + "npri4", + "n1q", + "n4quef", + "n1r", + "nre4i", + "nre3m", + "nres5tr", + "4n1s", + "ns2c", + "n2sco", + "ns3cot", + "n4scu", + "n5sec", + "nsec4te", + "n2ses", + "n5seu", + "n3sh2", + "n2si", + "ns3ib", + "n4sic", + "n5sick", + "n3sid", + "n3sie", + "ns5ifi", + "ns3ing", + "n3sio", + "n3s2is", + "nsi2t", + "ns3iv", + "nsolu4", + "n5son", + "n4sore", + "n4sory", + "n3spir", + "n3s2t", + "nsta4", + "nstil4", + "n3su", + "nsur4e", + "n3swa", + "ntab4u", + "nt3age", + "nt1al", + "n4t3anc", + "nt5and", + "ntan5eo", + "n4t3ant", + "nt4ariu", + "n5tasis", + "nt3ast", + "nt1at", + "nt5ath", + "nt3ati", + "nt5ativ", + "n5tau", + "n1te", + "n4tec", + "n4tee.", + "n4tees", + "n3tel", + "ntend5en", + "n4teo", + "n4ter.", + "n3teri", + "n5tern", + "ntern5al", + "nter5nat", + "nth2", + "n1the", + "nther5", + "nth5ine", + "nt2i", + "nt4ib", + "n4tic.", + "n5ticis", + "n5ticiz", + "n4tics", + "ntic4u4", + "n3tid4", + "n1tie", + "n4tify.", + "n3tig", + "nt5ilati", + "n5till", + "nt3ing", + "nt5ing.", + "nti3p", + "n4tipar", + "n4tis.", + "nt3ism", + "nt3ist", + "n5titio", + "nt3iz", + "n2tj", + "n1t2o", + "n3tom", + "ntoni4", + "n5top", + "n1tr", + "ntra3d", + "nt3ral", + "n4trant", + "n3trat", + "nt5ress", + "nt3ril", + "ntrol5ler", + "n5trym", + "n1tu", + "n3tua", + "ntub5", + "ntup5li", + "n5tur", + "n2ty", + "n2u", + "nu1a", + "5nuc", + "3nud", + "nud5i", + "nu3en", + "nug4a", + "nu3i", + "nu4is", + "5nuk", + "n4ulo", + "n3ult", + "nultim5", + "nu1me", + "5numenta", + "5numer", + "5numi", + "3nunc", + "nu3tat", + "n5utiv", + "nu4to", + "nu1tr", + "n3v2", + "nve2", + "nvel3", + "nven4e", + "nven5o", + "nvers5an", + "nvi4t", + "nvoc5at", + "n5w", + "nwin4", + "nwom4", + "n2x4", + "2ny2", + "5nyc", + "nym5it", + "nyth4", + "n1z2", + "nzy4", + "2oa2", + "o5ace", + "o3act", + "oad5er", + "oad5i", + "o3ag", + "oak5er", + "o3ales", + "oal4i", + "oal5in", + "o5alit", + "oan4t", + "oap5i", + "oar5er", + "oar4se", + "oast5er", + "oat5a", + "oat5ee", + "oat5er", + "4oba", + "obe4l", + "ob2i", + "ob3ing", + "2obi3o", + "ob3it", + "o3bla", + "ob1li", + "4obo", + "ob3oc", + "o5bol", + "o5bot", + "o3bra", + "obrom4", + "ob5t", + "ob3ul", + "o3bus", + "2oc", + "oc2a", + "o4cab", + "o3cad", + "oc5ag", + "o5calli", + "o4c5ativ", + "oc5ato", + "4o3ce2", + "o4cea", + "ocen5o", + "ocess4i", + "och4e", + "och5in", + "o3chon", + "ochro4n", + "o5chu", + "oci3ab", + "oci4al", + "o1cl", + "o2cle", + "o1cr", + "ocre3", + "oct2", + "oc2te", + "oc1to", + "ocu4lu", + "ocum4", + "oc5uo", + "ocuss4", + "ocus5si", + "ocut5r", + "o1cy", + "o5cyt", + "ocyt5o", + "od3al.", + "ode4c", + "o5deg", + "ode4ga", + "o5dend", + "o3dent", + "odes4", + "od3ica", + "o4d1ie", + "od3iga", + "od4il", + "od1is2", + "odis5ia", + "od5it", + "5odiz", + "od3li", + "o2do", + "od5olo", + "od5ous", + "o3dro", + "od5ru", + "o2du", + "odu5cer", + "o4duct.", + "o4ducts", + "od3ul", + "o5dyt", + "oe3a", + "oe4bi", + "oe5cu", + "oe4d", + "o5ee", + "oe5ic", + "o3elec", + "oelli4", + "oelo4", + "oe3o4p", + "oep5", + "o5eq", + "o3er", + "oes3t", + "o1et", + "o4et.", + "oet3i", + "oet4r", + "3oeu", + "o3ev", + "o3ex", + "oflu4", + "4ofo", + "o4ful", + "ofun4", + "2o1g", + "o2ga", + "o3gam", + "og5ar5", + "o3gas", + "ogen1", + "o5gey", + "o3gi", + "o4gio", + "og2na", + "ogoni4", + "o4got", + "o2gri", + "o4gro", + "og4sh", + "o2gu", + "o5gyr", + "o1h2", + "o3ha", + "ohab3", + "o3he", + "oher4er", + "o3ho4", + "ohy4", + "2oi", + "oi4c", + "o3ic.", + "oi5ch", + "o2i4d", + "4oide", + "oig4", + "oi5ki5", + "oil3er", + "oil5i", + "oin3de", + "o3ing", + "oin4t5er", + "oin4tr", + "oi4o", + "4ois", + "o3ism", + "oi4t", + "oit4al", + "oith4", + "o1j", + "ok4ine", + "ok3l", + "ok5u", + "ola4c", + "o4lack", + "o5lali", + "ol4an", + "olan5d", + "ol5ast", + "olat5er", + "ol5ch", + "ole2c4", + "ol5eci", + "ol5efi", + "o3leo", + "ole4on", + "o3lep", + "ol1er", + "o3lest", + "o3leu", + "o1lia", + "ol3ica", + "o3lice", + "ol5iciz", + "ol5ick", + "ol3ics", + "ol5id.", + "oli2e", + "o3lier", + "ol5ies.", + "o5lif", + "oli4f3e", + "oli5go", + "o5lina", + "ol3ing", + "oli5os", + "ol5ip4", + "olis4", + "ol2it", + "olle2", + "ollim3", + "ol4lope", + "ol4lyi", + "ol3mi", + "o1lo", + "4oloc", + "ol3oid", + "o4lona", + "olon5el", + "ol1or", + "o3los", + "ol1ou", + "4ol1ub", + "o3lumi", + "o5lunte", + "ol3us.", + "oly3ph", + "4olyt", + "2om", + "o1ma", + "o4mab", + "o2mac", + "o2mal", + "o4mane", + "omast4", + "o3mat", + "om4be", + "ome4d", + "ome4g", + "omeg5a", + "ome3li", + "om3ena", + "omen4t", + "o3meri", + "om1i", + "o3mia", + "omi2c", + "omic5r", + "om4ie.", + "omil4", + "om4iny", + "omiss4", + "om2it", + "omme4", + "om2na", + "omni3", + "o4moi", + "omoli3", + "o2mo4n", + "om5ony", + "o4mos.", + "omot5iv", + "o2mou", + "om5pil", + "ompt5er", + "ona4d", + "on3ai", + "o5nas.", + "onast5i", + "on5ativ", + "4onau", + "on1c", + "oncat3", + "on4cho", + "5ond5ar", + "ond5ent", + "on3der", + "on3dr", + "on5dy", + "o2ne", + "4onea", + "onec4r", + "4oned", + "on1ee", + "on5ell", + "o3neo", + "on3ess", + "on1et", + "ong3at", + "on4gu", + "4onh", + "4o1nia", + "on5iar", + "2oni4c", + "onic5a", + "onical4", + "on4id", + "on3ies", + "on3if", + "o5nig", + "o1nio", + "onk4s", + "4onnes", + "on5odi", + "on5oi", + "ono4mi", + "4o5nomic", + "ono3s", + "o5nota", + "ons2", + "2ont", + "ont5ane.", + "on4ter", + "onti5fi", + "onton5", + "ont4r", + "on4tre", + "on5ur", + "o5nus", + "onvo5lu", + "on2z", + "2oo", + "oof3er", + "oo1i", + "ook3er", + "ook3i", + "oo4le", + "ool5ie", + "oo4m", + "oon3i", + "oo2p", + "oop4ie", + "o3opt", + "oo4se", + "oost5er", + "oo2t", + "oot3er", + "ooz5er", + "o1pa", + "o4pab", + "o5pali", + "opa5ra", + "opath5", + "o5pec", + "opens4", + "op1er", + "3opera", + "4operag", + "o1pha", + "o4phe", + "oph4ie", + "o5phil", + "op5hol", + "o1phy", + "ophy5la", + "op1i", + "op3ies", + "op5ing", + "o3p2it", + "4opl", + "oplast4", + "o4poi", + "opol3i", + "opon4", + "op5ony", + "op5ori", + "opoun4", + "o2p5ov", + "op2pl", + "op5pli", + "oprac4", + "op3ran", + "opre4", + "opro4l", + "op5rop", + "op5so", + "1op1t", + "op2ta", + "op1u", + "o5quial", + "or1a", + "or5ado", + "ora4g", + "o5rai", + "or5al", + "4orals", + "oram4", + "oran3e", + "orator5", + "orb3in", + "or4ch", + "orch3i", + "or4du", + "2ore", + "or5ead", + "ore5ar", + "ore5ca", + "ore3f", + "ore3g", + "or3ei", + "oreo5l", + "or3esc", + "ore3sh", + "or3ess", + "orest5at", + "or5este", + "or5ett", + "ore4v", + "5orex", + "or4fr", + "or5gn", + "or1i", + "4ori.", + "or3ia.", + "4orian", + "ori4ci", + "ori5cid", + "orien4", + "or3if", + "5orig", + "ori5ga", + "ori4no", + "4orio.", + "or5ion", + "4orios", + "ork5a", + "2orm", + "orm1i", + "or3n4a", + "5ornis", + "or3nit", + "or3one", + "o5roo", + "or5ose", + "or5oso", + "or1ou", + "orrel3", + "orres3", + "or4sc", + "or4sey", + "or4sti", + "2ort", + "ort3an", + "ort3at", + "ort3er", + "or5tes.", + "or3thi", + "or4thr", + "or4tit", + "ort3iz", + "or4tor", + "or5tra", + "ort3re", + "4or1u", + "or4un", + "ory5p", + "osa5i", + "os3al", + "osar5", + "o1sc", + "os4ca", + "os4ce", + "o2sch", + "o4sci", + "osclero5s", + "o3sec", + "osec3u", + "ose5g", + "os5enc", + "osens4", + "os5eo", + "oser4", + "o2set", + "os5eu", + "o3sia", + "osi4al", + "osi4an", + "os5ide", + "o3sier", + "os5if", + "os1in", + "o4sis", + "o5ske", + "o5son", + "o3soph", + "os3opo", + "4osp", + "o3spec", + "os1pi", + "os4sa", + "oss5ar", + "os4sit", + "4osta", + "ost5age", + "os4tar", + "os5tee", + "os5ten", + "osten5t", + "ost5ica", + "os3til", + "o5stome", + "ost3or", + "4osu", + "os1ur", + "2ot", + "ot3a4g", + "o5talit", + "ot3am", + "ot4anic", + "o3tap", + "ot4atio", + "o5ta5v", + "o3tax", + "o4ted", + "oter4m", + "ot5esta", + "4oth", + "othalam5", + "oth5erin", + "o5therm", + "otherm5a", + "o5thor", + "o5tia", + "o5till", + "5ot5iniz", + "ot4iv", + "o3tiva", + "o5tivi", + "o1t2o", + "o5tone", + "o4torn", + "o4tou", + "4o1tr", + "oturi4", + "oty3le", + "o4u2", + "5ou3a", + "oub2", + "ou5br", + "ou5ca", + "ou5co", + "oud5i", + "4oue", + "ou3et", + "oug4", + "ou5ga", + "ought5i", + "ou5gi", + "oul4t", + "oult5i", + "ou3m", + "2oun", + "oun2d", + "ound5a", + "ound5el", + "oun5gin", + "oun3tr", + "oup5li", + "our3er", + "ou5san", + "2ouse", + "5ousia", + "ouss4", + "out5ish", + "ouv5a", + "ova3le", + "o5var", + "4ovati", + "ov5eling", + "o4ver.", + "over3b", + "over3s", + "ov4ete", + "ovid5en", + "o1vis", + "ovis5o", + "o2v5os", + "ow3ag", + "ow3an", + "o5way", + "owd4i", + "owd3l", + "ow1el", + "owel5li", + "ow5ha", + "owhith4", + "ow1i", + "ow5in", + "owi5ne", + "ows4", + "ow5sh", + "ow5sl", + "ow5y", + "o4x", + "ox3i", + "oxic5ol", + "ox5o", + "2oy", + "oy5a", + "oys4", + "2oz", + "o1zo", + "ozo5i", + "o3zyg", + "4pa.", + "pac4te", + "pa5dou", + "pad4r", + "paes4", + "pa3gan", + "4pagat", + "pag4ati", + "pain2", + "4pairm", + "pa5lan", + "pal3in", + "pa3lo", + "p4als", + "pan5ac", + "pan1e", + "pan3i", + "pa4pa", + "pa3pe", + "pap3u", + "pa3py", + "1par", + "para5s", + "par3l", + "pa3roc", + "pa3rol", + "par5on", + "1p4as", + "pass5ive", + "pas1t", + "pas4tin", + "pa3ter", + "pati4n", + "p5ato", + "pat4ric", + "pa5tricia", + "5pau", + "paul5e", + "pau3p", + "pa5vil", + "5paw", + "pawk4", + "paw5ki", + "2p1b", + "p1c4", + "p5d2", + "2pe.", + "pearl5i", + "pe4co", + "pec4tu", + "2ped", + "5ped3a", + "3pede", + "3pedi", + "ped3is", + "3peds", + "pe2du", + "p4ee", + "pe2f", + "4pele", + "pe5leo", + "pel5v", + "pen4at", + "5p4enc", + "pend5er", + "pen5dr", + "pen4ic", + "3p4enn", + "pens5ati", + "pen5u", + "pe5on", + "5perc", + "percent5", + "4pere", + "perem5i", + "p4eri", + "5p4er3n", + "p3eron", + "per4os.", + "per5tin", + "pert5is", + "per3v", + "p4ery", + "2pes", + "pes4s3", + "pes5til", + "3pet", + "pet5all", + "pet3en", + "pe2ti", + "pet3r", + "pe4wa", + "4pex", + "p1f", + "p5g", + "2ph.", + "4phae", + "pha5ged", + "ph5al.", + "ph2an", + "phant5i", + "phe4", + "ph5esi", + "ph3et", + "3phib", + "4phic", + "1phil", + "phi4n", + "ph1is", + "phi5th", + "ph2l", + "1pho", + "4phobl", + "4phoned", + "3phor", + "ph5oriz", + "phos3p", + "ph3ou", + "3phra", + "4phs", + "1phu", + "phu5i", + "2phy.", + "3phyl", + "4pi.", + "3piar", + "4pica", + "p5ical", + "pi3co", + "pi4cr", + "pict4", + "p2ie", + "p4iest", + "pi5eti", + "p5ifie", + "pig3n", + "p2il", + "3pile", + "pill5in", + "5pilo", + "pi3lot", + "pim2", + "pin4e", + "pin5et", + "3pinge", + "p4inn", + "5p4ins", + "3pi1o", + "pip4a", + "pi4pe", + "5piq", + "pir5ac", + "pir4t", + "p4is.", + "p4isc", + "pis2s", + "piss5a", + "pis5til", + "pis4tr", + "p2itu", + "2p3k2", + "p2l2", + "1pla", + "pla5no", + "plant5er", + "plas5tici", + "pla5t4o", + "4ple.", + "4pled.", + "3pleg", + "3plen", + "2ples", + "4plism", + "4plist", + "plu2m", + "plum4be", + "plumb5er", + "p4ly", + "2p1m", + "2pn", + "pnos4", + "1po", + "4po.", + "po3ca", + "3pod", + "4pof", + "2p5oid", + "pois5i", + "po5lemic", + "po4ly1", + "poly3s", + "poman5", + "pom4e", + "p4o2n", + "pon4ac", + "pon4ce", + "pon4i4e", + "3ponif", + "pon5ta", + "2pony", + "po4pa", + "po5ple", + "4porato", + "por3ea", + "4pored", + "pori4f", + "por3p", + "3port", + "por5tie", + "3p4os", + "pos1s2", + "po1te", + "poult5e", + "pound5er", + "pout5er", + "p5oxi", + "5poy", + "4p1p2", + "ppar3", + "pparat5", + "p4pene", + "ppet3", + "pph4", + "ppi4c", + "p4pled", + "p5pler", + "p5plet", + "ppress5o", + "pprob5a", + "1pr2", + "prac1", + "pra5d", + "prar4", + "4pre.", + "preb3", + "pre1d", + "pref5ere", + "prel5ate", + "3prem", + "pre5mat", + "pren3", + "pres3a", + "pre5scin", + "p3rese", + "5pressi", + "5prici", + "pri4es", + "4pri4m", + "pring5er", + "pring5i", + "4prio", + "p5riol", + "pri4os", + "pris5in", + "priv2", + "4priva", + "4pro.", + "pro3bo", + "p3roc3a", + "pro4ch", + "pro1l", + "pron4a", + "proph5e", + "propyl5", + "pro3r2", + "pros4i", + "pros5tr", + "pro3th", + "4pry", + "2ps2", + "p3sac", + "psal5t", + "p3sh", + "p1si", + "p5sin.", + "pso3m", + "p1st", + "psul3i", + "3psyc", + "2pt2", + "pt3ab", + "p4tad", + "p4tan", + "p2tar", + "pt5arc", + "p1ted", + "p5tena", + "pt5enn", + "5ptery", + "p5tet", + "pt4ic", + "p5tie", + "p3til", + "p2t3in", + "pt4ine", + "p3tise", + "p5tisi", + "p5tom", + "p4tr", + "p1tu", + "pub1", + "pu5be", + "puc4", + "puch4", + "pudi4c", + "pu5er", + "puff5er", + "pu4lar", + "pu5lar.", + "pu5lis", + "p4u4m", + "pum4o", + "p4un", + "pun4a", + "3punc", + "pun5gi", + "pun3i", + "pun2t", + "pu3pi", + "pur5b", + "pur3c", + "p4us", + "push4ie", + "pu3tat", + "p5u5tis", + "pu3tr", + "4p1w", + "2p4y", + "py3e", + "3pyg", + "3pyl", + "pyr3e", + "py5t", + "4qf", + "qu4", + "5quak", + "4quar", + "qua5tio", + "2que.", + "3quera", + "4quere", + "4ques.", + "1quet", + "5quina", + "5quir", + "3quito", + "4quitu", + "4ra.", + "ra3ba", + "5rabe", + "3ra3bin", + "r2abo", + "ra3bol", + "rac4a", + "r2acu", + "rac5ula", + "ra5culo", + "r2ad", + "ra4de", + "rad4ine", + "rag5ou", + "ra3gr", + "3raill", + "ra5ist", + "4ralia", + "ra3ly", + "r5amn", + "ra3mu", + "r4andi", + "ran5dish", + "ran4du", + "ra5nee", + "ran4gen", + "ra3nia", + "ra3noi", + "ran2t", + "ran5ted", + "5rantel", + "rant5in", + "rant5o", + "rapol5", + "rap5to", + "4rarc", + "rare2", + "rar3ef", + "rar5ia.", + "ras2", + "ras3c", + "r2ase", + "r4ask", + "ra3so", + "rass5a", + "rass5in", + "r4as5te", + "ra5tap", + "ra5tat", + "rat5eu", + "rath4e", + "rat3if", + "rat4in.", + "ra5toc", + "5ra5tol", + "4r4atom", + "ra4tos", + "ra5tui", + "rat5um", + "rat3ur", + "rav5ai", + "rav5eli", + "rav3it", + "rawn4", + "ra3zie", + "r1b", + "r2ba", + "r4bag", + "rb3ali", + "rb1an", + "rbar3", + "r2be", + "rbe5c", + "r3bel", + "rbel5o", + "rb3ent", + "r4bes", + "rb2i", + "rbic4", + "rbic5u", + "r2bin", + "r5bine", + "rbit1", + "r2bos", + "r4bum", + "rbu5t4", + "r1c2", + "rcant5", + "rca4s", + "r4cele", + "rcen5er", + "rcen5tena", + "r2ces", + "rcha3i", + "rch3al", + "rch5ard", + "rch5ate", + "r3cheo", + "r4cher", + "rch4ier", + "r4chin", + "rch3is", + "r3chit", + "rcil4", + "rci5nog", + "rcis2", + "rciz4i", + "r2cl", + "r4cle", + "r5clo", + "rcolo4", + "rcrit5", + "rcriti4", + "rct4", + "rc5ti", + "r5dam", + "r4d1an4", + "rd4an.", + "r2dar", + "r5de4l", + "r3dens", + "r4des", + "rd5ess", + "rd5ian", + "r4die", + "r5dig", + "rd2in", + "rd3ing", + "rdi3o", + "rd1is2", + "rd5ler", + "rd3li", + "r4dol", + "rd5ous", + "r2e", + "4re.", + "rea4", + "r4ea.", + "react5iv", + "re3af", + "re3ag", + "re5alt", + "re5amb", + "re3ani", + "re5ant", + "re5asc", + "reas3o", + "r5eau", + "3reav", + "r5ebrate", + "reb5uc", + "re3cal", + "rec4ce", + "re3ce", + "reced5en", + "re3cha", + "reci5si", + "r4e1c2r", + "rec4t3r", + "re3cu", + "2r4ed", + "re1de", + "re3dis", + "re4dol", + "re1dr", + "reed5i", + "ree3m", + "3reer", + "re2fe", + "re3fin", + "re5gali", + "re5gra", + "re3gre", + "reg3ri", + "re3gro", + "reg3ul", + "rei4", + "re3if", + "re1in", + "re3is", + "reit3", + "reit4i", + "re1la", + "re1le", + "4reled", + "re3lia", + "rel3ic", + "re5lig", + "reli4q", + "rel3li", + "r5em.", + "rem5ac", + "reman4d", + "rem5ato", + "r3emp", + "rem5ul", + "rena4", + "ren5at", + "r4endi", + "rene2", + "ren4es", + "r4eni", + "renic5", + "ren4it", + "ren4ter", + "re5num", + "re3oc", + "3reog", + "re5ola", + "re3oli", + "3reos", + "re1pe", + "re4per", + "re5ph", + "rep5id", + "re3pin", + "re3ple", + "re4pre", + "re1q", + "rer4a", + "rere4", + "re5rea", + "re3r2u", + "2res.", + "re3scr", + "re3sel", + "re3sem", + "re3ser", + "res5ist", + "re5sit", + "re3spe", + "r3esq", + "re5stal", + "rest5er", + "re5stu", + "3retar", + "re3ten", + "re4t4er3", + "re5term", + "re1t2o", + "re5ton", + "re3tra", + "re3tre", + "re5tri", + "re3tu", + "re3un", + "reur4", + "re1v", + "rev3el", + "revi4t", + "r1f", + "rf4l", + "rfu4m", + "r1g2", + "r4gag", + "rgal4", + "r2ge", + "r5gee", + "r4gene", + "r3geo", + "r3ger", + "rg5li", + "rgu5f", + "rh2", + "r5hel4", + "rhe5ol", + "rhos4", + "3r2hy", + "4ri.", + "ri3am", + "ri5ap", + "2r2ib", + "ri3bo", + "rica5tu", + "2rice", + "rich5om", + "rick4en", + "r4icl", + "ri5cli", + "ri3col", + "ri5cor", + "ri4cra", + "2ricu", + "rid4al", + "rid4e", + "ri5el", + "ri3er", + "ri2es", + "rift5er", + "rif5tie", + "5rifuga", + "ri5gam", + "rig5ant", + "ri5l4a", + "r4ile", + "rill5er.", + "rill5ings", + "4rim.", + "ri2ma", + "rima4g", + "rim5an4", + "rim3at", + "r4imb", + "rimen4", + "4rimm", + "4rims", + "rin4e", + "r4inet", + "ring5ie", + "rink5er", + "r4ino", + "rin4s", + "rins5i", + "rin4t5er", + "ri3o", + "rio4g", + "5rione", + "ri4op", + "ri5or", + "ri5p2a", + "ri5pie", + "rip5lica", + "ri5r", + "ris4c", + "ris4is", + "r2isp", + "ris4pa", + "ris4pe", + "ris5ter", + "4risti", + "ri3ton", + "r5it5r", + "r2i4v", + "riv4al", + "ri5vall", + "riv5eli", + "riv3en", + "riv3il", + "5ri5zo", + "r1j", + "r2k", + "r5kas", + "rk5ati", + "r5kell", + "rk5eni", + "rk1er", + "r3ket", + "r3key", + "r3kier", + "r5kiest", + "r5kin.", + "r5kins", + "rks4me", + "r1la", + "rlat3", + "r1le", + "r3l4ic", + "r3line", + "r5lins", + "r4lit", + "r1lo", + "r3mac", + "rma5ce", + "r5mad", + "r2mal", + "r4manc", + "r4mano", + "r4mari", + "r4mary", + "rm4as", + "r4m3ati", + "rma5toc", + "r5ma5tol", + "rme2a", + "r2mic", + "rm4ica", + "r5m2id", + "rm4ie", + "r5mig", + "rmil5", + "rmin4e", + "rm3ing", + "r4ming.", + "r4mite.", + "r3moc", + "rmol4", + "r1mu", + "rmu3li", + "r2n2", + "rn3ab", + "r3nac", + "r5nad", + "rn5ar", + "rn3ate", + "rn5atin", + "rn5edl", + "r3nel", + "r3ness", + "rn5est", + "r3net", + "r3ney", + "r5nia", + "rn5ib", + "r3nic", + "rn3in", + "rn4ine", + "r1nis", + "rn3ist", + "rni5v", + "rn3iz", + "rn5n", + "r3noc", + "r5nog", + "rnt4", + "rnuc4", + "r5nut", + "4ro.", + "ro4be", + "rob3le", + "ro5br", + "5rocc", + "ro3cu", + "r2od", + "ro3do", + "rody4n", + "ro1fe", + "ro3gn", + "4roi", + "ro3ic", + "roid3", + "ro3la", + "r4oled", + "rol5ite", + "ro3ly", + "romant4", + "ro5mel", + "ro3mit", + "romolec5", + "rom4p", + "ro3mu", + "ron4ac", + "4ronal", + "ro5nate", + "ron5ch", + "ron4do", + "rong5i", + "r5onme", + "ro1no", + "ron4ton", + "roo4", + "1room", + "5root", + "r2op", + "4rop.", + "ro3pel", + "rop4ine", + "r4opr", + "r5opte", + "ror5d", + "4rore", + "r4osa", + "rosi4a", + "ro5sol", + "4ross", + "ro5stat", + "ros4ti", + "ros5tit", + "ro3tat", + "ro1te", + "ro4ter", + "ro3tu", + "5roue", + "roul3", + "round5er", + "rou5sel", + "4rouss", + "r4out", + "r4ow", + "row3er", + "4rox", + "rpass5in", + "rp3at", + "rpe2", + "r3pent", + "rp5er.", + "r2ph", + "rph5e", + "r3phol", + "rp3ing", + "rp5is", + "rpol3a", + "r2p5ou", + "rpre4", + "rpret5er", + "r3pu", + "r1q", + "4r1r4", + "rra4h", + "rran5gi", + "rrap4", + "rre2l", + "r4reo4", + "rrhe3", + "r3ri", + "rric4", + "rricu4", + "rri4fy.", + "rrin5ge", + "rri4os", + "rrob3", + "rrog5", + "rro4t", + "r5ru", + "rry5", + "r3ryi", + "r3rym", + "2r1s2", + "r4sag", + "r2sal", + "r5salis", + "r5saliz", + "r2san", + "r4sar", + "r2se", + "r3sea", + "r3sec", + "rsel4", + "rsell5", + "rs3er.", + "rs3ers", + "r3set", + "r3sha", + "r3shi", + "r4shie", + "r5si2a", + "rs3ib", + "r5sie", + "r4sil", + "rs3ing", + "r3sio", + "r4sit", + "rs3iv", + "rs5li", + "rstor4", + "rstrat4", + "r3su", + "r4sus", + "rswear4", + "rt2", + "rt3ab", + "rta4g", + "rt3age", + "r3tar", + "r4tare", + "rt3c", + "r1ted", + "r4tedl", + "r3tel4", + "r5tend", + "rt3eni", + "r5terer", + "r5tet", + "r5teu", + "r4thene", + "rth2i", + "rth5ing.", + "rth3ri", + "r1t4ic", + "r4ticl", + "r5tiet", + "r5tila", + "r5till", + "rtil5le", + "rt5ily", + "r2tin", + "r3tina", + "rt3ing", + "r3titi", + "rti5tu", + "rt3iv", + "r2tiz", + "rt5let", + "rt3li", + "r1t4o", + "rto5l", + "rt5rid", + "rt5si", + "r1tu", + "r4tus", + "rtwis4", + "ru3a", + "r4ube", + "rub3r", + "ru4ce", + "r2ud", + "rue4l", + "r4uf", + "ru3in", + "ruis5i", + "ru2l", + "r4ume", + "r4umi", + "ru4more", + "run4cl", + "runcu4", + "runcul5", + "run2d4", + "run2e", + "ru5net", + "run4g", + "run4t", + "ru2p", + "rup5lic", + "ru3pu", + "rur4i", + "rus4p", + "rust5at", + "rust5ee", + "rus5tic", + "rus4t5u", + "ru3tal", + "ru3ti", + "r1v2", + "r4vanc", + "r2ve", + "rvel4i", + "r3ven", + "rven4e", + "rv5er.", + "rv5ers.", + "r3vest", + "r3vet", + "r3vey", + "rvi4t", + "r1w", + "2r2y", + "ry5er", + "5rygm", + "ry4go", + "rym4b", + "3ryngo", + "4ryngol", + "ryp5a", + "ry2t", + "ryth4i", + "r2z", + "2sa.", + "2sab", + "s3abl", + "5sack", + "sac4q", + "s3act", + "sac4te", + "sad5i", + "sad5o", + "5sae", + "sa4g", + "3sai", + "sain4t", + "5sak", + "sa2l", + "sa5lac", + "3sale", + "sa3lie", + "s4al4t", + "sa3lu", + "sa4m", + "sa5min", + "sam5o", + "samp4", + "san3a", + "san4ded", + "s4an4e", + "san5gar", + "san5if", + "2sant", + "sant5ri", + "s3ap", + "sap3r", + "sar5s", + "3sas.", + "sas3s", + "sassem4", + "s2a1t", + "sa2te", + "s5ativ", + "s5atory", + "sat1u", + "1sau", + "sau5ci", + "saur5", + "savi2", + "sa3vou", + "4s3b", + "s4bei", + "sbe4s", + "sby3", + "sc2", + "s1ca", + "sca5len", + "sca2p", + "scar4c", + "scav3", + "s1ce", + "s4ced", + "4scei", + "4s4ces", + "sch2", + "scid5", + "s2co", + "scof4", + "s4coi", + "3s4cope", + "5scopic", + "5scripti", + "2s1cu", + "4scura.", + "4scuras", + "2s1d2", + "2se.", + "se2a", + "s4eam", + "seas4", + "sea3w", + "sec4a", + "sec5an", + "se2co", + "secon4", + "2sed", + "se4da", + "sed4it", + "3seed", + "3sei", + "sei3g", + "5sela", + "4sele", + "se3lec", + "selen5", + "5self", + "2s4eme", + "sem2i", + "semi5d", + "sem4o", + "sen5g", + "3sens", + "sen5sati", + "sen5sori", + "sent5ee", + "5sentm", + "seo5log", + "se2p", + "sep3a", + "sep4si", + "3sept", + "sep3ti", + "ser4an", + "se5rene", + "ser4to", + "4servo", + "s2es", + "4ses.", + "se5sh", + "s5esta", + "1set", + "5seum", + "3sev", + "sev3en", + "sewo4", + "3sex", + "sexo2", + "3sey", + "2s1f", + "sfact5o", + "sfi4", + "sfor5e", + "sfran5", + "2s1g4", + "s2h", + "4shab", + "sh4abi", + "sh1er", + "sh5et", + "shil5li", + "sh5iness", + "sh3io", + "5ship", + "s3hon", + "4shu4", + "shys4", + "si4all", + "siast5", + "4s1ib", + "s3icat", + "3sicc", + "2s5icl", + "si4cu", + "si5cul", + "s4id", + "4sid.", + "si4de", + "side5l", + "sid3en", + "sid5eri", + "4sids", + "5sid5u4a", + "si4ers", + "sif4", + "sif5f", + "si4g", + "1sili", + "sim4ply", + "2sin", + "s2ine", + "sin5et", + "5sing5er", + "sin3i", + "5sink", + "si5nol", + "si3nus", + "1sio4", + "4sio.", + "si5o5s", + "3sip", + "si4pr", + "s1is2", + "4sish", + "4sism", + "sist3a", + "sist3o", + "s1it", + "si4te", + "sit5om", + "4s1iv", + "5siva", + "s1j", + "s2k2", + "4sk.", + "s5kar", + "ske2", + "s3ket", + "s5key", + "s3kier", + "s5kiest", + "sk5ily", + "sk5ines", + "4sks", + "sky3l", + "2sl4", + "slang5i", + "s1lat", + "3slau", + "slav5eri", + "s2le", + "s5lea", + "s3let", + "s5ley", + "s3lit", + "slo3c", + "slov5", + "s5luc", + "2s1m4", + "s3man", + "smas4", + "s3men", + "smi3g", + "3smith", + "smo4d", + "smu5tatio", + "s1n2", + "s2na", + "2so.", + "2s3od", + "sod3o", + "sody4", + "3soe", + "4s3oid", + "s2ol", + "sol3a", + "so5lan", + "sol4er", + "so3lic", + "3solve", + "solv5er", + "1so2m", + "soma5to", + "3some.", + "so5mete", + "so3mo", + "s2ona", + "son5at", + "s4one", + "son5or", + "s2o2p", + "4sor3ie", + "5sorio", + "sor4it", + "s5oriz", + "sor3o", + "s3ory", + "sos4", + "4sose", + "so5th", + "3sou", + "sov5e", + "so3vi", + "spast4", + "spens5a", + "4speo", + "3sperm", + "s5pero", + "spers5a", + "sph2", + "s3pha", + "3spher", + "spic5ul", + "s2pid", + "sp5id.", + "s5pier", + "spil4l", + "s2pin", + "sp3ing", + "spi5ni", + "spital5", + "s1pl", + "sple2", + "s4ply", + "s2po", + "5spom", + "spon5gi", + "3spons", + "3spoon", + "spru5d", + "s4py", + "s1r", + "sre2", + "sreg5", + "srep5u", + "sre4s", + "4ss", + "s1sa", + "s5sam2", + "s1sel", + "s5seng", + "s3sent", + "ssent5er", + "ss3er.", + "s5seri", + "ss3ers", + "s5seu", + "ssev3", + "s3sia", + "s1sic", + "s1sif", + "ss1in", + "ss4in.", + "s4sine", + "ss4is.", + "s3s2it", + "ss4ivi", + "ss5li", + "ss3m", + "s4sn", + "s1so", + "ssol3u", + "ssolu4b", + "s4sore", + "ssor5ial", + "ss5po", + "s1su", + "ss3w", + "st2", + "4st.", + "stab2", + "sta3bi", + "4stak", + "s4tale", + "stant5iv", + "s3tas.", + "5static", + "st3c", + "ste2", + "ste5ar", + "ste5at", + "s4teb", + "s4tec", + "4s1ted", + "s4tedl", + "s4tedn", + "4stere", + "ster4ia", + "s4tern.", + "s3tero", + "st5est", + "s1th", + "s4tha", + "s4thu", + "s3ti3a", + "3stick", + "s3ticu", + "stil5ler", + "s4tily", + "st3ing", + "5s4tir", + "s5tiz", + "4stl", + "st3ler", + "st3li", + "s4toe", + "3ston", + "stone3", + "ston4ie", + "s5torat", + "stor5ian", + "s4tose", + "s2tou", + "s4tray", + "stre4", + "strep3", + "3struc", + "stru5d", + "2st3s", + "s1tu", + "s4tud", + "stu4m", + "stur4e", + "4stw", + "s4ty", + "1styl", + "4su.", + "su5an", + "su4b1", + "subt2", + "suct4", + "sud4a", + "su3et", + "suf3f", + "sug3", + "3sui", + "sui5c", + "su5ing", + "1s2ul", + "s4u2m", + "sum3i", + "sun4a", + "su5pe", + "su3pin", + "supra3", + "sur4as", + "sur3c", + "s4urg", + "sur3pl", + "su5su", + "su5z", + "2s3v", + "svers5a", + "sves4", + "svest5i", + "sw2", + "5swee", + "swell5i", + "4swered", + "2swo", + "s2y", + "4sy.", + "sy4bi", + "sy1c", + "sy4ce", + "sy4chr", + "sy4d", + "1syl", + "3syn", + "syn5e", + "sy5pho", + "syr5i", + "2ta.", + "2tab", + "ta5blem", + "3tabli", + "t2abo", + "ta3bol", + "ta4bou", + "t4a3ce", + "ta5chom", + "ta3chy", + "ta4cid", + "t5ade", + "tad4i", + "5t2adj", + "ta5dor", + "tad2r", + "tae5n", + "taf4", + "tage5o", + "ta5gog", + "3tagr", + "3tah", + "1tai", + "3tail", + "2tair", + "t4ais", + "1tak", + "tal2c", + "tal5ent", + "ta5lep", + "t4alia", + "t4alin", + "tal4l3a", + "5tallu", + "t2alo4", + "ta3ly", + "tam5ari", + "5ta3met", + "tamorph5", + "tan5at", + "tand5er", + "t4ane", + "5tanel", + "tan5ie", + "t5aniz", + "tant5an", + "ta4pa", + "1tard", + "tar5ia.", + "tark5i", + "tar3n", + "3tarr", + "tas3i", + "t3asm", + "5tass", + "tas4t", + "ta3sta", + "tast5i4c", + "t4ateu", + "3tatis", + "t4ato.", + "tat4ou", + "tat4r", + "tat3ut", + "tau3to", + "t5awa", + "tawn4", + "t4ax", + "4t3b", + "2tc2", + "t1ca", + "tcas4", + "tch5ett", + "tch5u", + "4t1d4", + "4te.", + "te5cha", + "5techn", + "te3cr", + "t4ed", + "te5d2a", + "4tedd", + "4tedo", + "4teei", + "te2g", + "5tegic", + "t3ego", + "teg1r", + "teg3u", + "tei4", + "te2l", + "4teled", + "tel5iz", + "1tell", + "4te3lo", + "3tels", + "tem3a", + "4teme", + "te5mon", + "ten4ag", + "4tenar", + "4tene", + "t5enm", + "5tenna", + "4teno", + "te5nog", + "tent4a", + "te2o", + "teo5l", + "2tep", + "te3pe", + "tep5i", + "tera4c", + "t4erag", + "t4erato", + "3ter3b", + "5terd", + "2tere4", + "ter3eb", + "ter5ec", + "5terel", + "te3reo", + "3teres4", + "1teri", + "ter3ia", + "ter5id", + "ter5if", + "t4erin", + "ter5iorit", + "ter3it", + "ter5k", + "5ternit", + "ter5no", + "3terr", + "2t2es", + "4tes.", + "tesi4", + "t3esq", + "t3ess.", + "t5esses", + "tes4t", + "test3a", + "5teste", + "test5er", + "test5in", + "test5or", + "tes5tu", + "teti4", + "tet1r", + "tetr5o", + "tew3ar", + "3tex", + "2t3f", + "t3g", + "2th.", + "tha4", + "th5al.", + "thal3m", + "4the.", + "4thea", + "th5eas", + "4thed", + "1thei", + "3theo", + "theo3l", + "t4her", + "5therap", + "th5erc", + "t5herd", + "4thered", + "th3ern", + "th3ery", + "4thi.", + "t5hill", + "3think", + "5th4io", + "th4is.", + "th5lo", + "2thm2", + "th4mi", + "th3oli", + "4t5hoo", + "4thopt", + "4thores", + "3thot", + "5thoug", + "1th2r", + "2ths", + "5thur", + "5thym", + "3thyr", + "thys4", + "4ti.", + "1ti2a", + "ti3ab", + "2t3ib", + "5ti5bu", + "t1ic", + "t3ic.", + "tic5as", + "t2ici", + "tici5ar", + "3ti3cin", + "t4icity", + "ti3col", + "tic1u", + "4ticule", + "t3id.", + "t4ida", + "3tidi", + "ti3die", + "t5ids", + "3ti2en", + "1tif2", + "ti3fe", + "4tiff", + "4tific.", + "3tigi", + "tigi5o", + "4tigm", + "5tigu", + "ti4ka", + "ti4let", + "5tilin", + "t4ill", + "til4l5ag", + "t4ilt", + "1tim", + "tim1a", + "5timet4", + "t1in", + "5ti5nad", + "4tined", + "tin3et", + "ting5ing", + "3tinn", + "4tins", + "t4int", + "tin4te", + "tin5ted", + "tint5er", + "tin3ue", + "1tio", + "ti3oc", + "tiol3a", + "ti5omo", + "4tionem", + "1tip", + "ti5plex", + "ti3pli", + "ti4q", + "ti5qua", + "t3iris", + "2t1is", + "3tisan", + "tis4c", + "tish5i", + "3tiss", + "tis2t", + "5t4iste", + "t4istr", + "ti5t4an", + "tith4e", + "tit5il", + "t3itis", + "3titl", + "ti3tra", + "3tiu", + "2t1iv", + "tiv5all", + "t3ive", + "tiv3is", + "2tl", + "t1la", + "tlant4", + "5tleb", + "5tledr", + "3tlef", + "3tlem", + "5tlen", + "5tletr", + "5tlew", + "t1li", + "tlin4", + "4t3m", + "tmet2", + "tmo4t5", + "2t3n2", + "t4nere", + "2to.", + "toas4", + "to1b", + "4tocc", + "tode5c", + "tod4i", + "to5do", + "3toe", + "1tog", + "2t3oid", + "5tok", + "4toled", + "tol4l", + "tolu5", + "to5ly", + "tom3ac", + "toma4n", + "tomat5ol", + "tom4b", + "to4mog", + "tom5os", + "ton4e", + "ton5ea", + "3tonn", + "ton3s", + "top4e", + "to5pia", + "to4pos", + "t1or", + "to5rad", + "4tore", + "tor5er", + "tori4as", + "tor5oi", + "tor5p", + "tor4q", + "3tos.", + "to3s4p", + "tos4t", + "to5str", + "to5talis", + "to5taliz", + "to3tem", + "tot5u", + "tou4f", + "5tour", + "t3ous", + "4tov", + "to3war", + "t3p", + "tr2", + "tra4co", + "4tradd", + "4traist", + "tra5q", + "trarch4", + "tra5ven", + "tra5vers", + "trav5est", + "3tray", + "4tre.", + "4tred", + "tre4mo", + "tren4", + "trend5i", + "tre5pr", + "tres4s", + "4trew", + "t5ricl", + "3tricu", + "t2rie", + "tri5fli", + "trifu5ga", + "2tril", + "tri3li", + "tri3me", + "t2rit", + "4trix", + "t4rod", + "tro5f", + "5troop", + "tro4pha", + "tro3sp", + "t2rot", + "t5roto", + "tro1v", + "3troy", + "t4ruc", + "tru3i", + "2t4ry", + "trys4", + "4t1s", + "t2sc", + "ts4h", + "ts2i", + "t4sil", + "tstay4", + "2t1t4", + "tta4", + "t3tab", + "t5tan", + "t5tas", + "t3ted", + "t4tere", + "t5terer", + "t5test", + "t3ti", + "tti3tu", + "ttitud4", + "ttitu5di", + "t3tler", + "t3tli", + "t5toi", + "t5tor", + "t3tos", + "tt5s", + "t4tupe", + "t2ty", + "4tu.", + "tu1a", + "tu4al5li", + "tuari4", + "tu4bin", + "tu5bu", + "tu5den", + "tud5ie", + "tu5en", + "4tuf", + "tu1i", + "tu4is", + "2tum.", + "3tumi", + "4tums", + "3tun", + "tun4a", + "tu4ne", + "tun5it", + "tup5let", + "tup5lic", + "tu5rac", + "t4uran", + "turb3a", + "tur4d", + "turf5i", + "5turit", + "tur4n", + "5tur5o", + "1tut", + "4tut4iv", + "t1w", + "t3wa4", + "t2wi", + "twi5li", + "t3wit", + "t3wo", + "twon4", + "4ty.", + "ty4a", + "5tych", + "ty4let", + "tyl5i", + "ty5mi", + "1typ", + "3type", + "1tyr1", + "2tz2", + "t5zia", + "t5zie", + "2ua2", + "ua3ci", + "u2ag", + "ua5h", + "u1al", + "ua5lu", + "uan4o", + "uant5is", + "uant5it", + "uar3a", + "uar2d", + "uar3i", + "uari4n", + "uar5ters", + "uar4t5i", + "ua5tern", + "uba4", + "ub5bly", + "u1b2i", + "u4bicu", + "ub3lin", + "ub5lo", + "ub3ra", + "4uc", + "u1c2a", + "uccen5", + "u4cend", + "u4ch", + "u5chr", + "uc3l", + "u4com", + "uco5t", + "uc2tr", + "uc3ub", + "uc5ul", + "u5cum", + "u5dac", + "ud1al", + "ud4e", + "ud5ep", + "u4der", + "udev4", + "ud4g", + "udi4cin", + "ud3ied", + "u5dinis", + "udi3o", + "u5ditio", + "u2do", + "u5doi", + "ud5on", + "u5dor", + "ueb4", + "u4ed", + "uen4o", + "uen4ter", + "uer3a", + "ues4s", + "uest5rat", + "ues5tri", + "ue4t", + "uf2", + "3ufa", + "u3fl", + "u4fo", + "uft4", + "uga4c", + "ug5lif", + "ug2ni", + "u4go", + "ug3ul", + "ug3ura", + "uhem3", + "2ui2", + "ui3al", + "u2ic", + "uicent5", + "uid5o", + "uil4a", + "uild5er", + "ui3lib", + "uil4t", + "uinc5u", + "uin4s", + "uint4", + "uin4ta", + "ui5pr", + "uis3er", + "uis4t", + "uisti4", + "uit5er", + "ui5val5", + "ui3vo", + "u2iz", + "4ul.", + "u1la", + "u4lab", + "4ulac", + "ul5ard", + "u5lat", + "ul4bo", + "ul3ca", + "ul4ch", + "5ulche", + "5ulchre", + "4ulea", + "u5lee", + "u1len4", + "4ulenci", + "u5lent", + "ulet4", + "ul4ev", + "ul2fa", + "ul2i", + "ul4ia", + "u3line", + "ul3ing", + "ul5ish", + "u5liti", + "u5lity", + "4ull", + "ul4lat", + "ul4l5ib", + "ul4lis", + "ul4lit", + "ul3m", + "u1lo", + "u5lom", + "ulph3i", + "ulph3o", + "ulp5ing", + "ul4po", + "2uls", + "ul3sif", + "u1lu", + "ul1v4", + "u1ma", + "um3am", + "umar4", + "u5mas", + "um4bar.", + "um2bi", + "umen4t", + "u1mi", + "u4mic", + "u2m5if", + "umi4fy", + "umi5lia", + "umin4ar", + "u4mined", + "u4m3ing", + "u4mora", + "u4mos", + "um2p", + "um4pa", + "ump3er", + "ump5li", + "umpt4", + "ump5te", + "u1mu", + "umu4lo", + "un1", + "u4n3a4", + "un5ab", + "unabu4", + "un4ae", + "un4as.", + "un2ce", + "un4dal", + "un3ded", + "unde4t", + "undeter5m", + "undi4c", + "un4die", + "un3do", + "un4dus", + "u3n2er", + "unho5li", + "un2i", + "u1nic", + "un4ie", + "un3in", + "un4ine", + "uni5p", + "uni3so", + "un3ist", + "uni1v", + "un3iz", + "unk5eri", + "un5ket", + "un3kn", + "2unn", + "un4nag", + "un5o", + "un5r", + "un3s4", + "un5sh", + "un2ti", + "until4", + "unu4", + "un3us", + "uo3de", + "uodent4", + "u5oros", + "u3os", + "uo5tatio", + "u1ou", + "2up", + "u1pat", + "u1pe", + "u5pee", + "uper3", + "u1ph", + "u5pid", + "up3ing", + "u4po", + "u5pol", + "u2pr", + "upre4", + "u5quet", + "u4r", + "ur1a", + "4ura.", + "ura4ci", + "4urae", + "ura2g", + "4uranti", + "uras5", + "urb5ing", + "ur2c", + "urc3a", + "ur5den.", + "ur5deni", + "ur5die", + "ur4du", + "ur3ea", + "ur5ee", + "ur1er", + "ur3ers", + "ur1e2t", + "ur3ett", + "ur2f", + "ur3fa", + "ur1i", + "u5ri5cu", + "ur4ie.", + "ur5ifie", + "uril4", + "ur4ili", + "ur5ion", + "uri4os.", + "url5er", + "ur5lie", + "url5ing", + "ur1m4", + "urn3al", + "urn3er", + "urn5s", + "ur1o", + "uro4d", + "ur5o4m", + "ur5ot", + "uroti4", + "urpen5t", + "urph4", + "ur2s", + "urs5al", + "urs5er", + "ur3sh", + "urs3or", + "ur5ta", + "ur1te", + "ur5tes", + "urth2", + "ur3the", + "urti4", + "ur1u", + "ur4va", + "u3sad", + "us3ag", + "us3al", + "us4ap", + "us3at", + "2usc", + "us4can", + "ush5a", + "us5ian", + "usil5", + "u4s1in", + "usk5er", + "us1p", + "us4pa", + "uss4e", + "4ust", + "us3tac", + "us5tan", + "ust4ic", + "us5tici", + "ust5ig", + "ust3il", + "us1to4", + "us1tr", + "us4tre", + "usur4e", + "us5uri", + "u3tane", + "utch4e", + "ut5eni", + "u5teo", + "u4tere", + "ut2i", + "u3tie", + "ut3ing", + "u5tini", + "u3tio", + "ut5ism", + "ut3ist", + "5u5tiz", + "ut3le", + "utli4", + "ut2o", + "u4to5s", + "u4t1ra", + "uts2", + "ut5sm", + "ut4tone", + "u3tu", + "u4tul", + "uu4", + "uv2", + "u4va", + "uve2", + "uven3", + "uv5eri", + "u5vin", + "ux2o", + "uy4a", + "uy5er", + "4va.", + "2v3ab", + "5vac", + "va1ca", + "va5ceo", + "vacu1", + "v4ad", + "3vag3a", + "va4ge", + "4vaged", + "vager4", + "vag5r", + "v1al.", + "1vale", + "vali2", + "va5lie", + "val4ise", + "5valu", + "5val4v", + "vam4i", + "va5mo", + "5vann", + "vanta4", + "4vantl", + "var4is", + "4vase", + "vas5el5", + "v5a4so", + "vast3a", + "v4at.", + "5vatee", + "vat4ina", + "4vatu", + "2ve.", + "vect4", + "ve3g", + "3vei", + "2vel", + "vel3at", + "4vele", + "v3eler", + "ve5line", + "v1ell", + "v4ella", + "vel5ler", + "vel3li", + "vel5opi", + "ven4al", + "ven4do", + "ve1ne", + "ve5nia", + "vent5o", + "ven4tr", + "4venu", + "v5en5ue", + "5ve3o", + "5verb", + "verde5v", + "4v4ere4", + "ver5ea", + "ver3ei", + "v5erie", + "ver3m4", + "ver4ne", + "5verse", + "4ves.", + "4vi.", + "5vialit", + "vi4atr", + "vi1b4", + "vic2", + "vi4ca", + "vi5cari", + "vice3r", + "5vict2", + "5vicu", + "5vider", + "vign3", + "vi4l", + "vil3i", + "3vili4a", + "v5ilise", + "v5ilize", + "vil5lin", + "vim4", + "5vime", + "2v1in", + "vin4ac", + "3vinci", + "vin2e", + "5vinit", + "v5iniz", + "vint4", + "vin5ta", + "3vi1o", + "viol3", + "vi5om", + "5vi3p", + "vire4", + "vi5rid", + "vir3u", + "5visecti", + "5visio", + "v3ism", + "2v5ist", + "vi2t", + "vit2a", + "vi3tal", + "vi5tel", + "v5itie", + "vit1r", + "vi3tu", + "v3ity", + "viv5al", + "viv5or", + "vi5zo", + "1vo", + "2vo.", + "vo2l", + "vo5litio", + "vol4ubi", + "volv4", + "4von", + "vo5rac", + "3vorc", + "4vore", + "3voro", + "vo3tar", + "2vow", + "vr4", + "v5ra4", + "v5ri", + "v5ro", + "vrot4", + "4vs", + "v3ure", + "2vv2", + "v5ver", + "v5vi", + "4vy", + "4wab", + "wag3o", + "wais4", + "w3al.", + "wall5er", + "w3als", + "wan5gli", + "wank5er", + "war5ded", + "ward5er", + "ward5r", + "war4f", + "war4te", + "war5thi", + "wass4", + "was4t", + "wa1te", + "wav4ine", + "w1b4", + "w4bon", + "w5c", + "w5die", + "w3dr", + "we4b", + "w4ed", + "3weed", + "5wei", + "weight5i", + "weir4", + "wel3i", + "weliz4", + "wel4izi", + "wel4li", + "went4", + "wes4", + "west3", + "w5est.", + "w5f", + "wh2", + "w5hid", + "wi2", + "wid4e", + "wi5er", + "will5in", + "wim2p", + "win2e", + "wing5er", + "win4tr", + "3w4ise", + "with5eri", + "w3la", + "wl1er", + "wl1i", + "wl4ie", + "w1m", + "1wo", + "wol4", + "wol5ver", + "3wom", + "won2t", + "word5i", + "wotch4", + "woun4", + "wp5in", + "wra4", + "ws5ing", + "w5ster", + "wt4", + "w5te", + "w3to", + "wy2", + "wz4", + "x1a", + "x4ach", + "x4ade", + "x2ag", + "x3agg", + "xa5met", + "x3ami", + "xan5d", + "xano4", + "x2as", + "xas5p", + "x3c4", + "xcav3", + "xcor5", + "xe4", + "x1ec", + "xec3r", + "xe5cutio", + "xecut5o", + "xe2d", + "x5edl", + "x5edn", + "x5eg", + "x1em", + "x3en", + "xen4op", + "x3er", + "xer4g", + "xer3o", + "x1h", + "xhort4a", + "x1i", + "x3ia.", + "x4ias", + "xi4c", + "x5ige", + "xim3a", + "x4ime", + "ximet4", + "x3io", + "xi4p", + "x4it.", + "x4its", + "x1o", + "x4ode", + "x5om", + "xo4mat", + "xo4n", + "x4os", + "xotrop4", + "x3p", + "xpel4", + "xpo5n2", + "xpoun4", + "x1s2", + "x1t2", + "x4ted", + "xtens5o", + "xter3i", + "xter4m3", + "xtern3", + "x4th", + "xti4", + "xtra5d", + "xtra3v", + "xtre4", + "xu4o", + "x1ur", + "xur4b", + "x5us", + "x5w", + "xx4", + "xys4", + "xy3t", + "y1a2", + "y5ac", + "1y2ar", + "3yard", + "yas4i", + "4y1b", + "yb2i", + "yca5m", + "y5chede", + "ych5is", + "y3cho", + "y4chose", + "yc1l", + "yclam4", + "y4coli", + "y4coll", + "ycom4", + "y2cos", + "y1d4", + "yda4", + "yder4", + "ydro5s", + "y4drou", + "y3ee", + "yel5o", + "y3en", + "y1er", + "y3est.", + "yes5te", + "y5ett", + "y5f", + "y1g", + "ygi2", + "ygi5a", + "y3gl", + "ygo4i", + "y1h", + "y1i", + "y3in", + "yle2", + "ylin5de", + "yllab5i", + "yl3os", + "yl5ou", + "y1me4", + "y3men", + "y5met", + "y5mia", + "ym5in", + "ymot4", + "ym4pha", + "yn1", + "ynago4", + "ynand5", + "yn5ap4", + "yn5ast", + "yn4ci", + "ynd4", + "yn2e", + "yn3er", + "yng4", + "yn4gol", + "yni4c", + "yn4y", + "y1o2", + "yo3d", + "yo4gis", + "youn4", + "young5", + "2yp", + "yp5al", + "yper3", + "y5pere", + "y4peri", + "y4pero", + "y4pet", + "y2ph", + "yph4e", + "yph3i", + "y4p1i", + "yp1n", + "ypo1", + "y4pox", + "y2pr", + "yp5ri", + "yp4si", + "yp5syf", + "ypt3a", + "y5pu", + "y3rag", + "yr3at", + "yr3ic", + "y5rig", + "yr3is", + "yr3i4t", + "yr5olo", + "yr4r", + "yr4s", + "yr5u", + "4y2s", + "ys5ag", + "ys5at", + "y3s2c", + "y3sh", + "ys1ic", + "ys3in", + "ysi4o", + "yso5", + "ys4so", + "ys1t", + "ys4to", + "y3u", + "yv4", + "y3w", + "yz5er", + "yzy4", + "z1a1", + "2za.", + "za4bi", + "za2i", + "z4as", + "za4te", + "zd4", + "zeb4", + "ze4d", + "zen4a", + "z5eng", + "zer5a", + "z3et4", + "z1i", + "zib5", + "5zic4", + "z2ie", + "zi5m", + "zin4c3i", + "z3ing", + "zing5i", + "z4is", + "3zlem", + "z3ler", + "z3li", + "4zo.", + "5zoa", + "zo3an", + "3zoo2", + "zo3ol", + "zo3on", + "zo5op", + "zo5oti", + "zo5p", + "zot2", + "z5s", + "5zum", + "4zy.", + "zz2", + "z3zar", + "z5zas", + "z3zie", + "zzo3", + "z5zot" + ], + "exceptions":[ + "uni-ver-sity", + "uni-ver-sit-ies", + "how-ever", + "ma-nu-script", + "ma-nu-scripts", + "re-ci-pro-city", + "through-out", + "some-thing" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/en-us.json b/borb/pdf/canvas/layout/hyphenation/resources/en-us.json new file mode 100644 index 000000000..e061eefec --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/en-us.json @@ -0,0 +1,4958 @@ +{ + "patterns":[ + ".ach4", + ".ad4der", + ".af1t", + ".al3t", + ".am5at", + ".an5c", + ".ang4", + ".ani5m", + ".ant4", + ".an3te", + ".anti5s", + ".ar5s", + ".ar4tie", + ".ar4ty", + ".as3c", + ".as1p", + ".as1s", + ".aster5", + ".atom5", + ".au1d", + ".av4i", + ".awn4", + ".ba4g", + ".ba5na", + ".bas4e", + ".ber4", + ".be5ra", + ".be3sm", + ".be5sto", + ".bri2", + ".but4ti", + ".cam4pe", + ".can5c", + ".capa5b", + ".car5ol", + ".ca4t", + ".ce4la", + ".ch4", + ".chill5i", + ".ci2", + ".cit5r", + ".co3e", + ".co4r", + ".cor5ner", + ".de4moi", + ".de3o", + ".de3ra", + ".de3ri", + ".des4c", + ".dictio5", + ".do4t", + ".du4c", + ".dumb5", + ".earth5", + ".eas3i", + ".eb4", + ".eer4", + ".eg2", + ".el5d", + ".el3em", + ".enam3", + ".en3g", + ".en3s", + ".eq5ui5t", + ".er4ri", + ".es3", + ".eu3", + ".eye5", + ".fes3", + ".for5mer", + ".ga2", + ".ge2", + ".gen3t4", + ".ge5og", + ".gi5a", + ".gi4b", + ".go4r", + ".hand5i", + ".han5k", + ".he2", + ".hero5i", + ".hes3", + ".het3", + ".hi3b", + ".hi3er", + ".hon5ey", + ".hon3o", + ".hov5", + ".id4l", + ".idol3", + ".im3m", + ".im5pin", + ".in1", + ".in3ci", + ".ine2", + ".in2k", + ".in3s", + ".ir5r", + ".is4i", + ".ju3r", + ".la4cy", + ".la4m", + ".lat5er", + ".lath5", + ".le2", + ".leg5e", + ".len4", + ".lep5", + ".lev1", + ".li4g", + ".lig5a", + ".li2n", + ".li3o", + ".li4t", + ".mag5a5", + ".mal5o", + ".man5a", + ".mar5ti", + ".me2", + ".mer3c", + ".me5ter", + ".mis1", + ".mist5i", + ".mon3e", + ".mo3ro", + ".mu5ta", + ".muta5b", + ".ni4c", + ".od2", + ".odd5", + ".of5te", + ".or5ato", + ".or3c", + ".or1d", + ".or3t", + ".os3", + ".os4tl", + ".oth3", + ".out3", + ".ped5al", + ".pe5te", + ".pe5tit", + ".pi4e", + ".pio5n", + ".pi2t", + ".pre3m", + ".ra4c", + ".ran4t", + ".ratio5na", + ".ree2", + ".re5mit", + ".res2", + ".re5stat", + ".ri4g", + ".rit5u", + ".ro4q", + ".ros5t", + ".row5d", + ".ru4d", + ".sci3e", + ".self5", + ".sell5", + ".se2n", + ".se5rie", + ".sh2", + ".si2", + ".sing4", + ".st4", + ".sta5bl", + ".sy2", + ".ta4", + ".te4", + ".ten5an", + ".th2", + ".ti2", + ".til4", + ".tim5o5", + ".ting4", + ".tin5k", + ".ton4a", + ".to4p", + ".top5i", + ".tou5s", + ".trib5ut", + ".un1a", + ".un3ce", + ".under5", + ".un1e", + ".un5k", + ".un5o", + ".un3u", + ".up3", + ".ure3", + ".us5a", + ".ven4de", + ".ve5ra", + ".wil5i", + ".ye4", + "4ab.", + "a5bal", + "a5ban", + "abe2", + "ab5erd", + "abi5a", + "ab5it5ab", + "ab5lat", + "ab5o5liz", + "4abr", + "ab5rog", + "ab3ul", + "a4car", + "ac5ard", + "ac5aro", + "a5ceou", + "ac1er", + "a5chet", + "4a2ci", + "a3cie", + "ac1in", + "a3cio", + "ac5rob", + "act5if", + "ac3ul", + "ac4um", + "a2d", + "ad4din", + "ad5er.", + "2adi", + "a3dia", + "ad3ica", + "adi4er", + "a3dio", + "a3dit", + "a5diu", + "ad4le", + "ad3ow", + "ad5ran", + "ad4su", + "4adu", + "a3duc", + "ad5um", + "ae4r", + "aeri4e", + "a2f", + "aff4", + "a4gab", + "aga4n", + "ag5ell", + "age4o", + "4ageu", + "ag1i", + "4ag4l", + "ag1n", + "a2go", + "3agog", + "ag3oni", + "a5guer", + "ag5ul", + "a4gy", + "a3ha", + "a3he", + "ah4l", + "a3ho", + "ai2", + "a5ia", + "a3ic.", + "ai5ly", + "a4i4n", + "ain5in", + "ain5o", + "ait5en", + "a1j", + "ak1en", + "al5ab", + "al3ad", + "a4lar", + "4aldi", + "2ale", + "al3end", + "a4lenti", + "a5le5o", + "al1i", + "al4ia.", + "ali4e", + "al5lev", + "4allic", + "4alm", + "a5log.", + "a4ly.", + "4alys", + "5a5lyst", + "5alyt", + "3alyz", + "4ama", + "am5ab", + "am3ag", + "ama5ra", + "am5asc", + "a4matis", + "a4m5ato", + "am5era", + "am3ic", + "am5if", + "am5ily", + "am1in", + "ami4no", + "a2mo", + "a5mon", + "amor5i", + "amp5en", + "a2n", + "an3age", + "3analy", + "a3nar", + "an3arc", + "anar4i", + "a3nati", + "4and", + "ande4s", + "an3dis", + "an1dl", + "an4dow", + "a5nee", + "a3nen", + "an5est.", + "a3neu", + "2ang", + "ang5ie", + "an1gl", + "a4n1ic", + "a3nies", + "an3i3f", + "an4ime", + "a5nimi", + "a5nine", + "an3io", + "a3nip", + "an3ish", + "an3it", + "a3niu", + "an4kli", + "5anniz", + "ano4", + "an5ot", + "anoth5", + "an2sa", + "an4sco", + "an4sn", + "an2sp", + "ans3po", + "an4st", + "an4sur", + "antal4", + "an4tie", + "4anto", + "an2tr", + "an4tw", + "an3ua", + "an3ul", + "a5nur", + "4ao", + "apar4", + "ap5at", + "ap5ero", + "a3pher", + "4aphi", + "a4pilla", + "ap5illar", + "ap3in", + "ap3ita", + "a3pitu", + "a2pl", + "apoc5", + "ap5ola", + "apor5i", + "apos3t", + "aps5es", + "a3pu", + "aque5", + "2a2r", + "ar3act", + "a5rade", + "ar5adis", + "ar3al", + "a5ramete", + "aran4g", + "ara3p", + "ar4at", + "a5ratio", + "ar5ativ", + "a5rau", + "ar5av4", + "araw4", + "arbal4", + "ar4chan", + "ar5dine", + "ar4dr", + "ar5eas", + "a3ree", + "ar3ent", + "a5ress", + "ar4fi", + "ar4fl", + "ar1i", + "ar5ial", + "ar3ian", + "a3riet", + "ar4im", + "ar5inat", + "ar3io", + "ar2iz", + "ar2mi", + "ar5o5d", + "a5roni", + "a3roo", + "ar2p", + "ar3q", + "arre4", + "ar4sa", + "ar2sh", + "4as.", + "as4ab", + "as3ant", + "ashi4", + "a5sia.", + "a3sib", + "a3sic", + "5a5si4t", + "ask3i", + "as4l", + "a4soc", + "as5ph", + "as4sh", + "as3ten", + "as1tr", + "asur5a", + "a2ta", + "at3abl", + "at5ac", + "at3alo", + "at5ap", + "ate5c", + "at5ech", + "at3ego", + "at3en.", + "at3era", + "ater5n", + "a5terna", + "at3est", + "at5ev", + "4ath", + "ath5em", + "a5then", + "at4ho", + "ath5om", + "4ati.", + "a5tia", + "at5i5b", + "at1ic", + "at3if", + "ation5ar", + "at3itu", + "a4tog", + "a2tom", + "at5omiz", + "a4top", + "a4tos", + "a1tr", + "at5rop", + "at4sk", + "at4tag", + "at5te", + "at4th", + "a2tu", + "at5ua", + "at5ue", + "at3ul", + "at3ura", + "a2ty", + "au4b", + "augh3", + "au3gu", + "au4l2", + "aun5d", + "au3r", + "au5sib", + "aut5en", + "au1th", + "a2va", + "av3ag", + "a5van", + "ave4no", + "av3era", + "av5ern", + "av5ery", + "av1i", + "avi4er", + "av3ig", + "av5oc", + "a1vor", + "3away", + "aw3i", + "aw4ly", + "aws4", + "ax4ic", + "ax4id", + "ay5al", + "aye4", + "ays4", + "azi4er", + "azz5i", + "5ba.", + "bad5ger", + "ba4ge", + "bal1a", + "ban5dag", + "ban4e", + "ban3i", + "barbi5", + "bari4a", + "bas4si", + "1bat", + "ba4z", + "2b1b", + "b2be", + "b3ber", + "bbi4na", + "4b1d", + "4be.", + "beak4", + "beat3", + "4be2d", + "be3da", + "be3de", + "be3di", + "be3gi", + "be5gu", + "1bel", + "be1li", + "be3lo", + "4be5m", + "be5nig", + "be5nu", + "4bes4", + "be3sp", + "be5str", + "3bet", + "bet5iz", + "be5tr", + "be3tw", + "be3w", + "be5yo", + "2bf", + "4b3h", + "bi2b", + "bi4d", + "3bie", + "bi5en", + "bi4er", + "2b3if", + "1bil", + "bi3liz", + "bina5r4", + "bin4d", + "bi5net", + "bi3ogr", + "bi5ou", + "bi2t", + "3bi3tio", + "bi3tr", + "3bit5ua", + "b5itz", + "b1j", + "bk4", + "b2l2", + "blath5", + "b4le.", + "blen4", + "5blesp", + "b3lis", + "b4lo", + "blun4t", + "4b1m", + "4b3n", + "bne5g", + "3bod", + "bod3i", + "bo4e", + "bol3ic", + "bom4bi", + "bon4a", + "bon5at", + "3boo", + "5bor.", + "4b1ora", + "bor5d", + "5bore", + "5bori", + "5bos4", + "b5ota", + "both5", + "bo4to", + "bound3", + "4bp", + "4brit", + "broth3", + "2b5s2", + "bsor4", + "2bt", + "bt4l", + "b4to", + "b3tr", + "buf4fer", + "bu4ga", + "bu3li", + "bumi4", + "bu4n", + "bunt4i", + "bu3re", + "bus5ie", + "buss4e", + "5bust", + "4buta", + "3butio", + "b5uto", + "b1v", + "4b5w", + "5by.", + "bys4", + "1ca", + "cab3in", + "ca1bl", + "cach4", + "ca5den", + "4cag4", + "2c5ah", + "ca3lat", + "cal4la", + "call5in", + "4calo", + "can5d", + "can4e", + "can4ic", + "can5is", + "can3iz", + "can4ty", + "cany4", + "ca5per", + "car5om", + "cast5er", + "cas5tig", + "4casy", + "ca4th", + "4cativ", + "cav5al", + "c3c", + "ccha5", + "cci4a", + "ccompa5", + "ccon4", + "ccou3t", + "2ce.", + "4ced.", + "4ceden", + "3cei", + "5cel.", + "3cell", + "1cen", + "3cenc", + "2cen4e", + "4ceni", + "3cent", + "3cep", + "ce5ram", + "4cesa", + "3cessi", + "ces5si5b", + "ces5t", + "cet4", + "c5e4ta", + "cew4", + "2ch", + "4ch.", + "4ch3ab", + "5chanic", + "ch5a5nis", + "che2", + "cheap3", + "4ched", + "che5lo", + "3chemi", + "ch5ene", + "ch3er.", + "ch3ers", + "4ch1in", + "5chine.", + "ch5iness", + "5chini", + "5chio", + "3chit", + "chi2z", + "3cho2", + "ch4ti", + "1ci", + "3cia", + "ci2a5b", + "cia5r", + "ci5c", + "4cier", + "5cific.", + "4cii", + "ci4la", + "3cili", + "2cim", + "2cin", + "c4ina", + "3cinat", + "cin3em", + "c1ing", + "c5ing.", + "5cino", + "cion4", + "4cipe", + "ci3ph", + "4cipic", + "4cista", + "4cisti", + "2c1it", + "cit3iz", + "5ciz", + "ck1", + "ck3i", + "1c4l4", + "4clar", + "c5laratio", + "5clare", + "cle4m", + "4clic", + "clim4", + "cly4", + "c5n", + "1co", + "co5ag", + "coe2", + "2cog", + "co4gr", + "coi4", + "co3inc", + "col5i", + "5colo", + "col3or", + "com5er", + "con4a", + "c4one", + "con3g", + "con5t", + "co3pa", + "cop3ic", + "co4pl", + "4corb", + "coro3n", + "cos4e", + "cov1", + "cove4", + "cow5a", + "coz5e", + "co5zi", + "c1q", + "cras5t", + "5crat.", + "5cratic", + "cre3at", + "5cred", + "4c3reta", + "cre4v", + "cri2", + "cri5f", + "c4rin", + "cris4", + "5criti", + "cro4pl", + "crop5o", + "cros4e", + "cru4d", + "4c3s2", + "2c1t", + "cta4b", + "ct5ang", + "c5tant", + "c2te", + "c3ter", + "c4ticu", + "ctim3i", + "ctu4r", + "c4tw", + "cud5", + "c4uf", + "c4ui", + "cu5ity", + "5culi", + "cul4tis", + "3cultu", + "cu2ma", + "c3ume", + "cu4mi", + "3cun", + "cu3pi", + "cu5py", + "cur5a4b", + "cu5ria", + "1cus", + "cuss4i", + "3c4ut", + "cu4tie", + "4c5utiv", + "4cutr", + "1cy", + "cze4", + "1d2a", + "5da.", + "2d3a4b", + "dach4", + "4daf", + "2dag", + "da2m2", + "dan3g", + "dard5", + "dark5", + "4dary", + "3dat", + "4dativ", + "4dato", + "5dav4", + "dav5e", + "5day", + "d1b", + "d5c", + "d1d4", + "2de.", + "deaf5", + "deb5it", + "de4bon", + "decan4", + "de4cil", + "de5com", + "2d1ed", + "4dee.", + "de5if", + "deli4e", + "del5i5q", + "de5lo", + "d4em", + "5dem.", + "3demic", + "dem5ic.", + "de5mil", + "de4mons", + "demor5", + "1den", + "de4nar", + "de3no", + "denti5f", + "de3nu", + "de1p", + "de3pa", + "depi4", + "de2pu", + "d3eq", + "d4erh", + "5derm", + "dern5iz", + "der5s", + "des2", + "d2es.", + "de1sc", + "de2s5o", + "des3ti", + "de3str", + "de4su", + "de1t", + "de2to", + "de1v", + "dev3il", + "4dey", + "4d1f", + "d4ga", + "d3ge4t", + "dg1i", + "d2gy", + "d1h2", + "5di.", + "1d4i3a", + "dia5b", + "di4cam", + "d4ice", + "3dict", + "3did", + "5di3en", + "d1if", + "di3ge", + "di4lato", + "d1in", + "1dina", + "3dine.", + "5dini", + "di5niz", + "1dio", + "dio5g", + "di4pl", + "dir2", + "di1re", + "dirt5i", + "dis1", + "5disi", + "d4is3t", + "d2iti", + "1di1v", + "d1j", + "d5k2", + "4d5la", + "3dle.", + "3dled", + "3dles.", + "4dless", + "2d3lo", + "4d5lu", + "2dly", + "d1m", + "4d1n4", + "1do", + "3do.", + "do5de", + "5doe", + "2d5of", + "d4og", + "do4la", + "doli4", + "do5lor", + "dom5iz", + "do3nat", + "doni4", + "doo3d", + "dop4p", + "d4or", + "3dos", + "4d5out", + "do4v", + "3dox", + "d1p", + "1dr", + "drag5on", + "4drai", + "dre4", + "drea5r", + "5dren", + "dri4b", + "dril4", + "dro4p", + "4drow", + "5drupli", + "4dry", + "2d1s2", + "ds4p", + "d4sw", + "d4sy", + "d2th", + "1du", + "d1u1a", + "du2c", + "d1uca", + "duc5er", + "4duct.", + "4ducts", + "du5el", + "du4g", + "d3ule", + "dum4be", + "du4n", + "4dup", + "du4pe", + "d1v", + "d1w", + "d2y", + "5dyn", + "dy4se", + "dys5p", + "e1a4b", + "e3act", + "ead1", + "ead5ie", + "ea4ge", + "ea5ger", + "ea4l", + "eal5er", + "eal3ou", + "eam3er", + "e5and", + "ear3a", + "ear4c", + "ear5es", + "ear4ic", + "ear4il", + "ear5k", + "ear2t", + "eart3e", + "ea5sp", + "e3ass", + "east3", + "ea2t", + "eat5en", + "eath3i", + "e5atif", + "e4a3tu", + "ea2v", + "eav3en", + "eav5i", + "eav5o", + "2e1b", + "e4bel.", + "e4bels", + "e4ben", + "e4bit", + "e3br", + "e4cad", + "ecan5c", + "ecca5", + "e1ce", + "ec5essa", + "ec2i", + "e4cib", + "ec5ificat", + "ec5ifie", + "ec5ify", + "ec3im", + "eci4t", + "e5cite", + "e4clam", + "e4clus", + "e2col", + "e4comm", + "e4compe", + "e4conc", + "e2cor", + "ec3ora", + "eco5ro", + "e1cr", + "e4crem", + "ec4tan", + "ec4te", + "e1cu", + "e4cul", + "ec3ula", + "2e2da", + "4ed3d", + "e4d1er", + "ede4s", + "4edi", + "e3dia", + "ed3ib", + "ed3ica", + "ed3im", + "ed1it", + "edi5z", + "4edo", + "e4dol", + "edon2", + "e4dri", + "e4dul", + "ed5ulo", + "ee2c", + "eed3i", + "ee2f", + "eel3i", + "ee4ly", + "ee2m", + "ee4na", + "ee4p1", + "ee2s4", + "eest4", + "ee4ty", + "e5ex", + "e1f", + "e4f3ere", + "1eff", + "e4fic", + "5efici", + "efil4", + "e3fine", + "ef5i5nite", + "3efit", + "efor5es", + "e4fuse.", + "4egal", + "eger4", + "eg5ib", + "eg4ic", + "eg5ing", + "e5git5", + "eg5n", + "e4go.", + "e4gos", + "eg1ul", + "e5gur", + "5egy", + "e1h4", + "eher4", + "ei2", + "e5ic", + "ei5d", + "eig2", + "ei5gl", + "e3imb", + "e3inf", + "e1ing", + "e5inst", + "eir4d", + "eit3e", + "ei3th", + "e5ity", + "e1j", + "e4jud", + "ej5udi", + "eki4n", + "ek4la", + "e1la", + "e4la.", + "e4lac", + "elan4d", + "el5ativ", + "e4law", + "elaxa4", + "e3lea", + "el5ebra", + "5elec", + "e4led", + "el3ega", + "e5len", + "e4l1er", + "e1les", + "el2f", + "el2i", + "e3libe", + "e4l5ic.", + "el3ica", + "e3lier", + "el5igib", + "e5lim", + "e4l3ing", + "e3lio", + "e2lis", + "el5ish", + "e3liv3", + "4ella", + "el4lab", + "ello4", + "e5loc", + "el5og", + "el3op.", + "el2sh", + "el4ta", + "e5lud", + "el5ug", + "e4mac", + "e4mag", + "e5man", + "em5ana", + "em5b", + "e1me", + "e2mel", + "e4met", + "em3ica", + "emi4e", + "em5igra", + "em1in2", + "em5ine", + "em3i3ni", + "e4mis", + "em5ish", + "e5miss", + "em3iz", + "5emniz", + "emo4g", + "emoni5o", + "em3pi", + "e4mul", + "em5ula", + "emu3n", + "e3my", + "en5amo", + "e4nant", + "ench4er", + "en3dic", + "e5nea", + "e5nee", + "en3em", + "en5ero", + "en5esi", + "en5est", + "en3etr", + "e3new", + "en5ics", + "e5nie", + "e5nil", + "e3nio", + "en3ish", + "en3it", + "e5niu", + "5eniz", + "4enn", + "4eno", + "eno4g", + "e4nos", + "en3ov", + "en4sw", + "ent5age", + "4enthes", + "en3ua", + "en5uf", + "e3ny.", + "4en3z", + "e5of", + "eo2g", + "e4oi4", + "e3ol", + "eop3ar", + "e1or", + "eo3re", + "eo5rol", + "eos4", + "e4ot", + "eo4to", + "e5out", + "e5ow", + "e2pa", + "e3pai", + "ep5anc", + "e5pel", + "e3pent", + "ep5etitio", + "ephe4", + "e4pli", + "e1po", + "e4prec", + "ep5reca", + "e4pred", + "ep3reh", + "e3pro", + "e4prob", + "ep4sh", + "ep5ti5b", + "e4put", + "ep5uta", + "e1q", + "equi3l", + "e4q3ui3s", + "er1a", + "era4b", + "4erand", + "er3ar", + "4erati.", + "2erb", + "er4bl", + "er3ch", + "er4che", + "2ere.", + "e3real", + "ere5co", + "ere3in", + "er5el.", + "er3emo", + "er5ena", + "er5ence", + "4erene", + "er3ent", + "ere4q", + "er5ess", + "er3est", + "eret4", + "er1h", + "er1i", + "e1ria4", + "5erick", + "e3rien", + "eri4er", + "er3ine", + "e1rio", + "4erit", + "er4iu", + "eri4v", + "e4riva", + "er3m4", + "er4nis", + "4ernit", + "5erniz", + "er3no", + "2ero", + "er5ob", + "e5roc", + "ero4r", + "er1ou", + "er1s", + "er3set", + "ert3er", + "4ertl", + "er3tw", + "4eru", + "eru4t", + "5erwau", + "e1s4a", + "e4sage.", + "e4sages", + "es2c", + "e2sca", + "es5can", + "e3scr", + "es5cu", + "e1s2e", + "e2sec", + "es5ecr", + "es5enc", + "e4sert.", + "e4serts", + "e4serva", + "4esh", + "e3sha", + "esh5en", + "e1si", + "e2sic", + "e2sid", + "es5iden", + "es5igna", + "e2s5im", + "es4i4n", + "esis4te", + "esi4u", + "e5skin", + "es4mi", + "e2sol", + "es3olu", + "e2son", + "es5ona", + "e1sp", + "es3per", + "es5pira", + "es4pre", + "2ess", + "es4si4b", + "estan4", + "es3tig", + "es5tim", + "4es2to", + "e3ston", + "2estr", + "e5stro", + "estruc5", + "e2sur", + "es5urr", + "es4w", + "eta4b", + "eten4d", + "e3teo", + "ethod3", + "et1ic", + "e5tide", + "etin4", + "eti4no", + "e5tir", + "e5titio", + "et5itiv", + "4etn", + "et5ona", + "e3tra", + "e3tre", + "et3ric", + "et5rif", + "et3rog", + "et5ros", + "et3ua", + "et5ym", + "et5z", + "4eu", + "e5un", + "e3up", + "eu3ro", + "eus4", + "eute4", + "euti5l", + "eu5tr", + "eva2p5", + "e2vas", + "ev5ast", + "e5vea", + "ev3ell", + "evel3o", + "e5veng", + "even4i", + "ev1er", + "e5verb", + "e1vi", + "ev3id", + "evi4l", + "e4vin", + "evi4v", + "e5voc", + "e5vu", + "e1wa", + "e4wag", + "e5wee", + "e3wh", + "ewil5", + "ew3ing", + "e3wit", + "1exp", + "5eyc", + "5eye.", + "eys4", + "1fa", + "fa3bl", + "fab3r", + "fa4ce", + "4fag", + "fain4", + "fall5e", + "4fa4ma", + "fam5is", + "5far", + "far5th", + "fa3ta", + "fa3the", + "4fato", + "fault5", + "4f5b", + "4fd", + "4fe.", + "feas4", + "feath3", + "fe4b", + "4feca", + "5fect", + "2fed", + "fe3li", + "fe4mo", + "fen2d", + "fend5e", + "fer1", + "5ferr", + "fev4", + "4f1f", + "f4fes", + "f4fie", + "f5fin.", + "f2f5is", + "f4fly", + "f2fy", + "4fh", + "1fi", + "fi3a", + "2f3ic.", + "4f3ical", + "f3ican", + "4ficate", + "f3icen", + "fi3cer", + "fic4i", + "5ficia", + "5ficie", + "4fics", + "fi3cu", + "fi5del", + "fight5", + "fil5i", + "fill5in", + "4fily", + "2fin", + "5fina", + "fin2d5", + "fi2ne", + "f1in3g", + "fin4n", + "fis4ti", + "f4l2", + "f5less", + "flin4", + "flo3re", + "f2ly5", + "4fm", + "4fn", + "1fo", + "5fon", + "fon4de", + "fon4t", + "fo2r", + "fo5rat", + "for5ay", + "fore5t", + "for4i", + "fort5a", + "fos5", + "4f5p", + "fra4t", + "f5rea", + "fres5c", + "fri2", + "fril4", + "frol5", + "2f3s", + "2ft", + "f4to", + "f2ty", + "3fu", + "fu5el", + "4fug", + "fu4min", + "fu5ne", + "fu3ri", + "fusi4", + "fus4s", + "4futa", + "1fy", + "1ga", + "gaf4", + "5gal.", + "3gali", + "ga3lo", + "2gam", + "ga5met", + "g5amo", + "gan5is", + "ga3niz", + "gani5za", + "4gano", + "gar5n4", + "gass4", + "gath3", + "4gativ", + "4gaz", + "g3b", + "gd4", + "2ge.", + "2ged", + "geez4", + "gel4in", + "ge5lis", + "ge5liz", + "4gely", + "1gen", + "ge4nat", + "ge5niz", + "4geno", + "4geny", + "1geo", + "ge3om", + "g4ery", + "5gesi", + "geth5", + "4geto", + "ge4ty", + "ge4v", + "4g1g2", + "g2ge", + "g3ger", + "gglu5", + "ggo4", + "gh3in", + "gh5out", + "gh4to", + "5gi.", + "1gi4a", + "gia5r", + "g1ic", + "5gicia", + "g4ico", + "gien5", + "5gies.", + "gil4", + "g3imen", + "3g4in.", + "gin5ge", + "5g4ins", + "5gio", + "3gir", + "gir4l", + "g3isl", + "gi4u", + "5giv", + "3giz", + "gl2", + "gla4", + "glad5i", + "5glas", + "1gle", + "gli4b", + "g3lig", + "3glo", + "glo3r", + "g1m", + "g4my", + "gn4a", + "g4na.", + "gnet4t", + "g1ni", + "g2nin", + "g4nio", + "g1no", + "g4non", + "1go", + "3go.", + "gob5", + "5goe", + "3g4o4g", + "go3is", + "gon2", + "4g3o3na", + "gondo5", + "go3ni", + "5goo", + "go5riz", + "gor5ou", + "5gos.", + "gov1", + "g3p", + "1gr", + "4grada", + "g4rai", + "gran2", + "5graph.", + "g5rapher", + "5graphic", + "4graphy", + "4gray", + "gre4n", + "4gress.", + "4grit", + "g4ro", + "gruf4", + "gs2", + "g5ste", + "gth3", + "gu4a", + "3guard", + "2gue", + "5gui5t", + "3gun", + "3gus", + "4gu4t", + "g3w", + "1gy", + "2g5y3n", + "gy5ra", + "h3ab4l", + "hach4", + "hae4m", + "hae4t", + "h5agu", + "ha3la", + "hala3m", + "ha4m", + "han4ci", + "han4cy", + "5hand.", + "han4g", + "hang5er", + "hang5o", + "h5a5niz", + "han4k", + "han4te", + "hap3l", + "hap5t", + "ha3ran", + "ha5ras", + "har2d", + "hard3e", + "har4le", + "harp5en", + "har5ter", + "has5s", + "haun4", + "5haz", + "haz3a", + "h1b", + "1head", + "3hear", + "he4can", + "h5ecat", + "h4ed", + "he5do5", + "he3l4i", + "hel4lis", + "hel4ly", + "h5elo", + "hem4p", + "he2n", + "hena4", + "hen5at", + "heo5r", + "hep5", + "h4era", + "hera3p", + "her4ba", + "here5a", + "h3ern", + "h5erou", + "h3ery", + "h1es", + "he2s5p", + "he4t", + "het4ed", + "heu4", + "h1f", + "h1h", + "hi5an", + "hi4co", + "high5", + "h4il2", + "himer4", + "h4ina", + "hion4e", + "hi4p", + "hir4l", + "hi3ro", + "hir4p", + "hir4r", + "his3el", + "his4s", + "hith5er", + "hi2v", + "4hk", + "4h1l4", + "hlan4", + "h2lo", + "hlo3ri", + "4h1m", + "hmet4", + "2h1n", + "h5odiz", + "h5ods", + "ho4g", + "hoge4", + "hol5ar", + "3hol4e", + "ho4ma", + "home3", + "hon4a", + "ho5ny", + "3hood", + "hoon4", + "hor5at", + "ho5ris", + "hort3e", + "ho5ru", + "hos4e", + "ho5sen", + "hos1p", + "1hous", + "house3", + "hov5el", + "4h5p", + "4hr4", + "hree5", + "hro5niz", + "hro3po", + "4h1s2", + "h4sh", + "h4tar", + "ht1en", + "ht5es", + "h4ty", + "hu4g", + "hu4min", + "hun5ke", + "hun4t", + "hus3t4", + "hu4t", + "h1w", + "h4wart", + "hy3pe", + "hy3ph", + "hy2s", + "2i1a", + "i2al", + "iam4", + "iam5ete", + "i2an", + "4ianc", + "ian3i", + "4ian4t", + "ia5pe", + "iass4", + "i4ativ", + "ia4tric", + "i4atu", + "ibe4", + "ib3era", + "ib5ert", + "ib5ia", + "ib3in", + "ib5it.", + "ib5ite", + "i1bl", + "ib3li", + "i5bo", + "i1br", + "i2b5ri", + "i5bun", + "4icam", + "5icap", + "4icar", + "i4car.", + "i4cara", + "icas5", + "i4cay", + "iccu4", + "4iceo", + "4ich", + "2ici", + "i5cid", + "ic5ina", + "i2cip", + "ic3ipa", + "i4cly", + "i2c5oc", + "4i1cr", + "5icra", + "i4cry", + "ic4te", + "ictu2", + "ic4t3ua", + "ic3ula", + "ic4um", + "ic5uo", + "i3cur", + "2id", + "i4dai", + "id5anc", + "id5d", + "ide3al", + "ide4s", + "i2di", + "id5ian", + "idi4ar", + "i5die", + "id3io", + "idi5ou", + "id1it", + "id5iu", + "i3dle", + "i4dom", + "id3ow", + "i4dr", + "i2du", + "id5uo", + "2ie4", + "ied4e", + "5ie5ga", + "ield3", + "ien5a4", + "ien4e", + "i5enn", + "i3enti", + "i1er.", + "i3esc", + "i1est", + "i3et", + "4if.", + "if5ero", + "iff5en", + "if4fr", + "4ific.", + "i3fie", + "i3fl", + "4ift", + "2ig", + "iga5b", + "ig3era", + "ight3i", + "4igi", + "i3gib", + "ig3il", + "ig3in", + "ig3it", + "i4g4l", + "i2go", + "ig3or", + "ig5ot", + "i5gre", + "igu5i", + "ig1ur", + "i3h", + "4i5i4", + "i3j", + "4ik", + "i1la", + "il3a4b", + "i4lade", + "i2l5am", + "ila5ra", + "i3leg", + "il1er", + "ilev4", + "il5f", + "il1i", + "il3ia", + "il2ib", + "il3io", + "il4ist", + "2ilit", + "il2iz", + "ill5ab", + "4iln", + "il3oq", + "il4ty", + "il5ur", + "il3v", + "i4mag", + "im3age", + "ima5ry", + "imenta5r", + "4imet", + "im1i", + "im5ida", + "imi5le", + "i5mini", + "4imit", + "im4ni", + "i3mon", + "i2mu", + "im3ula", + "2in.", + "i4n3au", + "4inav", + "incel4", + "in3cer", + "4ind", + "in5dling", + "2ine", + "i3nee", + "iner4ar", + "i5ness", + "4inga", + "4inge", + "in5gen", + "4ingi", + "in5gling", + "4ingo", + "4ingu", + "2ini", + "i5ni.", + "i4nia", + "in3io", + "in1is", + "i5nite.", + "5initio", + "in3ity", + "4ink", + "4inl", + "2inn", + "2i1no", + "i4no4c", + "ino4s", + "i4not", + "2ins", + "in3se", + "insur5a", + "2int.", + "2in4th", + "in1u", + "i5nus", + "4iny", + "2io", + "4io.", + "ioge4", + "io2gr", + "i1ol", + "io4m", + "ion3at", + "ion4ery", + "ion3i", + "io5ph", + "ior3i", + "i4os", + "io5th", + "i5oti", + "io4to", + "i4our", + "2ip", + "ipe4", + "iphras4", + "ip3i", + "ip4ic", + "ip4re4", + "ip3ul", + "i3qua", + "iq5uef", + "iq3uid", + "iq3ui3t", + "4ir", + "i1ra", + "ira4b", + "i4rac", + "ird5e", + "ire4de", + "i4ref", + "i4rel4", + "i4res", + "ir5gi", + "ir1i", + "iri5de", + "ir4is", + "iri3tu", + "5i5r2iz", + "ir4min", + "iro4g", + "5iron.", + "ir5ul", + "2is.", + "is5ag", + "is3ar", + "isas5", + "2is1c", + "is3ch", + "4ise", + "is3er", + "3isf", + "is5han", + "is3hon", + "ish5op", + "is3ib", + "isi4d", + "i5sis", + "is5itiv", + "4is4k", + "islan4", + "4isms", + "i2so", + "iso5mer", + "is1p", + "is2pi", + "is4py", + "4is1s", + "is4sal", + "issen4", + "is4ses", + "is4ta.", + "is1te", + "is1ti", + "ist4ly", + "4istral", + "i2su", + "is5us", + "4ita.", + "ita4bi", + "i4tag", + "4ita5m", + "i3tan", + "i3tat", + "2ite", + "it3era", + "i5teri", + "it4es", + "2ith", + "i1ti", + "4itia", + "4i2tic", + "it3ica", + "5i5tick", + "it3ig", + "it5ill", + "i2tim", + "2itio", + "4itis", + "i4tism", + "i2t5o5m", + "4iton", + "i4tram", + "it5ry", + "4itt", + "it3uat", + "i5tud", + "it3ul", + "4itz.", + "i1u", + "2iv", + "iv3ell", + "iv3en.", + "i4v3er.", + "i4vers.", + "iv5il.", + "iv5io", + "iv1it", + "i5vore", + "iv3o3ro", + "i4v3ot", + "4i5w", + "ix4o", + "4iy", + "4izar", + "izi4", + "5izont", + "5ja", + "jac4q", + "ja4p", + "1je", + "jer5s", + "4jestie", + "4jesty", + "jew3", + "jo4p", + "5judg", + "3ka.", + "k3ab", + "k5ag", + "kais4", + "kal4", + "k1b", + "k2ed", + "1kee", + "ke4g", + "ke5li", + "k3en4d", + "k1er", + "kes4", + "k3est.", + "ke4ty", + "k3f", + "kh4", + "k1i", + "5ki.", + "5k2ic", + "k4ill", + "kilo5", + "k4im", + "k4in.", + "kin4de", + "k5iness", + "kin4g", + "ki4p", + "kis4", + "k5ish", + "kk4", + "k1l", + "4kley", + "4kly", + "k1m", + "k5nes", + "1k2no", + "ko5r", + "kosh4", + "k3ou", + "kro5n", + "4k1s2", + "k4sc", + "ks4l", + "k4sy", + "k5t", + "k1w", + "lab3ic", + "l4abo", + "laci4", + "l4ade", + "la3dy", + "lag4n", + "lam3o", + "3land", + "lan4dl", + "lan5et", + "lan4te", + "lar4g", + "lar3i", + "las4e", + "la5tan", + "4lateli", + "4lativ", + "4lav", + "la4v4a", + "2l1b", + "lbin4", + "4l1c2", + "lce4", + "l3ci", + "2ld", + "l2de", + "ld4ere", + "ld4eri", + "ldi4", + "ld5is", + "l3dr", + "l4dri", + "le2a", + "le4bi", + "left5", + "5leg.", + "5legg", + "le4mat", + "lem5atic", + "4len.", + "3lenc", + "5lene.", + "1lent", + "le3ph", + "le4pr", + "lera5b", + "ler4e", + "3lerg", + "3l4eri", + "l4ero", + "les2", + "le5sco", + "5lesq", + "3less", + "5less.", + "l3eva", + "lev4er.", + "lev4era", + "lev4ers", + "3ley", + "4leye", + "2lf", + "l5fr", + "4l1g4", + "l5ga", + "lgar3", + "l4ges", + "lgo3", + "2l3h", + "li4ag", + "li2am", + "liar5iz", + "li4as", + "li4ato", + "li5bi", + "5licio", + "li4cor", + "4lics", + "4lict.", + "l4icu", + "l3icy", + "l3ida", + "lid5er", + "3lidi", + "lif3er", + "l4iff", + "li4fl", + "5ligate", + "3ligh", + "li4gra", + "3lik", + "4l4i4l", + "lim4bl", + "lim3i", + "li4mo", + "l4im4p", + "l4ina", + "1l4ine", + "lin3ea", + "lin3i", + "link5er", + "li5og", + "4l4iq", + "lis4p", + "l1it", + "l2it.", + "5litica", + "l5i5tics", + "liv3er", + "l1iz", + "4lj", + "lka3", + "l3kal", + "lka4t", + "l1l", + "l4law", + "l2le", + "l5lea", + "l3lec", + "l3leg", + "l3lel", + "l3le4n", + "l3le4t", + "ll2i", + "l2lin4", + "l5lina", + "ll4o", + "lloqui5", + "ll5out", + "l5low", + "2lm", + "l5met", + "lm3ing", + "l4mod", + "lmon4", + "2l1n2", + "3lo.", + "lob5al", + "lo4ci", + "4lof", + "3logic", + "l5ogo", + "3logu", + "lom3er", + "5long", + "lon4i", + "l3o3niz", + "lood5", + "5lope.", + "lop3i", + "l3opm", + "lora4", + "lo4rato", + "lo5rie", + "lor5ou", + "5los.", + "los5et", + "5losophiz", + "5losophy", + "los4t", + "lo4ta", + "loun5d", + "2lout", + "4lov", + "2lp", + "lpa5b", + "l3pha", + "l5phi", + "lp5ing", + "l3pit", + "l4pl", + "l5pr", + "4l1r", + "2l1s2", + "l4sc", + "l2se", + "l4sie", + "4lt", + "lt5ag", + "ltane5", + "l1te", + "lten4", + "ltera4", + "lth3i", + "l5ties.", + "ltis4", + "l1tr", + "ltu2", + "ltur3a", + "lu5a", + "lu3br", + "luch4", + "lu3ci", + "lu3en", + "luf4", + "lu5id", + "lu4ma", + "5lumi", + "l5umn.", + "5lumnia", + "lu3o", + "luo3r", + "4lup", + "luss4", + "lus3te", + "1lut", + "l5ven", + "l5vet4", + "2l1w", + "1ly", + "4lya", + "4lyb", + "ly5me", + "ly3no", + "2lys4", + "l5yse", + "1ma", + "2mab", + "ma2ca", + "ma5chine", + "ma4cl", + "mag5in", + "5magn", + "2mah", + "maid5", + "4mald", + "ma3lig", + "ma5lin", + "mal4li", + "mal4ty", + "5mania", + "man5is", + "man3iz", + "4map", + "ma5rine.", + "ma5riz", + "mar4ly", + "mar3v", + "ma5sce", + "mas4e", + "mas1t", + "5mate", + "math3", + "ma3tis", + "4matiza", + "4m1b", + "mba4t5", + "m5bil", + "m4b3ing", + "mbi4v", + "4m5c", + "4me.", + "2med", + "4med.", + "5media", + "me3die", + "m5e5dy", + "me2g", + "mel5on", + "mel4t", + "me2m", + "mem1o3", + "1men", + "men4a", + "men5ac", + "men4de", + "4mene", + "men4i", + "mens4", + "mensu5", + "3ment", + "men4te", + "me5on", + "m5ersa", + "2mes", + "3mesti", + "me4ta", + "met3al", + "me1te", + "me5thi", + "m4etr", + "5metric", + "me5trie", + "me3try", + "me4v", + "4m1f", + "2mh", + "5mi.", + "mi3a", + "mid4a", + "mid4g", + "mig4", + "3milia", + "m5i5lie", + "m4ill", + "min4a", + "3mind", + "m5inee", + "m4ingl", + "min5gli", + "m5ingly", + "min4t", + "m4inu", + "miot4", + "m2is", + "mis4er.", + "mis5l", + "mis4ti", + "m5istry", + "4mith", + "m2iz", + "4mk", + "4m1l", + "m1m", + "mma5ry", + "4m1n", + "mn4a", + "m4nin", + "mn4o", + "1mo", + "4mocr", + "5mocratiz", + "mo2d1", + "mo4go", + "mois2", + "moi5se", + "4mok", + "mo5lest", + "mo3me", + "mon5et", + "mon5ge", + "moni3a", + "mon4ism", + "mon4ist", + "mo3niz", + "monol4", + "mo3ny.", + "mo2r", + "4mora.", + "mos2", + "mo5sey", + "mo3sp", + "moth3", + "m5ouf", + "3mous", + "mo2v", + "4m1p", + "mpara5", + "mpa5rab", + "mpar5i", + "m3pet", + "mphas4", + "m2pi", + "mpi4a", + "mp5ies", + "m4p1in", + "m5pir", + "mp5is", + "mpo3ri", + "mpos5ite", + "m4pous", + "mpov5", + "mp4tr", + "m2py", + "4m3r", + "4m1s2", + "m4sh", + "m5si", + "4mt", + "1mu", + "mula5r4", + "5mult", + "multi3", + "3mum", + "mun2", + "4mup", + "mu4u", + "4mw", + "1na", + "2n1a2b", + "n4abu", + "4nac.", + "na4ca", + "n5act", + "nag5er.", + "nak4", + "na4li", + "na5lia", + "4nalt", + "na5mit", + "n2an", + "nanci4", + "nan4it", + "nank4", + "nar3c", + "4nare", + "nar3i", + "nar4l", + "n5arm", + "n4as", + "nas4c", + "nas5ti", + "n2at", + "na3tal", + "nato5miz", + "n2au", + "nau3se", + "3naut", + "nav4e", + "4n1b4", + "ncar5", + "n4ces.", + "n3cha", + "n5cheo", + "n5chil", + "n3chis", + "nc1in", + "nc4it", + "ncour5a", + "n1cr", + "n1cu", + "n4dai", + "n5dan", + "n1de", + "nd5est.", + "ndi4b", + "n5d2if", + "n1dit", + "n3diz", + "n5duc", + "ndu4r", + "nd2we", + "2ne.", + "n3ear", + "ne2b", + "neb3u", + "ne2c", + "5neck", + "2ned", + "ne4gat", + "neg5ativ", + "5nege", + "ne4la", + "nel5iz", + "ne5mi", + "ne4mo", + "1nen", + "4nene", + "3neo", + "ne4po", + "ne2q", + "n1er", + "nera5b", + "n4erar", + "n2ere", + "n4er5i", + "ner4r", + "1nes", + "2nes.", + "4nesp", + "2nest", + "4nesw", + "3netic", + "ne4v", + "n5eve", + "ne4w", + "n3f", + "n4gab", + "n3gel", + "nge4n4e", + "n5gere", + "n3geri", + "ng5ha", + "n3gib", + "ng1in", + "n5git", + "n4gla", + "ngov4", + "ng5sh", + "n1gu", + "n4gum", + "n2gy", + "4n1h4", + "nha4", + "nhab3", + "nhe4", + "3n4ia", + "ni3an", + "ni4ap", + "ni3ba", + "ni4bl", + "ni4d", + "ni5di", + "ni4er", + "ni2fi", + "ni5ficat", + "n5igr", + "nik4", + "n1im", + "ni3miz", + "n1in", + "5nine.", + "nin4g", + "ni4o", + "5nis.", + "nis4ta", + "n2it", + "n4ith", + "3nitio", + "n3itor", + "ni3tr", + "n1j", + "4nk2", + "n5kero", + "n3ket", + "nk3in", + "n1kl", + "4n1l", + "n5m", + "nme4", + "nmet4", + "4n1n2", + "nne4", + "nni3al", + "nni4v", + "nob4l", + "no3ble", + "n5ocl", + "4n3o2d", + "3noe", + "4nog", + "noge4", + "nois5i", + "no5l4i", + "5nologis", + "3nomic", + "n5o5miz", + "no4mo", + "no3my", + "no4n", + "non4ag", + "non5i", + "n5oniz", + "4nop", + "5nop5o5li", + "nor5ab", + "no4rary", + "4nosc", + "nos4e", + "nos5t", + "no5ta", + "1nou", + "3noun", + "nov3el3", + "nowl3", + "n1p4", + "npi4", + "npre4c", + "n1q", + "n1r", + "nru4", + "2n1s2", + "ns5ab", + "nsati4", + "ns4c", + "n2se", + "n4s3es", + "nsid1", + "nsig4", + "n2sl", + "ns3m", + "n4soc", + "ns4pe", + "n5spi", + "nsta5bl", + "n1t", + "nta4b", + "nter3s", + "nt2i", + "n5tib", + "nti4er", + "nti2f", + "n3tine", + "n4t3ing", + "nti4p", + "ntrol5li", + "nt4s", + "ntu3me", + "nu1a", + "nu4d", + "nu5en", + "nuf4fe", + "n3uin", + "3nu3it", + "n4um", + "nu1me", + "n5umi", + "3nu4n", + "n3uo", + "nu3tr", + "n1v2", + "n1w4", + "nym4", + "nyp4", + "4nz", + "n3za", + "4oa", + "oad3", + "o5a5les", + "oard3", + "oas4e", + "oast5e", + "oat5i", + "ob3a3b", + "o5bar", + "obe4l", + "o1bi", + "o2bin", + "ob5ing", + "o3br", + "ob3ul", + "o1ce", + "och4", + "o3chet", + "ocif3", + "o4cil", + "o4clam", + "o4cod", + "oc3rac", + "oc5ratiz", + "ocre3", + "5ocrit", + "octor5a", + "oc3ula", + "o5cure", + "od5ded", + "od3ic", + "odi3o", + "o2do4", + "odor3", + "od5uct.", + "od5ucts", + "o4el", + "o5eng", + "o3er", + "oe4ta", + "o3ev", + "o2fi", + "of5ite", + "ofit4t", + "o2g5a5r", + "og5ativ", + "o4gato", + "o1ge", + "o5gene", + "o5geo", + "o4ger", + "o3gie", + "1o1gis", + "og3it", + "o4gl", + "o5g2ly", + "3ogniz", + "o4gro", + "ogu5i", + "1ogy", + "2ogyn", + "o1h2", + "ohab5", + "oi2", + "oic3es", + "oi3der", + "oiff4", + "oig4", + "oi5let", + "o3ing", + "oint5er", + "o5ism", + "oi5son", + "oist5en", + "oi3ter", + "o5j", + "2ok", + "o3ken", + "ok5ie", + "o1la", + "o4lan", + "olass4", + "ol2d", + "old1e", + "ol3er", + "o3lesc", + "o3let", + "ol4fi", + "ol2i", + "o3lia", + "o3lice", + "ol5id.", + "o3li4f", + "o5lil", + "ol3ing", + "o5lio", + "o5lis.", + "ol3ish", + "o5lite", + "o5litio", + "o5liv", + "olli4e", + "ol5ogiz", + "olo4r", + "ol5pl", + "ol2t", + "ol3ub", + "ol3ume", + "ol3un", + "o5lus", + "ol2v", + "o2ly", + "om5ah", + "oma5l", + "om5atiz", + "om2be", + "om4bl", + "o2me", + "om3ena", + "om5erse", + "o4met", + "om5etry", + "o3mia", + "om3ic.", + "om3ica", + "o5mid", + "om1in", + "o5mini", + "5ommend", + "omo4ge", + "o4mon", + "om3pi", + "ompro5", + "o2n", + "on1a", + "on4ac", + "o3nan", + "on1c", + "3oncil", + "2ond", + "on5do", + "o3nen", + "on5est", + "on4gu", + "on1ic", + "o3nio", + "on1is", + "o5niu", + "on3key", + "on4odi", + "on3omy", + "on3s", + "onspi4", + "onspir5a", + "onsu4", + "onten4", + "on3t4i", + "ontif5", + "on5um", + "onva5", + "oo2", + "ood5e", + "ood5i", + "oo4k", + "oop3i", + "o3ord", + "oost5", + "o2pa", + "ope5d", + "op1er", + "3opera", + "4operag", + "2oph", + "o5phan", + "o5pher", + "op3ing", + "o3pit", + "o5pon", + "o4posi", + "o1pr", + "op1u", + "opy5", + "o1q", + "o1ra", + "o5ra.", + "o4r3ag", + "or5aliz", + "or5ange", + "ore5a", + "o5real", + "or3ei", + "ore5sh", + "or5est.", + "orew4", + "or4gu", + "4o5ria", + "or3ica", + "o5ril", + "or1in", + "o1rio", + "or3ity", + "o3riu", + "or2mi", + "orn2e", + "o5rof", + "or3oug", + "or5pe", + "3orrh", + "or4se", + "ors5en", + "orst4", + "or3thi", + "or3thy", + "or4ty", + "o5rum", + "o1ry", + "os3al", + "os2c", + "os4ce", + "o3scop", + "4oscopi", + "o5scr", + "os4i4e", + "os5itiv", + "os3ito", + "os3ity", + "osi4u", + "os4l", + "o2so", + "os4pa", + "os4po", + "os2ta", + "o5stati", + "os5til", + "os5tit", + "o4tan", + "otele4g", + "ot3er.", + "ot5ers", + "o4tes", + "4oth", + "oth5esi", + "oth3i4", + "ot3ic.", + "ot5ica", + "o3tice", + "o3tif", + "o3tis", + "oto5s", + "ou2", + "ou3bl", + "ouch5i", + "ou5et", + "ou4l", + "ounc5er", + "oun2d", + "ou5v", + "ov4en", + "over4ne", + "over3s", + "ov4ert", + "o3vis", + "oviti4", + "o5v4ol", + "ow3der", + "ow3el", + "ow5est", + "ow1i", + "own5i", + "o4wo", + "oy1a", + "1pa", + "pa4ca", + "pa4ce", + "pac4t", + "p4ad", + "5pagan", + "p3agat", + "p4ai", + "pain4", + "p4al", + "pan4a", + "pan3el", + "pan4ty", + "pa3ny", + "pa1p", + "pa4pu", + "para5bl", + "par5age", + "par5di", + "3pare", + "par5el", + "p4a4ri", + "par4is", + "pa2te", + "pa5ter", + "5pathic", + "pa5thy", + "pa4tric", + "pav4", + "3pay", + "4p1b", + "pd4", + "4pe.", + "3pe4a", + "pear4l", + "pe2c", + "2p2ed", + "3pede", + "3pedi", + "pedia4", + "ped4ic", + "p4ee", + "pee4d", + "pek4", + "pe4la", + "peli4e", + "pe4nan", + "p4enc", + "pen4th", + "pe5on", + "p4era.", + "pera5bl", + "p4erag", + "p4eri", + "peri5st", + "per4mal", + "perme5", + "p4ern", + "per3o", + "per3ti", + "pe5ru", + "per1v", + "pe2t", + "pe5ten", + "pe5tiz", + "4pf", + "4pg", + "4ph.", + "phar5i", + "phe3no", + "ph4er", + "ph4es.", + "ph1ic", + "5phie", + "ph5ing", + "5phisti", + "3phiz", + "ph2l", + "3phob", + "3phone", + "5phoni", + "pho4r", + "4phs", + "ph3t", + "5phu", + "1phy", + "pi3a", + "pian4", + "pi4cie", + "pi4cy", + "p4id", + "p5ida", + "pi3de", + "5pidi", + "3piec", + "pi3en", + "pi4grap", + "pi3lo", + "pi2n", + "p4in.", + "pind4", + "p4ino", + "3pi1o", + "pion4", + "p3ith", + "pi5tha", + "pi2tu", + "2p3k2", + "1p2l2", + "3plan", + "plas5t", + "pli3a", + "pli5er", + "4plig", + "pli4n", + "ploi4", + "plu4m", + "plum4b", + "4p1m", + "2p3n", + "po4c", + "5pod.", + "po5em", + "po3et5", + "5po4g", + "poin2", + "5point", + "poly5t", + "po4ni", + "po4p", + "1p4or", + "po4ry", + "1pos", + "pos1s", + "p4ot", + "po4ta", + "5poun", + "4p1p", + "ppa5ra", + "p2pe", + "p4ped", + "p5pel", + "p3pen", + "p3per", + "p3pet", + "ppo5site", + "pr2", + "pray4e", + "5preci", + "pre5co", + "pre3em", + "pref5ac", + "pre4la", + "pre3r", + "p3rese", + "3press", + "pre5ten", + "pre3v", + "5pri4e", + "prin4t3", + "pri4s", + "pris3o", + "p3roca", + "prof5it", + "pro3l", + "pros3e", + "pro1t", + "2p1s2", + "p2se", + "ps4h", + "p4sib", + "2p1t", + "pt5a4b", + "p2te", + "p2th", + "pti3m", + "ptu4r", + "p4tw", + "pub3", + "pue4", + "puf4", + "pul3c", + "pu4m", + "pu2n", + "pur4r", + "5pus", + "pu2t", + "5pute", + "put3er", + "pu3tr", + "put4ted", + "put4tin", + "p3w", + "qu2", + "qua5v", + "2que.", + "3quer", + "3quet", + "2rab", + "ra3bi", + "rach4e", + "r5acl", + "raf5fi", + "raf4t", + "r2ai", + "ra4lo", + "ram3et", + "r2ami", + "rane5o", + "ran4ge", + "r4ani", + "ra5no", + "rap3er", + "3raphy", + "rar5c", + "rare4", + "rar5ef", + "4raril", + "r2as", + "ration4", + "rau4t", + "ra5vai", + "rav3el", + "ra5zie", + "r1b", + "r4bab", + "r4bag", + "rbi2", + "rbi4f", + "r2bin", + "r5bine", + "rb5ing.", + "rb4o", + "r1c", + "r2ce", + "rcen4", + "r3cha", + "rch4er", + "r4ci4b", + "rc4it", + "rcum3", + "r4dal", + "rd2i", + "rdi4a", + "rdi4er", + "rdin4", + "rd3ing", + "2re.", + "re1al", + "re3an", + "re5arr", + "5reav", + "re4aw", + "r5ebrat", + "rec5oll", + "rec5ompe", + "re4cre", + "2r2ed", + "re1de", + "re3dis", + "red5it", + "re4fac", + "re2fe", + "re5fer.", + "re3fi", + "re4fy", + "reg3is", + "re5it", + "re1li", + "re5lu", + "r4en4ta", + "ren4te", + "re1o", + "re5pin", + "re4posi", + "re1pu", + "r1er4", + "r4eri", + "rero4", + "re5ru", + "r4es.", + "re4spi", + "ress5ib", + "res2t", + "re5stal", + "re3str", + "re4ter", + "re4ti4z", + "re3tri", + "reu2", + "re5uti", + "rev2", + "re4val", + "rev3el", + "r5ev5er.", + "re5vers", + "re5vert", + "re5vil", + "rev5olu", + "re4wh", + "r1f", + "rfu4", + "r4fy", + "rg2", + "rg3er", + "r3get", + "r3gic", + "rgi4n", + "rg3ing", + "r5gis", + "r5git", + "r1gl", + "rgo4n", + "r3gu", + "rh4", + "4rh.", + "4rhal", + "ri3a", + "ria4b", + "ri4ag", + "r4ib", + "rib3a", + "ric5as", + "r4ice", + "4rici", + "5ricid", + "ri4cie", + "r4ico", + "rid5er", + "ri3enc", + "ri3ent", + "ri1er", + "ri5et", + "rig5an", + "5rigi", + "ril3iz", + "5riman", + "rim5i", + "3rimo", + "rim4pe", + "r2ina", + "5rina.", + "rin4d", + "rin4e", + "rin4g", + "ri1o", + "5riph", + "riph5e", + "ri2pl", + "rip5lic", + "r4iq", + "r2is", + "r4is.", + "ris4c", + "r3ish", + "ris4p", + "ri3ta3b", + "r5ited.", + "rit5er.", + "rit5ers", + "rit3ic", + "ri2tu", + "rit5ur", + "riv5el", + "riv3et", + "riv3i", + "r3j", + "r3ket", + "rk4le", + "rk4lin", + "r1l", + "rle4", + "r2led", + "r4lig", + "r4lis", + "rl5ish", + "r3lo4", + "r1m", + "rma5c", + "r2me", + "r3men", + "rm5ers", + "rm3ing", + "r4ming.", + "r4mio", + "r3mit", + "r4my", + "r4nar", + "r3nel", + "r4ner", + "r5net", + "r3ney", + "r5nic", + "r1nis4", + "r3nit", + "r3niv", + "rno4", + "r4nou", + "r3nu", + "rob3l", + "r2oc", + "ro3cr", + "ro4e", + "ro1fe", + "ro5fil", + "rok2", + "ro5ker", + "5role.", + "rom5ete", + "rom4i", + "rom4p", + "ron4al", + "ron4e", + "ro5n4is", + "ron4ta", + "1room", + "5root", + "ro3pel", + "rop3ic", + "ror3i", + "ro5ro", + "ros5per", + "ros4s", + "ro4the", + "ro4ty", + "ro4va", + "rov5el", + "rox5", + "r1p", + "r4pea", + "r5pent", + "rp5er.", + "r3pet", + "rp4h4", + "rp3ing", + "r3po", + "r1r4", + "rre4c", + "rre4f", + "r4reo", + "rre4st", + "rri4o", + "rri4v", + "rron4", + "rros4", + "rrys4", + "4rs2", + "r1sa", + "rsa5ti", + "rs4c", + "r2se", + "r3sec", + "rse4cr", + "rs5er.", + "rs3es", + "rse5v2", + "r1sh", + "r5sha", + "r1si", + "r4si4b", + "rson3", + "r1sp", + "r5sw", + "rtach4", + "r4tag", + "r3teb", + "rten4d", + "rte5o", + "r1ti", + "rt5ib", + "rti4d", + "r4tier", + "r3tig", + "rtil3i", + "rtil4l", + "r4tily", + "r4tist", + "r4tiv", + "r3tri", + "rtroph4", + "rt4sh", + "ru3a", + "ru3e4l", + "ru3en", + "ru4gl", + "ru3in", + "rum3pl", + "ru2n", + "runk5", + "run4ty", + "r5usc", + "ruti5n", + "rv4e", + "rvel4i", + "r3ven", + "rv5er.", + "r5vest", + "r3vey", + "r3vic", + "rvi4v", + "r3vo", + "r1w", + "ry4c", + "5rynge", + "ry3t", + "sa2", + "2s1ab", + "5sack", + "sac3ri", + "s3act", + "5sai", + "salar4", + "sal4m", + "sa5lo", + "sal4t", + "3sanc", + "san4de", + "s1ap", + "sa5ta", + "5sa3tio", + "sat3u", + "sau4", + "sa5vor", + "5saw", + "4s5b", + "scan4t5", + "sca4p", + "scav5", + "s4ced", + "4scei", + "s4ces", + "sch2", + "s4cho", + "3s4cie", + "5scin4d", + "scle5", + "s4cli", + "scof4", + "4scopy", + "scour5a", + "s1cu", + "4s5d", + "4se.", + "se4a", + "seas4", + "sea5w", + "se2c3o", + "3sect", + "4s4ed", + "se4d4e", + "s5edl", + "se2g", + "seg3r", + "5sei", + "se1le", + "5self", + "5selv", + "4seme", + "se4mol", + "sen5at", + "4senc", + "sen4d", + "s5ened", + "sen5g", + "s5enin", + "4sentd", + "4sentl", + "sep3a3", + "4s1er.", + "s4erl", + "ser4o", + "4servo", + "s1e4s", + "se5sh", + "ses5t", + "5se5um", + "5sev", + "sev3en", + "sew4i", + "5sex", + "4s3f", + "2s3g", + "s2h", + "2sh.", + "sh1er", + "5shev", + "sh1in", + "sh3io", + "3ship", + "shiv5", + "sho4", + "sh5old", + "shon3", + "shor4", + "short5", + "4shw", + "si1b", + "s5icc", + "3side.", + "5sides", + "5sidi", + "si5diz", + "4signa", + "sil4e", + "4sily", + "2s1in", + "s2ina", + "5sine.", + "s3ing", + "1sio", + "5sion", + "sion5a", + "si2r", + "sir5a", + "1sis", + "3sitio", + "5siu", + "1siv", + "5siz", + "sk2", + "4ske", + "s3ket", + "sk5ine", + "sk5ing", + "s1l2", + "s3lat", + "s2le", + "slith5", + "2s1m", + "s3ma", + "small3", + "sman3", + "smel4", + "s5men", + "5smith", + "smol5d4", + "s1n4", + "1so", + "so4ce", + "soft3", + "so4lab", + "sol3d2", + "so3lic", + "5solv", + "3som", + "3s4on.", + "sona4", + "son4g", + "s4op", + "5sophic", + "s5ophiz", + "s5ophy", + "sor5c", + "sor5d", + "4sov", + "so5vi", + "2spa", + "5spai", + "spa4n", + "spen4d", + "2s5peo", + "2sper", + "s2phe", + "3spher", + "spho5", + "spil4", + "sp5ing", + "4spio", + "s4ply", + "s4pon", + "spor4", + "4spot", + "squal4l", + "s1r", + "2ss", + "s1sa", + "ssas3", + "s2s5c", + "s3sel", + "s5seng", + "s4ses.", + "s5set", + "s1si", + "s4sie", + "ssi4er", + "ss5ily", + "s4sl", + "ss4li", + "s4sn", + "sspend4", + "ss2t", + "ssur5a", + "ss5w", + "2st.", + "s2tag", + "s2tal", + "stam4i", + "5stand", + "s4ta4p", + "5stat.", + "s4ted", + "stern5i", + "s5tero", + "ste2w", + "stew5a", + "s3the", + "st2i", + "s4ti.", + "s5tia", + "s1tic", + "5stick", + "s4tie", + "s3tif", + "st3ing", + "5stir", + "s1tle", + "5stock", + "stom3a", + "5stone", + "s4top", + "3store", + "st4r", + "s4trad", + "5stratu", + "s4tray", + "s4trid", + "4stry", + "4st3w", + "s2ty", + "1su", + "su1al", + "su4b3", + "su2g3", + "su5is", + "suit3", + "s4ul", + "su2m", + "sum3i", + "su2n", + "su2r", + "4sv", + "sw2", + "4swo", + "s4y", + "4syc", + "3syl", + "syn5o", + "sy5rin", + "1ta", + "3ta.", + "2tab", + "ta5bles", + "5taboliz", + "4taci", + "ta5do", + "4taf4", + "tai5lo", + "ta2l", + "ta5la", + "tal5en", + "tal3i", + "4talk", + "tal4lis", + "ta5log", + "ta5mo", + "tan4de", + "tanta3", + "ta5per", + "ta5pl", + "tar4a", + "4tarc", + "4tare", + "ta3riz", + "tas4e", + "ta5sy", + "4tatic", + "ta4tur", + "taun4", + "tav4", + "2taw", + "tax4is", + "2t1b", + "4tc", + "t4ch", + "tch5et", + "4t1d", + "4te.", + "tead4i", + "4teat", + "tece4", + "5tect", + "2t1ed", + "te5di", + "1tee", + "teg4", + "te5ger", + "te5gi", + "3tel.", + "teli4", + "5tels", + "te2ma2", + "tem3at", + "3tenan", + "3tenc", + "3tend", + "4tenes", + "1tent", + "ten4tag", + "1teo", + "te4p", + "te5pe", + "ter3c", + "5ter3d", + "1teri", + "ter5ies", + "ter3is", + "teri5za", + "5ternit", + "ter5v", + "4tes.", + "4tess", + "t3ess.", + "teth5e", + "3teu", + "3tex", + "4tey", + "2t1f", + "4t1g", + "2th.", + "than4", + "th2e", + "4thea", + "th3eas", + "the5at", + "the3is", + "3thet", + "th5ic.", + "th5ica", + "4thil", + "5think", + "4thl", + "th5ode", + "5thodic", + "4thoo", + "thor5it", + "tho5riz", + "2ths", + "1tia", + "ti4ab", + "ti4ato", + "2ti2b", + "4tick", + "t4ico", + "t4ic1u", + "5tidi", + "3tien", + "tif2", + "ti5fy", + "2tig", + "5tigu", + "till5in", + "1tim", + "4timp", + "tim5ul", + "2t1in", + "t2ina", + "3tine.", + "3tini", + "1tio", + "ti5oc", + "tion5ee", + "5tiq", + "ti3sa", + "3tise", + "tis4m", + "ti5so", + "tis4p", + "5tistica", + "ti3tl", + "ti4u", + "1tiv", + "tiv4a", + "1tiz", + "ti3za", + "ti3zen", + "2tl", + "t5la", + "tlan4", + "3tle.", + "3tled", + "3tles.", + "t5let.", + "t5lo", + "4t1m", + "tme4", + "2t1n2", + "1to", + "to3b", + "to5crat", + "4todo", + "2tof", + "to2gr", + "to5ic", + "to2ma", + "tom4b", + "to3my", + "ton4ali", + "to3nat", + "4tono", + "4tony", + "to2ra", + "to3rie", + "tor5iz", + "tos2", + "5tour", + "4tout", + "to3war", + "4t1p", + "1tra", + "tra3b", + "tra5ch", + "traci4", + "trac4it", + "trac4te", + "tras4", + "tra5ven", + "trav5es5", + "tre5f", + "tre4m", + "trem5i", + "5tria", + "tri5ces", + "5tricia", + "4trics", + "2trim", + "tri4v", + "tro5mi", + "tron5i", + "4trony", + "tro5phe", + "tro3sp", + "tro3v", + "tru5i", + "trus4", + "4t1s2", + "t4sc", + "tsh4", + "t4sw", + "4t3t2", + "t4tes", + "t5to", + "ttu4", + "1tu", + "tu1a", + "tu3ar", + "tu4bi", + "tud2", + "4tue", + "4tuf4", + "5tu3i", + "3tum", + "tu4nis", + "2t3up.", + "3ture", + "5turi", + "tur3is", + "tur5o", + "tu5ry", + "3tus", + "4tv", + "tw4", + "4t1wa", + "twis4", + "4two", + "1ty", + "4tya", + "2tyl", + "type3", + "ty5ph", + "4tz", + "tz4e", + "4uab", + "uac4", + "ua5na", + "uan4i", + "uar5ant", + "uar2d", + "uar3i", + "uar3t", + "u1at", + "uav4", + "ub4e", + "u4bel", + "u3ber", + "u4bero", + "u1b4i", + "u4b5ing", + "u3ble.", + "u3ca", + "uci4b", + "uc4it", + "ucle3", + "u3cr", + "u3cu", + "u4cy", + "ud5d", + "ud3er", + "ud5est", + "udev4", + "u1dic", + "ud3ied", + "ud3ies", + "ud5is", + "u5dit", + "u4don", + "ud4si", + "u4du", + "u4ene", + "uens4", + "uen4te", + "uer4il", + "3ufa", + "u3fl", + "ugh3en", + "ug5in", + "2ui2", + "uil5iz", + "ui4n", + "u1ing", + "uir4m", + "uita4", + "uiv3", + "uiv4er.", + "u5j", + "4uk", + "u1la", + "ula5b", + "u5lati", + "ulch4", + "5ulche", + "ul3der", + "ul4e", + "u1len", + "ul4gi", + "ul2i", + "u5lia", + "ul3ing", + "ul5ish", + "ul4lar", + "ul4li4b", + "ul4lis", + "4ul3m", + "u1l4o", + "4uls", + "uls5es", + "ul1ti", + "ultra3", + "4ultu", + "u3lu", + "ul5ul", + "ul5v", + "um5ab", + "um4bi", + "um4bly", + "u1mi", + "u4m3ing", + "umor5o", + "um2p", + "unat4", + "u2ne", + "un4er", + "u1ni", + "un4im", + "u2nin", + "un5ish", + "uni3v", + "un3s4", + "un4sw", + "unt3ab", + "un4ter.", + "un4tes", + "unu4", + "un5y", + "un5z", + "u4ors", + "u5os", + "u1ou", + "u1pe", + "uper5s", + "u5pia", + "up3ing", + "u3pl", + "up3p", + "upport5", + "upt5ib", + "uptu4", + "u1ra", + "4ura.", + "u4rag", + "u4ras", + "ur4be", + "urc4", + "ur1d", + "ure5at", + "ur4fer", + "ur4fr", + "u3rif", + "uri4fic", + "ur1in", + "u3rio", + "u1rit", + "ur3iz", + "ur2l", + "url5ing.", + "ur4no", + "uros4", + "ur4pe", + "ur4pi", + "urs5er", + "ur5tes", + "ur3the", + "urti4", + "ur4tie", + "u3ru", + "2us", + "u5sad", + "u5san", + "us4ap", + "usc2", + "us3ci", + "use5a", + "u5sia", + "u3sic", + "us4lin", + "us1p", + "us5sl", + "us5tere", + "us1tr", + "u2su", + "usur4", + "uta4b", + "u3tat", + "4ute.", + "4utel", + "4uten", + "uten4i", + "4u1t2i", + "uti5liz", + "u3tine", + "ut3ing", + "ution5a", + "u4tis", + "5u5tiz", + "u4t1l", + "ut5of", + "uto5g", + "uto5matic", + "u5ton", + "u4tou", + "uts4", + "u3u", + "uu4m", + "u1v2", + "uxu3", + "uz4e", + "1va", + "5va.", + "2v1a4b", + "vac5il", + "vac3u", + "vag4", + "va4ge", + "va5lie", + "val5o", + "val1u", + "va5mo", + "va5niz", + "va5pi", + "var5ied", + "3vat", + "4ve.", + "4ved", + "veg3", + "v3el.", + "vel3li", + "ve4lo", + "v4ely", + "ven3om", + "v5enue", + "v4erd", + "5vere.", + "v4erel", + "v3eren", + "ver5enc", + "v4eres", + "ver3ie", + "vermi4n", + "3verse", + "ver3th", + "v4e2s", + "4ves.", + "ves4te", + "ve4te", + "vet3er", + "ve4ty", + "vi5ali", + "5vian", + "5vide.", + "5vided", + "4v3iden", + "5vides", + "5vidi", + "v3if", + "vi5gn", + "vik4", + "2vil", + "5vilit", + "v3i3liz", + "v1in", + "4vi4na", + "v2inc", + "vin5d", + "4ving", + "vio3l", + "v3io4r", + "vi1ou", + "vi4p", + "vi5ro", + "vis3it", + "vi3so", + "vi3su", + "4viti", + "vit3r", + "4vity", + "3viv", + "5vo.", + "voi4", + "3vok", + "vo4la", + "v5ole", + "5volt", + "3volv", + "vom5i", + "vor5ab", + "vori4", + "vo4ry", + "vo4ta", + "4votee", + "4vv4", + "v4y", + "w5abl", + "2wac", + "wa5ger", + "wag5o", + "wait5", + "w5al.", + "wam4", + "war4t", + "was4t", + "wa1te", + "wa5ver", + "w1b", + "wea5rie", + "weath3", + "wed4n", + "weet3", + "wee5v", + "wel4l", + "w1er", + "west3", + "w3ev", + "whi4", + "wi2", + "wil2", + "will5in", + "win4de", + "win4g", + "wir4", + "3wise", + "with3", + "wiz5", + "w4k", + "wl4es", + "wl3in", + "w4no", + "1wo2", + "wom1", + "wo5ven", + "w5p", + "wra4", + "wri4", + "writa4", + "w3sh", + "ws4l", + "ws4pe", + "w5s4t", + "4wt", + "wy4", + "x1a", + "xac5e", + "x4ago", + "xam3", + "x4ap", + "xas5", + "x3c2", + "x1e", + "xe4cuto", + "x2ed", + "xer4i", + "xe5ro", + "x1h", + "xhi2", + "xhil5", + "xhu4", + "x3i", + "xi5a", + "xi5c", + "xi5di", + "x4ime", + "xi5miz", + "x3o", + "x4ob", + "x3p", + "xpan4d", + "xpecto5", + "xpe3d", + "x1t2", + "x3ti", + "x1u", + "xu3a", + "xx4", + "y5ac", + "3yar4", + "y5at", + "y1b", + "y1c", + "y2ce", + "yc5er", + "y3ch", + "ych4e", + "ycom4", + "ycot4", + "y1d", + "y5ee", + "y1er", + "y4erf", + "yes4", + "ye4t", + "y5gi", + "4y3h", + "y1i", + "y3la", + "ylla5bl", + "y3lo", + "y5lu", + "ymbol5", + "yme4", + "ympa3", + "yn3chr", + "yn5d", + "yn5g", + "yn5ic", + "5ynx", + "y1o4", + "yo5d", + "y4o5g", + "yom4", + "yo5net", + "y4ons", + "y4os", + "y4ped", + "yper5", + "yp3i", + "y3po", + "y4poc", + "yp2ta", + "y5pu", + "yra5m", + "yr5ia", + "y3ro", + "yr4r", + "ys4c", + "y3s2e", + "ys3ica", + "ys3io", + "3ysis", + "y4so", + "yss4", + "ys1t", + "ys3ta", + "ysur4", + "y3thin", + "yt3ic", + "y1w", + "za1", + "z5a2b", + "zar2", + "4zb", + "2ze", + "ze4n", + "ze4p", + "z1er", + "ze3ro", + "zet4", + "2z1i", + "z4il", + "z4is", + "5zl", + "4zm", + "1zo", + "zo4m", + "zo5ol", + "zte4", + "4z1z2", + "z4zy", + ".con5gr", + ".de5riva", + ".dri5v4", + ".eth1y6l1", + ".eu4ler", + ".ev2", + ".ever5si5b", + ".ga4s1om1", + ".ge4ome", + ".ge5ot1", + ".he3mo1", + ".he3p6a", + ".he3roe", + ".in5u2t", + ".kil2n3i", + ".ko6r1te1", + ".le6ices", + ".me4ga1l", + ".met4ala", + ".mim5i2c1", + ".mi1s4ers", + ".ne6o3f", + ".noe1th", + ".non1e2m", + ".poly1s", + ".post1am", + ".pre1am", + ".rav5en1o", + ".semi5", + ".sem4ic", + ".semid6", + ".semip4", + ".semir4", + ".sem6is4", + ".semiv4", + ".sph6in1", + ".spin1o", + ".ta5pes1tr", + ".te3legr", + ".to6pog", + ".to2q", + ".un3at5t", + ".un5err5", + ".vi2c3ar", + ".we2b1l", + ".re1e4c", + "a5bolic", + "a2cabl", + "af6fish", + "am1en3ta5b", + "anal6ys", + "ano5a2c", + "ans5gr", + "ans3v", + "anti1d", + "an3ti1n2", + "anti1re", + "a4pe5able", + "ar3che5t", + "ar2range", + "as5ymptot", + "ath3er1o1s", + "at6tes.", + "augh4tl", + "au5li5f", + "av3iou", + "back2er.", + "ba6r1onie", + "ba1thy", + "bbi4t", + "be2vie", + "bi5d2if", + "bil2lab", + "bio5m", + "bi1orb", + "bio1rh", + "b1i3tive", + "blan2d1", + "blin2d1", + "blon2d2", + "bor1no5", + "bo2t1u1l", + "brus4q", + "bus6i2er", + "bus6i2es", + "buss4ing", + "but2ed.", + "but4ted", + "cad5e1m", + "cat1a1s2", + "4chs.", + "chs3hu", + "chie5vo", + "cig3a3r", + "cin2q", + "cle4ar", + "co6ph1o3n", + "cous2ti", + "cri3tie", + "croc1o1d", + "cro5e2co", + "c2tro3me6c", + "1cu2r1ance", + "2d3alone", + "data1b", + "dd5a5b", + "d2d5ib", + "de4als.", + "de5clar1", + "de2c5lina", + "de3fin3iti", + "de2mos", + "des3ic", + "de2tic", + "dic1aid", + "dif5fra", + "3di1methy", + "di2ren", + "di2rer", + "2d1lead", + "2d1li2e", + "3do5word", + "dren1a5l", + "drif2t1a", + "d1ri3pleg5", + "drom3e5d", + "d3tab", + "du2al.", + "du1op1o1l", + "ea4n3ies", + "e3chas", + "edg1l", + "ed1uling", + "eli2t1is", + "e1loa", + "en1dix", + "eo3grap", + "1e6p3i3neph1", + "e2r3i4an.", + "e3spac6i", + "eth1y6l1ene", + "5eu2clid1", + "feb1rua", + "fermi1o", + "3fich", + "fit5ted.", + "fla1g6el", + "flow2er.", + "3fluor", + "gen2cy.", + "ge3o1d", + "ght1we", + "g1lead", + "get2ic.", + "4g1lish", + "5glo5bin", + "1g2nac", + "gnet1ism", + "gno5mo", + "g2n1or.", + "g2noresp", + "2g1o4n3i1za", + "graph5er.", + "griev1", + "g1utan", + "hair1s", + "ha2p3ar5r", + "hatch1", + "hex2a3", + "hite3sid", + "h3i5pel1a4", + "hnau3z", + "ho6r1ic.", + "h2t1eou", + "hypo1tha", + "id4ios", + "ifac1et", + "ign4it", + "ignit1er", + "i4jk", + "im3ped3a", + "infra1s2", + "i5nitely.", + "irre6v3oc", + "i1tesima", + "ith5i2l", + "itin5er5ar", + "janu3a", + "japan1e2s", + "je1re1m", + "1ke6ling", + "1ki5netic", + "1kovian", + "k3sha", + "la4c3i5e", + "lai6n3ess", + "lar5ce1n", + "l3chai", + "l3chil6d1", + "lead6er.", + "lea4s1a", + "1lec3ta6b", + "le3g6en2dre", + "1le1noid", + "lith1o5g", + "ll1fl", + "l2l3ish", + "l5mo3nell", + "lo1bot1o1", + "lo2ges.", + "load4ed.", + "load6er.", + "l3tea", + "lth5i2ly", + "lue1p", + "1lunk3er", + "1lum5bia.", + "3lyg1a1mi", + "ly5styr", + "ma1la1p", + "m2an.", + "man3u1sc", + "mar1gin1", + "medi2c", + "med3i3cin", + "medio6c1", + "me3gran3", + "m2en.", + "3mi3da5b", + "3milita", + "mil2l1ag", + "mil5li5li", + "mi6n3is.", + "mi1n2ut1er", + "mi1n2ut1est", + "m3ma1b", + "5maph1ro1", + "5moc1ra1t", + "mo5e2las", + "mol1e5c", + "mon4ey1l", + "mono3ch", + "mo4no1en", + "moro6n5is", + "mono1s6", + "moth4et2", + "m1ou3sin", + "m5shack2", + "mu2dro", + "mul2ti5u", + "n3ar4chs.", + "n3ch2es1t", + "ne3back", + "2ne1ski", + "n1dieck", + "nd3thr", + "nfi6n3ites", + "4n5i4an.", + "nge5nes", + "ng1ho", + "ng1spr", + "nk3rup", + "n5less", + "5noc3er1os", + "nom1a6l", + "nom5e1no", + "n1o1mist", + "non1eq", + "non1i4so", + "5nop1oly.", + "no1vemb", + "ns5ceiv", + "ns4moo", + "ntre1p", + "obli2g1", + "o3chas", + "odel3li", + "odit1ic", + "oerst2", + "oke1st", + "o3les3ter", + "oli3gop1o1", + "o1lo3n4om", + "o3mecha6", + "onom1ic", + "o3norma", + "o3no2t1o3n", + "o3nou", + "op1ism.", + "or4tho3ni4t", + "orth1ri", + "or5tively", + "o4s3pher", + "o5test1er", + "o5tes3tor", + "oth3e1o1s", + "ou3ba3do", + "o6v3i4an.", + "oxi6d1ic", + "pal6mat", + "parag6ra4", + "par4a1le", + "param4", + "para3me", + "pee2v1", + "phi2l3ant", + "phi5lat1e3l", + "pi2c1a3d", + "pli2c1ab", + "pli5nar", + "poin3ca", + "1pole.", + "poly1e", + "po3lyph1ono", + "1prema3c", + "pre1neu", + "pres2pli", + "pro2cess", + "proc3i3ty.", + "pro2g1e", + "3pseu2d", + "pseu3d6o3d2", + "pseu3d6o3f2", + "pto3mat4", + "p5trol3", + "pu5bes5c", + "quain2t1e", + "qu6a3si3", + "quasir6", + "quasis6", + "quin5tes5s", + "qui3v4ar", + "r1abolic", + "3rab1o1loi", + "ra3chu", + "r3a3dig", + "radi1o6g", + "r2amen", + "3ra4m5e1triz", + "ra3mou", + "ra5n2has", + "ra1or", + "r3bin1ge", + "re2c3i1pr", + "rec5t6ang", + "re4t1ribu", + "r3ial.", + "riv1o1l", + "6rk.", + "rk1ho", + "r1krau", + "6rks.", + "r5le5qu", + "ro1bot1", + "ro5e2las", + "ro5epide1", + "ro3mesh", + "ro1tron", + "r3pau5li", + "rse1rad1i", + "r1thou", + "r1treu", + "r1veil", + "rz1sc", + "sales3c", + "sales5w", + "5sa3par5il", + "sca6p1er", + "sca2t1ol", + "s4chitz", + "schro1ding1", + "1sci2utt", + "scrap4er.", + "scy4th1", + "sem1a1ph", + "se3mes1t", + "se1mi6t5ic", + "sep3temb", + "shoe1st", + "sid2ed.", + "side5st", + "side5sw", + "si5resid", + "sky1sc", + "3slova1kia", + "3s2og1a1my", + "so2lute", + "3s2pace", + "1s2pacin", + "spe3cio", + "spher1o", + "spi2c1il", + "spokes5w", + "sports3c", + "sports3w", + "s3qui3to", + "s2s1a3chu1", + "ss3hat", + "s2s3i4an.", + "s5sign5a3b", + "1s2tamp", + "s2t1ant5shi", + "star3tli", + "sta1ti", + "st5b", + "1stor1ab", + "strat1a1g", + "strib5ut", + "st5scr", + "stu1pi4d1", + "styl1is", + "su2per1e6", + "1sync", + "1syth3i2", + "swimm6", + "5tab1o1lism", + "ta3gon.", + "talk1a5", + "t1a1min", + "t6ap6ath", + "5tar2rh", + "tch1c", + "tch3i1er", + "t1cr", + "teach4er.", + "tele2g", + "tele1r6o", + "3ter1gei", + "ter2ic.", + "t3ess2es", + "tha4l1am", + "tho3don", + "th1o5gen1i", + "tho1k2er", + "thy4l1an", + "thy3sc", + "2t3i4an.", + "ti2n3o1m", + "t1li2er", + "tolo2gy", + "tot3ic", + "trai3tor1", + "tra1vers", + "travers3a3b", + "treach1e", + "tr4ial.", + "3tro1le1um", + "trof4ic.", + "tro3fit", + "tro1p2is", + "3trop1o5les", + "3trop1o5lis", + "t1ro1pol3it", + "tsch3ie", + "ttrib1ut1", + "turn3ar", + "t1wh", + "ty2p5al", + "ua3drati", + "uad1ratu", + "u5do3ny", + "uea1m", + "u2r1al.", + "uri4al.", + "us2er.", + "v1ativ", + "v1oir5du1", + "va6guer", + "vaude3v", + "1verely.", + "v1er1eig", + "ves1tite", + "vi1vip3a3r", + "voice1p", + "waste3w6a2", + "wave1g4", + "w3c", + "week1n", + "wide5sp", + "wo4k1en", + "wrap3aro", + "writ6er.", + "x1q", + "xquis3", + "y5che3d", + "ym5e5try", + "y1stro", + "yes5ter1y", + "z3ian.", + "z3o1phr", + "z2z3w" + ], + "exceptions":[ + "as-so-ciate", + "as-so-ciates", + "dec-li-na-tion", + "oblig-a-tory", + "phil-an-thropic", + "present", + "presents", + "project", + "projects", + "reci-procity", + "re-cog-ni-zance", + "ref-or-ma-tion", + "ret-ri-bu-tion", + "ta-ble" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/es.json b/borb/pdf/canvas/layout/hyphenation/resources/es.json new file mode 100644 index 000000000..516b9f729 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/es.json @@ -0,0 +1,3594 @@ +{ + "patterns": [ + "1b", + "4b.", + ".b2", + "2bb", + "2bc", + "2bd", + "2bf", + "2bg", + "2b1h", + "2bj", + "2bk", + "2bm", + "2bn", + "2bp", + "2bq", + "2bs", + "2bt", + "2bv", + "2bw", + "2bx", + "2by", + "2bz", + "1c", + "4c.", + ".c2", + "2cb", + "2cc", + "2cd", + "2cf", + "2cg", + "2cj", + "2ck", + "2cm", + "2cn", + "2cp", + "2cq", + "2cs", + "2ct", + "2cv", + "2cw", + "2cx", + "2cy", + "2cz", + "1d", + "4d.", + ".d2", + "2db", + "2dc", + "2dd", + "2df", + "2dg", + "2d1h", + "2dj", + "2dk", + "2dl", + "2dm", + "2dn", + "2dp", + "2dq", + "2ds", + "2dt", + "2dv", + "2dw", + "2dx", + "2dy", + "2dz", + "1f", + "4f.", + ".f2", + "2fb", + "2fc", + "2fd", + "2ff", + "2fg", + "2f1h", + "2fj", + "2fk", + "2fm", + "2fn", + "2fp", + "2fq", + "2fs", + "2ft", + "2fv", + "2fw", + "2fx", + "2fy", + "2fz", + "1g", + "4g.", + ".g2", + "2gb", + "2gc", + "2gd", + "2gf", + "2gg", + "2g1h", + "2gj", + "2gk", + "2gm", + "2gn", + "2gp", + "2gq", + "2gs", + "2gt", + "2gv", + "2gw", + "2gx", + "2gy", + "2gz", + "4h.", + "2hb", + "2hc", + "2hd", + "2hf", + "2hg", + "2h1h", + "2hj", + "2hk", + "2hl", + "2hm", + "2hn", + "2hp", + "2hq", + "2hr", + "2hs", + "2ht", + "2hv", + "2hw", + "2hx", + "2hy", + "2hz", + "1j", + "4j.", + ".j2", + "2jb", + "2jc", + "2jd", + "2jf", + "2jg", + "2j1h", + "2jj", + "2jk", + "2jl", + "2jm", + "2jn", + "2jp", + "2jq", + "2jr", + "2js", + "2jt", + "2jv", + "2jw", + "2jx", + "2jy", + "2jz", + "1k", + "4k.", + ".k2", + "2kb", + "2kc", + "2kd", + "2kf", + "2kg", + "2k1h", + "2kj", + "2kk", + "2km", + "2kn", + "2kp", + "2kq", + "2ks", + "2kt", + "2kv", + "2kw", + "2kx", + "2ky", + "2kz", + "1l", + "4l.", + ".l2", + "2lb", + "2lc", + "2ld", + "2lf", + "2lg", + "2l1h", + "2lj", + "2lk", + "2lm", + "2ln", + "2lp", + "2lq", + "2lr", + "2ls", + "2lt", + "2lv", + "2lw", + "2lx", + "2ly", + "2lz", + "1m", + "4m.", + ".m2", + "2mb", + "2mc", + "2md", + "2mf", + "2mg", + "2m1h", + "2mj", + "2mk", + "2ml", + "2mm", + "2mn", + "2mp", + "2mq", + "2mr", + "2ms", + "2mt", + "2mv", + "2mw", + "2mx", + "2my", + "2mz", + "1n", + "4n.", + ".n2", + "2nb", + "2nc", + "2nd", + "2nf", + "2ng", + "2n1h", + "2nj", + "2nk", + "2nl", + "2nm", + "2nn", + "2np", + "2nq", + "2nr", + "2ns", + "2nt", + "2nv", + "2nw", + "2nx", + "2ny", + "2nz", + "1p", + "4p.", + ".p2", + "2pb", + "2pc", + "2pd", + "2pf", + "2pg", + "2p1h", + "2pj", + "2pk", + "2pm", + "2pn", + "2pp", + "2pq", + "2ps", + "2pt", + "2pv", + "2pw", + "2px", + "2py", + "2pz", + "1q", + "4q.", + ".q2", + "2qb", + "2qc", + "2qd", + "2qf", + "2qg", + "2q1h", + "2qj", + "2qk", + "2ql", + "2qm", + "2qn", + "2qp", + "2qq", + "2qr", + "2qs", + "2qt", + "2qv", + "2qw", + "2qx", + "2qy", + "2qz", + "1r", + "4r.", + ".r2", + "2rb", + "2rc", + "2rd", + "2rf", + "2rg", + "2r1h", + "2rj", + "2rk", + "2rl", + "2rm", + "2rn", + "2rp", + "2rq", + "2rs", + "2rt", + "2rv", + "2rw", + "2rx", + "2ry", + "2rz", + "1s", + "4s.", + ".s2", + "2sb", + "2sc", + "2sd", + "2sf", + "2sg", + "2s1h", + "2sj", + "2sk", + "2sl", + "2sm", + "2sn", + "2sp", + "2sq", + "2sr", + "2ss", + "2st", + "2sv", + "2sw", + "2sx", + "2sy", + "2sz", + "1t", + "4t.", + ".t2", + "2tb", + "2tc", + "2td", + "2tf", + "2tg", + "2t1h", + "2tj", + "2tk", + "2tm", + "2tn", + "2tp", + "2tq", + "2tt", + "2tv", + "2tw", + "2ty", + "1v", + "4v.", + ".v2", + "2vb", + "2vc", + "2vd", + "2vf", + "2vg", + "2v1h", + "2vj", + "2vk", + "2vm", + "2vn", + "2vp", + "2vq", + "2vs", + "2vt", + "2vv", + "2vw", + "2vx", + "2vy", + "2vz", + "1w", + "4w.", + ".w2", + "2wb", + "2wc", + "2wd", + "2wf", + "2wg", + "2w1h", + "2wj", + "2wk", + "2wl", + "2wm", + "2wn", + "2wp", + "2wq", + "2wr", + "2ws", + "2wt", + "2wv", + "2ww", + "2wx", + "2wy", + "2wz", + "1x", + "4x.", + ".x2", + "2xb", + "2xc", + "2xd", + "2xf", + "2xg", + "2x1h", + "2xj", + "2xk", + "2xl", + "2xm", + "2xn", + "2xp", + "2xq", + "2xr", + "2xs", + "2xt", + "2xv", + "2xw", + "2xx", + "2xy", + "2xz", + "1y", + "4y.", + ".y2", + "2yb", + "2yc", + "2yd", + "2yf", + "2yg", + "2y1h", + "2yj", + "2yk", + "2yl", + "2ym", + "2yn", + "2yp", + "2yq", + "2yr", + "2ys", + "2yt", + "2yv", + "2yw", + "2yx", + "2yy", + "2yz", + "1z", + "4z.", + ".z2", + "2zb", + "2zc", + "2zd", + "2zf", + "2zg", + "2z1h", + "2zj", + "2zk", + "2zl", + "2zm", + "2zn", + "2zp", + "2zq", + "2zr", + "2zs", + "2zt", + "2zv", + "2zw", + "2zx", + "2zy", + "2zz", + "1ñ", + "4ñ.", + "c4h", + "4ch.", + "2chb", + "2chc", + "2chd", + "2chf", + "2chg", + "2chh", + "2chj", + "2chk", + "ch2l", + "2chm", + "2chn", + "2chp", + "2chq", + "ch2r", + "2chs", + "2cht", + "2chv", + "2chw", + "2chx", + "2chy", + "2chz", + "l4l", + "4ll.", + "2llb", + "2llc", + "2lld", + "2llf", + "2llg", + "2llh", + "2llj", + "2llk", + "2lll", + "2llm", + "2lln", + "2llp", + "2llq", + "2llr", + "2lls", + "2llt", + "2llv", + "2llw", + "2llx", + "2lly", + "2llz", + "b2l", + "4bl.", + "2bl2b", + "2bl2c", + "2bl2d", + "2bl2f", + "2bl2g", + "2bl2h", + "2bl2j", + "2bl2k", + "2bl2l", + "2bl2m", + "2bl2n", + "2bl2p", + "2bl2q", + "2bl2r", + "2bl2s", + "2bl2t", + "2bl2v", + "2bl2w", + "2bl2x", + "2bl2y", + "2bl2z", + "c2l", + "4cl.", + "2cl2b", + "2cl2c", + "2cl2d", + "2cl2f", + "2cl2g", + "2cl2h", + "2cl2j", + "2cl2k", + "2cl2l", + "2cl2m", + "2cl2n", + "2cl2p", + "2cl2q", + "2cl2r", + "2cl2s", + "2cl2t", + "2cl2v", + "2cl2w", + "2cl2x", + "2cl2y", + "2cl2z", + "f2l", + "4fl.", + "2fl2b", + "2fl2c", + "2fl2d", + "2fl2f", + "2fl2g", + "2fl2h", + "2fl2j", + "2fl2k", + "2fl2l", + "2fl2m", + "2fl2n", + "2fl2p", + "2fl2q", + "2fl2r", + "2fl2s", + "2fl2t", + "2fl2v", + "2fl2w", + "2fl2x", + "2fl2y", + "2fl2z", + "g2l", + "4gl.", + "2gl2b", + "2gl2c", + "2gl2d", + "2gl2f", + "2gl2g", + "2gl2h", + "2gl2j", + "2gl2k", + "2gl2l", + "2gl2m", + "2gl2n", + "2gl2p", + "2gl2q", + "2gl2r", + "2gl2s", + "2gl2t", + "2gl2v", + "2gl2w", + "2gl2x", + "2gl2y", + "2gl2z", + "k2l", + "4kl.", + "2kl2b", + "2kl2c", + "2kl2d", + "2kl2f", + "2kl2g", + "2kl2h", + "2kl2j", + "2kl2k", + "2kl2l", + "2kl2m", + "2kl2n", + "2kl2p", + "2kl2q", + "2kl2r", + "2kl2s", + "2kl2t", + "2kl2v", + "2kl2w", + "2kl2x", + "2kl2y", + "2kl2z", + "p2l", + "4pl.", + "2pl2b", + "2pl2c", + "2pl2d", + "2pl2f", + "2pl2g", + "2pl2h", + "2pl2j", + "2pl2k", + "2pl2l", + "2pl2m", + "2pl2n", + "2pl2p", + "2pl2q", + "2pl2r", + "2pl2s", + "2pl2t", + "2pl2v", + "2pl2w", + "2pl2x", + "2pl2y", + "2pl2z", + "v2l", + "4vl.", + "2vl2b", + "2vl2c", + "2vl2d", + "2vl2f", + "2vl2g", + "2vl2h", + "2vl2j", + "2vl2k", + "2vl2l", + "2vl2m", + "2vl2n", + "2vl2p", + "2vl2q", + "2vl2r", + "2vl2s", + "2vl2t", + "2vl2v", + "2vl2w", + "2vl2x", + "2vl2y", + "2vl2z", + "b2r", + "4br.", + "2br2b", + "2br2c", + "2br2d", + "2br2f", + "2br2g", + "2br2h", + "2br2j", + "2br2k", + "2br2l", + "2br2m", + "2br2n", + "2br2p", + "2br2q", + "2br2r", + "2br2s", + "2br2t", + "2br2v", + "2br2w", + "2br2x", + "2br2y", + "2br2z", + "c2r", + "4cr.", + "2cr2b", + "2cr2c", + "2cr2d", + "2cr2f", + "2cr2g", + "2cr2h", + "2cr2j", + "2cr2k", + "2cr2l", + "2cr2m", + "2cr2n", + "2cr2p", + "2cr2q", + "2cr2r", + "2cr2s", + "2cr2t", + "2cr2v", + "2cr2w", + "2cr2x", + "2cr2y", + "2cr2z", + "d2r", + "4dr.", + "2dr2b", + "2dr2c", + "2dr2d", + "2dr2f", + "2dr2g", + "2dr2h", + "2dr2j", + "2dr2k", + "2dr2l", + "2dr2m", + "2dr2n", + "2dr2p", + "2dr2q", + "2dr2r", + "2dr2s", + "2dr2t", + "2dr2v", + "2dr2w", + "2dr2x", + "2dr2y", + "2dr2z", + "f2r", + "4fr.", + "2fr2b", + "2fr2c", + "2fr2d", + "2fr2f", + "2fr2g", + "2fr2h", + "2fr2j", + "2fr2k", + "2fr2l", + "2fr2m", + "2fr2n", + "2fr2p", + "2fr2q", + "2fr2r", + "2fr2s", + "2fr2t", + "2fr2v", + "2fr2w", + "2fr2x", + "2fr2y", + "2fr2z", + "g2r", + "4gr.", + "2gr2b", + "2gr2c", + "2gr2d", + "2gr2f", + "2gr2g", + "2gr2h", + "2gr2j", + "2gr2k", + "2gr2l", + "2gr2m", + "2gr2n", + "2gr2p", + "2gr2q", + "2gr2r", + "2gr2s", + "2gr2t", + "2gr2v", + "2gr2w", + "2gr2x", + "2gr2y", + "2gr2z", + "k2r", + "4kr.", + "2kr2b", + "2kr2c", + "2kr2d", + "2kr2f", + "2kr2g", + "2kr2h", + "2kr2j", + "2kr2k", + "2kr2l", + "2kr2m", + "2kr2n", + "2kr2p", + "2kr2q", + "2kr2r", + "2kr2s", + "2kr2t", + "2kr2v", + "2kr2w", + "2kr2x", + "2kr2y", + "2kr2z", + "p2r", + "4pr.", + "2pr2b", + "2pr2c", + "2pr2d", + "2pr2f", + "2pr2g", + "2pr2h", + "2pr2j", + "2pr2k", + "2pr2l", + "2pr2m", + "2pr2n", + "2pr2p", + "2pr2q", + "2pr2r", + "2pr2s", + "2pr2t", + "2pr2v", + "2pr2w", + "2pr2x", + "2pr2y", + "2pr2z", + "r2r", + "4rr.", + "2rr2b", + "2rr2c", + "2rr2d", + "2rr2f", + "2rr2g", + "2rr2h", + "2rr2j", + "2rr2k", + "2rr2l", + "2rr2m", + "2rr2n", + "2rr2p", + "2rr2q", + "2rr2r", + "2rr2s", + "2rr2t", + "2rr2v", + "2rr2w", + "2rr2x", + "2rr2y", + "2rr2z", + "t2r", + "4tr.", + "2tr2b", + "2tr2c", + "2tr2d", + "2tr2f", + "2tr2g", + "2tr2h", + "2tr2j", + "2tr2k", + "2tr2l", + "2tr2m", + "2tr2n", + "2tr2p", + "2tr2q", + "2tr2r", + "2tr2s", + "2tr2t", + "2tr2v", + "2tr2w", + "2tr2x", + "2tr2y", + "2tr2z", + "v2r", + "4vr.", + "2vr2b", + "2vr2c", + "2vr2d", + "2vr2f", + "2vr2g", + "2vr2h", + "2vr2j", + "2vr2k", + "2vr2l", + "2vr2m", + "2vr2n", + "2vr2p", + "2vr2q", + "2vr2r", + "2vr2s", + "2vr2t", + "2vr2v", + "2vr2w", + "2vr2x", + "2vr2y", + "2vr2z", + "2b3p2t", + "2c3p2t", + "2d3p2t", + "2l3p2t", + "2m3p2t", + "2n3p2t", + "2r3p2t", + "2s3p2t", + "2t3p2t", + "2x3p2t", + "2y3p2t", + "4pt.", + "2b3c2t", + "2c3c2t", + "2d3c2t", + "2l3c2t", + "2m3c2t", + "2n3c2t", + "2r3c2t", + "2s3c2t", + "2t3c2t", + "2x3c2t", + "2y3c2t", + "4ct.", + "2b3c2n", + "2c3c2n", + "2d3c2n", + "2l3c2n", + "2m3c2n", + "2n3c2n", + "2r3c2n", + "2s3c2n", + "2t3c2n", + "2x3c2n", + "2y3c2n", + "4cn.", + "2b3p2s", + "2c3p2s", + "2d3p2s", + "2l3p2s", + "2m3p2s", + "2n3p2s", + "2r3p2s", + "2s3p2s", + "2t3p2s", + "2x3p2s", + "2y3p2s", + "4ps.", + "2b3m2n", + "2c3m2n", + "2d3m2n", + "2l3m2n", + "2m3m2n", + "2n3m2n", + "2r3m2n", + "2s3m2n", + "2t3m2n", + "2x3m2n", + "2y3m2n", + "4mn.", + "2b3g2n", + "2c3g2n", + "2d3g2n", + "2l3g2n", + "2m3g2n", + "2n3g2n", + "2r3g2n", + "2s3g2n", + "2t3g2n", + "2x3g2n", + "2y3g2n", + "4gn.", + "2b3f2t", + "2c3f2t", + "2d3f2t", + "2l3f2t", + "2m3f2t", + "2n3f2t", + "2r3f2t", + "2s3f2t", + "2t3f2t", + "2x3f2t", + "2y3f2t", + "4ft.", + "2b3p2n", + "2c3p2n", + "2d3p2n", + "2l3p2n", + "2m3p2n", + "2n3p2n", + "2r3p2n", + "2s3p2n", + "2t3p2n", + "2x3p2n", + "2y3p2n", + "4pn.", + "2b3c2z", + "2c3c2z", + "2d3c2z", + "2l3c2z", + "2m3c2z", + "2n3c2z", + "2r3c2z", + "2s3c2z", + "2t3c2z", + "2x3c2z", + "2y3c2z", + "4cz.", + "2b3t2z", + "2c3t2z", + "2d3t2z", + "2l3t2z", + "2m3t2z", + "2n3t2z", + "2r3t2z", + "2s3t2z", + "2t3t2z", + "2x3t2z", + "2y3t2z", + "4tz.", + "2b3t2s", + "2c3t2s", + "2d3t2s", + "2l3t2s", + "2m3t2s", + "2n3t2s", + "2r3t2s", + "2s3t2s", + "2t3t2s", + "2x3t2s", + "2y3t2s", + "4ts.", + "san4c5t", + "plan4c5t", + "o1eu2", + "a1ae2", + "a1aó2", + "eo1á2", + "eo1e2", + "o1ae2", + "o1eó2", + "2no.", + "2t2l", + "2t2s", + "2t2x", + "2t2z", + "tz3s4ch", + "4caca4", + "4cago4", + "4caga4", + "4cagas.", + "4teta.", + "4tetas.", + "4puta4", + "4puto4", + ".hu4mea", + ".hu4meo", + ".he4mee", + "4meo.", + "4meable.", + "4meables.", + "4pedo4", + "4culo4", + "5mente.", + "4i3go.", + "4es.", + "4és", + "4e.", + "4e3mos.", + "4éis.", + "4en.", + "4ía.", + "4ías.", + "4ía3mos.", + "4íais.", + "4ían.", + "4í.", + "4í4s3te.", + "4í4s3tes.", + "4í3tes.", + "4í3mos.", + "4ís3teis.", + "4e3ré.", + "4e3rás.", + "4e3rés.", + "4e3rís.", + "4e3rá.", + "4e3re3mos.", + "4e3réis.", + "4e3rán.", + "4i3ga.", + "4i3gas.", + "4i3gás.", + "4i3gamos.", + "4i3gáis.", + "4a4i3gan.", + "4e3ría.", + "4e3rías.", + "4e3ríamos.", + "4e3ríais.", + "4e3rían.", + "4i3gá3mosme.", + "4i3gá3mosmele.", + "4i3gá3mosmelo.", + "4i3gá3mos3mela.", + "4i3gá3mosmeles.", + "4i3gá3mosmelos.", + "4i3gá3mos3melas.", + "4i3gá3moste.", + "4i3gá3mostele.", + "4i3gá3mostelo.", + "4i3gá3mos3tela.", + "4i3gá3mosteles.", + "4i3gá3mostelos.", + "4i3gá3mos3telas.", + "4i3gá3mosle.", + "4i3gá3mosla.", + "4i3gá3moslo.", + "4i3gá3mosele.", + "4i3gá3moselo.", + "4i3gá3mosela.", + "4i3gá3moseles.", + "4i3gá3moselos.", + "4i3gá3moselas.", + "4i3gá3monos.", + "4i3gá3monosle.", + "4i3gá3monoslo.", + "4i3gá3monosla.", + "4i3gá3monosles.", + "4i3gá3monoslos.", + "4i3gá3monoslas.", + "4i3gá3moos.", + "4i3gá3moosle.", + "4i3gá3mooslo.", + "4i3gá3moosla.", + "4i3gá3moosles.", + "4i3gá3mooslos.", + "4i3gá3mooslas.", + "4i3gá3mosles.", + "4i3gá3moslas.", + "4i3gá3moslos.", + "4ed.", + "4é.", + "4edme.", + "4édmele.", + "4édmelo.", + "4éd3mela.", + "4édmeles.", + "4édmelos.", + "4éd3melas.", + "4edte.", + "4édtele.", + "4édtelo.", + "4éd3tela.", + "4édteles.", + "4édtelos.", + "4éd3telas.", + "4edle.", + "4eedla.", + "4edlo.", + "4édsele.", + "4édselo.", + "4édsela.", + "4édseles.", + "4édselos.", + "4édselas.", + "4ednos.", + "4édnosle.", + "4édnoslo.", + "4édnosla.", + "4édnosles.", + "4édnoslos.", + "4édnoslas.", + "4eos.", + "4éosle.", + "4éoslo.", + "4éosla.", + "4éosles.", + "4éoslos.", + "4éoslas.", + "4edles.", + "4edlas.", + "4edlos.", + "4er.", + "4erme.", + "4érmele.", + "4érmelo.", + "4ér3mela.", + "4érmeles.", + "4érmelos.", + "4ér3melas.", + "4erte.", + "4értele.", + "4értelo.", + "4ér3tela.", + "4érteles.", + "4értelos.", + "4ér3telas.", + "4erle.", + "4erla.", + "4erlo.", + "4erse.", + "4érsele.", + "4érselo.", + "4érsela.", + "4érseles.", + "4érselos.", + "4érselas.", + "4ernos.", + "4érnosle.", + "4érnoslo.", + "4érnosla.", + "4érnosles.", + "4érnoslos.", + "4érnoslas.", + "4e3ros.", + "4é3rosle.", + "4é3roslo.", + "4é3rosla.", + "4é3rosles.", + "4é3roslos.", + "4é3roslas.", + "4erles.", + "4erlas.", + "4erlos.", + "4í3do.", + "4í3da.", + "4í3dos.", + "4í3das.", + "4o.", + "4as.", + "4a.", + "4ás.", + "4a3mos.", + "4áis.", + "4an.", + "4aste.", + "4astes.", + "4ó.", + "4ates.", + "4asteis.", + "4a3ron.", + "4a3ba.", + "4a3bas.", + "4á3bamos.", + "4a3bais.", + "4a3ban.", + "4a3ría.", + "4a3rías.", + "4a3ríamos.", + "4a3ríais", + "4a3rían.", + "4a3ré.", + "4a3rás.", + "4a3rés.", + "4a3rís.", + "4a3rá.", + "4a3remos.", + "4a3réis.", + "4a3rán.", + "4a3ra.", + "4a3ras.", + "4á3ramos.", + "4a3rais.", + "4a3ran.", + "4a3re.", + "4a3res.", + "4á3remos.", + "4a3reis.", + "4a3ren.", + "4a3se.", + "4a3ses.", + "4á3semos.", + "4a3seis.", + "4a3sen.", + "4ad.", + "e5r4as.", + "e5r4a3mos.", + "e5r4áis.", + "e5r4an.", + "e5r4aste.", + "e5r4astes.", + "e5r4ates.", + "e5r4asteis.", + "e5r4a3ron.", + "e5r4a3ba.", + "e5r4a3bas.", + "e5r4á3bamos.", + "e5r4a3bais.", + "e5r4a3ban.", + "e5r4a3ría.", + "e5r4a3rías.", + "e5r4a3ríamos.", + "e5r4a3ríais", + "e5r4a3rían.", + "e5r4a3ré.", + "e5r4a3rás.", + "e5r4a3rés.", + "e5r4a3rís.", + "e5r4a3rá.", + "e5r4a3remos.", + "e5r4a3réis.", + "e5r4a3rán.", + "e5r4a3ra.", + "e5r4a3ras.", + "e5r4á3ramos.", + "e5r4a3rais.", + "e5r4a3ran.", + "e5r4a3re.", + "e5r4a3res.", + "e5r4á3remos.", + "e5r4a3reis.", + "e5r4a3ren.", + "e5r4a3se.", + "e5r4a3ses.", + "e5r4á3semos.", + "e5r4a3seis.", + "e5r4a3sen.", + "e5r4ad.", + "4adme.", + "4ádmele.", + "4ádmelo.", + "4ád3mela.", + "4ádmeles.", + "4ádmelos.", + "4ád3melas.", + "4adte.", + "4ádtele.", + "4ádtelo.", + "4ád3tela.", + "4ádteles.", + "4ádtelos.", + "4ád3telas.", + "4adle.", + "4eadla.", + "4adlo.", + "4ádsele.", + "4ádselo.", + "4ádsela.", + "4ádseles.", + "4ádselos.", + "4ádselas.", + "4adnos.", + "4ádnosle.", + "4ádnoslo.", + "4ádnosla.", + "4ádnosles.", + "4ádnoslos.", + "4ádnoslas.", + "4aos.", + "4áosle.", + "4áoslo.", + "4áosla.", + "4áosles.", + "4áoslos.", + "4áoslas.", + "4adles.", + "4adlas.", + "4adlos.", + "4ar.", + "4a4rme.", + "4á4rmele.", + "4á4rmelo.", + "4á4r3mela.", + "4á4r3meles.", + "4á4r3melos.", + "4á4r3melas.", + "4a4r3te.", + "4á4r3tele.", + "4á4r3telo.", + "4á4r3tela.", + "4á4r3teles.", + "4á4r3telos.", + "4á4r3telas.", + "4a4r3le.", + "4a4r3la.", + "4a4r3lo.", + "4a4r3se.", + "4á4r3sele.", + "4á4r3selo.", + "4á4r3sela.", + "4á4r3seles.", + "4á4r3selos.", + "4á4r3selas.", + "4a4r3nos.", + "4á4r3nosle.", + "4á4r3noslo.", + "4á4r3nosla.", + "4á4r3nosles.", + "4á4r3noslos.", + "4á4r3noslas.", + "4a3ros.", + "4árosle.", + "4ároslo.", + "4árosla.", + "4árosles.", + "4ároslos.", + "4ároslas.", + "4a4r3les.", + "4a4r3las.", + "4a4r3los.", + "4a3do.", + "4a3da.", + "4a3dos.", + "4a3das.", + "e5r4a3do.", + "e5r4a3da.", + "e5r4a3dos.", + "e5r4a3das.", + "4ando", + "4ándole.", + "4ándolo.", + "4ándola.", + "4ándoles.", + "4ándolos.", + "4ándolas.", + "4ándonos.", + "4ándoos.", + "4ándome.", + "4ándomelo.", + "4ándomela.", + "4ándomele.", + "4ándomelos.", + "4ándomelas.", + "4ándomeles.", + "4ándote.", + "4ándoteme.", + "4ándotelo.", + "4ándotela.", + "4ándotele.", + "4ándotelos.", + "4ándotelas.", + "4ándoteles.", + "4ándotenos.", + "4ándose.", + "4ándoseme.", + "4ándoselo.", + "4ándosela.", + "4ándosele.", + "4ándoselos.", + "4ándoselas.", + "4ándoseles.", + "4ándosenos.", + "4a3dor.", + "4a3dora.", + "4a3dores.", + "4a3doras.", + "e5r4a3dor.", + "e5r4a3dora.", + "e5r4a3dores.", + "e5r4a3doras.", + "acto1h", + "acto1a2", + "acto1e2", + "acto1i2", + "acto1o2", + "acto1u2", + "acto1á2", + "acto1é2", + "acto1í2", + "acto1ó2", + "acto1ú2", + "aero1h", + "aero1a2", + "aero1e2", + "aero1i2", + "aero1o2", + "aero1u2", + "aero1á2", + "aero1é2", + "aero1í2", + "aero1ó2", + "aero1ú2", + "afro1h", + "afro1a2", + "afro1e2", + "afro1i2", + "afro1o2", + "afro1u2", + "afro1á2", + "afro1é2", + "afro1í2", + "afro1ó2", + "afro1ú2", + ".a2", + ".an2a2", + ".an2e2", + ".an2i2", + ".an2o2", + ".an2u2", + ".an2á2", + ".an2é2", + ".an2í2", + ".an2ó2", + ".an2ú2.", + "ana3lí", + ".aná3li", + ".ana3li", + ".an3aero", + ".an3e2pigr", + ".ane3xa", + ".ane3xá", + ".ane3xe", + ".ane3xé", + ".ane3xio", + ".ane3xió", + ".an3h", + ".ani3mad", + ".ani3mád", + ".ani3dar", + ".ani3ll", + ".ani3m", + ".aniña", + ".ani3q", + ".an3i2so", + ".an3i2só", + ".ani3vel", + ".ano5che", + ".ano5din", + ".ano5mal", + ".ano5nad", + ".anó3nim", + ".anó5mal", + ".ano5nim", + ".ano5ta", + ".ano3tá", + ".anua3l", + ".anua4lm", + ".anu3bl", + ".anu3da", + ".anu3l", + "asu3b2", + "anfi1h", + "anfi1a2", + "anfi1e2", + "anfi1i2", + "anfi1o2", + "anfi1u2", + "anfi1á2", + "anfi1é2", + "anfi1í2", + "anfi1ó2", + "anfi1ú2", + "anglo1h", + "anglo1a2", + "anglo1e2", + "anglo1i2", + "anglo1o2", + "anglo1u2", + "anglo1á2", + "anglo1é2", + "anglo1í2", + "anglo1ó2", + "anglo1ú2", + "ante1h", + "ante1a2", + "ante1e2", + "ante1i2", + "ante1o2", + "ante1u2", + "ante1á2", + "ante1é2", + "ante1í2", + "ante1ó2", + "ante1ú2", + ".ante2o3je", + "acante2", + "4ísmo.", + "4ísmos.", + "4ísta.", + "4ístas.", + "4ístico.", + "4ísticos.", + "4ística.", + "4ísticas.", + "pante4o3n", + ".anteo3nes", + "mante4a", + "e4a3miento", + "e4ándo", + "tras3antea", + ".anti1h", + ".anti1a2", + ".anti1e2", + ".anti1i2", + ".anti1o2", + ".anti1u2", + ".anti1á2", + ".anti1é2", + ".anti1í2", + ".anti1ó2", + ".anti1ú2", + "ti2o3qu", + "ti2o3co", + "archi1h", + "archi1a2", + "archi1e2", + "archi1i2", + "archi1o2", + "archi1u2", + "archi1á2", + "archi1é2", + "archi1í2", + "archi1ó2", + "archi1ú2", + "auto1h", + "auto1a2", + "auto1e2", + "auto1i2", + "auto1o2", + "auto1u2", + "auto1á2", + "auto1é2", + "auto1í2", + "auto1ó2", + "auto1ú2", + ".bi1anual", + ".bi1aur", + ".bi1ox", + ".bi1ó2x", + ".bi1un", + "biblio1h", + "biblio1a2", + "biblio1e2", + "biblio1i2", + "biblio1o2", + "biblio1u2", + "biblio1á2", + "biblio1é2", + "biblio1í2", + "biblio1ó2", + "biblio1ú2", + "bien2", + "bien3h", + "bien3v", + "bien3q", + "bien3m", + "bien3t", + "b4ien3do.", + ".su3b4ien", + "b4ien3das.", + ".bie4n3and", + ".bie4n3a4pa", + ".bie4n3a4ve", + ".bie4n3est", + ".bie4n3int", + ".bie4n3o4lie", + "bio1h", + "bio1a2", + "bio1e2", + "bio1i2", + "bio1o2", + "bio1u2", + "bio1á2", + "bio1é2", + "bio1í2", + "bio1ó2", + "bio1ú2", + "bi1u2ní", + "cardio1h", + "cardio1a2", + "cardio1e2", + "cardio1i2", + "cardio1o2", + "cardio1u2", + "cardio1á2", + "cardio1é2", + "cardio1í2", + "cardio1ó2", + "cardio1ú2", + "cefalo1h", + "cefalo1a2", + "cefalo1e2", + "cefalo1i2", + "cefalo1o2", + "cefalo1u2", + "cefalo1á2", + "cefalo1é2", + "cefalo1í2", + "cefalo1ó2", + "cefalo1ú2", + "centi1h", + "centi1a2", + "centi1e2", + "centi1i2", + "centi1o2", + "centi1u2", + "centi1á2", + "centi1é2", + "centi1í2", + "centi1ó2", + "centi1ú2", + "centi5área", + "ciclo1h", + "ciclo1a2", + "ciclo1e2", + "ciclo1i2", + "ciclo1o2", + "ciclo1u2", + "ciclo1á2", + "ciclo1é2", + "ciclo1í2", + "ciclo1ó2", + "ciclo1ú2", + "o4i3dea.", + "o4i3deas.", + "o4i3dal.", + "o4i3dales.", + "4o2i3de.", + "4o2i3des.", + "4i2dal.", + "4i2dales.", + "4i3deo.", + "4i3deos.", + "cito1h", + "cito1a2", + "cito1e2", + "cito1i2", + "cito1o2", + "cito1u2", + "cito1á2", + "cito1é2", + "cito1í2", + "cito1ó2", + "cito1ú2", + "cnico1h", + "cnico1a2", + "cnico1e2", + "cnico1i2", + "cnico1o2", + "cnico1u2", + "cnico1á2", + "cnico1é2", + "cnico1í2", + "cnico1ó2", + "cnico1ú2", + ".co2a2", + ".co2e2", + ".co2i2", + ".co3o4", + ".co2u2", + ".co2á2", + ".co2é2", + ".co2í2", + ".co2ó2", + ".co2ú2", + ".co3acree", + ".coá3gul", + ".co3agen", + ".coa3gul", + ".coa3lic", + ".co3arrend", + ".co3auto", + ".co3edic", + ".co3edit", + ".co3educ", + ".co3efici", + ".coe3tá", + ".co3exis", + ".co3imput", + ".coi3to", + ".co4o3per", + ".co4o3pér", + ".co4orden", + ".co4ordin", + ".co4ordín", + ".co4opt", + ".co4ópt", + ".co2nurb", + "cripto1h", + "cripto1a2", + "cripto1e2", + "cripto1i2", + "cripto1o2", + "cripto1u2", + "cripto1á2", + "cripto1é2", + "cripto1í2", + "cripto1ó2", + "cripto1ú2", + "crono1h", + "crono1a2", + "crono1e2", + "crono1i2", + "crono1o2", + "crono1u2", + "crono1á2", + "crono1é2", + "crono1í2", + "crono1ó2", + "crono1ú2", + "contra1h", + "contra1a2", + "contra1e2", + "contra1i2", + "contra1o2", + "contra1u2", + "contra1á2", + "contra1é2", + "contra1í2", + "contra1ó2", + "contra1ú2", + "deca1h", + "deca1a2", + "deca1e2", + "deca1i2", + "deca1o2", + "deca1u2", + "deca1á2", + "deca1é2", + "deca1í2", + "deca1ó2", + "deca1ú2", + "4e3dro.", + "4e3dros.", + "4é3drico.", + "4é3dricos.", + "4é3drica.", + "4é3dricas.", + "4í3ble.", + "4í3bles.", + ".de2sa2", + ".de2se2", + ".de2si2", + ".de2so2", + ".de2su2", + ".de2sá2", + ".de2sé2", + ".de2sí2", + ".de2só2", + ".de2sú2", + "deca2i3mient", + "3sa.", + "3sas.", + "de2s3órde", + "de2s3orde", + "de2s3abast", + "de2s3aboll", + "de2s3aboto", + "de2s3abr", + "des4a3brid", + "de2s3abroch", + "de2s3aceit", + "de2s3aceler", + "desa3cert", + "desa3ciert", + "de2s3acobar", + "de2s3acomod", + "de2s3acomp", + "de2s3acons", + "de2s3acopl", + "de2s3acorr", + "de2s3acostum", + "de2s3acot", + "desa3craliz", + "de2s3acredit", + "de2s3activ", + "de2s3acuart", + "de2s3aderez", + "de2s3adeud", + "de2s3adorar", + "de2s3adormec", + "de2s3adorn", + "de2s3advert", + "de2s3aferr", + "de2s3afic", + "de2s3afil", + "de2s3afin", + "de2s3afor", + "de2s3agu", + "desa3gú", + "desa3garr", + "de2s3agraci", + "de2s3agrad", + "de2s3agravi", + "de2s3agreg", + "de2s3agrup", + "des4a3guis", + "de2s3aherr", + "de2s3ahij", + "de2s3ajust", + "de2s3alagar", + "de2s3alent", + "de2s3alfom", + "de2s3alfor", + "de2s3alien", + "de2s3a4line", + "de2s3a4liné", + "de2s3aliñ", + "desa3liv", + "de2s3alm", + "de2s3almid", + "de2s3aloj", + "de2s3alquil", + "de2s3alter", + "de2s3alumbr", + "desa3marr", + "desa3mobl", + "de2s3amold", + "de2s3amort", + "de2s3amuebl", + "de2s3ampa", + "de2s3and", + "de2s3angel", + "de3sangr", + "de2s3anid", + "de2s3anim", + "de2s3aním", + "de2s3anud", + "desa3pañ", + "desa3pacib", + "de2s3apadr", + "de2s3apare", + "de2s3aparec", + "de2s3aparic", + "de2s3apeg", + "de2s3apercib", + "de2s3apes", + "de2s3aplic", + "de2s3apolill", + "de2s3apoy", + "de2s3aprend", + "de2s3apret", + "de2s3apriet", + "de2s3aprob", + "de2s3apropi", + "de2s3aprovech", + "de2s3arbol", + "de2s3aren", + "de2s3arm", + "des4arme", + "de2s3arraig", + "de2s3arregl", + "de2s3arrend", + "de2s3arrim", + "desa3rroll", + "de2s3arrop", + "de2s3arrug", + "de2s3articul", + "de2s3asent", + "de2s3asist", + "de2s3asn", + "de2s3atenc", + "de2s3atend", + "de2s3atiend", + "de2s3atent", + "desa3tin", + "de2s3atorn", + "de2s3atranc", + "de2s3autor", + "de2s3avis", + "desa3yun", + "desa3zón", + "desa3zon", + "de2s3embal", + "de2s3embál", + "de2s3embar", + "de2s3embár", + "de2s3embarg", + "de2s3embols", + "de2s3emborr", + "de2s3embosc", + "de2s3embot", + "de2s3embrag", + "de2s3embrág", + "de2s3embrave", + "de2s3embráve", + "de2s3embroll", + "de2s3embróll", + "de2s3embruj", + "de2s3embrúj", + "de3semej", + "de2s3empañ", + "de2s3empáñ", + "de2s3empac", + "de2s3empaquet", + "de2s3empaquét", + "de2s3emparej", + "de2s3emparéj", + "de2s3emparent", + "de2s3empat", + "de2s3empé", + "de2s3empedr", + "de2s3empeg", + "de2s3empeor", + "de2s3emperez", + "de2s3empern", + "de2s3emple", + "de2s3empolv", + "de2s3empotr", + "de2s3empoz", + "de2s3enam", + "de2s3encab", + "de2s3encad", + "de2s3encaj", + "de2s3encáj", + "de2s3encall", + "de2s3encáll", + "de2s3encam", + "de3sencant", + "de2s3encap", + "de2s3encar", + "de2s3encár", + "de2s3ench", + "de2s3encl", + "de2s3enco", + "de2s3encr", + "de2s3encu", + "de2s3end", + "de3senfad", + "de3senfád", + "de2s3enfi", + "de2s3enfo", + "de2s3enfó", + "de3senfren", + "de2s3enfund", + "de2s3enfur", + "de3sengañ", + "de3sengáñ", + "de2s3enganch", + "de2s3engar", + "de2s3engas", + "de2s3engom", + "de2s3engoz", + "de2s3engra", + "de2s3enhebr", + "de2s3enj", + "de2s3enlad", + "de2s3enlaz", + "de2s3enlo", + "de2s3enm", + "de2s3enr", + "de2s3ens", + "de2s3enta", + "de3sentend", + "de3sentien", + "de3sentién", + "de2s3enter", + "de2s3entier", + "de2s3entiér", + "de2s3ento", + "de2s3entr", + "de2s3entu", + "de2s3envain", + "de3senvolvim", + "de3seo", + "de2s3eq", + "de3s4erci", + "de3s4ert", + "de3s4ért", + "de2s3espa", + "de3sesperac", + "de2s3esperanz", + "de2s3estabil", + "de2s3estim", + "de3sider", + "de3sidia", + "de3sidio", + "de3siert", + "de3sign", + "de3sigual", + "de3silusi", + "de2s3imagin", + "de2s3iman", + "de2s3impon", + "de2s3impres", + "de2s3incent", + "de2s3inclin", + "de2s3incorp", + "de2s3incrust", + "de3sinenc", + "de3sinfec", + "de3su3dar", + "de3su3das", + "de3su3dan", + "de2s3inflam", + "de2s3infl", + "de2s3inform", + "de2s3inhib", + "de2s3insect", + "de2s3instal", + "ini3ci", + "iní3ci", + "de3s4integr", + "de3s4inter", + "de2s3intox", + "de2s3inver", + "de3sisten", + "de3isti", + "de2s3obedec", + "de2s3oblig", + "de2s3obstr", + "de3socup", + "de2s3odor", + "de3solac", + "de3solad", + "de3soll", + "de2s3orej", + "de2s3orient", + "de3sortij", + "de2s3organi", + "de3suell", + "de3sonce", + "de2s3ovi", + "de2s3oxi", + "de2s3oye", + "de2s3oyé", + "de3s4ubstan", + "de3s4ustan", + "de3s4oseg", + "de2s3ub4ic", + "de2s3unir", + "de2s3unier", + "de2s3unim", + ".diecio2", + "ecano1h", + "ecano1a2", + "ecano1e2", + "ecano1i2", + "ecano1o2", + "ecano1u2", + "ecano1á2", + "ecano1é2", + "ecano1í2", + "ecano1ó2", + "ecano1ú2", + "eco1h", + "eco1a2", + "eco1e2", + "eco1i2", + "eco1o2", + "eco1u2", + "eco1á2", + "eco1é2", + "eco1í2", + "eco1ó2", + "eco1ú2", + "ectro1h", + "ectro1a2", + "ectro1e2", + "ectro1i2", + "ectro1o2", + "ectro1u2", + "ectro1á2", + "ectro1é2", + "ectro1í2", + "ectro1ó2", + "ectro1ú2", + ".e2n2a2", + ".e2n2e2", + ".e2n2i2", + ".e2n2o2", + ".e2n2u2", + ".e2n2á2", + ".e2n2é2", + ".e2n2í2", + ".e2n2ó2", + ".e2n2ú2", + ".ene3mist", + ".ene3míst", + ".eno3jar", + ".enu3mera", + ".enu3merá", + ".enu3mere", + ".en3aceit", + ".en3arb", + "4emboca", + "4o3lógico.", + "4o3lógica.", + "4o3lógicos.", + "4o3lógicas.", + "4o3lógicamente.", + "4o3logía.", + "4o3logías.", + "4ó3logo.", + "4ó3loga.", + "4ó3logos.", + "4ó3logas.", + "endo1h", + "endo1a2", + "endo1e2", + "endo1i2", + "endo1o2", + "endo1u2", + "endo1á2", + "endo1é2", + "endo1í2", + "endo1ó2", + "endo1ú2", + "ento1h", + "ento1a2", + "ento1e2", + "ento1i2", + "ento1o2", + "ento1u2", + "ento1á2", + "ento1é2", + "ento1í2", + "ento1ó2", + "ento1ú2", + "entre1h", + "entre1a2", + "entre1e2", + "entre1i2", + "entre1o2", + "entre1u2", + "entre1á2", + "entre1é2", + "entre1í2", + "entre1ó2", + "entre1ú2", + "euco1h", + "euco1a2", + "euco1e2", + "euco1i2", + "euco1o2", + "euco1u2", + "euco1á2", + "euco1é2", + "euco1í2", + "euco1ó2", + "euco1ú2", + "euro1h", + "euro1a2", + "euro1e2", + "euro1i2", + "euro1o2", + "euro1u2", + "euro1á2", + "euro1é2", + "euro1í2", + "euro1ó2", + "euro1ú2", + ".e2x2a2", + ".e2x2e2", + ".e2x2i2", + ".e2x2o2", + ".e2x2u2", + ".e2x2á2", + ".e2x2é2", + ".e2x2í2", + ".e2x2ó2", + ".e2x2ú2", + "3gono.", + "3gonos.", + "3gonal.", + "3gonales.", + "exá3men", + "exá3ri", + "exé3ge", + "exó3ti", + "exa3cerb", + "exa3ger", + "exa3min", + "exe3cr", + "exe3géti", + "exe3quia", + "exi3ja", + "exi3já", + "exí3ja", + "exi3ge", + "exí3ge", + "exi3gi", + "exi3gí", + "exi3jo", + "exí3jo", + "3gua.", + "3guas.", + "3guo.", + "3guos.", + "exi3lia", + "exi3liá", + "exí3lia", + "exi3lie", + "exi3lié", + "exí3lie", + "exi3lio", + "exi3lió", + "exí3lio", + "exi3ma", + "exi3má", + "exí3ma", + "exi3mi", + "exi3mí", + "exí3mi", + "exi3me", + "exi3mé", + "exí3me", + "exi3mo", + "exi3mó", + "exí3mo", + "exi3tos", + "exi3lar", + "exo3ner", + "exo3crin", + "exo3tér", + "exo3tic", + "exo3tiq", + "exo3tism", + "exo3gami", + "exo3gámi", + "exu3ber", + "exu3dar", + "exu3dat", + "exu3dac", + "extra1h", + "extra1a2", + "extra1e2", + "extra1i2", + "extra1o2", + "extra1u2", + "extra1á2", + "extra1é2", + "extra1í2", + "extra1ó2", + "extra1ú2", + "u4teri", + ".cau5t", + ".deu5t", + "fono1h", + "fono1a2", + "fono1e2", + "fono1i2", + "fono1o2", + "fono1u2", + "fono1á2", + "fono1é2", + "fono1í2", + "fono1ó2", + "fono1ú2", + "foto1h", + "foto1a2", + "foto1e2", + "foto1i2", + "foto1o2", + "foto1u2", + "foto1á2", + "foto1é2", + "foto1í2", + "foto1ó2", + "foto1ú2", + "gastro1h", + "gastro1a2", + "gastro1e2", + "gastro1i2", + "gastro1o2", + "gastro1u2", + "gastro1á2", + "gastro1é2", + "gastro1í2", + "gastro1ó2", + "gastro1ú2", + "geo1h", + "geo1a2", + "geo1e2", + "geo1i2", + "geo1o2", + "geo1u2", + "geo1á2", + "geo1é2", + "geo1í2", + "geo1ó2", + "geo1ú2", + "giga1h", + "giga1a2", + "giga1e2", + "giga1i2", + "giga1o2", + "giga1u2", + "giga1á2", + "giga1é2", + "giga1í2", + "giga1ó2", + "giga1ú2", + "gluco1h", + "gluco1a2", + "gluco1e2", + "gluco1i2", + "gluco1o2", + "gluco1u2", + "gluco1á2", + "gluco1é2", + "gluco1í2", + "gluco1ó2", + "gluco1ú2", + "hecto1h", + "hecto1a2", + "hecto1e2", + "hecto1i2", + "hecto1o2", + "hecto1u2", + "hecto1á2", + "hecto1é2", + "hecto1í2", + "hecto1ó2", + "hecto1ú2", + "helio1h", + "helio1a2", + "helio1e2", + "helio1i2", + "helio1o2", + "helio1u2", + "helio1á2", + "helio1é2", + "helio1í2", + "helio1ó2", + "helio1ú2", + "hemato1h", + "hemato1a2", + "hemato1e2", + "hemato1i2", + "hemato1o2", + "hemato1u2", + "hemato1á2", + "hemato1é2", + "hemato1í2", + "hemato1ó2", + "hemato1ú2", + "hemi1h", + "hemi1a2", + "hemi1e2", + "hemi1i2", + "hemi1o2", + "hemi1u2", + "hemi1á2", + "hemi1é2", + "hemi1í2", + "hemi1ó2", + "hemi1ú2", + "hemo1h", + "hemo1a2", + "hemo1e2", + "hemo1i2", + "hemo1o2", + "hemo1u2", + "hemo1á2", + "hemo1é2", + "hemo1í2", + "hemo1ó2", + "hemo1ú2", + "2al.", + "2ales.", + ".hepta1e", + "hexa1h", + "hexa1a2", + "hexa1e2", + "hexa1i2", + "hexa1o2", + "hexa1u2", + "hexa1á2", + "hexa1é2", + "hexa1í2", + "hexa1ó2", + "hexa1ú2", + "hidro1h", + "hidro1a2", + "hidro1e2", + "hidro1i2", + "hidro1o2", + "hidro1u2", + "hidro1á2", + "hidro1é2", + "hidro1í2", + "hidro1ó2", + "hidro1ú2", + "hipe2r3r", + "hipe2r1a2", + "hipe2r1e2", + "hipe2r1i2", + "hipe2r1o2", + "hipe2r1u2", + "hipe2r1á2", + "hipe2r1é2", + "hipe2r1í2", + "hipe2r1ó2", + "hipe2r1ú2", + "pe3r4e3mia", + "hipe3r4i3cíne", + "hipe3r4o3nimi", + "hipe3r4o3ními", + "hipe3r4ó3nimo", + "hipe3r4o3xia", + "hipo1h", + "hipo1a2", + "hipo1e2", + "hipo1i2", + "hipo1o2", + "hipo1u2", + "hipo1á2", + "hipo1é2", + "hipo1í2", + "hipo1ó2", + "hipo1ú2", + "spano1h", + "spano1a2", + "spano1e2", + "spano1i2", + "spano1o2", + "spano1u2", + "spano1á2", + "spano1é2", + "spano1í2", + "spano1ó2", + "spano1ú2", + "histo1h", + "histo1a2", + "histo1e2", + "histo1i2", + "histo1o2", + "histo1u2", + "histo1á2", + "histo1é2", + "histo1í2", + "histo1ó2", + "histo1ú2", + "homo1h", + "homo1a2", + "homo1e2", + "homo1i2", + "homo1o2", + "homo1u2", + "homo1á2", + "homo1é2", + "homo1í2", + "homo1ó2", + "homo1ú2", + "ibero1h", + "ibero1a2", + "ibero1e2", + "ibero1i2", + "ibero1o2", + "ibero1u2", + "ibero1á2", + "ibero1é2", + "ibero1í2", + "ibero1ó2", + "ibero1ú2", + "icono1h", + "icono1a2", + "icono1e2", + "icono1i2", + "icono1o2", + "icono1u2", + "icono1á2", + "icono1é2", + "icono1í2", + "icono1ó2", + "icono1ú2", + ".i2n2a2", + ".i2n2e2", + ".i2n2i2", + ".i2n2o2", + ".i2n2u2", + ".i2n2á2", + ".i2n2é2", + ".i2n2í2", + ".i2n2ó2", + ".i2n2ú2", + ".in3abord", + ".in3abarc", + ".in3acent", + ".in3aguant", + ".in3adapt", + ".ina3movib", + ".in3analiz", + ".ina3nic", + ".in3anim", + ".iná3nim", + ".in3apel", + ".in3aplic", + ".in3aprens", + ".in3apreci", + ".in3arrug", + ".in3asist", + ".iné3dit", + ".in3efic", + ".in3efici", + ".in3eludi", + ".ine3narr", + "ini3cia", + "iní3cia", + "ini3ciá", + "ini3cie", + ".rei3na", + "re3ini3cia", + "re3iní3cia", + "re3ini3ciá", + "re3ini3cie", + ".ini3cuo", + ".ini3cua", + ".ino3cuo", + ".ino3cua", + ".ino3cula", + ".ino3culá", + ".ino3cule", + ".inú3til", + ".inu3tiliz", + "infra1h", + "infra1a2", + "infra1e2", + "infra1i2", + "infra1o2", + "infra1u2", + "infra1á2", + "infra1é2", + "infra1í2", + "infra1ó2", + "infra1ú2", + ".inte2r3r", + ".inte2r1a2", + ".inte2r1e2", + ".inte2r1i2", + ".inte2r1o2", + ".inte2r1u2", + ".inte2r1á2", + ".inte2r1é2", + ".inte2r1í2", + ".inte2r1ó2", + ".inte2r1ú2", + ".in3ter2e3sa", + ".in3ter2e3se", + ".in3ter2e3so", + ".in3ter2e3sá", + ".in3ter2e3sé", + ".in3ter2e3só", + ".de3s4in3ter2e3sa", + ".de3s4in3ter2e3se", + ".de3s4in3ter2e3so", + ".de3s4in3ter2e3sá", + ".de3s4in3ter2e3sé", + ".de3s4in3ter2e3só", + "4n3te3ri3n", + "4n4te4r5i4nsu", + ".in3te3r4rog", + ".in3te3r4rupc", + ".in3te3r4rupt", + ".in3te3r4rump", + "inter4és", + "inte3r4esar", + "inte4r4i4n4", + "inter5ins5t", + "inte5r4regno", + "inte3r4ior4", + "4i4ano.", + "4i4ana.", + "4i4anos.", + "4i4anas.", + "intra1h", + "intra1a2", + "intra1e2", + "intra1i2", + "intra1o2", + "intra1u2", + "intra1á2", + "intra1é2", + "intra1í2", + "intra1ó2", + "intra1ú2", + "iso1h", + "iso1a2", + "iso1e2", + "iso1i2", + "iso1o2", + "iso1u2", + "iso1á2", + "iso1é2", + "iso1í2", + "iso1ó2", + "iso1ú2", + "kilo1h", + "kilo1a2", + "kilo1e2", + "kilo1i2", + "kilo1o2", + "kilo1u2", + "kilo1á2", + "kilo1é2", + "kilo1í2", + "kilo1ó2", + "kilo1ú2", + "macro1h", + "macro1a2", + "macro1e2", + "macro1i2", + "macro1o2", + "macro1u2", + "macro1á2", + "macro1é2", + "macro1í2", + "macro1ó2", + "macro1ú2", + "mal2", + "ma4l3h", + ".ma4l3e4du", + "mal3b", + "mal3c", + "mal3d", + "mal3f", + "mal3g", + "mal3m", + "mal3p", + "mal3q", + "mal3s", + "mal3t", + "mal3v", + ".mal1acon", + ".mal1acos", + ".mala1e", + ".mal1andant", + ".mal1andanz", + ".mal1est", + ".mal1int", + "maxi1h", + "maxi1a2", + "maxi1e2", + "maxi1i2", + "maxi1o2", + "maxi1u2", + "maxi1á2", + "maxi1é2", + "maxi1í2", + "maxi1ó2", + "maxi1ú2", + "megalo1h", + "megalo1a2", + "megalo1e2", + "megalo1i2", + "megalo1o2", + "megalo1u2", + "megalo1á2", + "megalo1é2", + "megalo1í2", + "megalo1ó2", + "megalo1ú2", + "mega1h", + "mega1a2", + "mega1e2", + "mega1i2", + "mega1o2", + "mega1u2", + "mega1á2", + "mega1é2", + "mega1í2", + "mega1ó2", + "mega1ú2", + "melano1h", + "melano1a2", + "melano1e2", + "melano1i2", + "melano1o2", + "melano1u2", + "melano1á2", + "melano1é2", + "melano1í2", + "melano1ó2", + "melano1ú2", + "micro1h", + "micro1a2", + "micro1e2", + "micro1i2", + "micro1o2", + "micro1u2", + "micro1á2", + "micro1é2", + "micro1í2", + "micro1ó2", + "micro1ú2", + ".mili1h", + ".mili1a2", + ".mili1e2", + ".mili1i2", + ".mili1o2", + ".mili1u2", + ".mili1á2", + ".mili1é2", + ".mili1í2", + ".mili1ó2", + ".mili1ú2", + "familia3ri", + "ia5res.", + "amili6a", + "a3rio", + "a3ria", + "li5área", + "mili4ar", + "mini1h", + "mini1a2", + "mini1e2", + "mini1i2", + "mini1o2", + "mini1u2", + "mini1á2", + "mini1é2", + "mini1í2", + "mini1ó2", + "mini1ú2", + "2os.", + "2o3so.", + "2o3sos.", + "2o3sa.", + "2o3sas.", + "2o3samente.", + "mini4a5tur", + "multi1h", + "multi1a2", + "multi1e2", + "multi1i2", + "multi1o2", + "multi1u2", + "multi1á2", + "multi1é2", + "multi1í2", + "multi1ó2", + "multi1ú2", + "miria1h", + "miria1a2", + "miria1e2", + "miria1i2", + "miria1o2", + "miria1u2", + "miria1á2", + "miria1é2", + "miria1í2", + "miria1ó2", + "miria1ú2", + "mono1h", + "mono1a2", + "mono1e2", + "mono1i2", + "mono1o2", + "mono1u2", + "mono1á2", + "mono1é2", + "mono1í2", + "mono1ó2", + "mono1ú2", + "2i3co.", + "2i3cos.", + "2i3ca.", + "2i3cas.", + "namo1h", + "namo1a2", + "namo1e2", + "namo1i2", + "namo1o2", + "namo1u2", + "namo1á2", + "namo1é2", + "namo1í2", + "namo1ó2", + "namo1ú2", + "necro1h", + "necro1a2", + "necro1e2", + "necro1i2", + "necro1o2", + "necro1u2", + "necro1á2", + "necro1é2", + "necro1í2", + "necro1ó2", + "necro1ú2", + "neo1h", + "neo1a2", + "neo1e2", + "neo1i2", + "neo1o2", + "neo1u2", + "neo1á2", + "neo1é2", + "neo1í2", + "neo1ó2", + "neo1ú2", + "3c2neor", + "neto1h", + "neto1a2", + "neto1e2", + "neto1i2", + "neto1o2", + "neto1u2", + "neto1á2", + "neto1é2", + "neto1í2", + "neto1ó2", + "neto1ú2", + "norte1h", + "norte1a2", + "norte1e2", + "norte1i2", + "norte1o2", + "norte1u2", + "norte1á2", + "norte1é2", + "norte1í2", + "norte1ó2", + "norte1ú2", + "octo1h", + "octo1a2", + "octo1e2", + "octo1i2", + "octo1o2", + "octo1u2", + "octo1á2", + "octo1é2", + "octo1í2", + "octo1ó2", + "octo1ú2", + "octa1h", + "octa1a2", + "octa1e2", + "octa1i2", + "octa1o2", + "octa1u2", + "octa1á2", + "octa1é2", + "octa1í2", + "octa1ó2", + "octa1ú2", + "oligo1h", + "oligo1a2", + "oligo1e2", + "oligo1i2", + "oligo1o2", + "oligo1u2", + "oligo1á2", + "oligo1é2", + "oligo1í2", + "oligo1ó2", + "oligo1ú2", + "omni1h", + "omni1a2", + "omni1e2", + "omni1i2", + "omni1o2", + "omni1u2", + "omni1á2", + "omni1é2", + "omni1í2", + "omni1ó2", + "omni1ú2", + "i2o.", + "i2os.", + "paleo1h", + "paleo1a2", + "paleo1e2", + "paleo1i2", + "paleo1o2", + "paleo1u2", + "paleo1á2", + "paleo1é2", + "paleo1í2", + "paleo1ó2", + "paleo1ú2", + ".pa4n1a4meri", + ".pa4n1europ", + ".pa4n1afri", + ".pa4n1hisp", + ".pa4n1ópti", + "para1h", + "para1a2", + "para1e2", + "para1i2", + "para1o2", + "para1u2", + "para1á2", + "para1é2", + "para1í2", + "para1ó2", + "para1ú2", + "para2is.", + "aí5so.", + "aí5sos.", + "para4íso", + "para4ulata", + "penta1h", + "penta1a2", + "penta1e2", + "penta1i2", + "penta1o2", + "penta1u2", + "penta1á2", + "penta1é2", + "penta1í2", + "penta1ó2", + "penta1ú2", + "piezo1h", + "piezo1a2", + "piezo1e2", + "piezo1i2", + "piezo1o2", + "piezo1u2", + "piezo1á2", + "piezo1é2", + "piezo1í2", + "piezo1ó2", + "piezo1ú2", + "pluri1h", + "pluri1a2", + "pluri1e2", + "pluri1i2", + "pluri1o2", + "pluri1u2", + "pluri1á2", + "pluri1é2", + "pluri1í2", + "pluri1ó2", + "pluri1ú2", + "poli1h", + "poli1a2", + "poli1e2", + "poli1i2", + "poli1o2", + "poli1u2", + "poli1á2", + "poli1é2", + "poli1í2", + "poli1ó2", + "poli1ú2", + "poli4u3r", + "poli4o5mie", + "poli4arq", + "poli4árq", + "poli4éste", + "poli4andr", + "poli4antea", + "poli4arca", + "expoli4", + ".pos2t2a2", + ".pos2t2e2", + ".pos2t2i2", + ".pos2t2o2", + ".pos2t2u2", + ".pos2t2á2", + ".pos2t2é2", + ".pos2t2í2", + ".pos2t2ó2", + ".pos2t2ú2", + ".pos3tin", + ".pos3tín", + "pos3ta.", + "pos3tas.", + "s3te.", + "s3tes.", + "s3tal.", + "s3ta3les.", + "s3ti3lla.", + "s3ti3llas.", + "s3ti3llón.", + "s3ti3llones.", + "s3tor.", + "s3tora.", + "s3toras.", + "s3tores.", + ".pos3tó3ni", + ".pos3terg", + ".pos3te3ri", + ".pos3ti3go", + ".pos3ti3la", + ".pos3ti3ne", + ".pos3ti3za", + ".pos3ti3zo", + ".pos3tu3ra", + ".pos3tu3la", + ".pos3tu3lá", + ".pos3tu3le", + ".pos3tu3lé", + ".post3elec", + ".post3impr", + ".post3ind", + ".post3ope", + ".pos2t3rev", + ".pos2t3rom", + ".pre2a2", + ".pre2e2", + ".pre2i2", + ".pre2o2", + ".pre2u2", + ".pre2á2", + ".pre2é2", + ".pre2í2", + ".pre2ó2", + ".pre2ú2", + ".pre1h2", + "pre3elij", + "pre3elig", + "pre3exis", + "pre3emin", + "preo3cup", + "preo2cúp", + "pre3olí", + "pre3opin", + ".pro2a2", + ".pro2e2", + ".pro2i2", + ".pro2o2", + ".pro2u2", + ".pro2á2", + ".pro2é2", + ".pro2í2", + ".pro2ó2", + ".pro2ú2", + ".pro3abort", + "proto1h", + "proto1a2", + "proto1e2", + "proto1i2", + "proto1o2", + "proto1u2", + "proto1á2", + "proto1é2", + "proto1í2", + "proto1ó2", + "proto1ú2", + "psico1h", + "psico1a2", + "psico1e2", + "psico1i2", + "psico1o2", + "psico1u2", + "psico1á2", + "psico1é2", + "psico1í2", + "psico1ó2", + "psico1ú2", + "3p2sic", + "3p2siq", + "quete1h", + "quete1a2", + "quete1e2", + "quete1i2", + "quete1o2", + "quete1u2", + "quete1á2", + "quete1é2", + "quete1í2", + "quete1ó2", + "quete1ú2", + "radio1h", + "radio1a2", + "radio1e2", + "radio1i2", + "radio1o2", + "radio1u2", + "radio1á2", + "radio1é2", + "radio1í2", + "radio1ó2", + "radio1ú2", + "ranco1h", + "ranco1a2", + "ranco1e2", + "ranco1i2", + "ranco1o2", + "ranco1u2", + "ranco1á2", + "ranco1é2", + "ranco1í2", + "ranco1ó2", + "ranco1ú2", + ".re2a2", + ".re3e4", + ".re2i2", + ".re2o2", + ".re2u2", + ".re2á2", + ".re2é2", + ".re2í2", + ".re2ó2", + ".re2ú2", + "ea3cio.", + "ea3cios.", + "ea3cia.", + "ea3cias.", + ".re3abr", + ".re3ábr", + ".re3afirm", + ".re3afírm", + ".re3ajust", + ".rea3júst", + ".rea3liza", + ".rea3lizá", + ".rea3líza", + ".re3alim", + ".rea3lism", + ".rea3list", + ".re3anim", + ".re3aním", + ".re3aparec", + ".re3ubica", + ".re3ubíca", + ".reu3mati", + ".reu3máti", + ".re3unir", + ".re3unír", + ".re3usar", + ".re3usár", + ".re3utiliz", + ".re3utilíz", + ".re3a2eg", + ".re3a2q", + ".re3a2z", + ".re3a2grup", + ".re3i2m", + ".re3inc", + ".re3ing", + ".re3ins", + ".re3int", + ".re3o2b", + ".re3oc", + ".re3oj", + ".re3orga", + ".re3unt", + "rmano1h", + "rmano1a2", + "rmano1e2", + "rmano1i2", + "rmano1o2", + "rmano1u2", + "rmano1á2", + "rmano1é2", + "rmano1í2", + "rmano1ó2", + "rmano1ú2", + "retro1h", + "retro1a2", + "retro1e2", + "retro1i2", + "retro1o2", + "retro1u2", + "retro1á2", + "retro1é2", + "retro1í2", + "retro1ó2", + "retro1ú2", + "romo1h", + "romo1a2", + "romo1e2", + "romo1i2", + "romo1o2", + "romo1u2", + "romo1á2", + "romo1é2", + "romo1í2", + "romo1ó2", + "romo1ú2", + "semi1h", + "semi1a2", + "semi1e2", + "semi1i2", + "semi1o2", + "semi1u2", + "semi1á2", + "semi1é2", + "semi1í2", + "semi1ó2", + "semi1ú2", + "i2a.", + "i2as.", + "2ótic", + "emi2o2", + "2seudo1h", + "2seudo1a2", + "2seudo1e2", + "2seudo1i2", + "2seudo1o2", + "2seudo1u2", + "2seudo1á2", + "2seudo1é2", + "2seudo1í2", + "2seudo1ó2", + "2seudo1ú2", + "o2os.", + ".so3a4s", + "sobre1h", + "sobre1a2", + "sobre1e2", + "sobre1i2", + "sobre1o2", + "sobre1u2", + "sobre1á2", + "sobre1é2", + "sobre1í2", + "sobre1ó2", + "sobre1ú2", + "socio1h", + "socio1a2", + "socio1e2", + "socio1i2", + "socio1o2", + "socio1u2", + "socio1á2", + "socio1é2", + "socio1í2", + "socio1ó2", + "socio1ú2", + "a3rio.", + "a3rios.", + "3logía", + "4ón.", + "4ones.", + "4i4er.", + "4o2ico.", + "4o2icos.", + "4o2ica.", + "4o2icas.", + ".su2b2a2", + ".su2b2e2", + ".su2b2i2", + ".su2b2o2", + ".su2b2u2", + ".su2b2á2", + ".su2b2é2", + ".su2b2í2", + ".su2b2ó2", + ".su2b2ú2", + ".sub2i3ll", + ".sub2i3mien", + ".sub3índ", + ".sub3ími", + ".su4b3ray", + ".sub3aflue", + ".sub3arr", + ".sub3enten", + ".sub3estim", + ".sub3estím", + ".sub3ofici", + ".sub3urba", + ".sub3alter", + ".sub3insp", + ".su3bién", + ".su3bir", + ".su3bam", + ".su3bordin", + ".su3bordín", + ".sub3acuá", + ".sub3espe", + ".sub3esta", + ".su3burbi", + ".su4b5rein", + ".su2d1a2fr", + ".su2d1a2me", + ".su2d1este", + "su4d3oes", + ".su2r1a2me", + ".su2r1est", + ".su2r1oes", + "supe2r3r", + "supe2r1a2", + "supe2r1e2", + "supe2r1i2", + "supe2r1o2", + "supe2r1u2", + "supe2r1á2", + "supe2r1é2", + "supe2r1í2", + "supe2r1ó2", + "supe2r1ú2", + "ra5ra", + "ra5rá", + "ra5re", + "ra5ré", + "ra5rí", + "ra5ro", + "supe3r4a4r", + "supe3r4á4r", + "supe3r4á3vit.", + "supe3r4á3vits.", + "super4ior", + "4a3ción.", + "4a3ciones.", + "4e3rior.", + "4e3riores.", + "4e3riora.", + "4e3rioras.", + "4e3riormente.", + "4e3rioridad.", + "4e3rioridades.", + "4e3r4a3ble.", + "4e3r4a3bles.", + "4e3r4a3blemente.", + "pe5r4ante", + "perpon5d6r", + "supra1h", + "supra1a2", + "supra1e2", + "supra1i2", + "supra1o2", + "supra1u2", + "supra1á2", + "supra1é2", + "supra1í2", + "supra1ó2", + "supra1ú2", + "sup6ra", + "talmo1h", + "talmo1a2", + "talmo1e2", + "talmo1i2", + "talmo1o2", + "talmo1u2", + "talmo1á2", + "talmo1é2", + "talmo1í2", + "talmo1ó2", + "talmo1ú2", + "tele1h", + "tele1a2", + "tele1e2", + "tele1i2", + "tele1o2", + "tele1u2", + "tele1á2", + "tele1é2", + "tele1í2", + "tele1ó2", + "tele1ú2", + "4ósteo.", + "4ósteos.", + ".tele1imp", + ".tele1obj", + ".tele4o3lót", + "termo1h", + "termo1a2", + "termo1e2", + "termo1i2", + "termo1o2", + "termo1u2", + "termo1á2", + "termo1é2", + "termo1í2", + "termo1ó2", + "termo1ú2", + "tetra1h", + "tetra1a2", + "tetra1e2", + "tetra1i2", + "tetra1o2", + "tetra1u2", + "tetra1á2", + "tetra1é2", + "tetra1í2", + "tetra1ó2", + "tetra1ú2", + "topo1h", + "topo1a2", + "topo1e2", + "topo1i2", + "topo1o2", + "topo1u2", + "topo1á2", + "topo1é2", + "topo1í2", + "topo1ó2", + "topo1ú2", + ".tra2sa2", + ".tra2se2", + ".tra2si2", + ".tra2so2", + ".tra2su2", + ".tra2sá2", + ".tra2sé2", + ".tra2sí2", + ".tra2só2", + ".tra2sú2", + ".tra3s2o3ñ", + "tran2sa2", + "tran2se2", + "tran2si2", + "tran2so2", + "tran2su2", + "tran2sá2", + "tran2sé2", + "tran2sí2", + "tran2só2", + "tran2sú2", + "tran2s1alp", + "tran2s1and", + "tran2s1atl", + "tran2s1oce", + "tran2s1ur", + "tran3sacci", + "tran3seún", + "tran3se3xu", + "tran3si3cion", + "tran3si3ción", + "tran3si3gi", + "tran3si3gí", + "tran3si3ge", + "tran3si3ja", + "tran3si3já", + "tran3si3jo", + "tran3sisto", + "tran3si3ta", + "tran3si3tá", + "tran3si3te", + "tran3si3té", + "tran3si3to", + "tran3si3tó", + "tran3si3tiv", + "tran3si3tori", + "tran3subst", + "tran3sust", + ".tri1ó2x", + "tropo1h", + "tropo1a2", + "tropo1e2", + "tropo1i2", + "tropo1o2", + "tropo1u2", + "tropo1á2", + "tropo1é2", + "tropo1í2", + "tropo1ó2", + "tropo1ú2", + "ultra1h", + "ultra1a2", + "ultra1e2", + "ultra1i2", + "ultra1o2", + "ultra1u2", + "ultra1á2", + "ultra1é2", + "ultra1í2", + "ultra1ó2", + "ultra1ú2", + "vice1h", + "vice1a2", + "vice1e2", + "vice1i2", + "vice1o2", + "vice1u2", + "vice1á2", + "vice1é2", + "vice1í2", + "vice1ó2", + "vice1ú2", + "video1h", + "video1a2", + "video1e2", + "video1i2", + "video1o2", + "video1u2", + "video1á2", + "video1é2", + "video1í2", + "video1ó2", + "video1ú2", + "xeno1h", + "xeno1a2", + "xeno1e2", + "xeno1i2", + "xeno1o2", + "xeno1u2", + "xeno1á2", + "xeno1é2", + "xeno1í2", + "xeno1ó2", + "xeno1ú2", + "zoo1h", + "zoo1a2", + "zoo1e2", + "zoo1i2", + "zoo1o2", + "zoo1u2", + "zoo1á2", + "zoo1é2", + "zoo1í2", + "zoo1ó2", + "zoo1ú2", + "wa3s4h", + "3hablante", + "3habiente", + "3aficionad" + ]} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/et.json b/borb/pdf/canvas/layout/hyphenation/resources/et.json new file mode 100644 index 000000000..76601c439 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/et.json @@ -0,0 +1,3695 @@ +{ + "patterns":[ + ".aa4", + ".aasta5", + ".ahe4li", + ".al4a", + ".al4gas", + ".antiik5", + ".ap3l", + ".ap3r", + ".art5r", + ".au3a", + ".eba3", + ".ee4", + ".eela4", + ".ek3l", + ".ek5r", + ".gu4a", + ".hie5", + ".idi4", + ".inim5a", + ".ise5e", + ".is4o", + ".ja4e", + ".ja4t", + ".ka4e", + ".ka2o", + ".ke5hi", + ".kip5r", + ".ku4pl", + ".ku5sa", + ".kusee4", + ".la4pl", + ".le4e", + ".le5hi", + ".lemmik5", + ".le5se", + ".lõpp3", + ".ma4a", + ".maa5a", + ".ma5j", + ".mi5sa", + ".mo4e", + ".nek3", + ".ni4p", + ".nisu5", + ".noa3", + ".oa3", + ".oo4", + ".pap4p", + ".pea3a", + ".raadio5", + ".re4a", + ".re2o", + ".rep3r", + ".re5so", + ".rü5hi", + ".sak5r", + ".sap3r", + ".se4a", + ".sk4", + ".skaa5", + ".so5li", + ".sp4", + ".st4", + ".teoo4", + ".tet3r", + ".tina5", + ".toa3", + ".ts4", + ".tsi4s", + ".turba5", + ".tus2", + ".tu3sa", + ".ul4ga", + ".ulu4k", + ".um2b", + ".uu4", + ".vaa3l", + ".vask3", + ".vere3", + ".õppe5", + ".ää4", + ".õõ4", + ".öö4", + ".ühi4s", + ".üle3e", + ".ür2", + ".üü4", + "aaa5l", + "a1aas", + "4aab", + "aa4bi.", + "5aadel.", + "aadio5a", + "a1ae", + "a4aer", + "aa4fe", + "aa4gan", + "aa2h", + "aa4has", + "aa1i", + "aai4g", + "aa4is", + "a5ait", + "aa2j", + "aa2la", + "aa4lae", + "aala4r", + "aa4las", + "aa4leh", + "aa4lek", + "aa4lel", + "aalg4", + "aali4ke", + "aal3k", + "a5allik", + "aal3t4", + "aa2l3õ", + "aa4lü", + "aa4mad", + "aa4man", + "aa4mee", + "a5ameer", + "aa4mö", + "4aan", + "aa4nam", + "aa4nat", + "a5andm", + "aan4duu", + "aa5ni", + "aant4", + "aa4pek", + "aa4pen", + "aa4ra4b", + "aa4raf", + "aa4raj", + "aara4l", + "a5arter", + "aa2r3õ", + "aa4rö", + "aa4rü", + "aa4sab", + "aa4sai", + "aa4sar", + "aa2se4", + "aa4so", + "3aas5ta", + "a5a4sul", + "aa4sut", + "aa4sü", + "4aat", + "aa4taa", + "aa4tas", + "aa4teh", + "5aatom", + "aa4tõ", + "aa4tüh", + "a1au", + "aaši5", + "a1b", + "4a3ba", + "a5be", + "3abie", + "a4bij", + "5abs", + "a1d", + "a4dad", + "a4deo", + "a2der", + "a3di", + "adu4r", + "adu3se", + "a4dö", + "a5eali", + "ae2d", + "3aed.", + "2aee", + "a3ees", + "ae4f", + "1aeg.", + "ae4ga4j", + "ae4gi", + "3aegn", + "2a1e2h", + "4aei", + "4aek", + "a3eks", + "2ael", + "a5elani", + "ae2le", + "ae4lo", + "ae4lu.", + "4ae2m", + "4aen", + "ae4pi", + "ae2s", + "a3esi", + "4aett", + "a1f", + "a4fek", + "a1g", + "3a4gent", + "agia4", + "a3go", + "5agreg", + "agud4", + "1a2hi.", + "ah4kar", + "5ahnu", + "4ai.", + "ai2a", + "5aian", + "ai4hu", + "ai4ke", + "ai4kl", + "a3ilm", + "ai4lu", + "ai4me.", + "aimp4", + "4ain.", + "a5inf", + "a5inime", + "4ains", + "a3inse", + "ai4pr", + "ai2sa", + "5aistin", + "aist4r", + "ai4va", + "a1j", + "a3ja.", + "a4jale", + "5ajalo", + "a4jalu", + "1a2jam", + "4ajo", + "ajut4", + "a1k", + "akaa4s", + "a4kaat", + "ak4as", + "3aken.", + "a3ki", + "ak4kis", + "ak4kr", + "a3klas", + "ak4lau", + "a5klii", + "a3krii", + "ak3ro", + "4aks", + "ak4te4l", + "a2ku.", + "aku4map", + "a5kvali", + "3alald", + "ala4mas", + "a4laüh", + "ale4le", + "al4et", + "alet4t", + "5algat", + "al4ged", + "a3li", + "ali4san", + "a4liste", + "5allee.", + "al4le4h", + "al4luj", + "al2lü", + "a4lob", + "als4", + "4alt", + "4alu.", + "a4lud", + "1alun", + "alü4h", + "a4lüt", + "a1m", + "4am.", + "a5ma.", + "a4maad", + "3ametn", + "amit4", + "am4o", + "am4pal", + "5amper.", + "4amü", + "2an.", + "3analü", + "5anatoom", + "an4das", + "an4deo", + "an4dog", + "2ane", + "a4neh", + "a3ni", + "a4niso", + "4anj", + "an4kr", + "3anku", + "an4nah", + "4ano", + "anos4", + "3ansam", + "4anst", + "3anten", + "5antilo", + "ao4d", + "ao4he", + "a3oht", + "ao4j", + "ao2le", + "ao2lu", + "ao2m", + "a3oma", + "ao4nu", + "aoo4p", + "ao2pe", + "a5opera", + "ao2r", + "a5oras", + "a1osa", + "ao4su", + "a1ots", + "a1p", + "a2par", + "5aparaa", + "a5part", + "a3parv", + "a3pi", + "a3pla", + "a3po", + "ap4pal", + "ap4pin", + "ap4pis", + "ap3ri", + "ap3ron", + "a4pru", + "a3pä", + "4ara", + "arak4k", + "a4rase", + "5areng", + "3aretu", + "3arhit", + "2ari", + "ari4al", + "ari4ap", + "4ark", + "ar4kel", + "5armast", + "5armee.", + "a4ro4l", + "1arst", + "5artikk", + "3arua", + "3arvam", + "5arvestus", + "1arvu", + "ar4vää", + "asa4las", + "a4same", + "a4sau", + "ase4ma", + "as5ema.", + "1a2sen", + "a4seos", + "a4sese", + "a4sett", + "3a4setu", + "as4fä", + "1a2si.", + "asi4ala", + "asi3an", + "a4sind", + "asip4", + "5asjan", + "askõ4", + "as4kõl", + "a5slaav", + "a4sok", + "as3ole", + "aso4p", + "as4pet", + "as3pl", + "as2po", + "a3spor", + "as4san", + "ass5t", + "4asti", + "5astme", + "ast4rak", + "a4su4b", + "a4sud", + "asui4", + "a4suss", + "a5suu", + "a1t", + "a3ta", + "a4taž", + "5ateljee", + "atii4v", + "atmi4k", + "5atroo", + "at4ros", + "at4rus", + "at4soo", + "ats4p", + "at4sü", + "att4s", + "4atu", + "au2a", + "aua3l", + "au4ba.", + "4aud", + "au4de.", + "a3ui", + "4au2j", + "au4ke", + "aulu3", + "aulus4", + "au4pü4", + "a5urg", + "aus4o", + "au2su", + "a3usul", + "1auto", + "autoo4", + "auto5s", + "aut4r", + "a1v", + "av4a", + "a4vans", + "a3var", + "a4veh", + "a1õ2", + "a1ö2", + "a1ä2", + "a1ü2", + "až4ni", + "4a1š", + "5baa", + "baa4g", + "baa4k", + "baa4s", + "bab4", + "bae4", + "bag4", + "ba4he", + "ba4ju.", + "ba3k4r", + "bak4s", + "bak4v", + "bap4l", + "bap4r", + "ba4rõ", + "basa4s", + "bas4ko", + "bas4pe", + "bat4r", + "4bb", + "2bd", + "be3a4", + "beb2", + "bef4", + "beg4", + "be4lü4", + "be2ra2", + "berk4", + "bero4", + "be4rõ4", + "be4si", + "be4st", + "bes4tis", + "bet4r", + "4bf", + "4bh", + "bha4", + "bi4ala", + "bia4v", + "2bi1e", + "bi4en", + "4binõ", + "bi4pla", + "bis4a", + "bi4si", + "bis4k", + "2b1j", + "2b1k", + "2b1l", + "bl4e", + "blet4", + "b2lon", + "2bm", + "2bn", + "4bort", + "2bp", + "2b1r", + "3brig", + "bros4", + "2bs", + "b3so", + "2bt4", + "4buks", + "bu4lõ", + "3bum", + "buse5", + "bu4si4", + "bus4kr", + "2b3v", + "1da", + "daa2", + "da5ab", + "daala4", + "da4do", + "dae4", + "daf4", + "d5ain", + "da4leh", + "da4lum", + "da4lus", + "5dam", + "4dann", + "da4num", + "dao4", + "darat4", + "4darb", + "dar4de", + "4da4re", + "4daru", + "2darv", + "d3arv.", + "4dasen", + "da4sum", + "2d5b2", + "2dd", + "1de", + "dea2", + "2deaa", + "de5av", + "ded4", + "2dee.", + "dee4le", + "4dehe", + "dek3l", + "dek4s", + "5del.", + "de4lau", + "4de4lek", + "4deluv", + "de4pr", + "dep5ressi", + "dere4", + "de4rel", + "de4rep", + "5dero", + "deru4", + "2df", + "2d5g", + "2d1h", + "1di", + "dia4v", + "did4", + "dig4", + "dii4g", + "diina4", + "dii4sa", + "dii4su", + "4dilm", + "4dini", + "di2os", + "di4plo", + "dis4ai", + "di4sar", + "di4sas", + "dis4pr", + "dit4r", + "2d1j", + "2d3k4", + "dkop4", + "2d1l", + "dle4v", + "dlust4", + "2d1m", + "dmee4", + "dmi4k", + "2d1n", + "1do", + "do4h", + "doi4r", + "2dos", + "d3osa", + "5dosk", + "2d3p4", + "2d1r4", + "5draama.", + "drao4", + "3dreen", + "d4rel", + "d2ren", + "3drena", + "2d1s4", + "dsar4", + "2d3t2", + "1du", + "du4b", + "due4", + "2d5uks", + "d4u2s", + "du4s1a", + "du4see", + "dusk4", + "2d1v", + "2dõ", + "dõ4l", + "4dä", + "2dül", + "dü4li", + "4dü4r", + "5düü", + "4dž", + "2d2š", + "3dšem", + "eaa2", + "ea3aj", + "e1aas", + "ea2b", + "e3abi", + "e1ae", + "ea2hi", + "e1ai", + "ea2j", + "eak4s", + "eak4v", + "ea2la", + "e3ala.", + "e1a4lu", + "ea2me", + "e5amet", + "e5ann", + "ea4nu", + "eao4", + "ea2pa", + "e1ar", + "ea4re", + "ea2s", + "e4ass", + "e5aste", + "e5asut", + "e3au", + "ea2v", + "e3ava.", + "e1b", + "e1d", + "ed4a", + "e3eali", + "e3ees", + "ee4fe", + "eei4", + "eek4r", + "ee2la", + "3eelar", + "e5elekt", + "eel5uu", + "ee4nai", + "ee4nal", + "ee4nam", + "ee4no", + "eent4", + "ee4pai", + "e5e4pit", + "5eepos", + "ee4ral", + "eer5ap", + "ee4ros", + "ee4rot", + "ee4sin", + "e5esine", + "ee4s5ist", + "5eeskir", + "ee4sü", + "ee4tõm", + "ee4tä", + "e1f", + "e1g", + "egaa4", + "egas4t", + "e4goi", + "4eha", + "e2he.", + "e2hi", + "e3hin", + "5ehist", + "1e4hit", + "5ehiti", + "eh4ta4", + "4ehä", + "ei4dul", + "ei4e", + "eie5ri", + "ei2ga", + "e3iga.", + "ei4ha", + "ei4he", + "e3ilm", + "ei2lu", + "ei4mem", + "5eine.", + "ei4roo", + "e5i4sa.", + "ei4sist", + "ei4tau", + "ei4tõ", + "ei4va.", + "e3j", + "e3ka", + "e4kahi", + "e3ke", + "ek4kap", + "ek2l", + "ek4lo", + "e3k4o", + "ek3re", + "e3krii", + "4eks.", + "5eksam.", + "3eksem", + "eksi3k", + "3ekska", + "eksp3r", + "5ekstr", + "ek4tül", + "e3kü", + "elaa4v", + "e4lagr", + "e2lam", + "3elamu", + "el4an", + "5elanik", + "eleis4", + "e4leks", + "5elektro", + "3eleme", + "5elevaato", + "e3li", + "e4lid", + "elii4t", + "el4kus", + "e4l4ob", + "elo4p", + "els4t", + "elt2r", + "el4tü", + "e2lu", + "1elu.", + "e5lub", + "elu5i4", + "1e4lun", + "e3lus.", + "e4luss", + "el5uss.", + "el4üh", + "e1m", + "5emand.", + "e5mat", + "emne3", + "emos4", + "emp4r", + "5emuls", + "endus3", + "5enelas", + "e5nem", + "3energ", + "e4nese", + "e4nesl", + "enk5l", + "enk4r", + "en4sal", + "en4tos", + "en4tü", + "eo5a", + "eo4ja", + "e3o4le", + "eo2lu", + "eo2ma", + "eoo4p", + "eo5pl", + "e3osa.", + "e3osak", + "e5osali", + "e5osav", + "eos4f", + "e3ots.", + "e1p", + "e3pl", + "e4pli", + "ep4lu", + "e1r", + "e3raa", + "5erakon", + "5erald", + "e4rao", + "erei2", + "erek4", + "5ergut", + "erih4", + "eri4uu", + "er4nau", + "e4ro4r", + "erp4", + "er2pr", + "ers4k", + "er4taa", + "er4tak", + "er4tes", + "e4rud", + "es1an", + "1e2se.", + "e5sek", + "e5sen", + "e5sil", + "eska4j", + "eska4s", + "eske4", + "es5kel", + "esk3l", + "esk3r", + "es2k5ö", + "es4laa", + "es3ole", + "es4or", + "es2po", + "e3spor", + "es4sist", + "4est", + "es4tü", + "e3su", + "esup4", + "e1t", + "e3t4a", + "e2ten", + "5etendus.", + "etii4s", + "et2ra", + "et4sin", + "et4soo", + "et4sü", + "et4taj", + "1ette", + "et4tru", + "et4tä", + "et4tü", + "4etu", + "e4tõ4d", + "e4tüm", + "eu4de", + "e3u2j", + "e3u2l", + "e5u2n", + "eu4p", + "eu4s", + "e5usk", + "e3uu", + "e1v", + "e3v4a", + "e1õ2", + "e3ö4", + "e1ä2", + "e1ü4", + "e1š", + "5faa", + "faa4n", + "4fa4d", + "2ff", + "1fi", + "fii4t", + "4fj", + "4fk", + "2f1l", + "f2lo", + "5floora", + "2f1n", + "1fo", + "folk5", + "fo4ro", + "2f1r", + "f2re", + "3frees", + "2fs", + "2f1t", + "ftat4", + "3fu", + "3gaa", + "gaa4r", + "4gaast", + "4gab", + "4gaed", + "gag4", + "2gah", + "ga2hi", + "gai4g", + "ga5is", + "ga3k4", + "5gam", + "ga3o", + "ga3p", + "4gart", + "4garv", + "g4as", + "4ga4suk", + "5gata", + "gat4r", + "gau4", + "ga4va.", + "ga4van", + "2g3b", + "2gd4", + "gea4", + "ge4du.", + "gek4", + "ge5kl", + "4gekse", + "ge4lah", + "gela4s", + "ge4leh", + "ge3lu", + "ge4lä", + "ge4nan", + "geok4", + "ge4or", + "4geos", + "4gerg", + "ge4rus", + "4gf", + "4gg", + "2g1h", + "gi2aj", + "gii4s", + "gi3k", + "4ginf", + "4gint", + "gio4r", + "gi3pl", + "gi4san", + "gi4sil", + "gi4sö", + "git4r", + "gi4vaj", + "2g1j", + "2g1k", + "2g1l", + "g4lüt", + "2g1m", + "2g1n", + "gne4ta", + "gne4te4", + "4goh", + "go4le", + "go4ma", + "go4po", + "2g1p4", + "2g1r", + "g2ran", + "5granaa", + "3g2rav", + "g2ru", + "3grup", + "4g1s4", + "2g1t2", + "g3tr", + "3gu", + "gub4", + "gue4", + "gu5i", + "gu4nel", + "gu3o", + "gup4", + "gu4sen", + "gu4sä", + "guu4j", + "2g1v", + "2g3õ4", + "4gä", + "gü4l", + "3ha", + "haa4ri", + "haa4s", + "hal4lai", + "5har", + "hasa4", + "hat4r", + "1he", + "hee4m", + "hee4s", + "hei4s", + "hek4v", + "2hel.", + "hels4", + "het4r", + "4h1h", + "hhe4l", + "1hi", + "hia2", + "hii4s", + "5hil", + "5him", + "hio2", + "hi4san", + "hi4sar", + "hise4l", + "hi4st4", + "hi4sü", + "5hits", + "h1j", + "hjaa4", + "4hk", + "h4kal", + "h4kas", + "h4kis", + "hk3l", + "h4ko4", + "hk3r", + "hks4", + "hkt4", + "h4kusk", + "h4ku4su", + "h4kõ", + "h4kä", + "h1l", + "hle4n", + "4h1m", + "h4mo4", + "h4mü", + "h1n", + "hnika5", + "1ho", + "hom4o", + "4hp4", + "hrs4", + "4ht", + "h2ta", + "hta2j", + "h5tak", + "hta4l", + "ht5ar", + "hta4su", + "h4teg", + "hte4n", + "hte4r", + "h4tid", + "h4to", + "h4tr", + "ht5s4", + "h4tö", + "h4tä", + "1hu", + "hu3a", + "hue4", + "hui4d", + "huk4l", + "hup4", + "hu3sa", + "2h1v", + "hvad4", + "hvast4", + "hve4l", + "h4vini", + "h4vo", + "hvu4s", + "1hõ", + "3hö", + "1hä", + "3hü", + "4ia", + "iaa2", + "iaa4l", + "ia5alane", + "i3aast", + "i5a4bi", + "ia4bo", + "i1ae", + "ia2g", + "ia2h", + "i3aine", + "i1a2j", + "ia4kr", + "i3akt", + "i1a2la", + "i5alb", + "i3alli", + "i1a2lu", + "ia2me", + "i5amet.", + "ia2na", + "i5andj", + "i5andm", + "ia4ne", + "i5anne", + "ia2p4", + "i3apar", + "ia5pr", + "ia2re", + "i3arm", + "ia4ru", + "i1arv", + "ia2s", + "ias4ke", + "i5aste.", + "i3asu", + "ia4tel", + "iat4r", + "i1au", + "iau4l", + "i5a4vaj", + "i5avald", + "i1b", + "i4bad", + "i4bau", + "i1d", + "5ideaa", + "idii4", + "idlu4", + "ie2", + "i3eali", + "i1eel", + "iei4", + "i1eks", + "i5elani", + "i1elu", + "i3eos", + "ie4ri", + "iers4", + "i3esi", + "ie5so", + "i5ess", + "ie4st", + "i3eten", + "ietu4s", + "i1f", + "i1g", + "i4ga4g", + "i5gar", + "5igatsu", + "i4gav", + "ig4ram", + "ih4le", + "ih4te", + "ih4tin", + "ii4a", + "ii4deo", + "ii4du.", + "iie3", + "ii4es", + "ii4gaa", + "ii4ga4s", + "ii4ha", + "iika4", + "ii4kis", + "iik4ro", + "iiks4t", + "iikt4", + "ii4lab", + "ii4lad", + "ii4lae", + "ii4last", + "ii4leh", + "ii4lel", + "ii4les", + "ii2lõ4", + "ii4lü", + "ii4mai", + "iimat4", + "ii4met", + "ii4nai", + "ii4nau", + "i5inde", + "i5inf", + "ii3ni", + "i5inimen", + "iinit4", + "iink4", + "iino4", + "ii4nol", + "ii4nos", + "ii4nõ", + "ii4pr", + "ii4ran", + "ii4rau", + "iirs4", + "ii4rü", + "ii4san", + "iise4l", + "ii4sev", + "ii4sik.", + "ii2ta", + "ii4teh", + "iito4", + "ii4tom", + "ii4tos", + "iit5re", + "ii4tõ", + "ii4tü", + "ii4ves", + "ii4vet", + "ii2vo", + "i1j", + "i1k", + "i4kalu", + "i4ka4re", + "i4kark", + "i4kaut", + "i4k5elu", + "ike4si", + "i3klaa", + "i3klas", + "ik4ler", + "i5klub", + "ikop4", + "ikos4", + "i4kov", + "i3kre", + "ik3ro", + "ik4sar", + "iks4k", + "iks4po", + "ik3t2r", + "i3ku", + "iku3a", + "il4a", + "ila4s", + "i4lasi", + "ilia4", + "i4lisi", + "il4kan", + "il4kõ", + "ille5s", + "illo4", + "5ilme.", + "il4mot", + "3ilmut", + "ilo5g2", + "ilp3l", + "il4ti", + "i5lun", + "ilu3sa", + "5ilustu", + "ilü4h", + "i1m", + "i4melu", + "imi4g", + "imisu4", + "i4mo4l", + "5imper", + "i1n", + "ind3al", + "5indeks", + "inde4r", + "ind4re", + "2ine", + "inee4s", + "i4neh", + "i4neks", + "ini4kü", + "i2nim", + "ini4mas", + "i4nime", + "5inimene", + "5iniml", + "i4nini", + "inna5a", + "inni4si", + "3insen", + "1insp", + "1inst", + "3inven", + "io4de", + "io4h", + "i3oht", + "i5ohv", + "io4j", + "i5oks.", + "io2le", + "i3olek", + "io2lu", + "i5oluk", + "io4lü", + "io2ma", + "i5oman", + "ioo4da", + "ioo4ne", + "iooni3", + "io2p", + "i3oper", + "i5ork", + "i1osa", + "ios4f", + "ios4p", + "ios4t", + "iost4r", + "io4su", + "i3ots.", + "i3otsi", + "io4tü", + "i1p", + "i3pla", + "ip4lu", + "ip4ro", + "ip4sas", + "ipse4", + "ip4sep", + "ip4sus", + "i4ra4b", + "i4rase", + "ir4dis", + "ir4nõ", + "i2rui", + "iruu4", + "isaa4v", + "isa4ja", + "i4sana", + "isa4re", + "i4sarh", + "i4selo", + "i3sem", + "iset4s", + "isi4g", + "i2so", + "3isola", + "i5soli", + "is5oma", + "iso4r", + "i3sot", + "i3s4pek", + "is3pl", + "i3s4por", + "is3sp", + "5istand", + "i5s4tiil", + "5istme", + "ist4ru", + "ist4se", + "i5stsee", + "5istutu", + "i3su", + "i4sõm", + "i2sü4l", + "isü4r", + "2it", + "itaa2", + "itee4l", + "it4rak", + "it4ras", + "it2ru4", + "its3k", + "it4so", + "itte1", + "itt4s", + "iu4b", + "iu2da", + "iu4gi", + "iu2j", + "i3uju", + "iu4la", + "iu4mar", + "iu4me4", + "iu2mo", + "iu4ni", + "iu4pu", + "iu5sa", + "i5uss.", + "iu2su", + "iuti4", + "i3uu", + "i1v", + "i4vad", + "i4vakt", + "i4va4lus", + "i4vant", + "i4vau", + "i4veh", + "ive4l", + "iviil5", + "i4vü", + "i1õ2", + "i1ä4", + "i1ü2", + "i1ž", + "j4a", + "3jaa", + "ja1aj", + "jaa4l", + "jaa4r", + "jaa4s", + "jab4", + "jad4", + "ja5el", + "jae4r", + "jag4", + "ja3i2", + "ja5kra", + "5jama", + "5jame", + "jao4h", + "ja3p4", + "jas4ke", + "jas4tii", + "jat4r", + "jat4su", + "jau4b", + "jau4l", + "je3lu", + "3jo", + "joo4k", + "jue4", + "5juma", + "ju4sei", + "juse4l", + "5jõ", + "5jä", + "1ka", + "kaa4da", + "kaa3de", + "ka5aj", + "ka4al", + "kaa4ra", + "kaa4sis", + "kaa4ta", + "4kader", + "4kaed", + "4kaeg", + "kae3lu", + "kag4", + "kahe5i", + "4kaia", + "2kain", + "ka5ist", + "kaitse5", + "ka4jav", + "ka4ju.", + "k5a4lus", + "ka4pl", + "ka2pr", + "4karm", + "4kaset", + "k5asj", + "kat4r", + "2k3b", + "2kd4", + "1k2e", + "ke4el", + "kee3lu", + "2kehi", + "4keks", + "ke4laj", + "ke4lak", + "ke4lok", + "4kemb", + "2ken.", + "5kene", + "keo2", + "kes2k", + "kesk3a4", + "ket5ra", + "ket4te4", + "2kf4", + "4kg", + "2k1h4", + "1ki", + "kie4", + "kik4r", + "4kinf", + "kio4", + "ki4pr", + "kis4a", + "ki4san", + "ki4sik", + "4kiste", + "kit4r", + "kiu4d", + "kiu3su", + "2k1j", + "4k1k", + "k3kra", + "kks4", + "kku4ro", + "2k1l4", + "k2la", + "k3la.", + "3klaas", + "k3lai", + "3k4lamb", + "k3lan", + "3klapp", + "5klassi", + "k3lat", + "5klaver", + "kle4a", + "k4lee", + "k2lei", + "3kleit", + "k3lem", + "k4lib", + "5klibu", + "klig4", + "k2lii", + "3kliim", + "5kliiste", + "k3lik", + "k3lin", + "k4link", + "k2lo", + "k3loom", + "3klots", + "k2lub", + "k3lus.", + "klu4sa", + "klu4sõ", + "k4lut", + "2k1m", + "2k1n", + "knaa4", + "k4nip", + "1ko", + "2koks", + "k4ol", + "ko4len", + "koo4sa", + "4ko4rie", + "4korpi", + "k5osa.", + "ko4va", + "2k3p4", + "2k2r", + "k4raan", + "5kraana", + "3kraav", + "3krab", + "3k4rae", + "k3rai", + "3kramp", + "4kran", + "k3rau", + "5kredii", + "3k4reem", + "4kreg", + "5k4res", + "k5ret", + "4krip", + "5kristal", + "k4roh", + "3krohv", + "k4rook", + "k3rut", + "3kruu", + "3kruvi", + "4k3rü", + "4k1s", + "k5sae", + "k4sai", + "ksek4", + "ksi2k", + "ksika4", + "ksit4", + "ksk4l", + "ks5kõ", + "ksp5lo", + "ks2pr", + "kst3r", + "ks4tü", + "2kt", + "kt2ra", + "1ku", + "kui4s", + "4kujuj", + "4kujum", + "kuk3la", + "4kuks", + "kul2d", + "2kulp", + "kumi4su4", + "kummi5", + "3kus", + "ku4siv", + "kut4r", + "kuu4ni", + "kuuse5", + "4kuž", + "2k1v", + "k4van", + "3kvart", + "5kviitu", + "1kõ", + "kõ4de.", + "2kõi", + "k5õis", + "4kõp", + "1kö", + "4köd", + "1kä", + "käi5s", + "2käk", + "4käm", + "1kü", + "2kühe", + "4küle", + "4küll.", + "2kž4", + "4kš", + "1la", + "5laag", + "la4aj", + "laa2r", + "laar5a", + "laa4sa", + "2laav", + "5laava", + "4ladj", + "5ladu", + "lae4r", + "3laev", + "4lahv", + "lai5ek5", + "lai4ga", + "la4jap", + "la4jav", + "la3k4r", + "lak4v", + "la4la.", + "4lald", + "la4les", + "4lals", + "la4lus", + "3lama", + "3lamp", + "4lams", + "la4nes", + "2lani", + "lap4l", + "4l1arv", + "4larü", + "la4sas", + "4lasb", + "la4sei", + "la4sem", + "4lasen", + "l2asi", + "4la4sut", + "3lau", + "5laud", + "lau4n", + "lau5su", + "4lavh", + "2l1b", + "l4bau", + "lb4lo", + "4l1d", + "l4dala", + "l5dist", + "l4don", + "l4dü", + "1le", + "le1a2", + "3lee", + "leek5l", + "lee4le", + "leep5r", + "le3hi", + "4lehit", + "5leht", + "3lej", + "4lekk", + "5leks.", + "4lektr", + "lektri5", + "4lele", + "le4lek", + "5lema.", + "le4mor", + "lenaa4", + "leo2", + "le3oh", + "le5olu", + "le4pl", + "le2s", + "4lese.", + "le3sõ", + "3let", + "4lette", + "4l1f", + "lfoo4", + "lf4t", + "l1g", + "l4gae", + "l4gai", + "l4gall", + "l4gann", + "l4gase", + "lgas4k", + "l4ge4le", + "l4gi4d", + "l2go", + "l4gu4j", + "2l1h", + "1li", + "li4ala", + "li5am", + "lia4v", + "3lid", + "li4dan", + "li4ga.", + "4liia", + "liie4", + "5liig", + "lii4na", + "5lik.", + "likai4", + "li3kla", + "lik4ro", + "4lilm", + "4li4lus", + "limi4s", + "4linf", + "4linim", + "4lins", + "lin4te", + "4linv", + "lio4k", + "li3p4l", + "li4sah", + "li4sik", + "4lisol", + "li4suj", + "li4sõl", + "li4sö", + "lit4r", + "li5tu", + "2liže", + "2l1j", + "lja1a", + "lja5os", + "2l1k", + "lkk4", + "l4kli", + "lk4lu", + "l3kr", + "2l1l", + "l5ler", + "lli3tr", + "l2lor", + "l4lots", + "llp4", + "lls4", + "llt4", + "l3lu", + "l4lää", + "2l1m", + "lmaa4v", + "lmat4", + "l4mau", + "l4meks", + "lmp4", + "2l1n", + "1lo", + "lod4r", + "lof4", + "lo4gal", + "4loha", + "4lohv", + "5loi", + "lok4r", + "2lo2l", + "l1ole", + "l3olij", + "3lolo", + "lo4man", + "5loog", + "loo4ram", + "4lord", + "4lorn", + "2losa", + "l3osa.", + "2l1p", + "l3plaa", + "lp4le", + "l4puk", + "2l1r", + "lrih4", + "2l1s", + "ls4ka", + "lske4", + "ls4o", + "lste4", + "2lt", + "l4tau", + "lti4l", + "l4tok", + "lt4sel", + "lt4sis", + "l4tuk", + "l4tõm", + "l4tää", + "l4tüt", + "1lu", + "3lua", + "lu3al", + "lud4", + "lue4", + "3lug4", + "4luhk", + "4luim", + "lu4juk", + "4luk.", + "3lukk", + "2lun", + "lu4nin", + "lu4nio", + "luo3r", + "lu4rau", + "lu4see", + "lus4tii", + "lu4sum", + "lu4sö", + "3luta", + "lut4r", + "3luu", + "2l1v", + "lvel4", + "1lõ", + "4lõd", + "4lõie", + "5lõik", + "4lõis", + "4lõit", + "lõ4l", + "lõ3pe", + "lõp2p", + "1lö", + "4löe", + "1lä", + "4län", + "län4gi", + "lääne5", + "1lü", + "lü3h", + "lü4ma", + "1ma", + "3maa", + "maa2b4", + "ma3abi", + "maa3la", + "maa3p", + "ma4bi", + "ma1e2", + "mag4l", + "5mahl", + "4mahv", + "4majam", + "4ma4ju.", + "ma3kl", + "mak4v", + "3mal", + "ma4la.", + "mal4ma", + "ma4om", + "ma3pl", + "4mart", + "4marv", + "ma5se", + "ma5sin", + "ma4st", + "4ma4sul", + "ma4sä", + "4maut", + "2m1b", + "mbat4", + "mbe2r3", + "mblu4", + "mbo4j", + "mb5usa", + "2md4", + "1me", + "me1a4", + "me4an", + "3mee", + "mee5la", + "mee4s", + "me3hi", + "4mekv", + "mers4", + "mert4", + "me5s4o", + "m4et", + "4met.", + "4metl", + "2metn", + "met4se", + "4mett", + "me5u4", + "2m1f", + "4mg4", + "2m1h", + "1mi", + "mia4m", + "mia4r", + "4mide", + "mi4kaj", + "mi4nah", + "4minf", + "mi3ni", + "mip4", + "mi2s", + "mis1a2", + "mi3si", + "mi4sig", + "mi4sih", + "4mi4sik", + "mi4sil", + "mis3k4", + "mis4tii", + "mist4r", + "mis3ts", + "mitte3", + "2m1j", + "2m3k4", + "2m1l", + "2m1m", + "m4maat", + "mma4s", + "mm4e", + "mme4r", + "mmika4", + "mmi4kal", + "m4mor", + "2m1n4", + "1mo", + "4moh", + "mo4ha", + "m3oks", + "4morg", + "4morn", + "mo3sa", + "2mp", + "mpa4l", + "m4pap", + "mp3l", + "mp3r", + "2m1r", + "mruu4", + "2m1s", + "ms4o", + "ms4p", + "2m1t2", + "m5ts", + "1mu", + "mua4", + "mu5ah", + "mud4", + "mue4", + "mui4m", + "4muls", + "mup4", + "5mus", + "mut4ra", + "2m1v", + "mõ4d", + "4mõig", + "4mõp", + "3mö", + "4mök", + "3mä", + "4mäk", + "mär4gel", + "3mü", + "4müh", + "4mž", + "1na", + "n4aa", + "na5ah", + "naa4lu", + "naa4r5a", + "nad4", + "na5ei", + "nag4l", + "nah4ke", + "nai4d", + "nai4si", + "na4kru", + "2nal4ü", + "4na4mer", + "na4mii", + "n5amiid", + "nants5a", + "na3o4", + "nap4l", + "na4ret", + "4narv", + "n4as", + "4nasb", + "nass4", + "nat4ra", + "nau4b", + "4nb4", + "4n1d", + "n4daas", + "n4dab", + "n4dae", + "nda4ko", + "nda4l", + "n4dau", + "ndif4", + "ndip4", + "n4do4r", + "n4duj", + "ndu4sõ", + "n4dü", + "1ne", + "5ne.", + "nea2", + "nee3la", + "nee4le", + "nee3lu", + "nei4v", + "ne4lah", + "4nelas", + "ne4lek", + "neo4d", + "ne4pl", + "2nerg", + "n4es", + "ne4tan", + "ne4tõm", + "2n1f", + "2n1g", + "n4gai", + "n4gall", + "n4gase", + "n4gau", + "ng4lü", + "n4go4r", + "ng3r", + "ngud4", + "ngus4t", + "n2gü", + "2n1h", + "1ni", + "ni3ap", + "nia4v", + "nig4", + "nii4g", + "nii4tu", + "nikkel5", + "4nilm", + "5nima", + "nima4s", + "5nimet", + "3nimi", + "ni4mig", + "4niml", + "4nint", + "ni4sid", + "nis4ke", + "4nisl", + "2n1j", + "2nk", + "n4ka4n", + "nk3r", + "nk4se", + "nkst4", + "2n1l4", + "2n1m", + "2n1n", + "nna3e", + "nna5i", + "nnak4r", + "n4ne4f", + "nnio4", + "nnk4", + "1no", + "4nob", + "nod4", + "4noks", + "noo4na", + "n4or", + "2n3p4", + "2n1r", + "2ns", + "n4salp", + "ns4e", + "nsk5r", + "n3so", + "nso4r", + "nste4", + "ns4tee", + "ns4tem", + "nstis4", + "nst3r", + "ns4tu", + "nsu4s", + "2nt", + "ntaa4r", + "n4teh", + "nte4l", + "ntig4", + "n4tiso", + "n4tots", + "n4tr", + "nt3ra", + "nt3re", + "nt4sab", + "nt4sal", + "nt4san", + "nt4sar", + "nt5sü", + "ntt4", + "n4tüh", + "n4tük", + "1nu", + "nu4da", + "nui4g", + "nur2k", + "nus4p", + "2n1v", + "1nõ", + "nõ4l", + "4nõli", + "1nö", + "1nä", + "1nü", + "4nül", + "4nž", + "4nš", + "oa2", + "oa4a", + "o1ae", + "o5aku", + "o3anal", + "o5apa", + "oau4b", + "o1b", + "oba4s", + "1obj", + "4o1d", + "odaa4", + "odaal3", + "o4deh", + "odu4sõ", + "od4š", + "oe5a4", + "oe4fe", + "oe2l", + "o3ele", + "oe4mi", + "oe4mu", + "o4eo", + "oe4rah", + "oe4rõ", + "oe4si", + "oet4r", + "o1f", + "of5r", + "o1g", + "og4la", + "og4li", + "3ohaka", + "oh5to", + "5ohvits", + "oi2ta", + "oiu5a", + "o1j", + "oju2s", + "okast4", + "okku5", + "ok3la", + "ok5liin", + "okoos4", + "ok3r", + "ok4re", + "ok4ri", + "o5kris", + "ok4ru", + "o3la", + "o4lae", + "olag4", + "ola4las", + "ola4su", + "ol4do", + "ole4an", + "3olek.", + "o4lend", + "olig4", + "o3lii", + "olii4g", + "o4li4lu", + "o3lis", + "4olj", + "ol4lae", + "ollis4", + "ol4lü", + "ol4mai", + "4o3lo", + "ol4tam", + "ol4tar", + "1olu.", + "5olukor", + "o4luks", + "olõ4", + "o4lä", + "3omadu", + "om4baj", + "om4ban", + "o4mok", + "ona4a", + "o4naj", + "ona4ko", + "o4neh", + "o4nele", + "on4gos", + "onit4r", + "oniu4", + "onsoo4", + "ont4re", + "o4nuu", + "2o2o", + "oo1a", + "oo4kal", + "ook4r", + "oo4kää", + "oo4lau", + "oo4lee", + "oo4lig", + "oo4list", + "oo4log", + "oo4lõ", + "oo4lü", + "oo4nah", + "oo4nar", + "oo4nau", + "oon4dee", + "oonk4", + "oono4", + "oo4noh", + "oons4", + "oon5t4", + "o5opti", + "oo4rat", + "oo4ree", + "oo3sa", + "oo4sel", + "oo4tõ", + "o3pa", + "op5last.", + "op4lu", + "op3ra", + "op3ri", + "o2r3ai", + "o4ralg", + "ora4mii", + "o4rana", + "5orav", + "3order", + "1org", + "org4r", + "oria4", + "3orju", + "5orkeste", + "3orna", + "or4nel", + "or4tal", + "ort3r", + "oru4s", + "or4võ", + "o2sa", + "o4sake", + "3osako", + "4o3sau", + "4ose", + "o4seks", + "4osf", + "o2si.", + "4osin", + "3oskus", + "4osl", + "4oso", + "o4sok", + "os1ol", + "os4pa", + "4oss", + "os4saj", + "os4sü", + "os5taas", + "os4tem", + "4osto", + "ost4ru", + "5osuti", + "4osõ", + "oto5a", + "otok4", + "ot2ra", + "o3tran", + "3otsa", + "o5tsö", + "ot4ta", + "ot4teo", + "otus4ta", + "otü4l", + "ou4b", + "ou4n", + "o1v", + "ovaa4l", + "ovio4", + "ovol4", + "o4vu4n", + "o3õ4", + "oü2", + "1pa", + "paa4ka", + "pa3a2m", + "paa4tel", + "pa4e", + "pa4lus", + "pans4", + "pa4pr", + "5paras", + "3park", + "4parta", + "pa4sp", + "4pb", + "4pd", + "1pe", + "pe2a", + "pea5j", + "peas4", + "pe4au", + "pea3v", + "pe4f", + "4pektr", + "pela4", + "4pe4lev", + "pel4t", + "pe4lü4", + "p4em", + "pe4ol", + "5perd", + "pe4tap", + "peti4k", + "2pf4", + "pg4", + "2ph", + "1pi", + "pii4v", + "pik5r", + "pin2d", + "pin4gis", + "pip3r", + "pis5ta", + "piu4g", + "2p1j", + "2p1k", + "2p2l4", + "4pla.", + "p4laa", + "p5laasi", + "3plaat", + "p4lak", + "p3lam", + "p5lane.", + "3plasm", + "5plastik", + "plek2", + "3plekk", + "4p3lem", + "p3li", + "5pliia", + "pliig4", + "3plok", + "p3lom", + "p3lu", + "3pluus", + "4plõ", + "2p1m", + "2p1n", + "p4neu", + "1p4o", + "5po4e", + "3pon", + "3poo", + "poo4la", + "poola4v", + "pordi5", + "4p1p", + "ppa4k", + "p4pas", + "ppe3a", + "ppee4", + "pp3l", + "p2p3r", + "pps4", + "p4pud", + "p4põ", + "p4pü", + "p2r4", + "2pra", + "3praa", + "3prag", + "3prakt", + "p5rau", + "p4rep", + "p4resi", + "4prib", + "2prii", + "p5riit", + "p4rog", + "p4roo", + "4p4ros", + "3p4rot", + "4prum", + "5pruu", + "2p1s", + "ps4a", + "p4sor", + "3p2sü", + "2p1t", + "p4tak", + "3pu", + "pua4", + "pu4da", + "puha4", + "pui4t", + "puk4k", + "pul4ti", + "4purt", + "pus4p", + "2p1v", + "3põ", + "põhi3", + "p4õi", + "põi4s", + "põli4", + "5pö", + "1pä", + "pär4gu", + "4päs", + "3pü", + "pü3he", + "4pž", + "4pš", + "1ra", + "raal3a", + "4raale", + "5raalne", + "raa4lu", + "raamatu5", + "raa4ta4", + "4raatt", + "raa4tu", + "4raav", + "5raaš", + "raie3", + "2rain", + "r3aine", + "rai4si", + "r5a4la.", + "ral4t", + "ra4lus", + "3rame", + "ran4dem", + "ra3om", + "4rapa", + "ra4pl", + "4rapt", + "4rarb", + "ra4ren", + "4rars", + "2rarv", + "ra4sal", + "4rasen", + "ra4sis", + "rast4r", + "ra4suk", + "ra4sul", + "ra4sut", + "5ratas", + "ratiiv5a", + "rat4sen", + "raua3", + "rau2d", + "raud5o", + "2rauk", + "4raum", + "4raur", + "rau4te", + "5ravi", + "2r1b", + "r4bae", + "4r1d", + "r4dae", + "r2dar", + "rde3a", + "rd4re", + "r4duj", + "r4dü", + "1re", + "5re.", + "5rea", + "reb2", + "ree4le", + "ree4ma.", + "ree4man", + "3reer", + "3reet", + "5reg", + "2rehi", + "rei4se", + "rek3l", + "4reks", + "re4lai", + "re4liit", + "5relv", + "re4mää", + "4repp", + "re2pr", + "rep3re", + "re4sin", + "re3te", + "ret4k", + "re4tr", + "ret5s", + "2r1f", + "rf4r", + "2r1g", + "r4gae", + "rg3ah", + "rga4re", + "r4geh", + "rgi4me", + "r5g2ra", + "2r1h", + "1ri", + "3ria", + "ri3am", + "ri5ast", + "5rid", + "2rig", + "ri4ga.", + "3rige", + "rig4r", + "2riib", + "5riie", + "4riinu", + "ri4kis", + "ri3k4r", + "4rilm", + "3rim", + "ri5oks", + "rio4r", + "3rip", + "rip4li", + "4rip2p", + "4ri4sa.", + "ri4sah", + "ri4sar", + "ri4ses", + "4risol", + "ri4tol", + "ri3t2r", + "5riu", + "5riv", + "4riö", + "2r1j", + "2r1k", + "r4kad", + "rk5ain", + "rka4se", + "r4kek", + "rkt4", + "2r1l", + "2r1m", + "r4mald", + "r4me4le", + "r4mig", + "rmo4ra", + "rmo4s", + "rmp4", + "rms4", + "2r1n", + "r4nad", + "r4neh", + "rnk4", + "1ro", + "roa4", + "ro3e2", + "rok4k", + "rol4la", + "rol4le", + "4romb", + "2romi", + "ro4nop", + "roo4ga", + "4rosa", + "ros4po", + "ro5staati", + "rost4r", + "4rož", + "2r1p", + "rp5ret", + "2r1r", + "r3ri", + "2rs", + "rsaa4l", + "rs4l", + "rs4o", + "r5s2po", + "rs4tak", + "2rt", + "r4tah", + "r4tos", + "rt2r", + "rt4ra", + "r4tri", + "rt5roo", + "rt4sai", + "1ru", + "2rua4", + "rud4", + "r4uj", + "ru3kr", + "3ruma", + "4rumb", + "2rumm", + "4rump", + "5rus.", + "ru4set", + "ru4sin", + "ru4sul", + "rut4r", + "ruum5a", + "4ruur", + "2r1v", + "rva4la", + "rva4lu", + "r4vann", + "rvas5k", + "rvis4k", + "r4voh", + "r4vok", + "1rõ", + "2rõ2l", + "r5õli", + "rõn4gu", + "4rõr", + "3rö", + "4rök", + "röö4pe", + "rööp5l", + "1rä", + "4rä4r", + "1rü", + "4rük", + "4rüm", + "4rü4r", + "4rž", + "4rš", + "1sa", + "3s2aa", + "saa5j", + "saa4lu", + "sa4an", + "4s3aas", + "3saba", + "sa4bi.", + "4sabo", + "s4ad", + "5sada", + "4sade", + "s5ader", + "2s1ae", + "sae4l", + "5sa5ga", + "s4age", + "sa4gu", + "4sahv", + "3sai.", + "4saia", + "s1ain", + "s4ajan", + "sa4ju.", + "sak4ro", + "5saks", + "4saku.", + "sa4kää", + "4s3a4la.", + "4salas", + "s4alat", + "5salat.", + "sa4lev", + "4salla", + "4sallu", + "3salt", + "sa4lum", + "5salv", + "3s4am", + "4samp", + "4sank", + "4s5ann", + "s4ant", + "4santi", + "s4anu", + "sa4num", + "sa2pr", + "sa4ris", + "s4arv.", + "sar4va", + "sase4", + "3sasti", + "sas4tii", + "sa4suk", + "sa4sum", + "3sat", + "4satl", + "s5avald", + "2s3b2", + "2s3d2", + "1se", + "3sead", + "se3ala", + "s5eali", + "se5aval", + "se4du.", + "4seela", + "see4le", + "s5eeln", + "see4ma", + "4seepi", + "3seer", + "see4si", + "see4ta4", + "4se4fe", + "5seg", + "sega5a", + "2seh", + "3seha", + "3seho", + "5sehu", + "5sehä", + "3sei", + "sei4d", + "sei4si", + "3seka", + "se3kl", + "4s5eksp", + "se4laj", + "4selek", + "5seli", + "4sellu", + "3selt", + "2selu", + "4sens", + "se5oh", + "seo4k", + "se5om", + "seo4p", + "seo4r", + "3sep", + "sepat4", + "4serem", + "4sese.", + "se4si.", + "4se4sin", + "s5esit", + "ses4k", + "3sest", + "4s5eten", + "se3t2r", + "4sette", + "2s1f2", + "2s1g2", + "2s1h", + "1si", + "3sia", + "sia4h", + "sie4", + "5sign", + "sig4ra", + "s5i4ha.", + "sii4g", + "sii4sa", + "sii4se", + "4siits", + "sii4tu", + "si4ket", + "siko4d", + "siks4p", + "sikt4", + "sik4vi", + "4sinim", + "s5inime", + "4sins", + "sio4le", + "si4pro", + "4sirr", + "5siru", + "4si4sa.", + "si3se", + "s5i4sik", + "sis2p", + "sisse3", + "s5istuj", + "5sisu", + "2s1j", + "sja5ar", + "2s1k", + "4ska", + "5skaa5la", + "ska4no", + "5skeem.", + "s4kela", + "5skelet", + "s5ken", + "ski4g", + "sk2l", + "s5klas", + "5skler", + "skuk4", + "3skulp", + "sku4si", + "2s1l", + "4s1m", + "sma4sa", + "2s1n", + "sne4p", + "1so", + "3sobi", + "3soe", + "s1oht", + "3soi", + "s5oks.", + "2so2l", + "s3olek", + "s3olij", + "5solo", + "so3lut", + "so2ma", + "3son", + "3soo", + "soo5o", + "4so4pe", + "so4pr", + "5sor.", + "s3orj", + "3sort", + "2s1os", + "4sotsu", + "2s1p", + "s5per", + "2s1r", + "2s1s", + "ssel4l", + "ss2fä", + "ssin4", + "s4sinf", + "ssk4", + "ss4ke", + "ss2p", + "s5spor", + "ss2t", + "s5stat", + "ss4ti", + "sst5r", + "s4suss", + "2s1t", + "s2taa", + "3staad", + "5staaš", + "s4tain", + "4stam", + "5standard", + "3start", + "s4tati", + "5statis", + "s4teno", + "5stepp", + "stet4", + "s4toh", + "s4top", + "s4tot", + "5streik", + "5strek", + "5struktu", + "st4so", + "stt4", + "stu2s", + "stu4s5a", + "3stuud", + "stä4", + "s4tär", + "s4tüh", + "1su", + "sua2", + "su4bar", + "sud4r", + "su4du", + "su5e", + "su4jul", + "4suks", + "s5uks.", + "5sulg", + "sul4ga", + "sun4de4", + "su4nis", + "supe4", + "supe5s", + "su4pr", + "4surb", + "5sus.", + "sus4aa", + "su4ses", + "s5uss.", + "sus4ti", + "su4sun", + "sut4r", + "sut4ü", + "4suug", + "suu4ra", + "suusa3", + "2s1v", + "svus4t", + "1sõ", + "5sõda", + "sõ4de", + "4s3õh", + "3sõid", + "4sõie", + "2s1õig", + "2s5õis", + "3sõit", + "sõ2l", + "2s3õli", + "3sõlm", + "3sõn", + "2s1õp", + "5sõr", + "sõsa4", + "2s3õu", + "1sö", + "4söd", + "sö2k", + "2sön", + "1sä", + "4säk", + "4säm", + "1sü", + "4süa", + "5süd", + "5süg", + "2süh", + "s3ühi", + "2sük", + "s3üks", + "sü4la", + "sül5di", + "sü3lem", + "4sülo", + "sü4ra", + "3süs", + "3süü", + "4sž", + "1ta", + "3ta.", + "3taat.", + "2tabi", + "4t3aed", + "t3aine", + "4tais", + "4ta4ko", + "t2al", + "4ta4laj", + "ta4lev", + "tal4las", + "ta3lu", + "ta4lus", + "3tam", + "5tama", + "4tanda", + "ta4ot", + "ta4pla", + "ta4pr", + "4ta4ret", + "4tarm", + "2tart", + "ta4se4r", + "ta4ses", + "ta4set", + "ta4sis", + "ta4sü", + "2taut", + "3tav", + "ta4vaj", + "2t1b4", + "2td2", + "1t2e", + "te4aa", + "tea4g", + "tea4h", + "te3an", + "te5as", + "3tee", + "tee5lu", + "te4et", + "te3hi", + "tehi4s", + "te3kl", + "tek4r", + "tek4v", + "tel4ke", + "te4lok", + "te3lu.", + "4tepiv", + "tep4l", + "2tepp", + "3ter", + "5ter.", + "te5r4a", + "terd4", + "4terg", + "ters4", + "tes4a", + "te4sin", + "tes4k", + "2t1f", + "4t1g4", + "2t1h", + "thõl4", + "3ti", + "tia2", + "ti3e", + "tii2k", + "tii4ma", + "tii4sa", + "tii4ve", + "tik4o", + "ti3k4r", + "tik4vi", + "4tilm", + "5tima", + "4tinf", + "tin4ga", + "ti4sai", + "tisa4v", + "ti4sik", + "titee4", + "2t1j", + "2t1k2", + "t3kl", + "t3kr", + "2t1l4", + "tlu4", + "2t1m", + "tmika4", + "tmis3", + "2t1n", + "3t2o", + "4to4da", + "toen4", + "tog6", + "4toks.", + "toksi5k", + "to4lek", + "to4lu.", + "to4lum", + "tonis4", + "to4o", + "too4no", + "too4pe", + "to4rau", + "tos4p", + "tost4", + "2t3p4", + "2t1r", + "t4rad", + "t2raf", + "3trafo", + "t4rahh", + "5trall", + "t2ran", + "3trans", + "t4rate", + "5traum", + "t2re", + "3treen", + "t4rei", + "5treim", + "3trep", + "t3rig", + "5triib", + "5triip", + "5trikoo.", + "tri4pl", + "t4ross", + "3trumm", + "5t4rup", + "3t2ruu", + "3t2rü", + "4trüü", + "2t1s", + "t3s2a", + "ts4aa", + "tsa5is", + "t4saju", + "tsa4lan", + "3tsehh", + "tse3la", + "5tsellu", + "5tsemen", + "4tsena", + "5tsensu", + "tsig4", + "5tsiitsi", + "t4sink", + "5tsiste", + "ts4laa", + "t2soo", + "t4sor", + "tsp4", + "t4suss", + "2t1t", + "t4tad", + "ttee2", + "ttes2", + "t5tsem", + "3tu", + "4tuim", + "tu4raj", + "tus1a", + "tu4s5ee", + "tu2si", + "tus3s", + "4t5uss.", + "tus3t2", + "tu5su", + "tu4sä4", + "tusü4", + "4tutop", + "4tuud", + "tuule5", + "2t1v", + "1tõ", + "5tõb", + "2tõi", + "tõ4l", + "4tõ4n", + "4tõp", + "2t5õun", + "1tö", + "4töe", + "4tök", + "töö5k", + "töö3p", + "1tä", + "täh4t3a", + "tä5ke", + "4täm", + "1tü", + "tü5he.", + "tü3hi", + "2t1ž", + "t2že", + "5tžek", + "3tžem", + "uaa4", + "u3aast", + "ua2b", + "u5abi", + "u1ae", + "ua4he", + "uai4k", + "u3ain", + "ua2ja", + "u3akt", + "ua2l", + "u3all", + "u3amet", + "u1an", + "ua4nu", + "u5apar", + "ua2re", + "ua5ree", + "u5art", + "ua2s", + "u3ast", + "u1au", + "uau4d", + "ua2v", + "u5avald", + "u1b", + "u4dalu", + "u4deh", + "udeo4", + "udo4r", + "u5eal", + "u3eel", + "u3eks", + "ue2ma", + "ueo4", + "ue4r", + "u1f", + "u1g", + "u4gi4d", + "ug2ra", + "u5graa", + "u4gü", + "uh4tem", + "uh4ter", + "uh4tin", + "uh4tis", + "uidu5", + "ui2ga", + "ui4h", + "u3iha", + "u3ilm", + "5uim.", + "uina2", + "uinas5", + "ui4si", + "3uisut", + "uite4h", + "ui4to", + "ui4vala", + "ui4vel", + "ui4vo", + "u1j", + "u5ja", + "u4juj", + "u4jum", + "3ujumi", + "u1k", + "ukaa4s", + "ukii4g", + "ukki5", + "ukop4", + "u3kraa", + "u5kro", + "uku4sa", + "uk4vi", + "ul4a", + "ul4deh", + "uldi4", + "ul4kr", + "ul4len", + "ul4lui", + "ultra5", + "u3lu", + "uluo4", + "4u1m", + "umaf4", + "u4mau", + "5umbroh", + "umet4", + "umf4", + "umia4", + "umit4", + "um5p4r", + "unaa4", + "unaal5", + "un4dak", + "un4dan", + "un4das", + "un4do", + "u4ni.", + "u1o2", + "uo4h", + "u2or", + "u3org", + "u1p", + "u3pla", + "up3le", + "uppe4", + "up4pis", + "uraa4l", + "u4rag", + "ura4ju", + "u4rala", + "u4rap", + "ur5auk", + "ura4va", + "3urb.", + "urde3", + "urea4", + "u4reos", + "ures4k", + "u4rett", + "urgas4", + "5urge.", + "u4ri4met", + "u4rini", + "uris4k", + "urka4v", + "uro4r", + "u4rulu", + "u2sa2", + "u5sa.", + "usad4", + "u4sae", + "u4salu", + "us5aste", + "u3sea", + "useg4", + "us5elek", + "u4sett", + "u3setu", + "u5sev", + "us4fä", + "us5g", + "u4si4d", + "usi4g", + "u4si4h", + "us5ind", + "usi4va", + "us3kr", + "u2so", + "us5o2h", + "us3ole", + "uso4r", + "us3p4", + "u3s4por", + "usui4", + "3usuli", + "u4suss", + "u2sõ", + "u2sü", + "us3üh", + "u1t", + "ut4kl", + "utos2", + "utot4", + "ut4ru", + "ut4so", + "utt4r", + "utu4s", + "utü4h", + "uu5al", + "4uud", + "uu4du.", + "uu4kak", + "uuk5ri", + "uu4mal", + "uu4mis", + "uu4pü", + "uu4ran", + "uu4ras", + "uu4rau", + "uu4rav", + "uu3sa", + "uusa3k", + "uus4ke", + "u3uss.", + "uu4sul", + "4uut", + "uu4tas", + "uu4tis", + "uu4tüh", + "u5uuri", + "u1v", + "u4vau", + "u1õ2", + "uä2", + "u3är", + "u1ü2", + "už4l", + "vaa4re4", + "va4as", + "4vabi", + "vae4r", + "vag4", + "va5he", + "4vaia", + "4v3ain", + "vak4v", + "va4la.", + "va4lai", + "4valdi", + "val4ga4", + "va4lü", + "vana5i", + "vane2", + "4vanku", + "van4ta", + "van4te", + "vap4r", + "v4ar", + "4varm", + "var4p", + "2vart", + "4varuh", + "4varve", + "va4sas", + "vas4k", + "vast4r", + "vat4r", + "4vatud", + "vau4d", + "vav4", + "4vb", + "2v1d", + "3ve", + "vee3a", + "vee3k", + "vee5la", + "vee3sp", + "4vehi", + "vei4sa", + "ve4ol", + "veot4", + "ve4rah", + "ves4p", + "2vf", + "2vg4", + "2v1h", + "3vi", + "via2", + "vid4", + "4videa", + "vip4", + "vi3pl", + "vir4k", + "vi4sak", + "vis4ko4d", + "2v1j", + "2v1k", + "2v1l", + "2v1m", + "2v1n", + "voo5lu", + "2v5p", + "2v1r", + "2v1s", + "2v1t2", + "v3tr", + "vu4sa", + "vu4su4", + "2v1v", + "3võ", + "4võig", + "4võ4li", + "4võm", + "võr4k5", + "3vä", + "vää4re4", + "vää4ru", + "3zo", + "zook4", + "zoos4", + "õ1b", + "õbe3", + "õ1d", + "õea4", + "õe4lan", + "õe3lu", + "õet2", + "õeu4", + "õ1g", + "õh4vu", + "õi4a", + "õi4b", + "õie5k", + "3õiel", + "3õigu", + "õi4ko", + "õise4", + "õi4su4", + "õ1j", + "õk4kõ", + "õl2d", + "õ4lim", + "õ4lit", + "õl4mad", + "3õmbl", + "õnet4s", + "õ2p", + "õ3pa", + "õpi5e", + "õp2pa", + "4õp3r", + "õranda5", + "õra4s", + "õr4da", + "õr4gaa", + "õr4gar", + "õr4go", + "4õs", + "õs4a", + "õ4tü4", + "õude3", + "õ1v4", + "õõ5p", + "õõre4", + "õõ4rel", + "õõ4ta", + "öa2", + "ö1b", + "ö1d", + "5ö2dee", + "ödi4k", + "3öeld", + "öep4", + "öet4r", + "ö1g4", + "ö1h", + "öi4a", + "öi4g", + "öi4s", + "ö1j", + "ö1k", + "ö2kon", + "3ökono", + "ök4v", + "ö1l", + "öli2s", + "ölis5a", + "ö1m", + "öo2", + "ö2p3au", + "öp4lu", + "ö4raa", + "ö4rau", + "ör4da", + "ör4dell", + "ör4e", + "ö4ri4l", + "ö4ro4", + "ö4rä", + "ö4rül", + "ös4tii", + "ö4to4", + "ö4tü4", + "ö1v", + "ö3õ", + "öö3a", + "öö3e4", + "öö5i", + "3öölan", + "öö3o", + "ööt4r", + "öü4", + "äa4", + "ä1b", + "äbus5", + "äbut4", + "ä1d", + "äe3a4", + "äe1o", + "ä1g", + "äga4ri", + "ähe5a", + "äidi4s", + "äike3", + "äi4lo", + "äi4lu", + "äi2s", + "äisa4", + "äi4sõ", + "äi4tar", + "ä3j", + "ä2ke", + "3äke.", + "ä5ker", + "ä4kõ", + "äli2s", + "äl4ko", + "5ämbl", + "ä4nah", + "än4deo", + "änet4", + "än4to4", + "äok4", + "ä4ra5a", + "ära3o4", + "ä4rar", + "äre4lis", + "äret4", + "ärge4l", + "ärii4", + "äri4kl", + "äri4sel", + "ä4riste", + "är4kar", + "ä4ro", + "5ärrit", + "är4ta", + "är2va", + "ä4rõ", + "äs4ko", + "äs4nai", + "äs4p", + "äs4san", + "äs4so", + "ät4ri", + "äu4d", + "ä1v", + "ävee4", + "ää4kin", + "ääo4", + "ää4rase", + "5ääris.", + "üaa4", + "ü1b", + "üdame5", + "ü1g", + "ü2h", + "ühe5i4", + "1ühen", + "3ühik.", + "ü3hit", + "ü1j", + "ükan4", + "ük4kas", + "ük3l", + "ül2d", + "üld5a2", + "ü2le", + "3ülek", + "ü5lel", + "üle4mas", + "1üles", + "ülesä4", + "ül4gav", + "ül4gee", + "ü4lih", + "ülii4", + "3üliko", + "ü4liõ", + "ül5kl", + "ül5la", + "ül4mei", + "ülo4r", + "ülp4", + "ült4", + "üma4rak", + "üma4ru", + "ümi4ko", + "ü5ne", + "üni4s", + "üot4", + "üp3l", + "üp5p4", + "üp3r", + "üpsu4", + "ürd4", + "ürik4", + "üs4o", + "üs4pr", + "üs4tal", + "üs4tas", + "üta4r", + "ütee4l", + "5ütlev", + "ü4t3r", + "üt4ru", + "ü1v", + "ü4ü", + "üü2l3a2", + "üü4le", + "üü4lo", + "üü4pe", + "1ža", + "4žb", + "1že", + "5žee", + "5žer", + "4žf", + "1ži", + "4žj", + "4žk", + "4žl", + "4žm", + "4žn", + "3žo", + "4žp", + "4žt", + "5žö", + "5žü", + "2žž", + "3ša", + "4šak", + "4šau", + "1še", + "3š4i", + "šis4k", + "4šk", + "5šo", + "4št", + "3šu4" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/fr.json b/borb/pdf/canvas/layout/hyphenation/resources/fr.json new file mode 100644 index 000000000..b79604b19 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/fr.json @@ -0,0 +1,1148 @@ +{ + "patterns":[ + ".a4", + "'a4", + ".â4", + "'â4", + "ab2h", + ".ab3réa", + "'ab3réa", + "ad2h", + "a1è2dre", + ".ae3s4ch", + "'ae3s4ch", + "1alcool", + "'2alcool", + "a2l1algi", + ".amino1a2c", + "'amino1a2c", + ".ana3s4tr", + "'ana3s4tr", + "1a2nesthési", + "'2a2nesthési", + ".anti1a2", + "'anti1a2", + ".anti1e2", + "'anti1e2", + ".anti1é2", + ".anti2enne", + "'anti2enne", + "'anti1é2", + ".anti1s2", + "'anti1s2", + ".apo2s3ta", + "'apo2s3ta", + "apo2s3tr", + "archi1é2pis", + ".as2ta", + "'as2ta", + "a2s3tro", + "1ba", + "1bâ", + ".bai2se3main", + "1be", + "1bé", + "1bè", + "1bê", + "4be.", + "4bes.", + "2bent.", + "1bi", + "1bî", + ".bi1a2c", + ".bi1a2t", + ".bi1au", + ".bio1a2", + ".bi2s1a2", + ".bi1u2", + "1b2l", + "4ble.", + "4bles.", + "2blent.", + "1bo", + "1bô", + "1b2r", + "4bre.", + "4bres.", + "2brent.", + "1bu", + "1bû", + "1by", + "1ç", + "1ca", + "1câ", + "ca3ou3t2", + "1ce", + "1cé", + "1cè", + "1cê", + "4ce.", + "4ces.", + "2cent.", + "ja3cent.", + "ac3cent.", + "é3cent.", + "munifi3cent.", + "réti3cent.", + "privatdo3cent.", + "inno3cent.", + "es3cent.", + "acquies4cent.", + "is3cent.", + "immis4cent.", + ".ch4", + "1c2h", + "4ch.", + "2chb", + "4che.", + "4ches.", + "2chent.", + ".chè2vre3feuille", + "2chg", + "ch2l", + "4chle.", + "4chles.", + "chlo2r3a2c", + "chlo2r3é2t", + "2chm", + "2chn", + "2chp", + "ch2r", + "4chre.", + "4chres.", + "2chs", + "2cht", + "2chw", + "1ci", + "1cî", + ".ci2s1alp", + "1c2k", + "4ck.", + "2ckb", + "4cke.", + "4ckes.", + "2ckent.", + "2ckf", + "2ckg", + "2ck3h", + "2ckp", + "2cks", + "2ckt", + "1c2l", + "4cle.", + "4cles.", + "2clent.", + "1co", + "1cô", + "co1acc", + "co1acq", + "co1a2d", + "co1ap", + "co1ar", + "co1assoc", + "co1assur", + "co1au", + "co1ax", + "1cœ", + "co1é2", + "co1ef", + "co1en", + "co1ex", + ".con4", + ".cons4", + ".contre1s2c", + ".contre3maître", + "co2nurb", + ".co1o2", + ".co2o3lie", + "1c2r", + "4cre.", + "4cres.", + "2crent.", + "1cu", + "1cû", + "1cy", + ".cul4", + "1d'", + "1da", + "1dâ", + ".dacryo1a2", + "d1d2h", + "1de", + "1dé", + "1dè", + "1dê", + "4de.", + "4des.", + "2dent.", + "déca3dent.", + "é3dent.", + "cci3dent.", + "inci3dent.", + "confi3dent.", + "tri3dent.", + "dissi3dent.", + "chien3dent.", + ".ar3dent.", + "impu3dent.", + "pru3dent.", + ".dé1a2", + ".dé1io", + ".dé1o2", + ".dé2s", + ".dé3s2a3cr", + ".dés2a3m", + ".dé3s2a3tell", + ".dé3s2astr", + ".dé3s2c", + ".dé2s1é2", + ".dé3s2é3gr", + ".dé3s2ensib", + ".dé3s2ert", + ".dé3s2exu", + ".dé2s1i2", + ".dé3s2i3d", + ".dé3s2i3gn", + ".dé3s2i3li", + ".dé3s2i3nen", + ".dé3s2invo", + ".dé3s2i3r", + ".dé3s2ist", + ".dé3s2o3dé", + ".dé2s1œ", + ".dé3s2o3l", + ".dé3s2o3pil", + ".dé3s2orm", + ".dé3s2orp", + ".dé3s2oufr", + ".dé3s2p", + ".dé3s2t", + ".dé2s1u2n", + "3d2hal", + "3d2houd", + "1di", + "1dî", + "di2s3cop", + ".di1a2cé", + ".di1a2cid", + ".di1ald", + ".di1a2mi", + ".di1a2tom", + ".di1e2n", + ".di2s3h", + "2dlent.", + "1do", + "1dô", + "1d2r", + "4dre.", + "4dres.", + "2drent.", + "d1s2", + "1du", + "1dû", + "1dy", + ".dy2s3", + ".dy2s1a2", + ".dy2s1i2", + ".dy2s1o2", + ".dy2s1u2", + ".e4", + "'e4", + ".ê4", + "'ê4", + ".é4", + "'é4", + ".è4", + "'è4", + "éd2hi", + "1é2drie", + "1é2drique", + "1é2lectr", + "1é2lément", + ".en1a2", + "'en1a2", + "1é2nerg", + "e2n1i2vr", + ".en1o2", + "'en1o2", + "épi2s3cop", + "épi3s4cope", + "e2s3cop", + ".eu2r1a2", + "'eu2r1a2", + "eu1s2tat", + "extra1", + "extra2c", + "extra2i", + "1fa", + "1fâ", + "1fe", + "1fé", + "1fè", + "1fê", + "4fe.", + "4fes.", + "2fent.", + "1fi", + "1fî", + "1f2l", + "4fle.", + "4fles.", + "2flent.", + "1fo", + "1fô", + "1f2r", + "4fre.", + "4fres.", + "2frent.", + "f1s2", + "1fu", + "1fû", + "1fy", + "1ga", + "1gâ", + "1ge", + "1gé", + "1gè", + "1gê", + "4ge.", + "4ges.", + "2gent.", + "ré3gent.", + "entre3gent.", + "indi3gent.", + "dili3gent.", + "intelli3gent.", + "indul3gent.", + "tan3gent.", + "rin3gent.", + "contin3gent.", + ".ar3gent.", + "'ar3gent.", + "ser3gent.", + "ter3gent.", + "résur3gent.", + "1g2ha", + "1g2he", + "1g2hi", + "1g2ho", + "1g2hy", + "1gi", + "1gî", + "1g2l", + "4gle.", + "4gles.", + "2glent.", + "1g2n", + "'a2g3nat", + ".a2g3nat", + "a2g3nos", + "co2g3niti", + "'i2g3né", + ".i2g3né", + "'i2g3ni", + ".i2g3ni", + ".ma2g3nicide", + ".ma2g3nificat", + ".ma2g3num", + "o2g3nomoni", + "o2g3nosi", + ".pro2g3nath", + "pu2g3nable", + "pu2g3nac", + ".sta2g3n", + ".syn2g3nath", + "wa2g3n", + "4gne.", + "4gnes.", + "2gnent.", + "1go", + "1gô", + "1g2r", + "4gre.", + "4gres.", + "2grent.", + "1gu", + "1gû", + "g1s2", + "4gue.", + "4gues.", + "2guent.", + ".on3guent.", + "'on3guent.", + "1gy", + "1ha", + "1hâ", + "1he", + "1hé", + "1hè", + "1hê", + "hémi1é", + "hémo1p2t", + "4he.", + "4hes.", + "1hi", + "1hî", + "1ho", + "1hô", + "1hu", + "1hû", + "1hy", + "hypera2", + "hypere2", + "hyperé2", + "hyperi2", + "hypero2", + "hypers2", + "hype4r1", + "hyperu2", + "hypo1a2", + "hypo1e2", + "hypo1é2", + "hypo1i2", + "hypo1o2", + "hypo1s2", + "hypo1u2", + ".i4", + "'i4", + ".î4", + "'î4", + "i1algi", + "i1arthr", + "i1è2dre", + "il2l", + "cil3l", + "rcil4l", + "ucil4l", + "vacil4l", + "gil3l", + "hil3l", + "lil3l", + "l3lion", + "mil3l", + "mil4let", + "émil4l", + "semil4l", + "rmil4l", + "armil5l", + "capil3l", + "papil3la", + "papil3le", + "papil3li", + "papil3lom", + "pupil3l", + "piril3l", + "thril3l", + "cyril3l", + "ibril3l", + "pusil3l", + ".stil3l", + "distil3l", + "instil3l", + "fritil3l", + "boutil3l", + "vanil3lin", + "vanil3lis", + "vil3l", + "avil4l", + "chevil4l", + "uevil4l", + "uvil4l", + "xil3l", + "1informat", + "'2informat", + ".in1a2", + "'in1a2", + ".in2a3nit", + "'in2a3nit", + ".in2augur", + "'in2augur", + ".in1e2", + "'in1e2", + ".in1é2", + "'in1é2", + ".in2effab", + "'in2effab", + ".in2é3lucta", + "'in2é3lucta", + ".in2é3narra", + "'in2é3narra", + ".in2ept", + "'in2ept", + ".in2er", + "'in2er", + ".in2exora", + "'in2exora", + ".in1i2", + "'in1i2", + ".in2i3miti", + "'in2i3miti", + ".in2i3q", + "'in2i3q", + ".in2i3t", + "'in2i3t", + ".in1o2", + "'in1o2", + ".in2o3cul", + "'in2o3cul", + ".in2ond", + "'in2ond", + ".in1s2tab", + "'in1s2tab", + "'inte4r3", + ".intera2", + "'intera2", + ".intere2", + "'intere2", + ".interé2", + "'interé2", + ".interi2", + "'interi2", + ".intero2", + "'intero2", + ".inte4r3", + ".interu2", + "'interu2", + ".inters2", + "'inters2", + ".in1u2", + "'in1u2", + ".in2uit", + "'in2uit", + ".in2u3l", + "'in2u3l", + "io1a2ct", + "i1oxy", + "i1s2tat", + "1j", + "2jk", + "4je.", + "4jes.", + "2jent.", + "1ka", + "1kâ", + "1ke", + "1ké", + "1kè", + "1kê", + "4ke.", + "4kes.", + "2kent.", + "1k2h", + "4kh.", + ".kh4", + "1ki", + "1kî", + "1ko", + "1kô", + "1k2r", + "1ku", + "1kû", + "1ky", + "1la", + "1lâ", + "1là", + "la2w3re", + "1le", + "1lé", + "1lè", + "1lê", + "4le.", + "4les.", + "2lent.", + ".ta3lent.", + "iva3lent.", + "équiva4lent.", + "monova3lent.", + "polyva3lent.", + "re3lent.", + ".do3lent.", + "indo3lent.", + "inso3lent.", + "turbu3lent.", + "succu3lent.", + "fécu3lent.", + "trucu3lent.", + "opu3lent.", + "corpu3lent.", + "ru3lent.", + "sporu4lent.", + "1li", + "1lî", + "1lo", + "1lô", + "l1s2t", + "1lu", + "1lû", + "1ly", + "1ma", + "1mâ", + ".ma2c3k", + ".macro1s2c", + ".ma2l1a2dres", + ".ma2l1a2dro", + ".ma2l1aisé", + ".ma2l1ap", + ".ma2l1a2v", + ".ma2l1en", + ".ma2l1int", + ".ma2l1oc", + ".ma2l1o2d", + ".ma2r1x", + "1me", + "1mé", + "1mè", + "1mê", + ".mé2g1oh", + ".mé2sa", + ".mé3san", + ".mé2s1es", + ".mé2s1i", + ".mé2s1u2s", + ".méta1s2ta", + "4me.", + "4mes.", + "â2ment.", + "da2ment.", + "fa2ment.", + "amalga2ment.", + "cla2ment.", + "ra2ment.", + "tempéra3ment.", + "ta2ment.", + "testa3ment.", + "qua2ment.", + "è2ment.", + "carê2ment.", + "diaphrag2ment.", + "ryth2ment.", + "ai2ment.", + "rai3ment.", + "abî2ment.", + "éci2ment.", + "vidi2ment.", + "subli2ment.", + "éli2ment.", + "reli2ment.", + "mi2ment.", + "ani2ment.", + "veni2ment.", + "ri2ment.", + "détri3ment.", + "nutri3ment.", + "inti2ment.", + "esti2ment.", + "l2ment.", + "flam2ment.", + "gram2ment.", + ".gem2ment.", + "om2ment.", + ".com3ment.", + "ô2ment.", + "slalo2ment.", + "chro2ment.", + "to2ment.", + "ar2ment.", + ".sar3ment.", + "er2ment.", + "antifer3ment.", + ".ser3ment.", + "fir2ment.", + "or2ment.", + "as2ment.", + "au2ment.", + "écu2ment.", + "fu2ment.", + "hu2ment.", + "fichu3ment.", + "llu2ment.", + "plu2ment.", + "bou2ment.", + "bru2ment.", + "su2ment.", + "tu2ment.", + "1mi", + "1mî", + ".milli1am", + "1m2némo", + "1m2nès", + "1m2nési", + "1mo", + "1mô", + "1mœ", + ".mono1a2", + ".mono1e2", + ".mono1é2", + ".mono1i2", + ".mono1ï2dé", + ".mono1o2", + ".mono1u2", + ".mono1s2", + "mon2t3réal", + "m1s2", + "1mu", + "1mû", + "1my", + "moye2n1â2g", + "1na", + "1nâ", + "1ne", + "1né", + "1nè", + "1nê", + "4ne.", + "4nes.", + "2nent.", + "réma3nent.", + "imma3nent.", + "perma3nent.", + ".émi3nent.", + "préémi3nent.", + "proémi3nent.", + "surémi3nent.", + "immi3nent.", + "conti3nent.", + "perti3nent.", + "absti3nent.", + "1ni", + "1nî", + "1no", + "1nô", + "1nœ", + ".no2n1obs", + "1nu", + "1nû", + "n3s2at.", + "n3s2ats.", + "n1x", + "1ny", + ".o4", + "'o4", + "'ô4", + ".ô4", + "o2b3long", + "1octet", + "'2octet", + "o1d2l", + "o1è2dre", + "o1ioni", + "ombud2s3", + "omni1s2", + "o1s2tas", + "o1s2tat", + "o1s2téro", + "o1s2tim", + "o1s2tom", + "o1s2trad", + "o1s2tratu", + "o1s2triction", + ".oua1ou", + "'oua1ou", + ".ovi1s2c", + "'ovi1s2c", + "oxy1a2", + "1pa", + "1pâ", + "paléo1é2", + ".pa2n1a2f", + ".pa2n1a2mé", + ".pa2n1a2ra", + ".pa2n1is", + ".pa2n1o2ph", + ".pa2n1opt", + ".pa2r1a2che", + ".pa2r1a2chè", + ".para1s2", + ".pa2r3hé", + "1pe", + "1pé", + "1pè", + "1pê", + "4pe.", + "4pes.", + "2pent.", + "re3pent.", + ".ar3pent.", + "'ar3pent.", + "ser3pent.", + ".pen2ta", + "per3h", + "pé2nul", + ".pe4r", + ".per1a2", + ".per1e2", + ".per1é2", + ".per1i2", + ".per1o2", + ".per1u2", + "pé1r2é2q", + ".péri1os", + ".péri1s2", + ".péri2s3s", + ".péri2s3ta", + ".péri1u2", + "1p2h", + ".ph4", + "4ph.", + ".phalan3s2t", + "4phe.", + "4phes.", + "2phent.", + "ph2l", + "4phle.", + "4phles.", + "2phn", + "photo1s2", + "ph2r", + "4phre.", + "4phres.", + "2phs", + "2pht", + "3ph2talé", + "3ph2tis", + "1pi", + "1pî", + "1p2l", + "4ple.", + "4ples.", + "2plent.", + ".pluri1a", + "1p2né", + "1p2neu", + "1po", + "1pô", + "po1astre", + "poly1a2", + "poly1e2", + "poly1é2", + "poly1è2", + "poly1i2", + "poly1o2", + "poly1s2", + "poly1u2", + ".pon2tet", + ".pos2t3h", + ".pos2t1in", + ".pos2t1o2", + ".pos2t3r", + ".post1s2", + "1p2r", + "4pre.", + "4pres.", + "2prent.", + ".pré1a2", + ".pré2a3la", + ".pré2au", + ".pré1é2", + ".pré1e2", + ".pré1i2", + ".pré1o2", + ".pré1u2", + ".pré1s2", + ".pro1é2", + ".pro1s2cé", + "pro2s3tat", + ".prou3d2h", + "1p2sych", + ".psycho1a2n", + "1p2tèr", + "1p2tér", + "1pu", + ".pud1d2l", + "1pû", + "1py", + "1q", + "4que.", + "4ques.", + "2quent.", + "é3quent.", + "élo3quent.", + "grandilo3quent.", + "1ra", + "1râ", + "radio1a2", + "1re", + "1ré", + "1rè", + "1rê", + ".ré1a2", + ".ré2a3le", + ".ré2a3lis", + ".ré2a3lit", + ".ré2aux", + ".ré1é2", + ".ré1e2", + ".ré2el", + ".ré2er", + ".ré2èr", + ".ré1i2", + ".ré2i3fi", + ".ré1o2", + ".re1s2", + ".re2s3cap", + ".re2s3cisi", + ".re2s3ciso", + ".re2s3cou", + ".re2s3cri", + ".re2s3pect", + ".re2s3pir", + ".re2s3plend", + ".re2s3pons", + ".re2s3quil", + ".re2s3s", + ".re2s3t", + ".re3s4tab", + ".re3s4tag", + ".re3s4tand", + ".re3s4tat", + ".re3s4tén", + ".re3s4tér", + ".re3s4tim", + ".re3s4tip", + ".re3s4toc", + ".re3s4top", + ".re3s4tr", + ".re4s5trein", + ".re4s5trict", + ".re4s5trin", + ".re3s4tu", + ".re3s4ty", + ".réu2", + ".ré2uss", + ".rétro1a2", + "4re.", + "4res.", + "2rent.", + ".pa3rent.", + "appa3rent.", + "transpa3rent.", + "é3rent.", + "tor3rent.", + "cur3rent.", + "1r2h", + "4rhe.", + "4rhes.", + "2r3heur", + "2r3hydr", + "1ri", + "1rî", + "1ro", + "1rô", + "1ru", + "1rû", + "1ry", + "1sa", + "1sâ", + ".sch4", + "1s2caph", + "1s2clér", + "1s2cop", + "1s2ch", + "e2s3ch", + "i2s3ché", + "i2s3chia", + "i2s3chio", + "4sch.", + "4sche.", + "4sches.", + "2schs", + "1se", + "1sé", + "1sè", + "1sê", + "sesqui1a2", + "4se.", + "4ses.", + "2sent.", + "ab3sent.", + "pré3sent.", + ".res3sent.", + ".seu2le", + ".sh4", + "1s2h", + "4sh.", + "4she.", + "4shes.", + "2shent.", + "2shm", + "2s3hom", + "2shr", + "2shs", + "1si", + "1sî", + "1s2lav", + "1s2lov", + "1so", + "1sô", + "1sœ", + "1s2patia", + "1s2perm", + "1s2por", + "1s2phèr", + "1s2phér", + "1s2piel", + "1s2piros", + "1s2tandard", + "1s2tein", + "stéréo1s2", + "1s2tigm", + "1s2tock", + "1s2tomos", + "1s2troph", + "1s2tructu", + "1s2tyle", + "1su", + "1sû", + ".su2b1a2", + ".su3b2alt", + ".su2b1é2", + ".su3b2é3r", + ".su2b1in", + ".su2b3limin", + ".su2b3lin", + ".su2b3lu", + "sub1s2", + ".su2b1ur", + "supero2", + "supe4r1", + "supers2", + ".su2r1a2", + "su3r2ah", + ".su3r2a3t", + ".su2r1e2", + ".su3r2eau", + ".su3r2ell", + ".su3r2et", + ".su2r1é2", + ".su2r3h", + ".su2r1i2m", + ".su2r1inf", + ".su2r1int", + ".su2r1of", + ".su2r1ox", + "1sy", + "1ta", + "1tâ", + "1tà", + "tachy1a2", + "tchin3t2", + "1te", + "1té", + "1tè", + "1tê", + "télé1e2", + "télé1i2", + "télé1o2b", + "télé1o2p", + "télé1s2", + "4te.", + "4tes.", + "2tent.", + ".la3tent.", + ".pa3tent.", + "compé3tent.", + "éni3tent.", + "mécon3tent.", + "omnipo3tent.", + "ventripo3tent.", + "équipo3tent.", + "impo3tent.", + "mit3tent.", + ".th4", + "1t2h", + "4th.", + "4the.", + "4thes.", + "thermo1s2", + "2t3heur", + "2thl", + "2thm", + "2thn", + "th2r", + "4thre.", + "4thres.", + "2ths", + "1ti", + "1tî", + "1to", + "1tô", + "1t2r", + "tran2s1a2", + "tran3s2act", + "tran3s2ats", + "tran2s3h", + "tran2s1o2", + "tran2s3p", + "tran2s1u2", + "4tre.", + "4tres.", + "2trent.", + ".tri1a2c", + ".tri1a2n", + ".tri1a2t", + ".tri1o2n", + "t1t2l", + "1tu", + "1tû", + "tung2s3", + "1ty", + ".u4", + "'u4", + ".û4", + "'û4", + "uni1o2v", + "uni1a2x", + "u2s3tr", + "1va", + "1vâ", + "1ve", + "1vé", + "1vè", + "1vê", + "vélo1s2ki", + "4ve.", + "4ves.", + "2vent.", + "conni3vent.", + ".sou3vent.", + "1vi", + "1vî", + "1vo", + "1vô", + "vol2t1amp", + "1v2r", + "4vre.", + "4vres.", + "2vrent.", + "1vu", + "1vû", + "1vy", + "1wa", + "1we", + "4we.", + "4wes.", + "2went.", + "1wi", + "1wo", + "1wu", + "1w2r", + "2xent.", + ".y4", + "'y4", + "y1asth", + "y1s2tom", + "y1algi", + "1za", + "1ze", + "1zé", + "1zè", + "4ze.", + "4zes.", + "2zent.", + "privatdo3zent.", + "1zi", + "1zo", + "1zu", + "1zy" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/hyphenation/resources/nl.json b/borb/pdf/canvas/layout/hyphenation/resources/nl.json new file mode 100644 index 000000000..fe8452311 --- /dev/null +++ b/borb/pdf/canvas/layout/hyphenation/resources/nl.json @@ -0,0 +1,12770 @@ +{ + "patterns":[ + ".a4", + ".aan5", + ".aarts5", + ".aat5", + ".ab5l", + ".acht5end", + ".ac5re", + ".adi5", + ".af3", + ".af5l", + ".af5s", + ".aftu5re", + ".al3ee", + ".al3f", + ".alk4", + ".al5ko", + ".alko5v", + ".al5ma", + ".al3om", + ".al4st", + ".ana3s", + ".an3d2", + ".an3en", + ".an3gl", + ".an5th", + ".ar5d", + ".ar5tr", + ".as5h", + ".as5l", + ".as3t", + ".as5tra", + ".as3u", + ".at4a", + ".ave5n", + ".b4", + ".be3la", + ".be5ra", + ".be5ri", + ".bos1", + ".c4", + ".coo5", + ".co3ro", + ".cus5", + ".d4", + ".daar5", + ".da4gi", + ".dag5r", + ".da2k", + ".dan2", + ".debe4", + ".de2k", + ".dek5l", + ".dek5s", + ".den4k5r", + ".de5od", + ".de3ro", + ".de5sta", + ".di4a", + ".die4p", + ".di3o", + ".doet3", + ".do3v", + ".du4w", + ".e4", + ".ede2", + ".edel5a", + ".ed3w", + ".ee4n", + ".eer5ste", + ".eest3", + ".eesto4", + ".eet3", + ".ei3l", + ".ei5sc", + ".ei3sp", + ".ei5t", + ".el4s5", + ".en5s", + ".en5th", + ".ep4a", + ".ere5s", + ".er2f", + ".erf3l", + ".er3in", + ".ert4", + ".erts3", + ".es3", + ".es5c", + ".es5pe", + ".es5tr", + ".eten4", + ".et4h", + ".ets5te.", + ".eu3", + ".eus5", + ".é2", + ".f4", + ".fel4s", + ".g4", + ".gaat5", + ".gang5s", + ".gea5v", + ".ge3l4a", + ".ge5le", + ".gelo5v", + ".ge3n4a", + ".gena5z", + ".ge5ne", + ".ge5no", + ".ge3ra", + ".ge5r4e", + ".ge5r4o", + ".gerst5a", + ".ge3s", + ".ge5sk", + ".ge5ta", + ".ge5tj", + ".ge5to", + ".gid4", + ".go4m", + ".goot3", + ".h2", + ".handels5", + ".her5in", + ".hits5t", + ".ho4lo", + ".houd5s", + ".i4", + ".ide5o", + ".ij4s", + ".ijs5l", + ".ijs3p", + ".ijs3t", + ".ik3", + ".in1", + ".in5d4", + ".in3g4", + ".in5gr", + ".ink2", + ".in5kr", + ".in5kw", + ".in3s4", + ".in5sl", + ".in5st", + ".in5ta", + ".is5c", + ".j4", + ".jor5", + ".k4", + ".ka3d", + ".ka5g", + ".ka4taa", + ".kerk5l", + ".kerk5r", + ".kerk5u", + ".ker5sten", + ".ke4s", + ".koot5", + ".ko5pe", + ".kop5l", + ".ko3v", + ".kun2", + ".l4", + ".laat5ste", + ".le4b5", + ".leg3o", + ".le4g3r", + ".leid5st", + ".len4s3", + ".le5r4", + ".le4s3", + ".le5th", + ".lin5d", + ".lof5", + ".loot3", + ".lo4s1", + ".lu3e", + ".lui5t4j", + ".lu4s", + ".m4", + ".ma5d", + ".ma5ï", + ".meel5d", + ".me5la", + ".me5ni", + ".merk5l", + ".me2s", + ".me4st", + ".met5ee", + ".mij4n5i", + ".moot3", + ".mor5sten", + ".mo4s", + ".n4", + ".naat5", + ".na3d", + ".na3n", + ".na3s4", + ".nee5s", + ".ne2p", + ".nep3a", + ".ne4s", + ".ne5te", + ".ne4t3j", + ".neu4t5j", + ".nie4t5j", + ".noot5", + ".nos5t", + ".no5v", + ".o4", + ".oe4r5", + ".oe4s5", + ".oeve4", + ".ol3f", + ".om1", + ".omme3", + ".on3a", + ".on3d", + ".onde4r", + ".on1e", + ".on5g", + ".on3i", + ".on5k", + ".on1o", + ".ono5v", + ".on2t3", + ".on4tee", + ".on4ter", + ".ont5s", + ".ooi5tj", + ".oot5jes", + ".op5ee", + ".opi5", + ".op5l", + ".op3r", + ".op5s", + ".org4", + ".os5", + ".ove4", + ".p4", + ".pee5tj", + ".peri5", + ".pers5te.", + ".piet5j", + ".pits5te.", + ".poort5j", + ".po4st", + ".puit4", + ".pui5tj", + ".pu2t", + ".r4", + ".raads5le", + ".ran4d", + ".rand5a", + ".re4men", + ".ren4o", + ".reno5v", + ".re5o", + ".rie4t3", + ".rij5sp", + ".ring5s4", + ".roe5tj", + ".ro4l", + ".ro4st", + ".ro4t3h", + ".ro5v", + ".s4", + ".sap3", + ".sa5v", + ".sci3", + ".see3", + ".seks5te", + ".se5re", + ".set3", + ".se5v", + ".side3", + ".ski3s4", + ".sneu3", + ".sno2", + ".so2k3", + ".song5", + ".spoor5tj", + ".st4", + ".ste4m", + ".t4", + ".taart5j", + ".tan4da", + ".te4a", + ".te4f", + ".tek2", + ".te3le", + ".ten5ac", + ".te3no", + ".ten4t5j", + ".te3ra", + ".ter4p5a", + ".ter5s", + ".te4s", + ".ti2n", + ".tin3a", + ".tin3e", + ".toe5pr", + ".to4lo", + ".to4p", + ".to5v", + ".tri3s4", + ".ts4", + ".tsa3", + ".tuit5j", + ".ty2r", + ".u4", + ".ui2", + ".ui5s", + ".uit1", + ".uit4je", + ".uke5", + ".ur4a", + ".vaat5j", + ".ven4t5j", + ".ve4r3", + ".ves5p", + ".vet3j", + ".vie4r", + ".vol5s", + ".w4", + ".wals5te.", + ".wee4ko", + ".wee4t3", + ".we4l3", + ".wen4s5t", + ".west5r", + ".win4s", + ".xe3", + ".y2", + ".z4", + ".zes5", + ".zit5", + ".zooi5", + "4a.", + "a4a4", + "4aad", + "aad1a", + "aad1o", + "aad1r", + "aad5sap", + "aaf5a", + "4aag", + "aag1a", + "aag3e", + "aag3o", + "aag5r", + "aags4", + "aag3sa", + "aag5so", + "aag3sp", + "aai3l", + "aak1a", + "aak3e2", + "aak1o", + "aak5r", + "aak3sp", + "aal5a2", + "aal1e", + "aal5f4o", + "aalfo5l", + "aal1i", + "aal5k", + "aal5m", + "aal1o2", + "aal3sl", + "aal5so", + "aal5spe", + "aal5ste", + "aal1u", + "aam1a", + "aam3o", + "aam4sta", + "aam4ste", + "aan1a", + "5aandee", + "aand4r", + "aan1e2", + "aan5g", + "aan5i", + "3aanj", + "aan5k4", + "3aann", + "aan3o", + "aan3sp", + "aans4po", + "aant4", + "3aanta", + "3aanv", + "aap1a", + "aap3i", + "aap3o2", + "aap3r", + "aar3a", + "aar4d5as", + "aar3e4", + "aar1i", + "4aarn", + "aar1o2", + "aar5spel", + "aar4t5on", + "aarts5l", + "aar3u", + "aas3e", + "aas3i", + "4aast", + "aas5tr", + "aat3a", + "aat5e", + "aat3h", + "aat3i", + "aat1o", + "aat5r", + "abak4s5", + "aba4l", + "abat4s", + "ab5eun", + "ab3ijz", + "a2bon", + "aboot4j", + "abot4j", + "2abr", + "ab3ru", + "4ac.", + "a3cal", + "a3car", + "4ace", + "ace3st", + "4ach.", + "a3cha", + "2a1che", + "4a1chi", + "ach3l", + "a1cho", + "a3chr", + "4achs", + "ach5tec", + "a1chu", + "achuut5", + "4ack", + "ac3kl", + "2acl", + "2a3co", + "2acr", + "ac5res", + "4acta", + "4acu", + "4ad.", + "a5da.", + "ad3ac", + "ada2d", + "ada4l", + "ada2r3", + "adas5", + "2add", + "a5de.", + "ad3ei", + "ade5re", + "a5des", + "a3det", + "a5deta", + "ad3e4te", + "2adh", + "4ad4i", + "adi3al", + "adi4oc", + "adi4od", + "4adk", + "2adl", + "4ado.", + "a3doo", + "2adp", + "ad3rei", + "a3d4ri", + "ad3rol", + "2ads", + "ad5se", + "ad3so", + "ad1s4t", + "ad5sta", + "ad3ui", + "ad3w", + "2ady", + "4ae", + "aege4", + "ae5k4", + "a3e2p", + "ae3r", + "ae2s3", + "ae4s5t", + "a3eu", + "a2ë", + "a4ër", + "4afa", + "af3aa", + "a2f3ac", + "af4as", + "af4at", + "afd4i", + "afd2r", + "af5d4w", + "4afe", + "afee4", + "4afi", + "af3l", + "4afo", + "a5fo.", + "a2foe", + "afon4d", + "af3op", + "af5org", + "af1r", + "af3s4", + "afs2c", + "af5se", + "3afsl", + "3afsp", + "aft4a", + "af5tr", + "af3ui", + "2afy", + "4ag.", + "ag1a2d", + "ag3af", + "ag3a2m", + "ag3ar", + "ag3di", + "a5ge.", + "agee5t", + "4a5gen.", + "ager4s", + "ag3ex", + "a4gil", + "ag3ind", + "a4g3ins", + "agi5ot", + "4ag1l", + "ag3of", + "a4g3or", + "ag4o3v", + "a2gr", + "ag4ra", + "ag5rap", + "ag3ru", + "ag3sl", + "ag4sle", + "ag5slu", + "ags2p", + "ag3spe", + "ag3spi", + "ag1st", + "ag3sta", + "ag5str", + "2agt", + "agu5a", + "a2g3ui", + "ag3u4r", + "a2g3uu", + "2ah", + "4a1ha", + "4a5he", + "ahe5ri", + "a1hi", + "ah3l", + "a3ho", + "ah5r", + "ah5t2", + "a3hu", + "a3hy", + "ai5a2", + "ai4dr", + "ai1e", + "a1ij", + "ai5k", + "ail3m", + "ai2lo", + "a2in", + "aio4", + "ai3ov", + "ai3s4", + "ai5sc", + "ai4s5l", + "ai5sn", + "ai1so", + "ai1st", + "ai5tj", + "ai3tr", + "aiu4", + "aïn4", + "aïns5", + "aïs3o4", + "2a1j", + "ajaars5", + "aka2", + "ak3af", + "ak3ag", + "a4k3ar", + "a4k3ed", + "ak3emi", + "ake2t", + "ak3id", + "ak3ink", + "ak5is", + "1akko", + "4a2k3l", + "a2k3n", + "ak5ne", + "ak4ni", + "a3kof", + "ak3on", + "ak3o2p", + "a2kr", + "ak5ru", + "2aks", + "ak4so", + "ak5spe", + "ak1st", + "ak5to", + "ak5t4w", + "a2k3u4", + "ak1w", + "ak3wi", + "a1la", + "a4l3ach", + "al3adr", + "a3l4ag", + "a3lal", + "a5lapr", + "al3art", + "4ald", + "a1le", + "a5le.", + "al3eff", + "2aleg", + "a2l3el", + "ale5ro", + "ale5ste", + "ale4tj", + "a3lè", + "al4fen", + "alf3l", + "al5fon", + "alfu4", + "al2gl", + "a3lie", + "al3int", + "alk5ei", + "al5kle", + "alk3s", + "al4kui", + "al5le", + "al4mac", + "al5me", + "a1lo", + "a4l3ol", + "alo2n", + "al3ou", + "a4l3o4v", + "2alp", + "al3s4ag", + "al3san", + "al3scr", + "als5j", + "al2sl", + "als5li", + "als5m", + "al4sn", + "al4s3oo", + "al4stem", + "al5sten", + "als5tou", + "altaar5", + "al3tha", + "al4t3ro", + "alt4st", + "a1lu", + "a2lui", + "al3uit", + "al3u4r", + "alu2s5", + "4am.", + "a4m3ac", + "am3adr", + "ama4f", + "4amag", + "am3art", + "5ambt", + "ament4j", + "ame4ran", + "ame5tj", + "a2meu", + "am4i", + "4amm", + "am3oli", + "a2m3o4v", + "3ampè", + "am2pl", + "am4ple", + "am4sm", + "am4s3o", + "am4spr", + "ams5te.", + "a2m3ui", + "a3nad", + "an3alg", + "an4a3n", + "an3arc", + "2anc", + "4anda", + "anda4d", + "and5ank", + "an4d3e4d", + "an4dex", + "2andj", + "an4dom", + "an5d4ri", + "and5roo", + "ands5lo", + "an4d3ul", + "a4nem", + "a3nen", + "anen3i", + "4aner", + "an3est", + "ane3us", + "4ang.", + "an4gan", + "anga5p", + "ange5st", + "ang5le", + "an2gr", + "ang5sna", + "angs4te", + "aniet3", + "anij4", + "3anima", + "an5ion", + "a4n5isl", + "ani5t", + "4aniv", + "4ank.", + "an4kaa", + "anka4n", + "an4k3as", + "an2k3j", + "an4klu", + "ank3of", + "an2k3r", + "a1no", + "an3och", + "a4n3oor", + "an3ork", + "ano3s", + "ano3t4", + "a4n3ou", + "ano5v", + "4ans", + "an3san", + "ans3cr", + "an4seg", + "an4serv", + "an4sid", + "an2so4", + "ans5or", + "ans3pi", + "ans5pir", + "an1st", + "an4s5te.", + "an5stru", + "an4tac", + "ante4n", + "an3th", + "2anti", + "ant5sl", + "ant3w", + "4a1nu", + "a5nuf", + "an3ui", + "an3ur", + "an3uu", + "anze5s", + "2a1o", + "ao4g", + "ao2l", + "a4om", + "a2op2", + "aor5t", + "a3os", + "aos3p", + "aos5t", + "4ap.", + "a1pa", + "a4pak", + "a4pas", + "ap3as.", + "ap3ass", + "a1pe", + "ap5eten", + "4a1pi", + "apij4t5j", + "ap3ijz", + "ap1j", + "2apl", + "ap3le", + "ap3li", + "ap3lo", + "a1plu", + "apon5", + "ap3oo", + "apo3p", + "apo5sta", + "ap3o4v", + "1appa", + "4appen", + "4apr", + "ap3ra", + "a3pre", + "a4prem", + "a5p4ris", + "ap3ru", + "ap2sa", + "ap4si", + "ap2s3l", + "ap3sn", + "ap4ste.", + "2apt", + "ap3tj", + "2apu", + "a2q", + "4ar.", + "a1ra", + "araat5j", + "a4r3app", + "ara3s4", + "ar2da", + "ard3ac", + "ard3ak", + "ardo4", + "ar4d3om", + "ar4d3op", + "ar4d3ov", + "ar2d1r", + "ar4dra", + "ard3re", + "ar4du", + "ard3w", + "a1re", + "5a2rea", + "a3reg", + "a3rem", + "ar4en", + "are4no", + "are3sp", + "a3rev", + "ar3gh", + "ar2gl", + "a1ri", + "arie4tj", + "arij3s", + "ar3ins", + "ark2", + "ark3ac", + "ar3k4l", + "ar4map", + "arm3u", + "a1ro", + "a2r3ob", + "ar3oge", + "a3rok", + "aro4ko", + "ar3oog", + "a2r1o2p", + "a3rot", + "arpi4", + "ar2s", + "ar5sch", + "ar3scr", + "ars2e", + "ar5see", + "ar3si", + "ars3l", + "ar4sla", + "ars5m", + "ar3sni", + "ar4so", + "ar4sp", + "ar5spo", + "ars3ta", + "ars5tal", + "ar4s5tek", + "ar4str", + "ar4su", + "art4aa", + "ar4t3ak", + "ar4tan", + "art5ank", + "ar4tap", + "ar3tar", + "4arte", + "ar4tei", + "ar2th", + "ar5tij", + "4ar4tj", + "art5jesv", + "4arto", + "ar5tof", + "art5o4ge", + "art5oog", + "ar4t3o4v", + "ar2t3r", + "ar4tro", + "art5ru", + "art4sl", + "art5ste", + "a3ru", + "ar3ui", + "4arw", + "arwe3s", + "a1ry", + "4asa", + "as3ad", + "as4ag", + "as3ak", + "as1ap", + "a2sc", + "as5ce", + "2ase", + "a4sec", + "a4s3eg", + "aser5a", + "ase5tj", + "aseve4", + "as5ha", + "asis1", + "a4sj", + "as5ja", + "as3ji", + "as3k", + "as5ka", + "as5ki", + "as3l", + "as4lu", + "as3m", + "as5mi", + "as3n", + "as4ne", + "as4ni", + "4aso", + "as3ob", + "aso2l", + "aso4r", + "as1p", + "as3pl", + "a4s5q", + "as5sa", + "4assm", + "3assu", + "a2st", + "4as3ta", + "a4sta.", + "as5tag", + "as4tas", + "as4tat", + "as3te", + "a3stek", + "a3stem", + "as5ten", + "as3tè", + "asting5sp", + "as1to", + "as3tob", + "ast3op", + "4astr", + "ast5rem", + "as5tro.", + "as4tu", + "a1t", + "ataart5j", + "at1ac", + "at3ade", + "at3af.", + "at3ank", + "ata3s", + "2atek", + "a5tell", + "ate2n", + "ate3no", + "aten4t5r", + "ater5ad", + "ater5sl", + "at4eu", + "2atg", + "at3hu", + "ati5ni", + "a2t3j", + "at4je", + "atjes5", + "at5jesb", + "at5jesh", + "at5jesm", + "at5jesp", + "2atm", + "2atn", + "a2too", + "at3oog", + "atos5f", + "ato3st", + "at3rac", + "at3rei", + "at3rib", + "at4roe", + "at5ru", + "at4s3a2", + "at4s3ec", + "atsi4", + "at4s3id", + "at2s3l", + "at4slo", + "ats5m", + "ats3n", + "at4sne", + "ats3pr", + "at2st", + "at4staa", + "at4s5tak", + "at4ste.", + "at5sten", + "at5stij", + "ats5tol", + "ats5top.", + "ats5trek", + "at4t3u4", + "a2t3ui", + "at3w", + "aua4", + "au3ch", + "au3co", + "au5de", + "aud4j", + "1aug", + "au3na", + "aun3t", + "aup2", + "aur4", + "au5re", + "aure3u", + "4aus", + "au3so", + "au4s5p", + "au3sto", + "au3t4", + "4aut.", + "1auto", + "auto3p", + "2auts3", + "auw3a", + "4auz", + "a4ü", + "avast4", + "ave3c", + "avee4", + "ave4n3i", + "aven5sp", + "aver3a", + "ave3re", + "ave3r4u", + "4avi", + "a2vo", + "1a4von", + "a5voo", + "a5vor", + "4avy", + "2a1w", + "axis4", + "ay2a", + "4azif", + "ä3h", + "ämme3", + "ä3r", + "1b", + "4b.", + "3ba", + "baar5ste", + "baar5tj", + "ba4da", + "bad3ar", + "ba4d3r", + "bad3s", + "ba3g4h", + "ba3gl", + "5b2ak", + "ba4k3o4", + "bak4sp", + "ba3lan", + "ba4lar", + "bal3dw", + "bale4", + "bal3ev", + "ba3lië", + "bal4kl", + "ba3lo", + "bals4", + "bal3sf", + "ba4me", + "ba5n2a", + "ban4k3a", + "ban4kl", + "ban4k3o", + "ban4kr", + "bank3w", + "ba3sa", + "ba4st", + "ba2tr", + "ba3tro", + "4bb", + "bbe4l5ag", + "bbe4l5ee", + "bbe2n", + "bben3a", + "4b1c", + "4b1d4", + "b5de", + "bdi5a", + "3b4e", + "be1a", + "be3as", + "be2au", + "be3ch", + "be5dwe", + "be5dwi", + "be5dwo", + "bee4", + "beet1", + "be5g", + "beie4", + "bei3s", + "bei5tj", + "be5ki", + "be3k4l", + "be1kw", + "be3lar", + "be5l4as", + "bel5dr", + "be3le", + "be4l3ec", + "be4lex", + "bel5f", + "be3li", + "be4l5int", + "bel3k", + "bel4o", + "be3lo5v", + "bel3sc", + "bel3sp", + "belt4", + "bemen4s", + "be3nep", + "be5n4o", + "be5ot", + "be1ra", + "bere5s4", + "ber4g5af", + "ber4g5et", + "ber4gl", + "ber4gr", + "ber4i", + "be1r4o", + "bero5v", + "be3ru", + "be3ry", + "be1s4", + "bes5ac", + "be4sh", + "be4sje", + "be3so", + "be5sp", + "bes5s", + "bes5te.", + "bes5ten.", + "be5stie", + "bet2", + "be3t4h", + "be5ton", + "bet5ren", + "be3tw", + "be5twi", + "be3und", + "beur4s", + "4b3f", + "2b1g", + "4b3h", + "3b2i", + "bid3s", + "bi2du", + "bie4li", + "bi4en", + "bie4t3j", + "bij5d", + "bij3f", + "bij3g4", + "bij5k4", + "bij1p", + "bij1s2", + "bik4a", + "5bil", + "bi3lo", + "bil3s2", + "bin4dr", + "bin4st", + "bin4t3j", + "bi5ob", + "bi3ok", + "bi5om", + "bi3oso", + "bi5ow", + "bir3", + "bi4st", + "bis5troo", + "bi1tr", + "bit4se", + "bit4s3p", + "4b1j", + "4b1k", + "3b4l", + "blad5ij", + "2b5lap", + "b5led", + "bles3", + "ble5spe", + "ble2t3", + "b5lid", + "blijs4", + "blij5ste", + "bli2k", + "4b5loi", + "blok5l", + "bloot5j", + "blu2s", + "2b1m", + "4b1n", + "b4o", + "bo4d3ec", + "body3", + "boe4g3a", + "boe4kn", + "boe4ko", + "boes4", + "boe3st", + "boet5st", + "bo3f4l", + "bo2k", + "bok3an", + "bokje5", + "bok4st", + "bolk4", + "bo2m3a4", + "bo2m3o", + "bo5na", + "bond2", + "bond4s5", + "3bone", + "bo3no", + "bon4t3j", + "bon4t5o4", + "boot3j", + "boots5te.", + "bo3p2", + "bor4sta", + "borst5o", + "bor4st5r", + "bo4s", + "bos3a", + "bo5sco", + "bo5si", + "bo5so", + "bos5p", + "bos5to", + "bot3j", + "bo4to", + "bot3r", + "bot4sp", + "bot4st", + "bo2tu", + "bou5ta", + "bouw5s", + "bo3v", + "bove4", + "4b1p", + "3br4", + "braad5s", + "bran4da", + "bra5str", + "brei5s4", + "brie4t", + "brie5tje.", + "bri4l", + "bro2n", + "bron3o4", + "bru2l", + "4b1s4", + "b2s5a", + "b5sc", + "b3si", + "bsi3d", + "bs5je", + "b2s5la", + "b2s5m", + "bs5s", + "b4stij", + "4bt4", + "b3ta", + "b1tr", + "bts5", + "3b4u", + "buit4j", + "bul4k", + "bu4lu", + "bune5t", + "b5urb", + "bu5ri", + "bus5c", + "bus3o", + "but4a", + "but3j", + "bu2to", + "but4s", + "buts5te", + "buur4tj", + "4bv", + "2b3w", + "by3", + "4bz", + "4c.", + "1ca", + "3ca.", + "ca3b", + "ca1ch", + "5cada", + "ca3do", + "ca3dr", + "cae3", + "ca3g2", + "cal4l3", + "ca3lo", + "came5r", + "ca3na", + "cant4", + "ca2of", + "ca1pr", + "ca4pra", + "ca5pri", + "ca3ra", + "car4u", + "ca5se", + "ca3s2p", + "cas3t", + "cas5tr", + "ca3ta", + "cate4n", + "ca3t4h", + "cau3", + "cau4st", + "ca3v", + "2cb", + "4c1c", + "cca3", + "cces5", + "c4d", + "c5do", + "1ce", + "3ced", + "cee4", + "3ceel", + "3cel", + "cel3d", + "celes5", + "ce5li", + "cel5k", + "ce4l3o", + "2ce3n4a", + "2cene", + "ce3no", + "5cent", + "cen4t3j", + "ceo4", + "ce3ra", + "cer2n", + "ce5ro", + "cer4t3r", + "ce2s", + "ce3s2a", + "ce5sc", + "ce3s2h", + "ce3sta", + "ce3s4ti", + "cesu5r", + "ce3ta", + "ce4t3j", + "ceto4", + "cet3og", + "cet3oo", + "1cé", + "c3g", + "4ch.", + "3chaï", + "5chao", + "3chas", + "1chau", + "5chauf", + "2chc", + "1chef", + "5chef.", + "5chefs", + "5chemi", + "5cheq", + "che5ri", + "che3ru", + "5ches", + "che3us", + "1ché", + "5chir", + "4chn", + "2chp", + "5chromo", + "4cht", + "4chw", + "1chy", + "3ci", + "ci5ab", + "ci3am", + "cie3k", + "cier4s5", + "ci1eu", + "5cij", + "5cil", + "ci5le", + "cil3m", + "4cind", + "ci3o", + "ci5om", + "5cir", + "ci3t2", + "ci5ta", + "c3j", + "c2k3a", + "c4k3ed", + "ck3ef", + "cke5re", + "c5k4et", + "ck3id", + "c2k3l", + "ck4le", + "c2k3n", + "c2k3o4", + "c4k3r", + "ck5se", + "ck3so", + "ck5st", + "c3ky", + "1c4l", + "cla2n", + "cle3u", + "5clu", + "2c1n", + "1co", + "co3ad", + "co3d", + "co4i", + "coin5", + "co3k4", + "co3la", + "5com", + "5cond", + "con1g", + "2co1no", + "5cons", + "3con5t4", + "2coo", + "2co1p2", + "3copa", + "4copi", + "cor4dr", + "co4rel", + "co5ri", + "cor2o", + "5corr", + "cors4", + "co3ru", + "co5sc", + "co5se", + "co5sp", + "co3th", + "co3tr", + "5coun", + "2cout", + "co5v", + "c3p4", + "1c4r2", + "3cras", + "cre5d", + "2crip", + "3cris", + "cro5f", + "cro5k", + "croo3", + "cro5v", + "crus5", + "c3so", + "c3sp", + "c3ste", + "2c1t", + "ct3act", + "ct3ad", + "ct5c", + "ctee5t", + "cte2n3", + "c2t1h", + "c2t3j", + "c4t3of", + "c3tol", + "c2t1on", + "ct4or", + "ct3rap", + "c4t3re", + "ct3sl", + "ct3sp", + "1c2u", + "cu5d4", + "cu3en", + "cu3és", + "cui5s", + "cui2t", + "cuit5e", + "cu3k4", + "cula5p", + "cu3ra", + "5cur3s", + "cus3o", + "c3w", + "1cy", + "1ç", + "ça4o", + "4d.", + "1da", + "3da.", + "3daag", + "d4aal", + "d3aap", + "daar5e", + "5daat", + "4dabo", + "2d3acc", + "da4ce", + "da5den", + "4dadr", + "3dae", + "2d1af", + "3dag", + "da2g3a4", + "da3ge", + "da4g3ed", + "da4g3e4t", + "da4g3on", + "da4g3r", + "dag4s3t", + "da2gu", + "3dai", + "da3ï", + "da3ke", + "da4ker", + "2dakk", + "da4k1r", + "4dala", + "d3alar", + "d3alc", + "da3le", + "4dalf", + "da3li", + "2dalm", + "da2l3u", + "d4am", + "dam4a", + "da5mac", + "d3a4mat", + "d2a5me4", + "dames3", + "dam4pl", + "2da2na", + "dan3as", + "dank3l", + "danoot5", + "dan4si", + "dan4sm", + "dan4s3p", + "dan4st", + "dans5ta", + "4d3antw", + "2d1ap", + "4d3a2pe", + "5dapu", + "da2r3a", + "d3arb", + "3dare", + "3dari", + "dar4mo", + "darm5on", + "3daro", + "dar3s", + "dar5st", + "3das3", + "5dasa", + "da3stu", + "3d4at", + "da3ta", + "dat5j", + "4d5atl", + "4d5atm", + "da2t3r", + "5daue", + "4d1aut", + "3dauw", + "2db", + "dbei5", + "dbou4w5i", + "2d5c", + "4d3d4", + "ddags4", + "ddag5sp", + "ddel5ev", + "dde2n", + "dden5a", + "ddera4", + "dder5al", + "ddere4", + "dder5ee", + "dder5ep", + "dder3o", + "ddi3a", + "d5dles", + "d5do", + "ddo3p", + "1de", + "3de.", + "de2al", + "de1ch", + "d4e5den", + "5dedir", + "de4dit", + "dee4g3", + "dee4l", + "deel3i", + "4d3een", + "dee4r", + "4d3eff", + "de3g", + "4d5eg.", + "4d5egg", + "2d5egy", + "2dei", + "d3eie", + "d3eig", + "d3eil", + "d1eis", + "d3eiw", + "5dek", + "de3ke", + "dek3lu", + "dek3w", + "del4aa", + "del5da", + "del5dr", + "del5eek", + "4d3e4lek", + "4delem", + "de4lev", + "4d3e4lit", + "del3k", + "del2s", + "del4s3e", + "dels3i", + "del4so", + "4d3e4mai", + "2demh", + "5demi", + "dem5ond", + "d2en.", + "den4ac", + "den5ate", + "den3ei", + "den3e4p", + "den3ev", + "4d3engt", + "den4k5of", + "de4noc", + "den3o4r", + "den3sh", + "den5str", + "de3nu", + "5denvl", + "de4o", + "de5ofo", + "de5ol", + "deo4li", + "deo3v", + "de3rab", + "de4r3ad", + "der3a4g", + "de3rak", + "de3ram", + "de3ran", + "de3rap", + "de3ras", + "de4r5as.", + "de4r5ass", + "der2e", + "der5ede", + "der5egd", + "de4r3ei", + "de4r3em", + "de5re4n", + "de4rep", + "de4ret", + "de5rij", + "de4r3im", + "der3k4", + "der3on", + "dero4r", + "4d3eros", + "der4s3a", + "der4s5om", + "der5ste", + "der5sto", + "der5stra", + "der5th", + "4d3erts", + "der5tw", + "de2r3u", + "de3rup", + "de2s", + "de3sav", + "des3m", + "des3n", + "des3p", + "de3spe", + "de5spel", + "de4spl", + "des5sm", + "de3st", + "des5tak", + "de5stal", + "de4s3te", + "de4sti", + "de5stic", + "des5top", + "de3t4", + "4d3e4tap", + "de5tw", + "deu4r3o4", + "de3us.", + "deu4tj", + "deve4", + "2dex", + "4d1exa", + "4dexp", + "3dè", + "2d1f", + "2d3g", + "d4gaf", + "dge3la", + "dge2t", + "dgeto4", + "dget5on", + "dget5ov", + "dge4tr", + "dg4l", + "2d1h", + "d5he", + "dheer4", + "3d4hi.", + "1di", + "di2a", + "di5ae", + "di4ak", + "di4ano", + "dia3s4", + "di4atr", + "5dich", + "di4do", + "die2f", + "die4r3o", + "di3esr", + "die3st", + "die2t", + "diet3r", + "di1eu", + "3dig", + "di2ga", + "dig5aa", + "diges5", + "dijk3r", + "di3jo", + "2d3ijz", + "di2k3o4", + "5dil", + "2d3imp", + "di5n2a", + "2d3ind", + "2dinf", + "3d4ing.", + "4d5ingel", + "4d3inj", + "4d3inko", + "2d5inr", + "2d3ins", + "4d3int", + "dintel5", + "2d3inv", + "2d3inw", + "2d3inz", + "di2o", + "di5ofon", + "di4ol", + "di4one", + "di4oni", + "dio1s", + "dio5sc", + "2d3i2ro", + "2d3irr", + "3di4s", + "dis5ag", + "di5se", + "di5si", + "dis4kr", + "dis5p", + "dis1t", + "dis5tr", + "di3th", + "dit3j", + "dit3r", + "5div", + "2d1j", + "2d3k2", + "4d3l", + "d5le.", + "dli4n", + "dlot4s", + "2d1m", + "2d3n2", + "d5ne", + "dni3s", + "1do", + "3do.", + "do3a", + "2dobj", + "4d3obs", + "3d4oe", + "5doe.", + "doe5d", + "4doef", + "d5oefe", + "5doek", + "5doen", + "5doet", + "4d5oev", + "3doi", + "d4ole", + "2do2li", + "d4olin", + "dolk5s", + "5dol5s", + "3d4om.", + "5domi", + "do4m3o4", + "d3omr", + "dom4sn", + "5domu", + "d3omv", + "4domz", + "5don.", + "d4ona", + "5done", + "do5ni", + "5d4onn", + "5do3n4o", + "do3nu", + "do5ny", + "5donz", + "2dop", + "do3pa", + "d3opb", + "d3opd", + "do3pee", + "5dopj", + "4d1opl", + "3dopo", + "d3ops", + "d3opz", + "4d5org", + "do4rië", + "d3ork", + "dors5m", + "do3sp", + "do3sta", + "dot3j", + "5dou", + "2dov", + "dover5s", + "3dovl", + "3dovo", + "2d3p", + "dpren4", + "1dr4", + "3dra", + "5dra.", + "d3raam", + "d3raap", + "d4rac", + "d5race", + "5drach", + "d3rad.", + "d3rada", + "5draf", + "5d4rag", + "d4rama", + "d3rame", + "4d3rand", + "4drap", + "4dras", + "4d3raz", + "2dre", + "4d1rec", + "d5reco", + "d1red", + "d2ree", + "4d3reek", + "4drend", + "d4ress", + "4dret", + "3d2rev", + "5dreve", + "d3ric", + "dries4", + "5d2rif", + "dri5ga", + "d3rijd", + "d3rijk", + "d3rijm", + "d3rijs", + "5d4rin", + "3dris", + "4d3rit", + "4d3roei", + "d3roer", + "5d2rog", + "4d3rok", + "d3roma", + "d3rond", + "3droog", + "4droos", + "5drop", + "2drou", + "2d3ro5v", + "2droz", + "drug4s", + "d3ruim", + "d3ruit", + "5d4ru4k", + "4d3rus", + "2ds", + "d2s1a2", + "d4saa", + "dsa4b", + "d3sal", + "ds4ate", + "ds2ch", + "d5schi", + "dse2", + "ds3eco", + "d4s3ed", + "d4s5ee", + "d4sef", + "d4sei", + "ds3eis", + "ds3elf", + "dse4li", + "d5sen", + "d4s3es", + "d4set", + "d2sh", + "ds3ho", + "d2s1i2", + "d4s5id", + "dsig5a", + "ds2im", + "ds4ing", + "ds5is", + "d4s3j", + "ds4jo", + "ds5jon", + "ds4l", + "d1sla", + "ds5las", + "ds5lic", + "d4s5lie", + "ds5lim", + "d3slin", + "d2sm", + "ds4mak", + "d3smij", + "ds5mo", + "ds3n", + "ds4ne", + "ds5neu", + "d3snu", + "ds1o4", + "ds3ob", + "ds3om", + "d4son", + "ds2oo", + "ds3op", + "d4spa", + "d5span", + "ds5pati", + "d5spec", + "d5s4pel", + "d4s3pet", + "d1spi", + "d4s3pl", + "d5spoe", + "d5spok", + "d5spor", + "ds5s", + "dst4", + "d1sta", + "d5staat", + "d4stab", + "ds3tak", + "d4s3tal", + "ds4tan", + "d3s4tat", + "d5stav", + "d3ste", + "ds4te.", + "d5stee", + "d4stek", + "ds4ter", + "d4sterr", + "d4stev", + "ds3th", + "d3s4ti", + "d4stit", + "d1sto", + "ds5tram", + "ds5trekk", + "ds5ty", + "d2su4", + "ds3ure", + "ds3uu", + "d1sy", + "2dt", + "d1ta", + "dtaart5j", + "d1th", + "d2tj", + "d1to", + "d1tr", + "d1tu", + "1du", + "2duca", + "5due", + "du3en", + "du3et", + "5duid", + "5duif", + "5duik", + "d3uil", + "2duit", + "4duit.", + "d3uitd", + "5duite", + "4duitg", + "d3uitv", + "5duiv", + "du4n", + "dun5i", + "du2o", + "du4ol", + "3durf", + "3durv", + "5du1s", + "dut3j", + "du5wen", + "2dv", + "dvaat5", + "dvee3", + "dve5na", + "dvies5", + "2dw", + "d3wac", + "d3was", + "d3wat", + "d1we", + "3d2wei", + "d3wek", + "d3wet", + "d3wez", + "d1wi", + "4d1wo", + "d3wor", + "d3wr", + "1dy", + "4d3yo", + "dy4sp", + "dy2s4t", + "2dz", + "4e.", + "4ea", + "e3aa", + "e1ab", + "ea3bo", + "e3ac", + "ea4ca", + "eac5t", + "e1ad", + "ea3da", + "e5adem", + "ea3do", + "ead3s2", + "ead5sh", + "e1af", + "e1ag", + "e3ai", + "ea4k3o4", + "e1al", + "ea3la", + "e3ali", + "e4als", + "ea5mi", + "e3an", + "e4an.", + "eang3", + "ean4s", + "e5ap", + "ea3pr", + "e3aq", + "e1ar", + "ear2c", + "e1as", + "e2asc", + "ea5s4e", + "ease5t", + "ea3so", + "e1at", + "e4at.", + "eat3s", + "eau3s4t", + "e1av", + "e3bo", + "ebots5te.", + "e5br", + "3ecd", + "e3ce", + "e1che", + "e1chi", + "echt5ec", + "echts5o", + "e3chu", + "4eck", + "ec5le", + "4ecor", + "4ect", + "ec3ta", + "ec4taa", + "3ecz", + "e1d", + "ed4ag", + "e3dam", + "e3d4an", + "e4d4as", + "ede3a", + "ed3ei.", + "ede5le", + "edem4", + "ede5nac", + "ede5o", + "ed4er", + "e4d5erns", + "ede5rog", + "edi3al", + "edi3am", + "e5die", + "4edir", + "edoe5tj", + "e3d4oo", + "ed3opv", + "edors5te", + "ed3ov", + "e3d2r", + "ed3rod", + "ed3rol", + "ed1s", + "ed5se", + "ed2sl", + "ed4so", + "ed5sp", + "ed3su", + "ed3uit", + "e4d2w", + "e5dwan", + "e4e", + "eea4", + "ee5b", + "ee5ca", + "ee5che", + "ee2d3a", + "eed4ac", + "eed5as", + "ee5de", + "ee5do", + "eed3ru", + "eed3si", + "eed3w", + "ee2f", + "ee3fa", + "eef3ac", + "ee3fi", + "eef3l", + "eef3r", + "ee4gap", + "eeg3l", + "ee3i", + "ee2k", + "ee3ka", + "ee5kaa", + "eek3ak", + "eek5all", + "eek1e", + "ee5ket", + "ee3ki", + "ee3kl", + "ee4k3lo", + "eek3n", + "eek3re", + "ee3kri", + "eek3ro", + "eek5st", + "eek3w", + "ee2l", + "eel3a", + "ee3lad", + "eel4as.", + "eel5d4u", + "ee3le", + "eel4ee", + "ee3li", + "ee5lij", + "eel5k4", + "ee3lob", + "eel3og", + "eelo4ge", + "ee3lu4", + "eel3ur", + "eel3uu", + "4eem", + "eema4", + "ee2n", + "een3a", + "eena4r", + "een3e2", + "een5g", + "ee3ni", + "een5ie", + "een5k", + "ee5o2", + "ee2pa", + "eep3an", + "ee3pl", + "eepo4", + "ee4p3re", + "eep3ru", + "ee2r", + "eer1a", + "eer3aa", + "ee4rad", + "eera4l", + "ee3ram", + "ee3ran", + "ee3re", + "ee4ree", + "ee5rei", + "ee4r3i", + "ee5ric", + "eer5k", + "eer3og", + "eer5oom", + "ee3rot", + "eer5ston", + "eer5str", + "ee2s3", + "ee5sch", + "ee4s5em", + "ees5et", + "ee3sj", + "ees5lo", + "ee3sn", + "ee3s4p", + "ees5pl", + "ees5pot", + "ees5ten", + "ee3stu", + "ee2t", + "eet5aa", + "ee3tal", + "ee3tan", + "ee5te", + "eet5h", + "ee3tj", + "eetna4", + "ee3to", + "eet3og", + "eeto4ge", + "eet3oo", + "eeto4r", + "ee3tr", + "ee4tro", + "eet5rok", + "eet3sp", + "eet5ste", + "ee5v", + "ee5z", + "eën3", + "e5ër", + "ef3ad", + "efa4z", + "efde5l", + "ef3do", + "ef3ei", + "e5fer", + "4efi", + "efie4t", + "efiet5j", + "ef3ins", + "e3fis5", + "e1fl", + "ef3li", + "ef3loo", + "e3flu", + "ef3om", + "e3foo", + "ef3op", + "e1fr", + "ef3rij", + "e5fron", + "ef3sf", + "4e1g", + "egas4", + "eg3as.", + "ega5sk", + "eg3ebb", + "e4ge4c", + "eg3eig", + "egel5ei.", + "ege4l5ov", + "ege4net", + "egen5of", + "ege4ra", + "eger5eng", + "ege4ro", + "eger5on", + "e3g4i", + "eg3ijz", + "egip4", + "egiste4", + "e2gl", + "e4go.", + "eg3org", + "e2gos", + "eg3oud", + "e5graf", + "eg3s4", + "eg5sle", + "eg5so", + "e2g3u4r", + "egut4", + "e4g3uu", + "e1h4", + "e5ha", + "eheis5", + "ehit4", + "e2i", + "ei5a", + "4eid", + "ei3do", + "eid4sc", + "ei1e", + "4eien", + "eien5s", + "eie5re", + "ei3f4", + "ei3gl", + "4eign", + "e3ij", + "eik4l", + "ei3kn", + "ei5kr", + "eiks4", + "4eil.", + "eil5ant", + "4eild4", + "eil5dr", + "4eile", + "ei4lev", + "eil5m", + "ei2l3o", + "ei4n3ab", + "ei3n4ac", + "ein4do", + "eind5oo", + "ein4d3r", + "ein5gr", + "ein5k", + "ei2no", + "ein5sl", + "ei3o", + "ei2sa", + "ei5sha", + "ei3s4la", + "ei3slo", + "eis4p", + "ei3s4ta", + "4eit2", + "ei4too", + "eit4s3", + "eits5c", + "eits5n", + "eits5te.", + "eit5sten", + "eits5tr", + "eive4", + "4eiz", + "e1j2", + "e3je", + "ek3aan", + "ekaart5j", + "ekaat4", + "ek3af.", + "e4k3a4g", + "ek3al.", + "ek3alt", + "e5kam", + "ek3ang", + "ek4ee", + "ek1ei", + "e3kem", + "e5ker.", + "e5kers", + "ekes3", + "ekes4t", + "ekes5tr", + "e3ket", + "ek5eter", + "e5kic", + "e4kil", + "e5kis", + "ekla4m", + "eklam5a", + "ek3lev", + "e5klim", + "ek5loos", + "ek4ni", + "e3ko", + "e4k3ob", + "e5kof", + "ek3oli", + "ek3opz", + "e5kor", + "ek5os.", + "ek5oss", + "e5kran", + "ek3roz", + "eks4e", + "eks5erv", + "ek5set", + "ek4str", + "eks5tra", + "ek5t4e", + "ek3to", + "eku4", + "ek3uit", + "ek3ur", + "ek1uu", + "ekwet5ste", + "ek3win", + "e1la", + "el3aan", + "el5aand", + "el1ac", + "el4ade", + "el3adj", + "el3adm", + "el3adr", + "el3adv", + "el1a4f", + "el1al", + "e3lan", + "el5ana", + "e3lap", + "e5lap.", + "e4lapp", + "el3arb", + "el3arc", + "el3arm", + "el3art", + "e4l3as.", + "el3asi", + "e4l3asp", + "e4l3ass", + "el1au", + "e4laut", + "e3laz", + "el5azi", + "el4dec", + "el4dr", + "el4du", + "e1le", + "e3le.", + "el3eeu", + "el5eff", + "e5leid", + "el5eier", + "el3eig", + "el3ei5s", + "e4lel", + "3e2lem", + "el3emp", + "e5l4en", + "e3ler", + "ele5r4a", + "eler4s", + "el3erv", + "e3les", + "eles4t", + "e4l3eta", + "ele4tr", + "e4l3etu", + "el3exc", + "e3lé", + "elfi4d", + "el1fl", + "elf3s4", + "el3gu", + "2eli", + "e5lie", + "e5lig", + "eli5kw", + "el3imp", + "e4l3ind", + "e3ling", + "e4l5inkt", + "el5inz", + "3elix", + "el4kee", + "elk3s", + "el4k3u4r", + "el4kw", + "4e1lo", + "e5loep", + "el3oes", + "e3lok", + "el3ol", + "el3oms", + "el5ond", + "el5ont", + "e3loo", + "e5lood", + "e5loos", + "el3ops", + "el5opt", + "el5opv", + "el3o2r", + "el5org", + "elot4j", + "e5lou", + "el3o4ve", + "e5loz", + "elp4o", + "el4ps", + "el4s5em", + "el4s3k", + "el5smed", + "el5twe", + "4e1lu", + "el3uit", + "eluks5", + "2ema", + "e4mana", + "ema3sc", + "ema5to", + "emees5", + "emens5te", + "emer4s", + "emes3", + "emie4tj", + "e5mok", + "em3oli", + "em3op", + "em3org", + "emor5sten", + "e4mo4v", + "em3sa", + "em5sc", + "em4sli", + "em4sm", + "em1st", + "em3su", + "em3uit", + "emut4", + "en3aap", + "e3naar", + "e4n3aas", + "en1ac", + "e5n4acc", + "en5af", + "e2n1ak", + "e2nal", + "en3al.", + "en3als", + "en3amb", + "en4ame", + "e2nan", + "e4n3ang", + "en1a2p", + "e5nari", + "en3ars", + "e2n3a2s", + "enas3p", + "e3nat", + "ena4tel", + "e4n3att", + "en1av", + "e2n3a2z", + "enci4", + "3ency.", + "en3da", + "en5daa", + "end5ama", + "5enderti", + "en3d4o", + "en3dr", + "en5drek", + "e2n3e2c", + "enede4", + "e3nee", + "en3eed", + "enee5t", + "en5eg.", + "en5egg", + "en3ela", + "en3elf", + "en3ema", + "e4n3en5t", + "e2ne2p", + "en3epo", + "e5nere", + "5energ", + "e4nerv", + "en3eta", + "en3ete", + "ene4ten", + "e3neu", + "4enf", + "en5ga", + "en3gl", + "en4g5le", + "eng4r", + "en5gri", + "engs4", + "eng5se", + "eng3sm", + "e3nie", + "e5nijd", + "e2n3im", + "e4ninga", + "e4n3ink", + "e3niv", + "e4n3i4vo", + "en3k2a", + "e4n3och", + "en3off", + "e4n3oli", + "e2n1on", + "e4n3oor", + "enoot5", + "e2n1o2p", + "e3nor.", + "en3ord", + "eno3s", + "en3ou", + "e2n1ov", + "3enq", + "en5sce", + "en4sei", + "ens5ein", + "ensek5", + "3ensem", + "ens4fe", + "en4sin", + "en5slak", + "en4s3on", + "en1s2p", + "ens5pot", + "en5stan", + "en5sten", + "enst5ijv", + "en4stin", + "en4stu4r", + "en3su", + "en4tac", + "en5tee", + "en5tei", + "ente5re", + "en4terv", + "3entè", + "en1t2h", + "en5tom", + "ent4r", + "en3tre", + "ent5rol", + "ent4sl", + "ents3m", + "ent4s3p", + "en3tw", + "e1nu", + "e4n1ui", + "e2nun", + "en3ur", + "en3uu", + "5envelo", + "eny4", + "e3o", + "eo3d", + "eodo3", + "e5oe", + "eoes3", + "e5off", + "eo3fr", + "e4o3k4", + "e5on", + "eo5ni", + "e5oo", + "eo3pa", + "eo3pe", + "eo3pl", + "eop4la", + "eo3p2r", + "e5ops", + "eor5d", + "e5org", + "e5ori", + "eo3ro", + "eo3s4", + "eo5st", + "e4ot", + "eo5te", + "e5o3t4h", + "e1pa", + "e3paa", + "ep3aak", + "ep3ac", + "e4paf", + "epa4k", + "ep5ake", + "e3pal", + "e3pap", + "e4p3app", + "e3par", + "ep3asp", + "e1pe", + "e5pe.", + "ep5een", + "e5per", + "epers5te.", + "e1pi", + "3epid", + "ep3ijs", + "ep3ijz", + "ep5ingr", + "ep3ins", + "epit4s", + "epits5te", + "ep1j", + "e1pl", + "ep3led", + "e4p3lod", + "e5ploe", + "ep3lus", + "e1po", + "e4p5o4ge", + "epoort5j", + "epoot4j", + "3e4pos.", + "e3pot", + "epou4", + "e1pr", + "ep4ra", + "e3pri", + "ep5rode", + "eprot4", + "ep2s", + "ep4s5ee", + "ep4ser", + "eps3l", + "eps5n", + "eps3p", + "eps3ta", + "eps5taa", + "eps5tal", + "eps5to", + "eps3tr", + "eps5tro", + "ep4tak", + "ep2tj", + "ep4tr", + "ept3ra", + "ep5tro", + "ep3uit", + "4equa", + "e3ra.", + "e1raa", + "e5raad", + "e4raak.", + "er3aan", + "er5aanp", + "e4raap.", + "e5raat", + "e4r1ac", + "e5rac.", + "e5race", + "e5raco", + "e3rad", + "e5rad.", + "er3ado", + "er3af", + "e3raff", + "era4gen", + "e1rai", + "e4r3all", + "er3ama", + "er3ana", + "e5randa", + "e5rane", + "e5ra3pl", + "er3arc", + "e3rare", + "e3rari", + "e1rat4", + "er3a4tr", + "er3azi", + "er3d2a", + "er3d4i", + "erd4o", + "er3d2r", + "erd5uit.", + "er3d4w", + "e1re", + "er5eat", + "4erec", + "er5editi", + "er3een", + "e5reep", + "er5eers", + "er3eet", + "er3ef", + "er5eff", + "er5eg.", + "er3egd", + "er5egg", + "er5egt", + "er3eie", + "er3eig", + "er3eil", + "er5eind", + "ere3kl", + "er3elk", + "e4r3emm", + "er3emp", + "e3rend", + "e5rendel", + "ere4ne", + "eren5eg", + "er5enen.", + "e3renm", + "e3rent", + "er5enth", + "e5rento", + "eren5tw", + "ere2o", + "ere4og", + "er3epi", + "er3e2q", + "er3eri", + "e3res.", + "er3esk", + "e3ress", + "ere4st", + "ere4t3j", + "er3etn", + "e4r3ets", + "e4r5ex", + "erg2l", + "e3ri", + "eri5ab", + "e5rif", + "e5rig", + "erig5a", + "er3ijl", + "er3ijs", + "e4rijs.", + "er3ijv", + "e4r3ijz", + "e5rik", + "er5ind", + "e4r3ini", + "er5inkt", + "er3ins", + "er3int", + "e5rio", + "e5ris", + "erkeers5", + "er2kn", + "er3m4i", + "er5mo", + "er5nu", + "e1ro.", + "e3rob", + "er3oc", + "e4r3oed", + "er3oef", + "e5roep", + "eroe5tj", + "er3oev", + "er3of", + "ero2g", + "e3rok", + "e1ro2l", + "e5rol.", + "er3oli", + "e5roll", + "er3om", + "er1on", + "e3ron.", + "e3rone", + "er3onv", + "er3oog", + "er3oor", + "e5roos", + "e4r3op", + "erop3a", + "ero5pen", + "e2r3or", + "er1ov", + "er3oxi", + "e3roz", + "e3rö", + "er4plu", + "errie5tj", + "er3scr", + "er3sj", + "er5slag", + "er5span", + "ers4pot", + "er5stem", + "er5te", + "er3t2h", + "er5t4i", + "er5t4o", + "er3tr", + "ert5se", + "erts5l", + "er3t4u", + "er3t4w", + "e1ru", + "e3rub", + "e3rug5", + "e2rui", + "er3uit", + "erui5t4j", + "e2run", + "e3runs", + "e4r3ur", + "e3rus", + "er5uu", + "3ervar", + "3erwt", + "e4saf", + "e4s3a2g", + "e3sam", + "e5san", + "es3ap", + "es3arr", + "e3sa3s", + "e3scop", + "e3s2cr", + "es4e", + "e5sec", + "es5een", + "e5sel", + "es5ene", + "e4s5eng", + "es5ex", + "es2fe", + "es5he", + "e4shi", + "e3sid", + "e3sie", + "es1in", + "e4sir", + "es5je.", + "es5jes", + "e3s4jo", + "es5jon", + "e4s3ka", + "es5kr", + "e3sl", + "es4la", + "e5sla.", + "e5slag", + "es3lak", + "es5lat", + "es4le", + "es5leg", + "es2m", + "es4mui", + "e5smuil.", + "e1sn", + "e3s4ne", + "e1so", + "e3sol", + "es4oo", + "es5oor.", + "eso4p", + "es3ore", + "e1sp", + "es5pas", + "es4pel", + "espit5ste", + "e3spl", + "e4sprie", + "esp5riem", + "es4sm", + "e3stak", + "e3s4tal", + "e3stap", + "es4tar", + "es5tatie", + "e4s3te.", + "es4tea", + "es4teel", + "est5ei.", + "e4steka", + "es5tekam", + "e3s4tem", + "es5temo", + "es3ten", + "e4sten.", + "es5tenb", + "es3ter", + "estere5o", + "es5tes", + "es4tet", + "e3steu", + "es4tic", + "e4stie", + "e3stot", + "es5tra.", + "es5trac", + "es5trak", + "e5stral", + "est5rap", + "es5trei", + "est4sc", + "es4tur", + "e3sty", + "e3su", + "esu4r", + "e3sy", + "e1ta", + "e3ta.", + "et3aan", + "et3ac", + "et3ad", + "et3afz", + "3e2tag", + "e3tak", + "e5tak.", + "et4ana", + "e5tand", + "e2tap", + "e4tapp", + "e5tat", + "e4tau", + "e2tav", + "e3te", + "e5tea", + "et3edi", + "e5tek", + "4etel", + "e5tel.", + "e4t5elf", + "e5tels", + "et5emb", + "et5emm", + "etens5u", + "eten5tj", + "ete5r4a", + "ete3ro", + "eters5la", + "eter5sm", + "e5tes", + "e1th", + "et3ha", + "et3hor", + "et5hu", + "e4t5i4d", + "e5tie", + "e4t3inc", + "e4tiq", + "e5tis", + "e4tja", + "e1to", + "e5toc", + "e3toe", + "e5toev", + "e3tol", + "eto4p", + "et3ope", + "et3opl", + "e4t3ork", + "eto3sf", + "e1tr", + "et3rec", + "e4t5res", + "e3troe", + "e5tron", + "e5troo", + "etros4", + "e4t3ru", + "et4sl", + "ets5lap", + "et5slu", + "ets3n", + "et4s3oo", + "et3spe", + "ets3pr", + "et3spu", + "et4ste", + "ets5tek", + "et5sten", + "et5sti", + "ets4u", + "et5su5r", + "et5suu", + "e1tu", + "etui5tj", + "etu4r", + "et3we", + "et2wi", + "1eua4", + "1euc", + "eudi5o", + "eu5dr", + "eu3e", + "eugd3r", + "eu3g2r", + "eu4ler", + "eu4li", + "e1um", + "e3um.", + "e2umd", + "eu2na", + "eun3t", + "1eu1o", + "eu2po", + "eu4rad", + "eu4rec", + "eu3ren", + "eu4res", + "eu4rij", + "eur5k", + "euro5v", + "eur4sta", + "eurs5taa", + "eurs5te.", + "eur4s5tr", + "eur4su", + "eu5sch", + "eus4p", + "eu3spa", + "eu4st", + "eu5str", + "eu3tj", + "eu1tr", + "e3uu", + "2euw", + "eu4wa", + "eu5win", + "euw4str", + "evaar5tj", + "eval4s", + "evari5", + "eve4lo", + "evel5op", + "eve5n4aa", + "4ever", + "eve3ra", + "4e1w", + "e5wa", + "e5we", + "ewen4s", + "ewens5te.", + "ewest5r", + "ew2h", + "e5wi", + "ewo3v", + "4ex.", + "2ex3aa", + "ex3af", + "4exco", + "3exeg", + "3exem", + "4exi", + "ex3in", + "ex5op", + "1exp", + "e3y4o", + "eys4", + "ey3st", + "e5za", + "e3zee", + "4e3zen", + "ezers5", + "e3zo", + "ezz4", + "é3a", + "é1d", + "édee4", + "édi3", + "é1g", + "égee5", + "é3h", + "é3j", + "é3n", + "é3p", + "é3r", + "é1t", + "è1", + "4èc", + "è2l", + "è2s", + "è5t", + "èta5", + "ê1", + "ê2p", + "ê3per", + "ê5t", + "3ë", + "4ë.", + "ë2b", + "ë3c", + "ë3d", + "ëe2", + "ëen3", + "ë3j", + "ë1l", + "5ën", + "ënce3", + "ën4e", + "ëns2", + "ën5sc", + "ënt2", + "ën5th", + "ën5tw", + "ë3p", + "ë1ra", + "ë1re", + "ë1ri", + "ë1ro", + "ëro1g2", + "ëro3s", + "ë2s", + "ë3si", + "ës3t", + "ë1t", + "ët4s", + "ëts3te", + "ëve5", + "ëven4", + "4ëzu", + "4f.", + "1fa", + "f3aanb", + "f4aat", + "3fab", + "fa2bo", + "f3acc", + "face4", + "f1ach", + "2fad", + "2f1af", + "fa3g", + "fal3s", + "fa3m", + "f3ang", + "fant2", + "fan4t3j", + "fant4s5", + "2f3a2p", + "f4arm", + "3fa5se", + "fa2to", + "fa3v", + "4fb", + "fbe5dw", + "f1c", + "4fd", + "f3da", + "fda4g", + "f5dan", + "fd1ar", + "fde4k", + "fdek3l", + "fde4s3", + "fdes5e", + "fdes5l", + "fde5sm", + "fdes5t", + "f2d3in", + "fd3of", + "fdors5te", + "fd4ra", + "f3d4ru", + "fd5se", + "fd3si", + "fd3so", + "fd3sp", + "f4d2w", + "fd3wo", + "1fe", + "fe2a", + "fec4tr", + "fede3", + "fe4del", + "f3een", + "5fees", + "feest5r", + "fel5dr", + "fe4l3ee", + "3feli", + "fe4lom", + "fe4l3op", + "fel3sp", + "fe3no", + "f4er", + "fe3rab", + "fe3ran", + "fe4r3et", + "fe3rom", + "fe3ron", + "3fes3", + "fe4t3j", + "fetu5r", + "2f3ex", + "1fé", + "3fè", + "3fê", + "4f1f", + "f5fe", + "f5fi", + "ffs2", + "ff3sh", + "ff3si", + "f3fu", + "f3g2", + "fge3", + "fge5r4", + "fge5t", + "4f5h", + "1fi", + "fi5ac", + "fi4al", + "fi3am", + "fi3apa", + "fi3apo", + "fia4s", + "3fib", + "fi1ch", + "5fie", + "5fig", + "f3ijs", + "2f1ijz", + "fik4st", + "3f2il", + "fil4m3a", + "film5on", + "fi3lo", + "4find", + "3fini", + "f3inj", + "4fink", + "2finr", + "fi3o", + "fi4r", + "fi4s", + "fi5se", + "f5iso", + "f1j", + "fjes5", + "4f1k4", + "f3ke", + "f2l2", + "4f3laa", + "f1laf", + "f4lam", + "f3lei", + "flen4st", + "flens5te.", + "f4les", + "fle2t", + "flet3j", + "4flev", + "f4lex", + "f3lez", + "2flie", + "2flij", + "f4lik", + "f4lip", + "f4lit", + "f3lok", + "3f4lor", + "flu4t3", + "4f1m", + "f1n", + "1fo", + "3fob", + "5foc", + "foe5d", + "foe5ta", + "2f3of", + "5fok", + "2foms", + "fo5na", + "fond5en", + "fonds5l", + "fon5eng", + "fo1no", + "4font", + "fon5te", + "foo4", + "fooi5", + "f3oom", + "5foon", + "2fo4p", + "fop5s4", + "f4or", + "3fo5re", + "fo5ri", + "5form", + "for4t3j", + "fo1ru", + "fo3t", + "2f3oud", + "4f1ov", + "3fö", + "4f5p4", + "fpers5te.", + "fpits5te.", + "fr4", + "f4raak.", + "fraam5", + "5frac", + "f3rad", + "f2ras", + "5frau", + "f1rec", + "f3rek", + "5freq", + "frie4s", + "frie4t", + "friet5j", + "f4rik", + "f4rod", + "4f3rol", + "f4rolo", + "f3roma", + "frus3", + "4f1s", + "f2sa4", + "fs3ad", + "fs3an", + "fs3ar", + "f3sc", + "f5sch", + "f4scr", + "fse2", + "f4s3ec", + "f4s5ee", + "f4sei", + "f4s3eth", + "fs4fe", + "f2sh", + "fs5he", + "f2si", + "f3sie", + "fs3im", + "fs1in", + "f5slaa", + "f5slac", + "f5slag", + "fs3lap", + "fs2m", + "fs3ma", + "fs4mi", + "fs3mo", + "fs3mu", + "f2s1o4", + "fs3ob", + "fs3om", + "fs4oo", + "fs2p", + "fs4pre", + "fs4t", + "fst3as", + "f3ste", + "fs5tec", + "f5stell", + "fste4m3", + "f4sterr", + "f3sti", + "f5stif", + "f3sto", + "f4st3oc", + "f4ston", + "f3str", + "f3stu", + "f3sy", + "4ft", + "f1ta", + "ft1ac", + "fta4kl", + "fta4p", + "ft3art", + "fter5sh", + "ft3h", + "f1to", + "f5tond", + "f4tont", + "f1tr", + "ft2s3l", + "ft4sm", + "fts3n", + "ft4so", + "fts3p", + "f1tu", + "ftu4r", + "1fu", + "2fuit", + "fu4ma", + "fum3ac", + "3f2un", + "fur4o", + "3fus", + "2fuu", + "4fv", + "fva2", + "fval3", + "4f1w4", + "3fy1", + "2fz", + "fzet5", + "4g.", + "1ga", + "3ga.", + "gaar5tj", + "g4aat", + "2g1ac", + "4g3adm", + "g4af.", + "g3afd", + "ga3fr", + "4g3afs", + "4g3afw", + "2g3a4h", + "4gal.", + "ga3la", + "ga4l3ap", + "ga5ler", + "gal3s", + "4gamb", + "g4a3mi", + "3gan", + "gan5d", + "5gane", + "gan4s5t", + "ga3pl", + "3gar.", + "4g3arb", + "ga3re", + "g1arm", + "3gars", + "2g3art", + "gar5tj", + "ga4s", + "gas5c", + "gas3i", + "ga5sla.", + "ga3sli", + "ga5slo", + "gas3o", + "gas3p", + "gas3tr", + "gas5tra", + "gast5rol", + "3gat", + "gat5j", + "gat3s", + "4gaut", + "ga5ve", + "g1avo", + "2g5b", + "2g1c", + "4gd", + "g5dac", + "g5dag", + "gd3art", + "gd3at", + "gd5ate", + "g3de", + "g4d3elf", + "g5der.", + "gd3erv", + "g4d3id", + "gd3im", + "g2din", + "g3dr", + "g5dru", + "gd3sa", + "gd5sp", + "g3du", + "1ge", + "3ge.", + "ge3a", + "gea3dr", + "gea5na", + "gea3q", + "ge4ari", + "ge5au", + "4g3eb.", + "2gebb", + "ge3c", + "ge3d4", + "gedi3a", + "ge4dit", + "ge5dr", + "ge5dw", + "3gee4", + "geest5r", + "geet3a", + "ge3f4", + "2g3eff", + "ge5g4", + "gege4s", + "4geig", + "2g3eik", + "gei4l5a", + "5geit", + "geit3j", + "ge3k4a", + "ge3ke", + "ge5ki", + "ge5k4l", + "ge3kr", + "gek4st", + "gek4u", + "ge3k4w", + "ge3lau", + "gel4d3a4", + "ge3l4e", + "4ge4lem", + "gel5f", + "gel5k", + "5ge3l4o", + "gel5si", + "gel3sl", + "gel3sp", + "gel5ste", + "ge5ma", + "4gemb", + "4g3emf", + "ge5mo", + "2g3emp", + "gems3", + "ge3m4u", + "g4en.", + "ge3nak", + "gen4az", + "3ge3ne", + "ge4n3ed", + "ge4nend", + "4g3engt", + "3geni", + "gen5k", + "ge1no", + "ge4n4of", + "ge4nog", + "gen5sfe", + "gen5ston", + "gen5stu", + "genstu5r", + "5genw", + "ge5om", + "geo5pe", + "georke5", + "ge5os", + "ge5ot", + "ge5p4", + "ge1ra", + "ger5aal", + "ger5aap.", + "ge4r3a4l", + "gera4p", + "ger5ape", + "ger5as.", + "ge5reg", + "ge3rem", + "ge5ren.", + "ger4i", + "ger5ini", + "ge1r2o", + "ger4of", + "ge5rol", + "ger5slan", + "ger4sli", + "gers5lij", + "ger4sp", + "4g3erts", + "ge3r4u", + "3ge1s4", + "ge3sa", + "ge3sc", + "ge5se", + "ge3si", + "4ge3sk", + "ge5sl", + "ge3sn", + "ge3so", + "ge5spend", + "ge5sper", + "ge5spo", + "ge5stan", + "ges5te.", + "ges5ten.", + "ge3str", + "ge5sw", + "ge3ta", + "get4aa", + "ge5tam", + "ge2th", + "ge5t4i", + "ge3t4j", + "get4o", + "ge3tr", + "ge5tra", + "ge5tro", + "ge5tru", + "ge5tsj", + "ge5tu", + "ge5t4w", + "ge3ui", + "5g4ev", + "4gex", + "5g4ez", + "1gé", + "gédi4", + "3gè", + "4g1f", + "gfijn5ste", + "4g3g4", + "g5ge", + "gge3la", + "gge4r5on", + "gges5ti", + "g4g5h", + "g5gi", + "ggings5", + "g5gl", + "2g1h", + "g2het", + "ght4", + "gh5te", + "g2hum", + "1gi", + "gids5te", + "gie5ra", + "gier4s", + "gi1eu", + "gi2f", + "gif5r", + "gi3ga", + "5gigere", + "5gigste", + "2gij", + "g3ijs", + "4gijz", + "gi2m", + "gi3na", + "4g3inb", + "4g3inf", + "g5infe", + "g5infr", + "5ging", + "2g3inh", + "gin3o", + "2ginr", + "gi4oc", + "gi2od", + "gi4onet", + "gi2or", + "gip4st", + "5gir", + "3gis", + "4g1j", + "4g1k", + "gl4", + "g5lab", + "3glai", + "1gla4s", + "glas3e", + "g5lat", + "3g4laz", + "3gle.", + "g5leer", + "glee5t", + "g3len", + "2g5lep", + "4g5ler", + "g3les", + "3gle4t", + "glet3j", + "g5lev", + "g5lice", + "g5lich", + "3glië", + "g2lif", + "g5lijs", + "g2lim", + "3g4lio", + "g2lob", + "3glof", + "g5log", + "3glom", + "4g3lon", + "g3loon", + "g3lop", + "3g2los", + "g5loz", + "3g2ly", + "4g1m", + "gmaat5j", + "2g1n", + "g3na", + "gn4e", + "gne5g", + "gne5m", + "gne4t3j", + "gnie4tj", + "4gnu", + "1go", + "3go.", + "3go2a", + "3gob", + "2goc", + "g1och", + "go4d3a", + "god4s3", + "gods5t", + "4goef", + "goe1r", + "2gof", + "go3f2r", + "g4og", + "4goh", + "go2k", + "5gom.", + "go2ma", + "g3oml", + "4gomz", + "go4n3az", + "2g3ong", + "go5no", + "2g1ont", + "g2oo", + "2g3oor", + "3goot", + "2g1op", + "go3pa", + "g4opr", + "g4ora", + "4go4re", + "go5re.", + "5g4ori", + "gor2s", + "gos1", + "go3tr", + "gou4d5ee", + "2g3ov", + "2g5p", + "gpes3", + "1gr4", + "3gra", + "5gra.", + "graat5j", + "g5rak", + "gra2m", + "g4ram.", + "gram3a", + "g3ramp", + "gra4s3", + "5grav", + "2g3rec", + "2g3red", + "5gredi", + "g5redu", + "g3reek", + "g3reel", + "g4reep", + "g3reis", + "4g3rek", + "2g3rem", + "gren4s", + "gre4s", + "g4reu", + "g3rev", + "5gria", + "grie4t5j", + "g5rijd", + "g5rijk", + "g5rijm", + "g5ring", + "5g4ris", + "grit5s", + "2g3riv", + "groet5j", + "grof5", + "g3rok", + "g3rook", + "g3room", + "groot5j", + "2grou", + "gro5v", + "2g3rug", + "g3ruim", + "g3rup", + "4gs", + "gs1a2", + "gsa4g", + "gs5alar", + "gs3alt", + "g2sc", + "gse4", + "gs3eco", + "g4s3ed", + "gs5een", + "gs3ei", + "gs3en", + "gs5ene", + "gs3erv", + "gs3et", + "gs3ev", + "gs5he", + "g2s1i2", + "g3sie", + "gs5is", + "gs1j", + "g3s4ke.", + "gs3l", + "gs4la", + "gs5laag", + "gs5lam", + "gs5las", + "gs1le", + "g3slep", + "g4sleu", + "gs5lie", + "gs4lin", + "g5sling", + "gs4lo", + "gs5log", + "gs5lok", + "gs5lon", + "gs4lu", + "g4s5ma", + "gs3n", + "g4sna", + "g3snij", + "g4s1o4", + "g5sol", + "g5som.", + "gs5ons", + "gs3op", + "gs3p", + "gs5pand", + "g3spec", + "g3s4pel", + "g3s4pet", + "gs4pi", + "g3spie", + "g3spil", + "g5spin.", + "g5spinn", + "gs5pir", + "gs5pol", + "g3s4pon", + "gs5ps", + "gs5q", + "gs5sc", + "gst2a", + "gs5taal", + "gst5aang", + "gs5tac", + "g5stad", + "g5s4tan", + "g4st3ap", + "g5stat", + "g1ste", + "g5s4te.", + "g5sted", + "g5stee", + "g3stei", + "gs3tek", + "g5stel", + "g3sten", + "g3ster", + "g5ster.", + "gs5terr", + "g5sters", + "gs3th", + "g5s4tic", + "g3s4tig", + "gs5tijg", + "g5stof", + "g5stop", + "g5stor", + "gst3o4v", + "g4s3tra", + "gs5trad", + "gs5trak", + "gst5ram", + "gs5trap", + "g5strat", + "gst5res", + "gs5troe", + "gs5tron", + "g4stru", + "g5struc", + "g3stu", + "gs5ty", + "g2s1u4", + "gsver3", + "gs5w", + "g5sy", + "4gt", + "g1ta", + "g2t3ap", + "g3te", + "gte3ro", + "gtes4", + "gte3st", + "g1to", + "g3tr", + "g1tu", + "1gu", + "5gu.", + "3gue", + "gu4eu", + "2guit", + "gu4ni", + "gu2s3", + "gut4st", + "guts5te.", + "4gv", + "g5vo", + "4g1w", + "g5wa", + "1gy", + "4gyp", + "2gz", + "4h.", + "haams5ta", + "haar5sl", + "haar5sp", + "haars5te", + "haar5tj", + "haats5te.", + "h3afd", + "haf4t3u", + "ha3g", + "ha5ge", + "hal2f1", + "5hals", + "hal4sto", + "5halz", + "2hamp", + "4han.", + "han4dr", + "hand5sl", + "han3ga", + "hang5l", + "hang5s", + "han4s3l", + "han3so", + "han4st", + "hap2s", + "hap4se", + "har4ta", + "harte5l", + "hart3j", + "har4t3o4", + "har5tre", + "hart5sl", + "hat5j", + "ha2t3r", + "hat3s", + "ha3v", + "4have.", + "4hb", + "2hd", + "h4e", + "2hea", + "he2ar", + "3hech", + "he3co", + "4hee.", + "hee3g4", + "hee4k", + "heek3a", + "heek5l", + "hee4l3o", + "heep4s", + "heeps5c", + "heers5tak", + "hee5sto", + "hee5tjes", + "he2f", + "he4i", + "heids5p", + "heis4", + "hei5tj", + "he2k3a", + "he2kl", + "hek4st", + "heks5te.", + "hek5sten", + "hek3w", + "he3le", + "he4l3ee", + "he3li", + "hel4m3a", + "helo4", + "hel4p3a", + "hel3sm", + "he5mo", + "he5ne", + "hen4kr", + "he3n4o", + "4he5o", + "he4pij", + "he2p3l", + "he2pr", + "he1ra", + "her4aa", + "he4r3ad", + "he3r4au", + "he4r3i", + "herm5eng", + "he3ros", + "hero5v", + "her4p5aa", + "3herst", + "hert4", + "herts5te", + "he2ru", + "he5se", + "he2sp", + "he2s5t", + "hets5te.", + "heu5le", + "2h3f", + "4h5g", + "h3h", + "hi5d", + "hie4f3", + "hielsges5", + "hie4r3", + "hie5ren", + "hier5u", + "hie4t5o", + "hie4tr", + "hiet5s", + "hij4sl", + "hik4s5", + "hi3kw", + "hil3m", + "him4pl", + "him4pr", + "hin5d", + "h3ins", + "hin4t3j", + "hi2p5l", + "2hir2", + "his5p", + "hi3tr", + "hit4st", + "hits5te.", + "hit5sten", + "h3j", + "2hl", + "h3la", + "h4lag", + "h3lep", + "h3loc", + "2h2m", + "h3ma", + "h3me", + "h4mer", + "h1n", + "h2na", + "hno3", + "2ho.", + "ho3a", + "hoa3n", + "hoboot4", + "ho3ch", + "hoe4ker", + "hoe4s", + "hoes5l", + "hoe3t", + "ho2f", + "hof5d", + "hof3e", + "ho3g2", + "ho2ka", + "ho5mo", + "hon3dr", + "hond4s", + "hon3g", + "honi4", + "ho1no", + "hool3e", + "4hoom", + "hoort4", + "hoor5tr", + "2hoot", + "ho3pa", + "ho1pe", + "ho2p3o", + "hop3r", + "hop4str", + "hor5de", + "5horl", + "ho3ro", + "hor4st", + "hors5te.", + "hor5sten", + "hor4t3j", + "ho3ru", + "ho3sa", + "hot3j", + "ho3tr", + "ho4t3re", + "hot4st", + "hots5te.", + "ho3v", + "2ho4w", + "how3o", + "2h1p", + "hpi4", + "2hr", + "hra4b", + "h4re", + "h5rea", + "hri4", + "hro2k", + "hrok3o", + "hroot3", + "4hs", + "h3sa", + "h3sp", + "h3st", + "2ht", + "h4t1a2", + "ht3ac", + "h3tal", + "ht3ala", + "h5tans", + "h3te.", + "h4t3ec", + "ht4eco", + "h2t3ee", + "h2t3ef", + "h2t3ei", + "ht5em", + "h3ten", + "h4ten5t", + "ht5entw", + "hter3a", + "hte4r5o", + "h4t3esk", + "h4tev", + "ht5eve", + "h5tevo", + "ht3ex", + "h2t5h", + "h4t3int", + "h2t1j", + "ht1o4", + "ht5oef", + "ht5op", + "h4t1r", + "ht5roo", + "ht4sap", + "htse4", + "ht4ser", + "ht2si", + "ht4sl", + "ht5sla", + "ht5slot", + "ht3sme", + "ht5smij", + "ht4s3o", + "ht3spe", + "hts3pl", + "ht3spr", + "hts5taal", + "ht4s5tak", + "ht4s5tek", + "ht4sti", + "hts5tore", + "hts5trekk", + "ht1u2", + "ht3w", + "hu4ba", + "3huiz", + "hul4der", + "hur4t5", + "hut3j", + "huts5te.", + "huur5s", + "4h1w", + "hy4la", + "3hyp", + "hypo1", + "4i.", + "i1a", + "i3aa", + "i4ab", + "i5abi", + "i4ac", + "i3ady", + "i3ae", + "i5ae.", + "i2a3f4", + "i2a3g2", + "i3agr", + "i3ai", + "i5ak.", + "i3ake4", + "ia4kem", + "ia3kl", + "ia3kr", + "i3al.", + "i4a3la", + "i3ali", + "i2am", + "i5am.", + "i3ami", + "i3an", + "ian4o", + "ia3o", + "i2a1p4", + "ia5pa", + "i5api", + "ia3sc", + "ia5se", + "ia3so", + "ia4s5po", + "ia3sta", + "i3at", + "ia3t2h", + "i5atri", + "iave4", + "i5ble", + "iboot4", + "4ic", + "i3ce", + "5i4cepa", + "i1cha", + "i1che", + "ichee4t", + "i1chi", + "i1cho", + "i3chr", + "ick5l", + "icos4", + "ic4t3op", + "ict4s5c", + "i3dam", + "idde4r5a", + "ide3a", + "i4dee.", + "ider4sp", + "ider4st", + "ides4", + "idi3a", + "idi5ab", + "i2di5o", + "id4mak", + "i3dok", + "i2dr", + "id3ran", + "id3ru", + "id2s1", + "id4s3a", + "id4ser", + "ids5i", + "ids5j", + "ids5l", + "id4sm", + "ids5ma", + "id5s4mee", + "id4s3o", + "ids3ta", + "ids5tak", + "ids5tek", + "id4stem", + "id4sti", + "ids5tr", + "id3u4r", + "id3uu", + "idu3w", + "id3w", + "4ie", + "ie1a2", + "ie4d3ac", + "ie3de", + "ie4dro", + "ied3w", + "i1ee4", + "ieë2", + "ie3fi", + "ie2fl", + "ie3fle", + "ie3fon", + "ie4fr", + "ie4gas", + "ie3ge", + "ie4g5ins", + "i2ek", + "iek3e4v", + "ie4kl", + "iek3li", + "ie5klu", + "ie2kn", + "iek5ond", + "iek4s5n", + "iek4sp", + "ie2ku", + "ie3kwa", + "ie5lan", + "ie5lap", + "iel5do", + "iel5d4r", + "iel4e", + "iel5ei.", + "iel5k", + "iel3sc", + "ie3ma", + "iem3ov", + "ien4dr", + "ien3ij", + "i3enn", + "i5enne.", + "ien3s4m", + "ien5sp", + "ien4sta", + "ien4st5o", + "ien4str", + "ienst5ur", + "ieo4", + "i4ep", + "ie5pen", + "iepiet5", + "iep5oog", + "iepou5", + "iep5rel", + "iepro4s", + "iep3s4", + "iep5st", + "iep5tr", + "ie4pui", + "ie5r4ad", + "ier3a4l", + "ie3ram", + "ie3rap", + "ier3as", + "ie4rat", + "ier5el.", + "ier5els", + "ie5ren.", + "ie5ring", + "ierk4", + "ie3r2o", + "ie4rof", + "ier4sl", + "ier5slu", + "ie3ru", + "ier4ui", + "ie3sf", + "ie2si", + "ie4sl", + "ie5sle", + "ies3li", + "ies3m", + "ie2s3n", + "ie2so4", + "ie4s3pl", + "ie3sta", + "ies5te.", + "ie5stel", + "ies5tere", + "ie3sto", + "ie4taa", + "ie5tal", + "iet5ant", + "ie5ten", + "ie3tj", + "ie3to4", + "ie4t3og", + "ie4too", + "ie4top", + "ie4tor", + "ieto5re", + "ie4t3ov", + "ie5troe", + "iets5te.", + "iet3ur", + "iet3uu", + "ie3twi", + "i3ety", + "ie2u", + "ieu3k", + "i1eur", + "ieu5r4e", + "i1eus", + "ieu3sp", + "i1euz", + "ie3v", + "ie3z", + "iezel5a", + "i3és", + "i1ét", + "i1è", + "i4ëg", + "i4ëva", + "4if", + "if3aa", + "if3ad", + "if3l", + "if3r", + "if4ra", + "if4taa", + "if4tar", + "if4tre", + "iftu5r", + "if3ui", + "ig4a", + "ig3aa", + "ig5ac", + "i5gal", + "i4g5av", + "i3ge", + "ige2s", + "ig3esk", + "ig3ij", + "i4gind", + "igi3o", + "ig5no", + "i3g4om", + "ig4op", + "igs4", + "ig3sk", + "ig3sl", + "ig3sp", + "ig3sto", + "ig3un", + "i1h", + "i3i", + "i5ie", + "ii2n", + "i5is", + "i2j", + "4ij.", + "ij5a", + "ija4d", + "4ijd", + "4ije", + "ij3ef", + "ij3ei", + "ij3el", + "ij5e4n3", + "ij1er", + "ij3i", + "4ijn", + "ij3o4", + "i3jou", + "4ijso", + "4ijsp", + "4ijst", + "ij5te", + "ij4tr", + "ij5u", + "4ijvo", + "4ijzo", + "4ik", + "ik3aar", + "i4kam", + "i3ke", + "ik3ef", + "ike4ra", + "iket3", + "i2kij", + "i3kl", + "ik3la", + "i4k3lo", + "i4k3lu", + "i2k4n", + "i4k5na", + "ik5o2g", + "i3kom", + "i2koo", + "iko2p", + "ik3ope", + "ik3ord", + "i4kr", + "ik3re", + "ik3ri", + "ik3ro", + "ik5se", + "ik5si", + "ik3s4l", + "iks3n", + "ik3sno", + "ik3sp", + "ik4spa", + "ik1st", + "ik5sta", + "iks5te.", + "ik1w", + "ik5war", + "i1la", + "i3la.", + "il4aa", + "il5aan", + "il3ac", + "il4act", + "il3ad", + "il3af", + "i3lak", + "il3al", + "i5land", + "il2da", + "il4d3r", + "ilds4", + "4i3le", + "il3een", + "ile3l", + "i4l3erv", + "ile4t", + "ilet5r", + "ile3u", + "il3e4ve", + "ilevin4", + "i4l3e2z", + "i3lé", + "il5f", + "i3li", + "ilie5g", + "ilie5t", + "il3ink", + "ilk4l", + "ilk3s2", + "illa3s", + "1illu", + "il2m", + "ilme2", + "il4min", + "il4mo", + "i1lo", + "ilo4ge", + "il3ond", + "i3loo", + "i5loon", + "il3oor", + "il1or", + "ilo4re", + "ilo4ve", + "il3s2h", + "ils5j", + "il4sti", + "il2th", + "i1lu", + "4im.", + "i2mag", + "i4mago", + "im5au", + "imee4", + "im3een", + "i4m3em", + "im3enc", + "im3ex", + "4imf", + "i2m3of", + "im3op", + "im3org", + "im5pa", + "im4s3oo", + "im1st", + "i3mu", + "in1ac", + "i2nau", + "ind4aa", + "in4dene", + "ind3sc", + "ind5ste", + "1indu", + "in3e4de", + "in3edi", + "in3eed", + "inek4", + "ineo2", + "inet4s", + "i5neu", + "1inf", + "in2ga4", + "ing3aa", + "ing3ag", + "ing3al", + "3ingan", + "ing5lo", + "in2go", + "in4gr", + "ing4st", + "4ini.", + "i3nie", + "ini5on", + "ini5sl", + "ini5sta", + "4inkj", + "in2kn", + "3inkom", + "in4kri", + "3inno", + "i1no", + "i3noc", + "i3nod", + "in4o2g", + "in1on", + "ino5pe", + "ino3s4t", + "in3ov", + "1inri", + "4ins.", + "in5sch", + "in5se", + "in3sl", + "in3smi", + "in3so", + "in1sp", + "in5spo", + "in5sten", + "in5swi", + "in4t3ap", + "in5te", + "intes5", + "in3th", + "1int4r", + "i1nu", + "inuut3", + "4i1o", + "io5a", + "ioas5", + "io5b", + "i3o1c", + "i3ode", + "ioes3", + "io3f", + "io3g2", + "i3ol", + "i5ol.", + "i5olen", + "i5olus", + "i3on", + "ioneel4", + "i5ong", + "ion4s3", + "ions5c", + "i5oo", + "i2op4", + "io3pa", + "io3pr", + "i3opt", + "io3ra", + "i3ori", + "io3ru", + "io4s", + "i3os.", + "ios3c", + "i3o5se", + "i3o5sf", + "io5sh", + "io5si", + "i5osi.", + "io5so", + "io5sp", + "io5s4t", + "i5o5su", + "i3osy", + "i5othek", + "i3oti", + "iot3j", + "i5otorens", + "io3tr", + "i2o3v", + "i3ox", + "i2oz", + "i1pa", + "i2p1ac", + "ip3af", + "i3pap", + "i1pe", + "i4perw", + "ipe4t3j", + "i1pi", + "ip1j", + "i1pl", + "ip3lu", + "i1po", + "ipo4g", + "i1pr", + "i2pri", + "ip3ru", + "i4ps", + "ipse4", + "ip4si", + "ip4sle", + "ips5te.", + "ip5sten", + "i3ra", + "ira3k", + "i1r2e", + "ires4", + "ire3st", + "i3ré", + "i1ri", + "irk4s", + "i1ro", + "iro3p", + "iro5v", + "ir2s", + "ir4sc", + "ir3sp", + "ir5ste", + "irt3r", + "i1ru", + "4is", + "i1sa", + "i2saa", + "i4s3ad", + "is3a2g", + "is3ap", + "i2s1ar", + "i2s3as", + "i4sc", + "i5scha", + "i5schr", + "is5col", + "i5scoo", + "i5scope", + "ise2d", + "i4s3ei", + "is3ell", + "is5eng", + "i4s3erv", + "ise3st", + "iset3j", + "is4fee", + "is4fer", + "i4sh", + "is5ho", + "isi2d", + "i2sij", + "i2s3im", + "is3ja", + "i4sk", + "is3ka", + "is3ke", + "is3l", + "is5lag", + "is5las", + "is5le", + "i4s5m", + "i4s3n", + "is5ned", + "is5nij", + "is5no", + "5isol", + "i4soo", + "is4oor", + "iso3s", + "i2sot", + "is3ott", + "is3p", + "is5pas", + "is2pi", + "is5pl", + "is5q", + "is5sa", + "is5so", + "i2s3t", + "is1ta", + "i3stak", + "ist3ap", + "i4s5tas", + "is4tat", + "is5terd", + "is5tere", + "is4th", + "is1to", + "ist5ong", + "i3str", + "is5tri", + "i5stro.", + "i3sty", + "isu2m", + "i5sy", + "4it", + "i1ta", + "it3ac", + "ita5d", + "it3een", + "i3ten", + "i3ter", + "ite5rei", + "ites4", + "ite3st", + "ite4t", + "it3hie", + "it1ho", + "it1hu", + "it2i", + "itie5st", + "i4tj", + "i1to", + "it5oef", + "it3oog", + "i3t2ou", + "i4to4v", + "itper5st", + "it3red", + "it1ru", + "it3sje", + "it3sli", + "it3sop", + "it1sp", + "its4te", + "it4ste.", + "it4too", + "i3tu", + "it3w", + "4i3u2", + "iu4m", + "ium3a4", + "ium3e", + "ium3o", + "iu3r", + "i3ve", + "iven5s", + "ive3re", + "i5w", + "iwi2", + "iwie2", + "iwit3", + "4iz", + "i3ze", + "ize3t", + "î3", + "ît4", + "1ï", + "2ï.", + "ï5a", + "ï1c", + "ï1d", + "ïe4n3", + "ïe5nen.", + "ï2n3a", + "ïns5m", + "ïn3sp", + "ïn3u", + "ï3n4ur", + "ï3o", + "ï3ri", + "ï3ro", + "4ïs.", + "ïs3a", + "ï4sc", + "ï5sche", + "ïs3l", + "ï3so", + "ïs3t", + "ï1t", + "ï5z", + "4j.", + "1jaar", + "jaar5tj", + "ja3b", + "2jaf", + "1jag", + "jagers5", + "ja3kn", + "ja3mi", + "jan4s3l", + "jan4st", + "ja3pl", + "ja1po", + "1jar", + "jare4", + "1jas3", + "jas5p", + "3jaw", + "jaz4", + "j3b", + "jba4l", + "jbe4l3i", + "j1c", + "jda2", + "j2d3aa", + "jd3an", + "j4d3ar", + "j2d3ee", + "jde4n3e", + "jden4s", + "jdens5p", + "j4d3erv", + "jdes4", + "jde3sp", + "jde5st", + "jdi3a", + "j2do4", + "j3dom", + "jd5on", + "jd3op", + "j3dr", + "j4d3re", + "j4d1ri", + "j4d3ro", + "j4d3ru", + "jd5sei", + "jd3spo", + "jd1st", + "j2d3u", + "jd3w", + "j3d4wan", + "jea4", + "3jeba", + "je3ch", + "jec4ta", + "2j1ee", + "jel4", + "je3la", + "j1en", + "je2na2", + "je3n4o", + "5jep", + "jepiet5", + "je3ro", + "jers4", + "jer3sp", + "je4s3", + "3jesa", + "5jesal", + "je5sch", + "3jeskn", + "jes5l", + "jes5m", + "jeso2", + "jes5pa", + "jes4pr", + "3jesr", + "jes5tr", + "5jesvo", + "3jeswa", + "3jeswi", + "je2t", + "jet3er", + "jeto4v", + "jet5st", + "5jeu", + "3jevr", + "2jew", + "j3ex", + "j2f1a", + "j2f3ei", + "j2f1en5", + "j4f3ij", + "jf3ink", + "jf3l", + "j3f4lat", + "jf5le", + "j2f3o4", + "jf3r", + "j3f4ra", + "j3f4ro", + "jf2s", + "jfs3a", + "jf4sc", + "jf4s3er", + "jfs5f", + "jfs3l", + "jfs5m", + "jfs3n", + "jfs3p", + "jfs5pa", + "jf3st", + "jf4sta", + "jfs5tak", + "jf5stan", + "jf4stel", + "jf4sti", + "jf4s5to", + "jft2", + "jf5ti", + "jf5tw", + "j1g", + "j3ge", + "jger5sl", + "j2g3l", + "jg4s5e", + "jg3sn", + "jg2st", + "jg3s4te", + "j3h", + "jif3", + "j3ig", + "jin3g", + "ji5t2j", + "j3j", + "2jk", + "j3ka", + "j4kaa", + "jk5aard", + "j4kar", + "jk3arb", + "j4kau", + "j4kav", + "j2kij", + "j2k4l", + "j3klaa", + "jk5lak", + "jk5lap", + "jk5las", + "j4kle", + "j5kled", + "jk5les", + "jk5li", + "j3klon", + "jk5lop", + "jk5luc", + "j2kna", + "j2k3of", + "j4k3o4l", + "j2k3on", + "j2ko4p", + "jk3opb", + "jk3ope", + "jk3opl", + "j3kops", + "j2kr", + "j4kra", + "jk3raa", + "j5kran", + "jk3re", + "jk3ro", + "j4k5ru", + "jk3slo", + "jks3pl", + "jk4sta", + "jks5taak", + "jks5taal", + "jks5tak", + "jk5stan", + "j2k3ui", + "jk3w", + "j3k4was", + "j1la", + "j3laa", + "jl5ana", + "j1le", + "j2l3ef", + "j2l3el", + "jl5f", + "jl3ink", + "j1lo", + "j2loe", + "j3lu", + "j2m3af", + "j5m4ar", + "j3mi", + "jm3op", + "jm3s", + "j2n1a4", + "j4naa", + "jn5ac", + "j3na5g", + "jn3ak", + "jn2am", + "jna5me", + "j3n4an", + "jn5d2r", + "j2nef", + "jne4n", + "j4n3erk", + "j4n3erv", + "jn3gl", + "j4n3im", + "j4n3ink", + "jn3k4", + "j2n1o4", + "jn4si", + "jn2s3l", + "jns5lac", + "jn3slu", + "jns5or", + "jn2sp", + "jns3pl", + "jn1st", + "jn4ste.", + "jnt4", + "jn3tr", + "joet3", + "4joi", + "jol4e", + "jo5lij", + "j3om", + "1j4on", + "jone2", + "j3op", + "jo3pe", + "jo3ra", + "jo3ru", + "j4ou", + "1jour", + "jou5re", + "joy3", + "j3pa", + "j4p3ac", + "jp3arm", + "j1pe", + "j2p3em", + "jp3ij", + "j1pin", + "j3pio", + "jp1j", + "j1pla", + "jp3li", + "j1po", + "j2p3or", + "j4pre", + "jp3ri", + "jp3rok", + "jps4", + "j3r", + "jraads5", + "2js", + "js1a", + "j4sef", + "j4s3ela", + "j5seli", + "j4s5em", + "j4s3e4r", + "j2s1i", + "js5in", + "js4ir", + "js4le", + "js3lee", + "js3li", + "js5lie", + "js4me", + "js5mel", + "js5met", + "js3n", + "j4s1o4", + "j5soe", + "js3ol", + "js3pac", + "js3par", + "j3spe", + "js3pl", + "j4spo", + "js3poo", + "jspoort5j", + "j5spor", + "j1sta", + "j4star", + "j2s3te", + "j3stee", + "j3s4tek", + "j3s4tel", + "j5s4teng", + "js3th", + "js4tij", + "j5stond", + "j4stoo", + "js3tou", + "jst5ran", + "j5strok", + "j2su", + "j3sy", + "j3taal", + "jt3aar", + "jt1ac", + "j1tag", + "j3tak", + "j3tan", + "j3te.", + "jt1h", + "j3toe", + "jt3opt", + "j3tr", + "jt3ra", + "j5tred", + "j5tree", + "jt3rei", + "j5trek", + "jt3ri", + "j5trok", + "jt3rot", + "jt1s", + "j1tu", + "1j4u", + "ju3d", + "4jum", + "jus3", + "juve5", + "j3v", + "jve2n", + "jver4s", + "jvers5p", + "jve3t", + "jvie5s", + "j1w", + "jze4r5o", + "4k.", + "1ka", + "k3aanb", + "k3aanl", + "5kaart", + "kaart5jes", + "kaats5te.", + "kabe2", + "ka3bo", + "2k1ac", + "kade4t5", + "4k3adm", + "ka3do", + "k3adv", + "2kaf", + "k3afd", + "k4aff", + "ka3fl", + "3k4aft", + "ka4ga", + "k3a4gen", + "k3ah", + "ka3i", + "2k3alb", + "ka3le", + "5kalf", + "kalf4s5", + "ka3l4i", + "kal2k", + "kalk3a", + "4kalt", + "5kalv", + "3kam", + "4kamb", + "kamen4", + "kame4re", + "kam4pa", + "kam4pl", + "kam4pr", + "ka5naa", + "kan5d", + "4kang", + "kan4sl", + "kan4st", + "kan4t3j", + "kao3", + "5kap.", + "ka3pe", + "kap3l", + "ka1po", + "4kappa", + "ka3pr", + "kap3s", + "k3arc", + "k4a3ro", + "kart4", + "4k3arti", + "kar3tr", + "ka4s", + "kas5c", + "4k3asi", + "kast3o4", + "ka3str", + "kast5ra", + "ka5stro", + "kas3u4r", + "kat5aal", + "ka4t5a4le", + "ka4tan", + "kati4", + "ka4t5io", + "kat5j", + "k3atl", + "kato4", + "ka4t3og", + "ka5tr", + "kat3s", + "2k1aut", + "2kavo", + "2k3b", + "2k1c", + "k3ca", + "2k5d", + "kdi3a", + "1ke", + "k4eb", + "2k3ec", + "ke4di", + "2k3een", + "kee4p5l", + "kee4r", + "keer4s", + "keers5to", + "2kef", + "4keff", + "k4ei.", + "k4eie", + "k2eil", + "kei3s4", + "kei5t", + "ke4lap", + "kel5da", + "kel5dr", + "ke5lel", + "4kelem", + "kel5f", + "ke4l5int", + "ke4lom", + "ke4l3op", + "kel3sp", + "5k4ema", + "2kemm", + "2kemp", + "ke4n3an", + "ke4nau", + "ken4ei.", + "ke5nen", + "ken5k", + "ke2n1o", + "kens5po", + "kepie5t", + "4k3e4q", + "ke3ram", + "ke4r5enk", + "ker3kl", + "ker4kle", + "ker4kn", + "ker4k3r", + "ker4ku", + "ker4kw", + "ker4n3a", + "ker4no", + "ker3o4", + "ke3ros", + "ker4sm", + "ker5spe", + "ker4spr", + "ker4sta", + "ker5ste.", + "ker4sti", + "4k3erts", + "4kerva", + "4kerwt", + "ke2s", + "ke3s4p", + "ke3sta", + "kes5ten", + "ke3sto", + "ke5straa", + "k2et", + "5ketel", + "ke2t3j", + "ke3to", + "ke2t3r", + "kets5te.", + "ketting5s", + "4k3e2tu", + "ket3w", + "3k2eu", + "keviet5", + "ke4vl", + "4k1ex", + "2k3e2z", + "2k1f", + "2k3g", + "2k1h4", + "k3ho", + "khoud5s", + "1ki", + "2ki2d", + "4kied", + "kie4sp", + "kie4s4t", + "kie5ste", + "kie4tj", + "kieze4", + "2kië", + "kijk5l", + "k3ijs", + "4kijv", + "4k1ijz", + "ki3lo", + "kilo5v", + "ki3na", + "4kinb", + "4k5indel", + "kinds5te.", + "4kindu", + "kin3en", + "5king", + "kings5l", + "2k3inh", + "kinie4", + "k3inko", + "4k1inr", + "2k1ins", + "2k3int", + "4k3inv", + "ki3o", + "ki2p3l", + "ki5se", + "ki3s4p", + "kit4s", + "kits5te", + "k1j", + "2k3ja", + "k3jew", + "k3jo", + "2k3ju", + "4k5k4", + "kke5nei", + "kker4s", + "kkers5ten", + "kke3st", + "1k2l4", + "5klac", + "k3ladi", + "kla2p1", + "k4las", + "5klas.", + "5klass", + "k3last", + "k3lat.", + "k3latt", + "3k4lav", + "3k4led", + "5kledi", + "5kleed", + "k5leer.", + "4k5leg", + "5klem", + "4k5len", + "k3ler.", + "4klera", + "k3lers", + "k3les", + "5k4le4u", + "k5lic", + "4klid", + "k3lig", + "2k3lij", + "4klijs", + "k4lim", + "kli4me", + "3k4lin", + "k5lob", + "4klod", + "3klok", + "5klok.", + "k5loka", + "k3loke", + "k3lood", + "5kloof", + "k3lope", + "5klos", + "klots5te.", + "2k5loz", + "4kluc", + "4kluih", + "2k1m", + "k3ma", + "1k2n4", + "4knam", + "k4nap", + "3k4nar", + "5knec", + "k5nem", + "kni2", + "5knie.", + "knip1", + "4k5niv", + "3knol", + "k3note", + "2knum", + "1ko", + "ko4bl", + "k4oc", + "2k5oct", + "4k1oef", + "5koek", + "koe4ket", + "koers5p", + "koes3", + "koe3tj", + "koets5te.", + "koge4", + "5ko5gr", + "3k4ok", + "ko5ko", + "kol2e2", + "kolen3", + "2kolm", + "5kolo", + "ko4ly", + "ko2m3a", + "4komg", + "kom5p", + "k3omsl", + "kom4str", + "4komz", + "konge4", + "k4oni", + "k3ontb", + "kon4t3j", + "kon4t3r", + "koo4", + "2k1oog", + "kooi5tj", + "koot3", + "koot4j", + "ko3pa", + "4kopb", + "4k3opd", + "ko1pe", + "ko5pen.", + "4kopg", + "3ko5pi", + "5kopj", + "ko2pl", + "2kops", + "4kopz", + "2kord", + "kor5do", + "2k1org", + "2k3ork", + "kors5te.", + "kor4ta", + "kor4t3o4", + "kor4tr", + "ko3ru", + "3k4o4s3", + "4k3os.", + "kos4j", + "ko5sjere", + "koso4", + "4koss", + "kot4st", + "kots5te.", + "4k1ov", + "4k3ox", + "2k3p", + "kpi3s", + "k4plam", + "kpren4", + "1kr4", + "3kra", + "k5raad", + "kraads5", + "kra4b", + "4k5rad", + "k5rand", + "2k1rea", + "2k3rec", + "4k3rede", + "k4ree4", + "k5reep", + "kreet3", + "k3ref", + "k2reg", + "2k3rel", + "2k1ric", + "k3rijk", + "k3rijp", + "krij4t", + "krijt5j", + "k4rit", + "k5ritm", + "kroet5j", + "2krol", + "k4ron", + "kron3t", + "5kroon", + "krop3a", + "kro4to", + "2krou", + "k3ro5v", + "3k4ru", + "k5rub", + "5kruis", + "kru4l", + "krul5a", + "2ks", + "k3sal", + "ks3alm", + "ks3an", + "ks3ap", + "ks1ar", + "ks3as", + "ks2e2", + "k5sec", + "ks3ed", + "ks5ei.", + "ks3ep", + "k4serv", + "ks3et", + "kse3v", + "ksges5t", + "k4si", + "k5sil", + "ks1in", + "k5sis", + "k5sit", + "ks1j", + "k1sla", + "ks3lab", + "k4slan", + "ks3le", + "ks3li", + "k4smo", + "ks3na", + "ks3no", + "ks3nu", + "kso4", + "ks3om", + "k5song", + "k2s3pa", + "ks5pand", + "k4spar", + "k1spe", + "k3spi", + "ks3poo", + "k5spor", + "ks3pot", + "ks3pru", + "k3spu", + "ks5s", + "ks4t", + "k1sta", + "k5staan", + "k5staat", + "k1ste", + "ks5tec", + "k4st3ed", + "k3sten", + "ks5tent", + "kste4r", + "kster5a", + "k4sterr", + "ks3th", + "k3sti", + "k3sto", + "ks5ton", + "k5stoo", + "k4stop", + "k5stot", + "ks5trek", + "ks3tri", + "k3stue", + "kst5uit", + "k1sy", + "4kt", + "k1ta", + "kt3aan", + "k3taar", + "ktaat5", + "kt3ac", + "kt3art", + "k3te", + "kte2c", + "kt3eco", + "k4tex", + "kt1h", + "k5tij", + "kt3im", + "kt3in", + "k5tit", + "kt3j", + "k1to", + "kt3om", + "kto4p", + "kt4or", + "kt5ord", + "kt5org", + "kt5ori", + "kt3o4v", + "k1tr", + "kt3res", + "k5troll", + "ktro3s", + "k3tu", + "1ku", + "ku5be", + "kui2f", + "2kuit", + "ku5k", + "ku5me", + "3k4u2n", + "4k5uni", + "5kuns", + "ku2r", + "ku3ra", + "ku3re", + "kur3s", + "3ku2s", + "kut3", + "2kû", + "2kv", + "k3ve", + "kven4t3", + "5k4waal", + "2k3wac", + "k2wad", + "k1wag", + "5k2wal", + "5k2wam", + "3k4war", + "k5ware", + "4kwat", + "k3weer", + "2kweg", + "k1wei", + "5kwel", + "kwen4st", + "kwens5te.", + "4k1wer", + "5k2wes1", + "kwes5tr", + "5kwets", + "k2wie", + "k3wijz", + "k4wik", + "2kwil", + "2kwin", + "k3wind", + "4k1wo", + "ky3", + "2kz", + "4l.", + "2laan", + "4laand", + "l3aanh", + "laa5re", + "laar5tj", + "laat5sta", + "l3abon", + "2lac", + "la4ca", + "5lach.", + "la4cha", + "5lache", + "lach5te", + "lacht4s", + "l4aci", + "la2d5a", + "la4det", + "2ladj", + "4ladm", + "la2d3o", + "4la2dr", + "lad5s", + "la2du", + "4ladv", + "3lae3", + "2laf", + "la2fa", + "la3fl", + "lafo2", + "4l3afs", + "la2g3a", + "la4gent", + "la2go", + "lag3r", + "lags4", + "lag5sa", + "la2k3a", + "la4ki", + "la3kr", + "2lal", + "3lald", + "lal4o", + "lam4p3j", + "lam4p5l", + "lam4po4", + "lam4s3p", + "l4an", + "4la2na", + "lan3ac", + "3land", + "lan4da", + "land5aa", + "lan4d5oo", + "lan4d3r", + "lands5te.", + "la4n3ec", + "lanel5", + "5lange.", + "lang5l", + "lang5sp", + "lang5sta", + "lan4k3a", + "lan4k3l", + "lank3w", + "4lann", + "la4nor", + "lan2s", + "lans3l", + "lan4st", + "lan4t3j", + "lap3ac", + "la3pi", + "lap3l", + "lap3o4", + "la5pre", + "la2p3u", + "la3q", + "lar3da", + "2larm", + "4larm.", + "lar5st", + "las3a4", + "lase4", + "la2si", + "las3to", + "5lastt", + "la3te", + "la4t3he", + "lat5j", + "la4t3ro", + "4lats4", + "lat3sl", + "2lau", + "5lauf", + "lau4st", + "l2auw", + "la3v", + "lava3", + "la4vo", + "5law", + "l4az", + "4lazi", + "la4zij", + "2lb4", + "lber4t", + "lbert5j", + "lboot4", + "2l1c", + "lce4l5", + "4ld", + "ldaat5", + "l2d3ac", + "ldak4", + "ld3alf", + "l4da4r", + "ld3arc", + "ld3ari", + "ld3art", + "l2dau", + "ld3eco", + "ldeks5", + "l4d3e4z", + "ldi3a", + "ld5oef", + "ld3oli", + "l2d3om", + "l2d3on", + "ld3oog", + "l4do4p", + "ld3opi", + "ld3ord", + "ld1ov", + "l3dr", + "l5drade", + "ld3ram", + "ld5rang", + "ld3rat", + "ld1re", + "l5dree", + "ld3rij", + "ld3roe", + "ld3rol", + "ld3rom", + "ld3rui", + "ld3sa", + "ld3sl", + "ld3sma", + "ld5sp", + "ld5ste", + "l3du", + "ld3uit", + "ld3uu", + "ld1w", + "le2a", + "le4ane", + "le3at", + "leba4l", + "lecht5st", + "lee4", + "leeg3", + "leege4", + "leeg5i", + "4leekh", + "lee5l", + "leem3", + "3leen", + "4leep", + "leep3o", + "lees5e", + "lees5l", + "lees5po", + "2leeu", + "2leff", + "lega5s", + "leg3ec", + "leg3l", + "le4go", + "le5go.", + "leg5s", + "3leidi", + "4leier", + "4leig", + "lei5tj", + "leit5s", + "le4ko4", + "4leks", + "lek5str", + "5leld", + "le2le", + "5leli", + "l3elp", + "le4n3a4d", + "len3a4k", + "3lene", + "le4n3e4m", + "len5kw", + "le2no", + "len3op", + "len3sf", + "len3sm", + "4l3en5th", + "le5o", + "4lep.", + "3le1ra", + "le4r3a4k", + "le5rei", + "le4r3e4v", + "ler5g4", + "le3r4o", + "le4ron", + "ler4sl", + "ler5spo", + "4l3erts", + "le2s", + "le4sa", + "le3sc", + "les5et", + "le3s4h", + "les3m", + "le4sp", + "le3spe", + "4l3essa", + "les3t", + "les4ta", + "les5taa", + "le5s4tel", + "le3str", + "le4s3u", + "le4t4h", + "le3tha", + "let4i", + "le5tin", + "le4top", + "le2t3r", + "le3t4re", + "let4st", + "lets5te.", + "le2t3u", + "leu3ko", + "leum3a", + "leur4o", + "leus4", + "leu5ste", + "5leuz", + "leven4s", + "levink5j", + "4lexc", + "4lexp", + "l2fac", + "l3f4ag", + "lfa3s", + "l2fau", + "lfe4n", + "l4f3end", + "lf3ene", + "l2fe2z", + "lf3li", + "l3f4lo", + "lf3lu", + "l4fo", + "l5foe", + "lf3o4l", + "lf1op", + "lf5ord", + "lf5org", + "l5fou", + "l1fra", + "l3fru", + "lfs5ei", + "lf4sl", + "lfs3le", + "lf2s3m", + "lf4so", + "lft4", + "lf5ta", + "lf5tw", + "lf3uu", + "2l1g", + "l5gaar", + "l4gap", + "lge4n5a", + "l3gla", + "l3g4oe", + "l3gog", + "l3goo", + "lg3s4", + "lgse5", + "4l1h", + "1li", + "li3ag", + "li3am", + "licht5st", + "3lid", + "5lid.", + "5lidm", + "lid3s4", + "lie4g3a", + "lie4gr", + "lie3ka", + "lie4sp", + "lie3s4t", + "lie4to", + "li3eu", + "3liè", + "3lift", + "l4ig", + "li3go", + "lijk3a", + "lij4m3a", + "4lijmv", + "5lijn", + "4lijp", + "3lij2s", + "lijst5a", + "4lijt", + "4l3ijz", + "li5kr", + "lik5sp", + "li4kw", + "li3kwi", + "lim4a", + "li3mi", + "2limp", + "lim4p3j", + "lin4da", + "4linf", + "4l3inh", + "li5ni", + "lin4k3a", + "3linn", + "l3inna", + "2linr", + "2l3ins", + "lin4t3j", + "l3inv", + "4linz", + "li3ob", + "li5om", + "li5o5s4", + "li3ot", + "li2pa", + "li3pi", + "li2p3l", + "li5see", + "2liso", + "l5isw", + "li1t2h", + "lit3r", + "lit4sa", + "lit4sl", + "lit4st", + "lits5te.", + "lit5sten", + "2lix", + "4l1j2", + "lk3af", + "l4k3ank", + "lk3arm", + "lk3art", + "l3ke", + "l4k3ei", + "l4k3em", + "lken5e", + "lken4s", + "l4k3ep", + "l3ki", + "lking4", + "lk3laa", + "lk3lag", + "l5klas", + "l4k3lev", + "l5klim", + "l3ko", + "l5koe", + "lk3ont", + "lkooi5", + "lk3opb", + "l5kor", + "l5kou", + "l5kra", + "l2kre", + "lk3rep", + "lk3res", + "lk3rij", + "l2k3ro", + "lk2s", + "lk4se", + "lk4so", + "lk3son", + "lks3oo", + "lks5taa", + "lk3ste", + "lks5tel", + "lks5tr", + "l4k3uu", + "l3kw", + "lk3wi", + "l3ky", + "2l1l", + "l5la", + "lla3d", + "lla3g4", + "lla5tr", + "ll3eig", + "lle3k", + "ll4el", + "lleo4", + "ller5on", + "lle3s4m", + "lle5th", + "llevie5", + "l3l4i", + "l3lo", + "llo5f", + "l5lon", + "ll3sh", + "2lm", + "l3maa", + "lmaat5", + "lm3a4ca", + "lm3af", + "lma5ï", + "l3mak", + "lm3arc", + "lm3art", + "lma3s2", + "lm3au", + "l3me", + "l4med", + "lm3edi", + "l4m3ep", + "lme2s", + "lme5te", + "l3mi", + "l3mo", + "l5mog", + "lm3oli", + "lm3or", + "lmro4z", + "lm5sc", + "lm3sh", + "lm3su", + "2l3n", + "lni4s", + "lo3a", + "2lobj", + "lo4boo", + "loe4d5a", + "loed3r", + "4loeg", + "loe4gr", + "loen4st", + "loens5te.", + "4loes", + "l3oeu", + "5loev", + "lo4faa", + "lof5d2", + "lof4s4", + "log4", + "log5l", + "lo3go", + "5logr", + "log2s3", + "lo4k3ar", + "lo2k3o2", + "lo4kr", + "lo2ku", + "2lo2l", + "lo3la", + "l3oml", + "lom4p3j", + "lom4p3l", + "l3omt", + "l3omv", + "4lomz", + "3lon.", + "4lond", + "5long", + "lon4gaa", + "lon4g3o", + "lon4gr", + "lon3o", + "2lont", + "lon4t3j", + "3look", + "loo5pi", + "3loosh", + "loot3e", + "lo3pa", + "4lopb", + "l3opd", + "lo1pe", + "2l3oph", + "2l3opl", + "lop4la", + "2lopn", + "lo3p2r", + "4lopt", + "4l3opv", + "4l3opw", + "2lor", + "3l4or.", + "lo3re", + "4l1org", + "lo3ri", + "l4o1r2o3", + "3l4ors", + "lo3ru", + "lo3spe", + "lost4", + "los5to", + "lo4s5tr", + "lo5s2u", + "lo2ta", + "lot3a4l", + "lo4tet", + "lo2t3h", + "lot3j", + "lo4tof", + "lot3r", + "lou3s", + "lo3v", + "2love", + "3lo5z", + "4lp", + "l1pa", + "l3paa", + "lp3aan", + "lp3a4g", + "lp3am", + "l3par", + "l3pas", + "l1pe", + "lpe2n", + "l2pex", + "l3pi", + "l5ping", + "lp3ins", + "lp3j", + "l1pl", + "l3p4la", + "l4plam", + "l1po", + "lp3of", + "l3pom", + "lp3on", + "lp3ope", + "l3pos", + "l3pot", + "l1pr", + "lp3ram", + "4l3r", + "lraads5", + "lrus5", + "4ls", + "l4saa", + "ls1a2d", + "ls3a2g", + "l1sam", + "ls3an", + "l3sap", + "ls3as", + "l2sat", + "ls4cor", + "ls4cu", + "ls3eco", + "l4s3e2d", + "l4sef", + "l5sen", + "l4s3e2p", + "lsge4st", + "l3s2hi", + "l3si", + "l4s3im", + "l4sin", + "ls3inj", + "ls3ink", + "ls3int", + "ls4j", + "ls5ja", + "l3s4kel", + "l3s2ki", + "l1sl", + "l3sla", + "l2s4le", + "ls5led", + "ls5lee", + "ls5leg", + "ls5len", + "l2s3li", + "ls4lin", + "l3slo", + "ls4maak", + "ls4med", + "ls4mee", + "l3smid", + "ls3na", + "l3sne", + "l3sno", + "ls3nor", + "l3soc", + "ls3of", + "l3sol", + "ls3op", + "ls3o4r", + "ls1ov", + "l1sp", + "l2spa", + "ls3pac", + "l3span", + "ls3par", + "ls4pe", + "l3spi", + "ls3pli", + "l3spoo", + "l4s5poot", + "l3spor", + "l2spr", + "ls3pra", + "l1st", + "l3sta", + "l4staf", + "l4stak", + "ls5tak.", + "l3ste", + "l4stek", + "l4stev", + "ls4ti", + "l3sto", + "l5straa", + "ls5trak", + "l5strat", + "l3stu", + "ls5ty", + "l2su", + "l3sur", + "ls3us", + "l3sy", + "4l1t", + "lt4aa", + "lt1ac", + "l4tam", + "l5tame", + "l5t4an", + "lt4han", + "l4t3hi", + "l2t3ho", + "l3thu", + "lto4l", + "lt3oli", + "l2t3o4v", + "l3tr", + "ltra3s", + "lt3rug", + "lt3sl", + "lt3sp", + "lts5te.", + "l3tu", + "lu4b1", + "lub5e", + "lub5l", + "lu1en", + "3lui.", + "5luia", + "5luid", + "luids3", + "5luie.", + "2luit", + "luk2s", + "luks3t", + "lu3na", + "3lunc", + "2l3u2ni", + "lu3sta", + "lu3ta", + "lut3j", + "lut4st", + "luts5te.", + "lu3wi", + "lven5s", + "lvera4", + "l1w", + "1ly", + "ly5i", + "ly3st", + "4lz", + "lzooi5", + "4m.", + "1ma", + "maas3", + "maat5st", + "m3act", + "2m3adv", + "ma5esto", + "m3afl", + "ma3fr", + "2m3afs", + "4m3afw", + "m4ag", + "ma3gl", + "ma5go", + "ma3gr", + "maï4", + "ma5ka", + "ma5ke", + "5ma3k4r", + "ma3kw", + "ma3l4a", + "ma5lac", + "ma4l5ent", + "mal5st", + "5m4an.", + "man3ac", + "m3anal", + "man5da", + "man5do", + "mand4s", + "5m4ann", + "ma5no", + "5man2s", + "man4se", + "mans5ee", + "man4so", + "mans3p", + "man4s3t", + "mans5ta", + "man4th", + "mant4r", + "ma5pa", + "ma3pr", + "ma3q", + "m4a5ri", + "mariet5", + "5m4ark", + "mar3sh", + "mar4s5t", + "mar5ti", + "ma1so", + "ma3s4po", + "5mass", + "ma4ste", + "ma3str", + "ma5ta", + "5mater", + "mat5j", + "ma4tom", + "ma3tr", + "mat4st", + "mats5te.", + "ma3v", + "4mb", + "m5bl", + "mboot4j", + "mbo5st", + "mb4r", + "2m1c", + "2m1d", + "m5da", + "mdi3a", + "mdis5", + "m3do", + "mdo3p", + "m3dr", + "m3dw", + "1me", + "me1c", + "me5de", + "5media", + "5mediu", + "mee5g", + "mee3k4r", + "mee5las", + "mee3lo", + "mee5re", + "mee5ri", + "5mees", + "meest5al", + "mee5stov", + "mee5str", + "m5eg.", + "me3g2a", + "mega5s", + "m5egd", + "m5egg", + "m5egt", + "me4i", + "mei2n", + "mei5tj", + "m2el", + "me4l4as", + "mel5as.", + "mel5dr", + "mel4ko", + "mel4kr", + "5melo", + "mel3s4m", + "me4mi", + "3men", + "m4en.", + "me3na", + "men4as", + "meng5ra", + "men5k", + "me5nor", + "4menq", + "men4s5uu", + "men4t3j", + "ment3w", + "me5nu", + "me3p2j", + "2m3e2q", + "me1ra", + "me4r5aak", + "me4r3a4k", + "me4r4am", + "mer5ante", + "me4rap", + "me3rau", + "me4rav", + "mer3ei", + "5merk", + "mer4kl", + "mer4kn", + "mer4kw", + "mer5oc", + "me5rong", + "me3roo", + "4m3eros", + "me3rot", + "mer4si", + "mer4sl", + "mers5m", + "mers5ta", + "me2ru4", + "m4es", + "me3s4h", + "me4s4l", + "mes5li", + "me5slo", + "mes3m", + "me3so", + "me4sp", + "mes3pa", + "me5spe", + "me5spot", + "me5stel", + "mesto4", + "mest5ov", + "me3stu", + "me5ta5n", + "me3t4h", + "3meti", + "me5tr", + "mets5te.", + "meve4", + "m3e4ven", + "2mex", + "3mé", + "3mè", + "3mê", + "2m1f", + "mfa3t", + "mf4l", + "mf3li", + "mf5lie", + "m5fo", + "2m5g", + "mger4", + "2m1h", + "1mi", + "3mid", + "4mid.", + "5midd", + "mie5kl", + "mie3st", + "4m3ijs", + "4m3ijz", + "mi3kn", + "5mili", + "mi3lo", + "mimie4", + "m3imp", + "mi5nar", + "2minf", + "5ming", + "4minh", + "2m5inr", + "2m3ins", + "mi5nu", + "4m3inw", + "m2is", + "mis5f", + "mi2s3i", + "mi3s4la", + "mi4st", + "mi5stra", + "mis5tro", + "mi3t4a", + "mi1tr", + "mit4st", + "mits5te.", + "mit5sten", + "2m1j", + "2m3k2", + "mkaart5j", + "2m3l", + "2m1m", + "2m1n", + "m5na", + "1mo", + "5mo.", + "mo3a", + "5moda", + "5mode", + "moed4s", + "2moef", + "5moei", + "moers5t", + "moe2s", + "moes3p", + "moes4te", + "mog2", + "5moge", + "mogen4s", + "mo3gl", + "4mok", + "5mole", + "2moli", + "mo4lie", + "mol4m3a", + "4molt", + "3mom", + "4m3omv", + "mond3r", + "mo5no", + "5mons", + "mon4so", + "mon5ta", + "3mooi", + "2mop", + "mo3pa", + "m1ope", + "m4opp", + "mop4s", + "mo3ra", + "mo3r4e", + "mo3ro", + "mor4sp", + "mor4st", + "mors5te.", + "5mos", + "mo5sc", + "mo4s5l", + "mo3sta", + "mo3t2h", + "mot3j", + "mot3ol", + "mot4st", + "mots5te.", + "2m3oud", + "5mouw", + "mou4wi", + "mo3v", + "m3ox", + "2m1p", + "mp3ach", + "m4p3af", + "m5pan", + "mp3arm", + "mp5arts", + "m4p3ec", + "m5pen", + "m4p3erv", + "mp3ins", + "m3pl", + "mp3lam", + "m5plan", + "mp3leg", + "mp3lei", + "mp3lev", + "mp3lie", + "m4plu", + "mp5olie", + "m5pon", + "mpon4g", + "mp3ope", + "mp2r", + "mp3rec", + "mp3red", + "m5pres", + "m4ps2", + "mp5sc", + "m5p4se", + "mp3sh", + "mp5su", + "2m1r", + "2ms", + "m3sam", + "ms3ana", + "ms3ap", + "ms2c", + "ms3co", + "ms3cu", + "ms2j", + "m3sje", + "m1sl", + "m2sle", + "ms3len", + "ms3lie", + "m3s2m", + "ms3ma", + "m1sn", + "ms3nee", + "mso4", + "m3sol", + "ms3or", + "m3s2p", + "ms4t", + "m3sta", + "m1ste", + "ms5tec", + "m5stel", + "m5sten", + "m1sti", + "m1sto", + "ms5toc", + "m4s5ton", + "mst5s", + "m3sy", + "2mt", + "m1ta", + "mte5re", + "mtes4", + "mte5sta", + "m1th", + "m1to", + "m3tr", + "m1tu", + "1mu", + "mu5da", + "mue4", + "5muilde.", + "2muit", + "2muk", + "mul3p", + "mu2m3", + "mu3no", + "munt3j", + "mu3sa", + "mus5ta", + "5mut", + "mut3j", + "muts2", + "muts5te", + "3muu", + "5muz", + "2mv", + "mvari5", + "mve4", + "mvee3", + "mver3e", + "2m1w", + "1my", + "my3e", + "2mz", + "mze4", + "mzet5", + "4n.", + "1na", + "3na.", + "3naal", + "5n4aam", + "4n1aan", + "2naap", + "n4aar.", + "4n3aard", + "5naars", + "naars5tr", + "naar5tj", + "5naast", + "5naat", + "n3abd", + "5nabe", + "2nac", + "na2ca", + "nacee5t", + "n2aci", + "3naco", + "4n3act", + "na5d4a", + "nad4e", + "3nade.", + "5n4a5den", + "3nades", + "3nadi", + "4n3adm", + "na5dra", + "2n1adv", + "5nae", + "n3aë", + "4n1af", + "na3f4lu", + "n2a3g4", + "na1h", + "3nai", + "3naï", + "n2ake", + "na3k4l", + "na3kr", + "n3alb", + "3n4ale", + "5nalen", + "4n3alf", + "n3alm", + "2naly", + "4nalys", + "3nam", + "4namb", + "name5st", + "n4ami", + "n3amp", + "n3a2na", + "n3ank", + "3nant", + "5nant.", + "5nante", + "n5antenn", + "nan4t3j", + "2nap", + "nap3ac", + "3na3p4l", + "na3p4r", + "nap3s", + "nap5st", + "2n1arb", + "5nares", + "2n3arg", + "narie5t", + "2n1arm", + "3naro", + "4nars", + "nar4st", + "nars5te.", + "nar5sten", + "4n1art", + "nas2", + "3na3sa", + "na1s4l", + "na1sp", + "na3sta", + "na3stu", + "n4at.", + "3n4ati", + "nat5j", + "4n3atl", + "na3to", + "nats4", + "nat3sp", + "5nau.", + "5naus", + "2na3v", + "5naven", + "3navi", + "3nazif", + "na4zij", + "2nb", + "nbe5st", + "nbe5t", + "nbots5te.", + "2n1c", + "n3ce", + "nces4t", + "n3che", + "ncht2", + "nch5tr", + "nch3u", + "n5co", + "4nd", + "n5da.", + "nd3aan", + "nd5aas", + "nd3abo", + "nd3act", + "nd5adel", + "nd3adr", + "ndags5p", + "nd3alf", + "nd3alm", + "n4d3ana", + "n4dap", + "n2dar", + "nd3art", + "n4das", + "nd3ass", + "nda3st", + "n4dav", + "n4d3a4z", + "n3de", + "n4d3edi", + "n4d1ei", + "nde5laa", + "n4d3emm", + "n5den.", + "ndera4", + "nder5aal", + "nder5al", + "nde4r5an", + "n4d5e4rec", + "nder5in.", + "nder5og", + "nde4ten", + "ndi3a", + "ndie4tj", + "n4dijs", + "nd5ijs.", + "n4d3ink", + "ndi3o", + "n3d2ji", + "n5do.", + "n5doc", + "n4d5of", + "nd3oli", + "nd3omd", + "n4don", + "n5dona", + "nd5ond", + "n5dons", + "nd3ont", + "nd3oog", + "nd3ope", + "nd3opp", + "nd3ov", + "nd5rap", + "nd3rat", + "nd1re", + "nd4rek", + "n4dres", + "nd3rot", + "nd3rug", + "nd3s4cu", + "nd4sec", + "nd5set", + "nd3s4i", + "nd3sjo", + "nd4sm", + "nd3sp", + "nd4spo", + "nd4spra", + "nds5taal", + "nd3su", + "nd3uit", + "n2d3u4r", + "nd5ure", + "n4d3uu", + "nd1w", + "n3dy", + "1ne", + "3ne.", + "ne5ac", + "ne3am", + "nebe4s", + "3neck", + "ne2cl", + "ne4dit", + "ne3do", + "n3edu", + "ne5dw", + "nee4", + "4need", + "nee5k", + "neel5d", + "neel3o", + "3neem", + "4n1een", + "nee5ri", + "nee5se", + "neet3a", + "neet5o", + "neet3r", + "neet5s", + "4n1eff", + "ne3g2", + "ne4gel", + "negen5en", + "nege4re", + "4n1ei", + "5neien", + "n5eier", + "n2eig", + "5neigd", + "5nei5t", + "ne4k3r", + "ne2la", + "4nelem", + "4nelf", + "3nem", + "4n3emb", + "5n4eme", + "4n3e4mig", + "4n3emm", + "4n3emp", + "ne2n", + "3n4en.", + "5nenb", + "5n4end.", + "nen5do", + "ne4n5enk", + "ne4ni", + "ne5nig", + "nen5k4", + "nen1o4", + "5nenp", + "nen5t4a", + "ne5oc", + "ne5ok", + "ne5om", + "neo5p", + "ne5os", + "ne5ot", + "nep3ag", + "ne3pe", + "nepi3s", + "ne1ra", + "nera4d", + "3n2e5re", + "n3erfe", + "2nerg", + "ne4r3id", + "ne3ros", + "ner4sl", + "ner4sp", + "ner4st", + "ners5te", + "ner3u", + "ne3ry", + "3nes", + "ness5a", + "ness5t", + "ne3sta", + "nes3te", + "nes4tei", + "ne5s4tek", + "ne4ter", + "net3on", + "net4si", + "ne2u", + "4neum", + "ne3ums", + "neu5ste", + "2nex", + "3né", + "2n3f", + "2ng", + "ngaat5j", + "n2g1a2d", + "ng3af", + "ng3ana", + "n4ga4p", + "n2gar", + "nga5sl", + "n3gav", + "nge4ad", + "n4g3een", + "ngels5te.", + "ng3emb", + "n5gen", + "nge4rap", + "nge4ras", + "n4giger", + "n4gigs", + "ng3ij", + "n4gind", + "ng3ink", + "n4g3ins", + "ng4l", + "ng5lad", + "ng5lam", + "ng5lan", + "ng5led", + "ng5leu", + "ng2li", + "ng5lin", + "ng5lop", + "n3goe", + "ng3of", + "n3goï", + "n2g1on", + "ng5oor", + "ng5op", + "ng3ore", + "ng3org", + "n3got", + "n3gr", + "ng3rac", + "ng3rad", + "ng3rai", + "n4gras", + "ng5rass", + "ng4red", + "n4g4ri", + "ng5rie", + "ng3rij", + "n5gron", + "ng3rui", + "ng2s", + "ng4se", + "ngs5lop", + "ngs5lu", + "ng4s5ne", + "ngs5tak.", + "ngs5take", + "ngs5trek", + "ng5stri", + "ng3uit", + "4n3h", + "nhek5", + "1ni", + "n4i2d", + "nie5kle", + "ni3eri", + "nie4s3p", + "nie4tr", + "3nieu", + "ni4g3ee", + "nig3ra", + "nij3f", + "nij3k", + "2n3ijz", + "ni5kr", + "nik4s", + "niks3p", + "3nil", + "3nim.", + "5nimf", + "n3imp", + "2n3in.", + "n3inb", + "2n1ind", + "2ninf", + "ning3r", + "2n3inh", + "n3inj", + "2ninr", + "2n1ins", + "2n1int", + "2n3inv", + "ni3o", + "ni4on.", + "ni4one", + "ni5or", + "ni5o5s4", + "nip3l", + "3nis", + "ni4sau", + "ni4sel", + "ni4s3ev", + "ni3sfe", + "ni2s3i", + "ni4sl", + "nis5n", + "ni3sot", + "ni5stel", + "nis5to", + "ni3t2h", + "ni1tr", + "nits4", + "n1j4", + "n3je", + "njes4", + "nje5sp", + "nje5st", + "nje3t", + "4n1k", + "nk3aan", + "nk5aard", + "nkaart5j", + "nk3af", + "n5k4am", + "n4k3arb", + "nkar5s", + "n4k3asp", + "n3kef", + "nk3eff", + "nk3emp", + "n3ken", + "nken4e", + "nker5ku", + "nk3id", + "nk2j", + "nk3lad", + "nk3lod", + "nk3luc", + "nk3lus", + "n2k3na", + "n3kne", + "n4ko4g", + "nk3oge", + "nkoot5", + "nk4ra", + "n4krim", + "nk3rol", + "nk5se", + "nk5si", + "nk3sl", + "nk3s4m", + "nk3sn", + "nk4s5o", + "nk1sp", + "nk1st", + "n4kw", + "nk3waa", + "nk3wez", + "nk3wi", + "2n3l", + "2n3m4", + "n3n", + "n5n2e", + "nnee5t", + "nne3ne", + "nnepo4", + "nne4p5ol", + "nne5te", + "nnet4j", + "nn4i", + "nning5r", + "nnoot5", + "nno5v", + "3no.", + "1noc", + "1no3d", + "2noef", + "noen5s", + "noes3", + "noet5s", + "n5offi", + "n3o2ge", + "n5ogi", + "1nogr", + "3noï", + "no3kl", + "no3k2w", + "no2li", + "1nolo", + "1nom", + "4n3om.", + "n2oma", + "n3oml", + "n1oms", + "n3omv", + "2n3omw", + "2nomz", + "3n2on.", + "3n4onb", + "3nonc", + "4n5ond", + "n4o5ni", + "4nont", + "3nood", + "4n5oof", + "4n1oog", + "nooi5tj", + "3noot3", + "noot4j", + "3no3pa", + "no4p3as", + "4n3opb", + "no1pe", + "n1opg", + "n5opleidi", + "no4poo", + "no4por", + "2nops", + "2n3opz", + "2nord", + "no3re", + "2n1org", + "1norm", + "4norr", + "3nors", + "3norz", + "1nos", + "no3sf", + "no3sn", + "no3sp", + "1not", + "3nota", + "not5a4p", + "5noti", + "not3j", + "not3r", + "3nou.", + "no3v", + "3nova", + "no4ve", + "3nox", + "3noz", + "2n1p", + "npers5te.", + "npi4s5", + "npoor4", + "npoort5j", + "n3ps", + "2n3r", + "nraads5l", + "n5re", + "n5ri", + "2ns", + "ns3a4d", + "n3sag", + "n1sal", + "ns3alp", + "n1sam", + "ns3an", + "n3sanc", + "n1sap", + "n3s4cal", + "n5scho", + "ns4ci", + "n4sco", + "nsee5t", + "n4sef", + "nse4g", + "ns5ege", + "ns3eis", + "ns5emp", + "n3si", + "ns3idi", + "n2sin", + "n5sing", + "ns3inj", + "ns3ink", + "ns3int", + "n1sjo", + "n1sl", + "n5sla.", + "n3s4laa", + "ns5laag", + "n5slag", + "ns5lap.", + "ns5lapp", + "n4sle", + "n5slep", + "ns4let", + "n5sleu", + "n5slib", + "ns3lie", + "n5s4liep", + "n5slim", + "n5slip", + "ns5lot.", + "ns3m", + "ns5mac", + "n3s4me", + "n3smij", + "n3smol", + "n4smu", + "n1sn", + "n2sna", + "n5sne", + "ns3nod", + "n4snoo", + "n4snot", + "n1so", + "n2s3ob", + "n2sof", + "n3sol", + "n2son", + "ns3ong", + "ns3onz", + "ns4opp", + "ns4or", + "n2s3ou", + "ns1ov", + "n4s3paa", + "ns3pad", + "n1spe", + "n5spee", + "n5spel", + "ns3per", + "n4spet", + "ns4pi", + "ns1po", + "ns3pol", + "n4spot", + "n1spr", + "ns5q", + "ns5s", + "ns4t", + "n1sta", + "nst5aang", + "nst5aans", + "nst3a4g", + "n3stal", + "n3ste", + "ns5tec", + "n4st3ei", + "n4s5teko", + "ns5teks", + "n5sten.", + "ns5tent", + "n5ster.", + "ns5tes", + "ns3the", + "n1sti", + "n3stig", + "n4stijv", + "n1sto", + "nst5oef", + "n4ston", + "n3stor", + "nst5rade", + "n5stree", + "ns5trekk", + "ns5troe", + "ns5trog", + "nst5roos", + "ns5ty", + "ns3uil", + "n3sy", + "2nt", + "n3ta", + "n5taal", + "n4t5aard", + "ntaar5tj", + "n5tab", + "nt3ach", + "nt4act", + "nt1ad", + "nt3aga", + "n4t3art", + "nt4as", + "n5t4at", + "n3te", + "n5tec", + "n4t3ei", + "nte4lo", + "n5tem", + "n5te2n", + "nte5nach", + "ntene5ten", + "nte5rad", + "nte4rof", + "n3tè", + "nt3ha", + "n4tho", + "n5thol", + "n5tig", + "nt3inw", + "nt4jo", + "n3to", + "nt4og", + "nt4ol", + "n4t5oli", + "n5ton", + "nt4oo", + "nt5oog", + "n4top", + "nt3opl", + "nt3opm", + "nt3opt", + "n1tr", + "nt3rec", + "nt3rei", + "nt3rel", + "ntre4s", + "nt5ribb", + "nt5rij", + "n5troos", + "nt4rou", + "nt3rus", + "n5try", + "nts3a", + "nt5slu", + "nt1sn", + "nt4sno", + "nt1sp", + "nt4spr", + "nts5pre", + "nt1st", + "nt5ste", + "n3tu", + "n4t3uit", + "ntu4n", + "n5twijf", + "n5t4wis", + "3nu.", + "3nuc", + "3nue", + "nu3en", + "nu3et", + "4nuf", + "2nui", + "4n3uil", + "nu2lo", + "3num", + "nu2m3a", + "5numm", + "nu2n", + "3nunc", + "n3uni", + "2nu4r", + "3n4u5ri", + "nu5ro", + "1nus", + "nu4s3o", + "nu3tr", + "nut4st", + "4nuu", + "5nuut", + "nuw5a", + "nu2w3i", + "2nv", + "nve5na", + "2n1w", + "nx3", + "n3xe", + "nxo4", + "1ny", + "4n3yi", + "4n3yo", + "2nz", + "nzet5s", + "3ñ", + "4o.", + "4oa", + "o3aa", + "o2ad", + "o3af", + "o1ag", + "o3ah", + "o3ai", + "o1al", + "oa2m", + "o1a2n", + "oa4tiev", + "o3au", + "o3av", + "o3ax", + "2o3b", + "4ob.", + "obal4", + "obalt3", + "3obj", + "1o4bli", + "ob5oor", + "o4b5o4r", + "4obr", + "4oca", + "ocaat5", + "5o2cea", + "o3cha", + "o1che", + "o3chi", + "o3cho", + "o3chr", + "ocke4", + "4o3co", + "oco3a", + "oco3s4", + "oc3t4", + "od5ac", + "oda3g", + "ode4m5ar", + "ode4mo", + "ode5re", + "odes4", + "odi3a", + "o5dru", + "od5sc", + "od5sei", + "od3s4i", + "od2sl", + "ods5lam", + "od5slan", + "od3sli", + "od5smak", + "od4s3o", + "od3spo", + "od4spr", + "ods4t", + "od5sta", + "od4ste", + "ods5te.", + "od5stek", + "od5sten", + "od3w", + "o4e", + "oe5an", + "oe3as", + "oe2d3a", + "oeda4d", + "oede4n", + "oe2d3o2", + "oe4dr", + "oed3re", + "oed3ri", + "oed3ro", + "oe2d3u", + "oed3w", + "oe3e", + "oe5er", + "oe4f1a", + "1oefe", + "oe2fi", + "oe2fl", + "oef3la", + "oef5le", + "oef3lo", + "oe4f5o4", + "oe2f3r", + "oege3l", + "oeg5ij", + "oeg1l", + "oe4gou", + "oeii4", + "oei3n", + "oei5s4", + "oei5tj", + "oei3tr", + "oe4kaa", + "oek5erk", + "oeke4t", + "oe2k3l", + "oe4k3op", + "oe4k3r", + "oe2ku", + "oek1w", + "oe4lap", + "oe4lar", + "oel5dr", + "oe4l3ei", + "oe3lem", + "oel5f", + "oelo4", + "oe5loe", + "oelo5p", + "oel3sp", + "oe4m3ac", + "oem3o4", + "oen3al", + "oe5n4e", + "oen5gr", + "oen3o", + "oen4sn", + "2oep", + "oep5ind", + "oe4pl", + "oe5plo", + "oe4p3r", + "oe3pra", + "oe4ps", + "oeps3e", + "oe2p3u", + "4oer", + "oe1ra", + "oe4raa", + "oer5aal", + "oe4r3a4l", + "oer4e", + "oer5ei.", + "oer5eie", + "oero2", + "oe3roe", + "oer3og", + "oer5om", + "oer4sl", + "oer4sp", + "oer4sta", + "oers5tak", + "oers5te.", + "4oes.", + "oe3sfe", + "oe3si", + "oe4sli", + "oe4s3o4", + "oes4ta", + "oes4th", + "oe3sto", + "oe4taa", + "oe2t3h", + "oe5t4i", + "oe2tj", + "oe4t3o4", + "oe5toe", + "oe4t3ra", + "oet4s3p", + "oet3w", + "2oë", + "of3ar", + "of3at", + "o4fav", + "of4d1a4", + "ofd3ei", + "of2d3o", + "of2d3r", + "ofd3w", + "of3l", + "o4fli", + "o4flo", + "4ofo", + "of3om", + "o3foo", + "of3op", + "o3for", + "of3ox", + "of1r", + "o3f2ra", + "of5se", + "of4sl", + "of5sla", + "ofs3le", + "of2sp", + "of3spe", + "ofs3pl", + "of3spo", + "ofs3pr", + "ofs3tr", + "ofs5tra", + "4oft", + "of4tu", + "oft3ur", + "oft3uu", + "of3ui", + "og5ac", + "oga4l", + "og3al.", + "og5de", + "og3di", + "oge4d", + "oge5laa", + "ogel5ei", + "2ogem", + "o3ger", + "oge4ro", + "oger5on", + "oge4s3t", + "2og5h", + "1ogig", + "og1l", + "og5ne", + "og3op", + "og3sp", + "og3sta", + "og4st5ei", + "og3sto", + "og4ston", + "og4str", + "ogs5tro", + "og3ui", + "o3gy", + "2o1h", + "3ohm", + "4oi", + "oi3do", + "oi1e", + "oi3j", + "oi5k", + "o3ing", + "oi3o4", + "oi3s4", + "oi5sc", + "ois2p", + "oist2", + "ois5tj", + "o3ï", + "2o1j", + "2ok", + "o3ka.", + "o3kaa", + "o4k3aas", + "ok3ab", + "ok3ag", + "o3kal", + "ok3ank", + "o4k3a4z", + "ok3ef", + "o2k4l", + "ok5let", + "o4kli", + "ok5lu", + "o2k3n", + "ok3o2l", + "ok3op.", + "ok3o4pe", + "okos5", + "o2k3ou", + "o2k3r", + "ok4ra", + "ok1sa", + "ok3s4l", + "ok3sn", + "ok5spri", + "ok1st4", + "oks5te.", + "ok5sten", + "ok4s5tr", + "ok5te", + "okter4s", + "oku4", + "ok3ur", + "ok3uu", + "ok1w", + "ok2wi", + "o1la", + "o3l4ab", + "ol3ac", + "o3lal", + "ol3a2p", + "ol3arm", + "ola3s4m", + "4old", + "ol3d4o", + "ol3d2w", + "o1le", + "o3le.", + "ole5g", + "ol1ei", + "ol3eks", + "ol3emm", + "o3len", + "o5ler", + "oleu2", + "ole3um", + "ol3exa", + "ol2fa", + "olf3l", + "ol3fr", + "olf5sl", + "ol2gl", + "ol2g1o", + "olg5rap", + "ol4gre", + "ol4g3ri", + "ol2g3u", + "o3lia", + "o3lic", + "o5lid", + "o3lik", + "o3lin", + "o5ling", + "ol3int", + "o3lit", + "ol3kaf", + "ol5ke", + "ol2kr", + "olk4s", + "olk2v", + "ollie4", + "o3lo", + "o5loc", + "olo3k", + "ol4om", + "o4lop", + "ol3op.", + "ol3opp", + "olo3s4t", + "olo4ve", + "ol4pra", + "4ols", + "ol5se", + "ol4s5h", + "ol5si", + "ol1sj", + "ol3s4l", + "ol3s4n", + "ol3so", + "ol3sp", + "ol5ster", + "4o1lu", + "ol3uit", + "olu4r", + "4oma", + "om2aa", + "om1ac", + "om1af", + "o3man", + "4ome", + "o4m3ef", + "om3ela", + "omen4s", + "omen5ste.", + "ome5ren", + "omer5kl", + "ome5sp", + "ome5t", + "om2i", + "o4m3int", + "4omm", + "4omo", + "omo5l", + "omo3s", + "om4p5ei", + "5omro", + "om3sl", + "om4ste.", + "om3ui", + "3omz", + "on1ac", + "on4ag", + "o4n3am", + "on4an", + "on3ap", + "ona3th", + "2onc", + "on4d3ac", + "on5d4as", + "on5der", + "ond5ete", + "on4d3id", + "ond5ijs", + "ond5om.", + "on2dr", + "ond3re", + "ond3ro", + "ond5sj", + "ond5slo", + "on3d4u", + "on4dur", + "o5ne.", + "o3neb", + "o2n1e2c", + "on3ei", + "on3erf", + "on3erv", + "one3st", + "4onet.", + "on1e3v", + "ong5aan", + "ong5aap", + "ong3ap", + "4ongen", + "ong5le", + "ong2r", + "ongs4", + "ong5se", + "ong3sp", + "ong3st", + "on5id", + "o5nig", + "on4k3ap", + "onke5lap", + "on3k2i", + "on4k3lo", + "on3kn", + "on5kw", + "onnes4", + "onne5st", + "o4n3of", + "ono3l", + "on1on", + "o2n1ov", + "on3sc", + "ons4e", + "on5sei", + "ons2f", + "on3s4m", + "on2s3n", + "ons5op", + "on3sor", + "on1s2p", + "ons4pe", + "on3spl", + "on1st", + "on5sten", + "on5str", + "4ont.", + "on4taa", + "3ont1h", + "on4tid", + "3ont1s4", + "ont5sp", + "3ontv", + "1ont3w", + "on1ui", + "on3ur", + "o4o2", + "4oo.", + "oo3c", + "4oo4d", + "ood1a", + "ood1e4", + "oo5de.", + "ood1o", + "ood1r", + "ood3sl", + "ood3sp", + "4oof", + "oo3fi", + "oo4g", + "oog1a", + "oog3e", + "oo5gi", + "oog1r", + "oogs4", + "oog3sh", + "oog3sl", + "ook3a", + "oo3ke", + "ook5l", + "ook3s4", + "ook5st", + "oo4k5w", + "oo4l", + "ool5a2", + "oole2", + "ool3ed", + "ool5f", + "ool5g", + "oo5lig", + "ool3ij", + "ool3k", + "ool1o4", + "ool1u", + "oom5a4", + "oo3me", + "oom3i", + "oom1o4", + "ooms5te.", + "4oon", + "oon5a", + "oon5du", + "oon3in5", + "oon5k4", + "oon1o", + "oon5ta", + "oo4p1", + "oopa2", + "oop5ee", + "oop3o4", + "oop3r", + "oop4sp", + "oor3a", + "oord5aa", + "oor5dop", + "oor1e4", + "oor3g4", + "oor5i", + "oor5k", + "oor5m", + "oor1o", + "oor3sm", + "oor5ste", + "oor5sto", + "4oort", + "oor4th", + "oo4s", + "oos3a", + "oo5se", + "oos5n", + "oo4t", + "oot1a", + "oot3es", + "oot3h", + "oot5o", + "oot3r", + "oot4sl", + "o1ö", + "2opa", + "o4p3ac", + "op3ad", + "o4p3af", + "o4p3ak", + "op3am", + "o3pan", + "op3and", + "op3at.", + "op3att", + "3opbre", + "3opdr", + "o3pe.", + "op3ee", + "op5eet", + "op3ei", + "o1pel", + "o3pen.", + "3o4peni", + "o5per.", + "o4pera", + "op3e4te", + "op3e4v", + "4opf", + "o1pi", + "o5pic", + "op3i2d", + "opie5t", + "op3ijz", + "op3in.", + "o5pina", + "o5pis", + "4op1j", + "op3l", + "op5los", + "1opn", + "o1po", + "opoe3", + "op1of", + "o5pog", + "o5poi", + "o5pol", + "op3ond", + "o5poni", + "op3ont", + "op3ord", + "op3o4re", + "op3o4v", + "op1r", + "op3ric", + "o4pru", + "o4ps", + "op5s2c", + "op5se", + "op5si", + "3ops4l", + "ops4m", + "op3sma", + "op3sn", + "op3so", + "op3sp", + "op3sta", + "op3su", + "2opt", + "4opt.", + "op5tr", + "op3ui", + "o2p3u2n", + "o1ra", + "or3ach", + "or3act", + "or3adm", + "or1af", + "ora4g", + "o4r3alg", + "or3ana", + "o5rate", + "or4daa", + "or4d3as", + "or4denv", + "or4do", + "ord5ond", + "ord3or", + "ord3o4v", + "or3dr", + "or4drad", + "ord3w", + "o1re", + "ore5ad", + "4orec", + "oree4", + "ore4no", + "or2gl", + "o1ri", + "o5ria", + "3orië", + "o5rig.", + "o5rigere", + "o4r3ink", + "or3ins", + "ork2a", + "or5k4e", + "or3kl", + "or5kn", + "or3kw", + "or4m3ac", + "or4mas", + "or4m3ei", + "or4n3ac", + "or3ni", + "orno3s4", + "or3oe", + "o3rol", + "or1on", + "or3ont", + "or1oo", + "or1o2p", + "or3or", + "o3ros", + "or5ov", + "4orp", + "or4p3ac", + "orp4s5c", + "or3sag", + "or5sc", + "or5se", + "or3sli", + "or3smi", + "or3so", + "or4son", + "or3sp", + "or5s4pa", + "or5spu", + "or4t3ak", + "ort5een", + "or4t5ijl", + "or2to", + "or4tof", + "or4t3oo", + "or4tred", + "ort5sp", + "ort5ste", + "or1u", + "o3ry", + "orzet5", + "2os", + "o4sac", + "o5sas", + "o3sau", + "4o3s2c", + "osca4", + "o4sci", + "o5s4cl", + "os3cu", + "o5sed", + "os4el", + "o5ser", + "os3f", + "os4fe", + "o4sha", + "o3shi", + "os2ho", + "o3si", + "o4sj", + "os5jer.", + "o4sk", + "os5ko", + "os3l", + "os5li4", + "o4s3m", + "os4n", + "os5no", + "o3s2o", + "os3pa", + "os3per", + "os1pi", + "os4pir", + "o4spr", + "os4s5m", + "o2s3t", + "os4ta", + "os5taal", + "os5taar", + "osta3c", + "ost3a4g", + "os5tan", + "os5tar", + "o3stas", + "o3stat", + "os5te.", + "os4tem", + "o5steroï", + "os4th", + "os4to", + "os5toli", + "os5tou", + "ost3o4v", + "os5tra.", + "os5traa", + "ost3re", + "ost3ri", + "o3stro", + "os5trum", + "os1tu", + "o3sty", + "o3su", + "o5sy", + "4o1ta", + "ot3aar", + "ot1ac", + "ot3af", + "o3tag", + "ot3akt", + "ot3app", + "ot3art", + "otas4", + "o5tat", + "o3te", + "ot3e2d", + "o5tee.", + "o5tees", + "o5teg", + "ot3ei", + "ote4lan", + "o5ten", + "o5ter", + "oter5sp", + "ote4st", + "ote4t", + "ot3eta", + "o1th", + "o2t1ho", + "ot3hu", + "o4tj", + "otje5sp", + "otli2", + "o1to", + "ot3off", + "ot3olv", + "o5tom", + "ot3ont", + "ot3opm", + "oto5po", + "ot3opr", + "o5t4or", + "oto3s", + "2otr", + "o1t4ro", + "ot3ru", + "ot5s4i", + "ot2sl", + "ot3sla", + "ots3li", + "ot3smo", + "ot3sn", + "ot3sp", + "ot4s3pa", + "ot4ste.", + "ots5tek", + "ot5sten", + "ot4stu", + "o1tu", + "ot3ui", + "o3tul", + "ot5w", + "4ou.", + "ou5a", + "ou1c", + "ou4d1a", + "ou4des", + "ou2do", + "ou1e", + "oue2t3", + "ou3k4", + "ou4ren", + "ou5ren.", + "ou5renn", + "ou2r3o2", + "4ous", + "ou3sa", + "ous5c", + "oust4", + "ou2ta", + "out3h", + "out1j", + "ou2t3o", + "out1r", + "out5sp", + "out5ste", + "ouw3a", + "ouw5do", + "ouw5ins", + "o2v", + "2o3va", + "o5ve.", + "2o5vee", + "3o4verg", + "over5sp", + "over5ste", + "o5ves", + "2ovi", + "ovi5so", + "4ovl", + "4o3vo", + "4ovr", + "ovu3", + "4ow", + "o1wa", + "o1we", + "o5wen", + "ow3h", + "o1wi", + "ow2n", + "o3wo", + "ow3r", + "o4x", + "oys4", + "ozet5", + "ö3l", + "ö1p", + "öpe1", + "ö4r", + "ös4", + "ös5t", + "ö5su", + "4p.", + "4paan", + "paar5du", + "paar5tj", + "5paas", + "3pab", + "p3acc", + "2pach", + "pacht5s", + "p4aci", + "5pacu", + "3pad.", + "pa4da", + "4padv", + "pa3e", + "4p3afd", + "1pag", + "pag2a", + "pa4gen", + "pa3gh", + "p4a5gi", + "3pak", + "pa2k3a", + "4p4ake", + "pa4ki", + "pa4k5l", + "2p3alb", + "3pale", + "pal3f", + "pa3li", + "paling5s", + "palle4", + "palm5ac", + "pal4mo", + "pa4m", + "pa3na", + "pa4n3a4d", + "5panee", + "5panel", + "4pank", + "pan5sp", + "pan4tr", + "1pap", + "pa4pe4t", + "5papi", + "pap3l", + "pa3po", + "pa3pr", + "4par.", + "3pa3ra", + "p3arb", + "pard4", + "par3da", + "3park", + "par4ka", + "par4k5l", + "3parl", + "4parm", + "pa5ro", + "4parr", + "par5ta", + "3parti", + "part3j", + "3partn", + "pa5ru", + "paru5r", + "1pa4s3", + "pa5sa", + "pas5c", + "pa5se", + "pa5so", + "pas4th", + "pas5to", + "pas5tr", + "pa5te", + "1path", + "p3atl", + "3pa3tr", + "pats5te.", + "2paut", + "5pauz", + "pa4vl", + "5paz", + "2pb4", + "2p1c", + "2p3d2", + "pe4al", + "4peci", + "p3e2co", + "3pectu", + "1ped", + "pe3de", + "pe3do", + "p4ee4", + "3pee.", + "3peeë", + "pee5li", + "4peen", + "5pees", + "3peg", + "1p4eil", + "pei4l3a", + "4peis", + "pek5ee", + "pe2k3l", + "pe2k3n", + "pek5s", + "p4el", + "pe3l4aa", + "pe4l3ak", + "pel5dr", + "pe3le", + "pe4l3ee", + "pe4l3e4t", + "pe3l4i", + "pe3l4or", + "pel5si", + "pel3so", + "pel3sp", + "2p3emm", + "pe3na", + "pe4nak", + "pe4nap", + "pe4nau", + "pe4naz", + "p3ency", + "pen5d4r", + "penge5", + "pen5k", + "5penn", + "pen3sa", + "pen5sl", + "pen3sm", + "pen5sp", + "pent4", + "pen5to", + "2p3epi", + "pep3o", + "pep5s", + "p4er.", + "pe1ra", + "pera3s4", + "per4at", + "3perc", + "pe4r5eg", + "pe5req", + "1peri", + "peri3s", + "per1o", + "pe3ron", + "pe5ros", + "3pers", + "per4sm", + "per5sti", + "per4str", + "p2ert", + "3pes", + "pe3sa", + "3pet.", + "pe5ta", + "5pe5ter", + "3peti", + "pe4t3ra", + "pets5te", + "petu5", + "3peuk", + "5peut", + "1pé", + "3pê", + "2p1f", + "2p1g", + "pge5s", + "2p1h4", + "4p3ha", + "3p4hec", + "p4his", + "4pho", + "pi3am", + "pi5an", + "pi4at", + "2pid", + "piek5la", + "5piep", + "pie4r3o", + "pie4s3p", + "pie4tj", + "pi2g5a", + "pi3gl", + "3pij.", + "pij3k", + "pij5ke", + "pij4li", + "3pijn", + "5pijp", + "pij4p3a", + "2pijz", + "pi4k3l", + "pilo5g", + "pi5nam", + "2pind", + "3pinda", + "3p4ing", + "5ping.", + "pin4ga", + "pin5gri", + "4p3inj", + "pink3r", + "pink5s", + "4pinr", + "2pins", + "pin4ta", + "pi5o", + "pis5n", + "pis5ta", + "pi3th", + "pit3j", + "pit3r", + "pit4sp", + "2p1ja", + "pjes5", + "p3ji", + "p1jo", + "2p1k", + "pkaart5j", + "p2l2", + "p3la.", + "plaat5j", + "2p3lad", + "pla3di", + "4p3lamp", + "4p3lang", + "p4lant", + "p3lap", + "1p4las", + "3p4lat", + "pla4t3r", + "5p4lay", + "p4lec", + "plee5tj", + "p3leid", + "3p4len", + "p3lep", + "pleu5ro", + "p4lex", + "2p3lig", + "4plij", + "p4lom", + "p3lone", + "p5lood", + "plooi5tj", + "p3loon", + "p3luie", + "2p1m", + "pmans5t", + "2p1n", + "p3na", + "3pneum", + "3po.", + "poda5", + "3poei", + "poe2s3", + "poes5t", + "poets5te.", + "3poez", + "3poë", + "p2ofa", + "3pogi", + "po5gr", + "po2k3i2", + "po4kol", + "1pol", + "po5l4o", + "polo3p", + "pol4s", + "pols5te.", + "1pom", + "2p3oml", + "3ponds", + "pon4sm", + "pon4st", + "pons5te.", + "pon5ta", + "5pony", + "poo3d", + "poo5de", + "4poog.", + "3pool", + "poo5len", + "4poor.", + "poor4tj", + "poot3", + "po4p3a", + "4popd", + "2pope", + "pop5h", + "2p3org", + "2p3ork", + "po3ro", + "p4ort", + "5portef", + "por4to", + "por4t5ra", + "po3ru", + "1pos", + "po1sa", + "po3sf", + "po4taa", + "po4t3as", + "po5te", + "potes5t", + "pot1j", + "pot3r", + "3poul", + "po3v", + "4p3p", + "p5pa", + "p5pe", + "ppe4l3o", + "ppe5ni", + "pper5ste", + "ppie5k", + "ppij5p", + "p4ps", + "pr4", + "p2ra", + "3pra.", + "p5raad", + "praat5j", + "p5rad", + "3prakt", + "4pram", + "p5rand", + "3prao", + "4p3rap", + "p4rat", + "p4rax", + "4preeku", + "1prem", + "p3remm", + "3prent", + "pren4t5j", + "3pres", + "p3reso", + "3pret", + "pre4t3j", + "pret3r", + "4pric", + "4p3riek", + "4priet", + "prie4t5j", + "1prij", + "3prik", + "3princ", + "pring5s4", + "5prins", + "3p4rio", + "3p4riu", + "5priv", + "5p4rob", + "3p2roc", + "1p2rod", + "p3roed", + "3proef", + "proet5j", + "3proev", + "5p4rof", + "5p2rog", + "1proj", + "pro3la", + "3prom", + "p3rood", + "prooi5", + "pro5pa", + "p4roq", + "3pros", + "pro5sc", + "pro4s5t", + "pro3t4a", + "3proto", + "3pro5v", + "4proy", + "pru2t", + "prut3o4", + "2ps", + "p3sab", + "ps3a2g", + "p3sak", + "ps3ar", + "ps3ass", + "4pse", + "ps3erk", + "p4s3et", + "p3si", + "p4s3i2d", + "p4sin", + "p5sis", + "p1sl", + "ps3le", + "ps2me", + "ps5mi", + "p4s3na", + "ps3neu", + "p4sof", + "p3sol", + "ps3opt", + "pso4r", + "p1sp", + "ps2pl", + "ps3ple", + "p1s4t", + "p3stat", + "p3ste", + "ps5tent", + "ps5tes", + "ps5th", + "ps3tor", + "ps5tron", + "p3stu", + "ps5ty", + "3psy", + "5psyc", + "p3sys", + "4p1t", + "pt3ad", + "pt3alb", + "p3te", + "p2t1h", + "p5ti", + "pt3j", + "p4t3o4v", + "p3tr", + "pt3ric", + "1p2u", + "3pub", + "pu3ch", + "pu3e", + "puil3o", + "pul4st", + "3pun", + "4pun.", + "punt3j", + "3put.", + "puter5in", + "put1j", + "pu2t3o", + "put3r", + "put4st", + "puts5te.", + "2pv", + "pvan4", + "pvari5", + "2p1w", + "1py1", + "2p5z", + "1q", + "5qe", + "qu4", + "que4s", + "5quo", + "4r.", + "r2aa", + "2raan", + "4raand", + "3raar", + "5raar.", + "4r3aard", + "5raars", + "raar5tj", + "2rac", + "ra4ca", + "ra3ce", + "5racl", + "rad4a", + "3radb", + "ra5den", + "ra3di", + "5radia", + "3radio", + "4radm", + "4r3adr", + "3rad3s", + "4radv", + "2rafd", + "r4aff", + "raf5ond", + "ra3fra", + "3ragez", + "ra5gi", + "ra3g2n", + "ra5go", + "rag4s", + "3rais", + "raket3", + "ra3k4l", + "rak5r", + "4r3a2la", + "ra4l3ee", + "4r3alf", + "r3a4lim", + "r3alt", + "ra4man", + "r5ameu", + "ra3mi", + "r2amp", + "4rana", + "ran4dr", + "ran4g3o", + "ran4gr", + "r5angst.", + "ra4nim", + "4ranj", + "ran4kl", + "rank3w", + "ran4sa", + "ran4st", + "ran4t3j", + "r3antw", + "ra3o", + "4rap.", + "ra3po", + "4rappa", + "rap5roe", + "ra3q", + "2r3arb", + "r4a5re", + "4rarit", + "2r1arm", + "4r3arr", + "2r1art", + "ra5sei", + "ra4sk", + "ra4sl", + "ra1so", + "ra2sp", + "ras3po", + "rast5ri", + "r4ati", + "rat5j", + "ra4tom", + "ra4tra", + "ra5tri", + "rat3sp", + "rat4st", + "rats5te.", + "ra3t4u", + "2rau", + "3raus", + "r1aut", + "5ravr", + "ra4zij", + "rbe4ti", + "r1c", + "r3ce", + "rces3", + "r3chi", + "r3co", + "2r1d", + "r4d3act", + "rd3alk", + "rda2m", + "rd5ama", + "r3dan", + "r2d3ar", + "rd3ei", + "r4d5e4las", + "rden5dr", + "rde5o4", + "r4derva", + "rde5s4t", + "rdi3a", + "rdi5o", + "rd5l", + "r3do", + "r5doc", + "r4d3ol", + "rd5olie", + "rd3ont", + "rd3oos", + "rdo3pe", + "rdo3v", + "rd3ras", + "rd3res", + "rd5roos", + "rd2ru", + "rd3sa", + "rd3s4c", + "rd3so", + "rd1sp", + "rds4t", + "rd5sta", + "rd5ste", + "rd3su", + "r3du", + "rd2wi", + "rd5wo", + "3re.", + "1reac", + "re4ade", + "4reak", + "re3amb", + "4re5at", + "re3co", + "3recr", + "rec5ta", + "3reda", + "3redd", + "rede4s3", + "4re4diti", + "3redu", + "re5dw", + "ree4k", + "2r1een", + "ree3n4e", + "r5eenh", + "ree2p", + "reeps5", + "ree5r4ad", + "4reers", + "reer5ste", + "r3eerw", + "ree4s", + "ree5sh", + "r4ef", + "4refb", + "2reff", + "3refl", + "re3fu", + "1reg", + "4reg.", + "4regd", + "rege5ne", + "rege4s", + "4regg", + "3regi", + "re3gl", + "4regt", + "4reie", + "4reil", + "4reind", + "rei5tj", + "5reiz", + "re4kap", + "5rekeni", + "re2k3l", + "re2k5n", + "re4ko", + "re4k3re", + "rek3sp", + "re4ku", + "re1kw", + "rel4di", + "rel4d3o", + "reld3r", + "re4l3ei", + "rel5k", + "re4lu4r", + "3rem.", + "re4mai", + "remie5tj", + "re5mo5v", + "2remp", + "3r4en.", + "re2na", + "re4naa", + "ren5aar", + "re5nade", + "re3nal", + "re4n3an", + "ren3a4r", + "r4end", + "5rendee", + "r5endert", + "re5ne.", + "re4nel", + "re5nen.", + "ren5enk", + "ren3e4p", + "re5ner.", + "ren5erf", + "ren5erv", + "5renf", + "2r1eni", + "5r4enkl", + "r4enn", + "re4noc", + "ren4og", + "ren4opl", + "re3nov", + "5r4enp", + "4renq", + "ren4sl", + "r4ento", + "r3entw", + "r5enveer", + "re4of", + "re4op4", + "re5pa", + "3repet", + "re4pie", + "4req", + "re3qua", + "4r1erf", + "2r1erg", + "re3r2o", + "rer4s", + "2r3ert", + "4r5erv", + "2rerw", + "re3sa", + "re5se", + "re4sl", + "res5le", + "res3m", + "re2s1p", + "res3t", + "re4tem", + "re3t4h", + "ret4i", + "re4tik", + "re5tin", + "2retn", + "re4t3o4g", + "re4t3oo", + "rets5te.", + "re2u", + "reur5es", + "reus4t", + "reu5ste", + "3revis", + "3revo", + "2r3ex", + "r4f3aa", + "rf3act", + "r2f3a4g", + "rf3al", + "r3fas", + "r3fe", + "r4f3eng", + "r1fl", + "r4f3lag", + "rf3lev", + "r2f3li", + "rf3lus", + "r4f3op", + "r1fr", + "r4f3re", + "r5frea", + "rf2s2", + "rf3sm", + "rf3sp", + "r4f3u4r", + "rf3uu", + "r1g", + "r4g3ab", + "rg3amb", + "r4g3een", + "rg3ei", + "rg4eis", + "rgel5dr", + "r5gen.", + "rge4ra", + "rge5rap", + "r4g3ins", + "r5glas", + "r3glo", + "r4g3lu", + "rg4o3v", + "r5grij", + "rg3rit", + "r3g4ro", + "rg1s4", + "rg2sm", + "rg5so", + "rg4s5pr", + "r3h", + "ri5abel", + "ri4ag", + "ri2ak", + "ri5an", + "rias4", + "ri4av", + "ri4bl", + "4rice", + "ri3co", + "ridde4", + "ri3di", + "ri4dol", + "ri4doo", + "rie5dr", + "rie4k5ap", + "rie5kl", + "rie3kw", + "rie4la", + "riel5aa", + "rie4lei", + "rie4ro", + "rie4ta", + "riet3o", + "ri1eu", + "ri3fl", + "ri3fr", + "r4ig", + "ri4gaa", + "ri3gl", + "5rigste", + "r4ijl", + "4r5ijl.", + "r5ijld", + "r5ijlt", + "rij5o", + "rij3pl", + "rij3pr", + "rij3sp", + "rij5ster", + "rij4str", + "4rijv", + "ri4k5l", + "rik5n", + "ri3k4o", + "ril5m", + "ri3ma", + "rim4pr", + "4r3inb", + "4rind", + "ri5ne", + "4r5inf", + "r4ing", + "4r5ingan", + "r5ingeni", + "ring5l", + "4r3inh", + "ri4nit", + "rin4k3l", + "r3inko", + "4rinkt", + "r3inl", + "4r3inna", + "4r1inr", + "4rins", + "r3inst", + "4rint", + "4r1inv", + "ri5on", + "ri3o5s", + "ri4sam", + "ri3sc", + "ri3sot", + "ris5to", + "rit3j", + "rit3ov", + "rit4st", + "rits5te.", + "rit5sten", + "3ritt", + "r5j4", + "rjaars5", + "r5ka.", + "rkaart5j", + "rk3adr", + "rk3af", + "r2kah", + "rk3ang", + "r4k3art", + "r2k3ei", + "rke4n", + "rken4s", + "rker4sl", + "r4k3erv", + "rke4s", + "rke5stree", + "rke5strer", + "rk5iep", + "rk3ijv", + "rk3inb", + "r4k3ink", + "rkjes5", + "rk3lag", + "r4k3lat", + "rk5leid", + "r2klo", + "rk3loo", + "rk3lus", + "r3kn", + "r4kne", + "r2kob", + "rk3olm", + "rk3omg", + "rkoot5", + "rk3opg", + "rk3ord", + "rk5os.", + "rk5oss", + "rk2r", + "r5k4ran", + "rk4ri", + "r5kris", + "r5kron", + "rk1s", + "rk3s4f", + "rk5si", + "rks4p", + "rk4t5e4v", + "rkt3h", + "rk4ti", + "rkt3o", + "rkt1r", + "rk3uit", + "r1kwa", + "rk3waa", + "rk5wat", + "rk3wee", + "r1kwi", + "rk3win", + "r3l", + "rlaat5ste", + "rle4g3r", + "rlink4s", + "rlinks5te", + "rlofs5", + "rlui5t4", + "r1m", + "rmaf4r", + "r4m3art", + "r2m3eb", + "r2m5eg", + "rme4r3a4", + "rmes3", + "rme4t3j", + "rmet5st", + "rm3inh", + "rmi2s", + "r3mo", + "r5moe", + "r4mop", + "rm3opm", + "rmors5te", + "rmos5f", + "rm3s4a", + "rm1st", + "rm3uit", + "rmun4", + "2r1n", + "r3na", + "r5n4am", + "r4n3ap", + "rn3ars", + "rnee5t", + "r4n3ene", + "rnes3", + "rne5te", + "rne4t3j", + "r2n5id", + "r2nin", + "r2n1on", + "rn3oor", + "r5noot", + "rn3ops", + "r5not", + "rn3ove", + "rns4", + "rn3sm", + "rn3sp", + "rn1st", + "rn3sta", + "rn3th", + "rn5tj", + "rn5to", + "r3nu", + "rnu5r", + "ro1a", + "ro5ac", + "r4oc", + "ro1ch", + "ro3d4o", + "3roe.", + "4roef", + "4roeg", + "roe4g3r", + "3roem", + "roens4", + "roen5sm", + "roep3l", + "roe4rei", + "roet4j", + "4roev", + "3roë", + "r5offi", + "r4ofi", + "ro3fl", + "roges5", + "1roï", + "ro3kl", + "3rokm", + "rok3sp", + "r4ol.", + "ro2l3a", + "role5st", + "rol3g2", + "2roli", + "rol3ov", + "ro5ma", + "ro3mo", + "4romz", + "r2on.", + "ron3a4d", + "5r4onal", + "ron4da", + "ron4d3o", + "ron4d3r", + "ron4d5u", + "r2one", + "r2oni", + "r2onk", + "ron4ka", + "r2onn", + "r2o1no", + "r2ons", + "ron4ste", + "rons5te.", + "4ron2t", + "ront3j", + "ront3r", + "ro3nu", + "4ronv", + "3roof", + "2roog", + "4roon", + "2r1oor", + "root5ste", + "ro3pa", + "ro4paa", + "ro4pan", + "4ropb", + "ro1pe", + "ro5pee", + "ro4pin", + "ro3p4la", + "4ropn", + "r4opo", + "rop5rak", + "rop3sh", + "r4opte", + "ro4pu", + "ror5d", + "ro3ro", + "ro3sa", + "ro5se", + "ro3sf", + "ro3sh", + "r4o5si", + "ro3sp", + "ros4s5t", + "ro5stel", + "ros5tra", + "ro5te", + "ro3t2h", + "rot3j", + "ro5ton", + "ro3tr", + "rot4ste", + "rots5te.", + "r1oud", + "3rou5t4", + "ro3v", + "ro4ve", + "ro5veri", + "4roxi", + "3roy", + "r1p", + "r3pa", + "rp3aan", + "rp3adv", + "rp3ank", + "r5pee", + "rp3eis", + "rpi3s", + "r2p3j", + "rp4lo", + "rp5lod", + "rpoort5j", + "r4p3o4v", + "r4p3rec", + "rp3ric", + "rp4ro", + "r3psa", + "rp4si", + "rp2sl", + "rp3sli", + "rp5spe", + "rp4s5to", + "2r5r", + "rre4l3u", + "rren5s4", + "rre5o", + "rreu2", + "rri5er.", + "rrie4t", + "rron5k", + "rrot4j", + "4rs", + "rs3a2d", + "rs3a2g", + "r3sal", + "rs3alm", + "rs3amb", + "r3san", + "rs3ana", + "rs3ap", + "rs3ar", + "rs3as", + "rs4asse", + "rsa4te", + "r5schi", + "rs2cr", + "r4s3eis", + "rsek5ste", + "rs4et", + "rseve3", + "r2s3ez", + "rs4fer", + "rs4hal", + "r3s2hi", + "r3s4hoc", + "rs3hot", + "rs3ini", + "rs3int", + "r4sj4", + "r5sjac", + "r5sjou", + "r5sjt", + "r3s4kat", + "r1sl", + "r4slan", + "r5slec", + "r5slep", + "r5sleu", + "r5slib", + "rs4lie", + "r5sling", + "rs3lob", + "rs5loep", + "r4s3loo", + "r5sluis", + "rs4m", + "r5smaak", + "rs5maal", + "rs5mak", + "r3sme", + "r3smij", + "rs5mis", + "r5smit", + "rs5mu", + "r1sn", + "r2s3na", + "rs3neu", + "r2s3no", + "r1so", + "r5sol", + "rs3ong", + "r2sor", + "rsorkes5", + "rs1ov", + "r1sp", + "r3spaa", + "rs3pad", + "r4s3par", + "rs4pare", + "r3spe", + "r5spec", + "r5spee", + "r5spek", + "rs4pene", + "r4s3pet", + "r5spit", + "r5spoe", + "r5spog", + "r5spon", + "r5spoo", + "rs3pot", + "r5spraa", + "r4spu", + "r5spul", + "rs3put", + "r1s4t", + "r4s5taak", + "rst5aang", + "rs5tas", + "r5stat", + "r3ste", + "r4s3te.", + "r5ster.", + "r5sterk", + "rs5term", + "r5sters", + "r5stes", + "rste5st", + "r4steva", + "r3sti", + "r4stit", + "r3sto", + "rs5toma", + "r4ston", + "rst5ora", + "r3str", + "rs5trap", + "r4st5red", + "rs5trei", + "r5stren", + "rs5trog", + "rst5roz", + "r3sty", + "r3su", + "rs3usa", + "r3sy", + "4rt", + "r1ta", + "r5ta.", + "r4t3aan", + "rt5aand", + "rt5aanv", + "r4t1ac", + "rt1ad", + "rt3af.", + "rt3aff", + "rt3am", + "r5tans", + "r2tar", + "rt3art", + "r4tau", + "r2tav", + "rt5c", + "r5teco", + "rt3eig", + "rt3eil", + "rte4lei", + "rt5emb", + "r5ten.", + "rte5nach", + "rte3no", + "rte3ro", + "rtes4", + "rte5sta", + "r2t5e2v", + "r4tha", + "rt1he", + "r3ther", + "rt3hi", + "r1tho", + "rt3hol", + "rt3hu", + "rt3hy", + "rt4ij", + "rtij3k", + "r4t3ini", + "r4t3ink", + "rt5jesc", + "r3to", + "rt3off", + "r5tofo", + "r5tok", + "rt3om.", + "rt3ond", + "r4t3op", + "r5tori", + "r1tr", + "r3tra", + "rt4rap", + "r4t3ras", + "rt3rec", + "r5treden.", + "r3t4rek", + "r4t3res", + "rt3ri", + "r4t3rol", + "r2t4ru", + "rt5ruk", + "rt5rus", + "rt4s5eco", + "rt5sei", + "rt2s3l", + "rt3sle", + "rts5li", + "rt4slu", + "rts5m", + "rts5no", + "rt4soo", + "rt1sp", + "rt4s3pr", + "rts5ten", + "r1tu", + "rt3ui4t", + "rt3w", + "rt2wi", + "5rubr", + "rude3r", + "ru1e", + "4ruf", + "ru2g", + "ru4gr", + "r5uitr", + "ru2k", + "4ru3ke", + "ruk3i", + "rul3aa", + "rul3ap", + "ru2li", + "ru4l3ij", + "ru3lin", + "rul5s", + "r2um", + "ru2mi", + "3run.", + "r2und", + "runet3", + "4r5u2ni", + "ru3niv", + "ru4r", + "ru5ra", + "ru5re.", + "ru5res", + "r2u4s", + "rus3e", + "rus5tr", + "4rut", + "rut3j", + "rut4st", + "ruts5te.", + "4ruu", + "ru3wa", + "rvaat5", + "rval4st", + "rvals5te.", + "rvers5te.", + "rves4", + "rve3sp", + "rvloot5", + "r1w", + "rwen4st", + "rwens5te.", + "r4wh", + "rw2t3j", + "r3x", + "r3yu", + "4rz", + "rzet5st", + "4s.", + "5sa.", + "s1aa", + "1saag", + "5s2aai", + "saai4s", + "3s2aal", + "3s4aat", + "1sab", + "sa3bo", + "2s1ac", + "sa2ca", + "3sacr", + "s1adv", + "2s1af", + "3safe", + "3safo", + "sa3fr", + "s5agg", + "s4a3gi", + "3sagn", + "sa3go", + "3sah", + "3sai", + "3saj", + "2sak", + "3saks", + "s1akt", + "s2al", + "5sal.", + "3sa3la", + "3sald", + "5salh", + "s3all", + "4salm", + "sal5ma", + "s3aln", + "3s4a3lo", + "3s2ame", + "5samm", + "sam5p", + "4sa2na", + "sa3nat", + "s4anc", + "s2a3ne", + "s4ant", + "san4t3j", + "sa2p", + "3sap.", + "sa3pa", + "2s3ape", + "sa4pr", + "sa5pro", + "sa3ra", + "s1arb", + "3sard", + "sa2re", + "s1arm", + "saro4", + "sar3ol", + "s4ars", + "4s1art", + "sart5se", + "4sas.", + "3sasa", + "sa3sc", + "3s4ast", + "1sat", + "3sa3te", + "5sati", + "2s3atl", + "2s1att", + "s3aud", + "1saur", + "3s2aus", + "s1aut", + "3sauz", + "1sax", + "4s3b", + "s5ba", + "s5be", + "s5bo", + "1sc", + "2sca", + "4sce", + "5scena", + "5scè", + "3s4ch2", + "4sch.", + "sch4a", + "5schak", + "5schap", + "4schau", + "5sche.", + "s5chec", + "4schef", + "5schen", + "4scheq", + "5scher", + "5schev", + "5schew", + "s2chi", + "4schir", + "5schol", + "5schoo", + "5schot", + "sch5ta", + "2sci", + "4scl", + "2sco", + "3s4cola", + "3scoo", + "3scope", + "5scopi", + "3s4co5re", + "3scout", + "2scr", + "4scris", + "2scu", + "2scy", + "4s1d", + "s5de", + "s4dh", + "sdi5a", + "sdis5", + "s3do", + "s5dr", + "s3dw", + "3se", + "5se.", + "se2a", + "se3ak", + "se3al", + "sear4", + "se3au", + "s4eb", + "4s3ech", + "se3cr", + "5sect", + "4secz", + "s4ee", + "4s5eed", + "5seei", + "4s1een", + "s5eenh", + "see4t", + "see5ts", + "4seev", + "s1eff", + "se3ge", + "2s5e2go", + "seg2r", + "4s3ei.", + "4s3eig", + "s4ein", + "5sein.", + "5seine", + "2seis", + "seis4t", + "sei5tj", + "5seiz", + "sek4st", + "seks5ten", + "se1kw", + "s2el", + "5s4el.", + "sel3ad", + "se4l3a4g", + "se4lak", + "se4las", + "se3le", + "4s3e4lek", + "sel3el", + "4se4lem", + "4self", + "se5ling", + "4s3elit", + "sel5k", + "5selm", + "selo4", + "5selp", + "5s4els", + "sel3sp", + "5selt", + "se2l3u", + "s4em", + "se4m3ac", + "s5emm", + "sem3oo", + "s4en", + "5sen.", + "se4n3a4g", + "se5nan", + "se4net", + "5sengr", + "5senh", + "sen5k", + "se4n3o", + "4s5enq", + "sen5tw", + "5s4er.", + "se1r4a", + "ser5au", + "5se3r4e", + "se4ree", + "se5ren", + "s4erg", + "5sergl", + "s5ergo", + "5sergr", + "ser4i", + "se5rij", + "4s3ern", + "se3ro", + "se5rop", + "ser2s", + "sers3p", + "ser3st", + "sert5w", + "se3ru", + "s4es", + "se5sc", + "se3sf", + "2s5esk", + "5sess", + "se4t", + "se5ta", + "4s3ete", + "se5ti", + "se3tj", + "set3r", + "se5t4ra", + "set5st", + "4s5etu", + "set3w", + "se3um", + "se4ven", + "4s1ex", + "4sez", + "se2ze", + "3sé", + "3sè", + "2s1f", + "4sfed", + "s5fei", + "4sfi", + "4s5fr", + "4sfu", + "sfu5m", + "4s5g", + "sgue4", + "s1h", + "s4ha.", + "sha4g", + "s5hal.", + "3shamp", + "4she", + "sheid4", + "sheids5", + "s5hie", + "5s4hir", + "sh3l", + "4shm", + "s3hoe", + "s3hoo", + "3s4hop", + "s2hot", + "s3hote", + "3show", + "s5hul", + "1si", + "5si.", + "5s4ia", + "si5ac", + "si3am", + "si5an", + "5sic", + "sici4", + "si3co", + "3sie.", + "3sieë", + "sie5fr", + "sie5kl", + "siep4", + "sies4", + "sie5sl", + "sie3so", + "sie3st", + "sie5ta", + "sie5to", + "si5è", + "si1f4", + "5s2ig", + "si5go5", + "s3ijv", + "4s1ijz", + "5sile", + "4s5imper", + "3simu", + "5sina", + "s3inb", + "4s3inc", + "4s1ind", + "2sinf", + "sing4", + "3sing.", + "s3inga", + "s5ingeni", + "sin3gl", + "s3in5gr", + "s3inh", + "4si2ni", + "4s3inko", + "sin5kr", + "4s3inm", + "s4inn", + "4sinr", + "2s1ins", + "2sint", + "4s5inv", + "4s3inz", + "3sir", + "5siro", + "s3irr", + "si4s", + "sis3e4", + "sis5ee", + "sis3i", + "sis5tr", + "3sit", + "si5to", + "sito5v", + "si3tr", + "si4tru", + "si5tu", + "3siu", + "3siz", + "sj2", + "4sj.", + "3s4ja.", + "5sjab", + "4sj3d", + "s1je", + "2s3je.", + "s5jeb", + "3sjee", + "3s2jei", + "1sjer", + "sje4ri", + "s3jes", + "3sjew", + "3s4jez", + "4sj5k4", + "5sjof", + "4s3jon", + "sj3s2", + "sjt4", + "s5ju", + "2s1k2", + "skaart5j", + "s5kad", + "s4kele", + "s5ken", + "3s2kes", + "sk4i", + "3s2ki.", + "3skied", + "skie3s", + "3skië", + "ski5sc", + "s2k3j", + "s3ko", + "s5kre", + "sk5ruim", + "sk3ste", + "4sku", + "s3k4w", + "s2l4", + "3s4la.", + "5s4laan", + "5slaap", + "4s5laar", + "4slab", + "s4lac", + "4s3lad", + "3s4lag", + "5slagm", + "sla4me", + "s5lamp.", + "s5lampe", + "4s5land", + "3slang", + "3slap", + "5slape", + "sla3pl", + "4s3las", + "2s3lat", + "3s4la5v", + "4slaw", + "3s4laz", + "s3led", + "3s4lee.", + "5sleep", + "4s5leer", + "s4leet", + "slee5tj", + "4s3leg", + "2s5lei", + "s5leng", + "s3leni", + "slen4st", + "slens5te.", + "3slent", + "s4lep", + "4s5ler", + "s5les", + "sle4t3j", + "3s4leu", + "s5leug", + "s5leus", + "5sleut", + "2s5lev", + "s3li.", + "4s3lic", + "4slid", + "2slie", + "s5lied", + "s3lief", + "3s4lier", + "s3lif", + "s5lig", + "4s3lijf", + "5slijp", + "4s5lijs", + "s4li4k", + "sli2m", + "slim5a", + "s5lini", + "4slinn", + "s4lip", + "4s3lit", + "slo4b5", + "2s3loc", + "3s4loe", + "3slof", + "4s3log", + "s3lol", + "s3lood", + "s5loon", + "s5loos", + "5s4loot3", + "s3los", + "3slot", + "slo4tr", + "4s3lou", + "4s5loz", + "4s5luc", + "1s4lui", + "4s5lui.", + "4sluid", + "5sluis.", + "sluis4t", + "slui5ste", + "5sluit", + "5sluiz", + "4slun", + "2s5lus", + "4s3ly", + "s1m", + "4s5maat", + "3smad", + "3smak.", + "3smal", + "2s5man", + "s5map", + "s4mart", + "4s5mat", + "4s5mec", + "5smeden", + "3smeed", + "5s4meet", + "4s5mei", + "4smelo", + "4s5men", + "4s5mes3", + "5smid.", + "smie2", + "smies5", + "s4mij", + "s5min", + "5smok", + "s3mon", + "5smuilden", + "s5muile", + "5smuilt", + "s2n4", + "s5nam", + "5s4nap", + "s4nar", + "3snau", + "3s4nav", + "3s4ned", + "3snee", + "snee5t", + "s5neg", + "5s4nel", + "2s5nes", + "4s5net", + "sneus4", + "sneu5st", + "s5neuz", + "s3nie", + "1s4nij", + "s5nim", + "3s4nip", + "4s5niv", + "4snod", + "3s4noe", + "s3nog", + "2snoo", + "s4nor.", + "s3norm", + "sno5v", + "3snuf", + "s4nui", + "2snum", + "3so.", + "so4bl", + "so1c", + "s3oce", + "3s4o3d", + "1soe", + "2soef", + "3soep", + "soes3", + "2s1off", + "3soft", + "2so2g", + "3so3ga", + "s1oge", + "so3gl", + "3sogy", + "5soi", + "3soï", + "3sok", + "s2ol", + "5sol.", + "so3la", + "so3le", + "so3lis", + "3so5l4o3", + "solo5v", + "5sols", + "s2om", + "3s4om.", + "5somm", + "2s3oms", + "s3omv", + "2somz", + "5s4on.", + "3sona", + "so5nar", + "s3onb", + "2s1ond", + "2song", + "3sonn", + "3so3no", + "s4ons", + "2s1on4t3", + "4s3onv", + "s3onw", + "3soo", + "4s5oog", + "4s3ook", + "4s3oor.", + "s3oord", + "4s3oorl", + "5soort", + "2s1op", + "3s4op.", + "4s5ope", + "so3phi", + "s2o5po", + "so3pr", + "3s4opra", + "sop4re", + "s2orb", + "s3ord", + "2s1or3g", + "4s5ork", + "sor4o", + "so3ror", + "sor4st", + "3s2ort", + "sos4", + "so3sf", + "s4ot", + "s3oud", + "sou2l", + "sou3t", + "2sov", + "s1ove", + "3so5z", + "4sp.", + "sp4a", + "5spaak", + "s3paal", + "5spaan", + "5spaat", + "2spad", + "2spak", + "5spake", + "s4pan", + "3spann", + "4s5pap", + "5spar.", + "s4pari", + "5sparr", + "2spas5", + "5spatt", + "s3pau", + "5s4pea", + "4spectu", + "3s4pee", + "speet3", + "4s3pei", + "s4pek", + "5spell", + "4s3pen", + "s5pen.", + "spe4na", + "s5pep", + "4sper", + "s4per.", + "s5peri", + "s4perm", + "5s4perr", + "4spes", + "s3pez", + "s3pid", + "1s4pie", + "spie5tj", + "4spijn", + "4spijp", + "s5ping", + "5s2pio", + "s3pis", + "spi5sto", + "2s1p4l", + "4s5pla", + "s4plet", + "s2pli4", + "5splin", + "3split", + "s3plo", + "s3plu", + "sp4o", + "s2poe", + "s3poes", + "4spoë", + "4spog", + "4spol", + "2s3pom", + "s4pon.", + "s4ponn", + "s2poo", + "s3pop", + "5s4pore", + "s4pori", + "4s3pos", + "5spots", + "4spou", + "4sprakt", + "5spray", + "s5pred", + "5sprei", + "s4prek", + "4sprem", + "4spres", + "5spreu", + "5spriet", + "4s5prij", + "4sprik", + "4sprob", + "4sproc", + "4s5prod", + "4sprof", + "4sprog", + "5s4pron", + "s4proo", + "4spros", + "4s3ps", + "4spt", + "s2p4u", + "4spub", + "5s4pui", + "4spun", + "s4pur", + "5spuw", + "s4q", + "4s5r", + "sraads5l", + "sro5v", + "4s3s4", + "ssa1s2", + "s4sco", + "s4s5cu", + "s5se", + "ssei3s", + "sseo4", + "s5si", + "s5sl", + "s4spa", + "s5spaa", + "ss5pas", + "s5su", + "s5sy", + "s2t", + "4st.", + "5staaf", + "5staan.", + "4staang", + "4staanw", + "staart5j", + "s4taat", + "staat5j", + "st3abo", + "2s4t1ac", + "3stad", + "5stads", + "2staf", + "5staf.", + "sta4fo", + "s4tag", + "s4tak", + "5staki", + "4stakk", + "st3akt", + "4s3tali", + "5stam.", + "5stamm", + "3stamp", + "3s4tand", + "stan4s", + "s4tap", + "4stapo", + "s4t3arc", + "4stari", + "2stas", + "stasie4", + "5statio", + "4stau", + "st3aut", + "s4tav", + "4stavo", + "4s5tax", + "4staz", + "2stb", + "2st5c", + "2std", + "4stea", + "5steak", + "4stec", + "s5tech", + "5steco", + "3s4ted", + "4stedu", + "3steek", + "3steen", + "4steenh", + "s5teer", + "stee5t", + "5stein", + "5stekar", + "5stekk", + "5steldh", + "ste4lee", + "st5elem", + "3stell", + "5stem.", + "5stemd", + "5stemm", + "4stemo", + "4stent", + "4stenu", + "ste5ran", + "4sterm", + "ster5og", + "st5e4ros", + "5sterren", + "s5teru", + "4ste4s", + "4s4t3ex", + "s4t3e2z", + "2stf", + "4stg", + "4sth", + "s4tha", + "st3hed", + "st5heer", + "st3hek", + "s5them", + "s3ther", + "st1hi", + "s4t1ho", + "s4t1hu", + "s4t3hy", + "2stia", + "2stib", + "4sticu", + "s4t3id", + "5stiefe", + "s5tiev", + "4stijd", + "3s4tijg", + "5s4tijl", + "st3ijs", + "3stils", + "s4tim", + "st3imp", + "sti5ni", + "4stins", + "4s5tint", + "4stite", + "2stiv", + "st3ivo", + "4s4t1j", + "2stk", + "4stl", + "2stm", + "2stn", + "2stob", + "2stoc", + "4stoef", + "3stoel", + "5stoel.", + "5stoele", + "4stoen", + "4stoer", + "4stoes", + "4stoez", + "3s4tof", + "st3o4ge", + "5s4tok", + "s4tol", + "sto5li", + "4stoma", + "4stomz", + "s4tong", + "3s4too", + "4st3oog", + "stoot5j", + "s4top", + "st3o5pe", + "st5opto", + "4stora", + "sto4rat", + "4stord", + "sto5ri", + "4s5tos", + "s4tov", + "2stp", + "1s4tr", + "4stra.", + "straat5j", + "4st4rad", + "3stra4f", + "5straf.", + "s5trag", + "4strai", + "4st3rec", + "s5tref", + "4streg", + "4s3trei", + "5strel", + "3strep", + "st3rif", + "st5rijp", + "s5tris", + "4s3troe", + "s5troep", + "st4rom", + "5strook", + "5stroom", + "4stroos", + "st5roos.", + "4s5trou", + "4stroz", + "3stru", + "4strui.", + "5struik", + "4st1s4", + "st3sc", + "st5se", + "st3sf", + "st3sk", + "st3sl", + "st3so", + "st5sp", + "st5st", + "2st5t2", + "1stu", + "4stub", + "4stuc", + "5s4tud", + "4stuin", + "stui5tj", + "st5uitk", + "5stuk", + "2s4tun", + "st3uni", + "stu4nie", + "4stus", + "2stv", + "2st3w", + "2s4ty", + "1styl", + "s5typ", + "2stz", + "1su", + "5su.", + "5sua", + "5su4b1", + "suba4", + "sub5e", + "su5bl", + "5suc", + "5sud", + "3sug", + "2sui", + "5suik", + "4s1uit", + "5suit.", + "s5uitl", + "5suits.", + "5suk", + "3sul", + "5sum", + "4s1u2n", + "5sup", + "5surv", + "su4s", + "sus3e", + "suur5", + "4s5v", + "svaat5", + "svari5", + "sve4r", + "sve5ri", + "4s1w", + "s5wo", + "s4y", + "3sy.", + "4syc", + "3syn", + "sy4n3e", + "1sys5", + "4s5z", + "4t.", + "3taak.", + "t4aal", + "t5aando", + "t3aank", + "taan4st", + "t3aanw", + "t3aap", + "taar5sp", + "4t3aas", + "taat4st", + "taats5ta", + "3tabe", + "3tabl", + "2tac", + "ta2ca", + "3t4aci", + "4tad", + "ta4de", + "t3ader", + "5tado", + "t3adr", + "tad4s3", + "t3adve", + "2taf.", + "2t3afd", + "5ta3fe", + "4taff", + "t3afha", + "t4afr", + "ta3fro", + "4t1afs", + "2t3afw", + "4tafz", + "ta4gaa", + "5tagee", + "5ta5g4l", + "tag3r", + "5taka", + "5takg", + "5takken", + "ta3kl", + "5takn", + "5takp", + "5tak3r", + "5taks", + "t2al", + "ta3laa", + "ta5lact", + "4talb", + "5tale.", + "5talent", + "ta3li", + "5talig", + "t5allia", + "talm3a", + "4talt", + "ta4mak", + "4tamb", + "t3amba", + "5tamen", + "tament5j", + "4tamp", + "t3ampu", + "5tan.", + "4t3a2na", + "ta3nag", + "ta3nat", + "tan4d3r", + "tan4k5r", + "ta3o", + "t4ape", + "5tapi", + "ta3pl", + "5tapo", + "ta3q", + "ta3ra", + "4t3arb", + "5tari", + "4t1arm", + "ta2ro4", + "tar5sp", + "tar5taa", + "t3arti", + "3tarw", + "3tas", + "5tasa", + "5tasj", + "5taso", + "ta3s2p", + "ta3sta", + "ta3str", + "ta3sy", + "4tata", + "4tatio", + "tat5j", + "4t3atl", + "3tatr", + "3tau", + "4taut", + "2t1avo", + "3tax", + "t3a2z", + "4t3b", + "tba2l", + "4t3c", + "t4ch", + "t5cha", + "t5che", + "t5chi", + "t5chu", + "4t3d2", + "tdor5st", + "tdo3v", + "1te", + "3tea", + "te3akt", + "5tea4m", + "3tec", + "4t3echt", + "4teco", + "te4dit", + "t3edu", + "tee2", + "teeds5te.", + "tee4g", + "4teek", + "tee4k3l", + "teem1", + "4tee4n", + "t5eenhe", + "3teer", + "tee5rin", + "tee4t", + "4t3eeu", + "t4ef", + "t5eff", + "3tefl", + "3teh", + "4t3eier", + "4teig", + "tei4lo", + "t4ein", + "t5eind", + "5teit", + "tei5tj", + "2t3eiw", + "5tekene", + "5tekens", + "4teker", + "4tekk", + "3teko", + "te4k3om", + "3teks", + "te3kw", + "te4k3wi", + "t4el", + "tel5ant", + "te4lap", + "tel5da", + "4telec", + "5teleco", + "t5elect", + "tel5een", + "5telef", + "5teleg", + "tel5ei.", + "tel5eie", + "tel5eit", + "te5lel", + "5telev", + "5te5lex", + "tel3f", + "tel5k", + "te4loe", + "te4l3o4g", + "tel5oog", + "te4l3op", + "telo4r", + "tels4", + "4telse", + "tel3so", + "tel5su", + "te4l3uu", + "t4em", + "2temb", + "4temm", + "te4mor", + "tem3ov", + "5temper", + "5tempo", + "t4en", + "ten4ach", + "ten3a4g", + "te3nak", + "te5nare", + "te4nau", + "tene2", + "ten3ed", + "ten3el", + "tene4t", + "3tenh", + "ten5k4", + "te5nore", + "4t5enq", + "ten5scr", + "ten3sn", + "ten3sp", + "tensu4", + "tens5uu", + "3tent", + "5tenta", + "5tenten.", + "ten5to", + "t3entw", + "5tenu", + "t2er", + "teraads5", + "te4r5aak", + "ter3a4b", + "tera5ca", + "te4rad", + "tera4de", + "te4r5af", + "ter3ag", + "te3ral", + "te4ran", + "ter3ap", + "ter3as", + "5terec", + "te4rei", + "ter5eik", + "te4rel", + "te4rem", + "te5ren.", + "te4r5enk", + "te4r5env", + "4t4erf.", + "4terfd", + "ter3fr", + "4t4erft", + "te4r5in.", + "3terj", + "4terk.", + "4terkt", + "ter3k4w", + "3term", + "5term.", + "5termi", + "ter5oc", + "te3rod", + "te3rof", + "te3rog", + "5teron", + "te5rons", + "tero5pe", + "tero4r", + "te3ros", + "5terrei", + "5terreu", + "5terror", + "ter4spr", + "ter5ste.", + "ter5ston", + "3tes", + "te3s4ap", + "tes3m", + "te3so", + "tes3ta", + "te5stel", + "tes5ten", + "test5op", + "test5ri", + "test3u", + "te3ta", + "te5tr", + "4t3euv", + "t4ev", + "t5e4van", + "teve4r", + "5tevl", + "3tevr", + "2tex", + "3tex.", + "4t3exe", + "4texp", + "1té", + "tè3", + "4t3f", + "4t3g2", + "tgaat5", + "t5ge", + "tge3la", + "tger4", + "4th.", + "2t1ha", + "t3haa", + "t4haan", + "t4had", + "t3hak", + "t5ham", + "t4hans", + "t3har", + "t3hav", + "5thea", + "t3heb", + "5thee.", + "4t3hei", + "4t3hel", + "3t2hen", + "5theo", + "1t2her", + "5the3ra", + "4t3here", + "3thes", + "3thet", + "t4hin", + "4thm", + "t1hoe", + "t2hog", + "t3hok", + "t1hoo", + "thoof5di", + "4t1hou", + "t3houd", + "5thous", + "4t3hov", + "3thr", + "2thu", + "t1hul", + "4thum", + "t4hur", + "3ti", + "5ti.", + "5tia", + "ti5ab", + "ti5ae", + "ti3ap", + "5tib", + "5tica", + "5tice", + "5tici", + "5ticu", + "ti3d4", + "5tie.", + "tie5d4", + "5tiefs", + "tie3kn", + "tie4kon", + "ti3enc", + "tien5st", + "5tiep", + "5ties", + "tie5s4l", + "tie5ta", + "tie5to", + "tie5tw", + "ti1eu", + "5tieven", + "ti3fe", + "ti3fr", + "ti2ga", + "tig5aa", + "4tigm", + "ti4gu4", + "tig3ur", + "5tijd", + "tije4", + "tij5ka", + "tij4kl", + "5tijn", + "tij5p", + "t3ijs.", + "tij3st", + "tij3t2", + "tij5tr", + "tij5tw", + "4t1ijz", + "ti3ko", + "ti5kr", + "t4il", + "4tils", + "5timm", + "5timo", + "tina4d", + "tin3as", + "4t3incu", + "4t1ind", + "4tinf", + "tin4g3i", + "ting4sa", + "t3inh", + "ti4nit", + "4t3inj", + "t3inko", + "4t3inl", + "t3inq", + "4tinr", + "4t3ins", + "ti3nu", + "4t3inv", + "4tinw", + "ti5om", + "ti3o4p5", + "t2is", + "ti5sa", + "ti3s4j", + "ti3sl", + "ti3so", + "ti4son", + "ti3s4p", + "ti3sta", + "5tite", + "ti3th", + "ti1t2r", + "5tivi", + "ti4vo", + "1tj2", + "2t1ja", + "t5jaa", + "t5jee", + "t5jek", + "t3jen", + "t5jet", + "4tjeu", + "2tjo", + "t1jou", + "2tju", + "4t3k2", + "tkars3", + "4t3l", + "t5le.", + "5tleb", + "t5les", + "tli4n", + "4t3m", + "tmen4st", + "tmens5te", + "tmos5", + "4t3n", + "tna4m3o", + "tne4r", + "tnes4", + "5to.", + "toa2", + "to3ac", + "to3ar", + "to5bl", + "3toc", + "1toch", + "3tod", + "to3da", + "t4oe", + "toe5d4", + "3toej", + "toe5k", + "5toe3l4a", + "toe5le", + "5toelic", + "toemaat5", + "5toen", + "to5ende", + "toe5pl", + "3toer", + "5toeri", + "5toern", + "5toe1s4", + "toe5st", + "toe3tj", + "3toets", + "5toets.", + "5toetse", + "toets5te.", + "3toev", + "5toez", + "to2f", + "tof5ar", + "tof5d", + "to4fr", + "tof3th", + "3togn", + "5togr", + "3toi", + "to4kan", + "tok3s", + "t2ol", + "to3la", + "5tolaa", + "to5le", + "5tolet", + "t3olf", + "2toli", + "5tolic", + "to4lie", + "tolk5s", + "5tolo", + "tolp3r", + "t3oly", + "4tom.", + "5tomaa", + "tomaat5", + "t3oml", + "to3mo", + "tom4p3j", + "4t3om5s", + "5ton.", + "4tond", + "3t2one", + "5tonee", + "5to5nen", + "to5ner", + "3t4ong", + "5tong.", + "3t4oni", + "5t4onn", + "to3no", + "5tons", + "ton3sk", + "too4m", + "toom3e", + "5toon", + "t4op.", + "top5art", + "top3as", + "to3pen", + "to3pet", + "to3pi", + "2topm", + "to4po", + "to5pos", + "t4opp", + "to4pu", + "to5pus", + "t3opva", + "5tor.", + "to3ra", + "to4r3ag", + "t3ord", + "to5rec", + "5torens", + "4t1org", + "t5orga", + "t4ori", + "3toria", + "to4rië", + "tor3k", + "tor4m3a", + "toro4", + "to4r5oli", + "to3rom", + "5torr", + "3tors", + "tors5te.", + "to3r2u", + "3tos4", + "to3sa", + "to1sl", + "to1s2p", + "tos5te", + "5tota", + "to3tr", + "2t3oud", + "3tour", + "tou4r3e", + "to3v", + "tove5na", + "to4vens", + "4toverg", + "to3w4", + "4t3p4", + "tpe4t3", + "tpi3s", + "tr4", + "3tra.", + "4t3raad", + "5tracé", + "5trafo.", + "3trag", + "4tragez", + "3t4rai", + "5train", + "5traka", + "t3rake", + "3trakt", + "3trans", + "5transa", + "5trap.", + "5trau", + "4t3raz", + "3t4re.", + "4trea", + "2trec", + "5tred.", + "4treda", + "t5redes", + "4tredu", + "3tref", + "4t5reg", + "4t3reis", + "4treiz", + "4trel", + "t3rese", + "t3resu", + "tre2t3", + "t4reu", + "t3rib.", + "5tribu", + "5trico", + "trie5ta", + "trig2", + "2trij", + "5t4ril", + "tri5ni", + "5t4rio4", + "t3risi", + "t3rit.", + "5t4riti", + "5trody", + "t3roed", + "t3roes", + "5trofy", + "3trog", + "t4roï", + "5troj", + "4trol.", + "5trola", + "5trolo", + "5tromm", + "5tron.", + "5trona", + "t5rond", + "3trone", + "5tronn", + "5trono", + "5trons", + "tront5j", + "t3rood", + "5troon", + "t4roos", + "tro5pi", + "t4ros", + "5trotu", + "3trou", + "4t5rout", + "tro5v", + "5truc.", + "5truf", + "4trug", + "5trui.", + "5truie", + "t3ruim", + "trui5t4", + "t3ruk", + "t4rum", + "4ts", + "ts3a2d", + "tsa4g", + "ts1am", + "t3sap", + "ts3as", + "tse4d", + "ts5een", + "t4s3ei", + "ts5eind", + "t4s5ene", + "t4s3eng", + "t4s3erg", + "ts5erge", + "t4s3e2v", + "t2sij", + "t4s3ink", + "ts3int", + "ts2j", + "ts3ja", + "t3sjen", + "3tsji", + "t1sl", + "ts4laa", + "t3slac", + "t5slag.", + "ts3lam", + "t2s3le", + "t5slib", + "t5sloe", + "t3s4lu", + "ts2me", + "ts4moe", + "ts3neu", + "ts4no", + "ts5nor", + "ts5not", + "ts3nu", + "ts3ob", + "tso2l", + "ts3oli", + "ts3om", + "ts1on", + "ts4opp", + "ts1o4r", + "ts1ov", + "ts3pad", + "t3span", + "t5spec", + "t4s3pet", + "t3spi", + "t4s3pil", + "t3spoe", + "t3spoo", + "t5s4por", + "ts3pot", + "t4spro", + "ts4pru", + "ts5q", + "ts5s", + "t3sta", + "t4staak", + "t4s5tank", + "ts5tant", + "t4star", + "t4stas", + "t3ste", + "t5sted", + "t5stee", + "ts5teko", + "t5stell", + "t5stels", + "t5stem", + "t5ster.", + "t4sterr", + "t5sters", + "t5s4tes.", + "t5steu", + "ts3th", + "t1s4ti", + "t3stij", + "t5stijg", + "t5stil", + "ts5tin", + "ts5t4j", + "t1sto", + "ts5toep", + "ts5tong", + "t4store", + "ts5trad", + "ts5trei", + "t3stri", + "ts5troe", + "ts5ty", + "t4su4", + "ts3ur", + "ts3us", + "ts3uu", + "t1sy", + "4t3t", + "t5t4a", + "t5te", + "tte5loe", + "tte5l4op", + "tte2n", + "tten4t5j", + "tte5ri", + "t5tlet", + "tt3oog", + "ttop2", + "t5t4r", + "t5tum", + "tt3uu", + "3tua", + "3tub", + "3tuch", + "3tu3e", + "5tueu", + "tu3és", + "3tuig", + "5tuin", + "4tuip", + "2tuit", + "tuit4j", + "4tuk", + "tu4k3i", + "tul5pi", + "t4um", + "5tune", + "5tunn", + "tu1o", + "5turb", + "tu3ri", + "3tu4s3", + "tut3j", + "tuurs5la", + "tu3wa", + "4tv", + "tvaat5", + "t3ve", + "4t1w", + "3t4wijf", + "t2win", + "1ty1", + "3typ", + "tys4", + "4tz", + "t3za", + "t3zi", + "t5zw", + "u1a", + "u3ac", + "u3an", + "ua5ne", + "ua3p", + "u5ar.", + "uar5t", + "ua3sa", + "uat4", + "2u2b", + "ub3ac", + "ube4li", + "ub5em", + "u5bi", + "u3bo", + "ub5or", + "4uc", + "u1che", + "ucht5sl", + "uc4ki", + "ucle3", + "uc4t3a", + "uc4tin", + "u1d", + "uda2", + "u5da.", + "ud5am", + "ud3ei", + "ud3ess", + "u4de4z", + "ud3eze", + "udi4o", + "udi5ologe", + "udi3om", + "udoe2", + "ud3ond", + "ud3oo", + "ud3ov", + "u4d1r", + "uds5lo", + "uds4m", + "uds5ma", + "ud3sme", + "ud3smi", + "ud1st", + "ud4sta", + "uds5tak", + "ud4sti", + "ud1w", + "u3ec", + "ue2co", + "u1ee4", + "u3ef", + "u3ei", + "u1el", + "u4ene", + "u1er", + "uer3il", + "ue3st", + "u1eu", + "u5eul", + "u3ez", + "u3è", + "u4f3an", + "u1fl", + "u1f4r", + "uf2s", + "u5ga", + "ug4da2", + "ug4der", + "ug2do", + "ug4dr", + "uge4l5o", + "ug3ij", + "ug1l", + "u2go", + "ug3or", + "u2g1r", + "ug5sce", + "ug4sec", + "ugs4p", + "ugs5pa", + "ug1s4t", + "ugs5tra", + "u1h", + "u2i", + "ui5ac", + "ui2d3a", + "ui2d1o", + "uid4s", + "uid3sp", + "uid5spre", + "uid5ste.", + "uid3u", + "ui3e", + "uien4t", + "ui2fa", + "uif1l", + "uif5r", + "ui2fu", + "4uig", + "ui4g5aa", + "uig1l", + "ui2g3o", + "ui4g3r", + "ui4gu", + "4uik", + "ui2k3a", + "ui4k3l", + "ui2ko", + "ui2ku", + "ui2la", + "uil5aa", + "ui4l3em", + "uil5m", + "ui4l3og", + "ui4loo", + "uil3ov", + "4uim", + "ui2m3a", + "ui3mag", + "ui4n1a", + "uin5g", + "ui2no", + "uin5og", + "uin3or", + "uin4s5lo", + "uin5to", + "ui2p3l", + "ui4p3o4", + "ui2p3r", + "4uis", + "ui2s3a", + "uis5c", + "ui4sl", + "ui5slu", + "uis5p", + "ui4st", + "ui4t3a4", + "uit5aa", + "uit5al", + "ui5tar", + "1uitg", + "uit1j", + "3uitl", + "ui2t1o", + "1uit5r", + "uit3sl", + "uit3sn", + "uit5sp", + "uits5te.", + "3uitw", + "3uitz", + "ui3v", + "4u3j", + "2uk", + "u2k3al", + "uk3as", + "ukkers5", + "u2k3l", + "u3klas", + "u2k3n", + "u2k3o", + "u3koc", + "uko2p", + "uk4o3pl", + "u4k3r", + "uk3s2m", + "uk3spa", + "uk3spl", + "uk4sti", + "uk1w", + "u1la", + "ul3ac", + "ulam4", + "ula4p", + "ul4d3a", + "uld5erk", + "ul5dop", + "ul4d3u", + "u1le", + "ule5sp", + "ul3fl", + "ul5fo", + "ul3fr", + "ul3in.", + "u5ling", + "ul3inn", + "ul3k2a", + "ul5ke", + "ul2k3l", + "u1lo", + "ul3o2p", + "u3los", + "ul2pa", + "ulp3ac", + "ul4pi", + "ul2p3l", + "ul2po", + "ul4p3r", + "ul3sa", + "ul3so", + "ul2s3p", + "uls5te.", + "uls5tel", + "u3lu", + "um3af", + "um3ar", + "3umda", + "2ume", + "umee4", + "umes4", + "ume3st", + "um3om", + "um3op", + "um3so", + "um3st", + "u2m3ui", + "un3ac", + "un2c", + "unch3r", + "un4dra", + "und4s", + "unds5ta", + "und5ste", + "une4t", + "un3g", + "1univ", + "un4k3r", + "un4o", + "uno3g", + "un5o2p", + "unst3a", + "un4ste.", + "unst3o", + "un4st5r", + "unst5ui", + "un4tag", + "unt5een", + "un2tj", + "un4t5o4", + "unt3s4m", + "un4t3u", + "u3ol", + "u3on", + "u3oo", + "u1or", + "uo3ru", + "u3os", + "uota3", + "4up", + "u1pa", + "u1pe", + "upe3k", + "upe4ro", + "uper5st", + "u3ph", + "u3pi", + "u1pl", + "u4p3lei", + "u1po", + "u3pol", + "up3om", + "up3op", + "u1pr", + "up4tr", + "u1ra", + "ur3aan", + "ur1ac", + "ur3ada", + "ur3adv", + "u2r3a4r", + "uras3", + "u4r3a2z", + "urd4o", + "u1r2e", + "ur3ech", + "ur3een", + "uree5s", + "ure5lu", + "urelu5r", + "u4rem", + "ur3emb", + "ure4n", + "u3res", + "ur3ess", + "ure3st", + "ur3eta", + "4urf", + "ur2fa", + "ur3gi", + "u1ri", + "uri4gl", + "ur3ijz", + "ur3ind", + "ur3int", + "4urk", + "urken5s", + "ur4kie", + "ur3k4l", + "urk4s5t", + "u1ro", + "ur5opb", + "ur3or", + "uro5s", + "ur5pr", + "ur4serv", + "ur4s3ev", + "ur3s4fe", + "ur2sl", + "urs5laa", + "urs5li", + "ur4s5m", + "ur2sn", + "ur4sp", + "urs5pa", + "ur5spel", + "ur5spor", + "urs5take", + "urs5th", + "ur4sti", + "urs5tik", + "ur3ta", + "ur4tro", + "ur5troe", + "u3ru", + "ur3ui", + "4urv", + "u1r4y", + "4usaa", + "us3ad", + "us3a2m", + "us1ap", + "u4sc", + "u5s2cr", + "use5tj", + "u5sie", + "u4sj", + "u4s5l", + "u4sm", + "u2s5n", + "uso2", + "us3oï", + "us3os", + "u2s3p", + "us5pi", + "us5pu", + "us4ta", + "us5tag", + "ust3al", + "u2s3te", + "us4t3ei", + "u4sti", + "ust3oo", + "us5tra.", + "us5tre.", + "us5tro", + "us5tru", + "ustu4", + "ust3ur", + "ust3uu", + "u1ta", + "ut3aan", + "utaar5", + "ut1ac", + "ut3af", + "u3tan", + "uta3s4", + "ut5c", + "u4t3ees", + "u4tek", + "ut3eks", + "ut3em", + "ut5emm", + "uter5an", + "ut3ex", + "ut2h", + "ut3ho", + "u2tj", + "u1to", + "uto5f", + "ut3oog", + "uto3pe", + "utop4l", + "uto5po", + "utop4r", + "uto5s", + "ut3saa", + "ut3s2c", + "uts5eng", + "uts2m", + "ut1sn", + "ut3sp", + "ut4spa", + "ut4spo", + "ut2st", + "uts5tak", + "ut4ste.", + "ut5sten", + "ut3str", + "ut5su", + "utt4", + "u1tu", + "ut5w", + "u4u4", + "uur3a4", + "uur3e4", + "uur5i", + "uur3k", + "uur1o2", + "uur5ste", + "uur5sti", + "4uut", + "uut3a", + "uut3r", + "uvel4s", + "uve5na", + "uw1a", + "u3wag", + "uw3ar", + "uw5art", + "u1we", + "uw3ec", + "uwe5d", + "uw3een", + "u2w3ei", + "uwe4nen", + "uwes4", + "u1wi", + "u2w3ij", + "uw5ijz", + "u4wind", + "u3wing", + "u4wins", + "uw3inz", + "uw1o", + "u3woe", + "uwo4ge", + "uw1r", + "uw3u", + "uxa3", + "u3ya", + "4uz", + "uze3t4", + "uzie2", + "ût3s4", + "1ü", + "ü4b", + "ü1n", + "ü3ri", + "üs3l", + "1v2", + "2v.", + "vaar4ta", + "vaart5r", + "va3de", + "va3g4", + "va2ki", + "va4kl", + "va2ko", + "va2l3a", + "val5m", + "va3lo", + "va4loe", + "val5si", + "val4s5p", + "vals5tek", + "valu5", + "va2n", + "van3ac", + "vand4", + "vang3a", + "van4gr", + "va3no", + "va4noc", + "va1p", + "va3re", + "va5se", + "va3s4o", + "vast3r", + "va3su", + "va3te", + "va2t3h", + "vat5j", + "va3z", + "v4b", + "4v3c", + "v4e", + "3ve.", + "5veb", + "vee4l", + "veel5e", + "vee3p4", + "vees4", + "ve3g4h", + "vei3s4", + "vei5tj", + "3vek", + "5vel", + "ve4l3a4g", + "vel4d3o", + "ve3le", + "vel3k", + "5vem", + "vem4a", + "ve4na", + "ve5nare", + "5vend", + "ven5k", + "ve2n3o", + "2venr", + "ven4s3e", + "ven4sl", + "vens5lan", + "vens5lo", + "ven4sp", + "vens5taak", + "vens5take", + "vens5tek", + "ven4s3u4", + "ve2r", + "ver1a", + "ver5aas", + "ve4rad", + "vera4g", + "ve4rand", + "ver5do", + "ve3rec", + "ver3ed", + "ve3reg", + "ve3rei", + "ver5eis", + "ve5ren.", + "ve5rend", + "ver3e4t", + "ver5ijd", + "ver5ijl", + "ver5ijs", + "ve5ring", + "ver5k4", + "ver3o", + "ve3rom", + "vero5v", + "ver5p", + "ver5spe", + "ver5sta", + "ver5sto", + "ver5tw", + "ver1u", + "ve3ry", + "ve2s3", + "ves5ti", + "ve2tj", + "ve2to4", + "vet3og", + "vet3oo", + "ve3tor", + "ve2t3r", + "vet4roe", + "vet5ste", + "5ve5z", + "3vi", + "4vicepa", + "vid5st", + "vie4r3a", + "vie4s3", + "vies5n", + "vie4tj", + "vi3eu", + "vijf5", + "vik4s", + "vil4t3j", + "ving4", + "vings3", + "vi3o", + "vi5om", + "vi4s3an", + "vi1so", + "vis5ot", + "vis5p", + "vi4st", + "vis5tr", + "vi1tr", + "v3j", + "vje4", + "vjet1", + "3vl", + "v3lar", + "vlei3s4", + "vlie4s5", + "vlot5s", + "v3lov", + "5vo.", + "3voe", + "voe4t3a", + "voe4t3r", + "voet5sp", + "3vog", + "voge4", + "3voi", + "vo2le", + "vol4g3a", + "vol4gra", + "vo2li", + "vol3ij", + "vol5p", + "von4det", + "vond5u", + "3voo", + "voo5d", + "vooi5t", + "voorn4", + "voor5na", + "vo3ra", + "vorm3a", + "vors5te.", + "vor5sten", + "vos3", + "3vot", + "vot3j", + "3vou", + "vous5", + "3v4r2", + "vrei5", + "vrie4s", + "vrij5k4", + "vrijs4", + "vrij5ste", + "v3t", + "vues4", + "vu2l", + "vul5p", + "vuur5s", + "vy3", + "2w.", + "waad3", + "w2aar", + "waar5e", + "waar5ste", + "wa4b3", + "wa2ba", + "wa5bl", + "w2ad", + "wa3dr", + "w4ag", + "wa2la", + "wa3lan", + "4wam", + "wan4d5r", + "wan4gr", + "wang5sl", + "wa2n1o", + "wan3s4", + "3wap", + "w4ar", + "w5arc", + "5ward", + "war4st", + "wars5te", + "wart3j", + "war4to", + "wa2si", + "wa4s5l", + "wa4s5p", + "was5tr", + "1wate", + "wat5j", + "wa3tr", + "3way", + "2wb", + "w1c", + "2w1d", + "w4doo", + "wd3oom", + "we2a", + "2we2c", + "3wed", + "wede4", + "we2d3i", + "we4d3r", + "wee4ki", + "wee4k3r", + "wee3lo", + "wee3s4t", + "wee5ste", + "3weg", + "we4g1a", + "we4gerv", + "weg3l", + "we2g3o", + "we4g5r", + "wei3s", + "wei5tj", + "we4k3r", + "we4le2", + "4welem", + "we3li", + "we2lo", + "wel3s", + "we2m", + "wem3a", + "we3me", + "we2n", + "wena4", + "wen3ad", + "we3ne4", + "we4nem", + "we5nen.", + "wen5enk", + "we3ni", + "wen4k3a", + "wen3o", + "wen5to", + "wer2f", + "4werg", + "wer4ka", + "wer4k5l", + "wer4kn", + "wer4k3o", + "wer4k3r", + "werk5ru", + "wer4k3u4", + "wer4k3w", + "wer4p3a", + "wer4p3l", + "wer4pr", + "wer4s", + "wer5ste", + "we2s3", + "we3spo", + "wes4t5o", + "3wet.", + "we2th", + "we2t3j", + "wet4st", + "we2t3u", + "2wex", + "wezen4s5", + "2w1f", + "w1g", + "w1h", + "wie4la", + "wie4t", + "w4ij", + "3wijd", + "wij4ka", + "wij4s", + "wijs3l", + "wijs3p", + "wijs5ta", + "wi4k", + "3wil", + "wind3a", + "win4d3r", + "w4ing", + "2winr", + "win2s", + "winst5aa", + "winst5r", + "wi4t3h", + "wit3j", + "wi2t3o4", + "wit3r", + "w1j", + "2w1k", + "2w1l", + "4w1m", + "2wn", + "wn3ac", + "w3ne", + "w3ni", + "w3no", + "w3ob", + "w2oe", + "woes3", + "woest5a", + "wo4l", + "wol3a", + "wolf4s5", + "woon5sf", + "woor4d5r", + "wor4g3e", + "w1p", + "wren4st", + "wrens5te.", + "2ws", + "ws3a2", + "w3sc", + "w1sl", + "w2s3le", + "w3som", + "w3sp", + "ws2pl", + "w4spr", + "w5spra", + "w1s4t", + "w4stij", + "2wt", + "wtes3", + "wtje5sp", + "w1to", + "w1tr", + "wu2", + "wva2", + "w1w", + "xaf4", + "xa3g", + "xamen5t", + "xan3", + "xan5t", + "x1c", + "x4e", + "xen4d", + "xe3ro", + "x1f", + "x1h", + "xie4t", + "xi3g", + "xi5o", + "xi3sta", + "xi3sto", + "xi4t3i", + "x3l", + "x1m", + "xo3no", + "x4op", + "xo3s4", + "x1p", + "xpre2", + "xpres5", + "x3r", + "x3so", + "x3sp", + "x1t", + "x2tak", + "xtie2", + "x3w", + "xy3", + "y1a", + "ya3s4", + "ya4s5p", + "y3at", + "yba2l3", + "yber4t3", + "y1c", + "ycho3", + "y3co", + "y1d4", + "ydi3a", + "y5dr", + "ydro3", + "y1e", + "yes3", + "y3és", + "y3è", + "y1f", + "y1g", + "ygu2", + "y1h", + "y1i", + "y4in", + "y5is", + "yksge4", + "y3la", + "yl3al", + "y3le", + "y4l3et", + "y3lo", + "ylo3l", + "ym2f5l", + "ym5pa", + "y3na", + "yn3er", + "y3no", + "yn1t", + "y1o", + "y3on", + "y3os", + "yo3t", + "y1p", + "y3p4h", + "ypo3", + "ypot4", + "yp3s", + "yp5si", + "y1r", + "y3r4e", + "y5ri", + "ys3", + "y1s4a", + "y3s4c", + "y5s4e", + "yse5t", + "y3s4f", + "y3s4h", + "ys4i", + "y3s4o", + "y3s4p", + "ys5pl", + "ys4ta", + "ys5tr", + "y3sy", + "y1t", + "yt3hu", + "yto3", + "y2tof", + "ytop4", + "yu5a", + "y3ui", + "y3u2r", + "yvari5", + "y1w4", + "1z", + "4z.", + "zaar5t", + "za3f2", + "zags4t", + "za2k3a", + "zak3r", + "zan2d", + "zand5a4", + "zan3di", + "zan4dr", + "zang3s", + "za3po", + "za3s4", + "4zb", + "4zc", + "4zd", + "z4e", + "zee3k", + "zeel5d", + "zee3r4o", + "zeero5v", + "zeer5s", + "zee3s4", + "ze5ge", + "zeg4sl", + "zei3sp", + "ze5k", + "zel5dr", + "ze3lem", + "zel2f1", + "zel4so", + "zen4d3a", + "ze4nin", + "zen5k", + "zen3o4", + "zen4og", + "ze3non", + "ze4r3a", + "ze3ro", + "zer2s", + "zer4s5e", + "ze4s3", + "ze5sch", + "zes5e", + "zes5l", + "ze5ste", + "ze2t3a", + "ze2t3h", + "ze4ti", + "ze2t3j", + "ze2t3r", + "zeve2", + "zeven3", + "4zf", + "4zg", + "2z3h", + "z2i", + "ziek3l", + "zie4k3o", + "ziek3w", + "ziel4s", + "zie5sl", + "3zif", + "zi2g5a", + "zij5kl", + "zij3po", + "zij5s4", + "zik2w", + "zi4n3a4", + "zings3", + "zin4k3l", + "zin4s", + "zins3t", + "zins5ta", + "zin5str", + "zi3o5", + "zipi3", + "zi4t", + "zit3e", + "zit3j", + "zit3u4", + "4z3k", + "4z3l", + "4zm", + "zodi5", + "zoet3j", + "zoet5ste", + "zo3f2", + "zoi4", + "zo5ie", + "zo3la", + "zome4", + "zo2na", + "zon3sf", + "zon5ta", + "zooi5tj", + "zo1p", + "zor4g3a", + "zor4gl", + "zor4gr", + "zo2t", + "zot3h", + "zo3tr", + "zo3v", + "4z3p", + "4z3r", + "2zs", + "4z5t", + "zui4d3i", + "zui4dr", + "zus3", + "2zv", + "z4w", + "zwets5te.", + "5zy", + "2z3z", + "zz3in", + "zz3or", + "z4z5w" + ], + "exceptions":[ + "aan-dachts-trek-ker", + "aan-dachts-trek-kers", + "acht-en-der", + "acht-en-ders", + "acht-en-der-tig", + "acht-en-der-tig-ste", + "be-heers-ta-ken", + "be-scherm-en-gel", + "be-scherm-en-ge-len", + "be-stuurs-la-gen", + "be-stuurs-ta-ken", + "bij-stands-trek-ker", + "bij-stands-trek-kers", + "bui-ten-an-ten-ne", + "bui-ten-an-ten-nes", + "don-der-aal", + "han-dels-taal", + "her-e-nen", + "ket-ting-ste-ken", + "lands-taal", + "meest-al", + "mi-nis-ters-por-te-feuil-le", + "mi-nis-ters-por-te-feuil-les", + "ont-hoof-din-gen", + "pa-ling-ste-ken", + "rechts-taal", + "schil-ders-ta-lent", + "sou-ve-niertje", + "sou-ve-niertjes", + "spie-gel-ei", + "ver-en-gels-te", + "ver-hol-lands-te", + "ver-in-lands-te", + "ver-kinds-te", + "ver-ne-der-lands-te", + "ver-rechts-te", + "ver-steeds-te", + "wals-te", + "wa-ter-staats-in-ge-ni-eur", + "wa-ter-staats-in-ge-ni-eurs" + ] +} \ No newline at end of file diff --git a/borb/pdf/canvas/layout/image/__init__.py b/borb/pdf/canvas/layout/image/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/image/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/layout/image/barcode.py b/borb/pdf/canvas/layout/image/barcode.py similarity index 97% rename from ptext/pdf/canvas/layout/image/barcode.py rename to borb/pdf/canvas/layout/image/barcode.py index e92dca67d..bcf135b49 100644 --- a/ptext/pdf/canvas/layout/image/barcode.py +++ b/borb/pdf/canvas/layout/image/barcode.py @@ -13,8 +13,8 @@ from PIL import Image as PILImage # type: ignore [import] from barcode.writer import ImageWriter as BarcodeImageWriter # type: ignore [import] -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.layout.image.image import Image class BarcodeType(Enum): diff --git a/ptext/pdf/canvas/layout/image/chart.py b/borb/pdf/canvas/layout/image/chart.py similarity index 93% rename from ptext/pdf/canvas/layout/image/chart.py rename to borb/pdf/canvas/layout/image/chart.py index 89f738324..0dcabb6da 100644 --- a/ptext/pdf/canvas/layout/image/chart.py +++ b/borb/pdf/canvas/layout/image/chart.py @@ -11,7 +11,7 @@ import matplotlib.pyplot as MatPlotLibPlot # type: ignore [import] from PIL import Image as PILImage # type: ignore [import] -from ptext.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.image.image import Image class Chart(Image): diff --git a/ptext/pdf/canvas/layout/image/image.py b/borb/pdf/canvas/layout/image/image.py similarity index 94% rename from ptext/pdf/canvas/layout/image/image.py rename to borb/pdf/canvas/layout/image/image.py index c04658fc4..2e83b6902 100644 --- a/ptext/pdf/canvas/layout/image/image.py +++ b/borb/pdf/canvas/layout/image/image.py @@ -12,10 +12,10 @@ import requests from PIL import Image as PILImage # type: ignore [import] -from ptext.io.read.types import Dictionary, Name, add_base_methods -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment, LayoutElement -from ptext.pdf.page.page import Page +from borb.io.read.types import Dictionary, Name, add_base_methods +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment, LayoutElement +from borb.pdf.page.page import Page class Image(LayoutElement): diff --git a/ptext/pdf/canvas/layout/image/shape.py b/borb/pdf/canvas/layout/image/shape.py similarity index 97% rename from ptext/pdf/canvas/layout/image/shape.py rename to borb/pdf/canvas/layout/image/shape.py index bc28dcd51..bb8d79c11 100644 --- a/ptext/pdf/canvas/layout/image/shape.py +++ b/borb/pdf/canvas/layout/image/shape.py @@ -9,10 +9,10 @@ from decimal import Decimal from typing import Tuple -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment, LayoutElement -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment, LayoutElement +from borb.pdf.page.page import Page class Shape(LayoutElement): diff --git a/ptext/pdf/canvas/layout/layout_element.py b/borb/pdf/canvas/layout/layout_element.py similarity index 98% rename from ptext/pdf/canvas/layout/layout_element.py rename to borb/pdf/canvas/layout/layout_element.py index 01a713f0a..b960a80bc 100644 --- a/ptext/pdf/canvas/layout/layout_element.py +++ b/borb/pdf/canvas/layout/layout_element.py @@ -10,10 +10,10 @@ from decimal import Decimal from enum import Enum -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Name, Stream -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Name, Stream +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle class Alignment(Enum): @@ -285,9 +285,9 @@ def calculate_layout_box_and_do_layout( """ # calculate initial layout box + self._initialize_page_content_stream(page) layout_box = self._calculate_layout_box(page, bounding_box) - self._initialize_page_content_stream(page) content_stream = page["Contents"] len_decoded_bytes_before = len(content_stream[Name("DecodedBytes")]) diff --git a/borb/pdf/canvas/layout/list/__init__.py b/borb/pdf/canvas/layout/list/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/list/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/layout/list/list.py b/borb/pdf/canvas/layout/list/list.py similarity index 95% rename from ptext/pdf/canvas/layout/list/list.py rename to borb/pdf/canvas/layout/list/list.py index e3f07aa5e..3a0130a2e 100644 --- a/ptext/pdf/canvas/layout/list/list.py +++ b/borb/pdf/canvas/layout/list/list.py @@ -7,11 +7,11 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.page.page import Page class List(LayoutElement): diff --git a/ptext/pdf/canvas/layout/list/ordered_list.py b/borb/pdf/canvas/layout/list/ordered_list.py similarity index 85% rename from ptext/pdf/canvas/layout/list/ordered_list.py rename to borb/pdf/canvas/layout/list/ordered_list.py index acb61d30b..570387ada 100644 --- a/ptext/pdf/canvas/layout/list/ordered_list.py +++ b/borb/pdf/canvas/layout/list/ordered_list.py @@ -7,12 +7,12 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.list.list import List -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.list.list import List +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.page.page import Page class OrderedList(List): diff --git a/ptext/pdf/canvas/layout/list/roman_list.py b/borb/pdf/canvas/layout/list/roman_list.py similarity index 78% rename from ptext/pdf/canvas/layout/list/roman_list.py rename to borb/pdf/canvas/layout/list/roman_list.py index 4f6a7da05..87061d6d3 100644 --- a/ptext/pdf/canvas/layout/list/roman_list.py +++ b/borb/pdf/canvas/layout/list/roman_list.py @@ -7,12 +7,12 @@ """ from decimal import Decimal -from ptext.pdf.canvas.color.color import X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.list.ordered_list import OrderedList -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.list.ordered_list import OrderedList +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.page.page import Page class RomanNumeralOrderedList(OrderedList): diff --git a/ptext/pdf/canvas/layout/list/unordered_list.py b/borb/pdf/canvas/layout/list/unordered_list.py similarity index 87% rename from ptext/pdf/canvas/layout/list/unordered_list.py rename to borb/pdf/canvas/layout/list/unordered_list.py index d42791e11..27d531e8f 100644 --- a/ptext/pdf/canvas/layout/list/unordered_list.py +++ b/borb/pdf/canvas/layout/list/unordered_list.py @@ -7,12 +7,12 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.list.list import List -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.list.list import List +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.page.page import Page class UnorderedList(List): diff --git a/borb/pdf/canvas/layout/page_layout/__init__.py b/borb/pdf/canvas/layout/page_layout/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/page_layout/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/layout/page_layout/browser_layout.py b/borb/pdf/canvas/layout/page_layout/browser_layout.py similarity index 90% rename from ptext/pdf/canvas/layout/page_layout/browser_layout.py rename to borb/pdf/canvas/layout/page_layout/browser_layout.py index 02b239e29..3f0eb191a 100644 --- a/ptext/pdf/canvas/layout/page_layout/browser_layout.py +++ b/borb/pdf/canvas/layout/page_layout/browser_layout.py @@ -9,21 +9,21 @@ from decimal import Decimal from enum import Enum -from ptext.io.read.types import Name -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.horizontal_rule import HorizontalRule -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.list.ordered_list import OrderedList -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.base_table import BaseTable -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page +from borb.io.read.types import Name +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.horizontal_rule import HorizontalRule +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.list.ordered_list import OrderedList +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.base_table import BaseTable +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page class DisplayValue(Enum): @@ -210,9 +210,15 @@ def _start_new_page(self): page: Page = Page(self._page_width, self._page_height) pdf_document.append_page(page) + # layout and reset rows + self._page["Contents"][Name("DecodedBytes")] = self._page_content_stream_restore + for e in self._rows[-1]._layout_elements: + e.layout(self._page, e.get_bounding_box()) # type: ignore [arg-type] + self._rows.clear() + # reset layout self._page = page - self._layout_elements = [] + self._page_content_stream_restore = b"" def _check_layout_element_dimensions(self, layout_element: LayoutElement) -> None: # content that is too large for the page should not be attempted to be laid out again @@ -251,6 +257,12 @@ def _add_block_element(self, layout_element: LayoutElement) -> None: h: Decimal = prev_row_bottom - max(layout_element.get_margin_top(), prev_row_margin_bottom) - y # fmt: on + # if height is negative --> new page + if h < Decimal(0): + self._start_new_page() + self.add(layout_element, DisplayValue.BLOCK) + return + # catch potential layout problems as early as possible suggested_layout_box: Rectangle = layout_element._calculate_layout_box( self._page, Rectangle(x, y, w, h) @@ -270,7 +282,6 @@ def _add_block_element(self, layout_element: LayoutElement) -> None: def _add_inline_element(self, layout_element: LayoutElement) -> None: assert self._page_width is not None - assert self._page_height is not None # set margins layout_element._margin_top = Decimal(0) diff --git a/ptext/pdf/canvas/layout/page_layout/multi_column_layout.py b/borb/pdf/canvas/layout/page_layout/multi_column_layout.py similarity index 93% rename from ptext/pdf/canvas/layout/page_layout/multi_column_layout.py rename to borb/pdf/canvas/layout/page_layout/multi_column_layout.py index 18f79bbde..b813ee23f 100644 --- a/ptext/pdf/canvas/layout/page_layout/multi_column_layout.py +++ b/borb/pdf/canvas/layout/page_layout/multi_column_layout.py @@ -10,13 +10,13 @@ import zlib from decimal import Decimal -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Name -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Name +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.document import Document +from borb.pdf.page.page import Page class MultiColumnLayout(PageLayout): @@ -166,8 +166,8 @@ def add(self, layout_element: LayoutElement) -> "PageLayout": return self.add(layout_element) # calculate previous_y - self._previous_element_y = layout_rect.y - self._previous_element_margin_bottom = layout_element._margin_bottom + self._previous_element_y = layout_rect.get_y() + self._previous_element_margin_bottom = layout_element.get_margin_bottom() # return return self diff --git a/ptext/pdf/canvas/layout/page_layout/page_layout.py b/borb/pdf/canvas/layout/page_layout/page_layout.py similarity index 91% rename from ptext/pdf/canvas/layout/page_layout/page_layout.py rename to borb/pdf/canvas/layout/page_layout/page_layout.py index ed43f7426..eaaf2c980 100644 --- a/ptext/pdf/canvas/layout/page_layout/page_layout.py +++ b/borb/pdf/canvas/layout/page_layout/page_layout.py @@ -7,8 +7,8 @@ having to specify coordinates. """ -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.page.page import Page +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.page.page import Page class PageLayout: diff --git a/borb/pdf/canvas/layout/table/__init__.py b/borb/pdf/canvas/layout/table/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/table/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/layout/table/base_table.py b/borb/pdf/canvas/layout/table/base_table.py similarity index 98% rename from ptext/pdf/canvas/layout/table/base_table.py rename to borb/pdf/canvas/layout/table/base_table.py index 91696d60f..816ac87f4 100644 --- a/ptext/pdf/canvas/layout/table/base_table.py +++ b/borb/pdf/canvas/layout/table/base_table.py @@ -9,10 +9,10 @@ from decimal import Decimal from math import ceil -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import LayoutElement, Alignment -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import LayoutElement, Alignment +from borb.pdf.page.page import Page class TableCell(LayoutElement): diff --git a/ptext/pdf/canvas/layout/table/fixed_column_width_table.py b/borb/pdf/canvas/layout/table/fixed_column_width_table.py similarity index 94% rename from ptext/pdf/canvas/layout/table/fixed_column_width_table.py rename to borb/pdf/canvas/layout/table/fixed_column_width_table.py index 397536639..7fd64586f 100644 --- a/ptext/pdf/canvas/layout/table/fixed_column_width_table.py +++ b/borb/pdf/canvas/layout/table/fixed_column_width_table.py @@ -9,13 +9,13 @@ from decimal import Decimal from math import floor -from ptext.io.read.types import Name -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.table.base_table import BaseTable -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.page.page import Page +from borb.io.read.types import Name +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.table.base_table import BaseTable +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.page.page import Page class FixedColumnWidthTable(BaseTable): diff --git a/ptext/pdf/canvas/layout/table/flexible_column_width_table.py b/borb/pdf/canvas/layout/table/flexible_column_width_table.py similarity index 97% rename from ptext/pdf/canvas/layout/table/flexible_column_width_table.py rename to borb/pdf/canvas/layout/table/flexible_column_width_table.py index 016874128..99db4b086 100644 --- a/ptext/pdf/canvas/layout/table/flexible_column_width_table.py +++ b/borb/pdf/canvas/layout/table/flexible_column_width_table.py @@ -11,13 +11,13 @@ from decimal import Decimal from math import ceil, floor -from ptext.io.read.types import Name -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.table.base_table import BaseTable, TableCell -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.page.page import Page +from borb.io.read.types import Name +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.table.base_table import BaseTable, TableCell +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.page.page import Page class FlexibleColumnWidthTable(BaseTable): diff --git a/borb/pdf/canvas/layout/text/__init__.py b/borb/pdf/canvas/layout/text/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/layout/text/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/layout/text/chunk_of_text.py b/borb/pdf/canvas/layout/text/chunk_of_text.py similarity index 93% rename from ptext/pdf/canvas/layout/text/chunk_of_text.py rename to borb/pdf/canvas/layout/text/chunk_of_text.py index 5416778f3..c80544007 100644 --- a/ptext/pdf/canvas/layout/text/chunk_of_text.py +++ b/borb/pdf/canvas/layout/text/chunk_of_text.py @@ -7,14 +7,14 @@ import typing from decimal import Decimal -from ptext.io.read.types import Dictionary, Name -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.font.glyph_line import GlyphLine -from ptext.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment, LayoutElement -from ptext.pdf.page.page import Page +from borb.io.read.types import Dictionary, Name +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.glyph_line import GlyphLine +from borb.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment, LayoutElement +from borb.pdf.page.page import Page class ChunkOfText(LayoutElement): @@ -126,7 +126,7 @@ def _write_text_bytes_in_hex(self) -> str: c, ) hex_rep: str = hex(int(cid))[2:] - if len(hex_rep) == 1: + if len(hex_rep) % 2 == 1: hex_rep = "0" + hex_rep sOut += "".join(["<", hex_rep, ">"]) return "".join(["[", sOut, "] TJ"]) diff --git a/ptext/pdf/canvas/layout/text/chunks_of_text.py b/borb/pdf/canvas/layout/text/chunks_of_text.py similarity index 96% rename from ptext/pdf/canvas/layout/text/chunks_of_text.py rename to borb/pdf/canvas/layout/text/chunks_of_text.py index a0f94f13f..10b94c998 100644 --- a/ptext/pdf/canvas/layout/text/chunks_of_text.py +++ b/borb/pdf/canvas/layout/text/chunks_of_text.py @@ -9,12 +9,12 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.page.page import Page class LineBreakChunk(ChunkOfText): diff --git a/ptext/pdf/canvas/layout/text/codeblock.py b/borb/pdf/canvas/layout/text/codeblock.py similarity index 94% rename from ptext/pdf/canvas/layout/text/codeblock.py rename to borb/pdf/canvas/layout/text/codeblock.py index a222a6788..170513c78 100644 --- a/ptext/pdf/canvas/layout/text/codeblock.py +++ b/borb/pdf/canvas/layout/text/codeblock.py @@ -16,10 +16,10 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.color.color import Color, RGBColor, X11Color -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.layout.layout_element import Alignment, LayoutElement -from ptext.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.canvas.color.color import Color, RGBColor, X11Color +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.layout.layout_element import Alignment, LayoutElement +from borb.pdf.canvas.layout.text.paragraph import Paragraph try: import black diff --git a/ptext/pdf/canvas/layout/text/heading.py b/borb/pdf/canvas/layout/text/heading.py similarity index 91% rename from ptext/pdf/canvas/layout/text/heading.py rename to borb/pdf/canvas/layout/text/heading.py index 07153615a..33bb787be 100644 --- a/ptext/pdf/canvas/layout/text/heading.py +++ b/borb/pdf/canvas/layout/text/heading.py @@ -8,13 +8,13 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import DestinationType, Page +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import DestinationType, Page class Heading(Paragraph): diff --git a/ptext/pdf/canvas/layout/text/line_of_text.py b/borb/pdf/canvas/layout/text/line_of_text.py similarity index 93% rename from ptext/pdf/canvas/layout/text/line_of_text.py rename to borb/pdf/canvas/layout/text/line_of_text.py index 9c610a291..8aa9273a0 100644 --- a/ptext/pdf/canvas/layout/text/line_of_text.py +++ b/borb/pdf/canvas/layout/text/line_of_text.py @@ -19,10 +19,10 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText class LineOfText(ChunkOfText): diff --git a/ptext/pdf/canvas/layout/text/paragraph.py b/borb/pdf/canvas/layout/text/paragraph.py similarity index 71% rename from ptext/pdf/canvas/layout/text/paragraph.py rename to borb/pdf/canvas/layout/text/paragraph.py index c64485588..06de4b63a 100644 --- a/ptext/pdf/canvas/layout/text/paragraph.py +++ b/borb/pdf/canvas/layout/text/paragraph.py @@ -9,14 +9,15 @@ from decimal import Decimal from typing import Union -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.font.glyph_line import GlyphLine -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment, LayoutElement -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.line_of_text import LineOfText -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.glyph_line import GlyphLine +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.hyphenation.hyphenation import Hyphenation +from borb.pdf.canvas.layout.layout_element import Alignment, LayoutElement +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.line_of_text import LineOfText +from borb.pdf.page.page import Page class Paragraph(LineOfText): @@ -54,6 +55,7 @@ def __init__( margin_left: typing.Optional[Decimal] = None, line_height: Decimal = Decimal(1), background_color: typing.Optional[Color] = None, + hyphenation: typing.Optional[Hyphenation] = None, parent: typing.Optional["LayoutElement"] = None, ): super().__init__( @@ -80,15 +82,16 @@ def __init__( background_color=background_color, parent=parent, ) - self.respect_newlines_in_text = respect_newlines_in_text - self.respect_spaces_in_text = respect_spaces_in_text + self._respect_newlines_in_text = respect_newlines_in_text + self._respect_spaces_in_text = respect_spaces_in_text assert text_alignment in [ Alignment.LEFT, Alignment.CENTERED, Alignment.RIGHT, Alignment.JUSTIFIED, ] - self.text_alignment = text_alignment + self._hyphenation = hyphenation + self._text_alignment = text_alignment assert line_height >= Decimal(1) self._line_height = line_height @@ -101,9 +104,9 @@ def _split_text(self, bounding_box: Rectangle) -> typing.List[str]: tokens_to_split_on: typing.List[str] = [" ", "\t", "\n"] tokens_to_preserve: typing.List[str] = [] - if self.respect_newlines_in_text: + if self._respect_newlines_in_text: tokens_to_preserve.append("\n") - if self.respect_spaces_in_text: + if self._respect_spaces_in_text: tokens_to_preserve.append(" ") tokens_to_preserve.append("\t") @@ -129,41 +132,86 @@ def _split_text(self, bounding_box: Rectangle) -> typing.List[str]: for i, w in enumerate(words): # split on \n - if w == "\n" and self.respect_newlines_in_text: + if w == "\n" and self._respect_newlines_in_text: lines_of_text.append("") continue # build line of text to check if it fits the bounding box potential_text = lines_of_text[-1] if len(lines_of_text) > 0 else "" - if len(potential_text) != 0 and not self.respect_spaces_in_text: + if len(potential_text) != 0 and not self._respect_spaces_in_text: potential_text += " " potential_text += w - # check the width of this piece of text - encoded_bytes: bytes = bytes( - [ - self._font.unicode_to_character_identifier(c) or 0 - for c in potential_text - ] - ) - potential_width = GlyphLine( - encoded_bytes, self._font, self._font_size - ).get_width_in_text_space() + # check the remaining space in the box + # checking with 0 is not a great idea due to rounding errors + # so, as a pre-emptive measure, we round the number to 2 digits + # fmt: off + encoded_bytes: bytes = [self._font.unicode_to_character_identifier(c) or 0 for c in potential_text] + potential_width = GlyphLine(encoded_bytes, self._font, self._font_size).get_width_in_text_space() + remaining_space_in_box: Decimal = round(bounding_box.width - potential_width, 2) + # fmt: on - # if this text is larger than the bounding box, split the text - remaining_space_in_box: Decimal = bounding_box.width - potential_width - if remaining_space_in_box >= Decimal( - 0 - ): # checking with 0 is not a great idea due to rounding errors + # IF there is space left over, we add the word to the lines of text being built + if remaining_space_in_box >= Decimal(0): if len(lines_of_text) == 0: lines_of_text.append(w) else: - if len(lines_of_text[-1]) > 0 and not self.respect_spaces_in_text: + if len(lines_of_text[-1]) > 0 and not self._respect_spaces_in_text: lines_of_text[-1] += " " lines_of_text[-1] += w + + # (ELSE) there is no more room in the box for this word, + # BUT perhaps we can hyphenate the word else: - lines_of_text.append(w) + # if no hyphenation class is provided, we can't hyphenate + if self._hyphenation is None: + lines_of_text.append(w) + continue + + # if we have to respect the spacing in the text, we don't hyphenate + if self._respect_spaces_in_text: + lines_of_text.append(w) + continue + + # calculate potential hyphenation breaks + # if the word can not be broken into parts, we can't hyphenate + hyphenated_word_parts = self._hyphenation.hyphenate(w).split(chr(173)) + if len(hyphenated_word_parts) == 1: + lines_of_text.append(w) + continue + + potential_text = lines_of_text[-1] if len(lines_of_text) > 0 else "" + if len(potential_text) != 0 and not self._respect_spaces_in_text: + potential_text += " " + + # check where the text can be split, in order to fit in the bounding box + hyphenation_split_index: int = 0 + for i in range(1, len(hyphenated_word_parts)): + # fmt: off + potential_text_after_hyphenation = potential_text + "".join([x for x in hyphenated_word_parts[0:i]]) + "-" + encoded_bytes: bytes = bytes([self._font.unicode_to_character_identifier(c) or 0 for c in potential_text_after_hyphenation]) + potential_width = GlyphLine(encoded_bytes, self._font, self._font_size).get_width_in_text_space() + remaining_space_in_box: Decimal = round(bounding_box.width - potential_width, 2) + # fmt: on + if remaining_space_in_box > Decimal(0): + hyphenation_split_index = i + else: + break + + # no sensible split was found + if hyphenation_split_index == 0: + lines_of_text.append(w) + continue + + # break the text according to the hyphenation + # fmt: off + if len(lines_of_text[-1]) > 0 and not self._respect_spaces_in_text: + lines_of_text[-1] += " " + lines_of_text[-1] += "".join([x for x in hyphenated_word_parts[0:hyphenation_split_index]]) + "-" + lines_of_text.append("".join([x for x in hyphenated_word_parts[hyphenation_split_index:]])) + # fmt: on + # last-minute cleanup while len(lines_of_text) > 0 and lines_of_text[-1] == "": lines_of_text.pop(len(lines_of_text) - 1) @@ -181,7 +229,7 @@ def _do_layout_without_padding(self, page: Page, bounding_box: Rectangle): return Rectangle(bounding_box.x, bounding_box.y, Decimal(0), Decimal(0)) # separate method for the harder case of Alignment.JUSTIFIED - if self.text_alignment == Alignment.JUSTIFIED: + if self._text_alignment == Alignment.JUSTIFIED: return self._do_layout_without_padding_text_alignment_justified( lines_of_text, page, bounding_box ) @@ -201,7 +249,7 @@ def _do_layout_without_padding(self, page: Page, bounding_box: Rectangle): font=self._font, font_size=self._font_size, font_color=self._font_color, - horizontal_alignment=self.text_alignment, + horizontal_alignment=self._text_alignment, parent=self, ).layout( page, diff --git a/borb/pdf/canvas/line_art/__init__.py b/borb/pdf/canvas/line_art/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/line_art/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/line_art/blob_factory.py b/borb/pdf/canvas/line_art/blob_factory.py similarity index 100% rename from ptext/pdf/canvas/line_art/blob_factory.py rename to borb/pdf/canvas/line_art/blob_factory.py diff --git a/ptext/pdf/canvas/line_art/line_art_factory.py b/borb/pdf/canvas/line_art/line_art_factory.py similarity index 94% rename from ptext/pdf/canvas/line_art/line_art_factory.py rename to borb/pdf/canvas/line_art/line_art_factory.py index b390f159a..4ff76d1f4 100644 --- a/ptext/pdf/canvas/line_art/line_art_factory.py +++ b/borb/pdf/canvas/line_art/line_art_factory.py @@ -10,8 +10,8 @@ from decimal import Decimal from typing import Tuple -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.line_art.blob_factory import BlobFactory +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.line_art.blob_factory import BlobFactory class LineArtFactory: @@ -189,7 +189,25 @@ def flowchart_stored_data( This is a general data storage object used in the process flow as opposed to data which could be also stored on a hard drive, magnetic tape, memory card, of any other storage device. """ - return [] + pts_a = [] + pts_b = [] + for i in range(0, 180): + # first curve + x0 = Decimal(math.sin(math.radians(i + 180))) * ( + bounding_box.get_width() / Decimal(10) + ) + (bounding_box.get_width() / Decimal(10)) + y0 = ( + Decimal(math.cos(math.radians(i + 180))) + * (bounding_box.get_height() / Decimal(2)) + + bounding_box.get_y() + + (bounding_box.get_height() / Decimal(2)) + ) + pts_a.append((x0, y0)) + # second curve + x0 += bounding_box.get_width() * Decimal(0.9) + pts_b.append((x0, y0)) + pts_b.reverse() + return pts_a + pts_b + [pts_a[0]] @staticmethod def flowchart_internal_storage( @@ -251,6 +269,10 @@ def flowchart_direct_data( Direct Data object in a process flow represents information stored which can be accessed directly. This object represents a computer's hard drive. """ + """ + This is a general data storage object used in the process flow as opposed to data which could be also stored on a hard drive, + magnetic tape, memory card, of any other storage device. + """ return [] @staticmethod @@ -347,6 +369,36 @@ def flowchart_paper_tape( # return return pts_a + [x for x in reversed(pts_b)] + [pts_a[0]] + @staticmethod + def flowchart_display( + bounding_box: Rectangle, + ) -> typing.List[typing.Tuple[Decimal, Decimal]]: + """ + Indicates a step that displays information. + """ + pts_a = [] + r_major = bounding_box.height / Decimal(2) + r_minor = bounding_box.width / Decimal(10) + mid_x = bounding_box.x + bounding_box.width - r_minor + mid_y = bounding_box.y + bounding_box.height / Decimal(2) + for i in range(0, 180): + # first curve + x = Decimal(math.sin(math.radians(i))) * r_minor + mid_x + y = Decimal(math.cos(math.radians(i))) * r_major + mid_y + pts_a.append((x, y)) + return ( + pts_a + + [ + (bounding_box.x + bounding_box.width / Decimal(10), bounding_box.y), + (bounding_box.x, mid_y), + ( + bounding_box.x + bounding_box.width / Decimal(10), + bounding_box.y + bounding_box.height, + ), + ] + + [pts_a[0]] + ) + @staticmethod def flowchart_preparation( bounding_box: Rectangle, @@ -407,6 +459,7 @@ def flowchart_termination( r_major = bounding_box.height * Decimal(0.5) r_minor = bounding_box.width * Decimal(0.25) for i in range(0, 180): + # first curve x = ( Decimal(math.sin(math.radians(i))) * r_minor + bounding_box.width * Decimal(0.5) @@ -414,6 +467,7 @@ def flowchart_termination( ) y = Decimal(math.cos(math.radians(i))) * r_major + r_major + bounding_box.y pts_a.append((x, y)) + # second curve x = Decimal(math.sin(math.radians(i + 180))) * r_minor + bounding_box.x y = ( Decimal(math.cos(math.radians(i + 180))) * r_major @@ -567,7 +621,25 @@ def flowchart_database( """ Indicates a list of information with a standard structure that allows for searching and sorting. """ - return [] + pts_a = [] + pts_b = [] + r_major = bounding_box.get_width() / Decimal(2) + r_minor = r_major / Decimal(3) + mid_x = bounding_box.x + r_major + mid_y = bounding_box.y + bounding_box.get_height() - r_minor + # first curve + for i in range(90, 90 + 360 + 180): + x = Decimal(math.sin(math.radians(i))) * r_major + mid_x + y = Decimal(math.cos(math.radians(i))) * r_minor + mid_y + pts_a.append((x, y)) + # second curve + mid_y = bounding_box.y + r_minor + for i in range(90, 270): + x = Decimal(math.sin(math.radians(i))) * r_major + mid_x + y = Decimal(math.cos(math.radians(i))) * r_minor + mid_y + pts_b.append((x, y)) + pts_b.reverse() + return pts_a + pts_b + [pts_a[0]] @staticmethod def flowchart_on_page_reference( diff --git a/borb/pdf/canvas/operator/__init__.py b/borb/pdf/canvas/operator/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/canvas_operator.py b/borb/pdf/canvas/operator/canvas_operator.py similarity index 97% rename from ptext/pdf/canvas/operator/canvas_operator.py rename to borb/pdf/canvas/operator/canvas_operator.py index 8cbc9b7ca..2a3ce92dd 100644 --- a/ptext/pdf/canvas/operator/canvas_operator.py +++ b/borb/pdf/canvas/operator/canvas_operator.py @@ -9,7 +9,7 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType +from borb.io.read.types import AnyPDFType class CanvasOperator: diff --git a/borb/pdf/canvas/operator/color/__init__.py b/borb/pdf/canvas/operator/color/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/color/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/color/set_cmyk_non_stroking.py b/borb/pdf/canvas/operator/color/set_cmyk_non_stroking.py similarity index 87% rename from ptext/pdf/canvas/operator/color/set_cmyk_non_stroking.py rename to borb/pdf/canvas/operator/color/set_cmyk_non_stroking.py index b99424bff..01ad7730a 100644 --- a/ptext/pdf/canvas/operator/color/set_cmyk_non_stroking.py +++ b/borb/pdf/canvas/operator/color/set_cmyk_non_stroking.py @@ -7,9 +7,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.color.color import CMYKColor -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.color.color import CMYKColor +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetCMYKNonStroking(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/color/set_cmyk_stroking.py b/borb/pdf/canvas/operator/color/set_cmyk_stroking.py similarity index 91% rename from ptext/pdf/canvas/operator/color/set_cmyk_stroking.py rename to borb/pdf/canvas/operator/color/set_cmyk_stroking.py index abe2dfc51..88fbf4384 100644 --- a/ptext/pdf/canvas/operator/color/set_cmyk_stroking.py +++ b/borb/pdf/canvas/operator/color/set_cmyk_stroking.py @@ -12,9 +12,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.color.color import CMYKColor -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.color.color import CMYKColor +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetCMYKStroking(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/color/set_color_non_stroking.py b/borb/pdf/canvas/operator/color/set_color_non_stroking.py similarity index 94% rename from ptext/pdf/canvas/operator/color/set_color_non_stroking.py rename to borb/pdf/canvas/operator/color/set_color_non_stroking.py index edad7d656..e7fcb279e 100644 --- a/ptext/pdf/canvas/operator/color/set_color_non_stroking.py +++ b/borb/pdf/canvas/operator/color/set_color_non_stroking.py @@ -7,9 +7,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.color.color import CMYKColor, GrayColor, RGBColor, Separation -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.color.color import CMYKColor, GrayColor, RGBColor, Separation +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetColorNonStroking(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/color/set_color_space_non_stroking.py b/borb/pdf/canvas/operator/color/set_color_space_non_stroking.py similarity index 94% rename from ptext/pdf/canvas/operator/color/set_color_space_non_stroking.py rename to borb/pdf/canvas/operator/color/set_color_space_non_stroking.py index 051d35c9b..07cbdb211 100644 --- a/ptext/pdf/canvas/operator/color/set_color_space_non_stroking.py +++ b/borb/pdf/canvas/operator/color/set_color_space_non_stroking.py @@ -7,9 +7,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType, Name -from ptext.pdf.canvas.color.color import CMYKColor, GrayColor, RGBColor, Separation -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, Name +from borb.pdf.canvas.color.color import CMYKColor, GrayColor, RGBColor, Separation +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetColorSpaceNonStroking(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/color/set_color_space_stroking.py b/borb/pdf/canvas/operator/color/set_color_space_stroking.py similarity index 97% rename from ptext/pdf/canvas/operator/color/set_color_space_stroking.py rename to borb/pdf/canvas/operator/color/set_color_space_stroking.py index 28e71adbf..3ed6e64ae 100644 --- a/ptext/pdf/canvas/operator/color/set_color_space_stroking.py +++ b/borb/pdf/canvas/operator/color/set_color_space_stroking.py @@ -37,9 +37,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType, Name -from ptext.pdf.canvas.color.color import CMYKColor, GrayColor, RGBColor, Separation -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, Name +from borb.pdf.canvas.color.color import CMYKColor, GrayColor, RGBColor, Separation +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator logger = logging.getLogger(__name__) diff --git a/ptext/pdf/canvas/operator/color/set_color_stroking.py b/borb/pdf/canvas/operator/color/set_color_stroking.py similarity index 95% rename from ptext/pdf/canvas/operator/color/set_color_stroking.py rename to borb/pdf/canvas/operator/color/set_color_stroking.py index 246ed8c34..360c83891 100644 --- a/ptext/pdf/canvas/operator/color/set_color_stroking.py +++ b/borb/pdf/canvas/operator/color/set_color_stroking.py @@ -8,9 +8,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.color.color import CMYKColor, GrayColor, RGBColor, Separation -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.color.color import CMYKColor, GrayColor, RGBColor, Separation +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetColorStroking(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/color/set_gray_non_stroking.py b/borb/pdf/canvas/operator/color/set_gray_non_stroking.py similarity index 81% rename from ptext/pdf/canvas/operator/color/set_gray_non_stroking.py rename to borb/pdf/canvas/operator/color/set_gray_non_stroking.py index ca508cdcd..694be4a30 100644 --- a/ptext/pdf/canvas/operator/color/set_gray_non_stroking.py +++ b/borb/pdf/canvas/operator/color/set_gray_non_stroking.py @@ -7,9 +7,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.color.color import GrayColor -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.color.color import GrayColor +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetGrayNonStroking(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/color/set_gray_stroking.py b/borb/pdf/canvas/operator/color/set_gray_stroking.py similarity index 87% rename from ptext/pdf/canvas/operator/color/set_gray_stroking.py rename to borb/pdf/canvas/operator/color/set_gray_stroking.py index 28507e137..16c574772 100644 --- a/ptext/pdf/canvas/operator/color/set_gray_stroking.py +++ b/borb/pdf/canvas/operator/color/set_gray_stroking.py @@ -10,9 +10,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.color.color import GrayColor -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.color.color import GrayColor +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetGrayStroking(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/color/set_rgb_non_stroking.py b/borb/pdf/canvas/operator/color/set_rgb_non_stroking.py similarity index 87% rename from ptext/pdf/canvas/operator/color/set_rgb_non_stroking.py rename to borb/pdf/canvas/operator/color/set_rgb_non_stroking.py index 7c7df856e..fd639984d 100644 --- a/ptext/pdf/canvas/operator/color/set_rgb_non_stroking.py +++ b/borb/pdf/canvas/operator/color/set_rgb_non_stroking.py @@ -7,9 +7,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.color.color import RGBColor -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.color.color import RGBColor +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetRGBNonStroking(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/color/set_rgb_stroking.py b/borb/pdf/canvas/operator/color/set_rgb_stroking.py similarity index 90% rename from ptext/pdf/canvas/operator/color/set_rgb_stroking.py rename to borb/pdf/canvas/operator/color/set_rgb_stroking.py index a0084e88c..088d0a562 100644 --- a/ptext/pdf/canvas/operator/color/set_rgb_stroking.py +++ b/borb/pdf/canvas/operator/color/set_rgb_stroking.py @@ -10,9 +10,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.color.color import RGBColor -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.color.color import RGBColor +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetRGBStroking(CanvasOperator): diff --git a/borb/pdf/canvas/operator/compatibility/__init__.py b/borb/pdf/canvas/operator/compatibility/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/compatibility/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/compatibility/begin_compatibility_section.py b/borb/pdf/canvas/operator/compatibility/begin_compatibility_section.py similarity index 88% rename from ptext/pdf/canvas/operator/compatibility/begin_compatibility_section.py rename to borb/pdf/canvas/operator/compatibility/begin_compatibility_section.py index 7901f0ca4..65ced5b7b 100644 --- a/ptext/pdf/canvas/operator/compatibility/begin_compatibility_section.py +++ b/borb/pdf/canvas/operator/compatibility/begin_compatibility_section.py @@ -9,8 +9,8 @@ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class BeginCompatibilitySection(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/compatibility/end_compatibility_section.py b/borb/pdf/canvas/operator/compatibility/end_compatibility_section.py similarity index 88% rename from ptext/pdf/canvas/operator/compatibility/end_compatibility_section.py rename to borb/pdf/canvas/operator/compatibility/end_compatibility_section.py index f7ee5c157..74639265a 100644 --- a/ptext/pdf/canvas/operator/compatibility/end_compatibility_section.py +++ b/borb/pdf/canvas/operator/compatibility/end_compatibility_section.py @@ -8,8 +8,8 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class EndCompatibilitySection(CanvasOperator): diff --git a/borb/pdf/canvas/operator/marked_content/__init__.py b/borb/pdf/canvas/operator/marked_content/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/marked_content/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/marked_content/begin_marked_content.py b/borb/pdf/canvas/operator/marked_content/begin_marked_content.py similarity index 88% rename from ptext/pdf/canvas/operator/marked_content/begin_marked_content.py rename to borb/pdf/canvas/operator/marked_content/begin_marked_content.py index 7e0dacf42..bec6dddbc 100644 --- a/ptext/pdf/canvas/operator/marked_content/begin_marked_content.py +++ b/borb/pdf/canvas/operator/marked_content/begin_marked_content.py @@ -8,8 +8,8 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType, Name -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, Name +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class BeginMarkedContent(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/marked_content/begin_marked_content_with_property_list.py b/borb/pdf/canvas/operator/marked_content/begin_marked_content_with_property_list.py similarity index 92% rename from ptext/pdf/canvas/operator/marked_content/begin_marked_content_with_property_list.py rename to borb/pdf/canvas/operator/marked_content/begin_marked_content_with_property_list.py index eaf35f390..7b4a7e9af 100644 --- a/ptext/pdf/canvas/operator/marked_content/begin_marked_content_with_property_list.py +++ b/borb/pdf/canvas/operator/marked_content/begin_marked_content_with_property_list.py @@ -12,8 +12,8 @@ from typing import List -from ptext.io.read.types import AnyPDFType, Name -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, Name +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class BeginMarkedContentWithPropertyList(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/marked_content/end_marked_content.py b/borb/pdf/canvas/operator/marked_content/end_marked_content.py similarity index 85% rename from ptext/pdf/canvas/operator/marked_content/end_marked_content.py rename to borb/pdf/canvas/operator/marked_content/end_marked_content.py index 329bc5bd7..600f5e931 100644 --- a/ptext/pdf/canvas/operator/marked_content/end_marked_content.py +++ b/borb/pdf/canvas/operator/marked_content/end_marked_content.py @@ -6,8 +6,8 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class EndMarkedContent(CanvasOperator): diff --git a/borb/pdf/canvas/operator/path_construction/__init__.py b/borb/pdf/canvas/operator/path_construction/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/path_construction/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/path_construction/append_cubic_bezier.py b/borb/pdf/canvas/operator/path_construction/append_cubic_bezier.py similarity index 97% rename from ptext/pdf/canvas/operator/path_construction/append_cubic_bezier.py rename to borb/pdf/canvas/operator/path_construction/append_cubic_bezier.py index 9d7536188..bf8bc1c53 100644 --- a/ptext/pdf/canvas/operator/path_construction/append_cubic_bezier.py +++ b/borb/pdf/canvas/operator/path_construction/append_cubic_bezier.py @@ -14,9 +14,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.geometry.line_segment import LineSegment -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.geometry.line_segment import LineSegment +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator def _bezier(p0, p1, p2, p3) -> typing.List[LineSegment]: diff --git a/ptext/pdf/canvas/operator/path_construction/append_line_segment.py b/borb/pdf/canvas/operator/path_construction/append_line_segment.py similarity index 87% rename from ptext/pdf/canvas/operator/path_construction/append_line_segment.py rename to borb/pdf/canvas/operator/path_construction/append_line_segment.py index e0020c605..e3cefda42 100644 --- a/ptext/pdf/canvas/operator/path_construction/append_line_segment.py +++ b/borb/pdf/canvas/operator/path_construction/append_line_segment.py @@ -9,9 +9,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.geometry.line_segment import LineSegment -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.geometry.line_segment import LineSegment +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class AppendLineSegment(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/path_construction/append_rectangle.py b/borb/pdf/canvas/operator/path_construction/append_rectangle.py similarity index 92% rename from ptext/pdf/canvas/operator/path_construction/append_rectangle.py rename to borb/pdf/canvas/operator/path_construction/append_rectangle.py index cc7e8ba97..af2ac9215 100644 --- a/ptext/pdf/canvas/operator/path_construction/append_rectangle.py +++ b/borb/pdf/canvas/operator/path_construction/append_rectangle.py @@ -15,8 +15,8 @@ import typing from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class AppendRectangle(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/path_construction/begin_subpath.py b/borb/pdf/canvas/operator/path_construction/begin_subpath.py similarity index 89% rename from ptext/pdf/canvas/operator/path_construction/begin_subpath.py rename to borb/pdf/canvas/operator/path_construction/begin_subpath.py index 69238533c..a44a848a0 100644 --- a/ptext/pdf/canvas/operator/path_construction/begin_subpath.py +++ b/borb/pdf/canvas/operator/path_construction/begin_subpath.py @@ -11,9 +11,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.geometry.line_segment import LineSegment -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.geometry.line_segment import LineSegment +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class BeginSubpath(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/path_construction/close_subpath.py b/borb/pdf/canvas/operator/path_construction/close_subpath.py similarity index 89% rename from ptext/pdf/canvas/operator/path_construction/close_subpath.py rename to borb/pdf/canvas/operator/path_construction/close_subpath.py index 46a6db3f5..6ac4c71a3 100644 --- a/ptext/pdf/canvas/operator/path_construction/close_subpath.py +++ b/borb/pdf/canvas/operator/path_construction/close_subpath.py @@ -9,9 +9,9 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.geometry.line_segment import LineSegment -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.geometry.line_segment import LineSegment +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class CloseSubpath(CanvasOperator): diff --git a/borb/pdf/canvas/operator/path_painting/__init__.py b/borb/pdf/canvas/operator/path_painting/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/path_painting/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/path_painting/close_and_stroke_path.py b/borb/pdf/canvas/operator/path_painting/close_and_stroke_path.py similarity index 90% rename from ptext/pdf/canvas/operator/path_painting/close_and_stroke_path.py rename to borb/pdf/canvas/operator/path_painting/close_and_stroke_path.py index bddaec4aa..0ab6c56b6 100644 --- a/ptext/pdf/canvas/operator/path_painting/close_and_stroke_path.py +++ b/borb/pdf/canvas/operator/path_painting/close_and_stroke_path.py @@ -8,8 +8,8 @@ import typing from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class CloseAndStrokePath(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/path_painting/fill_path_even_odd.py b/borb/pdf/canvas/operator/path_painting/fill_path_even_odd.py similarity index 100% rename from ptext/pdf/canvas/operator/path_painting/fill_path_even_odd.py rename to borb/pdf/canvas/operator/path_painting/fill_path_even_odd.py diff --git a/ptext/pdf/canvas/operator/path_painting/fill_path_nonzero_winding.py b/borb/pdf/canvas/operator/path_painting/fill_path_nonzero_winding.py similarity index 100% rename from ptext/pdf/canvas/operator/path_painting/fill_path_nonzero_winding.py rename to borb/pdf/canvas/operator/path_painting/fill_path_nonzero_winding.py diff --git a/ptext/pdf/canvas/operator/path_painting/stroke_path.py b/borb/pdf/canvas/operator/path_painting/stroke_path.py similarity index 79% rename from ptext/pdf/canvas/operator/path_painting/stroke_path.py rename to borb/pdf/canvas/operator/path_painting/stroke_path.py index 3c6db0a54..5b984674c 100644 --- a/ptext/pdf/canvas/operator/path_painting/stroke_path.py +++ b/borb/pdf/canvas/operator/path_painting/stroke_path.py @@ -6,9 +6,9 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.event.line_render_event import LineRenderEvent -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.event.line_render_event import LineRenderEvent +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class StrokePath(CanvasOperator): diff --git a/borb/pdf/canvas/operator/state/__init__.py b/borb/pdf/canvas/operator/state/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/state/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/state/modify_transformation_matrix.py b/borb/pdf/canvas/operator/state/modify_transformation_matrix.py similarity index 91% rename from ptext/pdf/canvas/operator/state/modify_transformation_matrix.py rename to borb/pdf/canvas/operator/state/modify_transformation_matrix.py index e8ff2e8cc..18bb73df5 100644 --- a/ptext/pdf/canvas/operator/state/modify_transformation_matrix.py +++ b/borb/pdf/canvas/operator/state/modify_transformation_matrix.py @@ -10,9 +10,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.geometry.matrix import Matrix -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.geometry.matrix import Matrix +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class ModifyTransformationMatrix(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/state/pop_graphics_state.py b/borb/pdf/canvas/operator/state/pop_graphics_state.py similarity index 89% rename from ptext/pdf/canvas/operator/state/pop_graphics_state.py rename to borb/pdf/canvas/operator/state/pop_graphics_state.py index 68acb934d..f813e0a78 100644 --- a/ptext/pdf/canvas/operator/state/pop_graphics_state.py +++ b/borb/pdf/canvas/operator/state/pop_graphics_state.py @@ -8,8 +8,8 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class PopGraphicsState(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/state/push_graphics_state.py b/borb/pdf/canvas/operator/state/push_graphics_state.py similarity index 86% rename from ptext/pdf/canvas/operator/state/push_graphics_state.py rename to borb/pdf/canvas/operator/state/push_graphics_state.py index a1675f29f..120d33ed7 100644 --- a/ptext/pdf/canvas/operator/state/push_graphics_state.py +++ b/borb/pdf/canvas/operator/state/push_graphics_state.py @@ -8,8 +8,8 @@ import copy from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class PushGraphicsState(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/state/set_line_width.py b/borb/pdf/canvas/operator/state/set_line_width.py similarity index 87% rename from ptext/pdf/canvas/operator/state/set_line_width.py rename to borb/pdf/canvas/operator/state/set_line_width.py index bd8487790..ffb6ea497 100644 --- a/ptext/pdf/canvas/operator/state/set_line_width.py +++ b/borb/pdf/canvas/operator/state/set_line_width.py @@ -7,8 +7,8 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetLineWidth(CanvasOperator): diff --git a/borb/pdf/canvas/operator/text/__init__.py b/borb/pdf/canvas/operator/text/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/text/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/text/begin_text.py b/borb/pdf/canvas/operator/text/begin_text.py similarity index 81% rename from ptext/pdf/canvas/operator/text/begin_text.py rename to borb/pdf/canvas/operator/text/begin_text.py index 07aadbc07..ee127cd09 100644 --- a/ptext/pdf/canvas/operator/text/begin_text.py +++ b/borb/pdf/canvas/operator/text/begin_text.py @@ -9,10 +9,10 @@ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.event.begin_text_event import BeginTextEvent -from ptext.pdf.canvas.geometry.matrix import Matrix -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.event.begin_text_event import BeginTextEvent +from borb.pdf.canvas.geometry.matrix import Matrix +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class BeginTextObject(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/end_text.py b/borb/pdf/canvas/operator/text/end_text.py similarity index 79% rename from ptext/pdf/canvas/operator/text/end_text.py rename to borb/pdf/canvas/operator/text/end_text.py index 4ed442b1e..fb212a4b8 100644 --- a/ptext/pdf/canvas/operator/text/end_text.py +++ b/borb/pdf/canvas/operator/text/end_text.py @@ -6,9 +6,9 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.event.end_text_event import EndTextEvent -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.event.end_text_event import EndTextEvent +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class EndTextObject(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/move_text_position.py b/borb/pdf/canvas/operator/text/move_text_position.py similarity index 90% rename from ptext/pdf/canvas/operator/text/move_text_position.py rename to borb/pdf/canvas/operator/text/move_text_position.py index 00ac235ad..cf9687e9f 100644 --- a/ptext/pdf/canvas/operator/text/move_text_position.py +++ b/borb/pdf/canvas/operator/text/move_text_position.py @@ -11,9 +11,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.geometry.matrix import Matrix -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.geometry.matrix import Matrix +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class MoveTextPosition(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/move_text_position_set_leading.py b/borb/pdf/canvas/operator/text/move_text_position_set_leading.py similarity index 91% rename from ptext/pdf/canvas/operator/text/move_text_position_set_leading.py rename to borb/pdf/canvas/operator/text/move_text_position_set_leading.py index 0105cd2c4..b3813bad6 100644 --- a/ptext/pdf/canvas/operator/text/move_text_position_set_leading.py +++ b/borb/pdf/canvas/operator/text/move_text_position_set_leading.py @@ -12,9 +12,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.io.read.types import Decimal as pDecimal -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.io.read.types import Decimal as pDecimal +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class MoveTextPositionSetLeading(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/move_to_next_line.py b/borb/pdf/canvas/operator/text/move_to_next_line.py similarity index 90% rename from ptext/pdf/canvas/operator/text/move_to_next_line.py rename to borb/pdf/canvas/operator/text/move_to_next_line.py index 4da054b06..94c89107c 100644 --- a/ptext/pdf/canvas/operator/text/move_to_next_line.py +++ b/borb/pdf/canvas/operator/text/move_to_next_line.py @@ -13,9 +13,9 @@ import typing from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.io.read.types import Decimal as pDecimal -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.io.read.types import Decimal as pDecimal +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class MoveToNextLine(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/move_to_next_line_show_text.py b/borb/pdf/canvas/operator/text/move_to_next_line_show_text.py similarity index 91% rename from ptext/pdf/canvas/operator/text/move_to_next_line_show_text.py rename to borb/pdf/canvas/operator/text/move_to_next_line_show_text.py index ade4091e2..c3f77c9f4 100644 --- a/ptext/pdf/canvas/operator/text/move_to_next_line_show_text.py +++ b/borb/pdf/canvas/operator/text/move_to_next_line_show_text.py @@ -10,8 +10,8 @@ import typing from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class MoveToNextLineShowText(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_character_spacing.py b/borb/pdf/canvas/operator/text/set_character_spacing.py similarity index 90% rename from ptext/pdf/canvas/operator/text/set_character_spacing.py rename to borb/pdf/canvas/operator/text/set_character_spacing.py index 82d695b9b..71e54b294 100644 --- a/ptext/pdf/canvas/operator/text/set_character_spacing.py +++ b/borb/pdf/canvas/operator/text/set_character_spacing.py @@ -9,8 +9,8 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetCharacterSpacing(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_font_and_size.py b/borb/pdf/canvas/operator/text/set_font_and_size.py similarity index 91% rename from ptext/pdf/canvas/operator/text/set_font_and_size.py rename to borb/pdf/canvas/operator/text/set_font_and_size.py index 7a453678d..bc52da44e 100644 --- a/ptext/pdf/canvas/operator/text/set_font_and_size.py +++ b/borb/pdf/canvas/operator/text/set_font_and_size.py @@ -10,9 +10,9 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType, Decimal -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, Decimal +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetFontAndSize(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_horizontal_text_scaling.py b/borb/pdf/canvas/operator/text/set_horizontal_text_scaling.py similarity index 89% rename from ptext/pdf/canvas/operator/text/set_horizontal_text_scaling.py rename to borb/pdf/canvas/operator/text/set_horizontal_text_scaling.py index ad3de1c84..24456f5d9 100644 --- a/ptext/pdf/canvas/operator/text/set_horizontal_text_scaling.py +++ b/borb/pdf/canvas/operator/text/set_horizontal_text_scaling.py @@ -9,8 +9,8 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetHorizontalScaling(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_spacing_move_to_next_line_show_text.py b/borb/pdf/canvas/operator/text/set_spacing_move_to_next_line_show_text.py similarity index 94% rename from ptext/pdf/canvas/operator/text/set_spacing_move_to_next_line_show_text.py rename to borb/pdf/canvas/operator/text/set_spacing_move_to_next_line_show_text.py index 477fb2679..cdcaa7183 100644 --- a/ptext/pdf/canvas/operator/text/set_spacing_move_to_next_line_show_text.py +++ b/borb/pdf/canvas/operator/text/set_spacing_move_to_next_line_show_text.py @@ -10,8 +10,8 @@ import typing from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetSpacingMoveToNextLineShowText(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_text_leading.py b/borb/pdf/canvas/operator/text/set_text_leading.py similarity index 89% rename from ptext/pdf/canvas/operator/text/set_text_leading.py rename to borb/pdf/canvas/operator/text/set_text_leading.py index fd68ca5ba..b30e35b61 100644 --- a/ptext/pdf/canvas/operator/text/set_text_leading.py +++ b/borb/pdf/canvas/operator/text/set_text_leading.py @@ -9,8 +9,8 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetTextLeading(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_text_matrix.py b/borb/pdf/canvas/operator/text/set_text_matrix.py similarity index 91% rename from ptext/pdf/canvas/operator/text/set_text_matrix.py rename to borb/pdf/canvas/operator/text/set_text_matrix.py index 877086a15..433f9843a 100644 --- a/ptext/pdf/canvas/operator/text/set_text_matrix.py +++ b/borb/pdf/canvas/operator/text/set_text_matrix.py @@ -9,9 +9,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.geometry.matrix import Matrix -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.geometry.matrix import Matrix +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetTextMatrix(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_text_rendering_mode.py b/borb/pdf/canvas/operator/text/set_text_rendering_mode.py similarity index 84% rename from ptext/pdf/canvas/operator/text/set_text_rendering_mode.py rename to borb/pdf/canvas/operator/text/set_text_rendering_mode.py index e6d394b66..9d9bfc2e9 100644 --- a/ptext/pdf/canvas/operator/text/set_text_rendering_mode.py +++ b/borb/pdf/canvas/operator/text/set_text_rendering_mode.py @@ -7,8 +7,8 @@ """ from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetTextRenderingMode(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_text_rise.py b/borb/pdf/canvas/operator/text/set_text_rise.py similarity index 88% rename from ptext/pdf/canvas/operator/text/set_text_rise.py rename to borb/pdf/canvas/operator/text/set_text_rise.py index dc759de00..17e77e82a 100644 --- a/ptext/pdf/canvas/operator/text/set_text_rise.py +++ b/borb/pdf/canvas/operator/text/set_text_rise.py @@ -8,8 +8,8 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetTextRise(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/set_word_spacing.py b/borb/pdf/canvas/operator/text/set_word_spacing.py similarity index 89% rename from ptext/pdf/canvas/operator/text/set_word_spacing.py rename to borb/pdf/canvas/operator/text/set_word_spacing.py index 1719c96dd..71a1c1de7 100644 --- a/ptext/pdf/canvas/operator/text/set_word_spacing.py +++ b/borb/pdf/canvas/operator/text/set_word_spacing.py @@ -9,8 +9,8 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class SetWordSpacing(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/show_text.py b/borb/pdf/canvas/operator/text/show_text.py similarity index 86% rename from ptext/pdf/canvas/operator/text/show_text.py rename to borb/pdf/canvas/operator/text/show_text.py index ae5b75232..6d1071066 100644 --- a/ptext/pdf/canvas/operator/text/show_text.py +++ b/borb/pdf/canvas/operator/text/show_text.py @@ -7,9 +7,9 @@ import typing from typing import List -from ptext.io.read.types import AnyPDFType, Name, String -from ptext.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, Name, String +from borb.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class ShowText(CanvasOperator): diff --git a/ptext/pdf/canvas/operator/text/show_text_with_glyph_positioning.py b/borb/pdf/canvas/operator/text/show_text_with_glyph_positioning.py similarity index 93% rename from ptext/pdf/canvas/operator/text/show_text_with_glyph_positioning.py rename to borb/pdf/canvas/operator/text/show_text_with_glyph_positioning.py index 27109e6a7..22759a838 100644 --- a/ptext/pdf/canvas/operator/text/show_text_with_glyph_positioning.py +++ b/borb/pdf/canvas/operator/text/show_text_with_glyph_positioning.py @@ -9,9 +9,9 @@ from decimal import Decimal from typing import List -from ptext.io.read.types import AnyPDFType, Name, String -from ptext.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, Name, String +from borb.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class ShowTextWithGlyphPositioning(CanvasOperator): diff --git a/borb/pdf/canvas/operator/xobject/__init__.py b/borb/pdf/canvas/operator/xobject/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/canvas/operator/xobject/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/canvas/operator/xobject/do.py b/borb/pdf/canvas/operator/xobject/do.py similarity index 85% rename from ptext/pdf/canvas/operator/xobject/do.py rename to borb/pdf/canvas/operator/xobject/do.py index 19a7a107f..9b6394739 100644 --- a/ptext/pdf/canvas/operator/xobject/do.py +++ b/borb/pdf/canvas/operator/xobject/do.py @@ -12,9 +12,9 @@ import PIL # type: ignore [import] -from ptext.io.read.types import AnyPDFType, Dictionary, Name, Stream -from ptext.pdf.canvas.event.image_render_event import ImageRenderEvent -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, Dictionary, Name, Stream +from borb.pdf.canvas.event.image_render_event import ImageRenderEvent +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class Do(CanvasOperator): @@ -44,11 +44,7 @@ def invoke(self, canvas_stream_processor: "CanvasStreamProcessor", operands: typ # get XObject assert isinstance(operands[0], Name) - xobject = ( - page["Resources"]["XObject"][operands[0]] - if operands[0] in page["Resources"]["XObject"] - else None - ) + xobject = canvas_stream_processor.get_resource("XObject", str(operands[0])) # render Image objects if isinstance(xobject, PIL.Image.Image): diff --git a/ptext/pdf/canvas/redacted_canvas_stream_processor.py b/borb/pdf/canvas/redacted_canvas_stream_processor.py similarity index 96% rename from ptext/pdf/canvas/redacted_canvas_stream_processor.py rename to borb/pdf/canvas/redacted_canvas_stream_processor.py index 8d4bf7f43..8bd8b6c26 100644 --- a/ptext/pdf/canvas/redacted_canvas_stream_processor.py +++ b/borb/pdf/canvas/redacted_canvas_stream_processor.py @@ -7,11 +7,11 @@ import typing from decimal import Decimal -from ptext.io.read.types import AnyPDFType, HexadecimalString, List, Name, String -from ptext.pdf.canvas.canvas_stream_processor import CanvasStreamProcessor -from ptext.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.operator.canvas_operator import CanvasOperator +from borb.io.read.types import AnyPDFType, HexadecimalString, List, Name, String +from borb.pdf.canvas.canvas_stream_processor import CanvasStreamProcessor +from borb.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.operator.canvas_operator import CanvasOperator class CopyCommandOperator(CanvasOperator): @@ -92,7 +92,7 @@ def _show_text_unmodified( def _write_chunk_of_text( self, canvas_stream_processor: "CanvasStreamProcessor", s: str, f: "Font" # type: ignore [name-defined] ): - from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText + from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText canvas_stream_processor._redacted_content += "\n" # type: ignore[attr-defined] canvas_stream_processor._redacted_content += ChunkOfText( # type: ignore [attr-defined] @@ -183,7 +183,7 @@ def __init__(self): def _write_chunk_of_text( self, canvas_stream_processor: "CanvasStreamProcessor", s: str, f: "Font" # type: ignore[name-defined] ): - from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText + from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText canvas_stream_processor._redacted_content += "\n" # type: ignore[attr-defined] canvas_stream_processor._redacted_content += ChunkOfText( # type: ignore[attr-defined] diff --git a/ptext/pdf/document.py b/borb/pdf/document.py similarity index 98% rename from ptext/pdf/document.py rename to borb/pdf/document.py index 498fe38ae..ab0fb27f2 100644 --- a/ptext/pdf/document.py +++ b/borb/pdf/document.py @@ -8,10 +8,10 @@ import typing import zlib -from ptext.io.read.types import Decimal, Dictionary, List, Name, Stream, String -from ptext.pdf.page.page import DestinationType, Page -from ptext.pdf.trailer.document_info import DocumentInfo, XMPDocumentInfo -from ptext.pdf.xref.plaintext_xref import PlainTextXREF +from borb.io.read.types import Decimal, Dictionary, List, Name, Stream, String +from borb.pdf.page.page import DestinationType, Page +from borb.pdf.trailer.document_info import DocumentInfo, XMPDocumentInfo +from borb.pdf.xref.plaintext_xref import PlainTextXREF class Document(Dictionary): diff --git a/borb/pdf/page/__init__.py b/borb/pdf/page/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/page/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/page/page.py b/borb/pdf/page/page.py similarity index 99% rename from ptext/pdf/page/page.py rename to borb/pdf/page/page.py index e7c396ed0..1e067bec6 100644 --- a/ptext/pdf/page/page.py +++ b/borb/pdf/page/page.py @@ -12,13 +12,13 @@ from decimal import Decimal from typing import Optional, Tuple -from ptext.io.read.types import Boolean -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Dictionary, List, Name, Stream, String -from ptext.pdf.canvas.canvas import Canvas -from ptext.pdf.canvas.color.color import Color, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.page.page_info import PageInfo +from borb.io.read.types import Boolean +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Dictionary, List, Name, Stream, String +from borb.pdf.canvas.canvas import Canvas +from borb.pdf.canvas.color.color import Color, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.page.page_info import PageInfo class RubberStampAnnotationIconType(enum.Enum): @@ -1274,7 +1274,7 @@ def apply_redact_annotations( """ This function applies the redaction annotations on this Page """ - from ptext.pdf.canvas.redacted_canvas_stream_processor import ( + from borb.pdf.canvas.redacted_canvas_stream_processor import ( RedactedCanvasStreamProcessor, ) diff --git a/ptext/pdf/page/page_info.py b/borb/pdf/page/page_info.py similarity index 98% rename from ptext/pdf/page/page_info.py rename to borb/pdf/page/page_info.py index a02ddf802..d957ee539 100644 --- a/ptext/pdf/page/page_info.py +++ b/borb/pdf/page/page_info.py @@ -7,8 +7,8 @@ from decimal import Decimal from typing import Optional, Tuple -from ptext.io.read.types import Dictionary -from ptext.pdf.page.page_size import PageSize +from borb.io.read.types import Dictionary +from borb.pdf.page.page_size import PageSize class PageInfo(Dictionary): diff --git a/ptext/pdf/page/page_size.py b/borb/pdf/page/page_size.py similarity index 100% rename from ptext/pdf/page/page_size.py rename to borb/pdf/page/page_size.py diff --git a/ptext/pdf/pdf.py b/borb/pdf/pdf.py similarity index 90% rename from ptext/pdf/pdf.py rename to borb/pdf/pdf.py index 9c4d03cb9..18bd8ebaf 100644 --- a/ptext/pdf/pdf.py +++ b/borb/pdf/pdf.py @@ -11,10 +11,10 @@ import io from typing import List, Union -from ptext.io.read.read_any_object_transformer import ReadAnyObjectTransformer -from ptext.io.write.write_any_object_transformer import WriteAnyObjectTransformer -from ptext.pdf.canvas.event.event_listener import EventListener -from ptext.pdf.document import Document +from borb.io.read.read_any_object_transformer import ReadAnyObjectTransformer +from borb.io.write.write_any_object_transformer import WriteAnyObjectTransformer +from borb.pdf.canvas.event.event_listener import EventListener +from borb.pdf.document import Document class PDF: diff --git a/borb/pdf/trailer/__init__.py b/borb/pdf/trailer/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/trailer/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/trailer/document_info.py b/borb/pdf/trailer/document_info.py similarity index 100% rename from ptext/pdf/trailer/document_info.py rename to borb/pdf/trailer/document_info.py diff --git a/borb/pdf/xref/__init__.py b/borb/pdf/xref/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/pdf/xref/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/pdf/xref/plaintext_xref.py b/borb/pdf/xref/plaintext_xref.py similarity index 95% rename from ptext/pdf/xref/plaintext_xref.py rename to borb/pdf/xref/plaintext_xref.py index 0ada1e25b..4202606a7 100644 --- a/ptext/pdf/xref/plaintext_xref.py +++ b/borb/pdf/xref/plaintext_xref.py @@ -8,10 +8,10 @@ import io from typing import List, Optional, Union -from ptext.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer -from ptext.io.read.tokenize.low_level_tokenizer import TokenType -from ptext.io.read.types import Dictionary, Name, Reference -from ptext.pdf.xref.xref import XREF +from borb.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer +from borb.io.read.tokenize.low_level_tokenizer import TokenType +from borb.io.read.types import Dictionary, Name, Reference +from borb.pdf.xref.xref import XREF class PlainTextXREF(XREF): diff --git a/ptext/pdf/xref/stream_xref.py b/borb/pdf/xref/stream_xref.py similarity index 97% rename from ptext/pdf/xref/stream_xref.py rename to borb/pdf/xref/stream_xref.py index ec3a86933..236b94383 100644 --- a/ptext/pdf/xref/stream_xref.py +++ b/borb/pdf/xref/stream_xref.py @@ -9,10 +9,10 @@ from decimal import Decimal from typing import Optional, Union -from ptext.io.filter.stream_decode_util import decode_stream -from ptext.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer -from ptext.io.read.types import Dictionary, List, Name, Reference, Stream -from ptext.pdf.xref.xref import XREF +from borb.io.filter.stream_decode_util import decode_stream +from borb.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer +from borb.io.read.types import Dictionary, List, Name, Reference, Stream +from borb.pdf.xref.xref import XREF class StreamXREF(XREF): diff --git a/ptext/pdf/xref/xref.py b/borb/pdf/xref/xref.py similarity index 96% rename from ptext/pdf/xref/xref.py rename to borb/pdf/xref/xref.py index 33dc94d3b..7bf92368b 100644 --- a/ptext/pdf/xref/xref.py +++ b/borb/pdf/xref/xref.py @@ -15,10 +15,10 @@ from decimal import Decimal from typing import Optional, Union -from ptext.io.filter.stream_decode_util import decode_stream -from ptext.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer -from ptext.io.read.tokenize.low_level_tokenizer import TokenType -from ptext.io.read.types import AnyPDFType, Dictionary, Name, Reference, Stream +from borb.io.filter.stream_decode_util import decode_stream +from borb.io.read.tokenize.high_level_tokenizer import HighLevelTokenizer +from borb.io.read.tokenize.low_level_tokenizer import TokenType +from borb.io.read.types import AnyPDFType, Dictionary, Name, Reference, Stream logger = logging.getLogger(__name__) diff --git a/borb/toolkit/__init__.py b/borb/toolkit/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/color/__init__.py b/borb/toolkit/color/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/color/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/color/color_spectrum_extraction.py b/borb/toolkit/color/color_spectrum_extraction.py similarity index 90% rename from ptext/toolkit/color/color_spectrum_extraction.py rename to borb/toolkit/color/color_spectrum_extraction.py index 1164c2dfb..9f737ce1f 100644 --- a/ptext/toolkit/color/color_spectrum_extraction.py +++ b/borb/toolkit/color/color_spectrum_extraction.py @@ -10,13 +10,13 @@ from PIL.Image import Image # type: ignore [import] -from ptext.pdf.canvas.color.color import RGBColor -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.event.image_render_event import ImageRenderEvent -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import RGBColor +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.event.image_render_event import ImageRenderEvent +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.page.page import Page class ColorSpectrumExtraction(EventListener): diff --git a/borb/toolkit/export/__init__.py b/borb/toolkit/export/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/export/html_to_pdf/__init__.py b/borb/toolkit/export/html_to_pdf/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/html_to_pdf.py b/borb/toolkit/export/html_to_pdf/html_to_pdf.py similarity index 77% rename from ptext/toolkit/export/html_to_pdf/html_to_pdf.py rename to borb/toolkit/export/html_to_pdf/html_to_pdf.py index 8fdf0a821..b5fae76c9 100644 --- a/ptext/toolkit/export/html_to_pdf/html_to_pdf.py +++ b/borb/toolkit/export/html_to_pdf/html_to_pdf.py @@ -9,12 +9,12 @@ import typing from lxml.etree import HTMLParser # type: ignore [import] -from ptext.pdf.canvas.layout.page_layout.browser_layout import BrowserLayout -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.page.page_size import PageSize -from ptext.toolkit.export.html_to_pdf.tag_transformer.any_tag_transformer import ( +from borb.pdf.canvas.layout.page_layout.browser_layout import BrowserLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.page.page_size import PageSize +from borb.toolkit.export.html_to_pdf.tag_transformer.any_tag_transformer import ( AnyTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/any_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/any_tag_transformer.py new file mode 100644 index 000000000..a68f0d774 --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/any_tag_transformer.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" + This class acts as an aggregator for all BaseTagTransformer implementations. + Any of the (supported) HTML tags should be able to be transformed by this BaseTagTransformer. +""" +# fmt: off +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import BaseTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.body.body_tag_transformer import BodyTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.head.head_tag_transformer import HeadTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.head.meta_tag_transformer import MetaTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.head.title_tag_transformer import TitleTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.heading.h1_tag_transformer import H1TagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.heading.h2_tag_transformer import H2TagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.heading.h3_tag_transformer import H3TagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.heading.h4_tag_transformer import H4TagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.heading.h5_tag_transformer import H5TagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.heading.h6_tag_transformer import H6TagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.heading.hr_tag_transformer import HrTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.html_tag_transformer import HTMLTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.image.img_tag_transformer import ImgTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.list.li_tag_transformer import LiTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.list.ol_tag_transformer import OlTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.list.ul_tag_transformer import UlTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.structure.address_tag_transformer import AddressTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.structure.main_tag_transformer import MainTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.structure.section_tag_transformer import SectionTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.table.table_tag_transformer import TableTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.table.tbody_tag_transformer import TBodyTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.table.td_tag_transformer import TdTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.table.th_tag_transformer import ThTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.table.tr_tag_transformer import TrTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.a_tag_transformer import ATagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.abbr_tag_transformer import AbbrTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.bold.b_tag_transformer import BTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.bold.strong_tag_transformer import StrongTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.br_tag_transformer import BrTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.code_tag_transformer import CodeTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.italic.em_tag_transformer import EmTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.italic.i_tag_transformer import ITagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.mark_tag_transformer import MarkTagTransformer +from borb.toolkit.export.html_to_pdf.tag_transformer.text.p_tag_transformer import PTagTransformer +# fmt: on + + +class AnyTagTransformer(BaseTagTransformer): + """ + This class acts as an aggregator for all BaseTagTransformer implementations. + Any of the (supported) HTML tags should be able to be transformed by this BaseTagTransformer. + """ + + def __init__(self): + super(AnyTagTransformer, self).__init__() + self.add_child(HTMLTagTransformer()) + + # head + self.add_child(HeadTagTransformer()) + self.add_child(MetaTagTransformer()) + self.add_child(TitleTagTransformer()) + + # body + self.add_child(BodyTagTransformer()) + + # heading + self.add_child(H1TagTransformer()) + self.add_child(H2TagTransformer()) + self.add_child(H3TagTransformer()) + self.add_child(H4TagTransformer()) + self.add_child(H5TagTransformer()) + self.add_child(H6TagTransformer()) + self.add_child(HrTagTransformer()) + + # bold + self.add_child(BTagTransformer()) + self.add_child(StrongTagTransformer()) + + # special formatting + self.add_child(BrTagTransformer()) + self.add_child(AbbrTagTransformer()) + self.add_child(MarkTagTransformer()) + self.add_child(CodeTagTransformer()) + + # italic + self.add_child(ITagTransformer()) + self.add_child(EmTagTransformer()) + + # link + self.add_child(ATagTransformer()) + + # paragraph + self.add_child(PTagTransformer()) + + # list + self.add_child(OlTagTransformer()) + self.add_child(UlTagTransformer()) + self.add_child(LiTagTransformer()) + + # table + self.add_child(TableTagTransformer()) + self.add_child(TBodyTagTransformer()) + self.add_child(TrTagTransformer()) + self.add_child(ThTagTransformer()) + self.add_child(TdTagTransformer()) + + # image + self.add_child(ImgTagTransformer()) + + # structure elements + self.add_child(MainTagTransformer()) + self.add_child(SectionTagTransformer()) + self.add_child(AddressTagTransformer()) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/base_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/base_tag_transformer.py similarity index 94% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/base_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/base_tag_transformer.py index fc6ac47bd..2a44f4cd4 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/base_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/base_tag_transformer.py @@ -10,15 +10,15 @@ import typing -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import ( +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import ( HeterogeneousParagraph, LineBreakChunk, ) -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page +from borb.pdf.document import Document +from borb.pdf.page.page import Page class BaseTagTransformer: diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/body/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/body/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/body/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/body/body_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/body/body_tag_transformer.py similarity index 82% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/body/body_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/body/body_tag_transformer.py index 7ce40bec9..9e6ee0888 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/body/body_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/body/body_tag_transformer.py @@ -8,12 +8,12 @@ import typing -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/head/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/head/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/head/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/head/head_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/head/head_tag_transformer.py similarity index 77% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/head/head_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/head/head_tag_transformer.py index 413b5c488..948bc4e72 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/head/head_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/head/head_tag_transformer.py @@ -8,11 +8,11 @@ import typing -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/head/meta_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/head/meta_tag_transformer.py similarity index 86% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/head/meta_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/head/meta_tag_transformer.py index e903248d8..b667fdafe 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/head/meta_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/head/meta_tag_transformer.py @@ -8,13 +8,13 @@ import typing -from ptext.io.read.types import Name, Dictionary, String -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.xref.plaintext_xref import PlainTextXREF -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Name, Dictionary, String +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.xref.plaintext_xref import PlainTextXREF +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/head/title_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/head/title_tag_transformer.py similarity index 84% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/head/title_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/head/title_tag_transformer.py index 55b76b566..07dff8d56 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/head/title_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/head/title_tag_transformer.py @@ -8,12 +8,12 @@ import typing -from ptext.io.read.types import Name, Dictionary, String -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.document import Document -from ptext.pdf.xref.plaintext_xref import PlainTextXREF -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Name, Dictionary, String +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.document import Document +from borb.pdf.xref.plaintext_xref import PlainTextXREF +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/heading/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h1_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h1_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h1_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/heading/h1_tag_transformer.py index 9c01063ef..b2aaa45a7 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h1_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h1_tag_transformer.py @@ -8,13 +8,13 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h2_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h2_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h2_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/heading/h2_tag_transformer.py index d16398f5c..23dfe7fa5 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h2_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h2_tag_transformer.py @@ -8,13 +8,13 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h3_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h3_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h3_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/heading/h3_tag_transformer.py index 0cc945962..87c4a2e41 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h3_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h3_tag_transformer.py @@ -8,13 +8,13 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h4_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h4_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h4_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/heading/h4_tag_transformer.py index 3cd7f2386..1ade42d59 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h4_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h4_tag_transformer.py @@ -8,13 +8,13 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h5_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h5_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h5_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/heading/h5_tag_transformer.py index d0da54829..2655b69da 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h5_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h5_tag_transformer.py @@ -8,13 +8,13 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h6_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h6_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h6_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/heading/h6_tag_transformer.py index 7b626bdae..14b6991b0 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/h6_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/h6_tag_transformer.py @@ -8,13 +8,13 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/hr_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/hr_tag_transformer.py similarity index 70% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/heading/hr_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/heading/hr_tag_transformer.py index fe0603756..65b80e9ca 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/hr_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/heading/hr_tag_transformer.py @@ -8,14 +8,14 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.horizontal_rule import HorizontalRule -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.horizontal_rule import HorizontalRule +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/html_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/html_tag_transformer.py similarity index 77% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/html_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/html_tag_transformer.py index e6418c5af..dc8051daf 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/html_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/html_tag_transformer.py @@ -8,11 +8,11 @@ import typing -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/image/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/image/__init__.py similarity index 80% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/image/__init__.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/image/__init__.py index e3a7d9a2b..c6d15248a 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/image/__init__.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/image/__init__.py @@ -1,6 +1,6 @@ """ - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV Authors: Joris Schellekens, et al. This program is free software; you can redistribute it and/or modify @@ -8,7 +8,7 @@ as published by the Free Software Foundation with the addition of the following permission added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS This program is distributed in the hope that it will be useful, but @@ -27,23 +27,23 @@ Section 5 of the GNU Affero General Public License. In accordance with Section 7(b) of the GNU Affero General Public License, a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. + or manipulated using borb. You can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without + develop commercial activities involving the borb software without disclosing the source code of your own applications. These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed + serving PDFs on the fly in a web application, shipping borb with a closed source product. - For more information, please contact ptext Software Corp. at this + For more information, please contact borb Software Corp. at this address: joris.schellekens.1989@gmail.com """ """ - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV Authors: Joris Schellekens, et al. This program is free software; you can redistribute it and/or modify @@ -51,7 +51,7 @@ as published by the Free Software Foundation with the addition of the following permission added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS This program is distributed in the hope that it will be useful, but @@ -70,17 +70,17 @@ Section 5 of the GNU Affero General Public License. In accordance with Section 7(b) of the GNU Affero General Public License, a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. + or manipulated using borb. You can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without + develop commercial activities involving the borb software without disclosing the source code of your own applications. These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed + serving PDFs on the fly in a web application, shipping borb with a closed source product. - For more information, please contact ptext Software Corp. at this + For more information, please contact borb Software Corp. at this address: joris.schellekens.1989@gmail.com """ diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/image/img_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/image/img_tag_transformer.py similarity index 77% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/image/img_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/image/img_tag_transformer.py index ab2ac06df..bab63a5ad 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/image/img_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/image/img_tag_transformer.py @@ -8,14 +8,14 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/list/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/list/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/list/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/list/li_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/list/li_tag_transformer.py similarity index 82% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/list/li_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/list/li_tag_transformer.py index 367fbdc1d..5fc7b50a8 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/list/li_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/list/li_tag_transformer.py @@ -8,15 +8,15 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph, Span -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph, Span +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/list/ol_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/list/ol_tag_transformer.py similarity index 65% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/list/ol_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/list/ol_tag_transformer.py index 7af88922e..e532c6f9b 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/list/ol_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/list/ol_tag_transformer.py @@ -8,17 +8,17 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.list.ordered_list import OrderedList -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.list.ordered_list import OrderedList +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/list/ul_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/list/ul_tag_transformer.py similarity index 67% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/list/ul_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/list/ul_tag_transformer.py index 4dab61bb1..9f9dc441f 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/list/ul_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/list/ul_tag_transformer.py @@ -8,16 +8,16 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/structure/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/structure/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/structure/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/address_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/structure/address_tag_transformer.py similarity index 71% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/structure/address_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/structure/address_tag_transformer.py index b3ead01e8..08d51f4e0 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/address_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/structure/address_tag_transformer.py @@ -8,16 +8,16 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/main_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/structure/main_tag_transformer.py similarity index 70% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/structure/main_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/structure/main_tag_transformer.py index 6a023d053..104b85c10 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/main_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/structure/main_tag_transformer.py @@ -8,16 +8,16 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/section_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/structure/section_tag_transformer.py similarity index 67% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/structure/section_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/structure/section_tag_transformer.py index c2e04c1a9..61018bc25 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/section_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/structure/section_tag_transformer.py @@ -8,16 +8,16 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/table/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/table/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/table/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/table_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/table/table_tag_transformer.py similarity index 86% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/table/table_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/table/table_tag_transformer.py index 03e88001e..4a99a3af9 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/table_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/table/table_tag_transformer.py @@ -8,14 +8,14 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.base_table import BaseTable -from ptext.pdf.canvas.layout.table.flexible_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.base_table import BaseTable +from borb.pdf.canvas.layout.table.flexible_column_width_table import ( FlexibleColumnWidthTable, ) -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/tbody_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/table/tbody_tag_transformer.py similarity index 82% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/table/tbody_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/table/tbody_tag_transformer.py index eb1bb192d..dc19e279f 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/tbody_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/table/tbody_tag_transformer.py @@ -8,9 +8,9 @@ import typing -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/td_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/table/td_tag_transformer.py similarity index 81% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/table/td_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/table/td_tag_transformer.py index 73f5f44ea..4a5c078d9 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/td_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/table/td_tag_transformer.py @@ -8,16 +8,16 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.base_table import TableCell -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/th_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/table/th_tag_transformer.py similarity index 83% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/table/th_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/table/th_tag_transformer.py index f53f2590a..a95cc7f6c 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/th_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/table/th_tag_transformer.py @@ -8,10 +8,10 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/tr_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/table/tr_tag_transformer.py similarity index 82% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/table/tr_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/table/tr_tag_transformer.py index edbbe4fad..33bf1e512 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/tr_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/table/tr_tag_transformer.py @@ -8,9 +8,9 @@ import typing -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/text/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/a_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/a_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/a_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/a_tag_transformer.py index 1df73eacc..e66b50b6e 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/a_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/a_tag_transformer.py @@ -8,16 +8,16 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/abbr_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/abbr_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/abbr_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/abbr_tag_transformer.py index 2e5812093..3933a46de 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/abbr_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/abbr_tag_transformer.py @@ -8,16 +8,16 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/b_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/b_tag_transformer.py similarity index 78% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/b_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/b_tag_transformer.py index a963c73b4..41cbf40f4 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/b_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/b_tag_transformer.py @@ -8,14 +8,14 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/strong_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/strong_tag_transformer.py similarity index 78% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/strong_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/strong_tag_transformer.py index 035c6f9a9..c6ddf9073 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/strong_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/bold/strong_tag_transformer.py @@ -8,14 +8,14 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/br_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/br_tag_transformer.py similarity index 63% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/br_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/br_tag_transformer.py index bd8c37e56..411e6ec8c 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/br_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/br_tag_transformer.py @@ -8,15 +8,15 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/code_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/code_tag_transformer.py similarity index 74% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/code_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/code_tag_transformer.py index 942dfd62d..e26b7c44c 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/code_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/code_tag_transformer.py @@ -8,17 +8,17 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/__init__.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/em_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/em_tag_transformer.py similarity index 78% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/em_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/em_tag_transformer.py index dd2b907e0..637dafbd0 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/em_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/em_tag_transformer.py @@ -8,14 +8,14 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/i_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/i_tag_transformer.py similarity index 78% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/i_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/i_tag_transformer.py index a805750a8..a1095a87f 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/i_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/italic/i_tag_transformer.py @@ -8,14 +8,14 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/mark_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/mark_tag_transformer.py similarity index 75% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/mark_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/mark_tag_transformer.py index 47c6f901e..adc6904be 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/mark_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/mark_tag_transformer.py @@ -8,16 +8,16 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/p_tag_transformer.py b/borb/toolkit/export/html_to_pdf/tag_transformer/text/p_tag_transformer.py similarity index 78% rename from ptext/toolkit/export/html_to_pdf/tag_transformer/text/p_tag_transformer.py rename to borb/toolkit/export/html_to_pdf/tag_transformer/text/p_tag_transformer.py index c3fb00c8d..bba51c80f 100644 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/p_tag_transformer.py +++ b/borb/toolkit/export/html_to_pdf/tag_transformer/text/p_tag_transformer.py @@ -8,15 +8,15 @@ import typing -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import ( BaseTagTransformer, ) diff --git a/borb/toolkit/export/markdown_to_pdf/__init__.py b/borb/toolkit/export/markdown_to_pdf/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_to_pdf.py b/borb/toolkit/export/markdown_to_pdf/markdown_to_pdf.py new file mode 100644 index 000000000..341d721de --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_to_pdf.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This class converts Markdown to PDF +""" +from borb.pdf.document import Document +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.any_markdown_transformer import ( + AnyMarkdownTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + MarkdownTransformerContext, +) + + +class MarkdownToPDF: + """ + This class converts Markdown to PDF + """ + + @staticmethod + def convert_markdown_to_pdf(markdown: str) -> Document: + """ + This function converts a Markdown str to a PDF + """ + ctx: MarkdownTransformerContext = MarkdownTransformerContext(markdown) + AnyMarkdownTransformer()._transform(ctx) + return ctx.get_document() diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/__init__.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/any_markdown_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/any_markdown_transformer.py new file mode 100644 index 000000000..7a2d63253 --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/any_markdown_transformer.py @@ -0,0 +1,72 @@ +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.heading.alternate_syntax_heading_transformer import ( + AlternateSyntaxHeadingTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.heading.heading_transformer import ( + HeadingTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.heading.horizontal_rule_transformer import ( + HorizontalRuleTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.list.ordered_list_transformer import ( + OrderedListTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.list.unordered_list_transformer import ( + UnorderedListTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.table.table_transformer import ( + TableTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.text.blockquote_transformer import ( + BlockQuoteTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.text.fenced_code_snippet_transformer import ( + FencedCodeSnippetTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.text.indented_code_snippet_transformer import ( + IndentedCodeSnippetTransformer, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.text.paragraph_transformer import ( + ParagraphTransformer, +) + + +class AnyMarkdownTransformer(BaseMarkdownTransformer): + def __init__(self): + super(AnyMarkdownTransformer, self).__init__() + # fmt: off + self.add_child_transformer(HeadingTransformer()) \ + .add_child_transformer(AlternateSyntaxHeadingTransformer()) \ + .add_child_transformer(HorizontalRuleTransformer()) \ + .add_child_transformer(BlockQuoteTransformer()) \ + .add_child_transformer(IndentedCodeSnippetTransformer()) \ + .add_child_transformer(FencedCodeSnippetTransformer()) \ + .add_child_transformer(UnorderedListTransformer()) \ + .add_child_transformer(OrderedListTransformer()) \ + .add_child_transformer(TableTransformer()) \ + .add_child_transformer(ParagraphTransformer()) + # fmt: on + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + return True + + def _transform(self, context: MarkdownTransformerContext) -> None: + input_has_transformed: bool = True + while input_has_transformed and context.tell() < len( + context.get_markdown_string() + ): + # print("remaining input: `%s`" % context.get_markdown_string()[context.tell():context.get_markdown_string().find("\n", context.tell())]) + input_has_transformed = False + for t in self._children: + if t._can_transform(context): + t._transform(context) + input_has_transformed = True + break + + # this part catches any input and advances the tell() by 1 + if not input_has_transformed: + context.seek(context.tell() + 1) + input_has_transformed = True diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/base_markdown_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/base_markdown_transformer.py new file mode 100644 index 000000000..606b56765 --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/base_markdown_transformer.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" + This class provides the base for converting a snippet of Markdown + to PDF syntax. +""" +import re +import typing + +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.browser_layout import BrowserLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.document import Document +from borb.pdf.page.page import Page + + +class MarkdownTransformerContext: + def __init__(self, markdown: str): + self._markdown_string: str = markdown + self._start_index: int = 0 + self._document: Document = Document() + page: Page = Page() + self._document.append_page(page) + layout: PageLayout = BrowserLayout(page) + self._parent_layout_element: typing.Union[ + Document, Page, LayoutElement, PageLayout + ] = layout + + def tell(self) -> int: + """ + This function returns the current str position + """ + return self._start_index + + def seek(self, p: int) -> "MarkdownTransformerContext": + """ + This function changes the str position to the given byte offset. + This function returns self. + """ + self._start_index = p + return self + + def get_markdown_string(self) -> str: + """ + This function returns the markdown str being transformed + """ + return self._markdown_string + + def get_document(self) -> Document: + """ + This function returns the Document being built + """ + return self._document + + def get_parent_layout_element(self) -> typing.Union[Document, Page, LayoutElement]: + return self._parent_layout_element + + +class BaseMarkdownTransformer: + """ + This class provides the base for converting a snippet of Markdown + to PDF syntax. + """ + + def __init__(self): + self._children: typing.List["BaseMarkdownTransformer"] = [] + self._parent: typing.Optional["BaseMarkdownTransformer"] = None + + def add_child_transformer( + self, transformer: "BaseMarkdownTransformer" + ) -> "BaseMarkdownTransformer": + self._children.append(transformer) + transformer._parent = self + return self + + def get_parent(self) -> typing.Optional["BaseMarkdownTransformer"]: + """ + This function returns the parent BaseMarkdownTransformer. + BaseMarkdownTransformer implementations can delegate the transformation + process to their children (e.g. a paragraph-BaseMarkdownTransformer may delegate + some of its work to a bold-BaseMarkdownTransformer). + """ + return self._parent + + def get_root(self) -> "BaseMarkdownTransformer": + """ + This function returns the root BaseMarkdownTransformer. + BaseMarkdownTransformer implementations can delegate the transformation + process to their children (e.g. a paragraph-BaseMarkdownTransformer may delegate + some of its work to a bold-BaseMarkdownTransformer). + """ + p = self + while p._parent is not None: + p = p._parent + return p + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + return False + + def _transform(self, context: MarkdownTransformerContext) -> None: + return None + + def _until_double_newline(self, context: MarkdownTransformerContext) -> int: + i: int = context.tell() + while i < len(context.get_markdown_string()): + if ( + context.get_markdown_string()[i] == "\n" + and i + 1 < len(context.get_markdown_string()) + and context.get_markdown_string()[i + 1] == "\n" + ): + return i + 1 + i += 1 + return -1 + + def _as_long_as_input_lines_match( + self, line_regex: str, context: MarkdownTransformerContext + ) -> int: + prev_newline_pos: int = context.tell() - 1 + while prev_newline_pos < len(context.get_markdown_string()): + # find next newline + next_newline_pos: int = context.get_markdown_string().find( + "\n", prev_newline_pos + 1 + ) + + # handle end of input + if next_newline_pos == -1: + next_newline_pos = len(context.get_markdown_string()) + + # determine input line + line: str = context.get_markdown_string()[ + prev_newline_pos + 1 : next_newline_pos + ] + if re.match(line_regex, line) is None: + return prev_newline_pos + + # set everything up for the next round + prev_newline_pos = next_newline_pos + + # return + return prev_newline_pos diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/__init__.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/alternate_syntax_heading_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/alternate_syntax_heading_transformer.py new file mode 100644 index 000000000..e05a8e824 --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/alternate_syntax_heading_transformer.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles (alternate syntax) headings +""" +from decimal import Decimal + +import typing + +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class AlternateSyntaxHeadingTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles (alternate syntax) headings + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + # alternate syntax headings should start with an alpha character + if not context.get_markdown_string()[context.tell()].isalpha(): + return False + # headings should end with a + next_newline_pos: int = context.get_markdown_string().find( + "\n", context.tell() + 1 + ) + if next_newline_pos == -1: + return False + # the line under the heading should be all '=' or '-' + next_next_newline_pos: int = context.get_markdown_string().find( + "\n", next_newline_pos + 1 + ) + line_of_dashes: str = context.get_markdown_string()[ + next_newline_pos:next_next_newline_pos + ].strip() + return len(line_of_dashes) > 0 and ( + all([c == "=" for c in line_of_dashes]) + or all([c == "-" for c in line_of_dashes]) + ) + + def _transform(self, context: MarkdownTransformerContext) -> None: + + # determine heading text + next_newline_pos: int = context.get_markdown_string().find( + "\n", context.tell() + 1 + ) + next_next_newline_pos: int = context.get_markdown_string().find( + "\n", next_newline_pos + 1 + ) + heading_text: str = context.get_markdown_string()[ + context.tell() : next_newline_pos + ] + + # determine heading level + line_of_dashes: str = context.get_markdown_string()[ + next_newline_pos:next_next_newline_pos + ].strip() + heading_level: int = 0 + if line_of_dashes[0] == "=": + heading_level = 0 + elif line_of_dashes[0] == "-": + heading_level = 1 + + # determine font size + font_size: Decimal = Decimal(27) + if heading_level == 1: + font_size = Decimal(21) + + # add LayoutElement + parent_layout_element: typing.Union[ + Document, Page, PageLayout, LayoutElement + ] = context.get_parent_layout_element() + assert isinstance(parent_layout_element, PageLayout) + parent_layout_element.add( + Heading(heading_text, font_size=font_size, outline_level=heading_level) + ) + + # seek + context.seek(next_next_newline_pos + 1) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/heading_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/heading_transformer.py new file mode 100644 index 000000000..c59477b00 --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/heading_transformer.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles headings +""" +from decimal import Decimal + +import typing + +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class HeadingTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles headings + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + return context.get_markdown_string()[context.tell()] == "#" + + def _transform(self, context: MarkdownTransformerContext) -> None: + + # determine heading text and level + heading_text: str = context.get_markdown_string()[ + context.tell() : context.get_markdown_string().find("\n", context.tell()) + ] + heading_level: int = 0 + while heading_text.startswith("#"): + heading_text = heading_text[1:] + heading_level += 1 + heading_level -= 1 + heading_text = heading_text.lstrip() + + # determine style + font_size: Decimal = { + 0: Decimal(27), + 1: Decimal(21), + 2: Decimal(18), + 3: Decimal(15), + 4: Decimal(12), + 5: Decimal(12), + }.get(heading_level, Decimal(12)) + + # add LayoutElement + parent_layout_element: typing.Union[ + Document, Page, PageLayout, LayoutElement + ] = context.get_parent_layout_element() + assert isinstance(parent_layout_element, PageLayout) + parent_layout_element.add( + Heading(heading_text, font_size=font_size, outline_level=heading_level) + ) + + # seek + context.seek(context.get_markdown_string().find("\n", context.tell()) + 1) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/horizontal_rule_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/horizontal_rule_transformer.py new file mode 100644 index 000000000..148423903 --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/heading/horizontal_rule_transformer.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles horizontal rules +""" +import typing + +from borb.pdf.canvas.layout.horizontal_rule import HorizontalRule +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class HorizontalRuleTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles horizontal rules + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + """ + To create a horizontal rule, use three or more asterisks (***), dashes (---), or underscores (___) on a line by themselves. + """ + if context.get_markdown_string()[context.tell()] != "\n": + return False + markdown_str: str = context.get_markdown_string()[ + context.tell() + + 1 : context.get_markdown_string().find("\n", context.tell() + 1) + ] + return any([x in markdown_str for x in ["---", "***", "___"]]) + + def _transform(self, context: MarkdownTransformerContext) -> None: + + # add LayoutElement + parent_layout_element: typing.Union[ + Document, Page, PageLayout, LayoutElement + ] = context.get_parent_layout_element() + assert isinstance(parent_layout_element, PageLayout) + parent_layout_element.add(HorizontalRule()) + + # seek + context.seek(context.get_markdown_string().find("\n", context.tell() + 1) + 1) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/__init__.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/ordered_list_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/ordered_list_transformer.py new file mode 100644 index 000000000..a3e2a81ac --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/ordered_list_transformer.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles ordered lists +""" +import typing + +from borb.pdf.canvas.layout.list.ordered_list import OrderedList +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class OrderedListTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles ordered lists + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + indent_level: int = 0 + while ( + context.tell() + indent_level < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + indent_level] == " " + ): + indent_level += 1 + return ( + context.get_markdown_string()[context.tell() + indent_level] == "1" + and context.tell() + indent_level + 1 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + indent_level + 1] == "." + and context.tell() + indent_level + 2 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + indent_level + 2] == " " + ) + + def _transform(self, context: MarkdownTransformerContext) -> None: + + # continue processing lines until we hit + end_pos: int = self._until_double_newline(context) + if end_pos == -1: + end_pos = len(context.get_markdown_string()) + list_lines_raw: typing.List[str] = context.get_markdown_string()[ + context.tell() : end_pos - 1 + ].split("\n") + + index: int = 0 + prev_indentation_level: int = 0 + while list_lines_raw[0][prev_indentation_level] == " ": + prev_indentation_level += 1 + + list_items_str: typing.List[str] = [] + while index < len(list_lines_raw): + + # determine the indentation level + indentation_level: int = 0 + while ( + indentation_level < len(list_lines_raw[index]) + and list_lines_raw[index][indentation_level] == " " + ): + indentation_level += 1 + + # IF the indentation level changed (+4) AND there is no list_symbol --> continuation of previous item + if indentation_level == prev_indentation_level + 4 and list_lines_raw[ + index + ].strip()[0] not in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]: + list_items_str[-1] += "\n" + list_lines_raw[index][4:] + index += 1 + continue + + # IF the indentation level changed AND there is a list symbol --> grab everything on that indentation level + if indentation_level > prev_indentation_level and list_lines_raw[ + index + ].strip()[0] in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]: + sublist_end_index: int = index + while sublist_end_index < len(list_lines_raw) and list_lines_raw[ + sublist_end_index + ].startswith("".join([" " for _ in range(0, indentation_level)])): + sublist_end_index += 1 + list_items_str.append( + "".join( + [ + list_lines_raw[i][indentation_level:] + "\n" + for i in range(index, sublist_end_index) + ] + ) + ) + index = sublist_end_index + continue + + # IF the indentation level is equal AND there is no list_symbol --> error in markdown + if indentation_level == prev_indentation_level and list_lines_raw[ + index + ].strip()[0] not in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]: + assert ( + False + ), "Invalid markdown: To add another element in a list while preserving the continuity of the list, indent the element four spaces or one tab." + + # IF the indentation level is equal AND there is a list_symbol --> new item + if indentation_level == prev_indentation_level and list_lines_raw[ + index + ].lstrip()[0] in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]: + l: str = list_lines_raw[index] + while l[0].isdigit() or l[0] == " ": + l = l[1:] + if l.startswith(". "): + l = l[2:] + if l.startswith("."): + l = l[1:] + list_items_str.append(l) + index += 1 + + # build UnorderedList + ul: OrderedList = OrderedList() + for s in list_items_str: + sub_context: MarkdownTransformerContext = MarkdownTransformerContext(s) + sub_context._document = context._document + sub_context._parent_layout_element = ul + self.get_root()._transform(sub_context) + + # add + context.get_parent_layout_element().add(ul) # type: ignore [union-attr] + + # seek + context.seek(end_pos) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/unordered_list_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/unordered_list_transformer.py new file mode 100644 index 000000000..db2c558ca --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/list/unordered_list_transformer.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles unordered lists +""" +import typing + +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class UnorderedListTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles unordered lists + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + """ + To create an unordered list, add dashes (-), asterisks (*), or plus signs (+) in front of line items. + Indent one or more items to create a nested list. + """ + indent_level: int = 0 + while ( + context.tell() + indent_level < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + indent_level] == " " + ): + indent_level += 1 + return ( + context.get_markdown_string()[context.tell() + indent_level] + in ["*", "-", "+"] + and context.tell() + indent_level + 1 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + indent_level + 1] == " " + ) + + def _transform(self, context: MarkdownTransformerContext) -> None: + + # continue processing lines until we hit + end_pos: int = self._until_double_newline(context) + if end_pos == -1: + end_pos = len(context.get_markdown_string()) + list_lines_raw: typing.List[str] = context.get_markdown_string()[ + context.tell() : end_pos - 1 + ].split("\n") + + # determine initial indentation level + index: int = 0 + prev_indentation_level: int = 0 + while list_lines_raw[0][prev_indentation_level] == " ": + prev_indentation_level += 1 + + list_items_str: typing.List[str] = [] + while index < len(list_lines_raw): + + # determine the indentation level + indentation_level: int = 0 + while ( + indentation_level < len(list_lines_raw[index]) + and list_lines_raw[index][indentation_level] == " " + ): + indentation_level += 1 + + # IF the indentation level changed (+4) AND there is no list_symbol --> continuation of previous item + if indentation_level == prev_indentation_level + 4 and list_lines_raw[ + index + ].strip()[0] not in ["+", "-", "*"]: + list_items_str[-1] += "\n" + list_lines_raw[index][4:] + index += 1 + continue + + # IF the indentation level changed AND there is a list symbol --> grab everything on that indentation level + if indentation_level > prev_indentation_level and list_lines_raw[ + index + ].strip()[0] in ["+", "-", "*"]: + sublist_end_index: int = index + while sublist_end_index < len(list_lines_raw) and list_lines_raw[ + sublist_end_index + ].startswith("".join([" " for _ in range(0, indentation_level)])): + sublist_end_index += 1 + list_items_str.append( + "".join( + [ + list_lines_raw[i][indentation_level:] + "\n" + for i in range(index, sublist_end_index) + ] + ) + ) + index = sublist_end_index + continue + + # IF the indentation level is equal AND there is no list_symbol --> error in markdown + if indentation_level == prev_indentation_level and list_lines_raw[ + index + ].strip()[0] not in ["+", "-", "*"]: + assert ( + False + ), "Invalid markdown: To add another element in a list while preserving the continuity of the list, indent the element four spaces or one tab." + + # IF the indentation level is equal AND there is a list_symbol --> new item + if indentation_level == prev_indentation_level and list_lines_raw[ + index + ].lstrip()[0] in ["+", "-", "*"]: + list_items_str.append(list_lines_raw[index].lstrip()[2:]) + index += 1 + + # build UnorderedList + ul: UnorderedList = UnorderedList() + for s in list_items_str: + sub_context: MarkdownTransformerContext = MarkdownTransformerContext(s) + sub_context._document = context._document + sub_context._parent_layout_element = ul + self.get_root()._transform(sub_context) + + # add + context.get_parent_layout_element().add(ul) # type: ignore [union-attr] + + # seek + context.seek(end_pos + 1) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/table/__init__.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/table/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/table/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/table/table_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/table/table_transformer.py new file mode 100644 index 000000000..b5010c1ab --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/table/table_transformer.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles tables +""" +import typing +from decimal import Decimal + +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.table.base_table import BaseTable, TableCell +from borb.pdf.canvas.layout.table.flexible_column_width_table import ( + FlexibleColumnWidthTable, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class TableTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles tables + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + i: int = context.tell() + while ( + i < len(context.get_markdown_string()) + and context.get_markdown_string()[i] == " " + ): + i += 1 + if ( + i >= len(context.get_markdown_string()) + or context.get_markdown_string()[i] != "|" + ): + return False + next_newline_pos: int = context.get_markdown_string().find("\n", i) + if next_newline_pos == -1: + next_newline_pos = len(context.get_markdown_string()) + if context.get_markdown_string()[next_newline_pos - 1] == "|": + return True + return False + + def _is_alignment_td(self, td: str) -> bool: + td_stripped: str = td.strip() + if all([x == "-" for x in td_stripped]): + return True + if td_stripped.startswith(":") and all([x == "-" for x in td_stripped[1:]]): + return True + if td_stripped.endswith(":") and all([x == "-" for x in td_stripped[:-1]]): + return True + if ( + td_stripped.startswith(":") + and td_stripped.endswith(":") + and all([x == "-" for x in td_stripped[1:-1]]) + ): + return True + return False + + def _transform(self, context: MarkdownTransformerContext) -> None: + + # continue processing lines until we hit + end_pos: int = self._until_double_newline(context) + if end_pos == -1: + end_pos = len(context.get_markdown_string()) + table_lines_raw: typing.List[str] = context.get_markdown_string()[ + context.tell() : end_pos - 1 + ].split("\n") + + index: int = 0 + number_of_columns: int = len(table_lines_raw[0].split("|")) - 2 + column_alignment: typing.List[Alignment] = [ + Alignment.LEFT for _ in range(0, number_of_columns) + ] + table_items_str: typing.List[typing.List[str]] = [] + while index < len(table_lines_raw): + # process alignment line + if all( + [self._is_alignment_td(x) for x in table_lines_raw[index].split("|")] + ): + for i, a in enumerate(table_lines_raw[index].strip().split("|")[1:-1]): + a = a.strip() + if a.endswith(":") and a.startswith(":"): + column_alignment[i] = Alignment.CENTERED + elif a.endswith(":"): + column_alignment[i] = Alignment.RIGHT + index += 1 + continue + # process normal lines + table_items_str.append(table_lines_raw[index].strip().split("|")[1:-1]) + index += 1 + + # build Table + number_of_rows: int = len(table_items_str) + ul: BaseTable = FlexibleColumnWidthTable( + number_of_columns=number_of_columns, number_of_rows=number_of_rows + ) + for tr in table_items_str: + for td in tr: + sub_context: MarkdownTransformerContext = MarkdownTransformerContext(td) + sub_context._document = context._document + sub_context._parent_layout_element = ul + self.get_root()._transform(sub_context) + + # set alignment + for i in range(0, number_of_columns): + for td_table_cell in ul._get_cells_at_column(i): + td_table_cell._horizontal_alignment = column_alignment[i] + + # set header row + for td_table_cell in ul._get_cells_at_row(0): + td_table_cell._layout_element._font = StandardType1Font("Helvetica-Bold") + + # set padding and zebra striping + ul.set_padding_on_all_cells(Decimal(5), Decimal(5), Decimal(5), Decimal(5)) + # ul.even_odd_row_colors(HexColor("ffffff"), HexColor("c3c3c3")) + + # add + context.get_parent_layout_element().add(ul) # type: ignore [union-attr] + + # seek + context.seek(end_pos + 1) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/__init__.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/blockquote_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/blockquote_transformer.py new file mode 100644 index 000000000..9efbfa9f8 --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/blockquote_transformer.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles block quotes +""" +import typing +from decimal import Decimal + +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class BlockQuoteTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles block quotes + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + return context.get_markdown_string()[context.tell()] == ">" and ( + context.tell() == 0 + or context.get_markdown_string()[context.tell() - 1] == "\n" + ) + + def _transform(self, context: MarkdownTransformerContext) -> None: + + end_of_input: int = self._as_long_as_input_lines_match(">.*", context) + block_quote_lines: typing.List[str] = context.get_markdown_string()[ + context.tell() : end_of_input - 1 + ].split("\n") + block_quote_lines = [x[2:] for x in block_quote_lines] + + # transform the markdown syntax per line + el: HeterogeneousParagraph = HeterogeneousParagraph( + background_color=HexColor("c3c3c3"), + padding_top=Decimal(5), + padding_right=Decimal(5), + padding_bottom=Decimal(5), + padding_left=Decimal(5), + border_left=True, + border_width=Decimal(3), + ) + for line in block_quote_lines: + sub_context: MarkdownTransformerContext = MarkdownTransformerContext(line) + sub_context._document = context._document + sub_context._parent_layout_element = el + self.get_root()._transform(sub_context) + + for c in el._chunks_of_text: + c._background_color = HexColor("c3c3c3") + + # add + context.get_parent_layout_element().add(el) # type: ignore [union-attr] + + # seek + context.seek(end_of_input + 1) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/fenced_code_snippet_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/fenced_code_snippet_transformer.py new file mode 100644 index 000000000..6daca7b52 --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/fenced_code_snippet_transformer.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles (fenced) code snippets +""" +import typing +from decimal import Decimal + +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.text.chunks_of_text import ( + HeterogeneousParagraph, + LineBreakChunk, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class FencedCodeSnippetTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles (fenced) code snippets + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + return ( + context.get_markdown_string()[context.tell()] == "`" + and context.tell() + 1 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + 1] == "`" + and context.tell() + 2 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + 2] == "`" + and context.tell() + 3 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + 3] == "\n" + ) + + def _transform(self, context: MarkdownTransformerContext) -> None: + + end_of_input: int = context.get_markdown_string().find( + "```", context.tell() + 1 + ) + code_snippet_lines: typing.List[str] = context.get_markdown_string()[ + context.tell() : end_of_input + ].split("\n") + code_snippet_lines = code_snippet_lines[1:-1] + + # transform the markdown syntax per line + el: HeterogeneousParagraph = HeterogeneousParagraph( + background_color=HexColor("c3c3c3"), + padding_top=Decimal(5), + padding_right=Decimal(5), + padding_bottom=Decimal(5), + padding_left=Decimal(5), + border_left=True, + border_width=Decimal(3), + ) + + for line in code_snippet_lines: + sub_context: MarkdownTransformerContext = MarkdownTransformerContext(line) + sub_context._document = context._document + sub_context._parent_layout_element = el + self.get_root()._transform(sub_context) + el.add(LineBreakChunk()) + + for c in el._chunks_of_text: + c._background_color = HexColor("c3c3c3") + + # add + context.get_parent_layout_element().add(el) # type: ignore [union-attr] + + # seek + context.seek(end_of_input + 1) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/indented_code_snippet_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/indented_code_snippet_transformer.py new file mode 100644 index 000000000..fa980360f --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/indented_code_snippet_transformer.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles (indented) code snippets +""" +import typing +from decimal import Decimal + +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.text.chunks_of_text import ( + HeterogeneousParagraph, + LineBreakChunk, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class IndentedCodeSnippetTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles (indented) code snippets + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + return ( + context.get_markdown_string()[context.tell()] == " " + and context.tell() + 1 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + 1] == " " + and context.tell() + 2 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + 2] == " " + and context.tell() + 3 < len(context.get_markdown_string()) + and context.get_markdown_string()[context.tell() + 3] == " " + ) + + def _transform(self, context: MarkdownTransformerContext) -> None: + + end_of_input: int = self._as_long_as_input_lines_match(" .*", context) + code_snippet_lines: typing.List[str] = context.get_markdown_string()[ + context.tell() : end_of_input + ].split("\n") + code_snippet_lines = [x[4:] for x in code_snippet_lines] + + # transform the markdown syntax per line + el: HeterogeneousParagraph = HeterogeneousParagraph( + background_color=HexColor("c3c3c3"), + padding_top=Decimal(5), + padding_right=Decimal(5), + padding_bottom=Decimal(5), + padding_left=Decimal(5), + border_left=True, + border_width=Decimal(3), + ) + + for line in code_snippet_lines: + sub_context: MarkdownTransformerContext = MarkdownTransformerContext(line) + sub_context._document = context._document + sub_context._parent_layout_element = el + self.get_root()._transform(sub_context) + el.add(LineBreakChunk()) + + for c in el._chunks_of_text: + c._background_color = HexColor("c3c3c3") + + # add + context.get_parent_layout_element().add(el) # type: ignore [union-attr] + + # seek + context.seek(end_of_input + 1) diff --git a/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/paragraph_transformer.py b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/paragraph_transformer.py new file mode 100644 index 000000000..3be0d05d8 --- /dev/null +++ b/borb/toolkit/export/markdown_to_pdf/markdown_transformer/text/paragraph_transformer.py @@ -0,0 +1,249 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of BaseMarkdownTransformer handles paragraphs +""" +import typing + +from borb.pdf.canvas.color.color import Color, HexColor +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font +from borb.pdf.canvas.layout.emoji.emoji import Emoji, Emojis +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import ( + LineBreakChunk, + HeterogeneousParagraph, +) +from borb.toolkit.export.markdown_to_pdf.markdown_transformer.base_markdown_transformer import ( + BaseMarkdownTransformer, + MarkdownTransformerContext, +) + + +class ParagraphTransformer(BaseMarkdownTransformer): + """ + This implementation of BaseMarkdownTransformer handles paragraphs + """ + + def _can_transform(self, context: MarkdownTransformerContext) -> bool: + """ + This function always returns True, anything can be a Paragraph + """ + return context.get_markdown_string()[ + context.tell() + ].isalpha() or context.get_markdown_string()[context.tell()] in [ + "*", + "_", + ":", + "\\", + "`", + ] + + def _get_font(self, is_bold: bool, is_italic: bool, is_monospaced: bool) -> Font: + if is_monospaced: + return StandardType1Font("Courier") + if is_bold and is_italic: + return StandardType1Font("Helvetica-bold-oblique") + elif is_bold: + return StandardType1Font("Helvetica-bold") + elif is_italic: + return StandardType1Font("Helvetica-oblique") + else: + return StandardType1Font("Helvetica") + + def _build_chunks( + self, text: str, is_bold: bool, is_italic: bool, is_monospaced: bool + ) -> typing.List[ChunkOfText]: + out: typing.List[ChunkOfText] = [] + for w in text.split(" "): + background_color: Color = HexColor("ffffff") + if is_monospaced: + background_color = HexColor("c3c3c3") + out.append( + ChunkOfText( + w + " ", + font=self._get_font(is_bold, is_italic, is_monospaced), + background_color=background_color, + ) + ) + return out + + def _transform(self, context: MarkdownTransformerContext) -> None: + + # continue processing lines until we hit + end_pos: int = self._until_double_newline(context) + if end_pos == -1: + end_pos = len(context.get_markdown_string()) + 1 + paragraph_lines_raw: typing.List[str] = context.get_markdown_string()[ + context.tell() : end_pos - 1 + ].split("\n") + + # process each line + chunks_of_text: typing.List[typing.Union[ChunkOfText, Emoji]] = [] + is_bold: bool = False + is_italic: bool = False + is_monospaced: bool = False + chunk_text: str = "" + for paragraph_line in paragraph_lines_raw: + i: int = 0 + while i < len(paragraph_line): + # process \< + c: str = paragraph_line[i] + if ( + c == "\\" + and i + 1 < len(paragraph_line) + and paragraph_line[i + 1] in [">", "<", "*", "+", "-", "_", "`"] + ): + chunk_text += paragraph_line[i + 1] + i += 2 + continue + # process :: + if ( + not is_monospaced + and c == ":" + and paragraph_line.find(":", i + 1) >= 0 + and paragraph_line[i + 1 : paragraph_line.find(":", i + 1)].upper() + in [x.name for x in Emojis] + ): + emoji_name: str = paragraph_line[ + i + 1 : paragraph_line.find(":", i + 1) + ] + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunks_of_text.append(Emojis[emoji_name.upper()].value) + chunk_text = "" + i = paragraph_line.find(":", i + 1) + 1 + continue + # process *** + if ( + c == "*" + and i + 1 < len(paragraph_line) + and paragraph_line[i + 1] == "*" + and i + 2 < len(paragraph_line) + and paragraph_line[i + 2] == "*" + ): + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunk_text = "" + is_bold = not is_bold + is_italic = not is_italic + i += 3 + continue + # process ___ + if ( + c == "_" + and i + 1 < len(paragraph_line) + and paragraph_line[i + 1] == "_" + and i + 2 < len(paragraph_line) + and paragraph_line[i + 2] == "_" + ): + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunk_text = "" + is_bold = not is_bold + is_italic = not is_italic + i += 3 + continue + # process ** + if ( + c == "*" + and i + 1 < len(paragraph_line) + and paragraph_line[i + 1] == "*" + ): + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunk_text = "" + is_bold = not is_bold + i += 2 + continue + # process __ + if ( + c == "_" + and i + 1 < len(paragraph_line) + and paragraph_line[i + 1] == "_" + ): + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunk_text = "" + is_bold = not is_bold + i += 2 + continue + # process * + if c == "*": + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunk_text = "" + is_italic = not is_italic + i += 1 + continue + # process _ + if c == "_": + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunk_text = "" + is_italic = not is_italic + i += 1 + continue + # process ` + if c == "`": + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunk_text = "" + is_monospaced = not is_monospaced + i += 1 + continue + # process + if ( + i == len(paragraph_line) - 2 + and c == " " + and paragraph_line[i + 1] == " " + ): + chunks_of_text.extend( + self._build_chunks( + chunk_text, is_bold, is_italic, is_monospaced + ) + ) + chunks_of_text.append(LineBreakChunk()) + chunk_text = "" + i += 2 + continue + # process any character + chunk_text += c + i += 1 + + # append any remaining chunks + if len(chunk_text) > 0: + chunks_of_text.extend( + self._build_chunks(chunk_text, is_bold, is_italic, is_monospaced) + ) + + # append HeterogeneousParagraph + context.get_parent_layout_element().add(HeterogeneousParagraph(chunks_of_text)) # type: ignore [union-attr] + + # seek + context.seek(end_pos) diff --git a/ptext/toolkit/export/pdf_to_jpg.py b/borb/toolkit/export/pdf_to_jpg.py similarity index 92% rename from ptext/toolkit/export/pdf_to_jpg.py rename to borb/toolkit/export/pdf_to_jpg.py index fbcf04364..a998eeb79 100644 --- a/ptext/toolkit/export/pdf_to_jpg.py +++ b/borb/toolkit/export/pdf_to_jpg.py @@ -13,10 +13,10 @@ from PIL import Image as PILImage # type: ignore [import] from PIL import ImageDraw, ImageFont -from ptext.pdf.canvas.color.color import Color -from ptext.pdf.page.page_size import PageSize -from ptext.pdf.pdf import PDF -from ptext.toolkit.export.pdf_to_svg import PDFToSVG +from borb.pdf.canvas.color.color import Color +from borb.pdf.page.page_size import PageSize +from borb.pdf.pdf import PDF +from borb.toolkit.export.pdf_to_svg import PDFToSVG class PDFToJPG(PDFToSVG): @@ -25,14 +25,14 @@ class PDFToJPG(PDFToSVG): """ @staticmethod - def convert_pdf_to_jpg( - file: Path, - page_number: int - ) -> PILImage: + def convert_pdf_to_jpg(file: Path, page_number: int) -> PILImage: + """ + This function converts a PDF to an PIL.Image + """ l: "PDFToJPG" = PDFToJPG() with open(file, "rb") as pdf_file_handle: PDF.loads(pdf_file_handle, [l]) - return l.get_image(page_number) + return l.get_image_for_page(page_number) def __init__( self, @@ -169,7 +169,7 @@ def _render_image( # paste page_image.paste(image, (int(x), int(page_height - y - image_height))) - def get_image(self, page_nr: int) -> PILImage: + def get_image_for_page(self, page_nr: int) -> PILImage: """ This function returns the PIL.Image for a given page_nr """ diff --git a/ptext/toolkit/export/pdf_to_mp3.py b/borb/toolkit/export/pdf_to_mp3.py similarity index 86% rename from ptext/toolkit/export/pdf_to_mp3.py rename to borb/toolkit/export/pdf_to_mp3.py index 079c8eeaa..51feeea6f 100644 --- a/ptext/toolkit/export/pdf_to_mp3.py +++ b/borb/toolkit/export/pdf_to_mp3.py @@ -11,11 +11,11 @@ from gtts import gTTS # type: ignore [import] -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.structure.simple_paragraph_extraction import ( +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.structure.simple_paragraph_extraction import ( SimpleParagraphExtraction, ) @@ -26,17 +26,18 @@ class PDFToMP3(SimpleParagraphExtraction): """ @staticmethod - def convert_pdf_to_mp3( - file: Path, - page_number: int - ) -> Path: + def convert_pdf_to_mp3(file: Path, page_number: int) -> Path: + """ + This function converts a PDF to an MP3 file, returning its Path + """ l: "PDFToMP3" = PDFToMP3() with open(file, "rb") as pdf_file_handle: PDF.loads(pdf_file_handle, [l]) temporary_file: Path = Path( tempfile.NamedTemporaryFile(prefix="pdf_to_mp3", suffix=".mp3").name ) - return l.get_audio_file(page_number, str(temporary_file)) + l.get_audio_for_page(page_number, temporary_file) + return temporary_file def __init__( self, @@ -123,15 +124,12 @@ def _get_text_for_paragraph( # return return text_to_speak_for_paragraph - def get_audio_file(self, page_number: int, path: str) -> Path: + def get_audio_for_page(self, page_number: int, path: str): """ This function creates and then returns the audio-file for the text spoken at the given page """ - assert Path(path).exists() sound = gTTS( text=self._text_to_speak_for_page[page_number], lang=self._language ) - # store sound.save(path) - # return - return Path(path) + return path diff --git a/ptext/toolkit/export/pdf_to_svg.py b/borb/toolkit/export/pdf_to_svg.py similarity index 90% rename from ptext/toolkit/export/pdf_to_svg.py rename to borb/toolkit/export/pdf_to_svg.py index fb7ae7fa2..f43bcf397 100644 --- a/ptext/toolkit/export/pdf_to_svg.py +++ b/borb/toolkit/export/pdf_to_svg.py @@ -13,14 +13,14 @@ from PIL import Image as PILImage # type: ignore [import] -from ptext.pdf.canvas.color.color import Color -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.event.image_render_event import ImageRenderEvent -from ptext.pdf.page.page import Page -from ptext.pdf.page.page_size import PageSize -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.color.color import Color +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.event.image_render_event import ImageRenderEvent +from borb.pdf.page.page import Page +from borb.pdf.page.page_size import PageSize +from borb.pdf.pdf import PDF class PDFToSVG(EventListener): @@ -29,14 +29,14 @@ class PDFToSVG(EventListener): """ @staticmethod - def convert_pdf_to_svg( - file: Path, - page_number: int - ) -> ET.Element: + def convert_pdf_to_svg(file: Path, page_number: int) -> ET.Element: + """ + This function converts a PDF to an SVG ET.Element + """ l: "PDFToSVG" = PDFToSVG() with open(file, "rb") as pdf_file_handle: PDF.loads(pdf_file_handle, [l]) - return l.get_image(page_number) + return l.get_image_for_page(page_number) def __init__( self, @@ -206,7 +206,7 @@ def _render_image( assert self._svg_per_page[int(page_nr)] is not None self._svg_per_page[int(page_nr)].append(image_element) - def get_image(self, page_nr: int) -> ET.Element: + def get_image_for_page(self, page_nr: int) -> ET.Element: """ This function returns the ET.Element for a given page_nr """ diff --git a/borb/toolkit/image/__init__.py b/borb/toolkit/image/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/image/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/borb/toolkit/image/image_format_optimization.py b/borb/toolkit/image/image_format_optimization.py new file mode 100644 index 000000000..240cd3a3f --- /dev/null +++ b/borb/toolkit/image/image_format_optimization.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +This implementation of EventListener resizes all Image objects on a Page +to fit their actual dimensions (ensuring they are not bigger than they need to be) +""" +from typing import List + +import typing +from PIL import Image as PILImage # type: ignore [import] + +from borb.io.read.types import Name, add_base_methods +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.event.image_render_event import ImageRenderEvent +from borb.pdf.page.page import Page + + +class ImageFormatOptimization(EventListener): + """ + This implementation of EventListener resizes all Image objects on a Page + to fit their actual dimensions (ensuring they are not bigger than they need to be) + """ + + def __init__(self): + super(ImageFormatOptimization, self).__init__() + self._current_page: typing.Optional[Page] = None + + def _event_occurred(self, event: "Event") -> None: + if isinstance(event, BeginPageEvent): + self._current_page = event.get_page() + if isinstance(event, ImageRenderEvent): + self._render_image(event) + + def _render_image(self, image_render_event: "ImageRenderEvent"): + source_image: PILImage = image_render_event.get_image() + + # get desired width/height + w0: int = int(image_render_event.get_width()) + h0: int = int(image_render_event.get_height()) + + # get current width/height + w1: int = source_image.width + h1: int = source_image.height + + # get image resource name + assert self._current_page is not None + resource_name: typing.Optional[Name] = next( + iter( + [ + k + for k, v in self._current_page["Resources"]["XObject"].items() + if id(v) == id(source_image) + ] + ), + None, + ) + assert resource_name is not None + + # resize + if (w0 * h0) < (w1 * h1): + resized_image: PILImage = source_image.resize((w0, h0)) + add_base_methods(resized_image) + self._current_page["Resources"]["XObject"][resource_name] = resized_image + resized_image.set_parent( + self._current_page["Resources"]["XObject"][resource_name] + ) diff --git a/ptext/toolkit/image/simple_image_extraction.py b/borb/toolkit/image/simple_image_extraction.py similarity index 86% rename from ptext/toolkit/image/simple_image_extraction.py rename to borb/toolkit/image/simple_image_extraction.py index 98091835e..2d45f9213 100644 --- a/ptext/toolkit/image/simple_image_extraction.py +++ b/borb/toolkit/image/simple_image_extraction.py @@ -8,10 +8,10 @@ from PIL import Image # type: ignore [import] -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.event.image_render_event import ImageRenderEvent -from ptext.pdf.page.page import Page +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.event.image_render_event import ImageRenderEvent +from borb.pdf.page.page import Page class SimpleImageExtraction(EventListener): diff --git a/borb/toolkit/location/__init__.py b/borb/toolkit/location/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/location/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/location/location_filter.py b/borb/toolkit/location/location_filter.py similarity index 87% rename from ptext/toolkit/location/location_filter.py rename to borb/toolkit/location/location_filter.py index 0c7db415c..846f1daa5 100644 --- a/ptext/toolkit/location/location_filter.py +++ b/borb/toolkit/location/location_filter.py @@ -7,10 +7,10 @@ """ import typing -from ptext.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.event.image_render_event import ImageRenderEvent -from ptext.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.event.image_render_event import ImageRenderEvent +from borb.pdf.canvas.geometry.rectangle import Rectangle class LocationFilter(EventListener): diff --git a/borb/toolkit/ocr/__init__.py b/borb/toolkit/ocr/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/ocr/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/ocr/ocr_as_optional_content_group.py b/borb/toolkit/ocr/ocr_as_optional_content_group.py similarity index 90% rename from ptext/toolkit/ocr/ocr_as_optional_content_group.py rename to borb/toolkit/ocr/ocr_as_optional_content_group.py index ac8b18acd..d28240bf0 100644 --- a/ptext/toolkit/ocr/ocr_as_optional_content_group.py +++ b/borb/toolkit/ocr/ocr_as_optional_content_group.py @@ -11,16 +11,16 @@ from decimal import Decimal from pathlib import Path -from ptext.io.read.reference.read_xref_transformer import EndDocumentEvent -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Dictionary, List, Name, String -from ptext.pdf.canvas.datastructure.disjoint_set import disjointset -from ptext.pdf.canvas.event.event_listener import Event -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.ocr.ocr_image_render_event_listener import ( +from borb.io.read.reference.read_xref_transformer import EndDocumentEvent +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Dictionary, List, Name, String +from borb.datastructure.disjoint_set import disjointset +from borb.pdf.canvas.event.event_listener import Event +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.ocr.ocr_image_render_event_listener import ( OCREvent, OCRImageRenderEventListener, ) @@ -71,7 +71,7 @@ def _add_ocr_optional_content_group(self, document: Document) -> None: # create an Optional Content Group Dictionary ocg_dict: Dictionary = Dictionary() ocg_dict[Name("Type")] = Name("OCG") - ocg_dict[Name("Name")] = String("OCR by pText") + ocg_dict[Name("Name")] = String("OCR by borb") ocg_dict[Name("Intent")] = Name("View") document["XRef"]["Trailer"]["Root"]["OCProperties"][Name("OCGs")].append( ocg_dict diff --git a/ptext/toolkit/ocr/ocr_image_render_event_listener.py b/borb/toolkit/ocr/ocr_image_render_event_listener.py similarity index 95% rename from ptext/toolkit/ocr/ocr_image_render_event_listener.py rename to borb/toolkit/ocr/ocr_image_render_event_listener.py index 115439125..79761e12e 100644 --- a/ptext/toolkit/ocr/ocr_image_render_event_listener.py +++ b/borb/toolkit/ocr/ocr_image_render_event_listener.py @@ -11,15 +11,15 @@ from PIL import Image as PILImage # type: ignore [import] from PIL import ImageDraw -from ptext.pdf.canvas.color.color import Color, HexColor, RGBColor -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.end_page_event import EndPageEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.event.image_render_event import ImageRenderEvent -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.page.page import Page +from borb.pdf.canvas.color.color import Color, HexColor, RGBColor +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.end_page_event import EndPageEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.event.image_render_event import ImageRenderEvent +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.simple_font.font_type_1 import StandardType1Font +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.page.page import Page try: import pytesseract # type: ignore [import] diff --git a/borb/toolkit/profiling/__init__.py b/borb/toolkit/profiling/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/profiling/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/profiling/profiler_annotations.py b/borb/toolkit/profiling/profiler_annotations.py similarity index 100% rename from ptext/toolkit/profiling/profiler_annotations.py rename to borb/toolkit/profiling/profiler_annotations.py diff --git a/borb/toolkit/redact/__init__.py b/borb/toolkit/redact/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/redact/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/redact/common_regular_expressions.py b/borb/toolkit/redact/common_regular_expressions.py similarity index 100% rename from ptext/toolkit/redact/common_regular_expressions.py rename to borb/toolkit/redact/common_regular_expressions.py diff --git a/borb/toolkit/structure/__init__.py b/borb/toolkit/structure/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/structure/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/structure/pdf_diff.py b/borb/toolkit/structure/pdf_diff.py similarity index 96% rename from ptext/toolkit/structure/pdf_diff.py rename to borb/toolkit/structure/pdf_diff.py index 9aa164c21..861170690 100644 --- a/ptext/toolkit/structure/pdf_diff.py +++ b/borb/toolkit/structure/pdf_diff.py @@ -7,9 +7,9 @@ """ import typing -from ptext.io.filter.stream_decode_util import decode_stream -from ptext.io.read.types import Decimal, Dictionary, List, Name, Stream -from ptext.pdf.document import Document +from borb.io.filter.stream_decode_util import decode_stream +from borb.io.read.types import Decimal, Dictionary, List, Name, Stream +from borb.pdf.document import Document class PDFDiff: diff --git a/ptext/toolkit/structure/simple_line_of_text_extraction.py b/borb/toolkit/structure/simple_line_of_text_extraction.py similarity index 88% rename from ptext/toolkit/structure/simple_line_of_text_extraction.py rename to borb/toolkit/structure/simple_line_of_text_extraction.py index b2329989a..4f13453c2 100644 --- a/ptext/toolkit/structure/simple_line_of_text_extraction.py +++ b/borb/toolkit/structure/simple_line_of_text_extraction.py @@ -7,19 +7,19 @@ import typing from functools import cmp_to_key -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.datastructure.disjoint_set import disjointset -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.chunk_of_text_render_event import ( +from borb.io.read.types import Decimal +from borb.datastructure.disjoint_set import disjointset +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.chunk_of_text_render_event import ( ChunkOfTextRenderEvent, LeftToRightComparator, ) -from ptext.pdf.canvas.event.end_page_event import EndPageEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.text.line_of_text import LineOfText -from ptext.pdf.page.page import Page +from borb.pdf.canvas.event.end_page_event import EndPageEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.text.line_of_text import LineOfText +from borb.pdf.page.page import Page class SimpleLineOfTextExtraction(EventListener): diff --git a/ptext/toolkit/structure/simple_paragraph_extraction.py b/borb/toolkit/structure/simple_paragraph_extraction.py similarity index 92% rename from ptext/toolkit/structure/simple_paragraph_extraction.py rename to borb/toolkit/structure/simple_paragraph_extraction.py index d9da26a59..58aaa9faa 100644 --- a/ptext/toolkit/structure/simple_paragraph_extraction.py +++ b/borb/toolkit/structure/simple_paragraph_extraction.py @@ -7,12 +7,12 @@ import typing from decimal import Decimal -from ptext.pdf.canvas.datastructure.disjoint_set import disjointset -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import LayoutElement -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.page.page import Page -from ptext.toolkit.structure.simple_line_of_text_extraction import ( +from borb.datastructure.disjoint_set import disjointset +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import LayoutElement +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.page.page import Page +from borb.toolkit.structure.simple_line_of_text_extraction import ( SimpleLineOfTextExtraction, ) diff --git a/ptext/toolkit/structure/simple_table_extraction.py b/borb/toolkit/structure/simple_table_extraction.py similarity index 75% rename from ptext/toolkit/structure/simple_table_extraction.py rename to borb/toolkit/structure/simple_table_extraction.py index 71d067f06..6f1ae0ed2 100644 --- a/ptext/toolkit/structure/simple_table_extraction.py +++ b/borb/toolkit/structure/simple_table_extraction.py @@ -6,9 +6,9 @@ """ import typing -from ptext.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent -from ptext.pdf.canvas.layout.table.base_table import BaseTable -from ptext.toolkit.structure.simple_paragraph_extraction import ( +from borb.pdf.canvas.event.chunk_of_text_render_event import ChunkOfTextRenderEvent +from borb.pdf.canvas.layout.table.base_table import BaseTable +from borb.toolkit.structure.simple_paragraph_extraction import ( SimpleParagraphExtraction, ) diff --git a/borb/toolkit/text/__init__.py b/borb/toolkit/text/__init__.py new file mode 100644 index 000000000..bcf77caad --- /dev/null +++ b/borb/toolkit/text/__init__.py @@ -0,0 +1,43 @@ +""" + This file is part of the borb (R) project. + Copyright (c) 2020-2040 borb Group NV + Authors: Joris Schellekens, et al. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License version 3 + as published by the Free Software Foundation with the addition of the + following permission added to Section 15 as permitted in Section 7(a): + FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY + BORB GROUP. BORB GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT + OF THIRD PARTY RIGHTS + + 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 http://www.gnu.org/licenses or write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA, 02110-1301 USA. + + The interactive user interfaces in modified source and object code versions + of this program must display Appropriate Legal Notices, as required under + Section 5 of the GNU Affero General Public License. + In accordance with Section 7(b) of the GNU Affero General Public License, + a covered work must retain the producer line in every PDF that is created + or manipulated using borb. + + You can be released from the requirements of the license by purchasing + a commercial license. Buying such a license is mandatory as soon as you + develop commercial activities involving the borb software without + disclosing the source code of your own applications. + + These activities include: offering paid services to customers as an ASP, + serving PDFs on the fly in a web application, shipping borb with a closed + source product. + + For more information, please contact borb Software Corp. at this + address: joris.schellekens.1989@gmail.com +""" diff --git a/ptext/toolkit/text/font_extraction.py b/borb/toolkit/text/font_extraction.py similarity index 91% rename from ptext/toolkit/text/font_extraction.py rename to borb/toolkit/text/font_extraction.py index 903edfced..ba32ab254 100644 --- a/ptext/toolkit/text/font_extraction.py +++ b/borb/toolkit/text/font_extraction.py @@ -8,9 +8,9 @@ import typing from typing import List -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.font.font import Font +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.font.font import Font class FontExtraction(EventListener): diff --git a/ptext/toolkit/text/regular_expression_text_extraction.py b/borb/toolkit/text/regular_expression_text_extraction.py similarity index 97% rename from ptext/toolkit/text/regular_expression_text_extraction.py rename to borb/toolkit/text/regular_expression_text_extraction.py index c6e147825..103dfabdb 100644 --- a/ptext/toolkit/text/regular_expression_text_extraction.py +++ b/borb/toolkit/text/regular_expression_text_extraction.py @@ -10,15 +10,15 @@ from functools import cmp_to_key from typing import List -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.chunk_of_text_render_event import ( +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.chunk_of_text_render_event import ( ChunkOfTextRenderEvent, LeftToRightComparator, ) -from ptext.pdf.canvas.event.end_page_event import EndPageEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.page.page import Page +from borb.pdf.canvas.event.end_page_event import EndPageEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.page.page import Page class PDFMatch: diff --git a/ptext/toolkit/text/simple_non_ligature_text_extraction.py b/borb/toolkit/text/simple_non_ligature_text_extraction.py similarity index 96% rename from ptext/toolkit/text/simple_non_ligature_text_extraction.py rename to borb/toolkit/text/simple_non_ligature_text_extraction.py index bfe2fb31f..eb0a910e1 100644 --- a/ptext/toolkit/text/simple_non_ligature_text_extraction.py +++ b/borb/toolkit/text/simple_non_ligature_text_extraction.py @@ -7,7 +7,7 @@ """ import typing -from ptext.toolkit.text.simple_text_extraction import SimpleTextExtraction +from borb.toolkit.text.simple_text_extraction import SimpleTextExtraction class SimpleNonLigatureTextExtraction(SimpleTextExtraction): diff --git a/ptext/toolkit/text/simple_text_extraction.py b/borb/toolkit/text/simple_text_extraction.py similarity index 92% rename from ptext/toolkit/text/simple_text_extraction.py rename to borb/toolkit/text/simple_text_extraction.py index 6f7802232..19b3b0626 100644 --- a/ptext/toolkit/text/simple_text_extraction.py +++ b/borb/toolkit/text/simple_text_extraction.py @@ -9,14 +9,14 @@ import typing -from ptext.pdf.canvas.event.begin_page_event import BeginPageEvent -from ptext.pdf.canvas.event.chunk_of_text_render_event import ( +from borb.pdf.canvas.event.begin_page_event import BeginPageEvent +from borb.pdf.canvas.event.chunk_of_text_render_event import ( ChunkOfTextRenderEvent, LeftToRightComparator, ) -from ptext.pdf.canvas.event.end_page_event import EndPageEvent -from ptext.pdf.canvas.event.event_listener import Event, EventListener -from ptext.pdf.page.page import Page +from borb.pdf.canvas.event.end_page_event import EndPageEvent +from borb.pdf.canvas.event.event_listener import Event, EventListener +from borb.pdf.page.page import Page class SimpleTextExtraction(EventListener): diff --git a/ptext/toolkit/text/stop_words.py b/borb/toolkit/text/stop_words.py similarity index 100% rename from ptext/toolkit/text/stop_words.py rename to borb/toolkit/text/stop_words.py diff --git a/ptext/toolkit/text/tf_idf_keyword_extraction.py b/borb/toolkit/text/tf_idf_keyword_extraction.py similarity index 98% rename from ptext/toolkit/text/tf_idf_keyword_extraction.py rename to borb/toolkit/text/tf_idf_keyword_extraction.py index 97530248e..9cb2330b0 100644 --- a/ptext/toolkit/text/tf_idf_keyword_extraction.py +++ b/borb/toolkit/text/tf_idf_keyword_extraction.py @@ -26,8 +26,8 @@ from math import log from typing import List, Optional -from ptext.pdf.page.page import Page -from ptext.toolkit.text.simple_text_extraction import SimpleTextExtraction +from borb.pdf.page.page import Page +from borb.toolkit.text.simple_text_extraction import SimpleTextExtraction class TFIDFKeyword: diff --git a/main.py b/main.py index c4681cb51..5c6e52b6a 100644 --- a/main.py +++ b/main.py @@ -6,17 +6,16 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.page_layout import PageLayout, SingleColumnLayout -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.image.simple_image_extraction import SimpleImageExtraction -from ptext.toolkit.ocr.ocr_as_optional_content_group import \ - OCRAsOptionalContentGroup -from ptext.toolkit.text.regular_expression_text_extraction import \ - RegularExpressionTextExtraction -from ptext.toolkit.text.simple_text_extraction import SimpleTextExtraction +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.image.simple_image_extraction import SimpleImageExtraction +from borb.toolkit.ocr.ocr_as_optional_content_group import OCRAsOptionalContentGroup +from borb.toolkit.text.regular_expression_text_extraction import RegularExpressionTextExtraction +from borb.toolkit.text.simple_text_extraction import SimpleTextExtraction def _build_output_path(input_file: Path, extension: str = "pdf") -> Path: @@ -203,7 +202,7 @@ def main(): # build main parser parser = argparse.ArgumentParser( - description="pText", formatter_class=RawTextHelpFormatter + description="borb", formatter_class=RawTextHelpFormatter ) command_sub_parser = parser.add_subparsers(dest="command", help="Command Name") diff --git a/ptext/io/read/font/__init__.py b/ptext/io/read/font/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/font/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/function/__init__.py b/ptext/io/read/function/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/function/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/image/__init__.py b/ptext/io/read/image/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/image/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/metadata/__init__.py b/ptext/io/read/metadata/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/metadata/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/object/__init__.py b/ptext/io/read/object/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/object/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/page/__init__.py b/ptext/io/read/page/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/page/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/postfix/__init__.py b/ptext/io/read/postfix/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/postfix/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/primitive/__init__.py b/ptext/io/read/primitive/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/primitive/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/reference/__init__.py b/ptext/io/read/reference/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/reference/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/read/tokenize/__init__.py b/ptext/io/read/tokenize/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/read/tokenize/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/write/__init__.py b/ptext/io/write/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/write/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/write/ascii_art/__init__.py b/ptext/io/write/ascii_art/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/write/ascii_art/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/write/ascii_art/ascii_logo.txt b/ptext/io/write/ascii_art/ascii_logo.txt deleted file mode 100644 index f3955206c..000000000 --- a/ptext/io/write/ascii_art/ascii_logo.txt +++ /dev/null @@ -1,2 +0,0 @@ -pText version 2.0.0 -Joris Schellekens \ No newline at end of file diff --git a/ptext/io/write/image/__init__.py b/ptext/io/write/image/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/write/image/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/write/object/__init__.py b/ptext/io/write/object/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/write/object/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/write/page/__init__.py b/ptext/io/write/page/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/write/page/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/write/primitive/__init__.py b/ptext/io/write/primitive/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/write/primitive/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/write/reference/__init__.py b/ptext/io/write/reference/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/write/reference/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/io/write/xmp/__init__.py b/ptext/io/write/xmp/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/io/write/xmp/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/__init__.py b/ptext/pdf/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/__init__.py b/ptext/pdf/canvas/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/color/__init__.py b/ptext/pdf/canvas/color/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/color/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/datastructure/__init__.py b/ptext/pdf/canvas/datastructure/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/datastructure/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/event/__init__.py b/ptext/pdf/canvas/event/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/event/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/font/__init__.py b/ptext/pdf/canvas/font/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/font/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/font/composite_font/__init__.py b/ptext/pdf/canvas/font/composite_font/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/font/composite_font/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/font/composite_font/cmaps/__init__.py b/ptext/pdf/canvas/font/composite_font/cmaps/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/font/composite_font/cmaps/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/font/simple_font/__init__.py b/ptext/pdf/canvas/font/simple_font/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/font/simple_font/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/font/simple_font/afm/__init__.py b/ptext/pdf/canvas/font/simple_font/afm/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/font/simple_font/afm/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/font/simple_font/true_type_font.py b/ptext/pdf/canvas/font/simple_font/true_type_font.py deleted file mode 100644 index 6ea3c5c53..000000000 --- a/ptext/pdf/canvas/font/simple_font/true_type_font.py +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -""" -The TrueType font format was developed by Apple Computer, Inc., and has been adopted as a standard font -format for the Microsoft Windows operating system. Specifications for the TrueType font file format are -available in Apple’s TrueType Reference Manual and Microsoft’s TrueType 1.0 Font Files Technical -Specification (see Bibliography). -""" -import typing -import zlib -from decimal import Decimal -from pathlib import Path - -from fontTools.ttLib import TTFont # type: ignore [import] - -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Dictionary, List, Name, Stream, String -from ptext.pdf.canvas.font.simple_font.font_type_1 import Type1Font - - -class TrueTypeFont(Type1Font): - """ - A TrueType font dictionary may contain the same entries as a Type 1 font dictionary (see Table 111), with these - differences: - • The value of Subtype shall be TrueType. - • The value of Encoding is subject to limitations that are described in 9.6.6, "Character Encoding". - • The value of BaseFont is derived differently. The PostScript name for the value of BaseFont may be determined in one of two ways: - • If the TrueType font program's “name” table contains a PostScript name, it shall be used. - • In the absence of such an entry in the “name” table, a PostScript name shall be derived from the name by - which the font is known in the host operating system. On a Windows system, the name shall be based on - the lfFaceName field in a LOGFONT structure; in the Mac OS, it shall be based on the name of the FOND - resource. If the name contains any SPACEs, the SPACEs shall be removed. - """ - - @staticmethod - def true_type_font_from_file(path_to_font_file: Path) -> "TrueTypeFont": - """ - This function returns the PDF TrueTypeFont object for a given TTF file - """ - assert path_to_font_file.exists() - assert path_to_font_file.name.endswith(".ttf") - - font_file_bytes: typing.Optional[bytes] = None - with open(path_to_font_file, "rb") as ffh: - font_file_bytes = ffh.read() - assert font_file_bytes - - # read file - ttf_font_file = TTFont(path_to_font_file) - - # build font - font: TrueTypeFont = TrueTypeFont() - font_name: str = str( - [ - x - for x in ttf_font_file["name"].names - if x.platformID == 3 and x.nameID == 1 - ][0].string, - "latin1", - ) - font_name = "".join( - [x for x in font_name if x.lower() in "abcdefghijklmnopqrstuvwxyz"] - ) - - font[Name("Name")] = Name(font_name) - font[Name("BaseFont")] = Name(font_name) - - cmap: typing.Optional[typing.Dict[int, str]] = ttf_font_file.getBestCmap() - assert cmap is not None - cmap_reverse: typing.Dict[str, int] = {} - for k, v in cmap.items(): - if v in cmap_reverse: - cmap_reverse[v] = min(cmap_reverse[v], k) - else: - cmap_reverse[v] = k - glyph_order: typing.List[str] = [ - x for x in ttf_font_file.glyphOrder if x in cmap_reverse - ] - - # build widths - units_per_em: pDecimal = pDecimal(ttf_font_file["head"].unitsPerEm) - if cmap is not None: - font[Name("FirstChar")] = pDecimal(0) - font[Name("LastChar")] = pDecimal(len(glyph_order)) - font[Name("Widths")] = List() - for glyph_name in glyph_order: - w: typing.Union[pDecimal, Decimal] = ( - pDecimal(ttf_font_file.getGlyphSet()[glyph_name].width) - / units_per_em - ) * Decimal(1000) - w = pDecimal(round(w, 2)) - font["Widths"].append(w) - - font[Name("FontDescriptor")] = Dictionary() - font["FontDescriptor"][Name("Type")] = Name("FontDescriptor") - font["FontDescriptor"][Name("FontName")] = String(font_name) - font["FontDescriptor"][Name("FontStretch")] = Name("Normal") # TODO - font["FontDescriptor"][Name("FontWeight")] = pDecimal(400) # TODO - font["FontDescriptor"][Name("Flags")] = pDecimal(4) # TODO - font["FontDescriptor"][Name("FontBBox")] = List().set_can_be_referenced( # type: ignore [attr-defined] - False - ) # TODO - for _ in range(0, 4): - font["FontDescriptor"]["FontBBox"].append(pDecimal(0)) - - # fmt: off - font["FontDescriptor"][Name("ItalicAngle")] = pDecimal(ttf_font_file["post"].italicAngle) - font["FontDescriptor"][Name("Ascent")] = pDecimal(pDecimal(ttf_font_file["hhea"].ascent) / units_per_em * Decimal(1000)) - font["FontDescriptor"][Name("Descent")] = pDecimal(pDecimal(ttf_font_file["hhea"].descent) / units_per_em * Decimal(1000)) - font["FontDescriptor"][Name("CapHeight")] = pDecimal(0) # TODO - font["FontDescriptor"][Name("StemV")] = pDecimal(0) # TODO - # fmt: on - - font[Name("Encoding")] = Dictionary() - font["Encoding"][Name("BaseEncoding")] = Name("WinAnsiEncoding") - font["Encoding"][Name("Differences")] = List() - for i in range(0, len(glyph_order)): - font["Encoding"]["Differences"].append(pDecimal(i)) - font["Encoding"]["Differences"].append(Name(glyph_order[i])) - - # embed font file - font_stream: Stream = Stream() - font_stream[Name("Type")] = Name("Font") - font_stream[Name("Subtype")] = Name("TrueType") - font_stream[Name("Length")] = pDecimal(len(font_file_bytes)) - font_stream[Name("Length1")] = pDecimal(len(font_file_bytes)) - font_stream[Name("Filter")] = Name("FlateDecode") - font_stream[Name("DecodedBytes")] = font_file_bytes - font_stream[Name("Bytes")] = zlib.compress(font_file_bytes, 9) - - font["FontDescriptor"][Name("FontFile2")] = font_stream - - # return - return font - - def __init__(self): - super(TrueTypeFont, self).__init__() - self[Name("Subtype")] = Name("TrueType") - - def _empty_copy(self) -> "Font": # type: ignore [name-defined] - return TrueTypeFont() - - def __deepcopy__(self, memodict={}): - # fmt: off - f_out: TrueTypeFont = super(TrueTypeFont, self).__deepcopy__(memodict) - f_out[Name("Subtype")] = Name("TrueType") - f_out._character_identifier_to_unicode_lookup: typing.Dict[int, str] = {k: v for k, v in self._character_identifier_to_unicode_lookup.items()} - f_out._unicode_lookup_to_character_identifier: typing.Dict[str, int] = {k: v for k, v in self._unicode_lookup_to_character_identifier.items()} - return f_out - # fmt: on diff --git a/ptext/pdf/canvas/geometry/__init__.py b/ptext/pdf/canvas/geometry/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/geometry/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/layout/__init__.py b/ptext/pdf/canvas/layout/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/layout/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/layout/emoji/__init__.py b/ptext/pdf/canvas/layout/emoji/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/layout/emoji/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/layout/emoji/resources/__init__.py b/ptext/pdf/canvas/layout/emoji/resources/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/layout/emoji/resources/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/layout/image/__init__.py b/ptext/pdf/canvas/layout/image/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/layout/image/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/layout/list/__init__.py b/ptext/pdf/canvas/layout/list/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/layout/list/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/layout/page_layout/__init__.py b/ptext/pdf/canvas/layout/page_layout/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/layout/page_layout/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/layout/table/__init__.py b/ptext/pdf/canvas/layout/table/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/layout/table/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/layout/text/__init__.py b/ptext/pdf/canvas/layout/text/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/layout/text/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/line_art/__init__.py b/ptext/pdf/canvas/line_art/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/line_art/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/__init__.py b/ptext/pdf/canvas/operator/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/color/__init__.py b/ptext/pdf/canvas/operator/color/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/color/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/compatibility/__init__.py b/ptext/pdf/canvas/operator/compatibility/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/compatibility/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/marked_content/__init__.py b/ptext/pdf/canvas/operator/marked_content/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/marked_content/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/path_construction/__init__.py b/ptext/pdf/canvas/operator/path_construction/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/path_construction/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/path_painting/__init__.py b/ptext/pdf/canvas/operator/path_painting/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/path_painting/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/state/__init__.py b/ptext/pdf/canvas/operator/state/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/state/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/text/__init__.py b/ptext/pdf/canvas/operator/text/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/text/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/canvas/operator/xobject/__init__.py b/ptext/pdf/canvas/operator/xobject/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/canvas/operator/xobject/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/page/__init__.py b/ptext/pdf/page/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/page/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/trailer/__init__.py b/ptext/pdf/trailer/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/trailer/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/pdf/xref/__init__.py b/ptext/pdf/xref/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/pdf/xref/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/__init__.py b/ptext/toolkit/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/color/__init__.py b/ptext/toolkit/color/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/color/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/__init__.py b/ptext/toolkit/export/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/__init__.py b/ptext/toolkit/export/html_to_pdf/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/any_tag_transformer.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/any_tag_transformer.py deleted file mode 100644 index 9798e4b67..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/any_tag_transformer.py +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" - This class acts as an aggregator for all BaseTagTransformer implementations. - Any of the (supported) HTML tags should be able to be transformed by this BaseTagTransformer. -""" -# fmt: off -from ptext.toolkit.export.html_to_pdf.tag_transformer.base_tag_transformer import BaseTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.body.body_tag_transformer import BodyTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.head.head_tag_transformer import HeadTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.head.meta_tag_transformer import MetaTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.head.title_tag_transformer import TitleTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.heading.h1_tag_transformer import H1TagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.heading.h2_tag_transformer import H2TagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.heading.h3_tag_transformer import H3TagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.heading.h4_tag_transformer import H4TagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.heading.h5_tag_transformer import H5TagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.heading.h6_tag_transformer import H6TagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.heading.hr_tag_transformer import HrTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.html_tag_transformer import HTMLTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.image.img_tag_transformer import ImgTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.list.li_tag_transformer import LiTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.list.ol_tag_transformer import OlTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.list.ul_tag_transformer import UlTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.structure.address_tag_transformer import AddressTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.structure.main_tag_transformer import MainTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.structure.section_tag_transformer import SectionTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.table.table_tag_transformer import TableTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.table.tbody_tag_transformer import TBodyTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.table.td_tag_transformer import TdTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.table.th_tag_transformer import ThTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.table.tr_tag_transformer import TrTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.a_tag_transformer import ATagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.abbr_tag_transformer import AbbrTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.bold.b_tag_transformer import BTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.bold.strong_tag_transformer import StrongTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.br_tag_transformer import BrTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.code_tag_transformer import CodeTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.italic.em_tag_transformer import EmTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.italic.i_tag_transformer import ITagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.mark_tag_transformer import MarkTagTransformer -from ptext.toolkit.export.html_to_pdf.tag_transformer.text.p_tag_transformer import PTagTransformer -# fmt: on - - -class AnyTagTransformer(BaseTagTransformer): - """ - This class acts as an aggregator for all BaseTagTransformer implementations. - Any of the (supported) HTML tags should be able to be transformed by this BaseTagTransformer. - """ - - def __init__(self): - super(AnyTagTransformer, self).__init__() - self.add_child(HTMLTagTransformer()) - - # head - self.add_child(HeadTagTransformer()) - self.add_child(MetaTagTransformer()) - self.add_child(TitleTagTransformer()) - - # body - self.add_child(BodyTagTransformer()) - - # heading - self.add_child(H1TagTransformer()) - self.add_child(H2TagTransformer()) - self.add_child(H3TagTransformer()) - self.add_child(H4TagTransformer()) - self.add_child(H5TagTransformer()) - self.add_child(H6TagTransformer()) - self.add_child(HrTagTransformer()) - - # bold - self.add_child(BTagTransformer()) - self.add_child(StrongTagTransformer()) - - # special formatting - self.add_child(BrTagTransformer()) - self.add_child(AbbrTagTransformer()) - self.add_child(MarkTagTransformer()) - self.add_child(CodeTagTransformer()) - - # italic - self.add_child(ITagTransformer()) - self.add_child(EmTagTransformer()) - - # link - self.add_child(ATagTransformer()) - - # paragraph - self.add_child(PTagTransformer()) - - # list - self.add_child(OlTagTransformer()) - self.add_child(UlTagTransformer()) - self.add_child(LiTagTransformer()) - - # table - self.add_child(TableTagTransformer()) - self.add_child(TBodyTagTransformer()) - self.add_child(TrTagTransformer()) - self.add_child(ThTagTransformer()) - self.add_child(TdTagTransformer()) - - # image - self.add_child(ImgTagTransformer()) - - # structure elements - self.add_child(MainTagTransformer()) - self.add_child(SectionTagTransformer()) - self.add_child(AddressTagTransformer()) diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/body/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/body/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/body/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/head/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/head/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/head/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/heading/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/list/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/list/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/list/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/structure/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/table/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/table/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/text/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/bold/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/__init__.py b/ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/export/html_to_pdf/tag_transformer/text/italic/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/export/markdown_to_pdf.py b/ptext/toolkit/export/markdown_to_pdf.py deleted file mode 100644 index c2fac48f4..000000000 --- a/ptext/toolkit/export/markdown_to_pdf.py +++ /dev/null @@ -1,567 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" - This class converts Markdown to PDF. -""" -import re -import typing -from decimal import Decimal - -from ptext.pdf.canvas.color.color import HexColor, Color -from ptext.pdf.canvas.layout.horizontal_rule import HorizontalRule -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.list.ordered_list import OrderedList -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.base_table import BaseTable -from ptext.pdf.canvas.layout.table.fixed_column_width_table import FixedColumnWidthTable -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page - - -class MarkdownToPDF: - """ - This class converts Markdown to PDF. - """ - - @staticmethod - def _handle_heading( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - if markdown_input[position].startswith("#"): - heading_level: int = sum([1 for c in markdown_input[position] if c == "#"]) - assert 1 <= heading_level <= 6, "Unsupported heading level." - heading_level_font_size: Decimal = { - 1: Decimal(27), - 2: Decimal(21), - 3: Decimal(18), - 4: Decimal(15), - 5: Decimal(12), - 6: Decimal(12), - }.get(heading_level, Decimal(12)) - heading_level_font_color: Color = HexColor("333333") - if heading_level == 6: - heading_level_font_color = HexColor("777777") - layout.add( - Heading( - markdown_input[position].replace("#", "").strip(), - font_size=heading_level_font_size, - font_color=heading_level_font_color, - outline_level=(heading_level - 1), - ) - ) - if heading_level == 1 or heading_level == 2: - layout.add(HorizontalRule()) - position += 1 - return position - - @staticmethod - def _handle_unordered_list( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - list_symbol: str = "*", - ) -> int: - N: int = len(markdown_input) - if markdown_input[position].startswith(" " + list_symbol + " "): - unordered_list_items_001: typing.List[str] = [] - while position < N and markdown_input[position].startswith( - " " + list_symbol + " " - ): - unordered_list_items_001.append(markdown_input[position][4:]) - position += 1 - ul_001: UnorderedList = UnorderedList() - for li in unordered_list_items_001: - ul_001.add(Paragraph(li)) - layout.add(ul_001) - return position - - @staticmethod - def _handle_ordered_list( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - N: int = len(markdown_input) - p: re.Pattern = re.compile(" [123456789][1234567890]*\\. .*") - if p.match(markdown_input[position]): - list_items: typing.List[str] = [] - while position < N and p.match(markdown_input[position]): - line: str = markdown_input[position] - list_items.append(line[line.index(".") + 1 :]) - position += 1 - ul: OrderedList = OrderedList() - for li in list_items: - ul.add(Paragraph(li)) - layout.add(ul) - return position - - @staticmethod - def _handle_blockquote( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - N: int = len(markdown_input) - if markdown_input[position].startswith("> "): - blockquote_items: typing.List[str] = [] - while position < N and markdown_input[position].startswith("> "): - blockquote_items.append(markdown_input[position][2:]) - position += 1 - layout.add( - Paragraph( - "".join([(x + "\n") for x in blockquote_items]), - font="Helvetica", - respect_newlines_in_text=True, - border_color=HexColor("777777"), - font_color=HexColor("777777"), - border_left=True, - border_top=False, - border_right=False, - border_bottom=False, - padding_left=Decimal(10), - border_width=Decimal(3), - ) - ) - return position - - @staticmethod - def _handle_indented_code_snippet( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - N: int = len(markdown_input) - if markdown_input[position].startswith(" "): - code_snippet_items_001: typing.List[str] = [] - while position < N and markdown_input[position].startswith(" "): - code_snippet_items_001.append(markdown_input[position][4:]) - position += 1 - layout.add( - Paragraph( - "".join([(x + "\n") for x in code_snippet_items_001]), - font="Courier", - respect_newlines_in_text=True, - background_color=HexColor("e2e2e2"), - font_color=HexColor("333333"), - padding_top=Decimal(10), - padding_right=Decimal(10), - padding_bottom=Decimal(10), - padding_left=Decimal(10), - ) - ) - return position - - @staticmethod - def _handle_fenced_code_snippet( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - N: int = len(markdown_input) - if markdown_input[position].startswith("```"): - position += 1 - code_snippet_items_002: typing.List[str] = [] - while position < N and not markdown_input[position].startswith("```"): - code_snippet_items_002.append(markdown_input[position]) - position += 1 - layout.add( - Paragraph( - "".join([(x + "\n") for x in code_snippet_items_002]), - font="Courier", - respect_newlines_in_text=True, - background_color=HexColor("e2e2e2"), - font_color=HexColor("333333"), - padding_top=Decimal(10), - padding_right=Decimal(10), - padding_bottom=Decimal(10), - padding_left=Decimal(10), - ) - ) - position += 1 # process trailing fences - return position - - @staticmethod - def _handle_image_link( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - # fmt: off - image_pattern: re.Pattern = re.compile('!\\[(?P[^])]+)]\\((?P[^ ]+) "[^"]+"\\)') - image_pattern_match: typing.Optional[re.Match] = image_pattern.match(markdown_input[position]) - # fmt: on - if image_pattern_match: - image: Image = Image(image_pattern_match["url"]) - if image._width > Decimal(475) or image._height > Decimal( - 293 - ): # size of A4 page minus margins - horizontal_scale_factor: Decimal = Decimal(475) / image._width - vertical_scale_factor: Decimal = Decimal(293) / image._height - image._width *= min(horizontal_scale_factor, vertical_scale_factor) - image._height *= min(horizontal_scale_factor, vertical_scale_factor) - layout.add(image) - position += 1 - return position - - @staticmethod - def _handle_horizontal_rule( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - if markdown_input[position] in ["---", " ---", " ---", " ---"]: - layout.add(HorizontalRule()) - position += 1 - return position - - @staticmethod - def _handle_table( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - N: int = len(markdown_input) - if markdown_input[position].startswith("|") and markdown_input[ - position - ].endswith("|"): - table_data: typing.List[typing.List[str]] = [] - table_column_alignment: typing.List[Alignment] = [] - j: int = 0 - while ( - position < N - and markdown_input[position].startswith("|") - and markdown_input[position].endswith("|") - ): - row_data: typing.List[str] = [ - x.strip() for x in markdown_input[position][1:-1].split("|") - ] - assert len(table_data) == 0 or len(table_data[-1]) == len(row_data) - - # alignment information - if j == 1 and all( - [ - len(x.replace("-", "").replace(":", "").replace(" ", "")) == 0 - for x in row_data - ] - ): - for k in range(0, len(row_data)): - if row_data[k].startswith(":") and row_data[k].endswith(":"): - table_column_alignment.append(Alignment.CENTERED) - elif row_data[k].startswith(":"): - table_column_alignment.append(Alignment.LEFT) - elif row_data[k].endswith(":"): - table_column_alignment.append(Alignment.RIGHT) - else: - table_column_alignment.append(Alignment.LEFT) - position += 1 - j += 1 - continue - # regular data - table_data.append(row_data) - position += 1 - j += 1 - - # build table from array of str - table: BaseTable = FixedColumnWidthTable( - number_of_rows=len(table_data), number_of_columns=len(table_data[0]) - ) - for r in range(0, len(table_data)): - for c in range(0, len(table_data[r])): - if r == 0: - table.add( - Paragraph( - table_data[r][c], - font="Helvetica-Bold", - font_color=HexColor("333333"), - text_alignment=table_column_alignment[c], - ) - ) - else: - table.add( - Paragraph( - table_data[r][c], - text_alignment=table_column_alignment[c], - font_color=HexColor("333333"), - ) - ) - - table.set_padding_on_all_cells( - Decimal(5), Decimal(5), Decimal(5), Decimal(5) - ) - table.set_border_color_on_all_cells(HexColor("dddddd")) - table.even_odd_row_colors(HexColor("f8f8f8"), HexColor("ffffff")) - layout.add(table) - return position - - @staticmethod - def _handle_paragraph( - markdown_input: typing.List[str], - position: int, - document: Document, - layout: PageLayout, - ) -> int: - N: int = len(markdown_input) - paragraph_items: typing.List[str] = [] - while position < N and markdown_input[position].strip() != "": - paragraph_items.append(markdown_input[position]) - position += 1 - if len(paragraph_items) == 0: - return position - - # get paragraph text - paragraph_text: str = "".join([(x + "\n") for x in paragraph_items]) - - # heterogeneous paragraph - if ( - sum([1 for c in paragraph_text if c == "*"]) >= 2 - or sum([1 for c in paragraph_text if c == "_"]) >= 2 - or sum([1 for c in paragraph_text if c == "`"]) >= 2 - ): - word_being_built: str = "" - prev_italic_char: str = "" - is_italic: bool = False - prev_bold_char: str = "" - is_bold: bool = False - is_code: bool = False - chunks_of_text: typing.List[ChunkOfText] = [] - - def _get_font_name(): - if is_italic and is_bold: - return "Helvetica-bold-oblique" - elif is_italic: - return "Helvetica-oblique" - elif is_bold: - return "Helvetica-bold" - elif is_code: - return "Courier" - else: - return "Helvetica" - - i: int = 0 - while i < len(paragraph_text): - if paragraph_text[i] == " ": - word_being_built += paragraph_text[i] - if is_code: - chunks_of_text.append( - ChunkOfText( - word_being_built, - font=_get_font_name(), - background_color=HexColor("e2e2e2"), - font_color=HexColor("333333"), - ) - ) - else: - chunks_of_text.append( - ChunkOfText(word_being_built, font=_get_font_name()) - ) - word_being_built = "" - i += 1 - continue - # toggle code "`" - if paragraph_text[i : (i + 1)] == "`": - if is_code: - chunks_of_text.append( - ChunkOfText( - word_being_built, - font=_get_font_name(), - background_color=HexColor("D3D3D3"), - ) - ) - word_being_built = "" - else: - assert not is_bold, "illegal nesting of operators" - assert not is_italic, "illegal nesting of operators" - is_code = not is_code - i += 1 - continue - # toggle bold "**" - if paragraph_text[i : (i + 2)] == "**": - if is_bold: - assert ( - prev_bold_char == "*" - ), "mismatched end of BOLD style, expected **" - prev_bold_char = "" - chunks_of_text.append( - ChunkOfText(word_being_built, font=_get_font_name()) - ) - word_being_built = "" - else: - prev_bold_char = "*" - is_bold = not is_bold - i += 2 - continue - # toggle bold "__" - if paragraph_text[i : (i + 2)] == "__": - if is_bold: - assert ( - prev_bold_char == "_" - ), "mismatched end of BOLD style, expected __" - prev_bold_char = "" - chunks_of_text.append( - ChunkOfText(word_being_built, font=_get_font_name()) - ) - word_being_built = "" - else: - prev_bold_char = "_" - is_bold = not is_bold - i += 2 - continue - # toggle italic "*" - if paragraph_text[i : (i + 1)] == "*": - if is_italic: - assert ( - prev_italic_char == "*" - ), "mismatched end of ITALIC style, expected *" - prev_italic_char = "" - chunks_of_text.append( - ChunkOfText(word_being_built, font=_get_font_name()) - ) - word_being_built = "" - else: - prev_italic_char = "*" - is_italic = not is_italic - i += 1 - continue - # toggle italic "_" - if paragraph_text[i : (i + 1)] == "_": - if is_italic: - assert ( - prev_italic_char == "_" - ), "mismatched end of ITALIC style, expected _" - prev_italic_char = "" - chunks_of_text.append( - ChunkOfText(word_being_built, font=_get_font_name()) - ) - word_being_built = "" - else: - prev_italic_char = "_" - is_italic = not is_italic - i += 1 - continue - word_being_built += paragraph_text[i] - i += 1 - assert not is_bold, "missing end of BOLD style" - assert not is_italic, "missing end of ITALIC style" - if len(word_being_built) > 0: - chunks_of_text.append( - ChunkOfText(word_being_built, font=_get_font_name()) - ) - layout.add(HeterogeneousParagraph(chunks_of_text)) - else: - # homogeneous paragraph - layout.add( - Paragraph( - paragraph_text, - respect_newlines_in_text=True, - ) - ) - - return position - - @staticmethod - def convert_markdown_to_pdf(markdown_str: str) -> Document: - """ - This function converts a markdown document to a PDF Document - """ - - # create new Document - document: Document = Document() - - # create empty Page - page: Page = Page() - document.append_page(page) - - # select a layout manager - layout: PageLayout = SingleColumnLayout(page) - - lines: typing.List[str] = markdown_str.split("\n") - i: int = 0 - N: int = len(lines) - while i < N: - - # handle heading - j: int = i - j = MarkdownToPDF._handle_heading(lines, i, document, layout) - if j != i: - i = j - continue - - # handle lists - j = MarkdownToPDF._handle_unordered_list(lines, i, document, layout, "*") - if j != i: - i = j - continue - j = MarkdownToPDF._handle_unordered_list(lines, i, document, layout, "-") - if j != i: - i = j - continue - j = MarkdownToPDF._handle_unordered_list(lines, i, document, layout, "+") - if j != i: - i = j - continue - j = MarkdownToPDF._handle_ordered_list(lines, i, document, layout) - if j != i: - i = j - continue - - # blockquote - j = MarkdownToPDF._handle_blockquote(lines, i, document, layout) - if j != i: - i = j - continue - - # code - j = MarkdownToPDF._handle_indented_code_snippet(lines, i, document, layout) - if j != i: - i = j - continue - j = MarkdownToPDF._handle_fenced_code_snippet(lines, i, document, layout) - if j != i: - i = j - continue - - # image - j = MarkdownToPDF._handle_image_link(lines, i, document, layout) - if j != i: - i = j - continue - j = MarkdownToPDF._handle_horizontal_rule(lines, i, document, layout) - if j != i: - i = j - continue - - # table - j = MarkdownToPDF._handle_table(lines, i, document, layout) - if j != i: - i = j - continue - - # paragraph - j = MarkdownToPDF._handle_paragraph(lines, i, document, layout) - if j != i: - i = j - continue - - # move to next line (if needed) - i += 1 - - return document diff --git a/ptext/toolkit/export/pdf_to_html.py b/ptext/toolkit/export/pdf_to_html.py deleted file mode 100644 index d97575dae..000000000 --- a/ptext/toolkit/export/pdf_to_html.py +++ /dev/null @@ -1,66 +0,0 @@ -import typing -from decimal import Decimal -from pathlib import Path - -from PIL import Image as PILImage # type: ignore [import] -import xml.etree.ElementTree as ET - -from ptext.pdf.canvas.color.color import Color -from ptext.pdf.pdf import PDF -from ptext.toolkit.export.pdf_to_svg import PDFToSVG - - -class PDFToHTML(PDFToSVG): - @staticmethod - def convert_pdf_to_html( - file: Path, - page_number: int - ) -> ET.Element: - l: "PDFToHTML" = PDFToHTML() - with open(file, "rb") as pdf_file_handle: - PDF.loads(pdf_file_handle, [l]) - return l.get_html(page_number) - - def __init__(self): - super(PDFToHTML, self).__init__() - self._html_per_page: typing.Dict[int, ET.Element] = {} - - def _begin_page( - self, page_nr: Decimal, page_width: Decimal, page_height: Decimal - ) -> None: - self._html_per_page[int(page_nr)] = ET.fromstring( - "" - ) - - def _render_image( - self, - page_nr: Decimal, - page_width: Decimal, - page_height: Decimal, - x: Decimal, - y: Decimal, - image_width: Decimal, - image_height: Decimal, - image: PILImage, - ): - pass - - def _render_text( - self, - page_nr: Decimal, - page_width: Decimal, - page_height: Decimal, - x: Decimal, - y: Decimal, - font_color: Color, - font_size: Decimal, - font_name: str, - bold: bool, - italic: bool, - text: str, - ): - pass - - def get_html(self, page_nr: int) -> ET.Element: - assert page_nr in self._html_per_page - return self._html_per_page[page_nr] diff --git a/ptext/toolkit/image/__init__.py b/ptext/toolkit/image/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/image/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/location/__init__.py b/ptext/toolkit/location/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/location/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/ocr/__init__.py b/ptext/toolkit/ocr/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/ocr/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/profiling/__init__.py b/ptext/toolkit/profiling/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/profiling/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/redact/__init__.py b/ptext/toolkit/redact/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/redact/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/structure/__init__.py b/ptext/toolkit/structure/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/structure/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/ptext/toolkit/text/__init__.py b/ptext/toolkit/text/__init__.py deleted file mode 100644 index 1d4349092..000000000 --- a/ptext/toolkit/text/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -""" - This file is part of the ptext (R) project. - Copyright (c) 2020-2040 ptext Group NV - Authors: Joris Schellekens, et al. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License version 3 - as published by the Free Software Foundation with the addition of the - following permission added to Section 15 as permitted in Section 7(a): - FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY - PTEXT GROUP. PTEXT GROUP DISCLAIMS THE WARRANTY OF NON INFRINGEMENT - OF THIRD PARTY RIGHTS - - 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 http://www.gnu.org/licenses or write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA, 02110-1301 USA. - - The interactive user interfaces in modified source and object code versions - of this program must display Appropriate Legal Notices, as required under - Section 5 of the GNU Affero General Public License. - In accordance with Section 7(b) of the GNU Affero General Public License, - a covered work must retain the producer line in every PDF that is created - or manipulated using ptext. - - You can be released from the requirements of the license by purchasing - a commercial license. Buying such a license is mandatory as soon as you - develop commercial activities involving the ptext software without - disclosing the source code of your own applications. - - These activities include: offering paid services to customers as an ASP, - serving PDFs on the fly in a web application, shipping ptext with a closed - source product. - - For more information, please contact ptext Software Corp. at this - address: joris.schellekens.1989@gmail.com -""" diff --git a/readme_img/logo/borb.jpeg b/readme_img/logo/borb.jpeg new file mode 100644 index 000000000..f1f1ee339 Binary files /dev/null and b/readme_img/logo/borb.jpeg differ diff --git a/readme_img/logo/borb.png b/readme_img/logo/borb.png new file mode 100644 index 000000000..3fe93d464 Binary files /dev/null and b/readme_img/logo/borb.png differ diff --git a/readme_img/logo/borb.svg b/readme_img/logo/borb.svg new file mode 100644 index 000000000..7f4abb2fc --- /dev/null +++ b/readme_img/logo/borb.svg @@ -0,0 +1,143 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/readme_img/logo/borb_64.png b/readme_img/logo/borb_64.png new file mode 100644 index 000000000..e81d5fc14 Binary files /dev/null and b/readme_img/logo/borb_64.png differ diff --git a/readme_img/logo/colors.txt b/readme_img/logo/colors.txt new file mode 100644 index 000000000..2c8bdbe29 --- /dev/null +++ b/readme_img/logo/colors.txt @@ -0,0 +1,2 @@ +yellow: #f1cd2e +brown: #675523 diff --git a/release_notes.md b/release_notes.md index 9dc297c2d..46b6338a6 100644 --- a/release_notes.md +++ b/release_notes.md @@ -1,37 +1,6 @@ -# :mega: pText release 2.0.0 +# :mega: borb release 2.0.6 This release features: -- Small bugfixes in the setup.py script (ensuring some dependencies that are present by default on Linux get installed on Windows) -- Refactor of the `LayoutElement` implementations -- Allowing users access to previously internal parameters of `PageLayout` implementations (such as margins) -- Improvements to `ChunksOfText` (now `HeterogeneousParagraph`, representing a heterogeneous paragraph) -- New text-layout class `Span` (similar to `HeterogeneousParagraph`, without default top/bottom margin) -- `LayoutElement` implementations have margins now (which was needed for HTML), you may expect some layout differences between this version of `pText` and former versions. -- A new PageLayout mechanism: `BrowserLayout` -- A new implementation of `BaseTable`. - - `FlexibleColumnWidthTable` (which behaves more like tables in HTML) - - `FixedColumnWidthTable` (which assigns a fixed width to every column) -- `HTMLToPDF` supports a lot more tags: - - `body` - - `head` - - `meta` - - `title` - - `h1` to `h6` - - `ħr` - - `img` - - `ul`, `ol`, `li` - - `address` - - `main` - - `section` - - `table`, `tbody`, `td`, `th`, `tr` - - `b`, `strong` - - `i`, `em` - - `a` - - `abbr` - - `br` - - `code` - - `mark` - - `p` - -Check the examples and tests for more information. -A dozen or so documents have been provided as examples for `HTMLToPDF`. +- Rename: `pText` has become `borb` +- Support for more kinds of TrueType fonts (previously only TrueType fonts with max. 256 glyphs) +- More tests (for aforementioned TrueType fonts) \ No newline at end of file diff --git a/setup.py b/setup.py index 93bd96e4c..ea28f5e5f 100644 --- a/setup.py +++ b/setup.py @@ -12,13 +12,13 @@ with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read() -# open requirements +# requirements required = [ - "fonttools>=4.22.1", # TTF fonts - "Pillow>=7.1.0", # image processing - "python-barcode>=0.13.1", # generating barcodes - "qrcode[pil]>=6.1", # generating QR codes - "requests>=2.24.0" "setuptools~=51.1.1", # generating images from a URL # standard + "fonttools>=4.22.1", # TTF fonts + "Pillow>=7.1.0", # image processing + "python-barcode>=0.13.1", # generating barcodes + "qrcode[pil]>=6.1", # generating QR codes + "requests>=2.24.0" "setuptools~=51.1.1", # generating images from a URL # standard ] + (["windows-curses>=2.2.0"] if sys.platform.startswith("win") else []) dependency_links = [ @@ -27,14 +27,14 @@ ] setuptools.setup( - name="ptext-joris-schellekens", # Replace with your own username - version="2.0.0", + name="borb", + version="2.0.6", author="Joris Schellekens", author_email="joris.schellekens.1989@gmail.com", - description="pText is a library for reading, creating and manipulating PDF files in python.", + description="borb is a library for reading, creating and manipulating PDF files in python.", long_description=long_description, long_description_content_type="text/markdown", - url="https://github.com/jorisschellekens/ptext-release", + url="https://github.com/jorisschellekens/borb", packages=setuptools.find_packages(), include_package_data=True, install_requires=required, diff --git a/tests/corpus/test_copy_document_compare_size.py b/tests/corpus/test_copy_document_compare_size.py index 4e345a398..94971292f 100644 --- a/tests/corpus/test_copy_document_compare_size.py +++ b/tests/corpus/test_copy_document_compare_size.py @@ -6,18 +6,18 @@ import matplotlib.pyplot as plt -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.chart import Chart -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.chart import Chart +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestCopyDocumentCompareSize(unittest.TestCase): @@ -41,6 +41,7 @@ def __init__(self, methodName="runTest"): self.number_of_fails: int = 0 self.memory_stats_per_document: typing.Dict[str, typing.Tuple[int, int]] = {} + @unittest.skip def test_against_entire_corpus(self): pdf_file_names = os.listdir(self.corpus_dir) pdfs = [ diff --git a/tests/corpus/test_copy_document_resize_images_compare_size.py b/tests/corpus/test_copy_document_resize_images_compare_size.py new file mode 100644 index 000000000..246353e8f --- /dev/null +++ b/tests/corpus/test_copy_document_resize_images_compare_size.py @@ -0,0 +1,205 @@ +import os +import typing +import unittest +from datetime import datetime +from pathlib import Path + +import matplotlib.pyplot as plt + +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.chart import Chart +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( + FixedColumnWidthTable as Table, +) +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.image.image_format_optimization import ImageFormatOptimization + + +class TestCopyDocumentResizeImagesCompareSize(unittest.TestCase): + def __init__(self, methodName="runTest"): + super().__init__(methodName) + # find output dir + p: Path = Path(__file__).parent + while "output" not in [x.stem for x in p.iterdir() if x.is_dir()]: + p = p.parent + p = p / "output" + self.output_dir = Path(p, Path(__file__).stem.replace(".py", "")) + if not self.output_dir.exists(): + self.output_dir.mkdir() + + # link to corpus + self.corpus_dir: Path = Path("/home/joris/Code/pdf-corpus/") + + # (global) stats + self.number_of_documents: int = 0 + self.number_of_passes: int = 0 + self.number_of_fails: int = 0 + self.memory_stats_per_document: typing.Dict[str, typing.Tuple[int, int]] = {} + + @unittest.skip + def test_against_entire_corpus(self): + pdf_file_names = os.listdir(self.corpus_dir) + pdfs = [ + (self.corpus_dir / x) + for x in pdf_file_names + if x.endswith(".pdf") and "page_0" in x and (x not in ["0566_page_0.pdf"]) + ] + self._test_list_of_documents(pdfs) + plt.close("all") + + def _test_list_of_documents(self, documents: typing.List[Path]): + self.number_of_documents = len(documents) + self.number_of_passes = 0 + self.number_of_fails = 0 + self.memory_stats_per_document = {} + for i, doc in enumerate(documents): + try: + print("processing %s [%d/%d] ..." % (doc.stem, i + 1, len(documents))) + file_size_001: int = os.path.getsize(doc) + file_size_002: int = self._test_single_document(doc) + self.memory_stats_per_document[doc.stem] = ( + file_size_001, + file_size_002, + ) + self.number_of_passes += 1 + except: + self.number_of_fails += 1 + pass + self._build_document() + + def _test_single_document(self, file: Path): + + # determine output location + out_file = self.output_dir / (file.stem + "_copy.pdf") + + # read document + doc = None + with open(file, "rb") as fh_001: + doc = PDF.loads(fh_001, [ImageFormatOptimization()]) + + # write document + with open(out_file, "wb") as fh_002: + PDF.dumps(fh_002, doc) + + # get size + size: int = os.path.getsize(out_file) + + # delete + os.remove(out_file) + + # return + return size + + def _build_document(self): + + doc: Document = Document() + + # append page + page: Page = Page() + doc.append_page(page) + + # add test information + layout: PageLayout = SingleColumnLayout(page) + layout.add( + Table(number_of_columns=2, number_of_rows=3) + .add(Paragraph("Date", font="Helvetica-Bold")) + .add(Paragraph(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + .add(Paragraph("Test", font="Helvetica-Bold")) + .add(Paragraph(Path(__file__).stem)) + .add(Paragraph("Description", font="Helvetica-Bold")) + .add( + Paragraph( + "This test attempts to copy a corpus of roughly 1000 PDF documents, " + "comparing the file-size of the original against that of the copy." + ) + ) + .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) + ) + + # graph with timing information + labels = ( + "large improvement (-10%)", + "small improvement (-5%)", + "roughly same", + "small setback (+5%)", + "large setback (+10%)", + ) + sizes = [ + sum( + [ + 1 + for k, v in self.memory_stats_per_document.items() + if (v[0] - v[1]) / v[0] > 0.1 + ] + ), + sum( + [ + 1 + for k, v in self.memory_stats_per_document.items() + if 0.05 < (v[0] - v[1]) / v[0] <= 0.1 + ] + ), + sum( + [ + 1 + for k, v in self.memory_stats_per_document.items() + if -0.05 < (v[0] - v[1]) / v[0] <= 0.05 + ] + ), + sum( + [ + 1 + for k, v in self.memory_stats_per_document.items() + if -0.1 < (v[0] - v[1]) / v[0] <= -0.05 + ] + ), + sum( + [ + 1 + for k, v in self.memory_stats_per_document.items() + if (v[0] - v[1]) / v[0] <= -0.1 + ] + ), + ] + explode = (0.1, 0, 0, 0, 0) # only "explode" the 2nd slice (i.e. '<1s') + fig1, ax1 = plt.subplots() + ax1.pie( + sizes, + explode=explode, + labels=labels, + autopct="%1.1f%%", + shadow=True, + startangle=90, + ) + ax1.axis("equal") # Equal aspect ratio ensures that pie is drawn as a circle. + layout.add(Chart(plt.gcf(), width=Decimal(200), height=Decimal(200))) + + # raw data + ul: UnorderedList = UnorderedList() + ul.add( + Paragraph( + "processed %d documents" + % (self.number_of_fails + self.number_of_passes) + ) + ) + ul.add( + Paragraph( + "%d fail(s), %d pass(es)" + % (self.number_of_fails, self.number_of_passes) + ) + ) + layout.add(ul) + + # write + file = self.output_dir / "output.pdf" + with open(file, "wb") as pdf_file_handle: + PDF.dumps(pdf_file_handle, doc) + + # close figure(s) + plt.close("all") diff --git a/tests/corpus/test_extract_text_expect_ground_truth.py b/tests/corpus/test_extract_text_expect_ground_truth.py index a18ad7b09..121862cb0 100644 --- a/tests/corpus/test_extract_text_expect_ground_truth.py +++ b/tests/corpus/test_extract_text_expect_ground_truth.py @@ -8,20 +8,21 @@ import matplotlib.pyplot as plt -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.image.chart import Chart -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.base_table import TableCell -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Name +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.image.chart import Chart +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.simple_text_extraction import SimpleTextExtraction +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.simple_text_extraction import SimpleTextExtraction class TestExtractTextExpectGroundTruth(unittest.TestCase): @@ -46,8 +47,8 @@ def __init__(self, methodName="runTest"): self.time_per_document: typing.Dict[str, float] = {} self.fails_per_document: typing.Dict[str, int] = [] + @unittest.skip def test_against_entire_corpus(self): - pdf_file_names = os.listdir(self.corpus_dir) pdfs = [ (self.corpus_dir / x) @@ -108,7 +109,12 @@ def _build_document(self): .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - graph_table: Table = Table(number_of_rows=2, number_of_columns=2) + graph_table: Table = Table( + number_of_rows=2, + number_of_columns=2, + margin_top=Decimal(5), + margin_bottom=Decimal(5), + ) graph_table.add( Paragraph( "Timing Information", @@ -197,7 +203,9 @@ def _build_document(self): ) avg_processing_time: float = 0 if len(self.time_per_document) > 0: - avg_processing_time = sum([v for k, v in self.time_per_document.items()]) / len(self.time_per_document) + avg_processing_time = sum( + [v for k, v in self.time_per_document.items()] + ) / len(self.time_per_document) ul.add(Paragraph("avg. processing time: %f seconds" % avg_processing_time)) max_processing_time: float = 0 @@ -219,7 +227,12 @@ def _build_document(self): tmp = [(k, v) for k, v in self.fails_per_document.items()] tmp.sort(key=lambda x: x[1], reverse=True) tmp = tmp[0:5] - t: Table = Table(number_of_columns=2, number_of_rows=7) + t: Table = Table( + number_of_columns=2, + number_of_rows=7, + margin_top=Decimal(5), + margin_bottom=Decimal(5), + ) t.add( TableCell( Paragraph( @@ -243,7 +256,12 @@ def _build_document(self): tmp = [(k, v) for k, v in self.time_per_document.items()] tmp.sort(key=lambda x: x[1], reverse=True) tmp = tmp[0:5] - t: Table = Table(number_of_columns=2, number_of_rows=7) + t: Table = Table( + number_of_columns=2, + number_of_rows=7, + margin_top=Decimal(5), + margin_bottom=Decimal(5), + ) t.add( TableCell( Paragraph( @@ -267,7 +285,12 @@ def _build_document(self): tmp = [(k, v) for k, v in self.time_per_document.items()] tmp.sort(key=lambda x: x[1]) tmp = tmp[0:5] - t: Table = Table(number_of_columns=2, number_of_rows=7) + t: Table = Table( + number_of_columns=2, + number_of_rows=7, + margin_top=Decimal(5), + margin_bottom=Decimal(5), + ) t.add( TableCell( Paragraph( diff --git a/tests/corpus/test_open_document.py b/tests/corpus/test_open_document.py index 819bd9ced..e0757f0f8 100644 --- a/tests/corpus/test_open_document.py +++ b/tests/corpus/test_open_document.py @@ -6,17 +6,18 @@ import matplotlib.pyplot as plt -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.chart import Chart -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.chart import Chart +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestOpenDocument(unittest.TestCase): @@ -46,7 +47,9 @@ def test_against_entire_corpus(self): pdfs = [ (self.corpus_dir / x) for x in pdf_file_names - if x.endswith(".pdf") and "page_0" in x and (x not in ["0566_page_0.pdf", "0213.pdf"]) + if x.endswith(".pdf") + and "page_0" in x + and (x not in ["0566_page_0.pdf", "0213.pdf"]) ] self._test_list_of_documents(pdfs) plt.close("all") @@ -63,7 +66,7 @@ def _test_list_of_documents(self, documents: typing.List[Path]): PDF.loads(pdf_file_handle) self.number_of_passes += 1 except Exception as e: - print(e) + print("ERROR, document %s, %s" % (doc.name, str(e))) self.number_of_fails += 1 pass self._build_document() @@ -115,6 +118,22 @@ def _build_document(self): ax1.axis("equal") # Equal aspect ratio ensures that pie is drawn as a circle. layout.add(Chart(plt.gcf(), width=Decimal(200), height=Decimal(200))) + # raw data + ul: UnorderedList = UnorderedList() + ul.add( + Paragraph( + "processed %d documents" + % (self.number_of_fails + self.number_of_passes) + ) + ) + ul.add( + Paragraph( + "%d fail(s), %d pass(es)" + % (self.number_of_fails, self.number_of_passes) + ) + ) + layout.add(ul) + # write file = self.output_dir / "output.pdf" with open(file, "wb") as pdf_file_handle: diff --git a/tests/misc/matrix/test_matrix_determinant.py b/tests/misc/matrix/test_matrix_determinant.py index 1dd9cdaa8..117d1e711 100644 --- a/tests/misc/matrix/test_matrix_determinant.py +++ b/tests/misc/matrix/test_matrix_determinant.py @@ -1,7 +1,7 @@ import unittest from decimal import Decimal -from ptext.pdf.canvas.geometry.matrix import Matrix +from borb.pdf.canvas.geometry.matrix import Matrix class TestMatrixDeterminant(unittest.TestCase): diff --git a/tests/misc/matrix/test_matrix_multiplication.py b/tests/misc/matrix/test_matrix_multiplication.py index fd69bc928..5dd920988 100644 --- a/tests/misc/matrix/test_matrix_multiplication.py +++ b/tests/misc/matrix/test_matrix_multiplication.py @@ -1,7 +1,7 @@ import unittest from decimal import Decimal -from ptext.pdf.canvas.geometry.matrix import Matrix +from borb.pdf.canvas.geometry.matrix import Matrix class TestMatrixMultiplication(unittest.TestCase): diff --git a/tests/misc/postscript/test_postscript_eval.py b/tests/misc/postscript/test_postscript_eval.py index abe50cbde..2b9dde8d5 100644 --- a/tests/misc/postscript/test_postscript_eval.py +++ b/tests/misc/postscript/test_postscript_eval.py @@ -2,7 +2,7 @@ import unittest from decimal import Decimal -from ptext.io.read.postfix.postfix_eval import PostScriptEval +from borb.io.read.postfix.postfix_eval import PostScriptEval class TestPostscriptEval(unittest.TestCase): diff --git a/tests/toolkit/export/pdf_to_html/__init__.py b/tests/misc/trie/__init__.py similarity index 100% rename from tests/toolkit/export/pdf_to_html/__init__.py rename to tests/misc/trie/__init__.py diff --git a/tests/misc/trie/test_add_to_trie.py b/tests/misc/trie/test_add_to_trie.py new file mode 100644 index 000000000..8850832d8 --- /dev/null +++ b/tests/misc/trie/test_add_to_trie.py @@ -0,0 +1,34 @@ +import unittest + +from borb.datastructure.str_trie import Trie + + +class TestAddToTrie(unittest.TestCase): + def test_add_to_trie(self): + t = Trie() + + t["lorem"] = 2 + t["ipsum"] = 3 + t["dolor"] = 5 + t["sit"] = 7 + t["amet"] = 11 + t["consectetur"] = 13 + t["adipiscing"] = 17 + t["elit"] = 19 + t["sed"] = 23 + t["do"] = 29 + t["eiusmod"] = 31 + + assert len(t) == 11 + + assert t["lorem"] == 2 + assert t["ipsum"] == 3 + assert t["dolor"] == 5 + assert t["sit"] == 7 + assert t["amet"] == 11 + assert t["consectetur"] == 13 + assert t["adipiscing"] == 17 + assert t["elit"] == 19 + assert t["sed"] == 23 + assert t["do"] == 29 + assert t["eiusmod"] == 31 diff --git a/tests/misc/types/test_hash_types.py b/tests/misc/types/test_hash_types.py index a79b72e34..1df4f2146 100644 --- a/tests/misc/types/test_hash_types.py +++ b/tests/misc/types/test_hash_types.py @@ -1,7 +1,7 @@ import unittest from decimal import Decimal -from ptext.io.read.types import Boolean, Dictionary, List, Name, Reference +from borb.io.read.types import Boolean, Dictionary, List, Name, Reference class TestHashTypes(unittest.TestCase): diff --git a/tests/misc/types/test_name_behaves_like_str.py b/tests/misc/types/test_name_behaves_like_str.py index 3bf2b67c2..3bf67fe39 100644 --- a/tests/misc/types/test_name_behaves_like_str.py +++ b/tests/misc/types/test_name_behaves_like_str.py @@ -1,6 +1,6 @@ import unittest -from ptext.io.read.types import Name +from borb.io.read.types import Name class TestNameBehaves_likeStr(unittest.TestCase): diff --git a/tests/misc/types/test_type_added_methods.py b/tests/misc/types/test_type_added_methods.py index 7d2d9f9b3..cd5e38a02 100644 --- a/tests/misc/types/test_type_added_methods.py +++ b/tests/misc/types/test_type_added_methods.py @@ -4,7 +4,7 @@ import requests from PIL import Image as PILImage # type: ignore [import] -from ptext.io.read.types import add_base_methods +from borb.io.read.types import add_base_methods class TestTypeAddedMethods(unittest.TestCase): diff --git a/tests/misc/types/test_type_methods.py b/tests/misc/types/test_type_methods.py index 73ddbc416..62d1462e1 100644 --- a/tests/misc/types/test_type_methods.py +++ b/tests/misc/types/test_type_methods.py @@ -1,8 +1,8 @@ import unittest -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.toolkit.export.pdf_to_svg import PDFToSVG +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.toolkit.export.pdf_to_svg import PDFToSVG class TestTypeMethods(unittest.TestCase): diff --git a/tests/output/test_add_all_rubber_stamp_annotations/output.pdf b/tests/output/test_add_all_rubber_stamp_annotations/output.pdf index 2e6d85326..524c5bd5b 100644 Binary files a/tests/output/test_add_all_rubber_stamp_annotations/output.pdf and b/tests/output/test_add_all_rubber_stamp_annotations/output.pdf differ diff --git a/tests/output/test_add_circle_annotation/output.pdf b/tests/output/test_add_circle_annotation/output.pdf index 3737e52bc..ef074ba83 100644 Binary files a/tests/output/test_add_circle_annotation/output.pdf and b/tests/output/test_add_circle_annotation/output.pdf differ diff --git a/tests/output/test_add_highlight_annotation/output_001.pdf b/tests/output/test_add_highlight_annotation/output_001.pdf index 30f9d4ea6..8261ab7fb 100644 Binary files a/tests/output/test_add_highlight_annotation/output_001.pdf and b/tests/output/test_add_highlight_annotation/output_001.pdf differ diff --git a/tests/output/test_add_highlight_annotation/output_002.pdf b/tests/output/test_add_highlight_annotation/output_002.pdf index f2df6353f..a91ade827 100644 Binary files a/tests/output/test_add_highlight_annotation/output_002.pdf and b/tests/output/test_add_highlight_annotation/output_002.pdf differ diff --git a/tests/output/test_add_line_annotation/output_001.pdf b/tests/output/test_add_line_annotation/output_001.pdf index 1bc9f36ac..946aea3d5 100644 Binary files a/tests/output/test_add_line_annotation/output_001.pdf and b/tests/output/test_add_line_annotation/output_001.pdf differ diff --git a/tests/output/test_add_line_annotation/output_002.pdf b/tests/output/test_add_line_annotation/output_002.pdf index aca8f2f66..41dbb6f24 100644 Binary files a/tests/output/test_add_line_annotation/output_002.pdf and b/tests/output/test_add_line_annotation/output_002.pdf differ diff --git a/tests/output/test_add_outline/output_001.pdf b/tests/output/test_add_outline/output_001.pdf index 82a151427..a7724a0c2 100644 Binary files a/tests/output/test_add_outline/output_001.pdf and b/tests/output/test_add_outline/output_001.pdf differ diff --git a/tests/output/test_add_outline/output_002.pdf b/tests/output/test_add_outline/output_002.pdf index 104576814..6d33fd5d4 100644 Binary files a/tests/output/test_add_outline/output_002.pdf and b/tests/output/test_add_outline/output_002.pdf differ diff --git a/tests/output/test_add_polygon_annotation_using_line_art_factory/output.pdf b/tests/output/test_add_polygon_annotation_using_line_art_factory/output.pdf index 1b302dfd5..ebd41994b 100644 Binary files a/tests/output/test_add_polygon_annotation_using_line_art_factory/output.pdf and b/tests/output/test_add_polygon_annotation_using_line_art_factory/output.pdf differ diff --git a/tests/output/test_add_polyline_annotation_using_line_art_factory/output.pdf b/tests/output/test_add_polyline_annotation_using_line_art_factory/output.pdf index cf89f55e1..c10a4053d 100644 Binary files a/tests/output/test_add_polyline_annotation_using_line_art_factory/output.pdf and b/tests/output/test_add_polyline_annotation_using_line_art_factory/output.pdf differ diff --git a/tests/output/test_add_redact_annotation/output_001.pdf b/tests/output/test_add_redact_annotation/output_001.pdf index 4aa2d9569..808d6e1ea 100644 Binary files a/tests/output/test_add_redact_annotation/output_001.pdf and b/tests/output/test_add_redact_annotation/output_001.pdf differ diff --git a/tests/output/test_add_redact_annotation/output_002.pdf b/tests/output/test_add_redact_annotation/output_002.pdf index 5b8d69f75..4c0d121b2 100644 Binary files a/tests/output/test_add_redact_annotation/output_002.pdf and b/tests/output/test_add_redact_annotation/output_002.pdf differ diff --git a/tests/output/test_add_redact_annotation/output_003.pdf b/tests/output/test_add_redact_annotation/output_003.pdf index f57777e9c..cd5603c94 100644 Binary files a/tests/output/test_add_redact_annotation/output_003.pdf and b/tests/output/test_add_redact_annotation/output_003.pdf differ diff --git a/tests/output/test_add_redact_annotation/output_004.pdf b/tests/output/test_add_redact_annotation/output_004.pdf index 54f25c32f..94b7958a4 100644 Binary files a/tests/output/test_add_redact_annotation/output_004.pdf and b/tests/output/test_add_redact_annotation/output_004.pdf differ diff --git a/tests/output/test_add_redact_annotation/output_005.pdf b/tests/output/test_add_redact_annotation/output_005.pdf index 72e1c81f3..cc83546df 100644 Binary files a/tests/output/test_add_redact_annotation/output_005.pdf and b/tests/output/test_add_redact_annotation/output_005.pdf differ diff --git a/tests/output/test_add_square_annotation/output.pdf b/tests/output/test_add_square_annotation/output.pdf index 2d1436f95..d5f83c3f2 100644 Binary files a/tests/output/test_add_square_annotation/output.pdf and b/tests/output/test_add_square_annotation/output.pdf differ diff --git a/tests/output/test_add_square_annotation_in_free_space/output_001.pdf b/tests/output/test_add_square_annotation_in_free_space/output_001.pdf index 66b4c9e55..07c73d52f 100644 Binary files a/tests/output/test_add_square_annotation_in_free_space/output_001.pdf and b/tests/output/test_add_square_annotation_in_free_space/output_001.pdf differ diff --git a/tests/output/test_add_square_annotation_in_free_space/output_002.pdf b/tests/output/test_add_square_annotation_in_free_space/output_002.pdf index 2857ce2ff..5cb3b5ce6 100644 Binary files a/tests/output/test_add_square_annotation_in_free_space/output_002.pdf and b/tests/output/test_add_square_annotation_in_free_space/output_002.pdf differ diff --git a/tests/output/test_add_squiggle_annotation/output_001.pdf b/tests/output/test_add_squiggle_annotation/output_001.pdf index 5993d6b56..f02df9167 100644 Binary files a/tests/output/test_add_squiggle_annotation/output_001.pdf and b/tests/output/test_add_squiggle_annotation/output_001.pdf differ diff --git a/tests/output/test_add_squiggle_annotation/output_002.pdf b/tests/output/test_add_squiggle_annotation/output_002.pdf index cceb4deb6..ee7afa10e 100644 Binary files a/tests/output/test_add_squiggle_annotation/output_002.pdf and b/tests/output/test_add_squiggle_annotation/output_002.pdf differ diff --git a/tests/output/test_add_strikeout_annotation/output_001.pdf b/tests/output/test_add_strikeout_annotation/output_001.pdf index d298fbb19..a30faf785 100644 Binary files a/tests/output/test_add_strikeout_annotation/output_001.pdf and b/tests/output/test_add_strikeout_annotation/output_001.pdf differ diff --git a/tests/output/test_add_strikeout_annotation/output_002.pdf b/tests/output/test_add_strikeout_annotation/output_002.pdf index 9a3f47bd4..7d4c0e0a6 100644 Binary files a/tests/output/test_add_strikeout_annotation/output_002.pdf and b/tests/output/test_add_strikeout_annotation/output_002.pdf differ diff --git a/tests/output/test_add_super_mario_annotation/output.pdf b/tests/output/test_add_super_mario_annotation/output.pdf index f051afeca..e1d4114ce 100644 Binary files a/tests/output/test_add_super_mario_annotation/output.pdf and b/tests/output/test_add_super_mario_annotation/output.pdf differ diff --git a/tests/output/test_add_text_annotation/output_001.pdf b/tests/output/test_add_text_annotation/output_001.pdf index a178c04c2..58f4661c8 100644 Binary files a/tests/output/test_add_text_annotation/output_001.pdf and b/tests/output/test_add_text_annotation/output_001.pdf differ diff --git a/tests/output/test_add_text_annotation/output_002.pdf b/tests/output/test_add_text_annotation/output_002.pdf index 722561854..975d63e8f 100644 Binary files a/tests/output/test_add_text_annotation/output_002.pdf and b/tests/output/test_add_text_annotation/output_002.pdf differ diff --git a/tests/output/test_add_underline_annotation/output_001.pdf b/tests/output/test_add_underline_annotation/output_001.pdf index 18d5fae21..0c94f9ca2 100644 Binary files a/tests/output/test_add_underline_annotation/output_001.pdf and b/tests/output/test_add_underline_annotation/output_001.pdf differ diff --git a/tests/output/test_add_underline_annotation/output_002.pdf b/tests/output/test_add_underline_annotation/output_002.pdf index 6d6ded153..722dcbdff 100644 Binary files a/tests/output/test_add_underline_annotation/output_002.pdf and b/tests/output/test_add_underline_annotation/output_002.pdf differ diff --git a/tests/output/test_append_embedded_file/output_001.pdf b/tests/output/test_append_embedded_file/output_001.pdf index 69d7c6275..832aeb67a 100644 Binary files a/tests/output/test_append_embedded_file/output_001.pdf and b/tests/output/test_append_embedded_file/output_001.pdf differ diff --git a/tests/output/test_append_embedded_file/output_002.pdf b/tests/output/test_append_embedded_file/output_002.pdf index e3c7bfa7a..d90972666 100644 Binary files a/tests/output/test_append_embedded_file/output_002.pdf and b/tests/output/test_append_embedded_file/output_002.pdf differ diff --git a/tests/output/test_apply_redaction_annotations/output_001.pdf b/tests/output/test_apply_redaction_annotations/output_001.pdf index 214e89b74..64c05e3d3 100644 Binary files a/tests/output/test_apply_redaction_annotations/output_001.pdf and b/tests/output/test_apply_redaction_annotations/output_001.pdf differ diff --git a/tests/output/test_apply_redaction_annotations/output_002.pdf b/tests/output/test_apply_redaction_annotations/output_002.pdf index 5e9849f8a..60385bcb9 100644 Binary files a/tests/output/test_apply_redaction_annotations/output_002.pdf and b/tests/output/test_apply_redaction_annotations/output_002.pdf differ diff --git a/tests/output/test_apply_redaction_annotations/output_003.pdf b/tests/output/test_apply_redaction_annotations/output_003.pdf index b14c5f2dc..694efbddb 100644 Binary files a/tests/output/test_apply_redaction_annotations/output_003.pdf and b/tests/output/test_apply_redaction_annotations/output_003.pdf differ diff --git a/tests/output/test_apply_redaction_annotations/output_004.pdf b/tests/output/test_apply_redaction_annotations/output_004.pdf index cd9fb2b0d..017c901ae 100644 Binary files a/tests/output/test_apply_redaction_annotations/output_004.pdf and b/tests/output/test_apply_redaction_annotations/output_004.pdf differ diff --git a/tests/output/test_apply_redaction_annotations/output_005.pdf b/tests/output/test_apply_redaction_annotations/output_005.pdf index 00dfe9fe5..0b2fc4b9d 100644 Binary files a/tests/output/test_apply_redaction_annotations/output_005.pdf and b/tests/output/test_apply_redaction_annotations/output_005.pdf differ diff --git a/tests/output/test_apply_redaction_annotations/output_006.pdf b/tests/output/test_apply_redaction_annotations/output_006.pdf index a584865c6..5c917105a 100644 Binary files a/tests/output/test_apply_redaction_annotations/output_006.pdf and b/tests/output/test_apply_redaction_annotations/output_006.pdf differ diff --git a/tests/output/test_change_info_dictionary_author/output_001.pdf b/tests/output/test_change_info_dictionary_author/output_001.pdf index 060e2cc09..728cc50d1 100644 Binary files a/tests/output/test_change_info_dictionary_author/output_001.pdf and b/tests/output/test_change_info_dictionary_author/output_001.pdf differ diff --git a/tests/output/test_change_info_dictionary_author/output_002.pdf b/tests/output/test_change_info_dictionary_author/output_002.pdf index 484d20cfc..deb33a837 100644 Binary files a/tests/output/test_change_info_dictionary_author/output_002.pdf and b/tests/output/test_change_info_dictionary_author/output_002.pdf differ diff --git a/tests/output/test_concat_documents/output_000.pdf b/tests/output/test_concat_documents/output_000.pdf index 9b6c8c2f8..f25a530bf 100644 Binary files a/tests/output/test_concat_documents/output_000.pdf and b/tests/output/test_concat_documents/output_000.pdf differ diff --git a/tests/output/test_concat_documents/output_001.pdf b/tests/output/test_concat_documents/output_001.pdf index 37b639200..7536e691a 100644 Binary files a/tests/output/test_concat_documents/output_001.pdf and b/tests/output/test_concat_documents/output_001.pdf differ diff --git a/tests/output/test_concat_documents/output_002.pdf b/tests/output/test_concat_documents/output_002.pdf index 3dc71cd63..3d0ffd61b 100644 Binary files a/tests/output/test_concat_documents/output_002.pdf and b/tests/output/test_concat_documents/output_002.pdf differ diff --git a/tests/output/test_copy_document_compare_size/output.pdf b/tests/output/test_copy_document_compare_size/output.pdf index bb30536bd..9e9ad9c64 100644 Binary files a/tests/output/test_copy_document_compare_size/output.pdf and b/tests/output/test_copy_document_compare_size/output.pdf differ diff --git a/tests/output/test_copy_document_resize_images_compare_size/output.pdf b/tests/output/test_copy_document_resize_images_compare_size/output.pdf new file mode 100644 index 000000000..6c8532141 Binary files /dev/null and b/tests/output/test_copy_document_resize_images_compare_size/output.pdf differ diff --git a/tests/output/test_count_annotations/output_001.pdf b/tests/output/test_count_annotations/output_001.pdf index a7b8a9b29..acdfb78a3 100644 Binary files a/tests/output/test_count_annotations/output_001.pdf and b/tests/output/test_count_annotations/output_001.pdf differ diff --git a/tests/output/test_count_annotations/output_002.pdf b/tests/output/test_count_annotations/output_002.pdf index d74d3f71a..ebedcd004 100644 Binary files a/tests/output/test_count_annotations/output_002.pdf and b/tests/output/test_count_annotations/output_002.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-000.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-000.html.pdf index 6f37ccf7e..10481c96e 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-000.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-000.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-001.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-001.html.pdf index 2921fd72a..41943742d 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-001.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-001.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-002.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-002.html.pdf index 682361a5d..ca783e4b4 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-002.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-002.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-003.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-003.html.pdf index 0f6ebb040..78fe10e74 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-003.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-003.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-004.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-004.html.pdf index 744a9deaa..4f3db42de 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-004.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-004.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-005.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-005.html.pdf index 27c3e536f..6d7c62dd6 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-005.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-005.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-006.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-006.html.pdf index 7aa6326bf..ba5a2ac9b 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-006.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-006.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-007.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-007.html.pdf index f4cdc1987..8272ea3b5 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-007.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-007.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-008.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-008.html.pdf index 6ce805971..d810d891c 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-008.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-008.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-009.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-009.html.pdf index 8140db48a..c9f6ec3a0 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-009.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-009.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-010.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-010.html.pdf index a81faae0b..2de7f254a 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-010.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-010.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-011.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-011.html.pdf index 59304ec06..e631ca404 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-011.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-011.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-012.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-012.html.pdf index 4d3b6b3a8..ccbb459e1 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-012.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-012.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-013.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-013.html.pdf index 2dcd7f1df..959a24518 100644 Binary files a/tests/output/test_export_html_to_pdf/example-html-input-013.html.pdf and b/tests/output/test_export_html_to_pdf/example-html-input-013.html.pdf differ diff --git a/tests/output/test_export_html_to_pdf/example-html-input-014.html.pdf b/tests/output/test_export_html_to_pdf/example-html-input-014.html.pdf new file mode 100644 index 000000000..dd05155b9 Binary files /dev/null and b/tests/output/test_export_html_to_pdf/example-html-input-014.html.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-001.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-001.md.pdf index 39d2163d9..e164f050f 100644 Binary files a/tests/output/test_export_markdown_to_pdf/example-markdown-input-001.md.pdf and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-001.md.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-002.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-002.md.pdf new file mode 100644 index 000000000..7af185fa3 Binary files /dev/null and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-002.md.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-003.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-003.md.pdf new file mode 100644 index 000000000..ec2756d82 Binary files /dev/null and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-003.md.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-004.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-004.md.pdf new file mode 100644 index 000000000..4e23a63ff Binary files /dev/null and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-004.md.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-005.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-005.md.pdf new file mode 100644 index 000000000..80bc6231e Binary files /dev/null and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-005.md.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-006.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-006.md.pdf new file mode 100644 index 000000000..69607ce2b Binary files /dev/null and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-006.md.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-007.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-007.md.pdf new file mode 100644 index 000000000..f02ad53bf Binary files /dev/null and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-007.md.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-008.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-008.md.pdf new file mode 100644 index 000000000..b04485621 Binary files /dev/null and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-008.md.pdf differ diff --git a/tests/output/test_export_markdown_to_pdf/example-markdown-input-009.md.pdf b/tests/output/test_export_markdown_to_pdf/example-markdown-input-009.md.pdf new file mode 100644 index 000000000..1b2aec51f Binary files /dev/null and b/tests/output/test_export_markdown_to_pdf/example-markdown-input-009.md.pdf differ diff --git a/tests/output/test_export_pdf_to_jpg/output.jpg b/tests/output/test_export_pdf_to_jpg/output.jpg deleted file mode 100644 index 2af72afd5..000000000 Binary files a/tests/output/test_export_pdf_to_jpg/output.jpg and /dev/null differ diff --git a/tests/output/test_export_pdf_to_jpg/output_001.jpg b/tests/output/test_export_pdf_to_jpg/output_001.jpg index 2af72afd5..c7021fe24 100644 Binary files a/tests/output/test_export_pdf_to_jpg/output_001.jpg and b/tests/output/test_export_pdf_to_jpg/output_001.jpg differ diff --git a/tests/output/test_export_pdf_to_jpg/output_002.jpg b/tests/output/test_export_pdf_to_jpg/output_002.jpg index 2af72afd5..c7021fe24 100644 Binary files a/tests/output/test_export_pdf_to_jpg/output_002.jpg and b/tests/output/test_export_pdf_to_jpg/output_002.jpg differ diff --git a/tests/output/test_export_to_mp3/output.mp3 b/tests/output/test_export_to_mp3/output.mp3 index ce6e8647c..e64a11998 100644 Binary files a/tests/output/test_export_to_mp3/output.mp3 and b/tests/output/test_export_to_mp3/output.mp3 differ diff --git a/tests/output/test_extract_colors/output_001.pdf b/tests/output/test_extract_colors/output_001.pdf index 2651eeeaf..6105bf687 100644 Binary files a/tests/output/test_extract_colors/output_001.pdf and b/tests/output/test_extract_colors/output_001.pdf differ diff --git a/tests/output/test_extract_colors/output_002.pdf b/tests/output/test_extract_colors/output_002.pdf index d09901414..c2eea8e5d 100644 Binary files a/tests/output/test_extract_colors/output_002.pdf and b/tests/output/test_extract_colors/output_002.pdf differ diff --git a/tests/output/test_extract_font_names/output_001.pdf b/tests/output/test_extract_font_names/output_001.pdf index 45dd599c6..84ae6b09b 100644 Binary files a/tests/output/test_extract_font_names/output_001.pdf and b/tests/output/test_extract_font_names/output_001.pdf differ diff --git a/tests/output/test_extract_font_names/output_002.pdf b/tests/output/test_extract_font_names/output_002.pdf index a1e68bce5..090b00e39 100644 Binary files a/tests/output/test_extract_font_names/output_002.pdf and b/tests/output/test_extract_font_names/output_002.pdf differ diff --git a/tests/output/test_extract_keywords/output_001.pdf b/tests/output/test_extract_keywords/output_001.pdf index cabf187f0..0d1f90c5b 100644 Binary files a/tests/output/test_extract_keywords/output_001.pdf and b/tests/output/test_extract_keywords/output_001.pdf differ diff --git a/tests/output/test_extract_keywords/output_002.pdf b/tests/output/test_extract_keywords/output_002.pdf index 533dd1fcb..a25be6be9 100644 Binary files a/tests/output/test_extract_keywords/output_002.pdf and b/tests/output/test_extract_keywords/output_002.pdf differ diff --git a/tests/output/test_extract_regex/output_001.pdf b/tests/output/test_extract_regex/output_001.pdf index 154a2df63..fa11c5e80 100644 Binary files a/tests/output/test_extract_regex/output_001.pdf and b/tests/output/test_extract_regex/output_001.pdf differ diff --git a/tests/output/test_extract_regex/output_002.pdf b/tests/output/test_extract_regex/output_002.pdf index ae1844c16..d6fabdc5a 100644 Binary files a/tests/output/test_extract_regex/output_002.pdf and b/tests/output/test_extract_regex/output_002.pdf differ diff --git a/tests/output/test_extract_text/output_001.pdf b/tests/output/test_extract_text/output_001.pdf index cd6d499d9..a0c8c2398 100644 Binary files a/tests/output/test_extract_text/output_001.pdf and b/tests/output/test_extract_text/output_001.pdf differ diff --git a/tests/output/test_extract_text_expect_ground_truth/output.pdf b/tests/output/test_extract_text_expect_ground_truth/output.pdf index 227e35329..1a51d8a1e 100644 Binary files a/tests/output/test_extract_text_expect_ground_truth/output.pdf and b/tests/output/test_extract_text_expect_ground_truth/output.pdf differ diff --git a/tests/output/test_extract_text_using_ocr/output_001.pdf b/tests/output/test_extract_text_using_ocr/output_001.pdf index a50a33940..e6434ddf6 100644 Binary files a/tests/output/test_extract_text_using_ocr/output_001.pdf and b/tests/output/test_extract_text_using_ocr/output_001.pdf differ diff --git a/tests/output/test_modify_image/output_001.pdf b/tests/output/test_modify_image/output_001.pdf index 8598702d2..cf47aeadb 100644 Binary files a/tests/output/test_modify_image/output_001.pdf and b/tests/output/test_modify_image/output_001.pdf differ diff --git a/tests/output/test_modify_image/output_002.pdf b/tests/output/test_modify_image/output_002.pdf index 7777dc723..be2f75e10 100644 Binary files a/tests/output/test_modify_image/output_002.pdf and b/tests/output/test_modify_image/output_002.pdf differ diff --git a/tests/output/test_open_document/output.pdf b/tests/output/test_open_document/output.pdf index bb31695ce..15b573b68 100644 Binary files a/tests/output/test_open_document/output.pdf and b/tests/output/test_open_document/output.pdf differ diff --git a/tests/output/test_optimize_images/output_001.pdf b/tests/output/test_optimize_images/output_001.pdf new file mode 100644 index 000000000..5386ae690 Binary files /dev/null and b/tests/output/test_optimize_images/output_001.pdf differ diff --git a/tests/output/test_redact_common_regular_expressions/output_001.pdf b/tests/output/test_redact_common_regular_expressions/output_001.pdf index 1ff3841d2..0da09a6ff 100644 Binary files a/tests/output/test_redact_common_regular_expressions/output_001.pdf and b/tests/output/test_redact_common_regular_expressions/output_001.pdf differ diff --git a/tests/output/test_redact_common_regular_expressions/output_002.pdf b/tests/output/test_redact_common_regular_expressions/output_002.pdf index 62abe3cb9..ad3451b9f 100644 Binary files a/tests/output/test_redact_common_regular_expressions/output_002.pdf and b/tests/output/test_redact_common_regular_expressions/output_002.pdf differ diff --git a/tests/output/test_redact_common_regular_expressions/output_003.pdf b/tests/output/test_redact_common_regular_expressions/output_003.pdf index cd1c3c5bd..b5ac73c5e 100644 Binary files a/tests/output/test_redact_common_regular_expressions/output_003.pdf and b/tests/output/test_redact_common_regular_expressions/output_003.pdf differ diff --git a/tests/output/test_remove_annotation/output_001.pdf b/tests/output/test_remove_annotation/output_001.pdf index 757457eb8..b5f33ce81 100644 Binary files a/tests/output/test_remove_annotation/output_001.pdf and b/tests/output/test_remove_annotation/output_001.pdf differ diff --git a/tests/output/test_remove_annotation/output_002.pdf b/tests/output/test_remove_annotation/output_002.pdf index 2409a43ee..bfb541d7e 100644 Binary files a/tests/output/test_remove_annotation/output_002.pdf and b/tests/output/test_remove_annotation/output_002.pdf differ diff --git a/tests/output/test_remove_annotation/output_003.pdf b/tests/output/test_remove_annotation/output_003.pdf index b05bd5cc7..55a10985a 100644 Binary files a/tests/output/test_remove_annotation/output_003.pdf and b/tests/output/test_remove_annotation/output_003.pdf differ diff --git a/tests/output/test_remove_page/output_001.pdf b/tests/output/test_remove_page/output_001.pdf index 999933a81..4fb43288e 100644 Binary files a/tests/output/test_remove_page/output_001.pdf and b/tests/output/test_remove_page/output_001.pdf differ diff --git a/tests/output/test_remove_page/output_002.pdf b/tests/output/test_remove_page/output_002.pdf index 02c4b958b..54642ccfa 100644 Binary files a/tests/output/test_remove_page/output_002.pdf and b/tests/output/test_remove_page/output_002.pdf differ diff --git a/tests/output/test_write_2_scatter_plots/output.pdf b/tests/output/test_write_2_scatter_plots/output.pdf index b9ca304d6..80317e5a7 100644 Binary files a/tests/output/test_write_2_scatter_plots/output.pdf and b/tests/output/test_write_2_scatter_plots/output.pdf differ diff --git a/tests/output/test_write_3d_density_chart/output.pdf b/tests/output/test_write_3d_density_chart/output.pdf index 83682ba96..a3b828bec 100644 Binary files a/tests/output/test_write_3d_density_chart/output.pdf and b/tests/output/test_write_3d_density_chart/output.pdf differ diff --git a/tests/output/test_write_3d_surface_plot/output.pdf b/tests/output/test_write_3d_surface_plot/output.pdf index ca187f6f2..85123a47f 100644 Binary files a/tests/output/test_write_3d_surface_plot/output.pdf and b/tests/output/test_write_3d_surface_plot/output.pdf differ diff --git a/tests/output/test_write_all_types_barcode/output.pdf b/tests/output/test_write_all_types_barcode/output.pdf index 8c05498dc..dfee23c1e 100644 Binary files a/tests/output/test_write_all_types_barcode/output.pdf and b/tests/output/test_write_all_types_barcode/output.pdf differ diff --git a/tests/output/test_write_blobs/output.pdf b/tests/output/test_write_blobs/output.pdf index 41ad181d0..c143120bc 100644 Binary files a/tests/output/test_write_blobs/output.pdf and b/tests/output/test_write_blobs/output.pdf differ diff --git a/tests/output/test_write_chunk_of_text/output.pdf b/tests/output/test_write_chunk_of_text/output.pdf index 944a3f6b0..01793b07a 100644 Binary files a/tests/output/test_write_chunk_of_text/output.pdf and b/tests/output/test_write_chunk_of_text/output.pdf differ diff --git a/tests/output/test_write_chunk_of_text_e_aigu/output.pdf b/tests/output/test_write_chunk_of_text_e_aigu/output.pdf deleted file mode 100644 index e3b01678c..000000000 Binary files a/tests/output/test_write_chunk_of_text_e_aigu/output.pdf and /dev/null differ diff --git a/tests/output/test_write_chunk_of_text_escaped_chars/output.pdf b/tests/output/test_write_chunk_of_text_escaped_chars/output.pdf index d9bb549db..f77b25ae2 100644 Binary files a/tests/output/test_write_chunk_of_text_escaped_chars/output.pdf and b/tests/output/test_write_chunk_of_text_escaped_chars/output.pdf differ diff --git a/tests/output/test_write_chunk_of_text_in_rainbow_colors/output.pdf b/tests/output/test_write_chunk_of_text_in_rainbow_colors/output.pdf index d7cf7e4cf..f86b2e70f 100644 Binary files a/tests/output/test_write_chunk_of_text_in_rainbow_colors/output.pdf and b/tests/output/test_write_chunk_of_text_in_rainbow_colors/output.pdf differ diff --git a/tests/output/test_write_chunks_of_text/output_001.pdf b/tests/output/test_write_chunks_of_text/output_001.pdf index 07cdc363d..579ae2e2e 100644 Binary files a/tests/output/test_write_chunks_of_text/output_001.pdf and b/tests/output/test_write_chunks_of_text/output_001.pdf differ diff --git a/tests/output/test_write_chunks_of_text/output_002.pdf b/tests/output/test_write_chunks_of_text/output_002.pdf index 46eb295b8..87e62767d 100644 Binary files a/tests/output/test_write_chunks_of_text/output_002.pdf and b/tests/output/test_write_chunks_of_text/output_002.pdf differ diff --git a/tests/output/test_write_chunks_of_text/output_003.pdf b/tests/output/test_write_chunks_of_text/output_003.pdf index 0e0a9fbde..6ebddb363 100644 Binary files a/tests/output/test_write_chunks_of_text/output_003.pdf and b/tests/output/test_write_chunks_of_text/output_003.pdf differ diff --git a/tests/output/test_write_chunks_of_text/output_004.pdf b/tests/output/test_write_chunks_of_text/output_004.pdf index 24e1e515e..32e67208a 100644 Binary files a/tests/output/test_write_chunks_of_text/output_004.pdf and b/tests/output/test_write_chunks_of_text/output_004.pdf differ diff --git a/tests/output/test_write_chunks_of_text/output_005.pdf b/tests/output/test_write_chunks_of_text/output_005.pdf index b5dbbe3ef..302d4ee66 100644 Binary files a/tests/output/test_write_chunks_of_text/output_005.pdf and b/tests/output/test_write_chunks_of_text/output_005.pdf differ diff --git a/tests/output/test_write_code_128_barcode/output.pdf b/tests/output/test_write_code_128_barcode/output.pdf index eb1319efb..034ddd31c 100644 Binary files a/tests/output/test_write_code_128_barcode/output.pdf and b/tests/output/test_write_code_128_barcode/output.pdf differ diff --git a/tests/output/test_write_code_128_barcode_in_color/output.pdf b/tests/output/test_write_code_128_barcode_in_color/output.pdf index df529e476..7099d7f7d 100644 Binary files a/tests/output/test_write_code_128_barcode_in_color/output.pdf and b/tests/output/test_write_code_128_barcode_in_color/output.pdf differ diff --git a/tests/output/test_write_codeblock/output.pdf b/tests/output/test_write_codeblock/output.pdf index 0a00c270d..48502672a 100644 Binary files a/tests/output/test_write_codeblock/output.pdf and b/tests/output/test_write_codeblock/output.pdf differ diff --git a/tests/output/test_write_dragon_curve/output.pdf b/tests/output/test_write_dragon_curve/output.pdf index e90112362..5a866e569 100644 Binary files a/tests/output/test_write_dragon_curve/output.pdf and b/tests/output/test_write_dragon_curve/output.pdf differ diff --git a/tests/output/test_write_emoji/output.pdf b/tests/output/test_write_emoji/output.pdf index 407e92114..c18348219 100644 Binary files a/tests/output/test_write_emoji/output.pdf and b/tests/output/test_write_emoji/output.pdf differ diff --git a/tests/output/test_write_empty_document/output.pdf b/tests/output/test_write_empty_document/output.pdf index 8301662f8..dd1f18036 100644 Binary files a/tests/output/test_write_empty_document/output.pdf and b/tests/output/test_write_empty_document/output.pdf differ diff --git a/tests/output/test_write_flexi_table/output_001.pdf b/tests/output/test_write_flexi_table/output_001.pdf index 3a6695c05..7842bed1b 100644 Binary files a/tests/output/test_write_flexi_table/output_001.pdf and b/tests/output/test_write_flexi_table/output_001.pdf differ diff --git a/tests/output/test_write_flexi_table/output_002.pdf b/tests/output/test_write_flexi_table/output_002.pdf index a8b3b5449..885f3dba3 100644 Binary files a/tests/output/test_write_flexi_table/output_002.pdf and b/tests/output/test_write_flexi_table/output_002.pdf differ diff --git a/tests/output/test_write_flexi_table/output_003.pdf b/tests/output/test_write_flexi_table/output_003.pdf index 0ca26937c..f9a232939 100644 Binary files a/tests/output/test_write_flexi_table/output_003.pdf and b/tests/output/test_write_flexi_table/output_003.pdf differ diff --git a/tests/output/test_write_flexi_table/output_004.pdf b/tests/output/test_write_flexi_table/output_004.pdf index 52e4f2d92..8fadfca62 100644 Binary files a/tests/output/test_write_flexi_table/output_004.pdf and b/tests/output/test_write_flexi_table/output_004.pdf differ diff --git a/tests/output/test_write_flexi_table/output_005.pdf b/tests/output/test_write_flexi_table/output_005.pdf index 3851f475c..865956e5b 100644 Binary files a/tests/output/test_write_flexi_table/output_005.pdf and b/tests/output/test_write_flexi_table/output_005.pdf differ diff --git a/tests/output/test_write_flexi_table_with_preferred_width/output_001.pdf b/tests/output/test_write_flexi_table_with_preferred_width/output_001.pdf index 6e569ce86..fe694cdea 100644 Binary files a/tests/output/test_write_flexi_table_with_preferred_width/output_001.pdf and b/tests/output/test_write_flexi_table_with_preferred_width/output_001.pdf differ diff --git a/tests/output/test_write_flowchart_line_art/output.pdf b/tests/output/test_write_flowchart_line_art/output.pdf index 0dd120e09..8788bad96 100644 Binary files a/tests/output/test_write_flowchart_line_art/output.pdf and b/tests/output/test_write_flowchart_line_art/output.pdf differ diff --git a/tests/output/test_write_grayscale_image/output.pdf b/tests/output/test_write_grayscale_image/output.pdf index 887347c94..e1a1fda5b 100644 Binary files a/tests/output/test_write_grayscale_image/output.pdf and b/tests/output/test_write_grayscale_image/output.pdf differ diff --git a/tests/output/test_write_hyphenated_paragraph/output.pdf b/tests/output/test_write_hyphenated_paragraph/output.pdf new file mode 100644 index 000000000..322ccf7c2 Binary files /dev/null and b/tests/output/test_write_hyphenated_paragraph/output.pdf differ diff --git a/tests/output/test_write_image_by_url/output.pdf b/tests/output/test_write_image_by_url/output.pdf index b2a7835b7..6f7b02188 100644 Binary files a/tests/output/test_write_image_by_url/output.pdf and b/tests/output/test_write_image_by_url/output.pdf differ diff --git a/tests/output/test_write_image_justified_center/output.pdf b/tests/output/test_write_image_justified_center/output.pdf index 4ae945922..bdc66a932 100644 Binary files a/tests/output/test_write_image_justified_center/output.pdf and b/tests/output/test_write_image_justified_center/output.pdf differ diff --git a/tests/output/test_write_incomplete_table/output_001.pdf b/tests/output/test_write_incomplete_table/output_001.pdf index 67bdb1383..022c67fa4 100644 Binary files a/tests/output/test_write_incomplete_table/output_001.pdf and b/tests/output/test_write_incomplete_table/output_001.pdf differ diff --git a/tests/output/test_write_line_of_text_justified_center/output.pdf b/tests/output/test_write_line_of_text_justified_center/output.pdf index e8c779072..5960db60d 100644 Binary files a/tests/output/test_write_line_of_text_justified_center/output.pdf and b/tests/output/test_write_line_of_text_justified_center/output.pdf differ diff --git a/tests/output/test_write_line_of_text_justified_full/output.pdf b/tests/output/test_write_line_of_text_justified_full/output.pdf index 075950a87..d4e685b8b 100644 Binary files a/tests/output/test_write_line_of_text_justified_full/output.pdf and b/tests/output/test_write_line_of_text_justified_full/output.pdf differ diff --git a/tests/output/test_write_line_of_text_justified_right/output.pdf b/tests/output/test_write_line_of_text_justified_right/output.pdf index 8e65bae00..1b10ef460 100644 Binary files a/tests/output/test_write_line_of_text_justified_right/output.pdf and b/tests/output/test_write_line_of_text_justified_right/output.pdf differ diff --git a/tests/output/test_write_lissajours_line_art/output.pdf b/tests/output/test_write_lissajours_line_art/output.pdf index 694b03fcc..fe741e8ea 100644 Binary files a/tests/output/test_write_lissajours_line_art/output.pdf and b/tests/output/test_write_lissajours_line_art/output.pdf differ diff --git a/tests/output/test_write_long_unordered_list/output.pdf b/tests/output/test_write_long_unordered_list/output.pdf index 4aa7c824b..c336385e6 100644 Binary files a/tests/output/test_write_long_unordered_list/output.pdf and b/tests/output/test_write_long_unordered_list/output.pdf differ diff --git a/tests/output/test_write_multiple_pages/output.pdf b/tests/output/test_write_multiple_pages/output.pdf index 627bc7ffe..9c73ab881 100644 Binary files a/tests/output/test_write_multiple_pages/output.pdf and b/tests/output/test_write_multiple_pages/output.pdf differ diff --git a/tests/output/test_write_nested_ordered_list/output.pdf b/tests/output/test_write_nested_ordered_list/output.pdf index 248f65616..303c3510e 100644 Binary files a/tests/output/test_write_nested_ordered_list/output.pdf and b/tests/output/test_write_nested_ordered_list/output.pdf differ diff --git a/tests/output/test_write_nested_unordered_list/output.pdf b/tests/output/test_write_nested_unordered_list/output.pdf index 1cf0f2de7..32dcb825b 100644 Binary files a/tests/output/test_write_nested_unordered_list/output.pdf and b/tests/output/test_write_nested_unordered_list/output.pdf differ diff --git a/tests/output/test_write_ordered_list/output_001.pdf b/tests/output/test_write_ordered_list/output_001.pdf index 4664bbf37..c51102072 100644 Binary files a/tests/output/test_write_ordered_list/output_001.pdf and b/tests/output/test_write_ordered_list/output_001.pdf differ diff --git a/tests/output/test_write_ordered_list/output_002.pdf b/tests/output/test_write_ordered_list/output_002.pdf index 3acfb5a8f..b9fac432d 100644 Binary files a/tests/output/test_write_ordered_list/output_002.pdf and b/tests/output/test_write_ordered_list/output_002.pdf differ diff --git a/tests/output/test_write_paragraph/output.pdf b/tests/output/test_write_paragraph/output.pdf index 5a91e65e6..50fc89a16 100644 Binary files a/tests/output/test_write_paragraph/output.pdf and b/tests/output/test_write_paragraph/output.pdf differ diff --git a/tests/output/test_write_paragraph_alignment/output.pdf b/tests/output/test_write_paragraph_alignment/output.pdf index e622b78de..61ff4676c 100644 Binary files a/tests/output/test_write_paragraph_alignment/output.pdf and b/tests/output/test_write_paragraph_alignment/output.pdf differ diff --git a/tests/output/test_write_paragraph_border_left/output.pdf b/tests/output/test_write_paragraph_border_left/output.pdf index c7d28b1c8..0bea88a5f 100644 Binary files a/tests/output/test_write_paragraph_border_left/output.pdf and b/tests/output/test_write_paragraph_border_left/output.pdf differ diff --git a/tests/output/test_write_paragraph_force_split/output.pdf b/tests/output/test_write_paragraph_force_split/output.pdf index b83447486..15329160d 100644 Binary files a/tests/output/test_write_paragraph_force_split/output.pdf and b/tests/output/test_write_paragraph_force_split/output.pdf differ diff --git a/tests/output/test_write_paragraph_justified_center/output.pdf b/tests/output/test_write_paragraph_justified_center/output.pdf deleted file mode 100644 index dbd098117..000000000 Binary files a/tests/output/test_write_paragraph_justified_center/output.pdf and /dev/null differ diff --git a/tests/output/test_write_paragraph_justified_center/output_001.pdf b/tests/output/test_write_paragraph_justified_center/output_001.pdf new file mode 100644 index 000000000..1367c5b32 Binary files /dev/null and b/tests/output/test_write_paragraph_justified_center/output_001.pdf differ diff --git a/tests/output/test_write_paragraph_justified_center/output_002.pdf b/tests/output/test_write_paragraph_justified_center/output_002.pdf new file mode 100644 index 000000000..31bb8a0b5 Binary files /dev/null and b/tests/output/test_write_paragraph_justified_center/output_002.pdf differ diff --git a/tests/output/test_write_paragraph_justified_center_with_padding/output.pdf b/tests/output/test_write_paragraph_justified_center_with_padding/output.pdf index bacfef67b..2a38f4f77 100644 Binary files a/tests/output/test_write_paragraph_justified_center_with_padding/output.pdf and b/tests/output/test_write_paragraph_justified_center_with_padding/output.pdf differ diff --git a/tests/output/test_write_paragraph_justified_center_with_padding_and_border/output.pdf b/tests/output/test_write_paragraph_justified_center_with_padding_and_border/output.pdf index 405e69d4f..2983688e8 100644 Binary files a/tests/output/test_write_paragraph_justified_center_with_padding_and_border/output.pdf and b/tests/output/test_write_paragraph_justified_center_with_padding_and_border/output.pdf differ diff --git a/tests/output/test_write_paragraph_justified_center_with_padding_and_border_and_background/output.pdf b/tests/output/test_write_paragraph_justified_center_with_padding_and_border_and_background/output.pdf index d6c280fcb..a0a80eaa3 100644 Binary files a/tests/output/test_write_paragraph_justified_center_with_padding_and_border_and_background/output.pdf and b/tests/output/test_write_paragraph_justified_center_with_padding_and_border_and_background/output.pdf differ diff --git a/tests/output/test_write_paragraph_justified_full/output.pdf b/tests/output/test_write_paragraph_justified_full/output.pdf index 784703da0..e39f8b558 100644 Binary files a/tests/output/test_write_paragraph_justified_full/output.pdf and b/tests/output/test_write_paragraph_justified_full/output.pdf differ diff --git a/tests/output/test_write_paragraph_justified_right/output.pdf b/tests/output/test_write_paragraph_justified_right/output.pdf index 542e72456..5f731b9ef 100644 Binary files a/tests/output/test_write_paragraph_justified_right/output.pdf and b/tests/output/test_write_paragraph_justified_right/output.pdf differ diff --git a/tests/output/test_write_paragraph_preserve_space/output.pdf b/tests/output/test_write_paragraph_preserve_space/output.pdf index a87cd27aa..04a124e66 100644 Binary files a/tests/output/test_write_paragraph_preserve_space/output.pdf and b/tests/output/test_write_paragraph_preserve_space/output.pdf differ diff --git a/tests/output/test_write_paragraph_save_twice/output_001.pdf b/tests/output/test_write_paragraph_save_twice/output_001.pdf index 747a6c8b0..06d3c4546 100644 Binary files a/tests/output/test_write_paragraph_save_twice/output_001.pdf and b/tests/output/test_write_paragraph_save_twice/output_001.pdf differ diff --git a/tests/output/test_write_paragraph_save_twice/output_002.pdf b/tests/output/test_write_paragraph_save_twice/output_002.pdf index 424245365..28c5e77e0 100644 Binary files a/tests/output/test_write_paragraph_save_twice/output_002.pdf and b/tests/output/test_write_paragraph_save_twice/output_002.pdf differ diff --git a/tests/output/test_write_paragraph_with_accented_letters/output.pdf b/tests/output/test_write_paragraph_with_accented_letters/output.pdf new file mode 100644 index 000000000..157411ab3 Binary files /dev/null and b/tests/output/test_write_paragraph_with_accented_letters/output.pdf differ diff --git a/tests/output/test_write_paragraphs_using_multi_column_layout/output.pdf b/tests/output/test_write_paragraphs_using_multi_column_layout/output.pdf index aad1a633d..38fb32ddd 100644 Binary files a/tests/output/test_write_paragraphs_using_multi_column_layout/output.pdf and b/tests/output/test_write_paragraphs_using_multi_column_layout/output.pdf differ diff --git a/tests/output/test_write_paragraphs_using_single_column_layout/output.pdf b/tests/output/test_write_paragraphs_using_single_column_layout/output.pdf index b5fede94a..94fceaa6d 100644 Binary files a/tests/output/test_write_paragraphs_using_single_column_layout/output.pdf and b/tests/output/test_write_paragraphs_using_single_column_layout/output.pdf differ diff --git a/tests/output/test_write_paragraphs_with_headings/output.pdf b/tests/output/test_write_paragraphs_with_headings/output.pdf index 410f90b3f..0a2f282eb 100644 Binary files a/tests/output/test_write_paragraphs_with_headings/output.pdf and b/tests/output/test_write_paragraphs_with_headings/output.pdf differ diff --git a/tests/output/test_write_pil_image/output.pdf b/tests/output/test_write_pil_image/output.pdf index 56b56b72b..1e767782f 100644 Binary files a/tests/output/test_write_pil_image/output.pdf and b/tests/output/test_write_pil_image/output.pdf differ diff --git a/tests/output/test_write_png_image_by_url/output.pdf b/tests/output/test_write_png_image_by_url/output.pdf index 3702317ca..b178e8089 100644 Binary files a/tests/output/test_write_png_image_by_url/output.pdf and b/tests/output/test_write_png_image_by_url/output.pdf differ diff --git a/tests/output/test_write_radar_plot/output.pdf b/tests/output/test_write_radar_plot/output.pdf index bb17ae106..946949e3d 100644 Binary files a/tests/output/test_write_radar_plot/output.pdf and b/tests/output/test_write_radar_plot/output.pdf differ diff --git a/tests/output/test_write_simple_table/output_001.pdf b/tests/output/test_write_simple_table/output_001.pdf index f805248dd..616bfe455 100644 Binary files a/tests/output/test_write_simple_table/output_001.pdf and b/tests/output/test_write_simple_table/output_001.pdf differ diff --git a/tests/output/test_write_simple_table/output_002.pdf b/tests/output/test_write_simple_table/output_002.pdf index e3224a131..b83b42a00 100644 Binary files a/tests/output/test_write_simple_table/output_002.pdf and b/tests/output/test_write_simple_table/output_002.pdf differ diff --git a/tests/output/test_write_simple_table/output_003.pdf b/tests/output/test_write_simple_table/output_003.pdf index 2834d5d31..388f2daae 100644 Binary files a/tests/output/test_write_simple_table/output_003.pdf and b/tests/output/test_write_simple_table/output_003.pdf differ diff --git a/tests/output/test_write_simple_table/output_004.pdf b/tests/output/test_write_simple_table/output_004.pdf index 9d3930f08..412a575db 100644 Binary files a/tests/output/test_write_simple_table/output_004.pdf and b/tests/output/test_write_simple_table/output_004.pdf differ diff --git a/tests/output/test_write_simple_table/output_005.pdf b/tests/output/test_write_simple_table/output_005.pdf index 716f5ec66..ff423dc81 100644 Binary files a/tests/output/test_write_simple_table/output_005.pdf and b/tests/output/test_write_simple_table/output_005.pdf differ diff --git a/tests/output/test_write_table_with_col_span/output.pdf b/tests/output/test_write_table_with_col_span/output.pdf index b4a2e693c..1fa3ceced 100644 Binary files a/tests/output/test_write_table_with_col_span/output.pdf and b/tests/output/test_write_table_with_col_span/output.pdf differ diff --git a/tests/output/test_write_table_with_image/output.pdf b/tests/output/test_write_table_with_image/output.pdf index f4b3f9076..a14db698a 100644 Binary files a/tests/output/test_write_table_with_image/output.pdf and b/tests/output/test_write_table_with_image/output.pdf differ diff --git a/tests/output/test_write_table_with_non_black_paragraphs/output.pdf b/tests/output/test_write_table_with_non_black_paragraphs/output.pdf index 021ec0bbf..398662166 100644 Binary files a/tests/output/test_write_table_with_non_black_paragraphs/output.pdf and b/tests/output/test_write_table_with_non_black_paragraphs/output.pdf differ diff --git a/tests/output/test_write_table_with_rainbow_background/output.pdf b/tests/output/test_write_table_with_rainbow_background/output.pdf index db75962f8..5816622e3 100644 Binary files a/tests/output/test_write_table_with_rainbow_background/output.pdf and b/tests/output/test_write_table_with_rainbow_background/output.pdf differ diff --git a/tests/output/test_write_table_with_row_span/output.pdf b/tests/output/test_write_table_with_row_span/output.pdf index 1d31eeab6..a2bfd600b 100644 Binary files a/tests/output/test_write_table_with_row_span/output.pdf and b/tests/output/test_write_table_with_row_span/output.pdf differ diff --git a/tests/output/test_write_table_with_special_characters/output.pdf b/tests/output/test_write_table_with_special_characters/output.pdf index d7d42e496..41031edce 100644 Binary files a/tests/output/test_write_table_with_special_characters/output.pdf and b/tests/output/test_write_table_with_special_characters/output.pdf differ diff --git a/tests/output/test_write_tents_and_trees/output.pdf b/tests/output/test_write_tents_and_trees/output.pdf new file mode 100644 index 000000000..a1b716c2c Binary files /dev/null and b/tests/output/test_write_tents_and_trees/output.pdf differ diff --git a/tests/output/test_write_unordered_list/output.pdf b/tests/output/test_write_unordered_list/output.pdf index 043fe390d..aac37d9e2 100644 Binary files a/tests/output/test_write_unordered_list/output.pdf and b/tests/output/test_write_unordered_list/output.pdf differ diff --git a/tests/output/test_write_using_low_level_instructions/output.pdf b/tests/output/test_write_using_low_level_instructions/output.pdf index 24286734a..3f5345bb1 100644 Binary files a/tests/output/test_write_using_low_level_instructions/output.pdf and b/tests/output/test_write_using_low_level_instructions/output.pdf differ diff --git a/tests/output/test_write_with_truetype_font/output_001.pdf b/tests/output/test_write_with_truetype_font/output_001.pdf new file mode 100644 index 000000000..ebe93c349 Binary files /dev/null and b/tests/output/test_write_with_truetype_font/output_001.pdf differ diff --git a/tests/output/test_write_with_truetype_font/output.pdf b/tests/output/test_write_with_truetype_font/output_002.pdf similarity index 83% rename from tests/output/test_write_with_truetype_font/output.pdf rename to tests/output/test_write_with_truetype_font/output_002.pdf index 304bdc921..5df53b070 100644 Binary files a/tests/output/test_write_with_truetype_font/output.pdf and b/tests/output/test_write_with_truetype_font/output_002.pdf differ diff --git a/tests/output/test_write_with_truetype_font/output_003.pdf b/tests/output/test_write_with_truetype_font/output_003.pdf new file mode 100644 index 000000000..05b5cf29f Binary files /dev/null and b/tests/output/test_write_with_truetype_font/output_003.pdf differ diff --git a/tests/output/test_write_xl_image/output.pdf b/tests/output/test_write_xl_image/output.pdf index 2c9b71203..a5a33d057 100644 Binary files a/tests/output/test_write_xl_image/output.pdf and b/tests/output/test_write_xl_image/output.pdf differ diff --git a/tests/pdf/canvas/color/test_color_conversion.py b/tests/pdf/canvas/color/test_color_conversion.py index ca40a6227..eb25587d8 100644 --- a/tests/pdf/canvas/color/test_color_conversion.py +++ b/tests/pdf/canvas/color/test_color_conversion.py @@ -1,7 +1,7 @@ import unittest from decimal import Decimal -from ptext.pdf.canvas.color.color import HexColor, HSVColor, RGBColor +from borb.pdf.canvas.color.color import HexColor, HSVColor, RGBColor class TestColorConversion(unittest.TestCase): diff --git a/tests/pdf/canvas/color/test_extract_colors.py b/tests/pdf/canvas/color/test_extract_colors.py index 6bcb3fc1b..45e8de56d 100644 --- a/tests/pdf/canvas/color/test_extract_colors.py +++ b/tests/pdf/canvas/color/test_extract_colors.py @@ -4,22 +4,22 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor, RGBColor, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.image.shape import Shape -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.base_table import TableCell -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor, RGBColor, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.image.shape import Shape +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.canvas.line_art.line_art_factory import LineArtFactory -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.color.color_spectrum_extraction import ColorSpectrumExtraction +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.canvas.line_art.line_art_factory import LineArtFactory +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.color.color_spectrum_extraction import ColorSpectrumExtraction unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/pdf/canvas/font/Pacifico-Regular.ttf b/tests/pdf/canvas/font/Pacifico-Regular.ttf new file mode 100644 index 000000000..b9265a2a5 Binary files /dev/null and b/tests/pdf/canvas/font/Pacifico-Regular.ttf differ diff --git a/tests/pdf/canvas/font/Tourney.ttf b/tests/pdf/canvas/font/Tourney.ttf new file mode 100644 index 000000000..4f4e075dc Binary files /dev/null and b/tests/pdf/canvas/font/Tourney.ttf differ diff --git a/tests/pdf/canvas/font/test_extract_font_names.py b/tests/pdf/canvas/font/test_extract_font_names.py index 82a441541..1f7728ad5 100644 --- a/tests/pdf/canvas/font/test_extract_font_names.py +++ b/tests/pdf/canvas/font/test_extract_font_names.py @@ -4,17 +4,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.font_extraction import FontExtraction +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.font_extraction import FontExtraction unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/pdf/canvas/font/test_write_with_truetype_font.py b/tests/pdf/canvas/font/test_write_with_truetype_font.py index daa8e177e..046198198 100644 --- a/tests/pdf/canvas/font/test_write_with_truetype_font.py +++ b/tests/pdf/canvas/font/test_write_with_truetype_font.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteWithTrueTypeFont(unittest.TestCase): @@ -32,7 +32,83 @@ def __init__(self, methodName="runTest"): if not self.output_dir.exists(): self.output_dir.mkdir() - def test_write_document(self): + def test_write_document_001(self): + + # create document + pdf = Document() + + # add page + page = Page() + pdf.append_page(page) + + # layout + layout: PageLayout = SingleColumnLayout(page) + + # add test information + layout.add( + Table(number_of_columns=2, number_of_rows=3) + .add(Paragraph("Date", font="Helvetica-Bold")) + .add(Paragraph(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + .add(Paragraph("Test", font="Helvetica-Bold")) + .add(Paragraph(Path(__file__).stem)) + .add(Paragraph("Description", font="Helvetica-Bold")) + .add( + Paragraph( + "This test loads a truetype _font from a .ttf file and attempts to use it to write 2 paragraphs of lorem ipsum." + ) + ) + .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) + ) + + # path to _font + font_path: Path = Path(__file__).parent / "Pacifico-Regular.ttf" + assert font_path.exists() + + # add paragraph 1 + layout.add( + Paragraph( + """ + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + """, + font=TrueTypeFont.true_type_font_from_file(font_path), + font_size=Decimal(14), + ) + ) + + # add paragraph 2 + layout.add( + Paragraph( + """ + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, + totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. + Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, + sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. + Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, + adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. + Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? + Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, + vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? + """, + font=TrueTypeFont.true_type_font_from_file(font_path), + font_size=Decimal(14), + ) + ) + + # determine output location + out_file = self.output_dir / "output_001.pdf" + + # attempt to store PDF + with open(out_file, "wb") as in_file_handle: + PDF.dumps(in_file_handle, pdf) + + # attempt to re-open PDF + with open(out_file, "rb") as in_file_handle: + PDF.loads(in_file_handle) + + def test_write_document_002(self): # create document pdf = Document() @@ -98,7 +174,84 @@ def test_write_document(self): ) # determine output location - out_file = self.output_dir / "output.pdf" + out_file = self.output_dir / "output_002.pdf" + + # attempt to store PDF + with open(out_file, "wb") as in_file_handle: + PDF.dumps(in_file_handle, pdf) + + # attempt to re-open PDF + with open(out_file, "rb") as in_file_handle: + PDF.loads(in_file_handle) + + + def test_write_document_003(self): + + # create document + pdf = Document() + + # add page + page = Page() + pdf.append_page(page) + + # layout + layout: PageLayout = SingleColumnLayout(page) + + # add test information + layout.add( + Table(number_of_columns=2, number_of_rows=3) + .add(Paragraph("Date", font="Helvetica-Bold")) + .add(Paragraph(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + .add(Paragraph("Test", font="Helvetica-Bold")) + .add(Paragraph(Path(__file__).stem)) + .add(Paragraph("Description", font="Helvetica-Bold")) + .add( + Paragraph( + "This test loads a truetype _font from a .ttf file and attempts to use it to write 2 paragraphs of lorem ipsum." + ) + ) + .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) + ) + + # path to _font + font_path: Path = Path(__file__).parent / "Tourney.ttf" + assert font_path.exists() + + # add paragraph 1 + layout.add( + Paragraph( + """ + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. + Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. + Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + """, + font=TrueTypeFont.true_type_font_from_file(font_path), + font_size=Decimal(14), + ) + ) + + # add paragraph 2 + layout.add( + Paragraph( + """ + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, + totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. + Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, + sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. + Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, + adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. + Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? + Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, + vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? + """, + font=TrueTypeFont.true_type_font_from_file(font_path), + font_size=Decimal(14), + ) + ) + + # determine output location + out_file = self.output_dir / "output_003.pdf" # attempt to store PDF with open(out_file, "wb") as in_file_handle: diff --git a/tests/pdf/canvas/layout/barcode/test_write_all_types_barcode.py b/tests/pdf/canvas/layout/barcode/test_write_all_types_barcode.py index 3fb39b34f..ee102b134 100644 --- a/tests/pdf/canvas/layout/barcode/test_write_all_types_barcode.py +++ b/tests/pdf/canvas/layout/barcode/test_write_all_types_barcode.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.image.barcode import Barcode, BarcodeType -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.image.barcode import Barcode, BarcodeType +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteSimpleBarcode(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/barcode/test_write_code_128_barcode.py b/tests/pdf/canvas/layout/barcode/test_write_code_128_barcode.py index c34fed9da..0fd378ade 100644 --- a/tests/pdf/canvas/layout/barcode/test_write_code_128_barcode.py +++ b/tests/pdf/canvas/layout/barcode/test_write_code_128_barcode.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.image.barcode import Barcode, BarcodeType -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.image.barcode import Barcode, BarcodeType +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteSimpleBarcode(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/barcode/test_write_code_128_barcode_in_color.py b/tests/pdf/canvas/layout/barcode/test_write_code_128_barcode_in_color.py index f2b128f07..d392bf560 100644 --- a/tests/pdf/canvas/layout/barcode/test_write_code_128_barcode_in_color.py +++ b/tests/pdf/canvas/layout/barcode/test_write_code_128_barcode_in_color.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.image.barcode import Barcode, BarcodeType -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.image.barcode import Barcode, BarcodeType +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteSimpleBarcode(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chart/test_write_2_scatter_plots.py b/tests/pdf/canvas/layout/chart/test_write_2_scatter_plots.py index 778eafc33..2e74fe5b2 100644 --- a/tests/pdf/canvas/layout/chart/test_write_2_scatter_plots.py +++ b/tests/pdf/canvas/layout/chart/test_write_2_scatter_plots.py @@ -4,16 +4,16 @@ import matplotlib.pyplot as MatPlotLibPlot -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.chart import Chart -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.chart import Chart +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWrite2ScatterPlots(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chart/test_write_3d_density_chart.py b/tests/pdf/canvas/layout/chart/test_write_3d_density_chart.py index 996707600..23f21093d 100644 --- a/tests/pdf/canvas/layout/chart/test_write_3d_density_chart.py +++ b/tests/pdf/canvas/layout/chart/test_write_3d_density_chart.py @@ -6,16 +6,16 @@ import numpy as np import pandas as pd -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.chart import Chart -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.chart import Chart +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWrite3DDensityChart(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chart/test_write_3d_surface_plot.py b/tests/pdf/canvas/layout/chart/test_write_3d_surface_plot.py index b6fda6423..bbc9defb1 100644 --- a/tests/pdf/canvas/layout/chart/test_write_3d_surface_plot.py +++ b/tests/pdf/canvas/layout/chart/test_write_3d_surface_plot.py @@ -5,16 +5,16 @@ import matplotlib.pyplot as MatPlotLibPlot import pandas as pd -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.chart import Chart -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.chart import Chart +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWrite3DSurfacePlot(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chart/test_write_radar_plot.py b/tests/pdf/canvas/layout/chart/test_write_radar_plot.py index f098cda94..c03c7208e 100644 --- a/tests/pdf/canvas/layout/chart/test_write_radar_plot.py +++ b/tests/pdf/canvas/layout/chart/test_write_radar_plot.py @@ -6,16 +6,16 @@ import matplotlib.pyplot as MatPlotLibPlot import pandas as pd -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.chart import Chart -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.chart import Chart +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteRadarPlot(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text.py b/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text.py index 54171aed6..5ba55ab34 100644 --- a/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text.py +++ b/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteChunkOfText(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_escaped_chars.py b/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_escaped_chars.py index 71ae1dd9d..ae0fbcbe6 100644 --- a/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_escaped_chars.py +++ b/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_escaped_chars.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteChunkOfTextEscapedChars(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_in_rainbow_colors.py b/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_in_rainbow_colors.py index 6c9fae669..51c80d548 100644 --- a/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_in_rainbow_colors.py +++ b/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_in_rainbow_colors.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteChunkOfTextInRainbowColors(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_e_aigu.py b/tests/pdf/canvas/layout/chunk_of_text/test_write_paragraph_with_accented_letters.py similarity index 55% rename from tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_e_aigu.py rename to tests/pdf/canvas/layout/chunk_of_text/test_write_paragraph_with_accented_letters.py index f7acbdbec..e226a61d9 100644 --- a/tests/pdf/canvas/layout/chunk_of_text/test_write_chunk_of_text_e_aigu.py +++ b/tests/pdf/canvas/layout/chunk_of_text/test_write_paragraph_with_accented_letters.py @@ -2,22 +2,26 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +import typing + +from borb.io.read.types import Decimal +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.simple_text_extraction import SimpleTextExtraction -class TestWriteChunkOfTextEAigu(unittest.TestCase): +class TestWriteAccentedLetters(unittest.TestCase): """ - This test creates a PDF with a ChunkOfText in it, containing the e aigu character. + This test creates a PDF with a Paragraph in it, containing various accented characters. """ def __init__(self, methodName="runTest"): @@ -59,10 +63,17 @@ def test_write_document(self): .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - ChunkOfText( - "é", - font_size=Decimal(18.2), - ).layout(page, Rectangle(Decimal(59), Decimal(550), Decimal(100), Decimal(100))) + layout.add( + Image( + "https://avatars.githubusercontent.com/u/7126425?s=88&v=4", + width=Decimal(64), + height=Decimal(64), + ) + ) + + accented_words: typing.List[str] = ["Nombre", "Dirección", "Código Postal", "Número de Factura"] + for w in accented_words: + layout.add(Paragraph(w, font="Helvetica-bold")) # determine output location out_file = self.output_dir / "output.pdf" @@ -72,5 +83,11 @@ def test_write_document(self): PDF.dumps(in_file_handle, pdf) # attempt to re-open PDF + l = SimpleTextExtraction() with open(out_file, "rb") as in_file_handle: - PDF.loads(in_file_handle) + PDF.loads(in_file_handle, [l]) + + # verify that the words are in the extracted text + s: str = l.get_text(0) + for w in accented_words: + assert w in s, "Missing word %s in extracted text" % w diff --git a/tests/pdf/canvas/layout/chunk_of_text/test_write_using_low_level_instructions.py b/tests/pdf/canvas/layout/chunk_of_text/test_write_using_low_level_instructions.py index fbea8b030..17fd9646b 100644 --- a/tests/pdf/canvas/layout/chunk_of_text/test_write_using_low_level_instructions.py +++ b/tests/pdf/canvas/layout/chunk_of_text/test_write_using_low_level_instructions.py @@ -4,16 +4,16 @@ from decimal import Decimal from pathlib import Path -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Dictionary, Name, Stream -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Dictionary, Name, Stream +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteUsingLowLevelInstructions(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/chunks_of_text/test_write_chunks_of_text.py b/tests/pdf/canvas/layout/chunks_of_text/test_write_chunks_of_text.py index dc66d08b1..2d3c648c7 100644 --- a/tests/pdf/canvas/layout/chunks_of_text/test_write_chunks_of_text.py +++ b/tests/pdf/canvas/layout/chunks_of_text/test_write_chunks_of_text.py @@ -3,20 +3,20 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor, Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.chunks_of_text import HeterogeneousParagraph +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteChunksOfText(unittest.TestCase): @@ -152,9 +152,9 @@ def test_write_document_002(self): ] bb = Rectangle(Decimal(59), Decimal(500), Decimal(476), Decimal(124)) - HeterogeneousParagraph(chunks_of_text, horizontal_alignment=Alignment.RIGHT).layout( - page, bb - ) + HeterogeneousParagraph( + chunks_of_text, horizontal_alignment=Alignment.RIGHT + ).layout(page, bb) # add rectangle annotation page.append_square_annotation( @@ -220,9 +220,9 @@ def test_write_document_003(self): ] bb = Rectangle(Decimal(59), Decimal(500), Decimal(476), Decimal(124)) - HeterogeneousParagraph(chunks_of_text, horizontal_alignment=Alignment.CENTERED).layout( - page, bb - ) + HeterogeneousParagraph( + chunks_of_text, horizontal_alignment=Alignment.CENTERED + ).layout(page, bb) # add rectangle annotation page.append_square_annotation( diff --git a/tests/pdf/canvas/layout/codeblock/test_write_codeblock.py b/tests/pdf/canvas/layout/codeblock/test_write_codeblock.py index 8ab5ccf62..671ae8373 100644 --- a/tests/pdf/canvas/layout/codeblock/test_write_codeblock.py +++ b/tests/pdf/canvas/layout/codeblock/test_write_codeblock.py @@ -2,16 +2,16 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.codeblock import CodeBlock -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.codeblock import CodeBlock +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteCodeblock(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/emoji/test_write_emoji.py b/tests/pdf/canvas/layout/emoji/test_write_emoji.py index 2e1fea0cc..52d05d204 100644 --- a/tests/pdf/canvas/layout/emoji/test_write_emoji.py +++ b/tests/pdf/canvas/layout/emoji/test_write_emoji.py @@ -3,17 +3,18 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.emoji.emoji import Emojis -from ptext.pdf.canvas.layout.page_layout.browser_layout import BrowserLayout -from ptext.pdf.canvas.layout.text.chunk_of_text import ChunkOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.emoji.emoji import Emojis +from borb.pdf.canvas.layout.page_layout.browser_layout import BrowserLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) + class TestWriteEmoji(unittest.TestCase): """ This test attempts to extract the text of each PDF in the corpus @@ -45,17 +46,28 @@ def test_write_document(self): # write test info page_layout.add( - Table(number_of_columns=2, number_of_rows=3, margin_top=Decimal(5), margin_bottom=Decimal(5)) + Table( + number_of_columns=2, + number_of_rows=3, + margin_top=Decimal(5), + margin_bottom=Decimal(5), + ) .add(Paragraph("Date", font="Helvetica-Bold")) .add(Paragraph(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) .add(Paragraph("Test", font="Helvetica-Bold")) .add(Paragraph(Path(__file__).stem)) .add(Paragraph("Description", font="Helvetica-Bold")) - .add(Paragraph("This test creates a PDF with an emoji in it. This test uses the Emojis enum, which conveniently holds a wide range of images mapped to their emoji-name.")) + .add( + Paragraph( + "This test creates a PDF with an emoji in it. This test uses the Emojis enum, which conveniently holds a wide range of images mapped to their emoji-name." + ) + ) .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - page_layout.add(ChunkOfText("It wasn't easy. But pText now offers (basic) support for")) + page_layout.add( + ChunkOfText("It wasn't easy. But borb now offers (basic) support for") + ) page_layout.add(Emojis.SMILEY.value) page_layout.add(ChunkOfText(". ")) @@ -63,7 +75,11 @@ def test_write_document(self): page_layout.add(Emojis.OCTOCAT.value) page_layout.add(ChunkOfText("-repo.")) - page_layout.add(Paragraph("If you are working with a font that does not offer (color) emoji, you can now ask pText to insert the image corresponding to the emoji of your choice. Emoji offer some convenience methods to make it easier to interact with them as if they were text, rather than images.")) + page_layout.add( + Paragraph( + "If you are working with a font that does not offer (color) emoji, you can now ask borb to insert the image corresponding to the emoji of your choice. Emoji offer some convenience methods to make it easier to interact with them as if they were text, rather than images." + ) + ) # write file = self.output_dir / "output.pdf" diff --git a/tests/pdf/canvas/layout/heading/test_write_paragraphs_with_headings.py b/tests/pdf/canvas/layout/heading/test_write_paragraphs_with_headings.py index 42dcac8e7..3f4d08412 100644 --- a/tests/pdf/canvas/layout/heading/test_write_paragraphs_with_headings.py +++ b/tests/pdf/canvas/layout/heading/test_write_paragraphs_with_headings.py @@ -3,21 +3,21 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import ( SingleColumnLayout, MultiColumnLayout, ) -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.heading import Heading -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.heading import Heading +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphsWithHeadings(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/hyphenation/__init__.py b/tests/pdf/canvas/layout/hyphenation/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/pdf/canvas/layout/hyphenation/test_hyphenation.py b/tests/pdf/canvas/layout/hyphenation/test_hyphenation.py new file mode 100644 index 000000000..b45d22acf --- /dev/null +++ b/tests/pdf/canvas/layout/hyphenation/test_hyphenation.py @@ -0,0 +1,17 @@ +import unittest + +from borb.pdf.canvas.layout.hyphenation.hyphenation import Hyphenation + + +class TestHyphenation(unittest.TestCase): + def test_hyphenation_af(self): + h = Hyphenation("af") + assert h.hyphenate("dokter", "-") == "dok-ter" + assert h.hyphenate("marginaal", "-") == "mar-gi-naal" + assert h.hyphenate("sandaal", "-") == "sandaal" + + def test_hyphenation_en_gb(self): + h = Hyphenation("en-gb") + assert h.hyphenate("astute", "-") == "as-tute" + assert h.hyphenate("birmingham", "-") == "birm-ing-ham" + assert h.hyphenate("crab", "-") == "crab" diff --git a/tests/pdf/canvas/layout/hyphenation/test_write_hyphenated_paragraph.py b/tests/pdf/canvas/layout/hyphenation/test_write_hyphenated_paragraph.py new file mode 100644 index 000000000..22573f230 --- /dev/null +++ b/tests/pdf/canvas/layout/hyphenation/test_write_hyphenated_paragraph.py @@ -0,0 +1,112 @@ +from datetime import datetime +import unittest +from decimal import Decimal +from pathlib import Path + +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.emoji.emoji import Emojis +from borb.pdf.canvas.layout.hyphenation.hyphenation import Hyphenation +from borb.pdf.canvas.layout.page_layout.browser_layout import BrowserLayout +from borb.pdf.canvas.layout.text.chunk_of_text import ChunkOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( + FixedColumnWidthTable as Table, +) + + +class TestWriteHyphenatedParagraph(unittest.TestCase): + def __init__(self, methodName="runTest"): + super().__init__(methodName) + # find output dir + p: Path = Path(__file__).parent + while "output" not in [x.stem for x in p.iterdir() if x.is_dir()]: + p = p.parent + p = p / "output" + self.output_dir = Path(p, Path(__file__).stem.replace(".py", "")) + if not self.output_dir.exists(): + self.output_dir.mkdir() + + def test_write_document(self): + + # create empty document + pdf: Document = Document() + + # create empty page + page: Page = Page() + + # add page to document + pdf.append_page(page) + + page_layout: BrowserLayout = BrowserLayout(page) + + # write test info + page_layout.add( + Table( + number_of_columns=2, + number_of_rows=3, + margin_top=Decimal(5), + margin_bottom=Decimal(5), + ) + .add(Paragraph("Date", font="Helvetica-Bold")) + .add(Paragraph(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + .add(Paragraph("Test", font="Helvetica-Bold")) + .add(Paragraph(Path(__file__).stem)) + .add(Paragraph("Description", font="Helvetica-Bold")) + .add(Paragraph("This test creates a paragraph that will be hyphenated.")) + .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) + ) + + hyph: Hyphenation = Hyphenation("en-gb") + + page_layout.add( + Paragraph( + "Without hyphenation", + font_size=Decimal(20), + font_color=HexColor("86CD82"), + ) + ) + page_layout.add( + Paragraph( + """ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. + Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, + when an unknown printer took a galley of type and scrambled it to make a type specimen book. + It has survived not only five centuries, but also the leap into electronic typesetting, + remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, + and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. + """ + ) + ) + + page_layout.add( + Paragraph( + "With hyphenation", font_size=Decimal(20), font_color=HexColor("86CD82") + ) + ) + page_layout.add( + Paragraph( + """ + Lorem Ipsum is simply dummy text of the printing and typesetting industry. + Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, + when an unknown printer took a galley of type and scrambled it to make a type specimen book. + It has survived not only five centuries, but also the leap into electronic typesetting, + remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, + and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. + """, + hyphenation=hyph, + ) + ) + + # write + file = self.output_dir / "output.pdf" + with open(file, "wb") as pdf_file_handle: + PDF.dumps(pdf_file_handle, pdf) + + return True + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/pdf/canvas/layout/image/test_modify_image.py b/tests/pdf/canvas/layout/image/test_modify_image.py index e13e56126..047abce68 100644 --- a/tests/pdf/canvas/layout/image/test_modify_image.py +++ b/tests/pdf/canvas/layout/image/test_modify_image.py @@ -5,16 +5,16 @@ from PIL import Image as PILImage -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestModifyImage(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/image/test_write_grayscale_image.py b/tests/pdf/canvas/layout/image/test_write_grayscale_image.py index 090d50283..fabb3b7de 100644 --- a/tests/pdf/canvas/layout/image/test_write_grayscale_image.py +++ b/tests/pdf/canvas/layout/image/test_write_grayscale_image.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.image import Image as pImage -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.image import Image as pImage +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteGrayscaleImage(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/image/test_write_image_by_url.py b/tests/pdf/canvas/layout/image/test_write_image_by_url.py index 19d2fd6f0..154c57c0d 100644 --- a/tests/pdf/canvas/layout/image/test_write_image_by_url.py +++ b/tests/pdf/canvas/layout/image/test_write_image_by_url.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestSimpleImageByURL(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/image/test_write_image_justified_center.py b/tests/pdf/canvas/layout/image/test_write_image_justified_center.py index 8e00a5bcc..15bd13caf 100644 --- a/tests/pdf/canvas/layout/image/test_write_image_justified_center.py +++ b/tests/pdf/canvas/layout/image/test_write_image_justified_center.py @@ -5,17 +5,17 @@ import requests from PIL import Image as PILImage -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteImageAlignedCenter(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/image/test_write_pil_image.py b/tests/pdf/canvas/layout/image/test_write_pil_image.py index 4cbf94e57..a2bbc52ac 100644 --- a/tests/pdf/canvas/layout/image/test_write_pil_image.py +++ b/tests/pdf/canvas/layout/image/test_write_pil_image.py @@ -5,17 +5,17 @@ import requests from PIL import Image as PILImage -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWritePILImage(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/image/test_write_png_image_by_url.py b/tests/pdf/canvas/layout/image/test_write_png_image_by_url.py index 7d3293b6f..0edd8f300 100644 --- a/tests/pdf/canvas/layout/image/test_write_png_image_by_url.py +++ b/tests/pdf/canvas/layout/image/test_write_png_image_by_url.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWritePNGImageByURL(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/image/test_write_xl_image.py b/tests/pdf/canvas/layout/image/test_write_xl_image.py index 6a71b44c5..1afc8b7fc 100644 --- a/tests/pdf/canvas/layout/image/test_write_xl_image.py +++ b/tests/pdf/canvas/layout/image/test_write_xl_image.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.browser_layout import BrowserLayout -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.browser_layout import BrowserLayout +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestAddXLImage(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/line_art/test_write_blobs.py b/tests/pdf/canvas/layout/line_art/test_write_blobs.py index d4c8556fd..2f0c028db 100644 --- a/tests/pdf/canvas/layout/line_art/test_write_blobs.py +++ b/tests/pdf/canvas/layout/line_art/test_write_blobs.py @@ -2,20 +2,20 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.image.shape import Shape -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.base_table import TableCell -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.image.shape import Shape +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.canvas.line_art.blob_factory import BlobFactory -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.canvas.line_art.blob_factory import BlobFactory +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteBlobs(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/line_art/test_write_dragon_curve.py b/tests/pdf/canvas/layout/line_art/test_write_dragon_curve.py index 47eaedf56..155bffd42 100644 --- a/tests/pdf/canvas/layout/line_art/test_write_dragon_curve.py +++ b/tests/pdf/canvas/layout/line_art/test_write_dragon_curve.py @@ -2,20 +2,20 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.image.shape import Shape -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.image.shape import Shape +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.canvas.line_art.line_art_factory import LineArtFactory -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.canvas.line_art.line_art_factory import LineArtFactory +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteDragonCurve(unittest.TestCase): @@ -42,7 +42,9 @@ def _write_curve(self, page: Page, layout: SingleColumnLayout): layout.add( Shape( LineArtFactory.smooth_dragon_curve( - bounding_box=Rectangle(Decimal(0), Decimal(0), w * Decimal(0.75), h * Decimal(0.75)), + bounding_box=Rectangle( + Decimal(0), Decimal(0), w * Decimal(0.75), h * Decimal(0.75) + ), number_of_iterations=10, ), horizontal_alignment=Alignment.CENTERED, diff --git a/tests/pdf/canvas/layout/line_art/test_write_flowchart_line_art.py b/tests/pdf/canvas/layout/line_art/test_write_flowchart_line_art.py index 7c5903df3..2e595f23b 100644 --- a/tests/pdf/canvas/layout/line_art/test_write_flowchart_line_art.py +++ b/tests/pdf/canvas/layout/line_art/test_write_flowchart_line_art.py @@ -2,20 +2,20 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor, X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.image.shape import Shape -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.image.shape import Shape +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.canvas.line_art.line_art_factory import LineArtFactory -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.canvas.line_art.line_art_factory import LineArtFactory +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteFlowchartLineArt(unittest.TestCase): @@ -69,7 +69,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -78,7 +78,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -87,7 +87,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -96,7 +96,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add(Paragraph(" ")) @@ -106,7 +106,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) @@ -125,17 +125,25 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, + ) + ) + t.add( + Shape( + LineArtFactory.flowchart_stored_data(fixed_bb), + fill_color=HexColor("86CD82"), + stroke_color=X11Color("Black"), + line_width=Decimal(1), + horizontal_alignment=Alignment.CENTERED, ) ) - t.add(Paragraph(" ")) t.add( Shape( LineArtFactory.flowchart_internal_storage(fixed_bb), fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -144,7 +152,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add(Paragraph(" ")) @@ -154,7 +162,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) @@ -173,7 +181,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -182,7 +190,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -191,17 +199,25 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, + ) + ) + t.add( + Shape( + LineArtFactory.flowchart_display(fixed_bb), + fill_color=HexColor("86CD82"), + stroke_color=X11Color("Black"), + line_width=Decimal(1), + horizontal_alignment=Alignment.CENTERED, ) ) - t.add(Paragraph(" ")) t.add( Shape( LineArtFactory.flowchart_preparation(fixed_bb), fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -210,7 +226,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) @@ -223,24 +239,40 @@ def test_write_document(self): t.add(Paragraph("Loop Limit")) # fourth row of shapes - t.add(Paragraph(" ")) + t.add( + Shape( + LineArtFactory.flowchart_termination(fixed_bb), + fill_color=HexColor("86CD82"), + stroke_color=X11Color("Black"), + line_width=Decimal(1), + horizontal_alignment=Alignment.CENTERED, + ) + ) t.add( Shape( LineArtFactory.flowchart_collate(fixed_bb), fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, + ) + ) + t.add( + Shape( + LineArtFactory.flowchart_delay(fixed_bb), + fill_color=HexColor("86CD82"), + stroke_color=X11Color("Black"), + line_width=Decimal(1), + horizontal_alignment=Alignment.CENTERED, ) ) - t.add(Paragraph(" ")) t.add( Shape( LineArtFactory.flowchart_extract(fixed_bb), fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -249,7 +281,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -258,7 +290,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) @@ -277,7 +309,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -286,17 +318,25 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, + ) + ) + t.add( + Shape( + LineArtFactory.flowchart_database(fixed_bb), + fill_color=HexColor("86CD82"), + stroke_color=X11Color("Black"), + line_width=Decimal(1), + horizontal_alignment=Alignment.CENTERED, ) ) - t.add(Paragraph(" ")) t.add( Shape( LineArtFactory.flowchart_on_page_reference(fixed_bb), fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -305,7 +345,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) t.add( @@ -314,7 +354,7 @@ def test_write_document(self): fill_color=HexColor("86CD82"), stroke_color=X11Color("Black"), line_width=Decimal(1), - horizontal_alignment = Alignment.CENTERED + horizontal_alignment=Alignment.CENTERED, ) ) diff --git a/tests/pdf/canvas/layout/line_art/test_write_lissajours_line_art.py b/tests/pdf/canvas/layout/line_art/test_write_lissajours_line_art.py index 9ced99d72..bbd9d00c6 100644 --- a/tests/pdf/canvas/layout/line_art/test_write_lissajours_line_art.py +++ b/tests/pdf/canvas/layout/line_art/test_write_lissajours_line_art.py @@ -2,20 +2,20 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.image.shape import Shape -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.image.shape import Shape +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.canvas.line_art.line_art_factory import LineArtFactory -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.canvas.line_art.line_art_factory import LineArtFactory +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteLissajoursLineArt(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_center.py b/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_center.py index 990ab7f57..3fe82de9b 100644 --- a/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_center.py +++ b/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_center.py @@ -2,19 +2,19 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.line_of_text import LineOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.line_of_text import LineOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteLineOfTextJustifiedCenter(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_full.py b/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_full.py index ef5a5afe9..b83fecefa 100644 --- a/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_full.py +++ b/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_full.py @@ -2,19 +2,19 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.line_of_text import LineOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.line_of_text import LineOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteLineOfTextJustifiedFull(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_right.py b/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_right.py index 2a3c6b655..3b7f29e81 100644 --- a/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_right.py +++ b/tests/pdf/canvas/layout/line_of_text/test_write_line_of_text_justified_right.py @@ -2,19 +2,19 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.line_of_text import LineOfText -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.line_of_text import LineOfText +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteLineOfTextJustifiedRight(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/list/test_write_long_unordered_list.py b/tests/pdf/canvas/layout/list/test_write_long_unordered_list.py index eacc40c8b..fb5eabcbb 100644 --- a/tests/pdf/canvas/layout/list/test_write_long_unordered_list.py +++ b/tests/pdf/canvas/layout/list/test_write_long_unordered_list.py @@ -3,15 +3,15 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteLongUnorderedList(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/list/test_write_nested_ordered_list.py b/tests/pdf/canvas/layout/list/test_write_nested_ordered_list.py index b866a58a5..4f01a2019 100644 --- a/tests/pdf/canvas/layout/list/test_write_nested_ordered_list.py +++ b/tests/pdf/canvas/layout/list/test_write_nested_ordered_list.py @@ -2,16 +2,16 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.list.ordered_list import OrderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.list.ordered_list import OrderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteNestedList(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/list/test_write_nested_unordered_list.py b/tests/pdf/canvas/layout/list/test_write_nested_unordered_list.py index 78b97476b..f952f4fb1 100644 --- a/tests/pdf/canvas/layout/list/test_write_nested_unordered_list.py +++ b/tests/pdf/canvas/layout/list/test_write_nested_unordered_list.py @@ -3,15 +3,15 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteNestedUnorderedList(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/list/test_write_ordered_list.py b/tests/pdf/canvas/layout/list/test_write_ordered_list.py index f0fd17332..f6802d7f9 100644 --- a/tests/pdf/canvas/layout/list/test_write_ordered_list.py +++ b/tests/pdf/canvas/layout/list/test_write_ordered_list.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import X11Color -from ptext.pdf.canvas.layout.list.ordered_list import OrderedList -from ptext.pdf.canvas.layout.list.roman_list import RomanNumeralOrderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import X11Color +from borb.pdf.canvas.layout.list.ordered_list import OrderedList +from borb.pdf.canvas.layout.list.roman_list import RomanNumeralOrderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteOrderedList(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/list/test_write_unordered_list.py b/tests/pdf/canvas/layout/list/test_write_unordered_list.py index 82d992139..e606a6838 100644 --- a/tests/pdf/canvas/layout/list/test_write_unordered_list.py +++ b/tests/pdf/canvas/layout/list/test_write_unordered_list.py @@ -3,15 +3,15 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteUnorderedList(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/page_layout/test_write_multiple_pages.py b/tests/pdf/canvas/layout/page_layout/test_write_multiple_pages.py index ed65b40e8..09e1ded46 100644 --- a/tests/pdf/canvas/layout/page_layout/test_write_multiple_pages.py +++ b/tests/pdf/canvas/layout/page_layout/test_write_multiple_pages.py @@ -3,14 +3,14 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteMultiplePages(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/page_layout/test_write_paragraphs_using_multi_column_layout.py b/tests/pdf/canvas/layout/page_layout/test_write_paragraphs_using_multi_column_layout.py index 778890a92..f3e9b7abb 100644 --- a/tests/pdf/canvas/layout/page_layout/test_write_paragraphs_using_multi_column_layout.py +++ b/tests/pdf/canvas/layout/page_layout/test_write_paragraphs_using_multi_column_layout.py @@ -2,19 +2,19 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import ( SingleColumnLayout, MultiColumnLayout, ) -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphsUsingMultiColumnLayout(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/page_layout/test_write_paragraphs_using_single_column_layout.py b/tests/pdf/canvas/layout/page_layout/test_write_paragraphs_using_single_column_layout.py index 910178e33..60b8ad15a 100644 --- a/tests/pdf/canvas/layout/page_layout/test_write_paragraphs_using_single_column_layout.py +++ b/tests/pdf/canvas/layout/page_layout/test_write_paragraphs_using_single_column_layout.py @@ -2,16 +2,16 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphsUsingSingleColumnLayout(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph.py index 9c0af2c8d..1d33c2ad5 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraph(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_alignment.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_alignment.py index 33579eb71..22eba28b2 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_alignment.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_alignment.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphAlignment(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_border_left.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_border_left.py index e71995d66..cfb68d74a 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_border_left.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_border_left.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphBorderLeft(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_force_split.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_force_split.py index 01cc3f607..e308ae765 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_force_split.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_force_split.py @@ -2,16 +2,16 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphForceSplit(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center.py index 3efdc2636..8a64d1fdf 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphJustifiedCenter(unittest.TestCase): @@ -32,7 +32,54 @@ def __init__(self, methodName="runTest"): if not self.output_dir.exists(): self.output_dir.mkdir() - def test_write_document(self): + def test_write_document_001(self): + doc: Document = Document() + page: Page = Page() + doc.append_page(page) + + # add test information + layout = SingleColumnLayout(page) + layout.add( + Table(number_of_columns=2, number_of_rows=3) + .add(Paragraph("Date", font="Helvetica-Bold")) + .add(Paragraph(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + .add(Paragraph("Test", font="Helvetica-Bold")) + .add(Paragraph(Path(__file__).stem)) + .add(Paragraph("Description", font="Helvetica-Bold")) + .add( + Paragraph( + "This test creates a PDF with a Paragraph object in it. The Paragraph is aligned TOP, CENTERED." + ) + ) + .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) + ) + + p: Paragraph = Paragraph( + "Hello World!", horizontal_alignment=Alignment.CENTERED + ) + + # the next line of code uses absolute positioning + r: Rectangle = Rectangle( + Decimal(59), # x: 0 + page_margin + Decimal( + 848 - 84 - 200 - 100 + ), # y: page_height - page_margin - y - height_of_textbox + Decimal(595 - 59 * 2), # width: page_width - 2 * page_margin + Decimal(100), + ) # height + + # this is a quick and dirty way to draw a rectangle on the page + page.append_square_annotation(r, stroke_color=X11Color("Red")) + + # add the paragraph to the page + p.layout(page, r) + + # determine output location + out_file = self.output_dir / "output_001.pdf" + with open(out_file, "wb") as out_file_handle: + PDF.dumps(out_file_handle, doc) + + def test_write_document_002(self): # create output directory if it does not exist yet if not self.output_dir.exists(): @@ -84,7 +131,7 @@ def test_write_document(self): ) # determine output location - out_file = self.output_dir / "output.pdf" + out_file = self.output_dir / "output_002.pdf" # attempt to store PDF with open(out_file, "wb") as in_file_handle: diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding.py index cd1c065d4..1475416ad 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphJustifiedCenterWithPadding(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding_and_border.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding_and_border.py index 7dc12f085..b017a072a 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding_and_border.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding_and_border.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphJustifiedCenterWithPaddingAndBorder(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding_and_border_and_background.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding_and_border_and_background.py index 07c94252f..7a1b1fdfd 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding_and_border_and_background.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_center_with_padding_and_border_and_background.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphJustifiedCenterWithPaddingAndBorderAndBackground( diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_full.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_full.py index f12e9ae44..8c578518b 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_full.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_full.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphJustifiedFull(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_right.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_right.py index a6e795a96..ab64338dc 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_right.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_justified_right.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphJustifiedRight(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_preserve_space.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_preserve_space.py index 537c67754..42ef3fef7 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_preserve_space.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_preserve_space.py @@ -3,14 +3,14 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphPreserveSpace(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_save_twice.py b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_save_twice.py index 798f6fe96..7824943aa 100644 --- a/tests/pdf/canvas/layout/paragraph/test_write_paragraph_save_twice.py +++ b/tests/pdf/canvas/layout/paragraph/test_write_paragraph_save_twice.py @@ -2,16 +2,16 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteParagraphSaveTwice(unittest.TestCase): @@ -46,7 +46,7 @@ def test_write_document(self): .add(Paragraph("Description", font="Helvetica-Bold")) .add( Paragraph( - "This test creates a PDF with a Paragraph object in it. The Document is saved twice. This used to crash pText." + "This test creates a PDF with a Paragraph object in it. The Document is saved twice. Previously, this would trigger a crash." ) ) .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) diff --git a/tests/pdf/canvas/layout/table/test_write_flexi_table.py b/tests/pdf/canvas/layout/table/test_write_flexi_table.py index 8a561fd51..470fd3777 100644 --- a/tests/pdf/canvas/layout/table/test_write_flexi_table.py +++ b/tests/pdf/canvas/layout/table/test_write_flexi_table.py @@ -2,22 +2,23 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor, X11Color -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.table.flexible_column_width_table import FlexibleColumnWidthTable -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.table.flexible_column_width_table import ( + FlexibleColumnWidthTable, +) +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteFlexiTable(unittest.TestCase): - def __init__(self, methodName="runTest"): super().__init__(methodName) # find output dir @@ -51,7 +52,12 @@ def test_write_document_001(self): .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - t = FlexibleColumnWidthTable(number_of_rows=5, number_of_columns=2, padding_top=Decimal(5), horizontal_alignment=Alignment.RIGHT) + t = FlexibleColumnWidthTable( + number_of_rows=5, + number_of_columns=2, + padding_top=Decimal(5), + horizontal_alignment=Alignment.RIGHT, + ) t.add( Paragraph( "Language", @@ -133,7 +139,12 @@ def test_write_document_002(self): .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - t = FlexibleColumnWidthTable(number_of_rows=5, number_of_columns=2, padding_top=Decimal(5), horizontal_alignment=Alignment.RIGHT) + t = FlexibleColumnWidthTable( + number_of_rows=5, + number_of_columns=2, + padding_top=Decimal(5), + horizontal_alignment=Alignment.RIGHT, + ) t.add( Paragraph( "Language", @@ -216,7 +227,12 @@ def test_write_document_003(self): .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - t = FlexibleColumnWidthTable(number_of_rows=5, number_of_columns=2, padding_top=Decimal(5), horizontal_alignment=Alignment.RIGHT) + t = FlexibleColumnWidthTable( + number_of_rows=5, + number_of_columns=2, + padding_top=Decimal(5), + horizontal_alignment=Alignment.RIGHT, + ) t.add( Paragraph( "Language", @@ -299,7 +315,12 @@ def test_write_document_004(self): .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - t = FlexibleColumnWidthTable(number_of_rows=5, number_of_columns=2, padding_top=Decimal(5), horizontal_alignment=Alignment.RIGHT) + t = FlexibleColumnWidthTable( + number_of_rows=5, + number_of_columns=2, + padding_top=Decimal(5), + horizontal_alignment=Alignment.RIGHT, + ) t.add( Paragraph( "Language", @@ -382,7 +403,12 @@ def test_write_document_005(self): .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - t = FlexibleColumnWidthTable(number_of_rows=5, number_of_columns=2, padding_top=Decimal(5), horizontal_alignment=Alignment.RIGHT) + t = FlexibleColumnWidthTable( + number_of_rows=5, + number_of_columns=2, + padding_top=Decimal(5), + horizontal_alignment=Alignment.RIGHT, + ) t.add( Paragraph( "Language", diff --git a/tests/pdf/canvas/layout/table/test_write_flexi_table_with_preferred_width.py b/tests/pdf/canvas/layout/table/test_write_flexi_table_with_preferred_width.py index 3c21e5121..e5de147a7 100644 --- a/tests/pdf/canvas/layout/table/test_write_flexi_table_with_preferred_width.py +++ b/tests/pdf/canvas/layout/table/test_write_flexi_table_with_preferred_width.py @@ -2,22 +2,23 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.base_table import TableCell -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.table.flexible_column_width_table import FlexibleColumnWidthTable -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.table.flexible_column_width_table import ( + FlexibleColumnWidthTable, +) +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteFlexiTable(unittest.TestCase): - def __init__(self, methodName="runTest"): super().__init__(methodName) # find output dir @@ -47,29 +48,50 @@ def test_write_document_001(self): .add(Paragraph("Test", font="Helvetica-Bold")) .add(Paragraph(Path(__file__).stem)) .add(Paragraph("Description", font="Helvetica-Bold")) - .add(Paragraph("This test creates a PDF with a Table in it. The columns in the Table have a preferred width and height.")) + .add( + Paragraph( + "This test creates a PDF with a Table in it. The columns in the Table have a preferred width and height." + ) + ) .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) ) - t = FlexibleColumnWidthTable(number_of_rows=16, number_of_columns=27, horizontal_alignment=Alignment.CENTERED, padding_top=Decimal(5)) + t = FlexibleColumnWidthTable( + number_of_rows=16, + number_of_columns=27, + horizontal_alignment=Alignment.CENTERED, + padding_top=Decimal(5), + ) def _insert_n_blanks(n: int): for _ in range(0, n): - t.add(TableCell(Paragraph(" "), - border_width=Decimal(0), - preferred_width=Decimal(16), - preferred_height=Decimal(16))) + t.add( + TableCell( + Paragraph(" "), + border_width=Decimal(0), + preferred_width=Decimal(16), + preferred_height=Decimal(16), + ) + ) def _insert_n_blanks_all_borders(n: int): for _ in range(0, n): - t.add(TableCell(Paragraph(" "), - preferred_width=Decimal(16), - preferred_height=Decimal(16))) + t.add( + TableCell( + Paragraph(" "), + preferred_width=Decimal(16), + preferred_height=Decimal(16), + ) + ) def _insert_number(n: int): - t.add(TableCell(Paragraph(str(n), text_alignment=Alignment.CENTERED), - preferred_width=Decimal(16), - preferred_height=Decimal(16))) + t.add( + TableCell( + Paragraph(str(n), text_alignment=Alignment.CENTERED), + preferred_width=Decimal(16), + preferred_height=Decimal(16), + ) + ) # row 0 _insert_n_blanks(17) @@ -94,7 +116,7 @@ def _insert_number(n: int): # row 2 _insert_n_blanks(8) - for k in [0,8,1,4,0,7,1,0,5,1,1,0,1,3,1,0,7,1,0]: + for k in [0, 8, 1, 4, 0, 7, 1, 0, 5, 1, 1, 0, 1, 3, 1, 0, 7, 1, 0]: _insert_number(k) # empty row @@ -122,34 +144,34 @@ def _insert_number(n: int): # row 6 _insert_n_blanks(1) - for k in [3,2,3,1,1,2]: + for k in [3, 2, 3, 1, 1, 2]: _insert_number(k) _insert_n_blanks(1) _insert_n_blanks_all_borders(19) # row 7 - for k in [1,1,1,1,1,1,1]: + for k in [1, 1, 1, 1, 1, 1, 1]: _insert_number(k) _insert_n_blanks(1) _insert_n_blanks_all_borders(19) # row 8 _insert_n_blanks(1) - for k in [1,1,1,3,1,1]: + for k in [1, 1, 1, 3, 1, 1]: _insert_number(k) _insert_n_blanks(1) _insert_n_blanks_all_borders(19) # row 9 _insert_n_blanks(2) - for k in [3,1,1,1,1]: + for k in [3, 1, 1, 1, 1]: _insert_number(k) _insert_n_blanks(1) _insert_n_blanks_all_borders(19) # row 10 _insert_n_blanks(1) - for k in [1,2,3,1,1,2]: + for k in [1, 2, 3, 1, 1, 2]: _insert_number(k) _insert_n_blanks(1) _insert_n_blanks_all_borders(19) @@ -179,4 +201,3 @@ def _insert_number(n: int): # attempt to re-open PDF with open(out_file, "rb") as in_file_handle: PDF.loads(in_file_handle) - diff --git a/tests/pdf/canvas/layout/table/test_write_incomplete_table.py b/tests/pdf/canvas/layout/table/test_write_incomplete_table.py index 9beb5ab24..9587d0a49 100644 --- a/tests/pdf/canvas/layout/table/test_write_incomplete_table.py +++ b/tests/pdf/canvas/layout/table/test_write_incomplete_table.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor, X11Color -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteIncompleteTable(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/table/test_write_simple_table.py b/tests/pdf/canvas/layout/table/test_write_simple_table.py index af750fbd2..fb191afee 100644 --- a/tests/pdf/canvas/layout/table/test_write_simple_table.py +++ b/tests/pdf/canvas/layout/table/test_write_simple_table.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor, X11Color -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteSimpleTable(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/table/test_write_table_with_col_span.py b/tests/pdf/canvas/layout/table/test_write_table_with_col_span.py index 3a4168bb5..d027d4a96 100644 --- a/tests/pdf/canvas/layout/table/test_write_table_with_col_span.py +++ b/tests/pdf/canvas/layout/table/test_write_table_with_col_span.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor, X11Color -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.base_table import TableCell -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteTableWithColSpan(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/table/test_write_table_with_image.py b/tests/pdf/canvas/layout/table/test_write_table_with_image.py index 4a1936509..ad2d60f38 100644 --- a/tests/pdf/canvas/layout/table/test_write_table_with_image.py +++ b/tests/pdf/canvas/layout/table/test_write_table_with_image.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.image.image import Image -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.image.image import Image +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteTableWithImage(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/table/test_write_table_with_non_black_paragraphs.py b/tests/pdf/canvas/layout/table/test_write_table_with_non_black_paragraphs.py index f098d645e..0906d4932 100644 --- a/tests/pdf/canvas/layout/table/test_write_table_with_non_black_paragraphs.py +++ b/tests/pdf/canvas/layout/table/test_write_table_with_non_black_paragraphs.py @@ -2,16 +2,16 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import X11Color -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import X11Color +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Alignment, Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Alignment, Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteTableWithNonBlackParagraphs(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/table/test_write_table_with_rainbow_background.py b/tests/pdf/canvas/layout/table/test_write_table_with_rainbow_background.py index 2817697da..5aef80281 100644 --- a/tests/pdf/canvas/layout/table/test_write_table_with_rainbow_background.py +++ b/tests/pdf/canvas/layout/table/test_write_table_with_rainbow_background.py @@ -2,18 +2,18 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HSVColor, X11Color -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.base_table import TableCell -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HSVColor, X11Color +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteTableWithRainbowBackground(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/table/test_write_table_with_row_span.py b/tests/pdf/canvas/layout/table/test_write_table_with_row_span.py index da820356e..432443217 100644 --- a/tests/pdf/canvas/layout/table/test_write_table_with_row_span.py +++ b/tests/pdf/canvas/layout/table/test_write_table_with_row_span.py @@ -2,17 +2,17 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor, X11Color -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.base_table import TableCell -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteTableWithRowSpan(unittest.TestCase): diff --git a/tests/pdf/canvas/layout/table/test_write_table_with_special_characters.py b/tests/pdf/canvas/layout/table/test_write_table_with_special_characters.py index 949f54521..a1c1d9731 100644 --- a/tests/pdf/canvas/layout/table/test_write_table_with_special_characters.py +++ b/tests/pdf/canvas/layout/table/test_write_table_with_special_characters.py @@ -2,19 +2,19 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal -from ptext.pdf.canvas.color.color import HexColor, X11Color -from ptext.pdf.canvas.font.font import Font -from ptext.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteTableWithSpecialCharacters(unittest.TestCase): @@ -168,7 +168,7 @@ def test_write_document(self): layout.add( Paragraph( - text="**These are the characters pText can currently render in a PDF", + text="**These are the characters borb can currently render in a PDF", font_size=Decimal(8), font_color=X11Color("Gray"), horizontal_alignment=Alignment.RIGHT, diff --git a/tests/pdf/canvas/layout/table/test_write_tents_and_trees.py b/tests/pdf/canvas/layout/table/test_write_tents_and_trees.py new file mode 100644 index 000000000..b380894bc --- /dev/null +++ b/tests/pdf/canvas/layout/table/test_write_tents_and_trees.py @@ -0,0 +1,187 @@ +import random +import unittest +from datetime import datetime +from pathlib import Path + +from borb.io.read.types import Decimal +from borb.pdf.canvas.color.color import HexColor, X11Color +from borb.pdf.canvas.font.font import Font +from borb.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont +from borb.pdf.canvas.layout.emoji.emoji import Emojis +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.base_table import TableCell +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( + FixedColumnWidthTable as Table, +) +from borb.pdf.canvas.layout.table.flexible_column_width_table import ( + FlexibleColumnWidthTable, +) +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF + + +class TestWriteTentsAndTrees(unittest.TestCase): + def __init__(self, methodName="runTest"): + super().__init__(methodName) + # find output dir + p: Path = Path(__file__).parent + while "output" not in [x.stem for x in p.iterdir() if x.is_dir()]: + p = p.parent + p = p / "output" + self.output_dir = Path(p, Path(__file__).stem.replace(".py", "")) + if not self.output_dir.exists(): + self.output_dir.mkdir() + + def test_write_document(self): + + # create output directory if it does not exist yet + if not self.output_dir.exists(): + self.output_dir.mkdir() + + # create document + pdf = Document() + + # add page + page = Page() + pdf.append_page(page) + + layout = SingleColumnLayout(page) + + # write test information + layout.add( + Table(number_of_columns=2, number_of_rows=3) + .add(Paragraph("Date", font="Helvetica-Bold")) + .add(Paragraph(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + .add(Paragraph("Test", font="Helvetica-Bold")) + .add(Paragraph(Path(__file__).stem)) + .add(Paragraph("Description", font="Helvetica-Bold")) + .add( + Paragraph( + "This test creates a PDF with a Table in it. This Table has some emoji in it." + ) + ) + .set_padding_on_all_cells(Decimal(2), Decimal(2), Decimal(2), Decimal(2)) + ) + + # write puzzle title + font: Font = TrueTypeFont.true_type_font_from_file( + Path(__file__).parent / "Pacifico.ttf" + ) + layout.add( + Paragraph( + "Tents and Trees", + font_color=HexColor("#86CD82"), + font=font, + font_size=Decimal(23), + ) + ) + + # write puzzle information + layout.add( + Paragraph( + """ + You get a grid that represents a campsite. + There are a number of trees on the campsite. + You as a campsite manager must find a spot for the tent of each visitor that meets the following requirements: + """ + ) + ) + layout.add( + UnorderedList() + .add( + Paragraph( + "A tree must be immediately next to each tent (diagonal is not allowed)." + ) + ) + .add( + Paragraph( + "In total there are as many tents as trees. So every tent has its own tree." + ) + ) + .add( + Paragraph( + "The numbers outside the grid indicate how many tents there are in the relevant row or column." + ) + ) + .add( + Paragraph( + "Tents never touch each other: neither horizontally nor vertically nor diagonally." + ) + ) + .add( + Paragraph( + "A tent can make contact with multiple trees, but is only connected to one." + ) + ) + ) + + # write grid + w = Decimal(20) + grid = FlexibleColumnWidthTable( + number_of_rows=11, + number_of_columns=11, + margin_top=Decimal(5), + horizontal_alignment=Alignment.CENTERED, + ) + h_clues = [3, 2, 2, 1, 2, 2, 1, 2, 2, 3] + v_clues = [3, 1, 1, 3, 1, 3, 2, 2, 0, 4] + tree_layout = """ + __________ + x_____x__x + ____x_____ + _x____x___ + ____x____x + xx___x__x_ + ___x___x__ + _x_______x + __x_____x_ + _x____x___ + """ + tree_layout = tree_layout.replace("\n", "").replace(" ", "") + grid.add(TableCell(Paragraph(" "), preferred_height=w, preferred_width=w)) + for i in h_clues: + grid.add( + TableCell(Paragraph(str(i)), preferred_height=w, preferred_width=w) + ) + for i in range(0, 10): + grid.add( + TableCell( + Paragraph(str(v_clues[i])), preferred_height=w, preferred_width=w + ) + ) + for j in range(0, 10): + if tree_layout[i * 10 + j] == "_": + grid.add( + TableCell(Paragraph(" "), preferred_height=w, preferred_width=w) + ) + else: + grid.add( + TableCell( + random.choice( + [ + Emojis.DECIDUOUS_TREE.value, + Emojis.EVERGREEN_TREE.value, + ] + ), + preferred_height=w, + preferred_width=w, + ) + ) + + grid.set_padding_on_all_cells(Decimal(3), Decimal(3), Decimal(3), Decimal(3)) + layout.add(grid) + + # determine output location + out_file = self.output_dir / ("output.pdf") + + # attempt to store PDF + with open(out_file, "wb") as in_file_handle: + PDF.dumps(in_file_handle, pdf) + + # attempt to re-open PDF + with open(out_file, "rb") as in_file_handle: + PDF.loads(in_file_handle) diff --git a/tests/pdf/canvas/test_write_empty_document.py b/tests/pdf/canvas/test_write_empty_document.py index 98840d5e3..da0b352da 100644 --- a/tests/pdf/canvas/test_write_empty_document.py +++ b/tests/pdf/canvas/test_write_empty_document.py @@ -1,9 +1,9 @@ import unittest from pathlib import Path -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestWriteEmptyDocument(unittest.TestCase): diff --git a/tests/pdf/document/concat/test_concat_documents.py b/tests/pdf/document/concat/test_concat_documents.py index d4bada1e6..c2cf4be5f 100644 --- a/tests/pdf/document/concat/test_concat_documents.py +++ b/tests/pdf/document/concat/test_concat_documents.py @@ -3,14 +3,14 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/pdf/document/count_pages/test_count_pages.py b/tests/pdf/document/count_pages/test_count_pages.py index 3cf8ef89e..f2b7e006f 100644 --- a/tests/pdf/document/count_pages/test_count_pages.py +++ b/tests/pdf/document/count_pages/test_count_pages.py @@ -1,7 +1,7 @@ import unittest from pathlib import Path -from ptext.pdf.pdf import PDF +from borb.pdf.pdf import PDF class TestCountPages(unittest.TestCase): diff --git a/tests/pdf/document/embedded_files/test_append_embedded_file.py b/tests/pdf/document/embedded_files/test_append_embedded_file.py index 474a4f888..db7961efa 100644 --- a/tests/pdf/document/embedded_files/test_append_embedded_file.py +++ b/tests/pdf/document/embedded_files/test_append_embedded_file.py @@ -4,15 +4,15 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/pdf/document/outlines/test_add_outline.py b/tests/pdf/document/outlines/test_add_outline.py index e62f3b89c..71af80134 100644 --- a/tests/pdf/document/outlines/test_add_outline.py +++ b/tests/pdf/document/outlines/test_add_outline.py @@ -3,15 +3,15 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import DestinationType, Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import DestinationType, Page +from borb.pdf.pdf import PDF unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/pdf/document/test_remove_page.py b/tests/pdf/document/test_remove_page.py index 1274a357b..0c20a0f16 100644 --- a/tests/pdf/document/test_remove_page.py +++ b/tests/pdf/document/test_remove_page.py @@ -3,15 +3,15 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/pdf/page/annotations/test_add_all_rubber_stamp_annotations.py b/tests/pdf/page/annotations/test_add_all_rubber_stamp_annotations.py index 3d5433c27..5b63bb8aa 100644 --- a/tests/pdf/page/annotations/test_add_all_rubber_stamp_annotations.py +++ b/tests/pdf/page/annotations/test_add_all_rubber_stamp_annotations.py @@ -3,16 +3,16 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page, RubberStampAnnotationIconType -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page, RubberStampAnnotationIconType +from borb.pdf.pdf import PDF class TestAddAllRubberStampAnnotations(unittest.TestCase): diff --git a/tests/pdf/page/annotations/test_add_circle_annotation.py b/tests/pdf/page/annotations/test_add_circle_annotation.py index 9b8db8654..7b9707752 100644 --- a/tests/pdf/page/annotations/test_add_circle_annotation.py +++ b/tests/pdf/page/annotations/test_add_circle_annotation.py @@ -3,16 +3,16 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestAddCircleAnnotation(unittest.TestCase): diff --git a/tests/pdf/page/annotations/test_add_highlight_annotation.py b/tests/pdf/page/annotations/test_add_highlight_annotation.py index f69890a54..53bb829ea 100644 --- a/tests/pdf/page/annotations/test_add_highlight_annotation.py +++ b/tests/pdf/page/annotations/test_add_highlight_annotation.py @@ -3,16 +3,16 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/annotations/test_add_line_annotation.py b/tests/pdf/page/annotations/test_add_line_annotation.py index ba41e9b46..f7014f3e4 100644 --- a/tests/pdf/page/annotations/test_add_line_annotation.py +++ b/tests/pdf/page/annotations/test_add_line_annotation.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/annotations/test_add_polygon_annotation_using_line_art_factory.py b/tests/pdf/page/annotations/test_add_polygon_annotation_using_line_art_factory.py index 7987e1800..1021014c6 100644 --- a/tests/pdf/page/annotations/test_add_polygon_annotation_using_line_art_factory.py +++ b/tests/pdf/page/annotations/test_add_polygon_annotation_using_line_art_factory.py @@ -3,17 +3,18 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.canvas.line_art.line_art_factory import LineArtFactory -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.canvas.line_art.line_art_factory import LineArtFactory +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestAddAllLineArtAnnotations(unittest.TestCase): @@ -38,7 +39,7 @@ def test_add_line_art_annotation(self): pdf.append_page(page) # add test information - layout = SingleColumnLayout(page) + layout: PageLayout = SingleColumnLayout(page) layout.add( Table(number_of_columns=2, number_of_rows=3) .add(Paragraph("Date", font="Helvetica-Bold")) diff --git a/tests/pdf/page/annotations/test_add_polyline_annotation_using_line_art_factory.py b/tests/pdf/page/annotations/test_add_polyline_annotation_using_line_art_factory.py index 96eea7962..4859b2a77 100644 --- a/tests/pdf/page/annotations/test_add_polyline_annotation_using_line_art_factory.py +++ b/tests/pdf/page/annotations/test_add_polyline_annotation_using_line_art_factory.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.canvas.line_art.line_art_factory import LineArtFactory -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.canvas.line_art.line_art_factory import LineArtFactory +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestAddPolylineAnnotationUsingLineArtFactory(unittest.TestCase): diff --git a/tests/pdf/page/annotations/test_add_redact_annotation.py b/tests/pdf/page/annotations/test_add_redact_annotation.py index dcc8570c0..c8eb640e1 100644 --- a/tests/pdf/page/annotations/test_add_redact_annotation.py +++ b/tests/pdf/page/annotations/test_add_redact_annotation.py @@ -4,19 +4,19 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.page_layout.page_layout import PageLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.font.simple_font.true_type_font import TrueTypeFont +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/annotations/test_add_square_annotation.py b/tests/pdf/page/annotations/test_add_square_annotation.py index 32f345dd7..4de70eb0c 100644 --- a/tests/pdf/page/annotations/test_add_square_annotation.py +++ b/tests/pdf/page/annotations/test_add_square_annotation.py @@ -3,16 +3,16 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF class TestAddSquareAnnotation(unittest.TestCase): diff --git a/tests/pdf/page/annotations/test_add_square_annotation_in_free_space.py b/tests/pdf/page/annotations/test_add_square_annotation_in_free_space.py index f229ac8d2..c894af22a 100644 --- a/tests/pdf/page/annotations/test_add_square_annotation_in_free_space.py +++ b/tests/pdf/page/annotations/test_add_square_annotation_in_free_space.py @@ -2,10 +2,10 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.free_space_finder import FreeSpaceFinder -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.free_space_finder import FreeSpaceFinder +from borb.pdf.pdf import PDF unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/pdf/page/annotations/test_add_squiggle_annotation.py b/tests/pdf/page/annotations/test_add_squiggle_annotation.py index 4913dfcfa..60a94867e 100644 --- a/tests/pdf/page/annotations/test_add_squiggle_annotation.py +++ b/tests/pdf/page/annotations/test_add_squiggle_annotation.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/annotations/test_add_strikeout_annotation.py b/tests/pdf/page/annotations/test_add_strikeout_annotation.py index 6c0dc3312..b4d206bf5 100644 --- a/tests/pdf/page/annotations/test_add_strikeout_annotation.py +++ b/tests/pdf/page/annotations/test_add_strikeout_annotation.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/annotations/test_add_super_mario_annotation.py b/tests/pdf/page/annotations/test_add_super_mario_annotation.py index a40beb23e..b8d89afed 100644 --- a/tests/pdf/page/annotations/test_add_super_mario_annotation.py +++ b/tests/pdf/page/annotations/test_add_super_mario_annotation.py @@ -3,16 +3,16 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import X11Color -from ptext.pdf.canvas.geometry.rectangle import Rectangle -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import X11Color +from borb.pdf.canvas.geometry.rectangle import Rectangle +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import DestinationType, Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import DestinationType, Page +from borb.pdf.pdf import PDF class TestAddSuperMarioAnnotation(unittest.TestCase): diff --git a/tests/pdf/page/annotations/test_add_text_annotation.py b/tests/pdf/page/annotations/test_add_text_annotation.py index 8b95a5100..8a8247bd5 100644 --- a/tests/pdf/page/annotations/test_add_text_annotation.py +++ b/tests/pdf/page/annotations/test_add_text_annotation.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page, TextAnnotationIconType -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page, TextAnnotationIconType +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/annotations/test_add_underline_annotation.py b/tests/pdf/page/annotations/test_add_underline_annotation.py index 772d3dcf1..a188cd9a8 100644 --- a/tests/pdf/page/annotations/test_add_underline_annotation.py +++ b/tests/pdf/page/annotations/test_add_underline_annotation.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/annotations/test_count_annotations.py b/tests/pdf/page/annotations/test_count_annotations.py index c7c7d826b..df1ebd73f 100644 --- a/tests/pdf/page/annotations/test_count_annotations.py +++ b/tests/pdf/page/annotations/test_count_annotations.py @@ -3,18 +3,18 @@ from decimal import Decimal from pathlib import Path -from ptext.io.read.types import List -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import List +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/annotations/test_remove_annotation.py b/tests/pdf/page/annotations/test_remove_annotation.py index 257dd949d..ac4ffe304 100644 --- a/tests/pdf/page/annotations/test_remove_annotation.py +++ b/tests/pdf/page/annotations/test_remove_annotation.py @@ -3,18 +3,18 @@ from decimal import Decimal from pathlib import Path -from ptext.io.read.types import List -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import List +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/page/redact/test_apply_redaction_annotations.py b/tests/pdf/page/redact/test_apply_redaction_annotations.py index 54174c01d..8b445f8d5 100644 --- a/tests/pdf/page/redact/test_apply_redaction_annotations.py +++ b/tests/pdf/page/redact/test_apply_redaction_annotations.py @@ -4,19 +4,19 @@ from decimal import Decimal from pathlib import Path -from ptext.io.read.types import Decimal as pDecimal -from ptext.io.read.types import Dictionary, List, Name, Stream -from ptext.pdf.canvas.color.color import X11Color -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal as pDecimal +from borb.io.read.types import Dictionary, List, Name, Stream +from borb.pdf.canvas.color.color import X11Color +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/pdf/trailer/profile_read_document.py b/tests/pdf/trailer/profile_read_document.py index aeee863d8..948af27a8 100644 --- a/tests/pdf/trailer/profile_read_document.py +++ b/tests/pdf/trailer/profile_read_document.py @@ -2,8 +2,8 @@ import typing from pathlib import Path -from ptext.pdf.document import Document -from ptext.pdf.pdf import PDF +from borb.pdf.document import Document +from borb.pdf.pdf import PDF def read_document(): @@ -14,4 +14,4 @@ def read_document(): if __name__ == "__main__": cProfile.run("read_document()", "profiler_output.pstats") - # joris@dell:~$ sudo /root/.local/bin/gprof2dot -f pstats /home/joris/PycharmProjects/ptext/tests/pdf/trailer/profiler_output.pstats | dot -Tpng -o /home/joris/output.png + # joris@dell:~$ sudo /root/.local/bin/gprof2dot -f pstats /home/joris/PycharmProjects/borb/tests/pdf/trailer/profiler_output.pstats | dot -Tpng -o /home/joris/output.png diff --git a/tests/pdf/trailer/test_change_info_dictionary_author.py b/tests/pdf/trailer/test_change_info_dictionary_author.py index 095d3a565..ed0ef80a9 100644 --- a/tests/pdf/trailer/test_change_info_dictionary_author.py +++ b/tests/pdf/trailer/test_change_info_dictionary_author.py @@ -2,16 +2,16 @@ from datetime import datetime from pathlib import Path -from ptext.io.read.types import Decimal, Dictionary, Name, String -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import Decimal, Dictionary, Name, String +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/pdf/trailer/test_read_xmp_metadata.py b/tests/pdf/trailer/test_read_xmp_metadata.py index b30069b95..ef176888c 100644 --- a/tests/pdf/trailer/test_read_xmp_metadata.py +++ b/tests/pdf/trailer/test_read_xmp_metadata.py @@ -1,7 +1,7 @@ import unittest from pathlib import Path -from ptext.pdf.pdf import PDF +from borb.pdf.pdf import PDF class TestReadXMPMetaData(unittest.TestCase): diff --git a/tests/toolkit/export/html_to_pdf/example-html-input-014.html b/tests/toolkit/export/html_to_pdf/example-html-input-014.html new file mode 100644 index 000000000..4443d972c --- /dev/null +++ b/tests/toolkit/export/html_to_pdf/example-html-input-014.html @@ -0,0 +1,9 @@ + + + +

A

+A +

B

+B + + \ No newline at end of file diff --git a/tests/toolkit/export/html_to_pdf/test_export_html_to_pdf.py b/tests/toolkit/export/html_to_pdf/test_export_html_to_pdf.py index 4cabd8826..2c3ac4935 100644 --- a/tests/toolkit/export/html_to_pdf/test_export_html_to_pdf.py +++ b/tests/toolkit/export/html_to_pdf/test_export_html_to_pdf.py @@ -1,9 +1,9 @@ import unittest from pathlib import Path -from ptext.pdf.document import Document -from ptext.pdf.pdf import PDF -from ptext.toolkit.export.html_to_pdf.html_to_pdf import HTMLToPDF +from borb.pdf.document import Document +from borb.pdf.pdf import PDF +from borb.toolkit.export.html_to_pdf.html_to_pdf import HTMLToPDF class TestExportHTMLToPDF(unittest.TestCase): @@ -60,6 +60,9 @@ def test_example_012(self): def test_example_013(self): self._test_convert_document("example-html-input-013.html") + def test_example_014(self): + self._test_convert_document("example-html-input-014.html") + def _test_convert_document(self, file_to_convert: str): # create output directory if it does not exist yet diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-001.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-001.md index 07e23f9c2..d67e5289e 100644 --- a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-001.md +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-001.md @@ -1,110 +1,24 @@ -# 1. Markdown Support in pText -## 1.1 Lists +# Headings +To create a heading, add number signs (#) in front of a word or phrase. The number of number signs you use should correspond to the heading level. For example, to create a heading level three (\), use three number signs (e.g., ### My Header). -### 1.1.1 Asterisk Sign +# Heading level 1 +## Heading level 2 +### Heading level 3 +#### Heading level 4 +##### Heading level 5 +###### Heading level 6 -This list was formatted using the '*' sign. +## Alternate Syntax +Alternatively, on the line below the text, add any number of == characters for heading level 1 or -- characters for heading level 2. - * One - * Two - * Three - * Four +Heading level 1 +=============== -### 1.1.2 Minus Sign +Heading level 2 +--------------- -This list was formatted using the '-' sign. - - - One - - Two - - Three - - Four - -### 1.1.3 Plus Sign +## Heading Best Practices +Markdown applications don’t agree on how to handle a missing space between the number signs (#) and the heading name. For compatibility, always put a space between the number signs and the heading name. -This list was formatted using the '+' sign. - - + One - + Two - + Three - + Four - -### 1.1.4 Numbered List - - 1. One - 2. Two - 3. Three - 4. Four +You should also put blank lines before and after a heading for compatibility. -### 1.1.5 Numbered List (Wrong) - -This numbered list has non-sequential numbers. -pText automatically corrects this list to ensure the numbers are sequential. - - 1. One - 3. Two - 5. Three - 6. Four - -## 1.2 Blockquotes - -> Lorem ipsum dolor sit amet, consectetur adipiscing elit, -> sed do eiusmod tempor incididunt ut labore et dolore magna. -> Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut -> aliquip ex ea commodo consequat. -> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore -> eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, -> sunt in culpa qui officia deserunt mollit anim id est laborum. - -## 1.3 Code Snippet - -### 1.3.1 Code Snippet By Indent - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, - sed do eiusmod tempor incididunt ut labore et dolore magna. - Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut - -### 1.3.2 Code Snippet By Fencing - -``` -Lorem ipsum dolor sit amet, consectetur adipiscing elit, -sed do eiusmod tempor incididunt ut labore et dolore magna. -Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut -``` - -## 1.4 Horizontal Rule - ---- - -## 1.5 Paragraphs - -### 1.5.1 Homogeneous Paragraphs - -Lorem ipsum dolor sit amet, consectetur adipiscing elit, -sed do eiusmod tempor incididunt ut labore et dolore magna. -Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut - -aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore -eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. - -### 1.5.2 Heterogeneous Paragraphs - -Lorem ipsum dolor sit **amet**, consectetur adipiscing elit, -sed do eiusmod tempor incididunt ut _labore et dolore_ magna. -Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut - -**aliquip ex ea commodo consequat**. Duis aute irure `dolor` in reprehenderit in voluptate velit esse cillum dolore -eu fugiat nulla pariatur. __Excepteur sint occaecat__ cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. - - -## 1.6 Tables - -| Tables | Are | Cool | -| ------------- |:-------------:| -----:| -| col 3 is | right-aligned | $1600 | -| col 2 is | centered | $12 | -| zebra stripes | are neat | $1 | -| zebra stripes | are neat | $1 | - -## 1.7 Images - -![Image Alt Text](https://images.unsplash.com/photo-1617235641226-4ebf93095678?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=2134&q=80 "Zero Take") \ No newline at end of file diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-002.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-002.md new file mode 100644 index 000000000..f5bebd4a4 --- /dev/null +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-002.md @@ -0,0 +1,22 @@ +# Paragraphs +To create paragraphs, use a blank line to separate one or more lines of text. + +I really like using Markdown. + +I think I'll use it to format all of my documents from now on. + +## Paragraph Best Practices +Unless the paragraph is in a list, don’t indent paragraphs with spaces or tabs. + +## Line Breaks +To create a line break (\), end a line with two or more spaces, and then type return. + +This is the first line. +And this is the second line. + +### Line Break Best Practices +You can use two or more spaces (commonly referred to as “trailing whitespace”) for line breaks in nearly every Markdown application, but it’s controversial. It’s hard to see trailing whitespace in an editor, and many people accidentally or intentionally put two spaces after every sentence. For this reason, you may want to use something other than trailing whitespace for line breaks. If your Markdown application supports HTML, you can use the \ HTML tag. + +For compatibility, use trailing white space or the \ HTML tag at the end of the line. + +There are two other options I don’t recommend using. CommonMark and a few other lightweight markup languages let you type a backslash (\) at the end of the line, but not all Markdown applications support this, so it isn’t a great option from a compatibility perspective. And at least a couple lightweight markup languages don’t require anything at the end of the line — just type return and they’ll create a line break. \ No newline at end of file diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-003.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-003.md new file mode 100644 index 000000000..11e74efe7 --- /dev/null +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-003.md @@ -0,0 +1,33 @@ +# Paragraphs (ctd) + +## Emphasis +You can add emphasis by making text bold or italic. + +### Bold +To bold text, add two asterisks or underscores before and after a word or phrase. To bold the middle of a word for emphasis, add two asterisks without spaces around the letters. + +I just love **bold text**. +I just love __bold text__. +Love**is**bold + +#### Bold Best Practices +Markdown applications don’t agree on how to handle underscores in the middle of a word. For compatibility, use asterisks to bold the middle of a word for emphasis. + +### Italic +To italicize text, add one asterisk or underscore before and after a word or phrase. To italicize the middle of a word for emphasis, add one asterisk without spaces around the letters. + +Italicized text is the *cat's meow*. +Italicized text is the _cat's meow_. +A*cat*meow + +#### Italic Best Practices +Markdown applications don’t agree on how to handle underscores in the middle of a word. For compatibility, use asterisks to italicize the middle of a word for emphasis. + +### Bold and Italic +To emphasize text with bold and italics at the same time, add three asterisks or underscores before and after a word or phrase. To bold and italicize the middle of a word for emphasis, add three asterisks without spaces around the letters. + +This text is ***really important***. +This text is ___really important___. + +#### Bold and Italic Best Practices +Markdown applications don’t agree on how to handle underscores in the middle of a word. For compatibility, use asterisks to bold and italicize the middle of a word for emphasis. \ No newline at end of file diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-004.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-004.md new file mode 100644 index 000000000..3c5c22ae3 --- /dev/null +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-004.md @@ -0,0 +1,24 @@ +# Blockquotes +To create a blockquote, add a > in front of a paragraph. + +> Dorothy followed her through many of the beautiful rooms in her castle. + +## Blockquotes with Multiple Paragraphs +Blockquotes can contain multiple paragraphs. Add a > on the blank lines between the paragraphs. + +> Dorothy followed her through many of the beautiful rooms in her castle. +> +> The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. + +## Nested Blockquotes +Blockquotes can be nested. Add a >> in front of the paragraph you want to nest. + +> Dorothy followed her through many of the beautiful rooms in her castle. +> +> The :older_woman: bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood. + +## Blockquotes with Other Elements +Blockquotes can contain other Markdown formatted elements. Not all elements can be used — you’ll need to experiment to see which ones work. + +## Blockquotes Best Practices +For compatibility, put blank lines before and after blockquotes. \ No newline at end of file diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-005.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-005.md new file mode 100644 index 000000000..81952b229 --- /dev/null +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-005.md @@ -0,0 +1,37 @@ +# Lists +You can organize items into ordered and unordered lists. + +## Ordered Lists +To create an ordered list, add line items with numbers followed by periods. The numbers don’t have to be in numerical order, but the list should start with the number one. + +1. First item +2. Second item +3. Third item +4. Fourth item + + +1. First item +1. Second item +1. Third item +1. Fourth item + + +1. First item +8. Second item +3. Third item +5. Fourth item + + +1. First item +2. Second item +3. Third item + 1. Indented item + 2. Indented item +4. Fourth item + +### Ordered List Best Practices +CommonMark and a few other lightweight markup languages let you use a parenthesis ()) as a delimiter (e.g., 1) First item), but not all Markdown applications support this, so it isn’t a great option from a compatibility perspective. For compatibility, use periods only. + +### Adding Elements in Lists +To add another element in a list while preserving the continuity of the list, indent the element four spaces or one tab, as shown in the following examples. + diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-006.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-006.md new file mode 100644 index 000000000..13d012bec --- /dev/null +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-006.md @@ -0,0 +1,42 @@ +# Lists +You can organize items into ordered and unordered lists. + +## Unordered Lists +To create an unordered list, add dashes (\-), asterisks (\*), or plus signs (\+) in front of line items. Indent one or more items to create a nested list. + +- First item +- Second item +- Third item +- Fourth item + + +* First item +* Second item +* Third item +* Fourth item + + ++ First item ++ Second item ++ Third item ++ Fourth item + + +- First item +- Second item +- Third item + - Indented item + - Indented item +- Fourth item + + +### Unordered List Best Practices +Markdown applications don’t agree on how to handle different delimiters in the same list. For compatibility, don’t mix and match delimiters in the same list — pick one and stick with it. + +### Adding Elements in Lists +To add another element in a list while preserving the continuity of the list, indent the element four spaces or one tab, as shown in the following examples. + +* This is the first list item. +* Here's the second list item. + I need to add another paragraph below the second list item. +* And here's the third list item. \ No newline at end of file diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-007.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-007.md new file mode 100644 index 000000000..7cfc5fceb --- /dev/null +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-007.md @@ -0,0 +1,22 @@ +# Code +To denote a word or phrase as code, enclose it in backticks (\`). + +At the command prompt, type `nano`. + +## Code Blocks +To create code blocks, indent every line of the block by at least four spaces or one tab. + + + + + + +## Fenced Code Blocks + +``` +{ + "firstName": "John", + "lastName": "Smith", + "age": 25 +} +``` \ No newline at end of file diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-008.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-008.md new file mode 100644 index 000000000..6bd971600 --- /dev/null +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-008.md @@ -0,0 +1,30 @@ +# Tables + +| Syntax | Description | +| ----------- | ----------- | +| Header | Title | +| Paragraph | Text | + +Cell widths can vary, as shown below. The rendered output will look the same. + +| Syntax | Description | +| --- | ----------- | +| Header | Title | +| Paragraph | Text | + +## Alignment + +You can align text in the columns to the left, right, or center by adding a colon (:) to the left, right, or on both side of the hyphens within the header row. + +| Syntax | Description | Test Text | +| :--- | :----: | ---: | +| Header | Title | Here's this | +| Paragraph | Text | And more | + +## Formatting Text in Tables +You can format the text within tables. For example, you can add links, code (words or phrases in backticks (\`) only, not code blocks), and emphasis. + +You can’t add headings, blockquotes, lists, horizontal rules, images, or HTML tags. + +## Escaping Pipe Characters in Tables +You can display a pipe (|) character in a table by using its HTML character code (|). \ No newline at end of file diff --git a/tests/toolkit/export/markdown_to_pdf/example-markdown-input-009.md b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-009.md new file mode 100644 index 000000000..f8da952e0 --- /dev/null +++ b/tests/toolkit/export/markdown_to_pdf/example-markdown-input-009.md @@ -0,0 +1,25 @@ +# Emoji + +## People + +| :bowtie: `:bowtie:` | :smile: `:smile:` | :laughing: `:laughing:` | +|---|---|---| +| :blush: `:blush:` | :smiley: `:smiley:` | :relaxed: `:relaxed:` | +| :smirk: `:smirk:` | :heart_eyes: `:heart_eyes:` | :kissing_heart: `:kissing_heart:` | +| :kissing_closed_eyes: `:kissing_closed_eyes:` | :flushed: `:flushed:` | :relieved: `:relieved:` | +| :satisfied: `:satisfied:` | :grin: `:grin:` | :wink: `:wink:` | +| :stuck_out_tongue_winking_eye: `:stuck_out_tongue_winking_eye:` | :stuck_out_tongue_closed_eyes: `:stuck_out_tongue_closed_eyes:` | :grinning: `:grinning:` | +| :kissing: `:kissing:` | :kissing_smiling_eyes: `:kissing_smiling_eyes:` | :stuck_out_tongue: `:stuck_out_tongue:` | +| :sleeping: `:sleeping:` | :worried: `:worried:` | :frowning: `:frowning:` | +| :anguished: `:anguished:` | :open_mouth: `:open_mouth:` | :grimacing: `:grimacing:` | +| :confused: `:confused:` | :hushed: `:hushed:` | :expressionless: `:expressionless:` | +| :unamused: `:unamused:` | :sweat_smile: `:sweat_smile:` | :sweat: `:sweat:` | +| :disappointed_relieved: `:disappointed_relieved:` | :weary: `:weary:` | :pensive: `:pensive:` | +| :disappointed: `:disappointed:` | :confounded: `:confounded:` | :fearful: `:fearful:` | +| :cold_sweat: `:cold_sweat:` | :persevere: `:persevere:` | :cry: `:cry:` | +| :sob: `:sob:` | :joy: `:joy:` | :astonished: `:astonished:` | +| :scream: `:scream:` | :neckbeard: `:neckbeard:` | :tired_face: `:tired_face:` | +| :angry: `:angry:` | :rage: `:rage:` | :triumph: `:triumph:` | +| :sleepy: `:sleepy:` | :yum: `:yum:` | :mask: `:mask:` | +| :sunglasses: `:sunglasses:` | :dizzy_face: `:dizzy_face:` | :imp: `:imp:` | +| :smiling_imp: `:smiling_imp:` | :neutral_face: `:neutral_face:` | :no_mouth: `:no_mouth:` | \ No newline at end of file diff --git a/tests/toolkit/export/markdown_to_pdf/test_export_markdown_to_pdf.py b/tests/toolkit/export/markdown_to_pdf/test_export_markdown_to_pdf.py index 1d8a50bac..8be82b8b6 100644 --- a/tests/toolkit/export/markdown_to_pdf/test_export_markdown_to_pdf.py +++ b/tests/toolkit/export/markdown_to_pdf/test_export_markdown_to_pdf.py @@ -1,9 +1,9 @@ import unittest from pathlib import Path -from ptext.pdf.document import Document -from ptext.pdf.pdf import PDF -from ptext.toolkit.export.markdown_to_pdf import MarkdownToPDF +from borb.pdf.document import Document +from borb.pdf.pdf import PDF +from borb.toolkit.export.markdown_to_pdf.markdown_to_pdf import MarkdownToPDF class TestExportMarkdownToPDF(unittest.TestCase): @@ -18,30 +18,51 @@ def __init__(self, methodName="runTest"): if not self.output_dir.exists(): self.output_dir.mkdir() - def test(self): + def test_document_001(self): + self._test_document("example-markdown-input-001.md") + + def test_document_002(self): + self._test_document("example-markdown-input-002.md") + + def test_document_003(self): + self._test_document("example-markdown-input-003.md") + + def test_document_004(self): + self._test_document("example-markdown-input-004.md") + + def test_document_005(self): + self._test_document("example-markdown-input-005.md") + + def test_document_006(self): + self._test_document("example-markdown-input-006.md") + + def test_document_007(self): + self._test_document("example-markdown-input-007.md") + + def test_document_008(self): + self._test_document("example-markdown-input-008.md") + + def test_document_009(self): + self._test_document("example-markdown-input-009.md") + + def _test_document(self, file_to_convert: str): # create output directory if it does not exist yet if not self.output_dir.exists(): self.output_dir.mkdir() - for file_to_convert in [ - "example-markdown-input-001.md", - ]: - - txt: str = "" - path_to_json = Path(__file__).parent / file_to_convert - with open(path_to_json, "r") as json_file_handle: - txt = json_file_handle.read() - - # convert - document: Document = MarkdownToPDF.convert_markdown_to_pdf(txt) + txt: str = "" + path_to_json = Path(__file__).parent / file_to_convert + with open(path_to_json, "r") as json_file_handle: + txt = json_file_handle.read() - # store - output_file = self.output_dir / (file_to_convert + ".pdf") - with open(output_file, "wb") as pdf_file_handle: - PDF.dumps(pdf_file_handle, document) + # convert + document: Document = MarkdownToPDF.convert_markdown_to_pdf(txt) - return True + # store + output_file = self.output_dir / (file_to_convert + ".pdf") + with open(output_file, "wb") as pdf_file_handle: + PDF.dumps(pdf_file_handle, document) if __name__ == "__main__": diff --git a/tests/toolkit/export/pdf_to_html/test_export_pdf_to_html.py b/tests/toolkit/export/pdf_to_html/test_export_pdf_to_html.py deleted file mode 100644 index a04b52906..000000000 --- a/tests/toolkit/export/pdf_to_html/test_export_pdf_to_html.py +++ /dev/null @@ -1,72 +0,0 @@ -import unittest -from pathlib import Path - -from ptext.pdf.document import Document -from ptext.pdf.pdf import PDF -from ptext.toolkit.export.html_to_pdf.html_to_pdf import HTMLToPDF -from ptext.toolkit.export.pdf_to_html import PDFToHTML - - -class TestExportPDFToHTML(unittest.TestCase): - def __init__(self, methodName="runTest"): - super().__init__(methodName) - # find output dir - p: Path = Path(__file__).parent - while "output" not in [x.stem for x in p.iterdir() if x.is_dir()]: - p = p.parent - p = p / "output" - self.output_dir = Path(p, Path(__file__).stem.replace(".py", "")) - if not self.output_dir.exists(): - self.output_dir.mkdir() - - def test_example_000(self): - self._test_convert_document("example-html-input-000.html") - - def test_example_001(self): - self._test_convert_document("example-html-input-001.html") - - def test_example_002(self): - self._test_convert_document("example-html-input-002.html") - - def test_example_003(self): - self._test_convert_document("example-html-input-003.html") - - def test_example_004(self): - self._test_convert_document("example-html-input-004.html") - - def test_example_005(self): - self._test_convert_document("example-html-input-005.html") - - def test_example_006(self): - self._test_convert_document("example-html-input-006.html") - - def test_example_007(self): - self._test_convert_document("example-html-input-007.html") - - def test_example_008(self): - self._test_convert_document("example-html-input-008.html") - - def test_example_009(self): - self._test_convert_document("example-html-input-009.html") - - def test_example_010(self): - self._test_convert_document("example-html-input-010.html") - - def _test_convert_document(self, file_to_convert: str): - - # create output directory if it does not exist yet - if not self.output_dir.exists(): - self.output_dir.mkdir() - - txt: str = "" - path_to_pdf = Path(__file__).parent / file_to_convert - html_element: ET.Element = PDFToHTML.convert_pdf_to_html(path_to_pdf) - - # store - output_file = self.output_dir / (file_to_convert + ".pdf") - with open(output_file, "wb") as pdf_file_handle: - PDF.dumps(pdf_file_handle, document) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/toolkit/export/pdf_to_jpg/test_export_pdf_to_jpg.py b/tests/toolkit/export/pdf_to_jpg/test_export_pdf_to_jpg.py index 9d4aa6cd8..4b8c0a800 100644 --- a/tests/toolkit/export/pdf_to_jpg/test_export_pdf_to_jpg.py +++ b/tests/toolkit/export/pdf_to_jpg/test_export_pdf_to_jpg.py @@ -1,8 +1,8 @@ import unittest from pathlib import Path -from ptext.pdf.pdf import PDF -from ptext.toolkit.export.pdf_to_jpg import PDFToJPG +from borb.pdf.pdf import PDF +from borb.toolkit.export.pdf_to_jpg import PDFToJPG class TestExportPDFToJPG(unittest.TestCase): @@ -27,14 +27,17 @@ def test_convert_pdf_to_jpg_001(self): with open(input_file, "rb") as pdf_file_handle: l = PDFToJPG() doc = PDF.loads(pdf_file_handle, [l]) - im = l.get_image(0) + im = l.get_image_for_page(0) im.save(self.output_dir / "output_001.jpg") return True def test_convert_pdf_to_jpg_002(self): input_file: Path = Path(__file__).parent / "input_001.pdf" - PDFToJPG.convert_pdf_to_jpg(input_file, 0).save(self.output_dir / "output_002.jpg") + PDFToJPG.convert_pdf_to_jpg(input_file, 0).save( + self.output_dir / "output_002.jpg" + ) + if __name__ == "__main__": unittest.main() diff --git a/tests/toolkit/export/pdf_to_json/test_export_pdf_to_json.py b/tests/toolkit/export/pdf_to_json/test_export_pdf_to_json.py index 5bc83da06..21138dc01 100644 --- a/tests/toolkit/export/pdf_to_json/test_export_pdf_to_json.py +++ b/tests/toolkit/export/pdf_to_json/test_export_pdf_to_json.py @@ -2,7 +2,7 @@ import unittest from pathlib import Path -from ptext.pdf.pdf import PDF +from borb.pdf.pdf import PDF class TestExportPDFToJSON(unittest.TestCase): diff --git a/tests/toolkit/export/pdf_to_mp3/test_export_to_mp3.py b/tests/toolkit/export/pdf_to_mp3/test_export_to_mp3.py index bccf72e5b..d3352aae0 100644 --- a/tests/toolkit/export/pdf_to_mp3/test_export_to_mp3.py +++ b/tests/toolkit/export/pdf_to_mp3/test_export_to_mp3.py @@ -1,8 +1,8 @@ import unittest from pathlib import Path -from ptext.pdf.pdf import PDF -from ptext.toolkit.export.pdf_to_mp3 import PDFToMP3 +from borb.pdf.pdf import PDF +from borb.toolkit.export.pdf_to_mp3 import PDFToMP3 class TestExportToMP3(unittest.TestCase): @@ -27,7 +27,7 @@ def test_export_pdf_to_mp3(self): with open(input_file, "rb") as pdf_file_handle: l = PDFToMP3() doc = PDF.loads(pdf_file_handle, [l]) - l.get_audio_file(0, self.output_dir / "output.mp3") + l.get_audio_for_page(0, self.output_dir / "output.mp3") if __name__ == "__main__": diff --git a/tests/toolkit/export/pdf_to_svg/test_export_pdf_to_svg.py b/tests/toolkit/export/pdf_to_svg/test_export_pdf_to_svg.py index ef0b8b101..df1b4b448 100644 --- a/tests/toolkit/export/pdf_to_svg/test_export_pdf_to_svg.py +++ b/tests/toolkit/export/pdf_to_svg/test_export_pdf_to_svg.py @@ -2,8 +2,8 @@ import xml.etree.ElementTree as ET from pathlib import Path -from ptext.pdf.pdf import PDF -from ptext.toolkit.export.pdf_to_svg import PDFToSVG +from borb.pdf.pdf import PDF +from borb.toolkit.export.pdf_to_svg import PDFToSVG class TestExportPDFToSVG(unittest.TestCase): @@ -29,7 +29,7 @@ def test_convert_pdf_to_svg(self): l = PDFToSVG() doc = PDF.loads(pdf_file_handle, [l]) with open(self.output_dir / "output.svg", "wb") as svg_file_handle: - svg_file_handle.write(ET.tostring(l.get_image(0))) + svg_file_handle.write(ET.tostring(l.get_image_for_page(0))) if __name__ == "__main__": diff --git a/tests/toolkit/image/test_extract_images.py b/tests/toolkit/image/test_extract_images.py index 5f8ccaa4b..bf885a700 100644 --- a/tests/toolkit/image/test_extract_images.py +++ b/tests/toolkit/image/test_extract_images.py @@ -1,8 +1,8 @@ import unittest from pathlib import Path -from ptext.pdf.pdf import PDF -from ptext.toolkit.image.simple_image_extraction import SimpleImageExtraction +from borb.pdf.pdf import PDF +from borb.toolkit.image.simple_image_extraction import SimpleImageExtraction class TestExtractImages(unittest.TestCase): diff --git a/tests/toolkit/image/test_optimize_images.py b/tests/toolkit/image/test_optimize_images.py new file mode 100644 index 000000000..28e5c92e6 --- /dev/null +++ b/tests/toolkit/image/test_optimize_images.py @@ -0,0 +1,39 @@ +import os +import unittest +from pathlib import Path + +from borb.pdf.pdf import PDF +from borb.toolkit.image.image_format_optimization import ImageFormatOptimization + + +class TestOptimizeImages(unittest.TestCase): + def __init__(self, methodName="runTest"): + super().__init__(methodName) + # find output dir + p: Path = Path(__file__).parent + while "output" not in [x.stem for x in p.iterdir() if x.is_dir()]: + p = p.parent + p = p / "output" + self.output_dir = Path(p, Path(__file__).stem.replace(".py", "")) + if not self.output_dir.exists(): + self.output_dir.mkdir() + + def test_optimize_images(self): + + input_file: Path = Path(__file__).parent / "input_001.pdf" + with open(input_file, "rb") as pdf_file_handle: + l = ImageFormatOptimization() + doc = PDF.loads(pdf_file_handle, [l]) + + output_file: Path = self.output_dir / "output_001.pdf" + with open(output_file, "wb") as pdf_file_handle: + PDF.dumps(pdf_file_handle, doc) + + # check whether output_file is smaller than input_file + file_size_001: int = os.path.getsize(input_file) + file_size_002: int = os.path.getsize(output_file) + assert file_size_002 < file_size_001 + + +if __name__ == "__main__": + unittest.main() diff --git a/tests/toolkit/ocr/test_extract_text_using_ocr.py b/tests/toolkit/ocr/test_extract_text_using_ocr.py index d711ea57a..baa62a4f5 100644 --- a/tests/toolkit/ocr/test_extract_text_using_ocr.py +++ b/tests/toolkit/ocr/test_extract_text_using_ocr.py @@ -2,9 +2,9 @@ import unittest from pathlib import Path -from ptext.pdf.pdf import PDF -from ptext.toolkit.ocr.ocr_as_optional_content_group import OCRAsOptionalContentGroup -from ptext.toolkit.text.simple_text_extraction import SimpleTextExtraction +from borb.pdf.pdf import PDF +from borb.toolkit.ocr.ocr_as_optional_content_group import OCRAsOptionalContentGroup +from borb.toolkit.text.simple_text_extraction import SimpleTextExtraction unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/toolkit/redact/test_redact_common_regular_expressions.py b/tests/toolkit/redact/test_redact_common_regular_expressions.py index fbb25571c..142ad9a0d 100644 --- a/tests/toolkit/redact/test_redact_common_regular_expressions.py +++ b/tests/toolkit/redact/test_redact_common_regular_expressions.py @@ -3,18 +3,18 @@ from decimal import Decimal from pathlib import Path -from ptext.io.read.types import List -from ptext.pdf.canvas.color.color import X11Color -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.io.read.types import List +from borb.pdf.canvas.color.color import X11Color +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.redact.common_regular_expressions import CommonRegularExpression -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.redact.common_regular_expressions import CommonRegularExpression +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/toolkit/text/test_extract_keywords.py b/tests/toolkit/text/test_extract_keywords.py index d269f2a87..566fa47bc 100644 --- a/tests/toolkit/text/test_extract_keywords.py +++ b/tests/toolkit/text/test_extract_keywords.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.list.unordered_list import UnorderedList -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.list.unordered_list import UnorderedList +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.stop_words import ENGLISH_STOP_WORDS -from ptext.toolkit.text.tf_idf_keyword_extraction import TFIDFKeywordExtraction +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.stop_words import ENGLISH_STOP_WORDS +from borb.toolkit.text.tf_idf_keyword_extraction import TFIDFKeywordExtraction unittest.TestLoader.sortTestMethodsUsing = None diff --git a/tests/toolkit/text/test_extract_regex.py b/tests/toolkit/text/test_extract_regex.py index c919915ca..98438d2d6 100644 --- a/tests/toolkit/text/test_extract_regex.py +++ b/tests/toolkit/text/test_extract_regex.py @@ -3,17 +3,17 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.color.color import HexColor -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.color.color import HexColor +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.regular_expression_text_extraction import ( +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.regular_expression_text_extraction import ( RegularExpressionTextExtraction, ) diff --git a/tests/toolkit/text/test_extract_text.py b/tests/toolkit/text/test_extract_text.py index d25653a1c..7a971c21b 100644 --- a/tests/toolkit/text/test_extract_text.py +++ b/tests/toolkit/text/test_extract_text.py @@ -4,16 +4,16 @@ from decimal import Decimal from pathlib import Path -from ptext.pdf.canvas.layout.layout_element import Alignment -from ptext.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout -from ptext.pdf.canvas.layout.table.fixed_column_width_table import ( +from borb.pdf.canvas.layout.layout_element import Alignment +from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout +from borb.pdf.canvas.layout.table.fixed_column_width_table import ( FixedColumnWidthTable as Table, ) -from ptext.pdf.canvas.layout.text.paragraph import Paragraph -from ptext.pdf.document import Document -from ptext.pdf.page.page import Page -from ptext.pdf.pdf import PDF -from ptext.toolkit.text.simple_text_extraction import SimpleTextExtraction +from borb.pdf.canvas.layout.text.paragraph import Paragraph +from borb.pdf.document import Document +from borb.pdf.page.page import Page +from borb.pdf.pdf import PDF +from borb.toolkit.text.simple_text_extraction import SimpleTextExtraction unittest.TestLoader.sortTestMethodsUsing = None