###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2023 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

# BRLTTY Text Table - Portuguese

# the standard representations for the letters of the Latin alphabet
include ltr-latin.tti

# the standard representations for the Latin control characters
include ctl-latin.tti

# the numbers 0-9 are represented by the letters j,a-i with dot 8 added
include num-dot8.tti

# generated by ttbtest: charset=iso-8859-1
char \x00	( 234 678)  # 00 ⣮   [NULL]
# Latin control characters  # 01-1A
char \x1B	(123 5678)  # 1B ⣷   [ESCAPE]
char \x1C	(  34 678)  # 1C ⣬   [INFORMATION SEPARATOR FOUR]
char \x1D	( 2345678)  # 1D ⣾   [INFORMATION SEPARATOR THREE]
char \x1E	(     678)  # 1E ⣠   [INFORMATION SEPARATOR TWO]
char \x1F	(    5 78)  # 1F ⣐   [INFORMATION SEPARATOR ONE]
char \x20	(        )  # 20 ⠀   [SPACE]
char \x21	( 23 5  8)  # 21 ⢖ ! [EXCLAMATION MARK]
char \x22	( 23  6  )  # 22 ⠦ " [QUOTATION MARK]
char \x23	(  3456  )  # 23 ⠼ # [NUMBER SIGN]
char \x24	(    56  )  # 24 ⠰ $ [DOLLAR SIGN]
char \x25	(  3 5678)  # 25 ⣴ % [PERCENT SIGN]
char \x26	(1234 6 8)  # 26 ⢯ & [AMPERSAND]
char \x27	(  3   7 )  # 27 ⡄ ' [APOSTROPHE]
char \x28	(12   6 8)  # 28 ⢣ ( [LEFT PARENTHESIS]
char \x29	(  345  8)  # 29 ⢜ ) [RIGHT PARENTHESIS]
char \x2A	(  3 5   )  # 2A ⠔ * [ASTERISK]
char \x2B	( 23 5   )  # 2B ⠖ + [PLUS SIGN]
char \x2C	( 2      )  # 2C ⠂ , [COMMA]
char \x2D	(  3  6  )  # 2D ⠤ - [HYPHEN-MINUS]
char \x2E	(  3     )  # 2E ⠄ . [FULL STOP]
char \x2F	(     67 )  # 2F ⡠ / [SOLIDUS]
# Hindu-Arabic numerals     # 30-39
char \x3A	( 2  5   )  # 3A ⠒ : [COLON]
char \x3B	( 23     )  # 3B ⠆ ; [SEMICOLON]
char \x3C	( 2 4 6 8)  # 3C ⢪ < [LESS-THAN SIGN]
char \x3D	( 23 56  )  # 3D ⠶ = [EQUALS SIGN]
char \x3E	(1 3 5  8)  # 3E ⢕ > [GREATER-THAN SIGN]
char \x3F	( 2   6  )  # 3F ⠢ ? [QUESTION MARK]
char \x40	(1   56 8)  # 40 ⢱ @ [COMMERCIAL AT]
# uppercase Latin alphabet  # 41-5A
char \x5B	(123 56 8)  # 5B ⢷ [ [LEFT SQUARE BRACKET]
char \x5C	(  3    8)  # 5C ⢄ \ [REVERSE SOLIDUS]
char \x5D	( 23456 8)  # 5D ⢾ ] [RIGHT SQUARE BRACKET]
char \x5E	(   4    )  # 5E ⠈ ^ [CIRCUMFLEX ACCENT]
char \x5F	(  3 5  8)  # 5F ⢔ _ [LOW LINE]
char \x60	( 2   6 8)  # 60 ⢢ ` [GRAVE ACCENT]
# lowercase Latin alphabet  # 61-7A
char \x7B	(123    8)  # 7B ⢇ { [LEFT CURLY BRACKET]
char \x7C	(   456  )  # 7C ⠸ | [VERTICAL LINE]
char \x7D	(   4567 )  # 7D ⡸ } [RIGHT CURLY BRACKET]
char \x7E	(    5   )  # 7E ⠐ ~ [TILDE]
char \x7F	(    5 7 )  # 7F ⡐   [DELETE]
char \xA1	(  3  67 )  # A1 ⡤ ¡ [INVERTED EXCLAMATION MARK]
char \xA2	(    56 8)  # A2 ⢰ ¢ [CENT SIGN]
char \xA3	(   4 6  )  # A3 ⠨ £ [POUND SIGN]
char \xA4	(  3  678)  # A4 ⣤ ¤ [CURRENCY SIGN]
char \xA5	(   4 6 8)  # A5 ⢨ ¥ [YEN SIGN]
char \xA6	( 2   678)  # A6 ⣢ ¦ [BROKEN BAR]
char \xA7	(12345678)  # A7 ⣿ § [SECTION SIGN]
char \xA8	( 2    78)  # A8 ⣂ ¨ [DIAERESIS]
char \xA9	(1  4  7 )  # A9 ⡉ © [COPYRIGHT SIGN]
char \xAA	(   4  7 )  # AA ⡈ ª [FEMININE ORDINAL INDICATOR]
char \xAB	( 23  67 )  # AB ⡦ « [LEFT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xAC	( 2  5678)  # AC ⣲ ¬ [NOT SIGN]
char \xAD	(12 4   8)  # AD ⢋ ­ [SOFT HYPHEN]
char \xAE	(123 5  8)  # AE ⢗ ® [REGISTERED SIGN]
char \xAF	(    5  8)  # AF ⢐ ¯ [MACRON]
char \xB0	(  3 567 )  # B0 ⡴ ° [DEGREE SIGN]
char \xB1	( 23 5 78)  # B1 ⣖ ± [PLUS-MINUS SIGN]
char \xB2	( 23    8)  # B2 ⢆ ² [SUPERSCRIPT TWO]
char \xB3	( 2  5  8)  # B3 ⢒ ³ [SUPERSCRIPT THREE]
char \xB4	(  3 5 7 )  # B4 ⡔ ´ [ACUTE ACCENT]
char \xB5	(1 34   8)  # B5 ⢍ µ [MICRO SIGN]
char \xB6	(12345678)  # B6 ⣿ ¶ [PILCROW SIGN]
char \xB7	(  3   7 )  # B7 ⡄ · [MIDDLE DOT]
char \xB8	(1  4   8)  # B8 ⢉ ¸ [CEDILLA]
char \xB9	(   45 7 )  # B9 ⡘ ¹ [SUPERSCRIPT ONE]
char \xBA	(  34 6 8)  # BA ⢬ º [MASCULINE ORDINAL INDICATOR]
char \xBB	( 23  6 8)  # BB ⢦ » [RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xBC	(1 3  6 8)  # BC ⢥ ¼ [VULGAR FRACTION ONE QUARTER]
char \xBD	(123  6 8)  # BD ⢧ ½ [VULGAR FRACTION ONE HALF]
char \xBE	(  34  78)  # BE ⣌ ¾ [VULGAR FRACTION THREE QUARTERS]
char \xBF	(  3    8)  # BF ⢄ ¿ [INVERTED QUESTION MARK]
char \xC0	(12 4 67 )  # C0 ⡫ À [LATIN CAPITAL LETTER A WITH GRAVE]
char \xC1	(123 567 )  # C1 ⡷ Á [LATIN CAPITAL LETTER A WITH ACUTE]
char \xC2	(1    67 )  # C2 ⡡ Â [LATIN CAPITAL LETTER A WITH CIRCUMFLEX]
char \xC3	(  3 567 )  # C3 ⡴ Ã [LATIN CAPITAL LETTER A WITH TILDE]
char \xC4	(    567 )  # C4 ⡰ Ä [LATIN CAPITAL LETTER A WITH DIAERESIS]
char \xC5	(  34567 )  # C5 ⡼ Å [LATIN CAPITAL LETTER A WITH RING ABOVE]
char \xC6	(   4  7 )  # C6 ⡈ Æ [LATIN CAPITAL LETTER AE]
char \xC7	(1234 67 )  # C7 ⡯ Ç [LATIN CAPITAL LETTER C WITH CEDILLA]
char \xC8	( 234 67 )  # C8 ⡮ È [LATIN CAPITAL LETTER E WITH GRAVE]
char \xC9	(1234567 )  # C9 ⡿ É [LATIN CAPITAL LETTER E WITH ACUTE]
char \xCA	(12   67 )  # CA ⡣ Ê [LATIN CAPITAL LETTER E WITH CIRCUMFLEX]
char \xCB	(12   678)  # CB ⣣ Ë [LATIN CAPITAL LETTER E WITH DIAERESIS]
char \xCC	(1  4 67 )  # CC ⡩ Ì [LATIN CAPITAL LETTER I WITH GRAVE]
char \xCD	(  34  7 )  # CD ⡌ Í [LATIN CAPITAL LETTER I WITH ACUTE]
char \xCE	(1  4 678)  # CE ⣩ Î [LATIN CAPITAL LETTER I WITH CIRCUMFLEX]
char \xCF	(12 4567 )  # CF ⡻ Ï [LATIN CAPITAL LETTER I WITH DIAERESIS]
char \xD0	(  345 7 )  # D0 ⡜ Ð [LATIN CAPITAL LETTER ETH]
char \xD1	(12 45678)  # D1 ⣻ Ñ [LATIN CAPITAL LETTER N WITH TILDE]
char \xD2	( 2 456 8)  # D2 ⢺ Ò [LATIN CAPITAL LETTER O WITH GRAVE]
char \xD3	(  34 67 )  # D3 ⡬ Ó [LATIN CAPITAL LETTER O WITH ACUTE]
char \xD4	(1  4567 )  # D4 ⡹ Ô [LATIN CAPITAL LETTER O WITH CIRCUMFLEX]
char \xD5	( 2 4 67 )  # D5 ⡪ Õ [LATIN CAPITAL LETTER O WITH TILDE]
char \xD6	(1  45678)  # D6 ⣹ Ö [LATIN CAPITAL LETTER O WITH DIAERESIS]
char \xD7	( 23  678)  # D7 ⣦ × [MULTIPLICATION SIGN]
char \xD8	(  3 567 )  # D8 ⡴ Ø [LATIN CAPITAL LETTER O WITH STROKE]
char \xD9	(1   567 )  # D9 ⡱ Ù [LATIN CAPITAL LETTER U WITH GRAVE]
char \xDA	( 234567 )  # DA ⡾ Ú [LATIN CAPITAL LETTER U WITH ACUTE]
char \xDB	(1   5678)  # DB ⣱ Û [LATIN CAPITAL LETTER U WITH CIRCUMFLEX]
char \xDC	(12  567 )  # DC ⡳ Ü [LATIN CAPITAL LETTER U WITH DIAERESIS]
char \xDD	(12  5678)  # DD ⣳ Ý [LATIN CAPITAL LETTER Y WITH ACUTE]
char \xDE	(  3 5678)  # DE ⣴ Þ [LATIN CAPITAL LETTER THORN]
char \xDF	(  3456 8)  # DF ⢼ ß [LATIN SMALL LETTER SHARP S]
char \xE0	(12 4 6  )  # E0 ⠫ à [LATIN SMALL LETTER A WITH GRAVE]
char \xE1	(123 56  )  # E1 ⠷ á [LATIN SMALL LETTER A WITH ACUTE]
char \xE2	(1    6  )  # E2 ⠡ â [LATIN SMALL LETTER A WITH CIRCUMFLEX]
char \xE3	(  345   )  # E3 ⠜ ã [LATIN SMALL LETTER A WITH TILDE]
char \xE4	(  345 78)  # E4 ⣜ ä [LATIN SMALL LETTER A WITH DIAERESIS]
char \xE5	(  345678)  # E5 ⣼ å [LATIN SMALL LETTER A WITH RING ABOVE]
char \xE6	(   4  78)  # E6 ⣈ æ [LATIN SMALL LETTER AE]
char \xE7	(1234 6  )  # E7 ⠯ ç [LATIN SMALL LETTER C WITH CEDILLA]
char \xE8	( 234 6  )  # E8 ⠮ è [LATIN SMALL LETTER E WITH GRAVE]
char \xE9	(123456  )  # E9 ⠿ é [LATIN SMALL LETTER E WITH ACUTE]
char \xEA	(12   6  )  # EA ⠣ ê [LATIN SMALL LETTER E WITH CIRCUMFLEX]
char \xEB	(12 4 6 8)  # EB ⢫ ë [LATIN SMALL LETTER E WITH DIAERESIS]
char \xEC	(1  4 6  )  # EC ⠩ ì [LATIN SMALL LETTER I WITH GRAVE]
char \xED	(  34    )  # ED ⠌ í [LATIN SMALL LETTER I WITH ACUTE]
char \xEE	(1  4 678)  # EE ⣩ î [LATIN SMALL LETTER I WITH CIRCUMFLEX]
char \xEF	(12 456  )  # EF ⠻ ï [LATIN SMALL LETTER I WITH DIAERESIS]
char \xF0	( 23 56 8)  # F0 ⢶ ð [LATIN SMALL LETTER ETH]
char \xF1	(1 345  8)  # F1 ⢝ ñ [LATIN SMALL LETTER N WITH TILDE]
char \xF2	( 2 456 8)  # F2 ⢺ ò [LATIN SMALL LETTER O WITH GRAVE]
char \xF3	(  34 6  )  # F3 ⠬ ó [LATIN SMALL LETTER O WITH ACUTE]
char \xF4	(1  456  )  # F4 ⠹ ô [LATIN SMALL LETTER O WITH CIRCUMFLEX]
char \xF5	( 2 4 6  )  # F5 ⠪ õ [LATIN SMALL LETTER O WITH TILDE]
char \xF6	( 2 4 678)  # F6 ⣪ ö [LATIN SMALL LETTER O WITH DIAERESIS]
char \xF7	( 2  56  )  # F7 ⠲ ÷ [DIVISION SIGN]
char \xF8	(   4 6 8)  # F8 ⢨ ø [LATIN SMALL LETTER O WITH STROKE]
char \xF9	(1   56  )  # F9 ⠱ ù [LATIN SMALL LETTER U WITH GRAVE]
char \xFA	( 23456  )  # FA ⠾ ú [LATIN SMALL LETTER U WITH ACUTE]
char \xFB	(1   56 8)  # FB ⢱ û [LATIN SMALL LETTER U WITH CIRCUMFLEX]
char \xFC	(12  56  )  # FC ⠳ ü [LATIN SMALL LETTER U WITH DIAERESIS]
char \xFD	(12  56 8)  # FD ⢳ ý [LATIN SMALL LETTER Y WITH ACUTE]
char \xFE	(  3    8)  # FE ⢄ þ [LATIN SMALL LETTER THORN]
char \xFF	(1 3456 8)  # FF ⢽ ÿ [LATIN SMALL LETTER Y WITH DIAERESIS]

include common.tti
