// unescape_html in Odin: a QIP component that decodes every HTML character // reference in UTF-8 text and copies all other bytes unchanged. // // Improvements over the 48-page version (fe7649cd): // - One 1,258,400-byte buffer instead of two: output is written from byte 0 and // input is read from byte GAP = 209,792. The output can outgrow the consumed // input by at most floor(1 MiB / 5) = 209,715 bytes (≫⃒, 5 -> 6), and the // copy-then-look scan stores at most 64 bytes ahead, so writes never reach // unread input. 32 bytes of slack keep the over-wide 16-byte loads/stores in // bounds. Total: 20 pages instead of 48. // - The name index is static: front-coded sorted names in blocks of eight // (each name stores only the suffix after its predecessor's shared prefix), // a u16 offset per block, and u16 refs (15-bit value offset | legacy bit). // Values live in a deduplicated LEB128 code-point pool (NUL-terminated; // code point 0 never occurs). Binary search rebuilds the mid record's name // from its block start. // // SIMD is used everywhere bytes move, not just to find `&`: // - Copy-then-look: every 16-byte block is stored to the output before it is // examined, and the `&` bitmask's trailing zero count says how much of it to // keep. Plain text is copied and scanned in one pass, 64 bytes per step. // - The name after `&` is measured by classifying 32 bytes as ASCII alphanumeric // at once (table keys are ASCII alphanumeric, so this matches the reference's // wider name class for every matchable prefix). // - A value (at most 6 bytes) is written with one unaligned 16-byte store. // - Legacy names (no `;`) are at most 6 bytes, so the longest-prefix search // tries at most 5 lengths. // // Build: odin build unescape2.odin -file -target:freestanding_wasm32 -target-features:simd128 // -o:speed -no-entry-point -no-bounds-check -disable-assert -default-to-nil-allocator -no-crt // -out:unescape2.wasm -extra-linker-flags:"--initial-memory=1310720 --max-memory=1310720 // -z stack-size=16384 --strip-all" package unescape import "base:intrinsics" INPUT_CAP :: 1 << 20 // floor(INPUT_CAP/5)*6 + INPUT_CAP%5: the proven maximum output size. OUTPUT_CAP :: 1258291 // 209,715 (max growth) + 64 (copy-then-look lookahead) + 13 (margin). GAP :: 209792 SLACK :: 32 buffer: [GAP + INPUT_CAP + SLACK]u8 V :: #simd[16]u8 @(export) input_ptr :: proc "c" () -> u32 {return u32(uintptr(&buffer[GAP]))} @(export) input_utf8_cap :: proc "c" () -> u32 {return INPUT_CAP} @(export) output_ptr :: proc "c" () -> u32 {return u32(uintptr(&buffer[0]))} @(export) output_utf8_cap :: proc "c" () -> u32 {return OUTPUT_CAP} load :: #force_inline proc "contextless" (p: [^]u8) -> V { return intrinsics.unaligned_load((^V)(p)) } store :: #force_inline proc "contextless" (p: [^]u8, v: V) { intrinsics.unaligned_store((^V)(p), v) } bits :: #force_inline proc "contextless" (m: V) -> u32 { return u32(transmute(u16)intrinsics.simd_extract_msbs(m)) } @(export) render :: proc "c" (n: u32) -> u64 { size := min(int(n), INPUT_CAP) src := ([^]u8)(&buffer[GAP]) dst := ([^]u8)(&buffer[0]) amp: V = '&' i, o := 0, 0 for { // Plain text: copy 64 bytes per step while no `&` is among them. for i + 64 <= size { a, b, c, d := load(src[i:]), load(src[i + 16:]), load(src[i + 32:]), load(src[i + 48:]) store(dst[o:], a) store(dst[o + 16:], b) store(dst[o + 32:], c) store(dst[o + 48:], d) hit := intrinsics.simd_lanes_eq(a, amp) | intrinsics.simd_lanes_eq(b, amp) | intrinsics.simd_lanes_eq(c, amp) | intrinsics.simd_lanes_eq(d, amp) if bits(hit) != 0 do break i += 64 o += 64 } v := load(src[i:]) store(dst[o:], v) m := bits(intrinsics.simd_lanes_eq(v, amp)) rem := size - i if rem < 16 do m &= (1 << uint(rem)) - 1 if m == 0 { if rem <= 16 { o += rem break } i += 16 o += 16 continue } t := int(intrinsics.count_trailing_zeros(m)) i += t o += t if i + 1 < size && src[i + 1] == '#' { i = numeric(src, size, i, &o) } else { i = named(src, size, i, &o) } if i >= size do break } return u64(output_ptr()) << 32 | u64(o) } emit_code_point :: proc "contextless" (o: ^int, c: u32) { p := ([^]u8)(&buffer[o^]) switch { case c < 0x80: p[0] = u8(c) o^ += 1 case c < 0x800: p[0] = u8(0xC0 | c >> 6) p[1] = u8(0x80 | c & 0x3F) o^ += 2 case c < 0x10000: p[0] = u8(0xE0 | c >> 12) p[1] = u8(0x80 | (c >> 6) & 0x3F) p[2] = u8(0x80 | c & 0x3F) o^ += 3 case: p[0] = u8(0xF0 | c >> 18) p[1] = u8(0x80 | (c >> 12) & 0x3F) p[2] = u8(0x80 | (c >> 6) & 0x3F) p[3] = u8(0x80 | c & 0x3F) o^ += 4 } } // Windows-1252 remapping for references to 0x80–0x9F; 0 keeps the code point. @(rodata) c1 := [32]u16 { 0x20AC, 0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0, 0x017D, 0, 0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0, 0x017E, 0x0178, } // `src[at]` is `&` (already copied to the output) and `src[at + 1]` is `#`. // Returns the index after what was consumed. numeric :: proc "contextless" (src: [^]u8, size, at: int, o: ^int) -> int { i := at + 2 hex := i < size && src[i] | 0x20 == 'x' if hex do i += 1 start := i value: u32 = 0 base: u32 = hex ? 16 : 10 digits: for i < size { c := src[i] d: u32 switch c { case '0' ..= '9': d = u32(c - '0') case 'a' ..= 'f', 'A' ..= 'F': if !hex do break digits d = u32(c | 0x20) - 'a' + 10 case: break digits } // Saturate: anything past U+10FFFF is replaced the same way. value = min(value * base + d, 0x110000) i += 1 } if i == start { // The `&` is already in the output; keep it. o^ += 1 return at + 1 } if i < size && src[i] == ';' do i += 1 if value >= 0x80 && value <= 0x9F && c1[value - 0x80] != 0 { emit_code_point(o, u32(c1[value - 0x80])) } else if value == 0 || (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF { emit_code_point(o, 0xFFFD) } else { emit_code_point(o, value) } return i } // Bit k is set if byte k is not an ASCII letter or digit. not_alnum :: #force_inline proc "contextless" (v: V) -> u32 { digit := intrinsics.simd_lanes_lt(v - V('0'), V(10)) letter := intrinsics.simd_lanes_lt((v | V(0x20)) - V('a'), V(26)) return ~bits(digit | letter) & 0xFFFF } // `src[at]` is `&`, already copied to the output. Returns the index after what // was consumed. named :: proc "contextless" (src: [^]u8, size, at: int, o: ^int) -> int { name := src[at + 1:] rem := size - at - 1 stop := not_alnum(load(name)) | not_alnum(load(name[16:])) << 16 if rem < 32 do stop |= ~u32(0) << uint(rem) // Measures up to 32 bytes; the longest name is 31, so 32 can only be a legacy prefix. n := int(intrinsics.count_trailing_zeros(stop)) if n < rem && name[n] == ';' { if emit_value(name, n, false, o) do return at + n + 2 } // Without `;`, only legacy names match, longest first, and none is longer than 6. for k := min(n, 6); k >= 2; k -= 1 { if emit_value(name, k, true, o) do return at + 1 + k } o^ += 1 return at + 1 } LEGACY :: 0x80 // Binary search over the sorted records; returns the record offset in // ENTITY_BLOB when the `n`-byte name matches exactly. // Binary search over the sorted records; returns the record index when the // `n`-byte name matches exactly. Record names are front-coded in blocks of // eight, so the mid record's name is rebuilt from its block start. find_record :: proc "contextless" (name: [^]u8, n: int) -> (idx: int, found: bool) { lo, hi := 0, ENTITY_COUNT for lo < hi { mid := (lo + hi) / 2 p := NAMES[GROUPS[mid / 8]:] key: [32]u8 len := 0 for k in 0 ..= mid % 8 { len = int(p[0]) p = p[1:] for p[0] != 0 { key[len] = p[0] len += 1 p = p[1:] } p = p[1:] } m := min(n, len) cmp := 0 for k in 0 ..< m { if name[k] != key[k] { cmp = name[k] > key[k] ? 1 : -1 break } } if cmp == 0 { if n != len { cmp = n > len ? 1 : -1 } else { return mid, true } } if cmp < 0 { hi = mid } else { lo = mid + 1 } } return 0, false } // Writes the value of the `n`-byte name at `name` and returns true, or returns // false when there is no such name. With `legacy_only`, only names that may // omit `;` match. Values are LEB128 code points, NUL-terminated (code point 0 // never occurs). emit_value :: proc "contextless" (name: [^]u8, n: int, legacy_only: bool, o: ^int) -> bool { idx, ok := find_record(name, n) if !ok do return false ref := u32(REFS[idx]) if legacy_only && ref & 0x8000 == 0 do return false v := VALUES[int(ref & 0x7FFF):] for { c: u32 = 0 s := 0 b := v[0] v = v[1:] for b & 0x80 != 0 { c |= u32(b & 0x7F) << uint(s) s += 7 b = v[0] v = v[1:] } c |= u32(b) << uint(s) if c == 0 do break // Overwrites the `&` already copied. emit_code_point(o, c) } return true } // BEGIN GENERATED TABLE @(rodata) NAMES := [12809]u8 { 0, 65, 69, 108, 105, 103, 0, 1, 77, 80, 0, 1, 97, 99, 117, 116, 101, 0, 1, 98, 114, 101, 118, 101, 0, 1, 99, 105, 114, 99, 0, 2, 121, 0, 1, 102, 114, 0, 1, 103, 114, 97, 118, 101, 0, 0, 65, 108, 112, 104, 97, 0, 1, 109, 97, 99, 114, 0, 1, 110, 100, 0, 1, 111, 103, 111, 110, 0, 2, 112, 102, 0, 1, 112, 112, 108, 121, 70, 117, 110, 99, 116, 105, 111, 110, 0, 1, 114, 105, 110, 103, 0, 1, 115, 99, 114, 0, 0, 65, 115, 115, 105, 103, 110, 0, 1, 116, 105, 108, 100, 101, 0, 1, 117, 109, 108, 0, 0, 66, 97, 99, 107, 115, 108, 97, 115, 104, 0, 2, 114, 118, 0, 3, 119, 101, 100, 0, 1, 99, 121, 0, 1, 101, 99, 97, 117, 115, 101, 0, 0, 66, 101, 114, 110, 111, 117, 108, 108, 105, 115, 0, 2, 116, 97, 0, 1, 102, 114, 0, 1, 111, 112, 102, 0, 1, 114, 101, 118, 101, 0, 1, 115, 99, 114, 0, 1, 117, 109, 112, 101, 113, 0, 0, 67, 72, 99, 121, 0, 0, 67, 79, 80, 89, 0, 1, 97, 99, 117, 116, 101, 0, 2, 112, 0, 3, 105, 116, 97, 108, 68, 105, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 0, 2, 121, 108, 101, 121, 115, 0, 1, 99, 97, 114, 111, 110, 0, 2, 101, 100, 105, 108, 0, 2, 105, 114, 99, 0, 0, 67, 99, 111, 110, 105, 110, 116, 0, 1, 100, 111, 116, 0, 1, 101, 100, 105, 108, 108, 97, 0, 2, 110, 116, 101, 114, 68, 111, 116, 0, 1, 102, 114, 0, 1, 104, 105, 0, 1, 105, 114, 99, 108, 101, 68, 111, 116, 0, 6, 77, 105, 110, 117, 115, 0, 0, 67, 105, 114, 99, 108, 101, 80, 108, 117, 115, 0, 6, 84, 105, 109, 101, 115, 0, 1, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 0, 3, 115, 101, 67, 117, 114, 108, 121, 68, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 0, 10, 81, 117, 111, 116, 101, 0, 1, 111, 108, 111, 110, 0, 5, 101, 0, 2, 110, 103, 114, 117, 101, 110, 116, 0, 0, 67, 111, 110, 105, 110, 116, 0, 3, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 0, 2, 112, 102, 0, 3, 114, 111, 100, 117, 99, 116, 0, 2, 117, 110, 116, 101, 114, 67, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 0, 1, 114, 111, 115, 115, 0, 1, 115, 99, 114, 0, 1, 117, 112, 0, 0, 67, 117, 112, 67, 97, 112, 0, 0, 68, 68, 0, 2, 111, 116, 114, 97, 104, 100, 0, 1, 74, 99, 121, 0, 1, 83, 99, 121, 0, 1, 90, 99, 121, 0, 1, 97, 103, 103, 101, 114, 0, 2, 114, 114, 0, 0, 68, 97, 115, 104, 118, 0, 1, 99, 97, 114, 111, 110, 0, 2, 121, 0, 1, 101, 108, 0, 3, 116, 97, 0, 1, 102, 114, 0, 1, 105, 97, 99, 114, 105, 116, 105, 99, 97, 108, 65, 99, 117, 116, 101, 0, 11, 68, 111, 116, 0, 0, 68, 105, 97, 99, 114, 105, 116, 105, 99, 97, 108, 68, 111, 117, 98, 108, 101, 65, 99, 117, 116, 101, 0, 11, 71, 114, 97, 118, 101, 0, 11, 84, 105, 108, 100, 101, 0, 3, 109, 111, 110, 100, 0, 2, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 0, 1, 111, 112, 102, 0, 2, 116, 0, 3, 68, 111, 116, 0, 0, 68, 111, 116, 69, 113, 117, 97, 108, 0, 2, 117, 98, 108, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 0, 6, 68, 111, 116, 0, 8, 119, 110, 65, 114, 114, 111, 119, 0, 6, 76, 101, 102, 116, 65, 114, 114, 111, 119, 0, 10, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 10, 84, 101, 101, 0, 7, 111, 110, 103, 76, 101, 102, 116, 65, 114, 114, 111, 119, 0, 0, 68, 111, 117, 98, 108, 101, 76, 111, 110, 103, 76, 101, 102, 116, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 10, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 6, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 11, 84, 101, 101, 0, 6, 85, 112, 65, 114, 114, 111, 119, 0, 8, 68, 111, 119, 110, 65, 114, 114, 111, 119, 0, 6, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 0, 2, 119, 110, 65, 114, 114, 111, 119, 0, 0, 68, 111, 119, 110, 65, 114, 114, 111, 119, 66, 97, 114, 0, 9, 85, 112, 65, 114, 114, 111, 119, 0, 4, 66, 114, 101, 118, 101, 0, 4, 76, 101, 102, 116, 82, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 0, 8, 84, 101, 101, 86, 101, 99, 116, 111, 114, 0, 8, 86, 101, 99, 116, 111, 114, 0, 14, 66, 97, 114, 0, 4, 82, 105, 103, 104, 116, 84, 101, 101, 86, 101, 99, 116, 111, 114, 0, 0, 68, 111, 119, 110, 82, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 0, 15, 66, 97, 114, 0, 4, 84, 101, 101, 0, 7, 65, 114, 114, 111, 119, 0, 4, 97, 114, 114, 111, 119, 0, 1, 115, 99, 114, 0, 2, 116, 114, 111, 107, 0, 0, 69, 78, 71, 0, 0, 69, 84, 72, 0, 1, 97, 99, 117, 116, 101, 0, 1, 99, 97, 114, 111, 110, 0, 2, 105, 114, 99, 0, 2, 121, 0, 1, 100, 111, 116, 0, 1, 102, 114, 0, 1, 103, 114, 97, 118, 101, 0, 0, 69, 108, 101, 109, 101, 110, 116, 0, 1, 109, 97, 99, 114, 0, 2, 112, 116, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 0, 5, 86, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 0, 1, 111, 103, 111, 110, 0, 2, 112, 102, 0, 1, 112, 115, 105, 108, 111, 110, 0, 1, 113, 117, 97, 108, 0, 0, 69, 113, 117, 97, 108, 84, 105, 108, 100, 101, 0, 3, 105, 108, 105, 98, 114, 105, 117, 109, 0, 1, 115, 99, 114, 0, 2, 105, 109, 0, 1, 116, 97, 0, 1, 117, 109, 108, 0, 1, 120, 105, 115, 116, 115, 0, 2, 112, 111, 110, 101, 110, 116, 105, 97, 108, 69, 0, 0, 70, 99, 121, 0, 1, 102, 114, 0, 1, 105, 108, 108, 101, 100, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 0, 6, 86, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 0, 1, 111, 112, 102, 0, 2, 114, 65, 108, 108, 0, 2, 117, 114, 105, 101, 114, 116, 114, 102, 0, 1, 115, 99, 114, 0, 0, 71, 74, 99, 121, 0, 1, 84, 0, 1, 97, 109, 109, 97, 0, 5, 100, 0, 1, 98, 114, 101, 118, 101, 0, 1, 99, 101, 100, 105, 108, 0, 2, 105, 114, 99, 0, 2, 121, 0, 0, 71, 100, 111, 116, 0, 1, 102, 114, 0, 1, 103, 0, 1, 111, 112, 102, 0, 1, 114, 101, 97, 116, 101, 114, 69, 113, 117, 97, 108, 0, 12, 76, 101, 115, 115, 0, 7, 70, 117, 108, 108, 69, 113, 117, 97, 108, 0, 7, 71, 114, 101, 97, 116, 101, 114, 0, 0, 71, 114, 101, 97, 116, 101, 114, 76, 101, 115, 115, 0, 7, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 0, 7, 84, 105, 108, 100, 101, 0, 1, 115, 99, 114, 0, 1, 116, 0, 0, 72, 65, 82, 68, 99, 121, 0, 1, 97, 99, 101, 107, 0, 2, 116, 0, 0, 72, 99, 105, 114, 99, 0, 1, 102, 114, 0, 1, 105, 108, 98, 101, 114, 116, 83, 112, 97, 99, 101, 0, 1, 111, 112, 102, 0, 2, 114, 105, 122, 111, 110, 116, 97, 108, 76, 105, 110, 101, 0, 1, 115, 99, 114, 0, 2, 116, 114, 111, 107, 0, 1, 117, 109, 112, 68, 111, 119, 110, 72, 117, 109, 112, 0, 0, 72, 117, 109, 112, 69, 113, 117, 97, 108, 0, 0, 73, 69, 99, 121, 0, 1, 74, 108, 105, 103, 0, 1, 79, 99, 121, 0, 1, 97, 99, 117, 116, 101, 0, 1, 99, 105, 114, 99, 0, 2, 121, 0, 1, 100, 111, 116, 0, 0, 73, 102, 114, 0, 1, 103, 114, 97, 118, 101, 0, 1, 109, 0, 2, 97, 99, 114, 0, 3, 103, 105, 110, 97, 114, 121, 73, 0, 2, 112, 108, 105, 101, 115, 0, 1, 110, 116, 0, 3, 101, 103, 114, 97, 108, 0, 0, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 0, 2, 118, 105, 115, 105, 98, 108, 101, 67, 111, 109, 109, 97, 0, 9, 84, 105, 109, 101, 115, 0, 1, 111, 103, 111, 110, 0, 2, 112, 102, 0, 2, 116, 97, 0, 1, 115, 99, 114, 0, 1, 116, 105, 108, 100, 101, 0, 0, 73, 117, 107, 99, 121, 0, 2, 109, 108, 0, 0, 74, 99, 105, 114, 99, 0, 2, 121, 0, 1, 102, 114, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 2, 101, 114, 99, 121, 0, 0, 74, 117, 107, 99, 121, 0, 0, 75, 72, 99, 121, 0, 1, 74, 99, 121, 0, 1, 97, 112, 112, 97, 0, 1, 99, 101, 100, 105, 108, 0, 2, 121, 0, 1, 102, 114, 0, 1, 111, 112, 102, 0, 0, 75, 115, 99, 114, 0, 0, 76, 74, 99, 121, 0, 1, 84, 0, 1, 97, 99, 117, 116, 101, 0, 2, 109, 98, 100, 97, 0, 2, 110, 103, 0, 2, 112, 108, 97, 99, 101, 116, 114, 102, 0, 2, 114, 114, 0, 0, 76, 99, 97, 114, 111, 110, 0, 2, 101, 100, 105, 108, 0, 2, 121, 0, 1, 101, 102, 116, 65, 110, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 0, 5, 114, 114, 111, 119, 0, 9, 66, 97, 114, 0, 9, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 4, 67, 101, 105, 108, 105, 110, 103, 0, 0, 76, 101, 102, 116, 68, 111, 117, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 0, 6, 119, 110, 84, 101, 101, 86, 101, 99, 116, 111, 114, 0, 8, 86, 101, 99, 116, 111, 114, 0, 14, 66, 97, 114, 0, 4, 70, 108, 111, 111, 114, 0, 4, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 9, 86, 101, 99, 116, 111, 114, 0, 4, 84, 101, 101, 0, 0, 76, 101, 102, 116, 84, 101, 101, 65, 114, 114, 111, 119, 0, 7, 86, 101, 99, 116, 111, 114, 0, 5, 114, 105, 97, 110, 103, 108, 101, 0, 12, 66, 97, 114, 0, 12, 69, 113, 117, 97, 108, 0, 4, 85, 112, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 0, 6, 84, 101, 101, 86, 101, 99, 116, 111, 114, 0, 6, 86, 101, 99, 116, 111, 114, 0, 0, 76, 101, 102, 116, 85, 112, 86, 101, 99, 116, 111, 114, 66, 97, 114, 0, 4, 86, 101, 99, 116, 111, 114, 0, 10, 66, 97, 114, 0, 4, 97, 114, 114, 111, 119, 0, 4, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 2, 115, 115, 69, 113, 117, 97, 108, 71, 114, 101, 97, 116, 101, 114, 0, 4, 70, 117, 108, 108, 69, 113, 117, 97, 108, 0, 4, 71, 114, 101, 97, 116, 101, 114, 0, 0, 76, 101, 115, 115, 76, 101, 115, 115, 0, 4, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 0, 4, 84, 105, 108, 100, 101, 0, 1, 102, 114, 0, 1, 108, 0, 2, 101, 102, 116, 97, 114, 114, 111, 119, 0, 1, 109, 105, 100, 111, 116, 0, 1, 111, 110, 103, 76, 101, 102, 116, 65, 114, 114, 111, 119, 0, 0, 76, 111, 110, 103, 76, 101, 102, 116, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 4, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 4, 108, 101, 102, 116, 97, 114, 114, 111, 119, 0, 8, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 4, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 2, 112, 102, 0, 2, 119, 101, 114, 76, 101, 102, 116, 65, 114, 114, 111, 119, 0, 5, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 0, 76, 115, 99, 114, 0, 2, 104, 0, 2, 116, 114, 111, 107, 0, 1, 116, 0, 0, 77, 97, 112, 0, 1, 99, 121, 0, 1, 101, 100, 105, 117, 109, 83, 112, 97, 99, 101, 0, 2, 108, 108, 105, 110, 116, 114, 102, 0, 0, 77, 102, 114, 0, 1, 105, 110, 117, 115, 80, 108, 117, 115, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 1, 117, 0, 0, 78, 74, 99, 121, 0, 1, 97, 99, 117, 116, 101, 0, 1, 99, 97, 114, 111, 110, 0, 0, 78, 99, 101, 100, 105, 108, 0, 2, 121, 0, 1, 101, 103, 97, 116, 105, 118, 101, 77, 101, 100, 105, 117, 109, 83, 112, 97, 99, 101, 0, 8, 84, 104, 105, 99, 107, 83, 112, 97, 99, 101, 0, 11, 110, 83, 112, 97, 99, 101, 0, 8, 86, 101, 114, 121, 84, 104, 105, 110, 83, 112, 97, 99, 101, 0, 2, 115, 116, 101, 100, 71, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 0, 6, 76, 101, 115, 115, 76, 101, 115, 115, 0, 0, 78, 101, 119, 76, 105, 110, 101, 0, 1, 102, 114, 0, 1, 111, 66, 114, 101, 97, 107, 0, 2, 110, 66, 114, 101, 97, 107, 105, 110, 103, 83, 112, 97, 99, 101, 0, 2, 112, 102, 0, 2, 116, 0, 3, 67, 111, 110, 103, 114, 117, 101, 110, 116, 0, 4, 117, 112, 67, 97, 112, 0, 0, 78, 111, 116, 68, 111, 117, 98, 108, 101, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 0, 3, 69, 108, 101, 109, 101, 110, 116, 0, 4, 113, 117, 97, 108, 0, 8, 84, 105, 108, 100, 101, 0, 4, 120, 105, 115, 116, 115, 0, 3, 71, 114, 101, 97, 116, 101, 114, 0, 10, 69, 113, 117, 97, 108, 0, 10, 70, 117, 108, 108, 69, 113, 117, 97, 108, 0, 0, 78, 111, 116, 71, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 0, 10, 76, 101, 115, 115, 0, 10, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 0, 10, 84, 105, 108, 100, 101, 0, 3, 72, 117, 109, 112, 68, 111, 119, 110, 72, 117, 109, 112, 0, 7, 69, 113, 117, 97, 108, 0, 3, 76, 101, 102, 116, 84, 114, 105, 97, 110, 103, 108, 101, 0, 15, 66, 97, 114, 0, 0, 78, 111, 116, 76, 101, 102, 116, 84, 114, 105, 97, 110, 103, 108, 101, 69, 113, 117, 97, 108, 0, 5, 115, 115, 0, 7, 69, 113, 117, 97, 108, 0, 7, 71, 114, 101, 97, 116, 101, 114, 0, 7, 76, 101, 115, 115, 0, 7, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 0, 7, 84, 105, 108, 100, 101, 0, 3, 78, 101, 115, 116, 101, 100, 71, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 0, 0, 78, 111, 116, 78, 101, 115, 116, 101, 100, 76, 101, 115, 115, 76, 101, 115, 115, 0, 3, 80, 114, 101, 99, 101, 100, 101, 115, 0, 11, 69, 113, 117, 97, 108, 0, 11, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 0, 3, 82, 101, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110, 116, 0, 4, 105, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 0, 16, 66, 97, 114, 0, 16, 69, 113, 117, 97, 108, 0, 0, 78, 111, 116, 83, 113, 117, 97, 114, 101, 83, 117, 98, 115, 101, 116, 0, 15, 69, 113, 117, 97, 108, 0, 11, 112, 101, 114, 115, 101, 116, 0, 17, 69, 113, 117, 97, 108, 0, 4, 117, 98, 115, 101, 116, 0, 9, 69, 113, 117, 97, 108, 0, 5, 99, 99, 101, 101, 100, 115, 0, 11, 69, 113, 117, 97, 108, 0, 0, 78, 111, 116, 83, 117, 99, 99, 101, 101, 100, 115, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 0, 11, 84, 105, 108, 100, 101, 0, 5, 112, 101, 114, 115, 101, 116, 0, 11, 69, 113, 117, 97, 108, 0, 3, 84, 105, 108, 100, 101, 0, 8, 69, 113, 117, 97, 108, 0, 8, 70, 117, 108, 108, 69, 113, 117, 97, 108, 0, 8, 84, 105, 108, 100, 101, 0, 0, 78, 111, 116, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 0, 1, 115, 99, 114, 0, 1, 116, 105, 108, 100, 101, 0, 1, 117, 0, 0, 79, 69, 108, 105, 103, 0, 1, 97, 99, 117, 116, 101, 0, 1, 99, 105, 114, 99, 0, 2, 121, 0, 0, 79, 100, 98, 108, 97, 99, 0, 1, 102, 114, 0, 1, 103, 114, 97, 118, 101, 0, 1, 109, 97, 99, 114, 0, 2, 101, 103, 97, 0, 2, 105, 99, 114, 111, 110, 0, 1, 111, 112, 102, 0, 1, 112, 101, 110, 67, 117, 114, 108, 121, 68, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 0, 0, 79, 112, 101, 110, 67, 117, 114, 108, 121, 81, 117, 111, 116, 101, 0, 1, 114, 0, 1, 115, 99, 114, 0, 2, 108, 97, 115, 104, 0, 1, 116, 105, 108, 100, 101, 0, 3, 109, 101, 115, 0, 1, 117, 109, 108, 0, 1, 118, 101, 114, 66, 97, 114, 0, 0, 79, 118, 101, 114, 66, 114, 97, 99, 101, 0, 8, 107, 101, 116, 0, 4, 80, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 0, 0, 80, 97, 114, 116, 105, 97, 108, 68, 0, 1, 99, 121, 0, 1, 102, 114, 0, 1, 104, 105, 0, 1, 105, 0, 0, 80, 108, 117, 115, 77, 105, 110, 117, 115, 0, 1, 111, 105, 110, 99, 97, 114, 101, 112, 108, 97, 110, 101, 0, 2, 112, 102, 0, 1, 114, 0, 2, 101, 99, 101, 100, 101, 115, 0, 8, 69, 113, 117, 97, 108, 0, 8, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 0, 8, 84, 105, 108, 100, 101, 0, 0, 80, 114, 105, 109, 101, 0, 2, 111, 100, 117, 99, 116, 0, 3, 112, 111, 114, 116, 105, 111, 110, 0, 10, 97, 108, 0, 1, 115, 99, 114, 0, 2, 105, 0, 0, 81, 85, 79, 84, 0, 1, 102, 114, 0, 0, 81, 111, 112, 102, 0, 1, 115, 99, 114, 0, 0, 82, 66, 97, 114, 114, 0, 1, 69, 71, 0, 1, 97, 99, 117, 116, 101, 0, 2, 110, 103, 0, 2, 114, 114, 0, 4, 116, 108, 0, 0, 82, 99, 97, 114, 111, 110, 0, 2, 101, 100, 105, 108, 0, 2, 121, 0, 1, 101, 0, 2, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110, 116, 0, 8, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 0, 7, 85, 112, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 0, 1, 102, 114, 0, 0, 82, 104, 111, 0, 1, 105, 103, 104, 116, 65, 110, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 0, 6, 114, 114, 111, 119, 0, 10, 66, 97, 114, 0, 10, 76, 101, 102, 116, 65, 114, 114, 111, 119, 0, 5, 67, 101, 105, 108, 105, 110, 103, 0, 5, 68, 111, 117, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 0, 7, 119, 110, 84, 101, 101, 86, 101, 99, 116, 111, 114, 0, 0, 82, 105, 103, 104, 116, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 0, 15, 66, 97, 114, 0, 5, 70, 108, 111, 111, 114, 0, 5, 84, 101, 101, 0, 8, 65, 114, 114, 111, 119, 0, 8, 86, 101, 99, 116, 111, 114, 0, 6, 114, 105, 97, 110, 103, 108, 101, 0, 13, 66, 97, 114, 0, 0, 82, 105, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 69, 113, 117, 97, 108, 0, 5, 85, 112, 68, 111, 119, 110, 86, 101, 99, 116, 111, 114, 0, 7, 84, 101, 101, 86, 101, 99, 116, 111, 114, 0, 7, 86, 101, 99, 116, 111, 114, 0, 13, 66, 97, 114, 0, 5, 86, 101, 99, 116, 111, 114, 0, 11, 66, 97, 114, 0, 5, 97, 114, 114, 111, 119, 0, 0, 82, 111, 112, 102, 0, 2, 117, 110, 100, 73, 109, 112, 108, 105, 101, 115, 0, 1, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 1, 115, 99, 114, 0, 2, 104, 0, 1, 117, 108, 101, 68, 101, 108, 97, 121, 101, 100, 0, 0, 83, 72, 67, 72, 99, 121, 0, 2, 99, 121, 0, 0, 83, 79, 70, 84, 99, 121, 0, 1, 97, 99, 117, 116, 101, 0, 1, 99, 0, 2, 97, 114, 111, 110, 0, 2, 101, 100, 105, 108, 0, 2, 105, 114, 99, 0, 2, 121, 0, 1, 102, 114, 0, 0, 83, 104, 111, 114, 116, 68, 111, 119, 110, 65, 114, 114, 111, 119, 0, 5, 76, 101, 102, 116, 65, 114, 114, 111, 119, 0, 5, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 5, 85, 112, 65, 114, 114, 111, 119, 0, 1, 105, 103, 109, 97, 0, 1, 109, 97, 108, 108, 67, 105, 114, 99, 108, 101, 0, 1, 111, 112, 102, 0, 1, 113, 114, 116, 0, 0, 83, 113, 117, 97, 114, 101, 0, 6, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 0, 6, 83, 117, 98, 115, 101, 116, 0, 12, 69, 113, 117, 97, 108, 0, 8, 112, 101, 114, 115, 101, 116, 0, 14, 69, 113, 117, 97, 108, 0, 6, 85, 110, 105, 111, 110, 0, 1, 115, 99, 114, 0, 0, 83, 116, 97, 114, 0, 1, 117, 98, 0, 3, 115, 101, 116, 0, 6, 69, 113, 117, 97, 108, 0, 2, 99, 99, 101, 101, 100, 115, 0, 8, 69, 113, 117, 97, 108, 0, 8, 83, 108, 97, 110, 116, 69, 113, 117, 97, 108, 0, 8, 84, 105, 108, 100, 101, 0, 0, 83, 117, 99, 104, 84, 104, 97, 116, 0, 2, 109, 0, 2, 112, 0, 3, 101, 114, 115, 101, 116, 0, 8, 69, 113, 117, 97, 108, 0, 3, 115, 101, 116, 0, 0, 84, 72, 79, 82, 78, 0, 1, 82, 65, 68, 69, 0, 0, 84, 83, 72, 99, 121, 0, 2, 99, 121, 0, 1, 97, 98, 0, 2, 117, 0, 1, 99, 97, 114, 111, 110, 0, 2, 101, 100, 105, 108, 0, 2, 121, 0, 1, 102, 114, 0, 0, 84, 104, 101, 114, 101, 102, 111, 114, 101, 0, 3, 116, 97, 0, 2, 105, 99, 107, 83, 112, 97, 99, 101, 0, 3, 110, 83, 112, 97, 99, 101, 0, 1, 105, 108, 100, 101, 0, 5, 69, 113, 117, 97, 108, 0, 5, 70, 117, 108, 108, 69, 113, 117, 97, 108, 0, 5, 84, 105, 108, 100, 101, 0, 0, 84, 111, 112, 102, 0, 1, 114, 105, 112, 108, 101, 68, 111, 116, 0, 1, 115, 99, 114, 0, 2, 116, 114, 111, 107, 0, 0, 85, 97, 99, 117, 116, 101, 0, 2, 114, 114, 0, 4, 111, 99, 105, 114, 0, 1, 98, 114, 99, 121, 0, 0, 85, 98, 114, 101, 118, 101, 0, 1, 99, 105, 114, 99, 0, 2, 121, 0, 1, 100, 98, 108, 97, 99, 0, 1, 102, 114, 0, 1, 103, 114, 97, 118, 101, 0, 1, 109, 97, 99, 114, 0, 1, 110, 100, 101, 114, 66, 97, 114, 0, 0, 85, 110, 100, 101, 114, 66, 114, 97, 99, 101, 0, 9, 107, 101, 116, 0, 5, 80, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 0, 2, 105, 111, 110, 0, 5, 80, 108, 117, 115, 0, 1, 111, 103, 111, 110, 0, 2, 112, 102, 0, 1, 112, 65, 114, 114, 111, 119, 0, 0, 85, 112, 65, 114, 114, 111, 119, 66, 97, 114, 0, 7, 68, 111, 119, 110, 65, 114, 114, 111, 119, 0, 2, 68, 111, 119, 110, 65, 114, 114, 111, 119, 0, 2, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 0, 2, 84, 101, 101, 0, 5, 65, 114, 114, 111, 119, 0, 2, 97, 114, 114, 111, 119, 0, 2, 100, 111, 119, 110, 97, 114, 114, 111, 119, 0, 0, 85, 112, 112, 101, 114, 76, 101, 102, 116, 65, 114, 114, 111, 119, 0, 5, 82, 105, 103, 104, 116, 65, 114, 114, 111, 119, 0, 2, 115, 105, 0, 4, 108, 111, 110, 0, 1, 114, 105, 110, 103, 0, 1, 115, 99, 114, 0, 1, 116, 105, 108, 100, 101, 0, 1, 117, 109, 108, 0, 0, 86, 68, 97, 115, 104, 0, 1, 98, 97, 114, 0, 1, 99, 121, 0, 1, 100, 97, 115, 104, 0, 5, 108, 0, 1, 101, 101, 0, 2, 114, 98, 97, 114, 0, 3, 116, 0, 0, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 0, 8, 76, 105, 110, 101, 0, 8, 83, 101, 112, 97, 114, 97, 116, 111, 114, 0, 8, 84, 105, 108, 100, 101, 0, 3, 121, 84, 104, 105, 110, 83, 112, 97, 99, 101, 0, 1, 102, 114, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 0, 86, 118, 100, 97, 115, 104, 0, 0, 87, 99, 105, 114, 99, 0, 1, 101, 100, 103, 101, 0, 1, 102, 114, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 0, 88, 102, 114, 0, 1, 105, 0, 0, 88, 111, 112, 102, 0, 1, 115, 99, 114, 0, 0, 89, 65, 99, 121, 0, 1, 73, 99, 121, 0, 1, 85, 99, 121, 0, 1, 97, 99, 117, 116, 101, 0, 1, 99, 105, 114, 99, 0, 2, 121, 0, 0, 89, 102, 114, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 1, 117, 109, 108, 0, 0, 90, 72, 99, 121, 0, 1, 97, 99, 117, 116, 101, 0, 1, 99, 97, 114, 111, 110, 0, 2, 121, 0, 0, 90, 100, 111, 116, 0, 1, 101, 114, 111, 87, 105, 100, 116, 104, 83, 112, 97, 99, 101, 0, 2, 116, 97, 0, 1, 102, 114, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 0, 97, 97, 99, 117, 116, 101, 0, 1, 98, 114, 101, 118, 101, 0, 0, 97, 99, 0, 2, 69, 0, 2, 100, 0, 2, 105, 114, 99, 0, 2, 117, 116, 101, 0, 2, 121, 0, 1, 101, 108, 105, 103, 0, 1, 102, 0, 0, 97, 102, 114, 0, 1, 103, 114, 97, 118, 101, 0, 1, 108, 101, 102, 115, 121, 109, 0, 3, 112, 104, 0, 2, 112, 104, 97, 0, 1, 109, 97, 99, 114, 0, 3, 108, 103, 0, 2, 112, 0, 0, 97, 110, 100, 0, 3, 97, 110, 100, 0, 3, 100, 0, 3, 115, 108, 111, 112, 101, 0, 3, 118, 0, 2, 103, 0, 3, 101, 0, 3, 108, 101, 0, 0, 97, 110, 103, 109, 115, 100, 0, 6, 97, 97, 0, 7, 98, 0, 7, 99, 0, 7, 100, 0, 7, 101, 0, 7, 102, 0, 7, 103, 0, 0, 97, 110, 103, 109, 115, 100, 97, 104, 0, 3, 114, 116, 0, 5, 118, 98, 0, 7, 100, 0, 3, 115, 112, 104, 0, 4, 116, 0, 3, 122, 97, 114, 114, 0, 1, 111, 103, 111, 110, 0, 0, 97, 111, 112, 102, 0, 1, 112, 0, 2, 69, 0, 2, 97, 99, 105, 114, 0, 2, 101, 0, 2, 105, 100, 0, 2, 111, 115, 0, 2, 112, 114, 111, 120, 0, 0, 97, 112, 112, 114, 111, 120, 101, 113, 0, 1, 114, 105, 110, 103, 0, 1, 115, 99, 114, 0, 2, 116, 0, 2, 121, 109, 112, 0, 5, 101, 113, 0, 1, 116, 105, 108, 100, 101, 0, 1, 117, 109, 108, 0, 0, 97, 119, 99, 111, 110, 105, 110, 116, 0, 2, 105, 110, 116, 0, 0, 98, 78, 111, 116, 0, 1, 97, 99, 107, 99, 111, 110, 103, 0, 4, 101, 112, 115, 105, 108, 111, 110, 0, 4, 112, 114, 105, 109, 101, 0, 4, 115, 105, 109, 0, 7, 101, 113, 0, 0, 98, 97, 114, 118, 101, 101, 0, 3, 119, 101, 100, 0, 6, 103, 101, 0, 1, 98, 114, 107, 0, 4, 116, 98, 114, 107, 0, 1, 99, 111, 110, 103, 0, 2, 121, 0, 1, 100, 113, 117, 111, 0, 0, 98, 101, 99, 97, 117, 115, 0, 6, 101, 0, 2, 109, 112, 116, 121, 118, 0, 2, 112, 115, 105, 0, 2, 114, 110, 111, 117, 0, 2, 116, 97, 0, 3, 104, 0, 3, 119, 101, 101, 110, 0, 0, 98, 102, 114, 0, 1, 105, 103, 99, 97, 112, 0, 4, 105, 114, 99, 0, 4, 117, 112, 0, 3, 111, 100, 111, 116, 0, 4, 112, 108, 117, 115, 0, 4, 116, 105, 109, 101, 115, 0, 3, 115, 113, 99, 117, 112, 0, 0, 98, 105, 103, 115, 116, 97, 114, 0, 3, 116, 114, 105, 97, 110, 103, 108, 101, 100, 111, 119, 110, 0, 11, 117, 112, 0, 3, 117, 112, 108, 117, 115, 0, 3, 118, 101, 101, 0, 3, 119, 101, 100, 103, 101, 0, 1, 107, 97, 114, 111, 119, 0, 1, 108, 97, 99, 107, 108, 111, 122, 101, 110, 103, 101, 0, 0, 98, 108, 97, 99, 107, 115, 113, 117, 97, 114, 101, 0, 5, 116, 114, 105, 97, 110, 103, 108, 101, 0, 13, 100, 111, 119, 110, 0, 13, 108, 101, 102, 116, 0, 13, 114, 105, 103, 104, 116, 0, 3, 110, 107, 0, 2, 107, 49, 50, 0, 4, 52, 0, 0, 98, 108, 107, 51, 52, 0, 2, 111, 99, 107, 0, 1, 110, 101, 0, 3, 113, 117, 105, 118, 0, 2, 111, 116, 0, 1, 111, 112, 102, 0, 2, 116, 0, 3, 116, 111, 109, 0, 0, 98, 111, 119, 116, 105, 101, 0, 2, 120, 68, 76, 0, 4, 82, 0, 4, 108, 0, 4, 114, 0, 3, 72, 0, 4, 68, 0, 4, 85, 0, 0, 98, 111, 120, 72, 100, 0, 4, 117, 0, 3, 85, 76, 0, 4, 82, 0, 4, 108, 0, 4, 114, 0, 3, 86, 0, 4, 72, 0, 0, 98, 111, 120, 86, 76, 0, 4, 82, 0, 4, 104, 0, 4, 108, 0, 4, 114, 0, 3, 98, 111, 120, 0, 3, 100, 76, 0, 4, 82, 0, 0, 98, 111, 120, 100, 108, 0, 4, 114, 0, 3, 104, 0, 4, 68, 0, 4, 85, 0, 4, 100, 0, 4, 117, 0, 3, 109, 105, 110, 117, 115, 0, 0, 98, 111, 120, 112, 108, 117, 115, 0, 3, 116, 105, 109, 101, 115, 0, 3, 117, 76, 0, 4, 82, 0, 4, 108, 0, 4, 114, 0, 3, 118, 0, 4, 72, 0, 0, 98, 111, 120, 118, 76, 0, 4, 82, 0, 4, 104, 0, 4, 108, 0, 4, 114, 0, 1, 112, 114, 105, 109, 101, 0, 1, 114, 101, 118, 101, 0, 2, 118, 98, 97, 114, 0, 0, 98, 115, 99, 114, 0, 2, 101, 109, 105, 0, 2, 105, 109, 0, 4, 101, 0, 2, 111, 108, 0, 4, 98, 0, 4, 104, 115, 117, 98, 0, 1, 117, 108, 108, 0, 0, 98, 117, 108, 108, 101, 116, 0, 2, 109, 112, 0, 4, 69, 0, 4, 101, 0, 5, 113, 0, 0, 99, 97, 99, 117, 116, 101, 0, 2, 112, 0, 3, 97, 110, 100, 0, 0, 99, 97, 112, 98, 114, 99, 117, 112, 0, 3, 99, 97, 112, 0, 4, 117, 112, 0, 3, 100, 111, 116, 0, 3, 115, 0, 2, 114, 101, 116, 0, 3, 111, 110, 0, 1, 99, 97, 112, 115, 0, 0, 99, 99, 97, 114, 111, 110, 0, 2, 101, 100, 105, 108, 0, 2, 105, 114, 99, 0, 2, 117, 112, 115, 0, 5, 115, 109, 0, 1, 100, 111, 116, 0, 1, 101, 100, 105, 108, 0, 2, 109, 112, 116, 121, 118, 0, 0, 99, 101, 110, 116, 0, 4, 101, 114, 100, 111, 116, 0, 1, 102, 114, 0, 1, 104, 99, 121, 0, 2, 101, 99, 107, 0, 5, 109, 97, 114, 107, 0, 2, 105, 0, 1, 105, 114, 0, 0, 99, 105, 114, 69, 0, 3, 99, 0, 4, 101, 113, 0, 4, 108, 101, 97, 114, 114, 111, 119, 108, 101, 102, 116, 0, 11, 114, 105, 103, 104, 116, 0, 6, 100, 82, 0, 7, 83, 0, 7, 97, 115, 116, 0, 0, 99, 105, 114, 99, 108, 101, 100, 99, 105, 114, 99, 0, 7, 100, 97, 115, 104, 0, 3, 101, 0, 3, 102, 110, 105, 110, 116, 0, 3, 109, 105, 100, 0, 3, 115, 99, 105, 114, 0, 1, 108, 117, 98, 115, 0, 5, 117, 105, 116, 0, 0, 99, 111, 108, 111, 110, 0, 5, 101, 0, 6, 113, 0, 2, 109, 109, 97, 0, 5, 116, 0, 3, 112, 0, 4, 102, 110, 0, 4, 108, 101, 109, 101, 110, 116, 0, 0, 99, 111, 109, 112, 108, 101, 120, 101, 115, 0, 2, 110, 103, 0, 4, 100, 111, 116, 0, 3, 105, 110, 116, 0, 2, 112, 102, 0, 3, 114, 111, 100, 0, 3, 121, 0, 4, 115, 114, 0, 0, 99, 114, 97, 114, 114, 0, 2, 111, 115, 115, 0, 1, 115, 99, 114, 0, 2, 117, 98, 0, 4, 101, 0, 3, 112, 0, 4, 101, 0, 1, 116, 100, 111, 116, 0, 0, 99, 117, 100, 97, 114, 114, 108, 0, 6, 114, 0, 2, 101, 112, 114, 0, 3, 115, 99, 0, 2, 108, 97, 114, 114, 0, 6, 112, 0, 2, 112, 0, 3, 98, 114, 99, 97, 112, 0, 0, 99, 117, 112, 99, 97, 112, 0, 4, 117, 112, 0, 3, 100, 111, 116, 0, 3, 111, 114, 0, 3, 115, 0, 2, 114, 97, 114, 114, 0, 6, 109, 0, 3, 108, 121, 101, 113, 112, 114, 101, 99, 0, 0, 99, 117, 114, 108, 121, 101, 113, 115, 117, 99, 99, 0, 5, 118, 101, 101, 0, 5, 119, 101, 100, 103, 101, 0, 3, 114, 101, 110, 0, 3, 118, 101, 97, 114, 114, 111, 119, 108, 101, 102, 116, 0, 10, 114, 105, 103, 104, 116, 0, 2, 118, 101, 101, 0, 2, 119, 101, 100, 0, 0, 99, 119, 99, 111, 110, 105, 110, 116, 0, 2, 105, 110, 116, 0, 1, 121, 108, 99, 116, 121, 0, 0, 100, 65, 114, 114, 0, 1, 72, 97, 114, 0, 1, 97, 103, 103, 101, 114, 0, 2, 108, 101, 116, 104, 0, 2, 114, 114, 0, 0, 100, 97, 115, 104, 0, 4, 118, 0, 1, 98, 107, 97, 114, 111, 119, 0, 2, 108, 97, 99, 0, 1, 99, 97, 114, 111, 110, 0, 2, 121, 0, 1, 100, 0, 2, 97, 103, 103, 101, 114, 0, 0, 100, 100, 97, 114, 114, 0, 2, 111, 116, 115, 101, 113, 0, 1, 101, 103, 0, 2, 108, 116, 97, 0, 2, 109, 112, 116, 121, 118, 0, 1, 102, 105, 115, 104, 116, 0, 2, 114, 0, 1, 104, 97, 114, 108, 0, 0, 100, 104, 97, 114, 114, 0, 1, 105, 97, 109, 0, 4, 111, 110, 100, 0, 7, 115, 117, 105, 116, 0, 4, 115, 0, 2, 101, 0, 2, 103, 97, 109, 109, 97, 0, 2, 115, 105, 110, 0, 0, 100, 105, 118, 0, 3, 105, 100, 101, 0, 6, 111, 110, 116, 105, 109, 101, 115, 0, 3, 111, 110, 120, 0, 1, 106, 99, 121, 0, 1, 108, 99, 111, 114, 110, 0, 3, 114, 111, 112, 0, 1, 111, 108, 108, 97, 114, 0, 0, 100, 111, 112, 102, 0, 2, 116, 0, 3, 101, 113, 0, 5, 100, 111, 116, 0, 3, 109, 105, 110, 117, 115, 0, 3, 112, 108, 117, 115, 0, 3, 115, 113, 117, 97, 114, 101, 0, 2, 117, 98, 108, 101, 98, 97, 114, 119, 101, 100, 103, 101, 0, 0, 100, 111, 119, 110, 97, 114, 114, 111, 119, 0, 4, 100, 111, 119, 110, 97, 114, 114, 111, 119, 115, 0, 4, 104, 97, 114, 112, 111, 111, 110, 108, 101, 102, 116, 0, 11, 114, 105, 103, 104, 116, 0, 1, 114, 98, 107, 97, 114, 111, 119, 0, 2, 99, 111, 114, 110, 0, 3, 114, 111, 112, 0, 1, 115, 99, 114, 0, 0, 100, 115, 99, 121, 0, 2, 111, 108, 0, 2, 116, 114, 111, 107, 0, 1, 116, 100, 111, 116, 0, 2, 114, 105, 0, 4, 102, 0, 1, 117, 97, 114, 114, 0, 2, 104, 97, 114, 0, 0, 100, 119, 97, 110, 103, 108, 101, 0, 1, 122, 99, 121, 0, 2, 105, 103, 114, 97, 114, 114, 0, 0, 101, 68, 68, 111, 116, 0, 2, 111, 116, 0, 1, 97, 99, 117, 116, 101, 0, 2, 115, 116, 101, 114, 0, 1, 99, 97, 114, 111, 110, 0, 0, 101, 99, 105, 114, 0, 4, 99, 0, 2, 111, 108, 111, 110, 0, 2, 121, 0, 1, 100, 111, 116, 0, 1, 101, 0, 1, 102, 68, 111, 116, 0, 2, 114, 0, 0, 101, 103, 0, 2, 114, 97, 118, 101, 0, 2, 115, 0, 3, 100, 111, 116, 0, 1, 108, 0, 2, 105, 110, 116, 101, 114, 115, 0, 2, 108, 0, 2, 115, 0, 0, 101, 108, 115, 100, 111, 116, 0, 1, 109, 97, 99, 114, 0, 2, 112, 116, 121, 0, 5, 115, 101, 116, 0, 5, 118, 0, 2, 115, 112, 0, 4, 49, 51, 0, 5, 52, 0, 0, 101, 110, 103, 0, 2, 115, 112, 0, 1, 111, 103, 111, 110, 0, 2, 112, 102, 0, 1, 112, 97, 114, 0, 4, 115, 108, 0, 2, 108, 117, 115, 0, 2, 115, 105, 0, 0, 101, 112, 115, 105, 108, 111, 110, 0, 4, 118, 0, 1, 113, 99, 105, 114, 99, 0, 3, 111, 108, 111, 110, 0, 2, 115, 105, 109, 0, 3, 108, 97, 110, 116, 103, 116, 114, 0, 7, 108, 101, 115, 115, 0, 2, 117, 97, 108, 115, 0, 0, 101, 113, 117, 101, 115, 116, 0, 3, 105, 118, 0, 5, 68, 68, 0, 2, 118, 112, 97, 114, 115, 108, 0, 1, 114, 68, 111, 116, 0, 2, 97, 114, 114, 0, 1, 115, 99, 114, 0, 2, 100, 111, 116, 0, 0, 101, 115, 105, 109, 0, 1, 116, 97, 0, 2, 104, 0, 1, 117, 109, 108, 0, 2, 114, 111, 0, 1, 120, 99, 108, 0, 2, 105, 115, 116, 0, 2, 112, 101, 99, 116, 97, 116, 105, 111, 110, 0, 0, 101, 120, 112, 111, 110, 101, 110, 116, 105, 97, 108, 101, 0, 0, 102, 97, 108, 108, 105, 110, 103, 100, 111, 116, 115, 101, 113, 0, 1, 99, 121, 0, 1, 101, 109, 97, 108, 101, 0, 1, 102, 105, 108, 105, 103, 0, 2, 108, 105, 103, 0, 3, 108, 105, 103, 0, 2, 114, 0, 0, 102, 105, 108, 105, 103, 0, 1, 106, 108, 105, 103, 0, 1, 108, 97, 116, 0, 2, 108, 105, 103, 0, 2, 116, 110, 115, 0, 1, 110, 111, 102, 0, 1, 111, 112, 102, 0, 2, 114, 97, 108, 108, 0, 0, 102, 111, 114, 107, 0, 4, 118, 0, 1, 112, 97, 114, 116, 105, 110, 116, 0, 1, 114, 97, 99, 49, 50, 0, 5, 51, 0, 5, 52, 0, 5, 53, 0, 5, 54, 0, 0, 102, 114, 97, 99, 49, 56, 0, 4, 50, 51, 0, 5, 53, 0, 4, 51, 52, 0, 5, 53, 0, 5, 56, 0, 4, 52, 53, 0, 4, 53, 54, 0, 0, 102, 114, 97, 99, 53, 56, 0, 4, 55, 56, 0, 3, 115, 108, 0, 2, 111, 119, 110, 0, 1, 115, 99, 114, 0, 0, 103, 69, 0, 2, 108, 0, 1, 97, 99, 117, 116, 101, 0, 0, 103, 97, 109, 109, 97, 0, 5, 100, 0, 2, 112, 0, 1, 98, 114, 101, 118, 101, 0, 1, 99, 105, 114, 99, 0, 2, 121, 0, 1, 100, 111, 116, 0, 1, 101, 0, 0, 103, 101, 108, 0, 2, 113, 0, 3, 113, 0, 3, 115, 108, 97, 110, 116, 0, 2, 115, 0, 3, 99, 99, 0, 3, 100, 111, 116, 0, 6, 111, 0, 0, 103, 101, 115, 100, 111, 116, 111, 108, 0, 3, 108, 0, 4, 101, 115, 0, 1, 102, 114, 0, 1, 103, 0, 2, 103, 0, 1, 105, 109, 101, 108, 0, 1, 106, 99, 121, 0, 0, 103, 108, 0, 2, 69, 0, 2, 97, 0, 2, 106, 0, 1, 110, 69, 0, 2, 97, 112, 0, 4, 112, 114, 111, 120, 0, 2, 101, 0, 0, 103, 110, 101, 113, 0, 4, 113, 0, 2, 115, 105, 109, 0, 1, 111, 112, 102, 0, 1, 114, 97, 118, 101, 0, 1, 115, 99, 114, 0, 2, 105, 109, 0, 4, 101, 0, 0, 103, 115, 105, 109, 108, 0, 1, 116, 0, 2, 99, 99, 0, 3, 105, 114, 0, 2, 100, 111, 116, 0, 2, 108, 80, 97, 114, 0, 2, 113, 117, 101, 115, 116, 0, 2, 114, 97, 112, 112, 114, 111, 120, 0, 0, 103, 116, 114, 97, 114, 114, 0, 3, 100, 111, 116, 0, 3, 101, 113, 108, 101, 115, 115, 0, 5, 113, 108, 101, 115, 115, 0, 3, 108, 101, 115, 115, 0, 3, 115, 105, 109, 0, 1, 118, 101, 114, 116, 110, 101, 113, 113, 0, 2, 110, 69, 0, 0, 104, 65, 114, 114, 0, 1, 97, 105, 114, 115, 112, 0, 2, 108, 102, 0, 2, 109, 105, 108, 116, 0, 2, 114, 100, 99, 121, 0, 3, 114, 0, 4, 99, 105, 114, 0, 4, 119, 0, 0, 104, 98, 97, 114, 0, 1, 99, 105, 114, 99, 0, 1, 101, 97, 114, 116, 115, 0, 6, 117, 105, 116, 0, 2, 108, 108, 105, 112, 0, 2, 114, 99, 111, 110, 0, 1, 102, 114, 0, 1, 107, 115, 101, 97, 114, 111, 119, 0, 0, 104, 107, 115, 119, 97, 114, 111, 119, 0, 1, 111, 97, 114, 114, 0, 2, 109, 116, 104, 116, 0, 2, 111, 107, 108, 101, 102, 116, 97, 114, 114, 111, 119, 0, 4, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 2, 112, 102, 0, 2, 114, 98, 97, 114, 0, 1, 115, 99, 114, 0, 0, 104, 115, 108, 97, 115, 104, 0, 2, 116, 114, 111, 107, 0, 1, 121, 98, 117, 108, 108, 0, 2, 112, 104, 101, 110, 0, 0, 105, 97, 99, 117, 116, 101, 0, 1, 99, 0, 2, 105, 114, 99, 0, 2, 121, 0, 0, 105, 101, 99, 121, 0, 2, 120, 99, 108, 0, 1, 102, 102, 0, 2, 114, 0, 1, 103, 114, 97, 118, 101, 0, 1, 105, 0, 2, 105, 105, 110, 116, 0, 3, 110, 116, 0, 0, 105, 105, 110, 102, 105, 110, 0, 2, 111, 116, 97, 0, 1, 106, 108, 105, 103, 0, 1, 109, 97, 99, 114, 0, 3, 103, 101, 0, 4, 108, 105, 110, 101, 0, 4, 112, 97, 114, 116, 0, 3, 116, 104, 0, 0, 105, 109, 111, 102, 0, 2, 112, 101, 100, 0, 1, 110, 0, 2, 99, 97, 114, 101, 0, 2, 102, 105, 110, 0, 5, 116, 105, 101, 0, 2, 111, 100, 111, 116, 0, 2, 116, 0, 0, 105, 110, 116, 99, 97, 108, 0, 3, 101, 103, 101, 114, 115, 0, 4, 114, 99, 97, 108, 0, 3, 108, 97, 114, 104, 107, 0, 3, 112, 114, 111, 100, 0, 1, 111, 99, 121, 0, 2, 103, 111, 110, 0, 2, 112, 102, 0, 0, 105, 111, 116, 97, 0, 1, 112, 114, 111, 100, 0, 1, 113, 117, 101, 115, 116, 0, 1, 115, 99, 114, 0, 2, 105, 110, 0, 4, 69, 0, 4, 100, 111, 116, 0, 4, 115, 0, 0, 105, 115, 105, 110, 115, 118, 0, 4, 118, 0, 1, 116, 0, 2, 105, 108, 100, 101, 0, 1, 117, 107, 99, 121, 0, 2, 109, 108, 0, 0, 106, 99, 105, 114, 99, 0, 2, 121, 0, 0, 106, 102, 114, 0, 1, 109, 97, 116, 104, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 2, 101, 114, 99, 121, 0, 1, 117, 107, 99, 121, 0, 0, 107, 97, 112, 112, 97, 0, 5, 118, 0, 0, 107, 99, 101, 100, 105, 108, 0, 2, 121, 0, 1, 102, 114, 0, 1, 103, 114, 101, 101, 110, 0, 1, 104, 99, 121, 0, 1, 106, 99, 121, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 0, 108, 65, 97, 114, 114, 0, 2, 114, 114, 0, 2, 116, 97, 105, 108, 0, 1, 66, 97, 114, 114, 0, 1, 69, 0, 2, 103, 0, 1, 72, 97, 114, 0, 1, 97, 99, 117, 116, 101, 0, 0, 108, 97, 101, 109, 112, 116, 121, 118, 0, 2, 103, 114, 97, 110, 0, 2, 109, 98, 100, 97, 0, 2, 110, 103, 0, 4, 100, 0, 4, 108, 101, 0, 2, 112, 0, 2, 113, 117, 111, 0, 0, 108, 97, 114, 114, 0, 4, 98, 0, 5, 102, 115, 0, 4, 102, 115, 0, 4, 104, 107, 0, 4, 108, 112, 0, 4, 112, 108, 0, 4, 115, 105, 109, 0, 0, 108, 97, 114, 114, 116, 108, 0, 2, 116, 0, 3, 97, 105, 108, 0, 3, 101, 0, 4, 115, 0, 1, 98, 97, 114, 114, 0, 2, 98, 114, 107, 0, 2, 114, 97, 99, 101, 0, 0, 108, 98, 114, 97, 99, 107, 0, 3, 107, 101, 0, 4, 115, 108, 100, 0, 6, 117, 0, 1, 99, 97, 114, 111, 110, 0, 2, 101, 100, 105, 108, 0, 3, 105, 108, 0, 2, 117, 98, 0, 0, 108, 99, 121, 0, 1, 100, 99, 97, 0, 2, 113, 117, 111, 0, 5, 114, 0, 2, 114, 100, 104, 97, 114, 0, 3, 117, 115, 104, 97, 114, 0, 2, 115, 104, 0, 1, 101, 0, 0, 108, 101, 102, 116, 97, 114, 114, 111, 119, 0, 9, 116, 97, 105, 108, 0, 4, 104, 97, 114, 112, 111, 111, 110, 100, 111, 119, 110, 0, 11, 117, 112, 0, 4, 108, 101, 102, 116, 97, 114, 114, 111, 119, 115, 0, 4, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 14, 115, 0, 9, 104, 97, 114, 112, 111, 111, 110, 115, 0, 0, 108, 101, 102, 116, 114, 105, 103, 104, 116, 115, 113, 117, 105, 103, 97, 114, 114, 111, 119, 0, 4, 116, 104, 114, 101, 101, 116, 105, 109, 101, 115, 0, 2, 103, 0, 2, 113, 0, 3, 113, 0, 3, 115, 108, 97, 110, 116, 0, 2, 115, 0, 3, 99, 99, 0, 0, 108, 101, 115, 100, 111, 116, 0, 6, 111, 0, 7, 114, 0, 3, 103, 0, 4, 101, 115, 0, 3, 115, 97, 112, 112, 114, 111, 120, 0, 4, 100, 111, 116, 0, 4, 101, 113, 103, 116, 114, 0, 0, 108, 101, 115, 115, 101, 113, 113, 103, 116, 114, 0, 4, 103, 116, 114, 0, 4, 115, 105, 109, 0, 1, 102, 105, 115, 104, 116, 0, 2, 108, 111, 111, 114, 0, 2, 114, 0, 1, 103, 0, 2, 69, 0, 0, 108, 104, 97, 114, 100, 0, 4, 117, 0, 5, 108, 0, 2, 98, 108, 107, 0, 1, 106, 99, 121, 0, 1, 108, 0, 2, 97, 114, 114, 0, 2, 99, 111, 114, 110, 101, 114, 0, 0, 108, 108, 104, 97, 114, 100, 0, 2, 116, 114, 105, 0, 1, 109, 105, 100, 111, 116, 0, 2, 111, 117, 115, 116, 0, 6, 97, 99, 104, 101, 0, 1, 110, 69, 0, 2, 97, 112, 0, 4, 112, 114, 111, 120, 0, 0, 108, 110, 101, 0, 3, 113, 0, 4, 113, 0, 2, 115, 105, 109, 0, 1, 111, 97, 110, 103, 0, 3, 114, 114, 0, 2, 98, 114, 107, 0, 2, 110, 103, 108, 101, 102, 116, 97, 114, 114, 111, 119, 0, 0, 108, 111, 110, 103, 108, 101, 102, 116, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 4, 109, 97, 112, 115, 116, 111, 0, 4, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 2, 111, 112, 97, 114, 114, 111, 119, 108, 101, 102, 116, 0, 9, 114, 105, 103, 104, 116, 0, 2, 112, 97, 114, 0, 3, 102, 0, 3, 108, 117, 115, 0, 0, 108, 111, 116, 105, 109, 101, 115, 0, 2, 119, 97, 115, 116, 0, 3, 98, 97, 114, 0, 2, 122, 0, 3, 101, 110, 103, 101, 0, 3, 102, 0, 1, 112, 97, 114, 0, 4, 108, 116, 0, 0, 108, 114, 97, 114, 114, 0, 2, 99, 111, 114, 110, 101, 114, 0, 2, 104, 97, 114, 0, 5, 100, 0, 2, 109, 0, 2, 116, 114, 105, 0, 1, 115, 97, 113, 117, 111, 0, 2, 99, 114, 0, 0, 108, 115, 104, 0, 2, 105, 109, 0, 4, 101, 0, 4, 103, 0, 2, 113, 98, 0, 3, 117, 111, 0, 5, 114, 0, 2, 116, 114, 111, 107, 0, 0, 108, 116, 0, 2, 99, 99, 0, 3, 105, 114, 0, 2, 100, 111, 116, 0, 2, 104, 114, 101, 101, 0, 2, 105, 109, 101, 115, 0, 2, 108, 97, 114, 114, 0, 2, 113, 117, 101, 115, 116, 0, 0, 108, 116, 114, 80, 97, 114, 0, 3, 105, 0, 4, 101, 0, 4, 102, 0, 1, 117, 114, 100, 115, 104, 97, 114, 0, 3, 117, 104, 97, 114, 0, 1, 118, 101, 114, 116, 110, 101, 113, 113, 0, 2, 110, 69, 0, 0, 109, 68, 68, 111, 116, 0, 1, 97, 99, 114, 0, 2, 108, 101, 0, 3, 116, 0, 4, 101, 115, 101, 0, 2, 112, 0, 3, 115, 116, 111, 0, 6, 100, 111, 119, 110, 0, 0, 109, 97, 112, 115, 116, 111, 108, 101, 102, 116, 0, 6, 117, 112, 0, 2, 114, 107, 101, 114, 0, 1, 99, 111, 109, 109, 97, 0, 2, 121, 0, 1, 100, 97, 115, 104, 0, 1, 101, 97, 115, 117, 114, 101, 100, 97, 110, 103, 108, 101, 0, 1, 102, 114, 0, 0, 109, 104, 111, 0, 1, 105, 99, 114, 111, 0, 2, 100, 0, 3, 97, 115, 116, 0, 3, 99, 105, 114, 0, 3, 100, 111, 116, 0, 2, 110, 117, 115, 0, 5, 98, 0, 0, 109, 105, 110, 117, 115, 100, 0, 6, 117, 0, 1, 108, 99, 112, 0, 2, 100, 114, 0, 1, 110, 112, 108, 117, 115, 0, 1, 111, 100, 101, 108, 115, 0, 2, 112, 102, 0, 1, 112, 0, 0, 109, 115, 99, 114, 0, 2, 116, 112, 111, 115, 0, 1, 117, 0, 2, 108, 116, 105, 109, 97, 112, 0, 2, 109, 97, 112, 0, 0, 110, 71, 103, 0, 2, 116, 0, 3, 118, 0, 0, 110, 76, 101, 102, 116, 97, 114, 114, 111, 119, 0, 5, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 2, 108, 0, 2, 116, 0, 3, 118, 0, 1, 82, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 1, 86, 68, 97, 115, 104, 0, 2, 100, 97, 115, 104, 0, 0, 110, 97, 98, 108, 97, 0, 2, 99, 117, 116, 101, 0, 2, 110, 103, 0, 2, 112, 0, 3, 69, 0, 3, 105, 100, 0, 3, 111, 115, 0, 3, 112, 114, 111, 120, 0, 0, 110, 97, 116, 117, 114, 0, 5, 97, 108, 0, 7, 115, 0, 1, 98, 115, 112, 0, 2, 117, 109, 112, 0, 5, 101, 0, 1, 99, 97, 112, 0, 3, 114, 111, 110, 0, 0, 110, 99, 101, 100, 105, 108, 0, 2, 111, 110, 103, 0, 5, 100, 111, 116, 0, 2, 117, 112, 0, 2, 121, 0, 1, 100, 97, 115, 104, 0, 1, 101, 0, 2, 65, 114, 114, 0, 0, 110, 101, 97, 114, 104, 107, 0, 4, 114, 0, 5, 111, 119, 0, 2, 100, 111, 116, 0, 2, 113, 117, 105, 118, 0, 2, 115, 101, 97, 114, 0, 3, 105, 109, 0, 2, 120, 105, 115, 116, 0, 0, 110, 101, 120, 105, 115, 116, 115, 0, 1, 102, 114, 0, 1, 103, 69, 0, 2, 101, 0, 3, 113, 0, 4, 113, 0, 4, 115, 108, 97, 110, 116, 0, 3, 115, 0, 0, 110, 103, 115, 105, 109, 0, 2, 116, 0, 3, 114, 0, 1, 104, 65, 114, 114, 0, 2, 97, 114, 114, 0, 2, 112, 97, 114, 0, 1, 105, 0, 2, 115, 0, 0, 110, 105, 115, 100, 0, 2, 118, 0, 1, 106, 99, 121, 0, 1, 108, 65, 114, 114, 0, 2, 69, 0, 2, 97, 114, 114, 0, 2, 100, 114, 0, 2, 101, 0, 0, 110, 108, 101, 102, 116, 97, 114, 114, 111, 119, 0, 5, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 3, 113, 0, 4, 113, 0, 4, 115, 108, 97, 110, 116, 0, 3, 115, 0, 4, 115, 0, 2, 115, 105, 109, 0, 0, 110, 108, 116, 0, 3, 114, 105, 0, 5, 101, 0, 1, 109, 105, 100, 0, 1, 111, 112, 102, 0, 2, 116, 0, 3, 105, 110, 0, 5, 69, 0, 0, 110, 111, 116, 105, 110, 100, 111, 116, 0, 5, 118, 97, 0, 6, 98, 0, 6, 99, 0, 3, 110, 105, 0, 5, 118, 97, 0, 6, 98, 0, 6, 99, 0, 0, 110, 112, 97, 114, 0, 4, 97, 108, 108, 101, 108, 0, 4, 115, 108, 0, 4, 116, 0, 2, 111, 108, 105, 110, 116, 0, 2, 114, 0, 3, 99, 117, 101, 0, 3, 101, 0, 0, 110, 112, 114, 101, 99, 0, 5, 101, 113, 0, 1, 114, 65, 114, 114, 0, 2, 97, 114, 114, 0, 5, 99, 0, 5, 119, 0, 2, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 2, 116, 114, 105, 0, 0, 110, 114, 116, 114, 105, 101, 0, 1, 115, 99, 0, 3, 99, 117, 101, 0, 3, 101, 0, 3, 114, 0, 2, 104, 111, 114, 116, 109, 105, 100, 0, 6, 112, 97, 114, 97, 108, 108, 101, 108, 0, 2, 105, 109, 0, 0, 110, 115, 105, 109, 101, 0, 5, 113, 0, 2, 109, 105, 100, 0, 2, 112, 97, 114, 0, 2, 113, 115, 117, 98, 101, 0, 5, 112, 101, 0, 2, 117, 98, 0, 4, 69, 0, 0, 110, 115, 117, 98, 101, 0, 4, 115, 101, 116, 0, 7, 101, 113, 0, 9, 113, 0, 3, 99, 99, 0, 5, 101, 113, 0, 3, 112, 0, 4, 69, 0, 0, 110, 115, 117, 112, 101, 0, 4, 115, 101, 116, 0, 7, 101, 113, 0, 9, 113, 0, 1, 116, 103, 108, 0, 2, 105, 108, 100, 101, 0, 2, 108, 103, 0, 2, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 0, 0, 110, 116, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 101, 113, 0, 9, 114, 105, 103, 104, 116, 0, 14, 101, 113, 0, 1, 117, 0, 2, 109, 0, 3, 101, 114, 111, 0, 3, 115, 112, 0, 1, 118, 68, 97, 115, 104, 0, 0, 110, 118, 72, 97, 114, 114, 0, 2, 97, 112, 0, 2, 100, 97, 115, 104, 0, 2, 103, 101, 0, 3, 116, 0, 2, 105, 110, 102, 105, 110, 0, 2, 108, 65, 114, 114, 0, 3, 101, 0, 0, 110, 118, 108, 116, 0, 4, 114, 105, 101, 0, 2, 114, 65, 114, 114, 0, 3, 116, 114, 105, 101, 0, 2, 115, 105, 109, 0, 1, 119, 65, 114, 114, 0, 2, 97, 114, 104, 107, 0, 4, 114, 0, 0, 110, 119, 97, 114, 114, 111, 119, 0, 2, 110, 101, 97, 114, 0, 0, 111, 83, 0, 1, 97, 99, 117, 116, 101, 0, 2, 115, 116, 0, 1, 99, 105, 114, 0, 4, 99, 0, 2, 121, 0, 0, 111, 100, 97, 115, 104, 0, 2, 98, 108, 97, 99, 0, 2, 105, 118, 0, 2, 111, 116, 0, 2, 115, 111, 108, 100, 0, 1, 101, 108, 105, 103, 0, 1, 102, 99, 105, 114, 0, 2, 114, 0, 0, 111, 103, 111, 110, 0, 2, 114, 97, 118, 101, 0, 2, 116, 0, 1, 104, 98, 97, 114, 0, 2, 109, 0, 1, 105, 110, 116, 0, 1, 108, 97, 114, 114, 0, 2, 99, 105, 114, 0, 0, 111, 108, 99, 114, 111, 115, 115, 0, 2, 105, 110, 101, 0, 2, 116, 0, 1, 109, 97, 99, 114, 0, 2, 101, 103, 97, 0, 2, 105, 99, 114, 111, 110, 0, 3, 100, 0, 3, 110, 117, 115, 0, 0, 111, 111, 112, 102, 0, 1, 112, 97, 114, 0, 2, 101, 114, 112, 0, 2, 108, 117, 115, 0, 1, 114, 0, 2, 97, 114, 114, 0, 2, 100, 0, 3, 101, 114, 0, 0, 111, 114, 100, 101, 114, 111, 102, 0, 3, 102, 0, 3, 109, 0, 2, 105, 103, 111, 102, 0, 2, 111, 114, 0, 2, 115, 108, 111, 112, 101, 0, 2, 118, 0, 1, 115, 99, 114, 0, 0, 111, 115, 108, 97, 115, 104, 0, 2, 111, 108, 0, 1, 116, 105, 108, 100, 101, 0, 3, 109, 101, 115, 0, 6, 97, 115, 0, 1, 117, 109, 108, 0, 1, 118, 98, 97, 114, 0, 0, 112, 97, 114, 0, 0, 112, 97, 114, 97, 0, 4, 108, 108, 101, 108, 0, 3, 115, 105, 109, 0, 4, 108, 0, 3, 116, 0, 1, 99, 121, 0, 1, 101, 114, 99, 110, 116, 0, 3, 105, 111, 100, 0, 0, 112, 101, 114, 109, 105, 108, 0, 3, 112, 0, 3, 116, 101, 110, 107, 0, 1, 102, 114, 0, 1, 104, 105, 0, 3, 118, 0, 2, 109, 109, 97, 116, 0, 2, 111, 110, 101, 0, 0, 112, 105, 0, 2, 116, 99, 104, 102, 111, 114, 107, 0, 2, 118, 0, 1, 108, 97, 110, 99, 107, 0, 6, 104, 0, 4, 107, 118, 0, 2, 117, 115, 0, 4, 97, 99, 105, 114, 0, 0, 112, 108, 117, 115, 98, 0, 4, 99, 105, 114, 0, 4, 100, 111, 0, 5, 117, 0, 4, 101, 0, 4, 109, 110, 0, 4, 115, 105, 109, 0, 4, 116, 119, 111, 0, 0, 112, 109, 0, 1, 111, 105, 110, 116, 105, 110, 116, 0, 2, 112, 102, 0, 2, 117, 110, 100, 0, 1, 114, 0, 2, 69, 0, 2, 97, 112, 0, 2, 99, 117, 101, 0, 0, 112, 114, 101, 0, 3, 99, 0, 4, 97, 112, 112, 114, 111, 120, 0, 4, 99, 117, 114, 108, 121, 101, 113, 0, 4, 101, 113, 0, 4, 110, 97, 112, 112, 114, 111, 120, 0, 5, 101, 113, 113, 0, 5, 115, 105, 109, 0, 0, 112, 114, 101, 99, 115, 105, 109, 0, 2, 105, 109, 101, 0, 5, 115, 0, 2, 110, 69, 0, 3, 97, 112, 0, 3, 115, 105, 109, 0, 2, 111, 100, 0, 3, 102, 97, 108, 97, 114, 0, 0, 112, 114, 111, 102, 108, 105, 110, 101, 0, 4, 115, 117, 114, 102, 0, 3, 112, 0, 4, 116, 111, 0, 2, 115, 105, 109, 0, 2, 117, 114, 101, 108, 0, 1, 115, 99, 114, 0, 2, 105, 0, 0, 112, 117, 110, 99, 115, 112, 0, 0, 113, 102, 114, 0, 1, 105, 110, 116, 0, 1, 111, 112, 102, 0, 1, 112, 114, 105, 109, 101, 0, 1, 115, 99, 114, 0, 1, 117, 97, 116, 101, 114, 110, 105, 111, 110, 115, 0, 4, 105, 110, 116, 0, 0, 113, 117, 101, 115, 116, 0, 5, 101, 113, 0, 2, 111, 116, 0, 0, 114, 65, 97, 114, 114, 0, 2, 114, 114, 0, 2, 116, 97, 105, 108, 0, 1, 66, 97, 114, 114, 0, 1, 72, 97, 114, 0, 0, 114, 97, 99, 101, 0, 3, 117, 116, 101, 0, 2, 100, 105, 99, 0, 2, 101, 109, 112, 116, 121, 118, 0, 2, 110, 103, 0, 4, 100, 0, 4, 101, 0, 4, 108, 101, 0, 0, 114, 97, 113, 117, 111, 0, 2, 114, 114, 0, 4, 97, 112, 0, 4, 98, 0, 5, 102, 115, 0, 4, 99, 0, 4, 102, 115, 0, 4, 104, 107, 0, 0, 114, 97, 114, 114, 108, 112, 0, 4, 112, 108, 0, 4, 115, 105, 109, 0, 4, 116, 108, 0, 4, 119, 0, 2, 116, 97, 105, 108, 0, 3, 105, 111, 0, 5, 110, 97, 108, 115, 0, 0, 114, 98, 97, 114, 114, 0, 2, 98, 114, 107, 0, 2, 114, 97, 99, 101, 0, 5, 107, 0, 3, 107, 101, 0, 4, 115, 108, 100, 0, 6, 117, 0, 1, 99, 97, 114, 111, 110, 0, 0, 114, 99, 101, 100, 105, 108, 0, 3, 105, 108, 0, 2, 117, 98, 0, 2, 121, 0, 1, 100, 99, 97, 0, 2, 108, 100, 104, 97, 114, 0, 2, 113, 117, 111, 0, 5, 114, 0, 0, 114, 100, 115, 104, 0, 1, 101, 97, 108, 0, 4, 105, 110, 101, 0, 4, 112, 97, 114, 116, 0, 4, 115, 0, 2, 99, 116, 0, 2, 103, 0, 1, 102, 105, 115, 104, 116, 0, 0, 114, 102, 108, 111, 111, 114, 0, 2, 114, 0, 1, 104, 97, 114, 100, 0, 4, 117, 0, 5, 108, 0, 2, 111, 0, 3, 118, 0, 1, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 0, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 116, 97, 105, 108, 0, 5, 104, 97, 114, 112, 111, 111, 110, 100, 111, 119, 110, 0, 12, 117, 112, 0, 5, 108, 101, 102, 116, 97, 114, 114, 111, 119, 115, 0, 9, 104, 97, 114, 112, 111, 111, 110, 115, 0, 5, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 115, 0, 5, 115, 113, 117, 105, 103, 97, 114, 114, 111, 119, 0, 5, 116, 104, 114, 101, 101, 116, 105, 109, 101, 115, 0, 0, 114, 105, 110, 103, 0, 2, 115, 105, 110, 103, 100, 111, 116, 115, 101, 113, 0, 1, 108, 97, 114, 114, 0, 2, 104, 97, 114, 0, 2, 109, 0, 1, 109, 111, 117, 115, 116, 0, 6, 97, 99, 104, 101, 0, 1, 110, 109, 105, 100, 0, 0, 114, 111, 97, 110, 103, 0, 3, 114, 114, 0, 2, 98, 114, 107, 0, 2, 112, 97, 114, 0, 3, 102, 0, 3, 108, 117, 115, 0, 2, 116, 105, 109, 101, 115, 0, 1, 112, 97, 114, 0, 0, 114, 112, 97, 114, 103, 116, 0, 2, 112, 111, 108, 105, 110, 116, 0, 1, 114, 97, 114, 114, 0, 1, 115, 97, 113, 117, 111, 0, 2, 99, 114, 0, 2, 104, 0, 2, 113, 98, 0, 3, 117, 111, 0, 0, 114, 115, 113, 117, 111, 114, 0, 1, 116, 104, 114, 101, 101, 0, 2, 105, 109, 101, 115, 0, 2, 114, 105, 0, 4, 101, 0, 4, 102, 0, 4, 108, 116, 114, 105, 0, 1, 117, 108, 117, 104, 97, 114, 0, 0, 114, 120, 0, 0, 115, 97, 99, 117, 116, 101, 0, 1, 98, 113, 117, 111, 0, 1, 99, 0, 2, 69, 0, 2, 97, 112, 0, 3, 114, 111, 110, 0, 2, 99, 117, 101, 0, 0, 115, 99, 101, 0, 3, 100, 105, 108, 0, 2, 105, 114, 99, 0, 2, 110, 69, 0, 3, 97, 112, 0, 3, 115, 105, 109, 0, 2, 112, 111, 108, 105, 110, 116, 0, 2, 115, 105, 109, 0, 0, 115, 99, 121, 0, 1, 100, 111, 116, 0, 4, 98, 0, 4, 101, 0, 1, 101, 65, 114, 114, 0, 2, 97, 114, 104, 107, 0, 4, 114, 0, 5, 111, 119, 0, 0, 115, 101, 99, 116, 0, 2, 109, 105, 0, 2, 115, 119, 97, 114, 0, 2, 116, 109, 105, 110, 117, 115, 0, 4, 110, 0, 2, 120, 116, 0, 1, 102, 114, 0, 3, 111, 119, 110, 0, 0, 115, 104, 97, 114, 112, 0, 2, 99, 104, 99, 121, 0, 3, 121, 0, 2, 111, 114, 116, 109, 105, 100, 0, 5, 112, 97, 114, 97, 108, 108, 101, 108, 0, 2, 121, 0, 1, 105, 103, 109, 97, 0, 5, 102, 0, 0, 115, 105, 103, 109, 97, 118, 0, 2, 109, 0, 3, 100, 111, 116, 0, 3, 101, 0, 4, 113, 0, 3, 103, 0, 4, 69, 0, 3, 108, 0, 0, 115, 105, 109, 108, 69, 0, 3, 110, 101, 0, 3, 112, 108, 117, 115, 0, 3, 114, 97, 114, 114, 0, 1, 108, 97, 114, 114, 0, 1, 109, 97, 108, 108, 115, 101, 116, 109, 105, 110, 117, 115, 0, 3, 115, 104, 112, 0, 2, 101, 112, 97, 114, 115, 108, 0, 0, 115, 109, 105, 100, 0, 3, 108, 101, 0, 2, 116, 0, 3, 101, 0, 4, 115, 0, 1, 111, 102, 116, 99, 121, 0, 2, 108, 0, 3, 98, 0, 0, 115, 111, 108, 98, 97, 114, 0, 2, 112, 102, 0, 1, 112, 97, 100, 101, 115, 0, 6, 117, 105, 116, 0, 3, 114, 0, 1, 113, 99, 97, 112, 0, 5, 115, 0, 3, 117, 112, 0, 0, 115, 113, 99, 117, 112, 115, 0, 2, 115, 117, 98, 0, 5, 101, 0, 5, 115, 101, 116, 0, 8, 101, 113, 0, 4, 112, 0, 5, 101, 0, 5, 115, 101, 116, 0, 0, 115, 113, 115, 117, 112, 115, 101, 116, 101, 113, 0, 2, 117, 0, 3, 97, 114, 101, 0, 5, 102, 0, 3, 102, 0, 1, 114, 97, 114, 114, 0, 1, 115, 99, 114, 0, 2, 101, 116, 109, 110, 0, 0, 115, 115, 109, 105, 108, 101, 0, 2, 116, 97, 114, 102, 0, 1, 116, 97, 114, 0, 4, 102, 0, 2, 114, 97, 105, 103, 104, 116, 101, 112, 115, 105, 108, 111, 110, 0, 8, 112, 104, 105, 0, 3, 110, 115, 0, 1, 117, 98, 0, 0, 115, 117, 98, 69, 0, 3, 100, 111, 116, 0, 3, 101, 0, 4, 100, 111, 116, 0, 3, 109, 117, 108, 116, 0, 3, 110, 69, 0, 4, 101, 0, 3, 112, 108, 117, 115, 0, 0, 115, 117, 98, 114, 97, 114, 114, 0, 3, 115, 101, 116, 0, 6, 101, 113, 0, 8, 113, 0, 6, 110, 101, 113, 0, 9, 113, 0, 4, 105, 109, 0, 4, 117, 98, 0, 0, 115, 117, 98, 115, 117, 112, 0, 2, 99, 99, 0, 4, 97, 112, 112, 114, 111, 120, 0, 4, 99, 117, 114, 108, 121, 101, 113, 0, 4, 101, 113, 0, 4, 110, 97, 112, 112, 114, 111, 120, 0, 5, 101, 113, 113, 0, 5, 115, 105, 109, 0, 0, 115, 117, 99, 99, 115, 105, 109, 0, 2, 109, 0, 2, 110, 103, 0, 2, 112, 0, 3, 49, 0, 3, 50, 0, 3, 51, 0, 3, 69, 0, 0, 115, 117, 112, 100, 111, 116, 0, 4, 115, 117, 98, 0, 3, 101, 0, 4, 100, 111, 116, 0, 3, 104, 115, 111, 108, 0, 5, 117, 98, 0, 3, 108, 97, 114, 114, 0, 3, 109, 117, 108, 116, 0, 0, 115, 117, 112, 110, 69, 0, 4, 101, 0, 3, 112, 108, 117, 115, 0, 3, 115, 101, 116, 0, 6, 101, 113, 0, 8, 113, 0, 6, 110, 101, 113, 0, 9, 113, 0, 0, 115, 117, 112, 115, 105, 109, 0, 4, 117, 98, 0, 5, 112, 0, 1, 119, 65, 114, 114, 0, 2, 97, 114, 104, 107, 0, 4, 114, 0, 5, 111, 119, 0, 2, 110, 119, 97, 114, 0, 0, 115, 122, 108, 105, 103, 0, 0, 116, 97, 114, 103, 101, 116, 0, 2, 117, 0, 1, 98, 114, 107, 0, 1, 99, 97, 114, 111, 110, 0, 2, 101, 100, 105, 108, 0, 2, 121, 0, 1, 100, 111, 116, 0, 0, 116, 101, 108, 114, 101, 99, 0, 1, 102, 114, 0, 1, 104, 101, 114, 101, 52, 0, 5, 102, 111, 114, 101, 0, 3, 116, 97, 0, 5, 115, 121, 109, 0, 5, 118, 0, 2, 105, 99, 107, 97, 112, 112, 114, 111, 120, 0, 0, 116, 104, 105, 99, 107, 115, 105, 109, 0, 3, 110, 115, 112, 0, 2, 107, 97, 112, 0, 3, 115, 105, 109, 0, 2, 111, 114, 110, 0, 1, 105, 108, 100, 101, 0, 2, 109, 101, 115, 0, 5, 98, 0, 0, 116, 105, 109, 101, 115, 98, 97, 114, 0, 5, 100, 0, 2, 110, 116, 0, 1, 111, 101, 97, 0, 2, 112, 0, 3, 98, 111, 116, 0, 3, 99, 105, 114, 0, 3, 102, 0, 0, 116, 111, 112, 102, 111, 114, 107, 0, 2, 115, 97, 0, 1, 112, 114, 105, 109, 101, 0, 1, 114, 97, 100, 101, 0, 2, 105, 97, 110, 103, 108, 101, 0, 8, 100, 111, 119, 110, 0, 8, 108, 101, 102, 116, 0, 12, 101, 113, 0, 0, 116, 114, 105, 97, 110, 103, 108, 101, 113, 0, 8, 114, 105, 103, 104, 116, 0, 13, 101, 113, 0, 3, 100, 111, 116, 0, 3, 101, 0, 3, 109, 105, 110, 117, 115, 0, 3, 112, 108, 117, 115, 0, 3, 115, 98, 0, 0, 116, 114, 105, 116, 105, 109, 101, 0, 2, 112, 101, 122, 105, 117, 109, 0, 1, 115, 99, 114, 0, 3, 121, 0, 2, 104, 99, 121, 0, 2, 116, 114, 111, 107, 0, 1, 119, 105, 120, 116, 0, 2, 111, 104, 101, 97, 100, 108, 101, 102, 116, 97, 114, 114, 111, 119, 0, 0, 116, 119, 111, 104, 101, 97, 100, 114, 105, 103, 104, 116, 97, 114, 114, 111, 119, 0, 0, 117, 65, 114, 114, 0, 1, 72, 97, 114, 0, 1, 97, 99, 117, 116, 101, 0, 2, 114, 114, 0, 1, 98, 114, 99, 121, 0, 3, 101, 118, 101, 0, 1, 99, 105, 114, 99, 0, 0, 117, 99, 121, 0, 1, 100, 97, 114, 114, 0, 2, 98, 108, 97, 99, 0, 2, 104, 97, 114, 0, 1, 102, 105, 115, 104, 116, 0, 2, 114, 0, 1, 103, 114, 97, 118, 101, 0, 1, 104, 97, 114, 108, 0, 0, 117, 104, 97, 114, 114, 0, 2, 98, 108, 107, 0, 1, 108, 99, 111, 114, 110, 0, 6, 101, 114, 0, 3, 114, 111, 112, 0, 2, 116, 114, 105, 0, 1, 109, 97, 99, 114, 0, 2, 108, 0, 0, 117, 111, 103, 111, 110, 0, 2, 112, 102, 0, 1, 112, 97, 114, 114, 111, 119, 0, 2, 100, 111, 119, 110, 97, 114, 114, 111, 119, 0, 2, 104, 97, 114, 112, 111, 111, 110, 108, 101, 102, 116, 0, 9, 114, 105, 103, 104, 116, 0, 2, 108, 117, 115, 0, 2, 115, 105, 0, 0, 117, 112, 115, 105, 104, 0, 4, 108, 111, 110, 0, 2, 117, 112, 97, 114, 114, 111, 119, 115, 0, 1, 114, 99, 111, 114, 110, 0, 6, 101, 114, 0, 3, 114, 111, 112, 0, 2, 105, 110, 103, 0, 2, 116, 114, 105, 0, 0, 117, 115, 99, 114, 0, 1, 116, 100, 111, 116, 0, 2, 105, 108, 100, 101, 0, 2, 114, 105, 0, 4, 102, 0, 1, 117, 97, 114, 114, 0, 2, 109, 108, 0, 1, 119, 97, 110, 103, 108, 101, 0, 0, 118, 65, 114, 114, 0, 1, 66, 97, 114, 0, 4, 118, 0, 1, 68, 97, 115, 104, 0, 1, 97, 110, 103, 114, 116, 0, 2, 114, 101, 112, 115, 105, 108, 111, 110, 0, 3, 107, 97, 112, 112, 97, 0, 3, 110, 111, 116, 104, 105, 110, 103, 0, 0, 118, 97, 114, 112, 104, 105, 0, 4, 105, 0, 4, 114, 111, 112, 116, 111, 0, 3, 114, 0, 4, 104, 111, 0, 3, 115, 105, 103, 109, 97, 0, 4, 117, 98, 115, 101, 116, 110, 101, 113, 0, 12, 113, 0, 0, 118, 97, 114, 115, 117, 112, 115, 101, 116, 110, 101, 113, 0, 12, 113, 0, 3, 116, 104, 101, 116, 97, 0, 4, 114, 105, 97, 110, 103, 108, 101, 108, 101, 102, 116, 0, 11, 114, 105, 103, 104, 116, 0, 1, 99, 121, 0, 1, 100, 97, 115, 104, 0, 1, 101, 101, 0, 0, 118, 101, 101, 98, 97, 114, 0, 3, 101, 113, 0, 2, 108, 108, 105, 112, 0, 2, 114, 98, 97, 114, 0, 3, 116, 0, 1, 102, 114, 0, 1, 108, 116, 114, 105, 0, 1, 110, 115, 117, 98, 0, 0, 118, 110, 115, 117, 112, 0, 1, 111, 112, 102, 0, 1, 112, 114, 111, 112, 0, 1, 114, 116, 114, 105, 0, 1, 115, 99, 114, 0, 2, 117, 98, 110, 69, 0, 5, 101, 0, 3, 112, 110, 69, 0, 0, 118, 115, 117, 112, 110, 101, 0, 1, 122, 105, 103, 122, 97, 103, 0, 0, 119, 99, 105, 114, 99, 0, 1, 101, 100, 98, 97, 114, 0, 3, 103, 101, 0, 5, 113, 0, 2, 105, 101, 114, 112, 0, 1, 102, 114, 0, 0, 119, 111, 112, 102, 0, 1, 112, 0, 1, 114, 0, 2, 101, 97, 116, 104, 0, 1, 115, 99, 114, 0, 0, 120, 99, 97, 112, 0, 2, 105, 114, 99, 0, 2, 117, 112, 0, 0, 120, 100, 116, 114, 105, 0, 1, 102, 114, 0, 1, 104, 65, 114, 114, 0, 2, 97, 114, 114, 0, 1, 105, 0, 1, 108, 65, 114, 114, 0, 2, 97, 114, 114, 0, 1, 109, 97, 112, 0, 0, 120, 110, 105, 115, 0, 1, 111, 100, 111, 116, 0, 2, 112, 102, 0, 3, 108, 117, 115, 0, 2, 116, 105, 109, 101, 0, 1, 114, 65, 114, 114, 0, 2, 97, 114, 114, 0, 1, 115, 99, 114, 0, 0, 120, 115, 113, 99, 117, 112, 0, 1, 117, 112, 108, 117, 115, 0, 2, 116, 114, 105, 0, 1, 118, 101, 101, 0, 1, 119, 101, 100, 103, 101, 0, 0, 121, 97, 99, 117, 116, 101, 0, 3, 121, 0, 1, 99, 105, 114, 99, 0, 0, 121, 99, 121, 0, 1, 101, 110, 0, 1, 102, 114, 0, 1, 105, 99, 121, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 1, 117, 99, 121, 0, 2, 109, 108, 0, 0, 122, 97, 99, 117, 116, 101, 0, 1, 99, 97, 114, 111, 110, 0, 2, 121, 0, 1, 100, 111, 116, 0, 1, 101, 101, 116, 114, 102, 0, 2, 116, 97, 0, 1, 102, 114, 0, 1, 104, 99, 121, 0, 0, 122, 105, 103, 114, 97, 114, 114, 0, 1, 111, 112, 102, 0, 1, 115, 99, 114, 0, 1, 119, 106, 0, 2, 110, 106, 0, } @(rodata) GROUPS := [266]u16 { 0, 45, 97, 149, 198, 258, 314, 403, 483, 529, 580, 650, 737, 834, 921, 978, 1021, 1093, 1152, 1222, 1262, 1319, 1376, 1443, 1492, 1539, 1600, 1641, 1684, 1730, 1796, 1873, 1949, 2034, 2101, 2198, 2246, 2294, 2390, 2452, 2530, 2614, 2703, 2793, 2861, 2938, 2992, 3055, 3110, 3164, 3230, 3275, 3316, 3381, 3463, 3526, 3604, 3666, 3708, 3784, 3848, 3904, 3952, 3990, 4054, 4105, 4155, 4214, 4291, 4351, 4389, 4452, 4495, 4538, 4581, 4635, 4667, 4709, 4742, 4772, 4813, 4848, 4893, 4948, 4991, 5033, 5080, 5146, 5200, 5239, 5270, 5299, 5330, 5362, 5397, 5435, 5471, 5508, 5550, 5596, 5636, 5681, 5732, 5768, 5809, 5845, 5885, 5928, 5988, 6038, 6080, 6126, 6167, 6215, 6268, 6336, 6376, 6429, 6464, 6499, 6537, 6574, 6625, 6670, 6713, 6773, 6817, 6854, 6887, 6927, 6964, 6997, 7035, 7065, 7102, 7147, 7200, 7240, 7289, 7351, 7397, 7435, 7480, 7519, 7567, 7606, 7646, 7689, 7731, 7772, 7813, 7847, 7886, 7927, 7966, 8037, 8093, 8135, 8179, 8218, 8264, 8308, 8381, 8422, 8464, 8496, 8538, 8584, 8622, 8678, 8715, 8756, 8795, 8853, 8890, 8927, 8966, 9008, 9044, 9079, 9114, 9162, 9194, 9228, 9266, 9310, 9356, 9394, 9427, 9474, 9524, 9565, 9608, 9649, 9691, 9731, 9774, 9810, 9850, 9894, 9933, 9972, 10012, 10048, 10085, 10133, 10174, 10216, 10268, 10311, 10349, 10382, 10422, 10462, 10501, 10540, 10580, 10672, 10723, 10764, 10808, 10853, 10891, 10932, 10967, 11007, 11053, 11084, 11140, 11172, 11212, 11248, 11291, 11341, 11379, 11416, 11468, 11499, 11542, 11578, 11618, 11662, 11710, 11754, 11792, 11842, 11889, 11947, 12005, 12050, 12092, 12151, 12199, 12242, 12295, 12340, 12398, 12441, 12484, 12531, 12569, 12610, 12653, 12702, 12739, 12782, } @(rodata) REFS := [2125]u16 { 32768, 32771, 32773, 8, 32779, 14, 17, 32789, 24, 27, 30, 33, 36, 40, 32811, 46, 50, 32821, 32824, 59, 62, 65, 68, 71, 74, 77, 80, 84, 88, 74, 91, 94, 32865, 100, 103, 106, 109, 112, 32883, 118, 121, 124, 127, 130, 109, 133, 136, 139, 142, 145, 148, 151, 154, 157, 160, 163, 166, 169, 172, 175, 178, 181, 184, 188, 191, 106, 194, 197, 200, 203, 206, 209, 212, 215, 218, 221, 224, 227, 231, 234, 237, 240, 242, 245, 248, 251, 255, 258, 261, 166, 255, 264, 267, 270, 212, 273, 276, 279, 282, 285, 288, 291, 294, 297, 300, 303, 306, 309, 312, 315, 318, 321, 324, 327, 330, 333, 264, 336, 340, 343, 33114, 33117, 352, 33123, 358, 361, 364, 33136, 371, 374, 377, 380, 383, 386, 390, 393, 396, 399, 402, 405, 408, 33179, 414, 417, 420, 423, 427, 430, 433, 437, 440, 440, 443, 33214, 448, 451, 454, 457, 460, 463, 466, 469, 473, 476, 480, 483, 486, 489, 492, 495, 498, 501, 505, 508, 511, 514, 516, 519, 522, 525, 528, 522, 531, 91, 534, 537, 540, 543, 33314, 33317, 552, 555, 558, 33329, 558, 564, 567, 282, 570, 573, 576, 579, 582, 585, 588, 592, 595, 598, 601, 33372, 607, 610, 613, 617, 621, 625, 628, 631, 634, 637, 640, 643, 646, 650, 654, 658, 33429, 663, 666, 669, 672, 675, 678, 681, 684, 687, 690, 693, 696, 699, 702, 705, 708, 711, 714, 717, 720, 723, 726, 729, 732, 735, 738, 741, 744, 747, 750, 753, 756, 267, 270, 759, 762, 765, 768, 771, 774, 777, 781, 784, 787, 790, 793, 796, 273, 276, 279, 799, 803, 806, 672, 809, 812, 815, 818, 821, 824, 827, 830, 834, 837, 827, 841, 844, 847, 850, 853, 856, 859, 859, 859, 859, 505, 815, 862, 864, 868, 871, 874, 877, 880, 883, 886, 889, 892, 895, 900, 903, 906, 909, 914, 919, 922, 927, 930, 935, 940, 943, 948, 951, 954, 957, 960, 965, 970, 973, 978, 983, 986, 991, 994, 997, 1000, 1005, 1008, 1013, 1016, 1021, 1024, 1029, 1032, 1035, 1040, 1043, 1048, 1053, 1056, 1059, 1062, 1065, 1068, 1071, 33843, 1078, 1081, 33852, 33855, 1090, 1093, 1096, 33868, 1103, 1106, 1109, 1112, 1116, 1119, 1122, 1125, 33897, 33900, 1135, 33906, 1141, 1144, 1147, 1150, 1153, 1156, 1159, 1163, 1166, 1169, 519, 1172, 1175, 1178, 1181, 1184, 1187, 1190, 1193, 157, 1196, 1199, 1203, 33974, 1208, 1212, 1215, 1219, 33990, 1225, 1228, 1231, 1234, 1237, 1240, 1243, 1246, 1249, 1252, 1255, 1246, 1258, 1261, 1264, 1267, 1270, 1273, 1276, 1279, 1282, 1285, 1288, 1291, 1294, 1297, 1300, 1303, 1306, 1309, 1312, 1315, 1318, 1321, 1324, 282, 1327, 1330, 1333, 1336, 1339, 1342, 1345, 1348, 1351, 1354, 1357, 1360, 1363, 1366, 1369, 1372, 297, 690, 1264, 1376, 1379, 1382, 1385, 1389, 1392, 1395, 1398, 1401, 1404, 1407, 1410, 1413, 1417, 1420, 1420, 1423, 1426, 1429, 1432, 1435, 1249, 1438, 1441, 1444, 1447, 1441, 34218, 1453, 1456, 1459, 1462, 1464, 1467, 1470, 1473, 1476, 1480, 1483, 1486, 1491, 1494, 1497, 1500, 1503, 1506, 1510, 1513, 1517, 34288, 1523, 1526, 1529, 1532, 34303, 1538, 1541, 1544, 34316, 1551, 1554, 1556, 1559, 1562, 1565, 1568, 1571, 1574, 1376, 1578, 1581, 1584, 1587, 1590, 1593, 288, 291, 1596, 1599, 1602, 1605, 1608, 1611, 1615, 34386, 1621, 1624, 1627, 1630, 1633, 1636, 1639, 1639, 1642, 1645, 1647, 1650, 1653, 1656, 1660, 1664, 1668, 1671, 1674, 1677, 1681, 1685, 1689, 1693, 1696, 1700, 1704, 1707, 1710, 34481, 1716, 1719, 1722, 1726, 1730, 1734, 1737, 1740, 1743, 1746, 1749, 859, 1752, 1755, 1758, 1761, 34533, 1768, 1771, 1774, 1779, 34550, 32999, 1785, 34556, 40, 1791, 34563, 1798, 1798, 1801, 1804, 1807, 32771, 1810, 1813, 1816, 1819, 1822, 1825, 1828, 1825, 1831, 1834, 1837, 1840, 1843, 1846, 1849, 1852, 1855, 1858, 1861, 1864, 1867, 43, 1870, 1873, 1876, 1503, 1880, 1883, 1886, 1889, 1892, 1503, 1886, 34662, 1897, 1901, 1503, 191, 34671, 34674, 178, 1909, 1912, 1915, 1918, 1921, 1924, 1927, 1930, 1933, 1933, 1559, 1936, 1915, 1939, 1942, 71, 71, 1945, 1918, 74, 1948, 1951, 1954, 1957, 576, 1961, 1565, 1964, 1967, 1970, 1973, 1976, 1979, 1982, 1985, 1636, 1674, 1988, 1991, 430, 1994, 1997, 2000, 2003, 2006, 2009, 2012, 2015, 2018, 2021, 2025, 2030, 2033, 1590, 1590, 2037, 2040, 2043, 2046, 2049, 2052, 2055, 2058, 2061, 2064, 2067, 2070, 2073, 2076, 2079, 2082, 2085, 2088, 2091, 2094, 2097, 2100, 2103, 2106, 2109, 2112, 528, 2115, 2118, 2121, 2124, 2127, 2130, 2133, 2136, 2139, 2142, 2145, 2148, 2151, 2154, 2157, 2160, 2163, 2166, 1921, 88, 34937, 2172, 2176, 1924, 1927, 2179, 2181, 2184, 2187, 2187, 91, 2190, 534, 534, 2193, 2196, 2199, 2202, 2205, 2208, 2211, 2214, 2220, 511, 2223, 2226, 34997, 2232, 2235, 2238, 2241, 32895, 2244, 35015, 130, 2250, 2254, 2257, 2257, 2260, 2263, 2266, 2269, 2272, 2275, 2278, 1222, 2281, 2284, 2287, 2290, 2272, 2293, 2296, 2299, 2302, 2302, 2305, 50, 50, 2307, 2309, 2311, 1382, 2311, 172, 1500, 2314, 169, 2317, 175, 32865, 2321, 2324, 2327, 2330, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355, 2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2391, 2394, 2355, 2358, 2397, 2400, 35171, 2361, 2391, 2397, 2400, 148, 2406, 2409, 264, 2412, 2415, 2418, 297, 2421, 723, 2424, 237, 2427, 2430, 248, 206, 2433, 2436, 35207, 2442, 2445, 2448, 2451, 708, 1282, 245, 245, 2455, 2455, 255, 2458, 2461, 2464, 35232, 2467, 2467, 2470, 2473, 2476, 2479, 2481, 234, 261, 2485, 2488, 2491, 2494, 65, 297, 2433, 708, 1282, 1219, 2497, 2500, 2503, 2507, 2510, 2513, 2516, 2519, 1997, 303, 1255, 2522, 2525, 2528, 2436, 2485, 35299, 2534, 2537, 2540, 35311, 2546, 2549, 2552, 417, 2555, 2558, 2562, 35333, 2568, 2571, 2574, 2577, 2580, 2583, 2586, 2589, 2592, 2592, 2592, 2595, 2598, 2601, 2604, 2607, 2610, 2613, 2617, 2620, 2623, 2626, 2626, 2629, 2540, 2546, 396, 2568, 2583, 2632, 2634, 163, 2637, 2640, 2643, 2646, 2649, 261, 396, 2652, 35423, 35426, 2661, 2664, 414, 402, 417, 2555, 2666, 2669, 2672, 2676, 2680, 2684, 2688, 2692, 2695, 2698, 2702, 2705, 2708, 437, 2712, 2715, 2718, 35489, 2724, 35495, 2730, 2733, 2736, 2739, 2742, 35513, 2748, 2751, 2754, 2757, 2760, 2763, 2766, 2769, 2772, 486, 2776, 2779, 2782, 2458, 2785, 2788, 2791, 2794, 2797, 480, 483, 480, 486, 495, 495, 2800, 2803, 2806, 2809, 2812, 2818, 2821, 505, 473, 2825, 2828, 492, 2831, 2834, 2837, 2840, 2843, 2843, 2846, 2846, 2840, 2849, 2852, 240, 2856, 498, 2859, 2862, 33214, 2865, 2868, 2871, 2874, 2877, 2785, 2880, 2871, 483, 2776, 492, 498, 2883, 2883, 270, 1653, 2721, 522, 2889, 717, 2892, 2895, 2898, 2901, 2904, 2904, 2907, 2910, 2913, 2917, 2920, 2923, 2926, 2929, 2932, 2935, 2939, 2942, 2898, 2946, 2949, 2421, 35720, 579, 35723, 2958, 2961, 35732, 270, 2967, 35739, 567, 2974, 2977, 2980, 2983, 2986, 2989, 558, 595, 558, 2992, 2995, 2998, 371, 3001, 3004, 3007, 2992, 573, 3010, 1758, 3010, 3013, 3016, 3019, 3022, 3025, 3029, 3016, 35800, 3035, 371, 3039, 3042, 3045, 3048, 371, 582, 3051, 3054, 35825, 3060, 3063, 3066, 3070, 3073, 3077, 3081, 3084, 3087, 3090, 3093, 3096, 3099, 3103, 3106, 3109, 3112, 3116, 784, 267, 3120, 3123, 762, 3126, 3129, 3132, 3135, 672, 3138, 687, 3141, 687, 3144, 35915, 690, 693, 3150, 3153, 2929, 3156, 3159, 3162, 3165, 3168, 3171, 3174, 3177, 3183, 3186, 3189, 3191, 3193, 3196, 3199, 3202, 3205, 699, 3189, 3208, 3211, 1116, 1942, 3214, 3217, 3220, 3223, 690, 3165, 315, 753, 3226, 717, 696, 1252, 2895, 3229, 759, 3223, 762, 771, 771, 3232, 3235, 3238, 3241, 3244, 3250, 3144, 3253, 759, 3126, 765, 774, 3256, 714, 3259, 765, 3263, 315, 753, 3266, 3269, 3272, 815, 3226, 2473, 3275, 3278, 3281, 3284, 3284, 3287, 3290, 3290, 3293, 3293, 3287, 3296, 3299, 3302, 702, 790, 793, 3305, 796, 3156, 3308, 3311, 3314, 3318, 3321, 3324, 1554, 3327, 3327, 1991, 3330, 3332, 696, 2497, 1252, 3335, 3338, 3341, 3344, 3347, 809, 774, 3351, 3354, 3191, 1119, 3357, 3360, 33429, 3363, 3366, 3253, 3229, 3369, 3372, 3375, 3378, 3381, 738, 2000, 3384, 3387, 3390, 3390, 3396, 36167, 3402, 3405, 3405, 1294, 1294, 333, 726, 1593, 3408, 3411, 3414, 3417, 1831, 3420, 3424, 36195, 1642, 1901, 3430, 32898, 3433, 2127, 2488, 3436, 3439, 2907, 834, 3442, 3445, 834, 3449, 1771, 3453, 3456, 3456, 3459, 3464, 914, 3469, 3472, 3475, 3480, 960, 3485, 3488, 3491, 221, 3494, 3497, 1065, 3502, 3507, 3512, 1065, 3515, 3515, 874, 33639, 930, 935, 3518, 3521, 3524, 1062, 3527, 3532, 3535, 3538, 892, 3541, 3544, 1599, 1599, 3547, 880, 3552, 895, 900, 900, 3555, 909, 906, 906, 909, 922, 922, 927, 903, 903, 3472, 3559, 3562, 1249, 3565, 3568, 1249, 3571, 3469, 3574, 3579, 3582, 954, 3579, 3559, 954, 3574, 965, 965, 951, 970, 951, 940, 948, 1068, 3585, 36357, 889, 3592, 3597, 889, 3602, 3605, 994, 994, 3608, 3611, 886, 886, 3614, 3619, 3624, 983, 991, 986, 983, 986, 3485, 3627, 3630, 3635, 3627, 997, 1005, 1032, 1040, 1035, 3640, 1068, 886, 1056, 1059, 1059, 1068, 886, 1013, 1021, 3644, 3647, 1029, 1024, 1029, 3647, 1032, 1035, 3652, 3655, 1053, 1048, 1053, 3655, 919, 36428, 957, 940, 948, 997, 1005, 3663, 3666, 3668, 3671, 3674, 3677, 3680, 3685, 3688, 3693, 3697, 3700, 3703, 3708, 3712, 3717, 3720, 3725, 3730, 3733, 1596, 1596, 3736, 2281, 36507, 2284, 2287, 36510, 3745, 2290, 3748, 3751, 136, 3754, 3757, 3760, 3763, 3767, 36538, 3773, 3776, 1106, 169, 2275, 3779, 3782, 1141, 3785, 3788, 3791, 3794, 3797, 139, 3800, 3804, 3807, 142, 3810, 2278, 3813, 3816, 3816, 36587, 36590, 3825, 3828, 3831, 3834, 3816, 36605, 3840, 36611, 145, 3846, 36617, 3852, 294, 36623, 294, 3858, 3861, 1153, 3864, 3867, 3869, 3871, 1590, 3874, 3877, 3881, 3884, 827, 3887, 3890, 2712, 3893, 2898, 3896, 2898, 3899, 3901, 2130, 3904, 2491, 3907, 3910, 33937, 3913, 3916, 1169, 3919, 3922, 36694, 1178, 3929, 3932, 1184, 1181, 1178, 3932, 1184, 1181, 3935, 3938, 3941, 1187, 3944, 1172, 3938, 3935, 3941, 1193, 3947, 3950, 3953, 1196, 1196, 1187, 3956, 3959, 3963, 3966, 3969, 2974, 3973, 3977, 3980, 525, 3984, 3987, 2634, 33974, 1333, 282, 3989, 2424, 3992, 3995, 4000, 1389, 4003, 1261, 4006, 4009, 1261, 36780, 1264, 4015, 1267, 4018, 4021, 4024, 2932, 3308, 4027, 4030, 4033, 4036, 4039, 4042, 1212, 1988, 4045, 4048, 4050, 4052, 4055, 4058, 4061, 4064, 1273, 4048, 4067, 4070, 4073, 151, 151, 4076, 1246, 1336, 1246, 1327, 4079, 33990, 4082, 1288, 4085, 324, 1321, 4089, 4092, 4095, 1264, 4033, 324, 1321, 1270, 399, 4098, 4036, 4101, 4104, 2643, 1270, 399, 4107, 4110, 4110, 4113, 4116, 4119, 1276, 4122, 4125, 4129, 4132, 4135, 4137, 4140, 4098, 4143, 4146, 1339, 4050, 154, 154, 4101, 4150, 4153, 1306, 2003, 4156, 4159, 4162, 4165, 3357, 1426, 4168, 4171, 4174, 1432, 1429, 4177, 4180, 4183, 4186, 4189, 4192, 1435, 4195, 4198, 2494, 4201, 4204, 2917, 806, 806, 36975, 4210, 4212, 59, 59, 4215, 4218, 2769, 4222, 4225, 4228, 1642, 294, 36999, 4234, 4237, 4237, 1494, 4240, 1497, 1497, 4243, 4246, 4249, 4252, 4255, 4258, 4261, 690, 59, 4264, 4267, 1642, 4270, 4273, 4276, 4279, 4285, 4288, 4290, 4293, 4296, 4300, 4300, 294, 1395, 4303, 1410, 4309, 1398, 1401, 1398, 1401, 1404, 1407, 1404, 1407, 1392, 1392, 430, 430, 1264, 4315, 59, 4270, 1417, 4319, 1976, 2629, 3884, 3399, 4322, 4325, 4328, 1423, 4331, 4334, 4337, 4340, 4343, 4346, 4322, 1423, 4325, 4340, 4337, 4349, 4352, 4355, 1426, 4171, 1432, 1429, 4186, 4183, 4189, 1435, 1438, 4358, 1444, 37129, 37132, 37135, 4370, 4373, 4376, 1447, 4379, 4382, 4385, 4388, 4391, 4394, 4397, 4400, 1444, 1447, 4370, 4397, 4394, 4403, 4406, 4409, 4412, 2920, 803, 803, 4415, 37186, 4421, 4424, 1147, 4427, 4430, 4433, 1510, 4436, 4439, 1480, 1480, 4443, 4446, 4446, 1503, 1494, 1491, 1503, 1494, 37217, 242, 37220, 2133, 4455, 4458, 2977, 3552, 330, 4461, 4464, 4467, 4471, 4212, 4474, 1453, 4477, 2519, 3381, 738, 4480, 4153, 1306, 4483, 4480, 4486, 4489, 4492, 4495, 4498, 4501, 4505, 4508, 4511, 1954, 675, 1231, 288, 4514, 37285, 1376, 4520, 4523, 37294, 4529, 1581, 4532, 1587, 4535, 4538, 37310, 747, 1315, 4545, 4548, 4548, 4551, 4554, 4557, 33023, 4560, 4563, 1376, 1584, 747, 1315, 1568, 4567, 1602, 4567, 4570, 4573, 4573, 4576, 4579, 4582, 4585, 4589, 4592, 4477, 1994, 4570, 37363, 4598, 291, 4601, 4604, 285, 4607, 2629, 3090, 2592, 3884, 3893, 1196, 1584, 4095, 4237, 4610, 4616, 4622, 4628, 4446, 732, 1300, 4634, 1291, 3810, 4637, 4640, 4643, 1645, 1645, 4646, 732, 1024, 1048, 4650, 1196, 1300, 4654, 4616, 4610, 4628, 4622, 4658, 4661, 4664, 1810, 4667, 4670, 4673, 4677, 4670, 1650, 1650, 4681, 576, 1961, 1565, 1979, 4685, 276, 793, 4689, 273, 790, 3305, 4692, 1964, 4695, 1967, 1970, 279, 796, 4699, 1973, 1985, 1982, 1636, 1674, 37471, 4706, 4709, 4712, 37483, 4718, 4722, 4725, 4729, 4733, 37504, 4739, 4742, 4745, 4748, 1755, 4751, 4754, 4758, 4761, 4764, 4768, 4772, 4775, } @(rodata) VALUES := [4778]u8 { 198, 1, 0, 38, 0, 193, 1, 0, 130, 2, 0, 194, 1, 0, 144, 8, 0, 132, 170, 7, 0, 192, 1, 0, 145, 7, 0, 128, 2, 0, 211, 84, 0, 132, 2, 0, 184, 170, 7, 0, 225, 64, 0, 197, 1, 0, 156, 169, 7, 0, 212, 68, 0, 195, 1, 0, 196, 1, 0, 150, 68, 0, 231, 85, 0, 134, 70, 0, 145, 8, 0, 181, 68, 0, 172, 66, 0, 146, 7, 0, 133, 170, 7, 0, 185, 170, 7, 0, 216, 5, 0, 206, 68, 0, 167, 8, 0, 169, 1, 0, 134, 2, 0, 210, 69, 0, 197, 66, 0, 173, 66, 0, 140, 2, 0, 199, 1, 0, 136, 2, 0, 176, 68, 0, 138, 2, 0, 184, 1, 0, 183, 1, 0, 167, 7, 0, 153, 69, 0, 150, 69, 0, 149, 69, 0, 151, 69, 0, 178, 68, 0, 157, 64, 0, 153, 64, 0, 183, 68, 0, 244, 84, 0, 225, 68, 0, 175, 68, 0, 174, 68, 0, 130, 66, 0, 144, 68, 0, 179, 68, 0, 175, 84, 0, 158, 169, 7, 0, 211, 69, 0, 205, 68, 0, 145, 82, 0, 130, 8, 0, 133, 8, 0, 143, 8, 0, 161, 64, 0, 161, 67, 0, 228, 85, 0, 142, 2, 0, 148, 8, 0, 135, 68, 0, 148, 7, 0, 135, 170, 7, 0, 180, 1, 0, 217, 5, 0, 221, 5, 0, 96, 0, 220, 5, 0, 196, 69, 0, 198, 66, 0, 187, 170, 7, 0, 168, 1, 0, 220, 65, 0, 208, 68, 0, 211, 67, 0, 208, 67, 0, 212, 67, 0, 248, 79, 0, 250, 79, 0, 249, 79, 0, 210, 67, 0, 168, 69, 0, 209, 67, 0, 213, 67, 0, 165, 68, 0, 147, 67, 0, 147, 82, 0, 245, 67, 0, 145, 6, 0, 208, 82, 0, 222, 82, 0, 189, 67, 0, 214, 82, 0, 223, 82, 0, 193, 67, 0, 215, 82, 0, 164, 69, 0, 167, 67, 0, 159, 169, 7, 0, 144, 2, 0, 202, 2, 0, 208, 1, 0, 201, 1, 0, 154, 2, 0, 202, 1, 0, 173, 8, 0, 150, 2, 0, 136, 170, 7, 0, 200, 1, 0, 136, 68, 0, 146, 2, 0, 251, 75, 0, 171, 75, 0, 152, 2, 0, 188, 170, 7, 0, 149, 7, 0, 245, 84, 0, 194, 68, 0, 204, 67, 0, 176, 66, 0, 243, 84, 0, 151, 7, 0, 203, 1, 0, 131, 68, 0, 199, 66, 0, 164, 8, 0, 137, 170, 7, 0, 252, 75, 0, 170, 75, 0, 189, 170, 7, 0, 128, 68, 0, 177, 66, 0, 131, 8, 0, 62, 0, 147, 7, 0, 220, 7, 0, 158, 2, 0, 162, 2, 0, 156, 2, 0, 147, 8, 0, 160, 2, 0, 138, 170, 7, 0, 217, 69, 0, 190, 170, 7, 0, 229, 68, 0, 219, 69, 0, 231, 68, 0, 162, 85, 0, 247, 68, 0, 254, 84, 0, 243, 68, 0, 162, 169, 7, 0, 235, 68, 0, 170, 8, 0, 199, 5, 0, 94, 0, 164, 2, 0, 140, 66, 0, 139, 66, 0, 141, 66, 0, 128, 74, 0, 166, 2, 0, 207, 68, 0, 149, 8, 0, 178, 2, 0, 129, 8, 0, 205, 1, 0, 206, 1, 0, 152, 8, 0, 176, 2, 0, 145, 66, 0, 204, 1, 0, 170, 2, 0, 200, 66, 0, 172, 68, 0, 171, 68, 0, 194, 69, 0, 227, 64, 0, 226, 64, 0, 174, 2, 0, 192, 170, 7, 0, 153, 7, 0, 144, 66, 0, 168, 2, 0, 134, 8, 0, 207, 1, 0, 180, 2, 0, 153, 8, 0, 141, 170, 7, 0, 193, 170, 7, 0, 165, 169, 7, 0, 136, 8, 0, 132, 8, 0, 165, 8, 0, 140, 8, 0, 154, 7, 0, 182, 2, 0, 154, 8, 0, 142, 170, 7, 0, 194, 170, 7, 0, 166, 169, 7, 0, 137, 8, 0, 60, 0, 185, 2, 0, 155, 7, 0, 234, 79, 0, 146, 66, 0, 158, 67, 0, 189, 2, 0, 187, 2, 0, 155, 8, 0, 232, 79, 0, 144, 67, 0, 228, 67, 0, 198, 67, 0, 136, 70, 0, 230, 79, 0, 225, 82, 0, 195, 67, 0, 217, 82, 0, 138, 70, 0, 148, 67, 0, 206, 82, 0, 163, 69, 0, 164, 67, 0, 218, 82, 0, 178, 69, 0, 207, 83, 0, 180, 69, 0, 209, 82, 0, 224, 82, 0, 191, 67, 0, 216, 82, 0, 188, 67, 0, 210, 82, 0, 218, 69, 0, 230, 68, 0, 246, 68, 0, 161, 85, 0, 253, 84, 0, 242, 68, 0, 143, 170, 7, 0, 216, 69, 0, 218, 67, 0, 191, 2, 0, 245, 79, 0, 247, 79, 0, 246, 79, 0, 195, 170, 7, 0, 153, 67, 0, 152, 67, 0, 176, 67, 0, 193, 2, 0, 234, 68, 0, 133, 82, 0, 156, 8, 0, 223, 64, 0, 179, 66, 0, 144, 170, 7, 0, 147, 68, 0, 196, 170, 7, 0, 156, 7, 0, 138, 8, 0, 195, 2, 0, 199, 2, 0, 197, 2, 0, 157, 8, 0, 139, 64, 0, 10, 0, 145, 170, 7, 0, 224, 64, 0, 160, 1, 0, 149, 66, 0, 236, 85, 0, 226, 68, 0, 237, 68, 0, 166, 68, 0, 137, 68, 0, 224, 68, 0, 194, 68, 184, 6, 0, 132, 68, 0, 239, 68, 0, 241, 68, 0, 231, 68, 184, 6, 0, 235, 68, 184, 6, 0, 249, 68, 0, 254, 84, 184, 6, 0, 245, 68, 0, 206, 68, 184, 6, 0, 207, 68, 184, 6, 0, 234, 69, 0, 207, 83, 184, 6, 0, 236, 69, 0, 238, 68, 0, 240, 68, 0, 248, 68, 0, 234, 68, 184, 6, 0, 253, 84, 184, 6, 0, 244, 68, 0, 162, 85, 184, 6, 0, 161, 85, 184, 6, 0, 128, 69, 0, 175, 85, 184, 6, 0, 224, 69, 0, 140, 68, 0, 235, 69, 0, 208, 83, 184, 6, 0, 237, 69, 0, 143, 69, 184, 6, 0, 226, 69, 0, 144, 69, 184, 6, 0, 227, 69, 0, 130, 69, 210, 65, 0, 136, 69, 0, 129, 69, 0, 176, 85, 184, 6, 0, 225, 69, 0, 255, 68, 184, 6, 0, 131, 69, 210, 65, 0, 137, 69, 0, 193, 68, 0, 196, 68, 0, 199, 68, 0, 201, 68, 0, 164, 68, 0, 169, 169, 7, 0, 209, 1, 0, 157, 7, 0, 210, 2, 0, 211, 1, 0, 212, 1, 0, 158, 8, 0, 208, 2, 0, 146, 170, 7, 0, 210, 1, 0, 204, 2, 0, 169, 7, 0, 159, 7, 0, 198, 170, 7, 0, 156, 64, 0, 152, 64, 0, 212, 84, 0, 170, 169, 7, 0, 216, 1, 0, 213, 1, 0, 183, 84, 0, 214, 1, 0, 190, 64, 0, 222, 71, 0, 180, 71, 0, 220, 71, 0, 130, 68, 0, 159, 8, 0, 147, 170, 7, 0, 166, 7, 0, 160, 7, 0, 177, 1, 0, 153, 66, 0, 187, 85, 0, 250, 68, 0, 175, 85, 0, 252, 68, 0, 254, 68, 0, 179, 64, 0, 143, 68, 0, 157, 68, 0, 171, 169, 7, 0, 168, 7, 0, 34, 0, 148, 170, 7, 0, 154, 66, 0, 172, 169, 7, 0, 144, 82, 0, 174, 1, 0, 212, 2, 0, 235, 79, 0, 160, 67, 0, 150, 82, 0, 216, 2, 0, 214, 2, 0, 160, 8, 0, 156, 66, 0, 139, 68, 0, 203, 67, 0, 239, 82, 0, 161, 7, 0, 233, 79, 0, 146, 67, 0, 229, 67, 0, 196, 67, 0, 137, 70, 0, 231, 79, 0, 221, 82, 0, 194, 67, 0, 213, 82, 0, 139, 70, 0, 162, 69, 0, 166, 67, 0, 219, 82, 0, 179, 69, 0, 208, 83, 0, 181, 69, 0, 207, 82, 0, 220, 82, 0, 190, 67, 0, 212, 82, 0, 192, 67, 0, 211, 82, 0, 157, 66, 0, 240, 82, 0, 219, 67, 0, 155, 66, 0, 177, 67, 0, 244, 83, 0, 169, 8, 0, 168, 8, 0, 172, 8, 0, 218, 2, 0, 188, 85, 0, 224, 2, 0, 222, 2, 0, 220, 2, 0, 161, 8, 0, 150, 170, 7, 0, 145, 67, 0, 163, 7, 0, 152, 68, 0, 202, 170, 7, 0, 154, 68, 0, 161, 75, 0, 147, 69, 0, 143, 69, 0, 145, 69, 0, 144, 69, 0, 146, 69, 0, 148, 69, 0, 174, 169, 7, 0, 198, 69, 0, 208, 69, 0, 134, 69, 0, 251, 68, 0, 176, 85, 0, 253, 68, 0, 255, 68, 0, 145, 68, 0, 209, 69, 0, 131, 69, 0, 135, 69, 0, 222, 1, 0, 162, 66, 0, 139, 8, 0, 166, 8, 0, 9, 0, 164, 7, 0, 228, 2, 0, 226, 2, 0, 162, 8, 0, 151, 170, 7, 0, 180, 68, 0, 152, 7, 0, 223, 64, 138, 64, 0, 137, 64, 0, 188, 68, 0, 195, 68, 0, 197, 68, 0, 200, 68, 0, 203, 170, 7, 0, 219, 65, 0, 175, 169, 7, 0, 230, 2, 0, 218, 1, 0, 159, 67, 0, 201, 82, 0, 142, 8, 0, 236, 2, 0, 219, 1, 0, 163, 8, 0, 240, 2, 0, 152, 170, 7, 0, 217, 1, 0, 234, 2, 0, 95, 0, 223, 71, 0, 181, 71, 0, 221, 71, 0, 195, 69, 0, 142, 69, 0, 242, 2, 0, 204, 170, 7, 0, 146, 82, 0, 197, 67, 0, 149, 67, 0, 238, 82, 0, 165, 69, 0, 165, 67, 0, 150, 67, 0, 151, 67, 0, 210, 7, 0, 165, 7, 0, 238, 2, 0, 176, 169, 7, 0, 232, 2, 0, 220, 1, 0, 171, 69, 0, 235, 85, 0, 146, 8, 0, 169, 69, 0, 230, 85, 0, 193, 69, 0, 150, 64, 0, 163, 68, 0, 124, 0, 216, 78, 0, 192, 68, 0, 138, 64, 0, 153, 170, 7, 0, 205, 170, 7, 0, 177, 169, 7, 0, 170, 69, 0, 244, 2, 0, 192, 69, 0, 154, 170, 7, 0, 206, 170, 7, 0, 178, 169, 7, 0, 155, 170, 7, 0, 158, 7, 0, 207, 170, 7, 0, 179, 169, 7, 0, 175, 8, 0, 135, 8, 0, 174, 8, 0, 221, 1, 0, 246, 2, 0, 171, 8, 0, 156, 170, 7, 0, 208, 170, 7, 0, 180, 169, 7, 0, 248, 2, 0, 150, 8, 0, 249, 2, 0, 253, 2, 0, 151, 8, 0, 251, 2, 0, 150, 7, 0, 168, 66, 0, 164, 66, 0, 181, 169, 7, 0, 225, 1, 0, 131, 2, 0, 190, 68, 0, 190, 68, 179, 6, 0, 191, 68, 0, 226, 1, 0, 176, 8, 0, 230, 1, 0, 158, 170, 7, 0, 224, 1, 0, 181, 66, 0, 177, 7, 0, 129, 2, 0, 191, 84, 0, 167, 68, 0, 213, 84, 0, 220, 84, 0, 216, 84, 0, 218, 84, 0, 160, 68, 0, 164, 83, 0, 161, 68, 0, 168, 83, 0, 169, 83, 0, 170, 83, 0, 171, 83, 0, 172, 83, 0, 173, 83, 0, 174, 83, 0, 175, 83, 0, 159, 68, 0, 190, 69, 0, 157, 83, 0, 162, 68, 0, 252, 70, 0, 133, 2, 0, 210, 170, 7, 0, 240, 84, 0, 239, 84, 0, 202, 68, 0, 203, 68, 0, 39, 0, 229, 1, 0, 182, 169, 7, 0, 42, 0, 227, 1, 0, 228, 1, 0, 145, 84, 0, 237, 85, 0, 204, 68, 0, 246, 7, 0, 181, 64, 0, 189, 68, 0, 205, 69, 0, 189, 69, 0, 133, 70, 0, 182, 71, 0, 177, 8, 0, 158, 64, 0, 176, 83, 0, 178, 7, 0, 182, 66, 0, 236, 68, 0, 159, 170, 7, 0, 239, 75, 0, 128, 84, 0, 129, 84, 0, 130, 84, 0, 134, 84, 0, 133, 76, 0, 189, 75, 0, 179, 75, 0, 132, 84, 0, 141, 82, 0, 235, 83, 0, 180, 75, 0, 190, 75, 0, 194, 75, 0, 184, 75, 0, 163, 72, 0, 146, 75, 0, 145, 75, 0, 147, 75, 0, 136, 75, 0, 61, 229, 65, 0, 225, 68, 229, 65, 0, 144, 70, 0, 211, 170, 7, 0, 200, 69, 0, 215, 74, 0, 212, 74, 0, 214, 74, 0, 211, 74, 0, 208, 74, 0, 230, 74, 0, 233, 74, 0, 228, 74, 0, 231, 74, 0, 221, 74, 0, 218, 74, 0, 220, 74, 0, 217, 74, 0, 209, 74, 0, 236, 74, 0, 227, 74, 0, 224, 74, 0, 235, 74, 0, 226, 74, 0, 223, 74, 0, 201, 83, 0, 213, 74, 0, 210, 74, 0, 144, 74, 0, 140, 74, 0, 229, 74, 0, 232, 74, 0, 172, 74, 0, 180, 74, 0, 159, 69, 0, 158, 69, 0, 160, 69, 0, 219, 74, 0, 216, 74, 0, 152, 74, 0, 148, 74, 0, 130, 74, 0, 234, 74, 0, 225, 74, 0, 222, 74, 0, 188, 74, 0, 164, 74, 0, 156, 74, 0, 166, 1, 0, 183, 169, 7, 0, 207, 64, 0, 92, 0, 197, 83, 0, 200, 79, 0, 162, 64, 0, 174, 85, 0, 135, 2, 0, 169, 68, 0, 196, 84, 0, 201, 84, 0, 203, 84, 0, 199, 84, 0, 192, 84, 0, 169, 68, 128, 252, 3, 0, 193, 64, 0, 205, 84, 0, 141, 2, 0, 231, 1, 0, 137, 2, 0, 204, 84, 0, 208, 84, 0, 139, 2, 0, 178, 83, 0, 162, 1, 0, 160, 170, 7, 0, 199, 8, 0, 147, 78, 0, 199, 7, 0, 203, 75, 0, 195, 83, 0, 198, 5, 0, 215, 68, 0, 186, 67, 0, 187, 67, 0, 200, 73, 0, 155, 69, 0, 154, 69, 0, 157, 69, 0, 144, 84, 0, 239, 85, 0, 194, 83, 0, 227, 76, 0, 58, 0, 44, 0, 64, 0, 129, 68, 0, 237, 84, 0, 212, 170, 7, 0, 151, 66, 0, 181, 67, 0, 151, 78, 0, 184, 169, 7, 0, 207, 85, 0, 209, 85, 0, 208, 85, 0, 210, 85, 0, 239, 69, 0, 184, 82, 0, 181, 82, 0, 222, 69, 0, 223, 69, 0, 182, 67, 0, 189, 82, 0, 170, 68, 0, 200, 84, 0, 198, 84, 0, 202, 84, 0, 141, 69, 0, 197, 84, 0, 170, 68, 128, 252, 3, 0, 183, 67, 0, 188, 82, 0, 206, 69, 0, 207, 69, 0, 164, 1, 0, 177, 68, 0, 173, 70, 0, 229, 82, 0, 160, 64, 0, 184, 66, 0, 144, 64, 0, 143, 82, 0, 143, 2, 0, 180, 8, 0, 202, 67, 0, 247, 84, 0, 176, 1, 0, 180, 7, 0, 177, 83, 0, 255, 82, 0, 161, 170, 7, 0, 230, 76, 0, 221, 7, 0, 242, 69, 0, 247, 1, 0, 199, 69, 0, 210, 8, 0, 158, 70, 0, 141, 70, 0, 36, 0, 213, 170, 7, 0, 209, 68, 0, 184, 68, 0, 148, 68, 0, 161, 69, 0, 159, 70, 0, 140, 70, 0, 185, 169, 7, 0, 213, 8, 0, 246, 83, 0, 145, 2, 0, 241, 69, 0, 191, 75, 0, 166, 83, 0, 223, 8, 0, 255, 79, 0, 233, 1, 0, 238, 84, 0, 155, 2, 0, 214, 68, 0, 234, 1, 0, 213, 68, 0, 205, 8, 0, 151, 2, 0, 210, 68, 0, 162, 170, 7, 0, 154, 85, 0, 232, 1, 0, 150, 85, 0, 152, 85, 0, 153, 85, 0, 231, 71, 0, 147, 66, 0, 149, 85, 0, 151, 85, 0, 147, 2, 0, 133, 68, 0, 131, 64, 0, 132, 64, 0, 133, 64, 0, 203, 2, 0, 130, 64, 0, 153, 2, 0, 214, 170, 7, 0, 213, 69, 0, 227, 83, 0, 241, 84, 0, 181, 7, 0, 245, 7, 0, 61, 0, 223, 68, 0, 248, 84, 0, 229, 83, 0, 211, 68, 0, 241, 82, 0, 175, 66, 0, 183, 7, 0, 240, 1, 0, 235, 1, 0, 172, 65, 0, 33, 0, 196, 8, 0, 192, 76, 0, 131, 246, 3, 0, 128, 246, 3, 0, 132, 246, 3, 0, 163, 170, 7, 0, 129, 246, 3, 0, 102, 106, 0, 237, 76, 0, 130, 246, 3, 0, 177, 75, 0, 146, 3, 0, 215, 170, 7, 0, 212, 69, 0, 217, 85, 0, 141, 84, 0, 189, 1, 0, 211, 66, 0, 188, 1, 0, 213, 66, 0, 217, 66, 0, 219, 66, 0, 212, 66, 0, 214, 66, 0, 190, 1, 0, 215, 66, 0, 220, 66, 0, 216, 66, 0, 218, 66, 0, 221, 66, 0, 222, 66, 0, 196, 64, 0, 162, 70, 0, 187, 169, 7, 0, 140, 85, 0, 245, 3, 0, 179, 7, 0, 134, 85, 0, 159, 2, 0, 157, 2, 0, 179, 8, 0, 161, 2, 0, 169, 85, 0, 128, 85, 0, 130, 85, 0, 132, 85, 0, 219, 69, 128, 252, 3, 0, 148, 85, 0, 164, 170, 7, 0, 183, 66, 0, 211, 8, 0, 146, 85, 0, 165, 85, 0, 164, 85, 0, 233, 68, 0, 138, 85, 0, 136, 85, 0, 231, 69, 0, 216, 170, 7, 0, 138, 66, 0, 142, 85, 0, 144, 85, 0, 167, 85, 0, 250, 84, 0, 215, 69, 0, 149, 83, 0, 252, 84, 0, 248, 82, 0, 233, 68, 128, 252, 3, 0, 202, 8, 0, 200, 82, 0, 173, 67, 0, 143, 66, 0, 165, 2, 0, 229, 76, 0, 166, 64, 0, 185, 69, 0, 165, 170, 7, 0, 165, 82, 0, 166, 82, 0, 255, 67, 0, 187, 68, 0, 169, 67, 0, 170, 67, 0, 217, 170, 7, 0, 149, 64, 0, 189, 169, 7, 0, 167, 2, 0, 195, 64, 0, 237, 1, 0, 238, 1, 0, 184, 8, 0, 181, 8, 0, 161, 1, 0, 166, 170, 7, 0, 236, 1, 0, 140, 84, 0, 173, 68, 0, 220, 83, 0, 169, 66, 0, 179, 2, 0, 171, 2, 0, 177, 2, 0, 183, 69, 0, 181, 3, 0, 133, 66, 0, 158, 68, 0, 221, 83, 0, 186, 69, 0, 151, 84, 0, 188, 84, 0, 209, 8, 0, 175, 2, 0, 218, 170, 7, 0, 185, 7, 0, 191, 1, 0, 190, 169, 7, 0, 249, 69, 0, 245, 69, 0, 244, 69, 0, 243, 69, 0, 169, 2, 0, 214, 8, 0, 239, 1, 0, 181, 2, 0, 185, 8, 0, 167, 170, 7, 0, 183, 4, 0, 219, 170, 7, 0, 191, 169, 7, 0, 216, 8, 0, 212, 8, 0, 186, 7, 0, 240, 7, 0, 183, 2, 0, 186, 8, 0, 168, 170, 7, 0, 184, 2, 0, 197, 8, 0, 220, 8, 0, 220, 170, 7, 0, 192, 169, 7, 0, 155, 82, 0, 142, 82, 0, 139, 85, 0, 226, 82, 0, 186, 2, 0, 180, 83, 0, 187, 7, 0, 145, 83, 0, 133, 85, 0, 171, 1, 0, 159, 82, 0, 157, 82, 0, 171, 67, 0, 185, 82, 0, 243, 82, 0, 162, 67, 0, 171, 85, 0, 153, 82, 0, 173, 85, 0, 173, 85, 128, 252, 3, 0, 140, 82, 0, 242, 78, 0, 123, 0, 91, 0, 139, 83, 0, 143, 83, 0, 141, 83, 0, 190, 2, 0, 188, 2, 0, 187, 8, 0, 182, 82, 0, 231, 82, 0, 203, 82, 0, 178, 67, 0, 228, 68, 0, 199, 67, 0, 203, 69, 0, 168, 85, 0, 255, 84, 0, 129, 85, 0, 131, 85, 0, 218, 69, 128, 252, 3, 0, 147, 85, 0, 214, 69, 0, 252, 82, 0, 169, 170, 7, 0, 145, 85, 0, 234, 82, 0, 132, 75, 0, 217, 8, 0, 235, 82, 0, 250, 75, 0, 192, 2, 0, 176, 71, 0, 232, 68, 0, 137, 85, 0, 135, 85, 0, 230, 69, 0, 236, 79, 0, 253, 67, 0, 252, 79, 0, 172, 67, 0, 133, 83, 0, 221, 170, 7, 0, 173, 84, 0, 180, 84, 0, 151, 68, 0, 202, 75, 0, 40, 0, 147, 83, 0, 237, 82, 0, 142, 64, 0, 191, 69, 0, 185, 64, 0, 193, 169, 7, 0, 141, 85, 0, 143, 85, 0, 154, 64, 0, 194, 2, 0, 166, 85, 0, 249, 84, 0, 201, 69, 0, 246, 82, 0, 251, 84, 0, 150, 83, 0, 195, 75, 0, 202, 82, 0, 230, 82, 0, 232, 68, 128, 252, 3, 0, 186, 68, 0, 175, 1, 0, 194, 76, 0, 160, 78, 0, 174, 75, 0, 169, 84, 0, 188, 8, 0, 148, 64, 0, 170, 170, 7, 0, 167, 66, 0, 181, 1, 0, 240, 85, 0, 146, 68, 0, 170, 84, 0, 219, 85, 0, 167, 69, 0, 222, 170, 7, 0, 194, 169, 7, 0, 188, 7, 0, 184, 69, 0, 217, 69, 184, 6, 0, 235, 68, 210, 65, 0, 205, 67, 0, 206, 67, 0, 216, 69, 184, 6, 0, 234, 68, 210, 65, 0, 207, 67, 0, 175, 69, 0, 174, 69, 0, 196, 2, 0, 160, 68, 210, 65, 0, 240, 84, 184, 6, 0, 203, 68, 184, 6, 0, 201, 2, 0, 238, 76, 0, 195, 84, 0, 200, 2, 0, 198, 2, 0, 237, 84, 184, 6, 0, 194, 84, 0, 189, 8, 0, 147, 64, 0, 215, 67, 0, 164, 82, 0, 208, 68, 184, 6, 0, 168, 82, 0, 171, 170, 7, 0, 174, 67, 0, 242, 85, 0, 252, 69, 0, 250, 69, 0, 218, 8, 0, 230, 68, 184, 6, 0, 154, 67, 0, 165, 64, 0, 223, 170, 7, 0, 172, 1, 0, 249, 69, 184, 6, 0, 245, 69, 184, 6, 0, 247, 69, 0, 246, 69, 0, 254, 69, 0, 253, 69, 0, 253, 85, 229, 65, 0, 130, 68, 184, 6, 0, 148, 84, 0, 155, 67, 0, 179, 82, 184, 6, 0, 157, 67, 184, 6, 0, 195, 169, 7, 0, 132, 69, 0, 197, 85, 184, 6, 0, 133, 69, 0, 198, 85, 184, 6, 0, 241, 1, 0, 189, 7, 0, 35, 0, 150, 66, 0, 135, 64, 0, 173, 69, 0, 132, 82, 0, 205, 68, 210, 65, 0, 172, 69, 0, 229, 68, 210, 65, 0, 62, 210, 65, 0, 222, 83, 0, 130, 82, 0, 228, 68, 210, 65, 0, 60, 210, 65, 0, 180, 69, 210, 65, 0, 131, 82, 0, 181, 69, 210, 65, 0, 188, 68, 210, 65, 0, 214, 67, 0, 163, 82, 0, 167, 82, 0, 243, 1, 0, 244, 1, 0, 190, 8, 0, 209, 2, 0, 184, 84, 0, 188, 83, 0, 211, 2, 0, 191, 83, 0, 172, 170, 7, 0, 219, 5, 0, 242, 1, 0, 193, 83, 0, 181, 83, 0, 190, 83, 0, 187, 83, 0, 192, 83, 0, 205, 2, 0, 201, 7, 0, 191, 7, 0, 182, 83, 0, 224, 170, 7, 0, 183, 83, 0, 185, 83, 0, 168, 68, 0, 221, 84, 0, 180, 66, 0, 170, 1, 0, 186, 1, 0, 182, 69, 0, 214, 84, 0, 215, 84, 0, 219, 84, 0, 248, 1, 0, 152, 69, 0, 245, 1, 0, 182, 84, 0, 246, 1, 0, 189, 70, 0, 182, 1, 0, 243, 85, 0, 253, 85, 0, 191, 8, 0, 37, 0, 46, 0, 176, 64, 0, 177, 64, 0, 173, 170, 7, 0, 198, 7, 0, 213, 7, 0, 142, 76, 0, 192, 7, 0, 214, 7, 0, 142, 66, 0, 43, 0, 163, 84, 0, 162, 84, 0, 165, 84, 0, 242, 84, 0, 166, 84, 0, 167, 84, 0, 149, 84, 0, 225, 170, 7, 0, 163, 1, 0, 179, 85, 0, 183, 85, 0, 185, 85, 0, 181, 85, 0, 232, 69, 0, 178, 64, 0, 174, 70, 0, 146, 70, 0, 147, 70, 0, 176, 69, 0, 197, 169, 7, 0, 200, 7, 0, 136, 64, 0, 174, 170, 7, 0, 226, 170, 7, 0, 215, 64, 0, 198, 169, 7, 0, 150, 84, 0, 63, 0, 156, 82, 0, 228, 82, 0, 189, 68, 177, 6, 0, 213, 2, 0, 179, 83, 0, 146, 83, 0, 165, 83, 0, 187, 1, 0, 245, 82, 0, 160, 82, 0, 179, 82, 0, 158, 82, 0, 197, 82, 0, 244, 82, 0, 163, 67, 0, 157, 67, 0, 154, 82, 0, 182, 68, 0, 243, 78, 0, 125, 0, 93, 0, 140, 83, 0, 142, 83, 0, 144, 83, 0, 217, 2, 0, 215, 2, 0, 192, 8, 0, 183, 82, 0, 233, 82, 0, 179, 67, 0, 173, 75, 0, 253, 82, 0, 175, 170, 7, 0, 236, 82, 0, 193, 7, 0, 241, 7, 0, 201, 67, 0, 204, 69, 0, 218, 5, 0, 143, 64, 0, 177, 71, 0, 238, 85, 0, 237, 79, 0, 254, 67, 0, 134, 83, 0, 227, 170, 7, 0, 174, 84, 0, 181, 84, 0, 41, 0, 148, 83, 0, 146, 84, 0, 186, 64, 0, 199, 169, 7, 0, 202, 69, 0, 185, 75, 0, 206, 83, 0, 232, 82, 0, 158, 66, 0, 219, 2, 0, 180, 85, 0, 184, 85, 0, 225, 2, 0, 223, 2, 0, 221, 2, 0, 182, 85, 0, 186, 85, 0, 233, 69, 0, 147, 84, 0, 193, 8, 0, 197, 69, 0, 230, 84, 0, 216, 67, 0, 167, 1, 0, 59, 0, 169, 82, 0, 182, 78, 0, 176, 170, 7, 0, 239, 76, 0, 201, 8, 0, 200, 8, 0, 173, 1, 0, 195, 7, 0, 194, 7, 0, 234, 84, 0, 158, 85, 0, 160, 85, 0, 157, 85, 0, 159, 85, 0, 198, 68, 0, 164, 84, 0, 242, 82, 0, 179, 84, 0, 228, 83, 0, 163, 70, 0, 170, 85, 0, 172, 85, 0, 172, 85, 128, 252, 3, 0, 204, 8, 0, 47, 0, 196, 83, 0, 191, 70, 0, 228, 170, 7, 0, 224, 76, 0, 147, 69, 128, 252, 3, 0, 148, 69, 128, 252, 3, 0, 200, 169, 7, 0, 134, 76, 0, 130, 69, 0, 197, 85, 0, 189, 85, 0, 195, 85, 0, 193, 85, 0, 203, 85, 0, 138, 69, 0, 191, 85, 0, 249, 82, 0, 199, 85, 0, 213, 85, 0, 211, 85, 0, 234, 76, 0, 185, 1, 0, 178, 1, 0, 179, 1, 0, 198, 85, 0, 190, 85, 0, 216, 85, 0, 196, 85, 0, 201, 79, 0, 215, 85, 0, 251, 82, 0, 194, 85, 0, 204, 85, 0, 139, 69, 0, 192, 85, 0, 200, 85, 0, 212, 85, 0, 214, 85, 0, 217, 67, 0, 170, 82, 0, 223, 1, 0, 150, 70, 0, 196, 7, 0, 229, 2, 0, 227, 2, 0, 194, 8, 0, 149, 70, 0, 177, 170, 7, 0, 184, 7, 0, 209, 7, 0, 254, 1, 0, 215, 1, 0, 177, 84, 0, 176, 84, 0, 182, 70, 0, 241, 85, 0, 229, 170, 7, 0, 218, 85, 0, 180, 64, 0, 181, 75, 0, 220, 68, 0, 236, 75, 0, 186, 84, 0, 185, 84, 0, 205, 83, 0, 187, 84, 0, 226, 71, 0, 201, 169, 7, 0, 198, 8, 0, 219, 8, 0, 231, 2, 0, 227, 82, 0, 250, 1, 0, 222, 8, 0, 237, 2, 0, 251, 1, 0, 195, 8, 0, 241, 2, 0, 254, 82, 0, 178, 170, 7, 0, 249, 1, 0, 128, 75, 0, 156, 70, 0, 143, 70, 0, 248, 75, 0, 235, 2, 0, 243, 2, 0, 230, 170, 7, 0, 197, 7, 0, 200, 67, 0, 157, 70, 0, 142, 70, 0, 239, 2, 0, 249, 75, 0, 202, 169, 7, 0, 240, 69, 0, 233, 2, 0, 252, 1, 0, 167, 83, 0, 232, 85, 0, 233, 85, 0, 156, 83, 0, 138, 69, 128, 252, 3, 0, 203, 85, 128, 252, 3, 0, 139, 69, 128, 252, 3, 0, 204, 85, 128, 252, 3, 0, 178, 8, 0, 187, 69, 0, 218, 68, 0, 238, 69, 0, 179, 170, 7, 0, 231, 170, 7, 0, 203, 169, 7, 0, 154, 83, 0, 245, 2, 0, 223, 84, 0, 217, 68, 0, 152, 66, 0, 180, 170, 7, 0, 232, 170, 7, 0, 204, 169, 7, 0, 181, 170, 7, 0, 190, 7, 0, 251, 69, 0, 233, 170, 7, 0, 205, 169, 7, 0, 253, 1, 0, 207, 8, 0, 247, 2, 0, 203, 8, 0, 165, 1, 0, 182, 170, 7, 0, 215, 8, 0, 234, 170, 7, 0, 206, 169, 7, 0, 206, 8, 0, 255, 1, 0, 250, 2, 0, 254, 2, 0, 183, 8, 0, 252, 2, 0, 182, 7, 0, 183, 170, 7, 0, 182, 8, 0, 221, 67, 0, 235, 170, 7, 0, 207, 169, 7, 0, 141, 64, 0, 140, 64, 0, } ENTITY_COUNT :: 2125 // END GENERATED TABLE