###############################################################################
# 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 - French (Canada)

# 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

# generated by ttbtest: charset=iso-8859-1
char \x00	(   4  78)  # 00 ⣈   [NULL]
# Latin control characters  # 01-1A
char \x1B	( 2 4 678)  # 1B ⣪   [ESCAPE]
char \x1C	(12  5678)  # 1C ⣳   [INFORMATION SEPARATOR FOUR]
char \x1D	(12 45678)  # 1D ⣻   [INFORMATION SEPARATOR THREE]
char \x1E	(   45 78)  # 1E ⣘   [INFORMATION SEPARATOR TWO]
char \x1F	(   45678)  # 1F ⣸   [INFORMATION SEPARATOR ONE]
char \x20	(        )  # 20 ⠀   [SPACE]
char \x21	( 23 5   )  # 21 ⠖ ! [EXCLAMATION MARK]
char \x22	(1  4   8)  # 22 ⢉ " [QUOTATION MARK]
char \x23	(  3456  )  # 23 ⠼ # [NUMBER SIGN]
char \x24	(12 4 6  )  # 24 ⠫ $ [DOLLAR SIGN]
char \x25	(1  4 6 8)  # 25 ⢩ % [PERCENT SIGN]
char \x26	(1234 6 8)  # 26 ⢯ & [AMPERSAND]
char \x27	(  3     )  # 27 ⠄ ' [APOSTROPHE]
char \x28	(123 567 )  # 28 ⡷ ( [LEFT PARENTHESIS]
char \x29	( 234567 )  # 29 ⡾ ) [RIGHT PARENTHESIS]
char \x2A	(  3 5   )  # 2A ⠔ * [ASTERISK]
char \x2B	( 23 5 7 )  # 2B ⡖ + [PLUS SIGN]
char \x2C	( 2      )  # 2C ⠂ , [COMMA]
char \x2D	(  3  6  )  # 2D ⠤ - [HYPHEN-MINUS]
char \x2E	( 2  56  )  # 2E ⠲ . [FULL STOP]
char \x2F	(  34  7 )  # 2F ⡌ / [SOLIDUS]

include num-nemd8.tti

