File Coverage

blib/lib/Lingua/Translit/Tables.pm
Criterion Covered Total %
statement 32 38 84.2
branch 14 20 70.0
condition n/a
subroutine 8 10 80.0
pod 3 3 100.0
total 57 71 80.2


line stmt bran cond sub pod time code
1             package Lingua::Translit::Tables;
2              
3             #
4             # Copyright (C) 2007-2008 ...
5             # Alex Linke
6             # Rona Linke
7             # Copyright (C) 2009-2016 Lingua-Systems Software GmbH
8             # Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH
9             #
10              
11 26     26   14030 use strict;
  26         713  
  26         3813  
12 26     26   865 use warnings;
  26         51  
  26         2646  
13 26     26   10739 use utf8;
  26         249  
  26         121  
14              
15             require 5.008;
16              
17             our $VERSION = '0.27';
18              
19 26     26   1845 use Carp;
  26         52  
  26         370164  
20              
21             =pod
22              
23             =encoding utf8
24              
25             =head1 NAME
26              
27             Lingua::Translit::Tables - provides transliteration tables
28              
29             =head1 SYNOPSIS
30              
31             use Lingua::Translit::Tables qw/:checks/;
32              
33             my $truth;
34              
35             $truth = translit_supported("ISO 9");
36             $truth = translit_reverse_supported("ISO 9");
37              
38             use Lingua::Translit::Tables qw/:list/;
39              
40             translit_list_supported();
41              
42             =head1 DESCRIPTION
43              
44             This module is primary used to provide transliteration tables for
45             L and therefore allows one to separate data and algorithm.
46              
47             Beyond that, it provides routines to check if a given transliteration is
48             supported and allows one to print a simple list of supported transliterations
49             along with some meta information.
50              
51             =head1 EXPORTS
52              
53             No symbols are exported by default.
54              
55             Use either the routine's name or one of the following I to import
56             symbols to your namespace.
57              
58             =over 4
59              
60             =item B
61              
62             Import all routines.
63              
64             =item B
65              
66             Import all routines that allow one to check if a given transliteration is
67             supported: translit_supported() and translit_reverse_supported().
68              
69             =item B
70              
71             Import translit_list_supported(). (Convenience tag)
72              
73             =back
74              
75             =cut
76              
77             require Exporter;
78              
79             our @ISA = qw/Exporter/;
80             our @EXPORT = qw//; # Export nothing by default
81             our @EXPORT_OK = qw/translit_supported translit_reverse_supported
82             translit_list_supported/;
83              
84             our %EXPORT_TAGS = (
85             checks => [qw/translit_supported translit_reverse_supported/],
86             list => [qw/translit_list_supported/],
87             all => [@EXPORT_OK]
88             );
89              
90             # For convenience, the tables are initialized at the bottom of this file.
91             our %tables;
92              
93             # Used internally to retrieve a reference to a single transliteration table.
94             sub _get_table_reference {
95 89     89   220 my $name = shift();
96              
97 89 100       361 return unless $name;
98              
99 88         287 $name = _get_table_id($name);
100              
101 88         655 foreach my $table ( keys %tables ) {
102 1154 100       5391 return _handle_perl_unicode_bug( $tables{$table} )
103             if $table =~ /^$name$/i;
104             }
105              
106 1         18 return;
107             }
108              
109             # Handle the "Unicode Bug" affecting code points in the Latin-1 block.
110             #
111             # Have a look at perlunicode (section "The 'Unicode Bug'") for details.
112             sub _handle_perl_unicode_bug {
113 87     87   238 my $tbl = shift();
114              
115 87         175 foreach my $rule ( @{ $tbl->{rules} } ) {
  87         337  
116 5441         11748 utf8::upgrade( $rule->{from} );
117 5441         11048 utf8::upgrade( $rule->{to} );
118              
119 5441 100       10942 if ( defined( $rule->{context} ) ) {
120             utf8::upgrade( $rule->{context}->{before} )
121 262 100       727 if defined $rule->{context}->{before};
122             utf8::upgrade( $rule->{context}->{after} )
123 262 100       704 if defined $rule->{context}->{after};
124             }
125             }
126              
127 87         483 return $tbl;
128             }
129              
130             =head1 ROUTINES
131              
132             =head2 translit_supported(I)
133              
134             Returns true (1), iff I is supported. False (0) otherwise.
135              
136             =cut
137              
138             sub translit_supported {
139 50 100   50 1 17523 return ( _get_table_reference( _get_table_id( $_[0] ) ) ? 1 : 0 );
140             }
141              
142             =head2 translit_reverse_supported(I)
143              
144             Returns true (1), iff I is supported and allows reverse
145             transliteration. False (0) otherwise.
146              
147             =cut
148              
149             sub translit_reverse_supported {
150 0     0 1 0 my $table = _get_table_reference( _get_table_id( $_[0] ) );
151              
152 0 0       0 croak("Failed to retrieve table for $_[0].") unless ($table);
153              
154 0 0       0 return ( ( $table->{reverse} =~ /^true$/ ) ? 1 : 0 );
155             }
156              
157             =head2 B
158              
159             Prints a list of all supported transliterations to STDOUT (UTF-8 encoded),
160             providing the following information:
161              
162             * Name
163             * Reversibility
164             * Description
165              
166             The same information is provided in this document as well:
167              
168             =cut
169              
170             sub translit_list_supported {
171 0     0 1 0 require Encode;
172              
173 0         0 foreach my $table ( sort keys %tables ) {
174             printf(
175             "%s, %sreversible, %s\n",
176             Encode::encode( 'utf8', $tables{$table}->{name} ),
177             ( $tables{$table}->{reverse} eq "false" ? 'not ' : '' ),
178             Encode::encode( 'utf8', $tables{$table}->{desc} )
179 0 0       0 );
180             }
181             }
182              
183             =head1 SUPPORTED TRANSLITERATIONS
184              
185             =over 4
186              
187             =item Cyrillic
188              
189             I, not reversible, ALA-LC:1997, Cyrillic to Latin, Russian
190              
191             I, reversible, ISO 9:1995, Cyrillic to Latin
192              
193             I, reversible, ISO 9:1954, Cyrillic to Latin
194              
195             I, reversible, DIN 1460:1982, Cyrillic to Latin, Russian
196              
197             I, reversible, DIN 1460:1982, Cyrillic to Latin, Ukrainian
198              
199             I, reversible, DIN 1460:1982, Cyrillic to Latin, Bulgarian
200              
201             I, not reversible, The Streamlined System: 2006,
202             Cyrillic to Latin, Bulgarian
203              
204             I, reversible, GOST 7.79:2000 (table B), Cyrillic to Latin,
205             Russian
206              
207             I, not reversible, GOST 7.79:2000 (table B), Cyrillic to
208             Latin with support for Old Russian (pre 1918), Russian
209              
210             I, reversible, GOST 7.79:2000 (table B), Cyrillic to Latin,
211             Ukrainian
212              
213             I, not reversible, BGN/PCGN:1947 (Standard Variant),
214             Cyrillic to Latin, Russian
215              
216             I, not reversible, BGN/PCGN:1947 (Strict Variant),
217             Cyrillic to Latin, Russian
218              
219             =item Greek
220              
221             I, not reversible, ISO 843:1997, Greek to Latin
222              
223             I, not reversible, DIN 31634:1982, Greek to Latin
224              
225             I, not reversible, Greeklish (Phonetic), Greek to Latin
226              
227             =item Latin
228              
229             I, not reversible, Czech without diacritics
230              
231             I, not reversible, German without umlauts
232              
233             I, not reversible, Unaccented Polish
234              
235             I, not reversible, Romanian without diacritics as commonly used
236              
237             I, not reversible, Slovak without diacritics
238              
239             I, not reversible, Slovenian without diacritics
240              
241             I, reversible, Romanian with appropriate diacritics
242              
243             =item Arabic
244              
245             I, not reversible, Common Romanization of Arabic
246              
247             =item Sanskrit
248              
249             I, not reversible, IAST Romanization to Devanāgarī
250              
251             I, not reversible, Devanāgarī to IAST Romanization
252              
253             =back
254              
255             =head1 ADDING NEW TRANSLITERATIONS
256              
257             In case you want to add your own transliteration tables to
258             L, have a look at the developer documentation at
259             L.
260              
261             A template of a transliteration table is provided as well
262             (F) so you can easily start developing.
263              
264             =head1 BUGS
265              
266             None known.
267              
268             Please report bugs using CPAN's request tracker at
269             L.
270              
271             =head1 SEE ALSO
272              
273             L
274              
275             L
276              
277              
278             =head1 CREDITS
279              
280             Thanks to Dr. Daniel Eiwen, Romanisches Seminar, Universitaet Koeln for his
281             help on Romanian transliteration.
282              
283             Thanks to Dmitry Smal and Rusar Publishing for contributing the "ALA-LC RUS"
284             transliteration table.
285              
286             Thanks to Ahmed Elsheshtawy for his help implementing the "Common ARA" Arabic
287             transliteration.
288              
289             Thanks to Dusan Vuckovic for contributing the "ISO/R 9" transliteration table.
290              
291             Thanks to Ștefan Suciu for contributing the "ISO 8859-16 RON" transliteration
292             table.
293              
294             Thanks to Philip Kime for contributing the "IAST Devanagari" and "Devanagari
295             IAST" transliteration tables.
296              
297             Thanks to Nikola Lečić for contributing the "BGN/PCGN RUS Standard" and
298             "BGN/PCGN RUS Strict" transliteration tables.
299              
300             =head1 AUTHORS
301              
302             Alex Linke
303              
304             Rona Linke
305              
306             =head1 LICENSE AND COPYRIGHT
307              
308             Copyright (C) 2007-2008 Alex Linke and Rona Linke
309              
310             Copyright (C) 2009-2016 Lingua-Systems Software GmbH
311              
312             Copyright (C) 2016-2017 Netzum Sorglos, Lingua-Systems Software GmbH
313              
314             This module is free software; you can redistribute it and/or modify it under
315             the same terms as Perl itself.
316              
317             =cut
318              
319             # Get a table's identifier (based on the table's name)
320             # i.e "Common DEU" -> "common_deu"
321             sub _get_table_id {
322 150     150   5420 my $name = shift();
323              
324 150 100       486 return "" unless $name;
325              
326 149         679 $name =~ s/\s/_/g;
327              
328 149         565 return lc($name);
329             }
330              
331             # For convenience, the next line is automatically substituted with the set
332             # of transliteration tables at build time.
333             %tables = (
334             "common_slk" => {
335             "desc" => "Slovak without diacritics",
336             "name" => "Common SLK",
337             "id" => "common_slk",
338             "rules" => [
339             {
340             "to" => "A",
341             "from" => "\x{c1}"
342             },
343             {
344             "to" => "a",
345             "from" => "\x{e1}"
346             },
347             {
348             "to" => "A",
349             "from" => "\x{c4}"
350             },
351             {
352             "to" => "a",
353             "from" => "\x{e4}"
354             },
355             {
356             "to" => "C",
357             "from" => "\x{10c}"
358             },
359             {
360             "to" => "c",
361             "from" => "\x{10d}"
362             },
363             {
364             "to" => "D",
365             "from" => "\x{10e}"
366             },
367             {
368             "to" => "d",
369             "from" => "\x{10f}"
370             },
371             {
372             "to" => "d",
373             "from" => "d\x{30c}"
374             },
375             {
376             "to" => "E",
377             "from" => "\x{c9}"
378             },
379             {
380             "to" => "e",
381             "from" => "\x{e9}"
382             },
383             {
384             "to" => "I",
385             "from" => "\x{cd}"
386             },
387             {
388             "to" => "i",
389             "from" => "\x{ed}"
390             },
391             {
392             "to" => "L",
393             "from" => "\x{139}"
394             },
395             {
396             "to" => "l",
397             "from" => "\x{13a}"
398             },
399             {
400             "to" => "L",
401             "from" => "\x{13d}"
402             },
403             {
404             "to" => "l",
405             "from" => "\x{13e}"
406             },
407             {
408             "to" => "L",
409             "from" => "L\x{30c}"
410             },
411             {
412             "to" => "l",
413             "from" => "l\x{30c}"
414             },
415             {
416             "to" => "N",
417             "from" => "\x{147}"
418             },
419             {
420             "to" => "n",
421             "from" => "\x{148}"
422             },
423             {
424             "to" => "O",
425             "from" => "\x{d3}"
426             },
427             {
428             "to" => "o",
429             "from" => "\x{f3}"
430             },
431             {
432             "to" => "R",
433             "from" => "\x{154}"
434             },
435             {
436             "to" => "r",
437             "from" => "\x{155}"
438             },
439             {
440             "to" => "S",
441             "from" => "\x{160}"
442             },
443             {
444             "to" => "s",
445             "from" => "\x{161}"
446             },
447             {
448             "to" => "T",
449             "from" => "\x{164}"
450             },
451             {
452             "to" => "t",
453             "from" => "\x{165}"
454             },
455             {
456             "to" => "t",
457             "from" => "t\x{30c}"
458             },
459             {
460             "to" => "U",
461             "from" => "\x{da}"
462             },
463             {
464             "to" => "u",
465             "from" => "\x{fa}"
466             },
467             {
468             "to" => "Y",
469             "from" => "\x{dd}"
470             },
471             {
472             "to" => "y",
473             "from" => "\x{fd}"
474             },
475             {
476             "to" => "Z",
477             "from" => "\x{17d}"
478             },
479             {
480             "to" => "z",
481             "from" => "\x{17e}"
482             },
483             {
484             "to" => "O",
485             "from" => "\x{d4}"
486             },
487             {
488             "to" => "o",
489             "from" => "\x{f4}"
490             },
491             {
492             "to" => "DZ",
493             "from" => "\x{1f1}"
494             },
495             {
496             "to" => "Dz",
497             "from" => "\x{1f2}"
498             },
499             {
500             "to" => "dz",
501             "from" => "\x{1f3}"
502             },
503             {
504             "to" => "DZ",
505             "from" => "\x{1c4}"
506             },
507             {
508             "to" => "Dz",
509             "from" => "\x{1c5}"
510             },
511             {
512             "to" => "dz",
513             "from" => "\x{1c6}"
514             }
515             ],
516             "reverse" => "false"
517             },
518             "common_ron" => {
519             "desc" => "Romanian without diacritics",
520             "name" => "Common RON",
521             "id" => "common_ron",
522             "rules" => [
523             {
524             "to" => "A",
525             "from" => "\x{102}"
526             },
527             {
528             "to" => "a",
529             "from" => "\x{103}"
530             },
531             {
532             "to" => "A",
533             "from" => "\x{c2}"
534             },
535             {
536             "to" => "a",
537             "from" => "\x{e2}"
538             },
539             {
540             "to" => "I",
541             "from" => "\x{ce}"
542             },
543             {
544             "to" => "i",
545             "from" => "\x{ee}"
546             },
547             {
548             "to" => "S",
549             "from" => "\x{218}"
550             },
551             {
552             "to" => "s",
553             "from" => "\x{219}"
554             },
555             {
556             "to" => "S",
557             "from" => "\x{15e}"
558             },
559             {
560             "to" => "s",
561             "from" => "\x{15f}"
562             },
563             {
564             "to" => "T",
565             "from" => "\x{21a}"
566             },
567             {
568             "to" => "t",
569             "from" => "\x{21b}"
570             },
571             {
572             "to" => "T",
573             "from" => "\x{162}"
574             },
575             {
576             "to" => "t",
577             "from" => "\x{163}"
578             }
579             ],
580             "reverse" => "false"
581             },
582             "common_pol" => {
583             "desc" => "Unaccented Polish",
584             "name" => "Common POL",
585             "id" => "common_pol",
586             "rules" => [
587             {
588             "to" => "A",
589             "from" => "\x{104}"
590             },
591             {
592             "to" => "a",
593             "from" => "\x{105}"
594             },
595             {
596             "to" => "C",
597             "from" => "\x{106}"
598             },
599             {
600             "to" => "c",
601             "from" => "\x{107}"
602             },
603             {
604             "to" => "E",
605             "from" => "\x{118}"
606             },
607             {
608             "to" => "e",
609             "from" => "\x{119}"
610             },
611             {
612             "to" => "L",
613             "from" => "\x{141}"
614             },
615             {
616             "to" => "l",
617             "from" => "\x{142}"
618             },
619             {
620             "to" => "N",
621             "from" => "\x{143}"
622             },
623             {
624             "to" => "n",
625             "from" => "\x{144}"
626             },
627             {
628             "to" => "O",
629             "from" => "\x{d3}"
630             },
631             {
632             "to" => "o",
633             "from" => "\x{f3}"
634             },
635             {
636             "to" => "S",
637             "from" => "\x{15a}"
638             },
639             {
640             "to" => "s",
641             "from" => "\x{15b}"
642             },
643             {
644             "to" => "Z",
645             "from" => "\x{179}"
646             },
647             {
648             "to" => "z",
649             "from" => "\x{17a}"
650             },
651             {
652             "to" => "Z",
653             "from" => "\x{17b}"
654             },
655             {
656             "to" => "z",
657             "from" => "\x{17c}"
658             }
659             ],
660             "reverse" => "false"
661             },
662             "streamlined_system_bul" => {
663             "desc" => "The Streamlined System: 2006, Cyrillic to Latin, Bulgarian",
664             "name" => "Streamlined System BUL",
665             "id" => "streamlined_system_bul",
666             "rules" => [
667             {
668             "to" => "SHT",
669             "from" => "\x{429}",
670             "context" => {
671             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
672             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
673             }
674             },
675             {
676             "to" => "Sht",
677             "from" => "\x{429}"
678             },
679             {
680             "to" => "sht",
681             "from" => "\x{449}"
682             },
683             {
684             "to" => "ZH",
685             "from" => "\x{416}",
686             "context" => {
687             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
688             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
689             }
690             },
691             {
692             "to" => "Zh",
693             "from" => "\x{416}"
694             },
695             {
696             "to" => "zh",
697             "from" => "\x{436}"
698             },
699             {
700             "to" => "TS",
701             "from" => "\x{426}",
702             "context" => {
703             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
704             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
705             }
706             },
707             {
708             "to" => "Ts",
709             "from" => "\x{426}"
710             },
711             {
712             "to" => "ts",
713             "from" => "\x{446}"
714             },
715             {
716             "to" => "CH",
717             "from" => "\x{427}",
718             "context" => {
719             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
720             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
721             }
722             },
723             {
724             "to" => "Ch",
725             "from" => "\x{427}"
726             },
727             {
728             "to" => "ch",
729             "from" => "\x{447}"
730             },
731             {
732             "to" => "SH",
733             "from" => "\x{428}",
734             "context" => {
735             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
736             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
737             }
738             },
739             {
740             "to" => "Sh",
741             "from" => "\x{428}"
742             },
743             {
744             "to" => "sh",
745             "from" => "\x{448}"
746             },
747             {
748             "to" => "YU",
749             "from" => "\x{42e}",
750             "context" => {
751             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
752             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
753             }
754             },
755             {
756             "to" => "Yu",
757             "from" => "\x{42e}"
758             },
759             {
760             "to" => "yu",
761             "from" => "\x{44e}"
762             },
763             {
764             "to" => "YA",
765             "from" => "\x{42f}",
766             "context" => {
767             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
768             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
769             }
770             },
771             {
772             "to" => "Ya",
773             "from" => "\x{42f}"
774             },
775             {
776             "to" => "ya",
777             "from" => "\x{44f}"
778             },
779             {
780             "to" => "A",
781             "from" => "\x{410}"
782             },
783             {
784             "to" => "a",
785             "from" => "\x{430}"
786             },
787             {
788             "to" => "B",
789             "from" => "\x{411}"
790             },
791             {
792             "to" => "b",
793             "from" => "\x{431}"
794             },
795             {
796             "to" => "V",
797             "from" => "\x{412}"
798             },
799             {
800             "to" => "v",
801             "from" => "\x{432}"
802             },
803             {
804             "to" => "G",
805             "from" => "\x{413}"
806             },
807             {
808             "to" => "g",
809             "from" => "\x{433}"
810             },
811             {
812             "to" => "D",
813             "from" => "\x{414}"
814             },
815             {
816             "to" => "d",
817             "from" => "\x{434}"
818             },
819             {
820             "to" => "E",
821             "from" => "\x{415}"
822             },
823             {
824             "to" => "e",
825             "from" => "\x{435}"
826             },
827             {
828             "to" => "Z",
829             "from" => "\x{417}"
830             },
831             {
832             "to" => "z",
833             "from" => "\x{437}"
834             },
835             {
836             "to" => "I",
837             "from" => "\x{418}"
838             },
839             {
840             "to" => "i",
841             "from" => "\x{438}"
842             },
843             {
844             "to" => "Y",
845             "from" => "\x{419}"
846             },
847             {
848             "to" => "y",
849             "from" => "\x{439}"
850             },
851             {
852             "to" => "K",
853             "from" => "\x{41a}"
854             },
855             {
856             "to" => "k",
857             "from" => "\x{43a}"
858             },
859             {
860             "to" => "L",
861             "from" => "\x{41b}"
862             },
863             {
864             "to" => "l",
865             "from" => "\x{43b}"
866             },
867             {
868             "to" => "M",
869             "from" => "\x{41c}"
870             },
871             {
872             "to" => "m",
873             "from" => "\x{43c}"
874             },
875             {
876             "to" => "N",
877             "from" => "\x{41d}"
878             },
879             {
880             "to" => "n",
881             "from" => "\x{43d}"
882             },
883             {
884             "to" => "O",
885             "from" => "\x{41e}"
886             },
887             {
888             "to" => "o",
889             "from" => "\x{43e}"
890             },
891             {
892             "to" => "P",
893             "from" => "\x{41f}"
894             },
895             {
896             "to" => "p",
897             "from" => "\x{43f}"
898             },
899             {
900             "to" => "R",
901             "from" => "\x{420}"
902             },
903             {
904             "to" => "r",
905             "from" => "\x{440}"
906             },
907             {
908             "to" => "S",
909             "from" => "\x{421}"
910             },
911             {
912             "to" => "s",
913             "from" => "\x{441}"
914             },
915             {
916             "to" => "T",
917             "from" => "\x{422}"
918             },
919             {
920             "to" => "t",
921             "from" => "\x{442}"
922             },
923             {
924             "to" => "U",
925             "from" => "\x{423}"
926             },
927             {
928             "to" => "u",
929             "from" => "\x{443}"
930             },
931             {
932             "to" => "F",
933             "from" => "\x{424}"
934             },
935             {
936             "to" => "f",
937             "from" => "\x{444}"
938             },
939             {
940             "to" => "H",
941             "from" => "\x{425}"
942             },
943             {
944             "to" => "h",
945             "from" => "\x{445}"
946             },
947             {
948             "to" => "A",
949             "from" => "\x{42a}"
950             },
951             {
952             "to" => "a",
953             "from" => "\x{44a}"
954             },
955             {
956             "to" => "Y",
957             "from" => "\x{42c}"
958             },
959             {
960             "to" => "y",
961             "from" => "\x{44c}"
962             }
963             ],
964             "reverse" => "false"
965             },
966             "gost_7.79_rus_old" => {
967             "desc" => "GOST 7.79:2000, Cyrillic to Latin with support for Old Russian (pre 1918), Russian",
968             "name" => "GOST 7.79 RUS OLD",
969             "id" => "gost_7.79_rus_old",
970             "rules" => [
971             {
972             "to" => "i'",
973             "from" => "\x{456}",
974             "context" => {
975             "before" => "[^\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{44d}\x{451}\x{463}\x{475}\x{456}]"
976             }
977             },
978             {
979             "to" => "I'",
980             "from" => "\x{406}",
981             "context" => {
982             "before" => "[^\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{401}\x{42d}\x{462}\x{474}\x{406}]"
983             }
984             },
985             {
986             "to" => "i",
987             "from" => "\x{456}"
988             },
989             {
990             "to" => "I",
991             "from" => "\x{406}"
992             },
993             {
994             "to" => "c",
995             "from" => "\x{446}",
996             "context" => {
997             "before" => "[iejy\x{438}\x{435}\x{439}\x{44b}\x{44e}\x{44f}]"
998             }
999             },
1000             {
1001             "to" => "C",
1002             "from" => "\x{426}",
1003             "context" => {
1004             "before" => "[IEJY\x{418}\x{415}\x{419}\x{42b}\x{42e}\x{42f}]"
1005             }
1006             },
1007             {
1008             "to" => "cz",
1009             "from" => "\x{446}"
1010             },
1011             {
1012             "to" => "CZ",
1013             "from" => "\x{426}",
1014             "context" => {
1015             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1016             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1017             }
1018             },
1019             {
1020             "to" => "Cz",
1021             "from" => "\x{426}"
1022             },
1023             {
1024             "to" => "a",
1025             "from" => "\x{430}"
1026             },
1027             {
1028             "to" => "A",
1029             "from" => "\x{410}"
1030             },
1031             {
1032             "to" => "b",
1033             "from" => "\x{431}"
1034             },
1035             {
1036             "to" => "B",
1037             "from" => "\x{411}"
1038             },
1039             {
1040             "to" => "v",
1041             "from" => "\x{432}"
1042             },
1043             {
1044             "to" => "V",
1045             "from" => "\x{412}"
1046             },
1047             {
1048             "to" => "g",
1049             "from" => "\x{433}"
1050             },
1051             {
1052             "to" => "G",
1053             "from" => "\x{413}"
1054             },
1055             {
1056             "to" => "d",
1057             "from" => "\x{434}"
1058             },
1059             {
1060             "to" => "D",
1061             "from" => "\x{414}"
1062             },
1063             {
1064             "to" => "e",
1065             "from" => "\x{435}"
1066             },
1067             {
1068             "to" => "E",
1069             "from" => "\x{415}"
1070             },
1071             {
1072             "to" => "yo",
1073             "from" => "\x{451}"
1074             },
1075             {
1076             "to" => "YO",
1077             "from" => "\x{401}",
1078             "context" => {
1079             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1080             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1081             }
1082             },
1083             {
1084             "to" => "Yo",
1085             "from" => "\x{401}"
1086             },
1087             {
1088             "to" => "zh",
1089             "from" => "\x{436}"
1090             },
1091             {
1092             "to" => "ZH",
1093             "from" => "\x{416}",
1094             "context" => {
1095             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1096             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1097             }
1098             },
1099             {
1100             "to" => "Zh",
1101             "from" => "\x{416}"
1102             },
1103             {
1104             "to" => "z",
1105             "from" => "\x{437}"
1106             },
1107             {
1108             "to" => "Z",
1109             "from" => "\x{417}"
1110             },
1111             {
1112             "to" => "i",
1113             "from" => "\x{438}"
1114             },
1115             {
1116             "to" => "I",
1117             "from" => "\x{418}"
1118             },
1119             {
1120             "to" => "j",
1121             "from" => "\x{439}"
1122             },
1123             {
1124             "to" => "J",
1125             "from" => "\x{419}"
1126             },
1127             {
1128             "to" => "k",
1129             "from" => "\x{43a}"
1130             },
1131             {
1132             "to" => "K",
1133             "from" => "\x{41a}"
1134             },
1135             {
1136             "to" => "l",
1137             "from" => "\x{43b}"
1138             },
1139             {
1140             "to" => "L",
1141             "from" => "\x{41b}"
1142             },
1143             {
1144             "to" => "m",
1145             "from" => "\x{43c}"
1146             },
1147             {
1148             "to" => "M",
1149             "from" => "\x{41c}"
1150             },
1151             {
1152             "to" => "n",
1153             "from" => "\x{43d}"
1154             },
1155             {
1156             "to" => "N",
1157             "from" => "\x{41d}"
1158             },
1159             {
1160             "to" => "o",
1161             "from" => "\x{43e}"
1162             },
1163             {
1164             "to" => "O",
1165             "from" => "\x{41e}"
1166             },
1167             {
1168             "to" => "p",
1169             "from" => "\x{43f}"
1170             },
1171             {
1172             "to" => "P",
1173             "from" => "\x{41f}"
1174             },
1175             {
1176             "to" => "r",
1177             "from" => "\x{440}"
1178             },
1179             {
1180             "to" => "R",
1181             "from" => "\x{420}"
1182             },
1183             {
1184             "to" => "s",
1185             "from" => "\x{441}"
1186             },
1187             {
1188             "to" => "S",
1189             "from" => "\x{421}"
1190             },
1191             {
1192             "to" => "t",
1193             "from" => "\x{442}"
1194             },
1195             {
1196             "to" => "T",
1197             "from" => "\x{422}"
1198             },
1199             {
1200             "to" => "u",
1201             "from" => "\x{443}"
1202             },
1203             {
1204             "to" => "U",
1205             "from" => "\x{423}"
1206             },
1207             {
1208             "to" => "f",
1209             "from" => "\x{444}"
1210             },
1211             {
1212             "to" => "F",
1213             "from" => "\x{424}"
1214             },
1215             {
1216             "to" => "x",
1217             "from" => "\x{445}"
1218             },
1219             {
1220             "to" => "X",
1221             "from" => "\x{425}"
1222             },
1223             {
1224             "to" => "ch",
1225             "from" => "\x{447}"
1226             },
1227             {
1228             "to" => "CH",
1229             "from" => "\x{427}",
1230             "context" => {
1231             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1232             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1233             }
1234             },
1235             {
1236             "to" => "Ch",
1237             "from" => "\x{427}"
1238             },
1239             {
1240             "to" => "sh",
1241             "from" => "\x{448}"
1242             },
1243             {
1244             "to" => "SH",
1245             "from" => "\x{428}",
1246             "context" => {
1247             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1248             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1249             }
1250             },
1251             {
1252             "to" => "Sh",
1253             "from" => "\x{428}"
1254             },
1255             {
1256             "to" => "shh",
1257             "from" => "\x{449}"
1258             },
1259             {
1260             "to" => "SHH",
1261             "from" => "\x{429}",
1262             "context" => {
1263             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1264             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1265             }
1266             },
1267             {
1268             "to" => "Shh",
1269             "from" => "\x{429}"
1270             },
1271             {
1272             "to" => "``",
1273             "from" => "\x{44a}"
1274             },
1275             {
1276             "to" => "``",
1277             "from" => "\x{42a}"
1278             },
1279             {
1280             "to" => "y'",
1281             "from" => "\x{44b}"
1282             },
1283             {
1284             "to" => "Y'",
1285             "from" => "\x{42b}"
1286             },
1287             {
1288             "to" => "`",
1289             "from" => "\x{42c}"
1290             },
1291             {
1292             "to" => "`",
1293             "from" => "\x{44c}"
1294             },
1295             {
1296             "to" => "e`",
1297             "from" => "\x{44d}"
1298             },
1299             {
1300             "to" => "E`",
1301             "from" => "\x{42d}"
1302             },
1303             {
1304             "to" => "yu",
1305             "from" => "\x{44e}"
1306             },
1307             {
1308             "to" => "YU",
1309             "from" => "\x{42e}",
1310             "context" => {
1311             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1312             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1313             }
1314             },
1315             {
1316             "to" => "Yu",
1317             "from" => "\x{42e}"
1318             },
1319             {
1320             "to" => "ya",
1321             "from" => "\x{44f}"
1322             },
1323             {
1324             "to" => "YA",
1325             "from" => "\x{42f}",
1326             "context" => {
1327             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1328             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1329             }
1330             },
1331             {
1332             "to" => "Ya",
1333             "from" => "\x{42f}"
1334             },
1335             {
1336             "to" => "ye",
1337             "from" => "\x{463}"
1338             },
1339             {
1340             "to" => "YE",
1341             "from" => "\x{462}",
1342             "context" => {
1343             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1344             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1345             }
1346             },
1347             {
1348             "to" => "Ye",
1349             "from" => "\x{462}"
1350             },
1351             {
1352             "to" => "fh",
1353             "from" => "\x{473}"
1354             },
1355             {
1356             "to" => "FH",
1357             "from" => "\x{472}",
1358             "context" => {
1359             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1360             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1361             }
1362             },
1363             {
1364             "to" => "Fh",
1365             "from" => "\x{472}"
1366             },
1367             {
1368             "to" => "yh",
1369             "from" => "\x{475}"
1370             },
1371             {
1372             "to" => "YH",
1373             "from" => "\x{474}",
1374             "context" => {
1375             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1376             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1377             }
1378             },
1379             {
1380             "to" => "Yh",
1381             "from" => "\x{474}"
1382             },
1383             {
1384             "to" => "#",
1385             "from" => "\x{2116}"
1386             }
1387             ],
1388             "reverse" => "false"
1389             },
1390             "din_1460_rus" => {
1391             "desc" => "DIN 1460:1982, Cyrillic to Latin, Russian",
1392             "name" => "DIN 1460 RUS",
1393             "id" => "din_1460_rus",
1394             "rules" => [
1395             {
1396             "to" => "ch",
1397             "from" => "\x{445}"
1398             },
1399             {
1400             "to" => "CH",
1401             "from" => "\x{425}",
1402             "context" => {
1403             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1404             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1405             }
1406             },
1407             {
1408             "to" => "Ch",
1409             "from" => "\x{425}"
1410             },
1411             {
1412             "to" => "\x{161}\x{10d}",
1413             "from" => "\x{449}"
1414             },
1415             {
1416             "to" => "\x{160}\x{10c}",
1417             "from" => "\x{429}",
1418             "context" => {
1419             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1420             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1421             }
1422             },
1423             {
1424             "to" => "\x{160}\x{10d}",
1425             "from" => "\x{429}"
1426             },
1427             {
1428             "to" => "\"",
1429             "from" => "\x{42a}",
1430             "context" => {
1431             "after" => "\\p{IsUpper}",
1432             "before" => "([^\\p{IsWord}]|\$)"
1433             }
1434             },
1435             {
1436             "to" => "\"",
1437             "from" => "\x{44a}",
1438             "context" => {
1439             "after" => "\\p{IsWord}",
1440             "before" => "([^\\p{IsWord}]|\$)"
1441             }
1442             },
1443             {
1444             "to" => "\"",
1445             "from" => "\x{44a}",
1446             "context" => {
1447             "after" => "\\p{IsWord}",
1448             "before" => "\\p{IsWord}"
1449             }
1450             },
1451             {
1452             "to" => "\"",
1453             "from" => "\x{42a}",
1454             "context" => {
1455             "after" => "\\p{IsWord}",
1456             "before" => "\\p{IsWord}"
1457             }
1458             },
1459             {
1460             "to" => "ju",
1461             "from" => "\x{44e}"
1462             },
1463             {
1464             "to" => "JU",
1465             "from" => "\x{42e}",
1466             "context" => {
1467             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1468             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1469             }
1470             },
1471             {
1472             "to" => "Ju",
1473             "from" => "\x{42e}"
1474             },
1475             {
1476             "to" => "ja",
1477             "from" => "\x{44f}"
1478             },
1479             {
1480             "to" => "JA",
1481             "from" => "\x{42f}",
1482             "context" => {
1483             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
1484             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
1485             }
1486             },
1487             {
1488             "to" => "Ja",
1489             "from" => "\x{42f}"
1490             },
1491             {
1492             "to" => "J-",
1493             "from" => "\x{419}",
1494             "context" => {
1495             "before" => "[auAU\x{430}\x{443}\x{410}\x{423}]"
1496             }
1497             },
1498             {
1499             "to" => "j-",
1500             "from" => "\x{439}",
1501             "context" => {
1502             "before" => "[au\x{430}\x{443}]"
1503             }
1504             },
1505             {
1506             "to" => "\x{160}-",
1507             "from" => "\x{428}",
1508             "context" => {
1509             "before" => "[\x{10c}\x{10d}\x{427}\x{447}]"
1510             }
1511             },
1512             {
1513             "to" => "\x{161}-",
1514             "from" => "\x{448}",
1515             "context" => {
1516             "before" => "[\x{10d}\x{447}]"
1517             }
1518             },
1519             {
1520             "to" => "a",
1521             "from" => "\x{430}"
1522             },
1523             {
1524             "to" => "A",
1525             "from" => "\x{410}"
1526             },
1527             {
1528             "to" => "b",
1529             "from" => "\x{431}"
1530             },
1531             {
1532             "to" => "B",
1533             "from" => "\x{411}"
1534             },
1535             {
1536             "to" => "v",
1537             "from" => "\x{432}"
1538             },
1539             {
1540             "to" => "V",
1541             "from" => "\x{412}"
1542             },
1543             {
1544             "to" => "g",
1545             "from" => "\x{433}"
1546             },
1547             {
1548             "to" => "G",
1549             "from" => "\x{413}"
1550             },
1551             {
1552             "to" => "d",
1553             "from" => "\x{434}"
1554             },
1555             {
1556             "to" => "D",
1557             "from" => "\x{414}"
1558             },
1559             {
1560             "to" => "e",
1561             "from" => "\x{435}"
1562             },
1563             {
1564             "to" => "E",
1565             "from" => "\x{415}"
1566             },
1567             {
1568             "to" => "\x{eb}",
1569             "from" => "\x{451}"
1570             },
1571             {
1572             "to" => "\x{cb}",
1573             "from" => "\x{401}"
1574             },
1575             {
1576             "to" => "\x{17e}",
1577             "from" => "\x{436}"
1578             },
1579             {
1580             "to" => "\x{17d}",
1581             "from" => "\x{416}"
1582             },
1583             {
1584             "to" => "z",
1585             "from" => "\x{437}"
1586             },
1587             {
1588             "to" => "Z",
1589             "from" => "\x{417}"
1590             },
1591             {
1592             "to" => "i",
1593             "from" => "\x{438}"
1594             },
1595             {
1596             "to" => "I",
1597             "from" => "\x{418}"
1598             },
1599             {
1600             "to" => "i",
1601             "from" => "\x{456}"
1602             },
1603             {
1604             "to" => "I",
1605             "from" => "\x{406}"
1606             },
1607             {
1608             "to" => "j",
1609             "from" => "\x{439}"
1610             },
1611             {
1612             "to" => "J",
1613             "from" => "\x{419}"
1614             },
1615             {
1616             "to" => "k",
1617             "from" => "\x{43a}"
1618             },
1619             {
1620             "to" => "K",
1621             "from" => "\x{41a}"
1622             },
1623             {
1624             "to" => "l",
1625             "from" => "\x{43b}"
1626             },
1627             {
1628             "to" => "L",
1629             "from" => "\x{41b}"
1630             },
1631             {
1632             "to" => "m",
1633             "from" => "\x{43c}"
1634             },
1635             {
1636             "to" => "M",
1637             "from" => "\x{41c}"
1638             },
1639             {
1640             "to" => "n",
1641             "from" => "\x{43d}"
1642             },
1643             {
1644             "to" => "N",
1645             "from" => "\x{41d}"
1646             },
1647             {
1648             "to" => "o",
1649             "from" => "\x{43e}"
1650             },
1651             {
1652             "to" => "O",
1653             "from" => "\x{41e}"
1654             },
1655             {
1656             "to" => "p",
1657             "from" => "\x{43f}"
1658             },
1659             {
1660             "to" => "P",
1661             "from" => "\x{41f}"
1662             },
1663             {
1664             "to" => "r",
1665             "from" => "\x{440}"
1666             },
1667             {
1668             "to" => "R",
1669             "from" => "\x{420}"
1670             },
1671             {
1672             "to" => "s",
1673             "from" => "\x{441}"
1674             },
1675             {
1676             "to" => "S",
1677             "from" => "\x{421}"
1678             },
1679             {
1680             "to" => "t",
1681             "from" => "\x{442}"
1682             },
1683             {
1684             "to" => "T",
1685             "from" => "\x{422}"
1686             },
1687             {
1688             "to" => "u",
1689             "from" => "\x{443}"
1690             },
1691             {
1692             "to" => "U",
1693             "from" => "\x{423}"
1694             },
1695             {
1696             "to" => "f",
1697             "from" => "\x{444}"
1698             },
1699             {
1700             "to" => "F",
1701             "from" => "\x{424}"
1702             },
1703             {
1704             "to" => "c",
1705             "from" => "\x{446}"
1706             },
1707             {
1708             "to" => "C",
1709             "from" => "\x{426}"
1710             },
1711             {
1712             "to" => "\x{10d}",
1713             "from" => "\x{447}"
1714             },
1715             {
1716             "to" => "\x{10c}",
1717             "from" => "\x{427}"
1718             },
1719             {
1720             "to" => "\x{161}",
1721             "from" => "\x{448}"
1722             },
1723             {
1724             "to" => "\x{160}",
1725             "from" => "\x{428}"
1726             },
1727             {
1728             "to" => "y",
1729             "from" => "\x{44b}"
1730             },
1731             {
1732             "to" => "Y",
1733             "from" => "\x{42b}"
1734             },
1735             {
1736             "to" => "'",
1737             "from" => "\x{42c}",
1738             "context" => {
1739             "after" => "\\p{IsUpper}"
1740             }
1741             },
1742             {
1743             "to" => "'",
1744             "from" => "\x{44c}"
1745             },
1746             {
1747             "to" => "\x{11b}",
1748             "from" => "\x{463}"
1749             },
1750             {
1751             "to" => "\x{11a}",
1752             "from" => "\x{462}"
1753             },
1754             {
1755             "to" => "\x{117}",
1756             "from" => "\x{44d}"
1757             },
1758             {
1759             "to" => "\x{116}",
1760             "from" => "\x{42d}"
1761             },
1762             {
1763             "to" => "\x{1e1f}",
1764             "from" => "\x{473}"
1765             },
1766             {
1767             "to" => "\x{1e1e}",
1768             "from" => "\x{472}"
1769             },
1770             {
1771             "to" => "\x{1e8f}",
1772             "from" => "\x{475}"
1773             },
1774             {
1775             "to" => "\x{1e8e}",
1776             "from" => "\x{474}"
1777             }
1778             ],
1779             "reverse" => "true"
1780             },
1781             "iso_9" => {
1782             "desc" => "ISO 9:1995, Cyrillic to Latin",
1783             "name" => "ISO 9",
1784             "id" => "iso_9",
1785             "rules" => [
1786             {
1787             "to" => "A",
1788             "from" => "\x{410}"
1789             },
1790             {
1791             "to" => "a",
1792             "from" => "\x{430}"
1793             },
1794             {
1795             "to" => "\x{102}",
1796             "from" => "\x{4d0}"
1797             },
1798             {
1799             "to" => "\x{103}",
1800             "from" => "\x{4d1}"
1801             },
1802             {
1803             "to" => "\x{c4}",
1804             "from" => "\x{4d2}"
1805             },
1806             {
1807             "to" => "\x{e4}",
1808             "from" => "\x{4d3}"
1809             },
1810             {
1811             "to" => "A\x{30b}",
1812             "from" => "\x{4d8}"
1813             },
1814             {
1815             "to" => "a\x{30b}",
1816             "from" => "\x{4d9}"
1817             },
1818             {
1819             "to" => "B",
1820             "from" => "\x{411}"
1821             },
1822             {
1823             "to" => "b",
1824             "from" => "\x{431}"
1825             },
1826             {
1827             "to" => "V",
1828             "from" => "\x{412}"
1829             },
1830             {
1831             "to" => "v",
1832             "from" => "\x{432}"
1833             },
1834             {
1835             "to" => "G",
1836             "from" => "\x{413}"
1837             },
1838             {
1839             "to" => "g",
1840             "from" => "\x{433}"
1841             },
1842             {
1843             "to" => "G\x{300}",
1844             "from" => "\x{490}"
1845             },
1846             {
1847             "to" => "g\x{300}",
1848             "from" => "\x{491}"
1849             },
1850             {
1851             "to" => "\x{11e}",
1852             "from" => "\x{494}"
1853             },
1854             {
1855             "to" => "\x{11f}",
1856             "from" => "\x{495}"
1857             },
1858             {
1859             "to" => "\x{120}",
1860             "from" => "\x{492}"
1861             },
1862             {
1863             "to" => "\x{121}",
1864             "from" => "\x{493}"
1865             },
1866             {
1867             "to" => "D",
1868             "from" => "\x{414}"
1869             },
1870             {
1871             "to" => "d",
1872             "from" => "\x{434}"
1873             },
1874             {
1875             "to" => "\x{110}",
1876             "from" => "\x{402}"
1877             },
1878             {
1879             "to" => "\x{111}",
1880             "from" => "\x{452}"
1881             },
1882             {
1883             "to" => "\x{1f4}",
1884             "from" => "\x{403}"
1885             },
1886             {
1887             "to" => "\x{1f5}",
1888             "from" => "\x{453}"
1889             },
1890             {
1891             "to" => "E",
1892             "from" => "\x{415}"
1893             },
1894             {
1895             "to" => "e",
1896             "from" => "\x{435}"
1897             },
1898             {
1899             "to" => "\x{cb}",
1900             "from" => "\x{401}"
1901             },
1902             {
1903             "to" => "\x{eb}",
1904             "from" => "\x{451}"
1905             },
1906             {
1907             "to" => "\x{114}",
1908             "from" => "\x{4d6}"
1909             },
1910             {
1911             "to" => "\x{115}",
1912             "from" => "\x{4d7}"
1913             },
1914             {
1915             "to" => "\x{ca}",
1916             "from" => "\x{404}"
1917             },
1918             {
1919             "to" => "\x{ea}",
1920             "from" => "\x{454}"
1921             },
1922             {
1923             "to" => "C\x{306}",
1924             "from" => "\x{4bc}"
1925             },
1926             {
1927             "to" => "c\x{306}",
1928             "from" => "\x{4bd}"
1929             },
1930             {
1931             "to" => "\x{c7}\x{306}",
1932             "from" => "\x{4be}"
1933             },
1934             {
1935             "to" => "\x{e7}\x{306}",
1936             "from" => "\x{4bf}"
1937             },
1938             {
1939             "to" => "\x{17d}",
1940             "from" => "\x{416}"
1941             },
1942             {
1943             "to" => "\x{17e}",
1944             "from" => "\x{436}"
1945             },
1946             {
1947             "to" => "Z\x{306}",
1948             "from" => "\x{4c1}"
1949             },
1950             {
1951             "to" => "z\x{306}",
1952             "from" => "\x{4c2}"
1953             },
1954             {
1955             "to" => "Z\x{304}",
1956             "from" => "\x{4dc}"
1957             },
1958             {
1959             "to" => "z\x{304}",
1960             "from" => "\x{4dd}"
1961             },
1962             {
1963             "to" => "\x{17d}\x{326}",
1964             "from" => "\x{496}"
1965             },
1966             {
1967             "to" => "\x{17e}\x{327}",
1968             "from" => "\x{497}"
1969             },
1970             {
1971             "to" => "Z",
1972             "from" => "\x{417}"
1973             },
1974             {
1975             "to" => "z",
1976             "from" => "\x{437}"
1977             },
1978             {
1979             "to" => "Z\x{308}",
1980             "from" => "\x{4de}"
1981             },
1982             {
1983             "to" => "z\x{308}",
1984             "from" => "\x{4df}"
1985             },
1986             {
1987             "to" => "\x{1e90}",
1988             "from" => "\x{405}"
1989             },
1990             {
1991             "to" => "\x{1e91}",
1992             "from" => "\x{455}"
1993             },
1994             {
1995             "to" => "\x{179}",
1996             "from" => "\x{4e0}"
1997             },
1998             {
1999             "to" => "\x{17a}",
2000             "from" => "\x{4e1}"
2001             },
2002             {
2003             "to" => "I",
2004             "from" => "\x{418}"
2005             },
2006             {
2007             "to" => "i",
2008             "from" => "\x{438}"
2009             },
2010             {
2011             "to" => "\x{ce}",
2012             "from" => "\x{4e4}"
2013             },
2014             {
2015             "to" => "\x{ee}",
2016             "from" => "\x{4e5}"
2017             },
2018             {
2019             "to" => "\x{cc}",
2020             "from" => "\x{406}"
2021             },
2022             {
2023             "to" => "\x{ec}",
2024             "from" => "\x{456}"
2025             },
2026             {
2027             "to" => "\x{cf}",
2028             "from" => "\x{407}"
2029             },
2030             {
2031             "to" => "\x{ef}",
2032             "from" => "\x{457}"
2033             },
2034             {
2035             "to" => "J",
2036             "from" => "\x{419}"
2037             },
2038             {
2039             "to" => "j",
2040             "from" => "\x{439}"
2041             },
2042             {
2043             "to" => "J\x{30c}",
2044             "from" => "\x{408}"
2045             },
2046             {
2047             "to" => "\x{1f0}",
2048             "from" => "\x{458}"
2049             },
2050             {
2051             "to" => "K",
2052             "from" => "\x{41a}"
2053             },
2054             {
2055             "to" => "k",
2056             "from" => "\x{43a}"
2057             },
2058             {
2059             "to" => "\x{136}",
2060             "from" => "\x{49a}"
2061             },
2062             {
2063             "to" => "\x{137}",
2064             "from" => "\x{49b}"
2065             },
2066             {
2067             "to" => "K\x{304}",
2068             "from" => "\x{49e}"
2069             },
2070             {
2071             "to" => "k\x{304}",
2072             "from" => "\x{49f}"
2073             },
2074             {
2075             "to" => "L",
2076             "from" => "\x{41b}"
2077             },
2078             {
2079             "to" => "l",
2080             "from" => "\x{43b}"
2081             },
2082             {
2083             "to" => "L\x{302}",
2084             "from" => "\x{409}"
2085             },
2086             {
2087             "to" => "l\x{302}",
2088             "from" => "\x{459}"
2089             },
2090             {
2091             "to" => "M",
2092             "from" => "\x{41c}"
2093             },
2094             {
2095             "to" => "m",
2096             "from" => "\x{43c}"
2097             },
2098             {
2099             "to" => "N",
2100             "from" => "\x{41d}"
2101             },
2102             {
2103             "to" => "n",
2104             "from" => "\x{43d}"
2105             },
2106             {
2107             "to" => "N\x{302}",
2108             "from" => "\x{40a}"
2109             },
2110             {
2111             "to" => "n\x{302}",
2112             "from" => "\x{45a}"
2113             },
2114             {
2115             "to" => "\x{1e44}",
2116             "from" => "\x{4a4}"
2117             },
2118             {
2119             "to" => "\x{1e45}",
2120             "from" => "\x{4a5}"
2121             },
2122             {
2123             "to" => "\x{1e46}",
2124             "from" => "\x{4a2}"
2125             },
2126             {
2127             "to" => "\x{1e47}",
2128             "from" => "\x{4a3}"
2129             },
2130             {
2131             "to" => "O",
2132             "from" => "\x{41e}"
2133             },
2134             {
2135             "to" => "o",
2136             "from" => "\x{43e}"
2137             },
2138             {
2139             "to" => "\x{d6}",
2140             "from" => "\x{4e6}"
2141             },
2142             {
2143             "to" => "\x{f6}",
2144             "from" => "\x{4e7}"
2145             },
2146             {
2147             "to" => "\x{d4}",
2148             "from" => "\x{4e8}"
2149             },
2150             {
2151             "to" => "\x{f4}",
2152             "from" => "\x{4e9}"
2153             },
2154             {
2155             "to" => "P",
2156             "from" => "\x{41f}"
2157             },
2158             {
2159             "to" => "p",
2160             "from" => "\x{43f}"
2161             },
2162             {
2163             "to" => "\x{1e54}",
2164             "from" => "\x{4a6}"
2165             },
2166             {
2167             "to" => "\x{1e55}",
2168             "from" => "\x{4a7}"
2169             },
2170             {
2171             "to" => "R",
2172             "from" => "\x{420}"
2173             },
2174             {
2175             "to" => "r",
2176             "from" => "\x{440}"
2177             },
2178             {
2179             "to" => "S",
2180             "from" => "\x{421}"
2181             },
2182             {
2183             "to" => "s",
2184             "from" => "\x{441}"
2185             },
2186             {
2187             "to" => "\x{c7}",
2188             "from" => "\x{4aa}"
2189             },
2190             {
2191             "to" => "\x{e7}",
2192             "from" => "\x{4ab}"
2193             },
2194             {
2195             "to" => "T",
2196             "from" => "\x{422}"
2197             },
2198             {
2199             "to" => "t",
2200             "from" => "\x{442}"
2201             },
2202             {
2203             "to" => "\x{162}",
2204             "from" => "\x{4ac}"
2205             },
2206             {
2207             "to" => "\x{163}",
2208             "from" => "\x{4ad}"
2209             },
2210             {
2211             "to" => "\x{106}",
2212             "from" => "\x{40b}"
2213             },
2214             {
2215             "to" => "\x{170}",
2216             "from" => "\x{45b}"
2217             },
2218             {
2219             "to" => "\x{1e30}",
2220             "from" => "\x{40c}"
2221             },
2222             {
2223             "to" => "\x{1e31}",
2224             "from" => "\x{45c}"
2225             },
2226             {
2227             "to" => "U",
2228             "from" => "\x{423}"
2229             },
2230             {
2231             "to" => "u",
2232             "from" => "\x{443}"
2233             },
2234             {
2235             "to" => "\x{da}",
2236             "from" => "\x{423}\x{301}"
2237             },
2238             {
2239             "to" => "\x{fa}",
2240             "from" => "\x{443}\x{301}"
2241             },
2242             {
2243             "to" => "\x{16c}",
2244             "from" => "\x{40e}"
2245             },
2246             {
2247             "to" => "\x{16d}",
2248             "from" => "\x{45e}"
2249             },
2250             {
2251             "to" => "\x{dc}",
2252             "from" => "\x{4f0}"
2253             },
2254             {
2255             "to" => "\x{fc}",
2256             "from" => "\x{4f1}"
2257             },
2258             {
2259             "to" => "\x{170}",
2260             "from" => "\x{4f2}"
2261             },
2262             {
2263             "to" => "\x{171}",
2264             "from" => "\x{4f3}"
2265             },
2266             {
2267             "to" => "\x{d9}",
2268             "from" => "\x{4ae}"
2269             },
2270             {
2271             "to" => "\x{f9}",
2272             "from" => "\x{4af}"
2273             },
2274             {
2275             "to" => "F",
2276             "from" => "\x{424}"
2277             },
2278             {
2279             "to" => "f",
2280             "from" => "\x{444}"
2281             },
2282             {
2283             "to" => "H",
2284             "from" => "\x{425}"
2285             },
2286             {
2287             "to" => "h",
2288             "from" => "\x{445}"
2289             },
2290             {
2291             "to" => "\x{1e28}",
2292             "from" => "\x{4b2}"
2293             },
2294             {
2295             "to" => "\x{1e29}",
2296             "from" => "\x{4b3}"
2297             },
2298             {
2299             "to" => "\x{1e24}",
2300             "from" => "\x{4ba}"
2301             },
2302             {
2303             "to" => "\x{1e25}",
2304             "from" => "\x{4bb}"
2305             },
2306             {
2307             "to" => "C",
2308             "from" => "\x{426}"
2309             },
2310             {
2311             "to" => "c",
2312             "from" => "\x{446}"
2313             },
2314             {
2315             "to" => "C\x{304}",
2316             "from" => "\x{4b4}"
2317             },
2318             {
2319             "to" => "c\x{304}",
2320             "from" => "\x{4b5}"
2321             },
2322             {
2323             "to" => "\x{10c}",
2324             "from" => "\x{427}"
2325             },
2326             {
2327             "to" => "\x{10d}",
2328             "from" => "\x{447}"
2329             },
2330             {
2331             "to" => "C\x{308}",
2332             "from" => "\x{4f4}"
2333             },
2334             {
2335             "to" => "c\x{308}",
2336             "from" => "\x{4f5}"
2337             },
2338             {
2339             "to" => "\x{c7}",
2340             "from" => "\x{4cb}"
2341             },
2342             {
2343             "to" => "\x{e7}",
2344             "from" => "\x{4cc}"
2345             },
2346             {
2347             "to" => "D\x{302}",
2348             "from" => "\x{40f}"
2349             },
2350             {
2351             "to" => "d\x{302}",
2352             "from" => "\x{45f}"
2353             },
2354             {
2355             "to" => "\x{160}",
2356             "from" => "\x{428}"
2357             },
2358             {
2359             "to" => "\x{161}",
2360             "from" => "\x{448}"
2361             },
2362             {
2363             "to" => "\x{15c}",
2364             "from" => "\x{429}"
2365             },
2366             {
2367             "to" => "\x{15d}",
2368             "from" => "\x{449}"
2369             },
2370             {
2371             "to" => "\x{2ba}",
2372             "from" => "\x{42a}",
2373             "context" => {
2374             "after" => "\\p{IsUpper}"
2375             }
2376             },
2377             {
2378             "to" => "\x{2ba}",
2379             "from" => "\x{44a}"
2380             },
2381             {
2382             "to" => "\x{2019}",
2383             "from" => "\x{2bc}"
2384             },
2385             {
2386             "to" => "Y",
2387             "from" => "\x{42b}"
2388             },
2389             {
2390             "to" => "y",
2391             "from" => "\x{44b}"
2392             },
2393             {
2394             "to" => "\x{178}",
2395             "from" => "\x{4f8}"
2396             },
2397             {
2398             "to" => "\x{ff}",
2399             "from" => "\x{4f9}"
2400             },
2401             {
2402             "to" => "\x{2b9}",
2403             "from" => "\x{42c}",
2404             "context" => {
2405             "after" => "\\p{IsUpper}"
2406             }
2407             },
2408             {
2409             "to" => "\x{2b9}",
2410             "from" => "\x{44c}"
2411             },
2412             {
2413             "to" => "\x{c8}",
2414             "from" => "\x{42d}"
2415             },
2416             {
2417             "to" => "\x{e8}",
2418             "from" => "\x{44d}"
2419             },
2420             {
2421             "to" => "\x{db}",
2422             "from" => "\x{42e}"
2423             },
2424             {
2425             "to" => "\x{fb}",
2426             "from" => "\x{44e}"
2427             },
2428             {
2429             "to" => "\x{c2}",
2430             "from" => "\x{42f}"
2431             },
2432             {
2433             "to" => "\x{e2}",
2434             "from" => "\x{44f}"
2435             },
2436             {
2437             "to" => "\x{11a}",
2438             "from" => "\x{48c}"
2439             },
2440             {
2441             "to" => "\x{11b}",
2442             "from" => "\x{48d}"
2443             },
2444             {
2445             "to" => "\x{1cd}",
2446             "from" => "\x{46a}"
2447             },
2448             {
2449             "to" => "\x{1ce}",
2450             "from" => "\x{46b}"
2451             },
2452             {
2453             "to" => "F\x{300}",
2454             "from" => "\x{472}"
2455             },
2456             {
2457             "to" => "f\x{300}",
2458             "from" => "\x{473}"
2459             },
2460             {
2461             "to" => "\x{1ef2}",
2462             "from" => "\x{474}"
2463             },
2464             {
2465             "to" => "\x{1ef3}",
2466             "from" => "\x{475}"
2467             },
2468             {
2469             "to" => "\x{d2}",
2470             "from" => "\x{4a8}"
2471             },
2472             {
2473             "to" => "\x{f2}",
2474             "from" => "\x{4a9}"
2475             },
2476             {
2477             "to" => "\x{2021}",
2478             "from" => "\x{4c0}"
2479             }
2480             ],
2481             "reverse" => "true"
2482             },
2483             "common_slv" => {
2484             "desc" => "Slovenian without diacritics",
2485             "name" => "Common SLV",
2486             "id" => "common_slv",
2487             "rules" => [
2488             {
2489             "to" => "C",
2490             "from" => "\x{10c}"
2491             },
2492             {
2493             "to" => "c",
2494             "from" => "\x{10d}"
2495             },
2496             {
2497             "to" => "S",
2498             "from" => "\x{160}"
2499             },
2500             {
2501             "to" => "s",
2502             "from" => "\x{161}"
2503             },
2504             {
2505             "to" => "Z",
2506             "from" => "\x{17d}"
2507             },
2508             {
2509             "to" => "z",
2510             "from" => "\x{17e}"
2511             }
2512             ],
2513             "reverse" => "false"
2514             },
2515             "devanagari_iast" => {
2516             "desc" => "Devan\x{101}gar\x{12b} to IAST",
2517             "name" => "Devanagari IAST",
2518             "id" => "devanagari_iast",
2519             "rules" => [
2520             {
2521             "to" => 0,
2522             "from" => "\x{966}"
2523             },
2524             {
2525             "to" => 9,
2526             "from" => "\x{96f}"
2527             },
2528             {
2529             "to" => 8,
2530             "from" => "\x{96e}"
2531             },
2532             {
2533             "to" => 7,
2534             "from" => "\x{96d}"
2535             },
2536             {
2537             "to" => 6,
2538             "from" => "\x{96c}"
2539             },
2540             {
2541             "to" => 5,
2542             "from" => "\x{96b}"
2543             },
2544             {
2545             "to" => 4,
2546             "from" => "\x{96a}"
2547             },
2548             {
2549             "to" => 3,
2550             "from" => "\x{969}"
2551             },
2552             {
2553             "to" => 2,
2554             "from" => "\x{968}"
2555             },
2556             {
2557             "to" => 1,
2558             "from" => "\x{967}"
2559             },
2560             {
2561             "to" => "o",
2562             "from" => "\x{913}"
2563             },
2564             {
2565             "to" => "e",
2566             "from" => "\x{90f}"
2567             },
2568             {
2569             "to" => "\x{1e39}",
2570             "from" => "\x{961}"
2571             },
2572             {
2573             "to" => "\x{1e37}",
2574             "from" => "\x{90c}"
2575             },
2576             {
2577             "to" => "\x{1e5d}",
2578             "from" => "\x{960}"
2579             },
2580             {
2581             "to" => "\x{1e5b}",
2582             "from" => "\x{90b}"
2583             },
2584             {
2585             "to" => "\x{16b}",
2586             "from" => "\x{90a}"
2587             },
2588             {
2589             "to" => "u",
2590             "from" => "\x{909}"
2591             },
2592             {
2593             "to" => "\x{12b}",
2594             "from" => "\x{908}"
2595             },
2596             {
2597             "to" => "i",
2598             "from" => "\x{907}"
2599             },
2600             {
2601             "to" => "\x{101}",
2602             "from" => "\x{906}"
2603             },
2604             {
2605             "to" => "a",
2606             "from" => "\x{905}"
2607             },
2608             {
2609             "to" => "au",
2610             "from" => "\x{914}"
2611             },
2612             {
2613             "to" => "ai",
2614             "from" => "\x{910}"
2615             },
2616             {
2617             "to" => "'",
2618             "from" => "\x{93d}"
2619             },
2620             {
2621             "to" => "\x{94d}o",
2622             "from" => "\x{94b}"
2623             },
2624             {
2625             "to" => "\x{94d}e",
2626             "from" => "\x{947}"
2627             },
2628             {
2629             "to" => "\x{94d}\x{1e39}",
2630             "from" => "\x{963}"
2631             },
2632             {
2633             "to" => "\x{94d}\x{1e37}",
2634             "from" => "\x{962}"
2635             },
2636             {
2637             "to" => "\x{94d}\x{1e5d}",
2638             "from" => "\x{944}"
2639             },
2640             {
2641             "to" => "\x{94d}\x{1e5b}",
2642             "from" => "\x{943}"
2643             },
2644             {
2645             "to" => "\x{94d}\x{16b}",
2646             "from" => "\x{942}"
2647             },
2648             {
2649             "to" => "\x{94d}u",
2650             "from" => "\x{941}"
2651             },
2652             {
2653             "to" => "\x{94d}\x{12b}",
2654             "from" => "\x{940}"
2655             },
2656             {
2657             "to" => "\x{94d}i",
2658             "from" => "\x{93f}"
2659             },
2660             {
2661             "to" => "\x{94d}\x{101}",
2662             "from" => "\x{93e}"
2663             },
2664             {
2665             "to" => "\x{94d}au",
2666             "from" => "\x{94c}"
2667             },
2668             {
2669             "to" => "\x{94d}ai",
2670             "from" => "\x{948}"
2671             },
2672             {
2673             "to" => "h",
2674             "from" => "\x{939}\x{94d}"
2675             },
2676             {
2677             "to" => "s",
2678             "from" => "\x{938}\x{94d}"
2679             },
2680             {
2681             "to" => "\x{1e63}",
2682             "from" => "\x{937}\x{94d}"
2683             },
2684             {
2685             "to" => "\x{15b}",
2686             "from" => "\x{936}\x{94d}"
2687             },
2688             {
2689             "to" => "v",
2690             "from" => "\x{935}\x{94d}"
2691             },
2692             {
2693             "to" => "l",
2694             "from" => "\x{932}\x{94d}"
2695             },
2696             {
2697             "to" => "r",
2698             "from" => "\x{930}\x{94d}"
2699             },
2700             {
2701             "to" => "y",
2702             "from" => "\x{92f}\x{94d}"
2703             },
2704             {
2705             "to" => "m",
2706             "from" => "\x{92e}\x{94d}"
2707             },
2708             {
2709             "to" => "b",
2710             "from" => "\x{92c}\x{94d}"
2711             },
2712             {
2713             "to" => "bh",
2714             "from" => "\x{92d}\x{94d}"
2715             },
2716             {
2717             "to" => "ph",
2718             "from" => "\x{92b}\x{94d}"
2719             },
2720             {
2721             "to" => "p",
2722             "from" => "\x{92a}\x{94d}"
2723             },
2724             {
2725             "to" => "n",
2726             "from" => "\x{928}\x{94d}"
2727             },
2728             {
2729             "to" => "d",
2730             "from" => "\x{926}\x{94d}"
2731             },
2732             {
2733             "to" => "dh",
2734             "from" => "\x{927}\x{94d}"
2735             },
2736             {
2737             "to" => "t",
2738             "from" => "\x{924}\x{94d}"
2739             },
2740             {
2741             "to" => "th",
2742             "from" => "\x{925}\x{94d}"
2743             },
2744             {
2745             "to" => "\x{1e47}",
2746             "from" => "\x{923}\x{94d}"
2747             },
2748             {
2749             "to" => "\x{1e0d}",
2750             "from" => "\x{921}\x{94d}"
2751             },
2752             {
2753             "to" => "\x{1e0d}h",
2754             "from" => "\x{922}\x{94d}"
2755             },
2756             {
2757             "to" => "\x{1e6d}",
2758             "from" => "\x{91f}\x{94d}"
2759             },
2760             {
2761             "to" => "\x{1e6d}h",
2762             "from" => "\x{920}\x{94d}"
2763             },
2764             {
2765             "to" => "\x{f1}",
2766             "from" => "\x{91e}\x{94d}"
2767             },
2768             {
2769             "to" => "j",
2770             "from" => "\x{91c}\x{94d}"
2771             },
2772             {
2773             "to" => "jh",
2774             "from" => "\x{91d}\x{94d}"
2775             },
2776             {
2777             "to" => "c",
2778             "from" => "\x{91a}\x{94d}"
2779             },
2780             {
2781             "to" => "ch",
2782             "from" => "\x{91b}\x{94d}"
2783             },
2784             {
2785             "to" => "\x{1e45}",
2786             "from" => "\x{919}\x{94d}"
2787             },
2788             {
2789             "to" => "g",
2790             "from" => "\x{917}\x{94d}"
2791             },
2792             {
2793             "to" => "gh",
2794             "from" => "\x{918}\x{94d}"
2795             },
2796             {
2797             "to" => "k",
2798             "from" => "\x{915}\x{94d}"
2799             },
2800             {
2801             "to" => "kh",
2802             "from" => "\x{916}\x{94d}"
2803             },
2804             {
2805             "to" => "ha",
2806             "from" => "\x{939}"
2807             },
2808             {
2809             "to" => "sa",
2810             "from" => "\x{938}"
2811             },
2812             {
2813             "to" => "\x{1e63}a",
2814             "from" => "\x{937}"
2815             },
2816             {
2817             "to" => "\x{15b}a",
2818             "from" => "\x{936}"
2819             },
2820             {
2821             "to" => "va",
2822             "from" => "\x{935}"
2823             },
2824             {
2825             "to" => "la",
2826             "from" => "\x{932}"
2827             },
2828             {
2829             "to" => "ra",
2830             "from" => "\x{930}"
2831             },
2832             {
2833             "to" => "ya",
2834             "from" => "\x{92f}"
2835             },
2836             {
2837             "to" => "ma",
2838             "from" => "\x{92e}"
2839             },
2840             {
2841             "to" => "ba",
2842             "from" => "\x{92c}"
2843             },
2844             {
2845             "to" => "bha",
2846             "from" => "\x{92d}"
2847             },
2848             {
2849             "to" => "pha",
2850             "from" => "\x{92b}"
2851             },
2852             {
2853             "to" => "pa",
2854             "from" => "\x{92a}"
2855             },
2856             {
2857             "to" => "na",
2858             "from" => "\x{928}"
2859             },
2860             {
2861             "to" => "da",
2862             "from" => "\x{926}"
2863             },
2864             {
2865             "to" => "dha",
2866             "from" => "\x{927}"
2867             },
2868             {
2869             "to" => "ta",
2870             "from" => "\x{924}"
2871             },
2872             {
2873             "to" => "tha",
2874             "from" => "\x{925}"
2875             },
2876             {
2877             "to" => "\x{1e47}a",
2878             "from" => "\x{923}"
2879             },
2880             {
2881             "to" => "\x{1e0d}a",
2882             "from" => "\x{921}"
2883             },
2884             {
2885             "to" => "\x{1e0d}ha",
2886             "from" => "\x{922}"
2887             },
2888             {
2889             "to" => "\x{1e6d}a",
2890             "from" => "\x{91f}"
2891             },
2892             {
2893             "to" => "\x{1e6d}ha",
2894             "from" => "\x{920}"
2895             },
2896             {
2897             "to" => "\x{f1}a",
2898             "from" => "\x{91e}"
2899             },
2900             {
2901             "to" => "ja",
2902             "from" => "\x{91c}"
2903             },
2904             {
2905             "to" => "jha",
2906             "from" => "\x{91d}"
2907             },
2908             {
2909             "to" => "ca",
2910             "from" => "\x{91a}"
2911             },
2912             {
2913             "to" => "cha",
2914             "from" => "\x{91b}"
2915             },
2916             {
2917             "to" => "\x{1e45}a",
2918             "from" => "\x{919}"
2919             },
2920             {
2921             "to" => "ga",
2922             "from" => "\x{917}"
2923             },
2924             {
2925             "to" => "gha",
2926             "from" => "\x{918}"
2927             },
2928             {
2929             "to" => "ka",
2930             "from" => "\x{915}"
2931             },
2932             {
2933             "to" => "kha",
2934             "from" => "\x{916}"
2935             },
2936             {
2937             "to" => "\x{1e25}",
2938             "from" => "\x{903}"
2939             },
2940             {
2941             "to" => "\x{1e43}",
2942             "from" => "\x{902}"
2943             },
2944             {
2945             "to" => "o\x{1e41}",
2946             "from" => "\x{950}"
2947             }
2948             ],
2949             "reverse" => "false"
2950             },
2951             "iso_8859-16_ron" => {
2952             "desc" => "Romanian with appropriate diacritics",
2953             "name" => "ISO 8859-16 RON",
2954             "id" => "iso_8859-16_ron",
2955             "rules" => [
2956             {
2957             "to" => "\x{218}",
2958             "from" => "\x{15e}"
2959             },
2960             {
2961             "to" => "\x{219}",
2962             "from" => "\x{15f}"
2963             },
2964             {
2965             "to" => "\x{21a}",
2966             "from" => "\x{162}"
2967             },
2968             {
2969             "to" => "\x{21b}",
2970             "from" => "\x{163}"
2971             }
2972             ],
2973             "reverse" => "true"
2974             },
2975             "bgn/pcgn_rus_strict" => {
2976             "desc" => "BGN/PCGN:1947 (Strict Variant), Cyrillic to Latin, Russian",
2977             "name" => "BGN/PCGN RUS Strict",
2978             "id" => "bgn/pcgn_rus_strict",
2979             "rules" => [
2980             {
2981             "to" => "",
2982             "from" => "\x{301}"
2983             },
2984             {
2985             "to" => "Ye",
2986             "from" => "\x{415}",
2987             "context" => {
2988             "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{42c}\x{42a}\x{410}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}]"
2989             }
2990             },
2991             {
2992             "to" => "Ye",
2993             "from" => "\x{415}",
2994             "context" => {
2995             "after" => "\\b"
2996             }
2997             },
2998             {
2999             "to" => "E",
3000             "from" => "\x{415}"
3001             },
3002             {
3003             "to" => "Y\x{eb}",
3004             "from" => "\x{401}",
3005             "context" => {
3006             "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{42c}\x{42a}\x{410}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}e]"
3007             }
3008             },
3009             {
3010             "to" => "Y\x{eb}",
3011             "from" => "\x{401}",
3012             "context" => {
3013             "after" => "\\b"
3014             }
3015             },
3016             {
3017             "to" => "\x{cb}",
3018             "from" => "\x{401}"
3019             },
3020             {
3021             "to" => "Y\x{b7}",
3022             "from" => "\x{419}",
3023             "context" => {
3024             "before" => "[\x{410}\x{423}\x{42b}\x{42d}\x{430}\x{443}\x{44b}\x{44d}]"
3025             }
3026             },
3027             {
3028             "to" => "Y",
3029             "from" => "\x{419}"
3030             },
3031             {
3032             "to" => "Y\x{b7}",
3033             "from" => "\x{42b}",
3034             "context" => {
3035             "before" => "[\x{410}\x{423}\x{42b}\x{42d}\x{430}\x{443}\x{44b}\x{44d}]"
3036             }
3037             },
3038             {
3039             "to" => "\x{b7}Y",
3040             "from" => "\x{42b}",
3041             "context" => {
3042             "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}e\x{eb}Y]"
3043             }
3044             },
3045             {
3046             "to" => "Y",
3047             "from" => "\x{42b}"
3048             },
3049             {
3050             "to" => "\x{b7}E",
3051             "from" => "\x{42d}",
3052             "context" => {
3053             "after" => "[\x{411}\x{412}\x{413}\x{414}\x{416}\x{417}\x{41a}\x{41b}\x{41c}\x{41d}\x{41f}\x{420}\x{421}\x{422}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{431}\x{432}\x{433}\x{434}\x{436}\x{437}\x{43a}\x{43b}\x{43c}\x{43d}\x{43f}\x{440}\x{441}\x{442}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}]"
3054             }
3055             },
3056             {
3057             "to" => "E",
3058             "from" => "\x{42d}"
3059             },
3060             {
3061             "to" => "A",
3062             "from" => "\x{410}"
3063             },
3064             {
3065             "to" => "B",
3066             "from" => "\x{411}"
3067             },
3068             {
3069             "to" => "V",
3070             "from" => "\x{412}"
3071             },
3072             {
3073             "to" => "G",
3074             "from" => "\x{413}"
3075             },
3076             {
3077             "to" => "D",
3078             "from" => "\x{414}"
3079             },
3080             {
3081             "to" => "Zh",
3082             "from" => "\x{416}"
3083             },
3084             {
3085             "to" => "Z",
3086             "from" => "\x{417}"
3087             },
3088             {
3089             "to" => "I",
3090             "from" => "\x{418}"
3091             },
3092             {
3093             "to" => "K",
3094             "from" => "\x{41a}"
3095             },
3096             {
3097             "to" => "L",
3098             "from" => "\x{41b}"
3099             },
3100             {
3101             "to" => "M",
3102             "from" => "\x{41c}"
3103             },
3104             {
3105             "to" => "N",
3106             "from" => "\x{41d}"
3107             },
3108             {
3109             "to" => "O",
3110             "from" => "\x{41e}"
3111             },
3112             {
3113             "to" => "P",
3114             "from" => "\x{41f}"
3115             },
3116             {
3117             "to" => "R",
3118             "from" => "\x{420}"
3119             },
3120             {
3121             "to" => "T\x{b7}S",
3122             "from" => "\x{422}\x{421}"
3123             },
3124             {
3125             "to" => "T\x{b7}s",
3126             "from" => "\x{422}\x{441}"
3127             },
3128             {
3129             "to" => "S",
3130             "from" => "\x{421}"
3131             },
3132             {
3133             "to" => "T",
3134             "from" => "\x{422}"
3135             },
3136             {
3137             "to" => "U",
3138             "from" => "\x{423}"
3139             },
3140             {
3141             "to" => "F",
3142             "from" => "\x{424}"
3143             },
3144             {
3145             "to" => "Kh",
3146             "from" => "\x{425}"
3147             },
3148             {
3149             "to" => "Ts",
3150             "from" => "\x{426}"
3151             },
3152             {
3153             "to" => "Sh\x{b7}Ch",
3154             "from" => "\x{428}\x{427}"
3155             },
3156             {
3157             "to" => "Sh\x{b7}ch",
3158             "from" => "\x{428}\x{447}"
3159             },
3160             {
3161             "to" => "Ch",
3162             "from" => "\x{427}"
3163             },
3164             {
3165             "to" => "Sh",
3166             "from" => "\x{428}"
3167             },
3168             {
3169             "to" => "Shch",
3170             "from" => "\x{429}"
3171             },
3172             {
3173             "to" => "''",
3174             "from" => "\x{42a}"
3175             },
3176             {
3177             "to" => "'",
3178             "from" => "\x{42c}"
3179             },
3180             {
3181             "to" => "Yu",
3182             "from" => "\x{42e}"
3183             },
3184             {
3185             "to" => "Ya",
3186             "from" => "\x{42f}"
3187             },
3188             {
3189             "to" => "ye",
3190             "from" => "\x{435}",
3191             "context" => {
3192             "after" => "[AE\x{cb}IOUYe\x{eb}au'\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}\x{b7}]"
3193             }
3194             },
3195             {
3196             "to" => "ye",
3197             "from" => "\x{435}",
3198             "context" => {
3199             "after" => "\\b"
3200             }
3201             },
3202             {
3203             "to" => "e",
3204             "from" => "\x{435}"
3205             },
3206             {
3207             "to" => "y\x{eb}",
3208             "from" => "\x{451}",
3209             "context" => {
3210             "after" => "[AE\x{cb}IOUYe\x{eb}au'\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}\x{b7}]"
3211             }
3212             },
3213             {
3214             "to" => "y\x{eb}",
3215             "from" => "\x{451}",
3216             "context" => {
3217             "after" => "\\b"
3218             }
3219             },
3220             {
3221             "to" => "\x{eb}",
3222             "from" => "\x{451}"
3223             },
3224             {
3225             "to" => "y\x{b7}",
3226             "from" => "\x{439}",
3227             "context" => {
3228             "before" => "[AUYE\x{430}\x{443}\x{44b}\x{44d}]"
3229             }
3230             },
3231             {
3232             "to" => "y",
3233             "from" => "\x{439}"
3234             },
3235             {
3236             "to" => "y\x{b7}",
3237             "from" => "\x{44b}",
3238             "context" => {
3239             "before" => "[AUYE\x{b7}\x{430}\x{443}\x{44b}\x{44d}]"
3240             }
3241             },
3242             {
3243             "to" => "\x{b7}y",
3244             "from" => "\x{44b}",
3245             "context" => {
3246             "after" => "[AE\x{cb}IOUYaue\x{eb}y\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}]"
3247             }
3248             },
3249             {
3250             "to" => "y",
3251             "from" => "\x{44b}"
3252             },
3253             {
3254             "to" => "\x{b7}e",
3255             "from" => "\x{44d}",
3256             "context" => {
3257             "after" => "[BVGDZhKLMNPRSTsFCSc\x{431}\x{432}\x{433}\x{434}\x{436}\x{437}\x{43a}\x{43b}\x{43c}\x{43d}\x{43f}\x{440}\x{441}\x{442}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}]"
3258             }
3259             },
3260             {
3261             "to" => "e",
3262             "from" => "\x{44d}"
3263             },
3264             {
3265             "to" => "a",
3266             "from" => "\x{430}"
3267             },
3268             {
3269             "to" => "b",
3270             "from" => "\x{431}"
3271             },
3272             {
3273             "to" => "v",
3274             "from" => "\x{432}"
3275             },
3276             {
3277             "to" => "g",
3278             "from" => "\x{433}"
3279             },
3280             {
3281             "to" => "d",
3282             "from" => "\x{434}"
3283             },
3284             {
3285             "to" => "zh",
3286             "from" => "\x{436}"
3287             },
3288             {
3289             "to" => "z",
3290             "from" => "\x{437}"
3291             },
3292             {
3293             "to" => "i",
3294             "from" => "\x{438}"
3295             },
3296             {
3297             "to" => "k",
3298             "from" => "\x{43a}"
3299             },
3300             {
3301             "to" => "l",
3302             "from" => "\x{43b}"
3303             },
3304             {
3305             "to" => "m",
3306             "from" => "\x{43c}"
3307             },
3308             {
3309             "to" => "n",
3310             "from" => "\x{43d}"
3311             },
3312             {
3313             "to" => "o",
3314             "from" => "\x{43e}"
3315             },
3316             {
3317             "to" => "p",
3318             "from" => "\x{43f}"
3319             },
3320             {
3321             "to" => "r",
3322             "from" => "\x{440}"
3323             },
3324             {
3325             "to" => "t\x{b7}s",
3326             "from" => "\x{442}\x{441}"
3327             },
3328             {
3329             "to" => "s",
3330             "from" => "\x{441}"
3331             },
3332             {
3333             "to" => "t",
3334             "from" => "\x{442}"
3335             },
3336             {
3337             "to" => "u",
3338             "from" => "\x{443}"
3339             },
3340             {
3341             "to" => "f",
3342             "from" => "\x{444}"
3343             },
3344             {
3345             "to" => "kh",
3346             "from" => "\x{445}"
3347             },
3348             {
3349             "to" => "ts",
3350             "from" => "\x{446}"
3351             },
3352             {
3353             "to" => "sh\x{b7}ch",
3354             "from" => "\x{448}\x{447}"
3355             },
3356             {
3357             "to" => "ch",
3358             "from" => "\x{447}"
3359             },
3360             {
3361             "to" => "sh",
3362             "from" => "\x{448}"
3363             },
3364             {
3365             "to" => "shch",
3366             "from" => "\x{449}"
3367             },
3368             {
3369             "to" => "''",
3370             "from" => "\x{44a}"
3371             },
3372             {
3373             "to" => "'",
3374             "from" => "\x{44c}"
3375             },
3376             {
3377             "to" => "yu",
3378             "from" => "\x{44e}"
3379             },
3380             {
3381             "to" => "ya",
3382             "from" => "\x{44f}"
3383             }
3384             ],
3385             "reverse" => "false"
3386             },
3387             "iso_843" => {
3388             "desc" => "ISO 843:1997 TL (Type 1), Greek to Latin",
3389             "name" => "ISO 843",
3390             "id" => "iso_843",
3391             "rules" => [
3392             {
3393             "to" => "A",
3394             "from" => "\x{391}"
3395             },
3396             {
3397             "to" => "a",
3398             "from" => "\x{3b1}"
3399             },
3400             {
3401             "to" => "V",
3402             "from" => "\x{392}"
3403             },
3404             {
3405             "to" => "v",
3406             "from" => "\x{3b2}"
3407             },
3408             {
3409             "to" => "G",
3410             "from" => "\x{393}"
3411             },
3412             {
3413             "to" => "g",
3414             "from" => "\x{3b3}"
3415             },
3416             {
3417             "to" => "D",
3418             "from" => "\x{394}"
3419             },
3420             {
3421             "to" => "d",
3422             "from" => "\x{3b4}"
3423             },
3424             {
3425             "to" => "E",
3426             "from" => "\x{395}"
3427             },
3428             {
3429             "to" => "e",
3430             "from" => "\x{3b5}"
3431             },
3432             {
3433             "to" => "Z",
3434             "from" => "\x{396}"
3435             },
3436             {
3437             "to" => "z",
3438             "from" => "\x{3b6}"
3439             },
3440             {
3441             "to" => "\x{12a}",
3442             "from" => "\x{397}"
3443             },
3444             {
3445             "to" => "\x{12b}",
3446             "from" => "\x{3b7}"
3447             },
3448             {
3449             "to" => "Th",
3450             "from" => "\x{398}"
3451             },
3452             {
3453             "to" => "th",
3454             "from" => "\x{3b8}"
3455             },
3456             {
3457             "to" => "I",
3458             "from" => "\x{399}"
3459             },
3460             {
3461             "to" => "i",
3462             "from" => "\x{3b9}"
3463             },
3464             {
3465             "to" => "K",
3466             "from" => "\x{39a}"
3467             },
3468             {
3469             "to" => "k",
3470             "from" => "\x{3ba}"
3471             },
3472             {
3473             "to" => "L",
3474             "from" => "\x{39b}"
3475             },
3476             {
3477             "to" => "l",
3478             "from" => "\x{3bb}"
3479             },
3480             {
3481             "to" => "M",
3482             "from" => "\x{39c}"
3483             },
3484             {
3485             "to" => "m",
3486             "from" => "\x{3bc}"
3487             },
3488             {
3489             "to" => "N",
3490             "from" => "\x{39d}"
3491             },
3492             {
3493             "to" => "n",
3494             "from" => "\x{3bd}"
3495             },
3496             {
3497             "to" => "X",
3498             "from" => "\x{39e}"
3499             },
3500             {
3501             "to" => "x",
3502             "from" => "\x{3be}"
3503             },
3504             {
3505             "to" => "O",
3506             "from" => "\x{39f}"
3507             },
3508             {
3509             "to" => "o",
3510             "from" => "\x{3bf}"
3511             },
3512             {
3513             "to" => "P",
3514             "from" => "\x{3a0}"
3515             },
3516             {
3517             "to" => "p",
3518             "from" => "\x{3c0}"
3519             },
3520             {
3521             "to" => "R",
3522             "from" => "\x{3a1}"
3523             },
3524             {
3525             "to" => "r",
3526             "from" => "\x{3c1}"
3527             },
3528             {
3529             "to" => "S",
3530             "from" => "\x{3a3}"
3531             },
3532             {
3533             "to" => "s",
3534             "from" => "\x{3c2}"
3535             },
3536             {
3537             "to" => "s",
3538             "from" => "\x{3c3}"
3539             },
3540             {
3541             "to" => "T",
3542             "from" => "\x{3a4}"
3543             },
3544             {
3545             "to" => "t",
3546             "from" => "\x{3c4}"
3547             },
3548             {
3549             "to" => "Y",
3550             "from" => "\x{3a5}"
3551             },
3552             {
3553             "to" => "y",
3554             "from" => "\x{3c5}"
3555             },
3556             {
3557             "to" => "F",
3558             "from" => "\x{3a6}"
3559             },
3560             {
3561             "to" => "f",
3562             "from" => "\x{3c6}"
3563             },
3564             {
3565             "to" => "Ch",
3566             "from" => "\x{3a7}"
3567             },
3568             {
3569             "to" => "ch",
3570             "from" => "\x{3c7}"
3571             },
3572             {
3573             "to" => "Ps",
3574             "from" => "\x{3a8}"
3575             },
3576             {
3577             "to" => "ps",
3578             "from" => "\x{3c8}"
3579             },
3580             {
3581             "to" => "\x{14c}",
3582             "from" => "\x{3a9}"
3583             },
3584             {
3585             "to" => "\x{14d}",
3586             "from" => "\x{3c9}"
3587             },
3588             {
3589             "to" => "S",
3590             "from" => "\x{3da}"
3591             },
3592             {
3593             "to" => "s",
3594             "from" => "\x{3db}"
3595             },
3596             {
3597             "to" => "W",
3598             "from" => "\x{3dc}"
3599             },
3600             {
3601             "to" => "f",
3602             "from" => "\x{3dd}"
3603             },
3604             {
3605             "to" => "j",
3606             "from" => "\x{3f3}"
3607             },
3608             {
3609             "to" => "\x{b4}",
3610             "from" => "\x{384}"
3611             },
3612             {
3613             "to" => "\x{a8}\x{301}",
3614             "from" => "\x{385}"
3615             },
3616             {
3617             "to" => "\x{302}",
3618             "from" => "\x{342}"
3619             },
3620             {
3621             "to" => "\x{2bc}",
3622             "from" => "\x{343}"
3623             },
3624             {
3625             "to" => "\x{2bc}",
3626             "from" => "\x{313}"
3627             },
3628             {
3629             "to" => "h",
3630             "from" => "\x{314}"
3631             },
3632             {
3633             "to" => "\x{327}",
3634             "from" => "\x{345}"
3635             },
3636             {
3637             "to" => "\x{327}",
3638             "from" => "\x{345}"
3639             },
3640             {
3641             "to" => "\x{c1}",
3642             "from" => "\x{386}"
3643             },
3644             {
3645             "to" => "\x{e1}",
3646             "from" => "\x{3ac}"
3647             },
3648             {
3649             "to" => "\x{c9}",
3650             "from" => "\x{388}"
3651             },
3652             {
3653             "to" => "\x{e9}",
3654             "from" => "\x{3ad}"
3655             },
3656             {
3657             "to" => "\x{12a}\x{301}",
3658             "from" => "\x{389}"
3659             },
3660             {
3661             "to" => "\x{12b}\x{301}",
3662             "from" => "\x{3ae}"
3663             },
3664             {
3665             "to" => "\x{cd}",
3666             "from" => "\x{38a}"
3667             },
3668             {
3669             "to" => "\x{ed}",
3670             "from" => "\x{3af}"
3671             },
3672             {
3673             "to" => "\x{d3}",
3674             "from" => "\x{38c}"
3675             },
3676             {
3677             "to" => "\x{f3}",
3678             "from" => "\x{3cc}"
3679             },
3680             {
3681             "to" => "\x{dd}",
3682             "from" => "\x{38e}"
3683             },
3684             {
3685             "to" => "\x{fd}",
3686             "from" => "\x{3cd}"
3687             },
3688             {
3689             "to" => "\x{1e52}",
3690             "from" => "\x{38f}"
3691             },
3692             {
3693             "to" => "\x{1e53}",
3694             "from" => "\x{3ce}"
3695             },
3696             {
3697             "to" => "\x{cf}",
3698             "from" => "\x{3aa}"
3699             },
3700             {
3701             "to" => "\x{ef}",
3702             "from" => "\x{3ca}"
3703             },
3704             {
3705             "to" => "\x{178}",
3706             "from" => "\x{3ab}"
3707             },
3708             {
3709             "to" => "\x{ff}",
3710             "from" => "\x{3cb}"
3711             },
3712             {
3713             "to" => "\x{1e2f}",
3714             "from" => "\x{390}"
3715             },
3716             {
3717             "to" => "\x{ff}\x{301}",
3718             "from" => "\x{3b0}"
3719             },
3720             {
3721             "to" => "?",
3722             "from" => "\x{37e}",
3723             "context" => {
3724             "after" => "\\b"
3725             }
3726             },
3727             {
3728             "to" => "?",
3729             "from" => ";",
3730             "context" => {
3731             "after" => "\\b"
3732             }
3733             },
3734             {
3735             "to" => ";",
3736             "from" => "\x{b7}"
3737             },
3738             {
3739             "to" => "-",
3740             "from" => "\x{203f}"
3741             }
3742             ],
3743             "reverse" => "false"
3744             },
3745             "din_31634" => {
3746             "desc" => "DIN 31634:1982, Greek to Latin",
3747             "name" => "DIN 31634",
3748             "id" => "din_31634",
3749             "rules" => [
3750             {
3751             "to" => "AU",
3752             "from" => "\x{391}\x{3a5}"
3753             },
3754             {
3755             "to" => "au",
3756             "from" => "\x{3b1}\x{3c5}"
3757             },
3758             {
3759             "to" => "Au",
3760             "from" => "\x{391}\x{3c5}"
3761             },
3762             {
3763             "to" => "A\x{178}",
3764             "from" => "\x{391}\x{3ab}"
3765             },
3766             {
3767             "to" => "a\x{ff}",
3768             "from" => "\x{3b1}\x{3cb}"
3769             },
3770             {
3771             "to" => "NG",
3772             "from" => "\x{393}\x{393}"
3773             },
3774             {
3775             "to" => "ng",
3776             "from" => "\x{3b3}\x{3b3}"
3777             },
3778             {
3779             "to" => "Ng",
3780             "from" => "\x{393}\x{3b3}"
3781             },
3782             {
3783             "to" => "GK",
3784             "from" => "\x{393}\x{39a}",
3785             "context" => {
3786             "after" => "\\b"
3787             }
3788             },
3789             {
3790             "to" => "gk",
3791             "from" => "\x{3b3}\x{3ba}",
3792             "context" => {
3793             "after" => "\\b"
3794             }
3795             },
3796             {
3797             "to" => "Gk",
3798             "from" => "\x{393}\x{3ba}",
3799             "context" => {
3800             "after" => "\\b"
3801             }
3802             },
3803             {
3804             "to" => "NK",
3805             "from" => "\x{393}\x{39a}"
3806             },
3807             {
3808             "to" => "nk",
3809             "from" => "\x{3b3}\x{3ba}"
3810             },
3811             {
3812             "to" => "Nk",
3813             "from" => "\x{393}\x{3ba}"
3814             },
3815             {
3816             "to" => "NX",
3817             "from" => "\x{393}\x{39e}"
3818             },
3819             {
3820             "to" => "nx",
3821             "from" => "\x{3b3}\x{3be}"
3822             },
3823             {
3824             "to" => "Nx",
3825             "from" => "\x{393}\x{3be}"
3826             },
3827             {
3828             "to" => "nch",
3829             "from" => "\x{393}\x{3a7}"
3830             },
3831             {
3832             "to" => "nch",
3833             "from" => "\x{3b3}\x{3c7}"
3834             },
3835             {
3836             "to" => "Nch",
3837             "from" => "\x{393}\x{3c7}"
3838             },
3839             {
3840             "to" => "EU",
3841             "from" => "\x{395}\x{3a5}"
3842             },
3843             {
3844             "to" => "eu",
3845             "from" => "\x{3b5}\x{3c5}"
3846             },
3847             {
3848             "to" => "Eu",
3849             "from" => "\x{395}\x{3c5}"
3850             },
3851             {
3852             "to" => "\x{112}U",
3853             "from" => "\x{397}\x{3a5}"
3854             },
3855             {
3856             "to" => "\x{113}u",
3857             "from" => "\x{3b7}\x{3c5}"
3858             },
3859             {
3860             "to" => "\x{112}u",
3861             "from" => "\x{397}\x{3c5}"
3862             },
3863             {
3864             "to" => "U",
3865             "from" => "\x{39f}\x{3a5}"
3866             },
3867             {
3868             "to" => "u",
3869             "from" => "\x{3bf}\x{3c5}"
3870             },
3871             {
3872             "to" => "U",
3873             "from" => "\x{39f}\x{3c5}"
3874             },
3875             {
3876             "to" => "O\x{178}",
3877             "from" => "\x{39f}\x{3ab}"
3878             },
3879             {
3880             "to" => "o\x{ff}",
3881             "from" => "\x{3bf}\x{3cb}"
3882             },
3883             {
3884             "to" => "A",
3885             "from" => "\x{391}"
3886             },
3887             {
3888             "to" => "a",
3889             "from" => "\x{3b1}"
3890             },
3891             {
3892             "to" => "B",
3893             "from" => "\x{392}"
3894             },
3895             {
3896             "to" => "b",
3897             "from" => "\x{3b2}"
3898             },
3899             {
3900             "to" => "G",
3901             "from" => "\x{393}"
3902             },
3903             {
3904             "to" => "g",
3905             "from" => "\x{3b3}"
3906             },
3907             {
3908             "to" => "D",
3909             "from" => "\x{394}"
3910             },
3911             {
3912             "to" => "d",
3913             "from" => "\x{3b4}"
3914             },
3915             {
3916             "to" => "E",
3917             "from" => "\x{395}"
3918             },
3919             {
3920             "to" => "e",
3921             "from" => "\x{3b5}"
3922             },
3923             {
3924             "to" => "Z",
3925             "from" => "\x{396}"
3926             },
3927             {
3928             "to" => "z",
3929             "from" => "\x{3b6}"
3930             },
3931             {
3932             "to" => "\x{112}",
3933             "from" => "\x{397}"
3934             },
3935             {
3936             "to" => "\x{113}",
3937             "from" => "\x{3b7}"
3938             },
3939             {
3940             "to" => "Th",
3941             "from" => "\x{398}"
3942             },
3943             {
3944             "to" => "th",
3945             "from" => "\x{3b8}"
3946             },
3947             {
3948             "to" => "th",
3949             "from" => "\x{3d1}"
3950             },
3951             {
3952             "to" => "I",
3953             "from" => "\x{399}"
3954             },
3955             {
3956             "to" => "i",
3957             "from" => "\x{3b9}"
3958             },
3959             {
3960             "to" => "K",
3961             "from" => "\x{39a}"
3962             },
3963             {
3964             "to" => "k",
3965             "from" => "\x{3ba}"
3966             },
3967             {
3968             "to" => "L",
3969             "from" => "\x{39b}"
3970             },
3971             {
3972             "to" => "l",
3973             "from" => "\x{3bb}"
3974             },
3975             {
3976             "to" => "M",
3977             "from" => "\x{39c}"
3978             },
3979             {
3980             "to" => "m",
3981             "from" => "\x{3bc}"
3982             },
3983             {
3984             "to" => "N",
3985             "from" => "\x{39d}"
3986             },
3987             {
3988             "to" => "n",
3989             "from" => "\x{3bd}"
3990             },
3991             {
3992             "to" => "X",
3993             "from" => "\x{39e}"
3994             },
3995             {
3996             "to" => "x",
3997             "from" => "\x{3be}"
3998             },
3999             {
4000             "to" => "O",
4001             "from" => "\x{39f}"
4002             },
4003             {
4004             "to" => "o",
4005             "from" => "\x{3bf}"
4006             },
4007             {
4008             "to" => "P",
4009             "from" => "\x{3a0}"
4010             },
4011             {
4012             "to" => "p",
4013             "from" => "\x{3c0}"
4014             },
4015             {
4016             "to" => "R",
4017             "from" => "\x{3a1}"
4018             },
4019             {
4020             "to" => "r",
4021             "from" => "\x{3c1}"
4022             },
4023             {
4024             "to" => "S",
4025             "from" => "\x{3a3}"
4026             },
4027             {
4028             "to" => "s",
4029             "from" => "\x{3c3}"
4030             },
4031             {
4032             "to" => "s",
4033             "from" => "\x{3c2}",
4034             "context" => {
4035             "before" => "\\b"
4036             }
4037             },
4038             {
4039             "to" => "T",
4040             "from" => "\x{3a4}"
4041             },
4042             {
4043             "to" => "t",
4044             "from" => "\x{3c4}"
4045             },
4046             {
4047             "to" => "Y",
4048             "from" => "\x{3a5}"
4049             },
4050             {
4051             "to" => "y",
4052             "from" => "\x{3c5}"
4053             },
4054             {
4055             "to" => "Ph",
4056             "from" => "\x{3a6}"
4057             },
4058             {
4059             "to" => "ph",
4060             "from" => "\x{3c6}"
4061             },
4062             {
4063             "to" => "ph",
4064             "from" => "\x{3d5}"
4065             },
4066             {
4067             "to" => "Ch",
4068             "from" => "\x{3a7}"
4069             },
4070             {
4071             "to" => "ch",
4072             "from" => "\x{3c7}"
4073             },
4074             {
4075             "to" => "Ps",
4076             "from" => "\x{3a8}"
4077             },
4078             {
4079             "to" => "ps",
4080             "from" => "\x{3c8}"
4081             },
4082             {
4083             "to" => "\x{14c}",
4084             "from" => "\x{3a9}"
4085             },
4086             {
4087             "to" => "\x{14d}",
4088             "from" => "\x{3c9}"
4089             },
4090             {
4091             "to" => "A",
4092             "from" => "\x{386}"
4093             },
4094             {
4095             "to" => "a",
4096             "from" => "\x{3ac}"
4097             },
4098             {
4099             "to" => "E",
4100             "from" => "\x{388}"
4101             },
4102             {
4103             "to" => "e",
4104             "from" => "\x{3ad}"
4105             },
4106             {
4107             "to" => "\x{112}",
4108             "from" => "\x{389}"
4109             },
4110             {
4111             "to" => "\x{113}",
4112             "from" => "\x{3ae}"
4113             },
4114             {
4115             "to" => "I",
4116             "from" => "\x{38a}"
4117             },
4118             {
4119             "to" => "i",
4120             "from" => "\x{3af}"
4121             },
4122             {
4123             "to" => "I",
4124             "from" => "\x{3aa}"
4125             },
4126             {
4127             "to" => "i",
4128             "from" => "\x{3ca}"
4129             },
4130             {
4131             "to" => "i",
4132             "from" => "\x{390}"
4133             },
4134             {
4135             "to" => "O",
4136             "from" => "\x{38c}"
4137             },
4138             {
4139             "to" => "o",
4140             "from" => "\x{3cc}"
4141             },
4142             {
4143             "to" => "Y",
4144             "from" => "\x{38e}"
4145             },
4146             {
4147             "to" => "y",
4148             "from" => "\x{3cd}"
4149             },
4150             {
4151             "to" => "Y",
4152             "from" => "\x{3ab}"
4153             },
4154             {
4155             "to" => "y",
4156             "from" => "\x{3cb}"
4157             },
4158             {
4159             "to" => "y",
4160             "from" => "\x{3b0}"
4161             },
4162             {
4163             "to" => "\x{14c}",
4164             "from" => "\x{38f}"
4165             },
4166             {
4167             "to" => "\x{14d}",
4168             "from" => "\x{3ce}"
4169             },
4170             {
4171             "to" => "?",
4172             "from" => "\x{37e}"
4173             },
4174             {
4175             "to" => "?",
4176             "from" => ";"
4177             },
4178             {
4179             "to" => ";",
4180             "from" => "\x{b7}"
4181             },
4182             {
4183             "to" => "",
4184             "from" => "\x{384}"
4185             },
4186             {
4187             "to" => "",
4188             "from" => "\x{385}"
4189             },
4190             {
4191             "to" => "",
4192             "from" => "\x{342}"
4193             },
4194             {
4195             "to" => "",
4196             "from" => "\x{343}"
4197             },
4198             {
4199             "to" => "",
4200             "from" => "\x{313}"
4201             },
4202             {
4203             "to" => "",
4204             "from" => "\x{314}"
4205             },
4206             {
4207             "to" => "",
4208             "from" => "\x{345}"
4209             },
4210             {
4211             "to" => "",
4212             "from" => "\x{345}"
4213             }
4214             ],
4215             "reverse" => "false"
4216             },
4217             "common_ces" => {
4218             "desc" => "Czech without diacritics",
4219             "name" => "Common CES",
4220             "id" => "common_ces",
4221             "rules" => [
4222             {
4223             "to" => "A",
4224             "from" => "\x{c1}"
4225             },
4226             {
4227             "to" => "a",
4228             "from" => "\x{e1}"
4229             },
4230             {
4231             "to" => "C",
4232             "from" => "\x{10c}"
4233             },
4234             {
4235             "to" => "c",
4236             "from" => "\x{10d}"
4237             },
4238             {
4239             "to" => "D",
4240             "from" => "\x{10e}"
4241             },
4242             {
4243             "to" => "d",
4244             "from" => "\x{10f}"
4245             },
4246             {
4247             "to" => "d",
4248             "from" => "d\x{30c}"
4249             },
4250             {
4251             "to" => "E",
4252             "from" => "\x{c9}"
4253             },
4254             {
4255             "to" => "e",
4256             "from" => "\x{e9}"
4257             },
4258             {
4259             "to" => "E",
4260             "from" => "\x{11a}"
4261             },
4262             {
4263             "to" => "e",
4264             "from" => "\x{11b}"
4265             },
4266             {
4267             "to" => "I",
4268             "from" => "\x{cd}"
4269             },
4270             {
4271             "to" => "i",
4272             "from" => "\x{ed}"
4273             },
4274             {
4275             "to" => "N",
4276             "from" => "\x{147}"
4277             },
4278             {
4279             "to" => "n",
4280             "from" => "\x{148}"
4281             },
4282             {
4283             "to" => "O",
4284             "from" => "\x{d3}"
4285             },
4286             {
4287             "to" => "o",
4288             "from" => "\x{f3}"
4289             },
4290             {
4291             "to" => "R",
4292             "from" => "\x{158}"
4293             },
4294             {
4295             "to" => "r",
4296             "from" => "\x{159}"
4297             },
4298             {
4299             "to" => "S",
4300             "from" => "\x{160}"
4301             },
4302             {
4303             "to" => "s",
4304             "from" => "\x{161}"
4305             },
4306             {
4307             "to" => "T",
4308             "from" => "\x{164}"
4309             },
4310             {
4311             "to" => "t",
4312             "from" => "\x{165}"
4313             },
4314             {
4315             "to" => "t",
4316             "from" => "t\x{30c};"
4317             },
4318             {
4319             "to" => "U",
4320             "from" => "\x{da}"
4321             },
4322             {
4323             "to" => "u",
4324             "from" => "\x{fa}"
4325             },
4326             {
4327             "to" => "U",
4328             "from" => "\x{16e}"
4329             },
4330             {
4331             "to" => "u",
4332             "from" => "\x{16f}"
4333             },
4334             {
4335             "to" => "Y",
4336             "from" => "\x{dd}"
4337             },
4338             {
4339             "to" => "y",
4340             "from" => "\x{fd}"
4341             },
4342             {
4343             "to" => "Z",
4344             "from" => "\x{17d}"
4345             },
4346             {
4347             "to" => "z",
4348             "from" => "\x{17e}"
4349             }
4350             ],
4351             "reverse" => "false"
4352             },
4353             "din_1460_ukr" => {
4354             "desc" => "DIN 1460:1982, Cyrillic to Latin, Ukrainian",
4355             "name" => "DIN 1460 UKR",
4356             "id" => "din_1460_ukr",
4357             "rules" => [
4358             {
4359             "to" => "je",
4360             "from" => "\x{454}"
4361             },
4362             {
4363             "to" => "JE",
4364             "from" => "\x{404}",
4365             "context" => {
4366             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
4367             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
4368             }
4369             },
4370             {
4371             "to" => "Je",
4372             "from" => "\x{404}"
4373             },
4374             {
4375             "to" => "ch",
4376             "from" => "\x{445}"
4377             },
4378             {
4379             "to" => "CH",
4380             "from" => "\x{425}",
4381             "context" => {
4382             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
4383             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
4384             }
4385             },
4386             {
4387             "to" => "Ch",
4388             "from" => "\x{425}"
4389             },
4390             {
4391             "to" => "\x{161}\x{10d}",
4392             "from" => "\x{449}"
4393             },
4394             {
4395             "to" => "\x{160}\x{10c}",
4396             "from" => "\x{429}",
4397             "context" => {
4398             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
4399             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
4400             }
4401             },
4402             {
4403             "to" => "\x{160}\x{10d}",
4404             "from" => "\x{429}"
4405             },
4406             {
4407             "to" => "ju",
4408             "from" => "\x{44e}"
4409             },
4410             {
4411             "to" => "JU",
4412             "from" => "\x{42e}",
4413             "context" => {
4414             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
4415             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
4416             }
4417             },
4418             {
4419             "to" => "Ju",
4420             "from" => "\x{42e}"
4421             },
4422             {
4423             "to" => "ja",
4424             "from" => "\x{44f}"
4425             },
4426             {
4427             "to" => "JA",
4428             "from" => "\x{42f}",
4429             "context" => {
4430             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
4431             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
4432             }
4433             },
4434             {
4435             "to" => "Ja",
4436             "from" => "\x{42f}"
4437             },
4438             {
4439             "to" => "J-",
4440             "from" => "\x{419}",
4441             "context" => {
4442             "before" => "[aueAUE\x{430}\x{443}\x{435}\x{410}\x{423}\x{415}]"
4443             }
4444             },
4445             {
4446             "to" => "j-",
4447             "from" => "\x{439}",
4448             "context" => {
4449             "before" => "[aue\x{430}\x{443}\x{435}]"
4450             }
4451             },
4452             {
4453             "to" => "\x{160}-",
4454             "from" => "\x{428}",
4455             "context" => {
4456             "before" => "[\x{10c}\x{10d}\x{427}\x{447}]"
4457             }
4458             },
4459             {
4460             "to" => "\x{161}-",
4461             "from" => "\x{448}",
4462             "context" => {
4463             "before" => "[\x{10d}\x{447}]"
4464             }
4465             },
4466             {
4467             "to" => "c-",
4468             "from" => "\x{446}",
4469             "context" => {
4470             "before" => "[h\x{433}]"
4471             }
4472             },
4473             {
4474             "to" => "C-",
4475             "from" => "\x{426}",
4476             "context" => {
4477             "before" => "[hH\x{433}\x{413}]"
4478             }
4479             },
4480             {
4481             "to" => "a",
4482             "from" => "\x{430}"
4483             },
4484             {
4485             "to" => "A",
4486             "from" => "\x{410}"
4487             },
4488             {
4489             "to" => "b",
4490             "from" => "\x{431}"
4491             },
4492             {
4493             "to" => "B",
4494             "from" => "\x{411}"
4495             },
4496             {
4497             "to" => "v",
4498             "from" => "\x{432}"
4499             },
4500             {
4501             "to" => "V",
4502             "from" => "\x{412}"
4503             },
4504             {
4505             "to" => "h",
4506             "from" => "\x{433}"
4507             },
4508             {
4509             "to" => "H",
4510             "from" => "\x{413}"
4511             },
4512             {
4513             "to" => "g",
4514             "from" => "\x{491}"
4515             },
4516             {
4517             "to" => "G",
4518             "from" => "\x{490}"
4519             },
4520             {
4521             "to" => "d",
4522             "from" => "\x{434}"
4523             },
4524             {
4525             "to" => "D",
4526             "from" => "\x{414}"
4527             },
4528             {
4529             "to" => "e",
4530             "from" => "\x{435}"
4531             },
4532             {
4533             "to" => "E",
4534             "from" => "\x{415}"
4535             },
4536             {
4537             "to" => "\x{17e}",
4538             "from" => "\x{436}"
4539             },
4540             {
4541             "to" => "\x{17d}",
4542             "from" => "\x{416}"
4543             },
4544             {
4545             "to" => "z",
4546             "from" => "\x{437}"
4547             },
4548             {
4549             "to" => "Z",
4550             "from" => "\x{417}"
4551             },
4552             {
4553             "to" => "y",
4554             "from" => "\x{438}"
4555             },
4556             {
4557             "to" => "Y",
4558             "from" => "\x{418}"
4559             },
4560             {
4561             "to" => "i",
4562             "from" => "\x{456}"
4563             },
4564             {
4565             "to" => "I",
4566             "from" => "\x{406}"
4567             },
4568             {
4569             "to" => "\x{ef}",
4570             "from" => "\x{457}"
4571             },
4572             {
4573             "to" => "\x{cf}",
4574             "from" => "\x{407}"
4575             },
4576             {
4577             "to" => "j",
4578             "from" => "\x{439}"
4579             },
4580             {
4581             "to" => "J",
4582             "from" => "\x{419}"
4583             },
4584             {
4585             "to" => "k",
4586             "from" => "\x{43a}"
4587             },
4588             {
4589             "to" => "K",
4590             "from" => "\x{41a}"
4591             },
4592             {
4593             "to" => "l",
4594             "from" => "\x{43b}"
4595             },
4596             {
4597             "to" => "L",
4598             "from" => "\x{41b}"
4599             },
4600             {
4601             "to" => "m",
4602             "from" => "\x{43c}"
4603             },
4604             {
4605             "to" => "M",
4606             "from" => "\x{41c}"
4607             },
4608             {
4609             "to" => "n",
4610             "from" => "\x{43d}"
4611             },
4612             {
4613             "to" => "N",
4614             "from" => "\x{41d}"
4615             },
4616             {
4617             "to" => "o",
4618             "from" => "\x{43e}"
4619             },
4620             {
4621             "to" => "O",
4622             "from" => "\x{41e}"
4623             },
4624             {
4625             "to" => "p",
4626             "from" => "\x{43f}"
4627             },
4628             {
4629             "to" => "P",
4630             "from" => "\x{41f}"
4631             },
4632             {
4633             "to" => "r",
4634             "from" => "\x{440}"
4635             },
4636             {
4637             "to" => "R",
4638             "from" => "\x{420}"
4639             },
4640             {
4641             "to" => "s",
4642             "from" => "\x{441}"
4643             },
4644             {
4645             "to" => "S",
4646             "from" => "\x{421}"
4647             },
4648             {
4649             "to" => "t",
4650             "from" => "\x{442}"
4651             },
4652             {
4653             "to" => "T",
4654             "from" => "\x{422}"
4655             },
4656             {
4657             "to" => "u",
4658             "from" => "\x{443}"
4659             },
4660             {
4661             "to" => "U",
4662             "from" => "\x{423}"
4663             },
4664             {
4665             "to" => "f",
4666             "from" => "\x{444}"
4667             },
4668             {
4669             "to" => "F",
4670             "from" => "\x{424}"
4671             },
4672             {
4673             "to" => "c",
4674             "from" => "\x{446}"
4675             },
4676             {
4677             "to" => "C",
4678             "from" => "\x{426}"
4679             },
4680             {
4681             "to" => "\x{10d}",
4682             "from" => "\x{447}"
4683             },
4684             {
4685             "to" => "\x{10c}",
4686             "from" => "\x{427}"
4687             },
4688             {
4689             "to" => "\x{161}",
4690             "from" => "\x{448}"
4691             },
4692             {
4693             "to" => "\x{160}",
4694             "from" => "\x{428}"
4695             },
4696             {
4697             "to" => "'",
4698             "from" => "\x{42c}",
4699             "context" => {
4700             "after" => "\\p{IsUpper}"
4701             }
4702             },
4703             {
4704             "to" => "'",
4705             "from" => "\x{44c}"
4706             },
4707             {
4708             "to" => "\x{2ee}",
4709             "from" => "\x{2bc}"
4710             }
4711             ],
4712             "reverse" => "true"
4713             },
4714             "bgn/pcgn_rus_standard" => {
4715             "desc" => "BGN/PCGN:1947 (Standard Variant), Cyrillic to Latin, Russian",
4716             "name" => "BGN/PCGN RUS Standard",
4717             "id" => "bgn/pcgn_rus_standard",
4718             "rules" => [
4719             {
4720             "to" => "",
4721             "from" => "\x{301}"
4722             },
4723             {
4724             "to" => "Ye",
4725             "from" => "\x{415}",
4726             "context" => {
4727             "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{42c}\x{42a}\x{410}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}]"
4728             }
4729             },
4730             {
4731             "to" => "Ye",
4732             "from" => "\x{415}",
4733             "context" => {
4734             "after" => "\\b"
4735             }
4736             },
4737             {
4738             "to" => "E",
4739             "from" => "\x{415}"
4740             },
4741             {
4742             "to" => "Y\x{eb}",
4743             "from" => "\x{401}",
4744             "context" => {
4745             "after" => "[\x{410}\x{415}\x{401}\x{418}\x{41e}\x{423}\x{42b}\x{42d}\x{42e}\x{42f}\x{419}\x{42c}\x{42a}\x{410}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}e]"
4746             }
4747             },
4748             {
4749             "to" => "Y\x{eb}",
4750             "from" => "\x{401}",
4751             "context" => {
4752             "after" => "\\b"
4753             }
4754             },
4755             {
4756             "to" => "\x{cb}",
4757             "from" => "\x{401}"
4758             },
4759             {
4760             "to" => "Y",
4761             "from" => "\x{419}"
4762             },
4763             {
4764             "to" => "Y",
4765             "from" => "\x{42b}"
4766             },
4767             {
4768             "to" => "E",
4769             "from" => "\x{42d}"
4770             },
4771             {
4772             "to" => "A",
4773             "from" => "\x{410}"
4774             },
4775             {
4776             "to" => "B",
4777             "from" => "\x{411}"
4778             },
4779             {
4780             "to" => "V",
4781             "from" => "\x{412}"
4782             },
4783             {
4784             "to" => "G",
4785             "from" => "\x{413}"
4786             },
4787             {
4788             "to" => "D",
4789             "from" => "\x{414}"
4790             },
4791             {
4792             "to" => "Zh",
4793             "from" => "\x{416}"
4794             },
4795             {
4796             "to" => "Z",
4797             "from" => "\x{417}"
4798             },
4799             {
4800             "to" => "I",
4801             "from" => "\x{418}"
4802             },
4803             {
4804             "to" => "K",
4805             "from" => "\x{41a}"
4806             },
4807             {
4808             "to" => "L",
4809             "from" => "\x{41b}"
4810             },
4811             {
4812             "to" => "M",
4813             "from" => "\x{41c}"
4814             },
4815             {
4816             "to" => "N",
4817             "from" => "\x{41d}"
4818             },
4819             {
4820             "to" => "O",
4821             "from" => "\x{41e}"
4822             },
4823             {
4824             "to" => "P",
4825             "from" => "\x{41f}"
4826             },
4827             {
4828             "to" => "R",
4829             "from" => "\x{420}"
4830             },
4831             {
4832             "to" => "S",
4833             "from" => "\x{421}"
4834             },
4835             {
4836             "to" => "T",
4837             "from" => "\x{422}"
4838             },
4839             {
4840             "to" => "U",
4841             "from" => "\x{423}"
4842             },
4843             {
4844             "to" => "F",
4845             "from" => "\x{424}"
4846             },
4847             {
4848             "to" => "Kh",
4849             "from" => "\x{425}"
4850             },
4851             {
4852             "to" => "Ts",
4853             "from" => "\x{426}"
4854             },
4855             {
4856             "to" => "Ch",
4857             "from" => "\x{427}"
4858             },
4859             {
4860             "to" => "Sh",
4861             "from" => "\x{428}"
4862             },
4863             {
4864             "to" => "Shch",
4865             "from" => "\x{429}"
4866             },
4867             {
4868             "to" => "''",
4869             "from" => "\x{42a}"
4870             },
4871             {
4872             "to" => "'",
4873             "from" => "\x{42c}"
4874             },
4875             {
4876             "to" => "Yu",
4877             "from" => "\x{42e}"
4878             },
4879             {
4880             "to" => "Ya",
4881             "from" => "\x{42f}"
4882             },
4883             {
4884             "to" => "ye",
4885             "from" => "\x{435}",
4886             "context" => {
4887             "after" => "[AE\x{cb}IOUYe\x{eb}au'\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}]"
4888             }
4889             },
4890             {
4891             "to" => "ye",
4892             "from" => "\x{435}",
4893             "context" => {
4894             "after" => "\\b"
4895             }
4896             },
4897             {
4898             "to" => "e",
4899             "from" => "\x{435}"
4900             },
4901             {
4902             "to" => "y\x{eb}",
4903             "from" => "\x{451}",
4904             "context" => {
4905             "after" => "[AE\x{cb}IOUYe\x{eb}au'\x{430}\x{435}\x{451}\x{438}\x{43e}\x{443}\x{44b}\x{44d}\x{44e}\x{44f}\x{439}\x{44c}\x{44a}]"
4906             }
4907             },
4908             {
4909             "to" => "y\x{eb}",
4910             "from" => "\x{451}",
4911             "context" => {
4912             "after" => "\\b"
4913             }
4914             },
4915             {
4916             "to" => "\x{eb}",
4917             "from" => "\x{451}"
4918             },
4919             {
4920             "to" => "y",
4921             "from" => "\x{439}"
4922             },
4923             {
4924             "to" => "y",
4925             "from" => "\x{44b}"
4926             },
4927             {
4928             "to" => "e",
4929             "from" => "\x{44d}"
4930             },
4931             {
4932             "to" => "a",
4933             "from" => "\x{430}"
4934             },
4935             {
4936             "to" => "b",
4937             "from" => "\x{431}"
4938             },
4939             {
4940             "to" => "v",
4941             "from" => "\x{432}"
4942             },
4943             {
4944             "to" => "g",
4945             "from" => "\x{433}"
4946             },
4947             {
4948             "to" => "d",
4949             "from" => "\x{434}"
4950             },
4951             {
4952             "to" => "zh",
4953             "from" => "\x{436}"
4954             },
4955             {
4956             "to" => "z",
4957             "from" => "\x{437}"
4958             },
4959             {
4960             "to" => "i",
4961             "from" => "\x{438}"
4962             },
4963             {
4964             "to" => "k",
4965             "from" => "\x{43a}"
4966             },
4967             {
4968             "to" => "l",
4969             "from" => "\x{43b}"
4970             },
4971             {
4972             "to" => "m",
4973             "from" => "\x{43c}"
4974             },
4975             {
4976             "to" => "n",
4977             "from" => "\x{43d}"
4978             },
4979             {
4980             "to" => "o",
4981             "from" => "\x{43e}"
4982             },
4983             {
4984             "to" => "p",
4985             "from" => "\x{43f}"
4986             },
4987             {
4988             "to" => "r",
4989             "from" => "\x{440}"
4990             },
4991             {
4992             "to" => "s",
4993             "from" => "\x{441}"
4994             },
4995             {
4996             "to" => "t",
4997             "from" => "\x{442}"
4998             },
4999             {
5000             "to" => "u",
5001             "from" => "\x{443}"
5002             },
5003             {
5004             "to" => "f",
5005             "from" => "\x{444}"
5006             },
5007             {
5008             "to" => "kh",
5009             "from" => "\x{445}"
5010             },
5011             {
5012             "to" => "ts",
5013             "from" => "\x{446}"
5014             },
5015             {
5016             "to" => "ch",
5017             "from" => "\x{447}"
5018             },
5019             {
5020             "to" => "sh",
5021             "from" => "\x{448}"
5022             },
5023             {
5024             "to" => "shch",
5025             "from" => "\x{449}"
5026             },
5027             {
5028             "to" => "''",
5029             "from" => "\x{44a}"
5030             },
5031             {
5032             "to" => "'",
5033             "from" => "\x{44c}"
5034             },
5035             {
5036             "to" => "yu",
5037             "from" => "\x{44e}"
5038             },
5039             {
5040             "to" => "ya",
5041             "from" => "\x{44f}"
5042             }
5043             ],
5044             "reverse" => "false"
5045             },
5046             "iast_devanagari" => {
5047             "desc" => "IAST to Devan\x{101}gar\x{12b}",
5048             "name" => "IAST Devanagari",
5049             "id" => "iast_devanagari",
5050             "rules" => [
5051             {
5052             "to" => "\x{950}",
5053             "from" => "o\x{1e41}"
5054             },
5055             {
5056             "to" => "\x{950}",
5057             "from" => "O\x{1e41}"
5058             },
5059             {
5060             "to" => "\x{902}",
5061             "from" => "\x{1e43}"
5062             },
5063             {
5064             "to" => "\x{903}",
5065             "from" => "\x{1e25}"
5066             },
5067             {
5068             "to" => "\x{916}\x{94d}",
5069             "from" => "kh"
5070             },
5071             {
5072             "to" => "\x{916}\x{94d}",
5073             "from" => "Kh"
5074             },
5075             {
5076             "to" => "\x{915}\x{94d}",
5077             "from" => "K"
5078             },
5079             {
5080             "to" => "\x{915}\x{94d}",
5081             "from" => "k"
5082             },
5083             {
5084             "to" => "\x{918}\x{94d}",
5085             "from" => "gh"
5086             },
5087             {
5088             "to" => "\x{918}\x{94d}",
5089             "from" => "Gh"
5090             },
5091             {
5092             "to" => "\x{917}\x{94d}",
5093             "from" => "G"
5094             },
5095             {
5096             "to" => "\x{917}\x{94d}",
5097             "from" => "g"
5098             },
5099             {
5100             "to" => "\x{919}\x{94d}",
5101             "from" => "\x{1e44}"
5102             },
5103             {
5104             "to" => "\x{919}\x{94d}",
5105             "from" => "\x{1e45}"
5106             },
5107             {
5108             "to" => "\x{91b}\x{94d}",
5109             "from" => "ch"
5110             },
5111             {
5112             "to" => "\x{91b}\x{94d}",
5113             "from" => "Ch"
5114             },
5115             {
5116             "to" => "\x{91a}\x{94d}",
5117             "from" => "C"
5118             },
5119             {
5120             "to" => "\x{91a}\x{94d}",
5121             "from" => "c"
5122             },
5123             {
5124             "to" => "\x{91d}\x{94d}",
5125             "from" => "jh"
5126             },
5127             {
5128             "to" => "\x{91d}\x{94d}",
5129             "from" => "Jh"
5130             },
5131             {
5132             "to" => "\x{91c}\x{94d}",
5133             "from" => "J"
5134             },
5135             {
5136             "to" => "\x{91c}\x{94d}",
5137             "from" => "j"
5138             },
5139             {
5140             "to" => "\x{91e}\x{94d}",
5141             "from" => "\x{d1}"
5142             },
5143             {
5144             "to" => "\x{91e}\x{94d}",
5145             "from" => "\x{f1}"
5146             },
5147             {
5148             "to" => "\x{920}\x{94d}",
5149             "from" => "\x{1e6d}h"
5150             },
5151             {
5152             "to" => "\x{920}\x{94d}",
5153             "from" => "\x{1e6c}h"
5154             },
5155             {
5156             "to" => "\x{91f}\x{94d}",
5157             "from" => "\x{1e6c}"
5158             },
5159             {
5160             "to" => "\x{91f}\x{94d}",
5161             "from" => "\x{1e6d}"
5162             },
5163             {
5164             "to" => "\x{922}\x{94d}",
5165             "from" => "\x{1e0d}h"
5166             },
5167             {
5168             "to" => "\x{922}\x{94d}",
5169             "from" => "\x{1e0c}h"
5170             },
5171             {
5172             "to" => "\x{921}\x{94d}",
5173             "from" => "\x{1e0c}"
5174             },
5175             {
5176             "to" => "\x{921}\x{94d}",
5177             "from" => "\x{1e0d}"
5178             },
5179             {
5180             "to" => "\x{923}\x{94d}",
5181             "from" => "\x{1e46}"
5182             },
5183             {
5184             "to" => "\x{923}\x{94d}",
5185             "from" => "\x{1e47}"
5186             },
5187             {
5188             "to" => "\x{925}\x{94d}",
5189             "from" => "th"
5190             },
5191             {
5192             "to" => "\x{925}\x{94d}",
5193             "from" => "Th"
5194             },
5195             {
5196             "to" => "\x{924}\x{94d}",
5197             "from" => "T"
5198             },
5199             {
5200             "to" => "\x{924}\x{94d}",
5201             "from" => "t"
5202             },
5203             {
5204             "to" => "\x{927}\x{94d}",
5205             "from" => "dh"
5206             },
5207             {
5208             "to" => "\x{927}\x{94d}",
5209             "from" => "Dh"
5210             },
5211             {
5212             "to" => "\x{926}\x{94d}",
5213             "from" => "D"
5214             },
5215             {
5216             "to" => "\x{926}\x{94d}",
5217             "from" => "d"
5218             },
5219             {
5220             "to" => "\x{928}\x{94d}",
5221             "from" => "N"
5222             },
5223             {
5224             "to" => "\x{928}\x{94d}",
5225             "from" => "n"
5226             },
5227             {
5228             "to" => "\x{92b}\x{94d}",
5229             "from" => "ph"
5230             },
5231             {
5232             "to" => "\x{92b}\x{94d}",
5233             "from" => "Ph"
5234             },
5235             {
5236             "to" => "\x{92a}\x{94d}",
5237             "from" => "P"
5238             },
5239             {
5240             "to" => "\x{92a}\x{94d}",
5241             "from" => "p"
5242             },
5243             {
5244             "to" => "\x{92d}\x{94d}",
5245             "from" => "bh"
5246             },
5247             {
5248             "to" => "\x{92d}\x{94d}",
5249             "from" => "Bh"
5250             },
5251             {
5252             "to" => "\x{92c}\x{94d}",
5253             "from" => "B"
5254             },
5255             {
5256             "to" => "\x{92c}\x{94d}",
5257             "from" => "b"
5258             },
5259             {
5260             "to" => "\x{92e}\x{94d}",
5261             "from" => "M"
5262             },
5263             {
5264             "to" => "\x{92e}\x{94d}",
5265             "from" => "m"
5266             },
5267             {
5268             "to" => "\x{92f}\x{94d}",
5269             "from" => "Y"
5270             },
5271             {
5272             "to" => "\x{92f}\x{94d}",
5273             "from" => "y"
5274             },
5275             {
5276             "to" => "\x{930}\x{94d}",
5277             "from" => "R"
5278             },
5279             {
5280             "to" => "\x{930}\x{94d}",
5281             "from" => "r"
5282             },
5283             {
5284             "to" => "\x{932}\x{94d}",
5285             "from" => "L"
5286             },
5287             {
5288             "to" => "\x{932}\x{94d}",
5289             "from" => "l"
5290             },
5291             {
5292             "to" => "\x{935}\x{94d}",
5293             "from" => "V"
5294             },
5295             {
5296             "to" => "\x{935}\x{94d}",
5297             "from" => "v"
5298             },
5299             {
5300             "to" => "\x{936}\x{94d}",
5301             "from" => "\x{15a}"
5302             },
5303             {
5304             "to" => "\x{936}\x{94d}",
5305             "from" => "\x{15b}"
5306             },
5307             {
5308             "to" => "\x{937}\x{94d}",
5309             "from" => "\x{1e62}"
5310             },
5311             {
5312             "to" => "\x{937}\x{94d}",
5313             "from" => "\x{1e63}"
5314             },
5315             {
5316             "to" => "\x{938}\x{94d}",
5317             "from" => "S"
5318             },
5319             {
5320             "to" => "\x{938}\x{94d}",
5321             "from" => "s"
5322             },
5323             {
5324             "to" => "\x{939}\x{94d}",
5325             "from" => "H"
5326             },
5327             {
5328             "to" => "\x{939}\x{94d}",
5329             "from" => "h"
5330             },
5331             {
5332             "to" => "\x{948}",
5333             "from" => "\x{94d}ai"
5334             },
5335             {
5336             "to" => "\x{94c}",
5337             "from" => "\x{94d}au"
5338             },
5339             {
5340             "to" => "",
5341             "from" => "\x{94d}a"
5342             },
5343             {
5344             "to" => "\x{93e}",
5345             "from" => "\x{94d}\x{101}"
5346             },
5347             {
5348             "to" => "\x{93f}",
5349             "from" => "\x{94d}i"
5350             },
5351             {
5352             "to" => "\x{940}",
5353             "from" => "\x{94d}\x{12b}"
5354             },
5355             {
5356             "to" => "\x{941}",
5357             "from" => "\x{94d}u"
5358             },
5359             {
5360             "to" => "\x{942}",
5361             "from" => "\x{94d}\x{16b}"
5362             },
5363             {
5364             "to" => "\x{943}",
5365             "from" => "\x{94d}\x{1e5b}"
5366             },
5367             {
5368             "to" => "\x{944}",
5369             "from" => "\x{94d}\x{1e5d}"
5370             },
5371             {
5372             "to" => "\x{962}",
5373             "from" => "\x{94d}\x{1e37}"
5374             },
5375             {
5376             "to" => "\x{963}",
5377             "from" => "\x{94d}\x{1e39}"
5378             },
5379             {
5380             "to" => "\x{947}",
5381             "from" => "\x{94d}e"
5382             },
5383             {
5384             "to" => "\x{94b}",
5385             "from" => "\x{94d}o"
5386             },
5387             {
5388             "to" => "\x{93d}",
5389             "from" => "'"
5390             },
5391             {
5392             "to" => "\x{910}",
5393             "from" => "ai"
5394             },
5395             {
5396             "to" => "\x{910}",
5397             "from" => "Ai"
5398             },
5399             {
5400             "to" => "\x{914}",
5401             "from" => "au"
5402             },
5403             {
5404             "to" => "\x{914}",
5405             "from" => "Au"
5406             },
5407             {
5408             "to" => "\x{905}",
5409             "from" => "a"
5410             },
5411             {
5412             "to" => "\x{905}",
5413             "from" => "A"
5414             },
5415             {
5416             "to" => "\x{906}",
5417             "from" => "\x{101}"
5418             },
5419             {
5420             "to" => "\x{906}",
5421             "from" => "\x{100}"
5422             },
5423             {
5424             "to" => "\x{907}",
5425             "from" => "i"
5426             },
5427             {
5428             "to" => "\x{907}",
5429             "from" => "I"
5430             },
5431             {
5432             "to" => "\x{908}",
5433             "from" => "\x{12b}"
5434             },
5435             {
5436             "to" => "\x{908}",
5437             "from" => "\x{12a}"
5438             },
5439             {
5440             "to" => "\x{909}",
5441             "from" => "u"
5442             },
5443             {
5444             "to" => "\x{909}",
5445             "from" => "U"
5446             },
5447             {
5448             "to" => "\x{90a}",
5449             "from" => "\x{16b}"
5450             },
5451             {
5452             "to" => "\x{90a}",
5453             "from" => "\x{16a}"
5454             },
5455             {
5456             "to" => "\x{90b}",
5457             "from" => "\x{1e5b}"
5458             },
5459             {
5460             "to" => "\x{90b}",
5461             "from" => "\x{1e5a}"
5462             },
5463             {
5464             "to" => "\x{960}",
5465             "from" => "\x{1e5d}"
5466             },
5467             {
5468             "to" => "\x{960}",
5469             "from" => "\x{1e5c}"
5470             },
5471             {
5472             "to" => "\x{90c}",
5473             "from" => "\x{1e37}"
5474             },
5475             {
5476             "to" => "\x{90c}",
5477             "from" => "\x{1e36}"
5478             },
5479             {
5480             "to" => "\x{961}",
5481             "from" => "\x{1e39}"
5482             },
5483             {
5484             "to" => "\x{961}",
5485             "from" => "\x{1e38}"
5486             },
5487             {
5488             "to" => "\x{90f}",
5489             "from" => "e"
5490             },
5491             {
5492             "to" => "\x{90f}",
5493             "from" => "E"
5494             },
5495             {
5496             "to" => "\x{913}",
5497             "from" => "o"
5498             },
5499             {
5500             "to" => "\x{913}",
5501             "from" => "O"
5502             },
5503             {
5504             "to" => "\x{967}",
5505             "from" => 1
5506             },
5507             {
5508             "to" => "\x{968}",
5509             "from" => 2
5510             },
5511             {
5512             "to" => "\x{969}",
5513             "from" => 3
5514             },
5515             {
5516             "to" => "\x{96a}",
5517             "from" => 4
5518             },
5519             {
5520             "to" => "\x{96b}",
5521             "from" => 5
5522             },
5523             {
5524             "to" => "\x{96c}",
5525             "from" => 6
5526             },
5527             {
5528             "to" => "\x{96d}",
5529             "from" => 7
5530             },
5531             {
5532             "to" => "\x{96e}",
5533             "from" => 8
5534             },
5535             {
5536             "to" => "\x{96f}",
5537             "from" => 9
5538             },
5539             {
5540             "to" => "\x{966}",
5541             "from" => 0
5542             }
5543             ],
5544             "reverse" => "false"
5545             },
5546             "din_1460_bul" => {
5547             "desc" => "DIN 1460:1982, Cyrillic to Latin, Bulgarian",
5548             "name" => "DIN 1460 BUL",
5549             "id" => "din_1460_bul",
5550             "rules" => [
5551             {
5552             "to" => "\x{160}T",
5553             "from" => "\x{429}",
5554             "context" => {
5555             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
5556             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
5557             }
5558             },
5559             {
5560             "to" => "\x{160}t",
5561             "from" => "\x{429}"
5562             },
5563             {
5564             "to" => "\x{161}t",
5565             "from" => "\x{449}"
5566             },
5567             {
5568             "to" => "JU",
5569             "from" => "\x{42e}",
5570             "context" => {
5571             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
5572             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
5573             }
5574             },
5575             {
5576             "to" => "Ju",
5577             "from" => "\x{42e}"
5578             },
5579             {
5580             "to" => "ju",
5581             "from" => "\x{44e}"
5582             },
5583             {
5584             "to" => "JA",
5585             "from" => "\x{42f}",
5586             "context" => {
5587             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
5588             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
5589             }
5590             },
5591             {
5592             "to" => "Ja",
5593             "from" => "\x{42f}"
5594             },
5595             {
5596             "to" => "ja",
5597             "from" => "\x{44f}"
5598             },
5599             {
5600             "to" => "CH",
5601             "from" => "\x{425}",
5602             "context" => {
5603             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
5604             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
5605             }
5606             },
5607             {
5608             "to" => "Ch",
5609             "from" => "\x{425}"
5610             },
5611             {
5612             "to" => "ch",
5613             "from" => "\x{445}"
5614             },
5615             {
5616             "to" => "J-",
5617             "from" => "\x{419}",
5618             "context" => {
5619             "before" => "[auAU\x{430}\x{443}\x{410}\x{423}]"
5620             }
5621             },
5622             {
5623             "to" => "j-",
5624             "from" => "\x{439}",
5625             "context" => {
5626             "before" => "[au\x{430}\x{443}]"
5627             }
5628             },
5629             {
5630             "to" => "\x{160}-",
5631             "from" => "\x{428}",
5632             "context" => {
5633             "before" => "[tT\x{442}\x{422}]"
5634             }
5635             },
5636             {
5637             "to" => "\x{161}-",
5638             "from" => "\x{448}",
5639             "context" => {
5640             "before" => "[t\x{442}]"
5641             }
5642             },
5643             {
5644             "to" => "A",
5645             "from" => "\x{410}"
5646             },
5647             {
5648             "to" => "a",
5649             "from" => "\x{430}"
5650             },
5651             {
5652             "to" => "B",
5653             "from" => "\x{411}"
5654             },
5655             {
5656             "to" => "b",
5657             "from" => "\x{431}"
5658             },
5659             {
5660             "to" => "V",
5661             "from" => "\x{412}"
5662             },
5663             {
5664             "to" => "v",
5665             "from" => "\x{432}"
5666             },
5667             {
5668             "to" => "G",
5669             "from" => "\x{413}"
5670             },
5671             {
5672             "to" => "g",
5673             "from" => "\x{433}"
5674             },
5675             {
5676             "to" => "D",
5677             "from" => "\x{414}"
5678             },
5679             {
5680             "to" => "d",
5681             "from" => "\x{434}"
5682             },
5683             {
5684             "to" => "E",
5685             "from" => "\x{415}"
5686             },
5687             {
5688             "to" => "e",
5689             "from" => "\x{435}"
5690             },
5691             {
5692             "to" => "\x{17d}",
5693             "from" => "\x{416}"
5694             },
5695             {
5696             "to" => "\x{17e}",
5697             "from" => "\x{436}"
5698             },
5699             {
5700             "to" => "Z",
5701             "from" => "\x{417}"
5702             },
5703             {
5704             "to" => "z",
5705             "from" => "\x{437}"
5706             },
5707             {
5708             "to" => "I",
5709             "from" => "\x{418}"
5710             },
5711             {
5712             "to" => "i",
5713             "from" => "\x{438}"
5714             },
5715             {
5716             "to" => "J",
5717             "from" => "\x{419}"
5718             },
5719             {
5720             "to" => "j",
5721             "from" => "\x{439}"
5722             },
5723             {
5724             "to" => "K",
5725             "from" => "\x{41a}"
5726             },
5727             {
5728             "to" => "k",
5729             "from" => "\x{43a}"
5730             },
5731             {
5732             "to" => "L",
5733             "from" => "\x{41b}"
5734             },
5735             {
5736             "to" => "l",
5737             "from" => "\x{43b}"
5738             },
5739             {
5740             "to" => "M",
5741             "from" => "\x{41c}"
5742             },
5743             {
5744             "to" => "m",
5745             "from" => "\x{43c}"
5746             },
5747             {
5748             "to" => "N",
5749             "from" => "\x{41d}"
5750             },
5751             {
5752             "to" => "n",
5753             "from" => "\x{43d}"
5754             },
5755             {
5756             "to" => "O",
5757             "from" => "\x{41e}"
5758             },
5759             {
5760             "to" => "o",
5761             "from" => "\x{43e}"
5762             },
5763             {
5764             "to" => "P",
5765             "from" => "\x{41f}"
5766             },
5767             {
5768             "to" => "p",
5769             "from" => "\x{43f}"
5770             },
5771             {
5772             "to" => "R",
5773             "from" => "\x{420}"
5774             },
5775             {
5776             "to" => "r",
5777             "from" => "\x{440}"
5778             },
5779             {
5780             "to" => "T",
5781             "from" => "\x{422}"
5782             },
5783             {
5784             "to" => "t",
5785             "from" => "\x{442}"
5786             },
5787             {
5788             "to" => "U",
5789             "from" => "\x{423}"
5790             },
5791             {
5792             "to" => "u",
5793             "from" => "\x{443}"
5794             },
5795             {
5796             "to" => "F",
5797             "from" => "\x{424}"
5798             },
5799             {
5800             "to" => "f",
5801             "from" => "\x{444}"
5802             },
5803             {
5804             "to" => "C",
5805             "from" => "\x{426}"
5806             },
5807             {
5808             "to" => "c",
5809             "from" => "\x{446}"
5810             },
5811             {
5812             "to" => "S",
5813             "from" => "\x{421}"
5814             },
5815             {
5816             "to" => "s",
5817             "from" => "\x{441}"
5818             },
5819             {
5820             "to" => "\x{10c}",
5821             "from" => "\x{427}"
5822             },
5823             {
5824             "to" => "\x{10d}",
5825             "from" => "\x{447}"
5826             },
5827             {
5828             "to" => "\x{160}",
5829             "from" => "\x{428}"
5830             },
5831             {
5832             "to" => "\x{161}",
5833             "from" => "\x{448}"
5834             },
5835             {
5836             "to" => "\x{102}",
5837             "from" => "\x{42a}"
5838             },
5839             {
5840             "to" => "\x{103}",
5841             "from" => "\x{44a}"
5842             },
5843             {
5844             "to" => "'",
5845             "from" => "\x{42c}",
5846             "context" => {
5847             "after" => "\\p{IsUpper}"
5848             }
5849             },
5850             {
5851             "to" => "'",
5852             "from" => "\x{44c}"
5853             }
5854             ],
5855             "reverse" => "true"
5856             },
5857             "ala-lc_rus" => {
5858             "desc" => "ALA-LC:1997, Cyrillic to Latin, Russian",
5859             "name" => "ALA-LC RUS",
5860             "id" => "ala-lc_rus",
5861             "rules" => [
5862             {
5863             "to" => "A",
5864             "from" => "\x{410}"
5865             },
5866             {
5867             "to" => "B",
5868             "from" => "\x{411}"
5869             },
5870             {
5871             "to" => "V",
5872             "from" => "\x{412}"
5873             },
5874             {
5875             "to" => "G",
5876             "from" => "\x{413}"
5877             },
5878             {
5879             "to" => "D",
5880             "from" => "\x{414}"
5881             },
5882             {
5883             "to" => "E",
5884             "from" => "\x{415}"
5885             },
5886             {
5887             "to" => "\x{cb}",
5888             "from" => "\x{401}"
5889             },
5890             {
5891             "to" => "Zh",
5892             "from" => "\x{416}"
5893             },
5894             {
5895             "to" => "Z",
5896             "from" => "\x{417}"
5897             },
5898             {
5899             "to" => "I",
5900             "from" => "\x{418}"
5901             },
5902             {
5903             "to" => "\x{12a}",
5904             "from" => "\x{406}"
5905             },
5906             {
5907             "to" => "\x{12c}",
5908             "from" => "\x{419}"
5909             },
5910             {
5911             "to" => "K",
5912             "from" => "\x{41a}"
5913             },
5914             {
5915             "to" => "L",
5916             "from" => "\x{41b}"
5917             },
5918             {
5919             "to" => "M",
5920             "from" => "\x{41c}"
5921             },
5922             {
5923             "to" => "N",
5924             "from" => "\x{41d}"
5925             },
5926             {
5927             "to" => "O",
5928             "from" => "\x{41e}"
5929             },
5930             {
5931             "to" => "P",
5932             "from" => "\x{41f}"
5933             },
5934             {
5935             "to" => "R",
5936             "from" => "\x{420}"
5937             },
5938             {
5939             "to" => "S",
5940             "from" => "\x{421}"
5941             },
5942             {
5943             "to" => "T",
5944             "from" => "\x{422}"
5945             },
5946             {
5947             "to" => "U",
5948             "from" => "\x{423}"
5949             },
5950             {
5951             "to" => "F",
5952             "from" => "\x{424}"
5953             },
5954             {
5955             "to" => "Kh",
5956             "from" => "\x{425}"
5957             },
5958             {
5959             "to" => "TS",
5960             "from" => "\x{426}"
5961             },
5962             {
5963             "to" => "Ch",
5964             "from" => "\x{427}"
5965             },
5966             {
5967             "to" => "Ch",
5968             "from" => "\x{427}"
5969             },
5970             {
5971             "to" => "Sh",
5972             "from" => "\x{428}"
5973             },
5974             {
5975             "to" => "Shch",
5976             "from" => "\x{429}"
5977             },
5978             {
5979             "to" => "",
5980             "from" => "\x{42a}",
5981             "context" => {
5982             "before" => "\\b"
5983             }
5984             },
5985             {
5986             "to" => "\x{2033}",
5987             "from" => "\x{42a}"
5988             },
5989             {
5990             "to" => "Y",
5991             "from" => "\x{42b}"
5992             },
5993             {
5994             "to" => "\x{2032}",
5995             "from" => "\x{42c}"
5996             },
5997             {
5998             "to" => "IE",
5999             "from" => "\x{462}"
6000             },
6001             {
6002             "to" => "\x{116}",
6003             "from" => "\x{42d}"
6004             },
6005             {
6006             "to" => "IU",
6007             "from" => "\x{42e}"
6008             },
6009             {
6010             "to" => "IA",
6011             "from" => "\x{42f}"
6012             },
6013             {
6014             "to" => "\x{118}",
6015             "from" => "\x{466}"
6016             },
6017             {
6018             "to" => "\x{1e1e}",
6019             "from" => "\x{4e8}"
6020             },
6021             {
6022             "to" => "\x{1e8e}",
6023             "from" => "\x{474}"
6024             },
6025             {
6026             "to" => "a",
6027             "from" => "\x{430}"
6028             },
6029             {
6030             "to" => "b",
6031             "from" => "\x{431}"
6032             },
6033             {
6034             "to" => "v",
6035             "from" => "\x{432}"
6036             },
6037             {
6038             "to" => "g",
6039             "from" => "\x{433}"
6040             },
6041             {
6042             "to" => "d",
6043             "from" => "\x{434}"
6044             },
6045             {
6046             "to" => "e",
6047             "from" => "\x{435}"
6048             },
6049             {
6050             "to" => "\x{eb}",
6051             "from" => "\x{451}"
6052             },
6053             {
6054             "to" => "zh",
6055             "from" => "\x{436}"
6056             },
6057             {
6058             "to" => "z",
6059             "from" => "\x{437}"
6060             },
6061             {
6062             "to" => "i",
6063             "from" => "\x{438}"
6064             },
6065             {
6066             "to" => "\x{12b}",
6067             "from" => "\x{456}"
6068             },
6069             {
6070             "to" => "\x{12d}",
6071             "from" => "\x{439}"
6072             },
6073             {
6074             "to" => "k",
6075             "from" => "\x{43a}"
6076             },
6077             {
6078             "to" => "l",
6079             "from" => "\x{43b}"
6080             },
6081             {
6082             "to" => "m",
6083             "from" => "\x{43c}"
6084             },
6085             {
6086             "to" => "n",
6087             "from" => "\x{43d}"
6088             },
6089             {
6090             "to" => "o",
6091             "from" => "\x{43e}"
6092             },
6093             {
6094             "to" => "p",
6095             "from" => "\x{43f}"
6096             },
6097             {
6098             "to" => "r",
6099             "from" => "\x{440}"
6100             },
6101             {
6102             "to" => "s",
6103             "from" => "\x{441}"
6104             },
6105             {
6106             "to" => "t",
6107             "from" => "\x{442}"
6108             },
6109             {
6110             "to" => "u",
6111             "from" => "\x{443}"
6112             },
6113             {
6114             "to" => "f",
6115             "from" => "\x{444}"
6116             },
6117             {
6118             "to" => "kh",
6119             "from" => "\x{445}"
6120             },
6121             {
6122             "to" => "ts",
6123             "from" => "\x{446}"
6124             },
6125             {
6126             "to" => "ch",
6127             "from" => "\x{447}"
6128             },
6129             {
6130             "to" => "sh",
6131             "from" => "\x{448}"
6132             },
6133             {
6134             "to" => "shch",
6135             "from" => "\x{449}"
6136             },
6137             {
6138             "to" => "",
6139             "from" => "\x{44a}",
6140             "context" => {
6141             "before" => "\\b"
6142             }
6143             },
6144             {
6145             "to" => "\x{2033}",
6146             "from" => "\x{44a}"
6147             },
6148             {
6149             "to" => "y",
6150             "from" => "\x{44b}"
6151             },
6152             {
6153             "to" => "\x{2032}",
6154             "from" => "\x{44c}"
6155             },
6156             {
6157             "to" => "ie",
6158             "from" => "\x{463}"
6159             },
6160             {
6161             "to" => "\x{117}",
6162             "from" => "\x{44d}"
6163             },
6164             {
6165             "to" => "iu",
6166             "from" => "\x{44e}"
6167             },
6168             {
6169             "to" => "ia",
6170             "from" => "\x{44f}"
6171             },
6172             {
6173             "to" => "\x{119}",
6174             "from" => "\x{467}"
6175             },
6176             {
6177             "to" => "\x{1e1f}",
6178             "from" => "\x{4e9}"
6179             },
6180             {
6181             "to" => "\x{1e8f}",
6182             "from" => "\x{475}"
6183             }
6184             ],
6185             "reverse" => "false"
6186             },
6187             "iso/r_9" => {
6188             "desc" => "ISO/R 9:1954, Cyrillic to Latin",
6189             "name" => "ISO/R 9",
6190             "id" => "iso/r_9",
6191             "rules" => [
6192             {
6193             "to" => "A",
6194             "from" => "\x{410}"
6195             },
6196             {
6197             "to" => "a",
6198             "from" => "\x{430}"
6199             },
6200             {
6201             "to" => "B",
6202             "from" => "\x{411}"
6203             },
6204             {
6205             "to" => "b",
6206             "from" => "\x{431}"
6207             },
6208             {
6209             "to" => "V",
6210             "from" => "\x{412}"
6211             },
6212             {
6213             "to" => "v",
6214             "from" => "\x{432}"
6215             },
6216             {
6217             "to" => "G",
6218             "from" => "\x{413}"
6219             },
6220             {
6221             "to" => "g",
6222             "from" => "\x{433}"
6223             },
6224             {
6225             "to" => "G\x{300}",
6226             "from" => "\x{490}"
6227             },
6228             {
6229             "to" => "g\x{300}",
6230             "from" => "\x{491}"
6231             },
6232             {
6233             "to" => "D",
6234             "from" => "\x{414}"
6235             },
6236             {
6237             "to" => "d",
6238             "from" => "\x{434}"
6239             },
6240             {
6241             "to" => "\x{1f4}",
6242             "from" => "\x{403}"
6243             },
6244             {
6245             "to" => "\x{1f5}",
6246             "from" => "\x{453}"
6247             },
6248             {
6249             "to" => "\x{110}",
6250             "from" => "\x{402}"
6251             },
6252             {
6253             "to" => "\x{111}",
6254             "from" => "\x{452}"
6255             },
6256             {
6257             "to" => "E",
6258             "from" => "\x{415}"
6259             },
6260             {
6261             "to" => "e",
6262             "from" => "\x{435}"
6263             },
6264             {
6265             "to" => "\x{cb}",
6266             "from" => "\x{401}"
6267             },
6268             {
6269             "to" => "\x{eb}",
6270             "from" => "\x{451}"
6271             },
6272             {
6273             "to" => "Je",
6274             "from" => "\x{404}"
6275             },
6276             {
6277             "to" => "je",
6278             "from" => "\x{454}"
6279             },
6280             {
6281             "to" => "\x{17d}",
6282             "from" => "\x{416}"
6283             },
6284             {
6285             "to" => "\x{17e}",
6286             "from" => "\x{436}"
6287             },
6288             {
6289             "to" => "Z",
6290             "from" => "\x{417}"
6291             },
6292             {
6293             "to" => "z",
6294             "from" => "\x{437}"
6295             },
6296             {
6297             "to" => "Dz",
6298             "from" => "\x{405}"
6299             },
6300             {
6301             "to" => "dz",
6302             "from" => "\x{455}"
6303             },
6304             {
6305             "to" => "I",
6306             "from" => "\x{418}"
6307             },
6308             {
6309             "to" => "i",
6310             "from" => "\x{438}"
6311             },
6312             {
6313             "to" => "I",
6314             "from" => "\x{406}"
6315             },
6316             {
6317             "to" => "i",
6318             "from" => "\x{456}"
6319             },
6320             {
6321             "to" => "Ji",
6322             "from" => "\x{407}"
6323             },
6324             {
6325             "to" => "ji",
6326             "from" => "\x{457}"
6327             },
6328             {
6329             "to" => "J",
6330             "from" => "\x{419}"
6331             },
6332             {
6333             "to" => "j",
6334             "from" => "\x{439}"
6335             },
6336             {
6337             "to" => "J",
6338             "from" => "\x{408}"
6339             },
6340             {
6341             "to" => "j",
6342             "from" => "\x{458}"
6343             },
6344             {
6345             "to" => "K",
6346             "from" => "\x{41a}"
6347             },
6348             {
6349             "to" => "k",
6350             "from" => "\x{43a}"
6351             },
6352             {
6353             "to" => "L",
6354             "from" => "\x{41b}"
6355             },
6356             {
6357             "to" => "l",
6358             "from" => "\x{43b}"
6359             },
6360             {
6361             "to" => "LJ",
6362             "from" => "\x{409}",
6363             "context" => {
6364             "after" => "\\p{IsUpper}"
6365             }
6366             },
6367             {
6368             "to" => "Lj",
6369             "from" => "\x{409}"
6370             },
6371             {
6372             "to" => "lj",
6373             "from" => "\x{459}"
6374             },
6375             {
6376             "to" => "M",
6377             "from" => "\x{41c}"
6378             },
6379             {
6380             "to" => "m",
6381             "from" => "\x{43c}"
6382             },
6383             {
6384             "to" => "N",
6385             "from" => "\x{41d}"
6386             },
6387             {
6388             "to" => "n",
6389             "from" => "\x{43d}"
6390             },
6391             {
6392             "to" => "NJ",
6393             "from" => "\x{40a}",
6394             "context" => {
6395             "after" => "\\p{IsUpper}"
6396             }
6397             },
6398             {
6399             "to" => "Nj",
6400             "from" => "\x{40a}"
6401             },
6402             {
6403             "to" => "nj",
6404             "from" => "\x{45a}"
6405             },
6406             {
6407             "to" => "O",
6408             "from" => "\x{41e}"
6409             },
6410             {
6411             "to" => "o",
6412             "from" => "\x{43e}"
6413             },
6414             {
6415             "to" => "P",
6416             "from" => "\x{41f}"
6417             },
6418             {
6419             "to" => "p",
6420             "from" => "\x{43f}"
6421             },
6422             {
6423             "to" => "R",
6424             "from" => "\x{420}"
6425             },
6426             {
6427             "to" => "r",
6428             "from" => "\x{440}"
6429             },
6430             {
6431             "to" => "S",
6432             "from" => "\x{421}"
6433             },
6434             {
6435             "to" => "s",
6436             "from" => "\x{441}"
6437             },
6438             {
6439             "to" => "T",
6440             "from" => "\x{422}"
6441             },
6442             {
6443             "to" => "t",
6444             "from" => "\x{442}"
6445             },
6446             {
6447             "to" => "\x{1e30}",
6448             "from" => "\x{40c}"
6449             },
6450             {
6451             "to" => "\x{1e31}",
6452             "from" => "\x{45c}"
6453             },
6454             {
6455             "to" => "\x{106}",
6456             "from" => "\x{40b}"
6457             },
6458             {
6459             "to" => "\x{107}",
6460             "from" => "\x{45b}"
6461             },
6462             {
6463             "to" => "U",
6464             "from" => "\x{423}"
6465             },
6466             {
6467             "to" => "u",
6468             "from" => "\x{443}"
6469             },
6470             {
6471             "to" => "\x{16c}",
6472             "from" => "\x{40e}"
6473             },
6474             {
6475             "to" => "\x{16d}",
6476             "from" => "\x{45e}"
6477             },
6478             {
6479             "to" => "F",
6480             "from" => "\x{424}"
6481             },
6482             {
6483             "to" => "f",
6484             "from" => "\x{444}"
6485             },
6486             {
6487             "to" => "H",
6488             "from" => "\x{425}"
6489             },
6490             {
6491             "to" => "h",
6492             "from" => "\x{445}"
6493             },
6494             {
6495             "to" => "C",
6496             "from" => "\x{426}"
6497             },
6498             {
6499             "to" => "c",
6500             "from" => "\x{446}"
6501             },
6502             {
6503             "to" => "\x{10c}",
6504             "from" => "\x{427}"
6505             },
6506             {
6507             "to" => "\x{10d}",
6508             "from" => "\x{447}"
6509             },
6510             {
6511             "to" => "D\x{17d}",
6512             "from" => "\x{40f}",
6513             "context" => {
6514             "after" => "\\p{IsUpper}"
6515             }
6516             },
6517             {
6518             "to" => "D\x{17e}",
6519             "from" => "\x{40f}"
6520             },
6521             {
6522             "to" => "d\x{17e}",
6523             "from" => "\x{45f}"
6524             },
6525             {
6526             "to" => "\x{160}",
6527             "from" => "\x{428}"
6528             },
6529             {
6530             "to" => "\x{161}",
6531             "from" => "\x{448}"
6532             },
6533             {
6534             "to" => "\x{160}\x{10c}",
6535             "from" => "\x{429}"
6536             },
6537             {
6538             "to" => "\x{161}\x{10d}",
6539             "from" => "\x{449}"
6540             },
6541             {
6542             "to" => "Y",
6543             "from" => "\x{42a}",
6544             "context" => {
6545             "after" => "\\p{IsUpper}"
6546             }
6547             },
6548             {
6549             "to" => "y",
6550             "from" => "\x{44a}"
6551             },
6552             {
6553             "to" => "Y",
6554             "from" => "\x{42b}"
6555             },
6556             {
6557             "to" => "y",
6558             "from" => "\x{44b}"
6559             },
6560             {
6561             "to" => "\x{2b9}",
6562             "from" => "\x{42c}",
6563             "context" => {
6564             "after" => "\\p{IsUpper}"
6565             }
6566             },
6567             {
6568             "to" => "\x{2b9}",
6569             "from" => "\x{44c}"
6570             },
6571             {
6572             "to" => "\x{11a}",
6573             "from" => "\x{462}"
6574             },
6575             {
6576             "to" => "\x{11b}",
6577             "from" => "\x{463}"
6578             },
6579             {
6580             "to" => "\x{c8}",
6581             "from" => "\x{42d}"
6582             },
6583             {
6584             "to" => "\x{e8}",
6585             "from" => "\x{44d}"
6586             },
6587             {
6588             "to" => "JU",
6589             "from" => "\x{42e}",
6590             "context" => {
6591             "after" => "\\p{IsUpper}"
6592             }
6593             },
6594             {
6595             "to" => "Ju",
6596             "from" => "\x{42e}"
6597             },
6598             {
6599             "to" => "ju",
6600             "from" => "\x{44e}"
6601             },
6602             {
6603             "to" => "JA",
6604             "from" => "\x{42f}",
6605             "context" => {
6606             "after" => "\\p{IsUpper}"
6607             }
6608             },
6609             {
6610             "to" => "Ja",
6611             "from" => "\x{42f}"
6612             },
6613             {
6614             "to" => "ja",
6615             "from" => "\x{44f}"
6616             },
6617             {
6618             "to" => "\x{226}",
6619             "from" => "\x{46a}"
6620             },
6621             {
6622             "to" => "\x{227}",
6623             "from" => "\x{46b}"
6624             },
6625             {
6626             "to" => "\x{1e1e}",
6627             "from" => "\x{472}"
6628             },
6629             {
6630             "to" => "\x{1e1f}",
6631             "from" => "\x{473}"
6632             },
6633             {
6634             "to" => "\x{1e8e}",
6635             "from" => "\x{474}"
6636             },
6637             {
6638             "to" => "\x{1e8f}",
6639             "from" => "\x{475}"
6640             }
6641             ],
6642             "reverse" => "true"
6643             },
6644             "common_ara" => {
6645             "desc" => "Common Romanization of Arabic",
6646             "name" => "Common ARA",
6647             "id" => "common_ara",
6648             "rules" => [
6649             {
6650             "to" => "th",
6651             "from" => "\x{62b}"
6652             },
6653             {
6654             "to" => "kh",
6655             "from" => "\x{62e}"
6656             },
6657             {
6658             "to" => "sh",
6659             "from" => "\x{634}"
6660             },
6661             {
6662             "to" => "gh",
6663             "from" => "\x{63a}"
6664             },
6665             {
6666             "to" => "'e",
6667             "from" => "\x{639}"
6668             },
6669             {
6670             "to" => "'e",
6671             "from" => "\x{626}"
6672             },
6673             {
6674             "to" => "'e",
6675             "from" => "\x{624}"
6676             },
6677             {
6678             "to" => "a",
6679             "from" => "\x{627}"
6680             },
6681             {
6682             "to" => "a",
6683             "from" => "\x{623}"
6684             },
6685             {
6686             "to" => "a",
6687             "from" => "\x{622}"
6688             },
6689             {
6690             "to" => "a",
6691             "from" => "\x{649}"
6692             },
6693             {
6694             "to" => "e",
6695             "from" => "\x{625}"
6696             },
6697             {
6698             "to" => "b",
6699             "from" => "\x{628}"
6700             },
6701             {
6702             "to" => "t",
6703             "from" => "\x{62a}"
6704             },
6705             {
6706             "to" => "j",
6707             "from" => "\x{62c}"
6708             },
6709             {
6710             "to" => "h",
6711             "from" => "\x{62d}"
6712             },
6713             {
6714             "to" => "d",
6715             "from" => "\x{62f}"
6716             },
6717             {
6718             "to" => "d",
6719             "from" => "\x{630}"
6720             },
6721             {
6722             "to" => "d",
6723             "from" => "\x{636}"
6724             },
6725             {
6726             "to" => "r",
6727             "from" => "\x{631}"
6728             },
6729             {
6730             "to" => "z",
6731             "from" => "\x{632}"
6732             },
6733             {
6734             "to" => "z",
6735             "from" => "\x{638}"
6736             },
6737             {
6738             "to" => "s",
6739             "from" => "\x{633}"
6740             },
6741             {
6742             "to" => "s",
6743             "from" => "\x{635}"
6744             },
6745             {
6746             "to" => "t",
6747             "from" => "\x{637}"
6748             },
6749             {
6750             "to" => "f",
6751             "from" => "\x{641}"
6752             },
6753             {
6754             "to" => "q",
6755             "from" => "\x{642}"
6756             },
6757             {
6758             "to" => "k",
6759             "from" => "\x{643}"
6760             },
6761             {
6762             "to" => "l",
6763             "from" => "\x{644}"
6764             },
6765             {
6766             "to" => "m",
6767             "from" => "\x{645}"
6768             },
6769             {
6770             "to" => "n",
6771             "from" => "\x{646}"
6772             },
6773             {
6774             "to" => "h",
6775             "from" => "\x{647}"
6776             },
6777             {
6778             "to" => "h",
6779             "from" => "\x{629}"
6780             },
6781             {
6782             "to" => "w",
6783             "from" => "\x{648}"
6784             },
6785             {
6786             "to" => "y",
6787             "from" => "\x{64a}"
6788             },
6789             {
6790             "to" => "'",
6791             "from" => "\x{621}"
6792             },
6793             {
6794             "to" => "?",
6795             "from" => "\x{61f}"
6796             },
6797             {
6798             "to" => ",",
6799             "from" => "\x{60c}"
6800             },
6801             {
6802             "to" => "",
6803             "from" => "\x{640}"
6804             },
6805             {
6806             "to" => "",
6807             "from" => "\x{64b}"
6808             },
6809             {
6810             "to" => "",
6811             "from" => "\x{64c}"
6812             },
6813             {
6814             "to" => "",
6815             "from" => "\x{64d}"
6816             },
6817             {
6818             "to" => "",
6819             "from" => "\x{64e}"
6820             },
6821             {
6822             "to" => "",
6823             "from" => "\x{64f}"
6824             },
6825             {
6826             "to" => "",
6827             "from" => "\x{650}"
6828             },
6829             {
6830             "to" => "",
6831             "from" => "\x{651}"
6832             },
6833             {
6834             "to" => "",
6835             "from" => "\x{652}"
6836             },
6837             {
6838             "to" => "",
6839             "from" => "\x{200f}"
6840             }
6841             ],
6842             "reverse" => "false"
6843             },
6844             "common_deu" => {
6845             "desc" => "German umlauts",
6846             "name" => "Common DEU",
6847             "id" => "common_deu",
6848             "rules" => [
6849             {
6850             "to" => "Ae",
6851             "from" => "\x{c4}"
6852             },
6853             {
6854             "to" => "ae",
6855             "from" => "\x{e4}"
6856             },
6857             {
6858             "to" => "Oe",
6859             "from" => "\x{d6}"
6860             },
6861             {
6862             "to" => "oe",
6863             "from" => "\x{f6}"
6864             },
6865             {
6866             "to" => "Ue",
6867             "from" => "\x{dc}"
6868             },
6869             {
6870             "to" => "ue",
6871             "from" => "\x{fc}"
6872             },
6873             {
6874             "to" => "SS",
6875             "from" => "\x{df}",
6876             "context" => {
6877             "after" => "\\p{IsUpper}"
6878             }
6879             },
6880             {
6881             "to" => "ss",
6882             "from" => "\x{df}"
6883             }
6884             ],
6885             "reverse" => "false"
6886             },
6887             "gost_7.79_rus" => {
6888             "desc" => "GOST 7.79:2000, Cyrillic to Latin, Russian",
6889             "name" => "GOST 7.79 RUS",
6890             "id" => "gost_7.79_rus",
6891             "rules" => [
6892             {
6893             "to" => "c",
6894             "from" => "\x{446}",
6895             "context" => {
6896             "before" => "[iejy\x{438}\x{435}\x{439}\x{44b}\x{44e}\x{44f}\x{44d}\x{451}]"
6897             }
6898             },
6899             {
6900             "to" => "C",
6901             "from" => "\x{426}",
6902             "context" => {
6903             "before" => "[IEJY\x{418}\x{415}\x{419}\x{42b}\x{42e}\x{42f}\x{401}\x{42d}]"
6904             }
6905             },
6906             {
6907             "to" => "cz",
6908             "from" => "\x{446}"
6909             },
6910             {
6911             "to" => "CZ",
6912             "from" => "\x{426}",
6913             "context" => {
6914             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
6915             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
6916             }
6917             },
6918             {
6919             "to" => "Cz",
6920             "from" => "\x{426}"
6921             },
6922             {
6923             "to" => "shh",
6924             "from" => "\x{449}"
6925             },
6926             {
6927             "to" => "SHH",
6928             "from" => "\x{429}",
6929             "context" => {
6930             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
6931             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
6932             }
6933             },
6934             {
6935             "to" => "Shh",
6936             "from" => "\x{429}"
6937             },
6938             {
6939             "to" => "yo",
6940             "from" => "\x{451}"
6941             },
6942             {
6943             "to" => "YO",
6944             "from" => "\x{401}",
6945             "context" => {
6946             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
6947             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
6948             }
6949             },
6950             {
6951             "to" => "Yo",
6952             "from" => "\x{401}"
6953             },
6954             {
6955             "to" => "zh",
6956             "from" => "\x{436}"
6957             },
6958             {
6959             "to" => "ZH",
6960             "from" => "\x{416}",
6961             "context" => {
6962             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
6963             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
6964             }
6965             },
6966             {
6967             "to" => "Zh",
6968             "from" => "\x{416}"
6969             },
6970             {
6971             "to" => "ch",
6972             "from" => "\x{447}"
6973             },
6974             {
6975             "to" => "CH",
6976             "from" => "\x{427}",
6977             "context" => {
6978             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
6979             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
6980             }
6981             },
6982             {
6983             "to" => "Ch",
6984             "from" => "\x{427}"
6985             },
6986             {
6987             "to" => "sh",
6988             "from" => "\x{448}"
6989             },
6990             {
6991             "to" => "SH",
6992             "from" => "\x{428}",
6993             "context" => {
6994             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
6995             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
6996             }
6997             },
6998             {
6999             "to" => "Sh",
7000             "from" => "\x{428}"
7001             },
7002             {
7003             "to" => "yu",
7004             "from" => "\x{44e}"
7005             },
7006             {
7007             "to" => "YU",
7008             "from" => "\x{42e}",
7009             "context" => {
7010             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7011             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7012             }
7013             },
7014             {
7015             "to" => "Yu",
7016             "from" => "\x{42e}"
7017             },
7018             {
7019             "to" => "ya",
7020             "from" => "\x{44f}"
7021             },
7022             {
7023             "to" => "YA",
7024             "from" => "\x{42f}",
7025             "context" => {
7026             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7027             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7028             }
7029             },
7030             {
7031             "to" => "Ya",
7032             "from" => "\x{42f}"
7033             },
7034             {
7035             "to" => "``",
7036             "from" => "\x{44a}"
7037             },
7038             {
7039             "to" => "``",
7040             "from" => "\x{42a}",
7041             "context" => {
7042             "after" => "\\p{IsUpper}",
7043             "before" => "([^\\p{IsWord}]|\$)"
7044             }
7045             },
7046             {
7047             "to" => "y'",
7048             "from" => "\x{44b}"
7049             },
7050             {
7051             "to" => "Y'",
7052             "from" => "\x{42b}"
7053             },
7054             {
7055             "to" => "e`",
7056             "from" => "\x{44d}"
7057             },
7058             {
7059             "to" => "E`",
7060             "from" => "\x{42d}"
7061             },
7062             {
7063             "to" => "a",
7064             "from" => "\x{430}"
7065             },
7066             {
7067             "to" => "A",
7068             "from" => "\x{410}"
7069             },
7070             {
7071             "to" => "b",
7072             "from" => "\x{431}"
7073             },
7074             {
7075             "to" => "B",
7076             "from" => "\x{411}"
7077             },
7078             {
7079             "to" => "v",
7080             "from" => "\x{432}"
7081             },
7082             {
7083             "to" => "V",
7084             "from" => "\x{412}"
7085             },
7086             {
7087             "to" => "g",
7088             "from" => "\x{433}"
7089             },
7090             {
7091             "to" => "G",
7092             "from" => "\x{413}"
7093             },
7094             {
7095             "to" => "d",
7096             "from" => "\x{434}"
7097             },
7098             {
7099             "to" => "D",
7100             "from" => "\x{414}"
7101             },
7102             {
7103             "to" => "e",
7104             "from" => "\x{435}"
7105             },
7106             {
7107             "to" => "E",
7108             "from" => "\x{415}"
7109             },
7110             {
7111             "to" => "z",
7112             "from" => "\x{437}"
7113             },
7114             {
7115             "to" => "Z",
7116             "from" => "\x{417}"
7117             },
7118             {
7119             "to" => "i",
7120             "from" => "\x{438}"
7121             },
7122             {
7123             "to" => "I",
7124             "from" => "\x{418}"
7125             },
7126             {
7127             "to" => "j",
7128             "from" => "\x{439}"
7129             },
7130             {
7131             "to" => "J",
7132             "from" => "\x{419}"
7133             },
7134             {
7135             "to" => "k",
7136             "from" => "\x{43a}"
7137             },
7138             {
7139             "to" => "K",
7140             "from" => "\x{41a}"
7141             },
7142             {
7143             "to" => "l",
7144             "from" => "\x{43b}"
7145             },
7146             {
7147             "to" => "L",
7148             "from" => "\x{41b}"
7149             },
7150             {
7151             "to" => "m",
7152             "from" => "\x{43c}"
7153             },
7154             {
7155             "to" => "M",
7156             "from" => "\x{41c}"
7157             },
7158             {
7159             "to" => "n",
7160             "from" => "\x{43d}"
7161             },
7162             {
7163             "to" => "N",
7164             "from" => "\x{41d}"
7165             },
7166             {
7167             "to" => "o",
7168             "from" => "\x{43e}"
7169             },
7170             {
7171             "to" => "O",
7172             "from" => "\x{41e}"
7173             },
7174             {
7175             "to" => "p",
7176             "from" => "\x{43f}"
7177             },
7178             {
7179             "to" => "P",
7180             "from" => "\x{41f}"
7181             },
7182             {
7183             "to" => "r",
7184             "from" => "\x{440}"
7185             },
7186             {
7187             "to" => "R",
7188             "from" => "\x{420}"
7189             },
7190             {
7191             "to" => "s",
7192             "from" => "\x{441}"
7193             },
7194             {
7195             "to" => "S",
7196             "from" => "\x{421}"
7197             },
7198             {
7199             "to" => "t",
7200             "from" => "\x{442}"
7201             },
7202             {
7203             "to" => "T",
7204             "from" => "\x{422}"
7205             },
7206             {
7207             "to" => "u",
7208             "from" => "\x{443}"
7209             },
7210             {
7211             "to" => "U",
7212             "from" => "\x{423}"
7213             },
7214             {
7215             "to" => "f",
7216             "from" => "\x{444}"
7217             },
7218             {
7219             "to" => "F",
7220             "from" => "\x{424}"
7221             },
7222             {
7223             "to" => "x",
7224             "from" => "\x{445}"
7225             },
7226             {
7227             "to" => "X",
7228             "from" => "\x{425}"
7229             },
7230             {
7231             "to" => "`",
7232             "from" => "\x{42c}",
7233             "context" => {
7234             "after" => "\\p{IsUpper}"
7235             }
7236             },
7237             {
7238             "to" => "`",
7239             "from" => "\x{44c}"
7240             },
7241             {
7242             "to" => "#",
7243             "from" => "\x{2116}"
7244             }
7245             ],
7246             "reverse" => "true"
7247             },
7248             "greeklish" => {
7249             "desc" => "Greeklish (Phonetic), Greek to Latin",
7250             "name" => "Greeklish",
7251             "id" => "greeklish",
7252             "rules" => [
7253             {
7254             "to" => "i",
7255             "from" => "\x{3b5}\x{3b9}"
7256             },
7257             {
7258             "to" => "i",
7259             "from" => "\x{3ad}\x{3b9}"
7260             },
7261             {
7262             "to" => "i",
7263             "from" => "\x{3b5}\x{3af}"
7264             },
7265             {
7266             "to" => "ef",
7267             "from" => "\x{3b5}\x{3c5}"
7268             },
7269             {
7270             "to" => "ef",
7271             "from" => "\x{3ad}\x{3c5}"
7272             },
7273             {
7274             "to" => "ef",
7275             "from" => "\x{3b5}\x{3cd}"
7276             },
7277             {
7278             "to" => "u",
7279             "from" => "\x{3bf}\x{3c5}"
7280             },
7281             {
7282             "to" => "u",
7283             "from" => "\x{3bf}\x{3cd}"
7284             },
7285             {
7286             "to" => "u",
7287             "from" => "\x{3cc}\x{3c5}"
7288             },
7289             {
7290             "to" => "A",
7291             "from" => "\x{391}"
7292             },
7293             {
7294             "to" => "a",
7295             "from" => "\x{3b1}"
7296             },
7297             {
7298             "to" => "A",
7299             "from" => "\x{386}"
7300             },
7301             {
7302             "to" => "a",
7303             "from" => "\x{3ac}"
7304             },
7305             {
7306             "to" => "V",
7307             "from" => "\x{392}"
7308             },
7309             {
7310             "to" => "v",
7311             "from" => "\x{3b2}"
7312             },
7313             {
7314             "to" => "Y",
7315             "from" => "\x{393}"
7316             },
7317             {
7318             "to" => "y",
7319             "from" => "\x{3b3}"
7320             },
7321             {
7322             "to" => "D",
7323             "from" => "\x{394}"
7324             },
7325             {
7326             "to" => "d",
7327             "from" => "\x{3b4}"
7328             },
7329             {
7330             "to" => "E",
7331             "from" => "\x{395}"
7332             },
7333             {
7334             "to" => "e",
7335             "from" => "\x{3b5}"
7336             },
7337             {
7338             "to" => "E",
7339             "from" => "\x{388}"
7340             },
7341             {
7342             "to" => "e",
7343             "from" => "\x{3ad}"
7344             },
7345             {
7346             "to" => "Z",
7347             "from" => "\x{396}"
7348             },
7349             {
7350             "to" => "z",
7351             "from" => "\x{3b6}"
7352             },
7353             {
7354             "to" => "I",
7355             "from" => "\x{397}"
7356             },
7357             {
7358             "to" => "i",
7359             "from" => "\x{3b7}"
7360             },
7361             {
7362             "to" => "I",
7363             "from" => "\x{389}"
7364             },
7365             {
7366             "to" => "i",
7367             "from" => "\x{3ae}"
7368             },
7369             {
7370             "to" => "Th",
7371             "from" => "\x{398}"
7372             },
7373             {
7374             "to" => "th",
7375             "from" => "\x{3b8}"
7376             },
7377             {
7378             "to" => "I",
7379             "from" => "\x{399}"
7380             },
7381             {
7382             "to" => "i",
7383             "from" => "\x{3b9}"
7384             },
7385             {
7386             "to" => "I",
7387             "from" => "\x{38a}"
7388             },
7389             {
7390             "to" => "i",
7391             "from" => "\x{3af}"
7392             },
7393             {
7394             "to" => "I",
7395             "from" => "\x{3aa}"
7396             },
7397             {
7398             "to" => "i",
7399             "from" => "\x{3ca}"
7400             },
7401             {
7402             "to" => "i",
7403             "from" => "\x{390}"
7404             },
7405             {
7406             "to" => "K",
7407             "from" => "\x{39a}"
7408             },
7409             {
7410             "to" => "k",
7411             "from" => "\x{3ba}"
7412             },
7413             {
7414             "to" => "L",
7415             "from" => "\x{39b}"
7416             },
7417             {
7418             "to" => "l",
7419             "from" => "\x{3bb}"
7420             },
7421             {
7422             "to" => "M",
7423             "from" => "\x{39c}"
7424             },
7425             {
7426             "to" => "m",
7427             "from" => "\x{3bc}"
7428             },
7429             {
7430             "to" => "N",
7431             "from" => "\x{39d}"
7432             },
7433             {
7434             "to" => "n",
7435             "from" => "\x{3bd}"
7436             },
7437             {
7438             "to" => "X",
7439             "from" => "\x{39e}"
7440             },
7441             {
7442             "to" => "x",
7443             "from" => "\x{3be}"
7444             },
7445             {
7446             "to" => "O",
7447             "from" => "\x{39f}"
7448             },
7449             {
7450             "to" => "o",
7451             "from" => "\x{3bf}"
7452             },
7453             {
7454             "to" => "O",
7455             "from" => "\x{38c}"
7456             },
7457             {
7458             "to" => "o",
7459             "from" => "\x{3cc}"
7460             },
7461             {
7462             "to" => "P",
7463             "from" => "\x{3a0}"
7464             },
7465             {
7466             "to" => "p",
7467             "from" => "\x{3c0}"
7468             },
7469             {
7470             "to" => "R",
7471             "from" => "\x{3a1}"
7472             },
7473             {
7474             "to" => "r",
7475             "from" => "\x{3c1}"
7476             },
7477             {
7478             "to" => "S",
7479             "from" => "\x{3a3}"
7480             },
7481             {
7482             "to" => "s",
7483             "from" => "\x{3c3}"
7484             },
7485             {
7486             "to" => "T",
7487             "from" => "\x{3a4}"
7488             },
7489             {
7490             "to" => "t",
7491             "from" => "\x{3c4}"
7492             },
7493             {
7494             "to" => "I",
7495             "from" => "\x{3a5}"
7496             },
7497             {
7498             "to" => "i",
7499             "from" => "\x{3c5}"
7500             },
7501             {
7502             "to" => "I",
7503             "from" => "\x{38e}"
7504             },
7505             {
7506             "to" => "i",
7507             "from" => "\x{3cd}"
7508             },
7509             {
7510             "to" => "I",
7511             "from" => "\x{3ab}"
7512             },
7513             {
7514             "to" => "i",
7515             "from" => "\x{3cb}"
7516             },
7517             {
7518             "to" => "i",
7519             "from" => "\x{3b0}"
7520             },
7521             {
7522             "to" => "F",
7523             "from" => "\x{3a6}"
7524             },
7525             {
7526             "to" => "f",
7527             "from" => "\x{3c6}"
7528             },
7529             {
7530             "to" => "H",
7531             "from" => "\x{3a7}"
7532             },
7533             {
7534             "to" => "h",
7535             "from" => "\x{3c7}"
7536             },
7537             {
7538             "to" => "Ps",
7539             "from" => "\x{3a8}"
7540             },
7541             {
7542             "to" => "ps",
7543             "from" => "\x{3c8}"
7544             },
7545             {
7546             "to" => "O",
7547             "from" => "\x{3a9}"
7548             },
7549             {
7550             "to" => "o",
7551             "from" => "\x{3c9}"
7552             },
7553             {
7554             "to" => "O",
7555             "from" => "\x{38f}"
7556             },
7557             {
7558             "to" => "o",
7559             "from" => "\x{3ce}"
7560             },
7561             {
7562             "to" => "s",
7563             "from" => "\x{3c2}"
7564             },
7565             {
7566             "to" => "?",
7567             "from" => "\x{37e}",
7568             "context" => {
7569             "after" => "\\b"
7570             }
7571             },
7572             {
7573             "to" => "?",
7574             "from" => ";",
7575             "context" => {
7576             "after" => "\\b"
7577             }
7578             },
7579             {
7580             "to" => ";",
7581             "from" => "\x{b7}"
7582             },
7583             {
7584             "to" => "-",
7585             "from" => "\x{203f}"
7586             },
7587             {
7588             "to" => "",
7589             "from" => "\x{384}"
7590             },
7591             {
7592             "to" => "",
7593             "from" => "\x{385}"
7594             },
7595             {
7596             "to" => "",
7597             "from" => "\x{342}"
7598             },
7599             {
7600             "to" => "",
7601             "from" => "\x{343}"
7602             },
7603             {
7604             "to" => "",
7605             "from" => "\x{313}"
7606             },
7607             {
7608             "to" => "",
7609             "from" => "\x{314}"
7610             },
7611             {
7612             "to" => "",
7613             "from" => "\x{345}"
7614             },
7615             {
7616             "to" => "",
7617             "from" => "\x{345}"
7618             }
7619             ],
7620             "reverse" => "false"
7621             },
7622             "gost_7.79_ukr" => {
7623             "desc" => "GOST 7.79:2000, Cyrillic to Latin, Ukrainian",
7624             "name" => "GOST 7.79 UKR",
7625             "id" => "gost_7.79_ukr",
7626             "rules" => [
7627             {
7628             "to" => "c",
7629             "from" => "\x{446}",
7630             "context" => {
7631             "before" => "[iejy\x{438}\x{435}\x{439}\x{44e}\x{44f}\x{454}\x{456}\x{457}]"
7632             }
7633             },
7634             {
7635             "to" => "C",
7636             "from" => "\x{426}",
7637             "context" => {
7638             "before" => "[IEJY\x{418}\x{415}\x{419}\x{42e}\x{42f}\x{404}\x{406}\x{407}]"
7639             }
7640             },
7641             {
7642             "to" => "cz",
7643             "from" => "\x{446}"
7644             },
7645             {
7646             "to" => "CZ",
7647             "from" => "\x{426}",
7648             "context" => {
7649             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7650             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7651             }
7652             },
7653             {
7654             "to" => "Cz",
7655             "from" => "\x{426}"
7656             },
7657             {
7658             "to" => "shh",
7659             "from" => "\x{449}"
7660             },
7661             {
7662             "to" => "SHH",
7663             "from" => "\x{429}",
7664             "context" => {
7665             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7666             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7667             }
7668             },
7669             {
7670             "to" => "Shh",
7671             "from" => "\x{429}"
7672             },
7673             {
7674             "to" => "g`",
7675             "from" => "\x{491}"
7676             },
7677             {
7678             "to" => "G`",
7679             "from" => "\x{490}"
7680             },
7681             {
7682             "to" => "ye",
7683             "from" => "\x{454}"
7684             },
7685             {
7686             "to" => "YE",
7687             "from" => "\x{404}",
7688             "context" => {
7689             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7690             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7691             }
7692             },
7693             {
7694             "to" => "Ye",
7695             "from" => "\x{404}"
7696             },
7697             {
7698             "to" => "zh",
7699             "from" => "\x{436}"
7700             },
7701             {
7702             "to" => "ZH",
7703             "from" => "\x{416}",
7704             "context" => {
7705             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7706             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7707             }
7708             },
7709             {
7710             "to" => "Zh",
7711             "from" => "\x{416}"
7712             },
7713             {
7714             "to" => "y`",
7715             "from" => "\x{438}"
7716             },
7717             {
7718             "to" => "Y`",
7719             "from" => "\x{418}"
7720             },
7721             {
7722             "to" => "yi",
7723             "from" => "\x{457}"
7724             },
7725             {
7726             "to" => "YI",
7727             "from" => "\x{407}",
7728             "context" => {
7729             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7730             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7731             }
7732             },
7733             {
7734             "to" => "Yi",
7735             "from" => "\x{407}"
7736             },
7737             {
7738             "to" => "ch",
7739             "from" => "\x{447}"
7740             },
7741             {
7742             "to" => "CH",
7743             "from" => "\x{427}",
7744             "context" => {
7745             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7746             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7747             }
7748             },
7749             {
7750             "to" => "Ch",
7751             "from" => "\x{427}"
7752             },
7753             {
7754             "to" => "sh",
7755             "from" => "\x{448}"
7756             },
7757             {
7758             "to" => "SH",
7759             "from" => "\x{428}",
7760             "context" => {
7761             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7762             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7763             }
7764             },
7765             {
7766             "to" => "Sh",
7767             "from" => "\x{428}"
7768             },
7769             {
7770             "to" => "yu",
7771             "from" => "\x{44e}"
7772             },
7773             {
7774             "to" => "YU",
7775             "from" => "\x{42e}",
7776             "context" => {
7777             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7778             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7779             }
7780             },
7781             {
7782             "to" => "Yu",
7783             "from" => "\x{42e}"
7784             },
7785             {
7786             "to" => "ya",
7787             "from" => "\x{44f}"
7788             },
7789             {
7790             "to" => "YA",
7791             "from" => "\x{42f}",
7792             "context" => {
7793             "after" => "[\\p{IsUpper}\\p{IsSpace}]",
7794             "before" => "[\\p{IsUpper}\\p{IsSpace}]"
7795             }
7796             },
7797             {
7798             "to" => "Ya",
7799             "from" => "\x{42f}"
7800             },
7801             {
7802             "to" => "a",
7803             "from" => "\x{430}"
7804             },
7805             {
7806             "to" => "A",
7807             "from" => "\x{410}"
7808             },
7809             {
7810             "to" => "b",
7811             "from" => "\x{431}"
7812             },
7813             {
7814             "to" => "B",
7815             "from" => "\x{411}"
7816             },
7817             {
7818             "to" => "v",
7819             "from" => "\x{432}"
7820             },
7821             {
7822             "to" => "V",
7823             "from" => "\x{412}"
7824             },
7825             {
7826             "to" => "g",
7827             "from" => "\x{433}"
7828             },
7829             {
7830             "to" => "G",
7831             "from" => "\x{413}"
7832             },
7833             {
7834             "to" => "d",
7835             "from" => "\x{434}"
7836             },
7837             {
7838             "to" => "D",
7839             "from" => "\x{414}"
7840             },
7841             {
7842             "to" => "e",
7843             "from" => "\x{435}"
7844             },
7845             {
7846             "to" => "E",
7847             "from" => "\x{415}"
7848             },
7849             {
7850             "to" => "z",
7851             "from" => "\x{437}"
7852             },
7853             {
7854             "to" => "Z",
7855             "from" => "\x{417}"
7856             },
7857             {
7858             "to" => "j",
7859             "from" => "\x{439}"
7860             },
7861             {
7862             "to" => "J",
7863             "from" => "\x{419}"
7864             },
7865             {
7866             "to" => "i",
7867             "from" => "\x{456}"
7868             },
7869             {
7870             "to" => "I",
7871             "from" => "\x{406}"
7872             },
7873             {
7874             "to" => "k",
7875             "from" => "\x{43a}"
7876             },
7877             {
7878             "to" => "K",
7879             "from" => "\x{41a}"
7880             },
7881             {
7882             "to" => "l",
7883             "from" => "\x{43b}"
7884             },
7885             {
7886             "to" => "L",
7887             "from" => "\x{41b}"
7888             },
7889             {
7890             "to" => "m",
7891             "from" => "\x{43c}"
7892             },
7893             {
7894             "to" => "M",
7895             "from" => "\x{41c}"
7896             },
7897             {
7898             "to" => "n",
7899             "from" => "\x{43d}"
7900             },
7901             {
7902             "to" => "N",
7903             "from" => "\x{41d}"
7904             },
7905             {
7906             "to" => "o",
7907             "from" => "\x{43e}"
7908             },
7909             {
7910             "to" => "O",
7911             "from" => "\x{41e}"
7912             },
7913             {
7914             "to" => "p",
7915             "from" => "\x{43f}"
7916             },
7917             {
7918             "to" => "P",
7919             "from" => "\x{41f}"
7920             },
7921             {
7922             "to" => "r",
7923             "from" => "\x{440}"
7924             },
7925             {
7926             "to" => "R",
7927             "from" => "\x{420}"
7928             },
7929             {
7930             "to" => "s",
7931             "from" => "\x{441}"
7932             },
7933             {
7934             "to" => "S",
7935             "from" => "\x{421}"
7936             },
7937             {
7938             "to" => "t",
7939             "from" => "\x{442}"
7940             },
7941             {
7942             "to" => "T",
7943             "from" => "\x{422}"
7944             },
7945             {
7946             "to" => "u",
7947             "from" => "\x{443}"
7948             },
7949             {
7950             "to" => "U",
7951             "from" => "\x{423}"
7952             },
7953             {
7954             "to" => "f",
7955             "from" => "\x{444}"
7956             },
7957             {
7958             "to" => "F",
7959             "from" => "\x{424}"
7960             },
7961             {
7962             "to" => "x",
7963             "from" => "\x{445}"
7964             },
7965             {
7966             "to" => "X",
7967             "from" => "\x{425}"
7968             },
7969             {
7970             "to" => "`",
7971             "from" => "\x{42c}",
7972             "context" => {
7973             "after" => "\\p{IsUpper}"
7974             }
7975             },
7976             {
7977             "to" => "`",
7978             "from" => "\x{44c}"
7979             },
7980             {
7981             "to" => "#",
7982             "from" => "\x{2116}"
7983             }
7984             ],
7985             "reverse" => "true"
7986             }
7987             );
7988              
7989             1;
7990              
7991             # vim: set ft=perl sts=4 sw=4 ts=4 ai et: