{-# LANGUAGE OverloadedStrings #-}

module Pdf.Content.Encoding.WinAnsi
(
  encoding
)
where

import Data.Word
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Text (Text)

encoding :: Map Word8 Text
encoding :: Map Word8 Text
encoding = [(Word8, Text)] -> Map Word8 Text
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList ([(Word8, Text)] -> Map Word8 Text)
-> [(Word8, Text)] -> Map Word8 Text
forall a b. (a -> b) -> a -> b
$ [Word8] -> [Text] -> [(Word8, Text)]
forall a b. [a] -> [b] -> [(a, b)]
zip [Word8]
codes [Text]
chars

chars :: [Text]
chars :: [Text]
chars = [
  Text
"A",
  Text
"Æ",
  Text
"Á",
  Text
"Â",
  Text
"Ä",
  Text
"À",
  Text
"Å",
  Text
"Ã",
  Text
"B",
  Text
"C",
  Text
"Ç",
  Text
"D",
  Text
"E",
  Text
"É",
  Text
"Ê",
  Text
"Ë",
  Text
"È",
  Text
"Ð",
  Text
"€",
  Text
"F",
  Text
"G",
  Text
"H",
  Text
"I",
  Text
"Í",
  Text
"Î",
  Text
"Ï",
  Text
"Ì",
  Text
"J",
  Text
"K",
  Text
"L",
  Text
"M",
  Text
"N",
  Text
"Ñ",
  Text
"O",
  Text
"Œ",
  Text
"Ó",
  Text
"Ô",
  Text
"Ö",
  Text
"Ò",
  Text
"Ø",
  Text
"Õ",
  Text
"P",
  Text
"Q",
  Text
"R",
  Text
"S",
  Text
"Š",
  Text
"T",
  Text
"Þ",
  Text
"U",
  Text
"Ú",
  Text
"Û",
  Text
"Ü",
  Text
"Ù",
  Text
"V",
  Text
"W",
  Text
"X",
  Text
"Y",
  Text
"Ý",
  Text
"Ÿ",
  Text
"Z",
  Text
"Ž",
  Text
"a",
  Text
"á",
  Text
"â",
  Text
"´",
  Text
"ä",
  Text
"æ",
  Text
"à",
  Text
"&",
  Text
"å",
  Text
"^",
  Text
"~",
  Text
"*",
  Text
"@",
  Text
"ã",
  Text
"b",
  Text
"\\",
  Text
"|",
  Text
"{",
  Text
"}",
  Text
"[",
  Text
"]",
  Text
"¦",
  Text
"•",
  Text
"c",
  Text
"ç",
  Text
" ̧",
  Text
"¢",
  Text
"ˆ",
  Text
":",
  Text
",",
  Text
"©",
  Text
"¤",
  Text
"d",
  Text
"†",
  Text
"‡",
  Text
"°",
  Text
"¨",
  Text
"÷",
  Text
"$",
  Text
"e",
  Text
"é",
  Text
"ê",
  Text
"ë",
  Text
"è",
  Text
"8",
  Text
"…",
  Text
"—",
  Text
"–",
  Text
"=",
  Text
"ð",
  Text
"!",
  Text
"¡",
  Text
"f",
  Text
"5",
  Text
"ƒ",
  Text
"4",
  Text
"g",
  Text
"ß",
  Text
"`",
  Text
">",
  Text
"«",
  Text
"»",
  Text
"‹",
  Text
"›",
  Text
"h",
  Text
"-",
  Text
"i",
  Text
"í",
  Text
"î",
  Text
"ï",
  Text
"ì",
  Text
"j",
  Text
"k",
  Text
"l",
  Text
"<",
  Text
"¬",
  Text
"m",
  Text
" ̄",
  Text
"μ",
  Text
"×",
  Text
"n",
  Text
"9",
  Text
"ñ",
  Text
"#",
  Text
"o",
  Text
"ó",
  Text
"ô",
  Text
"ö",
  Text
"œ",
  Text
"ò",
  Text
"1",
  Text
"½",
  Text
"¼",
  Text
"¹",
  Text
"ª",
  Text
"º",
  Text
"ø",
  Text
"õ",
  Text
"p",
  Text
"¶",
  Text
"(",
  Text
")",
  Text
"%",
  Text
".",
  Text
"·",
  Text
"‰",
  Text
"+",
  Text
"±",
  Text
"q",
  Text
"?",
  Text
"¿",
  Text
"\"",
  Text
"„",
  Text
"“",
  Text
"”",
  Text
"‘",
  Text
"’",
  Text
"‚",
  Text
"'",
  Text
"r",
  Text
"®",
  Text
"s",
  Text
"š",
  Text
"§",
  Text
";",
  Text
"7",
  Text
"6",
  Text
"/",
  Text
" ",
  Text
"£",
  Text
"t",
  Text
"þ",
  Text
"3",
  Text
"¾",
  Text
"³",
  Text
"~",
  Text
"™",
  Text
"2",
  Text
"²",
  Text
"u",
  Text
"ú",
  Text
"û",
  Text
"ü",
  Text
"ù",
  Text
"_",
  Text
"v",
  Text
"w",
  Text
"x",
  Text
"y",
  Text
"ý",
  Text
"ÿ",
  Text
"¥",
  Text
"z",
  Text
"ž",
  Text
"0"
  ]

codes :: [Word8]
codes :: [Word8]
codes = [
  Word8
0o101,
  Word8
0o306,
  Word8
0o301,
  Word8
0o302,
  Word8
0o304,
  Word8
0o300,
  Word8
0o305,
  Word8
0o303,
  Word8
0o102,
  Word8
0o103,
  Word8
0o307,
  Word8
0o104,
  Word8
0o105,
  Word8
0o311,
  Word8
0o312,
  Word8
0o313,
  Word8
0o310,
  Word8
0o320,
  Word8
0o200,
  Word8
0o106,
  Word8
0o107,
  Word8
0o110,
  Word8
0o111,
  Word8
0o315,
  Word8
0o316,
  Word8
0o317,
  Word8
0o314,
  Word8
0o112,
  Word8
0o113,
  Word8
0o114,
  Word8
0o115,
  Word8
0o116,
  Word8
0o321,
  Word8
0o117,
  Word8
0o214,
  Word8
0o323,
  Word8
0o324,
  Word8
0o326,
  Word8
0o322,
  Word8
0o330,
  Word8
0o325,
  Word8
0o120,
  Word8
0o121,
  Word8
0o122,
  Word8
0o123,
  Word8
0o212,
  Word8
0o124,
  Word8
0o336,
  Word8
0o125,
  Word8
0o332,
  Word8
0o333,
  Word8
0o334,
  Word8
0o331,
  Word8
0o126,
  Word8
0o127,
  Word8
0o130,
  Word8
0o131,
  Word8
0o335,
  Word8
0o237,
  Word8
0o132,
  Word8
0o216,
  Word8
0o141,
  Word8
0o341,
  Word8
0o342,
  Word8
0o264,
  Word8
0o344,
  Word8
0o346,
  Word8
0o340,
  Word8
0o046,
  Word8
0o345,
  Word8
0o136,
  Word8
0o176,
  Word8
0o052,
  Word8
0o100,
  Word8
0o343,
  Word8
0o142,
  Word8
0o134,
  Word8
0o174,
  Word8
0o173,
  Word8
0o175,
  Word8
0o133,
  Word8
0o135,
  Word8
0o246,
  Word8
0o225,
  Word8
0o143,
  Word8
0o347,
  Word8
0o270,
  Word8
0o242,
  Word8
0o210,
  Word8
0o072,
  Word8
0o054,
  Word8
0o251,
  Word8
0o244,
  Word8
0o144,
  Word8
0o206,
  Word8
0o207,
  Word8
0o260,
  Word8
0o250,
  Word8
0o367,
  Word8
0o044,
  Word8
0o145,
  Word8
0o351,
  Word8
0o352,
  Word8
0o353,
  Word8
0o350,
  Word8
0o070,
  Word8
0o205,
  Word8
0o227,
  Word8
0o226,
  Word8
0o075,
  Word8
0o360,
  Word8
0o041,
  Word8
0o241,
  Word8
0o146,
  Word8
0o065,
  Word8
0o203,
  Word8
0o064,
  Word8
0o147,
  Word8
0o337,
  Word8
0o140,
  Word8
0o076,
  Word8
0o253,
  Word8
0o273,
  Word8
0o213,
  Word8
0o233,
  Word8
0o150,
  Word8
0o055,
  Word8
0o151,
  Word8
0o355,
  Word8
0o356,
  Word8
0o357,
  Word8
0o354,
  Word8
0o152,
  Word8
0o153,
  Word8
0o154,
  Word8
0o074,
  Word8
0o254,
  Word8
0o155,
  Word8
0o257,
  Word8
0o265,
  Word8
0o327,
  Word8
0o156,
  Word8
0o071,
  Word8
0o361,
  Word8
0o043,
  Word8
0o157,
  Word8
0o363,
  Word8
0o364,
  Word8
0o366,
  Word8
0o234,
  Word8
0o362,
  Word8
0o061,
  Word8
0o275,
  Word8
0o274,
  Word8
0o271,
  Word8
0o252,
  Word8
0o272,
  Word8
0o370,
  Word8
0o365,
  Word8
0o160,
  Word8
0o266,
  Word8
0o050,
  Word8
0o051,
  Word8
0o045,
  Word8
0o056,
  Word8
0o267,
  Word8
0o211,
  Word8
0o053,
  Word8
0o261,
  Word8
0o161,
  Word8
0o077,
  Word8
0o277,
  Word8
0o042,
  Word8
0o204,
  Word8
0o223,
  Word8
0o224,
  Word8
0o221,
  Word8
0o222,
  Word8
0o202,
  Word8
0o047,
  Word8
0o162,
  Word8
0o256,
  Word8
0o163,
  Word8
0o232,
  Word8
0o247,
  Word8
0o073,
  Word8
0o067,
  Word8
0o066,
  Word8
0o057,
  Word8
0o040,
  Word8
0o243,
  Word8
0o164,
  Word8
0o376,
  Word8
0o063,
  Word8
0o276,
  Word8
0o263,
  Word8
0o230,
  Word8
0o231,
  Word8
0o062,
  Word8
0o262,
  Word8
0o165,
  Word8
0o372,
  Word8
0o373,
  Word8
0o374,
  Word8
0o371,
  Word8
0o137,
  Word8
0o166,
  Word8
0o167,
  Word8
0o170,
  Word8
0o171,
  Word8
0o375,
  Word8
0o377,
  Word8
0o245,
  Word8
0o172,
  Word8
0o236,
  Word8
0o060
  ]