char \x3A	( 2  5   )  # 3A ⠒ : [COLON]
char \x3B	( 23     )  # 3B ⠆ ; [SEMICOLON]
char \x3C	( 23  6  )  # 3C ⠦ < [LESS-THAN SIGN]
char \x3D	(1234567 )  # 3D ⡿ = [EQUALS SIGN]
char \x3E	(  3 56  )  # 3E ⠴ > [GREATER-THAN SIGN]
char \x3F	(1  456  )  # 3F ⠹ ? [QUESTION MARK]
char \x40	(   4  7 )  # 40 ⡈ @ [COMMERCIAL AT]
# uppercase Latin alphabet  # 41-5A
char \x5B	( 2 4 67 )  # 5B ⡪ [ [LEFT SQUARE BRACKET]
char \x5C	(1    67 )  # 5C ⡡ \ [REVERSE SOLIDUS]
char \x5D	(12 4567 )  # 5D ⡻ ] [RIGHT SQUARE BRACKET]
char \x5E	(   45 7 )  # 5E ⡘ ^ [CIRCUMFLEX ACCENT]
char \x5F	(   456  )  # 5F ⠸ _ [LOW LINE]
char \x60	(   4    )  # 60 ⠈ ` [GRAVE ACCENT]
# lowercase Latin alphabet  # 61-7A
char \x7B	( 2 4 6  )  # 7B ⠪ { [LEFT CURLY BRACKET]
char \x7C	(12  56  )  # 7C ⠳ | [VERTICAL LINE]
char \x7D	(12 456  )  # 7D ⠻ } [RIGHT CURLY BRACKET]
char \x7E	(   45   )  # 7E ⠘ ~ [TILDE]
char \x7F	(   4567 )  # 7F ⡸   [DELETE]
char \xA1	(  3  67 )  # A1 ⡤ ¡ [INVERTED EXCLAMATION MARK]
char \xA2	( 2 4 6 8)  # A2 ⢪ ¢ [CENT SIGN]
char \xA3	(12  56 8)  # A3 ⢳ £ [POUND SIGN]
char \xA4	( 2    7 )  # A4 ⡂ ¤ [CURRENCY SIGN]
char \xA5	(12 456 8)  # A5 ⢻ ¥ [YEN SIGN]
char \xA6	(12   67 )  # A6 ⡣ ¦ [BROKEN BAR]
char \xA7	(12345678)  # A7 ⣿ § [SECTION SIGN]
char \xA8	(1  4567 )  # A8 ⡹ ¨ [DIAERESIS]
char \xA9	( 234567 )  # A9 ⡾ © [COPYRIGHT SIGN]
char \xAA	(1234 67 )  # AA ⡯ ª [FEMININE ORDINAL INDICATOR]
char \xAB	(   4 67 )  # AB ⡨ « [LEFT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xAC	(1    67 )  # AC ⡡ ¬ [NOT SIGN]
char \xAD	(  3  6 8)  # AD ⢤ ­ [SOFT HYPHEN]
char \xAE	(1234567 )  # AE ⡿ ® [REGISTERED SIGN]
char \xAF	(    567 )  # AF ⡰ ¯ [MACRON]
char \xB0	( 23  6 8)  # B0 ⢦ ° [DEGREE SIGN]
char \xB1	( 2     8)  # B1 ⢂ ± [PLUS-MINUS SIGN]
char \xB2	(123456 8)  # B2 ⢿ ² [SUPERSCRIPT TWO]
char \xB3	( 2  5 7 )  # B3 ⡒ ³ [SUPERSCRIPT THREE]
char \xB4	( 2  567 )  # B4 ⡲ ´ [ACUTE ACCENT]
char \xB5	(1234 6 8)  # B5 ⢯ µ [MICRO SIGN]
char \xB6	(12345678)  # B6 ⣿ ¶ [PILCROW SIGN]
char \xB7	(1   56 8)  # B7 ⢱ · [MIDDLE DOT]
char \xB8	( 23  67 )  # B8 ⡦ ¸ [CEDILLA]
char \xB9	(  3 5 7 )  # B9 ⡔ ¹ [SUPERSCRIPT ONE]
char \xBA	(  3   7 )  # BA ⡄ º [MASCULINE ORDINAL INDICATOR]
char \xBB	(  34  7 )  # BB ⡌ » [RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK]
char \xBC	(     67 )  # BC ⡠ ¼ [VULGAR FRACTION ONE QUARTER]
char \xBD	(  34 67 )  # BD ⡬ ½ [VULGAR FRACTION ONE HALF]
char \xBE	(  345 7 )  # BE ⡜ ¾ [VULGAR FRACTION THREE QUARTERS]
char \xBF	(123 567 )  # BF ⡷ ¿ [INVERTED QUESTION MARK]
char \xC0	(      78)  # C0 ⣀ À [LATIN CAPITAL LETTER A WITH GRAVE]
char \xC1	( 234 678)  # C1 ⣮ Á [LATIN CAPITAL LETTER A WITH ACUTE]
char \xC2	(    5 78)  # C2 ⣐ Â [LATIN CAPITAL LETTER A WITH CIRCUMFLEX]
char \xC3	(  345678)  # C3 ⣼ Ã [LATIN CAPITAL LETTER A WITH TILDE]
char \xC4	(1 345  8)  # C4 ⢝ Ä [LATIN CAPITAL LETTER A WITH DIAERESIS]
char \xC5	(1 3 5  8)  # C5 ⢕ Å [LATIN CAPITAL LETTER A WITH RING ABOVE]
char \xC6	(123 5  8)  # C6 ⢗ Æ [LATIN CAPITAL LETTER AE]
char \xC7	(   4   8)  # C7 ⢈ Ç [LATIN CAPITAL LETTER C WITH CEDILLA]
char \xC8	(123 5678)  # C8 ⣷ È [LATIN CAPITAL LETTER E WITH GRAVE]
char \xC9	(1234   8)  # C9 ⢏ É [LATIN CAPITAL LETTER E WITH ACUTE]
char \xCA	(1    678)  # CA ⣡ Ê [LATIN CAPITAL LETTER E WITH CIRCUMFLEX]
char \xCB	(  34 678)  # CB ⣬ Ë [LATIN CAPITAL LETTER E WITH DIAERESIS]
char \xCC	(     678)  # CC ⣠ Ì [LATIN CAPITAL LETTER I WITH GRAVE]
char \xCD	(  3  678)  # CD ⣤ Í [LATIN CAPITAL LETTER I WITH ACUTE]
char \xCE	(   4 678)  # CE ⣨ Î [LATIN CAPITAL LETTER I WITH CIRCUMFLEX]
char \xCF	(  34  78)  # CF ⣌ Ï [LATIN CAPITAL LETTER I WITH DIAERESIS]
char \xD0	(  3 5678)  # D0 ⣴ Ð [LATIN CAPITAL LETTER ETH]
char \xD1	(1  4 67 )  # D1 ⡩ Ñ [LATIN CAPITAL LETTER N WITH TILDE]
char \xD2	( 23   78)  # D2 ⣆ Ò [LATIN CAPITAL LETTER O WITH GRAVE]
char \xD3	( 2  5 78)  # D3 ⣒ Ó [LATIN CAPITAL LETTER O WITH ACUTE]
char \xD4	( 2  5678)  # D4 ⣲ Ô [LATIN CAPITAL LETTER O WITH CIRCUMFLEX]
char \xD5	( 2   678)  # D5 ⣢ Õ [LATIN CAPITAL LETTER O WITH TILDE]
char \xD6	(1 3456 8)  # D6 ⢽ Ö [LATIN CAPITAL LETTER O WITH DIAERESIS]
char \xD7	( 23 5678)  # D7 ⣶ × [MULTIPLICATION SIGN]
char \xD8	( 23  678)  # D8 ⣦ Ø [LATIN CAPITAL LETTER O WITH STROKE]
char \xD9	(  3 5 78)  # D9 ⣔ Ù [LATIN CAPITAL LETTER U WITH GRAVE]
char \xDA	(1   5678)  # DA ⣱ Ú [LATIN CAPITAL LETTER U WITH ACUTE]
char \xDB	(    5678)  # DB ⣰ Û [LATIN CAPITAL LETTER U WITH CIRCUMFLEX]
char \xDC	(1 3 56 8)  # DC ⢵ Ü [LATIN CAPITAL LETTER U WITH DIAERESIS]
char \xDD	(12345678)  # DD ⣿ Ý [LATIN CAPITAL LETTER Y WITH ACUTE]
char \xDE	(  345 78)  # DE ⣜ Þ [LATIN CAPITAL LETTER THORN]
char \xDF	( 234 6 8)  # DF ⢮ ß [LATIN SMALL LETTER SHARP S]
char \xE0	(123 56  )  # E0 ⠷ à [LATIN SMALL LETTER A WITH GRAVE]
char \xE1	(      7 )  # E1 ⡀ á [LATIN SMALL LETTER A WITH ACUTE]
char \xE2	(1    6  )  # E2 ⠡ â [LATIN SMALL LETTER A WITH CIRCUMFLEX]
char \xE3	(  3456 8)  # E3 ⢼ ã [LATIN SMALL LETTER A WITH TILDE]
char \xE4	(1  45  8)  # E4 ⢙ ä [LATIN SMALL LETTER A WITH DIAERESIS]
char \xE5	(12 4   8)  # E5 ⢋ å [LATIN SMALL LETTER A WITH RING ABOVE]
char \xE6	(12345  8)  # 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  )  # EB ⠫ ë [LATIN SMALL LETTER E WITH DIAERESIS]
char \xEC	(1 34   8)  # EC ⢍ ì [LATIN SMALL LETTER I WITH GRAVE]
char \xED	( 234 67 )  # ED ⡮ í [LATIN SMALL LETTER I WITH ACUTE]
char \xEE	(1  4 6  )  # EE ⠩ î [LATIN SMALL LETTER I WITH CIRCUMFLEX]
char \xEF	(12 456  )  # EF ⠻ ï [LATIN SMALL LETTER I WITH DIAERESIS]
char \xF0	(  3 56 8)  # F0 ⢴ ð [LATIN SMALL LETTER ETH]
char \xF1	(12 4 67 )  # F1 ⡫ ñ [LATIN SMALL LETTER N WITH TILDE]
char \xF2	(1 3  6 8)  # F2 ⢥ ò [LATIN SMALL LETTER O WITH GRAVE]
char \xF3	(    5 7 )  # F3 ⡐ ó [LATIN SMALL LETTER O WITH ACUTE]
char \xF4	(1  456  )  # F4 ⠹ ô [LATIN SMALL LETTER O WITH CIRCUMFLEX]
char \xF5	( 2   6 8)  # F5 ⢢ õ [LATIN SMALL LETTER O WITH TILDE]
char \xF6	( 2345  8)  # F6 ⢞ ö [LATIN SMALL LETTER O WITH DIAERESIS]
char \xF7	( 23 5  8)  # F7 ⢖ ÷ [DIVISION SIGN]
char \xF8	(  3 567 )  # F8 ⡴ ø [LATIN SMALL LETTER O WITH STROKE]
char \xF9	( 23456  )  # F9 ⠾ ù [LATIN SMALL LETTER U WITH GRAVE]
char \xFA	(  34567 )  # FA ⡼ ú [LATIN SMALL LETTER U WITH ACUTE]
char \xFB	(1   56  )  # FB ⠱ û [LATIN SMALL LETTER U WITH CIRCUMFLEX]
char \xFC	(12  56  )  # FC ⠳ ü [LATIN SMALL LETTER U WITH DIAERESIS]
char \xFD	( 23   7 )  # FD ⡆ ý [LATIN SMALL LETTER Y WITH ACUTE]
char \xFE	(  345  8)  # FE ⢜ þ [LATIN SMALL LETTER THORN]
char \xFF	(1   567 )  # FF ⡱ ÿ [LATIN SMALL LETTER Y WITH DIAERESIS]

include common.tti
