diff options
Diffstat (limited to 'lib/unilbrk')
-rw-r--r-- | lib/unilbrk/internal.h | 43 | ||||
-rw-r--r-- | lib/unilbrk/lbrkprop1.h | 47 | ||||
-rw-r--r-- | lib/unilbrk/lbrkprop2.h | 2135 | ||||
-rw-r--r-- | lib/unilbrk/lbrktables.c | 113 | ||||
-rw-r--r-- | lib/unilbrk/lbrktables.h | 130 | ||||
-rw-r--r-- | lib/unilbrk/u16-possible-linebreaks.c | 310 | ||||
-rw-r--r-- | lib/unilbrk/u16-width-linebreaks.c | 80 | ||||
-rw-r--r-- | lib/unilbrk/u32-possible-linebreaks.c | 304 | ||||
-rw-r--r-- | lib/unilbrk/u32-width-linebreaks.c | 80 | ||||
-rw-r--r-- | lib/unilbrk/u8-possible-linebreaks.c | 314 | ||||
-rw-r--r-- | lib/unilbrk/u8-width-linebreaks.c | 82 | ||||
-rw-r--r-- | lib/unilbrk/ulc-common.c | 37 | ||||
-rw-r--r-- | lib/unilbrk/ulc-common.h | 37 | ||||
-rw-r--r-- | lib/unilbrk/ulc-possible-linebreaks.c | 80 | ||||
-rw-r--r-- | lib/unilbrk/ulc-width-linebreaks.c | 94 |
15 files changed, 2413 insertions, 1473 deletions
diff --git a/lib/unilbrk/internal.h b/lib/unilbrk/internal.h new file mode 100644 index 00000000..21cc4e3a --- /dev/null +++ b/lib/unilbrk/internal.h @@ -0,0 +1,43 @@ +/* Internal functions for line breaking of Unicode strings. + Copyright (C) 2001-2003, 2005-2022 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2021. + + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License and the GNU General Public License + for more details. + + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ + +extern void + u8_possible_linebreaks_loop (const uint8_t *s, size_t n, + const char *encoding, int cr, + char *_UC_RESTRICT p); +extern void + u16_possible_linebreaks_loop (const uint16_t *s, size_t n, + const char *encoding, int cr, + char *_UC_RESTRICT p); +extern void + u32_possible_linebreaks_loop (const uint32_t *s, size_t n, + const char *encoding, int cr, + char *_UC_RESTRICT p); + +extern int + u8_width_linebreaks_internal (const uint8_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, int cr, + char *p); diff --git a/lib/unilbrk/lbrkprop1.h b/lib/unilbrk/lbrkprop1.h index 71b3104b..e1e79fc9 100644 --- a/lib/unilbrk/lbrkprop1.h +++ b/lib/unilbrk/lbrkprop1.h @@ -1,30 +1,29 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Line breaking properties of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 9.0.0. */ - -/* Copyright (C) 2000-2002, 2004, 2008 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, +/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ + +/* Copyright (C) 2000-2022 Free Software Foundation, Inc. + + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #define lbrkprop_header_0 16 #define lbrkprop_header_1 15 @@ -36,7 +35,7 @@ typedef struct { int level1[15]; int level2[4 << 9]; - unsigned char level3[210 << 7]; + unsigned char level3[246 << 7]; } lbrkprop_t; extern const lbrkprop_t unilbrkprop; diff --git a/lib/unilbrk/lbrkprop2.h b/lib/unilbrk/lbrkprop2.h index 659a1085..a586094d 100644 --- a/lib/unilbrk/lbrkprop2.h +++ b/lib/unilbrk/lbrkprop2.h @@ -1,30 +1,29 @@ /* DO NOT EDIT! GENERATED AUTOMATICALLY! */ /* Line breaking properties of Unicode characters. */ -/* Generated automatically by gen-uni-tables.c for Unicode 9.0.0. */ +/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ -/* Copyright (C) 2000-2002, 2004, 2008 Free Software Foundation, Inc. +/* Copyright (C) 2000-2022 Free Software Foundation, Inc. - This program is free software: you can redistribute it and/or - modify it under the terms of either: + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ const lbrkprop_t unilbrkprop = { @@ -44,188 +43,188 @@ const lbrkprop_t unilbrkprop = 6912, 7040, 7168, 7296, 7424, 7552, 7680, 7808, 7936, 8064, 8192, 8320, 8448, 8576, 8704, 8832, 256, 256, 256, 8960, 256, 256, 9088, 9216, - 9344, 9472, 9600, 9728, 9856, 9984, 10112, 10240, - 10368, 10496, 10624, 10752, 10880, 11008, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 11136, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 11264, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 11392, 256, 256, 11520, 11648, 256, 11776, - 11904, 12032, 12160, 12288, 12416, 12544, 12672, 12800, - 12928, 13056, 13184, 13312, 13440, 13568, 13696, 12928, - 13056, 13184, 13312, 13440, 13568, 13696, 12928, 13056, - 13184, 13312, 13440, 13568, 13696, 12928, 13056, 13184, - 13312, 13440, 13568, 13696, 12928, 13056, 13184, 13312, - 13440, 13568, 13696, 12928, 13056, 13184, 13312, 13440, - 13568, 13696, 12928, 13056, 13184, 13312, 13440, 13568, - 13696, 12928, 13056, 13184, 13312, 13440, 13568, 13696, - 12928, 13056, 13184, 13312, 13440, 13568, 13696, 12928, - 13056, 13184, 13312, 13440, 13568, 13696, 12928, 13056, - 13184, 13312, 13440, 13568, 13696, 12928, 13056, 13184, - 13312, 13440, 13568, 13696, 12928, 13056, 13184, 13824, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 10112, 10112, 10112, 10112, 13952, 14080, - 256, 256, 14208, 14336, 14464, 14592, 14720, 14848, - 14976, 15104, 15232, 15360, -1, 15488, 15616, 15744, - 256, 15872, 16000, -1, 256, 256, 16128, -1, - 16256, 16384, 16512, 16640, 16768, 16896, 17024, 17152, - 17280, 17408, -1, -1, 17536, -1, -1, -1, - 17664, 17792, 17920, 18048, 18176, 18304, 18432, -1, - 18560, 18688, -1, 18816, 18944, 19072, 19200, -1, - -1, 19328, -1, -1, -1, 19456, -1, -1, - 19584, 19712, -1, -1, -1, -1, -1, -1, - 256, 256, 256, 256, 256, 256, 256, 19840, - 19968, 256, 20096, -1, -1, -1, -1, -1, + 256, 9344, 9472, 9600, 9728, 9856, 9984, 10112, + 10240, 10368, 10496, 10624, 10752, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 10880, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 11008, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 11136, 256, 256, 11264, 11392, 256, 11520, + 11648, 11776, 11904, 12032, 12160, 12288, 12416, 12544, + 12672, 12800, 12928, 13056, 13184, 13312, 13440, 12672, + 12800, 12928, 13056, 13184, 13312, 13440, 12672, 12800, + 12928, 13056, 13184, 13312, 13440, 12672, 12800, 12928, + 13056, 13184, 13312, 13440, 12672, 12800, 12928, 13056, + 13184, 13312, 13440, 12672, 12800, 12928, 13056, 13184, + 13312, 13440, 12672, 12800, 12928, 13056, 13184, 13312, + 13440, 12672, 12800, 12928, 13056, 13184, 13312, 13440, + 12672, 12800, 12928, 13056, 13184, 13312, 13440, 12672, + 12800, 12928, 13056, 13184, 13312, 13440, 12672, 12800, + 12928, 13056, 13184, 13312, 13440, 12672, 12800, 12928, + 13056, 13184, 13312, 13440, 12672, 12800, 12928, 13568, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 256, 256, 256, 256, 20224, 20352, 20480, 256, - 20608, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 256, 256, 256, 20736, 20864, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 9984, 9984, 9984, 9984, 13696, 13824, + 256, 256, 13952, 14080, 14208, 14336, 14464, 14592, + 14720, 14848, 14976, 15104, -1, 15232, 15360, 15488, + 256, 15616, 15744, 15872, 256, 256, 16000, 16128, + 16256, 16384, 16512, 16640, 16768, 16896, 17024, 17152, + 17280, 17408, 17536, -1, 17664, 17792, 17920, 18048, + 18176, 18304, 18432, 18560, 18688, 18816, 18944, -1, + 19072, 19200, -1, 19328, 19456, 19584, 19712, -1, + 19840, 19968, 20096, 20224, 20352, 20480, -1, -1, + 20608, 20736, 20864, 20992, -1, 21120, -1, 21248, + 256, 256, 256, 256, 256, 256, 256, 21376, + 21504, 256, 21632, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 21760, + 256, 256, 256, 256, 21888, 22016, 22144, 256, + 22272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 256, 256, 256, 22400, 22528, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 256, 256, 256, 256, 20992, 21120, 21248, 21376, - -1, -1, -1, -1, -1, -1, 21504, 21632, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 21760, - 10112, 10112, 10112, 10112, 10112, 21888, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 256, 256, 256, 256, 22656, 22784, 22912, 23040, + -1, -1, -1, -1, 23168, 23296, 23424, 23552, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 23680, + 9984, 9984, 9984, 9984, 9984, 9984, 256, 256, + 256, 23808, 23936, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22016, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22144, 22272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 24064, + 9984, 9984, 24192, 9984, 9984, 24320, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 24448, 24576, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 256, 22400, 22528, 22656, 22784, -1, 22912, -1, - 23040, 23168, 23296, 256, 256, 23424, 256, 23552, - 256, 256, 256, 256, 23680, 23808, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 23936, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 256, 24064, 24192, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 24320, 24448, -1, -1, - 10112, 10112, 24576, 24704, 10112, 10112, 10112, 24832, - 24960, 25088, 25216, 25344, 25472, 25600, 25728, 25856, - 25984, 26112, 26240, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 26368, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 10112, - 10112, 10112, 10112, 10112, 10112, 10112, 10112, 26368, - 26496, -1, 26624, 26752, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 24704, 21632, + 256, 24832, 24960, 25088, 25216, 25344, 25472, -1, + 25600, 25728, 25856, 256, 256, 25984, 256, 26112, + 256, 256, 256, 256, 26240, 26368, -1, -1, + -1, -1, -1, -1, -1, -1, 26496, -1, + 26624, -1, 26752, -1, -1, 26880, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 27008, + 256, 27136, 27264, -1, -1, -1, -1, -1, + 27392, 27520, 27648, -1, 27776, 27904, -1, -1, + 28032, 28160, 28288, 28416, 28544, 28672, 9984, 28800, + 28928, 29056, 29184, 29312, 29440, 29568, 29696, 29824, + 29952, 30080, 30208, 30336, 30464, 30592, 256, 30720, + 28672, 28672, 28672, 28672, 28672, 28672, 28672, 30848, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 9984, + 9984, 9984, 9984, 9984, 9984, 9984, 9984, 30976, + 31104, -1, 31232, 31360, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -292,29 +291,29 @@ const lbrkprop_t unilbrkprop = }, { LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_CM, LBP_BA, LBP_BK, LBP_BK, LBP_BK, LBP_BK, LBP_CM, LBP_CM, + LBP_CM, LBP_BA, LBP_LF, LBP_BK, LBP_BK, LBP_CR, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_SP, LBP_EX, LBP_QU, LBP_AL, LBP_PR, LBP_PO, LBP_AL, LBP_QU, - LBP_OP, LBP_CP, LBP_AL, LBP_PR, LBP_IS, LBP_HY, LBP_IS, LBP_SY, + LBP_OP1, LBP_CP1, LBP_AL, LBP_PR, LBP_IS, LBP_HY, LBP_IS, LBP_SY, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_IS, LBP_IS, LBP_AL, LBP_AL, LBP_AL, LBP_EX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_PR, LBP_CP, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_PR, LBP_CP1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_BA, LBP_CL, LBP_AL, LBP_CM, + LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_BA, LBP_CL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BK, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_GL, LBP_OP, LBP_PO, LBP_PR, LBP_PR, LBP_PR, LBP_AL, LBP_AI, + LBP_GL, LBP_OP1, LBP_PO, LBP_PR, LBP_PR, LBP_PR, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_QU, LBP_AL, LBP_BA, LBP_AL, LBP_AL, LBP_PO, LBP_PR, LBP_AI, LBP_AI, LBP_BB, LBP_AL, LBP_AI, LBP_AI, - LBP_AI, LBP_AI, LBP_AI, LBP_QU, LBP_AI, LBP_AI, LBP_AI, LBP_OP, + LBP_AI, LBP_AI, LBP_AI, LBP_QU, LBP_AI, LBP_AI, LBP_AI, LBP_OP1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, @@ -415,12 +414,12 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_XX, LBP_IS, LBP_BA, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_PR, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_IS, LBP_BA, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_PR, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, @@ -432,13 +431,13 @@ const lbrkprop_t unilbrkprop = LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_HL, - LBP_HL, LBP_HL, LBP_HL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_HL, LBP_HL, LBP_HL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_HL, LBP_HL, LBP_HL, LBP_HL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_PO, LBP_PO, LBP_IS, LBP_IS, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_CM, LBP_CM, LBP_CM, LBP_EX, LBP_CM, LBP_XX, LBP_EX, LBP_EX, + LBP_CM, LBP_CM, LBP_CM, LBP_EX, LBP_CM, LBP_EX, LBP_EX, LBP_EX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -498,7 +497,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_IS, LBP_EX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_IS, LBP_EX, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_PR, LBP_PR, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, @@ -511,21 +510,21 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_AL, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, @@ -562,7 +561,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_PO, LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_PO, LBP_AL, LBP_PR, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_PO, LBP_AL, LBP_PR, LBP_AL, LBP_AL, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -577,7 +576,7 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, - LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_XX, LBP_XX, + LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, @@ -594,7 +593,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_AL, LBP_PR, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -605,7 +604,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, @@ -627,23 +626,23 @@ const lbrkprop_t unilbrkprop = LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PR, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_CM, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, - LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BB, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_BB, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -654,19 +653,19 @@ const lbrkprop_t unilbrkprop = LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_CM, LBP_CM, + LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_CM, @@ -675,7 +674,7 @@ const lbrkprop_t unilbrkprop = LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL, + LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -707,14 +706,14 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_XX, LBP_SA, - LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_XX, LBP_SA, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, - LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, - LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_SA, - LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA, + LBP_XX, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_SA, LBP_SA, + LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, + LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, - LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, + LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_SA, + LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, + LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, + LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_SA, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, @@ -730,7 +729,7 @@ const lbrkprop_t unilbrkprop = LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_CM, LBP_AL, LBP_CM, - LBP_AL, LBP_CM, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_CM, LBP_CM, + LBP_AL, LBP_CM, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -902,7 +901,7 @@ const lbrkprop_t unilbrkprop = LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -916,9 +915,9 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_XX, @@ -948,7 +947,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_EX, LBP_EX, LBP_BA, LBP_BA, LBP_BB, LBP_AL, - LBP_EX, LBP_EX, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_GL, LBP_XX, + LBP_EX, LBP_EX, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_GL, LBP_CM, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -962,7 +961,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1034,6 +1033,8 @@ const lbrkprop_t unilbrkprop = LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -1041,8 +1042,6 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1052,13 +1051,13 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1093,20 +1092,20 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_XX, - LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_CM, + LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1121,8 +1120,8 @@ const lbrkprop_t unilbrkprop = LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, @@ -1158,28 +1157,28 @@ const lbrkprop_t unilbrkprop = LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_GL, LBP_BA, LBP_BA, LBP_BA, LBP_ZW, LBP_CM, LBP_ZWJ, LBP_CM, LBP_CM, LBP_BA, LBP_GL, LBP_BA, LBP_BA, LBP_B2, LBP_AI, LBP_AI, LBP_AL, - LBP_QU, LBP_QU, LBP_OP, LBP_QU, LBP_QU, LBP_QU, LBP_OP, LBP_QU, + LBP_QU, LBP_QU, LBP_OP1, LBP_QU, LBP_QU, LBP_QU, LBP_OP1, LBP_QU, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_IN, LBP_IN, LBP_IN, LBP_BA, LBP_BK, LBP_BK, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_GL, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_PO, LBP_AL, LBP_QU, LBP_QU, LBP_AI, LBP_NS, LBP_NS, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_IS, LBP_OP, LBP_CL, LBP_NS, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_IS, LBP_OP1, LBP_CL, LBP_NS, LBP_NS, LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_BA, LBP_WJ, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AI, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AI, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PO, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PO, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PO, LBP_PR, LBP_PR, LBP_PO, LBP_PR, - LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, + LBP_PO, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_PR, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, @@ -1252,11 +1251,11 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_OP, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_OP2, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1281,8 +1280,8 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1347,22 +1346,22 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AI, LBP_AI, LBP_AL, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_AI, LBP_AI, - LBP_ID, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_ID, LBP_ID, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_AI, LBP_AI, + LBP_ID1, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AI, - LBP_ID, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AI, + LBP_ID1, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AI, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1370,17 +1369,17 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_ID, LBP_AL, LBP_ID, - LBP_ID, LBP_ID, LBP_AI, LBP_ID, LBP_ID, LBP_AI, LBP_AI, LBP_AI, - LBP_ID, LBP_ID, LBP_AI, LBP_AI, LBP_ID, LBP_AI, LBP_AI, LBP_ID, - LBP_ID, LBP_ID, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AI, LBP_AI, LBP_ID, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, - LBP_AI, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AI, LBP_ID, - LBP_ID, LBP_EB, LBP_ID, LBP_AI, LBP_AI, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_AL, - LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_ID1, LBP_AL, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_AI, LBP_ID1, LBP_ID1, LBP_AI, LBP_AI, LBP_AI, + LBP_ID1, LBP_ID1, LBP_AI, LBP_AI, LBP_ID1, LBP_AI, LBP_AI, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AI, LBP_AI, LBP_ID1, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, + LBP_AI, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AI, LBP_ID1, + LBP_ID1, LBP_EB, LBP_ID1, LBP_AI, LBP_AI, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, + LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1391,9 +1390,9 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, - LBP_QU, LBP_AL, LBP_EX, LBP_EX, LBP_ID, LBP_AL, LBP_AL, LBP_AL, - LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, - LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_AI, LBP_AI, + LBP_QU, LBP_AL, LBP_EX, LBP_EX, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, + LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, + LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, @@ -1403,17 +1402,17 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, - LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, + LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, - LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, - LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, + LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, + LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, + LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1422,11 +1421,11 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1445,32 +1444,16 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1526,204 +1509,188 @@ const lbrkprop_t unilbrkprop = LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_QU, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BA, - LBP_OP, LBP_BA, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_AL, LBP_AL, - LBP_QU, LBP_QU, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, - LBP_OP, LBP_CL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_EX, LBP_AL, + LBP_OP1, LBP_BA, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_AL, LBP_AL, + LBP_QU, LBP_QU, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, + LBP_OP1, LBP_CL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_EX, LBP_AL, LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_B2, LBP_B2, LBP_BA, LBP_BA, LBP_BA, LBP_AL, - LBP_BA, LBP_BA, LBP_OP, LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_BA, LBP_CL, LBP_CL, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID, - LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, - LBP_OP, LBP_CL, LBP_ID, LBP_ID, LBP_OP, LBP_CL, LBP_OP, LBP_CL, - LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_NS, LBP_OP, LBP_CL, LBP_CL, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_CM, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_ID, LBP_ID, LBP_ID, - LBP_XX, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, - LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_XX, - LBP_XX, LBP_CM, LBP_CM, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_ID, - LBP_NS, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, - LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_NS, LBP_ID, LBP_NS, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_ID, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, - LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_BA, LBP_BA, LBP_OP1, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, + LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BA, LBP_AL, LBP_BA, LBP_BA, + LBP_AL, LBP_AL, LBP_AL, LBP_EX, LBP_EX, LBP_OP1, LBP_CL, LBP_OP1, + LBP_CL, LBP_OP1, LBP_CL, LBP_OP1, LBP_CL, LBP_BA, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_XX, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_BA, LBP_CL, LBP_CL, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, LBP_ID1, + LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, + LBP_OP2, LBP_CL, LBP_ID1, LBP_ID1, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, + LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_NS, LBP_OP2, LBP_CL, LBP_CL, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_CM, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_NS, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_XX, LBP_NS, LBP_ID1, LBP_NS, LBP_ID1, LBP_NS, LBP_ID1, LBP_NS, + LBP_ID1, LBP_NS, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, LBP_NS, LBP_ID1, LBP_NS, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_NS, LBP_XX, + LBP_XX, LBP_CM, LBP_CM, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_ID1, + LBP_NS, LBP_NS, LBP_ID1, LBP_NS, LBP_ID1, LBP_NS, LBP_ID1, LBP_NS, + LBP_ID1, LBP_NS, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, LBP_NS, LBP_ID1, LBP_NS, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_NS, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_ID1, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_XX, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1768,23 +1735,23 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, + LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1810,7 +1777,7 @@ const lbrkprop_t unilbrkprop = LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BB, LBP_AL, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BB, LBP_AL, LBP_AL, LBP_CM, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -1887,8 +1854,8 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2059,7 +2026,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2074,9 +2041,9 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CL, LBP_OP, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CL, LBP_OP1, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2092,27 +2059,27 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_IS, LBP_CL, LBP_CL, LBP_IS, LBP_IS, LBP_EX, LBP_EX, LBP_OP, + LBP_IS, LBP_CL, LBP_CL, LBP_IS, LBP_IS, LBP_EX, LBP_EX, LBP_OP2, LBP_CL, LBP_IN, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_CL, LBP_OP, - LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, - LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_ID, LBP_ID, LBP_OP, - LBP_CL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_CL, LBP_ID, LBP_CL, LBP_XX, LBP_NS, LBP_NS, LBP_EX, LBP_EX, - LBP_ID, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_OP, LBP_CL, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, - LBP_ID, LBP_PR, LBP_PO, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_OP2, LBP_CL, LBP_OP2, + LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, + LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_ID1, LBP_ID1, LBP_OP2, + LBP_CL, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_CL, LBP_ID1, LBP_CL, LBP_XX, LBP_NS, LBP_NS, LBP_EX, LBP_EX, + LBP_ID1, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_OP2, LBP_CL, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, + LBP_ID1, LBP_PR, LBP_PO, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2131,35 +2098,35 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_WJ, - LBP_XX, LBP_EX, LBP_ID, LBP_ID, LBP_PR, LBP_PO, LBP_ID, LBP_ID, - LBP_OP, LBP_CL, LBP_ID, LBP_ID, LBP_CL, LBP_ID, LBP_CL, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_NS, LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_EX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_ID, LBP_CL, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_OP, LBP_ID, LBP_CL, LBP_ID, LBP_OP, - LBP_CL, LBP_CL, LBP_OP, LBP_CL, LBP_CL, LBP_NS, LBP_ID, LBP_NS, + LBP_XX, LBP_EX, LBP_ID1, LBP_ID1, LBP_PR, LBP_PO, LBP_ID1, LBP_ID1, + LBP_OP2, LBP_CL, LBP_ID1, LBP_ID1, LBP_CL, LBP_ID1, LBP_CL, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_NS, LBP_NS, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_OP2, LBP_ID1, LBP_CL, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_OP2, LBP_ID1, LBP_CL, LBP_ID1, LBP_OP2, + LBP_CL, LBP_CL, LBP_OP2, LBP_CL, LBP_CL, LBP_NS, LBP_ID1, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_NS, - LBP_NS, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_NS, LBP_NS, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, - LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_XX, LBP_XX, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, - LBP_PO, LBP_PR, LBP_ID, LBP_ID, LBP_ID, LBP_PR, LBP_PR, LBP_XX, + LBP_NS, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_NS, LBP_NS, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, + LBP_XX, LBP_XX, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_XX, LBP_XX, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_XX, LBP_XX, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_XX, LBP_XX, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, + LBP_PO, LBP_PR, LBP_ID1, LBP_ID1, LBP_ID1, LBP_PR, LBP_PR, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CB, LBP_AI, LBP_XX, LBP_XX, @@ -2214,7 +2181,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -2248,7 +2215,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2305,6 +2272,22 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2323,6 +2306,22 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2393,10 +2392,10 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2483,6 +2482,22 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -2499,6 +2514,54 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_CM, LBP_CM, LBP_BA, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2513,7 +2576,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_CM, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2523,8 +2586,8 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA, - LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_BA, LBP_BA, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2539,7 +2602,7 @@ const lbrkprop_t unilbrkprop = LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, - LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2556,7 +2619,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA, LBP_AL, - LBP_BA, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, + LBP_BA, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_AL, LBP_BB, LBP_AL, LBP_BA, LBP_BA, LBP_BA, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2602,7 +2665,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM, + LBP_AL, LBP_AL, LBP_XX, LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, @@ -2622,8 +2685,8 @@ const lbrkprop_t unilbrkprop = LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, - LBP_NU, LBP_NU, LBP_XX, LBP_BA, LBP_XX, LBP_AL, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_NU, LBP_NU, LBP_BA, LBP_BA, LBP_XX, LBP_AL, LBP_CM, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -2682,7 +2745,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -2694,11 +2757,27 @@ const lbrkprop_t unilbrkprop = LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, - LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_SA, + LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_SA, LBP_SA, LBP_BA, LBP_BA, LBP_BA, LBP_SA, + LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_SA, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -2723,6 +2802,19 @@ const lbrkprop_t unilbrkprop = LBP_NU, LBP_NU, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_XX, LBP_AL, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, + LBP_CM, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, + LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_BA, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -2730,6 +2822,39 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_AL, LBP_BB, LBP_AL, LBP_CM, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_BB, + LBP_AL, LBP_BA, LBP_BA, LBP_BA, LBP_BA, LBP_BB, LBP_AL, LBP_CM, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_BA, LBP_BA, LBP_BA, LBP_AL, LBP_BB, LBP_BB, + LBP_BB, LBP_BA, LBP_BA, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2738,6 +2863,8 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2771,6 +2898,70 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, + LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_XX, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_CM, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, + LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, + LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, + LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_PO, LBP_PO, + LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2819,6 +3010,8 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2830,13 +3023,12 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_OP, LBP_OP, LBP_OP, LBP_CL, LBP_CL, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, - LBP_OP, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2845,10 +3037,13 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_OP1, LBP_OP1, LBP_OP1, LBP_CL, LBP_CL, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, + LBP_OP1, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2866,15 +3061,27 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_OP, LBP_CL, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_OP1, LBP_CL, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_GL, LBP_GL, LBP_GL, LBP_GL, LBP_GL, LBP_GL, LBP_GL, LBP_OP1, + LBP_CL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -2892,7 +3099,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP, LBP_CL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_OP1, LBP_CL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2929,18 +3136,18 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_BA, LBP_BA, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2979,6 +3186,14 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -2987,15 +3202,39 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_BA, + LBP_BA, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3007,43 +3246,55 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_NS, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_NS, LBP_NS, LBP_NS, LBP_NS, LBP_GL, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_ID, LBP_ID, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -3059,6 +3310,42 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_NS, LBP_NS, LBP_NS, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NS, LBP_NS, LBP_NS, LBP_NS, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3091,6 +3378,22 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3136,7 +3439,7 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3155,6 +3458,22 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3169,8 +3488,8 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, - LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3283,6 +3602,22 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, @@ -3304,6 +3639,54 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, + LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_CM, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, + LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, + LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_PR, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3324,9 +3707,57 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_CM, LBP_CM, LBP_CM, LBP_CM, - LBP_CM, LBP_CM, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_CM, LBP_CM, LBP_CM, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, - LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_OP, LBP_OP, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_OP1, LBP_OP1, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_PO, LBP_AL, LBP_AL, LBP_AL, + LBP_PO, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, @@ -3363,12 +3794,44 @@ const lbrkprop_t unilbrkprop = LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, + LBP_ID2, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID2, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID2, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, - LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_ID, LBP_ID, LBP_ID, + LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, - LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_ID, + LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, @@ -3376,7 +3839,7 @@ const lbrkprop_t unilbrkprop = LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, - LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_AI, LBP_AI, LBP_AL, LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, @@ -3384,129 +3847,161 @@ const lbrkprop_t unilbrkprop = LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, - LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_RI, LBP_RI, + LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_AI, LBP_ID1, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, LBP_RI, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_EM, LBP_EM, LBP_EM, LBP_EM, LBP_EM, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_ID, LBP_ID, LBP_EB, LBP_EB, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_ID1, LBP_ID1, LBP_EB, + LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_EM, LBP_EM, LBP_EM, LBP_EM, LBP_EM, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, + LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, + LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, - LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_EB, - LBP_EB, LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_ID, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, - LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_EB, LBP_EB, LBP_EB, LBP_ID, LBP_EB, LBP_EB, LBP_EB, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_AL, LBP_ID, LBP_AL, LBP_ID, LBP_AL, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, - LBP_ID, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_EB, - LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, + LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, + LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_AL, LBP_ID1, LBP_AL, LBP_ID1, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, + LBP_ID1, LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_QU, LBP_QU, LBP_QU, LBP_NS, LBP_NS, LBP_NS, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_EB, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_EB, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3521,8 +4016,8 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3533,14 +4028,14 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, @@ -3548,61 +4043,141 @@ const lbrkprop_t unilbrkprop = LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_AL, LBP_AL, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, - LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_EB, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_EB, LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, - LBP_EB, LBP_EB, LBP_ID, LBP_ID, LBP_EB, LBP_EB, LBP_EB, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, - LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_ID, LBP_XX, LBP_XX, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_EB, LBP_ID1, LBP_ID1, LBP_EB, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, + LBP_EB, LBP_EB, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_ID1, + LBP_EB, LBP_EB, LBP_ID1, LBP_EB, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, + LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, + LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_EB, LBP_EB, LBP_EB, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_EB, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, LBP_AL, + LBP_AL, LBP_AL, LBP_AL, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, LBP_NU, + LBP_NU, LBP_NU, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, + LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_ID2, LBP_XX, LBP_XX, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, + LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_ID1, LBP_XX, LBP_XX, LBP_XX, LBP_CM, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, LBP_XX, diff --git a/lib/unilbrk/lbrktables.c b/lib/unilbrk/lbrktables.c index a0048457..0dcc757a 100644 --- a/lib/unilbrk/lbrktables.c +++ b/lib/unilbrk/lbrktables.c @@ -1,28 +1,29 @@ -/* Line breaking auxiliary tables. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. - Written by Bruno Haible <bruno@clisp.org>, 2001. +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +/* Table that encodes several line breaking rules. */ +/* Generated automatically by gen-uni-tables.c for Unicode 14.0.0. */ - This program is free software: you can redistribute it and/or - modify it under the terms of either: +/* Copyright (C) 2001-2022 Free Software Foundation, Inc. - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> @@ -32,47 +33,43 @@ /* Define unilbrkprop, table of line breaking properties. */ #include "unilbrk/lbrkprop2.h" -const unsigned char unilbrk_table[30][30] = +const unsigned char unilbrk_table[33][33] = { /* after */ - /* WJ GL B2 BA BB HY CL CP EX IN NS OP QU IS NU PO PR SY AL H2 H3 ID JL JV JT HL RI ZWJ EB EM */ -/* WJ */ { P, I, I, I, I, I, P, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, }, -/* GL */ { P, I, I, I, I, I, P, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, }, -/* B2 */ { P, I, P, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* BA */ { P, D, D, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* BB */ { P, I, I, I, I, I, P, P, P, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, }, -/* HY */ { P, D, D, I, D, I, P, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* CL */ { P, I, D, I, D, I, P, P, P, D, P, D, I, P, D, I, I, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* CP */ { P, I, D, I, D, I, P, P, P, D, P, D, I, P, I, I, I, P, I, D, D, D, D, D, D, I, D, I, D, D, }, -/* EX */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* IN */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* NS */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* OP */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, }, -/* QU */ { P, I, I, I, I, I, P, P, P, I, I, P, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, }, -/* IS */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* NU */ { P, I, D, I, D, I, P, P, P, I, I, I, I, P, I, I, I, P, I, D, D, D, D, D, D, I, D, I, D, D, }, -/* PO */ { P, I, D, I, D, I, P, P, P, D, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, I, D, I, D, D, }, -/* PR */ { P, I, D, I, D, I, P, P, P, D, I, I, I, P, I, D, D, P, I, I, I, I, I, I, I, I, D, I, I, I, }, -/* SY */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, I, D, D, P, D, D, D, D, D, D, D, I, D, I, D, D, }, -/* AL */ { P, I, D, I, D, I, P, P, P, I, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, I, D, I, D, D, }, -/* H2 */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, I, I, D, D, I, D, D, }, -/* H3 */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, D, D, I, D, D, }, -/* ID */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, I, D, D, }, -/* JL */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, I, I, D, I, I, D, D, D, I, D, D, }, -/* JV */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, I, I, D, D, I, D, D, }, -/* JT */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, D, D, I, D, D, }, -/* HL */ { P, I, D, I, D, I, P, P, P, I, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, I, D, I, D, D, }, -/* RI */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, D, D, D, I, D, I, I, D, D, }, -/* ZWJ */ { P, I, D, I, D, I, P, P, P, D, I, D, I, P, D, D, D, P, D, D, D, I, D, D, I, D, I, I, I, I, }, -/* EB */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, D, I, I, D, I, }, -/* EM */ { P, I, D, I, D, I, P, P, P, I, I, D, I, P, D, I, D, P, D, D, D, D, D, D, I, D, I, I, D, D, }, + /* WJ GL B2 BA BB HY CL CP1 CP2 EX IN NS OP1 OP2 QU IS NU PO PR SY AL H2 H3 ID1 ID2 JL JV JT HL RI ZWJ EB EM */ +/* WJ */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, }, +/* GL */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, }, +/* B2 */ { P, I, P, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* BA */ { P, D, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* BB */ { P, I, I, I, I, I, P, P, P, P, I, I, I, I, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, }, +/* HY */ { P, D, D, I, D, I, P, P, P, P, I, I, D, D, I, P, I, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* CL */ { P, I, D, I, D, I, P, P, P, P, I, P, D, D, I, P, D, I, I, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* CP1 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, I, D, D, }, +/* CP2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, I, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* EX */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* IN */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* NS */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* OP1 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, }, +/* OP2 */ { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, }, +/* QU */ { P, I, I, I, I, I, P, P, P, P, I, I, P, P, I, P, I, I, I, P, I, I, I, I, I, I, I, I, I, I, I, I, I, }, +/* IS */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, I, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* NU */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, I, D, D, }, +/* PO */ { P, I, D, I, D, I, P, P, P, P, I, I, I, I, I, P, I, D, D, P, I, D, D, D, D, D, D, D, I, D, I, D, D, }, +/* PR */ { P, I, D, I, D, I, P, P, P, P, I, I, I, I, I, P, I, D, D, P, I, I, I, I, I, I, I, I, I, D, I, I, I, }, +/* SY */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, I, D, D, P, D, D, D, D, D, D, D, D, I, D, D, D, D, }, +/* AL */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, I, D, D, }, +/* H2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, I, I, D, D, D, D, D, }, +/* H3 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, I, D, D, D, D, D, }, +/* ID1 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* ID2 */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, I, }, +/* JL */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, I, I, D, D, I, I, D, D, D, D, D, D, }, +/* JV */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, I, I, D, D, D, D, D, }, +/* JT */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, I, D, D, D, D, D, }, +/* HL */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, P, I, I, I, P, I, D, D, D, D, D, D, D, I, D, I, D, D, }, +/* RI */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, D, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, +/* ZWJ */ { P, I, D, I, D, I, P, P, P, P, I, I, I, D, I, P, I, I, I, P, I, D, D, I, I, D, D, D, I, D, I, I, I, }, +/* EB */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, I, }, +/* EM */ { P, I, D, I, D, I, P, P, P, P, I, I, D, D, I, P, D, I, D, P, D, D, D, D, D, D, D, D, D, D, D, D, D, }, /* "" */ /* before */ }; -/* Note: The (IS,AL) entry has been changed from I to D. In other words, the - rule "Do not break between numeric punctuation and alphabetics" is not - implemented here. We want to break before the HTML tag in strings like - "<P>Some sentence.</P>" */ -/* Note: The (B2,B2) entry should probably be D instead of P. */ -/* Note: The (PR,ID) entry should probably be D instead of I. */ -/* Note: The (WJ,*) and (GL,*) entries should probably be P instead of I. */ diff --git a/lib/unilbrk/lbrktables.h b/lib/unilbrk/lbrktables.h index 7e6ad689..60121ea8 100644 --- a/lib/unilbrk/lbrktables.h +++ b/lib/unilbrk/lbrktables.h @@ -1,28 +1,27 @@ /* Line breaking auxiliary tables. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include "unitypes.h" @@ -30,50 +29,55 @@ enum { - /* Values >= 30 are resolved at run time. */ - LBP_BK = 30, /* mandatory break */ -/*LBP_CR, carriage return - not used here because it's a DOSism */ -/*LBP_LF, line feed - not used here because it's a DOSism */ - LBP_CM = 31, /* attached characters and combining marks */ -/*LBP_NL, next line - not used here because it's equivalent to LBP_BK */ -/*LBP_SG, surrogates - not used here because they are not characters */ - LBP_WJ = 0, /* word joiner */ - LBP_ZW = 32, /* zero width space */ - LBP_GL = 1, /* non-breaking (glue) */ - LBP_SP = 33, /* space */ - LBP_B2 = 2, /* break opportunity before and after */ - LBP_BA = 3, /* break opportunity after */ - LBP_BB = 4, /* break opportunity before */ - LBP_HY = 5, /* hyphen */ - LBP_CB = 34, /* contingent break opportunity */ - LBP_CL = 6, /* closing punctuation */ - LBP_CP = 7, /* closing parenthesis */ - LBP_EX = 8, /* exclamation/interrogation */ - LBP_IN = 9, /* inseparable */ - LBP_NS = 10, /* non starter */ - LBP_OP = 11, /* opening punctuation */ - LBP_QU = 12, /* ambiguous quotation */ - LBP_IS = 13, /* infix separator (numeric) */ - LBP_NU = 14, /* numeric */ - LBP_PO = 15, /* postfix (numeric) */ - LBP_PR = 16, /* prefix (numeric) */ - LBP_SY = 17, /* symbols allowing breaks */ - LBP_AI = 35, /* ambiguous (alphabetic or ideograph) */ - LBP_AL = 18, /* ordinary alphabetic and symbol characters */ -/*LBP_CJ, conditional Japanese starters, resolved to NS */ - LBP_H2 = 19, /* Hangul LV syllable */ - LBP_H3 = 20, /* Hangul LVT syllable */ - LBP_HL = 25, /* Hebrew letter */ - LBP_ID = 21, /* ideographic */ - LBP_JL = 22, /* Hangul L Jamo */ - LBP_JV = 23, /* Hangul V Jamo */ - LBP_JT = 24, /* Hangul T Jamo */ - LBP_RI = 26, /* regional indicator */ - LBP_SA = 36, /* complex context (South East Asian) */ - LBP_ZWJ = 27, /* zero width joiner */ - LBP_EB = 28, /* emoji base */ - LBP_EM = 29, /* emoji modifier */ - LBP_XX = 37 /* unknown */ + /* Values >= 33 are resolved at run time. */ + LBP_BK = 33, /* mandatory break */ + LBP_CR = 34, /* carriage return */ + LBP_LF = 35, /* line feed */ + LBP_CM = 36, /* attached characters and combining marks */ +/*LBP_NL, next line - not used here because it's equivalent to LBP_BK */ +/*LBP_SG, surrogates - not used here because they are not characters */ + LBP_WJ = 0, /* word joiner */ + LBP_ZW = 37, /* zero width space */ + LBP_GL = 1, /* non-breaking (glue) */ + LBP_SP = 38, /* space */ + LBP_B2 = 2, /* break opportunity before and after */ + LBP_BA = 3, /* break opportunity after */ + LBP_BB = 4, /* break opportunity before */ + LBP_HY = 5, /* hyphen */ + LBP_CB = 39, /* contingent break opportunity */ + LBP_CL = 6, /* closing punctuation */ + LBP_CP1 = 7, /* closing parenthesis, non-EastAsian character */ + LBP_CP2 = 8, /* closing parenthesis, EastAsian character */ + LBP_EX = 9, /* exclamation/interrogation */ + LBP_IN = 10, /* inseparable */ + LBP_NS = 11, /* non starter */ + LBP_OP1 = 12, /* opening punctuation, non-EastAsian character */ + LBP_OP2 = 13, /* opening punctuation, EastAsian character */ + LBP_QU = 14, /* ambiguous quotation */ + LBP_IS = 15, /* infix separator (numeric) */ + LBP_NU = 16, /* numeric */ + LBP_PO = 17, /* postfix (numeric) */ + LBP_PR = 18, /* prefix (numeric) */ + LBP_SY = 19, /* symbols allowing breaks */ + LBP_AI = 40, /* ambiguous (alphabetic or ideograph) */ + LBP_AL = 20, /* ordinary alphabetic and symbol characters */ +/*LBP_CJ, conditional Japanese starter, resolved to NS */ + LBP_H2 = 21, /* Hangul LV syllable */ + LBP_H3 = 22, /* Hangul LVT syllable */ + LBP_HL = 28, /* Hebrew letter */ + LBP_ID1 = 23, /* ideographic */ + LBP_ID2 = 24, /* ideographic and potential future emoji */ + LBP_JL = 25, /* Hangul L Jamo */ + LBP_JV = 26, /* Hangul V Jamo */ + LBP_JT = 27, /* Hangul T Jamo */ + LBP_RI = 29, /* regional indicator */ + LBP_SA = 41, /* complex context (South East Asian) */ + LBP_ZWJ = 30, /* zero width joiner */ + LBP_EB = 31, /* emoji base */ + LBP_EM = 32, /* emoji modifier */ + LBP_XX = 42, /* unknown */ + /* Artificial values that exist only at runtime, not in the tables. */ + LBP_HL_BA = 100 }; #include "lbrkprop1.h" @@ -104,7 +108,7 @@ unilbrkprop_lookup (ucs4_t uc) #define I 2 /* indirect break opportunity, '%' in table 7.3 of UTR #14 */ #define P 3 /* prohibited break, '^' in table 7.3 of UTR #14 */ -extern const unsigned char unilbrk_table[30][30]; +extern const unsigned char unilbrk_table[33][33]; /* We don't support line breaking of complex-context dependent characters (Thai, Lao, Myanmar, Khmer) yet, because it requires dictionary lookup. */ diff --git a/lib/unilbrk/u16-possible-linebreaks.c b/lib/unilbrk/u16-possible-linebreaks.c index c9cd3b64..d3bbc98a 100644 --- a/lib/unilbrk/u16-possible-linebreaks.c +++ b/lib/unilbrk/u16-possible-linebreaks.c @@ -1,33 +1,33 @@ /* Line breaking of UTF-16 strings. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "unilbrk.h" +#include "unilbrk/internal.h" #include <stdlib.h> #include <string.h> @@ -36,138 +36,198 @@ #include "uniwidth/cjk.h" #include "unistr.h" +/* This file implements + Unicode Standard Annex #14 <https://www.unicode.org/reports/tr14/>. */ + void -u16_possible_linebreaks (const uint16_t *s, size_t n, const char *encoding, char *p) +u16_possible_linebreaks_loop (const uint16_t *s, size_t n, const char *encoding, + int cr, char *p) { - int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL); - const uint16_t *s_end = s + n; - int last_prop = LBP_BK; /* line break property of last non-space character */ - char *seen_space = NULL; /* Was a space seen after the last non-space character? */ - char *seen_space2 = NULL; /* At least two spaces after the last non-space? */ + if (n > 0) + { + int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID1 : LBP_AL); + const uint16_t *s_end = s + n; + int prev_prop = LBP_BK; /* line break property of last character */ + int last_prop = LBP_BK; /* line break property of last non-space character */ + char *seen_space = NULL; /* Was a space seen after the last non-space character? */ - /* Don't break inside multibyte characters. */ - memset (p, UC_BREAK_PROHIBITED, n); + /* Don't break inside multibyte characters. */ + memset (p, UC_BREAK_PROHIBITED, n); - while (s < s_end) - { - ucs4_t uc; - int count = u16_mbtouc_unsafe (&uc, s, s_end - s); - int prop = unilbrkprop_lookup (uc); + /* Number of consecutive regional indicator (RI) characters seen + immediately before the current point. */ + size_t ri_count = 0; - if (prop == LBP_BK) + do { - /* Mandatory break. */ - *p = UC_BREAK_MANDATORY; - last_prop = LBP_BK; - seen_space = NULL; - seen_space2 = NULL; - } - else - { - char *q; + ucs4_t uc; + int count = u16_mbtouc_unsafe (&uc, s, s_end - s); + int prop = unilbrkprop_lookup (uc); - /* Resolve property values whose behaviour is not fixed. */ - switch (prop) - { - case LBP_AI: - /* Resolve ambiguous. */ - prop = LBP_AI_REPLACEMENT; - break; - case LBP_CB: - /* This is arbitrary. */ - prop = LBP_ID; - break; - case LBP_SA: - /* We don't handle complex scripts yet. - Treat LBP_SA like LBP_XX. */ - case LBP_XX: - /* This is arbitrary. */ - prop = LBP_AL; - break; - } - - /* Deal with spaces and combining characters. */ - q = p; - if (prop == LBP_SP) - { - /* Don't break just before a space. */ - *p = UC_BREAK_PROHIBITED; - seen_space2 = seen_space; - seen_space = p; - } - else if (prop == LBP_ZW) + if (prop == LBP_BK || prop == LBP_LF || prop == LBP_CR) { - /* Don't break just before a zero-width space. */ - *p = UC_BREAK_PROHIBITED; - last_prop = LBP_ZW; + /* (LB4,LB5,LB6) Mandatory break. */ + *p = UC_BREAK_MANDATORY; + /* cr is either LBP_CR or -1. In the first case, recognize + a CR-LF sequence. */ + if (prev_prop == cr && prop == LBP_LF) + p[-1] = UC_BREAK_CR_BEFORE_LF; + prev_prop = prop; + last_prop = LBP_BK; seen_space = NULL; - seen_space2 = NULL; } - else if (prop == LBP_CM) + else { - /* Don't break just before a combining character, except immediately after a - zero-width space. */ - if (last_prop == LBP_ZW) + /* Resolve property values whose behaviour is not fixed. */ + switch (prop) { - /* Break after zero-width space. */ - *p = UC_BREAK_POSSIBLE; - /* A combining character turns a preceding space into LBP_ID. */ - last_prop = LBP_ID; + case LBP_AI: + /* Resolve ambiguous. */ + prop = LBP_AI_REPLACEMENT; + break; + case LBP_CB: + /* This is arbitrary. */ + prop = LBP_ID1; + break; + case LBP_SA: + /* We don't handle complex scripts yet. + Treat LBP_SA like LBP_XX. */ + case LBP_XX: + /* This is arbitrary. */ + prop = LBP_AL; + break; } - else + + /* Deal with spaces and combining characters. */ + if (prop == LBP_SP) { + /* (LB7) Don't break just before a space. */ *p = UC_BREAK_PROHIBITED; - /* A combining character turns a preceding space into LBP_ID. */ - if (seen_space != NULL) - { - q = seen_space; - seen_space = seen_space2; - prop = LBP_ID; - goto lookup_via_table; - } + seen_space = p; } - } - else - { - lookup_via_table: - /* prop must be usable as an index for table 7.3 of UTR #14. */ - if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0]))) - abort (); - - if (last_prop == LBP_BK) + else if (prop == LBP_ZW) { - /* Don't break at the beginning of a line. */ - *q = UC_BREAK_PROHIBITED; + /* (LB7) Don't break just before a zero-width space. */ + *p = UC_BREAK_PROHIBITED; + last_prop = LBP_ZW; + seen_space = NULL; } - else if (last_prop == LBP_ZW) + else if (prop == LBP_CM || prop == LBP_ZWJ) { - /* Break after zero-width space. */ - *q = UC_BREAK_POSSIBLE; + /* (LB9) Don't break just before a combining character or + zero-width joiner, except immediately after a mandatory + break character, space, or zero-width space. */ + if (last_prop == LBP_BK) + { + /* (LB4,LB5,LB6) Don't break at the beginning of a line. */ + *p = UC_BREAK_PROHIBITED; + /* (LB10) Treat CM or ZWJ as AL. */ + last_prop = LBP_AL; + seen_space = NULL; + } + else if (last_prop == LBP_ZW || seen_space != NULL) + { + /* (LB8) Break after zero-width space. */ + /* (LB18) Break after spaces. + We do *not* implement the "legacy support for space + character as base for combining marks" because now the + NBSP CM sequence is recommended instead of SP CM. */ + *p = UC_BREAK_POSSIBLE; + /* (LB10) Treat CM or ZWJ as AL. */ + last_prop = LBP_AL; + seen_space = NULL; + } + else + { + /* Treat X CM as if it were X. */ + *p = UC_BREAK_PROHIBITED; + } } else { - switch (unilbrk_table [last_prop] [prop]) + /* prop must be usable as an index for table 7.3 of UTR #14. */ + if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0]))) + abort (); + + if (last_prop == LBP_BK) + { + /* (LB4,LB5,LB6) Don't break at the beginning of a line. */ + *p = UC_BREAK_PROHIBITED; + } + else if (last_prop == LBP_ZW) + { + /* (LB8) Break after zero-width space. */ + *p = UC_BREAK_POSSIBLE; + } + else if (prev_prop == LBP_ZWJ) { - case D: - *q = UC_BREAK_POSSIBLE; - break; - case I: - *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED); - break; - case P: - *q = UC_BREAK_PROHIBITED; - break; - default: - abort (); + /* (LB8a) Don't break right after a zero-width joiner. */ + *p = UC_BREAK_PROHIBITED; } + else if (last_prop == LBP_RI && prop == LBP_RI) + { + /* (LB30a) Break between two regional indicator symbols + if and only if there are an even number of regional + indicators preceding the position of the break. */ + *p = (seen_space != NULL || (ri_count % 2) == 0 + ? UC_BREAK_POSSIBLE + : UC_BREAK_PROHIBITED); + } + else if (prev_prop == LBP_HL_BA) + { + /* (LB21a) Don't break after Hebrew + Hyphen/Break-After. */ + *p = UC_BREAK_PROHIBITED; + } + else + { + switch (unilbrk_table [last_prop] [prop]) + { + case D: + *p = UC_BREAK_POSSIBLE; + break; + case I: + *p = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED); + break; + case P: + *p = UC_BREAK_PROHIBITED; + break; + default: + abort (); + } + } + last_prop = prop; + seen_space = NULL; } - last_prop = prop; - seen_space = NULL; - seen_space2 = NULL; + + prev_prop = (prev_prop == LBP_HL && (prop == LBP_HY || prop == LBP_BA) + ? LBP_HL_BA + : prop); } - } - s += count; - p += count; + if (prop == LBP_RI) + ri_count++; + else + ri_count = 0; + + s += count; + p += count; + } + while (s < s_end); } } + +#undef u16_possible_linebreaks + +void +u16_possible_linebreaks (const uint16_t *s, size_t n, const char *encoding, + char *p) +{ + u16_possible_linebreaks_loop (s, n, encoding, -1, p); +} + +void +u16_possible_linebreaks_v2 (const uint16_t *s, size_t n, const char *encoding, + char *p) +{ + u16_possible_linebreaks_loop (s, n, encoding, LBP_CR, p); +} diff --git a/lib/unilbrk/u16-width-linebreaks.c b/lib/unilbrk/u16-width-linebreaks.c index 1f033359..592cb5a3 100644 --- a/lib/unilbrk/u16-width-linebreaks.c +++ b/lib/unilbrk/u16-width-linebreaks.c @@ -1,49 +1,50 @@ /* Line breaking of UTF-16 strings. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "unilbrk.h" +#include "unilbrk/internal.h" +#include "unilbrk/lbrktables.h" #include "unistr.h" #include "uniwidth.h" -int -u16_width_linebreaks (const uint16_t *s, size_t n, - int width, int start_column, int at_end_columns, - const char *o, const char *encoding, - char *p) +static int +u16_width_linebreaks_internal (const uint16_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, int cr, + char *p) { const uint16_t *s_end; char *last_p; int last_column; int piece_width; - u16_possible_linebreaks (s, n, encoding, p); + u16_possible_linebreaks_loop (s, n, encoding, cr, p); s_end = s + n; last_p = NULL; @@ -58,7 +59,8 @@ u16_width_linebreaks (const uint16_t *s, size_t n, if (o != NULL && *o != UC_BREAK_UNDEFINED) *p = *o; - if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY) + if (*p == UC_BREAK_POSSIBLE + || *p == UC_BREAK_MANDATORY || *p == UC_BREAK_CR_BEFORE_LF) { /* An atomic piece of text ends here. */ if (last_p != NULL && last_column + piece_width > width) @@ -69,7 +71,7 @@ u16_width_linebreaks (const uint16_t *s, size_t n, } } - if (*p == UC_BREAK_MANDATORY) + if (*p == UC_BREAK_MANDATORY || *p == UC_BREAK_CR_BEFORE_LF) { /* uc is a line break character. */ /* Start a new piece at column 0. */ @@ -115,3 +117,27 @@ u16_width_linebreaks (const uint16_t *s, size_t n, return last_column + piece_width; } + +#undef u16_width_linebreaks + +int +u16_width_linebreaks (const uint16_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, + char *p) +{ + return u16_width_linebreaks_internal (s, n, + width, start_column, at_end_columns, + o, encoding, -1, p); +} + +int +u16_width_linebreaks_v2 (const uint16_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, + char *p) +{ + return u16_width_linebreaks_internal (s, n, + width, start_column, at_end_columns, + o, encoding, LBP_CR, p); +} diff --git a/lib/unilbrk/u32-possible-linebreaks.c b/lib/unilbrk/u32-possible-linebreaks.c index abb4d4cc..4fb9b415 100644 --- a/lib/unilbrk/u32-possible-linebreaks.c +++ b/lib/unilbrk/u32-possible-linebreaks.c @@ -1,167 +1,227 @@ /* Line breaking of UTF-32 strings. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "unilbrk.h" +#include "unilbrk/internal.h" #include <stdlib.h> #include "unilbrk/lbrktables.h" #include "uniwidth/cjk.h" +/* This file implements + Unicode Standard Annex #14 <https://www.unicode.org/reports/tr14/>. */ + void -u32_possible_linebreaks (const uint32_t *s, size_t n, const char *encoding, char *p) +u32_possible_linebreaks_loop (const uint32_t *s, size_t n, const char *encoding, + int cr, char *p) { - int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL); - const uint32_t *s_end = s + n; - int last_prop = LBP_BK; /* line break property of last non-space character */ - char *seen_space = NULL; /* Was a space seen after the last non-space character? */ - char *seen_space2 = NULL; /* At least two spaces after the last non-space? */ - - while (s < s_end) + if (n > 0) { - ucs4_t uc = *s; - int prop = unilbrkprop_lookup (uc); + int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID1 : LBP_AL); + const uint32_t *s_end = s + n; + int prev_prop = LBP_BK; /* line break property of last character */ + int last_prop = LBP_BK; /* line break property of last non-space character */ + char *seen_space = NULL; /* Was a space seen after the last non-space character? */ - if (prop == LBP_BK) - { - /* Mandatory break. */ - *p = UC_BREAK_MANDATORY; - last_prop = LBP_BK; - seen_space = NULL; - seen_space2 = NULL; - } - else - { - char *q; + /* Number of consecutive regional indicator (RI) characters seen + immediately before the current point. */ + size_t ri_count = 0; - /* Resolve property values whose behaviour is not fixed. */ - switch (prop) - { - case LBP_AI: - /* Resolve ambiguous. */ - prop = LBP_AI_REPLACEMENT; - break; - case LBP_CB: - /* This is arbitrary. */ - prop = LBP_ID; - break; - case LBP_SA: - /* We don't handle complex scripts yet. - Treat LBP_SA like LBP_XX. */ - case LBP_XX: - /* This is arbitrary. */ - prop = LBP_AL; - break; - } + do + { + ucs4_t uc = *s; + int prop = unilbrkprop_lookup (uc); - /* Deal with spaces and combining characters. */ - q = p; - if (prop == LBP_SP) - { - /* Don't break just before a space. */ - *p = UC_BREAK_PROHIBITED; - seen_space2 = seen_space; - seen_space = p; - } - else if (prop == LBP_ZW) + if (prop == LBP_BK || prop == LBP_LF || prop == LBP_CR) { - /* Don't break just before a zero-width space. */ - *p = UC_BREAK_PROHIBITED; - last_prop = LBP_ZW; + /* (LB4,LB5,LB6) Mandatory break. */ + *p = UC_BREAK_MANDATORY; + /* cr is either LBP_CR or -1. In the first case, recognize + a CR-LF sequence. */ + if (prev_prop == cr && prop == LBP_LF) + p[-1] = UC_BREAK_CR_BEFORE_LF; + prev_prop = prop; + last_prop = LBP_BK; seen_space = NULL; - seen_space2 = NULL; } - else if (prop == LBP_CM) + else { - /* Don't break just before a combining character, except immediately after a - zero-width space. */ - if (last_prop == LBP_ZW) + /* Resolve property values whose behaviour is not fixed. */ + switch (prop) { - /* Break after zero-width space. */ - *p = UC_BREAK_POSSIBLE; - /* A combining character turns a preceding space into LBP_ID. */ - last_prop = LBP_ID; + case LBP_AI: + /* Resolve ambiguous. */ + prop = LBP_AI_REPLACEMENT; + break; + case LBP_CB: + /* This is arbitrary. */ + prop = LBP_ID1; + break; + case LBP_SA: + /* We don't handle complex scripts yet. + Treat LBP_SA like LBP_XX. */ + case LBP_XX: + /* This is arbitrary. */ + prop = LBP_AL; + break; } - else + + /* Deal with spaces and combining characters. */ + if (prop == LBP_SP) { + /* (LB7) Don't break just before a space. */ *p = UC_BREAK_PROHIBITED; - /* A combining character turns a preceding space into LBP_ID. */ - if (seen_space != NULL) - { - q = seen_space; - seen_space = seen_space2; - prop = LBP_ID; - goto lookup_via_table; - } + seen_space = p; } - } - else - { - lookup_via_table: - /* prop must be usable as an index for table 7.3 of UTR #14. */ - if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0]))) - abort (); - - if (last_prop == LBP_BK) + else if (prop == LBP_ZW) { - /* Don't break at the beginning of a line. */ - *q = UC_BREAK_PROHIBITED; + /* (LB7) Don't break just before a zero-width space. */ + *p = UC_BREAK_PROHIBITED; + last_prop = LBP_ZW; + seen_space = NULL; } - else if (last_prop == LBP_ZW) + else if (prop == LBP_CM || prop == LBP_ZWJ) { - /* Break after zero-width space. */ - *q = UC_BREAK_POSSIBLE; + /* (LB9) Don't break just before a combining character or + zero-width joiner, except immediately after a mandatory + break character, space, or zero-width space. */ + if (last_prop == LBP_BK) + { + /* (LB4,LB5,LB6) Don't break at the beginning of a line. */ + *p = UC_BREAK_PROHIBITED; + /* (LB10) Treat CM or ZWJ as AL. */ + last_prop = LBP_AL; + seen_space = NULL; + } + else if (last_prop == LBP_ZW || seen_space != NULL) + { + /* (LB8) Break after zero-width space. */ + /* (LB18) Break after spaces. + We do *not* implement the "legacy support for space + character as base for combining marks" because now the + NBSP CM sequence is recommended instead of SP CM. */ + *p = UC_BREAK_POSSIBLE; + /* (LB10) Treat CM or ZWJ as AL. */ + last_prop = LBP_AL; + seen_space = NULL; + } + else + { + /* Treat X CM as if it were X. */ + *p = UC_BREAK_PROHIBITED; + } } else { - switch (unilbrk_table [last_prop] [prop]) + /* prop must be usable as an index for table 7.3 of UTR #14. */ + if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0]))) + abort (); + + if (last_prop == LBP_BK) + { + /* (LB4,LB5,LB6) Don't break at the beginning of a line. */ + *p = UC_BREAK_PROHIBITED; + } + else if (last_prop == LBP_ZW) + { + /* (LB8) Break after zero-width space. */ + *p = UC_BREAK_POSSIBLE; + } + else if (prev_prop == LBP_ZWJ) { - case D: - *q = UC_BREAK_POSSIBLE; - break; - case I: - *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED); - break; - case P: - *q = UC_BREAK_PROHIBITED; - break; - default: - abort (); + /* (LB8a) Don't break right after a zero-width joiner. */ + *p = UC_BREAK_PROHIBITED; } + else if (last_prop == LBP_RI && prop == LBP_RI) + { + /* (LB30a) Break between two regional indicator symbols + if and only if there are an even number of regional + indicators preceding the position of the break. */ + *p = (seen_space != NULL || (ri_count % 2) == 0 + ? UC_BREAK_POSSIBLE + : UC_BREAK_PROHIBITED); + } + else if (prev_prop == LBP_HL_BA) + { + /* (LB21a) Don't break after Hebrew + Hyphen/Break-After. */ + *p = UC_BREAK_PROHIBITED; + } + else + { + switch (unilbrk_table [last_prop] [prop]) + { + case D: + *p = UC_BREAK_POSSIBLE; + break; + case I: + *p = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED); + break; + case P: + *p = UC_BREAK_PROHIBITED; + break; + default: + abort (); + } + } + last_prop = prop; + seen_space = NULL; } - last_prop = prop; - seen_space = NULL; - seen_space2 = NULL; + + prev_prop = (prev_prop == LBP_HL && (prop == LBP_HY || prop == LBP_BA) + ? LBP_HL_BA + : prop); } - } - s++; - p++; + if (prop == LBP_RI) + ri_count++; + else + ri_count = 0; + + s++; + p++; + } + while (s < s_end); } } + +#undef u32_possible_linebreaks + +void +u32_possible_linebreaks (const uint32_t *s, size_t n, const char *encoding, + char *p) +{ + u32_possible_linebreaks_loop (s, n, encoding, -1, p); +} + +void +u32_possible_linebreaks_v2 (const uint32_t *s, size_t n, const char *encoding, + char *p) +{ + u32_possible_linebreaks_loop (s, n, encoding, LBP_CR, p); +} diff --git a/lib/unilbrk/u32-width-linebreaks.c b/lib/unilbrk/u32-width-linebreaks.c index 418d7348..6101b0f4 100644 --- a/lib/unilbrk/u32-width-linebreaks.c +++ b/lib/unilbrk/u32-width-linebreaks.c @@ -1,48 +1,49 @@ /* Line breaking of UTF-32 strings. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "unilbrk.h" +#include "unilbrk/internal.h" +#include "unilbrk/lbrktables.h" #include "uniwidth.h" -int -u32_width_linebreaks (const uint32_t *s, size_t n, - int width, int start_column, int at_end_columns, - const char *o, const char *encoding, - char *p) +static int +u32_width_linebreaks_internal (const uint32_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, int cr, + char *p) { const uint32_t *s_end; char *last_p; int last_column; int piece_width; - u32_possible_linebreaks (s, n, encoding, p); + u32_possible_linebreaks_loop (s, n, encoding, cr, p); s_end = s + n; last_p = NULL; @@ -56,7 +57,8 @@ u32_width_linebreaks (const uint32_t *s, size_t n, if (o != NULL && *o != UC_BREAK_UNDEFINED) *p = *o; - if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY) + if (*p == UC_BREAK_POSSIBLE + || *p == UC_BREAK_MANDATORY || *p == UC_BREAK_CR_BEFORE_LF) { /* An atomic piece of text ends here. */ if (last_p != NULL && last_column + piece_width > width) @@ -67,7 +69,7 @@ u32_width_linebreaks (const uint32_t *s, size_t n, } } - if (*p == UC_BREAK_MANDATORY) + if (*p == UC_BREAK_MANDATORY || *p == UC_BREAK_CR_BEFORE_LF) { /* uc is a line break character. */ /* Start a new piece at column 0. */ @@ -113,3 +115,27 @@ u32_width_linebreaks (const uint32_t *s, size_t n, return last_column + piece_width; } + +#undef u32_width_linebreaks + +int +u32_width_linebreaks (const uint32_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, + char *p) +{ + return u32_width_linebreaks_internal (s, n, + width, start_column, at_end_columns, + o, encoding, -1, p); +} + +int +u32_width_linebreaks_v2 (const uint32_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, + char *p) +{ + return u32_width_linebreaks_internal (s, n, + width, start_column, at_end_columns, + o, encoding, LBP_CR, p); +} diff --git a/lib/unilbrk/u8-possible-linebreaks.c b/lib/unilbrk/u8-possible-linebreaks.c index 57fe4916..923028e3 100644 --- a/lib/unilbrk/u8-possible-linebreaks.c +++ b/lib/unilbrk/u8-possible-linebreaks.c @@ -1,33 +1,33 @@ /* Line breaking of UTF-8 strings. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "unilbrk.h" +#include "unilbrk/internal.h" #include <stdlib.h> #include <string.h> @@ -36,142 +36,202 @@ #include "uniwidth/cjk.h" #include "unistr.h" +/* This file implements + Unicode Standard Annex #14 <https://www.unicode.org/reports/tr14/>. */ + void -u8_possible_linebreaks (const uint8_t *s, size_t n, const char *encoding, char *p) +u8_possible_linebreaks_loop (const uint8_t *s, size_t n, const char *encoding, + int cr, char *p) { - int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID : LBP_AL); - const uint8_t *s_end = s + n; - int last_prop = LBP_BK; /* line break property of last non-space character */ - char *seen_space = NULL; /* Was a space seen after the last non-space character? */ - char *seen_space2 = NULL; /* At least two spaces after the last non-space? */ + if (n > 0) + { + int LBP_AI_REPLACEMENT = (is_cjk_encoding (encoding) ? LBP_ID1 : LBP_AL); + const uint8_t *s_end = s + n; + int prev_prop = LBP_BK; /* line break property of last character */ + int last_prop = LBP_BK; /* line break property of last non-space character */ + char *seen_space = NULL; /* Was a space seen after the last non-space character? */ - /* Don't break inside multibyte characters. */ - memset (p, UC_BREAK_PROHIBITED, n); + /* Don't break inside multibyte characters. */ + memset (p, UC_BREAK_PROHIBITED, n); - while (s < s_end) - { - ucs4_t uc; - int count = u8_mbtouc_unsafe (&uc, s, s_end - s); - int prop = unilbrkprop_lookup (uc); + /* Number of consecutive regional indicator (RI) characters seen + immediately before the current point. */ + size_t ri_count = 0; - if (prop == LBP_BK) + do { - /* Mandatory break. */ - *p = UC_BREAK_MANDATORY; - last_prop = LBP_BK; - seen_space = NULL; - seen_space2 = NULL; - } - else - { - char *q; - - /* Resolve property values whose behaviour is not fixed. */ - switch (prop) - { - case LBP_AI: - /* Resolve ambiguous. */ - prop = LBP_AI_REPLACEMENT; - break; - case LBP_CB: - /* This is arbitrary. */ - prop = LBP_ID; - break; - case LBP_SA: - /* We don't handle complex scripts yet. - Treat LBP_SA like LBP_XX. */ - case LBP_XX: - /* This is arbitrary. */ - prop = LBP_AL; - break; - } + ucs4_t uc; + int count = u8_mbtouc_unsafe (&uc, s, s_end - s); + int prop = unilbrkprop_lookup (uc); - /* Deal with spaces and combining characters. */ - q = p; - if (prop == LBP_SP) + if (prop == LBP_BK || prop == LBP_LF || prop == LBP_CR) { - /* Don't break just before a space. */ - *p = UC_BREAK_PROHIBITED; - seen_space2 = seen_space; - seen_space = p; - } - else if (prop == LBP_ZW) - { - /* Don't break just before a zero-width space. */ - *p = UC_BREAK_PROHIBITED; - last_prop = LBP_ZW; + /* (LB4,LB5,LB6) Mandatory break. */ + *p = UC_BREAK_MANDATORY; + /* cr is either LBP_CR or -1. In the first case, recognize + a CR-LF sequence. */ + if (prev_prop == cr && prop == LBP_LF) + p[-1] = UC_BREAK_CR_BEFORE_LF; + prev_prop = prop; + last_prop = LBP_BK; seen_space = NULL; - seen_space2 = NULL; } - else if (prop == LBP_CM) + else { - /* Don't break just before a combining character, except immediately after a - zero-width space. */ - if (last_prop == LBP_ZW) + /* Resolve property values whose behaviour is not fixed. */ + switch (prop) { - /* Break after zero-width space. */ - *p = UC_BREAK_POSSIBLE; - /* A combining character turns a preceding space into LBP_ID. */ - last_prop = LBP_ID; + case LBP_AI: + /* Resolve ambiguous. */ + prop = LBP_AI_REPLACEMENT; + break; + case LBP_CB: + /* This is arbitrary. */ + prop = LBP_ID1; + break; + case LBP_SA: + /* We don't handle complex scripts yet. + Treat LBP_SA like LBP_XX. */ + case LBP_XX: + /* This is arbitrary. */ + prop = LBP_AL; + break; } - else + + /* Deal with spaces and combining characters. */ + if (prop == LBP_SP) { + /* (LB7) Don't break just before a space. */ *p = UC_BREAK_PROHIBITED; - /* A combining character turns a preceding space into LBP_ID. */ - if (seen_space != NULL) - { - q = seen_space; - seen_space = seen_space2; - prop = LBP_ID; - goto lookup_via_table; - } + seen_space = p; } - } - else - { - lookup_via_table: - /* prop must be usable as an index for table 7.3 of UTR #14. */ - if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0]))) - abort (); - - if (last_prop == LBP_BK) + else if (prop == LBP_ZW) { - /* Don't break at the beginning of a line. */ - *q = UC_BREAK_PROHIBITED; + /* (LB7) Don't break just before a zero-width space. */ + *p = UC_BREAK_PROHIBITED; + last_prop = LBP_ZW; + seen_space = NULL; } - else if (last_prop == LBP_ZW) + else if (prop == LBP_CM || prop == LBP_ZWJ) { - /* Break after zero-width space. */ - *q = UC_BREAK_POSSIBLE; + /* (LB9) Don't break just before a combining character or + zero-width joiner, except immediately after a mandatory + break character, space, or zero-width space. */ + if (last_prop == LBP_BK) + { + /* (LB4,LB5,LB6) Don't break at the beginning of a line. */ + *p = UC_BREAK_PROHIBITED; + /* (LB10) Treat CM or ZWJ as AL. */ + last_prop = LBP_AL; + seen_space = NULL; + } + else if (last_prop == LBP_ZW || seen_space != NULL) + { + /* (LB8) Break after zero-width space. */ + /* (LB18) Break after spaces. + We do *not* implement the "legacy support for space + character as base for combining marks" because now the + NBSP CM sequence is recommended instead of SP CM. */ + *p = UC_BREAK_POSSIBLE; + /* (LB10) Treat CM or ZWJ as AL. */ + last_prop = LBP_AL; + seen_space = NULL; + } + else + { + /* Treat X CM as if it were X. */ + *p = UC_BREAK_PROHIBITED; + } } else { - switch (unilbrk_table [last_prop] [prop]) + /* prop must be usable as an index for table 7.3 of UTR #14. */ + if (!(prop >= 0 && prop < sizeof (unilbrk_table) / sizeof (unilbrk_table[0]))) + abort (); + + if (last_prop == LBP_BK) + { + /* (LB4,LB5,LB6) Don't break at the beginning of a line. */ + *p = UC_BREAK_PROHIBITED; + } + else if (last_prop == LBP_ZW) + { + /* (LB8) Break after zero-width space. */ + *p = UC_BREAK_POSSIBLE; + } + else if (prev_prop == LBP_ZWJ) { - case D: - *q = UC_BREAK_POSSIBLE; - break; - case I: - *q = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED); - break; - case P: - *q = UC_BREAK_PROHIBITED; - break; - default: - abort (); + /* (LB8a) Don't break right after a zero-width joiner. */ + *p = UC_BREAK_PROHIBITED; } + else if (last_prop == LBP_RI && prop == LBP_RI) + { + /* (LB30a) Break between two regional indicator symbols + if and only if there are an even number of regional + indicators preceding the position of the break. */ + *p = (seen_space != NULL || (ri_count % 2) == 0 + ? UC_BREAK_POSSIBLE + : UC_BREAK_PROHIBITED); + } + else if (prev_prop == LBP_HL_BA) + { + /* (LB21a) Don't break after Hebrew + Hyphen/Break-After. */ + *p = UC_BREAK_PROHIBITED; + } + else + { + switch (unilbrk_table [last_prop] [prop]) + { + case D: + *p = UC_BREAK_POSSIBLE; + break; + case I: + *p = (seen_space != NULL ? UC_BREAK_POSSIBLE : UC_BREAK_PROHIBITED); + break; + case P: + *p = UC_BREAK_PROHIBITED; + break; + default: + abort (); + } + } + last_prop = prop; + seen_space = NULL; } - last_prop = prop; - seen_space = NULL; - seen_space2 = NULL; + + prev_prop = (prev_prop == LBP_HL && (prop == LBP_HY || prop == LBP_BA) + ? LBP_HL_BA + : prop); } - } - s += count; - p += count; + if (prop == LBP_RI) + ri_count++; + else + ri_count = 0; + + s += count; + p += count; + } + while (s < s_end); } } +#undef u8_possible_linebreaks + +void +u8_possible_linebreaks (const uint8_t *s, size_t n, const char *encoding, + char *p) +{ + u8_possible_linebreaks_loop (s, n, encoding, -1, p); +} + +void +u8_possible_linebreaks_v2 (const uint8_t *s, size_t n, const char *encoding, + char *p) +{ + u8_possible_linebreaks_loop (s, n, encoding, LBP_CR, p); +} + #ifdef TEST @@ -237,7 +297,7 @@ main (int argc, char * argv[]) char *breaks = malloc (length); int i; - u8_possible_linebreaks ((uint8_t *) input, length, "UTF-8", breaks); + u8_possible_linebreaks_v2 ((uint8_t *) input, length, "UTF-8", breaks); for (i = 0; i < length; i++) { @@ -251,6 +311,10 @@ main (int argc, char * argv[]) /* U+21B2 (or U+21B5) in UTF-8 encoding */ putc (0xe2, stdout); putc (0x86, stdout); putc (0xb2, stdout); break; + case UC_BREAK_CR_BEFORE_LF: + /* U+21E4 in UTF-8 encoding */ + putc (0xe2, stdout); putc (0x87, stdout); putc (0xa4, stdout); + break; case UC_BREAK_PROHIBITED: break; default: diff --git a/lib/unilbrk/u8-width-linebreaks.c b/lib/unilbrk/u8-width-linebreaks.c index 19ab9ba2..34d949bb 100644 --- a/lib/unilbrk/u8-width-linebreaks.c +++ b/lib/unilbrk/u8-width-linebreaks.c @@ -1,49 +1,50 @@ /* Line breaking of UTF-8 strings. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "unilbrk.h" +#include "unilbrk/internal.h" +#include "unilbrk/lbrktables.h" #include "unistr.h" #include "uniwidth.h" int -u8_width_linebreaks (const uint8_t *s, size_t n, - int width, int start_column, int at_end_columns, - const char *o, const char *encoding, - char *p) +u8_width_linebreaks_internal (const uint8_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, int cr, + char *p) { const uint8_t *s_end; char *last_p; int last_column; int piece_width; - u8_possible_linebreaks (s, n, encoding, p); + u8_possible_linebreaks_loop (s, n, encoding, cr, p); s_end = s + n; last_p = NULL; @@ -58,7 +59,8 @@ u8_width_linebreaks (const uint8_t *s, size_t n, if (o != NULL && *o != UC_BREAK_UNDEFINED) *p = *o; - if (*p == UC_BREAK_POSSIBLE || *p == UC_BREAK_MANDATORY) + if (*p == UC_BREAK_POSSIBLE + || *p == UC_BREAK_MANDATORY || *p == UC_BREAK_CR_BEFORE_LF) { /* An atomic piece of text ends here. */ if (last_p != NULL && last_column + piece_width > width) @@ -69,7 +71,7 @@ u8_width_linebreaks (const uint8_t *s, size_t n, } } - if (*p == UC_BREAK_MANDATORY) + if (*p == UC_BREAK_MANDATORY || *p == UC_BREAK_CR_BEFORE_LF) { /* uc is a line break character. */ /* Start a new piece at column 0. */ @@ -116,6 +118,30 @@ u8_width_linebreaks (const uint8_t *s, size_t n, return last_column + piece_width; } +#undef u8_width_linebreaks + +int +u8_width_linebreaks (const uint8_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, + char *p) +{ + return u8_width_linebreaks_internal (s, n, + width, start_column, at_end_columns, + o, encoding, -1, p); +} + +int +u8_width_linebreaks_v2 (const uint8_t *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, + char *p) +{ + return u8_width_linebreaks_internal (s, n, + width, start_column, at_end_columns, + o, encoding, LBP_CR, p); +} + #ifdef TEST @@ -183,7 +209,7 @@ main (int argc, char * argv[]) char *breaks = malloc (length); int i; - u8_width_linebreaks ((uint8_t *) input, length, width, 0, 0, NULL, "UTF-8", breaks); + u8_width_linebreaks_v2 ((uint8_t *) input, length, width, 0, 0, NULL, "UTF-8", breaks); for (i = 0; i < length; i++) { @@ -194,6 +220,8 @@ main (int argc, char * argv[]) break; case UC_BREAK_MANDATORY: break; + case UC_BREAK_CR_BEFORE_LF: + break; case UC_BREAK_PROHIBITED: break; default: diff --git a/lib/unilbrk/ulc-common.c b/lib/unilbrk/ulc-common.c index c2ee6f55..14c4f0c8 100644 --- a/lib/unilbrk/ulc-common.c +++ b/lib/unilbrk/ulc-common.c @@ -1,28 +1,27 @@ /* Line breaking auxiliary functions. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> diff --git a/lib/unilbrk/ulc-common.h b/lib/unilbrk/ulc-common.h index 0738e8dc..a78610b9 100644 --- a/lib/unilbrk/ulc-common.h +++ b/lib/unilbrk/ulc-common.h @@ -1,28 +1,27 @@ /* Line breaking auxiliary functions. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ /* Get size_t. */ #include <stddef.h> diff --git a/lib/unilbrk/ulc-possible-linebreaks.c b/lib/unilbrk/ulc-possible-linebreaks.c index 2a558f14..aa4a5b59 100644 --- a/lib/unilbrk/ulc-possible-linebreaks.c +++ b/lib/unilbrk/ulc-possible-linebreaks.c @@ -1,28 +1,27 @@ /* Line breaking of strings. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> @@ -34,6 +33,8 @@ #include "c-ctype.h" #include "uniconv.h" +#include "unilbrk/internal.h" +#include "unilbrk/lbrktables.h" #include "unilbrk/ulc-common.h" /* Line breaking of a string in an arbitrary encoding. @@ -49,14 +50,14 @@ but this is not backed by an RFC. So we use UTF-8. It supports characters up to \U7FFFFFFF and is unambiguously defined. */ -void -ulc_possible_linebreaks (const char *s, size_t n, const char *encoding, - char *p) +static void +ulc_possible_linebreaks_internal (const char *s, size_t n, const char *encoding, + int cr, char *p) { if (n > 0) { if (is_utf8_encoding (encoding)) - u8_possible_linebreaks ((const uint8_t *) s, n, encoding, p); + u8_possible_linebreaks_loop ((const uint8_t *) s, n, encoding, cr, p); else { /* Convert the string to UTF-8 and build a translation table @@ -80,7 +81,7 @@ ulc_possible_linebreaks (const char *s, size_t n, const char *encoding, /* Determine the possible line breaks of the UTF-8 string. */ - u8_possible_linebreaks (t, m, encoding, q); + u8_possible_linebreaks_loop (t, m, encoding, cr, q); /* Translate the result back to the original string. */ memset (p, UC_BREAK_PROHIBITED, n); @@ -103,7 +104,7 @@ ulc_possible_linebreaks (const char *s, size_t n, const char *encoding, if (is_all_ascii (s, n)) { /* ASCII is a subset of UTF-8. */ - u8_possible_linebreaks ((const uint8_t *) s, n, encoding, p); + u8_possible_linebreaks_loop ((const uint8_t *) s, n, encoding, cr, p); return; } #endif @@ -115,7 +116,14 @@ ulc_possible_linebreaks (const char *s, size_t n, const char *encoding, const char *s_end = s + n; while (s < s_end) { - *p = (*s == '\n' ? UC_BREAK_MANDATORY : UC_BREAK_PROHIBITED); + *p = (*s == '\n' + ? UC_BREAK_MANDATORY + : ((cr >= 0 + && *s == '\r' + && s + 1 < s_end + && *(s + 1) == '\n') + ? UC_BREAK_CR_BEFORE_LF + : UC_BREAK_PROHIBITED)); s++; p++; } @@ -124,6 +132,22 @@ ulc_possible_linebreaks (const char *s, size_t n, const char *encoding, } } +#undef ulc_possible_linebreaks + +void +ulc_possible_linebreaks (const char *s, size_t n, const char *encoding, + char *p) +{ + ulc_possible_linebreaks_internal (s, n, encoding, -1, p); +} + +void +ulc_possible_linebreaks_v2 (const char *s, size_t n, const char *encoding, + char *p) +{ + ulc_possible_linebreaks_internal (s, n, encoding, LBP_CR, p); +} + #ifdef TEST @@ -191,7 +215,7 @@ main (int argc, char * argv[]) char *breaks = malloc (length); int i; - ulc_possible_linebreaks (input, length, locale_charset (), breaks); + ulc_possible_linebreaks_v2 (input, length, locale_charset (), breaks); for (i = 0; i < length; i++) { @@ -202,6 +226,8 @@ main (int argc, char * argv[]) break; case UC_BREAK_MANDATORY: break; + case UC_BREAK_CR_BEFORE_LF: + break; case UC_BREAK_PROHIBITED: break; default: diff --git a/lib/unilbrk/ulc-width-linebreaks.c b/lib/unilbrk/ulc-width-linebreaks.c index fbe970de..b7e6c7c5 100644 --- a/lib/unilbrk/ulc-width-linebreaks.c +++ b/lib/unilbrk/ulc-width-linebreaks.c @@ -1,28 +1,27 @@ /* Line breaking of strings. - Copyright (C) 2001-2003, 2006-2018 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2006-2022 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2001. - This program is free software: you can redistribute it and/or - modify it under the terms of either: - - * the GNU Lesser General Public License as published by the Free - Software Foundation; either version 3 of the License, or (at your - option) any later version. - - or - - * the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your - option) any later version. - - or both in parallel, as here. - This program is distributed in the hope that it will be useful, + This file is free software. + It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+". + You can redistribute it and/or modify it under either + - the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version, or + - the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) + any later version, or + - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+". + + This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. + Lesser General Public License and the GNU General Public License + for more details. - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. */ + You should have received a copy of the GNU Lesser General Public + License and of the GNU General Public License along with this + program. If not, see <https://www.gnu.org/licenses/>. */ #include <config.h> @@ -34,6 +33,8 @@ #include "c-ctype.h" #include "uniconv.h" +#include "unilbrk/internal.h" +#include "unilbrk/lbrktables.h" #include "unilbrk/ulc-common.h" /* Line breaking of a string in an arbitrary encoding. @@ -49,16 +50,16 @@ but this is not backed by an RFC. So we use UTF-8. It supports characters up to \U7FFFFFFF and is unambiguously defined. */ -int -ulc_width_linebreaks (const char *s, size_t n, - int width, int start_column, int at_end_columns, - const char *o, const char *encoding, - char *p) +static int +ulc_width_linebreaks_internal (const char *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, int cr, + char *p) { if (n > 0) { if (is_utf8_encoding (encoding)) - return u8_width_linebreaks ((const uint8_t *) s, n, width, start_column, at_end_columns, o, encoding, p); + return u8_width_linebreaks_internal ((const uint8_t *) s, n, width, start_column, at_end_columns, o, encoding, cr, p); else { /* Convert the string to UTF-8 and build a translation table @@ -95,7 +96,7 @@ ulc_width_linebreaks (const char *s, size_t n, /* Determine the line breaks of the UTF-8 string. */ res_column = - u8_width_linebreaks (t, m, width, start_column, at_end_columns, o8, encoding, q); + u8_width_linebreaks_internal (t, m, width, start_column, at_end_columns, o8, encoding, cr, q); /* Translate the result back to the original string. */ memset (p, UC_BREAK_PROHIBITED, n); @@ -117,7 +118,7 @@ ulc_width_linebreaks (const char *s, size_t n, if (is_all_ascii (s, n)) { /* ASCII is a subset of UTF-8. */ - return u8_width_linebreaks ((const uint8_t *) s, n, width, start_column, at_end_columns, o, encoding, p); + return u8_width_linebreaks_internal ((const uint8_t *) s, n, width, start_column, at_end_columns, o, encoding, cr, p); } #endif /* We have a non-ASCII string and cannot convert it. @@ -128,9 +129,16 @@ ulc_width_linebreaks (const char *s, size_t n, const char *s_end = s + n; while (s < s_end) { - *p = ((o != NULL && *o == UC_BREAK_MANDATORY) || *s == '\n' + *p = ((o != NULL && *o == UC_BREAK_MANDATORY) + || *s == '\n' ? UC_BREAK_MANDATORY - : UC_BREAK_PROHIBITED); + : ((o != NULL && *o == UC_BREAK_CR_BEFORE_LF) + || (cr >= 0 + && *s == '\r' + && s + 1 < s_end + && *(s + 1) == '\n') + ? UC_BREAK_CR_BEFORE_LF + : UC_BREAK_PROHIBITED)); s++; p++; if (o != NULL) @@ -143,6 +151,30 @@ ulc_width_linebreaks (const char *s, size_t n, return start_column; } +#undef ulc_width_linebreaks + +int +ulc_width_linebreaks (const char *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, + char *p) +{ + return ulc_width_linebreaks_internal (s, n, + width, start_column, at_end_columns, + o, encoding, -1, p); +} + +int +ulc_width_linebreaks_v2 (const char *s, size_t n, + int width, int start_column, int at_end_columns, + const char *o, const char *encoding, + char *p) +{ + return ulc_width_linebreaks_internal (s, n, + width, start_column, at_end_columns, + o, encoding, LBP_CR, p); +} + #ifdef TEST @@ -210,7 +242,7 @@ main (int argc, char * argv[]) char *breaks = malloc (length); int i; - ulc_width_linebreaks (input, length, width, 0, 0, NULL, locale_charset (), breaks); + ulc_width_linebreaks_v2 (input, length, width, 0, 0, NULL, locale_charset (), breaks); for (i = 0; i < length; i++) { @@ -221,6 +253,8 @@ main (int argc, char * argv[]) break; case UC_BREAK_MANDATORY: break; + case UC_BREAK_CR_BEFORE_LF: + break; case UC_BREAK_PROHIBITED: break; default: |