From 0c2fdc7663a109b5f04dfc58cf2b38cfe85873d2 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 16 Sep 2026 16:40:17 -0600 Subject: [PATCH] Update Unicode data to 18.0 --- CHANGELOG.md | 2 + harfrust/src/hb/common.rs | 4 + harfrust/src/hb/ot_shaper.rs | 5 + harfrust/src/hb/ot_shaper_arabic_table.rs | 26 +- harfrust/src/hb/ot_shaper_indic_table.rs | 84 +- harfrust/src/hb/ot_shaper_use_table.rs | 127 +- harfrust/src/hb/tag_table.rs | 16 +- harfrust/src/unicode/emoji_table.rs | 10 +- harfrust/src/unicode/mod.rs | 24 + harfrust/src/unicode/ucd_table.rs | 3436 +++++++++++---------- harfrust_capi/include/hr-hb.h | 3 + harfrust_capi/include/hr.h | 15 + harfrust_capi/src/common.rs | 6 + harfrust_capi/tests/capi.rs | 10 + scripts/update-unicode-tables.mk | 22 +- 15 files changed, 1953 insertions(+), 1837 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a73a548..2427cf17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). This development version matches HarfBuzz [v14.3.1](https://github.com/harfbuzz/harfbuzz/releases/tag/14.3.1). +- Update the built-in Unicode data to 18.0. Add Jurchen, Proto-Cuneiform, and + Seal script constants to the Rust and C APIs and route them through USE. - Support hexadecimal OpenType language and script overrides in `x-hbot-` and `x-hbsc-` private-use subtags, such as `x-hbot-4d4f4e54` for `MONT`. - Add a unified `Buffer` type, matching HarfBuzz's `hb_buffer_t`. It carries a diff --git a/harfrust/src/hb/common.rs b/harfrust/src/hb/common.rs index bdde2c31..12741435 100644 --- a/harfrust/src/hb/common.rs +++ b/harfrust/src/hb/common.rs @@ -588,6 +588,10 @@ pub mod script { pub const SIDETIC: Script = Script::from_bytes(b"Sidt"); pub const TAI_YO: Script = Script::from_bytes(b"Tayo"); pub const TOLONG_SIKI: Script = Script::from_bytes(b"Tols"); + // Since 18.0 + pub const JURCHEN: Script = Script::from_bytes(b"Jurc"); + pub const PROTO_CUNEIFORM: Script = Script::from_bytes(b"Pcun"); + pub const SEAL: Script = Script::from_bytes(b"Seal"); pub const MATH: Script = Script::from_bytes(b"Zmth"); diff --git a/harfrust/src/hb/ot_shaper.rs b/harfrust/src/hb/ot_shaper.rs index ef50055f..89820175 100644 --- a/harfrust/src/hb/ot_shaper.rs +++ b/harfrust/src/hb/ot_shaper.rs @@ -339,6 +339,11 @@ pub fn hb_ot_shape_complex_categorize( | script::TAI_YO | script::TOLONG_SIKI + // Unicode-18.0 additions + | script::JURCHEN + | script::PROTO_CUNEIFORM + | script::SEAL + => { // If the designer designed the font for the 'DFLT' script, // (or we ended up arbitrarily pick 'latn'), use the default shaper. diff --git a/harfrust/src/hb/ot_shaper_arabic_table.rs b/harfrust/src/hb/ot_shaper_arabic_table.rs index 5f3d990c..67fe6056 100644 --- a/harfrust/src/hb/ot_shaper_arabic_table.rs +++ b/harfrust/src/hb/ot_shaper_arabic_table.rs @@ -6,10 +6,10 @@ * * on files with these headers: * - * # ArabicShaping-17.0.0.txt - * # Date: 2025-08-14 - * # Blocks-17.0.0.txt - * # Date: 2025-08-01 + * # ArabicShaping-18.0.0.txt + * # Date: 2026-08-18, 19:02:41 GMT + * # Blocks-18.0.0.txt + * # Date: 2026-07-08 * UnicodeData.txt does not have a header. */ @@ -21,7 +21,7 @@ use crate::unicode::Codepoint; use super::ot_shaper_arabic::hb_arabic_joining_type_t::{self, D, GroupAlaph, GroupDalathRish, L, R, T, U, X}; #[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason, missing_docs)] -pub(crate) static _hb_arabic_joining_u8: [u8; 737]= +pub(crate) static _hb_arabic_joining_u8: [u8; 749]= [ 0, 16, 2, 0, 0, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -46,11 +46,11 @@ pub(crate) static _hb_arabic_joining_u8: [u8; 737]= 0, 0, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 48, 6, 0, 0, 1, 1, 1, 1, 1, 1, 49, 0, 50, 51, 52, 53, 54, 55, 0, 0, 56, 57, 58, 0, 0, 59, 0, 0, 60, 1, 1, 1, 61, 0, 0, - 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, - 1, 64, 0, 65, 0, 0, 0, 66, 1, 67, 0, 0, 0, 0, 0, 68, - 69, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 62, 0, 0, 63, 64, 65, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 1, 67, 0, 68, 0, 0, 0, 69, 1, 70, 0, 0, 0, 0, 0, 71, + 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 72, 73, 0, 0, 0, 0, 0, 0,119,119,119,119, 51, 51, 51, + 1, 75, 76, 0, 0, 0, 0, 0, 0,119,119,119,119, 51, 51, 51, 51, 34, 34, 34, 34,119,119, 7,119, 34, 51, 51, 51, 35, 51, 51, 51, 0,119,119,119,115,119,119,119, 0, 0, 0,119,112, 7,119, 119, 3, 34, 34, 35, 35, 51, 51, 35, 34, 50, 51, 51, 50,115,119, @@ -66,10 +66,10 @@ pub(crate) static _hb_arabic_joining_u8: [u8; 737]= 119, 51, 51, 35, 32, 32, 2, 16, 34, 34, 50, 51, 19, 51, 51, 35, 51, 35, 0,114,119,119, 55, 51, 35, 35, 35, 34, 51, 35, 51, 50, 34, 35,119,119,119, 39, 34, 50, 3, 49, 51, 51, 51, 51, 50,119, - 119,119, 50,115, 51, 51, 35, 51, 51, 51, 51, 3,119, 55, 51,114, - 119, 51, 51, 34, 51, 51,119,119,119, 3, 51, 34, 2, 35, 50, 35, - 51, 48, 34, 3, 0, 32, 19,119,119, 51, 51,119,119,119,103,119, - 119, + 119,119, 50,115, 51, 23, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 113, 51, 35, 51, 51, 51, 51, 3,119, 55, 51,114,119, 51, 51, 34, + 51, 51,119,119,119, 3, 51, 34, 2, 35, 50, 35, 51, 48, 34, 3, + 0, 32, 19,119,119, 51, 51,119,119,119,103,119,119, ]; #[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast)] diff --git a/harfrust/src/hb/ot_shaper_indic_table.rs b/harfrust/src/hb/ot_shaper_indic_table.rs index 7c428d4f..088dbf10 100644 --- a/harfrust/src/hb/ot_shaper_indic_table.rs +++ b/harfrust/src/hb/ot_shaper_indic_table.rs @@ -6,12 +6,12 @@ * * on files with these headers: * - * # IndicSyllabicCategory-17.0.0.txt - * # Date: 2025-08-01, 04:02:23 GMT - * # IndicPositionalCategory-17.0.0.txt - * # Date: 2025-07-29, 13:35:52 GMT - * # Blocks-17.0.0.txt - * # Date: 2025-08-01 + * # IndicSyllabicCategory-18.0.0.txt + * # Date: 2026-07-02, 18:58:37 GMT + * # IndicPositionalCategory-18.0.0.txt + * # Date: 2026-06-24, 13:39:21 GMT + * # Blocks-18.0.0.txt + * # Date: 2026-07-08 */ #![allow(unused_parens)] @@ -30,7 +30,7 @@ use OT_CM as _OT_CM; /* 1 chars; CM */ use OT_CS as _OT_CS; /* 4 chars; CS */ use OT_DOTTEDCIRCLE as _OT_DC; /* 1 chars; DOTTEDCIRCLE */ use OT_H as _OT_H; /* 11 chars; H */ -use OT_M as _OT_M; /* 142 chars; M */ +use OT_M as _OT_M; /* 144 chars; M */ use OT_MH as _OT_MH; /* 1 chars; MH */ use OT_ML as _OT_ML; /* 1 chars; ML */ use OT_MPst as _OT_MP; /* 1 chars; MPst */ @@ -59,7 +59,7 @@ use OT_ZWJ as _OT_ZWJ; /* 1 chars; ZWJ */ use OT_ZWNJ as _OT_ZWNJ; /* 1 chars; ZWNJ */ use POS_ABOVE_C as _POS_T; /* 22 chars; ABOVE_C */ -use POS_AFTER_MAIN as _POS_A; /* 3 chars; AFTER_MAIN */ +use POS_AFTER_MAIN as _POS_A; /* 5 chars; AFTER_MAIN */ use POS_AFTER_POST as _POS_AP; /* 50 chars; AFTER_POST */ use POS_AFTER_SUB as _POS_AS; /* 51 chars; AFTER_SUB */ use POS_BASE_C as _POS_C; /* 853 chars; BASE_C */ @@ -103,7 +103,7 @@ pub(crate) static _hb_indic_values: [u16; 42]= indic_combine_categories(_OT_ZWJ, _POS_X),indic_combine_categories(_OT_ZWNJ, _POS_X), ]; #[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason, missing_docs)] -pub(crate) static _hb_indic_u8: [u8; 1220]= +pub(crate) static _hb_indic_u8: [u8; 1224]= [ 1, 0, 50, 4, 5, 96, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -143,45 +143,45 @@ pub(crate) static _hb_indic_u8: [u8; 1220]= 56, 12, 14, 6, 0, 0, 0, 4, 44, 2, 16, 2, 6, 22, 0, 4, 2, 0, 36, 28, 6, 28, 0, 4, 30, 30, 30, 30, 0, 0, 42, 0, 34, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 42, 12, 12, 6, 6, - 6, 6, 24, 2, 2, 18, 36,112, 18, 18, 18, 18, 18, 18,114,116, - 118,120,122, 18, 0, 6, 6, 6, 44, 10, 0, 2, 54, 32, 46, 10, + 6, 6, 24, 2, 2, 18, 36,110, 18, 18, 18, 18, 18, 18,112,114, + 116,118,120, 18, 0, 6, 6, 6, 44, 10, 0, 2, 54, 32, 46, 10, 26, 0, 0, 0, 0, 0, 34, 70, 6, 20, 0, 14, 44, 2, 16, 10, - 2, 0, 72, 50,124, 48, 0, 32, 48, 32, 46, 0,126, 0, 0, 0, - 16, 2, 10, 10, 12, 2,128, 0, 6, 6, 6, 14, 6, 14, 24, 2, - 22, 22, 52, 74, 76, 32, 46, 0, 16, 58, 58, 78,130, 12, 14, 6, - 2, 0, 36,132,134, 32, 46, 0, 0, 0, 80,136, 16, 0, 0, 0, + 2, 0, 72, 50,122, 48, 0, 32, 48, 32, 46, 0,124, 0, 0, 0, + 16, 2, 10, 10, 12, 2,126, 0, 6, 6, 6, 14, 6, 14, 24, 2, + 22, 22, 52, 74, 76, 32, 46, 0, 16, 58, 58, 78,128, 12, 14, 6, + 2, 0, 36,130,132, 32, 46, 0, 0,134,136,138, 16, 0, 0, 0, 0, 70, 14, 6, 6, 20, 0, 6, 20, 6, 24, 0, 16, 10, 10, 2, - 0, 16, 10, 0, 2, 10, 0, 2, 2, 0, 0, 22, 76, 48, 0, 82, - 54, 22, 84, 0, 12, 12,138, 6, 28, 60, 38, 28, 86, 28, 88, 0, - 0, 0,140, 86, 2, 10, 16, 0, 26, 2, 16, 2, 28, 60, 38, 60, - 38, 18, 88, 0, 0, 0, 74, 38, 0, 0, 16, 10,142,144, 0, 0, - 12, 12,146, 6, 2,148,150, 22, 22, 22, 48, 82, 54, 22, 84,152, - 0, 0, 2,154, 0, 0, 0, 14, 0, 2, 2, 2, 2, 2, 26, 2, - 2,156, 2, 2, 90, 6, 6, 6, 6,158, 92, 94,160,162, 62, 58, - 164,166,168,170, 4, 4, 0, 10, 2, 6, 6, 96, 98, 26, 2,172, - 174,100,176,178,100,102,102, 2,104, 62,180, 2, 2,182,184,186, - 12, 12, 12,188, 4, 12,190, 0, 2, 26, 2, 2, 2, 90, 6, 6, - 6, 6, 0, 92, 62, 94, 98,192,194,196, 96,198,200,106,106,108, - 108,202, 0, 0, 42, 0,204, 0, 8,206, 8, 8,208, 40,210, 40, - 40, 2,212,214, 8, 34, 0, 0, 0, 0,216, 0, 4, 4, 4, 0, - 0, 34, 0, 0, 0, 0,110, 0, 0, 64,110, 0, 0, 0,218, 0, - 0, 42, 4, 34, 8, 40, 40, 40, 0, 0, 0,220, 2, 2,104, 16, - 4, 2, 2, 10, 16, 2, 4, 34, 0,222, 78, 2, 56, 12, 0, 0, - 0, 80, 72, 0, 37, 37, 2, 2, 6, 6, 31, 31, 0, 0, 2, 37, + 0, 16, 10, 0, 2, 10, 0, 2, 2, 0, 0, 22, 76, 48, 0, 80, + 54, 22, 82, 0, 12, 12,140, 6, 28, 60, 38, 28, 84, 28, 86, 0, + 0, 0,142, 84, 2, 10, 16, 0, 26, 2, 16, 2, 28, 60, 38, 60, + 38, 18, 86, 0, 0, 0, 74, 38, 0, 0, 16, 10,144,146, 0, 0, + 12, 12,148, 6, 2,150,152, 22, 22, 22, 48, 80, 54, 22, 82,154, + 0, 0, 2,156, 0, 0, 0, 14, 0, 2, 2, 2, 2, 2, 26, 2, + 2,158, 2, 2, 88, 6, 6, 6, 6,160, 90, 92,162,164, 62, 58, + 166,168,170,172, 4, 4, 0, 10, 2, 6, 6, 94, 96, 26, 2,174, + 176, 98,178,180, 98,100,100, 2,102, 62,182, 2, 2,184,186,188, + 12, 12, 12,190, 4, 12,192, 0, 2, 26, 2, 2, 2, 88, 6, 6, + 6, 6, 0, 90, 62, 92, 96,194,196,198, 94,200,202,104,104,106, + 106,204, 0, 0, 42, 0,206, 0, 8,208, 8, 8,210, 40,212, 40, + 40, 2,214,216, 8, 34, 0, 0, 0, 0,218, 0, 4, 4, 4, 0, + 0, 34, 0, 0, 0, 0,108, 0, 0, 64,108, 0, 0, 0,220, 0, + 0, 42, 4, 34, 8, 40, 40, 40, 0, 0, 0,222, 2, 2,102, 16, + 4, 2, 2, 10, 16, 2, 4, 34, 0,224, 78, 2, 56, 12, 0, 0, + 0,226, 72, 0, 37, 37, 2, 2, 6, 6, 31, 31, 0, 0, 2, 37, 29, 29, 37, 31, 37, 2, 12, 12, 31, 37, 11, 11, 31, 2, 24, 2, 14, 14, 36, 36, 37, 11, 6, 37, 22, 27, 12, 37, 27, 27, 37, 6, 24, 37, 11, 7, 11, 37, 11, 15, 11, 12, 15, 37, 37, 29, 0, 22, 14, 12, 32, 32, 30, 30, 6, 29, 37, 15, 29, 37, 22, 37, 37, 12, - 12, 11, 22, 22, 37, 22, 15, 15, 11, 8, 14, 37, 14, 8, 2, 31, - 35, 32, 32, 33, 35, 35, 33, 33, 35, 23, 23, 23, 2, 32, 26, 38, - 38, 38, 30, 37, 12, 15, 12, 7, 15, 12, 37, 0, 0, 29, 29, 12, - 18, 11, 37, 13, 37, 3, 37, 28, 11, 10, 10, 37, 10, 11, 29, 31, - 37, 14, 37, 4, 4, 29, 6, 31, 2, 12, 12, 27, 25, 37, 2, 11, - 2, 24, 31, 35, 33, 34, 0, 32, 29, 9, 1, 21, 19, 20, 16, 2, - 21, 21, 17, 2, 23, 2, 2, 35, 32, 2, 20, 35, 34, 32, 32, 29, - 2, 29, 29, 32, 32, 35, 35, 34, 34, 34, 38, 39, 39, 26, 9, 39, - 27, 39, 0, 37, 0, 27, 27, 0, 0, 4, 4, 0, 41, 40, 5, 37, - 31, 12, 2, 23, + 12, 11, 22, 22, 15, 15, 11, 8, 14, 37, 14, 8, 2, 31, 35, 32, + 32, 33, 35, 35, 33, 33, 35, 23, 23, 23, 2, 32, 26, 38, 38, 38, + 30, 37, 12, 15, 12, 7, 15, 12, 37, 0, 0, 29, 29, 12, 18, 11, + 37, 13, 37, 3, 37, 28, 11, 10, 10, 37, 37, 10, 10, 22, 10, 11, + 29, 31, 37, 14, 37, 4, 4, 29, 6, 31, 2, 12, 12, 27, 25, 37, + 2, 11, 2, 24, 31, 35, 33, 34, 0, 32, 29, 9, 1, 21, 19, 20, + 16, 2, 21, 21, 17, 2, 23, 2, 2, 35, 32, 2, 20, 35, 34, 32, + 32, 29, 2, 29, 29, 32, 32, 35, 35, 34, 34, 34, 38, 39, 39, 26, + 9, 39, 27, 39, 0, 37, 0, 27, 27, 0, 0, 4, 4, 0, 41, 40, + 5, 37, 31, 12, 2, 23, 37, 22, ]; #[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast)] diff --git a/harfrust/src/hb/ot_shaper_use_table.rs b/harfrust/src/hb/ot_shaper_use_table.rs index de08a5b4..be78f09f 100644 --- a/harfrust/src/hb/ot_shaper_use_table.rs +++ b/harfrust/src/hb/ot_shaper_use_table.rs @@ -6,18 +6,18 @@ * * on files with these headers: * - * # IndicSyllabicCategory-17.0.0.txt - * # Date: 2025-08-01, 04:02:23 GMT - * # IndicPositionalCategory-17.0.0.txt - * # Date: 2025-07-29, 13:35:52 GMT - * # ArabicShaping-17.0.0.txt - * # Date: 2025-08-14 + * # IndicSyllabicCategory-18.0.0.txt + * # Date: 2026-07-02, 18:58:37 GMT + * # IndicPositionalCategory-18.0.0.txt + * # Date: 2026-06-24, 13:39:21 GMT + * # ArabicShaping-18.0.0.txt + * # Date: 2026-08-18, 19:02:41 GMT * # DerivedCoreProperties-17.0.0.txt * # Date: 2025-07-30, 23:55:08 GMT - * # Blocks-17.0.0.txt - * # Date: 2025-08-01 - * # Scripts-17.0.0.txt - * # Date: 2025-07-24, 13:28:55 GMT + * # Blocks-18.0.0.txt + * # Date: 2026-07-08 + * # Scripts-18.0.0.txt + * # Date: 2026-06-29, 15:25:26 GMT * # Override values For Indic_Syllabic_Category * # Not derivable * # Initial version based on Unicode 7.0 by Andrew Glass 2014-03-17 @@ -28,6 +28,8 @@ * # Updated for Unicode 15.0 by Andrew Glass 2022-09-16 * # Updated for Unicode 15.1 by Andrew Glass 2023-09-14 * # Updated for Unicode 16.0 by Andrew Glass 2024-09-11 + * # Updated for Unicode 17.0 by Andrew Glass 2025-09-15 + * # Updated for Unicode 18.0 by Andrew Glass 2026-09-04 * # Override values For Indic_Positional_Category * # Not derivable * # Initial version based on Unicode 7.0 by Andrew Glass 2014-03-17 @@ -40,6 +42,8 @@ * # Updated for Unicode 15.0 by Andrew Glass 2022-09-16 * # Updated for Unicode 15.1 by Andrew Glass 2023-09-14 * # Updated for Unicode 16.0 by Andrew Glass 2024-09-11 + * # Updated for Unicode 17.0 by Andrew Glass 2025-09-15 + * # Updated for Unicode 18.0 by Andrew Glass 2026-09-04 * UnicodeData.txt does not have a header. */ @@ -51,7 +55,7 @@ use super::ot_shaper_use::category::*; #[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason, missing_docs)] -pub(crate) static hb_use_u8: [u8; 3343]= +pub(crate) static hb_use_u8: [u8; 3359]= [ 33, 3, 0, 0, 0, 4, 0, 80, 118, 128, 9, 10, 11, 192, 208, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -109,24 +113,24 @@ pub(crate) static hb_use_u8: [u8; 3343]= 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 9, 41, 2, 2, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 23, 6, 6, 6, 6, 6, 6, 6, - 6, 0, 0, 0, 0, 0, 0, 48, 0, 44, 0, 0, 0, 0, 0, 49, - 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 49, 0, 44, 0, 0, 0, 0, 0, 50, + 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 2, 2, 2, 2, 2, 36, 9, - 9, 9, 9, 0, 0, 0, 5, 31, 0, 2, 2, 2, 2, 50, 51, 0, + 9, 9, 9, 0, 0, 0, 5, 31, 0, 2, 2, 2, 2, 51, 52, 0, 0, 9, 24, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 15, 32, - 19, 17, 6, 18, 7, 15, 11, 67, 22, 31, 52, 25, 6, 2, 2, 2, + 19, 17, 6, 18, 7, 15, 11, 67, 22, 31, 53, 25, 6, 2, 2, 2, 2, 104, 14, 8, 2, 2, 2, 5, 8, 5, 5, 0, 2, 2, 0, 32, 19, 0, 0, 0, 34, 0, 0, 2, 8, 2, 0, 0, 0, 0, 0, 5, 105, 31, 24, 8, 2, 2, 5, 0, 8, 5, 2, 8, 5, 2, 0, 35, - 19, 17, 13, 0, 25, 38, 25, 68, 0, 53, 0, 0, 0, 8, 2, 5, - 5, 54, 39, 77, 0, 0, 0, 0, 0, 31, 24, 8, 2, 2, 2, 2, + 19, 17, 13, 0, 25, 38, 25, 68, 0, 54, 0, 0, 0, 8, 2, 5, + 5, 55, 39, 77, 0, 0, 0, 0, 0, 31, 24, 8, 2, 2, 2, 2, 8, 5, 2, 8, 2, 2, 0, 32, 19, 17, 6, 18, 25, 7, 34, 67, - 0, 0, 0, 0, 0, 8, 54, 54, 46, 31, 14, 8, 2, 2, 2, 5, - 8, 5, 2, 8, 2, 2, 0, 32, 20, 0, 0, 25, 7, 0, 0, 2, + 0, 0, 0, 0, 0, 8, 55, 55, 46, 31, 14, 8, 2, 2, 2, 5, + 8, 5, 2, 8, 2, 2, 0, 32, 20, 0, 25, 7, 7, 0, 0, 2, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 26, 8, 2, 2, 5, 0, 2, 5, 2, 2, 0, 8, 5, 5, 2, 0, 8, 5, 0, 2, 5, 0, 2, 2, 2, 2, 2, 2, 0, 0, 11, 15, 27, 0, 12, 33, 12, 45, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 24, 14, 55, 2, 2, 2, 5, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 24, 14, 47, 2, 2, 2, 5, 2, 2, 2, 2, 2, 2, 0, 32, 7, 0, 0, 25, 13, 2, 5, 0, 0, 36, 14, 8, 2, 2, 2, 5, 2, 2, 2, 8, 2, 2, 0, 32, 20, 0, 0, 34, 27, 0, 0, 0, 5, 106, 78, 0, 0, 0, 0, 0, @@ -140,7 +144,7 @@ pub(crate) static hb_use_u8: [u8; 3343]= 26, 18, 9, 13, 9, 2, 2, 79, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 81, 0, 0, 0, 0, 110, 0, 0, 0, 0, 2, 2, 2, 2, 2, 23, 20, 21, 57, 7, 7, 111, 82, 112, 113, - 83, 2, 2, 2, 2, 2, 48, 0, 44, 2, 2, 2, 11, 6, 2, 2, + 83, 2, 2, 2, 2, 2, 49, 0, 44, 2, 2, 2, 11, 6, 2, 2, 114, 83, 84, 41, 23, 84, 14, 14, 2, 30, 7, 40, 2, 2, 2, 2, 2, 2, 115, 58, 116, 14, 14, 117, 85, 2, 2, 2, 2, 2, 14, 20, 0, 2, 21, 59, 0, 0, 0, 0, 8, 2, 21, 27, 0, 0, 0, 0, @@ -148,19 +152,19 @@ pub(crate) static hb_use_u8: [u8; 3343]= 2, 5, 21, 0, 0, 0, 0, 0, 0, 2, 2, 4, 20, 7, 21, 6, 12, 12, 12, 12, 24, 60, 118, 119, 120, 121, 122, 0, 0, 0, 0, 123, 0, 5, 0, 0, 8, 0, 124, 4, 125, 39, 39, 126, 86, 2, 2, 2, - 2, 2, 2, 2, 2, 50, 5, 0, 0, 7, 59, 20, 7, 127, 10, 0, + 2, 2, 2, 2, 2, 51, 5, 0, 0, 7, 59, 20, 7, 127, 10, 0, 0, 70, 128, 70, 70, 129, 130, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 14, 0, 0, 0, 2, 2, 2, 30, 71, 20, 0, 0, 2, 2, 131, 132, 42, 133, 10, 81, 134, 15, 20, 7, 21, 18, 59, - 12, 12, 58, 9, 9, 9, 87, 26, 53, 9, 88, 41, 2, 2, 2, 2, + 12, 12, 58, 9, 9, 9, 87, 26, 54, 9, 88, 41, 2, 2, 2, 2, 2, 2, 2, 89, 7, 6, 6, 7, 12, 12, 7, 61, 2, 2, 2, 5, 0, 0, 0, 0, 0, 0, 135, 62, 62, 62, 62, 0, 0, 0, 0, 0, 0, 88, 41, 2, 2, 2, 2, 2, 2, 79, 10, 21, 22, 7, 136, 10, 2, 2, 2, 2, 89, 7, 11, 20, 20, 42, 137, 0, 0, 0, 0, 0, 0, 2, 2, 10, 19, 12, 11, 90, 42, 42, 42, 138, 139, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 8, 2, 9, 26, 16, 16, 16, 9, 16, - 16, 24, 16, 16, 16, 52, 0, 53, 0, 0, 0, 140, 78, 9, 44, 0, - 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 49, 142, + 16, 24, 16, 16, 16, 53, 0, 54, 0, 0, 0, 140, 78, 9, 44, 0, + 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 50, 142, 3, 39, 39, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 72, 0, 0, 91, 0, 0, 0, 0, 0, 0, 76, 91, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, @@ -170,31 +174,31 @@ pub(crate) static hb_use_u8: [u8; 3343]= 0, 14, 2, 2, 2, 2, 2, 2, 2, 2, 2, 144, 11, 11, 11, 11, 11, 11, 11, 92, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 2, 0, 0, 0, 0, 0, 30, 2, 2, 2, 7, 7, 145, 16, - 0, 2, 2, 2, 47, 6, 21, 6, 90, 42, 146, 0, 0, 0, 0, 0, + 0, 2, 2, 2, 48, 6, 21, 6, 90, 42, 146, 0, 0, 0, 0, 0, 0, 9, 147, 2, 2, 2, 2, 2, 2, 2, 148, 11, 7, 6, 12, 149, 150, 93, 0, 0, 0, 0, 0, 0, 0, 2, 2, 30, 8, 2, 2, 2, 2, 2, 2, 2, 2, 36, 7, 21, 71, 58, 151, 94, 152, 0, 0, 0, 0, 2, 153, 2, 2, 2, 2, 154, 0, 8, 2, 39, 44, 0, 85, 24, - 2, 73, 6, 40, 47, 73, 2, 2, 95, 36, 5, 0, 0, 0, 0, 0, + 2, 73, 6, 40, 48, 73, 2, 2, 95, 36, 5, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 155, 18, 22, 0, 0, 156, 96, 0, 0, 0, 0, 2, 23, 20, 11, 59, 27, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 3, 3, 3, 3, 72, 0, 0, 0, 2, 5, 2, 8, 2, 2, 2, - 2, 2, 8, 2, 2, 2, 8, 5, 0, 47, 6, 25, 13, 0, 0, 158, - 159, 2, 2, 8, 2, 8, 2, 2, 2, 2, 2, 2, 0, 51, 35, 0, - 97, 2, 2, 50, 35, 0, 8, 2, 2, 0, 0, 0, 0, 8, 2, 2, - 5, 2, 2, 9, 54, 0, 0, 0, 0, 2, 2, 2, 0, 25, 7, 7, + 50, 3, 3, 3, 3, 72, 0, 0, 0, 2, 5, 2, 8, 2, 2, 2, + 2, 2, 8, 2, 2, 2, 8, 5, 0, 48, 6, 25, 13, 0, 0, 158, + 159, 2, 2, 8, 2, 8, 2, 2, 2, 2, 2, 2, 0, 52, 35, 0, + 97, 2, 2, 51, 35, 0, 8, 2, 2, 0, 0, 0, 0, 8, 2, 2, + 5, 2, 2, 9, 55, 0, 0, 0, 0, 2, 2, 2, 0, 25, 7, 7, 8, 2, 2, 2, 2, 2, 25, 38, 0, 2, 2, 2, 16, 16, 16, 16, - 16, 160, 2, 5, 0, 0, 0, 0, 0, 2, 51, 51, 0, 0, 0, 0, + 16, 160, 2, 5, 0, 0, 0, 0, 0, 2, 52, 52, 0, 0, 0, 0, 0, 5, 2, 2, 5, 2, 2, 2, 2, 8, 2, 5, 0, 8, 2, 0, 0, 161, 162, 163, 2, 2, 2, 2, 2, 2, 2, 2, 2, 7, 7, 6, 6, 6, 7, 7, 93, 0, 0, 0, 0, 0, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2, 2, 2, 2, 2, 40, 30, 40, 0, 0, 0, 0, 164, 19, 17, 18, 15, 67, 35, 0, 0, 0, 13, 0, 0, 0, 0, 0, - 0, 9, 55, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47, 6, 7, 165, + 0, 9, 47, 2, 2, 2, 2, 2, 2, 2, 2, 2, 48, 6, 7, 165, 7, 18, 166, 98, 2, 2, 2, 2, 2, 0, 0, 23, 167, 0, 0, 0, - 0, 2, 50, 0, 0, 0, 0, 0, 0, 2, 23, 22, 6, 6, 6, 7, + 0, 2, 51, 0, 0, 0, 0, 0, 0, 2, 23, 22, 6, 6, 6, 7, 7, 61, 64, 0, 0, 69, 99, 13, 100, 2, 2, 2, 2, 2, 2, 11, - 17, 7, 7, 168, 46, 0, 0, 0, 55, 47, 0, 0, 0, 0, 0, 0, + 17, 7, 7, 168, 46, 0, 0, 0, 47, 48, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 5, 5, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 8, 2, 2, 2, 2, 2, 2, 2, 36, 19, 17, 18, 7, 169, 13, 0, 0, 9, 9, 8, 2, 2, 2, 5, 8, 5, 2, 8, 2, 2, 56, 32, @@ -202,7 +206,7 @@ pub(crate) static hb_use_u8: [u8; 3343]= 2, 2, 11, 0, 9, 9, 9, 26, 0, 9, 9, 26, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 8, 0, 5, 2, 2, 2, 8, 20, 21, 6, 6, 13, 33, 29, 29, 22, 170, 14, 171, 101, 35, 0, 0, 0, 0, 0, - 0, 31, 52, 0, 0, 0, 0, 0, 0, 2, 2, 23, 22, 6, 6, 6, + 0, 31, 53, 0, 0, 0, 0, 0, 0, 2, 2, 23, 22, 6, 6, 6, 7, 11, 92, 24, 32, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 172, 173, 0, 0, 0, 0, 0, 0, 0, 19, 17, 6, 6, 57, 71, 22, 100, 9, 102, 5, 0, 0, 0, 0, 0, 22, 6, 6, 0, 12, 12, 9, @@ -216,13 +220,14 @@ pub(crate) static hb_use_u8: [u8; 3343]= 101, 176, 177, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 23, 22, 6, 6, 0, 7, 11, 14, 61, 0, 33, 0, 0, 0, 0, 0, 30, 6, 7, 7, 7, 73, 2, 2, 2, 178, 95, 9, 24, 179, 10, - 180, 0, 0, 48, 97, 0, 0, 0, 0, 30, 6, 7, 15, 17, 6, 2, + 180, 0, 0, 49, 97, 0, 0, 0, 0, 30, 6, 7, 15, 17, 6, 2, 2, 2, 2, 64, 64, 64, 43, 43, 43, 43, 43, 43, 24, 181, 0, 8, - 0, 15, 6, 15, 15, 0, 0, 0, 0, 7, 6, 6, 13, 7, 7, 9, - 65, 0, 10, 10, 10, 10, 10, 10, 10, 57, 18, 60, 26, 0, 0, 0, - 0, 2, 2, 2, 5, 2, 8, 2, 2, 30, 7, 7, 13, 0, 38, 7, - 25, 9, 99, 182, 183, 0, 0, 0, 0, 2, 2, 2, 8, 5, 2, 2, - 2, 2, 2, 2, 2, 2, 11, 11, 27, 7, 34, 60, 82, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 0, 0, 15, 6, 15, 15, 0, 0, 0, + 0, 7, 6, 6, 13, 7, 7, 9, 65, 0, 10, 10, 10, 10, 10, 10, + 10, 57, 18, 60, 26, 0, 0, 0, 0, 2, 2, 2, 5, 2, 8, 2, + 2, 30, 7, 7, 13, 0, 38, 7, 25, 9, 99, 182, 183, 0, 0, 0, + 0, 2, 2, 2, 8, 5, 2, 2, 2, 2, 2, 2, 2, 2, 11, 11, + 27, 7, 34, 60, 82, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 2, 184, 57, 27, 0, 0, 0, 0, 9, 185, 2, 2, 2, 2, 2, 2, 2, 2, 11, 7, 6, 13, 0, 12, 15, 96, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 98, 0, 0, 66, 66, 66, 186, 187, 66, 1, @@ -231,10 +236,10 @@ pub(crate) static hb_use_u8: [u8; 3343]= 7, 7, 7, 7, 7, 7, 191, 192, 193, 9, 9, 9, 26, 0, 0, 0, 0, 14, 41, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 23, 27, 0, 2, 2, 2, 2, 2, 5, 0, 56, 194, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 0, 0, 0, 53, 16, 52, 0, 0, 0, 0, 0, + 6, 6, 6, 6, 6, 0, 0, 0, 54, 16, 53, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 2, 2, 2, 2, 2, 0, 56, 35, 0, 49, 3, 3, 3, 72, 0, - 0, 9, 9, 9, 55, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, + 8, 2, 2, 2, 2, 2, 0, 56, 35, 0, 50, 3, 3, 3, 72, 0, + 0, 9, 9, 9, 47, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 26, 2, 2, 2, 2, 2, 2, 9, 9, 2, 2, 2, 2, 2, 2, 7, 7, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 46, 46, 46, 86, 0, 0, O, O, G, G, B, B, WJ, @@ -243,8 +248,8 @@ pub(crate) static hb_use_u8: [u8; 3343]= VPre, VPst, VAbv, VAbv, VBlw, VPre, VPst, B, VPst,VMAbv,VMPst, O, VAbv,VMAbv, O, VPst, O, N, N, O, VPre, B, VAbv, O,VMAbv,CMBlw, B, VPre, O, O, VPst,CMBlw, O, B,VMAbv, HM, HM, VAbv, O, GB, GB, VAbv, B,VMPst, B, FAbv, FAbv, FBlw, - FBlw, GB, O, VPre, H,CMAbv,CMAbv, B, VBlw, O, GB, O, WJ, B,CMBlw,CMBlw, - CMBlw,VMBlw, O, O,VMBlw,VMAbv,CMAbv,VMAbv, B, O,CMBlw, VBlw, VPre, VPre, VAbv, VBlw, + FBlw, GB, O, VPre, H,CMAbv,CMAbv,VMAbv, B, B, VBlw, O, GB, O, WJ, B, + CMBlw,CMBlw,CMBlw,VMBlw, O, O,VMBlw,VMAbv,CMAbv, O,CMBlw, VBlw, VPre, VPre, VAbv, VBlw, VPst, VPst,VMAbv, H, B,SMAbv,SMAbv, SB, SE, R, R,VMPst, H, J, J, VPst, H, VAbv, H, O,FMBlw, FPst, FPst, VAbv, VPre, WJ, O, VBlw, B, O, SB, O, SE,FMPst,FMPst, O, MBlw, CS,VMPst, B, SUB, O, SUB, SUB, O,VMPst, IS, MBlw, @@ -307,18 +312,18 @@ pub(crate) static hb_use_u16: [u16; 864]= 24,1872,1880, 200,1888, 0, 0, 0, 24, 24,1896,1904, 0, 0, 0, 0, 1912,1920, 24,1928,1936, 32, 0, 0, 0, 0,1944, 24, 24,1952,1960, 0, 1968, 24, 24,1976,1984,1992, 24, 24,2000,2008, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,2016, 0, 48, 24, 256,2024, 128, 24, 88, 144, - 24,2032, 176,2040, 0, 0, 0, 0,2048, 24, 24,2056,2064, 32,2072, 24, - 2080,2088, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,2096, - 2104, 80, 24,2112,2120,2128, 0, 0, 8, 8, 8,2136,2144,2152, 8, 8, - 8, 8, 8, 8, 8, 8, 8,2160, 24,2168,2176, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 0, 0, 24, 24, 24,2184, 0, 0, 0, 0, - 0, 0, 0, 0,2192, 24,2200, 32, 24, 24, 24, 24,2208,2216, 264, 264, - 2224,2232, 0, 0, 0, 0,2240, 0, 24, 24, 24, 24, 24, 232, 0,2248, - 24, 24, 24, 24, 24, 24, 104, 88, 96,2256, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,2264, 24, 24, 88,2272,2280, 0, 0, 0, - 0, 24,2288, 0, 24, 24,2296, 32, 0, 0, 0, 0, 0, 24,2304, 32, - 0, 0, 0, 0, 0, 24,2312, 104, 24, 24, 24, 24,2320, 32, 0, 0, + 2016, 0, 0, 0, 0, 0,2024, 0, 48, 24, 256,2032, 128, 24, 88, 144, + 24,2040, 176,2048, 0, 0, 0, 0,2056, 24, 24,2064,2072, 32,2080, 24, + 2088,2096, 32, 0, 0, 0, 0,2104, 0, 0, 0, 0, 0, 0, 24,2112, + 2120, 80, 24,2128,2136,2144, 0, 0, 8, 8, 8,2152,2160,2168, 8, 8, + 8, 8, 8, 8, 8, 8, 8,2176, 24,2184,2192, 32, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 24, 24, 24,2200, 0, 0, 0, 0, + 0, 0, 0, 0,2208, 24,2216, 32, 24, 24, 24, 24,2224,2232, 264, 264, + 2240,2248, 0, 0, 0, 0,2256, 0, 24, 24, 24, 24, 24, 232, 0,2264, + 24, 24, 24, 24, 24, 24, 104, 88, 96,2272, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,2280, 24, 24, 88,2288,2296, 0, 0, 0, + 0, 24,2304, 0, 24, 24,2312, 32, 0, 0, 0, 0, 0, 24,2320, 32, + 0, 0, 0, 0, 0, 24,2328, 104, 24, 24, 24, 24,2336, 32, 0, 0, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 16, ]; @@ -333,7 +338,7 @@ fn hb_use_b4 (a: &[u8], i: usize) -> u8 pub(crate) fn hb_use_get_category (u: usize) -> u8 { /* packtab: [2^4,2^5,2^3,2^3,2^1] */ - if u<921600usize { (hb_use_u8[2953usize+((((hb_use_u8[625usize+(((hb_use_u16[(((hb_use_u8[113usize+((((hb_use_b4(&hb_use_u8,(((((((((u)>>1))>>3))>>3))>>5) as usize) as usize)) as usize)<<5) as usize+((((((((u)>>1))>>3))>>3))&31) as usize) as usize]) as usize)<<3) as usize+((((((u)>>1))>>3))&7) as usize]) as usize) as usize+((((u)>>1))&7) as usize) as usize]) as usize)<<1) as usize+((u)&1) as usize) as usize]) as u8 } else { O } + if u<921600usize { (hb_use_u8[2969usize+((((hb_use_u8[625usize+(((hb_use_u16[(((hb_use_u8[113usize+((((hb_use_b4(&hb_use_u8,(((((((((u)>>1))>>3))>>3))>>5) as usize) as usize)) as usize)<<5) as usize+((((((((u)>>1))>>3))>>3))&31) as usize) as usize]) as usize)<<3) as usize+((((((u)>>1))>>3))&7) as usize]) as usize) as usize+((((u)>>1))&7) as usize) as usize]) as usize)<<1) as usize+((u)&1) as usize) as usize]) as u8 } else { O } } /* == End of generated table == */ diff --git a/harfrust/src/hb/tag_table.rs b/harfrust/src/hb/tag_table.rs index 78da8d44..cc719976 100644 --- a/harfrust/src/hb/tag_table.rs +++ b/harfrust/src/hb/tag_table.rs @@ -262,7 +262,7 @@ pub(crate) static OPEN_TYPE_LANGUAGES: &[LangTag] = &[ LangTag { language: lang(b"ce"), tag: Tag::new(b"CHE ") }, // Chechen // LangTag { language: lang(b"ceb"), tag: Tag::new(b"CEB ") }, // Cebuano LangTag { language: lang(b"cek"), tag: Tag::new(b"QIN ") }, // Eastern Khumi Chin -> Chin - LangTag { language: lang(b"cey"), tag: Tag::new(b"QIN ") }, // Ekai Chin -> Chin + LangTag { language: lang(b"cey"), tag: Tag::new(b"QIN ") }, // Laoktu Chin -> Chin LangTag { language: lang(b"cfm"), tag: Tag::new(b"HAL ") }, // Halam (Falam Chin) LangTag { language: lang(b"cfm"), tag: Tag::new(b"QIN ") }, // Falam Chin -> Chin // LangTag { language: lang(b"cgg"), tag: Tag::new(b"CGG ") }, // Chiga @@ -390,8 +390,8 @@ pub(crate) static OPEN_TYPE_LANGUAGES: &[LangTag] = &[ // LangTag { language: lang(b"dax"), tag: Tag::new(b"DAX ") }, // Dayi LangTag { language: lang(b"dcr"), tag: Tag::new(b"CPP ") }, // Negerhollands -> Creoles LangTag { language: lang(b"de"), tag: Tag::new(b"DEU ") }, // German - LangTag { language: lang(b"den"), tag: Tag::new(b"SLA ") }, // Slave (Athapascan) [macrolanguage] -> Slavey - LangTag { language: lang(b"den"), tag: Tag::new(b"ATH ") }, // Slave (Athapascan) [macrolanguage] -> Athapaskan + LangTag { language: lang(b"den"), tag: Tag::new(b"SLA ") }, // Slavey [macrolanguage] + LangTag { language: lang(b"den"), tag: Tag::new(b"ATH ") }, // Slavey [macrolanguage] -> Athapaskan LangTag { language: lang(b"dep"), tag: Tag::new(b"CPP ") }, // Pidgin Delaware -> Creoles LangTag { language: lang(b"dgo"), tag: Tag::new(b"DGO ") }, // Dogri (individual language) LangTag { language: lang(b"dgo"), tag: Tag::new(b"DGR ") }, // Dogri (macrolanguage) @@ -630,7 +630,7 @@ pub(crate) static OPEN_TYPE_LANGUAGES: &[LangTag] = &[ LangTag { language: lang(b"hy"), tag: Tag::new(b"HYE ") }, // Armenian LangTag { language: lang(b"hyw"), tag: Tag::new(b"HYE ") }, // Western Armenian -> Armenian LangTag { language: lang(b"hz"), tag: Tag::new(b"HER ") }, // Herero - LangTag { language: lang(b"ia"), tag: Tag::new(b"INA ") }, // Interlingua (International Auxiliary Language Association) + LangTag { language: lang(b"ia"), tag: Tag::new(b"INA ") }, // Interlingua (IALA) // LangTag { language: lang(b"iba"), tag: Tag::new(b"IBA ") }, // Iban // LangTag { language: lang(b"ibb"), tag: Tag::new(b"IBB ") }, // Ibibio LangTag { language: lang(b"iby"), tag: Tag::new(b"IJO ") }, // Ibani -> Ijo @@ -929,7 +929,7 @@ pub(crate) static OPEN_TYPE_LANGUAGES: &[LangTag] = &[ LangTag { language: lang(b"mde"), tag: Tag::new(&[0; 4]) }, // Maba (Chad) != Mende LangTag { language: lang(b"mdf"), tag: Tag::new(b"MOK ") }, // Moksha // LangTag { language: lang(b"mdr"), tag: Tag::new(b"MDR ") }, // Mandar - LangTag { language: lang(b"mdy"), tag: Tag::new(b"MLE ") }, // Male (Ethiopia) + LangTag { language: lang(b"mdy"), tag: Tag::new(b"MLE ") }, // Male LangTag { language: lang(b"men"), tag: Tag::new(b"MDE ") }, // Mende (Sierra Leone) LangTag { language: lang(b"meo"), tag: Tag::new(b"MLY ") }, // Kedah Malay -> Malay // LangTag { language: lang(b"mer"), tag: Tag::new(b"MER ") }, // Meru @@ -987,7 +987,7 @@ pub(crate) static OPEN_TYPE_LANGUAGES: &[LangTag] = &[ LangTag { language: lang(b"mpe"), tag: Tag::new(b"MAJ ") }, // Majang LangTag { language: lang(b"mqg"), tag: Tag::new(b"MLY ") }, // Kota Bangun Kutai Malay -> Malay LangTag { language: lang(b"mr"), tag: Tag::new(b"MAR ") }, // Marathi - LangTag { language: lang(b"mrh"), tag: Tag::new(b"QIN ") }, // Mara Chin -> Chin + LangTag { language: lang(b"mrh"), tag: Tag::new(b"QIN ") }, // Mara -> Chin LangTag { language: lang(b"mrj"), tag: Tag::new(b"HMA ") }, // Western Mari -> High Mari LangTag { language: lang(b"ms"), tag: Tag::new(b"MLY ") }, // Malay [macrolanguage] LangTag { language: lang(b"msc"), tag: Tag::new(b"MNK ") }, // Sankaran Maninka -> Maninka @@ -1360,7 +1360,7 @@ pub(crate) static OPEN_TYPE_LANGUAGES: &[LangTag] = &[ LangTag { language: lang(b"sh"), tag: Tag::new(b"SRB ") }, // Serbo-Croatian [macrolanguage] -> Serbian LangTag { language: lang(b"shi"), tag: Tag::new(b"SHI ") }, // Tachelhit LangTag { language: lang(b"shi"), tag: Tag::new(b"BBR ") }, // Tachelhit -> Berber - LangTag { language: lang(b"shl"), tag: Tag::new(b"QIN ") }, // Shendu -> Chin + LangTag { language: lang(b"shl"), tag: Tag::new(b"QIN ") }, // Shendu (retired code) -> Chin // LangTag { language: lang(b"shn"), tag: Tag::new(b"SHN ") }, // Shan LangTag { language: lang(b"shu"), tag: Tag::new(b"ARA ") }, // Chadian Arabic -> Arabic LangTag { language: lang(b"shy"), tag: Tag::new(b"BBR ") }, // Tachawit -> Berber @@ -1410,7 +1410,7 @@ pub(crate) static OPEN_TYPE_LANGUAGES: &[LangTag] = &[ LangTag { language: lang(b"srn"), tag: Tag::new(b"CPP ") }, // Sranan Tongo -> Creoles LangTag { language: lang(b"sro"), tag: Tag::new(b"SRD ") }, // Campidanese Sardinian -> Sardinian // LangTag { language: lang(b"srr"), tag: Tag::new(b"SRR ") }, // Serer - LangTag { language: lang(b"srs"), tag: Tag::new(b"ATH ") }, // Sarsi -> Athapaskan + LangTag { language: lang(b"srs"), tag: Tag::new(b"ATH ") }, // Tsuut'ina -> Athapaskan LangTag { language: lang(b"ss"), tag: Tag::new(b"SWZ ") }, // Swati LangTag { language: lang(b"ssh"), tag: Tag::new(b"ARA ") }, // Shihhi Arabic -> Arabic LangTag { language: lang(b"ssl"), tag: Tag::new(&[0; 4]) }, // Western Sisaala != South Slavey diff --git a/harfrust/src/unicode/emoji_table.rs b/harfrust/src/unicode/emoji_table.rs index 2f25c3e9..e63ce2f7 100644 --- a/harfrust/src/unicode/emoji_table.rs +++ b/harfrust/src/unicode/emoji_table.rs @@ -7,13 +7,13 @@ * on file with this header: * * # emoji-data.txt - * # Date: 2025-07-25, 17:54:31 GMT - * # © 2025 Unicode®, Inc. + * # Date: 2026-01-30, 22:30:17 GMT + * # © 2026 Unicode®, Inc. * # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. * # For terms of use and license, see https://www.unicode.org/terms_of_use.html * # * # Emoji Data for UTS #51 - * # Version: 17.0 + * # Version: 18.0.0 * # * # For documentation and usage, see https://www.unicode.org/reports/tr51 */ @@ -54,14 +54,14 @@ pub(crate) static _hb_emoji_u8: [u8; 624]= 0, 0, 0, 0, 0, 0, 1, 32, 0, 0,128, 2, 0, 0, 0, 0, 16, 0, 0, 0, 0,240, 0, 0, 0, 0,240,255, 0,128, 1, 0, 1,128, 1, 0, 0, 0,192,255, 0, 0, 0, 0, 0, 0, 3,192, - 0, 64,254, 7, 0,192,255,255,255,255,255,255, 63, 0, 0, 0, + 0, 64,254, 7, 0,128,255,255,255,255,255,255, 63, 0, 0, 0, 254,255, 0, 4, 0,128,252,247, 0,254,255,255,192,255,255,255, 255,255,255,255,243,255,255,255,255,255,207,206,255,255,255,255, 255,255,255,255,255,255,185, 7,255,255,255,255,255,255,255,191, 255,255,255,255,255,255,255, 63, 0,126,255,255,255,128,249, 7, 128, 60, 97, 0, 48, 1, 6, 16, 28, 0, 14,112, 10,129, 8,252, 255,255, 0, 0, 0, 0, 0, 0, 63,248,231,255, 63,250,249,255, - 0, 0, 0,252,255,255,255,255, 0,240, 0, 0, 0, 0, 0, 0, + 0, 0, 0,240,255,255, 1, 0, 0,240, 0, 0, 0, 0, 0, 0, 0,255, 0,252, 0, 0, 0, 0, 0,255, 0, 0, 0,192, 0,240, 252,255, 0,254,255,255,255,255, 0,240,255,255,255,255,255,247, 191,255,255,255,255,255,255,255, 0, 0, 0,255, 0,192,255,255, diff --git a/harfrust/src/unicode/mod.rs b/harfrust/src/unicode/mod.rs index dc2aeb6a..b9c9cb66 100644 --- a/harfrust/src/unicode/mod.rs +++ b/harfrust/src/unicode/mod.rs @@ -896,6 +896,30 @@ mod builtin { #[cfg(test)] mod tests { + #[cfg(not(feature = "icu"))] + #[test] + fn unicode_18_scripts() { + use super::GeneralCategory as Gc; + use crate::script; + + for (range, script, category) in [ + ( + 0x125A8..=0x1264B, + script::PROTO_CUNEIFORM, + Gc::LETTER_NUMBER, + ), + (0x18E00..=0x19191, script::JURCHEN, Gc::OTHER_LETTER), + (0x191A0..=0x191D2, script::JURCHEN, Gc::OTHER_LETTER), + (0x3D000..=0x3FC3F, script::SEAL, Gc::OTHER_LETTER), + ] { + for cp in range { + assert_eq!(super::script_for(cp), script, "U+{cp:04X}"); + assert_eq!(super::general_category_for(cp), category, "U+{cp:04X}"); + assert_eq!(super::combining_class_for(cp), 0, "U+{cp:04X}"); + } + } + } + #[test] fn general_category_ranges() { use super::GeneralCategory as Gc; diff --git a/harfrust/src/unicode/ucd_table.rs b/harfrust/src/unicode/ucd_table.rs index c3d2e66d..68cdb51c 100644 --- a/harfrust/src/unicode/ucd_table.rs +++ b/harfrust/src/unicode/ucd_table.rs @@ -4,7 +4,7 @@ * * ./gen-ucd-table.py --rust ucd.nounihan.grouped.xml hb-script-list.h * - * on file with this description: Unicode 17.0.0 + * on file with this description: Unicode 18.0.0 */ pub(crate) mod ucd { @@ -12,10 +12,12 @@ pub(crate) mod ucd { #![allow(unused_parens)] #![allow(clippy::unnecessary_cast, clippy::unreadable_literal, clippy::double_parens)] -use crate::{algs::{HB_CODEPOINT_ENCODE3, HB_CODEPOINT_ENCODE3_11_7_14}, script, Script as hb_script_t}; +use crate::algs::{HB_CODEPOINT_ENCODE3, HB_CODEPOINT_ENCODE3_11_7_14}; +use crate::hb::common::script; +use crate::hb::common::Script as hb_script_t; #[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason, missing_docs)] -pub(crate) static _hb_ucd_sc_map: [hb_script_t; 176]= +pub(crate) static _hb_ucd_sc_map: [hb_script_t; 179]= [ script::COMMON, script::INHERITED, script::UNKNOWN, script::ARABIC, @@ -105,6 +107,8 @@ pub(crate) static _hb_ucd_sc_map: [hb_script_t; 176]= script::TODHRI, script::TULU_TIGALARI, script::BERIA_ERFE, script::SIDETIC, script::TAI_YO, script::TOLONG_SIKI, + script::JURCHEN, script::PROTO_CUNEIFORM, + script::SEAL, ]; #[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason, missing_docs)] pub(crate) static _hb_ucd_dm1_p0_map: [u16; 825]= @@ -765,7 +769,7 @@ pub(crate) static _hb_ucd_dm2_u64_map: [u64; 408]= ]; #[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason)] -static _hb_ucd_u8: [u8; 19845]= +static _hb_ucd_u8: [u8; 19991]= [ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 2, 2, 2, 2, 2, 2, @@ -776,27 +780,29 @@ static _hb_ucd_u8: [u8; 19845]= 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 37, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 2, 58, 59, 0, 0, 0, 0, 60, 2, 2, 61, 2, 2, 2, 2, 2, - 2, 62, 2, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 0, 0, 0, 2, 65, 66, 67, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 69, 70, 71, 0, 0, 0, 0, 72, 0, - 0, 0, 0, 0, 0, 0, 73, 74, 75, 76, 77, 78, 4, 79, 0, 80, - 81, 82, 83, 84, 85, 0, 86, 87, 88, 89, 4, 90, 91, 92, 0, 0, + 2, 58, 59, 60, 0, 0, 0, 61, 2, 2, 62, 2, 2, 2, 2, 2, + 2, 63, 2, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 2, 66, 67, 68, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 69, 2, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 72, 73, 0, 0, 0, 0, 74, 0, + 0, 0, 0, 0, 0, 0, 75, 76, 77, 78, 79, 80, 4, 81, 0, 82, + 83, 84, 85, 86, 87, 0, 88, 89, 90, 91, 4, 92, 93, 94, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 93, 2, 2, 2, 2, 2, 2, 2, 2, 94, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 95, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 96, 2, 97, 0, 0, 0, 0, 2, 98, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 99, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,100, 0, 0, 0, 0, 0, + 2, 2, 2, 95, 2, 2, 2, 2, 2, 2, 2, 2, 96, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 97, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 98, 2, 99, 0, 0, 0, 0, 2,100, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2,101, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -877,9 +883,7 @@ static _hb_ucd_u8: [u8; 19845]= 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -894,7 +898,7 @@ static _hb_ucd_u8: [u8; 19845]= 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,102, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,105, 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, @@ -906,590 +910,638 @@ static _hb_ucd_u8: [u8; 19845]= 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, - 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, - 11, 11, 11, 11, 11, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, - 13, 13, 13, 13, 13, 13, 13, 13, 16, 16, 16, 16, 16, 16, 16, 16, - 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 14, - 1, 1, 1, 1, 14, 1, 1, 1, 18, 18, 18, 18, 18, 18, 18, 18, - 1, 5, 0, 11, 11, 11, 11, 11, 1, 1, 1, 1, 1, 1, 14, 0, - 1, 1, 1, 1, 14, 0, 0, 0, 6, 6, 6, 6, 7, 7, 7, 7, - 1, 1, 1, 1, 1, 14, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, - 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 14, 0, 0, 0, 0, - 1, 1, 1, 14, 1, 1, 1, 14, 3, 3, 3, 3, 3, 3, 0, 0, - 28, 28, 28, 28, 28, 28, 28, 28, 11, 11, 11, 11, 11, 1, 1, 1, - 14, 17, 1, 1, 1, 1, 1, 1, 14, 0, 0, 0, 0, 0, 0, 0, - 14, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 0, 0, 0, - 3, 3, 3, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 29, 0, + 5, 5, 5, 5, 5, 5, 5, 5, 9, 9, 9, 9, 9, 9, 9, 9, + 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, + 12, 12, 12, 12, 12, 12, 12, 12, 11, 11, 11, 11, 11, 0, 0, 0, + 10, 10, 10, 10, 10, 10, 10, 10, 14, 14, 14, 14, 14, 14, 14, 14, + 1, 1, 1, 1, 1, 1, 1, 15, 1, 1, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 1, 15, 1, 1, 1, 1, 1, 1, 1, 15, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 1, 1, 1, 1, 1, 15, 0, 0, + 1, 5, 0, 11, 11, 11, 11, 11, 1, 1, 1, 1, 1, 1, 15, 0, + 6, 6, 6, 6, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, + 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 15, 0, 0, 0, 0, + 1, 1, 1, 15, 1, 1, 1, 15, 28, 28, 28, 28, 28, 28, 28, 28, + 11, 11, 11, 11, 11, 1, 1, 1, 15, 17, 1, 1, 1, 1, 1, 1, + 15, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 0, 0, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 29, 0, 1, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 7, 7, 7, 7, 7, 6, 6, 6, 0, 0, 0, 11, 11, 11, 11, 11, 17, 1, 1, 1, 1, 1, 1, 1, - 11, 11, 11, 11, 11, 10, 10, 10, 1, 1, 1, 0, 0, 0, 0, 0, - 5, 46, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 41, 41, 41, 41, - 3, 3, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 0, 0, 12, - 1, 1, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, - 49, 10, 10, 10, 10, 10, 10, 10, 7, 6, 6, 6, 6, 6, 6, 6, - 44, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, - 3, 3, 3, 3, 0, 0, 0, 0, 11, 11, 11, 11, 11, 12, 9, 77, - 88, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,102,103,104, - 89, 6, 6, 6, 6, 6, 6, 6, 22, 22, 22, 22, 22, 22, 22, 22, - 26, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 5, 5, 5, 5, 5, + 11, 11, 11, 11, 11, 10, 10, 10, 3, 3, 3, 3, 3, 0, 0, 0, + 5, 45, 1, 1, 1, 1, 1, 1, 6, 6, 6, 6, 42, 42, 42, 42, + 3, 3, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 29, + 11, 11, 11, 11, 11, 0, 0, 13, 1, 1, 0, 0, 0, 0, 0, 0, + 48, 10, 10, 10, 10, 10, 10, 10, 7, 6, 6, 6, 6, 6, 6, 6, + 54, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, + 11, 11, 11, 11, 11, 13, 9, 77, 88, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7,104,105,106, 89, 6, 6, 6, 6, 6, 6, 6, + 22, 22, 22, 22, 22, 22, 22, 22, 27, 5, 5, 5, 5, 5, 5, 5, + 1, 1, 1, 5, 5, 5, 5, 5, 25, 0, 0, 0, 0, 0, 0, 0, 5, 20, 1, 1, 1, 1, 1, 1, 1, 17, 1, 1, 1, 1, 1, 1, - 11, 11, 11, 11, 11, 12, 12, 12, 1, 1, 1, 1, 14, 1, 1, 0, - 14, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 14, 1, 1, 1, 1, - 10, 10, 10, 10, 10, 10, 51, 0,115, 1, 1, 1, 1, 1, 1, 1, - 5, 5, 5, 5, 5, 5, 5, 0, 1, 1, 1, 1, 13, 13, 13, 12, - 6, 6, 6, 0, 7, 7, 7, 0, 30, 30, 30, 30, 30, 30, 30, 30, - 3, 3, 3, 3, 3, 29, 0, 0, 3, 3, 3, 3, 3, 3, 3, 29, + 11, 11, 11, 11, 11, 13, 13, 13, 1, 1, 1, 1, 15, 1, 1, 0, + 15, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 15, 1, 1, 1, 1, + 10, 10, 10, 10, 10, 10, 51, 0,117, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 14, 14, 14, 13, 6, 6, 6, 0, 7, 7, 7, 0, + 30, 30, 30, 30, 30, 30, 30, 30, 3, 3, 3, 3, 3, 29, 0, 0, 10, 10, 10, 10, 10, 3, 3, 3, 75, 10, 10, 10, 10, 10, 10, 10, - 3, 3, 3, 29, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, + 3, 3, 3, 29, 0, 0, 0, 0, 6, 8, 8, 8, 8, 8, 8, 8, + 6, 6, 6, 46, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 7, 7, 7, 7, 7, 32, 7, 7, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 51, 0, 0, 0, 1, 1, 1, 1, 1, 1, 86, 10, - 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 15, 19, - 1, 1, 1, 1, 1, 1, 1, 34, 1, 1, 1, 1, 1, 1, 1, 5, - 15, 15, 15, 15, 15, 15, 15, 15, 1, 14, 0, 0, 0, 0, 0, 0, - 5, 5, 5, 23, 0, 0, 0, 0, 10, 10, 0, 0, 0, 0, 0, 0, - 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, - 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, - 3, 3, 3, 3, 29, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 87, 12,100, 12, 27,101, 76, 12, 6, 6, 6, 6, 6,105,106,135, - 87, 30, 30, 66,107,136,137,108, 50, 10, 89, 12,138,139, 10, 78, - 7, 7, 7, 59, 7, 7, 7, 8, 6, 6, 6, 60, 6, 6, 6, 6, - 8, 8, 8, 8, 21, 21, 21, 21, 21, 21, 21, 21, 6, 8, 8, 8, - 8, 8, 8, 8, 7, 21, 21, 6, 21, 8, 8, 7, 21, 7, 6, 7, - 7, 21, 8, 7, 8, 6, 7, 21, 8, 8, 8, 7, 21, 6, 8, 7, - 21, 7, 21, 21, 8, 67, 8, 6, 1, 1,109, 21,110,109, 21, 21, - 21, 21, 21, 21, 21, 21, 6, 8, 21,110, 8, 7, 8, 8, 8, 8, - 8, 8, 6, 6, 6, 7, 21, 8, 21, 21, 7, 8, 8, 8, 8, 8, - 6, 6, 1, 6, 6, 6, 6, 6, 13, 22, 22, 13, 13, 13, 13, 13, - 13, 22, 22, 22, 22, 22, 22, 22, 13, 13, 68, 22, 22, 22, 68, 68, - 8, 8, 68, 8, 0, 69, 6, 88, 0, 0, 22,140, 7, 32, 32, 7, - 21, 7, 7, 7, 7, 7, 7, 7, 7, 39, 7, 7, 7, 7, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 21, 6, 7, 8, 6, 8, 8, 8, 8, - 6, 6, 8, 90, 21, 8, 21, 7, 8, 43, 5, 5, 79, 8, 8, 8, - 7, 21, 21, 21, 21, 21, 21, 6, 39, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 32, 54, 12, 12, 12, 6, 6, 6, 6,111,141, 44, 70, - 5, 5, 5, 5, 5, 5, 5,142, 71, 36, 5, 71, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 14, 0, 17, 1, 40, 33, 0, 0, 0, 0, 0, - 18, 18, 18, 9, 77, 80, 12, 3, 5, 5, 5, 5, 5, 36,143, 12, - 52, 1, 1, 1, 1, 24, 5, 5, 11, 11, 11, 11, 11, 12, 12, 1, - 25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 53, 5, 5, 5,144, 43, - 5, 5, 81, 72, 55, 5, 5, 1, 11, 11, 11, 11, 11, 1, 56, 82, - 12, 12, 12, 12, 12, 12, 12, 73, 24, 1, 1, 1, 1, 1, 1, 1, - 5, 5, 5, 5, 5, 23, 17, 1, 25, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 24, 5, 5, 5, 5, 13, 66, 12, 61, 26, 30, - 1, 1, 1, 5, 5, 72, 5, 5, 5, 5, 72, 5, 72, 5, 5, 0, - 12, 12, 12, 12, 12, 12, 12, 33, 1, 1, 1, 1, 24, 5, 0, 33, - 1, 1, 1, 1,145, 1, 1, 1, 18, 0, 0, 26, 5, 5, 5, 5, - 1, 1, 1, 1, 45, 5, 5, 5, 5, 91, 5, 5, 5, 5, 5, 5, - 1, 1, 1, 1, 1, 20, 25, 15, 19, 5, 5, 5, 20, 15, 19, 15, - 24, 5, 5, 5, 1, 1, 1, 1, 1, 5, 12, 11, 11, 11, 11, 11, - 62, 1, 1, 1, 1, 1, 1, 1, 24, 15, 17, 1, 1, 1, 14, 17, - 14, 14, 0, 1, 1, 0, 25, 15, 19, 5, 23, 35, 37, 35, 19, 14, - 0, 0, 0, 35, 0, 0, 1, 17, 1, 30, 10, 10, 10, 70, 40, 23, - 26, 20, 17, 1, 1, 14, 0, 17, 14, 1, 17, 14, 1, 0, 23, 15, - 19, 23, 0, 26, 23, 26, 5, 0, 26, 0, 0, 0, 17, 1, 14, 14, - 5, 1, 24, 33, 0, 0, 0, 0, 26, 20, 17, 1, 1, 1, 1, 17, - 14, 1, 17, 1, 1, 0, 25, 15, 19, 5, 5, 26, 20, 35, 19, 0, - 80, 0, 0, 0, 17, 5, 5, 5, 26, 15, 17, 1, 1, 1, 14, 17, - 14, 1, 17, 1, 1, 0, 25, 19, 19, 5, 23, 35, 37, 35, 19, 0, - 0, 0, 26, 20, 0, 0, 1, 17, 82, 10, 10, 10, 0, 0, 0, 0, - 0, 25, 17, 1, 1, 14, 0, 1, 14, 1, 1, 0, 17, 14, 14, 1, - 0, 17, 14, 0, 1, 14, 0, 1, 1, 1, 1, 1, 1, 0, 0, 15, - 20, 37, 0, 15, 37, 15, 19, 0, 14, 0, 0, 35, 0, 0, 0, 0, - 10, 63, 3, 3, 70, 29, 0, 0, 20, 15, 25, 1, 1, 1, 14, 1, - 1, 1, 1, 1, 1, 0, 25, 5, 20, 15, 37, 5, 23, 5, 5, 0, - 0, 0, 26, 23, 1, 14, 1, 0, 0, 0, 0, 38, 10, 10, 10, 63, - 24, 15, 53, 1, 1, 1, 14, 1, 1, 1, 17, 1, 1, 0, 25, 19, - 15, 15, 37, 20, 37, 15, 5, 0, 0, 0, 35, 37, 0, 0, 1, 14, - 17, 34, 0, 0, 0, 0, 0, 0, 5, 15, 1, 1, 1, 1, 14, 1, - 1, 1, 1, 1, 1, 24, 25, 15, 19, 5, 23, 15, 37, 15, 19, 56, - 0, 0, 1, 34, 10, 10, 10,112, 10, 10, 10, 10, 63, 1, 1, 1, - 26, 15, 17, 1, 1, 1, 1, 1, 1, 1, 1, 14, 0, 1, 1, 1, - 1, 17, 1, 1, 1, 1, 17, 0, 1, 1, 1, 14, 0, 23, 0, 35, - 15, 5, 23, 23, 15, 15, 15, 15, 0, 15, 33, 0, 0, 0, 0, 0, - 24, 1, 5, 5, 5, 23, 0,113, 1, 1, 1, 72, 5, 5, 5, 36, - 11, 11, 11, 11, 11, 12, 0, 0, 17, 14, 14, 1, 1, 14, 1, 1, + 1, 1, 1, 1, 1, 1, 16, 19, 1, 1, 1, 1, 1, 1, 1, 34, + 1, 1, 1, 1, 1, 1, 1, 5, 16, 16, 16, 16, 16, 16, 16, 16, + 1, 15, 0, 0, 0, 0, 0, 0, 5, 5, 5, 23, 0, 0, 0, 0, + 10, 10, 0, 0, 0, 0, 0, 0, 6, 6, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 7, 7, + 7, 7, 7, 6, 6, 6, 6, 6, 3, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 3, 0, 87, 13,102, 13, 26,103, 76, 13, + 6, 6, 6, 6, 6,107,108,138, 87, 30, 30, 65,109,139,140,110, + 49, 10, 89, 13,141,142, 10, 78, 7, 7, 7, 59, 7, 7, 7, 8, + 6, 6, 6, 60, 6, 6, 6, 6, 8, 8, 8, 8, 21, 21, 21, 21, + 21, 21, 21, 21, 6, 8, 8, 8, 8, 8, 8, 8, 7, 21, 21, 6, + 21, 8, 8, 7, 21, 7, 6, 7, 7, 21, 8, 7, 8, 6, 7, 21, + 8, 8, 8, 7, 21, 6, 8, 7, 21, 7, 21, 21, 8, 66, 8, 6, + 1, 1,111, 21,112,111, 21, 21, 21, 21, 21, 21, 21, 21, 6, 8, + 21,112, 8, 7, 8, 8, 8, 8, 8, 8, 6, 6, 6, 7, 21, 8, + 21, 21, 7, 8, 8, 8, 8, 8, 6, 6, 1, 6, 6, 6, 6, 6, + 14, 22, 22, 14, 14, 14, 14, 14, 14, 22, 22, 22, 22, 22, 22, 22, + 14, 14, 67, 22, 22, 22, 67, 67, 8, 8, 67, 8, 0, 68, 6, 88, + 0, 0, 22,143, 7, 32, 32, 7, 21, 7, 7, 7, 7, 7, 7, 7, + 7, 39, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 21, + 6, 7, 8, 6, 8, 8, 8, 8, 6, 6, 8, 90, 21, 8, 21, 7, + 8, 41, 5, 5, 79, 8, 8, 8, 7, 21, 21, 21, 21, 21, 21, 6, + 39, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 32, 14, 13, 13, 13, + 6, 6, 6, 6,113, 91,144, 69, 5, 5, 5, 5, 5, 5, 5,145, + 70, 36, 5, 70, 5, 0, 0, 0, 1, 1, 1, 1, 1, 15, 0, 17, + 1, 40, 33, 0, 0, 0, 0, 0, 18, 18, 18, 9, 77, 80, 13, 3, + 5, 5, 5, 5, 5, 36,146, 13, 52, 1, 1, 1, 1, 24, 5, 5, + 11, 11, 11, 11, 11, 13, 13, 1, 25, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 53, 5, 5, 5,147, 41, 5, 5, 81, 71, 50, 5, 5, 1, + 11, 11, 11, 11, 11, 1, 55, 72, 13, 13, 13, 13, 13, 13, 13, 73, + 24, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 23, 17, 1, + 1, 1, 1, 1, 1, 24, 5, 5, 5, 5, 14, 65, 13, 82, 27, 30, + 1, 1, 1, 5, 5, 71, 5, 5, 5, 5, 71, 5, 71, 5, 5, 0, + 13, 13, 13, 13, 13, 13, 13, 33, 1, 1, 1, 1, 24, 5, 0, 33, + 1, 1, 1, 1,148, 1, 1, 1, 18, 0, 0, 27, 5, 5, 5, 5, + 1, 1, 1, 1, 44, 5, 5, 5, 5, 92, 5, 5, 5, 5, 5, 5, + 1, 1, 1, 1, 1, 20, 25, 16, 19, 5, 5, 5, 20, 16, 19, 16, + 24, 5, 5, 5, 1, 1, 1, 1, 1, 5, 13, 11, 11, 11, 11, 11, + 61, 1, 1, 1, 1, 1, 1, 1, 24, 16, 17, 1, 1, 1, 15, 17, + 15, 15, 0, 1, 1, 0, 25, 16, 19, 5, 23, 35, 37, 35, 19, 15, + 0, 0, 0, 35, 0, 0, 1, 17, 1, 30, 10, 10, 10, 69, 40, 23, + 27, 20, 17, 1, 1, 15, 0, 17, 15, 1, 17, 15, 1, 0, 23, 16, + 19, 23, 0, 27, 23, 27, 5, 0, 27, 0, 0, 0, 17, 1, 15, 15, + 5, 1, 24, 33, 0, 0, 0, 0, 27, 20, 17, 1, 1, 1, 1, 17, + 15, 1, 17, 1, 1, 0, 25, 16, 19, 5, 5, 27, 20, 35, 19, 0, + 80, 0, 0, 0, 17, 5, 5, 5, 27, 16, 17, 1, 1, 1, 15, 17, + 15, 1, 17, 1, 1, 0, 25, 19, 19, 5, 23, 35, 37, 35, 19, 0, + 0, 27, 5, 20, 0, 0, 1, 17, 72, 10, 10, 10, 0, 0, 0, 0, + 0, 25, 17, 1, 1, 15, 0, 1, 15, 1, 1, 0, 17, 15, 15, 1, + 0, 17, 15, 0, 1, 15, 0, 1, 1, 1, 1, 1, 1, 0, 0, 16, + 20, 37, 0, 16, 37, 16, 19, 0, 15, 0, 0, 35, 0, 0, 0, 0, + 10, 62, 3, 3, 69, 29, 0, 0, 20, 16, 25, 1, 1, 1, 15, 1, + 1, 1, 1, 1, 1, 0, 25, 5, 20, 16, 37, 5, 23, 5, 5, 0, + 0, 0, 27, 23, 1, 15, 1, 0, 0, 0, 0, 38, 10, 10, 10, 62, + 24, 16, 53, 1, 1, 1, 15, 1, 1, 1, 17, 1, 1, 0, 25, 19, + 16, 16, 37, 20, 37, 16, 5, 0, 0, 0, 35, 37, 0, 0, 1, 15, + 17, 34, 0, 0, 0, 0, 0, 0, 5, 16, 1, 1, 1, 1, 15, 1, + 1, 1, 1, 1, 1, 24, 25, 16, 19, 5, 23, 16, 37, 16, 19, 55, + 0, 0, 1, 34, 10, 10, 10,114, 10, 10, 10, 10, 62, 1, 1, 1, + 27, 16, 17, 1, 1, 1, 1, 1, 1, 1, 1, 15, 0, 1, 1, 1, + 1, 17, 1, 1, 1, 1, 17, 0, 1, 1, 1, 15, 0, 23, 0, 35, + 16, 5, 23, 23, 16, 16, 16, 16, 0, 16, 33, 0, 0, 0, 0, 0, + 24, 1, 5, 5, 5, 23, 0,115, 1, 1, 1, 71, 5, 5, 5, 36, + 11, 11, 11, 11, 11, 13, 0, 0, 17, 15, 15, 1, 1, 15, 1, 1, 1, 1, 17, 17, 1, 1, 1, 1, 24, 1, 5, 5, 5, 5, 25, 0, - 1, 1, 14, 61, 5, 5, 5, 23, 11, 11, 11, 11, 11, 0, 1, 1, - 56, 3, 12, 12, 12, 12, 12, 12, 12, 57, 57, 3, 5, 3, 3, 3, - 10, 10, 43, 43, 43, 27, 27, 15, 1, 1, 1, 1, 17, 1, 1, 1, - 26, 5, 5, 5, 5, 5, 5, 20, 5, 5, 36, 5, 1, 1, 24, 5, - 5, 5, 5, 5, 26, 5, 5, 5, 5, 5, 5, 5, 5, 5, 23, 3, - 3, 3, 3, 55, 3, 3, 29, 3, 12, 12, 57, 3, 66, 33, 0, 0, + 1, 1, 15, 82, 5, 5, 5, 23, 11, 11, 11, 11, 11, 0, 1, 1, + 55, 3, 13, 13, 13, 13, 13, 13, 13, 56, 56, 3, 5, 3, 3, 3, + 10, 10, 41, 41, 41, 26, 26, 16, 1, 1, 1, 1, 17, 1, 1, 1, + 27, 5, 5, 5, 5, 5, 5, 20, 5, 5, 36, 5, 1, 1, 24, 5, + 5, 5, 5, 5, 27, 5, 5, 5, 5, 5, 5, 5, 5, 5, 23, 3, + 3, 3, 3, 50, 3, 3, 29, 3, 13, 13, 56, 3, 65, 33, 0, 0, 1, 1, 1, 1, 1, 34, 19, 5, 20, 5, 5, 5, 19, 20, 19, 25, - 1, 1, 1, 15, 5, 1, 1, 5, 25, 15, 46, 34, 15, 15, 15, 1, - 24, 5, 25, 1, 1, 1, 1, 1, 1, 20, 19, 20, 15, 15, 19, 34, - 11, 11, 11, 11, 11, 15, 19, 3, 7, 7, 7, 39, 0, 0, 39, 0, - 6, 6, 6, 6, 6,111, 69, 6, 1, 1, 1, 14, 14, 1, 1, 0, - 14, 1, 1, 0, 1, 1, 1, 14, 1, 1, 1, 1, 1, 14, 26, 5, - 12, 12, 12, 12,114, 10, 10, 10, 7, 7, 7, 0, 6, 6, 6, 0, - 1, 1, 1, 1, 1, 1, 56, 53,146, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1,147,116, 0, 1, 1, 1, 1, 1, 40, 12, 16, - 148, 1, 1, 1, 14, 0, 0, 0, 1, 5, 20, 0, 0, 0, 0, 17, + 1, 1, 1, 16, 5, 1, 1, 5, 25, 16, 45, 34, 16, 16, 16, 1, + 24, 5, 25, 1, 1, 1, 1, 1, 1, 20, 19, 20, 16, 16, 19, 34, + 11, 11, 11, 11, 11, 16, 19, 3, 7, 7, 7, 39, 0, 0, 39, 0, + 6, 6, 6, 6, 6,113, 68, 6, 1, 1, 1, 15, 15, 1, 1, 0, + 15, 1, 1, 0, 1, 1, 1, 15, 1, 1, 1, 1, 1, 15, 27, 5, + 13, 13, 13, 13,116, 10, 10, 10, 7, 7, 7, 0, 6, 6, 6, 0, + 1, 1, 1, 1, 1, 1, 55, 53,149, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1,150,151, 0, 1, 1, 1, 1, 1, 40, 13, 12, + 152, 1, 1, 1, 15, 0, 0, 0, 1, 5, 20, 0, 0, 0, 0, 17, 1, 5, 83, 33, 0, 0, 0, 0, 1, 5, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 14, 1, 14, 5, 0, 0, 0, 0, 0, 0, - 1, 1, 5, 19, 5, 5, 5, 15, 15, 15, 15, 20, 19, 5, 5, 5, - 5, 5, 12, 62, 12, 80, 24, 0, 10, 10, 10, 10, 10, 0, 0, 0, - 12, 12, 12, 92, 12, 71, 5, 91, 1, 45, 1, 1, 1, 1, 1, 1, - 1, 1, 24, 25, 1, 1, 1, 1, 1, 1, 1, 1, 24, 14, 0, 0, - 5, 20, 15, 19, 20, 15, 0, 0, 15, 20, 15, 15, 19, 5, 0, 0, - 29, 0, 12, 11, 11, 11, 11, 11, 1, 1, 14, 0, 0, 0, 0, 0, - 11, 11, 11, 11, 11, 51, 0, 3, 1, 1, 1, 24, 20, 19, 0, 12, - 1, 1, 34, 20, 5, 5, 5, 23, 20, 20, 19, 5, 5, 5, 20, 15, - 15, 19, 5, 5, 5, 5, 23, 26, 12, 12, 12, 62, 12, 12, 12, 0, - 5, 5, 5, 5, 5, 5, 5, 93, 5, 5, 5, 5, 5, 5, 0, 0, - 5, 5, 46, 1, 1, 1, 1, 1, 1, 1, 20, 5, 5, 20, 20, 15, - 15, 20, 46, 1, 1, 1, 14, 12, 57, 3, 3, 3, 3, 43, 5, 5, - 5, 5, 3, 3, 3, 3, 66, 12, 34, 5, 5, 15, 5, 19, 5, 1, - 1, 1, 1, 20, 5, 15, 19, 19, 5, 15, 0, 0, 0, 0, 12, 12, - 1, 1, 15, 15, 15, 15, 5, 5, 5, 5, 15, 5, 0, 38, 12, 12, - 11, 11, 11, 11, 11, 0, 17, 1, 6, 6, 6, 6, 21, 47, 0, 0, - 7, 7, 7, 7, 7, 32, 39, 7, 12, 12, 12, 12, 0, 0, 0, 0, - 5, 36, 5, 5, 5, 5, 5, 5, 20, 5, 5, 5, 25, 1, 24, 1, - 1, 1, 25, 34, 5, 14, 0, 0, 6, 6, 6, 6, 6, 6, 13, 13, - 13, 13, 13, 13, 13, 69, 6, 6, 6, 6, 6, 6, 69, 6, 6, 6, - 6, 6, 6, 6, 6,117, 13, 13, 8, 8, 8, 6, 6, 6, 6, 8, - 6, 6, 6, 6, 39, 39, 39, 39, 6, 6, 6, 6, 6, 6, 6, 0, - 6, 6, 47, 6, 7, 7, 94,118, 22, 6, 47, 6, 7, 7, 94, 22, - 6, 6, 0, 6, 7, 7,149, 22, 6, 6, 6, 6, 7, 7,150, 22, - 0, 6, 47, 6, 7, 7, 94,151, 74, 74, 74, 74, 74,152, 18, 18, - 84, 84, 84, 12, 58,119, 58,119, 12, 12, 12, 12,153, 18, 18,154, - 12, 12, 12, 12,120,121, 12,122,123, 12, 64, 65, 12, 12, 12, 12, - 12, 77,123, 12, 12, 12, 12,155, 18, 18,156, 18, 18, 18, 18, 18, - 157, 0, 10, 10, 10, 9, 64,158, 10, 10, 10, 10, 10, 9, 64,116, - 13, 13, 13, 13, 13, 13, 61, 0, 30, 0, 0, 0, 0, 0, 0, 0, - 5, 5, 5, 5, 5, 5,159, 79, 93, 79, 93, 5, 5, 5, 5, 5, - 23, 0, 0, 0, 0, 0, 0, 0, 3, 85, 3, 95, 3, 21, 7, 6, - 7, 8, 95, 3, 90, 7, 7, 3, 3, 3, 85, 85, 85, 7, 7,160, - 7, 7, 67, 1,124, 3, 6, 7, 9, 9, 90, 6, 6, 50, 3,125, - 16,161,162, 16,126, 3, 0, 0, 9, 9, 48, 3, 3, 9, 3, 3, - 48, 50, 3, 48, 3, 3, 3, 48, 3, 3, 3, 3, 3, 3, 3, 9, - 3, 48, 48, 3, 3, 3, 3, 3, 3, 3, 9, 9, 9, 9, 9, 9, - 3, 3, 3, 3, 27, 27, 3, 3, 9, 3, 3, 3,163,164, 3, 3, - 3, 3, 3, 3, 3, 3, 48, 3, 3, 3, 3, 3, 3, 50, 9, 9, - 9, 9, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 9, 9, - 9, 3, 3, 3, 3, 3, 3, 3, 10, 10, 10, 10, 10, 10, 3, 3, - 3, 3, 3, 3, 3, 10, 10, 10, 3, 3, 3, 50, 3, 3, 3, 3, - 50, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 9, 9, 9, 9, - 3, 3, 3, 3, 3, 3, 3, 50, 3, 3, 3, 3, 27, 27, 27, 27, - 27, 27, 27, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, - 9, 9, 64,127, 9, 9, 9, 9, 9, 9, 9, 27, 27, 27, 27, 27, - 9, 64, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,127, 9, 9, 9, - 9, 9, 9, 9, 27, 27, 9, 9, 9, 9, 9, 9, 9, 9, 27, 9, - 9, 9, 48, 50, 9, 9, 48, 3, 3, 3, 0, 3, 3, 3, 3, 3, - 8, 7, 8, 21, 21, 21, 21, 7, 8, 8, 21, 6, 6, 6, 13, 7, - 8, 8,125, 3, 3, 95, 21,165, 5, 8, 0, 0, 38, 12,114, 12, - 6, 6, 6, 42, 0, 0, 42, 0, 1, 1, 1, 1, 0, 0, 0, 54, - 33, 0, 0, 0, 0, 0, 0, 26, 12, 58, 58, 12,120,121, 58, 12, - 12, 12, 12, 76, 12, 92, 58, 12, 58, 27, 27, 27, 27, 12, 12, 62, - 12, 12, 12, 12, 12, 84, 12, 12, 92,166, 12, 12, 12, 12, 12, 12, - 3, 12, 96, 31, 31, 31,167, 0, 3, 3, 3, 3, 3, 44, 3, 3, - 87, 12,168,128, 27, 27, 27, 27, 27, 3, 27, 27, 27, 27,129,169, - 170, 16, 16, 16, 16, 5, 5, 15,130, 13, 13, 3, 16,171, 40, 3, - 1, 1, 1, 14, 26,172,131, 52, 1, 1, 1, 1, 1, 40, 13, 52, + 1, 1, 1, 1, 1, 1, 15, 1, 15, 5, 0, 0, 0, 0, 0, 0, + 1, 1, 5, 19, 5, 5, 5, 16, 16, 16, 16, 20, 19, 5, 5, 5, + 5, 5, 13, 61, 13, 80, 24, 0, 10, 10, 10, 10, 10, 0, 0, 0, + 13, 13, 13, 93, 13, 70, 5, 92, 1, 44, 1, 1, 1, 1, 1, 1, + 1, 1, 24, 25, 1, 1, 1, 1, 1, 1, 1, 1, 24, 15, 0, 0, + 5, 20, 16, 19, 20, 16, 0, 0, 16, 20, 16, 16, 19, 5, 0, 0, + 29, 0, 13, 11, 11, 11, 11, 11, 1, 1, 15, 0, 0, 0, 0, 0, + 11, 11, 11, 11, 11, 51, 0, 3, 1, 1, 1, 24, 20, 19, 0, 13, + 1, 1, 34, 20, 5, 5, 5, 23, 20, 20, 19, 5, 5, 5, 20, 16, + 16, 19, 5, 5, 5, 5, 23, 27, 13, 13, 13, 61, 13, 13, 13, 0, + 5, 5, 5, 5, 5, 5, 5, 94, 5, 5, 45, 1, 1, 1, 1, 1, + 1, 1, 20, 5, 5, 20, 20, 16, 16, 20, 45, 1, 1, 1, 15, 13, + 56, 3, 3, 3, 3, 41, 5, 5, 5, 5, 3, 3, 3, 3, 65, 13, + 34, 5, 5, 16, 5, 19, 5, 1, 1, 1, 1, 20, 5, 16, 19, 19, + 5, 16, 0, 0, 0, 0, 13, 13, 1, 1, 16, 16, 16, 16, 5, 5, + 5, 5, 16, 5, 0, 38, 13, 13, 11, 11, 11, 11, 11, 0, 17, 1, + 6, 6, 6, 6, 21, 46, 0, 0, 7, 7, 7, 7, 7, 32, 39, 7, + 13, 13, 13, 13, 0, 0, 0, 0, 5, 36, 5, 5, 5, 5, 5, 5, + 20, 5, 5, 5, 25, 1, 24, 1, 1, 1, 25, 34, 5, 15, 0, 0, + 6, 6, 6, 6, 6, 6, 14, 14, 14, 14, 14, 14, 14, 68, 6, 6, + 6, 6, 6, 6, 68, 6, 6, 6, 6, 6, 6, 6, 6,118, 14, 14, + 8, 8, 8, 6, 6, 6, 6, 8, 6, 6, 6, 6, 39, 39, 39, 39, + 6, 6, 6, 6, 6, 6, 6, 0, 6, 6, 46, 6, 7, 7, 95,119, + 22, 6, 46, 6, 7, 7, 95, 22, 6, 6, 0, 6, 7, 7,120, 22, + 6, 6, 6, 6, 7, 7,153, 22, 0, 6, 46, 6, 7, 7, 95,154, + 74, 74, 74, 74, 74,155, 18, 18, 84, 84, 84, 13, 57,121, 57,121, + 13, 13, 13, 13,156, 18, 18,157, 13, 13, 13, 13,122,123, 13,124, + 125, 13, 63, 64, 13, 13, 13, 13, 13, 77,125, 13, 13, 13, 13,158, + 18, 18,159, 18, 18, 18, 18, 18,160, 0, 10, 10, 10, 9, 63,126, + 10, 10, 10, 10, 10, 9, 63,126, 30, 30,127, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 5,161, 79, 94, 79, 94, 5, 5, 5, 5, 5, + 3, 85, 3, 96, 3, 21, 7, 6, 7, 8, 96, 3, 90, 7, 7, 3, + 3, 3, 85, 85, 85, 7, 7,162, 7, 7, 66, 1,128, 3, 6, 7, + 9, 9, 90, 6, 6, 49, 3,129, 12,163,164, 12,130, 3, 0, 0, + 9, 9, 47, 3, 3, 9, 3, 3, 47, 49, 3, 47, 3, 3, 3, 47, + 3, 3, 3, 3, 3, 3, 3, 9, 3, 47, 47, 3, 3, 3, 3, 3, + 3, 3, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 26, 26, 3, 3, + 9, 3, 3, 3,165,166, 3, 3, 3, 3, 3, 3, 3, 3, 47, 3, + 3, 3, 3, 3, 3, 49, 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 9, 9, 9, 3, 3, 3, 3, 3, 3, 3, + 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 10, 10, 10, + 3, 3, 3, 49, 3, 3, 3, 3, 49, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, 3, 49, + 3, 3, 3, 3, 26, 26, 26, 26, 26, 26, 26, 10, 10, 10, 10, 10, + 10, 10, 3, 3, 3, 3, 3, 3, 9, 9, 63,131, 9, 9, 9, 9, + 9, 9, 9, 26, 26, 26, 26, 26, 9, 63, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31,131, 9, 9, 9, 9, 9, 9, 9, 26, 26, 9, 9, + 9, 9, 9, 9, 9, 9, 26, 9, 9, 9, 47, 49, 9, 9, 47, 3, + 3, 3, 0, 3, 3, 3, 3, 3, 8, 7, 8, 21, 21, 21, 21, 7, + 8, 8, 21, 6, 6, 6, 14, 7, 8, 8,129, 3, 3, 96, 21,167, + 5, 8, 0, 0, 38, 13,116, 13, 6, 6, 6, 43, 0, 0, 43, 0, + 1, 1, 1, 1, 0, 0, 0, 58, 33, 0, 0, 0, 0, 0, 0, 27, + 13, 57, 57, 13,122,123, 57, 13, 13, 13, 13, 76, 13, 93, 57, 13, + 57, 26, 26, 26, 26, 13, 13, 61, 13, 13, 13, 13, 13, 84, 13, 13, + 93,168, 13, 13, 13, 13, 13, 13, 3, 13, 97, 31, 31, 31,169, 0, + 13, 26, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 54, 3, 3, + 87, 13,170,132, 26, 26, 26, 26, 26, 3, 26, 26, 26, 26,133,171, + 172, 12, 12, 12, 12, 5, 5, 16, 91, 14, 14, 3, 12,173, 40, 3, + 1, 1, 1, 15, 27,174,134, 52, 1, 1, 1, 1, 1, 40, 14, 52, 0, 0, 17, 1, 1, 1, 1, 1, 3, 10, 10, 3, 3, 3, 3, 3, - 3, 3, 3, 0, 0, 0, 0, 44, 3, 3, 3, 3, 10, 10, 10, 10, - 1, 1, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,132, 12, + 3, 3, 3, 0, 0, 0, 0, 54, 3, 3, 3, 3, 10, 10, 10, 10, + 1, 1, 44, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,135, 13, 11, 11, 11, 11, 11, 1, 0, 0, 8, 8, 8, 8, 8, 8, 8, 24, - 79,173, 5, 5, 5, 5, 5, 62, 8, 8, 8, 8, 8, 8, 13, 5, - 1, 1, 1, 16, 16, 16, 16, 16, 5, 12, 12, 12, 0, 0, 0, 0, - 22, 22, 22,131, 13, 13, 13, 13, 22, 8, 8, 8, 8, 8, 8, 8, - 6, 8, 8, 8, 8, 8, 8, 8, 69, 6, 6, 6, 21, 21, 21, 8, - 8, 8, 8, 8, 68,174, 21, 67, 8, 8, 6, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 7, 7, 8, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 7, 7, 21, 21, 8, 8, 8, 8, 8, 8, 8, 8, 32, 0, - 54, 13,175, 67, 13, 67, 1, 1, 1, 25, 1, 25, 1, 24, 1, 1, - 1, 34, 19, 20, 3, 3, 23, 0, 10, 10, 10, 3, 97, 0, 0, 0, - 1, 1, 12, 12, 0, 0, 0, 0, 15, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 15, 15, 15, 15, 15, 15, 15, 15, 5, 0, 0, 0, 0, 12, - 5, 1, 1, 1, 12, 53, 53, 24, 1, 1, 1, 5, 5, 5, 5, 12, - 1, 1, 1, 24, 5, 5, 5, 5, 5, 15, 0, 0, 0, 0, 0, 38, - 1, 24, 15, 5, 5, 15, 5, 15, 83, 12, 12, 12, 12, 12, 12, 54, - 1, 1, 24, 52, 1, 1, 1, 1, 11, 11, 11, 11, 11, 1, 1, 14, + 79,175, 5, 5, 5, 5, 5, 61, 8, 8, 8, 8, 8, 8, 14, 5, + 1, 1, 1, 12, 12, 12, 12, 12, 5, 13, 13, 13, 0, 0, 0, 0, + 22, 22, 22,134, 14, 14, 14, 14, 22, 8, 8, 8, 8, 8, 8, 8, + 68, 6, 6, 6, 21, 21, 21, 8, 8, 8, 8, 8, 67,176, 21, 66, + 8, 8, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 8, + 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 21, 21, 8, 8, + 8, 8, 8, 8, 8, 8, 7, 0, 0, 32, 0, 0, 0, 0, 0, 0, + 58, 14,177, 66, 14, 66, 1, 1, 1, 25, 1, 25, 1, 24, 1, 1, + 1, 34, 19, 20, 3, 3, 23, 0, 10, 10, 10, 3, 98, 0, 0, 0, + 1, 1, 13, 13, 0, 0, 0, 0, 16, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 16, 16, 16, 16, 16, 16, 16, 16, 5, 0, 0, 0, 0, 13, + 5, 1, 1, 1, 13, 53, 53, 24, 1, 1, 1, 5, 5, 5, 5, 13, + 1, 1, 1, 24, 5, 5, 5, 5, 5, 16, 0, 0, 0, 0, 0, 38, + 1, 24, 16, 5, 5, 16, 5, 16, 83, 13, 13, 13, 13, 13, 13, 58, + 1, 1, 24, 52, 1, 1, 1, 1, 11, 11, 11, 11, 11, 1, 1, 15, 1, 1, 1, 1, 24, 5, 5, 20, 19, 20, 19, 23, 0, 0, 0, 0, - 1, 24, 1, 1, 1, 1, 20, 0, 11, 11, 11, 11, 11, 0, 12, 12, - 52, 1, 1, 56, 3, 34, 20, 1, 25, 5, 25, 24, 25, 1, 1, 5, - 24, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 45, 12, - 1, 1, 1, 1, 1, 34, 5, 15, 12, 45,176, 23, 0, 0, 0, 0, - 17, 1, 1, 14, 17, 1, 1, 14, 17, 1, 1, 14, 0, 0, 0, 0, - 6, 6, 6, 6, 6,118, 13, 13, 6, 6, 6, 6,117, 22, 0, 0, - 1, 34, 19, 15, 20, 83, 19, 0, 1, 1, 1, 14, 0, 17, 1, 1, - 6, 6, 6, 47, 0, 0, 0, 0, 0, 42, 6, 6, 0, 0, 17, 25, - 1, 1, 1, 1,177, 1, 1, 1, 1, 1, 1, 14, 1, 1, 14, 14, - 1, 17, 14, 1, 1, 1, 1, 1, 1, 22, 22, 22, 22, 22, 22, 22, - 22,107, 3, 3, 3, 3, 3, 3, 3, 82, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 31, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 97, 3, - 12, 12, 12, 96, 65, 0, 0, 0, 76,178,179, 31, 31, 31, 31, 31, - 31, 31, 65, 96, 65, 12,122,180, 12, 33, 12, 12,129, 31, 31, 65, - 12,181, 9, 98, 80, 12, 0, 0, 1, 1, 14, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 14, 73, 38, 12,100, 12, 27,101, 76, 12, - 6, 6, 6, 6, 6,105,106, 64, 65, 27, 12, 1, 1, 1, 1, 1, - 52, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, - 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 14, 0, - 30,182, 70,183, 50, 9, 48, 29, 0, 0, 0, 0, 73, 18, 3, 0, - 1, 1, 1, 1, 1, 1, 17, 1, 1, 1, 1, 1, 1, 14, 1, 17, - 12, 33, 0, 49, 10, 10, 10, 10, 10, 10, 0, 44, 3, 3, 3, 3, - 16, 16,126, 10, 63, 3, 3, 3, 3, 3, 3, 3, 3, 10, 3, 29, - 3, 3, 3, 3, 3, 3, 43, 0,133, 10, 10, 10, 10, 10, 10, 10, + 1, 24, 1, 1, 1, 1, 20, 0, 11, 11, 11, 11, 11, 0, 13, 13, + 52, 1, 1, 55, 3, 34, 20, 1, 25, 5, 25, 24, 25, 1, 1, 5, + 24, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 44, 13, + 1, 1, 1, 1, 1, 34, 5, 16, 13, 44,178, 23, 0, 0, 0, 0, + 17, 1, 1, 15, 17, 1, 1, 15, 17, 1, 1, 15, 0, 0, 0, 0, + 6, 6, 6, 6, 6,119, 14, 14, 6, 6, 6, 6,118, 22, 7, 0, + 1, 34, 19, 16, 20, 83, 19, 0, 1, 1, 1, 15, 0, 17, 1, 1, + 0, 43, 6, 6, 0, 0, 17, 25, 1, 1, 1, 1,179, 1, 1, 1, + 1, 1, 1, 15, 1, 1, 15, 15, 1, 17, 15, 1, 1, 1, 1, 1, + 1, 22, 22, 22, 22, 22, 22, 22, 22,109, 3, 3, 3, 3, 3, 3, + 3, 72, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 31, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, + 1, 1, 1, 1, 1, 1, 98, 3, 13, 13, 13, 97, 64, 0, 0, 0, + 76,180,181, 31, 31, 31, 31, 31, 31, 31, 64, 97, 64, 13,124,182, + 13, 33, 13, 13,133, 31, 31, 64, 13,183, 9, 99, 80, 13, 0, 0, + 1, 1, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 73, + 38, 13,102, 13, 26,103, 76, 13, 6, 6, 6, 6, 6,107,108, 63, + 64, 26, 13, 1, 1, 1, 1, 1, 52, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 14, 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 15, 0, 30,184, 69,127, 49, 9, 47, 29, + 0, 0, 0, 0, 73, 18, 3, 0, 1, 1, 1, 1, 1, 1, 17, 1, + 1, 1, 1, 1, 1, 15, 1, 17, 13, 33, 0, 48, 10, 10, 10, 10, + 10, 10, 0, 54, 3, 3, 3, 3, 12, 12,130, 10, 62, 3, 3, 3, + 3, 3, 3, 3, 3, 10, 3, 29, 29, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 3, 3, 3, 3, 41, 0,136, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0, 0, 10, 10, 0, 0, 0, 0, 17, 1, - 128, 1, 1, 1, 1, 99, 0, 0, 1, 1, 1, 5, 5, 23, 0, 0, + 132, 1, 1, 1, 1,100, 0, 0, 1, 1, 1, 5, 5, 23, 0, 0, 1, 1, 1, 1, 1, 1, 1, 38, 1, 1, 0, 0, 1, 1, 1, 1, - 184, 16, 16, 0, 0, 0, 0, 0, 7, 7, 7, 7, 6, 6, 6, 6, + 137, 12, 12, 0, 0, 0, 0, 0, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 0, 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 38, 7, 32, 7, 42, 6, 6, 6, 6, - 6, 42, 6, 6, 6, 6, 6, 6, 6, 42, 6, 6, 6, 42, 47, 0, - 13, 13, 13, 54, 13, 13, 13, 13, 61, 13, 13, 13, 13, 61, 0, 0, - 1, 1, 1, 0, 14, 1, 1, 1, 1, 1, 1, 17, 14, 0, 14, 17, - 1, 1, 1, 38, 10, 10, 10, 10, 1, 1, 1, 56, 75, 10, 10, 10, - 0, 0, 0, 49, 10, 10, 10, 10, 1, 14, 1, 0, 0, 49, 10, 10, + 1, 1, 0, 0, 0, 0, 0, 38, 7, 32, 7, 43, 6, 6, 6, 6, + 6, 43, 6, 6, 6, 6, 6, 6, 6, 43, 6, 6, 6, 43, 46, 0, + 14, 14, 14, 58, 14, 14, 14, 14, 82, 14, 14, 14, 14, 14, 14, 14, + 1, 1, 1, 0, 15, 1, 1, 1, 1, 1, 1, 17, 15, 0, 15, 17, + 1, 1, 1, 38, 10, 10, 10, 10, 1, 1, 1, 55, 75, 10, 10, 10, + 0, 0, 0, 48, 10, 10, 10, 10, 1, 15, 1, 0, 0, 48, 10, 10, 1, 1, 1, 10, 10, 10, 0, 38, 1, 1, 1, 1, 1, 0, 0, 38, - 1, 1, 1, 1, 0, 0, 10, 1, 24, 5, 26, 23, 0, 0, 5, 5, - 1, 1, 17, 1, 17, 1, 1, 1, 1, 1, 1, 0, 5, 23, 0, 26, - 12, 12, 12, 12, 33, 0, 0, 0, 1, 1, 1, 1, 1, 1, 86, 78, - 1, 1, 1, 1, 82, 1, 1, 1, 1, 1, 24, 23, 0, 49, 10, 10, - 12, 12, 12, 33, 0, 0, 0, 0, 1, 1, 1, 0, 38, 12, 12, 12, - 1, 1, 1, 0, 10, 10, 10, 10, 1, 14, 0, 0, 10, 10, 10, 10, - 1, 0, 0, 0, 38, 12, 33, 0, 0, 0, 0, 0, 49, 10, 10, 10, - 7, 32, 0, 0, 0, 0, 0, 0, 6, 47, 0, 0, 0, 10, 10, 10, + 1, 1, 1, 1, 0, 0, 10, 1, 24, 5, 27, 23, 0, 0, 5, 5, + 1, 1, 17, 1, 17, 1, 1, 1, 1, 1, 1, 0, 5, 23, 0, 27, + 13, 13, 13, 13, 33, 0, 0, 0, 1, 1, 1, 1, 1, 1, 86, 78, + 1, 1, 1, 1, 72, 1, 1, 1, 1, 1, 24, 23, 0, 48, 10, 10, + 13, 13, 13, 33, 0, 0, 0, 0, 1, 1, 1, 0, 38, 13, 13, 13, + 1, 1, 1, 0, 10, 10, 10, 10, 1, 15, 0, 0, 10, 10, 10, 10, + 1, 0, 0, 0, 38, 13, 33, 0, 0, 0, 0, 0, 48, 10, 10, 10, + 7, 32, 0, 0, 0, 0, 0, 0, 6, 46, 0, 0, 0, 10, 10, 10, 1, 1, 5, 5, 0, 0, 0, 0, 11, 11, 11, 11, 11, 1, 1, 52, - 7, 7, 7, 0, 26, 5, 5,130, 6, 6, 6, 0, 0, 0, 0, 9, - 10, 10, 10, 10, 10, 10, 10, 51, 1, 1, 1, 1, 1, 26,185, 0, - 0, 1, 45, 1, 0, 0, 0, 0, 57, 3, 3, 3, 29, 0, 0, 0, - 0, 0, 0, 0, 0, 5, 5, 5, 10, 10, 10,112, 0, 0, 0, 0, - 133, 10, 78, 12, 12, 0, 0, 0, 1, 5, 5, 12, 12, 0, 0, 0, - 1, 1, 86, 10, 10, 10, 0, 0, 19, 46, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 36, 12, 12, 12, 0, - 10, 10, 10, 11, 11, 11, 11, 11, 25, 24, 25, 0, 0, 0, 0, 26, - 15, 19, 5, 20, 19, 36,186, 12, 12, 23, 0, 0, 0, 0, 73, 0, - 5, 25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 24, 5, 5, 19, 5, - 5, 5, 23, 11, 11, 11, 11, 11, 12, 12, 34, 46, 0, 0, 0, 0, - 1, 24, 12, 14, 0, 0, 0, 0, 1, 34, 15, 5, 5, 5, 5, 20, - 46, 1, 40, 12, 71, 5, 36, 19, 11, 11, 11, 11, 11, 40, 40, 12, - 10, 10, 51, 0, 0, 0, 0, 0, 5, 15, 20, 5, 12, 12, 12, 25, - 24, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 14, 14, 1, 1, 17, - 1, 1, 1, 1, 1, 1, 1, 17, 1, 1, 1, 1, 40, 0, 0, 0, - 1, 1, 1, 1, 1, 1, 1, 24, 15, 19, 5, 5, 5, 23, 0, 0, - 5, 15, 17, 1, 1, 1, 14, 17, 14, 1, 17, 1, 1, 26, 25, 15, - 20, 15, 37, 35, 37, 35, 15, 0, 14, 0, 0, 35, 0, 0, 17, 1, - 1, 15, 0, 5, 5, 5, 23, 0, 5, 5, 23, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 17, 0, 14, 1, 1, 1, 17, 15, 19, 5, 5, - 23, 37, 35, 35, 15, 37, 15, 20, 25, 25, 12, 38, 33, 0, 0, 0, - 26, 23, 0, 0, 0, 0, 0, 0, 1, 1, 34, 15, 5, 5, 5, 5, - 15, 5, 20, 25, 1, 40, 12, 12, 11, 11, 11, 11, 11, 12, 38, 25, - 15, 19, 5, 5, 20, 20, 15, 19, 20, 5, 1, 53, 0, 0, 0, 0, - 15, 5, 5, 0, 15, 15, 5, 19, 36, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 1, 1, 5, 0, 15, 19, 5, 5, 5, 20, 19, 19, - 36, 12, 14, 0, 0, 0, 0, 0, 12, 12, 12, 12, 12, 12, 33, 0, - 1, 1, 1, 1, 1, 24, 19, 15, 5, 5, 5, 19, 40, 0, 0, 0, - 11, 11, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 14, 26, 19, - 15, 5, 5, 19, 5, 5, 0, 0, 11, 11, 11, 11, 11, 10, 12, 57, - 5, 5, 5, 5, 19, 36, 0, 0, 10, 51, 0, 0, 0, 0, 0, 17, - 1, 1, 1, 14, 17, 0, 1, 1, 1, 1, 17, 14, 1, 1, 1, 1, - 15, 15, 15, 35, 37, 26, 20, 25, 46, 19, 12, 33, 0, 0, 0, 0, - 1, 1, 1, 1, 0, 1, 1, 1, 34, 15, 5, 5, 0, 5, 15, 15, - 25, 53, 37, 0, 0, 0, 0, 0, 24, 5, 5, 5, 5, 25, 1, 1, - 1, 24, 5, 5, 20, 24, 5, 36, 12, 12, 12, 71, 0, 0, 0, 0, - 24, 5, 5, 20, 19, 5, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, - 5, 5, 5, 20, 5, 12, 53, 12, 12, 33, 0, 0, 0, 0, 0, 0, - 12, 12, 12, 12, 12, 0, 0, 0, 20, 5, 20, 20, 0, 0, 0, 0, - 40, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 23, 5, 5, 5, 19, - 40, 12, 12, 0, 0, 0, 0, 0, 12, 1, 1, 1, 1, 1, 1, 1, - 0, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 35, 5, 5, 5, - 20, 5, 19, 23, 0, 0, 0, 0, 1, 1, 1, 14, 1, 17, 1, 1, - 24, 5, 5, 23, 0, 23, 5, 26, 5, 5, 5, 24, 0, 0, 0, 0, - 1, 1, 1, 17, 14, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 37, - 5, 35, 19, 19, 14, 0, 0, 0, 1, 1, 1, 1, 45, 1, 0, 0, - 1, 24, 20, 83, 33, 0, 0, 0, 5, 34, 1, 1, 1, 1, 1, 1, - 1, 1, 15, 5, 5, 23, 0, 15, 20, 36, 12, 12, 12, 12, 12, 12, - 11, 11, 11, 11, 11, 23, 0, 0, 10, 10, 63, 3, 3, 3, 70, 30, - 97, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 38, - 16, 16, 16, 16, 16, 16, 16, 99, 12, 12, 33, 0, 0, 0, 0, 0, - 40, 33, 0, 0, 0, 0, 0, 0, 25, 1, 1, 24, 5, 5, 5, 5, - 5, 5, 5, 0, 0, 0, 0, 0, 5, 5, 5, 5, 5, 15, 19, 5, - 5, 5, 36, 0, 0, 0, 0, 0, 5, 5, 5, 36, 12, 12, 3, 3, - 13, 13, 57, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 49, 10, 10, - 10, 17, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 17, 1, - 13, 52, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 45,132, 12, - 10, 10, 10, 78, 12, 33, 0, 0, 7, 7, 7, 7, 32, 42, 6, 6, - 6, 6, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 14, 0, 26, - 34, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 26, - 5, 81, 13, 13, 13, 13, 13, 13, 13, 62, 23, 0, 0, 0, 0, 0, - 15, 13, 16, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, - 13, 13, 54, 13, 13, 13, 54, 61, 0, 14, 0, 0, 0, 0, 0, 0, - 1, 14, 17, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 0, 43, 36, 18, 18, 0, 0, 0, 0, 0, 0, - 11, 11, 11, 11, 11, 3, 29, 0, 3, 3, 0, 0, 0, 3, 3, 3, - 98, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 29, 44, 3, 3, 3, - 3, 3,134, 19, 5, 3,134, 15, 15,187, 18, 18, 18, 91, 5, 5, - 5, 55, 43, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 5, 5, 3, - 3, 5, 55, 0, 0, 0, 0, 0, 6, 6, 47, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 32, 7, 0, 32, 39, 32, 39, 7, 32, 7, - 7, 7, 7, 6, 6, 42, 42, 6, 6, 6, 42, 6, 6, 6, 6, 6, - 6, 6, 7, 39, 7, 32, 39, 7, 7, 7, 32, 7, 7, 7, 32, 6, - 6, 6, 6, 6, 7, 39, 7, 32, 7, 7, 32, 32, 0, 7, 7, 7, - 32, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 0, 7, 7, 7, 7, - 59, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 60, 6, 6, - 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 59, 6, 6, - 6, 6, 60, 6, 6, 6, 7, 7, 7, 7, 59, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 60, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 59, 6, 6, 6, 6, 60, 6, 6, 6, - 7, 7, 7, 7, 59, 6, 6, 6, 6, 60, 6, 6, 6, 8, 0, 11, - 5, 5, 5, 55, 3, 43, 5, 5, 5, 5, 5, 5, 5, 5, 55, 3, - 3, 3, 43, 3, 3, 3, 3, 3, 3, 3, 55, 66, 12, 12, 0, 0, - 0, 0, 0, 0, 0, 26, 5, 5, 6, 6, 6, 6, 6,124, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 47, 0, 0, 42, 6, 6, 47, 0, 0, - 5, 5, 5, 23, 5, 5, 5, 5, 5, 5, 5, 5, 23, 26, 5, 5, - 5, 26, 23, 5, 5, 23, 0, 0, 13, 13, 13, 13, 13, 13, 13, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 5, 5, 5, 81, 13, 13, 13, 0, - 11, 11, 11, 11, 11, 0, 0, 56, 1, 1, 1, 1, 1, 1, 1, 23, - 1, 1, 1, 1, 1, 1, 5, 5, 11, 11, 11, 11, 11, 0, 0,113, - 1, 1, 1, 1, 1, 45, 5, 5,188, 11, 11, 11, 11,189, 0, 38, - 1, 24, 1, 25, 1, 1, 1, 5, 1, 1, 24, 0, 0, 0, 0, 45, - 1, 1, 1, 14, 1, 1, 17, 14, 1, 1, 14, 49, 10, 10, 10, 10, + 7, 7, 7, 0, 27, 5, 5, 91, 6, 6, 6, 0, 0, 0, 0, 9, + 10, 10, 10, 10, 10, 10, 10, 51, 1, 1, 1, 1, 1, 27,185, 0, + 0, 1, 44, 1,120,186, 5, 5, 56, 3, 3, 3, 72, 1, 1, 1, + 10, 10, 10,114, 0, 0, 0, 0,136, 10, 78, 13, 13, 0, 0, 0, + 1, 5, 5, 13, 13, 0, 0, 0, 1, 1, 86, 10, 10, 10, 0, 0, + 19, 45, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, + 5, 5, 5, 36, 13, 13, 13, 0, 10, 10, 10, 11, 11, 11, 11, 11, + 25, 24, 25, 0, 0, 0, 0, 27, 16, 19, 5, 20, 19, 36,187, 13, + 13, 23, 0, 0, 0, 0, 73, 0, 5, 25, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 24, 5, 5, 19, 5, 5, 5, 23, 11, 11, 11, 11, 11, + 13, 13, 34, 45, 0, 0, 0, 0, 1, 24, 13, 15, 0, 0, 0, 0, + 1, 34, 16, 5, 5, 5, 5, 20, 45, 1, 40, 13, 70, 5, 36, 19, + 11, 11, 11, 11, 11, 40, 40, 13, 10, 10, 51, 0, 0, 0, 0, 0, + 5, 16, 20, 5, 13, 13, 13, 25, 24, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 15, 15, 1, 1, 17, 1, 1, 1, 1, 1, 1, 1, 17, + 1, 1, 1, 1, 40, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 24, + 16, 19, 5, 5, 5, 23, 0, 0, 5, 16, 17, 1, 1, 1, 15, 17, + 15, 1, 17, 1, 1, 27, 25, 16, 20, 16, 37, 35, 37, 35, 16, 0, + 15, 0, 0, 35, 0, 0, 17, 1, 1, 16, 0, 5, 5, 5, 23, 0, + 5, 5, 23, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 17, 0, 15, + 1, 1, 1, 17, 16, 19, 5, 5, 23, 37, 35, 35, 16, 37, 16, 20, + 25, 25, 13, 38, 33, 0, 0, 0, 27, 23, 0, 0, 0, 0, 0, 0, + 1, 1, 34, 16, 5, 5, 5, 5, 16, 5, 20, 25, 1, 40, 13, 13, + 11, 11, 11, 11, 11, 13, 38, 25, 16, 19, 5, 5, 20, 20, 16, 19, + 20, 5, 1, 53, 0, 0, 0, 0, 16, 5, 5, 0, 16, 16, 5, 19, + 36, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 5, 0, + 16, 19, 5, 5, 5, 20, 19, 19, 36, 13, 15, 0, 0, 0, 0, 0, + 13, 13, 13, 13, 13, 13, 33, 0, 1, 1, 1, 1, 1, 24, 19, 16, + 5, 5, 5, 19, 40, 0, 0, 0, 11, 11, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 15, 27, 19, 16, 5, 5, 19, 5, 5, 0, 0, + 11, 11, 11, 11, 11, 10, 13, 56, 5, 5, 5, 5, 19, 36, 0, 0, + 10, 51, 0, 0, 0, 0, 0, 17, 1, 1, 1, 15, 17, 0, 1, 1, + 1, 1, 17, 15, 1, 1, 1, 1, 16, 16, 16, 35, 37, 27, 20, 25, + 45, 19, 13, 33, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, + 34, 16, 5, 5, 0, 5, 16, 16, 25, 53, 37, 0, 0, 0, 0, 0, + 24, 5, 5, 5, 5, 25, 1, 1, 1, 24, 5, 5, 20, 24, 5, 36, + 13, 13, 13, 70, 0, 0, 0, 0, 24, 5, 5, 20, 19, 5, 1, 1, + 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 20, 5, 13, 53, 13, + 13, 33, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 15, 0, 0, + 20, 5, 20, 20, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 23, 5, 5, 5, 19, 40, 13, 13, 0, 0, 0, 0, 0, + 13, 1, 1, 1, 1, 1, 1, 1, 0, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 35, 5, 5, 5, 20, 5, 19, 23, 0, 0, 0, 0, + 1, 1, 1, 15, 1, 17, 1, 1, 24, 5, 5, 23, 0, 23, 5, 27, + 5, 5, 5, 24, 0, 0, 0, 0, 1, 1, 1, 17, 15, 1, 1, 1, + 1, 1, 1, 1, 1, 16, 16, 37, 5, 35, 19, 19, 15, 0, 0, 0, + 1, 1, 1, 1, 44, 1, 0, 0, 1, 24, 20, 83, 33, 0, 0, 0, + 5, 34, 1, 1, 1, 1, 1, 1, 1, 1, 16, 5, 5, 23, 0, 16, + 20, 36, 13, 13, 13, 13, 13, 13, 11, 11, 11, 11, 11, 23, 0, 0, + 10, 10, 62, 3, 3, 3, 69, 30, 98, 3, 3, 3, 3, 3, 3, 3, + 3, 0, 0, 0, 0, 0, 0, 38, 13, 13,137, 12, 12, 12, 12, 12, + 12, 12, 12,100, 0, 0, 0, 0, 40, 33, 0, 0, 0, 0, 0, 0, + 25, 1, 1, 24, 5, 5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, + 5, 5, 5, 5, 5, 16, 19, 5, 5, 5, 36, 0, 0, 0, 0, 0, + 5, 5, 5, 36, 13, 13, 3, 3, 14, 14, 56, 0, 0, 0, 0, 0, + 11, 11, 11, 11, 11, 48, 10, 10, 10, 17, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0, 17, 1, 14, 52, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 44,135, 13, 10, 10, 10, 78, 13, 33, 0, 0, + 7, 7, 7, 7, 32, 43, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 15, 0, 27, 34, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 0, 0, 0, 27, 5, 81, 14, 14, 14, 14, 14, 14, + 14, 61, 23, 0, 0, 0, 0, 0, 16, 14, 12,100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 14, 14, 58, 14, 14, 14, 58, 82, + 0, 15, 0, 0, 0, 0, 0, 0, 1, 15, 17, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 15, 0, 0, 0, 1, 1, 1, 1, 1, 0, 41, 36, + 18, 18, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 3, 29, 0, + 3, 3, 0, 0, 0, 3, 3, 3, 29, 3, 29, 0, 0, 0,188, 9, + 9, 9, 9, 9, 9, 9, 9, 0, 5, 5, 5, 5, 5, 5, 5, 0, + 3, 3, 3, 41, 50, 3, 3, 3, 3, 3,101, 19, 5, 3,101, 16, + 16,189, 18, 18, 18, 92, 5, 5, 5, 50, 41, 5, 5, 5, 3, 3, + 3, 3, 3, 3, 3, 5, 5, 3, 3, 5, 50, 0, 0, 0, 0, 0, + 16,190, 3, 3, 3, 41, 50,101, 16, 0, 0, 0, 0, 0, 0, 0, + 6, 6, 46, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 32, 7, + 0, 32, 39, 32, 39, 7, 32, 7, 7, 7, 7, 6, 6, 43, 43, 6, + 6, 6, 43, 6, 6, 6, 6, 6, 6, 6, 7, 39, 7, 32, 39, 7, + 7, 7, 32, 7, 7, 7, 32, 6, 6, 6, 6, 6, 7, 39, 7, 32, + 7, 7, 32, 32, 0, 7, 7, 7, 32, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 46, 7, 7, 7, 7, 59, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 60, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 59, 6, 6, 6, 6, 60, 6, 6, 6, 7, 7, + 7, 7, 59, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 60, + 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 59, + 6, 6, 6, 6, 60, 6, 6, 6, 7, 7, 7, 7, 59, 6, 6, 6, + 6, 60, 6, 6, 6, 8, 0, 11, 5, 5, 5, 50, 3, 41, 5, 5, + 5, 5, 5, 5, 5, 5, 50, 3, 3, 3, 41, 3, 3, 3, 3, 3, + 3, 3, 50, 65, 13, 13, 0, 0, 0, 0, 0, 0, 0, 27, 5, 5, + 9, 9, 9, 9, 9, 9, 99, 0, 6, 6, 6, 6, 6,128, 6, 6, + 8, 6, 6, 6, 8, 8, 21, 6, 21, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 58, 14, + 5, 5, 5, 23, 5, 5, 5, 5, 5, 5, 5, 5, 23, 27, 5, 5, + 5, 27, 23, 5, 5, 23, 0, 0, 14, 14, 14, 14, 14, 14, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 5, 5, 5, 81, 14, 14, 14, 0, + 11, 11, 11, 11, 11, 0, 0, 55, 1, 1, 1, 1, 1, 1, 1, 23, + 1, 1, 1, 1, 1, 1, 5, 5, 11, 11, 11, 11, 11, 0, 0,115, + 1, 1, 1, 1, 1, 44, 5, 5,191, 11, 11, 11, 11,192, 0, 38, + 1, 24, 1, 25, 1, 1, 1, 5, 1, 1, 24, 0, 0, 0, 0, 44, + 1, 1, 1, 15, 1, 1, 17, 15, 1, 1, 15, 48, 10, 10, 10, 10, 6, 6, 5, 5, 5, 81, 0, 0, 10, 10, 10, 10, 10, 10, 75, 10, - 190, 10, 51, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 75, + 193, 10, 51, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 10, 75, 10, 10, 10, 10, 10, 10, 10, 0, 1, 1, 17, 1, 1, 1, 1, 1, - 17, 14, 14, 17, 17, 1, 1, 1, 1, 14, 1, 1, 17, 17, 0, 0, - 0, 14, 0, 17, 17, 17, 17, 1, 17, 14, 14, 17, 17, 17, 17, 17, - 17, 14, 14, 17, 1, 14, 1, 1, 1, 14, 1, 1, 17, 1, 14, 14, + 17, 15, 15, 17, 17, 1, 1, 1, 1, 15, 1, 1, 17, 17, 0, 0, + 0, 15, 0, 17, 17, 17, 17, 1, 17, 15, 15, 17, 17, 17, 17, 17, + 17, 15, 15, 17, 1, 15, 1, 1, 1, 15, 1, 1, 17, 1, 15, 15, 1, 1, 1, 1, 1, 17, 1, 1, 17, 1, 17, 1, 1, 17, 1, 1, - 9, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 63, 3, + 9, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10, 62, 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 29, 0, 0, 0, 0, 0, 0, - 3, 3, 3, 3, 3,108, 22, 22, 3, 3, 3, 3, 29, 0, 3, 3, - 9, 9, 9, 9, 98, 0, 0, 0, 3, 3, 3, 3, 3, 29, 0, 3, - 3, 3, 3, 29, 29, 0, 44, 3, 3, 3, 3, 3, 3, 3, 29, 44, - 3, 3, 3, 3, 3, 29, 0, 44, 3, 29, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 29, 0, 0, 0, 3, 3, 3, 3, 3,110, 22, 22, + 3, 3, 3, 3, 3, 0, 3, 3, 9, 9, 9, 9, 99, 0, 0, 0, + 3, 3, 3, 29, 29, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 54, + 3, 3, 3, 3, 3, 3, 0, 54, 3, 29, 3, 3, 3, 3, 3, 3, 11, 11, 11, 11, 11, 29, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 7, 7, 3, 3, 26, 26, 4, 4, 12, 12, 5, 5, 9, 9, 9, 5, 25, 25, 15, 15, 13, 13, - 21, 21, 6, 6, 7, 2, 10, 10, 14, 14, 2, 7, 1, 1, 10, 12, - 12, 10, 5, 9, 24, 24, 12, 2, 7, 12, 12, 7, 2, 12, 22, 18, + 14, 14, 21, 21, 6, 6, 7, 2, 10, 10, 2, 7, 1, 1, 10, 12, + 12, 10, 5, 9, 24, 24, 12, 2, 7, 12, 12, 7, 22, 18, 2, 12, 0, 0, 26, 2, 23, 23, 18, 22, 9, 2, 21, 2, 7, 10, 2, 10, - 12, 21, 10, 2, 2, 21, 2, 9, 7, 21, 8, 8, 2, 5, 26, 12, - 2, 26, 7, 6, 10, 7, 5, 2, 25, 26, 2, 15, 26, 25, 15, 2, - 6, 7, 21, 7, 2, 6, 12, 26, 7, 26, 21, 26, 20, 19, 9, 25, - 5, 25, 6, 2, 21, 6, 15, 26, 25, 22, 18, 21, 26, 21, 5, 7, - 6, 24, 6, 5, 26, 23, 21, 12, 6, 12, 2, 1, 29, 29, 26, 15, - 21, 17, 25, 21, 15, 21, 11, 11, 21, 23, 12, 6, 26, 7, 10, 21, - 17, 17, 9, 26, 7, 15, 29, 21, 21, 9, 24, 5, 25, 9, 1, 12, - 17, 21, 11, 12, 8, 24, 26, 9, 21, 22, 23, 26, 25, 2, 14, 2, - 23, 21, 21, 25, 9, 22, 21, 18, 24, 16, 5, 22, 25, 18, 24, 26, - 26, 24, 9, 8, 8, 5, 5, 21, 15, 7, 2, 23, 21, 15, 17, 7, - 18, 2, 5, 6, 5, 24, 22, 20, 21, 20, 19, 21, 21, 16, 16, 21, - 7, 5, 5, 26, 14, 15, 18, 25, 7, 14, 17, 22, 17, 6, 24, 6, - 6, 21, 12, 15, 26, 10, 25, 0, 7, 20, 25, 1, 24, 15, 7, 19, - 9, 21, 17, 2, 17, 12, 1, 21, 12, 1, 24, 7, 29, 7, 7, 22, - 14, 7, 2, 24, 9, 24, 24, 2, 29, 1, 27, 28, 1, 29, 21, 29, - 1, 2, 15, 6, 18, 6, 12, 11, 26, 5, 14, 9, 5, 14, 26, 22, - 18, 26, 5, 12, 22, 21, 18, 17, 26, 6, 18, 18, 26, 14, 14, 6, - 12, 24, 11, 21, 24, 9, 6, 9, 6, 10, 7, 25, 17, 16, 16, 22, - 16, 16, 25, 17, 25, 24, 23, 2, 21, 14, 12, 17, 21, 1, 10, 1, - 7, 13, 13, 2, 23, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 0, 10, 11, 12, 13, 0, 14, 0, 0, 0, 0, 0, 15, 0, 16, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 19, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 0, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 36, 0, 37, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 40, - 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 11, 12, 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, 15, - 0, 0, 0, 0, 0, 0, 0, 16, 17, 18, 0, 19, 0, 20, 21, 0, - 0, 22, 23, 24, 25, 26, 0, 0, 0, 0, 27, 28, 29, 30, 0, 31, - 0, 32, 33, 0, 2, 34, 0, 0, 2, 1, 35, 0, 2, 1, 0, 0, - 2, 1, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 2, 36, 0, 0, - 2, 1, 0, 0, 37, 1, 0, 0, 0, 38, 0, 0, 39, 40, 0, 0, - 41, 42, 0, 43, 44, 0, 45, 46, 0, 47, 0, 0, 48, 0, 0, 49, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 4, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, - 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 55, 0, 0, 56, 0, - 57, 58, 59, 0, 60, 5, 61, 0, 62, 0, 63, 0, 64, 0, 0, 0, - 0, 65, 66, 0, 0, 0, 0, 0, 0, 67, 68, 0, 0, 0, 0, 0, - 0, 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 71, 0, 0, 0, 3, 0, 0, 0, 72, 0, 73, 0, 0, 74, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 76, - 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 6, 78, 0, 0, 0, - 0, 5, 79, 0, 80, 81, 0, 0, 7, 8, 0, 0, 0, 0, 0, 0, - 82, 83, 84, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, - 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, 0, 90, 91, 0, 0, 0, - 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 95, 0, 96, 0, 0, 97, 0, 98, 0, 0, 0, 0, 0, 6, 99, 0, - 9, 0, 0,100,101, 0, 7, 0, 0,102, 0, 0,103, 0, 0, 0, - 0, 0,104, 0,105, 1,106, 0, 0,107, 0, 0, 0,108, 0, 0, - 0,109, 0, 0, 0, 0, 0, 0, 3,110, 0, 0, 3, 0, 0, 0, - 111, 0, 0, 0,112, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0,113,114, 0, 0, 0, 0, 8, 0, 4,115, 0,116, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0,117, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,121, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 0, 0, 0, 0,123, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,124,125,126, 0, 0, 0, 0,127, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,129, 0, 0,130, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 131, 0,132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,133, 0, 0, 0, 0, 0, 0, 0,134, 0, 0, 0, 0, 0, - 0, 0,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,136, 0, 0, 0,137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 1, 12, 0, 0, 1, 1, - 1, 1, 1, 49, 50, 5, 51, 52, 53, 5, 5, 22, 32, 23, 1, 54, - 24, 55, 16, 33, 56, 57, 58, 1, 1, 1, 0, 0, 0, 0, 6, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 7, 60, 1, 34, 5, - 7, 61, 62, 63, 64, 65, 66, 67, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 68, 0, 0, 0, 69, 70, 71, 35, 1, 25, 0, 0, - 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 8, 1, 26, 16, 26, - 73, 27, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, - 0, 0, 36, 25, 75, 37, 7, 37, 76, 0, 0, 0, 0, 0, 0, 0, - 6, 1, 7, 0, 0, 17, 0, 0, 0, 0, 0, 8, 38, 1, 1, 13, - 13, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, - 0, 0, 0, 6, 18, 1, 0, 0, 8, 16, 5, 1, 1, 1, 77, 7, - 36, 18, 78, 7, 35, 1, 0, 0, 0, 4, 79, 10, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 19, 0, 0, 0, 4, 0, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 3, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 83, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 85, 86, 0, 0, 0, - 0, 0, 87, 88, 89, 90, 91, 92, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 28, 0, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 14, 0, 0, 20, 0, 0, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, - 0, 0, 0, 6, 29, 0, 3, 0, 0, 0, 0, 13, 1, 96, 0, 0, - 0, 0, 1, 18, 33, 97, 25, 23, 7, 1, 1, 1, 1, 27, 1, 7, - 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, - 6, 23, 1, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 21, - 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, - 0, 0, 12, 32, 24, 5, 99, 22, 42, 17, 0, 10, 11, 0, 7, 1, - 7,100,101, 1, 1, 1, 1, 1, 1, 1, 1,102,103,104, 0, 0, - 0, 0,105, 1,106, 10, 20,107,108, 5, 10, 0, 0, 0, 0, 0, - 0, 6, 11, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, - 109,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111, 0, 0, 0, - 0, 6, 0, 1, 1, 11, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, - 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1, 1, - 1, 1, 11, 0, 0, 0, 0, 0, 43, 40, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 44,112, 10, 8, 20, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, - 0, 0, 0, 0, 0,113, 1, 16, 5, 24, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 12, 0, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,115, 2, 0,116, 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 11, 0, 0, 0, 0, 0, 0, - 6, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 39, 0, 45, - 16, 18, 29, 0, 0, 0, 46, 27, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 3, 0, 0, 3, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 9, 0, 8, 1, 10, 1, 10, 0, 0, 0, 0, - 0, 30, 3, 0, 0, 0, 14, 21, 0, 0, 0, 0, 0, 19, 47, 0, - 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 47, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 28, 15, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 21, 41, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 22, 42, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,119, 0,120,121,122,123, 0, 43, 5, 48, 13, - 34, 0, 0, 0, 0, 0, 0, 0, 8, 11, 0, 0, 0, 0, 8, 10, - 0, 0, 0, 0, 0, 0, 1, 12, 1, 1, 1, 1, 26, 1, 38, 44, - 12, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, - 0, 19, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0,124, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 6, 19, - 0, 8, 0, 20, 0, 0, 0, 0, 0, 0, 5, 48, 0, 0, 0, 1, - 125, 0, 0, 0, 0, 0,230,230,230,230, 0, 0, 0, 9, 9, 0, - 0, 0, 0, 9, 0, 0,220,220,220,220, 0, 0, 0,230,230,230, - 220,230, 0, 0,230,230, 7, 0, 0, 0,230, 0, 0, 0,230,230, - 0, 0,230,230,230, 0, 0,230,230,230, 0, 0, 9, 0, 0, 0, - 0, 7,230,230,230,220, 0,220, 0, 0,230,220,220,220, 0, 0, - 230, 0, 0,230, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1,220,230, - 230,230,220,220,230,230,220,230,230,220,230, 0, 0,230,230,220, - 0, 0, 0, 9, 9, 0,220, 0, 0, 0, 0, 0, 9, 9, 0, 9, - 7, 0, 1,220,220,220,220,220,220,230,230,230,220,220,230,220, - 220,230,230,220,230,230,220,230,220,230,230,230, 0,230, 0,220, - 220,220,220,220, 0, 0, 9, 9, 0, 0, 1, 0, 0, 0, 0, 0, - 0,220,230, 0,230,230, 0, 0,220,220, 0, 0,230,220, 0, 0, - 9, 7,220,220,220, 0,230,232,220,220,220,220,232,216,220,202, - 202,220,220,220,220,202,202,220,220,220,230,240,230,220,230,220, - 220, 0,232,220,220,230,233,234,234,233,234,234,233,230, 0,220, - 230,230,230,230,222,220,230,222,228,230, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 19, 20, 21, 22, 0, 23, 0, 24, 25, 0,230,220, - 0, 18, 30, 31, 32, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, - 34,230, 35, 0, 0, 0,230, 0,220,230, 0, 36, 0, 0,220,220, - 230,220,220,230,230, 0,230,230, 0,220, 27, 28, 29,230, 0,230, - 220,230, 0, 84, 91, 0,103,103, 9, 0,107,107,107,107,118,118, - 9, 0,122,122,122,122, 0,220, 0,220, 0,216, 0, 0, 0,129, - 130, 0,132, 0, 0, 0, 0, 0,130,130,130,130, 0, 0,130, 0, - 230,230, 9, 0,230,230, 0, 0,220, 0, 0,228, 0, 0, 0,222, - 230,220,230, 0, 0,220,230,220, 0,220,230,230,230,234,230, 0, - 1, 1,230,234,214,220,202,230,230,230,230,230,232,228,228,220, - 218,230,233,220,230,220,230,230, 1, 1, 1, 1, 1,230, 0, 1, - 1,230,220,230, 1, 1, 0, 0,218,228,232,222,224,224, 0, 8, - 8, 0,220, 0, 0,230, 0, 0, 26, 0, 0,220, 0,230,230, 1, - 220, 0, 0,230,220, 0, 0, 7, 9, 0, 6, 6, 0, 0, 0, 0, - 1, 0, 0,216,216, 1, 1, 1, 0, 0, 0,226,216,216,216,216, - 216, 0,232,232,220,230,230,230, 7, 0, 1, 0, 0, 0, 0, 0, - 0, 32, 0, 0, 0, 3, 0, 0, 0, 0, 4,101, 0,112,128,169, - 0, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,237, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 1, 1, 0, 3, 0, 0, 0, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 6, 7, 8, 9, 0, - 0, 0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 0, 0, 21, 22, 0, 0, 0, 0, 23, 24, - 25, 26, 0, 27, 0, 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, - 0, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 38, 39, 0, 0, 0, 0, 2, 1, 40, 41, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 36, 0, 0, - 8, 0, 0, 0, 0, 44, 0, 0, 52, 0, 0, 0, 56, 0, 0, 0, - 0, 0, 0, 0, 16, 8, 0, 0, 0, 0, 0, 0, 24, 48, 0, 0, - 0, 0, 0, 0, 28, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 28, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, - 60, 64, 0, 68, 0, 72, 76, 80, 0, 0, 0, 0, 0, 8, 84, 88, - 0, 92, 16, 8, 0, 0, 0, 4, 4, 16, 4, 4, 4, 4, 4, 4, - 4, 24, 20, 0, 96, 0, 16,100,104, 0, 4, 4,108, 0, 0, 0, - 40,112, 8, 16, 4, 4, 4, 4, 4, 8,116,120,124,128, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 8, 0, 0, 24, 20,132, 36, 0, 28, 0,136, 16, 4, - 4, 4, 0, 0, 0, 0, 24, 12, 12,140,144, 12,148, 0,152, 8, - 4, 4, 0, 0,156, 0, 8, 8, 0, 24, 20, 8, 4, 0, 0, 0, - 8, 0, 0,160, 8, 8, 0, 0, 24, 20, 0, 8, 0, 8, 0, 8, - 0, 0, 0, 0, 40, 12, 12, 12, 12, 12, 12, 12, 12, 12, 20, 16, - 4,164, 12, 12, 12, 12, 12, 12, 12, 12, 12, 20, 0,168,172,176, - 0,180, 0, 24, 20, 0, 0, 0, 0, 0, 0, 0, 0,184, 16, 8, - 28, 8, 0, 0, 0, 8, 4, 4, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 40, 12, 48, 0, 0, 4, 4, 8, 4, 4, 0, 0, 0, - 0, 0, 0, 0, 40, 20, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32,188,192, 0, 0, 0, 0, 0, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 1, 1, 11, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 12, 13, 2, 2, 2, 2, 14, 0, 0, 0, 0, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 25, 26, 3, 3, 3, 27, - 0, 0, 0, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 37, 1, 1, + 12, 21, 10, 2, 2, 21, 2, 9, 7, 21, 26, 12, 8, 8, 2, 5, + 7, 6, 10, 7, 5, 2, 25, 26, 2, 15, 26, 25, 12, 26, 15, 2, + 6, 7, 21, 7, 2, 26, 7, 26, 21, 26, 20, 19, 2, 6, 9, 25, + 5, 25, 21, 6, 15, 26, 25, 22, 18, 21, 26, 21, 5, 7, 6, 24, + 6, 5, 26, 23, 21, 12, 6, 12, 26, 7, 2, 1, 29, 29, 26, 15, + 21, 17, 25, 21, 15, 21, 11, 11, 21, 23, 12, 6, 6, 2, 10, 21, + 17, 17, 9, 26, 7, 15, 29, 21, 21, 9, 24, 5, 25, 9, 17, 6, + 1, 12, 17, 21, 11, 12, 8, 24, 26, 9, 21, 22, 23, 26, 25, 2, + 14, 2, 26, 10, 23, 21, 21, 25, 9, 22, 21, 18, 24, 16, 5, 22, + 25, 18, 24, 26, 26, 24, 9, 8, 8, 5, 5, 21, 15, 7, 2, 23, + 21, 15, 17, 7, 5, 6, 5, 24, 2, 24, 22, 20, 21, 20, 19, 21, + 21, 16, 16, 21, 18, 6, 23, 2, 7, 5, 5, 26, 14, 15, 18, 25, + 7, 14, 17, 22, 24, 6, 6, 21, 12, 15, 21, 14, 25, 0, 7, 20, + 25, 1, 24, 15, 7, 19, 9, 21, 6, 26, 17, 12, 1, 21, 12, 1, + 24, 7, 29, 7, 7, 22, 18, 2, 14, 7, 9, 24, 24, 2, 29, 1, + 27, 28, 1, 29, 21, 29, 1, 2, 15, 6, 12, 11, 26, 5, 14, 9, + 5, 14, 26, 22, 18, 26, 5, 12, 22, 21, 18, 17, 26, 6, 18, 18, + 26, 14, 14, 6, 12, 24, 11, 21, 24, 9, 6, 9, 6, 10, 7, 25, + 17, 16, 16, 22, 16, 16, 25, 17, 25, 24, 12, 17, 24, 12, 21, 1, + 2, 25, 10, 1, 10, 26, 7, 13, 13, 2, 23, 15, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 0, 10, 11, 12, 13, 0, 14, 0, 0, 0, + 0, 0, 15, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 18, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 21, 22, 23, 0, 0, + 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 0, 36, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 40, 0, 0, 0, 0, 0, 0, 41, 42, 43, 44, + 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 17, 18, + 0, 19, 0, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 0, 0, 0, + 27, 28, 29, 30, 0, 31, 0, 32, 33, 0, 2, 34, 0, 0, 2, 1, + 35, 0, 2, 1, 0, 0, 2, 1, 0, 0, 2, 1, 0, 0, 0, 1, + 0, 0, 2, 36, 0, 0, 2, 1, 0, 0, 37, 1, 0, 0, 0, 38, + 0, 0, 39, 40, 0, 0, 41, 42, 0, 43, 44, 0, 45, 46, 0, 47, + 0, 0, 48, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 4, 0, 0, 0, 0, 52, + 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 54, 0, 0, 0, 0, 0, + 0, 55, 0, 0, 56, 0, 57, 58, 59, 0, 60, 5, 61, 0, 62, 0, + 63, 0, 64, 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 67, + 68, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 3, 0, 0, 0, + 72, 0, 73, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 76, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 78, 0, 0, 0, 0, 5, 79, 0, 80, 81, 0, 0, 7, 8, + 0, 0, 0, 0, 0, 0, 82, 83, 84, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 87, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, 0, + 0, 90, 91, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 94, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 95, 96, 97, 0, 0, 98, 0, 99, 0, 0, + 0, 0, 0, 6,100, 0, 9, 0, 0,101,102, 0, 7, 0, 0,103, + 0, 0,104, 0, 0, 0, 0, 0,105, 0,106, 1,107, 0, 0,108, + 0, 0, 0,109, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 3,111, + 0, 0, 3, 0, 0, 0,112, 0, 0, 0,113, 0, 0, 0, 0, 0, + 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,114,115, 0, 0, 0, 0, + 8, 0, 4,116, 0,117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0,118, 0,119, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,121, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,122, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 123, 0, 0, 0, 0,124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125, 0,126,127,128, 0, + 0, 0, 0,129, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,131,132, 0, 0,133, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,134, 0,135, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, + 137, 0, 0, 0, 0, 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,139, 0, 0, 0,140, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 1, 12, 0, 0, 1, 1, 1, 1, 1, 49, 50, 6, 51, 52, 53, 6, + 6, 25, 36, 26, 1, 54, 17, 55, 16, 27, 56, 57, 58, 1, 1, 1, + 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 59, 7, 60, 1, 18, 6, 7, 61, 62, 63, 64, 65, 66, 67, 68, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 69, 0, 0, 0, 70, 71, + 72, 37, 1, 28, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 1, 29, 16, 29, 74, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 30, 28, 76, 31, 7, 31, 77, 0, + 0, 0, 0, 0, 0, 0, 5, 1, 7, 0, 0, 19, 0, 0, 0, 0, + 0, 8, 39, 1, 1, 13, 13, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 40, 0, 0, 0, 0, 0, 0, 5, 20, 1, 0, 0, 8, 16, + 6, 1, 1, 1, 78, 7, 30, 20, 79, 7, 37, 1, 0, 0, 0, 4, + 80, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 4, + 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 83, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 85, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 86, 87, 0, 0, 0, 0, 0, 88, 89, 90, 91, 92, 93, 0, 0, + 0, 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 32, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 13, 0, 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, + 14, 0, 0, 22, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 96, 0, 0, 0, 0, 0, 0, 5, 23, 0, 3, 0, 0, 0, + 0, 13, 1, 97, 0, 0, 0, 0, 1, 20, 27, 98, 28, 26, 7, 1, + 1, 1, 1, 30, 1, 7, 99, 18, 10, 0, 0, 0, 0, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 5, 26, 1, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 24, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 0, 0, 0, 12, 36, 17, 6,100, 25, 43, 19, + 0, 10, 11, 0, 7, 1, 7,101,102, 1, 1, 1, 1, 1, 1, 1, + 1,103,104,105, 0, 0, 0, 0,106, 1,107, 10, 22,108,109, 6, + 10, 0, 0, 0, 0, 0, 0, 5, 11, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 0,110,111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,112, 0, 0, 0, 0, 5, 0, 1, 1, 11, 0, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 1, 1, 1, 1, 11, 0, 0, 0, 0, 0, 34, 41, + 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 44,113, 10, 8, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 1, 16, 6, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 0, 0, 0, 0,115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 2, 0,117, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 13, 11, + 0, 0, 0, 0, 0, 0, 5, 10, 0, 0, 0, 0, 0, 0, 5, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 31, 18, 40, 0,118, 16, 20, + 23, 0, 0, 0, 45, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 0, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 3, 0, 0, 3, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 35, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 9, 0, 8, 1, 10, 1, 10, 0, 0, 0, 0, 0, 33, + 3, 0, 0, 0, 14, 24, 0, 0, 0, 0, 0, 21, 46, 0, 0, 0, + 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32, 15, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 24, 42, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 43, 0, 0, 0, 0, 0, 0,120, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,121, 0, 34, 23, 0, 0, 0, 0, 0, 0,122,123,124, + 47, 0, 34, 6, 48, 13, 18, 0, 0, 0, 0, 0, 0, 0, 8, 11, + 0, 0, 0, 0, 8, 10, 0, 0, 47, 0,125,126,127, 0, 0, 0, + 0, 0, 0, 0, 1, 12, 1, 1, 1, 1, 29, 1, 39, 44, 12, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 21, + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, + 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 5, 21, 0, 8, + 0, 22, 0, 0, 0, 0, 0, 0, 6, 48, 0, 0, 0, 1,129, 0, + 0, 0, 0, 0,230,230,230,230, 0, 0, 0, 9, 9, 0, 0, 0, + 0, 9, 0, 0, 0, 0, 0,230,220,220,220,220,230,230,220,230, + 0, 0,230,230, 7, 0, 0, 0,230, 0, 0, 0,230,230, 0, 0, + 230,230,230, 0, 0,230,230,230, 0, 0, 9, 0, 0, 0, 0, 7, + 230,230,230,220,220,220,230,230,230,230,220,220, 0,220, 0, 0, + 230,220,220,220, 0, 0,230, 0, 0,230, 0, 0,220, 0, 0, 0, + 0, 0, 7, 0, 1, 1, 1, 1,220,230,230,230,220,220,220,230, + 220,230,230,220,230, 0, 0,230,230,220,230,230,220,230,220,230, + 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0,220, 0, 9, 7, 0, + 1,220,220,220,230,220,220,230,230,220, 0, 0,230,230, 0,230, + 0,220,220,220,220,220, 0, 0, 9, 9, 0, 0, 1, 0, 0, 0, + 230, 0,230,230, 0, 0,230,220, 0, 0, 9, 7,216,216,216, 0, + 220,220,220, 0,230,232,220,220,220,220,232,216,220,202,202,220, + 220,220,220,202,202,220,220,220,230,240,230,220,230,220,220, 0, + 232,220,220,230,233,234,234,233,234,234,233,230, 0,220,230,230, + 230,230,222,220,230,222,228,230, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 19, 20, 21, 22, 0, 23, 0, 24, 25, 0,230,220, 0, 18, + 10, 21, 0, 0, 30, 31, 32, 0, 0, 0, 0, 27, 28, 29, 30, 31, + 32, 33, 34,230, 35, 0, 0, 0,230, 0,220,230, 0, 36, 0, 0, + 220,220,230,220,220,230,230, 0,230,230, 0,220, 27, 28, 29,230, + 0,230,220,230, 0, 84, 91, 0,103,103, 9, 0,107,107,107,107, + 118,118, 9, 0,122,122,122,122, 0,220, 0,220, 0,216, 0, 0, + 0,129,130, 0,132, 0, 0, 0, 0, 0,130,130,130,130, 0, 0, + 130, 0,230,230, 9, 0,230,230, 0, 0,220, 0, 0,228, 0, 0, + 0,222,230,220,230, 0, 0,220,230,220, 0,220,230,230,230,234, + 230, 0, 1, 1,230,234,214,220,202,230,230,230,230,230,232,228, + 228,220,218,230,233,220,230,220,230,230, 1, 1, 1, 1, 1,230, + 0, 1, 1,230,220,230, 1, 1, 0, 0,218,228,232,222,224,224, + 0, 8, 8, 0,220, 0, 0,230, 0, 0, 26, 0, 0,220, 0,230, + 230, 1,220, 0, 0,230,220, 0, 0, 0,220,220, 0, 7, 9, 0, + 6, 6, 0, 0, 0, 0, 1, 0, 0,216,216, 1, 1, 1, 0, 0, + 0,226,216,216, 0, 0, 0, 1, 1, 0, 0,216,216,216, 0, 0, + 232,232,220,230,230,230, 7, 0, 1, 0, 0, 32, 0, 48, 0, 0, + 84, 96,135,144, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,176, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 1, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 21, 22, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 25, 26, 0, + 27, 0, 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, 33, 34, + 35, 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39, 40, 0, 0, 0, 0, 2, 1, 41, 42, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 36, 0, 0, 8, 0, 0, 0, 0, 44, + 0, 0, 52, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 16, 8, + 0, 0, 0, 0, 0, 0, 24, 48, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, + 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 60, 64, 0, 68, 0, 72, + 76, 80, 0, 0, 0, 0, 0, 8, 84, 88, 0, 92, 16, 8, 0, 0, + 0, 4, 4, 16, 4, 4, 4, 4, 4, 4, 4, 24, 20, 0, 96, 0, + 16,100,104, 0, 4, 4,108, 0, 0, 0, 40,112, 8, 16, 4, 4, + 4, 4, 4, 8,116,120,124,128, 0, 0, 4, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 8, 0, 0, + 24, 20,132, 36, 0, 28, 0,136, 16, 4, 4, 4, 0, 0, 0, 0, + 24, 12, 12,140,144, 12,148, 0,152, 8, 4, 4, 0, 0,156, 0, + 8, 8, 0, 24, 20, 8, 4, 0, 0, 0, 8, 0, 0,160, 8, 8, + 0, 0, 24, 20, 0, 8, 0, 8, 0, 8, 0, 0, 0, 0, 40, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 20, 16, 4,164, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 20, 0,168,172,176, 0,180, 0, 24, 20, 0, + 0, 0, 0, 0, 0, 0, 0,184, 16, 8, 28, 8, 0, 0, 0, 8, + 4, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 12, 48, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 8, 4, 4, 0, + 0, 0, 0, 0, 0, 0, 40, 20, 0, 8, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32,188,192, 0, 0, 0, 0, 0, 0, 0, + 24, 20, 8, 0,196, 0, 0, 0, 19, 19, 19, 19, 20, 18, 20, 18, + 20, 18, 19, 19, 18, 20, 18, 20, 19, 19, 20, 18, 18, 20, 18, 19, + 19, 19, 19, 20, 19, 20, 18, 19, 19, 19, 19, 21, 19, 17, 19, 19, + 19, 20, 18, 20, 21, 19, 17, 19, 18, 19, 19, 19, 19, 19, 19, 25, + 19, 19, 19, 13, 22, 22, 22, 16, 16, 16, 19, 19, 19, 32, 19, 19, + 19, 38, 19, 37, 31, 29, 30, 19, 36, 19, 19, 19, 19, 19, 19, 26, + 19, 23, 19, 19, 15, 19, 19, 19, 28, 19, 19, 19, 19, 19, 33, 19, + 35, 34, 19, 34, 27, 19, 19, 19, 18, 12, 19, 19, 20, 18, 24, 24, + 24, 19, 23, 23, 19, 19, 14, 14, 14, 15, 15, 19, 20, 18, 19, 21, + 11, 20, 18, 19, 18, 22, 20, 18, 16, 20, 18, 20, 18, 19, 19, 9, + 8, 19, 19, 7, 10, 19, 19, 19, 19, 6, 19, 19, 20, 18, 19, 20, + 19, 19, 5, 19, 19, 19, 19, 4, 3, 4, 19, 19, 20, 18, 2, 19, + 19, 19, 1, 19, 19, 17, 19, 20, 18, 19, 20, 18, 0, 19, 19, 19, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1, 1, 1, + 1, 1, 1, 19, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 20, 21, 22, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 23, 0, 0, 0, 0, 0, 0, 0, 0, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, 36, 5, 37, 5, 5, + 38, 39, 0, 0, 0, 0, 0, 0, 40, 0, 41, 42, 4, 4, 4, 4, + 4, 4, 43, 44, 45, 0, 0, 0, 0, 0, 0, 46, 47, 0, 0, 48, + 0, 0, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 0, + 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, 38, 1, 1, 39, 1, 40, 1, 1, 1, 41, 0, 42, 1, 1, - 43, 1, 1, 1, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 61, 1, 1, 1, 1, 62, 1, + 1, 1, 1, 63, 1, 1, 1, 1, 1, 1, 64, 65, 0, 0, 66, 0, + 1, 1, 1, 1, 67, 1, 1, 1, 1, 1, 1, 1, 1, 68, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1510,507 +1562,468 @@ static _hb_ucd_u8: [u8; 19845]= 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 20, - 21, 8, 8, 8, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 2, 2, 51, 52, 53, 54, 9, 9, 9, 9, 9, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 8, 8, 70, 71, 72, - 73, 74, 75, 5, 5, 5, 5, 76, 5, 5, 5, 5, 5, 5, 5, 15, - 15, 5, 5, 5, 5, 77, 5, 78, 79, 80, 81, 82, 83, 1, 84, 85, - 86, 87, 88, 89, 90, 91, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 92, 1, 1, 1, 1, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 93, 16, 16, 94, 95, 96, 97, 98, - 99,100,101,102,103,104,105, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,106, 0, - 0, 1, 1,107,108,109, 13, 13, 13,110,111,112,113,114,115,116, - 117,118,119, 0,120,121,122,123,124,125,126, 17, 17,127,128,129, - 130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145, - 146,147,148,149,150,151,152,153,154, 0,155,156,157,158, 0,159, - 160,161,162,163,164,165,166,167,168,169,170, 0,171,172,173, 7, - 7, 7, 7, 7, 7, 7,174,175, 7,176, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,177, 4, - 4, 4, 4, 4, 4, 4, 4,178, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4,179, 11, 11, 11, 11,180, 0, 0, 0, 0, - 0,181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 12, 12, 12,182,183,184,185, 0, 0,186, 0,187,188,189,190, 3, - 3, 3, 3, 3, 3, 14, 14, 14,191,192,193, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,194,195, - 196,197, 18, 18,198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,199,200, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5,201, 5, 5, 5,202,203,204, 5, - 205,206,207,208,209,210, 0,211,212,213, 5, 5,214, 5,215, 10, - 10, 10, 10, 10,216, 0, 0, 0, 0, 0, 0, 0, 0,217, 0,218, - 219,220, 0, 0,221, 0, 0, 0,222, 0,223, 0,224, 0,225,226, - 227,228, 0, 0, 0, 0, 0,229,230,231, 0,232,233, 0, 0,234, - 235, 5,236,237, 0, 5, 5, 5, 5, 5, 5, 5,238, 5,239,240, - 241, 5, 5,242,243, 5,244, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,245, 1, 1,246, - 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,247, 1, 1, 1, - 1, 1, 1, 1, 1, 1,248, 1, 1, 1, 1,249, 0, 0, 0, 1, - 1, 1, 1,250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1,251, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1,252, 0, 0, 0, 0, 0, 0, 0,253, - 0, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 13, 13, 13, 13, 13, 13, 13, 13, 12, - 12, 12, 12, 12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0,136, - 136,136,136,136,136,136,136, 80, 80, 80, 80, 80, 80, 80, 80, 19, - 19, 19, 19, 19, 19, 19, 19, 3, 3, 3, 3, 3, 3, 3, 3, 63, - 63, 63, 63, 63, 63, 63, 63, 39, 39, 39, 39, 39, 39, 39, 39, 28, - 28, 28, 28, 28, 28, 28, 28, 79, 79, 79, 79, 79, 79, 79, 79,131, - 131,131,131,131,131,131,131, 1, 1, 1, 1, 1, 1, 1, 1,127, - 127,127,127,127,127,127,127, 6, 6, 6, 6, 6, 6, 6, 6,155, - 155,155,155,155,155,155,155,139,139,139,139,139,139,139,139, 9, - 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15, 30, - 30, 30, 30, 30, 30, 30, 30,110,110,110,110,110,110,110,110, 77, - 77, 77, 77, 77, 77, 77, 77, 17, 17, 17, 17, 17, 17, 17, 17, 27, - 27, 27, 27, 27, 27, 27, 27, 33, 33, 33, 33, 33, 33, 33, 33,113, - 113,113,113,113,113,113,113, 49, 49, 49, 49, 49, 49, 49, 49, 25, - 25, 25, 25, 25, 25, 25, 25, 29, 29, 29, 29, 29, 29, 29, 29, 7, - 7, 7, 7, 7, 7, 7, 7, 32, 32, 32, 32, 32, 32, 32, 32, 8, - 8, 8, 8, 8, 8, 8, 8, 99, 99, 99, 99, 99, 99, 99, 99, 31, - 31, 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 2,105, - 105,105,105,105,105,105,105, 55, 55, 55, 55, 55, 55, 55, 55, 62, - 62, 62, 62, 62, 62, 62, 62, 56, 56, 56, 56, 56, 56, 56, 56, 91, - 91, 91, 91, 91, 91, 91, 91, 0, 0, 0, 0, 2, 2, 2, 2,100, - 100,100,100,100,100,100,100,119,119,119,119,119,119,119,119, 14, - 14, 14, 14, 14, 14, 14, 14,130,130,130,130,130,130,130,130, 94, - 94, 94, 94, 94, 94, 94, 94,157,157,157,157,157,157,157,157,137, - 137,137,137,137,137,137,137,146,146,146,146,146,146,146,146, 20, - 20, 20, 20, 20, 20, 20, 20, 35, 35, 35, 35, 35, 35, 35, 35, 0, - 0, 0, 0, 0, 0, 2, 2, 84, 84, 84, 84, 84, 84, 84, 84, 40, - 40, 40, 40, 40, 40, 40, 40, 97, 97, 97, 97, 97, 97, 97, 97,124, - 124,124,124,124,124,124,124,123,123,123,123,123,123,123,123,125, - 125,125,125,125,125,125,125,140,140,140,140,140,140,140,140,159, - 159,159,159,159,159,159,159,132,132,132,132,132,132,132,132, 37, - 37, 37, 37, 37, 37, 37, 37, 22, 22, 22, 22, 22, 22, 22, 22, 24, - 24, 24, 24, 24, 24, 24, 24, 58, 58, 58, 58, 58, 58, 58, 58, 76, - 76, 76, 76, 76, 76, 76, 76, 26, 26, 26, 26, 26, 26, 26, 26, 75, - 75, 75, 75, 75, 75, 75, 75, 89, 89, 89, 89, 89, 89, 89, 89,114, - 114,114,114,114,114,114,114,141,141,141,141,141,141,141,141,133, - 133,133,133,133,133,133,133,163,163,163,163,163,163,163,163, 4, - 4, 4, 4, 4, 4, 4, 4, 70, 70, 70, 70, 70, 70, 70, 70, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 68, - 68, 68, 68, 68, 68, 68, 68, 92, 92, 92, 92, 92, 92, 92, 92, 87, - 87, 87, 87, 87, 87, 87, 87,135,135,135,135,135,135,135,135, 85, - 85, 85, 85, 85, 85, 85, 85, 96, 96, 96, 96, 96, 96, 96, 96,109, - 109,109,109,109,109,109,109,102,102,102,102,102,102,102,102, 64, - 64, 64, 64, 64, 64, 64, 64, 61, 61, 61, 61, 61, 61, 61, 61, 65, - 65, 65, 65, 65, 65, 65, 65, 2, 0, 0, 0, 0, 0, 0, 0,108, - 108,108,108,108,108,108,108,142,142,142,142,142,142,142,142,121, - 121,121,121,121,121,121,121,166,166,166,166,166,166,166,166,167, - 167,167,167,167,167,167,167, 0, 2, 2, 2, 2, 2, 2, 2,151, - 151,151,151,151,151,151,151,152,152,152,152,152,152,152,152, 38, - 38, 38, 38, 38, 38, 38, 38, 90, 90, 90, 90, 90, 90, 90, 90, 23, - 23, 23, 23, 23, 23, 23, 23, 36, 36, 36, 36, 36, 36, 36, 36, 30, - 2, 30, 30, 30, 30, 2, 2, 48, 48, 48, 48, 48, 48, 48, 48, 93, - 93, 93, 93, 93, 93, 93, 93, 73, 73, 73, 73, 73, 73, 73, 73, 9, - 9, 9, 9, 9, 9, 2, 2, 13, 13, 13, 13, 13, 13, 2, 2, 86, - 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 0, 0, 2, 2, 2, 67, - 67, 67, 67, 67, 67, 67, 67, 51, 51, 51, 51, 51, 51, 51, 51,104, - 104,104,104,104,104,104,104,170,170,170,170,170,170,170,170, 78, - 78, 78, 78, 78, 78, 78, 78,144,144,144,144,144,144,144,144,165, - 165,165,165,165,165,165,165,171,171,171,171,171,171,171,171,126, - 126,126,126,126,126,126,126,150,150,150,150,150,150,150,150,134, - 134,134,134,134,134,134,134,138,138,138,138,138,138,138,138,175, - 175,175,175,175,175,175,175, 18, 18, 18, 18, 18, 18, 18, 18, 0, - 0, 0, 0, 0, 2, 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, 69, - 69, 69, 69, 69, 69, 69, 69,118,118,118,118,118,118,118,118, 59, - 59, 59, 59, 59, 59, 59, 59,106,106,106,106,106,106,106,106,156, - 156,156,156,156,156,156,156,147,147,147,147,147,147,147,147,148, - 148,148,148,148,148,148,148,169,169,169,169,169,169,169,169,172, - 172,172,172,172,172,172,172,164,164,164,164,164,164,164,164,168, - 168,168,168,168,168,168,168,174,174,174,174,174,174,174,174, 0, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 5, - 5, 5, 5, 5, 5, 5, 5, 21, 21, 21, 21, 21, 21, 21, 21, 16, - 16, 16, 16, 16, 16, 16, 16, 12, 12, 12, 12, 12, 12, 12, 2, 74, - 74, 74, 74, 74, 74, 74, 74, 42, 42, 42, 42, 42, 42, 42, 42, 50, - 50, 50, 50, 50, 50, 50, 50,161,161,161,161,161,161,161,161, 47, - 47, 47, 47, 47, 47, 47, 47,120,120,120,120,120,120,120,120,116, - 116,116,116,116,116,116,116, 98, 98, 98, 98, 98, 98, 98, 98, 57, - 57, 57, 57, 57, 57, 57, 57, 88, 88, 88, 88, 88, 88, 88, 88,117, - 117,117,117,117,117,117,117,112,112,112,112,112,112,112,112,101, - 101,101,101,101,101,101,101,111,111,111,111,111,111,111,111,154, - 154,154,154,154,154,154,154,143,143,143,143,143,143,143,143,115, - 115,115,115,115,115,115,115, 0, 0, 19, 0, 0, 0, 0, 0, 95, - 95, 95, 95, 95, 95, 95, 95, 11, 11, 11, 11, 11, 11, 11, 11, 10, - 10, 10, 10, 10, 10, 10, 10, 22, 22, 22, 2, 2, 2, 22, 22, 2, - 25, 25, 25, 25, 25, 25, 25, 34, 34, 34, 34, 34, 34, 34, 34, 52, - 52, 52, 52, 52, 52, 52, 52, 54, 54, 54, 54, 54, 54, 54, 54, 0, - 0, 0, 2, 2, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, 2, 2, - 2, 12, 12, 12, 12, 12, 12, 71, 71, 71, 71, 71, 71, 71, 71, 41, - 41, 41, 41, 41, 41, 41, 41, 53, 53, 53, 53, 53, 53, 53, 53, 81, - 81, 81, 81, 81, 81, 81, 81, 66, 66, 66, 66, 66, 66, 66, 66, 72, - 72, 72, 72, 72, 72, 72, 72,173,173,173,173,173,173,173,173, 83, - 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 82, 82,158, - 158,158,158,158,158,158,158,153,153,153,153,153,153,153,153,145, - 145,145,145,145,145,145,145,103,103,103,103,103,103,103,103,160, - 160,160,160,160,160,160,160, 2, 3, 3, 2, 3, 2, 2, 3, 3, - 3, 3, 2, 3, 3, 3, 3, 19, 19, 19, 19, 19, 19, 19, 0, 2, - 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 0, 3, 3, 5, - 5, 5, 5, 5, 2, 2, 5, 11, 11, 11, 2, 2, 2, 2, 11, 10, - 10, 10, 10, 10, 10, 2, 10, 21, 21, 21, 21, 21, 2, 2, 21, 22, - 2, 22, 22, 22, 22, 2, 2, 23, 23, 23, 23, 23, 2, 23, 23, 23, - 2, 23, 23, 23, 23, 23, 23, 16, 16, 16, 16, 16, 2, 16, 16, 16, - 2, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 2, 20, 20, 20, - 2, 20, 20, 20, 20, 20, 20, 36, 36, 36, 36, 36, 36, 36, 2, 25, - 25, 25, 25, 25, 2, 25, 25, 8, 8, 8, 8, 8, 8, 2, 8, 2, - 2, 2, 2, 2, 8, 2, 2, 29, 29, 29, 29, 29, 29, 2, 2, 45, - 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44, 43, - 43, 43, 43, 43, 43, 43, 43, 31, 31, 2, 2, 2, 2, 2, 2, 48, - 48, 48, 48, 2, 2, 2, 2, 91, 91, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1, 1, 1, 2, 2, 9, 9, 9, 9, 9, 2, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 2, 19, 19, 19, 19, 19, 2, 2, 2, 0, - 0, 0, 0, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 61, 0, - 17, 17, 17, 17, 17, 17, 17, 12, 12, 12, 12, 2, 2, 2, 2, 13, - 13, 2, 2, 2, 2, 2, 2, 19, 19, 19, 19, 19, 19, 19, 2, 0, - 0, 0, 2, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, 2, 2, 0, - 0, 0, 2, 2, 2, 2, 0,135,135,135,135, 2, 2, 2, 2,161, - 161,161, 2,161,161,161,161,161,161, 2,161,161,161,161,161, 19, - 19, 19, 2, 2, 2, 2, 2,128,128,128,128,128,128,128,128, 57, - 2, 2, 2, 2, 2, 2, 2,112,112,112,112,112,112,112, 2,122, - 122,122,122,122,122,122,122,130,130,130, 2, 2, 2, 2, 2,165, - 165,165,165,165,165, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3,149, - 149,149,149,149,149,149,149, 94, 94, 94, 94, 94, 94, 2, 2,129, - 129,129,129,129,129,129,129,107,107,107,107,107, 2, 2,107,107, - 107,107,107,107,107,107,107,107,107,107,107,107, 2, 2, 2,171, - 171,171,171,171,171, 2,171,123,123,123,123,123,123, 2, 2,102, - 102, 2, 2, 2, 2, 2, 2,154,154,154,154,154,154,154, 2, 2, - 2,150,150,150,150,150,150,169,169, 2, 2, 2, 2, 2, 2,138, - 138,138,138,138,138,138, 2,103,103,103,103,103,103, 2, 2,119, - 119, 2,119,119,119,119,119, 2, 2, 0, 0, 0, 0, 0, 0, 3, - 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 19, - 0, 0, 0, 0, 0, 0, 0, 19, 19, 19, 19, 19, 0, 0, 0, 0, - 0, 26, 26, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, 9, 2, - 2, 9, 9, 9, 9, 0, 9, 2, 2, 2, 2, 9, 0, 9, 0, 9, - 9, 9, 2, 9, 2, 9, 9, 9, 9, 2, 9, 9, 9, 9, 9, 9, - 9, 55, 55, 55, 55, 55, 55, 6, 6, 6, 6, 6, 1, 1, 6, 4, - 4, 4, 4, 4, 4, 4, 2, 4, 4, 4, 2, 2, 4, 4, 4, 2, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 2, 2, 2, 2, 14, 14, - 14, 14, 14, 14, 2, 2, 2, 3, 3, 3, 3, 0, 3, 3, 3, 3, - 3, 3, 0, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, - 3, 3, 3, 3, 3, 3, 3, 37, 37, 37, 37, 37, 37, 2, 37, 37, - 37, 37, 2, 2, 37, 37, 37, 38, 38, 2, 2, 2, 2, 2, 2, 64, - 64, 64, 2, 2, 64, 64, 64, 90, 90, 90, 90, 90, 90, 2, 2, 90, - 90, 90, 90, 90, 90, 90, 2, 95, 95, 95, 95, 2, 2, 95, 2, 37, - 37, 37, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 3, 3, - 3, 0, 3, 3, 3, 3, 3, 7, 1, 1, 1, 1, 7, 7, 7, 7, - 7, 7, 7, 0, 0, 7, 7, 5, 5, 5, 5, 2, 5, 5, 5, 5, - 2, 2, 5, 5, 5, 5, 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, - 2, 5, 2, 2, 2, 5, 5, 5, 5, 2, 2, 5, 5, 5, 5, 5, - 2, 2, 5, 5, 5, 5, 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, - 2, 2, 2, 5, 5, 2, 5, 5, 5, 5, 5, 2, 2, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 2, 2, 11, 11, 11, 2, 11, 11, 11, 11, - 2, 2, 11, 11, 11, 11, 11, 11, 2, 11, 11, 11, 11, 11, 11, 11, - 2, 11, 11, 2, 11, 11, 2, 11, 11, 2, 2, 11, 2, 11, 11, 11, - 2, 2, 11, 11, 11, 2, 2, 2, 11, 2, 2, 2, 2, 2, 2, 2, - 11, 11, 11, 11, 2, 11, 2, 2, 2, 2, 2, 2, 2, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 2, 2, 10, 10, 10, 2, 10, 10, 10, 10, - 10, 2, 10, 10, 10, 10, 10, 10, 2, 10, 10, 10, 10, 10, 10, 10, - 2, 10, 10, 2, 10, 10, 10, 10, 10, 2, 2, 10, 10, 10, 10, 10, - 10, 2, 10, 10, 10, 2, 2, 10, 2, 2, 2, 2, 2, 2, 2, 10, - 10, 10, 10, 2, 2, 10, 10, 10, 10, 2, 2, 2, 2, 2, 2, 2, - 10, 10, 10, 10, 10, 10, 10, 2, 21, 21, 21, 2, 21, 21, 21, 21, - 2, 2, 21, 21, 21, 21, 21, 21, 2, 21, 21, 21, 21, 21, 21, 21, - 2, 21, 21, 2, 21, 21, 21, 21, 21, 2, 2, 21, 21, 21, 21, 21, - 2, 2, 21, 21, 21, 2, 2, 2, 2, 2, 2, 2, 21, 21, 21, 2, - 2, 2, 2, 21, 21, 2, 21, 21, 21, 21, 21, 2, 2, 21, 21, 2, - 2, 22, 22, 2, 22, 22, 22, 2, 22, 22, 2, 22, 2, 22, 22, 2, - 2, 2, 22, 22, 2, 2, 2, 22, 22, 2, 2, 2, 2, 22, 22, 22, - 2, 2, 2, 2, 2, 2, 22, 2, 2, 2, 2, 2, 2, 22, 22, 22, - 22, 22, 2, 2, 2, 2, 2, 23, 23, 2, 2, 23, 23, 23, 23, 23, - 2, 23, 23, 23, 23, 2, 2, 2, 2, 2, 2, 2, 23, 23, 2, 23, - 23, 23, 2, 23, 23, 2, 2, 23, 23, 23, 23, 2, 2, 23, 23, 2, - 2, 2, 2, 2, 2, 2, 23, 16, 16, 16, 16, 2, 16, 16, 16, 16, - 16, 2, 2, 16, 16, 16, 16, 16, 2, 16, 16, 16, 16, 2, 2, 2, - 2, 2, 2, 2, 16, 16, 2, 2, 2, 2, 2, 16, 16, 16, 2, 16, - 16, 16, 16, 2, 2, 16, 16, 2, 16, 16, 16, 2, 2, 2, 2, 2, - 2, 2, 2, 20, 20, 20, 20, 20, 20, 20, 20, 2, 2, 20, 20, 2, - 36, 36, 36, 2, 36, 36, 36, 2, 2, 36, 36, 36, 36, 36, 36, 36, - 36, 2, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 36, 2, 2, 2, - 2, 36, 2, 2, 2, 2, 36, 36, 36, 36, 36, 36, 2, 36, 2, 2, - 2, 2, 2, 2, 2, 36, 36, 2, 2, 36, 36, 36, 2, 2, 2, 2, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 2, 2, 2, 2, 0, 24, - 24, 24, 24, 2, 2, 2, 2, 2, 18, 18, 2, 18, 2, 18, 18, 18, - 18, 18, 2, 18, 18, 18, 18, 18, 18, 18, 18, 2, 18, 2, 18, 18, - 18, 18, 18, 18, 18, 2, 2, 18, 18, 18, 18, 18, 2, 18, 2, 18, - 18, 18, 18, 18, 18, 18, 2, 18, 18, 2, 2, 18, 18, 18, 18, 25, - 25, 25, 25, 25, 2, 2, 2, 25, 25, 25, 25, 25, 0, 0, 0, 0, - 25, 25, 2, 2, 2, 2, 2, 8, 8, 8, 0, 8, 8, 8, 8, 30, - 30, 30, 2, 2, 30, 30, 30, 30, 30, 30, 30, 30, 2, 2, 2, 30, - 30, 2, 2, 2, 2, 2, 2, 34, 34, 34, 34, 34, 2, 2, 2, 35, - 35, 35, 0, 0, 0, 35, 35, 35, 2, 2, 2, 2, 2, 2, 2, 45, - 45, 45, 45, 45, 45, 2, 2, 2, 2, 2, 2, 2, 2, 2, 45, 44, - 44, 44, 44, 44, 0, 0, 2, 43, 43, 43, 43, 2, 2, 2, 2, 46, - 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 2, 46, 46, 46, - 2, 46, 46, 2, 2, 2, 2, 31, 31, 31, 31, 31, 31, 2, 2, 32, - 32, 0, 0, 32, 0, 32, 32, 32, 32, 2, 2, 2, 2, 2, 2, 32, - 2, 2, 2, 2, 2, 2, 2, 32, 32, 32, 2, 2, 2, 2, 2, 28, - 28, 28, 28, 28, 28, 2, 2, 48, 48, 48, 48, 48, 48, 48, 2, 48, - 2, 2, 2, 48, 48, 48, 48, 52, 52, 52, 52, 52, 52, 2, 2, 52, - 52, 52, 52, 52, 2, 2, 2, 58, 58, 58, 58, 2, 2, 2, 2, 58, - 58, 2, 2, 2, 2, 2, 2, 58, 58, 58, 2, 2, 2, 58, 58, 54, - 54, 54, 54, 2, 2, 54, 54, 91, 91, 91, 91, 91, 91, 91, 2, 91, - 91, 91, 91, 91, 2, 2, 91, 91, 91, 91, 91, 91, 91, 2, 2, 1, - 1, 1, 1, 2, 2, 2, 2, 62, 62, 62, 62, 62, 2, 62, 62, 93, - 93, 93, 93, 2, 2, 2, 2, 2, 2, 2, 2, 93, 93, 93, 93, 2, - 2, 2, 70, 70, 70, 70, 70, 70, 70, 2, 2, 2, 70, 70, 70, 6, - 6, 6, 2, 2, 2, 2, 2, 8, 8, 8, 2, 2, 8, 8, 8, 1, - 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, - 1, 0, 2, 2, 2, 2, 2, 19, 19, 19, 19, 19, 19, 9, 9, 9, - 9, 9, 6, 19, 19, 19, 19, 19, 19, 19, 19, 19, 9, 9, 9, 9, - 9, 19, 19, 19, 19, 9, 9, 9, 9, 9, 19, 19, 19, 19, 19, 6, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 9, 2, - 9, 2, 9, 2, 9, 2, 9, 9, 9, 9, 9, 2, 2, 9, 9, 9, - 9, 9, 9, 2, 9, 9, 9, 2, 2, 9, 9, 9, 2, 9, 9, 0, - 0, 0, 0, 1, 1, 0, 0, 0, 19, 2, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 19, 1, 2, 2, 2, 2, 2, 2, 2, 0, - 0, 0, 0, 0, 0, 9, 0, 0, 0, 19, 19, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 19, 0, 19, 0, 0, 0, 2, 2, 2, 2, 55, - 55, 55, 55, 2, 2, 2, 2, 2, 55, 55, 55, 55, 55, 55, 55, 61, - 2, 2, 2, 2, 2, 2, 2, 13, 13, 2, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 2, 2, 2, 2, 0, 0, 0, 0, 0, 13, 0, 13, 0, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 1, 12, 12, 13, - 13, 13, 13, 0, 0, 0, 0, 2, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 2, 2, 1, 1, 0, 0, 15, 15, 15, 17, - 17, 17, 0, 0, 17, 17, 17, 2, 2, 2, 2, 2, 26, 26, 26, 2, - 12, 12, 12, 12, 12, 12, 12, 2, 2, 2, 2, 2, 2, 2, 0, 12, - 12, 12, 12, 12, 12, 12, 0, 17, 17, 17, 17, 17, 17, 17, 0, 39, - 39, 39, 39, 39, 2, 2, 2, 39, 39, 39, 39, 39, 39, 39, 2, 77, - 77, 77, 77, 2, 2, 2, 2, 0, 0, 19, 19, 19, 19, 19, 19, 0, - 0, 0, 19, 19, 19, 19, 19, 2, 19, 19, 19, 19, 19, 19, 19, 60, - 60, 60, 60, 60, 2, 2, 2, 75, 75, 75, 75, 75, 75, 2, 2, 2, - 2, 2, 2, 2, 2, 75, 75, 75, 75, 2, 2, 2, 2, 2, 2, 69, - 69, 69, 69, 69, 69, 0, 69, 74, 74, 74, 74, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 74, 12, 12, 12, 12, 12, 2, 2, 2, 84, - 84, 84, 84, 84, 84, 2, 0, 84, 84, 2, 2, 2, 2, 84, 84, 33, - 33, 33, 33, 33, 33, 33, 2, 68, 68, 68, 68, 68, 68, 68, 2, 68, - 68, 68, 68, 68, 68, 2, 2, 68, 68, 2, 2, 68, 68, 68, 68, 92, - 92, 92, 2, 2, 2, 2, 2, 2, 2, 2, 92, 92, 92, 92, 92, 87, - 87, 87, 87, 87, 87, 87, 2, 19, 19, 19, 0, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 9, 19, 19, 19, 19, 0, 0, 2, 2, 2, 2, 87, - 87, 87, 87, 87, 87, 2, 2, 87, 87, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 12, 12, 12, 12, 12, 2, 2, 2, 4, 4, 4, 4, 4, 2, - 2, 2, 2, 2, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 2, 14, - 14, 14, 14, 14, 2, 14, 2, 14, 14, 2, 14, 14, 2, 14, 14, 3, - 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 1, 1, 1, 6, 6, 3, - 3, 3, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 0, 0, - 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 0, 0, 2, - 2, 12, 12, 12, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 49, - 49, 49, 49, 2, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 2, 49, - 49, 49, 2, 49, 49, 2, 49, 49, 49, 49, 2, 2, 2, 2, 2, 0, - 0, 0, 0, 2, 2, 2, 0, 9, 2, 2, 2, 2, 2, 2, 2, 0, - 0, 0, 0, 0, 1, 2, 2, 71, 71, 71, 71, 71, 2, 2, 2, 67, - 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 42, - 42, 42, 42, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42, 42, 42, 41, - 41, 41, 2, 2, 2, 2, 2,118,118,118, 2, 2, 2, 2, 2, 53, - 53, 53, 53, 53, 53, 2, 53, 59, 59, 59, 59, 2, 2, 2, 2, 59, - 59, 59, 59, 59, 59, 2, 2, 50, 50, 50, 50, 50, 50, 2, 2, 50, - 50, 2, 2, 2, 2, 2, 2,104,104,104,104, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2,104,161,161,161, 2,161,161, 2,161,161, - 161, 2,161,161, 2, 2, 2,170,170,170,170, 2, 2, 2, 2,110, - 110,110,110,110,110,110, 2,110,110,110,110,110,110, 2, 2, 19, - 19, 19, 19, 19, 19, 2, 19, 19, 2, 19, 19, 19, 19, 19, 19, 47, - 47, 47, 47, 47, 47, 2, 2, 47, 2, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 2, 47, 47, 2, 2, 2, 47, 2, 2, 47, 81, - 81, 81, 81, 81, 81, 2, 81,116,116,116,116,116,116,116, 2, 2, - 2, 2, 2, 2, 2, 2,116,128,128,128, 2,128,128, 2, 2, 2, - 2, 2,128,128,128,128,128, 66, 66, 66, 66, 2, 2, 2, 66, 72, - 72, 2, 2, 2, 2, 2, 72,173,173, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 97, 97, 97, 97, 2, 2, 97, 97, 97, 97, 97, 97, 57, - 57, 57, 57, 2, 57, 57, 2, 2, 2, 2, 2, 57, 57, 57, 57, 57, - 57, 57, 57, 2, 57, 57, 57, 2, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 2, 2, 57, 57, 57, 2, 2, 2, 2, 57, 2, - 2, 2,112,112,112,112,112, 78, 78, 78, 78, 78, 78, 2, 2, 2, - 78, 78, 78, 78, 78, 78, 78, 83, 83, 83, 83, 83, 83, 2, 2, 82, - 82, 82, 2, 2, 2, 2, 2,122,122, 2, 2, 2, 2, 2, 2, 2, - 122,122,122,122, 2, 2, 2, 2,122,122,122,122,122,122,122, 89, - 2, 2, 2, 2, 2, 2, 2, 2, 2,130,130,130,130,130,130,144, - 144, 2, 2, 2, 2, 2, 2, 2,165,165,165,165,165,165,165, 2, - 2, 2, 2, 2, 2,165,165, 3, 3, 3, 3, 3, 3, 3, 2,156, - 156, 2,156,156,156, 2, 2,156,156, 2, 2, 2, 2, 2, 2, 3, - 2, 2, 2, 2, 2, 2, 2,148,148, 2, 2, 2, 2, 2, 2,158, - 158, 2, 2, 2, 2, 2, 2,153,153,153,153, 2, 2, 2, 2,149, - 149,149,149,149,149,149, 2, 2, 2, 94, 94, 94, 94, 94, 94, 2, - 2, 2, 2, 2, 2, 2, 94, 85, 85, 85, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 85, 2, 2,101, 2, 2, 2, 2, 2, 2, 2,101, - 101, 2, 2, 2, 2, 2, 2, 96, 96, 96, 96, 96, 2, 96, 96,111, - 111,111,111,111,111,111, 2, 2, 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 2, 2, 2,108,108, 2,108,108,108,108,108,108, - 108, 2, 2, 2, 2, 2, 2,129,129,129,129,129,129,129, 2,129, - 2,129,129,129,129, 2,129,129,129,129,129,129,129, 2,129,129, - 129, 2, 2, 2, 2, 2, 2,109,109,109, 2, 2, 2, 2, 2,109, - 109, 2, 2, 2, 2, 2, 2,107,107,107,107, 2,107,107,107,107, - 2, 2,107,107,107,107,107,107, 2,107,107,107,107,107,107,107, - 2,107,107, 2,107,107,107,107,107, 2, 1,107,107,107,107,107, - 2, 2,107,107,107, 2, 2,107, 2, 2, 2, 2, 2, 2,107, 2, - 2, 2, 2, 2,107,107,107,107,107,107,107, 2, 2,107,107,171, - 171, 2,171, 2, 2,171, 2,171, 2,171, 2, 2,171, 2,171,171, - 171,171, 2,171,171,171,171,171, 2, 2, 2, 2, 2, 2, 2, 2, - 171,171, 2, 2, 2, 2, 2,137,137,137,137, 2,137,137,137,137, - 137, 2, 2, 2, 2, 2, 2,124,124, 2, 2, 2, 2, 2, 2,114, - 114,114,114,114, 2, 2, 2,114,114, 2, 2, 2, 2, 2, 2, 32, - 32, 32, 32, 32, 2, 2, 2, 33, 33, 33, 33, 2, 2, 2, 2,126, - 126,126, 2, 2,126,126,126,126,126,126,126, 2, 2, 2, 2,126, - 126,126,126,126,126,126, 2,142,142,142,142, 2, 2, 2, 2,125, - 125,125, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,125, 2, - 154, 2, 2,154,154,154,154,154,154,154,154, 2,154,154, 2,154, - 154,154,154,154,154, 2,154,154, 2, 2,154,154,154,154,154,154, - 154, 2, 2, 2, 2, 2, 2,150,150,150,150,150, 2, 2, 2,140, - 140,140, 2, 2, 2, 2, 2,121, 2, 2, 2, 2, 2, 2, 2, 7, - 7, 2, 2, 2, 2, 2, 2,133, 2,133,133,133,133,133,133,133, - 133,133,133,133,133,133, 2,133,133,133,133,133,133, 2, 2,133, - 133,133,133,133, 2, 2, 2, 2, 2,134,134,134,134,134,134, 2, - 134,134,134,134,134,134,134,134,134,134,134,134,134,134, 2,138, - 138, 2,138,138,138,138,138, 2, 2,138, 2,138,138, 2,138,138, - 138, 2, 2, 2, 2, 2, 2,143,143,143,143,143,143, 2,143,143, - 2,143,143,143,143,143,143,143,143,143,143,143,143,143, 2,143, - 143, 2,143,143,143,143,143,143, 2, 2, 2, 2, 2, 2, 2,143, - 143, 2, 2, 2, 2, 2, 2,175,175,175,175, 2, 2, 2, 2,175, - 175, 2, 2, 2, 2, 2, 2,145, 2, 2, 2, 2, 2, 2, 2,163, - 2,163,163,163,163,163,163,163,163,163, 2, 2, 2,163,163,163, - 163,163, 2, 2, 2, 2, 2, 86, 2, 2, 2, 2, 2, 2, 2, 22, - 22, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 22, 63, - 63, 2, 2, 2, 2, 2, 2, 63, 63, 63, 63, 63, 63, 63, 2, 63, - 63, 63, 63, 63, 2, 2, 2, 63, 63, 63, 63, 2, 2, 2, 2,157, - 157,157, 2, 2, 2, 2, 2, 80, 80, 80, 80, 80, 80, 2, 2, 80, - 80, 80, 2, 2, 2, 2, 2,127,127,127,127,127,127,127, 2,166, - 166, 2, 2, 2, 2, 2, 2, 79, 2, 2, 2, 2, 2, 2, 2,115, - 115,115,115,115,115,115, 2,115,115, 2, 2, 2, 2,115,115,159, - 159,159,159,159,159,159, 2,159,159, 2, 2, 2, 2, 2, 2,119, - 119,119,119,119,119, 2, 2, 2, 2, 2, 2, 2,119,119,119,167, - 167, 2, 2, 2, 2, 2, 2,146,146,146, 2, 2, 2, 2, 2,172, - 2, 2,172,172,172,172,172,172,172,172,172, 2, 2, 2, 2, 99, - 99, 99, 2, 2, 2, 2, 99, 2, 2, 2, 2, 2, 2, 2, 99,136, - 139, 13, 13,155, 2, 2, 2, 13, 13, 13, 13, 13, 13, 13, 2,155, - 155,155,155,155,155, 2, 2, 2, 2, 2, 2, 2, 2, 2,155,136, - 136,136,136,136,136,136, 2,136,136,136, 2, 2, 2, 2, 2, 17, - 17, 17, 17, 2, 17, 17, 17, 17, 17, 17, 17, 2, 17, 17, 2, 17, - 15, 15, 15, 15, 15, 15, 15, 17, 17, 17, 2, 2, 2, 2, 2, 2, - 2, 15, 2, 2, 2, 2, 2, 15, 15, 15, 2, 2, 17, 2, 2, 2, - 2, 2, 2, 17, 17, 17, 17,139,139,139,139, 2, 2, 2, 2,105, - 105,105, 2, 2, 2, 2, 2,105,105,105,105,105, 2, 2, 2,105, - 2, 2, 2, 2, 2, 2, 2,105,105, 2, 2,105,105,105,105, 1, - 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 0, 0, 2, 2, 0, 2, 2, 0, 0, 2, 2, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, - 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0,131, - 131,131,131, 2, 2, 2, 2, 2, 2, 2,131,131,131,131,131, 2, - 131,131,131,131,131,131,131, 2, 2, 2, 2, 2, 19, 19, 19, 56, - 56, 56, 56, 56, 56, 56, 2, 56, 2, 2, 56, 56, 56, 56, 56, 56, - 56, 2, 56, 56, 2, 56, 56, 56, 56, 56, 2, 2, 2, 2, 2, 6, - 6, 6, 6, 6, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6,151, - 151,151,151,151, 2, 2, 2,151,151,151,151,151,151, 2, 2,151, - 151, 2, 2, 2, 2,151,151,160,160,160,160,160,160,160, 2,152, - 152, 2, 2, 2, 2, 2,152,164,164, 2, 2, 2, 2, 2, 2,168, - 168,168, 2, 2, 2, 2,168,174,174,174,174,174,174,174, 2,174, - 174,174,174,174,174, 2, 2, 2, 2, 2, 2, 2, 2,174,174, 30, - 30, 30, 30, 2, 30, 30, 2,113,113,113,113,113, 2, 2,113,113, - 113,113,113,113,113,113, 2,132,132,132,132, 2, 2, 2, 2,132, - 132, 2, 2, 2, 2,132,132, 3, 3, 3, 3, 2, 3, 3, 3, 2, - 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 2, 2, 2, 2, 2, - 2, 3, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 2, - 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 2, 3, 2, 2, - 3, 3, 3, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 0, 15, 0, 0, 2, 2, 2, 2, 2, 0, - 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, - 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 13, - 2, 2, 2, 2, 2, 2, 2, 13, 13, 13, 2, 2, 2, 2, 2, 2, - 0, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 0, 0, 0, 0, 10, 0, 11, 12, 13, 0, 0, 0, 14, 0, 0, 15, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 17, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 19, - 20, 21, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 24, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 25, 26, 27, - 28, 29, 30, 0, 0, 31, 32, 0, 33, 0, 34, 0, 35, 0, 0, 0, - 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 43, 44, 0, 45, 0, 0, 0, 0, 0, - 0, 46, 47, 0, 0, 0, 0, 0, 48, 0, 49, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 0, 0, 52, 0, - 0, 53, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, - 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, - 65, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 67, 68, 0, 69, 70, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99,100,101,102,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0,105,106, - 0,107, 0, 0, 0,108, 0,109, 0,110, 0,111,112,113, 0,114, - 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0,117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,118,119,120,121, 0,122,123, - 124,125,126, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,128,129,130,131,132,133,134,135,136,137,138, - 139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154, - 155,156,157, 0, 0, 0,158,159,160,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,162, 0,163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,165, - 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, + 70, 2, 2, 2, 2, 2, 2, 2, 2, 13, 13, 13, 13, 13, 13, 13, + 13, 12, 12, 12, 12, 12, 12, 12, 12,178,178,178,178,178,178,178, + 178, 0, 0, 0, 0, 0, 0, 0, 0,136,136,136,136,136,136,136, + 136, 80, 80, 80, 80, 80, 80, 80, 80, 19, 19, 19, 19, 19, 19, 19, + 19, 63, 63, 63, 63, 63, 63, 63, 63, 3, 3, 3, 3, 3, 3, 3, + 3, 39, 39, 39, 39, 39, 39, 39, 39,176,176,176,176,176,176,176, + 176, 28, 28, 28, 28, 28, 28, 28, 28, 79, 79, 79, 79, 79, 79, 79, + 79,131,131,131,131,131,131,131,131, 1, 1, 1, 1, 1, 1, 1, + 1,127,127,127,127,127,127,127,127, 6, 6, 6, 6, 6, 6, 6, + 6,155,155,155,155,155,155,155,155,139,139,139,139,139,139,139, + 139, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, + 15, 30, 30, 30, 30, 30, 30, 30, 30,110,110,110,110,110,110,110, + 110, 77, 77, 77, 77, 77, 77, 77, 77, 17, 17, 17, 17, 17, 17, 17, + 17, 27, 27, 27, 27, 27, 27, 27, 27, 33, 33, 33, 33, 33, 33, 33, + 33,113,113,113,113,113,113,113,113, 49, 49, 49, 49, 49, 49, 49, + 49, 25, 25, 25, 25, 25, 25, 25, 25, 29, 29, 29, 29, 29, 29, 29, + 29,177,177,177,177,177,177,177,177, 7, 7, 7, 7, 7, 7, 7, + 7, 32, 32, 32, 32, 32, 32, 32, 32, 8, 8, 8, 8, 8, 8, 8, + 8, 99, 99, 99, 99, 99, 99, 99, 99, 31, 31, 31, 31, 31, 31, 31, + 31, 30, 30, 30, 30, 30, 30, 30, 2,105,105,105,105,105,105,105, + 105, 55, 55, 55, 55, 55, 55, 55, 55, 62, 62, 62, 62, 62, 62, 62, + 62, 0, 0, 0, 0, 2, 2, 2, 2, 56, 56, 56, 56, 56, 56, 56, + 56, 91, 91, 91, 91, 91, 91, 91, 91,100,100,100,100,100,100,100, + 100,119,119,119,119,119,119,119,119, 14, 14, 14, 14, 14, 14, 14, + 14,130,130,130,130,130,130,130,130, 94, 94, 94, 94, 94, 94, 94, + 94,157,157,157,157,157,157,157,157,137,137,137,137,137,137,137, + 137,146,146,146,146,146,146,146,146, 4, 4, 4, 4, 4, 4, 4, + 4, 20, 20, 20, 20, 20, 20, 20, 20, 35, 35, 35, 35, 35, 35, 35, + 35, 84, 84, 84, 84, 84, 84, 84, 84, 40, 40, 40, 40, 40, 40, 40, + 40, 97, 97, 97, 97, 97, 97, 97, 97,124,124,124,124,124,124,124, + 124,123,123,123,123,123,123,123,123,125,125,125,125,125,125,125, + 125,140,140,140,140,140,140,140,140,159,159,159,159,159,159,159, + 159,132,132,132,132,132,132,132,132, 37, 37, 37, 37, 37, 37, 37, + 37, 22, 22, 22, 22, 22, 22, 22, 22, 24, 24, 24, 24, 24, 24, 24, + 24, 58, 58, 58, 58, 58, 58, 58, 58, 76, 76, 76, 76, 76, 76, 76, + 76, 0, 0, 0, 0, 0, 0, 2, 2, 26, 26, 26, 26, 26, 26, 26, + 26, 75, 75, 75, 75, 75, 75, 75, 75, 89, 89, 89, 89, 89, 89, 89, + 89,114,114,114,114,114,114,114,114,141,141,141,141,141,141,141, + 141,133,133,133,133,133,133,133,133,163,163,163,163,163,163,163, + 163, 70, 70, 70, 70, 70, 70, 70, 70, 0, 0, 0, 0, 0, 2, 2, + 2, 68, 68, 68, 68, 68, 68, 68, 68, 92, 92, 92, 92, 92, 92, 92, + 92, 87, 87, 87, 87, 87, 87, 87, 87, 0, 0, 0, 0, 0, 0, 0, + 2,135,135,135,135,135,135,135,135, 85, 85, 85, 85, 85, 85, 85, + 85, 96, 96, 96, 96, 96, 96, 96, 96,109,109,109,109,109,109,109, + 109,102,102,102,102,102,102,102,102, 64, 64, 64, 64, 64, 64, 64, + 64, 0, 0, 2, 2, 2, 2, 2, 2, 61, 61, 61, 61, 61, 61, 61, + 61, 65, 65, 65, 65, 65, 65, 65, 65,108,108,108,108,108,108,108, + 108,142,142,142,142,142,142,142,142,121,121,121,121,121,121,121, + 121,166,166,166,166,166,166,166,166,167,167,167,167,167,167,167, + 167,151,151,151,151,151,151,151,151,152,152,152,152,152,152,152, + 152, 38, 38, 38, 38, 38, 38, 38, 38, 90, 90, 90, 90, 90, 90, 90, + 90, 23, 23, 23, 23, 23, 23, 23, 23, 36, 36, 36, 36, 36, 36, 36, + 36, 30, 2, 30, 30, 30, 30, 2, 2, 48, 48, 48, 48, 48, 48, 48, + 48, 93, 93, 93, 93, 93, 93, 93, 93, 73, 73, 73, 73, 73, 73, 73, + 73, 9, 9, 9, 9, 9, 9, 2, 2, 86, 86, 86, 86, 86, 86, 86, + 86, 2, 0, 0, 0, 0, 0, 0, 0, 67, 67, 67, 67, 67, 67, 67, + 67, 51, 51, 51, 51, 51, 51, 51, 51,104,104,104,104,104,104,104, + 104,170,170,170,170,170,170,170,170, 78, 78, 78, 78, 78, 78, 78, + 78,144,144,144,144,144,144,144,144,165,165,165,165,165,165,165, + 165,171,171,171,171,171,171,171,171,126,126,126,126,126,126,126, + 126,150,150,150,150,150,150,150,150,134,134,134,134,134,134,134, + 134,138,138,138,138,138,138,138,138,175,175,175,175,175,175,175, + 175, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 2, 0, + 0, 13, 13, 13, 13, 13, 13, 2, 2, 60, 60, 60, 60, 60, 60, 60, + 60, 69, 69, 69, 69, 69, 69, 69, 69,118,118,118,118,118,118,118, + 118, 59, 59, 59, 59, 59, 59, 59, 59,106,106,106,106,106,106,106, + 106,156,156,156,156,156,156,156,156,147,147,147,147,147,147,147, + 147,148,148,148,148,148,148,148,148,169,169,169,169,169,169,169, + 169,172,172,172,172,172,172,172,172,164,164,164,164,164,164,164, + 164,168,168,168,168,168,168,168,168,174,174,174,174,174,174,174, + 174, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, + 0, 5, 5, 5, 5, 5, 5, 5, 5, 21, 21, 21, 21, 21, 21, 21, + 21, 16, 16, 16, 16, 16, 16, 16, 16, 12, 12, 12, 12, 12, 12, 12, + 2, 74, 74, 74, 74, 74, 74, 74, 74, 42, 42, 42, 42, 42, 42, 42, + 42, 50, 50, 50, 50, 50, 50, 50, 50,161,161,161,161,161,161,161, + 161, 47, 47, 47, 47, 47, 47, 47, 47,120,120,120,120,120,120,120, + 120,116,116,116,116,116,116,116,116, 98, 98, 98, 98, 98, 98, 98, + 98, 57, 57, 57, 57, 57, 57, 57, 57, 88, 88, 88, 88, 88, 88, 88, + 88,117,117,117,117,117,117,117,117,112,112,112,112,112,112,112, + 112,101,101,101,101,101,101,101,101,111,111,111,111,111,111,111, + 111,154,154,154,154,154,154,154,154,143,143,143,143,143,143,143, + 143,115,115,115,115,115,115,115,115, 0, 0, 19, 0, 0, 0, 0, + 0, 95, 95, 95, 95, 95, 95, 95, 95, 11, 11, 11, 11, 11, 11, 11, + 11, 10, 10, 10, 10, 10, 10, 10, 10, 22, 22, 22, 2, 2, 2, 22, + 22, 2, 25, 25, 25, 25, 25, 25, 25, 34, 34, 34, 34, 34, 34, 34, + 34, 52, 52, 52, 52, 52, 52, 52, 52, 54, 54, 54, 54, 54, 54, 54, + 54, 0, 0, 0, 2, 2, 2, 2, 2, 2, 30, 30, 30, 30, 30, 30, + 2, 2, 2, 12, 12, 12, 12, 12, 12, 71, 71, 71, 71, 71, 71, 71, + 71, 41, 41, 41, 41, 41, 41, 41, 41, 53, 53, 53, 53, 53, 53, 53, + 53, 81, 81, 81, 81, 81, 81, 81, 81, 66, 66, 66, 66, 66, 66, 66, + 66, 72, 72, 72, 72, 72, 72, 72, 72,173,173,173,173,173,173,173, + 173, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82, 82, 82, + 82,158,158,158,158,158,158,158,158,153,153,153,153,153,153,153, + 153,145,145,145,145,145,145,145,145,103,103,103,103,103,103,103, + 103, 0, 2, 2, 2, 2, 2, 2, 2,160,160,160,160,160,160,160, + 160, 2, 3, 3, 2, 3, 2, 2, 3, 3, 3, 3, 2, 3, 3, 3, + 3, 19, 19, 19, 19, 19, 19, 19, 0, 3, 3, 3, 3, 3, 0, 3, + 3, 5, 5, 5, 5, 5, 2, 2, 5, 11, 11, 11, 2, 2, 2, 2, + 11, 10, 10, 10, 10, 10, 10, 2, 10, 21, 21, 21, 21, 21, 2, 2, + 21, 22, 2, 22, 22, 22, 22, 2, 2, 23, 23, 23, 23, 23, 2, 23, + 23, 23, 2, 23, 23, 23, 23, 23, 23, 16, 16, 16, 16, 16, 2, 16, + 16, 16, 2, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 2, 20, + 20, 20, 2, 20, 20, 20, 20, 20, 20, 36, 36, 36, 36, 36, 36, 36, + 2, 25, 25, 25, 25, 25, 2, 25, 25, 8, 8, 8, 8, 8, 8, 2, + 8, 2, 2, 2, 2, 2, 8, 2, 2, 29, 29, 29, 29, 29, 29, 2, + 2, 45, 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, + 44, 43, 43, 43, 43, 43, 43, 43, 43, 31, 31, 2, 2, 2, 2, 2, + 2, 48, 48, 48, 48, 2, 2, 2, 2, 91, 91, 2, 2, 2, 2, 2, + 2, 1, 2, 2, 2, 2, 2, 2, 2, 9, 9, 9, 9, 9, 2, 9, + 9, 9, 9, 9, 9, 9, 9, 9, 2, 0, 0, 0, 0, 2, 2, 0, + 0, 2, 2, 2, 2, 2, 2, 2, 61, 0, 17, 17, 17, 17, 17, 17, + 17, 12, 12, 12, 12, 2, 2, 2, 2, 13, 13, 2, 2, 2, 2, 2, + 2, 19, 19, 19, 19, 19, 19, 19, 2, 0, 0, 0, 2, 0, 0, 0, + 0, 49, 49, 49, 49, 49, 49, 2, 2, 0, 0, 0, 0, 2, 2, 2, + 0, 1, 0, 0, 0, 0, 0, 0, 0,135,135,135,135, 2, 2, 2, + 2,161,161,161, 2,161,161,161,161,161,161, 2,161,161,161,161, + 161,128,128,128,128,128,128,128,128, 57, 2, 2, 2, 2, 2, 2, + 2,112,112,112,112,112,112,112, 2,122,122,122,122,122,122,122, + 122,130,130,130, 2, 2, 2, 2, 2,165,165,165,165,165,165, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, + 3,149,149,149,149,149,149,149,149, 94, 94, 94, 94, 94, 94, 2, + 2,129,129,129,129,129,129,129,129,107,107,107,107,107, 2, 2, + 107,107,107,107,107,107,107,107,107,107,107,107,107,107, 2, 2, + 2,171,171,171,171,171,171, 2,171,123,123,123,123,123,123, 2, + 2,102,102, 2, 2, 2, 2, 2, 2,154,154,154,154,154,154,154, + 2, 2, 2,150,150,150,150,150,150,169,169, 2, 2, 2, 2, 2, + 2,138,138,138,138,138,138,138, 2,103,103,103,103,103,103, 2, + 2,119,119, 2,119,119,119,119,119, 13, 13, 13, 13, 13, 13, 13, + 2, 17, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, + 0, 3, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, + 2, 19, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19, 19, 19, 0, 0, + 0, 0, 0, 26, 26, 0, 0, 0, 0, 9, 9, 9, 9, 0, 9, 9, + 9, 2, 2, 9, 9, 9, 9, 0, 9, 2, 2, 2, 2, 9, 0, 9, + 0, 9, 9, 9, 2, 9, 2, 9, 9, 9, 9, 2, 9, 9, 9, 9, + 9, 9, 9, 55, 55, 55, 55, 55, 55, 6, 6, 6, 6, 6, 1, 1, + 6, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 14, 14, 14, 14, 14, 14, 14, 14, 14, 2, 2, 2, 2, 2, + 2, 14, 14, 14, 2, 2, 2, 2, 14, 14, 14, 14, 14, 14, 2, 2, + 2, 3, 3, 3, 3, 0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 3, + 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 3, 3, 3, 3, 3, 3, + 3, 37, 37, 37, 37, 37, 37, 2, 37, 37, 37, 37, 2, 2, 37, 37, + 37, 38, 38, 2, 2, 2, 2, 2, 2, 64, 64, 64, 2, 2, 64, 64, + 64, 90, 90, 90, 90, 90, 90, 2, 2, 90, 90, 90, 90, 90, 90, 90, + 2, 95, 95, 95, 95, 2, 2, 95, 2, 37, 37, 37, 2, 2, 2, 2, + 2, 3, 3, 2, 2, 2, 2, 2, 3, 3, 3, 0, 3, 3, 3, 3, + 3, 7, 1, 1, 1, 1, 7, 7, 7, 7, 7, 7, 7, 0, 0, 7, + 7, 5, 5, 5, 5, 2, 5, 5, 5, 5, 2, 2, 5, 5, 5, 5, + 5, 5, 2, 5, 5, 5, 5, 5, 5, 5, 2, 5, 2, 2, 2, 5, + 5, 5, 5, 2, 2, 5, 5, 5, 5, 5, 2, 2, 5, 5, 5, 5, + 2, 2, 2, 2, 2, 2, 2, 2, 5, 2, 2, 2, 2, 5, 5, 2, + 5, 5, 5, 5, 5, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 2, 2, 11, 11, 11, 2, 11, 11, 11, 11, 2, 2, 11, 11, 11, 11, + 11, 11, 2, 11, 11, 11, 11, 11, 11, 11, 2, 11, 11, 2, 11, 11, + 2, 11, 11, 2, 2, 11, 2, 11, 11, 11, 2, 2, 11, 11, 11, 2, + 2, 2, 11, 2, 2, 2, 2, 2, 2, 2, 11, 11, 11, 11, 2, 11, + 2, 2, 2, 2, 2, 2, 2, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 2, 2, 10, 10, 10, 2, 10, 10, 10, 10, 10, 2, 10, 10, 10, 10, + 10, 10, 2, 10, 10, 10, 10, 10, 10, 10, 2, 10, 10, 2, 10, 10, + 10, 10, 10, 2, 2, 10, 10, 10, 10, 10, 10, 2, 10, 10, 10, 2, + 2, 10, 2, 2, 2, 2, 2, 2, 2, 10, 10, 10, 10, 2, 2, 10, + 10, 10, 10, 2, 2, 2, 2, 2, 2, 2, 10, 10, 10, 10, 10, 10, + 10, 2, 21, 21, 21, 2, 21, 21, 21, 21, 2, 2, 21, 21, 21, 21, + 21, 21, 2, 21, 21, 21, 21, 21, 21, 21, 2, 21, 21, 2, 21, 21, + 21, 21, 21, 2, 2, 21, 21, 21, 21, 21, 2, 2, 21, 21, 21, 2, + 2, 2, 2, 2, 21, 21, 21, 21, 21, 2, 2, 2, 2, 21, 21, 2, + 21, 21, 21, 21, 21, 2, 2, 21, 21, 2, 2, 22, 22, 2, 22, 22, + 22, 2, 22, 22, 2, 22, 2, 22, 22, 2, 2, 2, 22, 22, 2, 2, + 2, 22, 22, 2, 2, 2, 2, 22, 22, 22, 2, 2, 2, 2, 2, 2, + 22, 2, 2, 2, 2, 2, 2, 22, 22, 22, 22, 22, 2, 2, 2, 2, + 2, 23, 23, 2, 2, 23, 23, 23, 23, 23, 2, 23, 23, 23, 23, 2, + 2, 2, 2, 2, 2, 2, 23, 23, 2, 23, 23, 23, 2, 23, 23, 2, + 2, 23, 23, 23, 23, 2, 2, 23, 23, 2, 2, 2, 2, 2, 2, 2, + 23, 16, 16, 16, 16, 2, 16, 16, 16, 16, 16, 2, 2, 16, 16, 16, + 16, 16, 2, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 16, 16, + 2, 2, 2, 2, 2, 16, 16, 16, 2, 16, 16, 16, 16, 2, 2, 16, + 16, 2, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 20, 20, 20, + 20, 20, 20, 20, 20, 2, 2, 20, 20, 2, 36, 36, 36, 2, 36, 36, + 36, 2, 2, 36, 36, 36, 36, 36, 36, 36, 36, 2, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 2, 36, 2, 2, 2, 2, 36, 2, 2, 2, 2, + 36, 36, 36, 36, 36, 36, 2, 36, 2, 2, 2, 2, 2, 2, 2, 36, + 36, 2, 2, 36, 36, 36, 2, 2, 2, 2, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 2, 2, 2, 2, 0, 24, 24, 24, 24, 2, 2, 2, + 2, 2, 18, 18, 2, 18, 2, 18, 18, 18, 18, 18, 2, 18, 18, 18, + 18, 18, 18, 18, 18, 2, 18, 2, 18, 18, 18, 18, 18, 18, 18, 2, + 2, 18, 18, 18, 18, 18, 2, 18, 2, 18, 18, 18, 18, 18, 18, 18, + 2, 18, 18, 2, 2, 18, 18, 18, 18, 25, 25, 25, 25, 25, 2, 2, + 2, 25, 25, 25, 25, 25, 0, 0, 0, 0, 25, 25, 2, 2, 2, 2, + 2, 8, 8, 8, 0, 8, 8, 8, 8, 30, 30, 30, 2, 2, 30, 30, + 30, 30, 30, 30, 30, 30, 2, 2, 2, 30, 30, 2, 2, 2, 2, 2, + 2, 34, 34, 34, 34, 34, 2, 2, 2, 35, 35, 35, 0, 0, 0, 35, + 35, 35, 2, 2, 2, 2, 2, 2, 2, 45, 45, 45, 45, 45, 45, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 45, 44, 44, 44, 44, 44, 0, 0, + 2, 43, 43, 43, 43, 2, 2, 2, 2, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 46, 2, 46, 46, 46, 2, 46, 46, 2, 2, 2, + 2, 31, 31, 31, 31, 31, 31, 2, 2, 32, 32, 0, 0, 32, 0, 32, + 32, 32, 32, 2, 2, 2, 2, 2, 2, 32, 2, 2, 2, 2, 2, 2, + 2, 32, 32, 32, 2, 2, 2, 2, 2, 28, 28, 28, 28, 28, 28, 2, + 2, 48, 48, 48, 48, 48, 48, 48, 2, 48, 2, 2, 2, 48, 48, 48, + 48, 52, 52, 52, 52, 52, 52, 2, 2, 52, 52, 52, 52, 52, 2, 2, + 2, 58, 58, 58, 58, 2, 2, 2, 2, 58, 58, 2, 2, 2, 2, 2, + 2, 58, 58, 58, 2, 2, 2, 58, 58, 54, 54, 54, 54, 2, 2, 54, + 54, 91, 91, 91, 91, 91, 91, 91, 2, 91, 91, 91, 91, 91, 2, 2, + 91, 91, 91, 91, 91, 91, 91, 2, 2, 62, 62, 62, 62, 62, 2, 62, + 62, 93, 93, 93, 93, 2, 2, 2, 2, 2, 2, 2, 2, 93, 93, 93, + 93, 2, 2, 2, 70, 70, 70, 70, 70, 70, 70, 2, 2, 2, 70, 70, + 70, 6, 6, 6, 2, 2, 2, 2, 2, 8, 8, 8, 2, 2, 8, 8, + 8, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, + 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, + 0, 1, 1, 0, 2, 2, 2, 2, 2, 19, 19, 19, 19, 19, 19, 9, + 9, 9, 9, 9, 6, 19, 19, 19, 19, 19, 19, 19, 19, 19, 9, 9, + 9, 9, 9, 19, 19, 19, 19, 9, 9, 9, 9, 9, 19, 19, 19, 19, + 19, 6, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 9, 2, 9, 2, 9, 2, 9, 2, 9, 9, 9, 9, 9, 2, 2, 9, + 9, 9, 9, 9, 9, 2, 9, 9, 9, 2, 2, 9, 9, 9, 2, 9, + 9, 0, 0, 0, 0, 1, 1, 0, 0, 0, 19, 2, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 9, + 0, 0, 0, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, + 0, 19, 0, 0, 0, 2, 2, 2, 2, 55, 55, 55, 55, 2, 2, 2, + 2, 2, 55, 55, 55, 55, 55, 55, 55, 61, 2, 2, 2, 2, 2, 2, + 2, 13, 13, 2, 13, 13, 13, 13, 13, 13, 13, 13, 13, 2, 2, 2, + 2, 0, 0, 0, 0, 0, 13, 0, 13, 0, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 1, 1, 1, 1, 12, 12, 13, 13, 13, 13, 0, 0, 0, + 0, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 2, 2, 1, 1, 0, 0, 15, 15, 15, 17, 17, 17, 0, 0, 17, 17, + 17, 2, 2, 2, 2, 2, 26, 26, 26, 2, 12, 12, 12, 12, 12, 12, + 12, 2, 2, 2, 2, 2, 2, 2, 0, 12, 12, 12, 12, 12, 12, 12, + 0, 17, 17, 17, 17, 17, 17, 17, 0, 39, 39, 39, 39, 39, 2, 2, + 2, 39, 39, 39, 39, 39, 39, 39, 2, 77, 77, 77, 77, 2, 2, 2, + 2, 0, 0, 19, 19, 19, 19, 19, 19, 0, 0, 0, 19, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 2, 2, 2, 2, 19, 2, 2, 2, 2, + 2, 2, 19, 19, 19, 19, 19, 19, 19, 60, 60, 60, 60, 60, 2, 2, + 2, 75, 75, 75, 75, 75, 75, 2, 2, 2, 2, 2, 2, 2, 2, 75, + 75, 75, 75, 2, 2, 2, 2, 2, 2, 69, 69, 69, 69, 69, 69, 0, + 69, 74, 74, 74, 74, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 74, 12, 12, 12, 12, 12, 2, 2, 2, 84, 84, 84, 84, 84, 84, 2, + 0, 84, 84, 2, 2, 2, 2, 84, 84, 33, 33, 33, 33, 33, 33, 33, + 2, 68, 68, 68, 68, 68, 68, 68, 2, 68, 68, 68, 68, 68, 68, 2, + 2, 68, 68, 2, 2, 68, 68, 68, 68, 92, 92, 92, 2, 2, 2, 2, + 2, 2, 2, 2, 92, 92, 92, 92, 92, 87, 87, 87, 87, 87, 87, 87, + 2, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 9, 19, + 19, 19, 19, 0, 0, 19, 19, 2, 2, 87, 87, 87, 87, 87, 87, 2, + 2, 87, 87, 2, 2, 2, 2, 2, 2, 2, 2, 2, 12, 12, 12, 12, + 12, 2, 2, 2, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 2, 14, 14, 14, 14, 14, 2, 14, + 2, 14, 14, 2, 14, 14, 2, 14, 14, 3, 3, 3, 3, 3, 3, 0, + 0, 1, 1, 1, 1, 1, 1, 6, 6, 3, 3, 3, 3, 3, 2, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 17, + 17, 17, 17, 17, 17, 17, 17, 0, 0, 2, 2, 12, 12, 12, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 2, 2, 49, 49, 49, 49, 2, 49, 49, + 49, 49, 49, 49, 49, 49, 49, 49, 2, 49, 49, 49, 2, 49, 49, 2, + 49, 49, 49, 49, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, + 0, 9, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 2, + 2, 71, 71, 71, 71, 71, 2, 2, 2, 67, 2, 2, 2, 2, 2, 2, + 2, 42, 42, 42, 42, 2, 2, 2, 2, 2, 2, 2, 2, 2, 42, 42, + 42, 41, 41, 41, 2, 2, 2, 2, 2,118,118,118, 2, 2, 2, 2, + 2, 53, 53, 53, 53, 53, 53, 2, 53, 59, 59, 59, 59, 2, 2, 2, + 2, 59, 59, 59, 59, 59, 59, 2, 2, 50, 50, 50, 50, 50, 50, 2, + 2, 50, 50, 2, 2, 2, 2, 2, 2,104,104,104,104, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2,104,161,161,161, 2,161,161, 2, + 161,161,161, 2,161,161, 2, 2, 2,170,170,170,170, 2, 2, 2, + 2,110,110,110,110,110,110,110, 2,110,110,110,110,110,110, 2, + 2, 19, 19, 19, 19, 19, 19, 2, 19, 19, 2, 19, 19, 19, 19, 19, + 19, 47, 47, 47, 47, 47, 47, 2, 2, 47, 2, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 2, 47, 47, 2, 2, 2, 47, 2, 2, + 47, 81, 81, 81, 81, 81, 81, 2, 81,116,116,116,116,116,116,116, + 2, 2, 2, 2, 2, 2, 2, 2,116,128,128,128, 2,128,128, 2, + 2, 2, 2, 2,128,128,128,128,128, 66, 66, 66, 66, 2, 2, 2, + 66, 72, 72, 2, 2, 2, 2, 2, 72,173,173, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 97, 97, 97, 97, 2, 2, 97, 97, 97, 97, 97, + 97, 57, 57, 57, 57, 2, 57, 57, 2, 2, 2, 2, 2, 57, 57, 57, + 57, 57, 57, 57, 57, 2, 57, 57, 57, 2, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 57, 2, 2, 57, 57, 57, 2, 2, 2, 2, + 57, 2, 2, 2,112,112,112,112,112, 78, 78, 78, 78, 78, 78, 2, + 2, 2, 78, 78, 78, 78, 78, 78, 78, 83, 83, 83, 83, 83, 83, 2, + 2, 82, 82, 82, 2, 2, 2, 2, 2,122,122, 2, 2, 2, 2, 2, + 2, 2,122,122,122,122, 2, 2, 2, 2,122,122,122,122,122,122, + 122, 89, 2, 2, 2, 2, 2, 2, 2, 2, 2,130,130,130,130,130, + 130,144,144, 2, 2, 2, 2, 2, 2, 2,165,165,165,165,165,165, + 165, 2, 2, 2, 2, 2, 2,165,165,156,156, 2,156,156,156, 2, + 2,156,156, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, + 3,148,148, 2, 2, 2, 2, 2, 2,158,158, 2, 2, 2, 2, 2, + 2,153,153,153,153, 2, 2, 2, 2,149,149,149,149,149,149,149, + 2, 2, 2, 94, 94, 94, 94, 94, 94, 2, 2, 2, 2, 2, 2, 2, + 94, 85, 85, 85, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 85, 2, + 2,101, 2, 2, 2, 2, 2, 2, 2,101,101, 2, 2, 2, 2, 2, + 2, 96, 96, 96, 96, 96, 2, 96, 96,111,111,111,111,111,111,111, + 2, 2, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 2, 2, + 2,108,108, 2,108,108,108,108,108,108,108, 2, 2, 2, 2, 2, + 2,129,129,129,129,129,129,129, 2,129, 2,129,129,129,129, 2, + 129,129,129,129,129,129,129, 2,129,129,129, 2, 2, 2, 2, 2, + 2,109,109,109, 2, 2, 2, 2, 2,109,109, 2, 2, 2, 2, 2, + 2,107,107,107,107, 2,107,107,107,107, 2, 2,107,107,107,107, + 107,107, 2,107,107,107,107,107,107,107, 2,107,107, 2,107,107, + 107,107,107, 2, 1,107,107,107,107,107, 2, 2,107,107,107, 2, + 2,107, 2, 2, 2, 2, 2, 2,107, 2, 2, 2, 2, 2,107,107, + 107,107,107,107,107, 2, 2,107,107,171,171, 2,171, 2, 2,171, + 2,171, 2,171, 2, 2,171, 2,171,171,171,171, 2,171,171,171, + 171,171, 2, 2, 2, 2, 2, 2, 2, 2,171,171, 2, 2, 2, 2, + 2,137,137,137,137, 2,137,137,137,137,137, 2, 2, 2, 2, 2, + 2,124,124, 2, 2, 2, 2, 2, 2,114,114,114,114,114, 2, 2, + 2,114,114, 2, 2, 2, 2, 2, 2, 32, 32, 32, 32, 32, 2, 2, + 2, 33, 33, 33, 33, 2, 2, 2, 2,126,126,126, 2, 2,126,126, + 126,126,126,126,126, 2, 2, 2, 2,126,126,126,126,126,126,126, + 2,142,142,142,142, 2, 2, 2, 2,125,125,125, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2,125, 2,154, 2, 2,154,154,154, + 154,154,154,154,154, 2,154,154, 2,154,154,154,154,154,154, 2, + 154,154, 2, 2,154,154,154,154,154,154,154, 2, 2, 2, 2, 2, + 2,150,150,150,150,150, 2, 2, 2,140,140,140, 2, 2, 2, 2, + 2,121, 2, 2, 2, 2, 2, 2, 2, 7, 7, 7, 2, 2, 2, 2, + 2,133, 2,133,133,133,133,133,133,133,133,133,133,133,133,133, + 2,133,133,133,133,133,133, 2, 2,133,133,133,133,133, 2, 2, + 2, 2, 2,134,134,134,134,134,134, 2,134,134,134,134,134,134, + 134,134,134,134,134,134,134,134, 2,138,138, 2,138,138,138,138, + 138, 2, 2,138, 2,138,138, 2,138,138,138, 2, 2, 2, 2, 2, + 2,143,143,143,143,143,143, 2,143,143, 2,143,143,143,143,143, + 143,143,143,143,143,143,143,143, 2,143,143, 2,143,143,143,143, + 143,143, 2, 2, 2, 2, 2, 2, 2,143,143, 2, 2, 2, 2, 2, + 2,175,175,175,175, 2, 2, 2, 2,175,175, 2, 2, 2, 2, 2, + 2, 5, 5, 2, 2, 2, 2, 2, 2,145, 2, 2, 2, 2, 2, 2, + 2,163, 2,163,163,163,163,163,163,163,163,163, 2, 2, 2,163, + 163,163,163,163, 2, 2, 2, 2, 2, 86, 2, 2, 2, 2, 2, 2, + 2, 22, 22, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 22, 63, 63, 2, 2, 2, 2, 2, 2, 63, 63, 63, 63, 2, 2, 2, + 2,177,177,177,177, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, + 2,157,157,157, 2, 2, 2, 2, 2, 80, 80, 80, 80, 80, 80, 2, + 2, 80, 80, 80, 2, 2, 2, 2, 2,127,127,127,127,127,127,127, + 2,166,166, 2, 2, 2, 2, 2, 2, 79, 2, 2, 2, 2, 2, 2, + 2,115,115,115,115,115,115,115, 2,115,115, 2, 2, 2, 2,115, + 115,159,159,159,159,159,159,159, 2,159,159, 2, 2, 2, 2, 2, + 2,119,119,119,119,119,119, 2, 2, 2, 2, 2, 2, 2,119,119, + 119,167,167, 2, 2, 2, 2, 2, 2,146,146,146, 2, 2, 2, 2, + 2,172, 2, 2,172,172,172,172,172,172,172,172,172, 2, 2, 2, + 2, 99, 99, 99, 2, 2, 2, 2, 99, 2, 2, 2, 2, 2, 2, 2, + 99,136,139, 13, 13,155, 2, 2, 2,155,155,155, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2,155,136, 2, 2, 2, 2, 2, 2, + 2,136,136,136, 2, 2, 2, 2, 2,176,176, 2, 2, 2, 2, 2, + 2,176,176,176, 2, 2, 2, 2, 2, 17, 17, 17, 17, 2, 17, 17, + 17, 17, 17, 17, 17, 2, 17, 17, 2, 17, 15, 15, 15, 15, 15, 15, + 15, 17, 17, 17, 15, 17, 17, 17, 17, 2, 2, 15, 2, 2, 2, 2, + 2, 15, 15, 15, 2, 2, 17, 2, 2, 2, 2, 2, 2, 17, 17, 17, + 17,139,139,139,139, 2, 2, 2, 2,105,105,105, 2, 2, 2, 2, + 2,105,105,105,105,105, 2, 2, 2,105, 2, 2, 2, 2, 2, 2, + 2,105,105, 2, 2,105,105,105,105, 0, 2, 0, 0, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, + 0, 0, 0, 0, 1, 1, 0, 0, 0, 2, 2, 0, 2, 2, 0, 0, + 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, + 2, 0, 2, 0, 0, 0, 0, 0, 0,131,131,131,131, 2, 2, 2, + 2, 2, 2, 2,131,131,131,131,131, 2,131,131,131,131,131,131, + 131, 19, 19, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 19, + 19, 19, 19, 19, 9, 9, 19, 19, 19, 56, 56, 56, 56, 56, 56, 56, + 2, 56, 2, 2, 56, 56, 56, 56, 56, 56, 56, 2, 56, 56, 2, 56, + 56, 56, 56, 56, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 6,151,151,151,151,151, 2, 2, + 2,151,151,151,151,151,151, 2, 2,151,151, 2, 2, 2, 2,151, + 151,160,160,160,160,160,160,160, 2,152,152, 2, 2, 2, 2, 2, + 152,164,164, 2, 2, 2, 2, 2, 2,168,168,168, 2, 2, 2, 2, + 168,174,174,174,174,174,174,174, 2,174,174,174,174,174,174, 2, + 2, 2, 2, 2, 2, 2, 2,174,174, 30, 30, 30, 30, 2, 30, 30, + 2,113,113,113,113,113, 2, 2,113,113,113,113,113,113,113,113, + 2,132,132,132,132, 2, 2, 2, 2,132,132, 2, 2, 2, 2,132, + 132, 3, 3, 3, 3, 2, 3, 3, 3, 2, 3, 2, 3, 2, 2, 2, + 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 3, + 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 2, 3, + 2, 2, 3, 3, 3, 2, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 15, 0, 0, 2, 2, 2, 2, + 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, + 0, 13, 2, 2, 2, 2, 2, 2, 2, 13, 13, 13, 2, 2, 2, 2, + 2, 2, 0, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 0, 0, 0, 0, 10, 0, 11, 12, 13, 0, 0, 0, 14, 0, + 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 17, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 0, 19, 20, 21, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, + 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 24, 25, + 26, 27, 28, 29, 30, 0, 0, 31, 32, 0, 33, 0, 34, 0, 35, 0, + 0, 0, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 44, 0, 45, 0, 0, 0, + 0, 0, 0, 46, 47, 0, 0, 0, 0, 0, 48, 0, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, 0, 0, + 52, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, + 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 59, 60, 61, 62, + 63, 64, 65, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, 69, 70, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99,100,101,102,103, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 0, 0, 0, 0, 0, 0, + 105,106, 0,107, 0, 0, 0,108, 0,109, 0,110, 0,111,112,113, + 0,114, 0, 0, 0,115, 0, 0, 0,116, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118,119,120,121, 0, + 122,123,124,125,126, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 0, 0, 0,168,169, 0, - 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,128,129,130,131,132,133,134,135,136, + 137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152, + 153,154,155,156,157, 0, 0, 0,158,159,160,161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,175, 0, 0, 0, 0, + 0, 0, 0,162, 0,163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 164,165, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,177, 0, 0, 0, 0, - 178,179, 0, 0, 0,180,181,182,183,184,185,186,187,188,189,190, - 191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, - 207,208,209,210,211,212,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,167, 0, 0, 0,168, + 169, 0, 0,170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,175, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176,177, 0, 0, + 0, 0,178,179, 0, 0, 0,180,181,182,183,184,185,186,187,188, + 189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204, + 205,206,207,208,209,210,211,212,213, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, ]; #[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason)] -static _hb_ucd_u16: [u16; 10784]= +static _hb_ucd_u16: [u16; 11240]= [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2022,687 +2035,708 @@ static _hb_ucd_u16: [u16; 10784]= 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 224, 224, 768, 424, 432, 440, 448, 776, 224, 224, 784, 792, 72, 800, 40, 808, - 48, 48, 48, 816, 824, 48, 48, 832, 840, 848, 856, 864, 872, 880, 48, 888, - 48, 48, 48, 896, 904, 40, 40, 40, 40, 912, 40, 96, 920, 928, 936, 456, - 64, 64, 64, 64, 64, 64, 64, 944, 952, 960, 968, 40, 976, 984, 48, 992, - 72, 72, 72, 40, 40, 40, 48, 48,1000, 48, 48, 48,1008, 48, 48, 48, - 48, 48, 48,1016, 72,1024, 40, 40,1032, 464, 64,1040,1048, 8,1056,1064, - 1072,1080, 8, 8,1088, 64,1096,1104, 8, 8, 8, 8, 8,1112,1120,1128, - 1136,1144, 8, 64,1152, 8, 8, 8, 8, 8, 472,1160, 232, 8,1168,1176, - 8,1184,1192,1200, 8,1208, 176, 8,1216,1224, 8, 8,1232, 64,1240, 64, - 480, 8, 8,1248,1256,1264,1272,1280,1288, 240, 128,1296,1304,1312, 144,1320, - 1328, 240, 128,1336,1344,1352, 304,1360,1368, 488, 128,1376,1384, 248, 144,1392, - 1400, 240, 128,1408,1416,1424, 144,1432,1440,1448,1456,1464,1472,1480, 304,1488, - 1496, 256, 128,1504,1512,1520, 144,1528,1536, 256, 128,1544,1552,1560, 144,1568, - 1576, 256, 8,1584,1592,1600, 144,1608,1616,1624, 8,1632,1640,1648, 304,1656, + 232, 232, 776, 416, 424, 432, 440, 784, 232, 232, 792, 800, 72, 808, 40, 816, + 64, 64, 64, 824, 832, 64, 64, 840, 848, 856, 864, 872, 880, 888, 64, 896, + 64, 64, 64, 904, 912, 40, 40, 40, 40, 920, 40, 104, 928, 936, 944, 448, + 48, 48, 48, 48, 48, 48, 48, 952, 960, 968, 976, 40, 984, 992, 64,1000, + 72, 72, 72, 40, 40, 40, 64, 64,1008, 64, 64, 64,1016, 64, 64, 64, + 64, 64, 64,1024, 72,1032, 40, 40,1040, 456, 48,1048,1056, 8,1064,1072, + 1080,1088, 8, 8,1096, 48,1104,1112, 8, 8, 8, 8, 8,1120,1128,1136, + 1144,1152, 8, 48,1160, 8, 8, 8, 8, 8, 464, 472, 240, 8,1168,1176, + 8,1184,1192,1200, 8,1208, 152, 8,1216,1224, 8, 8,1232, 48,1240, 48, + 480, 8, 8,1248,1256,1264,1272,1280,1288, 248, 128,1296,1304,1312, 160,1320, + 1328, 248, 128,1336,1344,1352, 304,1360,1368, 488, 128,1376,1384, 192, 160,1392, + 1400, 248, 128,1408,1416,1424, 160,1432,1440,1448,1456,1464,1472,1480, 304,1488, + 1496, 256, 128,1504,1512,1520, 160,1528,1536, 256, 128,1544,1552,1560, 160,1568, + 1576, 256, 8,1584,1592,1600, 160,1608,1616,1624, 8,1632,1640,1648, 304,1656, 312, 8, 8,1664,1672,1680, 0, 0,1688, 8,1696,1704,1712,1720, 0, 0, - 1728,1736, 320,1744,1752, 8, 152,1760,1768,1776, 64,1784,1792,1800, 0, 0, + 1728,1736, 320,1744,1752, 8, 168,1760,1768,1776, 48,1784,1792,1800, 0, 0, 8, 8,1808,1816, 496,1824,1832,1840,1848,1856, 72, 72,1864, 40, 40,1872, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 504,1880, 8, 8, 504, 8, 8,1888, 512, 520, 8, 8, - 8, 512, 8, 8, 8,1896,1904, 528, 8, 264, 72, 72, 72, 72, 72,1912, + 8, 512, 8, 8, 8,1896,1904, 528, 8, 328, 72, 72, 72, 72, 72,1912, 536, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,1920, 8,1928,1936, 8, 8, 8, 8,1944,1952, - 8,1960, 8,1968, 8,1976,1984,1992, 8, 8, 8,2000,2008,2016, 80,2024, - 2032, 80, 8, 8,2040, 8, 8, 160,2048, 8,2056, 8, 8, 8, 8, 328, - 8, 120,2064,2072,2080, 8, 112,2088, 8, 8, 184, 8, 192,2096, 24, 24, - 8,2104, 8, 8, 8,2112,2120,2128, 80, 80,2136,2144, 64, 544,2152, 0, - 2160, 8, 8,2168,2176, 496,2184,2192, 336, 8,2200, 232, 8, 8,2208,2216, - 8, 8,2224,2232,2240, 232, 8, 552,2248, 72, 72,2256,2264,2272,2280,2288, - 40, 40,2296, 96, 96, 96,2304,2312, 40,2320, 96, 96, 64, 64, 64, 64, - 48, 48, 48, 48, 48, 48, 48, 48, 48,2328, 48, 48, 48, 48, 48, 48, - 168, 560, 168, 168, 560,2336, 168,2344, 344, 344, 344,2352,2360,2368,2376,2384, - 2392,2400,2408,2416,2424,2432,2440,2448,2456,2464, 568, 568,2472,2480,2488,2496, - 2504,2512,2520,2528,2536, 88, 104, 104,2544,2552,2560, 24,2568,2576, 24,2584, + 8,1960, 8,1968, 8,1976,1984,1992, 8, 8, 8,2000,2008,2016, 88,2024, + 2032, 88, 8, 8,2040, 8, 8, 136,2048, 8,2056, 8, 8, 8, 8, 544, + 8, 112,2064,2072,2080, 8, 120,2088, 8, 8, 200, 8, 208,2096, 24, 24, + 8,2104, 8, 8, 8,2112,2120,2128, 88, 88,2136,2144, 48, 48, 48, 552, + 2152, 8, 8,2160,2168, 496,2176,2184, 336, 8,2192, 240, 8, 8,2200,2208, + 8, 8,2216,2224,2232, 240, 8, 560,2240, 72, 72,2248,2256,2264,2272,2280, + 40, 40,2288, 104, 104, 104,2296,2304, 40,2312, 104, 104, 48, 48, 48, 48, + 64, 64, 64, 64, 64, 64, 64, 64, 64,2320, 64, 64, 64, 64, 64, 64, + 176, 568, 176, 176, 568,2328, 176,2336, 344, 344, 344,2344,2352,2360,2368,2376, + 2384,2392,2400,2408,2416,2424,2432,2440,2448, 104, 576, 576,2456,2464,2472, 552, + 2480,2488,2496,2504,2512, 96, 80, 80,2520,2528,2536, 24,2544,2552, 24,2560, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 2592, 24,2600, 24, 24, 24, 24,2608, 24,2616, 56,2624, 24,2632,2640, 24, - 24, 24, 264, 0, 576, 0, 88, 88, 88,2648, 24, 24, 24, 24,2656, 88, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,2664,2672, 24, 24,2680, - 24, 24, 24, 24, 24, 24,2688, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24,2696,2704, 88,2712, 24, 24,2720, 56,2728, 56, + 2568, 24,2576, 24, 24, 24, 24,2584, 24,2592, 56,2600, 24,2608,2616, 24, + 24, 24, 328, 0, 584, 0, 96, 96, 96,2624, 24, 24, 24, 24,2632, 96, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,2640,2648, 24, 24,2656, + 24, 24, 24, 24, 24, 24,2664, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24,2672,2680, 96,2688, 24, 24,2696, 56,2704, 56, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 56, 56, 56, 56, 56, 56, 56, 56,2736,2744, 56, 56, 56,2752, 56,2760, + 56, 56, 56, 56, 56, 56, 56, 56,2712,2720, 56, 56, 56,2728, 56,2736, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 24, 24, 24, 56,2768, 24, 24,2776, 24, 24, 24, 24, 24, 24, 24, 24, - 72, 72, 72, 40, 40, 40,2784,2792, 48, 48, 48, 48, 48, 48,2800,2808, - 40, 40,2816, 8, 8, 8,2824,2832, 8, 200, 208, 208, 208, 208, 64, 64, - 2840,2848,2856,2864,2872,2880, 0, 0, 24,2888, 24, 24, 24, 24, 24, 352, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 272, 0, 24, - 2896,2904,2912,2920, 312, 8, 8, 8, 8,2928, 536, 8, 8, 8, 8,2936, - 2944, 8, 8, 312, 8, 8, 8, 8, 120,2952, 8, 8, 24, 24,2960, 8, - 24, 584, 592, 24,2968, 600, 24, 24, 592, 24, 24, 600, 24, 24, 24, 24, + 24, 24, 24, 56,2744, 24, 24,2752, 24, 24, 24, 24, 24, 24, 24, 24, + 72, 72, 72, 40, 40, 40,2760,2768, 64, 64, 64, 64, 64, 64,2776,2784, + 40, 40,2792, 8, 8, 8,2800,2808, 8, 216, 224, 224, 224, 224, 48, 48, + 2816,2824,2832,2840,2848,2856,2864, 0, 24,2872, 24, 24, 24, 24, 24, 352, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 264, 0, 24, + 2880,2888,2896,2904, 312, 8, 8, 8, 8,2912, 536, 8, 8, 8, 8,2920, + 2928, 8, 8, 312, 8, 8, 8, 8, 112,2936, 8, 8, 24, 24,2944, 8, + 24, 360, 592, 24,2952, 600, 24, 24, 592, 24, 24, 600, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, - 8,2976, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8,2960, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 152, 24, 24, 24, 608, 8, 8, 552, + 8, 8, 8, 8, 8, 8, 8, 8, 168, 24, 24, 24, 608, 8, 8, 560, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 2984, 8,2992, 0, 48, 48,3000,3008, 48,3016, 8, 8, 8, 8,3024,3032, - 456,3040,3048,3056, 48, 48, 48,3064,3072,3080,3088,3096,3104,3112, 0,3120, - 3128, 8,3136,3144, 8, 8, 8,3152,3160, 8, 8,3168,3176, 80, 64,3184, - 232, 8,3192, 8,3200,3208, 8, 152, 480, 8, 8,3216,3224, 360,3232,3240, - 8, 8,3248,3256,3264,3272, 8,3280, 8, 8, 8,3288,3296,3304,3312,3320, - 3328,3336, 208, 40, 40,3344,3352, 40, 40, 40, 40, 40, 8, 8,3360, 80, + 2968, 8,2976, 0, 64, 64,2984,2992, 64,3000, 8, 8, 8, 8,3008,3016, + 448,3024,3032, 616, 64, 64, 64,3040,3048,3056,3064,3072,3080,3088,3096,3104, + 3112, 8,3120,3128, 8, 8, 8,3136,3144, 8, 8,3152,3160, 88, 48,3168, + 240, 8,3176, 8,3184,3192, 8, 168, 480, 8, 8,3200,3208, 368,3216,3224, + 8, 8,3232,3240,3248,3256, 8,3264, 8, 8, 8,3272,3280,3288,3296,3304, + 3312,3320, 224, 40, 40,3328,3336, 40, 40, 40, 40, 40, 8, 8,3344, 88, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 368, 8,3368, 8, 8, 184, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 376, 8,3352, 8, 8, 200, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 112, 8, 8, 8, 8, 8, 8, 192, 0, 0, - 3376,3384,3392,3400,3408, 8, 8, 8, 8, 8, 8,3416,3424,3432, 8, 8, + 8, 8, 8, 8, 8, 8, 120, 8, 8, 8, 8, 8, 8, 208, 0, 0, + 624,3360,3368,3376,3384, 8, 8, 8, 8, 8, 8,3392,3400,3408, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8,3440, 24, 8, 8, 8, 8,3448, 8, 8,3456, 0, 0,3464, - 64,3472, 64,3480,3488,3496,3504,3512, 8, 8, 8, 8, 8, 8, 8,3520, - 3528, 424, 432, 440, 448,3536,3544,3552, 8,3560, 8, 120,3568,3576,3584,3592, - 3600, 8, 520,3608, 112, 112, 0, 0, 8, 8, 8, 8, 8, 8, 8, 176, - 3616, 88, 88,3624, 104, 104, 104,3632,3640, 280, 376, 0, 0, 24, 24,3648, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 152, 8, 8, 8, 248,3656,3664, - 8, 8,3672, 8,3680, 8, 8,3688, 8,3696, 8, 8,3704,3712, 0, 0, - 72, 72,3720, 40, 40, 8, 8, 8, 8, 112, 80, 72, 72,3728, 40,3736, - 8, 8, 616, 8, 8, 8,3744, 624, 624,3752,3760,3768, 8, 8, 8, 368, + 8, 8, 8,3416, 24, 8, 8, 8, 8,3424, 8, 8,3432, 0, 0,3440, + 48,3448, 48,3456,3464,3472,3480,3488, 8, 8, 8, 8, 8, 8, 8,3496, + 3504, 416, 424, 432, 440,3512,3520,3528, 8,3536, 8, 112,3544,3552,3560,3568, + 3576, 8, 520,3584, 120, 120, 0, 0, 8, 8, 8, 8, 8, 8, 8, 152, + 3592, 96, 96,3600, 80, 80, 80,3608,3616, 272,3624, 0, 0, 24, 24,3632, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 168, 8, 8, 8, 192,3640,3648, + 8, 8,3656, 8,3664, 8, 8,3672, 8,3680, 8, 8,3688,3696, 0, 0, + 72, 72,3704, 40, 40, 8, 8, 8, 8, 120, 88, 72, 72,3712, 40,3720, + 8, 8, 632, 8, 8, 8,3728, 640, 640,3736,3744,3752, 8, 8, 8, 376, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 200, 8, 328, 616, 0,3776, 96, 96,3784, 0, 0, 0, 0, - 3792, 8, 8,3800, 8,3808, 8,3816, 8, 120,3824, 0, 0, 0, 8,3832, - 8,3840, 8,3848, 8, 192, 0, 0, 8, 8, 8,3856, 88, 632, 88, 88, - 3864,3872, 8,3880, 640,3888, 8,3896, 8, 648, 0, 0,3904, 8,3912,3920, - 8, 8, 8,3928, 8,3936, 8,3944, 8,3952,3960, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 160, 0, 0, 0, 72, 72, 72,3968, 40, 40, 40,3976, - 8, 8,3984, 80,3992, 72,4000, 40,4008, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88,4016, 8, 8,4024, 656,4032,4040, 0,4048, - 8, 648,4056, 8, 472,4064, 0, 8,4072, 0, 0, 8,4080, 0, 8, 200, - 4088, 8, 8,4096,4104, 632,4112,4120, 336, 8, 8,4128,4136, 8, 160, 80, - 4144, 8,4152,4160,4168, 8, 8,4176, 336, 8, 8,4184,4192,4200, 384,4208, - 8, 488, 664,4216,4224, 0, 0, 0,4232,4240,4248, 8, 8,4256,4264, 80, - 4272, 240, 128,4280,4288,4296,4304,4312,4320, 8, 8,4328,4336,4344,4352, 0, - 8, 8, 8,4360,4368,4376, 656, 0, 8, 8, 8,4384,4392, 80, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 672,4400,4408,4416, 0, 0, - 8, 8, 8,4424,4432, 80,4440, 0, 8, 8,4448,4456, 80, 288,4464, 0, - 8,4472,4480,4488, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 664,4496, 0, 0, 0, 0, 0, 0, 72, 72, 40, 40, 320,4504, - 4512,4520, 8,4528,4536, 80, 0, 0, 0, 0,4544, 8, 8,4552,4560, 0, - 4568, 8, 8,4576,4584,4592, 8, 8,4600,4608,4616, 8, 8, 8, 8, 160, - 4624, 0, 0, 0, 0, 0,4632, 0, 0, 0, 0, 0, 8, 8,4640, 80, - 128, 8, 672,4648,4656, 320, 528,4664, 8,4672,4680,4688, 0, 0, 0, 0, - 4696, 8, 8,4704,4712, 80,4720, 8,4728,4736, 80, 8, 8,4744, 80, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,4752, - 4760, 256, 8,4768,4776,4784, 0, 0, 0, 0, 0, 248, 88,4792,4800,4808, + 8, 8, 8, 216, 8, 544, 632, 0,3760, 104, 104,3768, 0, 0, 0, 0, + 3776, 8, 8,3784, 8,3792, 8,3800, 8, 112,3808, 0, 0, 0, 8,3816, + 8,3824, 8,3832, 8, 208, 0, 0, 8, 8, 8,3840, 96, 648, 96, 96, + 3848,3856, 8,3864, 656,3872, 8,3880, 8, 664, 0, 0,3888, 8,3896,3904, + 8, 8, 8,3912, 8,3920, 8,3928, 8,3936,3944, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 136, 0, 0, 0, 72, 72, 72,3952, 40, 40, 40,3960, + 8, 8,3968, 88,3976, 72,3984, 40,3992, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 96,4000, 8, 8,4008, 280,4016,4024, 112, 48, + 8, 664,4032, 8, 464,4040, 0, 8,4048, 0, 0, 8,4056, 0, 8, 216, + 4064, 8, 8,4072,4080, 648,4088,4096, 336, 8, 8,4104,4112, 8, 136, 88, + 4120, 8,4128,4136,4144, 8, 8,4152, 336, 8, 8,4160,4168,4176, 384,4184, + 8, 488, 672,4192,4200, 0, 0, 0,4208,4216,4224, 8, 8,4232,4240, 88, + 4248, 248, 128,4256,4264,4272,4280,4288,4296, 8, 8,4304,4312,4320,4328, 0, + 8, 8, 8,4336,4344,4352, 280, 0, 8, 8, 8,4360,4368, 88, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 680,4376,4384,4392, 0, 0, + 8, 8, 8,4400,4408, 88,4416, 0, 8, 8,4424,4432, 88, 288,4440, 0, + 8,4448,4456,4464, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 672,4472, 0, 0, 0, 0, 0, 0, 72, 72, 40, 40, 320,4480, + 4488,4496, 8,4504,4512, 88, 0, 0, 0, 0,4520, 8, 8,4528,4536, 0, + 4544, 8, 8,4552,4560,4568, 8, 8,4576,4584,4592, 8, 8, 8, 8, 136, + 4600, 0, 0, 0, 0, 0,4608, 0, 0, 0, 0, 0, 8, 8,4616, 88, + 128, 8, 680,4624,4632, 320, 528,4640, 8,4648,4656,4664, 0, 0, 0, 0, + 4672, 8, 8,4680,4688, 88,4696, 8,4704,4712, 88, 8, 8,4720, 88, 472, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,4728, + 4736, 256, 8,4744,4752,4760, 0, 0, 0, 0, 0, 192, 96,4768,4776,4784, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 192, 0, 0, 0, 0, 0, 0, - 104, 104, 104, 104, 104, 104,4816,4824, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 208, 0, 0, 0, 0, 0, 0, + 80, 80, 80, 80, 80, 80, 80,4792, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 376, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80,4800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8,4832, - 8, 8, 8, 136,4840,4848, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8,4808, + 8, 8, 8, 144,4816,4824, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 176, - 8, 8, 8, 8, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 152, + 8, 8, 8, 8, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 680,4856, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 160, 8, 120, 360, 8, 8, 8, 8, 120, 80, 8, 112,4864, - 8, 8, 8,4872,4880,4888,4896,4904, 8, 0, 0, 0, 0, 0, 0, 0, + 8, 688,4832, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 136, 8, 112, 368, 8, 8, 8, 8, 112, 88, 8, 120,4840, + 8, 8, 8,4848,4856,4864,4872,4880, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,4912, 8,4920, 80, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 72, 72, 40, 40, 88,4928, 72,4936, 40,4944, 0, 0, - 8, 8, 8, 8,4952,4960, 688, 688,4968,4976, 0, 0, 0, 0,4984,4992, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 328, 0,5000, - 8, 120, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 696, + 0, 0, 0, 0,4888, 8,4896, 88, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72, 72, 40, 40, 96,4904, 72,4912, 40,4920, 0, 0, + 8, 8, 8, 8,4928,4936, 696, 696,4944,4952, 0, 0, 0, 0,4960,4968, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 152, 0,4976, + 8, 8, 192, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 704, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 280, 8, 8, 8, 704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,5008, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,4984, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 696,5016, 0,5024,5032, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 184, + 8, 8, 136,4992, 0,5000,5008, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 176, 152, 160,5040,5048, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 152, 168, 136,5016,5024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5056, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5032, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5064, 24, 376, 24,5072, - 64, 64, 544, 64, 704, 24, 24, 24, 24, 24, 24, 24, 352, 0, 0, 0, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 272, - 24, 24,5080, 24, 24, 24,5088,5096,5104, 24,5112, 24, 24, 24, 576, 0, - 24, 24, 24, 24,5120, 0, 0, 0, 0, 0, 0, 0, 88, 712, 88, 712, - 24, 24, 24, 24, 24, 608, 88, 640, 0, 0, 0, 0, 0, 0, 0, 0, - 72, 296, 40, 720, 728,5128, 168, 72, 392,5136,5144,5152,5160, 72, 296, 40, - 5168,5176, 40,5184,5192,5200, 736, 72, 744, 40, 72, 296, 40, 720, 728, 40, - 168, 72, 392, 736, 72, 744, 40, 72, 296, 40,5208, 72,5216,5224,5232,5240, - 40,5248, 72,5256,5264,5272,5280, 40,5288, 72,5296, 40,5304, 288, 288, 288, - 64, 64, 64,5312, 64, 64,5320,5328,5336,5344, 464, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5040, 24,5048, 24,5056, + 48, 48,5064, 48, 712, 24, 24, 24, 24, 24, 24, 24, 352, 0, 0, 0, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 264, + 24, 24,5072, 24, 24, 24,5080,5088,5096, 24,5104, 24, 24, 24, 24, 24, + 24, 24, 24, 24,5112,5120, 24, 24,5128, 0, 0, 0, 96, 720, 96, 720, + 24, 24, 24, 24, 24, 608, 96, 656, 0, 0, 0, 0, 0, 0, 0, 0, + 72, 296, 40, 728, 736,5136, 176, 72, 392,5144,5152,5160,5168, 72, 296, 40, + 5176,5184, 40,5192,5200,5208, 744, 72, 752, 40, 72, 296, 40, 728, 736, 40, + 176, 72, 392, 744, 72, 752, 40, 72, 296, 40,5216, 72,5224,5232,5240,5248, + 40,5256, 72,5264,5272,5280,5288, 40,5296, 72,5304, 40,5312, 288, 288, 288, + 48, 48, 48,5320, 48, 48,5328,5336,5344,5352, 456, 0, 0, 0, 0, 0, + 56,5360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5352,5360,5368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5376,5384,5392, 96, 96, 96,5400, 0,5408, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 152,5416,5424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,5432, 0, 8, 8,5440,5448, + 5368, 40, 40, 40,5376,5384,5392, 616, 280, 624, 0, 0,5400, 104, 104, 104, + 5408,5416,5424, 104, 104, 104,5432, 0,5440, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 168,5448,5456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,5464, 0, 8, 8,5472,5480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,5456, 80, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 680,5464, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 120,5472,5480, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,5488, 120, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,5496, 704, 0, 0, - 72, 72, 392, 40,5504, 360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 384, 88, 88,5512,5520, 0, 0, 0, 0, - 384, 88,5528,5536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5544, 8,5552,5560,5568,5576,5584,5592,5600, 184,5608, 184, 0, 0, 0,5616, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,5488, 88, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 688,5496, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 112,5504,5512, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,5520, 112, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,5528, 712, 0, 0, + 72, 72, 392, 40,5536, 368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 384, 96, 96,5544,5552, 0, 0, 0, 0, + 384, 96,5560,5568, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5576, 8,5584,5592,5600,5608,5616,5624,5632, 200,5640, 200, 0, 0, 0,5648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 24, 216, 24, 24, 24, 24, 24, 24, 352, 584, 400, 400, 400, 24, 272, - 5624, 24, 24, 24, 24, 24, 24, 24, 24, 24, 408, 0, 0, 0,5632, 24, - 5640, 24, 24, 216, 752, 760, 272, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5648, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5656, 280, 280, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 264, 216, 376, - 216, 24, 24, 24, 416, 264, 24, 24, 416, 24, 408, 216, 760,5664, 0, 0, + 24, 24, 184, 24, 24, 24, 24, 24, 24, 352, 360, 400, 400, 400, 24, 264, + 5656, 24, 24, 24, 24, 24, 24, 24, 24, 24, 360, 0, 0, 0,5664, 24, + 5672, 24, 24, 184,5680, 760, 264, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5688, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5696, 272, 272, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 184, 184, 24, + 184, 24, 24, 24, 408, 328, 24, 24, 408, 24, 768, 184, 760,5704, 0, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 416, 408, 280,5672, 24, 24, 24,5680,5688,5696, 752, - 24, 24, 24, 24, 24, 24, 24, 24, 24,5704, 24, 24, 24, 24, 24,5712, + 24, 24, 24, 24, 24, 408, 768, 272, 24, 24, 24, 24,5712,5720,5728, 584, + 24, 24, 24, 24, 24, 24, 24, 24, 24,5736, 24, 24, 24, 24, 24,5744, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 112, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 112, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 120, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 248, 8, - 8, 8, 8, 8, 8, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 192, 8, + 8, 8, 8, 8, 8, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 176, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 192, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 152, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5720, 0, 136, 136, 136, 136, 136, 136, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, + 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 5752, 0, 144, 144, 144, 144, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,5728, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,5760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, - 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, 168, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, - 24, 24, 24, 24, 24, 24, 24, 24,1104, 48, 48,1112,1104, 48, 48,1112, - 24, 24, 24, 24, 24,1288, 24,1288, 48, 48,1512, 48, 48, 48,1512, 48, - 48, 48, 48, 48, 48, 48, 48,2048, 24, 24, 24, 24,2056,2064, 24, 24, - 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,2072,2080, - 2088,2096, 144, 144,2104, 144, 144, 144, 144, 144, 144, 144,2112, 296, 144, 144, - 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 2120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120,1520, 592, 592, 592,2128,1520, 592, 592, 592, 592, - 592,2136,2144, 352, 352, 352, 352, 352, 352, 0, 352, 352, 352,2152,2160, 0, - 1528,2168, 56,2176, 56, 56, 56, 56,2184,2192,2200, 56, 56, 56,2208, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,1528, 56, 56, 56, 56, - 496,2216, 496, 496, 496, 496, 496, 496, 496,2224, 56, 56, 56, 56, 56, 56, - 784, 784, 784, 784, 784, 784,2232, 0, 688, 688, 688, 688, 688, 688, 688,2240, - 792, 792, 792, 792, 792,2248, 792,2256,1296,1296,1296,2264, 496,2272, 56, 56, - 56, 56,2280, 56, 56, 56, 56, 56, 56, 56, 56, 56,2288, 56, 56, 56, - 240, 240, 240, 240, 240, 240, 240, 240, 240, 240,2296, 240,2304, 240, 240, 240, - 2312,1536,2320,1120,1120,2328,2336,2344,1536,2352,2360,2368,2376,1120,1120,2384, - 2392,1544,2400,1304,1304,2408,2416,2424,1544,2432,2440,2448,2456,1304,2464, 0, - 2472,1552,2480,1312,1312,2488,2496,2504,1552,2512,2520, 0,2528,1312,2536,2544, - 2552,1560,2560,1128,1128,2568,2576,2584,1560,2592,2600,2608,2616,1128,1128, 0, - 2624,1320,1568,2632,2640,1320, 504,2648,1320,1568,2656, 0,2664, 504, 504,2672, - 800,1576,1584, 800, 800,1584, 800,2680,1576,2688,2696,2704,2712, 800,2720, 800, - 1136,1592,1600,1136,1136,1600,2728,2736,1592,2744,2752,2760,2768,1136,2776, 0, - 400,1608,1616, 400, 400, 400, 400, 400,1608,1616,2784, 400,2792, 400, 400, 400, - 2800, 808,1624,2808, 808, 808,2816,2824,1624,2832,2840, 808,2848, 808,2856, 0, - 2864, 512, 512, 512, 512, 512, 512,2872, 512, 512, 512,2880, 0, 0, 0, 0, - 2888,2896, 984, 984,2904, 984, 984,2912,2920,2928, 984,2936, 0, 0, 0, 0, - 224, 224, 224, 224, 224, 224, 224, 224, 224,1328, 224, 224, 224,2944,1328, 224, - 224, 224, 224,1328, 224, 224, 224,1632, 224,1632,2952,2960, 0, 0, 0, 0, - 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 256, 256, 256, 256,1640,1648, 256, 256, 256, 256, 256,2968, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 816, 280, 816, 160, 160, 160, 160, - 160, 816, 160, 160, 160, 160, 816, 280, 816, 160, 280, 160, 160, 160, 160, 160, - 160, 160, 816, 160, 160, 160, 160, 160, 160, 160, 160,2976, 160, 160, 160,2984, - 160, 160, 160,2992, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,1656,1656, - 1336,1336,1336,3000, 408, 408, 408, 408, 408, 408, 408, 408, 408,3008, 408,3016, - 1664,1664,3024,3032,1672,1672,3040, 0,1680,1680,3048, 0,3056,3064,3072, 0, - 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272,3080, 272,1688, 272,1688, - 3088, 248, 248,3096, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,3104, - 248, 248, 248, 248, 248,3112, 80, 80, 80, 80, 80, 80, 80, 80,3120, 0, - 824, 824, 824,3128, 824,1696, 824,1696,3136, 824,1344,1344,1344,3144,3152, 0, - 520, 520, 520, 520, 520,3160, 520, 520, 520,3168, 520,3176, 272, 272, 272, 272, - 1352,1352,1352,3184, 320, 320, 320, 320, 320, 320, 320,3192, 320, 320, 320,3200, - 320,1704, 320,1704, 320,3208, 104, 104, 104, 104, 104,1712, 104,3216, 0, 0, - 304, 304, 304, 304, 304, 304, 304, 304, 304,3224, 304, 304, 304, 304, 304, 304, - 528, 528, 528, 528, 528, 528, 528, 528, 832, 832, 832, 832, 832, 832,3232,3240, - 600, 600, 600, 600, 600, 600, 600,3248, 600,3256, 840, 840, 840, 840, 840, 840, - 120,3264, 256, 256, 256, 256, 256,3272, 528, 0,3280, 104,3288,3296,3304,3312, - 48, 48, 48, 48,3320,3328, 48, 48, 48, 48, 48,3336,3344,3352, 48,3360, - 48, 48, 48, 48, 48, 48, 48,3368, 104, 104, 104, 104, 104, 104, 104, 104, - 144, 144, 848, 848, 144, 144, 144, 144, 848, 848, 144,3376, 144, 144, 144, 848, - 144, 144, 144, 144, 144, 144,1720, 144,1720, 144,3384,3392, 144, 144,3400,1728, - 24,3408, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 992, 24,3416,3424, - 24, 608, 48,1736, 24, 24, 24, 24, 616, 0, 104, 104, 104, 104,3432, 0, - 24, 24, 24, 24,3440,3448,1288, 24, 24,3456, 24, 24, 48, 48, 48, 48, - 48,3464, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 616, 0, 0, 24,1360, 0, 0, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,1744, 24, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 48, 48, 48, 48, - 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,3472,3480, - 256, 256, 256, 256,1640,1648, 696, 696, 696, 696, 696, 696, 696,1752,3488,1752, - 160, 160, 280, 0, 280, 280, 280, 280, 280, 280, 280, 280, 120, 120, 120, 120, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 416, 0, 0, 0, 0, - 8, 8, 8,3496, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,3504, 0, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 856, 0, 0, 0, 24, 24, - 3512, 24, 24, 24,3520,3528, 24,3536,3544, 152, 152, 152, 152, 152, 152, 152, - 152, 152,3552,3560,1760, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,3568, - 3576, 536, 536, 536, 536, 536,3584, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16,1144, 24, 24, 536, 536, 536, 536, 24, 24, 24, 24, 416,3592, 184, 184, - 16, 16, 16,1144, 24, 24, 24, 24, 24, 24, 24, 24, 16, 16, 16,3600, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 184, 184, 184, 184, 184,3608, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 24, 24, 24, 24, 24, - 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 24, - 72,3616, 72, 72, 72, 72, 72, 72,3624, 0, 864, 864, 864, 864, 864, 864, - 176, 176, 176, 176, 176,3632, 0, 0, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 0, - 24, 24, 24, 24,3640, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48,3648, 48, 48, 48, 48, 48, 48, 48, 48, 48,1736, 0, 0,3656, 48, - 1000,1000,1000,1000,1000,3664, 24, 616, 704, 704, 704, 704, 704, 704, 704, 0, - 544, 544, 544, 544, 544, 544, 544, 544,3672,3680, 544,3688, 240, 240, 240, 240, - 1008,1008,1008,1008,1008,3696,1152,1152,1152,1152,3704,3712, 16, 16, 16,3720, - 424, 424, 424, 424, 424, 424, 424, 424, 424,3728, 424,3736, 200, 200, 200,3744, - 624, 624, 624, 624, 624, 624,3752, 0, 624,3760, 624,3768, 200, 200, 200, 200, - 632, 632, 632, 632, 632, 632, 632, 632,3776, 0, 0,3784, 640, 640,3792, 0, - 1368,1368,1368, 0, 280, 280, 48, 48, 48, 48, 48,3800,3808,3816, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 640, 640, 640, 640, 640,3824, 640,3832, - 16, 16, 16, 16,1768, 0, 16, 16,1144,3840, 16, 16, 16, 16, 16,1768, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 856, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,1776, 0, 0, 0, 0, - 1784, 0,3848,3856, 352, 352,3864,3872,3880, 352, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56,3888, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 0, 0, 0, 0, 56, 56, - 104, 104, 24, 616, 104,3896, 24, 24, 24, 24,1792, 24, 608, 328,3904, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,3912, - 712, 24, 24, 24,1104, 48, 48,1112,1104, 48, 48,1112,3920, 184,1760, 184, - 184, 184, 184,3928, 16, 16, 16,1144,1376,1376,1376,3936, 608, 608, 0,3944, - 216,3952, 216, 216,3960, 216, 216,3968, 216,1800, 216,1800, 0, 0, 0, 0, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,3976, - 1808, 24, 24, 24, 24, 24,3984, 24, 144, 144, 144, 144, 144, 144, 144, 144, - 144,1728, 24, 872,3992, 0, 0, 0, 0, 0, 24, 24, 24, 24, 24,4000, - 1384,1384,1384,4008, 880, 880, 880, 880, 880, 880,4016, 0,4024, 24, 24, 328, - 1160,1160,1160,1160,4032,4040,1392,1392,1392,4048,1016,1016,1016,1016,1016,4056, - 1400,1400,1400,4064,1024,1024,1024,1024,4072,1024,4080, 0, 0, 0, 0, 0, - 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 888, 888, 888, 888, 888, 888, - 1168,1168,1168,4088,1168,4096, 648, 648, 648, 648,1816, 648, 648, 648, 648,1816, - 1032,1032,1032,1032,1032, 0, 896, 896, 896, 896, 896, 896,4104,4112,1176,1824, - 1176,1824,4120,1176,1832,1176,1832,4128, 904, 904, 904, 904, 904, 904,4136, 0, - 168, 168, 168, 168, 168, 168,4144, 0, 168, 168,4152, 0, 168, 0, 0, 0, - 4160, 48, 48, 48, 48, 48,4168,1840, 0, 0, 0, 0, 0, 0, 0, 0, - 4176,4184,1184,1184,1184,1184,4192,4200,1408,1408,4208,1408,1192,1192,1192,1192, - 1200,1200,1200,4216,4224,1200, 0, 0, 0, 0, 0, 0,1848,1848,4232,4240, - 1416,1416,1416,4248,1424,1424,1424,4256,1432,1432,1432,4264, 0, 0, 0, 0, - 1208,1208,1208,1208, 440, 440, 440,4272, 440, 440,4280, 440, 440, 440, 440, 440, - 4288,4296,4304,4312,1216,1216,4320,4328,1216,1856,1216,1856,1224,1224,1224,1224, - 1232,1232,1232,1232, 0, 0, 0, 0,1240,1240,1240,1240,1864,4336,1864, 0, - 912, 912, 912, 912, 912, 912,4344,4352,1440,1440,4360,1440,1448,1448,4368,1448, - 1872,1872,4376,4384, 0,4392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 552, 552, 552, 552, 552, 552, 552, 552, 552,4400, 0, 0, 0, 0, 0, 0, - 360, 360, 360, 360, 360, 360,1880, 0, 360, 360, 360, 360, 360, 360,1880,4408, - 920, 920, 920, 920, 920, 0, 920,4416, 928, 928, 928, 928,1888,4424, 928, 928, - 1888,4432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 56, 56,4440, - 1040,1040,1040,1040,1040,4448,4456, 0,1896, 0, 56,4464, 0, 0, 0,1896, - 1048,1048,1048,1048,1048, 0,1056,1056,1056,1056,1056,4472, 0, 0,1456,1456, - 1456,4480, 0, 0, 0, 0,1464,1464,1464,4488, 0, 0,1904,1904,4496, 0, - 368, 368, 368, 368, 368, 368, 368, 368, 368,1912,4504, 368, 368, 368,1912,4512, - 656, 656, 656, 656, 656, 656, 656, 656,4520,4528,1248,1248,1248,4536,1248,4544, - 664, 664, 664, 664, 664, 664,4552, 664, 664, 0,1256,1256,1256,1256,4560, 0, - 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,4568, 808,4576, 0, - 720, 720,4584, 720, 720, 720, 720, 720,4592, 0, 0, 0, 0, 0, 0, 0, - 4600,4608,1920,4616,1920,4624, 672, 672, 672, 672, 672, 672, 672,4632, 672,4640, - 4648,1928,4656,1936,1936,4664,4672,4680,1928,4688,4696,4704,4712,1944,1944, 0, - 936,4720, 936, 936, 936, 936,1952, 936,4728,4736,1952,4744,4752, 0, 0, 0, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384,4760,4768, 0, 0, 0, - 448, 448, 448, 448, 448, 448, 448, 448, 448, 0, 448,4776, 0, 0, 0, 0, - 456, 456, 456, 456, 456, 456,1960, 456, 456, 456, 456,1960, 0, 0, 0, 0, - 560, 560, 560, 560, 560, 560, 560, 560,4784, 0, 560,4792, 248,4800, 0, 0, - 680, 680, 680, 680, 680, 680, 680,1968, 680,1968, 200, 200,4808, 0, 0, 0, - 944, 944, 944,4816, 944,4824, 944, 944,4832, 0, 0, 0, 0, 0, 0, 0, - 728, 728, 728, 728, 728, 728, 728,4840, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464,4848,4856, - 1976,4864,4872,1264,1264,1264,4880,4888,1976, 0,1264,4896, 0, 0, 0, 0, - 0, 0, 0, 0, 952,1984, 952, 952, 952, 952, 952,1984,4904, 0, 0, 0, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 0, 472, 472, 472, 472, 472, 472, - 472, 472, 472, 472,4912, 0, 80, 80, 736, 736, 736, 736, 736, 736, 736,4920, - 240,4928, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,1064,1064,1064,1064,1992, 0,1064,1992, - 576,4936, 576, 576, 576, 576,4944, 576,4952, 0, 576, 576, 576,4960, 960, 960, - 960, 960,4968, 960, 960,4976,4984, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2000,4992, 968, 968, 968, 968,2000,5000, 968, 0, 968,5008,5016,5024,1272,1272, - 1272,5032,5040,5048,1272,5056, 976, 976, 976, 976, 976,5064, 976,5072, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1472,1472,1472,5080, - 584, 584,5088, 584, 584, 584, 584,5096, 584, 584, 584,5104, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,5112, 0, 504, 504, 504, 504, 504, 504,5120,5128, - 64, 64, 64,5136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,5144,5152, 0, - 64, 64, 64, 64, 64, 64, 64, 64,5160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376,5168, 0, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,5176, 0, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,5184, - 112, 112, 112, 112, 112, 112, 112, 112,5192, 0, 0, 0, 0, 0, 0, 0, - 744, 744, 744, 744, 744, 744, 744,5200, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 88, 88, 88, 88, 88, 88,5208,1280,1280,1280,5216,1280,5224, 480, 480, - 480, 480, 480, 480, 480, 480, 480,5232, 480,5240,1480,1480,1480,2008,2008, 0, - 344, 344, 344, 344, 344, 344, 344, 344,5248, 0, 344,2016,2016, 344, 344,5256, - 344, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 752, 752, 752, 752, 752, 752, 752,5264, - 0, 0, 0, 0, 0, 0, 0, 0, 392, 392, 392, 392, 392, 392, 392, 392, - 392, 392, 392,5272,1072,1072,1072,5280,1072,1072,5288, 0, 0, 0, 0, 0, - 264, 264, 264, 264, 264, 264, 264, 264, 264,5296, 264, 264, 264, 264, 264, 264, - 264,5304, 264, 264, 0, 0, 0, 0, 0, 0, 0, 0,5312, 0,5320, 0, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,5328, 0, 0, 0, 0,5336, - 32, 32, 32,5344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,5352, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,5360,5368, - 5376, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152,5384, 0,5392, 0, 0, 0,5400, 0,5408, 0, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,5416, - 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,5424, 288,5432, - 288,5440, 288,5448, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 872, - 24, 24, 24, 24, 24, 24, 328,2024, 24, 24, 760, 0, 24, 24, 760, 0, - 104, 104, 104, 104, 104,1712, 104, 104,5456, 0, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 328, 0, 0, 0, 0, 0, 0, 0, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 416, 0, - 24, 24, 24, 24, 608, 712, 24, 24, 24, 24, 24, 24,5464,5472, 24,5480, - 5488,5496, 24, 24, 24,5504, 24, 24, 24, 24, 24, 24, 24,1360, 0, 0, - 144, 144, 144, 144, 144, 144, 144, 144, 848, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 328, 0, 24, 24, 328, 0, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 608, 0, 24, 24, 24, 760, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 992, 24, 24, 24, 24, 24, - 24, 24, 24, 992,5512,5520, 24,5528,5536, 24, 24, 24, 24, 24, 24, 24, - 5544,5552, 992, 992, 24, 24, 24,5560,5568,2024,5576, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 416, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24,1744, 24, 24, 24, 24, 24, 24, - 96,5584, 0,5592,5600, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 48, 48,1784,5608,1840, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5616, 312, 312,5624,5632,5640, 120, 120, 120, 120, 120, 120, 120,5648, 0, 0, - 0,5656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 768, 768, 768, 768, 768,5664, 768,5672, 768,5680, 0, 0, 0, 0, 0, 0, - 0, 0,1488,1488,1488,5688, 0, 0, 776, 776, 776, 776, 776, 776, 776,5696, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1080,1080,1080,1080,1080,5704, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1088,1088,1088,1088,1088,5712, - 0, 0, 0, 0, 0, 0, 0, 0,1096,1096,1096,5720,1096,1096,5728,5736, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280,5744, 160, 280, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208,5752, 208,5760, 0, 0, 0, 0, 0, - 488, 488, 488, 488, 488, 488, 488, 488, 488,5768, 488,5776, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 712, 24, - 24, 24, 24, 24, 24, 24, 872, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 712, 24, 24, 24, 24, 24, 24, 416, 0, 0, 0, 0, 0, 0, 0, 0, - 5784, 56, 56, 56,1496,5792,1504,5800,5808,5816,1496,5824,1496,1504,1504,5832, - 56,2032, 56,2040,5840,2032, 56,2040, 0, 0, 0, 0, 0, 0,5848, 0, - 24, 24, 24, 24, 24, 328, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 328, 0, 24, 608, 712, 24, 712, 24, 712, 24, 24, 24, 416, 0, - 24, 24, 24, 24, 24, 416, 0, 0, 0, 0, 0, 0,5856, 24, 24, 24, - 5864, 0, 24, 24, 24, 24, 24, 328, 24, 760, 616, 0, 416, 0, 0, 0, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,5872, 24, 872, 24, 872, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 616, 24, 328, 760, 0, - 24, 328, 24, 24, 24, 24, 24, 24, 24, 0, 24, 616, 24, 24, 24, 24, - 24, 0, 24, 24, 24, 416, 24, 328, 616, 0, 24, 760, 0, 0, 0, 0, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 24, 416, 24, 872, - 24,5880, 24, 24, 24, 24, 24, 24, 608,5888, 24,5896, 24,1808, 24, 760, - 24, 24,1792, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,1360, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, - 8, 8, 8, 856, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 856, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,5904, 0, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 856, 0, 0, 0, 0, - 8, 8, 8, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 8, 8, 8, 8, 8, 8, 8,5912, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,1776, - 5920, 0, 0, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 40, 240, 248, 256, 80, 80, 80, 80, 80, 80, 264, 272, 136, 280, 288, 296, + 152, 152, 304, 152, 312, 320, 328, 336, 344, 352, 88, 360, 368, 376, 384, 392, + 400, 408, 416, 424, 432, 440, 448, 456, 464, 472, 480, 488, 496, 504, 512, 520, + 528, 536, 544, 552, 560, 568, 576, 584, 592, 600, 608, 616, 624, 632, 640, 648, + 200, 200, 656, 664, 16, 16, 16, 16, 672, 680, 688, 696, 704, 712, 720, 728, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 736, 744, 752, 760, 768, 776, + 784, 792, 800, 808, 816, 824, 832, 840, 848, 856, 864, 872, 880, 888, 896, 904, + 912, 920, 928, 936, 944, 952, 960, 136, 80, 80, 80, 80, 968, 976, 984, 992, + 1000,1008,1016,1024,1032,1040,1048, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 1056,1064, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 160, 160, 160, 160, 40, 40, 40, 40, 40, 40, 40, 40, 40,1072, 40, 40, + 1080,1088,1096,1104,1112,1120,1128,1136, 40,1144,1152,1160, 8, 8, 8,1168, + 1176,1184,1192,1200,1208, 16,1216,1224,1232,1240, 40,1248,1256,1264, 40, 40, + 8, 8, 8, 8, 8, 8, 8, 40, 8, 8, 8, 8, 8, 8, 8, 8, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64,1272,1280, 168, 168, 168, 168,1288, 152,1296,1304,1312, 80,1320,1328, + 1336,1344,1352,1360,1368,1376,1384,1392,1400,1408,1416,1424,1432,1440,1448,1456, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,1464,1472, + 0, 0, 0, 0, 8, 8, 8, 8, 8, 208, 8,1480,1488,1496, 88, 88, + 88, 88, 88, 88,1504, 88, 88,1512,1520,1528, 88,1536,1544,1552,1560,1568, + 1576,1584,1592,1600,1608, 216,1616,1624, 0, 0,1632,1640,1648,1656,1664,1672, + 1680,1688,1696,1704,1712,1720,1728,1736, 176, 176, 176, 176,1744,1752,1760, 0, + 1768,1776,1784,1792,1800,1808,1816,1824,1832,1840,1848,1856,1864,1872,1880, 0, + 1888,1896,1904,1912,1920,1928,1936, 0, 0,1944,1952,1960,1968,1976,1984,1992, + 2000,2008,2016,2024,2032,2040,2048,2056,2064,2072,2080,2088,2096,2104,2112,2120, + 2128,2136,2144,2152, 0, 0,2160,2168,2176,2184,2192,2200,2208,2216, 0, 0, + 2224, 0,2232,2240,2248,2256,2264,2272,2280,2288,2296,2304,2312,2320, 0,2328, + 2336,2344,2352, 0,2360,2368,2376,2384, 0, 0, 0,2392,2400,2408,2416,2424, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,2432, 0, + 56, 56, 56, 56, 56,2440,2448, 224, 224,2456,2464, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2472,2480, + 48,2488, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,2496, + 112, 112, 112, 112, 112, 112, 112, 112, 112,2504, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,2512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 120, 120, 120, 120, 120, 120, 120, 120,2520,2528,2536,2544,2552,2560,2568, 0, + 0, 0, 0, 0, 0,2576, 0, 0, 0,2584,2592,2600,2608,2616,2624,2632, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 128, 128, 128, 128, + 128, 128, 128,2640,2648, 0, 32,2656, 72, 72, 72, 72, 72, 72, 72, 72, + 72, 72, 72, 72, 72, 72,2664,2672, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,2680, + 2688, 184, 184, 184,2696,2704, 144, 144, 144, 144, 144,2712, 0, 0, 0, 0, + 2720,2728,2736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 40, 40, 40,2744, 40, 40, 40, 40, 40, 40,2752,2760,2768,2776, 40,2784, + 40, 40, 40,2792,2800,2808,2816, 40, 216,2824,2832,2840, 40,2848, 0, 0, + 40,2856,2864,2872,2880,2888, 40, 40, 40, 40,2896, 40, 40, 40, 40,2904, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,2912, 0,2920, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 80,2928,2936, + 2944,2952,2960, 0,2968,2976, 0, 0, 0, 0,2984,2992, 0, 0, 0, 0, + 0, 0, 0,3000, 0, 0, 0,3008, 0, 0, 0,3016, 0, 0, 0,3024, + 192, 192, 192,3032,3040,3048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,3056,3064, 0,3072, 0, 0, 0,3080,3088,3096,3104, 0, 0, 0, 0, + 3112, 40,3120,3128, 40, 40,3136,3144,3152,3160, 0, 0, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,3168, 40, 40, 40,3176, + 3184,3192,3200,3208, 40, 40, 40, 40, 40,3216, 40,3224, 40, 40,3232,3240, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,3248, 8, 8, 8, 8, + 3256, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 208, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,3264, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 232, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 8, 8, 232, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,3272, 8, 8, + 8,3280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3288, 40, 0, 0, 136, 136, 136, 136, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 8, 8, 8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, + 24, 24, 24, 24, 24, 24, 24, 24, 40, 40, 40, 40, 40, 40, 40, 40, + 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, + 64, 64, 64, 64, 64, 64, 64, 64, 80, 80, 80, 80, 80, 80, 80, 80, + 88, 88, 88, 88, 88, 88, 88, 88, 56, 56, 56, 56, 56, 56, 56, 56, + 72, 72, 72, 72, 72, 72, 72, 72, 96, 96, 96, 96, 96, 96, 96, 96, + 112, 112, 112, 112, 112, 112, 112, 112, 128, 128, 128, 128, 128, 128, 128, 128, + 104, 104, 104, 104, 104, 104, 104, 104, 144, 144, 144, 144, 144, 144, 144, 144, + 120, 120, 120, 120, 120, 120, 120, 120, 152, 152, 152, 152, 152, 152, 152, 152, + 136, 136, 136, 136, 136, 136, 136, 136, 208, 208, 208, 208, 208, 208, 208, 208, + 192, 192, 192, 192, 192, 192, 192, 192, 184, 184, 184, 184, 184, 184, 184, 184, + 168, 168, 168, 168, 168, 168, 168, 168, 224, 224, 224, 224, 224, 224, 224, 224, + 216, 216, 216, 216, 216, 216, 216, 216, 8, 8, 8, 8, 8,1008, 8, 8, + 160, 160, 160, 160, 160, 160, 160, 160, 256, 256, 256, 256, 256, 256, 256, 256, + 8, 8, 8,1008, 0, 0, 0, 0,1120, 56, 56,1128,1120, 56, 56,1128, + 32, 32, 32, 32, 32,1304, 32,1304, 56, 56,1536, 56, 56, 56,1536, 56, + 56, 56, 56, 56, 56, 56, 56,2096, 32, 32, 32, 32,2104,2112, 32, 32, + 120, 120, 120, 120, 120, 120,2120,2128,2136,2144, 160, 160,2152, 160, 160, 160, + 160, 160, 160, 160,2160, 320, 160, 160,2168, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136,2176, 424, 424, 424,2184, 424, 424, 424, 424, 424, + 424, 424,2192, 376, 376, 376, 376, 376, 376,2200, 376, 376, 376,2208,2216, 0, + 1544,2224, 72,2232, 72, 72, 72, 72,2240,2248,2256, 72, 72, 72,2264, 72, + 72, 72, 72,1544, 72, 72, 72, 72, 520,2272, 520, 520, 520, 520, 520, 520, + 520,2280, 72, 72, 72, 72, 72, 72, 800, 800, 800, 800, 800, 800,2288, 0, + 712, 712, 712, 712, 712, 712, 712,2296, 808, 808, 808, 808, 808,2304, 808,2312, + 1312,1312,1312,2320, 520,2328, 72, 72, 72, 72,2336, 72, 72, 72, 72, 72, + 72, 72, 72, 72,2344, 72, 72, 72, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264,2352, 264,2360, 264, 264, 264,2368,1552,2376,1136,1136,2384,2392,2400, + 1552,2408,2416,2424,2432,1136,1136,2440,2448,1560,2456,1320,1320,2464,2472,2480, + 1560,2488,2496,2504,2512,1320,2520, 0,2528,1568,2536,1328,1328,2544,2552,2560, + 1568,2568,2576, 0,2584,1328,2592,2600,2608,1576,2616,1144,1144,2624,2632,2640, + 1576,2648,2656,2664,2672,1144,1144, 0,2680,1336,1584,2688,2696,1336, 528,2704, + 1336,1584,2712, 0,2720, 528, 528,2728, 816,1592,1600, 816, 816,1600, 816,2736, + 1592,2744,2752,2760,2768, 816,2776, 816,1152,1608,1616,1152,1152,1616,2784,2792, + 1608,2800,2808,2816,2824,1152,2832, 0, 432,1624,1632, 432, 432, 432, 432, 432, + 1624,1632,2840, 432,2848, 432, 432, 432,2856, 824,1640,2864, 824, 824,2872,2880, + 1640,2888,2896, 824,2904, 824,2912, 0,2920, 536, 536, 536, 536, 536, 536,2928, + 536, 536, 536,2936, 0, 0, 0, 0,2944,2952, 992, 992,2960, 992, 992,2968, + 2976,2984, 992,2992, 0, 0, 0, 0, 240, 240, 240, 240, 240, 240, 240, 240, + 240,1344, 240, 240, 240,3000,1344, 240, 240, 240, 240,1344, 240, 240, 240,1648, + 240,1648,3008,3016, 0, 0, 0, 0, 216, 216, 216, 216, 280, 280, 280, 280, + 1656,1664, 280, 280, 280, 280, 280,3024, 176, 176, 176, 176, 176, 176, 176, 176, + 176, 832, 304, 832, 176, 176, 176, 176, 176, 832, 176, 176, 176, 176, 832, 304, + 832, 176, 304, 176, 176, 176, 176, 176, 176, 176, 832, 176, 176, 176, 176, 176, + 176, 176, 176,3032, 176, 176, 176,3040, 176, 176, 176,3048, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248,1672,1672,1352,1352,1352,3056, 440, 440, 440, 440, + 440, 440, 440, 440, 440,3064, 440,3072,1680,1680,3080,3088,1688,1688,3096, 0, + 1696,1696,3104, 0,3112,3120,3128, 0, 296, 296, 296, 296, 296, 296, 296, 296, + 296, 296, 296,3136, 296,1704, 296,1704,3144, 272, 272,3152, 272, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272,3160, 272, 272, 272, 272, 272,3168, 96, 96, + 96, 96, 96, 96, 96, 96,3176, 0, 840, 840, 840,3184, 840,1712, 840,1712, + 3192, 840,1360,1360,1360,3200,3208, 0, 544, 544, 544, 544, 544,3216, 544, 544, + 544,3224, 544,3232, 296, 296, 296, 296,1368,1368,1368,3240, 352, 352, 352, 352, + 352, 352, 352,3248, 352, 352, 352,3256, 352,1720, 352,1720, 352,3264, 120, 120, + 120, 120, 120, 120, 120, 120,1728, 0, 328, 328, 328, 328, 328, 328, 328, 328, + 328,3272, 328, 328, 328, 328, 328, 328, 552, 552, 552, 552, 552, 552, 552, 552, + 848, 848, 848, 848, 848, 848,3280,3288, 624, 624, 624, 624, 624, 624, 624,3296, + 624,3304, 856, 856, 856, 856, 856, 856, 136,3312, 280, 280, 280, 280, 280,3320, + 552, 0,3328, 120,3336,3344,3352,3360, 56, 56, 56, 56,3368,3376, 56, 56, + 56, 56, 56,3384,3392,3400, 56,3408, 56, 56, 56, 56, 56, 56, 56,3416, + 160, 160, 864, 864, 160, 160, 160, 160, 864, 864, 160,3424, 160, 160, 160, 864, + 160, 160, 160, 160, 160, 160,1736, 160,1736, 160,3432,3440, 160, 160,3448,1744, + 32,3456, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,1000, 32,3464,3472, + 32, 32, 56, 56, 32, 32, 32, 32, 632, 0, 120, 120, 120, 120,1728, 0, + 32, 32, 32, 32,3480,3488,1304, 32, 32,3496, 32, 32, 56, 56, 56, 56, + 56,3504, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 720, 0, 0, + 32,1376, 0, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,1752, 32, + 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 56, 56, 56, 56, + 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320,3512,3520, + 280, 280, 280, 280,1656,1664, 728, 728, 728, 728, 728, 728, 728,1760,3528,1760, + 176, 176, 304, 0, 304, 304, 304, 304, 304, 304, 304, 304, 136, 136, 136, 136, + 32, 32, 32, 560, 336, 0, 0, 0, 8, 8, 8,3536, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8,3544, 0, 8, 8,1008, 0, 0, 0, 32, 32, + 3552, 32, 32, 32,3560,3568, 32,3576,3584, 168, 168, 168, 168, 168, 168, 168, + 168, 168,3592,3600,1768, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,3608, + 3616, 568, 568, 568, 568, 568,3624, 16, 16,1160, 32, 32, 568, 568, 568, 568, + 32, 32, 32, 32, 560,3632, 200, 200, 16, 16, 16,1160, 32, 32, 32, 32, + 32, 32, 32, 32, 16, 16, 16,3640, 32, 32, 200, 200, 200, 200, 200,3648, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 32, 32, 32, 32, 32, + 80,3656, 80, 80, 80, 80, 80, 80,3664, 0, 872, 872, 872, 872, 872, 872, + 192, 192, 192, 192, 192,3672, 0, 0, 136, 136, 136, 136, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 0, 32, 32, 32, 32,3680, 56, 56, 56, + 56,3688, 56, 56, 56, 56, 56, 56, 56, 56, 56,3696,3704, 0,3712, 56, + 1016,1016,1016,1016,1016,3720, 32, 720, 736, 736, 736, 736, 736, 736, 736, 0, + 576, 576, 576, 576, 576, 576, 576, 576,3728,3736, 576,3744, 264, 264, 264, 264, + 1024,1024,1024,1024,1024,3752,1168,1168,1168,1168,3760,3768, 16, 16, 16,3776, + 448, 448, 448, 448, 448, 448, 448, 448, 448,3784, 448,3792, 216, 216, 216,3800, + 640, 640, 640, 640, 640, 640,3808, 0, 640,3816, 640,3824, 216, 216, 216, 216, + 648, 648, 648, 648, 648, 648, 648, 648,3832, 0, 0,3840, 656, 656,3848, 0, + 1384,1384,1384, 0, 304, 304, 56, 56, 56, 56, 56,3856,3864,3872, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, 656, 656, 656, 656, 656,3880, 656,3888, + 16, 16, 16, 16,1776, 0, 16, 16,1160,3896, 16, 16, 16, 16, 16,1776, + 8, 8, 8,1784, 0, 0, 0, 0,1792, 0,3904,3912, 376, 376,3920,3928, + 3936, 376, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,3944, + 72, 72, 0, 0, 0, 0, 72, 72, 120, 120, 32, 720, 120,3952, 32, 32, + 32, 32,1800, 32, 664, 336,3960, 72, 72, 72, 72, 72, 72, 72, 72,3968, + 880, 32, 32, 32,1120, 56, 56,1128,1120, 56, 56,1128,3976, 200,1768, 200, + 200, 200, 200,3984, 16, 16, 16,1160,1392,1392,1392,3992, 664, 664, 0,4000, + 232,4008, 232, 232,4016, 232, 232,4024, 232,1808, 232,1808, 0, 0, 0, 0, + 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,4032, + 4040, 32, 32, 32, 32, 32,1816, 32, 160,1744, 32, 632,4048, 0, 0, 0, + 0, 0, 32, 32, 32, 32, 32,4056,1400,1400,1400,4064, 888, 888, 888, 888, + 888, 888,4072, 0,1824, 32, 32, 336,1176,1176,1176,1176,4080,4088,1408,1408, + 1408,4096,1032,1032,1032,1032,1032,4104,1416,1416,1416,4112,1040,1040,1040,1040, + 4120,1040,4128, 0, 0, 0, 0, 0, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 896, 896, 896, 896, 896, 896,1184,1184,1184,4136,1184,4144, 672, 672, + 672, 672,1832, 672, 672, 672, 672,1832,1048,1048,1048,1048,1048, 0, 904, 904, + 904, 904, 904, 904,4152,4160,1192,1840,1192,1840,4168,1192,1848,1192,1848,4176, + 912, 912, 912, 912, 912, 912,4184, 0, 184, 184, 184, 184, 184, 184,4192, 0, + 184, 184,4200, 0, 184, 0, 0, 0,4208, 56, 56, 56, 56, 56,4216, 56, + 4224,4232,1200,1200,1200,1200,4240,4248,1424,1424,4256,1424,1208,1208,1208,1208, + 1216,1216,1216,4264,4272,1216, 0, 0, 0, 0, 0, 0,1856,1856,4280,4288, + 1432,1432,1432,4296,1440,1440,1440,4304,1448,1448,1448,4312, 0, 0, 0, 0, + 1224,1224,1224,1224, 464, 464, 464,4320, 464, 464,4328, 464, 464, 464, 464, 464, + 4336,4344,4352,4360,1232,1232,4368,4376,1232,1864,1232,1864,1240,1240,1240,1240, + 1248,1248,1248,1248, 0, 0, 0, 0,1256,1256,1256,1256,1872,4384,1872, 0, + 920, 920, 920, 920, 920, 920,4392,4400,1456,1456,4408,1456,1464,1464,4416,1464, + 1880,1880,4424,4432, 0,4440, 0, 0, 584, 584, 584, 584, 584, 584, 584, 584, + 584,4448, 0, 0, 0, 0, 0, 0, 384, 384, 384, 384, 384, 384,1888, 0, + 384, 384, 384, 384, 384, 384,1888,4456, 928, 928, 928, 928, 928, 0, 928,4464, + 936, 936, 936, 936,1896,4472, 936, 936,1896,4480, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 72, 72, 72,1904,1056,1056,1056,1056,1056,4488,4496, 0, + 4504,1912, 72, 72, 72,1904, 72, 72,1064,1064,1064,1064,1064, 0,1072,1072, + 1072,1072,1072,4512, 0, 0,1472,1472,1472,4520, 0, 0, 0, 0,1480,1480, + 1480,4528, 0, 0,1920,1920,4536, 0, 392, 392, 392, 392, 392, 392, 392, 392, + 392,1928,4544, 392, 392, 392,1928,4552, 680, 680, 680, 680, 680, 680, 680, 680, + 4560,4568,1264,1264,1264,4576,1264,4584, 688, 688, 688, 688, 688, 688,4592, 688, + 688, 0,1272,1272,1272,1272,4600, 0, 360, 360, 360, 360, 360, 360, 360, 360, + 360, 360, 360, 360,4608, 824,4616, 0, 744, 744,4624, 744, 744, 744, 744, 744, + 4632, 0, 0, 0, 0, 0, 0, 0,4640,4648,1936,4656,1936,4664, 696, 696, + 696, 696, 696, 696, 696,4672, 696,4680,4688,1944,4696,1952,1952,4704,4712,4720, + 1944,4728,4736,4744,4752,1960,1960, 0, 944,4760, 944, 944, 944, 944,1968, 944, + 4768,4776,1968,4784,4792, 0, 0, 0, 408, 408, 408, 408, 408, 408, 408, 408, + 408, 408, 408,4800,4808, 0, 0, 0, 472, 472, 472, 472, 472, 472, 472, 472, + 472, 0, 472,4816, 0, 0, 0, 0, 480, 480, 480, 480, 480, 480,1976, 480, + 480, 480, 480,1976, 0, 0, 0, 0, 592, 592, 592, 592, 592, 592, 592, 592, + 4824, 0, 592,4832, 272,4840, 0, 0, 704, 704, 704, 704, 704, 704, 704,1984, + 704,1984, 216, 216,4848, 0, 0, 0, 952, 952, 952,4856, 952,4864, 952, 952, + 4872, 0, 0, 0, 0, 0, 0, 0, 752, 752, 752, 752, 752, 752, 752,4880, + 0, 0, 0, 0, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,4888,4896, + 1992,4904,4912,1280,1280,1280,4920,4928,1992, 0,1280,4936, 0, 0, 0, 0, + 0, 0, 0, 0, 960,2000, 960, 960, 960, 960, 960,2000,4944, 0, 0, 0, + 600, 600, 600, 600, 600, 600, 600, 600, 600, 0, 496, 496, 496, 496, 496, 496, + 496, 496, 496, 496,4952, 0, 96, 96, 760, 760, 760, 760, 760, 760, 760,4960, + 264,4968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, 0, 0, 0, + 1080,1080,1080,1080,2008, 0,1080,2008, 608,4976, 608, 608, 608, 608,4984, 608, + 4992, 0, 608, 608, 608,5000, 968, 968, 968, 968,5008, 968, 968,5016,5024, 0, + 2016,5032, 976, 976, 976, 976,2016,5040, 976, 0, 976,5048,5056,5064,1288,1288, + 1288,5072,5080,5088,1288,5096, 984, 984, 984, 984, 984,5104, 984,5112,5120, 0, + 0, 0, 0, 0,1488,1488,1488,5128, 616, 616,5136, 616, 616, 616, 616,5144, + 616, 616, 616,5152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,5160, 0, + 528, 528, 528, 528, 528, 528,5168,5176, 64, 64, 64,5184, 0, 0, 0, 0, + 5192, 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 256, 256, 256, + 256,5200, 64, 64, 64, 64, 64, 64,5208, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,5216, 0, + 48, 48,5224, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,5232, + 5240, 0, 0, 0, 0, 0, 0, 0, 768, 768, 768, 768, 768, 768, 768,5248, + 104, 104, 104, 104, 104, 104, 104,5256,1296,1296,1296,5264,1296,5272, 504, 504, + 504, 504, 504, 504, 504, 504, 504,5280, 504,5288,1496,1496,1496,2024,2024, 0, + 368, 368, 368, 368, 368, 368, 368, 368,5296, 0, 368,2032,2032, 368, 368,5304, + 368, 368, 0, 0, 0, 0, 0, 0, 776, 776, 776, 776, 776, 776, 776,5312, + 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416,5320,1088,1088,1088,5328, + 1088,1088,5336, 0, 0, 0, 0, 0, 288, 288, 288, 288, 288, 288, 288, 288, + 288,5344, 288, 288, 288, 288, 288, 288, 288,5352, 288, 288, 0, 0, 0, 0, + 0, 0, 0, 0,5360, 0,2040, 0, 144, 144, 144,5368, 0, 0, 0,5376, + 40, 40, 40, 40,5384, 0, 0, 0, 40, 40, 40, 40, 40, 40,5392, 0, + 88, 88,5400, 0, 88, 88, 88, 88, 88, 88,5408, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,5416,5424,5432, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168,5440,2048,5448, 0, 0, 0,5456, 0,5464,2048, 152, 152, + 152, 152, 152, 152, 152, 152, 152,5472, 312, 312, 312, 312, 312, 312, 312, 312, + 312, 312, 312, 312, 312,5480, 312,5488, 312,5496, 312,5504, 336, 0, 0, 0, + 32, 32, 32, 32, 32, 32, 32, 632, 32, 32, 32, 32, 32, 32, 336,2056, + 32, 32,5512,5520, 32, 32, 32, 560, 120, 120, 120, 120, 120,5528, 120, 120, + 5536, 0, 32, 32, 32, 32, 32, 32, 336, 0, 0, 0, 0, 0, 0, 0, + 32, 32, 32, 32, 32, 32, 560, 0, 32, 32, 32, 32,2064,1824, 32, 32, + 32, 32, 32, 32,2064,5544, 32,5552,5560,5568, 32, 32, 32,5576, 32, 32, + 864, 0, 32,5584, 32, 32, 32, 32, 720, 0, 0, 0, 0, 0, 0, 0, + 32, 32, 336, 0, 32, 32, 336, 0, 32, 32, 664, 0, 32, 32, 32,1504, + 32, 32,1000, 32, 32, 32, 32, 32, 32, 32, 32,1000,5592,5600, 32,5608, + 5616, 32, 32, 32, 32, 32, 32, 32,2072,5624,1000,1000, 32, 32, 32,5632, + 5640,2056,5648, 32, 32, 32, 32, 32, 32, 32, 32, 32, 664, 32, 32, 32, + 32,1752, 32, 32, 32, 32, 32, 32, 112,5656, 0,5664,5672, 112, 0, 0, + 32, 32, 32, 632, 0, 0, 0, 0,5680, 0,1792, 0, 0, 0, 0, 0, + 0,5688, 56, 56, 56, 56,5696, 56,5704, 344, 344,5712,5720,5728, 136, 136, + 136, 136, 136, 136, 136,5736, 0, 0, 0,5744, 0, 0, 0, 0, 0, 0, + 784, 784, 784, 784, 784,5752, 784,5760, 784,5768, 0, 0, 0, 0, 0, 0, + 0, 0,1512,1512,1512,5776, 0, 0, 792, 792, 792, 792, 792, 792, 792,5784, + 0, 0,1096,1096,1096,1096,1096,5792, 0, 0,1104,1104,1104,1104,1104,5800, + 1112,1112,1112,5808,1112,1112,5816,5824, 0, 0, 0, 0, 304,5832, 176, 304, + 5840, 224,5848, 0, 0, 0, 0, 0, 512, 512, 512, 512, 512, 512, 512, 512, + 512,5856, 512,5864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 880, 32, + 32, 32, 32, 32, 32, 32, 632, 0, 880, 32, 32, 32, 32, 32, 32, 560, + 5872, 72, 72, 72,1520,1912,1528,5880,5888,5896,1520,5904,1520,1528,1528,5912, + 72,2080, 72,2088,5920,2080, 72,2088, 0, 0, 0, 0, 0, 0,5928, 0, + 32, 32, 32, 32, 32, 336, 32, 32, 32, 32, 336, 0, 32, 664, 880, 32, + 880, 32, 880, 32, 32, 32, 560, 0, 32, 32, 32, 32, 32, 664, 0, 0, + 0, 0, 0, 0,5936, 32, 32, 32,5944, 0, 32, 32, 32, 32, 32, 336, + 32,1504, 720, 0, 560, 0, 0, 0, 32, 32, 32,5952, 32, 632, 32, 632, + 32, 32, 32, 336, 32, 336, 32, 32, 32, 336, 32, 32, 32, 32, 32, 32, + 32, 0, 32, 720, 32, 32, 32, 32, 32, 0, 32, 32, 32, 560, 32, 336, + 720, 0, 32,1504, 0, 0, 0, 0, 32, 32, 32, 0, 32, 560, 32, 632, + 664,5960, 32,2072, 32,1816, 32,1376, 32, 32,1800, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32,1376, 8, 8, 8, 8, 0, 0, 0, 0, + 8, 8, 8,2040, 8, 8, 8, 8, 8, 8, 8, 8,5968, 0, 8, 8, + 8,5976, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,1784, + 5984, 0, 0, 0, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 939, 940, 941, 942, 946, 948, 0, 962, + 969, 970, 971, 976,1001,1002,1003,1008, 0,1033,1040,1041,1042,1043,1047, 0, + 0,1080,1081,1082,1086,1110, 0, 0,1124,1125,1126,1127,1131,1133, 0,1147, + 1154,1155,1156,1161,1187,1188,1189,1193, 0,1219,1226,1227,1228,1229,1233, 0, + 0,1267,1268,1269,1273,1298, 0,1303, 943,1128, 944,1129, 954,1139, 958,1143, + 959,1144, 960,1145, 961,1146, 964,1149, 0, 0, 973,1158, 974,1159, 975,1160, + 983,1168, 978,1163, 988,1173, 990,1175, 991,1176, 993,1178, 994,1179, 0, 0, + 1004,1190,1005,1191,1006,1192,1014,1199,1007, 0, 0, 0,1016,1201,1020,1206, + 0,1022,1208,1025,1211,1023,1209, 0, 0, 0, 0,1032,1218,1037,1223,1035, + 1221, 0, 0, 0,1044,1230,1045,1231,1049,1235, 0, 0,1058,1244,1064,1250, + 1060,1246,1066,1252,1067,1253,1072,1258,1069,1255,1077,1264,1074,1261, 0, 0, + 1083,1270,1084,1271,1085,1272,1088,1275,1089,1276,1096,1283,1103,1290,1111,1299, + 1115,1118,1307,1120,1309,1121,1310, 0,1053,1239, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0,1093,1280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 949,1134,1010,1195,1050,1236,1090,1277,1341,1368,1340, + 1367,1342,1369,1339,1366, 0,1320,1347,1418,1419,1323,1350, 0, 0, 992,1177, + 1018,1204,1055,1241,1416,1417,1415,1424,1202, 0, 0, 0, 987,1172, 0, 0, + 1031,1217,1321,1348,1322,1349,1338,1365, 950,1135, 951,1136, 979,1164, 980,1165, + 1011,1196,1012,1197,1051,1237,1052,1238,1061,1247,1062,1248,1091,1278,1092,1279, + 1071,1257,1076,1263, 0, 0, 997,1182, 0, 0, 0, 0, 0, 0, 945,1130, + 982,1167,1337,1364,1335,1362,1046,1232,1422,1423,1113,1301, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 10,1425, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,1314,1427, 5, + 1434,1438,1443, 0,1450, 0,1455,1461,1514, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1446,1458,1468,1476,1480,1486,1517, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1489,1503,1494,1500,1508, 0, 0, 0, 0,1520,1521, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,1526,1528, 0,1525, 0, 0, 0,1522, + 0, 0, 0, 0,1536,1532,1539, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,1534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,1556, 0, 0, 0, 0, 0, 0,1548,1550, 0,1547, 0, 0, 0,1567, + 0, 0, 0, 0,1558,1554,1561, 0, 0, 0, 0, 0, 0, 0,1568,1569, + 0, 0, 0, 0, 0, 0, 0, 0, 0,1529,1551, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0,1523,1545,1524,1546, 0, 0,1527,1549, + 0, 0,1570,1571,1530,1552,1531,1553, 0, 0,1533,1555,1535,1557,1537,1559, + 0, 0,1572,1573,1544,1566,1538,1560,1540,1562,1541,1563,1542,1564, 0, 0, + 1543,1565, 0, 0, 0, 0, 0, 0, 0, 0,1606,1607,1609,1608,1610, 0, + 0, 0, 0, 0, 0, 0, 0, 0,1613, 0,1611, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1612, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,1620, 0, 0, 0, 0, 0, 0, 0,1623, 0, 0,1624, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1614,1615,1616,1617,1618,1619,1621,1622, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,1628,1629, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,1625,1626, 0,1627, 0, 0, 0,1634, 0, 0,1635, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,1630,1631,1632, 0, 0,1633, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1639, 0, 0,1638,1640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,1636,1637, 0, 0, 0, 0, 0, 0,1641, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1642,1644,1643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1645, 0, 0, 0, 0, 0, 0, 0,1646, 0, 0, 0, 0, 0, 0,1648, + 1649, 0,1647,1650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1651,1653,1652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1654, 0,1655,1657,1656, 0, 0, 0, 0,1659, 0, 0, 0, 0, + 0, 0, 0, 0, 0,1660, 0, 0, 0, 0,1661, 0, 0, 0, 0,1662, + 0, 0, 0, 0,1663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,1658, 0, 0, 0, 0, 0, 0, 0, 0, 0,1664, 0,1665,1673, 0, + 1674, 0, 0, 0, 0, 0, 0, 0, 0,1666, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1668, 0, 0, 0, 0, + 0, 0, 0, 0, 0,1669, 0, 0, 0, 0,1670, 0, 0, 0, 0,1671, + 0, 0, 0, 0,1672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,1667, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1675, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1676, 0, + 1677, 0,1678, 0,1679, 0,1680, 0, 0, 0,1681, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,1682, 0,1683, 0, 0,1684,1685, 0,1686, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 953,1138, 955,1140, 956,1141, 957,1142, + 1324,1351, 963,1148, 965,1150, 968,1153, 966,1151, 967,1152,1378,1380,1379,1381, + 984,1169, 985,1170,1420,1421, 986,1171, 989,1174, 995,1180, 998,1183, 996,1181, + 999,1184,1000,1185,1015,1200,1329,1356,1017,1203,1019,1205,1021,1207,1024,1210, + 1687,1688,1027,1213,1026,1212,1028,1214,1029,1215,1030,1216,1034,1220,1036,1222, + 1039,1225,1038,1224,1334,1361,1336,1363,1382,1384,1383,1385,1056,1242,1057,1243, + 1059,1245,1063,1249,1689,1690,1065,1251,1068,1254,1070,1256,1386,1387,1388,1389, + 1691,1692,1073,1259,1075,1262,1079,1266,1078,1265,1095,1282,1098,1285,1097,1284, + 1390,1391,1392,1393,1099,1286,1100,1287,1101,1288,1102,1289,1105,1292,1104,1291, + 1106,1294,1107,1295,1108,1296,1114,1302,1119,1308,1122,1311,1123,1312,1186,1260, + 1293,1305, 0,1394, 0, 0, 0, 0, 952,1137, 947,1132,1317,1344,1316,1343, + 1319,1346,1318,1345,1693,1695,1371,1375,1370,1374,1373,1377,1372,1376,1694,1696, + 981,1166, 977,1162, 972,1157,1326,1353,1325,1352,1328,1355,1327,1354,1697,1698, + 1009,1194,1013,1198,1054,1240,1048,1234,1331,1358,1330,1357,1333,1360,1332,1359, + 1699,1700,1396,1401,1395,1400,1398,1403,1397,1402,1399,1404,1094,1281,1087,1274, + 1406,1411,1405,1410,1408,1413,1407,1412,1409,1414,1109,1297,1117,1306,1116,1304, + 1112,1300, 0, 0, 0, 0, 0, 0,1471,1472,1701,1705,1702,1706,1703,1707, + 1430,1431,1715,1719,1716,1720,1717,1721,1477,1478,1729,1731,1730,1732, 0, 0, + 1435,1436,1733,1735,1734,1736, 0, 0,1481,1482,1737,1741,1738,1742,1739,1743, + 1439,1440,1751,1755,1752,1756,1753,1757,1490,1491,1765,1768,1766,1769,1767,1770, + 1447,1448,1771,1774,1772,1775,1773,1776,1495,1496,1777,1779,1778,1780, 0, 0, + 1451,1452,1781,1783,1782,1784, 0, 0,1504,1505,1785,1788,1786,1789,1787,1790, + 0,1459, 0,1791, 0,1792, 0,1793,1509,1510,1794,1798,1795,1799,1796,1800, + 1462,1463,1808,1812,1809,1813,1810,1814,1467, 21,1475, 22,1479, 23,1485, 24, + 1493, 27,1499, 28,1507, 29, 0, 0,1704,1708,1709,1710,1711,1712,1713,1714, + 1718,1722,1723,1724,1725,1726,1727,1728,1740,1744,1745,1746,1747,1748,1749,1750, + 1754,1758,1759,1760,1761,1762,1763,1764,1797,1801,1802,1803,1804,1805,1806,1807, + 1811,1815,1816,1817,1818,1819,1820,1821,1470,1469,1822,1474,1465, 0,1473,1825, + 1429,1428,1426, 12,1432, 0, 26, 0, 0,1315,1823,1484,1466, 0,1483,1829, + 1433, 13,1437, 14,1441,1826,1827,1828,1488,1487,1513, 19, 0, 0,1492,1515, + 1445,1444,1442, 15, 0,1831,1832,1833,1502,1501,1516, 25,1497,1498,1506,1518, + 1457,1456,1454, 17,1453,1313, 11, 3, 0, 0,1824,1512,1519, 0,1511,1830, + 1449, 16,1460, 18,1464, 4, 0, 0, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, + 0, 0, 2, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1834,1835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,1836, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,1837,1839,1838, 0, 0, 0, 0,1840, 0, 0, 0, + 0,1841, 0, 0,1842, 0, 0, 0, 0, 0, 0, 0,1843, 0,1844, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0,1845, 0, 0,1846, 0, 0,1847, + 0,1848, 0, 0, 0, 0, 0, 0, 937, 0,1850, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,1849, 936, 938,1851,1852, 0, 0,1853,1854, 0, 0, + 1855,1856, 0, 0, 0, 0, 0, 0,1857,1858, 0, 0,1861,1862, 0, 0, + 1863,1864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,1867,1868,1869,1870,1859,1860,1865,1866, 0, 0, 0, 0, + 0, 0,1871,1872,1873,1874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,1875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,1877, 0,1878, 0,1879, 0,1880, 0,1881, 0,1882, 0, + 1883, 0,1884, 0,1885, 0,1886, 0,1887, 0,1888, 0, 0,1889, 0,1890, + 0,1891, 0, 0, 0, 0, 0, 0,1892,1893, 0,1894,1895, 0,1896,1897, + 0,1898,1899, 0,1900,1901, 0, 0, 0, 0, 0, 0,1876, 0, 0, 0, + 0, 0, 0, 0, 0, 0,1902, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0,1904, 0,1905, 0,1906, 0,1907, 0,1908, 0,1909, 0, + 1910, 0,1911, 0,1912, 0,1913, 0,1914, 0,1915, 0, 0,1916, 0,1917, + 0,1918, 0, 0, 0, 0, 0, 0,1919,1920, 0,1921,1922, 0,1923,1924, + 0,1925,1926, 0,1927,1928, 0, 0, 0, 0, 0, 0,1903, 0, 0,1929, + 1930,1931,1932, 0, 0, 0,1933, 0, 710, 385, 724, 715, 455, 103, 186, 825, + 825, 242, 751, 205, 241, 336, 524, 601, 663, 676, 688, 738, 411, 434, 474, 500, + 649, 746, 799, 108, 180, 416, 482, 662, 810, 275, 462, 658, 692, 344, 618, 679, + 293, 388, 440, 492, 740, 116, 146, 168, 368, 414, 481, 527, 606, 660, 665, 722, + 781, 803, 809, 538, 553, 588, 642, 758, 811, 701, 233, 299, 573, 612, 487, 540, + 714, 779, 232, 267, 412, 445, 457, 585, 594, 766, 167, 613, 149, 148, 560, 589, + 648, 768, 708, 345, 411, 704, 105, 259, 313, 496, 518, 174, 542, 120, 307, 101, + 430, 372, 584, 183, 228, 529, 650, 697, 424, 732, 428, 349, 632, 355, 517, 110, + 135, 147, 403, 580, 624, 700, 750, 170, 193, 245, 297, 374, 463, 543, 763, 801, + 812, 815, 162, 384, 420, 730, 287, 330, 337, 366, 459, 476, 509, 558, 591, 610, + 726, 652, 734, 759, 154, 163, 198, 473, 683, 697, 292, 311, 353, 423, 572, 494, + 113, 217, 259, 280, 314, 499, 506, 603, 608, 752, 778, 782, 788, 117, 557, 748, + 774, 320, 109, 126, 260, 265, 373, 411, 479, 523, 655, 737, 823, 380, 765, 161, + 395, 398, 438, 451, 502, 516, 537, 583, 791, 136, 340, 769, 122, 273, 446, 727, + 305, 322, 400, 496, 771, 155, 190, 269, 377, 391, 406, 432, 501, 519, 599, 684, + 687, 749, 776, 175, 452, 191, 480, 510, 659, 772, 805, 813, 397, 444, 619, 566, + 568, 575, 491, 471, 707, 111, 636, 156, 153, 288, 346, 578, 256, 435, 383, 729, + 680, 767, 694, 295, 128, 210, 0, 0, 227, 0, 379, 0, 0, 150, 493, 525, + 544, 551, 552, 556, 783, 576, 604, 0, 661, 0, 703, 0, 0, 735, 743, 0, + 0, 0, 793, 794, 795, 808, 741, 773, 118, 127, 130, 166, 169, 177, 207, 213, + 215, 226, 229, 268, 270, 317, 327, 329, 335, 369, 375, 381, 404, 441, 448, 458, + 477, 484, 503, 539, 545, 547, 546, 548, 549, 550, 554, 555, 561, 564, 569, 591, + 593, 595, 598, 607, 620, 625, 625, 651, 690, 695, 705, 706, 716, 717, 733, 735, + 777, 786, 790, 315, 869, 623, 0, 0, 102, 145, 134, 115, 129, 138, 165, 171, + 207, 202, 206, 212, 227, 231, 240, 243, 250, 254, 294, 296, 303, 308, 319, 325, + 321, 329, 326, 335, 341, 357, 360, 362, 370, 379, 388, 389, 393, 421, 424, 438, + 456, 454, 458, 465, 477, 535, 485, 490, 493, 507, 512, 514, 521, 522, 525, 526, + 528, 533, 532, 541, 565, 569, 574, 586, 591, 597, 607, 637, 647, 674, 691, 693, + 695, 698, 703, 699, 705, 704, 702, 706, 709, 717, 728, 736, 747, 754, 770, 777, + 783, 784, 786, 787, 790, 802, 825, 848, 847, 857, 55, 65, 66, 883, 892, 916, + 822, 824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0,1586, 0,1605, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1602,1603,1934,1935,1574,1575,1576,1577,1579,1580,1581,1583,1584, 0, + 1585,1587,1588,1589,1591, 0,1592, 0,1593,1594, 0,1595,1596, 0,1598,1599, + 1600,1601,1604,1582,1578,1590,1597, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0,1936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1937, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1938, 0,1939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,1940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,1941,1942, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,1943,1944, 0, 0, 0, 0, 0, 0,1945, 0,1946, 0, 0, + 0, 0, 0, 0, 0, 0,1947, 0, 0,1948, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1950, 0,1949, + 1951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,1953,1952, 0,1954, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0,1955,1956, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1957, 0, 0, 0, 0, 0, 0, 0, 0,1958,1961,1959,1965,1960,1962,1964, + 1963, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1967,1966,1968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0,1969,1970,1971,1972,1973,1974,1975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 939, 940, 941, 942, 946, 948, 0, 962, 969, 970, 971, 976,1001,1002,1003,1008, - 0,1033,1040,1041,1042,1043,1047, 0, 0,1080,1081,1082,1086,1110, 0, 0, - 1124,1125,1126,1127,1131,1133, 0,1147,1154,1155,1156,1161,1187,1188,1189,1193, - 0,1219,1226,1227,1228,1229,1233, 0, 0,1267,1268,1269,1273,1298, 0,1303, - 943,1128, 944,1129, 954,1139, 958,1143, 959,1144, 960,1145, 961,1146, 964,1149, - 0, 0, 973,1158, 974,1159, 975,1160, 983,1168, 978,1163, 988,1173, 990,1175, - 991,1176, 993,1178, 994,1179, 0, 0,1004,1190,1005,1191,1006,1192,1014,1199, - 1007, 0, 0, 0,1016,1201,1020,1206, 0,1022,1208,1025,1211,1023,1209, 0, - 0, 0, 0,1032,1218,1037,1223,1035,1221, 0, 0, 0,1044,1230,1045,1231, - 1049,1235, 0, 0,1058,1244,1064,1250,1060,1246,1066,1252,1067,1253,1072,1258, - 1069,1255,1077,1264,1074,1261, 0, 0,1083,1270,1084,1271,1085,1272,1088,1275, - 1089,1276,1096,1283,1103,1290,1111,1299,1115,1118,1307,1120,1309,1121,1310, 0, - 1053,1239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1093, - 1280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 949,1134,1010, - 1195,1050,1236,1090,1277,1341,1368,1340,1367,1342,1369,1339,1366, 0,1320,1347, - 1418,1419,1323,1350, 0, 0, 992,1177,1018,1204,1055,1241,1416,1417,1415,1424, - 1202, 0, 0, 0, 987,1172, 0, 0,1031,1217,1321,1348,1322,1349,1338,1365, - 950,1135, 951,1136, 979,1164, 980,1165,1011,1196,1012,1197,1051,1237,1052,1238, - 1061,1247,1062,1248,1091,1278,1092,1279,1071,1257,1076,1263, 0, 0, 997,1182, - 0, 0, 0, 0, 0, 0, 945,1130, 982,1167,1337,1364,1335,1362,1046,1232, - 1422,1423,1113,1301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 9, 0, 10,1425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0,1314,1427, 5,1434,1438,1443, 0,1450, 0,1455,1461, - 1514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1446,1458,1468,1476,1480,1486, - 1517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1489,1503,1494,1500,1508, 0, - 0, 0, 0,1520,1521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1526,1528, 0,1525, 0, 0, 0,1522, 0, 0, 0, 0,1536,1532,1539, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,1534, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,1556, 0, 0, 0, 0, 0, 0, - 1548,1550, 0,1547, 0, 0, 0,1567, 0, 0, 0, 0,1558,1554,1561, 0, - 0, 0, 0, 0, 0, 0,1568,1569, 0, 0, 0, 0, 0, 0, 0, 0, - 0,1529,1551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1523,1545,1524,1546, 0, 0,1527,1549, 0, 0,1570,1571,1530,1552,1531,1553, - 0, 0,1533,1555,1535,1557,1537,1559, 0, 0,1572,1573,1544,1566,1538,1560, - 1540,1562,1541,1563,1542,1564, 0, 0,1543,1565, 0, 0, 0, 0, 0, 0, - 0, 0,1606,1607,1609,1608,1610, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1613, 0,1611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,1612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,1620, 0, 0, 0, 0, 0, 0, - 0,1623, 0, 0,1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,1614,1615,1616,1617,1618,1619,1621,1622, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1628,1629, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1625,1626, 0,1627, - 0, 0, 0,1634, 0, 0,1635, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,1630,1631,1632, 0, 0,1633, 0, - 0, 0, 0, 0, 0, 0, 0, 0,1639, 0, 0,1638,1640, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1636,1637, 0, 0, - 0, 0, 0, 0,1641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1642,1644,1643, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,1645, 0, 0, 0, 0, 0, 0, 0, - 1646, 0, 0, 0, 0, 0, 0,1648,1649, 0,1647,1650, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1651,1653,1652, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1654, 0,1655,1657,1656, 0, - 0, 0, 0,1659, 0, 0, 0, 0, 0, 0, 0, 0, 0,1660, 0, 0, - 0, 0,1661, 0, 0, 0, 0,1662, 0, 0, 0, 0,1663, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,1658, 0, 0, 0, 0, 0, 0, - 0, 0, 0,1664, 0,1665,1673, 0,1674, 0, 0, 0, 0, 0, 0, 0, - 0,1666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0,1668, 0, 0, 0, 0, 0, 0, 0, 0, 0,1669, 0, 0, - 0, 0,1670, 0, 0, 0, 0,1671, 0, 0, 0, 0,1672, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,1667, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0,1676, 0,1677, 0,1678, 0,1679, 0,1680, 0, - 0, 0,1681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1682, 0,1683, 0, 0, - 1684,1685, 0,1686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 953,1138, 955,1140, 956,1141, 957,1142,1324,1351, 963,1148, 965,1150, 968,1153, - 966,1151, 967,1152,1378,1380,1379,1381, 984,1169, 985,1170,1420,1421, 986,1171, - 989,1174, 995,1180, 998,1183, 996,1181, 999,1184,1000,1185,1015,1200,1329,1356, - 1017,1203,1019,1205,1021,1207,1024,1210,1687,1688,1027,1213,1026,1212,1028,1214, - 1029,1215,1030,1216,1034,1220,1036,1222,1039,1225,1038,1224,1334,1361,1336,1363, - 1382,1384,1383,1385,1056,1242,1057,1243,1059,1245,1063,1249,1689,1690,1065,1251, - 1068,1254,1070,1256,1386,1387,1388,1389,1691,1692,1073,1259,1075,1262,1079,1266, - 1078,1265,1095,1282,1098,1285,1097,1284,1390,1391,1392,1393,1099,1286,1100,1287, - 1101,1288,1102,1289,1105,1292,1104,1291,1106,1294,1107,1295,1108,1296,1114,1302, - 1119,1308,1122,1311,1123,1312,1186,1260,1293,1305, 0,1394, 0, 0, 0, 0, - 952,1137, 947,1132,1317,1344,1316,1343,1319,1346,1318,1345,1693,1695,1371,1375, - 1370,1374,1373,1377,1372,1376,1694,1696, 981,1166, 977,1162, 972,1157,1326,1353, - 1325,1352,1328,1355,1327,1354,1697,1698,1009,1194,1013,1198,1054,1240,1048,1234, - 1331,1358,1330,1357,1333,1360,1332,1359,1699,1700,1396,1401,1395,1400,1398,1403, - 1397,1402,1399,1404,1094,1281,1087,1274,1406,1411,1405,1410,1408,1413,1407,1412, - 1409,1414,1109,1297,1117,1306,1116,1304,1112,1300, 0, 0, 0, 0, 0, 0, - 1471,1472,1701,1705,1702,1706,1703,1707,1430,1431,1715,1719,1716,1720,1717,1721, - 1477,1478,1729,1731,1730,1732, 0, 0,1435,1436,1733,1735,1734,1736, 0, 0, - 1481,1482,1737,1741,1738,1742,1739,1743,1439,1440,1751,1755,1752,1756,1753,1757, - 1490,1491,1765,1768,1766,1769,1767,1770,1447,1448,1771,1774,1772,1775,1773,1776, - 1495,1496,1777,1779,1778,1780, 0, 0,1451,1452,1781,1783,1782,1784, 0, 0, - 1504,1505,1785,1788,1786,1789,1787,1790, 0,1459, 0,1791, 0,1792, 0,1793, - 1509,1510,1794,1798,1795,1799,1796,1800,1462,1463,1808,1812,1809,1813,1810,1814, - 1467, 21,1475, 22,1479, 23,1485, 24,1493, 27,1499, 28,1507, 29, 0, 0, - 1704,1708,1709,1710,1711,1712,1713,1714,1718,1722,1723,1724,1725,1726,1727,1728, - 1740,1744,1745,1746,1747,1748,1749,1750,1754,1758,1759,1760,1761,1762,1763,1764, - 1797,1801,1802,1803,1804,1805,1806,1807,1811,1815,1816,1817,1818,1819,1820,1821, - 1470,1469,1822,1474,1465, 0,1473,1825,1429,1428,1426, 12,1432, 0, 26, 0, - 0,1315,1823,1484,1466, 0,1483,1829,1433, 13,1437, 14,1441,1826,1827,1828, - 1488,1487,1513, 19, 0, 0,1492,1515,1445,1444,1442, 15, 0,1831,1832,1833, - 1502,1501,1516, 25,1497,1498,1506,1518,1457,1456,1454, 17,1453,1313, 11, 3, - 0, 0,1824,1512,1519, 0,1511,1830,1449, 16,1460, 18,1464, 4, 0, 0, - 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 2, 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1834,1835, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1836, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1837,1839,1838, - 0, 0, 0, 0,1840, 0, 0, 0, 0,1841, 0, 0,1842, 0, 0, 0, - 0, 0, 0, 0,1843, 0,1844, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0,1845, 0, 0,1846, 0, 0,1847, 0,1848, 0, 0, 0, 0, 0, 0, - 937, 0,1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1849, 936, 938, - 1851,1852, 0, 0,1853,1854, 0, 0,1855,1856, 0, 0, 0, 0, 0, 0, - 1857,1858, 0, 0,1861,1862, 0, 0,1863,1864, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1867,1868,1869,1870, - 1859,1860,1865,1866, 0, 0, 0, 0, 0, 0,1871,1872,1873,1874, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1875, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1877, 0,1878, 0, - 1879, 0,1880, 0,1881, 0,1882, 0,1883, 0,1884, 0,1885, 0,1886, 0, - 1887, 0,1888, 0, 0,1889, 0,1890, 0,1891, 0, 0, 0, 0, 0, 0, - 1892,1893, 0,1894,1895, 0,1896,1897, 0,1898,1899, 0,1900,1901, 0, 0, - 0, 0, 0, 0,1876, 0, 0, 0, 0, 0, 0, 0, 0, 0,1902, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1904, 0,1905, 0, - 1906, 0,1907, 0,1908, 0,1909, 0,1910, 0,1911, 0,1912, 0,1913, 0, - 1914, 0,1915, 0, 0,1916, 0,1917, 0,1918, 0, 0, 0, 0, 0, 0, - 1919,1920, 0,1921,1922, 0,1923,1924, 0,1925,1926, 0,1927,1928, 0, 0, - 0, 0, 0, 0,1903, 0, 0,1929,1930,1931,1932, 0, 0, 0,1933, 0, - 710, 385, 724, 715, 455, 103, 186, 825, 825, 242, 751, 205, 241, 336, 524, 601, - 663, 676, 688, 738, 411, 434, 474, 500, 649, 746, 799, 108, 180, 416, 482, 662, - 810, 275, 462, 658, 692, 344, 618, 679, 293, 388, 440, 492, 740, 116, 146, 168, - 368, 414, 481, 527, 606, 660, 665, 722, 781, 803, 809, 538, 553, 588, 642, 758, - 811, 701, 233, 299, 573, 612, 487, 540, 714, 779, 232, 267, 412, 445, 457, 585, - 594, 766, 167, 613, 149, 148, 560, 589, 648, 768, 708, 345, 411, 704, 105, 259, - 313, 496, 518, 174, 542, 120, 307, 101, 430, 372, 584, 183, 228, 529, 650, 697, - 424, 732, 428, 349, 632, 355, 517, 110, 135, 147, 403, 580, 624, 700, 750, 170, - 193, 245, 297, 374, 463, 543, 763, 801, 812, 815, 162, 384, 420, 730, 287, 330, - 337, 366, 459, 476, 509, 558, 591, 610, 726, 652, 734, 759, 154, 163, 198, 473, - 683, 697, 292, 311, 353, 423, 572, 494, 113, 217, 259, 280, 314, 499, 506, 603, - 608, 752, 778, 782, 788, 117, 557, 748, 774, 320, 109, 126, 260, 265, 373, 411, - 479, 523, 655, 737, 823, 380, 765, 161, 395, 398, 438, 451, 502, 516, 537, 583, - 791, 136, 340, 769, 122, 273, 446, 727, 305, 322, 400, 496, 771, 155, 190, 269, - 377, 391, 406, 432, 501, 519, 599, 684, 687, 749, 776, 175, 452, 191, 480, 510, - 659, 772, 805, 813, 397, 444, 619, 566, 568, 575, 491, 471, 707, 111, 636, 156, - 153, 288, 346, 578, 256, 435, 383, 729, 680, 767, 694, 295, 128, 210, 0, 0, - 227, 0, 379, 0, 0, 150, 493, 525, 544, 551, 552, 556, 783, 576, 604, 0, - 661, 0, 703, 0, 0, 735, 743, 0, 0, 0, 793, 794, 795, 808, 741, 773, - 118, 127, 130, 166, 169, 177, 207, 213, 215, 226, 229, 268, 270, 317, 327, 329, - 335, 369, 375, 381, 404, 441, 448, 458, 477, 484, 503, 539, 545, 547, 546, 548, - 549, 550, 554, 555, 561, 564, 569, 591, 593, 595, 598, 607, 620, 625, 625, 651, - 690, 695, 705, 706, 716, 717, 733, 735, 777, 786, 790, 315, 869, 623, 0, 0, - 102, 145, 134, 115, 129, 138, 165, 171, 207, 202, 206, 212, 227, 231, 240, 243, - 250, 254, 294, 296, 303, 308, 319, 325, 321, 329, 326, 335, 341, 357, 360, 362, - 370, 379, 388, 389, 393, 421, 424, 438, 456, 454, 458, 465, 477, 535, 485, 490, - 493, 507, 512, 514, 521, 522, 525, 526, 528, 533, 532, 541, 565, 569, 574, 586, - 591, 597, 607, 637, 647, 674, 691, 693, 695, 698, 703, 699, 705, 704, 702, 706, - 709, 717, 728, 736, 747, 754, 770, 777, 783, 784, 786, 787, 790, 802, 825, 848, - 847, 857, 55, 65, 66, 883, 892, 916, 822, 824, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1586, 0,1605, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1602,1603,1934,1935,1574,1575, - 1576,1577,1579,1580,1581,1583,1584, 0,1585,1587,1588,1589,1591, 0,1592, 0, - 1593,1594, 0,1595,1596, 0,1598,1599,1600,1601,1604,1582,1578,1590,1597, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,1936, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,1937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1938, 0,1939, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1940, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1941,1942, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1943,1944, 0, 0, 0, - 0, 0, 0,1945, 0,1946, 0, 0, 0, 0, 0, 0, 0, 0,1947, 0, - 0,1948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0,1950, 0,1949,1951, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1953,1952, 0,1954, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1955,1956, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,1957, 0, 0, 0, 0, 0, 0, 0, - 0,1958,1961,1959,1965,1960,1962,1964,1963, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,1967,1966,1968, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1969,1970, - 1971,1972,1973,1974,1975, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,1976,1977,1978,1980,1979, - 1981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 106, 104, 107, 826, 114, 118, 119, 121, 123, 124, 127, 125, 34, 830, 130, 131, - 132, 137, 827, 35, 133, 139, 829, 142, 143, 112, 144, 145, 924, 151, 152, 37, - 157, 158, 159, 160, 38, 165, 166, 169, 171, 172, 173, 174, 176, 177, 178, 179, - 181, 182, 182, 182, 833, 468, 184, 185, 834, 187, 188, 189, 196, 192, 194, 195, - 197, 199, 200, 201, 203, 204, 204, 206, 208, 209, 211, 218, 213, 219, 214, 216, - 153, 234, 221, 222, 223, 220, 225, 224, 230, 835, 235, 236, 237, 238, 239, 244, - 836, 837, 247, 248, 249, 246, 251, 39, 40, 253, 255, 255, 838, 257, 258, 259, - 261, 839, 262, 263, 301, 264, 41, 266, 270, 272, 271, 841, 274, 842, 277, 276, - 278, 281, 282, 42, 283, 284, 285, 286, 43, 843, 44, 289, 290, 291, 293, 934, - 298, 845, 845, 621, 300, 300, 45, 852, 894, 302, 304, 46, 306, 309, 310, 312, - 316, 48, 47, 317, 846, 318, 323, 324, 325, 324, 328, 329, 333, 331, 332, 334, - 335, 336, 338, 339, 342, 343, 347, 351, 849, 350, 348, 352, 354, 359, 850, 361, - 358, 356, 49, 363, 365, 367, 364, 50, 369, 371, 851, 376, 386, 378, 53, 381, - 52, 51, 140, 141, 387, 382, 614, 78, 388, 389, 390, 394, 392, 856, 54, 399, - 396, 402, 404, 858, 405, 401, 407, 55, 408, 409, 410, 413, 859, 415, 56, 417, - 860, 418, 57, 419, 422, 424, 425, 861, 840, 862, 426, 863, 429, 431, 427, 433, - 437, 441, 438, 439, 442, 443, 864, 436, 449, 450, 58, 454, 453, 865, 447, 460, - 866, 867, 461, 466, 465, 464, 59, 467, 470, 469, 472, 828, 475, 868, 478, 870, - 483, 485, 486, 871, 488, 489, 872, 873, 495, 497, 60, 498, 61, 61, 504, 505, - 507, 508, 511, 62, 513, 874, 515, 875, 518, 844, 520, 876, 877, 878, 63, 64, - 528, 880, 879, 881, 882, 530, 531, 531, 533, 66, 534, 67, 68, 884, 536, 538, - 541, 69, 885, 549, 886, 887, 556, 559, 70, 561, 562, 563, 888, 889, 889, 567, - 71, 890, 570, 571, 72, 891, 577, 73, 581, 579, 582, 893, 587, 74, 590, 592, - 596, 75, 895, 896, 76, 897, 600, 898, 602, 605, 607, 899, 900, 609, 901, 611, - 853, 77, 615, 616, 79, 617, 252, 902, 903, 854, 855, 621, 622, 731, 80, 627, - 626, 628, 164, 629, 630, 631, 633, 904, 632, 634, 639, 640, 635, 641, 646, 651, - 638, 643, 644, 645, 905, 907, 906, 81, 653, 654, 656, 911, 657, 908, 82, 83, - 909, 910, 84, 664, 665, 666, 667, 669, 668, 671, 670, 674, 672, 673, 675, 85, - 677, 678, 86, 681, 682, 912, 685, 686, 87, 689, 36, 913, 914, 88, 89, 696, - 702, 709, 711, 915, 712, 713, 718, 719, 917, 831, 721, 720, 723, 832, 725, 728, - 918, 919, 739, 742, 744, 920, 745, 753, 756, 757, 755, 760, 761, 921, 762, 90, - 764, 922, 91, 775, 279, 780, 923, 925, 92, 93, 785, 926, 94, 927, 787, 787, - 789, 928, 792, 95, 796, 797, 798, 800, 96, 929, 802, 804, 806, 97, 98, 807, - 930, 99, 931, 932, 933, 814, 100, 816, 817, 818, 819, 820, 821, 935, 0, 0, + 0, 0, 0,1976,1977,1978,1980,1979,1981, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 106, 104, 107, 826, 114, 118, 119, 121, + 123, 124, 127, 125, 34, 830, 130, 131, 132, 137, 827, 35, 133, 139, 829, 142, + 143, 112, 144, 145, 924, 151, 152, 37, 157, 158, 159, 160, 38, 165, 166, 169, + 171, 172, 173, 174, 176, 177, 178, 179, 181, 182, 182, 182, 833, 468, 184, 185, + 834, 187, 188, 189, 196, 192, 194, 195, 197, 199, 200, 201, 203, 204, 204, 206, + 208, 209, 211, 218, 213, 219, 214, 216, 153, 234, 221, 222, 223, 220, 225, 224, + 230, 835, 235, 236, 237, 238, 239, 244, 836, 837, 247, 248, 249, 246, 251, 39, + 40, 253, 255, 255, 838, 257, 258, 259, 261, 839, 262, 263, 301, 264, 41, 266, + 270, 272, 271, 841, 274, 842, 277, 276, 278, 281, 282, 42, 283, 284, 285, 286, + 43, 843, 44, 289, 290, 291, 293, 934, 298, 845, 845, 621, 300, 300, 45, 852, + 894, 302, 304, 46, 306, 309, 310, 312, 316, 48, 47, 317, 846, 318, 323, 324, + 325, 324, 328, 329, 333, 331, 332, 334, 335, 336, 338, 339, 342, 343, 347, 351, + 849, 350, 348, 352, 354, 359, 850, 361, 358, 356, 49, 363, 365, 367, 364, 50, + 369, 371, 851, 376, 386, 378, 53, 381, 52, 51, 140, 141, 387, 382, 614, 78, + 388, 389, 390, 394, 392, 856, 54, 399, 396, 402, 404, 858, 405, 401, 407, 55, + 408, 409, 410, 413, 859, 415, 56, 417, 860, 418, 57, 419, 422, 424, 425, 861, + 840, 862, 426, 863, 429, 431, 427, 433, 437, 441, 438, 439, 442, 443, 864, 436, + 449, 450, 58, 454, 453, 865, 447, 460, 866, 867, 461, 466, 465, 464, 59, 467, + 470, 469, 472, 828, 475, 868, 478, 870, 483, 485, 486, 871, 488, 489, 872, 873, + 495, 497, 60, 498, 61, 61, 504, 505, 507, 508, 511, 62, 513, 874, 515, 875, + 518, 844, 520, 876, 877, 878, 63, 64, 528, 880, 879, 881, 882, 530, 531, 531, + 533, 66, 534, 67, 68, 884, 536, 538, 541, 69, 885, 549, 886, 887, 556, 559, + 70, 561, 562, 563, 888, 889, 889, 567, 71, 890, 570, 571, 72, 891, 577, 73, + 581, 579, 582, 893, 587, 74, 590, 592, 596, 75, 895, 896, 76, 897, 600, 898, + 602, 605, 607, 899, 900, 609, 901, 611, 853, 77, 615, 616, 79, 617, 252, 902, + 903, 854, 855, 621, 622, 731, 80, 627, 626, 628, 164, 629, 630, 631, 633, 904, + 632, 634, 639, 640, 635, 641, 646, 651, 638, 643, 644, 645, 905, 907, 906, 81, + 653, 654, 656, 911, 657, 908, 82, 83, 909, 910, 84, 664, 665, 666, 667, 669, + 668, 671, 670, 674, 672, 673, 675, 85, 677, 678, 86, 681, 682, 912, 685, 686, + 87, 689, 36, 913, 914, 88, 89, 696, 702, 709, 711, 915, 712, 713, 718, 719, + 917, 831, 721, 720, 723, 832, 725, 728, 918, 919, 739, 742, 744, 920, 745, 753, + 756, 757, 755, 760, 761, 921, 762, 90, 764, 922, 91, 775, 279, 780, 923, 925, + 92, 93, 785, 926, 94, 927, 787, 787, 789, 928, 792, 95, 796, 797, 798, 800, + 96, 929, 802, 804, 806, 97, 98, 807, 930, 99, 931, 932, 933, 814, 100, 816, + 817, 818, 819, 820, 821, 935, 0, 0, ]; #[allow(dead_code, non_upper_case_globals, clippy::allow_attributes_without_reason)] -static _hb_ucd_i16: [i16; 196]= +static _hb_ucd_palette: [i32; 39]= [ - 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 0, 0, -1, 1, -1, 1, - 0, 0, 1, -1, -1, 1, -1, 0, 0, 0, 0, 1, 0, 1, -1, 0, - 0, 0, 0, 2, 0, -2, 0, 0, 0, 1, -1, 1, 2, 0, -2, 0, - -1, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, -16, 3, 3, 3, -3, - -3, -3, 0, 0, 0, 2016, 0, 0, 0, 0, 0, 2527, 1923, 1914, 1918, 0, - 2250, 0, 0, 0, 0, 0, 0, 138, 0, 7, 0, 0, -7, 0, 0, 0, - 1824, 0, 0, 0, 0, 0, 2104, 0, 2108, 2106, 0, 2106, 1316, 0, 0, 0, - -1, -138, 0, 0, 1, -1, 8, 8, 8, 0, 7, 7, 0, 0, -8, -8, - -8, -7, -7, 0, 1, -1, 0, 2,-1316, 1, -1, 0, -1, 3, 1, -1, - -3, 1, -1, 1, -1, 0, 0,-1914,-1918, 0, 0,-1923,-1824, 0, 0, 0, - 0,-2016, 0, 0, 1, -1, 0, 1, 0, 0,-2104, 0, 0, 0, 0,-2106, - -2108,-2106, 0, 0, 1, -1,-2250, 0, 0, 0,-2527, 0, 0, -2, 0, 1, - -1, 0, 1, -1, + -112883, -2527, -2250, -2108, -2106, -2104, -2016, -1923, + -1918, -1914, -1824, -1316, -138, -16, -8, -7, + -3, -2, -1, 0, 1, 2, 3, 7, + 8, 16, 138, 1316, 1824, 1914, 1918, 1923, + 2016, 2104, 2106, 2108, 2250, 2527, 112883, ]; #[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast, missing_docs)] @@ -2710,14 +2744,14 @@ static _hb_ucd_i16: [i16; 196]= pub(crate) fn _hb_ucd_gc (u: usize) -> u8 { /* packtab: [2^8,2^5,2^3,2^1] */ - if u<1114110usize { (_hb_ucd_u8[7912usize+((((_hb_ucd_u8[2176usize+(((_hb_ucd_u16[(((_hb_ucd_u8[(((((((u)>>1))>>3))>>5) as usize) as usize]) as usize)<<5) as usize+((((((u)>>1))>>3))&31) as usize]) as usize) as usize+((((u)>>1))&7) as usize) as usize]) as usize)<<1) as usize+((u)&1) as usize) as usize]) as u8 } else { 2 } + if u<1114110usize { (_hb_ucd_u8[7944usize+((((_hb_ucd_u8[2176usize+(((_hb_ucd_u16[(((_hb_ucd_u8[(((((((u)>>1))>>3))>>5) as usize) as usize]) as usize)<<5) as usize+((((((u)>>1))>>3))&31) as usize]) as usize) as usize+((((u)>>1))&7) as usize) as usize]) as usize)<<1) as usize+((u)&1) as usize) as usize]) as u8 } else { 2 } } #[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast, missing_docs)] #[inline] pub(crate) fn _hb_ucd_ccc (u: usize) -> u8 { /* packtab: [2^8,2^4,2^3,2^2] */ - if u<125259usize { (_hb_ucd_u8[10370usize+((((_hb_ucd_u8[9270usize+((((_hb_ucd_u8[8539usize+((((_hb_ucd_u8[8294usize+((((((((u)>>2))>>3))>>4) as usize) as usize) as usize]) as usize)<<4) as usize+((((((u)>>2))>>3))&15) as usize) as usize]) as usize)<<3) as usize+((((u)>>2))&7) as usize) as usize]) as usize)<<2) as usize+((u)&3) as usize) as usize]) as u8 } else { 0 } + if u<125259usize { (_hb_ucd_u8[10432usize+((((_hb_ucd_u8[9308usize+((((_hb_ucd_u8[8577usize+((((_hb_ucd_u8[8332usize+((((((((u)>>2))>>3))>>4) as usize) as usize) as usize]) as usize)<<4) as usize+((((((u)>>2))>>3))&15) as usize) as usize]) as usize)<<3) as usize+((((u)>>2))&7) as usize) as usize]) as usize)<<2) as usize+((u)&3) as usize) as usize]) as u8 } else { 0 } } #[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast)] #[inline(always)] @@ -2727,24 +2761,24 @@ fn _hb_ucd_b4 (a: &[u8], i: usize) -> u8 } #[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast, missing_docs)] #[inline] -pub(crate) fn _hb_ucd_bmg (u: usize) -> i16 +pub(crate) fn _hb_ucd_bmg (u: usize) -> i32 { - /* packtab: [2^4,2^3,2^3,2^2] */ - if u<65380usize { (_hb_ucd_i16[((_hb_ucd_u8[11118usize+((((_hb_ucd_u8[11002usize+((((_hb_ucd_b4(&_hb_ucd_u8[10874usize..],(((((((u)>>2))>>3))>>3) as usize) as usize)) as usize)<<3) as usize+((((((u)>>2))>>3))&7) as usize) as usize]) as usize)<<3) as usize+((((u)>>2))&7) as usize) as usize]) as usize) as usize+((u)&3) as usize]) as i16 } else { 0 } + /* packtab: [2^4,2^4,2^3,2^2] palette[39] */ + if u<121617usize { (_hb_ucd_palette[(_hb_ucd_u8[11624usize+(((_hb_ucd_u8[11272usize+((((_hb_ucd_u8[11071usize+((((_hb_ucd_b4(&_hb_ucd_u8[10952usize..],(((((((u)>>2))>>3))>>4) as usize) as usize)) as usize)<<4) as usize+((((((u)>>2))>>3))&15) as usize) as usize]) as usize)<<3) as usize+((((u)>>2))&7) as usize) as usize]) as usize) as usize+((u)&3) as usize) as usize]) as usize]) as i32 } else { 0 } } #[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast, missing_docs)] #[inline] pub(crate) fn _hb_ucd_sc (u: usize) -> u8 { - /* packtab: [2^8,2^4,2^4,2^3] */ - if u<918000usize { (_hb_ucd_u8[12639usize+(((_hb_ucd_u16[3296usize+((((_hb_ucd_u8[11903usize+((((_hb_ucd_u8[11454usize+((((((((u)>>3))>>4))>>4) as usize) as usize) as usize]) as usize)<<4) as usize+((((((u)>>3))>>4))&15) as usize) as usize]) as usize)<<4) as usize+((((u)>>3))&15) as usize) as usize]) as usize) as usize+((u)&7) as usize) as usize]) as u8 } else { 2 } + /* packtab: [2^8,2^4,2^3,2^3] */ + if u<918000usize { (_hb_ucd_u8[12721usize+(((_hb_ucd_u16[4520usize+(((_hb_ucd_u16[3392usize+((((_hb_ucd_u8[11824usize+((((((((u)>>3))>>3))>>4) as usize) as usize) as usize]) as usize)<<4) as usize+((((((u)>>3))>>3))&15) as usize) as usize]) as usize) as usize+((((u)>>3))&7) as usize) as usize]) as usize) as usize+((u)&7) as usize) as usize]) as u8 } else { 2 } } #[allow(dead_code, unused_parens, trivial_numeric_casts, clippy::allow_attributes_without_reason, clippy::unseparated_literal_suffix, clippy::double_parens, clippy::unnecessary_cast, missing_docs)] #[inline] pub(crate) fn _hb_ucd_dm (u: usize) -> u16 { /* packtab: [2^8,2^5,2^4] */ - if u<195102usize { (_hb_ucd_u16[7360usize+((((_hb_ucd_u8[18949usize+((((_hb_ucd_u8[18567usize+((((((u)>>4))>>5) as usize) as usize) as usize]) as usize)<<5) as usize+((((u)>>4))&31) as usize) as usize]) as usize)<<4) as usize+((u)&15) as usize) as usize]) as u16 } else { 0 } + if u<195102usize { (_hb_ucd_u16[7816usize+((((_hb_ucd_u8[19095usize+((((_hb_ucd_u8[18713usize+((((((u)>>4))>>5) as usize) as usize) as usize]) as usize)<<5) as usize+((((u)>>4))&31) as usize) as usize]) as usize)<<4) as usize+((u)&15) as usize) as usize]) as u16 } else { 0 } } } diff --git a/harfrust_capi/include/hr-hb.h b/harfrust_capi/include/hr-hb.h index f887aa7d..961c2ab2 100644 --- a/harfrust_capi/include/hr-hb.h +++ b/harfrust_capi/include/hr-hb.h @@ -357,6 +357,7 @@ #define HB_SCRIPT_INSCRIPTIONAL_PARTHIAN HR_SCRIPT_INSCRIPTIONAL_PARTHIAN #define HB_SCRIPT_INVALID HR_SCRIPT_INVALID #define HB_SCRIPT_JAVANESE HR_SCRIPT_JAVANESE +#define HB_SCRIPT_JURCHEN HR_SCRIPT_JURCHEN #define HB_SCRIPT_KAITHI HR_SCRIPT_KAITHI #define HB_SCRIPT_KANNADA HR_SCRIPT_KANNADA #define HB_SCRIPT_KATAKANA HR_SCRIPT_KATAKANA @@ -425,11 +426,13 @@ #define HB_SCRIPT_PAU_CIN_HAU HR_SCRIPT_PAU_CIN_HAU #define HB_SCRIPT_PHAGS_PA HR_SCRIPT_PHAGS_PA #define HB_SCRIPT_PHOENICIAN HR_SCRIPT_PHOENICIAN +#define HB_SCRIPT_PROTO_CUNEIFORM HR_SCRIPT_PROTO_CUNEIFORM #define HB_SCRIPT_PSALTER_PAHLAVI HR_SCRIPT_PSALTER_PAHLAVI #define HB_SCRIPT_REJANG HR_SCRIPT_REJANG #define HB_SCRIPT_RUNIC HR_SCRIPT_RUNIC #define HB_SCRIPT_SAMARITAN HR_SCRIPT_SAMARITAN #define HB_SCRIPT_SAURASHTRA HR_SCRIPT_SAURASHTRA +#define HB_SCRIPT_SEAL HR_SCRIPT_SEAL #define HB_SCRIPT_SHARADA HR_SCRIPT_SHARADA #define HB_SCRIPT_SHAVIAN HR_SCRIPT_SHAVIAN #define HB_SCRIPT_SIDDHAM HR_SCRIPT_SIDDHAM diff --git a/harfrust_capi/include/hr.h b/harfrust_capi/include/hr.h index 4e7e969e..11ed5c7b 100644 --- a/harfrust_capi/include/hr.h +++ b/harfrust_capi/include/hr.h @@ -1524,6 +1524,21 @@ typedef hr_bool_t (*hr_font_get_glyph_extents_func_t)(struct hr_font_t *font, */ #define HR_SCRIPT_TOLONG_SIKI 1416588403 +/** + * The Jurchen script (`Jurc`). + */ +#define HR_SCRIPT_JURCHEN 1249210979 + +/** + * The Proto-Cuneiform script (`Pcun`). + */ +#define HR_SCRIPT_PROTO_CUNEIFORM 1348695406 + +/** + * The Seal script (`Seal`). + */ +#define HR_SCRIPT_SEAL 1399153004 + /** * The Math script (`Zmth`). */ diff --git a/harfrust_capi/src/common.rs b/harfrust_capi/src/common.rs index d0d2a6fe..0f2e9c61 100644 --- a/harfrust_capi/src/common.rs +++ b/harfrust_capi/src/common.rs @@ -591,6 +591,12 @@ pub const HR_SCRIPT_SIDETIC: hr_script_t = 0x5369_6474; pub const HR_SCRIPT_TAI_YO: hr_script_t = 0x5461_796F; /// The Tolong Siki script (`Tols`). pub const HR_SCRIPT_TOLONG_SIKI: hr_script_t = 0x546F_6C73; +/// The Jurchen script (`Jurc`). +pub const HR_SCRIPT_JURCHEN: hr_script_t = 0x4A75_7263; +/// The Proto-Cuneiform script (`Pcun`). +pub const HR_SCRIPT_PROTO_CUNEIFORM: hr_script_t = 0x5063_756E; +/// The Seal script (`Seal`). +pub const HR_SCRIPT_SEAL: hr_script_t = 0x5365_616C; /// The Math script (`Zmth`). pub const HR_SCRIPT_MATH: hr_script_t = 0x5A6D_7468; /// The Myanmar Zawgyi script (`Qaag`). diff --git a/harfrust_capi/tests/capi.rs b/harfrust_capi/tests/capi.rs index 7fb37b4a..d2f01f6e 100644 --- a/harfrust_capi/tests/capi.rs +++ b/harfrust_capi/tests/capi.rs @@ -1949,6 +1949,16 @@ fn scripts_match_harfbuzz_values() { // HB_SCRIPT_LATIN is HB_TAG('L','a','t','n'). assert_eq!(HR_SCRIPT_LATIN, 0x4C61_746E); assert_eq!(HR_SCRIPT_ARABIC, 0x4172_6162); + for (tag, script) in [ + (b"Jurc", HR_SCRIPT_JURCHEN), + (b"Pcun", HR_SCRIPT_PROTO_CUNEIFORM), + (b"Seal", HR_SCRIPT_SEAL), + ] { + assert_eq!(script, u32::from_be_bytes(*tag)); + assert_eq!(hr_script_from_iso15924_tag(script), script); + assert_eq!(hr_script_to_iso15924_tag(script), script); + assert_eq!(hr_script_get_horizontal_direction(script), HR_DIRECTION_LTR); + } unsafe { assert_eq!(hr_script_from_string(c"Latn".as_ptr(), -1), HR_SCRIPT_LATIN); assert_eq!( diff --git a/scripts/update-unicode-tables.mk b/scripts/update-unicode-tables.mk index 5e1cc65c..7e006269 100644 --- a/scripts/update-unicode-tables.mk +++ b/scripts/update-unicode-tables.mk @@ -7,14 +7,15 @@ PACKTAB_PYTHONPATH ?= $(PACKTAB_DIR) PYTHON ?= python3 HARFRUST_HB_DIR := ../harfrust/src/hb +HARFRUST_UNICODE_DIR := ../harfrust/src/unicode GENERATED := \ - $(HARFRUST_HB_DIR)/ucd_table.rs \ + $(HARFRUST_UNICODE_DIR)/ucd_table.rs \ $(HARFRUST_HB_DIR)/ot_shaper_use_table.rs \ $(HARFRUST_HB_DIR)/ot_shaper_arabic_table.rs \ $(HARFRUST_HB_DIR)/ot_shaper_arabic_pua.rs \ $(HARFRUST_HB_DIR)/ot_shaper_indic_table.rs \ - $(HARFRUST_HB_DIR)/unicode_emoji_table.rs \ + $(HARFRUST_UNICODE_DIR)/emoji_table.rs \ $(HARFRUST_HB_DIR)/tag_table.rs \ $(HARFRUST_HB_DIR)/ot_shaper_vowel_constraints.rs @@ -29,9 +30,12 @@ rust: $(GENERATED) hb-refresh: $(MAKE) -C $(HB_SRC) -f update-unicode-tables.make all -$(HARFRUST_HB_DIR)/ucd_table.rs: $(HB_SRC)/gen-ucd-table.py $(HB_SRC)/ucd.nounihan.grouped.zip $(HB_SRC)/hb-script-list.h +# Adapt imports emitted by the shared generators to HarfRust's module layout. +$(HARFRUST_UNICODE_DIR)/ucd_table.rs: $(HB_SRC)/gen-ucd-table.py $(HB_SRC)/ucd.nounihan.grouped.zip $(HB_SRC)/hb-script-list.h PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$(PACKTAB_PYTHONPATH) \ - $(PYTHON) $(word 1,$^) --rust $(word 2,$^) $(word 3,$^) > $@ || ($(RM) $@; false) + $(PYTHON) $(word 1,$^) --rust $(word 2,$^) $(word 3,$^) > $@.tmp || ($(RM) $@.tmp; false) + sed 's/crate::hb::algs/crate::algs/g' $@.tmp > $@ + $(RM) $@.tmp $(HARFRUST_HB_DIR)/ot_shaper_use_table.rs: $(HB_SRC)/gen-use-table.py $(HB_SRC)/IndicSyllabicCategory.txt $(HB_SRC)/IndicPositionalCategory.txt $(HB_SRC)/ArabicShaping.txt $(HB_SRC)/DerivedCoreProperties.txt $(HB_SRC)/UnicodeData.txt $(HB_SRC)/Blocks.txt $(HB_SRC)/Scripts.txt $(HB_SRC)/ms-use/IndicSyllabicCategory-Additional.txt $(HB_SRC)/ms-use/IndicPositionalCategory-Additional.txt PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$(PACKTAB_PYTHONPATH) \ @@ -50,9 +54,11 @@ $(HARFRUST_HB_DIR)/ot_shaper_indic_table.rs: $(HB_SRC)/gen-indic-table.py $(HB_S PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$(PACKTAB_PYTHONPATH) \ $(PYTHON) $(word 1,$^) --rust $(wordlist 2,4,$^) > $@ || ($(RM) $@; false) -$(HARFRUST_HB_DIR)/unicode_emoji_table.rs: $(HB_SRC)/gen-emoji-table.py $(HB_SRC)/emoji-data.txt $(HB_SRC)/emoji-test.txt +$(HARFRUST_UNICODE_DIR)/emoji_table.rs: $(HB_SRC)/gen-emoji-table.py $(HB_SRC)/emoji-data.txt $(HB_SRC)/emoji-test.txt PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=$(PACKTAB_PYTHONPATH) \ - $(PYTHON) $(word 1,$^) --rust $(wordlist 2,3,$^) > $@ || ($(RM) $@; false) + $(PYTHON) $(word 1,$^) --rust $(wordlist 2,3,$^) > $@.tmp || ($(RM) $@.tmp; false) + sed 's/crate::hb::unicode/crate::unicode/g' $@.tmp > $@ + $(RM) $@.tmp $(HARFRUST_HB_DIR)/tag_table.rs: $(HB_SRC)/gen-tag-table.py $(HB_SRC)/languagetags $(HB_SRC)/language-subtag-registry PYTHONDONTWRITEBYTECODE=1 \ @@ -60,7 +66,9 @@ $(HARFRUST_HB_DIR)/tag_table.rs: $(HB_SRC)/gen-tag-table.py $(HB_SRC)/languageta $(HARFRUST_HB_DIR)/ot_shaper_vowel_constraints.rs: $(HB_SRC)/gen-vowel-constraints.py $(HB_SRC)/ms-use/IndicShapingInvalidCluster.txt $(HB_SRC)/Scripts.txt PYTHONDONTWRITEBYTECODE=1 \ - $(PYTHON) $(word 1,$^) --rust $(wordlist 2,3,$^) > $@ || ($(RM) $@; false) + $(PYTHON) $(word 1,$^) --rust $(wordlist 2,3,$^) > $@.tmp || ($(RM) $@.tmp; false) + sed 's/hb_buffer_t/Buffer/g' $@.tmp > $@ + $(RM) $@.tmp rustfmt $@ clean: