From 0b60559905c36d46012d9ec0a989c518037d8fed Mon Sep 17 00:00:00 2001 From: Oliver James Date: Wed, 22 May 2024 14:57:48 +0100 Subject: [PATCH] Unicode: Perform major refactor This commit encapsulates the following: * Removal of public Unicode classes. * Move to new 'blob' generated data format. * Fix issue where numerical characters would be assigned incorrect bidirectional levels, resulting in them rendering in the wrong order. * Adds a unit test for the number ordering issue. * Refactor of Bidirectional and Line breaking algorithms. --- modules/juce_graphics/juce_graphics.cpp | 4 +- .../unicode/juce_LineBreakTable.inl | 1058 ----------- .../juce_graphics/unicode/juce_Unicode.cpp | 449 +++-- modules/juce_graphics/unicode/juce_Unicode.h | 169 -- .../unicode/juce_UnicodeBidi.cpp | 1169 ++++++------ .../unicode/juce_UnicodeBrackets.cpp | 503 +---- .../unicode/juce_UnicodeData.cpp | 782 -------- .../unicode/juce_UnicodeGenerated.cpp | 1380 ++++++++++++++ .../unicode/juce_UnicodeGrapheme.cpp | 62 - .../unicode/juce_UnicodeLine.cpp | 464 +++-- .../unicode/juce_UnicodeScript.cpp | 288 +-- .../unicode/juce_UnicodeScript.h | 114 -- .../unicode/juce_UnicodeTestData.cpp | 1675 ----------------- .../unicode/juce_UnicodeUtils.cpp | 265 +-- 14 files changed, 2715 insertions(+), 5667 deletions(-) delete mode 100644 modules/juce_graphics/unicode/juce_LineBreakTable.inl delete mode 100644 modules/juce_graphics/unicode/juce_Unicode.h delete mode 100644 modules/juce_graphics/unicode/juce_UnicodeData.cpp create mode 100644 modules/juce_graphics/unicode/juce_UnicodeGenerated.cpp delete mode 100644 modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp delete mode 100644 modules/juce_graphics/unicode/juce_UnicodeScript.h delete mode 100644 modules/juce_graphics/unicode/juce_UnicodeTestData.cpp diff --git a/modules/juce_graphics/juce_graphics.cpp b/modules/juce_graphics/juce_graphics.cpp index d1a0a85d6b..b4f1f4b301 100644 --- a/modules/juce_graphics/juce_graphics.cpp +++ b/modules/juce_graphics/juce_graphics.cpp @@ -148,14 +148,12 @@ #include "fonts/juce_FunctionPointerDestructor.h" #include "native/juce_EventTracing.h" -#include "unicode/juce_UnicodeScript.h" -#include "unicode/juce_Unicode.h" +#include "unicode/juce_UnicodeGenerated.cpp" #include "unicode/juce_UnicodeUtils.cpp" #include "unicode/juce_UnicodeLine.cpp" #include "unicode/juce_UnicodeScript.cpp" #include "unicode/juce_UnicodeBrackets.cpp" #include "unicode/juce_UnicodeBidi.cpp" -#include "unicode/juce_UnicodeGrapheme.cpp" #include "unicode/juce_Unicode.cpp" #include "colour/juce_Colour.cpp" #include "colour/juce_ColourGradient.cpp" diff --git a/modules/juce_graphics/unicode/juce_LineBreakTable.inl b/modules/juce_graphics/unicode/juce_LineBreakTable.inl deleted file mode 100644 index fe1cc0c57b..0000000000 --- a/modules/juce_graphics/unicode/juce_LineBreakTable.inl +++ /dev/null @@ -1,1058 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE framework. - Copyright (c) Raw Material Software Limited - - JUCE is an open source framework subject to commercial or open source - licensing. - - By downloading, installing, or using the JUCE framework, or combining the - JUCE framework with any other source code, object code, content or any other - copyrightable work, you agree to the terms of the JUCE End User Licence - Agreement, and all incorporated terms including the JUCE Privacy Policy and - the JUCE Website Terms of Service, as applicable, which will bind you. If you - do not agree to the terms of these agreements, we will not license the JUCE - framework to you, and you must discontinue the installation or download - process and cease use of the JUCE framework. - - JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ - JUCE Privacy Policy: https://juce.com/juce-privacy-policy - JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ - - Or: - - You may also use this code under the terms of the AGPLv3: - https://www.gnu.org/licenses/agpl-3.0.en.html - - THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL - WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. - - ============================================================================== -*/ - -set (BreakClass::op, BreakClass::op, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::qu, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::gl, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::ns, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::pr, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::po, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::nu, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::al, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::hl, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::id, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::in, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::hy, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::ba, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::bb, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::b2, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::cm, BreakOppurtunity::combinedProhibited); -set (BreakClass::op, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::h2, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::h3, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::jl, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::jv, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::jt, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::ri, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::eb, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::em, BreakOppurtunity::prohibited); -set (BreakClass::op, BreakClass::zwj, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::cl, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::cl, BreakClass::ns, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::cl, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::cl, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::cl, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::cl, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::cl, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::cl, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::cl, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::cp, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::cp, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::ns, BreakOppurtunity::prohibited); -set (BreakClass::cp, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::cp, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::cp, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::cp, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::cp, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::cp, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::cp, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::cp, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::cp, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::op, BreakOppurtunity::prohibited); -set (BreakClass::qu, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::qu, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::qu, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::qu, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::qu, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::qu, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::id, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::bb, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::b2, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::qu, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::qu, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::qu, BreakClass::h2, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::h3, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::jl, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::jv, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::ri, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::eb, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::em, BreakOppurtunity::indirect); -set (BreakClass::qu, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::gl, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::gl, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::gl, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::gl, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::gl, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::id, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::bb, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::b2, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::gl, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::gl, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::gl, BreakClass::h2, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::h3, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::jl, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::jv, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::ri, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::eb, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::em, BreakOppurtunity::indirect); -set (BreakClass::gl, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::ns, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::ns, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::ns, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::ns, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::ns, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::ns, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::ns, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::ns, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::ns, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::ns, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::ns, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::ns, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::ns, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::ns, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::ns, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::ex, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::ex, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::ex, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::ex, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::ex, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::ex, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::ex, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::ex, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::ex, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::ex, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::ex, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::ex, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::ex, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::ex, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::ex, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::ex, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::sy, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::sy, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::sy, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::sy, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::sy, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::sy, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::sy, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::sy, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::sy, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::sy, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::sy, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::sy, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::sy, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::sy, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::sy, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::sy, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::sy, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::is, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::is, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::is, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::is, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::is, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::is, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::is, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::is, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::is, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::is, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::pr, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::pr, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::pr, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::pr, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::pr, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::pr, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::pr, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::id, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::pr, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::pr, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::pr, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::pr, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::pr, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::pr, BreakClass::h2, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::h3, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::jl, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::jv, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::pr, BreakClass::eb, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::em, BreakOppurtunity::indirect); -set (BreakClass::pr, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::po, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::po, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::po, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::po, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::po, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::po, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::po, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::po, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::po, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::po, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::nu, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::nu, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::nu, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::nu, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::nu, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::nu, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::nu, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::nu, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::nu, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::nu, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::al, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::al, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::al, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::al, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::al, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::al, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::al, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::al, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::al, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::al, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::hl, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::hl, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::hl, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::hl, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::hl, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::hl, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::hl, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::hl, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::hl, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::hl, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::id, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::id, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::id, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::id, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::id, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::id, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::id, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::id, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::id, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::id, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::id, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::id, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::id, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::id, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::id, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::id, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::id, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::in, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::in, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::in, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::in, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::in, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::in, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::in, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::in, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::in, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::in, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::in, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::in, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::in, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::in, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::in, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::in, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::hy, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::hy, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::hy, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::hy, BreakClass::gl, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::hy, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::hy, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::hy, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::hy, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::hy, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::hy, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::hy, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::hy, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::hy, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::hy, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::hy, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::ba, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::ba, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::ba, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::ba, BreakClass::gl, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::ba, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::ba, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::ba, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::ba, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::ba, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::ba, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::ba, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::ba, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::ba, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::ba, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::bb, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::bb, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::bb, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::bb, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::bb, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::id, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::bb, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::b2, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::bb, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::bb, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::bb, BreakClass::h2, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::h3, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::jl, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::jv, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::ri, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::eb, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::em, BreakOppurtunity::indirect); -set (BreakClass::bb, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::b2, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::b2, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::b2, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::b2, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::b2, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::b2, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::b2, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::b2, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::b2, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::b2, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::b2, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::b2, BreakOppurtunity::prohibited); -set (BreakClass::b2, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::b2, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::b2, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::b2, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::b2, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::zw, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::cl, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::cp, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::qu, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::gl, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::ns, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::ex, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::sy, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::is, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::hy, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::ba, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::zw, BreakClass::cm, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::wj, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::zw, BreakClass::zwj, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::cm, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::cm, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::cm, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::cm, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::cm, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::cm, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::cm, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::cm, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::cm, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::cm, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::op, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::wj, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::wj, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::wj, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::wj, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::wj, BreakClass::pr, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::nu, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::al, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::hl, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::id, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::bb, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::b2, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::wj, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::wj, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::wj, BreakClass::h2, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::h3, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::jl, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::jv, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::ri, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::eb, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::em, BreakOppurtunity::indirect); -set (BreakClass::wj, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::h2, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::h2, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::h2, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::h2, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::h2, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::h2, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::h2, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::h2, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::jv, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::h2, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::h2, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::h3, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::h3, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::h3, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::h3, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::h3, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::h3, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::h3, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::h3, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::h3, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::h3, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::jl, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::jl, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::jl, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::jl, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::jl, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::jl, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::jl, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::jl, BreakClass::h2, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::h3, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::jl, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::jv, BreakOppurtunity::indirect); -set (BreakClass::jl, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::jl, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::jv, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::jv, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::jv, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::jv, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::jv, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::jv, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::jv, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::jv, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::jv, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::jv, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::jv, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::jt, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::jt, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::jt, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::jt, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::jt, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::jt, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::jt, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::jt, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::jt, BreakOppurtunity::indirect); -set (BreakClass::jt, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::jt, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::ri, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::ri, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::ri, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::ri, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::ri, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::ri, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::ri, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::ri, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::ri, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::ri, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::ri, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::ri, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::ri, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::ri, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::ri, BreakOppurtunity::indirect); -set (BreakClass::ri, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::ri, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::eb, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::eb, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::eb, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::eb, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::eb, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::eb, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::eb, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::eb, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::eb, BreakClass::em, BreakOppurtunity::indirect); -set (BreakClass::eb, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::em, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::em, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::em, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::em, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::em, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::em, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::em, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::em, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::em, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::po, BreakOppurtunity::indirect); -set (BreakClass::em, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::id, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::in, BreakOppurtunity::indirect); -set (BreakClass::em, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::em, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::em, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::em, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::em, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::em, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::eb, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::em, BreakOppurtunity::direct); -set (BreakClass::em, BreakClass::zwj, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::op, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::cl, BreakOppurtunity::prohibited); -set (BreakClass::zwj, BreakClass::cp, BreakOppurtunity::prohibited); -set (BreakClass::zwj, BreakClass::qu, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::gl, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::ns, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::ex, BreakOppurtunity::prohibited); -set (BreakClass::zwj, BreakClass::sy, BreakOppurtunity::prohibited); -set (BreakClass::zwj, BreakClass::is, BreakOppurtunity::prohibited); -set (BreakClass::zwj, BreakClass::pr, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::po, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::nu, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::al, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::hl, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::id, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::in, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::hy, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::ba, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::bb, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::b2, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::zw, BreakOppurtunity::prohibited); -set (BreakClass::zwj, BreakClass::cm, BreakOppurtunity::combinedIndirect); -set (BreakClass::zwj, BreakClass::wj, BreakOppurtunity::prohibited); -set (BreakClass::zwj, BreakClass::h2, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::h3, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::jl, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::jv, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::jt, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::ri, BreakOppurtunity::direct); -set (BreakClass::zwj, BreakClass::eb, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::em, BreakOppurtunity::indirect); -set (BreakClass::zwj, BreakClass::zwj, BreakOppurtunity::indirect); diff --git a/modules/juce_graphics/unicode/juce_Unicode.cpp b/modules/juce_graphics/unicode/juce_Unicode.cpp index a5982121f6..076c4a2acf 100644 --- a/modules/juce_graphics/unicode/juce_Unicode.cpp +++ b/modules/juce_graphics/unicode/juce_Unicode.cpp @@ -35,47 +35,153 @@ namespace juce { -Array Unicode::performAnalysis (const String& string) +//============================================================================== +/* + A collection of methods and types for breaking down text into a unicode representation. +*/ +class Unicode { - if (string.isEmpty()) - return {}; - - thread_local std::unordered_map> cache; - auto& result = cache[string]; - - if (! result.isEmpty()) - return result; - - auto analysisBuffer = [&str = std::as_const (string)] + struct Key { - std::vector points; + String text; + std::optional directionOverride; - const auto data = str.toUTF32(); - const auto length = data.length(); + auto tie() const { return std::tie (text, directionOverride); } + bool operator< (const Key& other) const { return tie() < other.tie(); } + }; - points.reserve (length); +public: + Unicode() = delete; - std::transform (data.getAddress(), data.getAddress() + length, std::back_inserter (points), [] (uint32_t cp) + //============================================================================== + /* A unicode Codepoint, from this you can infer various Unicode properties such + as direction, logical string index and breaking type, etc. + */ + struct Codepoint + { + uint32_t codepoint; + + size_t logicalIndex; // Index of the character in the source string + size_t visualIndex; + + TextBreakType breaking; // Breaking characteristics of this codepoint + + TextDirection direction; // Direction of this codepoint + + TextScript script; // Script class for this codepoint + }; + + template + static auto prefix (Span v, size_t num) + { + return Span { v.data(), std::min (v.size(), num) }; + } + + template + static auto removePrefix (Span v, size_t num) + { + const auto increment = std::min (v.size(), num); + return Span { v.data() + increment, v.size() - increment }; + } + + //============================================================================== + /* Performs unicode analysis on a piece of text and returns an array of Codepoints + in logical order. + */ + static Array performAnalysis (const String& string, std::optional textDirection = {}) + { + if (string.isEmpty()) + return {}; + + thread_local LruCache> cache; + + return cache.get ({ string, textDirection }, analysisCallback); + } + + //============================================================================== + template + struct Iterator + { + using ValueType = typename Traits::ValueType; + + Iterator() = default; + explicit Iterator (Span s) : data (s) {} + + std::optional> next() { - UnicodeAnalysisPoint p; + if (data.empty()) + return {}; - p.character = cp; - p.data = getUnicodeDataForCodepoint (cp); - p.bidi.level = 0; + const auto breakpoint = std::find_if (data.begin(), data.end(), [&] (const auto& i) + { + return ! Traits::compare (i, data.front()); + }); + const auto lengthToBreak = (size_t) std::distance (data.begin(), breakpoint) + (Traits::includeBreakingIndex() ? 1 : 0); + const ScopeGuard scope { [&] { data = removePrefix (data, lengthToBreak); } }; + return prefix (data, lengthToBreak); + } - //#define JUCE_TR9_UPPERCASE_IS_RTL - #if defined (JUCE_TR9_UPPERCASE_IS_RTL) - if (cp >= 65 && cp <= 90) - p.data.bidi = BidiType::al; - #undef JUCE_TR9_UPPERCASE_IS_RTL - #endif + private: + Span data; + }; - return p; - }); + struct BidiTraits + { + using ValueType = const Codepoint; - return points; - }(); + static bool compare (const Codepoint& t1, const Codepoint& t2) + { + return t1.direction == t2.direction; + } + static bool includeBreakingIndex() { return false; } + }; + + using BidiRunIterator = Iterator; + + struct LineTraits + { + using ValueType = const Codepoint; + + static bool compare (const Codepoint& t1, const Codepoint&) + { + return t1.breaking != TextBreakType::hard; + } + + static bool includeBreakingIndex() { return true; } + }; + + using LineBreakIterator = Iterator; + + struct WordTraits + { + using ValueType = const Codepoint; + + static bool compare (const Codepoint& t1, const Codepoint&) + { + return t1.breaking != TextBreakType::soft; + } + + static bool includeBreakingIndex() { return false; } + }; + + using WordBreakIterator = Iterator; + + struct ScriptTraits + { + using ValueType = const Codepoint; + + static bool compare (const Codepoint& t1, const Codepoint& t2) + { + return t1.script == t2.script; + } + + static bool includeBreakingIndex() { return false; } + }; + + using ScriptRunIterator = Iterator; + +private: struct ParagraphIterator { explicit ParagraphIterator (Span Span) : data (Span) {} @@ -85,244 +191,131 @@ Array Unicode::performAnalysis (const String& string) const auto start = head; auto end = start; - if ((size_t) start < data.size()) + if ((size_t) start >= data.size()) + return std::nullopt; + + while ((size_t) end < data.size()) { - while ((size_t) end < data.size()) - { - if (data[(size_t) end].character == 0x2029) - break; + constexpr auto paragraphSeparator = 0x2029; - end++; - } + if (data[(size_t) end].character == paragraphSeparator) + break; - - head = end + 1; - return std::make_optional (Range { start, end }); + end++; } - return nullopt; + head = end + 1; + return std::make_optional (Range { start, end }); } Span data; int head = 0; }; - result.resize ((int) analysisBuffer.size()); - - for (size_t i = 0; i < analysisBuffer.size(); i++) - result.getReference ((int) i).codepoint = analysisBuffer[i].character; - - tr24::analyseScripts (analysisBuffer, [&result] (int index, TextScript script) + static Array analysisCallback (const Key& key) { - result.getReference (index).script = script; - }); - - tr14::analyseLineBreaks (analysisBuffer, [&result] (int index, TextBreakType type) - { - result.getReference ((int) index).breaking = type; - }); - - ParagraphIterator iter { analysisBuffer }; - - while (auto range = iter.next()) - { - const auto run = Span { analysisBuffer.data() + (size_t) range->getStart(), (size_t) range->getLength() }; - const auto bidi = tr9::analyseBidiRun (run); - - for (size_t i = 0; i < (size_t) range->getLength(); i++) + auto analysisBuffer = [&key] { - auto& point = result.getReference ((int) i + range->getStart()); + std::vector points; - point.direction = bidi.resolvedLevels[i] % 2 == 0 ? TextDirection::ltr : TextDirection::rtl; - point.logicalIndex = (size_t) range->getStart() + i; - point.visualIndex = (size_t) bidi.visualOrder[i]; - } - } + const auto data = key.text.toUTF32(); + const auto length = data.length(); - return result; -} + points.reserve (length); -// https://unicode-org.github.io/icu/userguide/transforms/bidi.html#logical-order-versus-visual-order -Array Unicode::convertLogicalToVisual (Span codepoints) -{ - Array visual; + std::transform (data.getAddress(), data.getAddress() + length, std::back_inserter (points), [] (uint32_t cp) + { + UnicodeAnalysisPoint p { cp, UnicodeDataTable::getDataForCodepoint (cp) }; - visual.resize ((int) codepoints.size()); + // Define this to enable TR9 debugging. All upper case + // characters will be interpreted as right-to-left. + #if defined (JUCE_TR9_UPPERCASE_IS_RTL) + if (65 <= cp && cp <= 90) + p.data.bidi = BidiType::al; + #endif - for (const auto& codepoint : codepoints) - visual.set ((int) codepoint.visualIndex, codepoint); + return p; + }); - return visual; -} - -bool UnicodeFunctions::isRenderableCharacter (juce_wchar character) -{ - JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") - switch (getUnicodeDataForCodepoint ((uint32_t) character).bt) - { - case LineBreakType::cr: - case LineBreakType::lf: - case LineBreakType::bk: - case LineBreakType::nl: - case LineBreakType::sp: - case LineBreakType::zw: - case LineBreakType::zwj: - case LineBreakType::cm: - case LineBreakType::cb: - return false; - - default: break; - } - JUCE_END_IGNORE_WARNINGS_GCC_LIKE - - return true; -} - -bool UnicodeFunctions::isBreakableWhitespace (juce_wchar character) -{ - switch (character) - { - case 0x0020: case 0x1680: case 0x180E: case 0x2000: - case 0x2001: case 0x2002: case 0x2003: case 0x2004: - case 0x2005: case 0x2006: case 0x2007: case 0x2008: - case 0x2009: case 0x200A: case 0x200B: case 0x202F: - case 0x205F: case 0x3000: - return true; - - default: break; - } - - return false; -} - -bool UnicodeFunctions::isEmoji (juce_wchar character) -{ - return getEmojiType ((uint32_t) character) != EmojiType::no; -} - -bool UnicodeFunctions::shouldVerticalGlyphRotate (juce_wchar character) -{ - JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") - switch (getUnicodeDataForCodepoint ((uint32_t) character).vertical) - { - case VerticalTransformType::R: - case VerticalTransformType::Tr: - case VerticalTransformType::Tu: return true; - - default: break; - } - JUCE_END_IGNORE_WARNINGS_GCC_LIKE - - return false; -} - -//#define JUCE_UNICODE_UNIT_TESTS - -#if defined(JUCE_UNIT_TESTS) && defined(JUCE_UNICODE_UNIT_TESTS) -struct LineBreakTests : UnitTest -{ - LineBreakTests() : UnitTest ("UnicodeLineBreakTests", UnitTestCategories::unicode) - { - } - - void runTest() - { - static const auto data = [] - { - using namespace generated; - - MemoryInputStream mStream {tr14TestData, sizeof (tr14TestData), false}; - GZIPDecompressorInputStream zStream {&mStream, false}; - - MemoryBlock data {tr14TestDataUncompressedSize, false}; - zStream.read (data.getData(), data.getSize()); - - return std::move (data); + return points; }(); - MemoryInputStream stream {data, false}; + Array result; + result.resize ((int) analysisBuffer.size()); - int testCounter = 0; + for (size_t i = 0; i < analysisBuffer.size(); i++) + result.getReference ((int) i).codepoint = analysisBuffer[i].character; - while (! stream.isExhausted()) + TR24::analyseScripts (analysisBuffer, [&result] (int index, TextScript script) { - uint32_t input[256]{}; - bool output[256]{}; - - const auto inputStringLength = (size_t) stream.readShort(); - jassert (inputStringLength < std::size (input)); - - for (size_t i = 0; i < inputStringLength; i++) - input[i] = (uint32_t) stream.readInt(); - - for (size_t i = 0; i < inputStringLength + 1; i++) - output[i] = (bool) stream.readBool(); - - beginTest ("Test " + String (++testCounter)); - expect (runTest (Span { input, inputStringLength }, - Span { output, inputStringLength + 1 })); - } - } - - static bool runTest (Span input, Span output) - { - UnicodeAnalysisPoint points[256]{}; - bool result[256]{}; - - std::transform (input.begin(), input.end(), points, [] (uint32_t cp) - { - auto data = getUnicodePointForCodepoint (cp); - return UnicodeAnalysisPoint {cp, data}; + result.getReference (index).script = script; }); - const auto resultCount = tr14::analyseLineBreaks ({ points, input.size() }, [&result, output] (int index, TextBreakType type) + TR14::analyseLineBreaks (analysisBuffer, [&result] (int index, TextBreakType type) { - jassert (index <= output.size()); - result[index] = type != TextBreakType::noBreak; + result.getReference (index).breaking = type; }); - const auto s = std::equal (output.begin(), output.end(), std::begin (result)) && - resultCount == output.size(); + ParagraphIterator iter { analysisBuffer }; - #if JUCE_DEBUG - if (! s) + TR9::BidiOutput bidiOutput; + + while (auto range = iter.next()) { - String expected, actual; + const auto run = Span { analysisBuffer.data() + (size_t) range->getStart(), (size_t) range->getLength() }; - DBG ("Test Failed:"); + TR9::analyseBidiRun (bidiOutput, run, key.directionOverride); - if (resultCount != output.size()) + for (size_t i = 0; i < (size_t) range->getLength(); i++) { - DBG ("\tIncorrect output size. Expected " << output.size() << " got " << resultCount); - jassertfalse; + auto& point = result.getReference ((int) i + range->getStart()); + + point.direction = bidiOutput.resolvedLevels[i] % 2 == 0 ? TextDirection::ltr : TextDirection::rtl; + point.logicalIndex = (size_t) range->getStart() + i; + point.visualIndex = (size_t) bidiOutput.visualOrder[i]; } - - for (size_t i = 0; i < output.size(); i++) - { - expected << (output[i] ? "True" : "False") << " "; - actual << (result[i] ? "True" : "False") << " "; - } - - String inputString; - - for (auto value : input) - inputString << String::formatted ("%04X ", value); - - DBG ("\tInput: { " << inputString << "}"); - DBG ("\tOutput: { " << actual << "}"); - DBG ("\tExpected: { " << expected << "}"); - - DBG (tr14::debugString); - jassertfalse; } - #endif - return s; + return result; } }; -static LineBreakTests lineBreakTests; +#if JUCE_UNIT_TESTS + +class NumericalVisualOrderTest : UnitTest +{ +public: + NumericalVisualOrderTest() : UnitTest ("NumericalVisualOrderTest", UnitTestCategories::text) + { + } + + void runTest() override + { + auto doTest = [this] (const String& text) + { + String visual; + String logical; + + for (auto cp : Unicode::performAnalysis (text)) + { + visual << text[(int) cp.visualIndex]; + logical << text[(int) cp.logicalIndex]; + } + + beginTest (text); + expectEquals (visual, logical); + }; + + doTest ("12345"); + doTest ("12345_00001"); + doTest ("1_3(1)"); + doTest ("-12323"); + } +}; + +static NumericalVisualOrderTest visualOrderTest; #endif -} + +} // namespace juce diff --git a/modules/juce_graphics/unicode/juce_Unicode.h b/modules/juce_graphics/unicode/juce_Unicode.h deleted file mode 100644 index f7ab6f03eb..0000000000 --- a/modules/juce_graphics/unicode/juce_Unicode.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE framework. - Copyright (c) Raw Material Software Limited - - JUCE is an open source framework subject to commercial or open source - licensing. - - By downloading, installing, or using the JUCE framework, or combining the - JUCE framework with any other source code, object code, content or any other - copyrightable work, you agree to the terms of the JUCE End User Licence - Agreement, and all incorporated terms including the JUCE Privacy Policy and - the JUCE Website Terms of Service, as applicable, which will bind you. If you - do not agree to the terms of these agreements, we will not license the JUCE - framework to you, and you must discontinue the installation or download - process and cease use of the JUCE framework. - - JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ - JUCE Privacy Policy: https://juce.com/juce-privacy-policy - JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ - - Or: - - You may also use this code under the terms of the AGPLv3: - https://www.gnu.org/licenses/agpl-3.0.en.html - - THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL - WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. - - ============================================================================== -*/ - -namespace juce -{ -enum class TextBreakType { none, soft, hard }; -enum class TextDirection { ltr, rtl }; - -struct Unicode -{ - struct Codepoint - { - auto getLogicalIndex() const { return logicalIndex; } - auto getVisualIndex() const { return visualIndex; } - - uint32_t codepoint; - - // Index of the character in the source string - size_t logicalIndex; - size_t visualIndex; - - // Breaking characteristics of this codepoint - TextBreakType breaking; - - // Direction of this codepoint - TextDirection direction; - - // Script class for this codepoint - TextScript script; - }; - - template - static auto prefix (Span v, size_t num) - { - return Span { v.data(), std::min (v.size(), num) }; - } - - template - static auto removePrefix (Span v, size_t num) - { - const auto increment = std::min (v.size(), num); - return Span { v.data() + increment, v.size() - increment }; - } - - static Array performAnalysis (const String&); - static Array convertLogicalToVisual (Span); - - template - struct Iterator - { - using ValueType = typename Traits::ValueType; - - Iterator() = default; - explicit Iterator (Span s) : data (s) {} - - std::optional> next() - { - if (data.empty()) - return {}; - - const auto breakpoint = std::find_if (data.begin(), data.end(), [&] (const auto& i) - { - return ! Traits::compare (i, data.front()); - }); - const auto lengthToBreak = (size_t) std::distance (data.begin(), breakpoint) + (Traits::includeBreakingIndex() ? 1 : 0); - const ScopeGuard scope { [&] { data = removePrefix (data, lengthToBreak); } }; - return prefix (data, lengthToBreak); - } - - private: - Span data; - }; - - struct BidiTraits - { - using ValueType = const Codepoint; - - static bool compare (const Codepoint& t1, const Codepoint& t2) - { - return t1.direction == t2.direction; - } - - static bool includeBreakingIndex() { return false; } - }; - - using BidiRunIterator = Iterator; - - struct LineTraits - { - using ValueType = const Codepoint; - - static bool compare (const Codepoint& t1, const Codepoint&) - { - return t1.breaking != TextBreakType::hard; - } - - static bool includeBreakingIndex() { return true; } - }; - - using LineBreakIterator = Iterator; - - struct WordTraits - { - using ValueType = const Codepoint; - - static bool compare (const Codepoint& t1, const Codepoint&) - { - return t1.breaking != TextBreakType::soft; - } - - static bool includeBreakingIndex() { return false; } - }; - - using WordBreakIterator = Iterator; - - struct ScriptTraits - { - using ValueType = const Codepoint; - - static bool compare (const Codepoint& t1, const Codepoint& t2) - { - return t1.script == t2.script; - } - - static bool includeBreakingIndex() { return false; } - }; - - using ScriptRunIterator = Iterator; -}; - -struct UnicodeFunctions -{ - static bool isRenderableCharacter (juce_wchar character); - static bool isBreakableWhitespace (juce_wchar character); - static bool isEmoji (juce_wchar character); - static bool shouldVerticalGlyphRotate (juce_wchar character); -}; -} // namespace juce diff --git a/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp b/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp index 71cee307f6..6077ac8f80 100644 --- a/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp +++ b/modules/juce_graphics/unicode/juce_UnicodeBidi.cpp @@ -32,661 +32,614 @@ ============================================================================== */ -namespace juce::tr9 +namespace juce { -enum EmbeddingLevel +class TR9 { - left = 0, - right = 1 -}; +public: + TR9() = delete; -static inline auto isOdd (int level) { return bool (level & 1); } -static inline auto computeLeastEven (int level) { return isOdd (level) ? level + 1 : level + 2; } -static inline auto computeLeastOdd (int level) { return isOdd (level) ? level + 2 : level + 1; } -static inline auto getEmbeddingDirection (int level) { return isOdd (level) ? BidiType::rtl : BidiType::ltr; } - -struct Atom final : UnicodeAnalysisPoint -{ - auto getCharacter() const { return character; } - auto getType() const { return data.bidi; } - auto getLevel() const { return bidi.level; } - - bool isIsolate() const { return isIsolateInitiator() || isIsolateTerminator(); } - bool isIsolateInitiator() const { return any (getType(), BidiType::lri, BidiType::rli, BidiType::fsi); } - bool isIsolateTerminator() const { return any (getType(), BidiType::pdi); } - bool isStrong() const { return any (getType(), BidiType::rtl, BidiType::ltr, BidiType::al); } - bool isNeutral() const { return any (getType(), BidiType::b, BidiType::s, BidiType::ws, BidiType::on); } - bool isWeak() const { return any (getType(), BidiType::en, BidiType::es, BidiType::et, BidiType::an, - BidiType::cs, BidiType::nsm, BidiType::bn); } - operator BidiType() const { return getType(); } - - bool operator== (BidiType other) const { return getType() == other; } - bool operator== (Atom other) const { return getType() == other.getType(); } - - void setType (BidiType newType) { data.bidi = newType; } - void setLevel (uint16_t newLevel) { bidi.level = newLevel; } - - static Atom make (BidiType type) + struct BidiOutput { - Atom a{}; - a.data.bidi = type; - return a; - } - - static Atom none() - { - return make (BidiType::none); - } -}; - -struct RunIterator -{ - RunIterator (Span span) : data (span) {} - - std::optional> next() - { - if (data.size() <= head) - return {}; - - const auto start = head; - const auto currentLevel = data[start].getLevel(); - - const auto iter = std::find_if_not (data.begin() + start, data.end(), - [currentLevel] (const Atom& atom) - { - return atom.getLevel() != currentLevel; - }); - - const auto end = iter != data.end() ? (size_t) std::distance (data.begin(), iter) : data.size(); - head = end + 1; - - return Range { (int) start, (int) end }; - } - -private: - Span data; - size_t head = 0; -}; - -template -struct FixedStack -{ - constexpr FixedStack() = default; - - constexpr auto depth() const { return head; } - constexpr bool full() const { return head == Capacity; } - constexpr bool empty() const { return head == 0; } - constexpr void reset() { head = 0; } - - void push (T val) - { - jassert (head < Capacity); - data[head++] = val; - } - - T pop() - { - jassert (head > 0); - return data[--head]; - } - - constexpr T operator[] (int index) const { return data[index]; } - - constexpr T& peek() { return data[head - 1]; } - constexpr auto begin() const { return data + 0; } - constexpr auto end() const { return data + head; } - -private: - T data[(size_t) Capacity] {}; - int head {}; - - JUCE_DECLARE_NON_COPYABLE (FixedStack) - JUCE_DECLARE_NON_MOVEABLE (FixedStack) -}; - -static inline int resolveParagraphEmbeddingLevel (const Span buffer, Range range = {}) -{ - range = range.isEmpty() ? Range {0, (int) buffer.size()} : range; - - auto seek = [buffer] (BidiType type, Range seekRange) -> std::optional - { - for (int i = seekRange.getStart(); i < seekRange.getEnd(); i++) - { - if (buffer[(size_t) i].getType() == type) - return std::make_optional (i); - } - - return {}; + int embeddingLevel = -1; + std::vector resolvedLevels; + std::vector visualOrder; }; - for (int i = range.getStart(); i < range.getEnd(); i++) + static void analyseBidiRun (BidiOutput& output, + Span stream, + std::optional directionOverride = {}) { - const auto& atom = buffer[(size_t) i]; + // BD1 + const auto baseLevel = directionOverride.has_value() ? (*directionOverride == TextDirection::rtl ? 1 : 0) + : resolveParagraphEmbeddingLevel (stream); - if (atom.isStrong()) + std::for_each (stream.begin(), stream.end(), [baseLevel] (auto& atom) { - return atom == BidiType::ltr ? EmbeddingLevel::left : EmbeddingLevel::right; - } - else if (atom.isIsolateInitiator()) - { - // skip to past matching PDI or EOS - const auto end = seek (BidiType::pdi, { i, range.getEnd() }); - i = end.has_value() ? *end + 1 : range.getEnd(); - } + atom.bidiLevel = (uint16_t) baseLevel; + }); + + resolveExplicitLevels (stream, baseLevel); + + // X9 replace override characters + const auto pred = [] (auto atom) { return contains ({ BidiType::rle, BidiType::lre, + BidiType::lro, BidiType::rlo, + BidiType::pdf }, atom.getBidiType()); }; + + std::for_each (stream.begin(), + stream.end(), + [&pred] (auto& atom) + { + if (! pred (atom)) + return; + + auto copy = atom; + copy.setBidiType (BidiType::bn); + + atom = copy; + }); + + // W1-W7 + resolveWeakTypes (stream, {}); + + // N0-N2 + resolveNeutralTypes (stream, baseLevel, {}); + + // I1-I2 + resolveImplicitTypes (stream, baseLevel, {}); + + output.embeddingLevel = baseLevel; + + output.resolvedLevels.clear(); + + for (const auto& atom : stream) + output.resolvedLevels.push_back (atom.bidiLevel); + + resolveReorderedIndices (output.visualOrder, stream, baseLevel, {}); } - return EmbeddingLevel::left; -} - -static inline void resolveNeutralTypes (Span buffer, int embeddingLevel, Range range) -{ - range = range.isEmpty() ? Range {0, (int) buffer.size()} : range; - - // BD13: - const auto bracketRanges = [buffer, range] +private: + enum EmbeddingLevel { - struct Bracket - { - int position; - uint32_t character; - BracketType type; - }; + left = 0, + right = 1 + }; - FixedStack stack; - std::vector> brackets; + static auto isOdd (int level) { return bool (level & 1); } + static auto computeLeastEven (int level) { return isOdd (level) ? level + 1 : level + 2; } + static auto computeLeastOdd (int level) { return isOdd (level) ? level + 2 : level + 1; } + static auto getEmbeddingDirection (int level) { return isOdd (level) ? BidiType::rtl : BidiType::ltr; } + + static bool isStrong (const UnicodeAnalysisPoint& x) + { + return contains ({ BidiType::rtl, BidiType::ltr, BidiType::al }, x.getBidiType()); + } + + static bool isNeutral (const UnicodeAnalysisPoint& x) + { + return contains ({ BidiType::b, BidiType::s, BidiType::ws, BidiType::on }, x.getBidiType()); + } + + static bool isIsolateInitiator (BidiType x) + { + return contains ({ BidiType::lri, BidiType::rli, BidiType::fsi }, x); + } + + static bool isIsolateTerminator (BidiType x) + { + return contains ({ BidiType::pdi }, x); + } + + static bool isIsolate (BidiType x) + { + return isIsolateInitiator (x) || isIsolateTerminator (x); + } + + static int resolveParagraphEmbeddingLevel (const Span buffer, Range range = {}) + { + range = range.isEmpty() ? Range { 0, (int) buffer.size() } : range; + + auto seek = [buffer] (BidiType type, Range seekRange) -> int + { + for (int i = seekRange.getStart(); i < seekRange.getEnd(); i++) + { + if (buffer[(size_t) i].data.bidi == type) + return i; + } + + return seekRange.getEnd(); + }; for (int i = range.getStart(); i < range.getEnd(); i++) { - const auto& curr = buffer[(size_t) i]; + const auto& atom = buffer[(size_t) i]; - if (curr == BidiType::on) + if (isStrong (atom)) + return atom == BidiType::ltr ? EmbeddingLevel::left : EmbeddingLevel::right; + + if (isIsolateInitiator (atom.getBidiType())) { - const auto type = getBracketType (curr.getCharacter()); + // skip to past matching PDI or EOS + const auto end = seek (BidiType::pdi, { i, range.getEnd() }); + i = end != range.getEnd() ? end + 1 : range.getEnd(); + } + } - if (type == BracketType::open) - { - if (stack.full()) - return brackets; + return EmbeddingLevel::left; + } - stack.push ({ i, curr.getCharacter(), BracketType::open }); - } - else if (type == BracketType::close) + static void resolveNeutralTypes (Span buffer, int embeddingLevel, Range range) + { + range = range.isEmpty() ? Range { 0, (int) buffer.size() } : range; + + // BD13: + const auto bracketRanges = [buffer, range] + { + struct Bracket + { + int position; + uint32_t character; + Brackets::Kind type; + }; + + // https://www.unicode.org/reports/tr9/#BD16 + constexpr auto maxStackSize = 63; + std::vector stack; + stack.reserve (maxStackSize); + std::vector> brackets; + + for (int i = range.getStart(); i < range.getEnd(); i++) + { + const auto& curr = buffer[(size_t) i]; + + if (curr == BidiType::on) { - while (! stack.empty()) + const auto type = Brackets::getKind (curr.character); + + if (type == Brackets::Kind::open) { - const auto head = stack.pop(); + if (stack.size() == stack.capacity()) + return brackets; - if (head.type == BracketType::open) + stack.push_back ({ i, curr.character, Brackets::Kind::open }); + } + else if (type == Brackets::Kind::close) + { + while (! stack.empty()) { - if (isMatchingBracketPair (head.character, curr.getCharacter())) + const auto head = stack.back(); + stack.pop_back(); + + if (head.type == Brackets::Kind::open) { - brackets.push_back ({ head.position, i }); - break; + if (Brackets::isMatchingPair (head.character, curr.character)) + { + brackets.push_back ({ head.position, i }); + break; + } } } } } } - } - return brackets; - }(); + return brackets; + }(); - // N0: - for (auto bracketRange : bracketRanges) - { - const auto dir = getEmbeddingDirection (embeddingLevel); - const auto span = Span { buffer.data() + bracketRange.getStart(), (size_t) bracketRange.getLength() }; - const auto strong = std::find_if (span.begin(), span.end(), [] (const Atom& atom) - { - return atom.isStrong(); - }); - - // TODO: refactor this - if (strong != span.end()) + // N0: + for (auto bracketRange : bracketRanges) { - if (strong->getType() == dir) + const auto dir = getEmbeddingDirection (embeddingLevel); + const Span span { buffer.data() + bracketRange.getStart(), (size_t) bracketRange.getLength() }; + const auto strong = std::find_if (span.begin(), span.end(), [] (const UnicodeAnalysisPoint& atom) { - // B: - buffer[(size_t) bracketRange.getStart()].setType (dir); - buffer[(size_t) bracketRange.getEnd()].setType (dir); - } - else - { - // C: - const auto strongContext = [&buf = std::as_const (buffer), - start = bracketRange.getStart(), - dir] - { - for (int i = start; i >= 0; i--) - { - if (buf[(size_t) i].isStrong()) - return buf[(size_t) i].getType(); - } - - return dir; - }(); - - buffer[(size_t) bracketRange.getStart()].setType (strongContext); - buffer[(size_t) bracketRange.getEnd()].setType (strongContext); - } - } - } - - // N1: - for (int i = range.getStart(); i < range.getEnd(); i++) - { - const auto curr = buffer[(size_t) i]; - const auto prev = i > 0 ? buffer[(size_t) i - 1] : Atom::none(); // SOS type? - - if (curr.isNeutral() || curr.isIsolate()) - { - const auto endIndex = [buffer, start = i, end = range.getEnd()] - { - for (int j = start; j < end; j++) - { - const auto atom = buffer[(size_t) j]; - - if (! (atom.isNeutral() || atom.isIsolate())) - return j; - } - - return end - 1; - }(); - - auto isNumber = [] (BidiType type) { return any (type, BidiType::an, BidiType::en); }; - const auto start = isNumber (prev) ? BidiType::rtl : prev.getType(); - const auto end = isNumber (buffer[(size_t) endIndex]) ? BidiType::rtl : buffer[(size_t) endIndex].getType(); - - const auto type = start == end ? start : getEmbeddingDirection (embeddingLevel); - std::for_each (buffer.begin() + i, buffer.begin() + endIndex, [type] (Atom& atom) - { - atom.setType (type); + return isStrong (atom); }); - i = endIndex; - } - } -} - -static inline void resolveWeakTypes (Span buffer, Range range) -{ - range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range; - - for (int i = range.getStart(); i < range.getEnd(); i++) - { - auto& curr = buffer[(size_t) i]; - const auto prev = i > 0 ? buffer[(size_t) i - 1] : Atom::none(); - const auto next = i < range.getEnd() - 1 ? buffer[(size_t) i + 1] : Atom::none(); - - // W1: - if (curr == BidiType::nsm) - curr.setType (prev.isIsolate() ? BidiType::on : prev.getType()); - - // W2: - else if (curr == BidiType::en) - { - for (int j = i - 1; j >= 1; j--) + if (strong != span.end()) { - if (buffer[(size_t) j] == BidiType::al) - curr.setType (BidiType::al); - - if (buffer[(size_t) j].isStrong()) - break; - } - } - - // W3: - else if (curr == BidiType::al) - curr.setType (BidiType::rtl); - - // W4: - else if (curr == BidiType::es || curr == BidiType::cs) - { - if (prev == BidiType::en && next == BidiType::en) - { - curr.setType (BidiType::en); - } - else if (curr == BidiType::cs) - { - if (prev == BidiType::an && next == BidiType::an) - curr.setType (BidiType::an); - } - } - - // W5: - else if (curr == BidiType::et) - { - //jassertfalse; - if (prev == BidiType::en || next == BidiType::en) - curr.setType (BidiType::en); - } - - // W6 - if (any (curr.getType(), BidiType::es, BidiType::cs)) - curr.setType (BidiType::on); - - // W7: - else if (curr == BidiType::en) - { - for (int j = i - 1; j >= 1; j--) - { - if (buffer[(size_t) j] == BidiType::ltr) - curr.setType (BidiType::ltr); - - if (buffer[(size_t) j].isStrong()) - break; - } - } - } -} - -static inline void resolveImplicitTypes (Span buffer, int embeddingLevel, Range range) -{ - range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range; - - // I1, I2 - // https://www.unicode.org/reports/tr9/#Resolving_Implicit_Levels - for (int i = range.getStart(); i < range.getEnd(); i++) - { - auto& curr = buffer[(size_t) i]; - - const auto level = (uint16_t) embeddingLevel; - const auto isEven = isOdd (level) == false; - - JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") - switch (curr.getType()) - { - case BidiType::ltr: curr.setLevel (isEven ? level : level + 1); break; - case BidiType::rtl: curr.setLevel (isEven ? level + 1 : level ); break; - case BidiType::an: curr.setLevel (isEven ? level + 2 : level + 1); break; - case BidiType::en: curr.setLevel (isEven ? level + 2 : level + 1); break; - - default: break; - } - JUCE_END_IGNORE_WARNINGS_GCC_LIKE - } -} - -static inline void resolveExplicitLevels (Span buffer, int embeddingLevel) -{ - constexpr auto MAX_DEPTH = 126 - 1; - - struct State - { - int embeddingLevel; - enum { Neutral, rtl, ltr } directionalOverride; - bool isolateStatus; - }; - - // X1 - struct - { - int isolate = 0; - int embedded = 0; - } overflow {}; - - FixedStack stack; - - stack.push ({ embeddingLevel, State::Neutral, false }); - - auto getHead = [&stack] { return &stack.peek(); }; - auto save = [&stack] { stack.push (stack.peek()); }; - auto restore = [&stack] { stack.pop(); }; - - auto isValid = [&] (auto value) { return (value < MAX_DEPTH) && (overflow.isolate == 0 && overflow.embedded == 0); }; - - // X2-X6a - for (size_t i = 0; i < buffer.size(); i++) - { - auto& atom = buffer[i]; - - // X2-X3: Explicit embeddings - if (atom == BidiType::rle || atom == BidiType::lre) - { - auto* state = getHead(); - state->embeddingLevel = atom == BidiType::rle ? computeLeastOdd (state->embeddingLevel) - : computeLeastEven (state->embeddingLevel); - - if (isValid (state->embeddingLevel)) - { - state->directionalOverride = State::Neutral; - state->isolateStatus = false; - save(); - } - else if (overflow.isolate == 0) - { - overflow.embedded++; - } - } - - // X4-X5: Explicit Overrides - else if (atom == BidiType::rlo || atom == BidiType::lro) - { - auto* state = getHead(); - state->embeddingLevel = atom == BidiType::rlo ? computeLeastOdd (state->embeddingLevel) - : computeLeastEven (state->embeddingLevel); - - if (isValid (state->embeddingLevel)) - { - state->directionalOverride = atom == BidiType::rlo ? State::rtl : State::ltr; - state->isolateStatus = false; - save(); - } - else if (overflow.isolate == 0) - { - overflow.embedded++; - } - } - - // X5a-X5b: Isolates - else if (atom == BidiType::rli || atom == BidiType::lri) - { - auto* state = getHead(); - state->embeddingLevel = atom == BidiType::rli ? computeLeastOdd (state->embeddingLevel) - : computeLeastEven (state->embeddingLevel); - - if (state->directionalOverride == State::ltr) - atom.setType (BidiType::ltr); - else if (state->directionalOverride == State::rtl) - atom.setType (BidiType::rtl); - - if (isValid (state->embeddingLevel)) - { - state->directionalOverride = State::Neutral; - state->isolateStatus = true; - save(); - } - else - { - overflow.isolate++; - } - } - - // X5c - else if (atom == BidiType::fsi) - { - //auto pEmbedLevel = resolveParagraphEmbeddingLevel(buffer, { i + 1, (int) buffer.size() }); - jassertfalse; - } - - // X6a: Terminating Isolates - else if (atom == BidiType::pdi) - { - if (overflow.isolate > 0) - { - overflow.isolate--; - } - else - { - overflow.embedded = 0; - - while (! getHead()->isolateStatus) - restore(); - - restore(); - } - - atom.setLevel ((uint16_t) getHead()->embeddingLevel); - } - - // X7 - else if (atom == BidiType::pdf) - { - if (overflow.isolate > 0) - { - // Maybe??? - overflow.isolate--; - } - else if (overflow.embedded > 0) - { - overflow.embedded--; - } - else if (getHead()->isolateStatus == false && stack.depth() >= 2) - { - restore(); - } - } - - // X8 - else if (atom == BidiType::b) - { - atom.setLevel ((uint16_t) getHead()->embeddingLevel); - - overflow.embedded = 0; - overflow.isolate = 0; - stack.reset(); - stack.push ({ embeddingLevel, State::Neutral, false }); - } - - // X6: Everything else - // ! (B | BN | RLE | LRE | RLO | LRO | PDF | RLI | LRI | FSI | PDI) - else - { - auto* head = getHead(); - atom.setLevel ((uint16_t) head->embeddingLevel); - } - } -} - -static inline std::vector resolveReorderedIndices (const Span buffer, int embeddingLevel, Range range = {}) -{ - range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range; - - std::vector levels; - levels.resize ((size_t) range.getLength()); - - for (int i = range.getStart(); i < range.getEnd(); i++) - levels[(size_t) i] = buffer[(size_t) i].getLevel(); - - // L1: - for (int i = range.getStart(); i < range.getEnd(); i++) - { - auto curr = buffer[(size_t) i]; - - if (any (curr, BidiType::s, BidiType::b)) - levels[(size_t) i] = embeddingLevel; - - for (int j = i - 1; j >= 0; j--) - { - curr = buffer[(size_t) j]; - - if (! curr.isIsolate()) - break; - - levels[(size_t) j] = embeddingLevel; - } - } - - // TODO: line breaks - - // L2: - std::vector reordered; - reordered.resize ((size_t) range.getLength()); - std::iota (reordered.begin(), reordered.end(), 0); - const auto high = *std::max_element (levels.begin(), levels.end()); - - for (int level = high; level > 0; level--) - { - for (int i = 0; i < range.getLength(); i++) - { - const auto indexLevel = levels[(size_t) i]; - - if (level > 0 && (indexLevel >= level)) - { - // Find the longest consecutive run of the current level and above - // 1111 = 4 - // 1001 = 1 - // 1123 = 4 - const auto start = i; - const auto end = [start, levels, level] + if (*strong == dir) { - auto e = (size_t) start + 1; + // B: + buffer[(size_t) bracketRange.getStart()].setBidiType (dir); + buffer[(size_t) bracketRange.getEnd()].setBidiType (dir); + } + else + { + // C: + const auto strongContext = [&buf = std::as_const (buffer), + start = bracketRange.getStart(), + dir] + { + for (int i = start; i >= 0; i--) + { + if (isStrong (buf[(size_t) i])) + return buf[(size_t) i].getBidiType(); + } - while (e < levels.size() && levels[e] >= level) - e++; + return dir; + }(); - return e; + buffer[(size_t) bracketRange.getStart()].setBidiType (strongContext); + buffer[(size_t) bracketRange.getEnd()].setBidiType (strongContext); + } + } + } + + // N1: + for (int i = range.getStart(); i < range.getEnd(); i++) + { + const auto curr = buffer[(size_t) i]; + const auto prevBidiType = i > 0 ? buffer[(size_t) i - 1].getBidiType() : BidiType::none; // SOS type? + + if (isNeutral (curr) || isIsolate (curr.getBidiType())) + { + const auto endIndex = [buffer, start = i, end = range.getEnd()] + { + for (int j = start; j < end; j++) + { + const auto atom = buffer[(size_t) j]; + + if (! (isNeutral (atom) || isIsolate (atom.getBidiType()))) + return j; + } + + return end - 1; }(); - std::reverse (reordered.begin() + start, reordered.begin() + (int) end); - i = (int) end; + auto isNumber = [] (BidiType type) { return contains ({ BidiType::an, BidiType::en }, type); }; + const auto start = isNumber (prevBidiType) ? BidiType::rtl : prevBidiType; + const auto end = isNumber (buffer[(size_t) endIndex].getBidiType()) ? BidiType::rtl : buffer[(size_t) endIndex].getBidiType(); + + const auto type = start == end ? start : getEmbeddingDirection (embeddingLevel); + std::for_each (buffer.begin() + i, buffer.begin() + endIndex, [type] (UnicodeAnalysisPoint& atom) + { + atom.setBidiType (type); + }); + + i = endIndex; } } } - return reordered; -} + static void resolveWeakTypes (Span buffer, Range range) + { + range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range; -struct BidiOutput -{ - int embeddedingLevel = -1; - std::vector resolvedLevels; - std::vector visualOrder; + for (int i = range.getStart(); i < range.getEnd(); i++) + { + auto& curr = buffer[(size_t) i]; + const auto prevBidiType = i > 0 ? buffer[(size_t) i - 1].getBidiType() : BidiType::none; + const auto nextBidiType = i < range.getEnd() - 1 ? buffer[(size_t) i + 1].getBidiType() : BidiType::none; + + // W1: + if (curr == BidiType::nsm) + curr.setBidiType (isIsolate (prevBidiType) ? BidiType::on : prevBidiType); + + // W2: + else if (curr == BidiType::en) + { + for (int j = i - 1; j >= 1; j--) + { + if (buffer[(size_t) j] == BidiType::al) + curr.setBidiType (BidiType::al); + + if (isStrong (buffer[(size_t) j])) + break; + } + } + + // W3: + else if (curr == BidiType::al) + curr.setBidiType (BidiType::rtl); + + // W4: + else if (curr == BidiType::es || curr == BidiType::cs) + { + if (prevBidiType == BidiType::en && nextBidiType == BidiType::en) + { + curr.setBidiType (BidiType::en); + } + else if (curr == BidiType::cs) + { + if (prevBidiType == BidiType::an && nextBidiType == BidiType::an) + curr.setBidiType (BidiType::an); + } + } + + // W5: + else if (curr == BidiType::et) + { + if (prevBidiType == BidiType::en || nextBidiType == BidiType::en) + curr.setBidiType (BidiType::en); + } + + // W6 + if (contains ({ BidiType::es, BidiType::cs }, curr.getBidiType())) + curr.setBidiType (BidiType::on); + + // W7: + else if (curr == BidiType::en) + { + for (int j = i - 1; j >= 1; j--) + { + if (buffer[(size_t) j] == BidiType::ltr) + curr.setBidiType (BidiType::ltr); + + if (isStrong (buffer[(size_t) j])) + break; + } + } + } + } + + static void resolveImplicitTypes (Span buffer, int embeddingLevel, Range range) + { + range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range; + + // I1, I2 + // https://www.unicode.org/reports/tr9/#Resolving_Implicit_Levels + for (int i = range.getStart(); i < range.getEnd(); i++) + { + auto& curr = buffer[(size_t) i]; + + const auto level = (uint16_t) embeddingLevel; + const auto isEven = isOdd (level) == false; + + JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") + switch (curr.getBidiType()) + { + case BidiType::ltr: curr.bidiLevel = (isEven ? level : level + 1); break; + case BidiType::rtl: curr.bidiLevel = (isEven ? level + 1 : level ); break; + + default: break; + } + JUCE_END_IGNORE_WARNINGS_GCC_LIKE + } + } + + static void resolveExplicitLevels (Span buffer, int embeddingLevel) + { + struct State + { + enum DirectionalOverride { Neutral, rtl, ltr }; + int embeddingLevel; + DirectionalOverride directionalOverride; + bool isolateStatus; + }; + + // X1 + struct OverflowState + { + int isolate = 0; + int embedded = 0; + }; + + // https://www.unicode.org/reports/tr9/#BD2 + static constexpr auto maxStackSize = 125; + std::vector stack; + stack.reserve (maxStackSize); + OverflowState overflow; + + [[maybe_unused]] const auto canPush = [&stack] { return stack.size() < maxStackSize; }; + const auto isValid = [&] (auto value) { return (value < maxStackSize) && (overflow.isolate == 0 && overflow.embedded == 0); }; + + stack.push_back ({ embeddingLevel, State::Neutral, false }); + + // X2-X6a + for (auto& atom : buffer) + { + // X2-X3: Explicit embeddings + if (atom == BidiType::rle || atom == BidiType::lre) + { + if (stack.empty()) + break; + + auto& head = stack.back(); + head.embeddingLevel = atom == BidiType::rle ? computeLeastOdd (head.embeddingLevel) + : computeLeastEven (head.embeddingLevel); + + if (isValid (head.embeddingLevel)) + { + head.directionalOverride = State::Neutral; + head.isolateStatus = false; + + jassert (canPush()); + + stack.push_back (stack.back()); + } + else if (overflow.isolate == 0) + { + overflow.embedded++; + } + } + + // X4-X5: Explicit Overrides + else if (atom == BidiType::rlo || atom == BidiType::lro) + { + if (stack.empty()) + break; + + auto& head = stack.back(); + head.embeddingLevel = atom == BidiType::rlo ? computeLeastOdd (head.embeddingLevel) + : computeLeastEven (head.embeddingLevel); + + if (isValid (head.embeddingLevel)) + { + head.directionalOverride = atom == BidiType::rlo ? State::rtl : State::ltr; + head.isolateStatus = false; + + jassert (canPush()); + stack.push_back (stack.back()); + } + else if (overflow.isolate == 0) + { + overflow.embedded++; + } + } + + // X5a-X5b: Isolates + else if (atom == BidiType::rli || atom == BidiType::lri) + { + if (stack.empty()) + break; + + auto& head = stack.back(); + head.embeddingLevel = atom == BidiType::rli ? computeLeastOdd (head.embeddingLevel) + : computeLeastEven (head.embeddingLevel); + + if (head.directionalOverride == State::ltr) + atom.setBidiType (BidiType::ltr); + else if (head.directionalOverride == State::rtl) + atom.setBidiType (BidiType::rtl); + + if (isValid (head.embeddingLevel)) + { + head.directionalOverride = State::Neutral; + head.isolateStatus = true; + + jassert (canPush()); + stack.push_back (stack.back()); + } + else + { + overflow.isolate++; + } + } + + // X6a: Terminating Isolates + else if (atom == BidiType::pdi) + { + if (overflow.isolate > 0) + { + overflow.isolate--; + } + else + { + overflow.embedded = 0; + + while (! stack.empty() && ! stack.back().isolateStatus) + stack.pop_back(); + + if (! stack.empty()) + stack.pop_back(); + } + + if (stack.empty()) + break; + + atom.bidiLevel = (uint16_t) stack.back().embeddingLevel; + } + + // X7 + else if (atom == BidiType::pdf) + { + if (overflow.isolate > 0) + { + overflow.isolate--; + } + else if (overflow.embedded > 0) + { + overflow.embedded--; + } + else if (stack.size() >= 2 && stack.back().isolateStatus == false) + { + stack.pop_back(); + } + } + + // X8 + else if (atom == BidiType::b) + { + if (stack.empty()) + break; + + atom.bidiLevel = (uint16_t) stack.back().embeddingLevel; + + overflow.embedded = 0; + overflow.isolate = 0; + stack.clear(); + stack.push_back ({ embeddingLevel, State::Neutral, false }); + } + + // X6: Everything else + // ! (B | BN | RLE | LRE | RLO | LRO | PDF | RLI | LRI | FSI | PDI) + else + { + if (stack.empty()) + break; + + atom.bidiLevel = (uint16_t) stack.back().embeddingLevel; + } + } + } + + static void resolveReorderedIndices (std::vector& result, + const Span buffer, + int embeddingLevel, + Range range = {}) + { + range = range.isEmpty() ? Range { 0, static_cast (buffer.size()) } : range; + + std::vector levels ((size_t) range.getLength()); + + for (int i = range.getStart(); i < range.getEnd(); i++) + levels[(size_t) i] = buffer[(size_t) i].bidiLevel; + + // L1: + for (int i = range.getStart(); i < range.getEnd(); i++) + { + auto curr = buffer[(size_t) i]; + + if (contains ({ BidiType::s, BidiType::b }, curr.getBidiType())) + levels[(size_t) i] = embeddingLevel; + + for (int j = i - 1; j >= 0; j--) + { + curr = buffer[(size_t) j]; + + if (! isIsolate (curr.getBidiType())) + break; + + levels[(size_t) j] = embeddingLevel; + } + } + + // L2: + result.resize ((size_t) range.getLength()); + std::iota (result.begin(), result.end(), 0); + const auto high = *std::max_element (levels.begin(), levels.end()); + + for (int level = high; level > 0; level--) + { + for (int i = 0; i < range.getLength(); i++) + { + const auto indexLevel = levels[(size_t) i]; + + if (level > 0 && (indexLevel >= level)) + { + // Find the longest consecutive run of the current level and above + // 1111 = 4 + // 1001 = 1 + // 1123 = 4 + const auto start = i; + const auto end = [start, levels, level] + { + auto e = (size_t) start + 1; + + while (e < levels.size() && levels[e] >= level) + e++; + + return e; + }(); + + std::reverse (result.begin() + start, result.begin() + (int) end); + i = (int) end; + } + } + } + } }; -static BidiOutput analyseBidiRun (Span buffer, std::optional rtlOverride = std::nullopt) -{ - auto stream = Span {(Atom*) buffer.data(), buffer.size()}; - - // BD1 - const auto baseLevel = rtlOverride.has_value() ? *rtlOverride ? 1 : 0 - : resolveParagraphEmbeddingLevel (stream); - - std::for_each (stream.begin(), stream.end(), [baseLevel] (Atom& atom) - { - atom.setLevel ((uint16_t) baseLevel); - }); - - resolveExplicitLevels (stream, baseLevel); - - // X9 replace override characters - const auto pred = [] (auto atom) { return any (atom.getType(), BidiType::rle, BidiType::lre, - BidiType::lro, BidiType::rlo, - BidiType::pdf); }; - std::replace_if (stream.begin(), stream.end(), pred, Atom::make (BidiType::bn)); - //buffer.erase (remove_if (stream.begin(), stream.end(), pred), stream.end()); - - // W1-W7 - resolveWeakTypes (stream, {}); - - // N0-N2 - resolveNeutralTypes (stream, baseLevel, {}); - - // I1-I2 - resolveImplicitTypes (stream, baseLevel, {}); - - BidiOutput output; - - output.embeddedingLevel = baseLevel; - - for (const auto& atom : stream) - output.resolvedLevels.push_back (atom.getLevel()); - - output.visualOrder = resolveReorderedIndices (stream, baseLevel, {}); - - return output; -} - -} // namespace juce::tr9 +} // namespace juce diff --git a/modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp b/modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp index 5ce66de3de..2f4692db03 100644 --- a/modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp +++ b/modules/juce_graphics/unicode/juce_UnicodeBrackets.cpp @@ -35,417 +35,108 @@ namespace juce { -enum class BracketType +class Brackets { - none, - open, - close -}; +public: + Brackets() = delete; -static inline BracketType getBracketType (uint32_t cp) -{ - #define OPEN(code) case code: return BracketType::open - #define CLOSE(code) case code: return BracketType::close - - switch (cp) + enum class Kind { - OPEN(0x0028); - CLOSE(0x0029); - OPEN(0x005B); - CLOSE(0x005D); - OPEN(0x007B); - CLOSE(0x007D); - OPEN(0x0F3A); - CLOSE(0x0F3B); - OPEN(0x0F3C); - CLOSE(0x0F3D); - OPEN(0x169B); - CLOSE(0x169C); - OPEN(0x2045); - CLOSE(0x2046); - OPEN(0x207D); - CLOSE(0x207E); - OPEN(0x208D); - CLOSE(0x208E); - OPEN(0x2308); - CLOSE(0x2309); - OPEN(0x230A); - CLOSE(0x230B); - OPEN(0x2329); - CLOSE(0x232A); - OPEN(0x2768); - CLOSE(0x2769); - OPEN(0x276A); - CLOSE(0x276B); - OPEN(0x276C); - CLOSE(0x276D); - OPEN(0x276E); - CLOSE(0x276F); - OPEN(0x2770); - CLOSE(0x2771); - OPEN(0x2772); - CLOSE(0x2773); - OPEN(0x2774); - CLOSE(0x2775); - OPEN(0x27C5); - CLOSE(0x27C6); - OPEN(0x27E6); - CLOSE(0x27E7); - OPEN(0x27E8); - CLOSE(0x27E9); - OPEN(0x27EA); - CLOSE(0x27EB); - OPEN(0x27EC); - CLOSE(0x27ED); - OPEN(0x27EE); - CLOSE(0x27EF); - OPEN(0x2983); - CLOSE(0x2984); - OPEN(0x2985); - CLOSE(0x2986); - OPEN(0x2987); - CLOSE(0x2988); - OPEN(0x2989); - CLOSE(0x298A); - OPEN(0x298B); - CLOSE(0x298C); - OPEN(0x298D); - CLOSE(0x298E); - OPEN(0x298F); - CLOSE(0x2990); - OPEN(0x2991); - CLOSE(0x2992); - OPEN(0x2993); - CLOSE(0x2994); - OPEN(0x2995); - CLOSE(0x2996); - OPEN(0x2997); - CLOSE(0x2998); - OPEN(0x29D8); - CLOSE(0x29D9); - OPEN(0x29DA); - CLOSE(0x29DB); - OPEN(0x29FC); - CLOSE(0x29FD); - OPEN(0x2E22); - CLOSE(0x2E23); - OPEN(0x2E24); - CLOSE(0x2E25); - OPEN(0x2E26); - CLOSE(0x2E27); - OPEN(0x2E28); - CLOSE(0x2E29); - OPEN(0x2E55); - CLOSE(0x2E56); - OPEN(0x2E57); - CLOSE(0x2E58); - OPEN(0x2E59); - CLOSE(0x2E5A); - OPEN(0x2E5B); - CLOSE(0x2E5C); - OPEN(0x3008); - CLOSE(0x3009); - OPEN(0x300A); - CLOSE(0x300B); - OPEN(0x300C); - CLOSE(0x300D); - OPEN(0x300E); - CLOSE(0x300F); - OPEN(0x3010); - CLOSE(0x3011); - OPEN(0x3014); - CLOSE(0x3015); - OPEN(0x3016); - CLOSE(0x3017); - OPEN(0x3018); - CLOSE(0x3019); - OPEN(0x301A); - CLOSE(0x301B); - OPEN(0xFE59); - CLOSE(0xFE5A); - OPEN(0xFE5B); - CLOSE(0xFE5C); - OPEN(0xFE5D); - CLOSE(0xFE5E); - OPEN(0xFF08); - CLOSE(0xFF09); - OPEN(0xFF3B); - CLOSE(0xFF3D); - OPEN(0xFF5B); - CLOSE(0xFF5D); - OPEN(0xFF5F); - CLOSE(0xFF60); - OPEN(0xFF62); - CLOSE(0xFF63); + none, + open, + close + }; + + static Kind getKind (uint32_t cp) + { + for (const auto& pair : pairs) + { + if (cp == pair.first) + return Kind::open; + + if (cp == pair.second) + return Kind::close; + } + + return Kind::none; } - #undef OPEN - #undef CLOSE + static bool isMatchingPair (uint32_t b1, uint32_t b2) + { + return std::any_of (std::begin (pairs), std::end (pairs), [=] (const auto& pair) + { + return pair == std::pair { b1, b2 } || pair == std::pair { b2, b1 }; + }); + } - return BracketType::none; -} - -static inline auto isMatchingBracketPair (uint32_t b1, uint32_t b2) -{ - // TODO: remove duplicates - if (b1 == 0x0028 && b2 == 0x0029) return true; - if (b1 == 0x0029 && b2 == 0x0028) return true; - if (b1 == 0x0029 && b2 == 0x0028) return true; - if (b1 == 0x0028 && b2 == 0x0029) return true; - if (b1 == 0x005B && b2 == 0x005D) return true; - if (b1 == 0x005D && b2 == 0x005B) return true; - if (b1 == 0x005D && b2 == 0x005B) return true; - if (b1 == 0x005B && b2 == 0x005D) return true; - if (b1 == 0x007B && b2 == 0x007D) return true; - if (b1 == 0x007D && b2 == 0x007B) return true; - if (b1 == 0x007D && b2 == 0x007B) return true; - if (b1 == 0x007B && b2 == 0x007D) return true; - if (b1 == 0x0F3A && b2 == 0x0F3B) return true; - if (b1 == 0x0F3B && b2 == 0x0F3A) return true; - if (b1 == 0x0F3B && b2 == 0x0F3A) return true; - if (b1 == 0x0F3A && b2 == 0x0F3B) return true; - if (b1 == 0x0F3C && b2 == 0x0F3D) return true; - if (b1 == 0x0F3D && b2 == 0x0F3C) return true; - if (b1 == 0x0F3D && b2 == 0x0F3C) return true; - if (b1 == 0x0F3C && b2 == 0x0F3D) return true; - if (b1 == 0x169B && b2 == 0x169C) return true; - if (b1 == 0x169C && b2 == 0x169B) return true; - if (b1 == 0x169C && b2 == 0x169B) return true; - if (b1 == 0x169B && b2 == 0x169C) return true; - if (b1 == 0x2045 && b2 == 0x2046) return true; - if (b1 == 0x2046 && b2 == 0x2045) return true; - if (b1 == 0x2046 && b2 == 0x2045) return true; - if (b1 == 0x2045 && b2 == 0x2046) return true; - if (b1 == 0x207D && b2 == 0x207E) return true; - if (b1 == 0x207E && b2 == 0x207D) return true; - if (b1 == 0x207E && b2 == 0x207D) return true; - if (b1 == 0x207D && b2 == 0x207E) return true; - if (b1 == 0x208D && b2 == 0x208E) return true; - if (b1 == 0x208E && b2 == 0x208D) return true; - if (b1 == 0x208E && b2 == 0x208D) return true; - if (b1 == 0x208D && b2 == 0x208E) return true; - if (b1 == 0x2308 && b2 == 0x2309) return true; - if (b1 == 0x2309 && b2 == 0x2308) return true; - if (b1 == 0x2309 && b2 == 0x2308) return true; - if (b1 == 0x2308 && b2 == 0x2309) return true; - if (b1 == 0x230A && b2 == 0x230B) return true; - if (b1 == 0x230B && b2 == 0x230A) return true; - if (b1 == 0x230B && b2 == 0x230A) return true; - if (b1 == 0x230A && b2 == 0x230B) return true; - if (b1 == 0x2329 && b2 == 0x232A) return true; - if (b1 == 0x232A && b2 == 0x2329) return true; - if (b1 == 0x232A && b2 == 0x2329) return true; - if (b1 == 0x2329 && b2 == 0x232A) return true; - if (b1 == 0x2768 && b2 == 0x2769) return true; - if (b1 == 0x2769 && b2 == 0x2768) return true; - if (b1 == 0x2769 && b2 == 0x2768) return true; - if (b1 == 0x2768 && b2 == 0x2769) return true; - if (b1 == 0x276A && b2 == 0x276B) return true; - if (b1 == 0x276B && b2 == 0x276A) return true; - if (b1 == 0x276B && b2 == 0x276A) return true; - if (b1 == 0x276A && b2 == 0x276B) return true; - if (b1 == 0x276C && b2 == 0x276D) return true; - if (b1 == 0x276D && b2 == 0x276C) return true; - if (b1 == 0x276D && b2 == 0x276C) return true; - if (b1 == 0x276C && b2 == 0x276D) return true; - if (b1 == 0x276E && b2 == 0x276F) return true; - if (b1 == 0x276F && b2 == 0x276E) return true; - if (b1 == 0x276F && b2 == 0x276E) return true; - if (b1 == 0x276E && b2 == 0x276F) return true; - if (b1 == 0x2770 && b2 == 0x2771) return true; - if (b1 == 0x2771 && b2 == 0x2770) return true; - if (b1 == 0x2771 && b2 == 0x2770) return true; - if (b1 == 0x2770 && b2 == 0x2771) return true; - if (b1 == 0x2772 && b2 == 0x2773) return true; - if (b1 == 0x2773 && b2 == 0x2772) return true; - if (b1 == 0x2773 && b2 == 0x2772) return true; - if (b1 == 0x2772 && b2 == 0x2773) return true; - if (b1 == 0x2774 && b2 == 0x2775) return true; - if (b1 == 0x2775 && b2 == 0x2774) return true; - if (b1 == 0x2775 && b2 == 0x2774) return true; - if (b1 == 0x2774 && b2 == 0x2775) return true; - if (b1 == 0x27C5 && b2 == 0x27C6) return true; - if (b1 == 0x27C6 && b2 == 0x27C5) return true; - if (b1 == 0x27C6 && b2 == 0x27C5) return true; - if (b1 == 0x27C5 && b2 == 0x27C6) return true; - if (b1 == 0x27E6 && b2 == 0x27E7) return true; - if (b1 == 0x27E7 && b2 == 0x27E6) return true; - if (b1 == 0x27E7 && b2 == 0x27E6) return true; - if (b1 == 0x27E6 && b2 == 0x27E7) return true; - if (b1 == 0x27E8 && b2 == 0x27E9) return true; - if (b1 == 0x27E9 && b2 == 0x27E8) return true; - if (b1 == 0x27E9 && b2 == 0x27E8) return true; - if (b1 == 0x27E8 && b2 == 0x27E9) return true; - if (b1 == 0x27EA && b2 == 0x27EB) return true; - if (b1 == 0x27EB && b2 == 0x27EA) return true; - if (b1 == 0x27EB && b2 == 0x27EA) return true; - if (b1 == 0x27EA && b2 == 0x27EB) return true; - if (b1 == 0x27EC && b2 == 0x27ED) return true; - if (b1 == 0x27ED && b2 == 0x27EC) return true; - if (b1 == 0x27ED && b2 == 0x27EC) return true; - if (b1 == 0x27EC && b2 == 0x27ED) return true; - if (b1 == 0x27EE && b2 == 0x27EF) return true; - if (b1 == 0x27EF && b2 == 0x27EE) return true; - if (b1 == 0x27EF && b2 == 0x27EE) return true; - if (b1 == 0x27EE && b2 == 0x27EF) return true; - if (b1 == 0x2983 && b2 == 0x2984) return true; - if (b1 == 0x2984 && b2 == 0x2983) return true; - if (b1 == 0x2984 && b2 == 0x2983) return true; - if (b1 == 0x2983 && b2 == 0x2984) return true; - if (b1 == 0x2985 && b2 == 0x2986) return true; - if (b1 == 0x2986 && b2 == 0x2985) return true; - if (b1 == 0x2986 && b2 == 0x2985) return true; - if (b1 == 0x2985 && b2 == 0x2986) return true; - if (b1 == 0x2987 && b2 == 0x2988) return true; - if (b1 == 0x2988 && b2 == 0x2987) return true; - if (b1 == 0x2988 && b2 == 0x2987) return true; - if (b1 == 0x2987 && b2 == 0x2988) return true; - if (b1 == 0x2989 && b2 == 0x298A) return true; - if (b1 == 0x298A && b2 == 0x2989) return true; - if (b1 == 0x298A && b2 == 0x2989) return true; - if (b1 == 0x2989 && b2 == 0x298A) return true; - if (b1 == 0x298B && b2 == 0x298C) return true; - if (b1 == 0x298C && b2 == 0x298B) return true; - if (b1 == 0x298C && b2 == 0x298B) return true; - if (b1 == 0x298B && b2 == 0x298C) return true; - if (b1 == 0x298D && b2 == 0x2990) return true; - if (b1 == 0x2990 && b2 == 0x298D) return true; - if (b1 == 0x298E && b2 == 0x298F) return true; - if (b1 == 0x298F && b2 == 0x298E) return true; - if (b1 == 0x298F && b2 == 0x298E) return true; - if (b1 == 0x298E && b2 == 0x298F) return true; - if (b1 == 0x2990 && b2 == 0x298D) return true; - if (b1 == 0x298D && b2 == 0x2990) return true; - if (b1 == 0x2991 && b2 == 0x2992) return true; - if (b1 == 0x2992 && b2 == 0x2991) return true; - if (b1 == 0x2992 && b2 == 0x2991) return true; - if (b1 == 0x2991 && b2 == 0x2992) return true; - if (b1 == 0x2993 && b2 == 0x2994) return true; - if (b1 == 0x2994 && b2 == 0x2993) return true; - if (b1 == 0x2994 && b2 == 0x2993) return true; - if (b1 == 0x2993 && b2 == 0x2994) return true; - if (b1 == 0x2995 && b2 == 0x2996) return true; - if (b1 == 0x2996 && b2 == 0x2995) return true; - if (b1 == 0x2996 && b2 == 0x2995) return true; - if (b1 == 0x2995 && b2 == 0x2996) return true; - if (b1 == 0x2997 && b2 == 0x2998) return true; - if (b1 == 0x2998 && b2 == 0x2997) return true; - if (b1 == 0x2998 && b2 == 0x2997) return true; - if (b1 == 0x2997 && b2 == 0x2998) return true; - if (b1 == 0x29D8 && b2 == 0x29D9) return true; - if (b1 == 0x29D9 && b2 == 0x29D8) return true; - if (b1 == 0x29D9 && b2 == 0x29D8) return true; - if (b1 == 0x29D8 && b2 == 0x29D9) return true; - if (b1 == 0x29DA && b2 == 0x29DB) return true; - if (b1 == 0x29DB && b2 == 0x29DA) return true; - if (b1 == 0x29DB && b2 == 0x29DA) return true; - if (b1 == 0x29DA && b2 == 0x29DB) return true; - if (b1 == 0x29FC && b2 == 0x29FD) return true; - if (b1 == 0x29FD && b2 == 0x29FC) return true; - if (b1 == 0x29FD && b2 == 0x29FC) return true; - if (b1 == 0x29FC && b2 == 0x29FD) return true; - if (b1 == 0x2E22 && b2 == 0x2E23) return true; - if (b1 == 0x2E23 && b2 == 0x2E22) return true; - if (b1 == 0x2E23 && b2 == 0x2E22) return true; - if (b1 == 0x2E22 && b2 == 0x2E23) return true; - if (b1 == 0x2E24 && b2 == 0x2E25) return true; - if (b1 == 0x2E25 && b2 == 0x2E24) return true; - if (b1 == 0x2E25 && b2 == 0x2E24) return true; - if (b1 == 0x2E24 && b2 == 0x2E25) return true; - if (b1 == 0x2E26 && b2 == 0x2E27) return true; - if (b1 == 0x2E27 && b2 == 0x2E26) return true; - if (b1 == 0x2E27 && b2 == 0x2E26) return true; - if (b1 == 0x2E26 && b2 == 0x2E27) return true; - if (b1 == 0x2E28 && b2 == 0x2E29) return true; - if (b1 == 0x2E29 && b2 == 0x2E28) return true; - if (b1 == 0x2E29 && b2 == 0x2E28) return true; - if (b1 == 0x2E28 && b2 == 0x2E29) return true; - if (b1 == 0x2E55 && b2 == 0x2E56) return true; - if (b1 == 0x2E56 && b2 == 0x2E55) return true; - if (b1 == 0x2E56 && b2 == 0x2E55) return true; - if (b1 == 0x2E55 && b2 == 0x2E56) return true; - if (b1 == 0x2E57 && b2 == 0x2E58) return true; - if (b1 == 0x2E58 && b2 == 0x2E57) return true; - if (b1 == 0x2E58 && b2 == 0x2E57) return true; - if (b1 == 0x2E57 && b2 == 0x2E58) return true; - if (b1 == 0x2E59 && b2 == 0x2E5A) return true; - if (b1 == 0x2E5A && b2 == 0x2E59) return true; - if (b1 == 0x2E5A && b2 == 0x2E59) return true; - if (b1 == 0x2E59 && b2 == 0x2E5A) return true; - if (b1 == 0x2E5B && b2 == 0x2E5C) return true; - if (b1 == 0x2E5C && b2 == 0x2E5B) return true; - if (b1 == 0x2E5C && b2 == 0x2E5B) return true; - if (b1 == 0x2E5B && b2 == 0x2E5C) return true; - if (b1 == 0x3008 && b2 == 0x3009) return true; - if (b1 == 0x3009 && b2 == 0x3008) return true; - if (b1 == 0x3009 && b2 == 0x3008) return true; - if (b1 == 0x3008 && b2 == 0x3009) return true; - if (b1 == 0x300A && b2 == 0x300B) return true; - if (b1 == 0x300B && b2 == 0x300A) return true; - if (b1 == 0x300B && b2 == 0x300A) return true; - if (b1 == 0x300A && b2 == 0x300B) return true; - if (b1 == 0x300C && b2 == 0x300D) return true; - if (b1 == 0x300D && b2 == 0x300C) return true; - if (b1 == 0x300D && b2 == 0x300C) return true; - if (b1 == 0x300C && b2 == 0x300D) return true; - if (b1 == 0x300E && b2 == 0x300F) return true; - if (b1 == 0x300F && b2 == 0x300E) return true; - if (b1 == 0x300F && b2 == 0x300E) return true; - if (b1 == 0x300E && b2 == 0x300F) return true; - if (b1 == 0x3010 && b2 == 0x3011) return true; - if (b1 == 0x3011 && b2 == 0x3010) return true; - if (b1 == 0x3011 && b2 == 0x3010) return true; - if (b1 == 0x3010 && b2 == 0x3011) return true; - if (b1 == 0x3014 && b2 == 0x3015) return true; - if (b1 == 0x3015 && b2 == 0x3014) return true; - if (b1 == 0x3015 && b2 == 0x3014) return true; - if (b1 == 0x3014 && b2 == 0x3015) return true; - if (b1 == 0x3016 && b2 == 0x3017) return true; - if (b1 == 0x3017 && b2 == 0x3016) return true; - if (b1 == 0x3017 && b2 == 0x3016) return true; - if (b1 == 0x3016 && b2 == 0x3017) return true; - if (b1 == 0x3018 && b2 == 0x3019) return true; - if (b1 == 0x3019 && b2 == 0x3018) return true; - if (b1 == 0x3019 && b2 == 0x3018) return true; - if (b1 == 0x3018 && b2 == 0x3019) return true; - if (b1 == 0x301A && b2 == 0x301B) return true; - if (b1 == 0x301B && b2 == 0x301A) return true; - if (b1 == 0x301B && b2 == 0x301A) return true; - if (b1 == 0x301A && b2 == 0x301B) return true; - if (b1 == 0xFE59 && b2 == 0xFE5A) return true; - if (b1 == 0xFE5A && b2 == 0xFE59) return true; - if (b1 == 0xFE5A && b2 == 0xFE59) return true; - if (b1 == 0xFE59 && b2 == 0xFE5A) return true; - if (b1 == 0xFE5B && b2 == 0xFE5C) return true; - if (b1 == 0xFE5C && b2 == 0xFE5B) return true; - if (b1 == 0xFE5C && b2 == 0xFE5B) return true; - if (b1 == 0xFE5B && b2 == 0xFE5C) return true; - if (b1 == 0xFE5D && b2 == 0xFE5E) return true; - if (b1 == 0xFE5E && b2 == 0xFE5D) return true; - if (b1 == 0xFE5E && b2 == 0xFE5D) return true; - if (b1 == 0xFE5D && b2 == 0xFE5E) return true; - if (b1 == 0xFF08 && b2 == 0xFF09) return true; - if (b1 == 0xFF09 && b2 == 0xFF08) return true; - if (b1 == 0xFF09 && b2 == 0xFF08) return true; - if (b1 == 0xFF08 && b2 == 0xFF09) return true; - if (b1 == 0xFF3B && b2 == 0xFF3D) return true; - if (b1 == 0xFF3D && b2 == 0xFF3B) return true; - if (b1 == 0xFF3D && b2 == 0xFF3B) return true; - if (b1 == 0xFF3B && b2 == 0xFF3D) return true; - if (b1 == 0xFF5B && b2 == 0xFF5D) return true; - if (b1 == 0xFF5D && b2 == 0xFF5B) return true; - if (b1 == 0xFF5D && b2 == 0xFF5B) return true; - if (b1 == 0xFF5B && b2 == 0xFF5D) return true; - if (b1 == 0xFF5F && b2 == 0xFF60) return true; - if (b1 == 0xFF60 && b2 == 0xFF5F) return true; - if (b1 == 0xFF60 && b2 == 0xFF5F) return true; - if (b1 == 0xFF5F && b2 == 0xFF60) return true; - if (b1 == 0xFF62 && b2 == 0xFF63) return true; - if (b1 == 0xFF63 && b2 == 0xFF62) return true; - if (b1 == 0xFF63 && b2 == 0xFF62) return true; - if (b1 == 0xFF62 && b2 == 0xFF63) return true; - - return false; -} +private: + // https://www.unicode.org/Public/14.0.0/ucd/BidiBrackets.txt + static constexpr std::pair pairs[] { + { 0x0028, 0x0029 }, + { 0x005B, 0x005D }, + { 0x007B, 0x007D }, + { 0x0F3A, 0x0F3B }, + { 0x0F3C, 0x0F3D }, + { 0x169B, 0x169C }, + { 0x2045, 0x2046 }, + { 0x207D, 0x207E }, + { 0x208D, 0x208E }, + { 0x2308, 0x2309 }, + { 0x230A, 0x230B }, + { 0x2329, 0x232A }, + { 0x2768, 0x2769 }, + { 0x276A, 0x276B }, + { 0x276C, 0x276D }, + { 0x276E, 0x276F }, + { 0x2770, 0x2771 }, + { 0x2772, 0x2773 }, + { 0x2774, 0x2775 }, + { 0x27C5, 0x27C6 }, + { 0x27E6, 0x27E7 }, + { 0x27E8, 0x27E9 }, + { 0x27EA, 0x27EB }, + { 0x27EC, 0x27ED }, + { 0x27EE, 0x27EF }, + { 0x2983, 0x2984 }, + { 0x2985, 0x2986 }, + { 0x2987, 0x2988 }, + { 0x2989, 0x298A }, + { 0x298B, 0x298C }, + { 0x298D, 0x298E }, + { 0x298F, 0x2990 }, + { 0x2991, 0x2992 }, + { 0x2993, 0x2994 }, + { 0x2995, 0x2996 }, + { 0x2997, 0x2998 }, + { 0x29D8, 0x29D9 }, + { 0x29DA, 0x29DB }, + { 0x29FC, 0x29FD }, + { 0x2E22, 0x2E23 }, + { 0x2E24, 0x2E25 }, + { 0x2E26, 0x2E27 }, + { 0x2E28, 0x2E29 }, + { 0x2E55, 0x2E56 }, + { 0x2E57, 0x2E58 }, + { 0x2E59, 0x2E5A }, + { 0x2E5B, 0x2E5C }, + { 0x3008, 0x3009 }, + { 0x300A, 0x300B }, + { 0x300C, 0x300D }, + { 0x300E, 0x300F }, + { 0x3010, 0x3011 }, + { 0x3014, 0x3015 }, + { 0x3016, 0x3017 }, + { 0x3018, 0x3019 }, + { 0x301A, 0x301B }, + { 0xFE59, 0xFE5A }, + { 0xFE5B, 0xFE5C }, + { 0xFE5D, 0xFE5E }, + { 0xFF08, 0xFF09 }, + { 0xFF3B, 0xFF3D }, + { 0xFF5B, 0xFF5D }, + { 0xFF5F, 0xFF60 }, + { 0xFF62, 0xFF63 } + }; +}; } // namespace juce diff --git a/modules/juce_graphics/unicode/juce_UnicodeData.cpp b/modules/juce_graphics/unicode/juce_UnicodeData.cpp deleted file mode 100644 index b4d35839d2..0000000000 --- a/modules/juce_graphics/unicode/juce_UnicodeData.cpp +++ /dev/null @@ -1,782 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE framework. - Copyright (c) Raw Material Software Limited - - JUCE is an open source framework subject to commercial or open source - licensing. - - By downloading, installing, or using the JUCE framework, or combining the - JUCE framework with any other source code, object code, content or any other - copyrightable work, you agree to the terms of the JUCE End User Licence - Agreement, and all incorporated terms including the JUCE Privacy Policy and - the JUCE Website Terms of Service, as applicable, which will bind you. If you - do not agree to the terms of these agreements, we will not license the JUCE - framework to you, and you must discontinue the installation or download - process and cease use of the JUCE framework. - - JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ - JUCE Privacy Policy: https://juce.com/juce-privacy-policy - JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ - - Or: - - You may also use this code under the terms of the AGPLv3: - https://www.gnu.org/licenses/agpl-3.0.en.html - - THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL - WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. - - ============================================================================== -*/ - -struct UnicodeEntry -{ - LineBreakType bt; - EastAsianWidthType asian; - BidiType bidi; - UnicodeTextScript script; - VerticalTransformType vertical; - EmojiType emoji; -}; - -static_assert (alignof (UnicodeEntry) == 1); -static_assert (sizeof (UnicodeEntry) == 6); - -static const int uncompressedUnicodeDataSize = 6684666; -static const uint8_t compressedUnicodeData[] = -{ - 0x78,0x9c,0xec,0xdd,0x09,0x9b,0x23,0xdb,0x79,0x10,0xe0,0x23,0x75,0xab,0xaf,0xc6,0x33,0xd5,0xf6,0xf8,0x66,0x12,0xc7,0xd7, - 0x63,0x4f,0xcf,0xcc,0x8d,0x93,0x21,0x09,0x4b,0x02,0x0e,0xc1,0x06,0x12,0xc2,0xbe,0xef,0xe0,0x6b,0x13,0x42,0x20,0x10,0x12, - 0x1c,0x02,0x18,0x12,0xc2,0x12,0x42,0x48,0xec,0x10,0xb6,0xb0,0xef,0xfc,0x54,0x4a,0x55,0x2d,0xf5,0x51,0x95,0xaa,0x54,0x9b, - 0xa4,0x23,0xf5,0xfb,0x3c,0x57,0xef,0xad,0xe7,0xd4,0xa9,0xaf,0xbe,0xfa,0xce,0xa9,0x52,0x95,0xd4,0xdd,0x33,0x0f,0x4f,0x42, - 0xb8,0x99,0xf7,0x34,0x0b,0x4f,0x73,0x17,0xe1,0x63,0xb9,0xb3,0x62,0x79,0x16,0x9e,0xe5,0x5e,0x15,0x2d,0x7d,0xa3,0x75,0xf3, - 0x63,0x35,0x57,0xfb,0x7d,0x6f,0xb6,0xda,0xef,0x8b,0x59,0x96,0xfb,0x61,0x61,0x98,0xdd,0x84,0x70,0xfd,0x76,0xe5,0xcd,0x9b, - 0xc2,0x10,0xad,0x7d,0x5d,0xf8,0xc9,0xfb,0x9e,0x59,0xd1,0x73,0x91,0x2f,0x7f,0x30,0x7b,0x2f,0xf7,0xdb,0xa3,0xe5,0xef,0x2a, - 0xbc,0x9b,0x5d,0xe5,0x7d,0x86,0x59,0xc6,0xf9,0xe0,0x61,0x5f,0x5b,0xbe,0xd8,0x6a,0xc9,0xcb,0x97,0xa8,0x65,0xc5,0xde,0x56, - 0xeb,0x56,0xf1,0xf4,0x79,0xb6,0xe7,0x9f,0x15,0x3e,0x8f,0x72,0xee,0x32,0xeb,0x6e,0x0e,0x38,0x9f,0xa7,0xf1,0x3a,0xac,0xe6, - 0xd8,0xeb,0x79,0xb6,0x99,0xed,0xe5,0xcc,0x7f,0x3b,0x7f,0x58,0x2e,0x8f,0xf7,0x69,0xde,0x67,0x56,0x98,0xb7,0x84,0x7c,0x79, - 0xf1,0x74,0xbe,0xaa,0xcf,0x87,0xe1,0xa1,0x26,0xd9,0x7c,0x15,0x33,0xac,0x7a,0x2e,0xca,0x96,0x37,0xf3,0x75,0xb4,0xd5,0xb6, - 0x57,0x45,0x9c,0x95,0xb7,0xf7,0x71,0xc2,0x7d,0xe4,0xaa,0x65,0xcf,0x87,0xf8,0x0f,0x7b,0x5f,0xfb,0x7a,0x1d,0xe1,0xd9,0x5e, - 0xe7,0x1d,0xfa,0x8c,0xde,0xb6,0xcc,0xaa,0x53,0xff,0x79,0x83,0x5d,0x72,0x68,0xda,0xaa,0x29,0x4e,0x97,0x3e,0xf5,0xfc,0x9b, - 0xe2,0x37,0xd5,0x64,0x4c,0x85,0xfb,0x8e,0x42,0xdf,0x7d,0x8d,0xcf,0xad,0x7d,0x8c,0x86,0x8d,0xf8,0xf8,0x6c,0xdb,0x67,0x51, - 0x7b,0xb6,0x7d,0xb7,0xea,0x52,0x87,0x43,0x8f,0xfe,0x98,0xfa,0x93,0x7d,0xe7,0xdb,0xe1,0x96,0xc9,0xf3,0xf2,0x98,0xef,0xef, - 0x64,0x58,0x3f,0x65,0x14,0x2d,0x9d,0x8d,0xb6,0x9a,0x67,0x95,0x96,0xf2,0xc9,0xe2,0x36,0xd4,0x9f,0x35,0xaa,0xed,0xdb,0x5b, - 0x35,0xc4,0x6f,0x70,0xd7,0xb3,0x4c,0x75,0x6d,0xb9,0x7c,0xdb,0xe9,0xf9,0x65,0xcf,0x1e,0x7f,0x7a,0xf6,0x60,0xad,0x62,0xfb, - 0xb3,0x1d,0xef,0x7c,0xbe,0x9c,0xf1,0x12,0xbd,0x3e,0x40,0xb4,0x2e,0x4e,0x7b,0x14,0xf9,0x99,0x70,0xbb,0xdb,0xfb,0x39,0x5c, - 0x69,0x7f,0x57,0x9c,0x3b,0xef,0xd6,0x57,0x95,0x9d,0xdb,0x7e,0xb0,0x3e,0xcb,0x2a,0xfd,0xb7,0xb7,0xcd,0xa2,0xbd,0x84,0xda, - 0x72,0x75,0x8f,0xf5,0xe5,0x2d,0xe7,0xc7,0xf0,0x7e,0xef,0xdd,0xb7,0x6a,0xac,0xed,0x69,0xf2,0xef,0xbd,0xaf,0xee,0xf9,0x1f, - 0xcb,0x9f,0x39,0x80,0x1d,0xf6,0x5b,0x3d,0x0b,0x7a,0xf9,0x51,0x51,0xcf,0x8f,0x36,0xcb,0xd3,0x3a,0xe7,0x49,0x3d,0xf4,0xf8, - 0x5e,0x9c,0xf3,0xb0,0x8c,0x9d,0x45,0x56,0xd6,0xa6,0x90,0x2d,0xc9,0xc3,0xb9,0xb9,0xa3,0xfb,0xea,0xa5,0x5b,0xb9,0x73,0x3e, - 0x79,0x3e,0x29,0xfb,0x41,0x61,0x16,0xb2,0x5a,0xdd,0xb2,0xaf,0xae,0x7d,0x1b,0x6e,0x8a,0xb5,0xb3,0xe2,0xbb,0xda,0xe5,0x57, - 0xb8,0x36,0x0b,0xb3,0xcd,0x72,0x88,0x96,0x9b,0x5a,0x5e,0x44,0x2d,0x65,0x3d,0xbb,0xfb,0xa9,0x62,0xdb,0x94,0xed,0x9b,0x79, - 0x88,0xec,0x5b,0x8d,0xba,0x21,0x5c,0x5f,0xb5,0x5a,0xce,0xea,0xab,0x07,0xe7,0xb9,0x6f,0x56,0x3f,0xea,0xb3,0x71,0xd5,0xf2, - 0x41,0xf1,0x73,0x08,0x1f,0x14,0xcb,0x71,0xff,0x7c,0xd4,0x46,0xfa,0x22,0xbf,0x79,0x5d,0x2d,0xcf,0xcb,0xe5,0xd8,0xb0,0xce, - 0xe7,0xac,0x1d,0x79,0x14,0x95,0x7b,0xd4,0x61,0x0e,0x1e,0x9d,0xbb,0x62,0x9e,0x0c,0xb3,0x9c,0x3f,0x71,0x4b,0xd3,0xd1,0x9d, - 0x7c,0x8c,0x78,0x61,0xbe,0xd8,0x9e,0x63,0x1d,0x8d,0xaf,0x87,0xdd,0xfa,0xef,0xde,0x4b,0x7b,0x84,0x78,0xab,0xbb,0x70,0x35, - 0xd8,0x8e,0xd5,0xf8,0xd7,0x53,0xfb,0x6e,0x7d,0x4d,0xdb,0xb4,0xe4,0xc7,0x35,0xf9,0x5e,0x8e,0x63,0x99,0x79,0xca,0x96,0xd5, - 0xae,0xd7,0x7c,0xe3,0xc9,0xcf,0xb5,0xc4,0xfd,0x77,0x97,0x6e,0x3e,0x4f,0x46,0x5a,0xc6,0x89,0x67,0xda,0x54,0xde,0x85,0xd9, - 0xbf,0x1d,0x6a,0xb8,0x08,0xf3,0x0a,0x0f,0x70,0x3b,0x4e,0xb6,0xf1,0x83,0xc2,0x17,0xf7,0x2d,0xab,0xb5,0xf1,0xdd,0x7e,0xb9, - 0xed,0xdb,0xa2,0xfd,0xed,0x3a,0xc2,0xbf,0x39,0xb5,0x79,0x56,0x3b,0x6d,0x5f,0xdb,0x6e,0xd3,0xb6,0x5d,0x62,0x6e,0x3f,0x1f, - 0x1d,0xea,0xa8,0x37,0xf1,0x7f,0x3d,0x3d,0xf3,0x3a,0x54,0xac,0xd4,0xe4,0xd7,0x1f,0x96,0xa7,0xb9,0x5b,0x68,0xf2,0xe4,0xef, - 0x0e,0x83,0x5d,0xe7,0xff,0xf0,0x34,0xdd,0xe5,0x7a,0xd8,0xf7,0xf9,0x2b,0x85,0x23,0x3d,0x95,0x63,0x9e,0x5b,0x0f,0x61,0xf9, - 0x74,0x90,0x42,0x26,0xbd,0xfc,0x89,0xaa,0xe1,0x27,0x56,0xc7,0xc2,0xb1,0xc6,0xf5,0x2c,0x97,0xd7,0xed,0x75,0xeb,0xa3,0xd0, - 0x6e,0x7b,0x9c,0x87,0x96,0x4d,0x26,0x4d,0x9f,0xfc,0x54,0x22,0x4f,0x71,0xbc,0x2b,0xb3,0xe2,0xf3,0xf0,0xd2,0xbb,0x62,0xed, - 0x30,0x8f,0x30,0x52,0xbf,0x56,0xe4,0x5c,0x18,0x36,0x6e,0xbe,0x07,0xf9,0xb5,0x3e,0x56,0xbe,0x43,0xd9,0xdb,0x7e,0x2a,0xfb, - 0x66,0x12,0xf7,0xdf,0xf5,0xb3,0x52,0xfb,0xab,0x51,0x56,0x78,0x5d,0xed,0xba,0xcb,0x9d,0x6e,0x47,0xa8,0x8e,0x4e,0xbd,0x3d, - 0xde,0x4b,0xd3,0x4f,0x76,0x35,0x59,0x8f,0xdc,0x3e,0x9a,0xf5,0xe3,0x6d,0xca,0xfc,0xae,0x58,0x3b,0xcc,0x38,0xfe,0x9b,0x70, - 0xb3,0xb1,0x7d,0xbc,0xde,0x44,0xcb,0x6f,0x6b,0xfd,0x77,0xd5,0x76,0xf9,0xcd,0x07,0xc3,0x37,0xa3,0x63,0xfc,0xe6,0x3e,0x5b, - 0x2a,0xb6,0xb3,0x4f,0x97,0x98,0x87,0xb6,0x6f,0x26,0x4d,0x47,0xd4,0xa5,0x25,0xae,0xf0,0x66,0xa6,0x7d,0xb3,0xea,0x43,0xfd, - 0x9b,0xe7,0xe7,0xee,0x3e,0xdb,0x63,0xb7,0x3b,0x42,0x7b,0xe4,0xf6,0xb1,0x6b,0x3a,0xc6,0xee,0xd1,0xee,0x8a,0xfe,0xc3,0x8c, - 0x8f,0xab,0x9e,0x4f,0xdc,0xde,0xf7,0x7c,0xaf,0xd4,0xe7,0x1b,0x0f,0x86,0x6f,0x44,0x47,0xfa,0x8d,0xfe,0x36,0x6d,0x3b,0x26, - 0xe6,0xb4,0xf6,0xcd,0xa4,0xde,0xbf,0x4b,0x84,0x7a,0x85,0xcb,0xf6,0xf9,0x0e,0x97,0x2d,0xb6,0x8f,0x51,0x3d,0x4e,0x65,0x26, - 0x7f,0x63,0xdc,0xdc,0xd8,0x7b,0xa6,0x44,0xc7,0x55,0xcd,0x79,0x33,0xff,0xbf,0x31,0xd4,0x32,0x72,0x7e,0x0d,0xef,0x75,0x14, - 0xf5,0x7c,0xf6,0xd6,0xf6,0x57,0x8b,0x1a,0x6e,0xdc,0xc4,0xf9,0xd5,0x3e,0x56,0x72,0xd8,0xdb,0x7e,0x2a,0xfb,0x66,0xd2,0x74, - 0x44,0xdd,0xab,0x51,0x56,0x38,0x44,0x15,0xde,0xae,0xf9,0x72,0xa7,0x95,0xfb,0x93,0xca,0xe8,0xd4,0xdb,0xeb,0x5b,0xed,0xbd, - 0xee,0x55,0x32,0x69,0x99,0x51,0x7b,0x8f,0xbd,0x29,0xf3,0xbb,0x62,0xed,0x30,0xc7,0xcc,0xc0,0x01,0xef,0x02,0x2f,0x8b,0x38, - 0x2f,0xa3,0x63,0x7c,0xb9,0xcf,0x9d,0xb5,0xda,0xd9,0x67,0x58,0x84,0xb8,0xa5,0x69,0x6d,0xfb,0xb6,0x5d,0x72,0x6b,0xef,0x33, - 0xcc,0xe6,0x3a,0xaf,0xd6,0xae,0x5d,0xbe,0xdc,0x6e,0xd9,0xd7,0xff,0xa1,0x4f,0xbd,0xbd,0x8c,0x56,0x3f,0x96,0x6e,0xa3,0xdf, - 0xb5,0x67,0x5f,0xef,0x8a,0xc8,0xc3,0xdc,0x55,0xdb,0x6c,0xaf,0xf9,0xfb,0xc5,0x66,0x79,0xef,0x9c,0xff,0x95,0xe2,0xd8,0x6b, - 0xae,0xda,0x43,0xb1,0xdc,0xdd,0x4d,0xcd,0x3b,0xb6,0x9f,0xca,0xe3,0xe4,0x53,0xaf,0x73,0x88,0x6a,0xbb,0x6d,0xbd,0xfe,0x0f, - 0x11,0xea,0xfd,0x9b,0xda,0xe3,0xb5,0x1d,0xaf,0x78,0x95,0xad,0xda,0x8f,0xa2,0xa9,0xa5,0x7e,0x5c,0x95,0xf9,0xff,0x2b,0x43, - 0xed,0x7e,0x2c,0xb7,0xf7,0x99,0x64,0x9d,0xbd,0xcf,0xfc,0x5f,0x15,0x39,0x17,0x86,0x8d,0xb7,0x85,0xa1,0xa7,0x9b,0x9a,0x74, - 0x6c,0x3f,0x95,0xe3,0xf3,0xe9,0x12,0xa1,0x32,0xd3,0x36,0xed,0xf3,0xce,0x6e,0xae,0xcc,0x1d,0xda,0x97,0x1b,0xfb,0xcc,0xff, - 0x6a,0xcc,0x76,0xdb,0x2b,0xd0,0x94,0xc3,0x5d,0xb1,0x76,0x98,0x4d,0xfb,0x9d,0xca,0x3c,0xdb,0x5f,0x7e,0x30,0x6c,0x0c,0x83, - 0xdc,0x64,0xdb,0xb1,0xfd,0x31,0x18,0x57,0x78,0xdd,0x52,0x77,0xb9,0xd3,0xcd,0x2c,0xad,0xf4,0x6f,0x6a,0x8f,0xf7,0x12,0x57, - 0x7e,0xe7,0x4c,0xae,0xe5,0x39,0xe5,0x91,0x56,0xe6,0xff,0x2f,0x0f,0x75,0x58,0x26,0x6f,0x7a,0xce,0xd8,0x3c,0xe7,0x2f,0x14, - 0x15,0xd8,0xb8,0xa9,0xd2,0x17,0x8e,0xe5,0xce,0x31,0x3a,0xda,0xde,0xbb,0x67,0x38,0x7e,0xdb,0x61,0xc7,0xb8,0xf3,0xda,0xb5, - 0xb3,0x7d,0x73,0x76,0x7c,0xa1,0xea,0xb2,0x62,0x3d,0xce,0xae,0xad,0xda,0xec,0x78,0xff,0xff,0x85,0xa1,0x36,0x1d,0x51,0x53, - 0x4d,0x86,0xf9,0xf9,0x10,0xfe,0x25,0xdb,0x5c,0x36,0xb4,0xec,0xb7,0xa9,0xe6,0x6f,0x57,0x83,0x38,0x20,0x87,0xae,0x86,0x62, - 0xab,0xbb,0x11,0x66,0x91,0xd3,0xde,0x75,0xa4,0x66,0x5e,0xe1,0x5f,0x5a,0x1b,0xb7,0xd4,0xd7,0xd6,0xed,0xd2,0xe7,0xf8,0xf6, - 0x3d,0x8a,0x7d,0x2e,0x1b,0x5a,0xfa,0xfa,0x90,0x4f,0xdf,0xda,0xae,0x97,0xf7,0xef,0xa5,0x72,0xed,0xfd,0xa5,0xa1,0x76,0xc9, - 0x33,0x85,0xd9,0x3b,0xc6,0xfc,0xf5,0x2f,0x8a,0xa7,0xdd,0x9d,0xd6,0xd7,0x5e,0xd7,0x5a,0xb2,0xa8,0xfd,0x45,0xab,0xd7,0x51, - 0xcc,0x17,0xd1,0x72,0x6c,0xfe,0x5e,0xbc,0xb1,0xbe,0xb6,0xee,0xdd,0x08,0xbb,0xc4,0x6f,0x32,0x8b,0xb2,0x0d,0x0d,0xcb,0xaf, - 0x43,0x96,0xfb,0xbc,0x30,0x5e,0x9e,0xdf,0xf7,0x19,0xb2,0xdf,0x78,0xd4,0x2e,0xcf,0xe6,0x7b,0xb9,0x87,0x59,0x31,0x95,0xf1, - 0x08,0x76,0xef,0xd3,0x9e,0xff,0xf8,0xac,0x0e,0x77,0xbc,0x29,0x58,0x1e,0x5d,0x16,0x9d,0x41,0x5d,0x66,0x45,0xf7,0xab,0x41, - 0xfd,0xec,0xa8,0x5f,0xa9,0x6e,0xb7,0xb7,0x0a,0xbb,0xbc,0x8e,0xae,0x57,0x29,0x5c,0xa5,0x0f,0x7a,0xe7,0xf3,0x63,0x7c,0x70, - 0xd9,0x60,0xfb,0xda,0xf6,0x9e,0x4d,0xf1,0x57,0x2d,0x77,0x23,0xcc,0x22,0x43,0x83,0xe3,0x2a,0xd0,0xbd,0x4a,0xa7,0x1d,0x97, - 0x69,0xf7,0xd2,0xb7,0x1a,0x6d,0x11,0xc6,0x8c,0x6f,0x97,0xf8,0xf9,0x28,0x7f,0xed,0xd2,0xdd,0x5c,0xd5,0xbf,0xb6,0xef,0x6a, - 0x56,0xef,0x93,0x42,0xfe,0x27,0xb7,0xa5,0x0e,0x9f,0x59,0x84,0x2f,0xcf,0xc8,0x81,0x7e,0x2e,0xf0,0x9c,0xfc,0x2c,0x19,0x99, - 0xbf,0x0b,0xbc,0x17,0x78,0x66,0x6e,0xee,0x6d,0x5a,0xd6,0xb6,0xf7,0x69,0x8f,0x79,0x88,0xf8,0x97,0xe4,0x63,0xab,0xcf,0x63, - 0x98,0x6f,0x97,0x34,0x5e,0xa9,0x99,0xc2,0xf8,0x72,0xcc,0xd8,0x6d,0x3e,0x97,0x7e,0x6f,0xdb,0xb2,0x4f,0x96,0x40,0x9e,0x7d, - 0x8f,0xe5,0x58,0xf3,0x2d,0x1b,0x6c,0xc7,0xef,0xef,0x7e,0x94,0x8f,0xdb,0xbe,0xf3,0x21,0xee,0x9f,0x85,0xec,0xc3,0xa2,0xfd, - 0xc3,0x19,0x49,0x92,0x24,0x49,0x92,0x17,0x6b,0x16,0x9e,0xfd,0x62,0xf1,0xfc,0x9b,0xac,0xaf,0x43,0xf6,0x8b,0xc5,0x4f,0x0e, - 0xff,0x62,0xc3,0xe7,0x3f,0xff,0x9c,0xe7,0x6c,0xfc,0x97,0x12,0xb3,0x89,0xc6,0xb4,0xd7,0xcf,0xff,0xff,0xb3,0x63,0x39,0x0f, - 0xcb,0x9a,0xab,0xf6,0xc1,0xbf,0xb9,0x50,0x46,0xfe,0xa7,0xc7,0x32,0xcf,0x39,0x72,0xd5,0x12,0x8f,0xda,0xe0,0xa3,0xf8,0x27, - 0xc7,0x32,0xcf,0x7c,0xe3,0x54,0x3f,0x3f,0x9c,0xbf,0x7e,0x61,0x3a,0x9b,0x62,0x6e,0xbe,0x7d,0xf8,0x85,0xb5,0x13,0xfe,0xfc, - 0xf3,0xcf,0x71,0x88,0xcb,0xc8,0x7a,0x4b,0xbb,0xc3,0xf6,0xd5,0xb4,0xf7,0x21,0x66,0x45,0x9c,0xd2,0x57,0x51,0xe4,0xb2,0x25, - 0x44,0xcb,0x6f,0xc3,0x4d,0x65,0xbf,0xf1,0xfc,0xb9,0x2b,0xda,0x87,0xd9,0xed,0xfc,0xca,0x7e,0x6e,0xa8,0x1d,0xe3,0x7f,0xef, - 0xda,0x17,0xc5,0xbf,0x70,0x5d,0x9a,0x15,0x2d,0x59,0xf9,0x2f,0xdd,0x6f,0xf7,0xd9,0x58,0xb6,0xe4,0xe7,0x63,0xc5,0xeb,0xf0, - 0x64,0xb3,0x9c,0x1f,0xe9,0x60,0x3b,0x5e,0x7f,0xbe,0x97,0xdc,0xb6,0xd7,0xfb,0x57,0x4b,0x9c,0x78,0x56,0xa7,0x70,0x5c,0x53, - 0x19,0x1f,0xd1,0xde,0xfa,0x9c,0xfc,0x19,0x8d,0xed,0xae,0x46,0x6a,0xa8,0x39,0x3f,0x1f,0xce,0xd2,0xcd,0x3d,0xe1,0xcf,0x57, - 0x0d,0x0d,0xb6,0xf5,0x69,0x9a,0xff,0xbb,0x22,0x34,0xc5,0x6f,0xda,0xd7,0xb2,0x25,0x7e,0xfe,0x1e,0xba,0x73,0xed,0x8b,0xa2, - 0xbd,0xf4,0xae,0x88,0x39,0xcc,0xfc,0xbe,0xe5,0x1f,0x9f,0x9b,0x95,0xfb,0xf3,0x8e,0x3d,0x07,0xdf,0xff,0xff,0x06,0xcf,0xb3, - 0x3e,0x5d,0xc6,0xf7,0xae,0xe8,0x39,0xcc,0xa6,0xbd,0x7c,0x3e,0x64,0xbf,0xb1,0x76,0xcc,0xfd,0x79,0x1a,0x86,0x7f,0x94,0x86, - 0xf9,0x75,0x32,0x32,0x44,0xae,0x5a,0x2a,0xf7,0x24,0x9b,0xad,0xf2,0x31,0xfa,0x87,0x1c,0xeb,0xb2,0xb6,0xbc,0xdf,0xf5,0xb9, - 0x50,0xdf,0xb6,0x1e,0xb9,0xbb,0xdd,0xb3,0x1d,0xe2,0xf6,0x3b,0xfb,0xaa,0xe5,0xae,0x88,0x39,0xcc,0x8e,0xd7,0x9f,0x83,0xc6, - 0x3f,0xc4,0x7c,0xa8,0x54,0x69,0x76,0x9e,0x4e,0xf5,0x09,0xe1,0x65,0x9b,0xd7,0xea,0xeb,0xbb,0x0d,0x5f,0x2f,0xae,0xb1,0xdc, - 0x69,0x5c,0xa5,0xe6,0x1a,0xd6,0xfb,0x84,0x56,0xab,0x7d,0xfa,0x66,0xb5,0xf3,0xfa,0xf3,0xf5,0xa1,0x66,0x91,0xa1,0xd6,0x52, - 0x5f,0x3b,0xae,0x92,0xfd,0x1c,0xb6,0xaf,0x38,0xe7,0xcd,0xfc,0xff,0xd9,0x07,0xc3,0xcf,0x16,0x3d,0xcf,0xce,0xf9,0xbd,0xcb, - 0x06,0x9b,0xfa,0xec,0xde,0x2a,0x8e,0x7c,0x37,0xc2,0x8e,0xf9,0xff,0x83,0x4b,0x37,0xaf,0x6a,0x61,0xbc,0x1c,0xb7,0x84,0xda, - 0xda,0x7a,0xcf,0x6a,0xff,0xbe,0xd7,0xf9,0x96,0x0c,0xff,0xfe,0x25,0x3a,0xef,0xed,0xb2,0xa7,0xbb,0xb7,0xad,0x57,0x3e,0x2b, - 0xfa,0x34,0x79,0x37,0xc2,0x9d,0xa3,0x5c,0xa9,0x43,0xde,0xf3,0xef,0x0d,0x35,0x5c,0xa8,0x59,0x64,0xde,0xf2,0x51,0x7f,0x7b, - 0x9d,0x77,0x5f,0x7b,0xdc,0xee,0xad,0x46,0xaf,0x77,0xba,0x01,0xf7,0xb7,0x95,0xe7,0x82,0xd0,0xd0,0x3e,0xce,0x7e,0x31,0xc3, - 0xba,0x1a,0x15,0xdb,0xd7,0xb6,0xf7,0xac,0xe7,0x10,0x3a,0xd4,0x27,0x7f,0x3d,0x7b,0x04,0xde,0xb6,0xfa,0x51,0x02,0x19,0x9e, - 0x8b,0xed,0x95,0x9c,0x76,0xab,0x61,0x1a,0xcd,0x73,0xf1,0xf6,0xb8,0x9f,0x08,0x71,0xe7,0x3b,0x51,0x0a,0x33,0x81,0x24,0x79, - 0x7c,0xdb,0xef,0xcd,0x8e,0x60,0xe5,0x79,0x64,0xf2,0xfe,0xe7,0xee,0x31,0xeb,0x13,0x6f,0xd5,0x65,0xf9,0x1c,0x7d,0x6c,0xf3, - 0xe7,0xd0,0x95,0xec,0xb3,0x55,0x56,0x5b,0xce,0x6a,0xed,0xe3,0xe3,0xb7,0xc5,0x1c,0x36,0x07,0xd6,0x3d,0xbb,0xc6,0x1f,0x6a, - 0x35,0x7e,0x7b,0x9e,0x7d,0xeb,0x73,0x5b,0x8b,0x9c,0xe5,0x6f,0x02,0xdd,0xbc,0x6e,0x68,0x7f,0x12,0x9e,0x14,0x9f,0x3b,0x3d, - 0xc9,0x9f,0x26,0x3e,0xb6,0xf2,0x7a,0xfd,0x49,0xd4,0x6c,0xd5,0x67,0x9e,0x15,0xdb,0xde,0xff,0x4e,0xc1,0xa6,0xe5,0x59,0xe1, - 0xd3,0x8d,0xab,0x9f,0x44,0x5d,0x2d,0x7f,0x38,0x7f,0xf0,0x75,0xd9,0xd2,0xda,0x5e,0x6e,0x7b,0x1f,0xa1,0x58,0x5b,0xc6,0xf9, - 0xf4,0xbc,0x6a,0xb9,0xdf,0x59,0x91,0xf3,0x2c,0x7c,0xac,0xc8,0xf0,0xb6,0xf0,0x13,0x85,0x9f,0x2c,0xfc,0x78,0xe1,0xf3,0x22, - 0xe7,0xf7,0x72,0xdf,0xcc,0x6f,0xf2,0xc8,0x6f,0x42,0x61,0xbe,0x1c,0xd6,0x86,0x72,0x39,0x2b,0x96,0x1f,0x0c,0x71,0xce,0x51, - 0x86,0xaf,0xf2,0xe5,0xd9,0xe2,0x55,0xd9,0x27,0xca,0xb3,0xea,0xba,0x0e,0x1f,0x14,0x7b,0x2f,0x8f,0xf4,0x79,0x61,0x11,0x21, - 0x76,0xb1,0x3b,0xc2,0xbe,0xc8,0x75,0xb3,0xda,0x72,0xdd,0x5d,0x6b,0x57,0x95,0x5c,0x16,0xa3,0x1f,0x1a,0x7c,0x97,0x3b,0xcb, - 0xeb,0xf9,0x7e,0x51,0xd5,0x6f,0x29,0x7c,0x51,0xf8,0xad,0xe5,0x9c,0xd9,0x6b,0x08,0x57,0x9b,0x4f,0x29,0xe3,0x73,0xe1,0xe9, - 0xfc,0x2a,0x5a,0xdb,0xe4,0x22,0xf2,0x61,0xe6,0x3c,0xbf,0x1f,0x97,0xf2,0xfe,0xe7,0x6a,0x13,0xad,0xee,0x98,0xf8,0x87,0xf8, - 0x7c,0xb5,0xfe,0xf9,0x6d,0xf9,0xaf,0xc8,0x75,0xf1,0x4d,0xdc,0x72,0x5d,0xeb,0x33,0xef,0x1a,0x67,0x4f,0xe4,0x0e,0x6b,0xdf, - 0x74,0xde,0x76,0xbc,0xd3,0x7f,0x66,0x32,0x6b,0x70,0x6b,0xed,0x75,0xb5,0x7d,0x9c,0x87,0xfb,0xf9,0x9f,0x87,0x2b,0x43,0xf1, - 0xbb,0x00,0xa1,0xbc,0xa6,0xad,0x5b,0x9e,0xce,0xb7,0xd7,0xae,0x97,0xd7,0x7d,0xee,0x67,0x78,0xa3,0xbb,0xfa,0xe4,0xe7,0x5d, - 0x65,0x8f,0x6f,0xb7,0xf6,0x92,0xed,0x89,0x59,0xcd,0xf9,0x21,0xcf,0xc2,0x45,0x1c,0xf9,0x7e,0x79,0x7e,0xff,0xde,0x5a,0x6d, - 0x2f,0xce,0xa9,0xf5,0x75,0x20,0x8e,0x7f,0xd3,0x74,0x74,0xb5,0x9e,0x21,0xaa,0x4c,0xc5,0x45,0xb5,0xb6,0xbb,0x6d,0xbf,0x6e, - 0xb7,0xc4,0xbf,0xa9,0x5e,0xd5,0xa3,0x7d,0x3d,0x0b,0xb5,0x3e,0x1b,0xa3,0x77,0xcc,0xa7,0xf5,0xb5,0x0d,0xb5,0x0d,0xf3,0xea, - 0xb6,0xeb,0xb5,0xe1,0xd9,0x14,0xae,0x72,0xde,0xe5,0x21,0x62,0x8e,0x37,0xbe,0x63,0x09,0x9b,0xab,0xfd,0xae,0xdf,0xaf,0x79, - 0x5a,0xb9,0xcf,0xd9,0x72,0xd1,0x6e,0xbf,0xf7,0xf7,0xde,0x2e,0x22,0xa7,0x8b,0x3c,0xdf,0x77,0x87,0x73,0x3a,0x9f,0xce,0x77, - 0x2f,0x1f,0xc9,0x33,0xa9,0x49,0x53,0x65,0x9a,0xd6,0xb6,0xf7,0x8f,0x97,0xdf,0x16,0x77,0x4a,0xe5,0xfb,0x72,0x97,0x51,0x68, - 0xda,0xd7,0xc3,0xd5,0x7e,0x5f,0x3e,0x4d,0x47,0xd7,0x64,0xf7,0xb9,0x11,0x3f,0x77,0xb4,0xd7,0xad,0x4b,0x6d,0x87,0x8d,0x57, - 0x97,0xf6,0xbe,0x7d,0x86,0xe5,0xd3,0x36,0x52,0xdd,0xfa,0x1c,0xa2,0x56,0x87,0x38,0x96,0xc3,0x9d,0x7d,0x87,0x18,0xa9,0x13, - 0x5c,0xe5,0x2e,0x22,0xb7,0x14,0xfc,0xf4,0xd1,0xf6,0xb5,0xef,0x0e,0x30,0x36,0x7e,0xc2,0x8d,0x97,0xbb,0x6c,0xbb,0xfd,0x34, - 0xb1,0xdf,0x97,0x8b,0xd5,0xfd,0x7c,0x69,0x5b,0xcf,0xde,0xc7,0xb5,0x78,0x9d,0xc7,0x9c,0xdf,0x3c,0x2f,0xdc,0x1f,0x67,0xbf, - 0xfb,0x9e,0x83,0x78,0x4a,0x87,0xcf,0xf6,0xa6,0xf9,0x33,0x51,0x9c,0x22,0xc3,0x2e,0x3d,0x4f,0x7d,0x2d,0x3a,0xed,0x35,0x67, - 0x88,0x21,0x1a,0xa9,0xa9,0xf6,0x38,0xe1,0x71,0x95,0xd7,0xb4,0xba,0xa1,0xea,0xfd,0x35,0x30,0x44,0xee,0xbd,0x1e,0xee,0x88, - 0x73,0x94,0x9a,0xa7,0xe3,0xae,0xb1,0x68,0x7a,0x42,0x3f,0xad,0xe3,0x8f,0xf7,0xb4,0xf9,0x57,0x9f,0x83,0x2e,0xdf,0xab,0x13, - 0x19,0x1e,0x87,0x8b,0x04,0x72,0x38,0x96,0xe1,0x94,0x33,0xf9,0xe1,0xb3,0xdc,0x6e,0x9f,0x8d,0x30,0x65,0x9b,0xee,0x49,0x52, - 0xc8,0xed,0x20,0x4e,0x74,0x2f,0x7a,0xcc,0x71,0xe9,0x3b,0x76,0x5d,0xf3,0xdf,0x9c,0xd1,0x3d,0xaf,0x27,0x7d,0xef,0x12,0xeb, - 0xfb,0x8a,0xda,0x17,0xf5,0xf6,0x43,0x6c,0xdb,0x10,0x61,0x4f,0xff,0xf6,0xf8,0x53,0x39,0xed,0x7e,0x27,0xcd,0x79,0x3d,0xca, - 0xd5,0x67,0x8d,0x9b,0xad,0x27,0x8b,0xc8,0xb2,0x7f,0x6d,0x74,0xb6,0xda,0x6b,0xf3,0xa7,0xbe,0x55,0x53,0x9f,0xad,0xcf,0x76, - 0x9e,0x86,0x07,0xe3,0xbd,0xaf,0x96,0xc3,0xda,0xd5,0x99,0xb2,0x78,0x3f,0x5a,0x2e,0xdb,0x9b,0x72,0x38,0xad,0x4d,0xf5,0x6c, - 0xaa,0x55,0x97,0xaa,0xee,0x18,0xc1,0x31,0x4e,0x74,0xa4,0xf5,0xb1,0x8e,0x5b,0xea,0xed,0x2f,0x5b,0xd7,0xf6,0xae,0xc6,0x98, - 0x31,0xea,0x57,0x87,0x29,0xce,0xbe,0x78,0x04,0x27,0xad,0xf9,0xc0,0x98,0x5b,0xf3,0x21,0x1c,0xe3,0xbc,0x88,0xce,0xfa,0x72, - 0x26,0x34,0x5d,0x7f,0x76,0xf4,0x6c,0x98,0x3f,0xb1,0xe5,0xda,0xd0,0xba,0xd5,0x7d,0xcb,0xa2,0x2d,0x42,0x7d,0x2f,0x4d,0x2d, - 0xb1,0x5d,0xe6,0xed,0x56,0x84,0x86,0x1c,0x1a,0xb3,0xaa,0xd7,0x64,0xb1,0x3b,0x9f,0xf7,0x1b,0xe2,0xef,0xa8,0x67,0x53,0xfd, - 0xab,0xf3,0xea,0x7e,0x3e,0xc7,0x6b,0xdf,0x5f,0x44,0x86,0x07,0x3b,0x9f,0x4d,0x4d,0xcb,0x5d,0xce,0xa6,0xee,0xed,0xdb,0xee, - 0xff,0xf4,0xac,0xef,0x19,0xdd,0x67,0xdb,0x7e,0xef,0xe9,0xf5,0xf8,0xcd,0x7b,0x8c,0x8f,0xab,0xfd,0x18,0x77,0xbf,0x17,0xdc, - 0x3c,0x6d,0xd8,0xea,0xc3,0x0e,0x96,0x3d,0x5f,0x3c,0xd8,0xf8,0xae,0xd7,0xf4,0xfd,0xd1,0x98,0xe5,0xee,0x77,0xbc,0x3b,0x0c, - 0xa7,0x31,0x14,0x99,0xaf,0xea,0x1f,0x16,0x5b,0x86,0xc1,0xcf,0x02,0x63,0xb6,0x6d,0x76,0x6c,0x56,0xa3,0x22,0x57,0xbf,0x61, - 0x3c,0x4f,0x5f,0xcf,0x8a,0xa3,0x98,0x75,0x5e,0x3e,0xea,0x51,0x87,0xbf,0x4b,0x92,0x7c,0x8c,0x9e,0xfe,0xfd,0xf1,0x6c,0x5d, - 0x44,0xa6,0x90,0x0f,0x27,0x70,0xeb,0x29,0xa3,0xe1,0xae,0xec,0xd0,0xcb,0x29,0xd4,0xe1,0x71,0x7a,0xa9,0x23,0x72,0x49,0xc7, - 0x42,0x92,0x3c,0x8a,0x8b,0x9a,0x23,0xa2,0x0d,0xf8,0xbc,0xbd,0xf6,0x49,0xf5,0xb1,0x4d,0x62,0x14,0x86,0xda,0x5a,0xb7,0xa7, - 0x0f,0xdf,0x10,0x35,0xfc,0xdc,0xc2,0xc9,0xf3,0x6f,0xb0,0xfa,0x3b,0xec,0xe7,0x6c,0xf5,0x37,0xf1,0x4f,0x9d,0xcf,0x58,0x8f, - 0x7f,0x86,0xf6,0x3d,0x97,0x53,0xc8,0xa4,0xfb,0x75,0xe6,0xb0,0xfb,0x0d,0x4f,0x03,0x39,0xdc,0x14,0xfe,0x86,0xe1,0x18,0x7f, - 0x86,0x3c,0x94,0x59,0x07,0x77,0x6f,0x3b,0x0f,0xcb,0x8a,0xf1,0xda,0xf6,0xbf,0xea,0xf3,0xa2,0x88,0x9c,0xd5,0x2c,0xf7,0xf8, - 0x62,0xab,0xe5,0xf4,0xff,0x42,0xc4,0xa1,0x8d,0xff,0xed,0x89,0x2e,0xff,0x5a,0x47,0xa5,0xe5,0xef,0x70,0x3a,0xfb,0xfc,0x65, - 0xaa,0x55,0xff,0xac,0xe7,0x56,0xdd,0xcd,0xcf,0xa9,0x32,0xab,0xf7,0xd2,0x70,0xe8,0xdf,0xef,0xea,0x17,0x5f,0xff,0x69,0xfb, - 0xe7,0xb3,0xe8,0xa3,0x73,0x36,0xfe,0x4b,0x95,0x53,0xd9,0xf4,0x37,0x24,0xbb,0xfc,0x6d,0xc9,0xd7,0xb5,0xf6,0x50,0x8b,0xdf, - 0xd4,0xde,0xf7,0x5b,0xb6,0xa6,0x7c,0x5e,0xd4,0xb2,0x6a,0xfa,0x1b,0x98,0xed,0xcf,0xc2,0xcf,0x22,0xbb,0xfc,0x45,0xcd,0xd7, - 0xad,0x59,0x75,0xa9,0xde,0xee,0x0c,0xb7,0x9f,0x31,0x5f,0x44,0x0e,0xab,0xd8,0xe1,0xfe,0x1a,0xe1,0xf1,0x7d,0xb9,0xc8,0xe6, - 0xb3,0x44,0x2d,0x7f,0xc3,0x3a,0x85,0x4c,0x98,0x9a,0x53,0xfd,0xfe,0x7e,0x0a,0xc7,0x42,0x92,0xa7,0xf2,0xb4,0x7f,0x41,0x65, - 0xef,0xf5,0x79,0x12,0x9b,0xe2,0x67,0x57,0xcf,0x72,0x57,0x7f,0x09,0xed,0xea,0xde,0x78,0xab,0x57,0x8b,0x50,0x54,0xa9,0xcc, - 0x64,0xb5,0x1c,0xff,0xe5,0xb4,0xbe,0xcb,0x71,0xe4,0xbe,0xdb,0xbe,0xaa,0xb5,0x6c,0xc7,0xbc,0xcf,0xb3,0x97,0xf3,0x45,0xf1, - 0x37,0xba,0x77,0x18,0xbe,0xbc,0x76,0x15,0x7f,0xbe,0xd8,0x54,0xa0,0xe2,0x7c,0x51,0x1f,0xa3,0xea,0x5e,0x5e,0xad,0x5d,0xf7, - 0x59,0xdc,0xf7,0x0c,0x0f,0xe3,0xf2,0x89,0x45,0xb8,0x5e,0x55,0x3e,0x5c,0xf7,0x5f,0x4e,0xcd,0x94,0x73,0xeb,0x9b,0xff,0xb0, - 0x9a,0xf7,0xed,0x59,0x1a,0x9f,0x95,0xf1,0x6c,0x7c,0x55,0x9c,0x95,0x6b,0x57,0x5b,0xbd,0x8a,0x22,0x94,0xe7,0x45,0x1e,0xe1, - 0x79,0xb1,0xc7,0xe7,0xb3,0xde,0xcb,0xa9,0x99,0x72,0x6e,0x7d,0xf3,0x1f,0x56,0xf3,0xbe,0x3d,0xdb,0xfb,0xbf,0x2a,0xae,0x36, - 0x79,0x9f,0xe2,0x2a,0x5a,0xb6,0x3c,0xac,0xdd,0xf7,0xee,0x13,0x7e,0xfa,0x92,0xbc,0xea,0xbd,0xd5,0xa6,0x0e,0x5f,0x26,0xfb, - 0xb8,0x99,0x39,0x87,0x36,0x89,0x33,0x6b,0xb8,0xd3,0xdc,0xdf,0xa6,0xe6,0x54,0xf7,0xff,0xf1,0x15,0xfe,0x10,0xa6,0x70,0xa6, - 0xf4,0x31,0xdb,0x78,0xb4,0xf3,0x2b,0x29,0xfb,0xfe,0x8d,0xc1,0xc3,0xcf,0xf6,0x14,0x66,0x45,0xbf,0x99,0xb3,0xf6,0xf4,0xa3, - 0x59,0x73,0xd1,0xb0,0x7c,0x72,0x0f,0x38,0x7f,0x0e,0x9c,0xe1,0xe9,0x9f,0x08,0x92,0x35,0x94,0x4f,0x0d,0x64,0x64,0x02,0x57, - 0x9b,0x89,0xaf,0x00,0xe5,0x3c,0x6f,0xf4,0xf4,0x99,0xf3,0xbc,0x3c,0xc4,0xfb,0xd7,0xa9,0x8e,0x62,0xc8,0x27,0xe7,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x6c,0x32,0x84,0x2c,0xf0,0x74,0xa6,0x30,0x07,0x48,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0xe4,0xd9,0xf9,0x53,0xa7,0xf3,0xd5,0x49,0xf7,0x4e,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0xb6,0xfb,0x2e,0x84,0xb0,0xed,0xcb,0x45,0xf6,0x53,0x9c,0xc2,0x7a,0x6d,0xbb,0x98,0xf3,0xd9,0xc0,0x2d,0xb3,0xc8,0xbc, - 0xe5,0x6f,0x93,0x24,0x39,0xce,0x2c,0x64,0xb9,0x2f,0x0a,0xcb,0xe5,0x43,0xef,0xf1,0x6e,0x84,0x71,0x9c,0xd5,0xdd,0xc2,0x29, - 0xcc,0x5f,0x1f,0x71,0x97,0xf3,0xb0,0xdc,0x69,0x08,0x59,0xcb,0xda,0x2e,0x96,0x11,0xd6,0x9e,0xfe,0x48,0xc7,0x54,0x26,0x6f, - 0xf9,0x34,0x2f,0xd7,0x7c,0x94,0x37,0x96,0x2d,0x59,0xab,0xfd,0xaf,0x3f,0xd9,0x05,0x19,0x9e,0x91,0x87,0xf5,0x7e,0xa6,0xc5, - 0x26,0x90,0xd5,0xe3,0x75,0xef,0xfd,0x55,0xa5,0x67,0x7d,0x79,0x58,0xe4,0x93,0xdc,0x2b,0x1e,0xa2,0x86,0x3f,0xb9,0x36,0x7f, - 0x97,0xf9,0xc9,0xed,0x96,0xf6,0xf6,0x2e,0x6b,0x8f,0xef,0x7c,0xcb,0x65,0x64,0xd9,0x27,0xdb,0x69,0xd9,0x67,0x67,0xcd,0x7b, - 0xf9,0x66,0xb5,0x70,0xff,0x5f,0xc7,0x31,0xfd,0x5b,0xec,0xef,0x6d,0xc8,0x36,0xbe,0x88,0xec,0x7b,0x4e,0xe5,0xb3,0xe2,0x6f, - 0xae,0x0d,0xec,0xec,0xfc,0xe0,0x2e,0x37,0xf6,0x1d,0xd3,0xac,0x88,0x50,0x7a,0x37,0xc2,0x6e,0xf3,0x67,0xf9,0x13,0xc7,0x32, - 0xdf,0xdf,0x60,0x6f,0x6b,0x2d,0x65,0xcc,0xfc,0x48,0xff,0xc6,0x50,0xc3,0x99,0x98,0x1f,0x69,0x2f,0xb3,0xf5,0x2c,0x2a,0x23, - 0xfc,0xf5,0x34,0xcc,0x73,0x1b,0x6d,0xd8,0x38,0xc9,0xdd,0x48,0x1e,0xe7,0x33,0x8b,0xf0,0xe5,0xd9,0xd9,0x58,0xff,0x7e,0x30, - 0xaf,0xcc,0x8f,0x87,0x8a,0xe1,0xc7,0x8b,0xa3,0xe3,0x4e,0xe3,0x2a,0xcd,0xb7,0x5a,0x76,0x57,0x72,0x57,0x9f,0x50,0xb1,0xcb, - 0x7e,0xb3,0x9a,0x4d,0x3d,0xe3,0x3b,0xb7,0xbb,0xa2,0x65,0x98,0x2d,0x33,0x7f,0xb3,0xaf,0xcf,0x87,0xf0,0x63,0x6d,0x2e,0x5b, - 0xd7,0xee,0xf7,0x6e,0x84,0xed,0x91,0x37,0xc7,0xf2,0xd7,0x1e,0x9f,0xf9,0x3c,0xec,0x60,0x88,0xdc,0xdf,0x3e,0xf8,0x2a,0xba, - 0x33,0xb7,0xa1,0x47,0x14,0x2a,0x99,0xdc,0x15,0x2d,0xc3,0xac,0xe7,0x99,0xd5,0x1c,0x33,0xb7,0x8f,0x6b,0xe3,0x99,0xf8,0x57, - 0xd9,0xe6,0xb2,0xb6,0xbc,0xac,0xb5,0xd7,0xd7,0x76,0x89,0x59,0x8f,0xbc,0x5a,0x4e,0xe1,0x93,0x96,0xd8,0xf6,0x63,0xc9,0x7b, - 0xfc,0x95,0x71,0xce,0xef,0x5d,0x46,0x3e,0xb4,0x67,0x91,0xed,0xdb,0x8e,0xbc,0x97,0x7b,0x6f,0x9f,0xc7,0xec,0x3f,0x6d,0xe6, - 0x71,0xfc,0x01,0xfd,0x4f,0xfe,0x09,0xe7,0xc9,0x1d,0x53,0x87,0xdb,0xb6,0xb5,0x0f,0xdf,0xdd,0xb4,0x8c,0xef,0x8f,0xf2,0xa2, - 0x1d,0x79,0xfd,0x4c,0xcd,0xf9,0x96,0xd5,0xeb,0x79,0xd3,0x15,0xbe,0xe9,0x4a,0x7e,0x57,0xb4,0x0f,0xb3,0xcb,0xf5,0xf3,0x5b, - 0x8b,0xe7,0xe2,0x6f,0x4b,0x5e,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79, - 0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94, - 0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2, - 0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5, - 0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53, - 0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca, - 0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95, - 0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c, - 0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29, - 0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56, - 0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33, - 0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7, - 0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59, - 0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf, - 0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e, - 0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65, - 0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c, - 0x53,0x56,0x9e,0xf2,0x4c,0x59,0x79,0xca,0x33,0x65,0xe5,0x29,0xcf,0x94,0x95,0xa7,0x3c,0x53,0x56,0x9e,0xd3,0xfa,0x2e,0x84, - 0x30,0x85,0x9f,0x0b,0xab,0x68,0x29,0xd8,0x94,0xe1,0x67,0x8b,0xb5,0x6c,0xb7,0xa9,0x7a,0xdf,0x99,0x1b,0x48,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x64,0xd2,0xbe,0x9b,0x17,0xbf,0x0b,0x40,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x17,0xe7,0xcb,0x45,0x98,0x93,0x24,0x49,0x26,0x60,0x88,0x4c,0x21,0x1f,0x3e,0x4e,0xc3,0xa5,0x1b,0x42, - 0x78,0x16,0x3a,0xf9,0x2e,0xff,0xdf,0x14,0xe6,0xaf,0xaf,0x36,0xdb,0xbe,0xed,0xa7,0xc2,0xec,0x2b,0xe1,0x66,0x1e,0x96,0x5f, - 0x59,0x2f,0x0f,0x33,0x84,0xc5,0xc8,0x08,0x75,0xdf,0x85,0x59,0xe8,0xd3,0xa7,0xde,0xbf,0x4b,0x4b,0xff,0x23,0x9d,0x5f,0x91, - 0xe7,0xe3,0xbb,0x30,0x0f,0x87,0x34,0x85,0x63,0x24,0x49,0x92,0x8f,0xcd,0xe7,0x21,0xcb,0xef,0x43,0x5e,0x17,0x86,0x90,0x5d, - 0x1d,0xd6,0xd3,0x1f,0xef,0x63,0xd6,0x9d,0xe7,0xe1,0xea,0xb9,0xef,0x3e,0x3f,0x2b,0xfa,0x3f,0x09,0xe7,0xec,0x54,0x75,0x7b, - 0x73,0xbf,0x5c,0xbd,0x3e,0xcc,0xe7,0xcb,0xd9,0x01,0xbd,0xfe,0x60,0x91,0x85,0xd9,0xcd,0xf3,0xc8,0x0f,0x22,0x5f,0x44,0xbe, - 0x8e,0xfa,0x7c,0xba,0x70,0xf5,0x99,0xcf,0x3e,0xe7,0xa1,0xd8,0xd7,0xd4,0x7e,0xb4,0xf6,0x65,0x91,0x49,0x93,0x71,0xce,0x87, - 0x58,0x6e,0xda,0xd7,0xaa,0x25,0x74,0xf2,0xf9,0xe2,0xbd,0x70,0x55,0x2c,0x5f,0xdd,0x2f,0x97,0x75,0x7b,0x55,0xc4,0x79,0x95, - 0xb7,0x6c,0x8f,0x42,0xb9,0xd5,0x6a,0x5f,0xf3,0x62,0x5f,0xf3,0xc6,0xe5,0x97,0x8b,0x9b,0x5a,0x4d,0x16,0xf7,0xee,0xca,0xa4, - 0xdc,0x6f,0xd9,0xf3,0x6d,0xb1,0xed,0x9b,0x28,0x42,0xd3,0xf8,0x76,0xb9,0x1a,0xa4,0x70,0x5d,0x22,0xd3,0x37,0x7e,0x7f,0x5c, - 0xde,0xbf,0xcb,0xac,0x3e,0x57,0x7f,0x71,0xb5,0xba,0x3e,0xbc,0xbc,0x2a,0xce,0xe2,0xab,0xd5,0x59,0xf9,0xb6,0xf0,0x4d,0xe1, - 0xba,0xbd,0xb8,0x0a,0x5d,0x15,0x57,0x80,0xc2,0x75,0xfb,0xea,0xac,0x7f,0x7e,0x55,0x5c,0x67,0xae,0x56,0xe7,0xfe,0x7a,0xf9, - 0xbd,0x62,0xed,0xd5,0x60,0x5f,0xe5,0x11,0xe6,0xb9,0xeb,0x7d,0x85,0x2d,0xb7,0x73,0x0e,0xcf,0x52,0xf5,0x75,0x54,0xab,0xed, - 0xba,0xc5,0xcb,0xa7,0xcf,0x73,0x7f,0xfe,0xf1,0xb8,0xcf,0xb7,0x66,0xc2,0xf3,0xeb,0xe2,0x5d,0xa3,0xf0,0x79,0xe4,0xab,0xc2, - 0x97,0xd7,0xe1,0x79,0xb8,0xf9,0xc4,0x50,0x37,0x11,0x58,0xfa,0xaa,0xa8,0xc9,0xab,0x75,0x65,0xbe,0x7c,0x9e,0xd6,0xbf,0xdd, - 0xeb,0xbb,0xd5,0xf1,0xfb,0xd7,0x73,0x7e,0x13,0x5d,0x2d,0xeb,0xe7,0xf5,0xdb,0x68,0xed,0xfd,0xfd,0x4c,0x71,0x46,0x74,0x71, - 0xbd,0x97,0x27,0xc5,0xb6,0xfd,0x9c,0x17,0x9f,0x2d,0xc4,0x7e,0x3c,0xac,0xf2,0x79,0x3a,0xcf,0xee,0xfb,0x3c,0x3c,0x5f,0x84, - 0xff,0x30,0x85,0x9b,0xef,0x76,0x27,0x89,0x76,0x08,0x4f,0x95,0x61,0x7d,0xbf,0x87,0xce,0xa4,0xf2,0x6d,0xfb,0x41,0xe3,0x9f, - 0xbb,0xc7,0x9f,0x0f,0xe4,0x31,0x6d,0x9f,0xff,0xd9,0xbd,0xd9,0x66,0xb9,0xe5,0x4c,0xe1,0xc6,0xe9,0xea,0x93,0xdd,0xf2,0x72, - 0x0c,0x1b,0xd7,0xb3,0x22,0x9b,0xd0,0x5d,0xb3,0x2e,0xbb,0x3d,0xfc,0xbb,0xe4,0xf9,0xda,0xff,0x7c,0xbc,0x64,0xcb,0xcf,0xb7, - 0x53,0x18,0x17,0x32,0x05,0xf3,0xd7,0x5f,0x3e,0x1f,0x77,0xe6,0xff,0x97,0xb8,0xcf,0xc3,0xcd,0x9f,0xf2,0x8a,0x1a,0xc2,0x55, - 0x48,0xdb,0x96,0xf9,0xff,0x3f,0x2f,0xd1,0xc1,0x57,0x83,0x7a,0xb4,0xbf,0x98,0xb6,0x7b,0x8f,0xe8,0x7f,0x5c,0xba,0xf9,0x39, - 0xd8,0xe2,0xde,0xfa,0xfc,0x85,0x73,0xb3,0xcc,0x3c,0x5b,0xb7,0xfc,0xf7,0x4b,0xb4,0x65,0xbc,0x7a,0xc5,0xc9,0x46,0xec,0xeb, - 0x31,0x98,0xbf,0xfe,0x3c,0x2f,0xda,0x3f,0xc7,0x56,0xff,0xec,0xb9,0x19,0x9f,0xbf,0x77,0x45,0xcb,0x30,0x3b,0x5e,0x1f,0xfe, - 0xcc,0x25,0xea,0x78,0x37,0xc7,0xfb,0xa7,0x1f,0x93,0x03,0xde,0x1f,0xff,0x14,0xfb,0x3b,0xc9,0x9d,0x49,0x19,0xed,0x4f,0x8e, - 0x73,0x13,0x6d,0x64,0x9c,0xa9,0xe2,0xd7,0xfb,0x4f,0x95,0xe1,0xb9,0x1c,0x29,0xd3,0x31,0x7f,0xfd,0x7b,0x92,0x24,0x39,0xd4, - 0xf3,0x7d,0xff,0x3d,0xe6,0xfd,0x43,0x0a,0xf7,0x3c,0x95,0xfc,0x3b,0xfe,0xe5,0xab,0x2e,0x3d,0x2f,0xd5,0x31,0x15,0x48,0x61, - 0x94,0xd9,0x3c,0xff,0x67,0x7f,0x62,0x9f,0xe5,0x5f,0x21,0x2b,0x8d,0x5b,0xba,0x6c,0xfb,0x18,0xac,0x57,0x23,0xae,0x58,0xbd, - 0x6e,0x95,0xfe,0x7f,0xfc,0xd4,0x96,0xf9,0x64,0x43,0x23,0xfc,0xb1,0x33,0xf7,0x8f,0x9e,0xa7,0xf5,0x39,0xd6,0xee,0x71,0xf6, - 0xf2,0xd8,0xcc,0xab,0xf4,0x47,0x8e,0x6b,0x7d,0xbf,0x23,0x33,0xfc,0xc3,0xe7,0x60,0xfd,0xb8,0xb2,0x90,0x95,0x6b,0xff,0x50, - 0xaa,0xee,0x1d,0x97,0xbd,0x7d,0x78,0x84,0xf3,0xf7,0xff,0xcd,0xce,0xdb,0x3f,0x18,0x12,0xb2,0xa5,0xce,0x27,0xcf,0x27,0x85, - 0xfa,0x24,0xe8,0x1f,0x28,0x7e,0x52,0xae,0x62,0x59,0xb1,0x7a,0x4b,0x93,0xf5,0x08,0xa5,0x65,0xfc,0xba,0x9b,0x11,0xe9,0xd8, - 0x9e,0xb2,0xed,0x75,0x68,0xaf,0xd8,0xf8,0x3d,0xb6,0x9b,0x15,0xfd,0xbb,0xdb,0x37,0x7e,0xde,0xff,0xbf,0x9e,0xb9,0xff,0xed, - 0x9c,0x4d,0xe1,0x3d,0x74,0xe4,0xfb,0xef,0xef,0xbf,0x5c,0xf3,0x73,0x7c,0xe3,0xb0,0x0a,0x64,0x1d,0xfc,0x74,0xe1,0xe0,0xfa, - 0xff,0x08,0xc7,0xb9,0xeb,0xaa,0x9b,0xfd,0x48,0x37,0xf3,0x08,0xff,0xfb,0xd4,0x56,0xe6,0x43,0xdf,0x08,0xff,0xeb,0xb8,0xee, - 0x9d,0xcf,0x7d,0x63,0xfe,0xbe,0x63,0xd9,0xeb,0xac,0x1c,0x19,0x61,0x58,0xfc,0xc3,0xed,0x91,0x69,0x9a,0x8f,0xf2,0x7f,0xe2, - 0xb9,0x99,0xc2,0xcc,0xb9,0x0c,0xf3,0x7a,0xfe,0x47,0xf6,0x51,0xfd,0xcf,0xa5,0xfe,0xdd,0x62,0xce,0x7f,0xf8,0x12,0xcd,0x9f, - 0xb9,0x76,0xda,0xf7,0x5f,0x0b,0xba,0x0b,0xd7,0x3f,0x3c,0xd4,0x6e,0x7b,0x39,0xfd,0x35,0x90,0x24,0xc9,0xbe,0x86,0x70,0x7d, - 0x75,0x9e,0xae,0xf3,0x9f,0xfd,0xd0,0x63,0xb5,0xac,0x40,0x7e,0x5f,0xf4,0x43,0x6b,0xb3,0xa8,0xbd,0x5e,0x9f,0x14,0xe6,0x1b, - 0xa7,0x3e,0x7f,0x67,0xff,0xe5,0x31,0xd9,0xbf,0x3e,0xf3,0xdf,0x7b,0x6a,0xf3,0x73,0x73,0xa4,0xc3,0xf6,0x7b,0xe8,0x7f,0x89, - 0xb5,0xdb,0xbf,0xe2,0x34,0xfb,0xcf,0xc7,0x32,0xaf,0xd5,0x4e,0x9b,0xfa,0xa7,0x70,0xfe,0x1e,0xe1,0xfa,0xf0,0x7b,0xce,0xc1, - 0x13,0xd6,0xe7,0x77,0xa7,0xe1,0xb0,0xfc,0xf3,0x73,0xec,0x4b,0xc5,0x3c,0xff,0xd2,0x7a,0x39,0x70,0x84,0xeb,0x4a,0x4e,0x6f, - 0x56,0xc4,0xcf,0x3a,0xe4,0xd0,0xfc,0xbb,0x1e,0xd9,0x97,0x4e,0xe1,0x5d,0x91,0xd5,0x30,0xcb,0x63,0x6f,0xaa,0x70,0xfb,0xf1, - 0xb6,0xbb,0x89,0xf3,0xc5,0x07,0xc3,0x17,0x8b,0x98,0xdc,0x38,0xdf,0xe1,0xb2,0xc1,0xdd,0x7d,0xea,0x31,0xb3,0x06,0xcb,0xfe, - 0x23,0x7f,0x9b,0xef,0x8b,0xb5,0x96,0xdf,0x95,0x9e,0xdd,0x8f,0xe8,0xae,0xe8,0x3f,0xcc,0x8e,0x67,0xc1,0x0f,0x6e,0x9b,0xb7, - 0x5e,0xa4,0xf5,0x23,0xdd,0xb6,0x4b,0x9f,0xaa,0x9b,0x31,0xfa,0xc1,0xa1,0x66,0x0d,0xae,0x73,0x7e,0xb0,0x6c,0x19,0x70,0x46, - 0xfc,0xce,0xcb,0x32,0xaf,0xfc,0x66,0xf9,0x36,0x6a,0x1f,0xfc,0x2e,0xf0,0x03,0x0f,0x86,0x1f,0x28,0xa2,0xb1,0xc5,0xf9,0x0e, - 0x97,0x83,0x7c,0x88,0xd0,0xb4,0xaf,0x2c,0x32,0x6e,0x69,0x8a,0x19,0x6a,0x59,0xdd,0x15,0xcb,0xc3,0x2c,0xa3,0xdd,0x36,0xe4, - 0x53,0xba,0x39,0xcb,0xbe,0x70,0x0a,0xa7,0xf8,0xfd,0xdf,0xf0,0x3b,0x8e,0xe5,0xf1,0xf7,0xd8,0xdd,0xf9,0x0e,0x97,0x35,0xeb, - 0x6b,0xab,0x3d,0xb3,0xa2,0x25,0x8b,0x22,0xd7,0x5b,0xca,0x9e,0x29,0xfc,0xf6,0x37,0xf3,0xd7,0x6f,0xef,0x66,0xdc,0xbf,0x7d, - 0xdb,0xbe,0x91,0xfb,0x3a,0x3e,0x7e,0x16,0xc5,0xd9,0x5b,0x9f,0xef,0xe7,0x2e,0xf3,0xb3,0xb8,0x30,0xd4,0x5c,0xf6,0x72,0xef, - 0xfd,0xff,0xf7,0x0f,0xb5,0xe3,0xfd,0xcf,0xf7,0x3d,0x18,0x36,0x6e,0x46,0xff,0xfb,0xfa,0x58,0x99,0x39,0x7b,0xdb,0x4f,0x65, - 0xdf,0x4c,0x9a,0x8e,0xa8,0xcb,0x56,0x9b,0x7f,0x53,0x7e,0xd3,0x3e,0xdf,0xb2,0x5a,0xf9,0xfa,0x28,0xac,0xe3,0xec,0x6f,0xaf, - 0xaf,0xad,0xd7,0xbf,0x79,0x26,0xec,0xef,0xd9,0x7e,0xbc,0xcd,0x19,0xc6,0x73,0xac,0xcd,0x7d,0xf3,0x73,0x7f,0x7f,0x92,0xdd, - 0xcd,0x5f,0xbf,0x8d,0x43,0x9d,0xef,0x70,0xd9,0xd3,0xf6,0x6d,0x1f,0xda,0x9b,0x72,0xc8,0x1a,0x2c,0xd7,0xde,0x8d,0x30,0x8e, - 0x16,0xcf,0x96,0xa6,0x7c,0x52,0x98,0xcf,0x03,0xe6,0xff,0x6f,0x65,0xb3,0xf3,0x1d,0x2e,0x3b,0x18,0x6a,0xcb,0xed,0x71,0xaa, - 0x2d,0x4d,0xf9,0xf4,0x1d,0xdf,0xbb,0x62,0xab,0x61,0xa6,0x30,0x3f,0x49,0x1e,0xce,0xfc,0xf5,0x5b,0x66,0xdc,0xe1,0x7c,0x87, - 0xcb,0x9d,0xae,0x2a,0xb9,0x76,0xd7,0x56,0xf5,0x6d,0xab,0x2d,0xb7,0x45,0x4b,0x16,0xf9,0x22,0xb2,0x9e,0x5b,0x76,0x30,0x9b, - 0xab,0xb1,0xfb,0x78,0xcf,0xdd,0x9c,0xdf,0x1c,0xd8,0xe8,0x7c,0x87,0xcb,0x9e,0xd6,0xb7,0xad,0xc6,0xc9,0x8a,0x96,0xac,0xb6, - 0xf7,0xf1,0xd7,0xb7,0xbb,0x22,0xce,0x30,0xbb,0xc4,0xbf,0x0d,0xd9,0xf7,0x4e,0xe7,0x49,0xae,0xff,0xdf,0xf3,0xb8,0xcd,0x67, - 0x60,0x61,0x7d,0x39,0x6e,0x69,0xf7,0xa1,0x67,0x1c,0xb9,0xe3,0xfc,0xfc,0x9e,0xa1,0xa6,0x70,0xff,0x70,0xee,0x7e,0x3e,0x84, - 0xef,0x4e,0xdb,0xed,0x6c,0x97,0xdf,0x5d,0x35,0xee,0x5f,0x5f,0xbb,0xec,0xb0,0x76,0xf9,0xdd,0xcd,0xf5,0xb9,0x2b,0xb6,0x1d, - 0x66,0x9c,0x5b,0x56,0x73,0x4c,0x1d,0x48,0x72,0xbc,0xf9,0xeb,0x37,0xb1,0xb8,0x87,0xa9,0xb9,0x1c,0x64,0x75,0xdb,0x32,0x7e, - 0x0a,0x63,0xcd,0xcb,0x33,0x7f,0xbd,0xe3,0xe9,0xbc,0x1b,0xe1,0xb0,0x3d,0x4e,0x3e,0x73,0xbe,0xab,0x9b,0x95,0x6d,0x77,0xb6, - 0xf4,0x8d,0xd6,0xde,0x92,0x82,0xf3,0x0e,0x96,0x99,0xd7,0x5b,0xd6,0xed,0xcb,0xef,0x7a,0x30,0x6c,0x96,0xe3,0xf8,0xdb,0xfb, - 0x5a,0xad,0xcd,0x8a,0xe5,0xd8,0x61,0xa3,0x7c,0x57,0x6c,0x3b,0xcc,0x14,0xae,0x6f,0xdc,0x7b,0x16,0x7f,0x67,0x1f,0xc7,0x6c, - 0x7b,0xbe,0xce,0x77,0xb8,0xdc,0x69,0xe5,0xcc,0x8d,0xd6,0xb6,0xc5,0x29,0xf7,0x72,0x5b,0xdb,0x63,0x0a,0x33,0x64,0xef,0xfc, - 0xf9,0x7c,0xf1,0xbd,0x46,0x07,0x43,0xe4,0x43,0x7b,0x19,0xe1,0xf1,0xd8,0xbd,0x56,0xed,0xfd,0x6f,0xa3,0x3e,0x59,0x83,0xb7, - 0xb5,0x38,0xab,0x51,0xeb,0xf9,0xfd,0xce,0x77,0x14,0xdb,0x76,0x30,0x44,0x56,0xd7,0x96,0x71,0x18,0xdb,0xad,0xaa,0xdd,0xad, - 0xc6,0xcc,0x8a,0x96,0xd8,0x72,0xbf,0xb7,0x35,0xe3,0x3e,0x7d,0x67,0xc8,0xde,0xf9,0xf3,0xe1,0x81,0x7d,0x1b,0x38,0xb1,0x29, - 0xbc,0xb3,0x90,0x24,0x53,0x36,0x7f,0xbd,0xe9,0xef,0x98,0x6d,0xcf,0xc5,0xf9,0xbd,0xcb,0x8e,0x96,0x35,0xe9,0xd6,0xff,0x21, - 0x7e,0xb9,0xaf,0xac,0xd5,0x31,0xe3,0x7b,0x57,0x44,0x18,0xe6,0xf1,0x6b,0x5e,0xcf,0x3f,0xbf,0xbf,0x7d,0x1d,0x56,0x3f,0x07, - 0xf8,0xba,0xe8,0x73,0x76,0xc6,0xc7,0x92,0x8f,0xfe,0xeb,0x53,0xbb,0xce,0x24,0xf4,0xdc,0xb6,0xde,0xbf,0xda,0x92,0xc2,0xd5, - 0x8c,0x03,0xae,0xff,0x77,0xdd,0xac,0xf7,0xef,0x1b,0xe1,0x7c,0xcd,0x67,0xf8,0x5e,0xeb,0xb5,0x8d,0xdb,0xeb,0x3d,0xbb,0xc4, - 0x2c,0x8d,0x73,0x18,0x70,0xfd,0xbf,0x1b,0x6a,0xc7,0xf9,0xf3,0x6a,0x9f,0xf5,0x9e,0xdd,0xb7,0x4d,0xd9,0x79,0xab,0x9b,0x51, - 0x7e,0xb5,0x76,0x73,0xed,0x8d,0x7a,0x2e,0x2b,0xcb,0x71,0x7d,0x3a,0x8e,0xef,0xab,0xa1,0xa6,0x70,0xfd,0x21,0x49,0xf2,0x1c, - 0xcd,0x5f,0x9f,0x3b,0xae,0xf9,0x7d,0x42,0x64,0xd8,0x18,0xf7,0x49,0xa1,0x32,0x24,0xcf,0xdd,0xfc,0xf5,0xd9,0x03,0xc7,0x7f, - 0x79,0x4a,0xb3,0x5e,0xbe,0x09,0x37,0x3b,0xed,0x1b,0x67,0x98,0xd3,0x56,0x3e,0x5b,0xd7,0xe1,0x33,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0xc9,0xe3,0x9a,0xc2,0xe7,0xff,0xbc,0x6c,0x43,0x02,0xf3,0x9c,0xac,0xbb,0xf9,0x96,0xea,0x33,0xcd,0x9a,0xff,0x24, - 0x2f,0xcf,0x14,0xee,0x0d,0x48,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0xf2,0x92,0xcc,0x5f,0x1f,0x90,0xd3,0x39,0xf9,0xfc,0xfc,0xbf,0x33,0x92,0x24,0x49,0x92,0xe4,0xa3,0xf3,0x75, - 0xcd,0xe7,0x35,0x53,0xc8,0xf3,0x10,0x36,0x1d,0x5d,0x5c,0x87,0xd7,0xad,0x3d,0x49,0x92,0xa7,0xb5,0xfe,0xce,0x95,0x42,0x56, - 0x24,0xcf,0xc5,0xd5,0xf7,0x23,0xb3,0x9b,0xeb,0x62,0xb9,0x8b,0xf1,0x35,0xa7,0xdc,0xb6,0xab,0xa7,0xfe,0x8e,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x39,0xde,0xfc,0xf5,0x7f,0x66,0x24,0x49,0x92,0xe4,0x19,0xfb,0xba,0xf0,0x79,0x02, - 0x99,0x90,0x53,0xb9,0x7a,0x5e,0xe3,0x21,0x3c,0xf5,0x33,0x38,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x8f,0xcd,0xfc,0xf5,0x69,0x92,0x24,0x49,0x92,0xe4, - 0x50,0x7b,0x3d,0x7f,0x7d,0xfb,0x79,0x5a,0xe6,0x7f,0x57,0x2c,0x0f,0xb3,0xa9,0x26,0x59,0xb1,0x36,0x5b,0xef,0xeb,0x53,0xbc, - 0x44,0x37,0xf3,0xe7,0x53,0x43,0xed,0x78,0x7e,0x7d,0xdb,0xb9,0x19,0xe7,0x3f,0x0f,0xcb,0x6f,0x6b,0x36,0xab,0xf5,0x1f,0xf0, - 0xf9,0xcf,0xb7,0xb2,0xd9,0xbc,0xce,0x1d,0xcd,0x8a,0xfe,0xb1,0x63,0xf6,0x1b,0x47,0x18,0x33,0xbe,0x77,0x45,0x84,0x61,0xf6, - 0x9d,0x21,0x29,0xcc,0xa8,0xd4,0x66,0x7b,0x0a,0x9f,0xf1,0x92,0x24,0x49,0x92,0x24,0xc9,0xd3,0x9a,0xbf,0x5e,0x90,0xc5,0x27, - 0x7e,0x1b,0xe3,0xf6,0x14,0x66,0x29,0x2f,0xd5,0xfc,0xf5,0x2d,0x3c,0x67,0x9b,0x46,0x76,0x1e,0x96,0x9b,0x3e,0x73,0x4e,0x64, - 0xf7,0x33,0xab,0xac,0x7f,0xdd,0xe3,0x8c,0x3e,0x8f,0xe3,0xab,0x45,0xf8,0xe4,0x6c,0xe5,0x27,0x56,0x66,0xf3,0x62,0x39,0xf7, - 0x7a,0xb1,0x7c,0x7f,0x56,0xf4,0x19,0xe7,0xbc,0x88,0x56,0x3a,0x3e,0x5a,0xdd,0x97,0x45,0xfe,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x9e, - 0x97,0xef,0x42,0x08,0x7d,0x4c,0x21,0x67,0x92,0x24,0x49,0x92,0x24,0x49,0x1e,0xce,0xb0,0x08,0xef,0x93,0x24,0x49,0x92,0x8f, - 0xc9,0xbe,0xdf,0x99,0x5e,0x92,0xc3,0x9e,0x1a,0x52,0xc8,0x9c,0x9c,0xc6,0x40,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0xbc,0x09,0x8b,0xf0,0x7c, - 0xb6,0xc3,0xd5,0xda,0x5d,0xed,0xdd,0xfb,0x97,0x2d,0x2f,0x8b,0xe5,0xdc,0x6b,0x92,0x24,0xcf,0xca,0xe7,0xdb,0x96,0xef,0x6b, - 0x2c,0xfd,0x44,0x51,0xa5,0xd8,0xa3,0xed,0xf7,0xf9,0x2e,0xfb,0xc6,0xc9,0xc7,0xf4,0x13,0x24,0x49,0x92,0xec,0x6f,0xdb,0x5d, - 0xd6,0xa9,0x3f,0xe3,0x22,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0xd6,0xcd,0x5f,0x1f,0x27,0x4f,0xe7,0x31,0xe7,0xe7,0x54,0xf1,0x8f,0x73,0x7e,0xd5,0xe3,0xcc,0xc3,0x72,0x63,0x76,0xdf,0xf2, - 0x24,0xec,0x32,0x85,0x6b,0x0b,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x5e,0x92, - 0xf3,0xb0,0x9c,0xcd,0xb8,0xe5,0xaa,0x32,0x6b,0x53,0xc8,0xa7,0x9e,0x55,0x77,0x03,0x79,0x86,0x0e,0x9b,0xed,0xbb,0x3d,0xf5, - 0x35,0x36,0x65,0xc7,0x8c,0x11,0x49,0xf2,0xb4,0x8e,0x79,0x7f,0x4c,0x21,0xff,0xe3,0x57,0x29,0x85,0x7c,0x1e,0x83,0xf3,0x2d, - 0xab,0x4f,0x34,0xfb,0xfa,0x37,0xf9,0xa4,0xa7,0xfd,0x9e,0xb3,0xb6,0xf3,0x19,0xb2,0xd5,0xb9,0x78,0x49,0xc7,0x72,0x6e,0x66, - 0x1b,0xa7,0x7c,0xd2,0x19,0x72,0xfd,0xcf,0x6e,0x03,0x93,0x30,0x3f,0xfb,0x2a,0x96,0xed,0x29,0x3c,0x27,0x92,0xac,0xbb,0xe2, - 0x14,0xef,0x20,0xef,0x26,0x32,0x7e,0x27,0xe2,0x63,0x76,0xe8,0xfc,0x49,0xd1,0x7e,0x47,0x71,0xea,0x6b,0x08,0x79,0x2a,0x03, - 0x1f,0xb1,0xe6,0xc0,0x79,0x59,0x1f,0xaf,0xfa,0xb9,0xdc,0x74,0x76,0x77,0x39,0xeb,0xa7,0x9d,0x0f,0xf5,0xac,0xc6,0x1c,0x29, - 0x4f,0x65,0x97,0x39,0x33,0x6c,0xbc,0x2e,0x7b,0x56,0x8c,0x3f,0xd7,0x9a,0xce,0xeb,0xcb,0xae,0x1b,0x49,0x92,0x1c,0xaf,0xe7, - 0xfd,0x71,0x66,0x09,0xe4,0x70,0xa9,0xaa,0xed,0xe1,0x54,0xdb,0xc3,0xa9,0xb6,0x87,0x73,0x48,0x6d,0xe3,0xf7,0xb8,0xbb,0x70, - 0xc5,0x8e,0xe6,0xf5,0xca,0x66,0x24,0x49,0x92,0x24,0x1f,0x85,0xf3,0xb0,0xe4,0x24,0xaa,0xf0,0xe1,0x6a,0xd8,0x5e,0xdb,0xc3, - 0x9d,0x17,0x71,0x4b,0xd6,0x60,0xb9,0x76,0xf5,0xc9,0xc3,0x61,0x6c,0xaf,0x58,0x97,0x3e,0x63,0x4c,0xe1,0x67,0x14,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xd9,0xdd,0xfc,0xf5,0xec,0x3c,0x4d,0xa1,0x7a,0x24,0x79,0xbe,0xce,0xc3,0xf2,0x69,0x37, - 0xfb,0xf6,0x1f,0xe3,0x54,0x19,0x76,0x89,0x90,0xc2,0x28,0x90,0xe4,0xf1,0xcd,0x5f,0x1f,0xe3,0xda,0x7a,0x7d,0xf2,0xf7,0x88, - 0x8f,0x75,0x73,0xd8,0x5e,0xee,0x8a,0x96,0x61,0x76,0x19,0xd3,0x14,0xe6,0x18,0x49,0x92,0x8f,0xcd,0xfc,0xf5,0xe4,0xdc,0xcc, - 0xef,0x67,0x9e,0x1c,0xb1,0x3e,0x4b,0x16,0x35,0xdf,0xe9,0x5d,0xb1,0x76,0x98,0xed,0x95,0x7f,0x1b,0x6e,0xf6,0xf6,0x21,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xc9,0xc7,0x63,0xfe,0x7a,0xaf,0x9b,0xed,0xfd,0xeb,0x6b,0xfb,0xc6,0xef,0xeb,0x3a, - 0xfe,0xec,0x86,0x24,0xd3,0xf3,0x5d,0x98,0x85,0xb5,0xc3,0x22,0xcc,0xc3,0xb2,0xa3,0xf1,0xbe,0x1e,0x8f,0x79,0x95,0x16,0x4c, - 0xcf,0x7c,0x4e,0x76,0xb4,0xec,0xdf,0x34,0xbe,0x77,0xc5,0xda,0x61,0x36,0xc5,0x7c,0x5d,0xac,0x7d,0xdd,0xda,0x87,0x24,0x49, - 0x92,0x24,0x49,0x92,0xec,0xe6,0x3c,0xac,0x3e,0xe3,0xe2,0x61,0x7d,0xd3,0xb3,0xbd,0xf4,0xdd,0x04,0xa6,0x30,0xc7,0x1e,0xb3, - 0xa7,0x9f,0x7b,0x8f,0xcd,0x29,0xce,0x1a,0xe7,0x17,0xc9,0xb1,0xe6,0x57,0xa4,0xab,0x5d,0x6e,0xde,0x17,0x76,0xae,0x4d,0xc7, - 0x7a,0x9e,0x71,0x4b,0x7c,0x25,0x9c,0xea,0xb8,0xda,0x23,0x34,0xed,0xab,0xcb,0xb5,0xba,0xbd,0x67,0x97,0xf8,0xd3,0xd6,0x67, - 0xd8,0x7e,0xdb,0xe3,0x8f,0x9f,0x69,0x63,0xa2,0x1d,0x73,0x26,0x1c,0x62,0x9e,0xb7,0xcf,0x8d,0xbe,0xb9,0xa5,0x93,0x3f,0x9b, - 0x47,0x36,0xbb,0x5a,0xeb,0xfe,0x90,0x24,0x39,0x95,0x2f,0x43,0x16,0x66,0x8b,0x1d,0x2e,0x1a,0xda,0x2f,0xd6,0xd0,0x60,0x0a, - 0xb9,0xf1,0xf2,0x6c,0x9a,0x6f,0x7d,0x3d,0x4e,0x86,0x87,0xde,0xcb,0x01,0x22,0x2f,0x0e,0x1c,0x3f,0x21,0x87,0xcf,0x9f,0xa7, - 0xf9,0xc3,0xd9,0xec,0x66,0x94,0xab,0x1c,0xee,0xad,0xe7,0xf6,0x74,0x1e,0x8a,0x9e,0xe7,0xe4,0xea,0x17,0xe3,0x56,0x9e,0x6b, - 0xfe,0xe7,0x62,0x51,0xe1,0xd8,0x1d,0x73,0xbb,0xe8,0x19,0x3b,0xd5,0xde,0x0f,0x11,0x73,0xed,0xa2,0x16,0xb9,0x6c,0x19,0xe6, - 0x11,0x47,0x64,0xea,0xf7,0x26,0xae,0xfc,0x8e,0x95,0xd7,0x69,0xfa,0x72,0x11,0xae,0xaf,0x6e,0x72,0xc3,0xd5,0xe2,0xe5,0xe2, - 0x00,0x15,0x58,0x14,0xf3,0x6a,0xb8,0xe3,0x23,0x4c,0xbb,0xf7,0xc5,0x20,0x6f,0x26,0xae,0x4f,0xbf,0xfa,0x1f,0x66,0x64,0xef, - 0xe3,0x67,0xfb,0x4d,0xe0,0x1c,0x24,0xb9,0xc3,0x2e,0xe7,0x6f,0xfa,0x4e,0xfb,0xcc,0x38,0x6c,0xef,0x29,0xd4,0x81,0x93,0x8e, - 0xd4,0xfb,0xc9,0xcc,0xd8,0x10,0x39,0xc1,0x8c,0x9d,0xc8,0x10,0xd9,0xa5,0x67,0x97,0x6a,0xc7,0xb6,0x8f,0xc5,0x7d,0xcf,0xf0, - 0x60,0x8f,0xca,0x9c,0xf6,0x8a,0x31,0x7e,0xb6,0xb4,0xb7,0x47,0x7e,0xcb,0xca,0xeb,0x26,0x93,0x38,0x2b,0x1f,0xa7,0xb5,0x71, - 0x6c,0x9f,0xf9,0x63,0x3c,0xed,0x91,0x8e,0xcf,0x7f,0xfc,0xf1,0xb6,0xd7,0xa1,0x29,0xc2,0x98,0x4a,0xd6,0xe3,0x1c,0xa2,0xb6, - 0xa1,0xc3,0x72,0x97,0x0c,0xbb,0x44,0xee,0x12,0x93,0x49,0x5b,0x7b,0xa7,0x08,0x9d,0x3d,0x74,0x6e,0xdd,0x33,0x39,0x55,0xce, - 0x93,0xe5,0x56,0xfd,0xdc,0xbb,0x8b,0x8b,0xba,0x7b,0xee,0x40,0x12,0xb8,0x3f,0xdc,0x33,0x03,0x47,0xd8,0x78,0xd7,0x17,0xf7, - 0x99,0x74,0x8f,0x63,0xf2,0x6c,0xcf,0xf0,0x20,0x79,0x26,0x70,0xec,0x29,0xdb,0x74,0x4e,0xed,0x39,0xd7,0x92,0xb1,0x47,0xce, - 0x29,0x9c,0xf5,0x1c,0x64,0xf7,0x3b,0xdb,0x26,0x07,0xbd,0xd7,0x9c,0x99,0x1f,0xd6,0x7c,0x55,0xb3,0x69,0xdb,0x14,0x46,0xf9, - 0x10,0x73,0x26,0x85,0x99,0x39,0x59,0xb6,0x1d,0xae,0x87,0x8d,0xef,0xa1,0xed,0xd1,0x76,0xac,0xed,0xf9,0x69,0xf9,0xf8,0xeb, - 0xf9,0x9e,0xbd,0x77,0x3e,0xae,0x4e,0x95,0xac,0xc6,0x4f,0xe1,0xfc,0x25,0xfb,0x3a,0xd5,0xf7,0x5f,0x29,0x1c,0x0b,0x4f,0x37, - 0x8b,0xb2,0x86,0x6b,0xec,0xd1,0xbf,0x3f,0x6d,0x8f,0x7f,0xb0,0xef,0x7f,0x57,0x75,0x28,0x7e,0xbf,0x6c,0xa4,0xab,0x68,0x61, - 0x51,0x77,0xaa,0xf8,0x6c,0xaf,0xf3,0x21,0xea,0x7f,0xe8,0xf8,0xe7,0xe8,0x31,0xeb,0x9f,0xc6,0x31,0x66,0x91,0xfd,0x8e,0x9d, - 0xe9,0xbb,0x1a,0xf1,0x29,0xde,0x49,0xbb,0x7c,0x5f,0x3f,0xec,0xb9,0x72,0xfc,0x37,0x9b,0xe3,0x9f,0x4f,0x47,0x7d,0x0b,0x19, - 0xd5,0x67,0xe0,0xf3,0x72,0x11,0x21,0x85,0xcf,0x16,0x52,0x36,0x85,0x6f,0xba,0x1f,0x9b,0xed,0xdf,0x98,0x1f,0x7f,0x5c,0xba, - 0x7f,0x8f,0x7f,0xbe,0x3f,0x4d,0x31,0xad,0xc5,0xd5,0x9b,0x8f,0xce,0xe9,0x9e,0x22,0xb3,0x03,0xd8,0xf9,0xf9,0xba,0x9e,0xcf, - 0xb4,0xfd,0xdb,0xb7,0xed,0x62,0x02,0xe7,0xf8,0xa8,0x63,0x3c,0x44,0xcc,0xd6,0xf8,0x3b,0xae,0xb7,0x63,0xe6,0xe7,0xe1,0x32, - 0x1f,0x16,0xbf,0x67,0xfe,0x3d,0xde,0x95,0x06,0xd5,0x27,0x85,0xe7,0x4d,0xf2,0xf1,0xb8,0xfe,0x77,0x57,0x4f,0x9f,0xc9,0x65, - 0x98,0xc2,0xbf,0x02,0x7c,0x38,0xef,0xc2,0xd5,0x60,0xbb,0xc4,0x4f,0xe1,0x33,0x28,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x39,0xde,0x77,0xe1,0x49,0xf1,0xf9,0xff,0xca,0x97,0x8b,0x30,0x9f,0x91,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0xf2,0x94,0x86,0x33,0x37,0x85,0x1a,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0xd6,0xf5,0xef,0x2f, - 0x90,0xe4,0x21,0x74,0xfd,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0xc6,0x86,0x03,0x98,0xc2,0x71,0x91,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0xa7,0x32,0x90,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x76,0x36,0x85,0xbf,0x9e,0x44,0x92,0x24,0x49,0x92,0x4d,0xa6,0xf0, - 0xdc,0x44,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x9e,0xc4,0x77,0xe1,0x49,0x08,0xf7,0xbe,0x3c,0xf5, - 0x4f,0xf2,0x90,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x87,0xf6,0xe4, - 0xff,0xa2,0x28,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0xe4,0x79,0xf9,0x2e,0x3c,0x09,0x61,0x63,0x20,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0xc9,0xc8,0x27,0x91,0x29,0xe4,0x43,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x32,0x1d,0x9f,0x44,0xa6,0x90,0x0f,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xc9,0x74,0x7c,0x12,0x99,0x42,0x3e,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xd3,0xf1,0x49,0x64,0x0a,0xf9,0x90,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0xe4,0xff,0x6f,0xef,0x8e,0x51,0x18,0x06, - 0x62,0x28,0x0a,0xca,0x8b,0x09,0xd1,0xfd,0x2f,0x1c,0x30,0x98,0x88,0xa4,0x33,0x86,0xfc,0xc0,0x34,0x53,0xa8,0x7a,0x85,0xd0, - 0x96,0x4b,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x73,0xec,0x61,0x42,0x0f, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xc9,0x1c,0x7b,0x98,0xd0,0x43, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x32,0xc7,0x1e,0x26,0xf4,0x90, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0xcc,0xb1,0x87,0x09,0x3d,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24, - 0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x73,0xec,0x61,0x42,0x0f,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0xc9,0x1c,0xfb,0xc3,0xf5,0x35,0xf9, - 0x17,0x8f,0xf2,0x9d,0xbc,0x66,0xc2,0x0e,0x93,0x3f,0xbb,0x9f,0xeb,0xb9,0x91,0x24,0xf3,0x4c,0x78,0x23,0x48,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x5e,0x35,0xe1,0x3f,0x02,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92, - 0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0xbc,0xcb,0x7e,0xbb,0xaa,0x36,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x3c,0xad,0xae,0x3a,0x4d,0xe8,0x21,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49, - 0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x49,0x92,0x24,0x99,0x63,0x75,0xd5,0xe3,0x05,0x08, - 0xc2,0x7e,0x44, -}; diff --git a/modules/juce_graphics/unicode/juce_UnicodeGenerated.cpp b/modules/juce_graphics/unicode/juce_UnicodeGenerated.cpp new file mode 100644 index 0000000000..0c04749a4d --- /dev/null +++ b/modules/juce_graphics/unicode/juce_UnicodeGenerated.cpp @@ -0,0 +1,1380 @@ +/* + ============================================================================== + + This file is part of the JUCE framework. + Copyright (c) Raw Material Software Limited + + JUCE is an open source framework subject to commercial or open source + licensing. + + By downloading, installing, or using the JUCE framework, or combining the + JUCE framework with any other source code, object code, content or any other + copyrightable work, you agree to the terms of the JUCE End User Licence + Agreement, and all incorporated terms including the JUCE Privacy Policy and + the JUCE Website Terms of Service, as applicable, which will bind you. If you + do not agree to the terms of these agreements, we will not license the JUCE + framework to you, and you must discontinue the installation or download + process and cease use of the JUCE framework. + + JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ + JUCE Privacy Policy: https://juce.com/juce-privacy-policy + JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ + + Or: + + You may also use this code under the terms of the AGPLv3: + https://www.gnu.org/licenses/agpl-3.0.en.html + + THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL + WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. + + ============================================================================== +*/ + +/* This file was generated with JUCE-Utils/Unicode/generate_unicode_blob.py */ +namespace juce +{ +enum class LineBreakType : uint8_t +{ + al, + bk, + cm, + cr, + gl, + lf, + nl, + sp, + wj, + zw, + zwj, + ai, + b2, + ba, + bb, + cb, + cj, + cl, + cp, + eb, + em, + ex, + h2, + h3, + hl, + hy, + in, + is, + jl, + id, + jt, + jv, + ns, + nu, + op, + po, + pr, + qu, + ri, + sa, + sg, + sy, + xx, + opw +}; + +enum class EastAsianWidthType : uint8_t +{ + neutral, + narrow, + ambiguous, + full, + half, + wide +}; + +enum class BidiType : uint8_t +{ + ltr, + rtl, + al, + en, + an, + es, + et, + cs, + nsm, + bn, + b, + s, + ws, + on, + lre, + lro, + rle, + rlo, + pdf, + lri, + rli, + fsi, + pdi, + none +}; + +enum class VerticalTransformType : uint8_t +{ + r, + u, + tr, + tu +}; + +enum class EmojiType : uint8_t +{ + yes, + presentation, + modifier, + modifierBase, + component, + extended, + no +}; + +enum class UnicodeScriptType : uint8_t +{ + common, + inherited, + han, + arabic, + hiragana, + adlam, + mende_kikakui, + ethiopic, + wancho, + toto, + nyiakeng_puachue_hmong, + glagolitic, + latin, + signwriting, + greek, + duployan, + nushu, + katakana, + tangut, + khitan_small_script, + miao, + medefaidrin, + pahawh_hmong, + bassa_vah, + tangsa, + mro, + bamum, + cypro_minoan, + cuneiform, + tamil, + lisu, + makasar, + gunjala_gondi, + masaram_gondi, + marchen, + bhaiksuki, + pau_cin_hau, + canadian_aboriginal, + soyombo, + zanabazar_square, + nandinagari, + dives_akuru, + warang_citi, + dogra, + ahom, + takri, + mongolian, + modi, + siddham, + tirhuta, + newa, + grantha, + khudawadi, + multani, + khojki, + sinhala, + sharada, + mahajani, + chakma, + sora_sompeng, + kaithi, + brahmi, + elymaic, + chorasmian, + sogdian, + yezidi, + hanifi_rohingya, + psalter_pahlavi, + avestan, + manichaean, + kharoshthi, + meroitic_cursive, + lydian, + phoenician, + hatran, + nabataean, + palmyrene, + imperial_aramaic, + cypriot, + vithkuqi, + caucasian_albanian, + elbasan, + osage, + osmanya, + shavian, + deseret, + ugaritic, + gothic, + carian, + lycian, + hangul, + cyrillic, + hebrew, + armenian, + meetei_mayek, + cherokee, + tai_viet, + myanmar, + cham, + javanese, + rejang, + kayah_li, + devanagari, + saurashtra, + phags_pa, + syloti_nagri, + vai, + yi, + bopomofo, + tifinagh, + georgian, + coptic, + braille, + sundanese, + ol_chiki, + lepcha, + batak, + balinese, + tai_tham, + buginese, + khmer, + limbu, + tai_le, + tagbanwa, + buhid, + hanunoo, + tagalog, + runic, + ogham, + tibetan, + lao, + thai, + malayalam, + kannada, + telugu, + oriya, + gujarati, + gurmukhi, + bengali, + syriac, + mandaic, + samaritan, + nko, + thaana, + linear_a, + linear_b, + new_tai_lue, + old_hungarian, + old_turkic, + old_uyghur, + old_sogdian, + old_south_arabian, + old_north_arabian, + old_persian, + old_permic, + old_italic, + inscriptional_pahlavi, + inscriptional_parthian, + anatolian_hieroglyphs, + egyptian_hieroglyphs, + meroitic_hieroglyphs, + emoji +}; + +enum class BreakOpportunity : uint8_t +{ + direct, + indirect, + prohibited, + combinedIndirect, + combinedProhibited +}; + +enum class GeneralCategory : uint8_t +{ + xx, + cn, + lu, + ll, + lt, + lm, + lo, + mn, + me, + mc, + nd, + nl, + no, + zs, + zl, + zp, + cc, + cf, + co, + cs, + pd, + ps, + pe, + pc, + po, + sm, + sc, + sk, + so, + pi, + pf +}; + + +struct UnicodeEntry +{ + LineBreakType bt; + EastAsianWidthType asian; + BidiType bidi; + UnicodeScriptType script; + VerticalTransformType vertical; + EmojiType emoji; + GeneralCategory generalCategory; +}; + +class UnicodeDataTable +{ +public: + UnicodeDataTable() = delete; + + static UnicodeEntry getDataForCodepoint (uint32_t codepoint) + { + static const auto data = [] + { + [[maybe_unused]] constexpr auto hash = [] + { + uint32_t v = 5381; + + for (auto c : compressedData) + v = ((v << 5) + v) + (uint32_t) c; + + return v; + }(); + + jassert (hash == 0x7f9e2da); + + MemoryInputStream mStream { compressedData, std::size (compressedData), false }; + GZIPDecompressorInputStream zStream { &mStream, false }; + + Array arr; + arr.resize (uncompressedSize / sizeof (UnicodeEntry)); + [[maybe_unused]] const auto r = zStream.read (arr.getRawDataPointer(), uncompressedSize); + jassert (r == uncompressedSize); + + return arr; + }(); + + jassert (isPositiveAndBelow (codepoint, data.size())); + return data[(int) codepoint]; + } + +private: + static constexpr auto uncompressedSize = 7798777; + static constexpr uint8_t compressedData[] + { + 0x78,0x9c,0xec,0xdd,0xf9,0x83,0x23,0xd9,0x5d,0x18,0xf0,0x27,0xf5,0x48,0xd3,0xdd,0xd3,0x1a,0x7b,0xec,0x99,0xb5,0x66,0xa6, + 0xc7,0x9e,0x9e,0xd9,0xc5,0x30,0x80,0x09,0x47,0x30,0x10,0x93,0x70,0x1f,0x39,0xc9,0x9d,0x78,0x31,0x37,0x38,0x24,0x80,0x43, + 0xb0,0xc1,0x84,0x23,0x60,0x7c,0x03,0x26,0x21,0x21,0x07,0x81,0x24,0x7f,0x6a,0xaa,0xea,0x55,0xab,0x55,0x52,0xa9,0x54,0x52, + 0x95,0xa4,0xd7,0xea,0xcf,0xfe,0xd0,0x9f,0xad,0xe3,0x1d,0xdf,0x77,0x55,0x95,0xae,0x19,0x86,0xb3,0x10,0xc6,0xef,0x1d,0x6e, + 0xc9,0x24,0x3c,0xc8,0x19,0x85,0xf3,0x9c,0x41,0xdc,0x1a,0x84,0x8b,0x9c,0x93,0xb8,0x73,0xdb,0xac,0x37,0xe1,0xbc,0x8e,0xa2, + 0x2e,0xf7,0x07,0x79,0x5d,0x26,0x4f,0x06,0x93,0x8c,0xe9,0x3b,0x91,0x30,0x18,0x87,0x70,0x6f,0xfa,0x76,0xce,0xf8,0xd9,0xeb, + 0x82,0x6c,0xe7,0xfc,0x29,0xaf,0x0a,0x9e,0xbc,0xaf,0xe0,0xad,0xe2,0x58,0x9e,0x60,0x94,0x6d,0x3d,0x7d,0x3e,0xb8,0x9f,0x9f, + 0xf2,0xb4,0xd8,0x7a,0x5c,0x6e,0x7d,0x43,0xe4,0x6a,0x70,0x92,0x9d,0x79,0xde,0x91,0x32,0xcf,0xe7,0xd7,0xd5,0xcd,0x79,0x5a, + 0xe5,0xc9,0xfc,0xb1,0x8c,0xac,0xcd,0xc7,0xc3,0x5b,0x46,0xd9,0xc8,0x6f,0xc7,0x18,0xe6,0xdb,0x7a,0xfc,0x3c,0xf2,0x81,0xd9, + 0x56,0x9e,0xe0,0xe4,0x96,0x51,0xc6,0x37,0x89,0x3d,0xf6,0x68,0x3e,0xbe,0xa7,0xed,0x87,0xf7,0x78,0x7f,0xf3,0xa8,0x7f,0xee, + 0x85,0x7c,0x24,0x4f,0x5e,0x0d,0x8b,0x2e,0x8e,0x53,0xed,0x59,0x39,0xf1,0xde,0x1e,0xce,0x6f,0xc5,0x76,0xb9,0x7c,0x90,0x9d, + 0x39,0x18,0x4f,0x1f,0x0c,0x63,0xbf,0x87,0x6c,0x6b,0x94,0xed,0xcc,0xdb,0x73,0xfc,0x4e,0xc8,0x77,0xbe,0x28,0x5b,0x70,0x32, + 0xcc,0x4b,0x78,0x14,0x86,0xc5,0x29,0xe5,0x40,0x79,0x5d,0xe4,0x79,0x99,0x67,0x3d,0x18,0x3f,0x7d,0x30,0xcc,0xa6,0xd3,0xf8, + 0xa2,0xe4,0xe1,0x75,0x9e,0xd9,0x7f,0xe3,0x93,0x58,0xc2,0xb4,0xc2,0xf3,0x59,0x82,0xb9,0xf2,0x3e,0x18,0xab,0x74,0x51,0xa5, + 0x8c,0x28,0xcb,0xaa,0x18,0xd0,0x2d,0x18,0xb6,0x3e,0xb3,0xcf,0x5c,0x62,0x75,0x9f,0x6e,0x90,0x6e,0x38,0xc7,0xc9,0x02,0xa1, + 0x81,0x61,0xdd,0x56,0x6d,0xf2,0xa6,0x3c,0xdb,0x9f,0x19,0xa9,0xc4,0xd7,0x5c,0x5e,0xed,0xd6,0x7c,0xd0,0x27,0x95,0x96,0xd8, + 0xe9,0xd6,0xb0,0x97,0xd2,0x7b,0xad,0xf5,0x70,0x7d,0x9e,0xed,0xcb,0x1b,0xb6,0xce,0xb3,0xa6,0x57,0xb6,0xa8,0x6e,0x6d,0x41, + 0x2d,0x42,0xd9,0x36,0x79,0xfb,0x36,0xdb,0xdb,0x56,0xaf,0xfd,0xd7,0x69,0xab,0x7d,0x82,0xc5,0x69,0xd8,0xa9,0x84,0xda,0x63, + 0x4d,0xa7,0xf4,0x93,0x75,0xfb,0xe4,0xfd,0xb4,0x60,0x3f,0xed,0xd2,0x22,0x79,0xc9,0x78,0x7d,0xec,0xe3,0x06,0xca,0x74,0xf7, + 0xea,0xca,0x6b,0xb5,0xb3,0x69,0x52,0xf6,0xbf,0x75,0xe8,0x59,0xdc,0xb6,0x95,0xb6,0xed,0x62,0x5b,0x69,0xf4,0x6d,0x0b,0xda, + 0xaf,0x28,0xed,0x87,0x46,0x5f,0x31,0xb4,0xb8,0x1f,0xec,0x95,0x7d,0x97,0x77,0x77,0x19,0xa7,0x50,0x89,0x8e,0x8c,0xb6,0x27, + 0x7f,0xaa,0xbb,0x21,0x6c,0xca,0xec,0xa9,0x35,0x67,0x58,0xd9,0x8a,0x79,0xc6,0x07,0xcd,0xd1,0xc3,0xca,0x56,0x95,0xea,0xb1, + 0x6a,0x95,0x1e,0x0c,0x1b,0xca,0x6b,0x60,0xf6,0x7c,0x5b,0x43,0xf5,0x94,0x72,0xeb,0xe6,0x61,0xb9,0x5d,0x9b,0xad,0xab,0xc4, + 0xaf,0x0c,0xe6,0xa9,0x54,0x7e,0xc3,0x50,0x7a,0x65,0x38,0x3c,0x1d,0x84,0xf1,0x7d,0xa0,0x99,0x7b,0x3b,0xcf,0xba,0x3d,0x3b, + 0x0c,0x33,0x9b,0x8b,0x0f,0xe3,0xd5,0xfe,0x61,0x5c,0x4d,0x2b,0x5b,0xd7,0xf3,0xf6,0x61,0x9c,0xb7,0x73,0xc7,0xde,0x14,0xb3, + 0x78,0x50,0x12,0x77,0x8e,0x2a,0xb9,0x5c,0xf3,0x3c,0x5c,0xbf,0x70,0x96,0x27,0xaf,0xa6,0x5b,0xcc,0xa5,0x2c,0xe8,0x7a,0x9d, + 0x88,0xe5,0xcd,0x27,0xaf,0x52,0x29,0x7d,0x61,0x6b,0x21,0x94,0x61,0xdc,0xda,0x33,0xd7,0x55,0xda,0x38,0x79,0x6d,0x0c,0x4d, + 0x0c,0x0f,0xc3,0xb6,0xa5,0xb7,0x88,0x68,0x75,0xec,0xed,0x9b,0x67,0xd5,0xb8,0xde,0x60,0xeb,0x53,0x71,0xeb,0x53,0xbb,0xdb, + 0x6a,0xdd,0x04,0xf9,0xec,0x78,0xda,0x50,0xdd,0x96,0x8d,0xf5,0x6e,0x1c,0x67,0xef,0xce,0x6d,0xed,0x90,0xe1,0x5d,0xe0,0xe4, + 0x78,0x09,0x75,0x5b,0xbb,0x66,0x78,0xa7,0xb6,0x2e,0x87,0xe1,0xf4,0xdd,0xfc,0x92,0x3c,0x63,0x50,0xe1,0xe6,0xd8,0x69,0x49, + 0x0a,0xb5,0xb6,0xb5,0x87,0x82,0x52,0x8a,0xd6,0x96,0xad,0xa5,0xad,0x9b,0x9b,0xee,0x4f,0xc4,0x9d,0x77,0x9d,0xa5,0x07,0xa3, + 0x4f,0xc4,0x07,0xa3,0x4f,0xc4,0x87,0x98,0x76,0x9c,0xa0,0x9e,0xe7,0xb1,0x95,0x26,0x61,0x92,0xf1,0x78,0xe9,0xf1,0x31,0xdb, + 0x79,0x59,0xf2,0x76,0x18,0x67,0x3c,0x7b,0x13,0x06,0xf9,0xb1,0xec,0xba,0xf9,0x93,0xf1,0x2a,0x8a,0x0d,0x99,0x84,0x41,0xc6, + 0xe3,0x72,0x2b,0x14,0x5b,0xd3,0xea,0x29,0xb5,0x3b,0x9f,0x54,0x76,0x96,0xfd,0xb0,0x31,0xd3,0x22,0x97,0xf1,0xed,0x64,0xdb, + 0xc0,0xca,0xf6,0x2c,0xd9,0xb6,0xe9,0x6a,0x09,0xe1,0xde,0x49,0xfe,0x21,0xaa,0x66,0x8a,0xcf,0x59,0x85,0xc9,0x49,0xf1,0xbc, + 0x59,0x32,0xcc,0x79,0x9d,0x4f,0xc5,0xf1,0x74,0x46,0xbe,0xf3,0xd9,0xf3,0x10,0x3f,0xbd,0x58,0x6c,0x4d,0x63,0x82,0xcb,0x92, + 0xac,0xfb,0x4f,0xe2,0x98,0xe8,0x81,0x27,0xd9,0x63,0x48,0x31,0xa4,0xf2,0x82,0x1e,0x3d,0x89,0xe5,0xdd,0x10,0x5f,0x27,0xca, + 0xb7,0xc6,0xc7,0x4c,0x7c,0x4d,0xae,0x8f,0xcc,0x96,0x9e,0x34,0x3a,0xd2,0x43,0x17,0x5f,0x15,0x63,0xf0,0xbc,0x23,0xe5,0xf8, + 0x8c,0x5b,0xd7,0x84,0xeb,0xf1,0x59,0xd3,0x04,0x07,0xef,0x54,0x60,0x53,0x9e,0x54,0x06,0xf4,0xc6,0x53,0xad,0xb2,0xce,0x6f, + 0xb0,0x50,0xc7,0xf2,0xca,0x25,0x68,0xb4,0x78,0x6c,0x6d,0x66,0xd5,0x18,0xae,0xc2,0xc9,0x49,0x31,0x6f,0x3b,0xd1,0xd0,0x4a, + 0x97,0x15,0xf2,0x9d,0x7f,0x1c,0xdb,0x6c,0x57,0xbc,0x29,0x56,0xe8,0x41,0xdc,0x7a,0x14,0xc9,0x3b,0xe7,0x8f,0x63,0xec,0x7f, + 0x3c,0xab,0xc4,0x51,0x50,0x06,0x76,0x3b,0x29,0xbb,0xaa,0xd2,0x63,0xcb,0x61,0x1e,0x7e,0xa2,0x1f,0x17,0x7f,0x86,0x3f,0x8b, + 0x33,0xe7,0xcf,0xe2,0x50,0xec,0x81,0x32,0xcf,0xea,0x80,0xde,0x05,0x57,0x61,0xf0,0xb5,0x62,0xdd,0xed,0x44,0x28,0x18,0x1f, + 0x3b,0x59,0xe7,0x7c,0x2d,0xf6,0xd1,0x56,0xc4,0x5c,0x46,0x33,0x26,0x5f,0x8b,0xcf,0x55,0x5f,0x2b,0x1e,0xb6,0x0a,0x9e,0x44, + 0xca,0x53,0xaa,0x8f,0x7a,0x65,0x2e,0x6f,0x17,0xc7,0x9e,0x95,0x64,0x67,0xfe,0x69,0xac,0x60,0x6a,0x64,0xd5,0xfd,0xd3,0x18, + 0xfb,0x32,0xf1,0x94,0x51,0xd3,0x29,0x2d,0x68,0xca,0xa5,0x7d,0x09,0x8b,0xcf,0xd3,0x79,0xba,0xe9,0xee,0xb9,0x29,0xef,0x4f, + 0x62,0x9b,0xdd,0x0a,0xb2,0x36,0xfb,0x93,0xd8,0x74,0x73,0x2c,0xb5,0xe0,0x9f,0xcc,0xc7,0xd7,0xe3,0xcd,0x49,0x8b,0xf5,0xec, + 0xe0,0x57,0xc3,0x8d,0x78,0xde,0x3e,0xc1,0x2c,0xbe,0xf9,0x97,0x76,0xda,0xaf,0xf3,0xdb,0x3e,0xbf,0xa7,0xd0,0x4a,0xc9,0x33, + 0xda,0xb6,0x75,0xf7,0x4d,0xf9,0x88,0x98,0x44,0x5d,0x7a,0xe3,0x97,0x6a,0x08,0x19,0x67,0xa1,0x60,0x8c,0xbd,0x53,0xed,0x87, + 0x72,0x6b,0x76,0xac,0xdc,0x59,0xa5,0xb6,0x1b,0x5b,0x50,0x9b,0x59,0x35,0xcf,0xf9,0x9d,0x37,0x15,0x6c,0x7a,0xe1,0x73,0xb9, + 0xa0,0x9e,0xdb,0xa5,0x60,0x52,0xbc,0xcf,0x35,0x2d,0xb9,0x2a,0x4e,0x39,0xef,0x48,0x2c,0x68,0x1a,0x19,0xed,0xa5,0xc3,0xbf, + 0x1a,0x03,0xfb,0x6a,0x6c,0xeb,0xaf,0xc6,0xb6,0xce,0xb9,0x79,0xcf,0xf4,0xab,0x37,0x67,0xb6,0x67,0xe9,0x9d,0xd7,0x96,0xc7, + 0x52,0x62,0xdb,0x0a,0x56,0xd3,0xad,0xf8,0x74,0x6d,0xdb,0xa6,0x2b,0x3b,0x67,0xd6,0x55,0xf3,0x7d,0x34,0xa3,0xec,0xbf,0x1a, + 0x16,0x33,0xab,0xe9,0xe2,0xda,0x63,0xd5,0x62,0x9b,0x3e,0x28,0xdc,0x44,0x6d,0x41,0x2d,0x86,0x46,0x6d,0xbb,0x34,0x05,0x76, + 0x55,0x9c,0x72,0xde,0x91,0x6a,0x79,0xaf,0xc3,0xf8,0xab,0xf9,0x2f,0x94,0x44,0xe2,0xce,0x8b,0x26,0x5e,0xcf,0x6f,0xe5,0xef, + 0x79,0xdf,0xa4,0x2b,0xf3,0x9c,0xae,0xe8,0x95,0xd3,0xaf,0xc4,0xc0,0x22,0xe1,0x2b,0x95,0xf9,0xf7,0x95,0x98,0x7c,0x1d,0x6b, + 0x1a,0x79,0xe5,0x99,0xed,0x4b,0xd8,0x37,0xdb,0x56,0xb0,0x29,0xe8,0xf6,0x3b,0xab,0x9d,0x73,0x33,0xa0,0xbf,0x12,0x27,0x49, + 0x85,0xf9,0xfe,0x6b,0x9e,0x0f,0xab,0xcf,0x5c,0x1c,0x05,0xab,0x33,0x6b,0x51,0x50,0x8b,0x51,0xd0,0xd4,0x12,0x1b,0x67,0x7d, + 0x55,0xa4,0x3b,0xef,0x48,0x35,0xf6,0xda,0x7a,0x56,0x8e,0x4d,0xb7,0x5d,0x97,0x96,0xda,0xf3,0xcb,0xb1,0xd8,0x48,0xf8,0x72, + 0x65,0xfe,0x7d,0x39,0x96,0xbe,0x15,0x4d,0xb9,0xf4,0x53,0xc2,0x0e,0xd9,0xb6,0x82,0xb5,0xe9,0xda,0x67,0x56,0xdb,0x39,0xe5, + 0xb1,0xb2,0x73,0x16,0xa9,0xf6,0x5f,0x0d,0x2d,0x7a,0xba,0x36,0xcf,0xa5,0x09,0xb4,0x5c,0xc1,0x1d,0x52,0x6d,0x97,0xda,0x88, + 0x6e,0xe6,0xdf,0x97,0xe3,0x3c,0xea,0x42,0x2c,0x68,0x9a,0x5d,0xb9,0xbe,0x5c,0x7c,0x5a,0x6b,0xbb,0xea,0xb6,0xe8,0x8e,0xa5, + 0x5e,0xf9,0x52,0xec,0x8e,0x2f,0xc5,0x0e,0xf8,0x52,0x65,0xfe,0x7d,0x29,0x36,0xc1,0x66,0x2c,0xd5,0xac,0xe5,0xb1,0x94,0xd8, + 0xb6,0x82,0x4d,0x41,0x6f,0xdc,0x74,0x65,0xe7,0x94,0xc7,0x66,0x7d,0x54,0xed,0xb1,0x72,0xab,0x86,0xa5,0xfb,0xc1,0xe5,0x2e, + 0xae,0x3d,0x56,0x9b,0xbc,0xdd,0x5a,0x5e,0xa9,0x44,0x4d,0x41,0x2d,0x86,0x46,0x6d,0xbb,0x34,0x05,0x76,0x55,0x9c,0x72,0xde, + 0x91,0x58,0xd0,0x65,0xa5,0xd8,0x8b,0x16,0xf4,0x76,0x19,0x7c,0x11,0x7b,0xfa,0x45,0xa5,0x25,0x5e,0xc4,0xba,0xac,0x63,0x55, + 0xeb,0xae,0x3c,0xb3,0x63,0x66,0xd5,0x9d,0x4d,0xa7,0xb4,0xc8,0xa5,0x7d,0xad,0x5b,0x9c,0xd9,0x91,0xe6,0x3e,0xca,0x4f,0x39, + 0x9b,0x51,0xf4,0x58,0x75,0x67,0xab,0x74,0xf3,0x67,0xd6,0x1e,0x2b,0xb3,0xae,0x8d,0x76,0x93,0x21,0xb5,0xba,0x4a,0xbd,0x72, + 0x55,0x14,0x74,0xde,0x91,0x18,0xdf,0xc5,0x22,0x93,0x17,0xf1,0xad,0xbe,0x75,0xbc,0x9d,0xff,0x3c,0x5e,0xfe,0xc4,0x57,0x6c, + 0xb5,0x9b,0x71,0x5f,0x8c,0xfd,0xf7,0xc5,0xd8,0xf2,0x15,0x8a,0x63,0xa1,0xd8,0x1a,0x6f,0xcc,0x4d,0x8f,0x6d,0x76,0x2c,0x25, + 0x0e,0x54,0xcf,0xda,0x3e,0x2a,0x8f,0xcd,0x7a,0xac,0x4a,0x6d,0xff,0x15,0x2c,0xf6,0xf4,0x3c,0x4d,0xc7,0xaa,0xa7,0x6c,0xb4, + 0x88,0x2f,0x27,0x6f,0x11,0x66,0xd3,0xce,0xda,0xd8,0x97,0xe6,0xdf,0x17,0xe3,0x3c,0xea,0xc2,0xc6,0xd1,0x3e,0x2c,0xd2,0xe5, + 0x9f,0x72,0xfe,0x62,0x9c,0xa9,0xad,0xc9,0xd3,0xe5,0x17,0xda,0x2f,0xc4,0xc0,0xbe,0x10,0xbb,0xf1,0x0b,0xb1,0xe3,0x72,0x1e, + 0x16,0x4c,0xcb,0x53,0x36,0xe6,0xa6,0x05,0x37,0x3b,0x96,0x12,0xbd,0xd6,0xb3,0x7d,0x66,0x4b,0x03,0xfa,0x0b,0x71,0xfe,0xc5, + 0xae,0x9a,0xeb,0xa3,0x85,0x1e,0xab,0xe5,0xe6,0x42,0xb4,0x9c,0xa0,0x72,0xec,0x26,0x5d,0x39,0x18,0x0a,0xb6,0x98,0x7f,0x35, + 0x25,0xb4,0xa0,0x45,0x63,0x35,0xd5,0xec,0xaa,0x38,0xe5,0xbc,0x23,0x4d,0x75,0xd9,0x05,0x59,0x28,0x9f,0x8f,0x11,0x45,0xc2, + 0xe7,0x63,0xd3,0x7d,0x3e,0xbe,0xd7,0xf3,0xf9,0x58,0x89,0xad,0xb8,0x09,0x65,0xb3,0x63,0xb8,0xa6,0xda,0x39,0xb3,0x9d,0xf3, + 0x7d,0x34,0xa3,0xda,0x8d,0xf3,0xdc,0x4c,0x8b,0xe5,0x74,0x4d,0xc7,0xaa,0xc5,0x46,0x1a,0x6f,0xa9,0x56,0xc4,0x30,0x37,0x96, + 0x2e,0x36,0xa5,0xb1,0x41,0x96,0xe6,0xdf,0xe7,0xe3,0x3c,0xea,0xc2,0x96,0xf5,0xbc,0xe6,0x75,0x6c,0xa5,0x8d,0x27,0x49,0x16, + 0xd1,0x47,0xe3,0xfc,0xfb,0x68,0xec,0x80,0x8f,0x56,0x5e,0x7f,0xf9,0x68,0x4c,0x70,0x08,0x56,0xf5,0xf4,0x01,0xab,0xb4,0x71, + 0xe5,0x7b,0xcd,0xa5,0x63,0x4b,0xac,0x5a,0x85,0x3f,0xba,0xf6,0x7d,0x8b,0xf9,0xa1,0x31,0xa3,0x1c,0x36,0xf3,0xd4,0xe6,0xb9, + 0x22,0xf9,0x5a,0x36,0x7a,0xfe,0xfb,0x68,0x9c,0x47,0x5d,0x68,0x0a,0x3a,0xb6,0x60,0x4f,0xef,0x38,0x54,0xf9,0x70,0x08,0x7f, + 0x94,0x75,0x0e,0x7a,0xe3,0x34,0xe3,0xfe,0x8a,0x9d,0x6d,0x69,0xea,0xb1,0xec,0x49,0x3f,0xe3,0xd9,0xa6,0x35,0x1b,0x6d,0x5c, + 0x89,0x92,0x50,0x24,0xcf,0x3f,0x65,0xf2,0x47,0x71,0xb4,0x76,0x61,0x12,0x33,0x2b,0xd9,0xe1,0xed,0xdd,0x6d,0x21,0xeb,0x9c, + 0xcf,0xc5,0x3e,0xfa,0xdc,0xcd,0x1a,0x59,0xbb,0xd5,0x44,0xfb,0x33,0x93,0x60,0xdb,0x30,0x5b,0x71,0xfa,0xb9,0x38,0xff,0xea, + 0x76,0x6e,0xcb,0x7c,0x3d,0xb7,0xec,0x95,0xd1,0x6c,0xab,0x6d,0xb1,0x4b,0x57,0x99,0xcf,0xc5,0x79,0xd4,0x85,0xf6,0x31,0x24, + 0x31,0x3b,0x76,0x48,0xf6,0xe7,0x0f,0xb3,0x30,0x1f,0x16,0x5c,0xd6,0x31,0x8d,0xa7,0x4c,0x1f,0x56,0xb8,0x57,0xb7,0x73,0x52, + 0x39,0xf6,0x64,0x3d,0xf7,0xe6,0x4b,0xb8,0x7c,0x52,0xd9,0xaa,0x92,0xdd,0xcd,0xfc,0x61,0xbc,0xc5,0xf9,0xc3,0xb8,0x18,0x2f, + 0x9f,0x52,0xcb,0x55,0xc1,0x79,0x47,0x62,0x66,0x17,0x1d,0x99,0x54,0x42,0x09,0x0d,0x5b,0xaf,0xc2,0x24,0xe3,0xc9,0xa3,0x82, + 0xb7,0xaa,0x5b,0xc3,0xe2,0xcc,0xb3,0x92,0xb2,0xff,0x36,0xa6,0xda,0xfd,0x77,0x92,0xe6,0xbb,0xed,0xf9,0xe1,0xb6,0x0b,0x26, + 0xd7,0xdd,0xd8,0xf2,0xcc,0x69,0xdd,0x0c,0x68,0x8c,0xaf,0xd7,0xea,0xee,0xad,0x5d,0xd2,0xa5,0x6c,0x82,0x72,0x16,0x4f,0x5a, + 0x2f,0x41,0xb5,0x13,0xbd,0x05,0x95,0x29,0x7a,0xbd,0xb3,0x76,0xc1,0xad,0x2e,0xd4,0xa1,0x48,0x77,0x59,0xcb,0xbd,0xca,0xba, + 0x9b,0xc4,0x15,0xe8,0xe0,0x37,0x9e,0x3f,0x1b,0xaf,0xf6,0x68,0xc9,0xd9,0x8c,0xd3,0x9f,0x8d,0xb7,0x69,0x75,0xb4,0x38,0xa5, + 0x45,0x82,0xa6,0xf2,0x8a,0x2a,0x5d,0x15,0x9c,0x77,0x64,0x52,0x30,0x2d,0x09,0x0d,0xf4,0xd5,0x58,0x4d,0xe9,0x56,0x36,0xcf, + 0x52,0x9e,0x73,0xac,0x2a,0xb6,0x25,0xed,0x2a,0xd1,0xa2,0xf2,0x1d,0x69,0xd9,0xef,0xed,0x02,0xab,0x69,0xba,0x7e,0xc6,0xcb, + 0xfa,0xf2,0x2e,0x4b,0xb2,0x61,0xf3,0x6b,0xf1,0xc7,0xf0,0xee,0x3a,0x37,0x97,0xb3,0xb9,0xad,0x35,0x8f,0x26,0xcb,0x67,0xc6, + 0x9d,0x27,0x68,0x49,0x88,0x4b,0xd7,0xaf,0xc5,0x2f,0x33,0x2d,0x9f,0x72,0x39,0x0a,0x1f,0x1f,0x8c,0xc7,0x40,0x92,0x7c,0x28, + 0xe0,0x2e,0xf2,0x41,0x60,0x0f,0x64,0x97,0xc1,0xfb,0x01,0x77,0x95,0x9b,0xbb,0xca,0x75,0xa7,0xb4,0x38,0xb3,0x45,0x09,0xbb, + 0x2f,0xef,0x6e,0xa1,0x3d,0x8d,0xeb,0xce,0x2d,0x81,0x23,0x1c,0x9f,0x48,0x9f,0xa5,0xf7,0xdc,0xee,0xc7,0x77,0x5b,0xe6,0x88, + 0x67,0xe6,0xaf,0xcc,0xde,0x8f,0xaf,0x64,0x6c,0xc3,0x45,0x12,0xac,0x7a,0x91,0x6b,0xcf,0x2d,0x3f,0xb9,0x1f,0xbf,0x2e,0xd5, + 0x85,0x8d,0x3e,0x5f,0xf0,0xd3,0xf1,0x35,0x40,0xa0,0x4f,0xea,0xc6,0xd9,0x49,0x0b,0xaa,0xe9,0x26,0x61,0xf2,0x4e,0x18,0x3f, + 0xce,0xfe,0xff,0x9d,0xf8,0x34,0x08,0x00,0x00,0x00,0x00,0x00,0x70,0x6c,0x5c,0x46,0xa6,0x07,0xaa,0xc4,0x24,0x5c,0xfc,0x41, + 0x18,0xe7,0x3f,0xe1,0xfd,0x07,0xf1,0x45,0xca,0xdb,0xc4,0xab,0x30,0xf9,0x83,0xf8,0xc5,0x9c,0x8c,0xb7,0x56,0xbd,0xfe,0xf9, + 0x9f,0x62,0x02,0xdc,0x79,0xaa,0x3f,0x58,0x5f,0x12,0x8f,0x3d,0xa8,0x63,0xf3,0x12,0xb6,0xf9,0xfe,0xdf,0xef,0xc7,0xe4,0x87, + 0x60,0x18,0x4e,0x7f,0x3f,0xbe,0xd7,0x53,0x21,0x3f,0xd6,0xf5,0x17,0xeb,0x6e,0x0a,0xfa,0xbd,0xc3,0x91,0x45,0xf4,0x7b,0x31, + 0xb0,0x48,0xbe,0xf3,0xac,0xda,0xfd,0xdd,0xc3,0xfc,0xdd,0x58,0xde,0x21,0xc8,0x02,0xfb,0xdd,0x18,0xdf,0xef,0x2e,0x7d,0x53, + 0xb7,0x1f,0xb2,0x3f,0xbf,0x13,0xcb,0xeb,0x9d,0xa6,0x12,0x6e,0xde,0x92,0xfc,0x9d,0x18,0xdf,0xef,0xec,0x28,0xbe,0x0f,0x87, + 0xf0,0xd9,0x50,0x7c,0x3b,0x01,0xbb,0xe7,0xf4,0xb3,0xf1,0x8b,0x24,0x91,0x7c,0xe7,0xd9,0xe2,0xce,0x16,0x94,0xe9,0x36,0xa6, + 0x36,0xf9,0xc6,0xa5,0xaf,0x66,0x52,0xe4,0x39,0x2d,0x79,0x19,0x89,0x05,0x8d,0xca,0x9d,0xa1,0x72,0xca,0xdb,0x61,0xfc,0xd9, + 0xf8,0x1b,0x1a,0x73,0xcd,0x53,0x1d,0x9f,0x57,0xc5,0xb1,0xf3,0x8e,0x6c,0x32,0xdf,0x27,0x9f,0x8d,0x3f,0x12,0xd8,0x85,0x8d, + 0xca,0xfb,0x48,0xfc,0xf9,0xc2,0x8f,0xc4,0x7f,0x3e,0x30,0xdc,0x30,0x89,0x3b,0x27,0x71,0xeb,0x61,0xb1,0xf5,0xf8,0xe6,0xcc, + 0x39,0xca,0x9d,0xd9,0x3a,0xf1,0x91,0xb8,0x5c,0xcc,0x71,0x2f,0x9c,0x7d,0x24,0xfe,0x9b,0x51,0xf9,0x56,0xd6,0x20,0x1f,0x89, + 0xed,0xd2,0x85,0x8d,0xd6,0xcf,0x8f,0xc4,0x65,0xed,0xce,0x31,0x4a,0xa1,0x12,0x77,0x8c,0x6d,0xae,0xef,0xeb,0xf2,0xac,0x4e, + 0xa7,0x24,0xc2,0xdc,0x1b,0xd5,0xa0,0xdb,0xb5,0xe7,0xc1,0x5f,0x52,0xc0,0x3e,0xc8,0x3b,0x7c,0x10,0xfb,0xbd,0x03,0xd9,0xdf, + 0xdf,0x8e,0xc3,0xed,0xc8,0xb8,0xb9,0x83,0xff,0xed,0xb8,0x78,0x54,0xc8,0x4f,0x39,0x5b,0xc1,0xda,0x33,0x9b,0xe6,0xdf,0x8a, + 0xcc,0x9a,0xca,0x6b,0x2a,0xbd,0x60,0xcd,0xfd,0xcb,0x6f,0xaf,0xfa,0x40,0xde,0x93,0xe2,0xd8,0xb4,0xe4,0xaa,0x28,0xe1,0xbc, + 0x23,0xd9,0xbd,0xe2,0x7f,0x0c,0xc5,0x1d,0xf5,0xb1,0xb0,0xf4,0x3c,0xb6,0x59,0x82,0xee,0xcf,0x7f,0x7f,0x1e,0xb3,0x46,0x5b, + 0x8e,0xaf,0x3d,0xdb,0x8f,0x97,0xab,0x22,0xc1,0x79,0x47,0x62,0xb1,0xf5,0x8f,0x49,0x1f,0x0e,0x93,0x3f,0x2f,0x7e,0xbf,0xa0, + 0x20,0x3e,0x50,0x1d,0x33,0xe1,0xb7,0xe2,0x45,0x23,0x51,0xb2,0x6b,0xc0,0x6f,0xc5,0x4b,0x41,0x24,0xdf,0x79,0x36,0xa3,0xd8, + 0xb9,0x74,0x07,0xf8,0x5b,0xf1,0x49,0xff,0xb7,0xe2,0xe3,0xff,0x6f,0xc6,0x71,0x86,0xbd,0x92,0xbf,0xb4,0xf3,0x9b,0xf1,0xf5, + 0x9e,0xca,0x56,0x5b,0x66,0xb3,0xb1,0x36,0x97,0x72,0x6b,0xbb,0xac,0x57,0xe4,0xd2,0xc4,0xb6,0x25,0xd4,0x44,0x74,0x73,0x63, + 0xf6,0x9b,0xf1,0xf5,0x90,0xdf,0x8c,0xeb,0x52,0x17,0x36,0x5a,0x3f,0xf7,0x5a,0x5e,0x6c,0xc1,0xe9,0xa6,0x8c,0xda,0x27,0x58, + 0x6a,0xd6,0x41,0x5c,0x2e,0x76,0xcb,0xe9,0xbe,0x0a,0xba,0x66,0x17,0x2f,0xbe,0x23,0x1f,0x2f,0x9f,0x89,0x8d,0x5c,0x47,0xf8, + 0x4c,0xfc,0x89,0xc9,0xcf,0xc4,0xeb,0x11,0x3a,0x51,0x6d,0xd6,0xe6,0x96,0xaf,0x3d,0xb3,0xdc,0x6a,0xa2,0xe6,0xcc,0x6d,0xab, + 0xbb,0x6a,0xfd,0xfc,0x4c,0x5c,0x07,0xbb,0x30,0x29,0x98,0x96,0x84,0xca,0x56,0x2d,0xf1,0x94,0xcb,0x8e,0xb4,0x6a,0xf2,0xd5, + 0x74,0x2c,0xbd,0x1a,0xd1,0xcd,0xfc,0xfb,0xf5,0x58,0x42,0x24,0xfc,0x7a,0xec,0xb1,0x5f,0x8f,0xfd,0x70,0x2c,0x94,0x81,0x2d, + 0x46,0x5b,0x13,0xfb,0x8a,0x33,0x57,0x27,0xaf,0x16,0x74,0x55,0x70,0xde,0x91,0x8d,0xe2,0xfb,0x34,0x3e,0x1d,0x57,0xb7,0x4f, + 0xc7,0xae,0xfa,0x74,0xec,0xaa,0xb8,0x55,0xdd,0x59,0xa5,0x29,0x41,0x4d,0xba,0x6d,0xaf,0x71,0xb1,0x82,0xd3,0x55,0xfc,0x46, + 0x8c,0xe1,0xee,0x31,0x2c,0x38,0xdb,0x82,0xd3,0xdf,0x88,0x7d,0xb4,0x29,0xab,0x73,0xa9,0xed,0xb8,0x49,0x71,0xe6,0xb4,0x89, + 0xab,0x82,0xf3,0x8e,0xac,0x1a,0x36,0xcb,0x6d,0x96,0x25,0xf8,0x0f,0x31,0x5d,0x17,0x42,0xc1,0xf8,0xe8,0x18,0xb5,0x60,0x52, + 0x30,0x2d,0xc9,0x76,0xbe,0x1b,0xbf,0x9b,0xbb,0x15,0xdb,0xac,0x05,0xbf,0x76,0xf0,0x9f,0xc2,0xbc,0x2d,0xb4,0x6b,0xba,0x5f, + 0x8f,0xdd,0xb8,0x19,0x1d,0x9e,0x57,0x96,0x9f,0x0d,0x43,0x71,0x6c,0xba,0xd3,0x87,0xd0,0xbc,0x84,0xb3,0x8d,0xd3,0xc5,0x9a, + 0x8d,0x6b,0x69,0x71,0x4a,0x8b,0x04,0xb5,0x35,0x2b,0x8f,0xb5,0x9b,0x0f,0x17,0x71,0x3a,0x21,0x3c,0x5c,0xcf,0xbb,0xb3,0x04, + 0x23,0xf4,0xce,0xc3,0xf5,0x74,0x4f,0xbe,0xab,0xd1,0xf3,0xee,0xce,0x4b,0x48,0x93,0xc3,0x0f,0x9b,0x03,0x8e,0xd6,0x7d,0xbf, + 0x0c,0x8a,0x7e,0x89,0xbd,0x39,0xac,0x0c,0x68,0x5b,0xb6,0x6c,0xd9,0xea,0x42,0x4a,0x31,0xd8,0xb2,0xd5,0xb0,0xd5,0xe2,0xa9, + 0x67,0x15,0xc3,0x2d,0x69,0x53,0xc2,0xd2,0x73,0x6a,0xcb,0x12,0xea,0xd2,0xa5,0x18,0xdf,0xdd,0x6a,0xcf,0x6a,0xb1,0xed,0xb7, + 0xd2,0x6d,0xcf,0x8e,0x2d,0xd1,0xcb,0xf8,0xbc,0xb7,0x25,0x77,0xba,0xbc,0x86,0x96,0x6f,0x1a,0x13,0x59,0xd6,0x93,0x8c,0xe7, + 0xb3,0x04,0xe5,0x56,0x95,0x5d,0x94,0xb7,0xb6,0x84,0xd6,0x23,0xab,0x71,0x86,0x6f,0x5c,0x5e,0xe7,0xf9,0x57,0x53,0x5e,0x8b, + 0xd9,0xb1,0x6d,0x7b,0x3e,0xac,0x2b,0x68,0x92,0x5d,0x05,0xc3,0x78,0xd2,0x9e,0x7b,0x0d,0xc7,0xce,0xc2,0x59,0x28,0xbe,0xea, + 0x77,0x96,0x3d,0x5a,0x3e,0x3a,0xcf,0xb9,0xf7,0x68,0x58,0x14,0x94,0x31,0xc8,0x99,0x0c,0xf3,0x2f,0x13,0x3e,0xbe,0x57,0x7c, + 0xa7,0xf0,0xf1,0xa4,0x24,0xee,0xbc,0x88,0x3c,0xb8,0xa1,0xf8,0x5d,0x8e,0xe2,0xdb,0x87,0xef,0x14,0x3b,0x5f,0x44,0x3e,0xf8, + 0xaa,0xd8,0xf9,0xe4,0x9d,0x30,0xb7,0xb3,0xfe,0x58,0x99,0xcb,0x75,0x66,0xc5,0x29,0xd7,0x79,0x3e,0x1b,0xd6,0x10,0xeb,0x32, + 0x1d,0x14,0x11,0x3d,0x1c,0x84,0xf3,0x8c,0xf7,0x0c,0xb3,0x06,0x2c,0x62,0x78,0x6f,0xe4,0x7d,0x91,0xf7,0x44,0x1e,0xe5,0xdc, + 0x0b,0xf7,0xf3,0x26,0x78,0x3d,0x1c,0xe7,0x05,0xbd,0x0e,0x91,0x6c,0x2b,0xdc,0x10,0xca,0xad,0x49,0xdc,0x9a,0xe7,0x3a,0xcc, + 0x32,0xa2,0x82,0x0f,0x96,0xb5,0x7e,0x99,0x6d,0x0d,0x46,0x05,0x61,0x21,0x86,0x0f,0x54,0x28,0x76,0xde,0xb4,0xd9,0xf3,0xa2, + 0x4a,0x4f,0xcb,0x06,0x79,0x54,0xf0,0xd6,0xcb,0x70,0x93,0xe7,0x2c,0xeb,0x50,0xa9,0x44,0x4b,0x66,0x05,0x3d,0xad,0x1c,0xbb, + 0xae,0xcb,0xa4,0x92,0x60,0xd2,0xc0,0x8a,0x53,0x8a,0x21,0x75,0x1a,0x87,0x54,0x68,0xe0,0x4d,0xc6,0x20,0x7f,0x67,0xe4,0xfd, + 0xb1,0x3b,0x1e,0x47,0x9e,0x44,0xde,0x2a,0x47,0x64,0x4b,0x42,0xc8,0xa6,0x52,0xf1,0x93,0xd5,0x17,0x37,0xff,0x58,0x77,0xc9, + 0x83,0x61,0x79,0xac,0x05,0xa3,0xd8,0x2e,0xa3,0x9b,0xe6,0x59,0xe8,0x87,0x07,0xc3,0xa2,0x84,0x32,0x41,0x99,0x75,0x2d,0xfd, + 0x94,0x57,0x79,0xbf,0x63,0x27,0xaf,0x08,0xd6,0xbe,0xbf,0xf2,0x76,0x31,0xe6,0x9f,0xb5,0xe7,0x75,0x75,0xe7,0xbd,0xba,0x33, + 0x87,0x1b,0xe6,0xd9,0xa6,0xa0,0xd6,0xa7,0xbc,0x5e,0xbd,0x35,0xd8,0x3d,0x3b,0x7e,0x45,0x70,0x10,0x3f,0xd8,0x5a,0xcb,0xc2, + 0x29,0xf7,0x6a,0x8e,0xf5,0xc6,0xde,0x3e,0xff,0x19,0x17,0xb2,0xcb,0x19,0xf9,0xce,0xe1,0xeb,0xe1,0xfc,0xce,0x07,0xc3,0xc5, + 0x53,0x06,0xc5,0xc5,0x3b,0xdf,0x9a,0x9d,0x99,0xa7,0x3b,0x29,0x93,0xd7,0x71,0x12,0xd3,0xd5,0x9f,0x92,0xad,0x05,0xf1,0xd8, + 0x7c,0x25,0xde,0x5e,0x28,0xb6,0x5c,0x69,0x57,0x96,0x70,0xc3,0x62,0xba,0x9b,0x18,0x0a,0x46,0x0b,0xd1,0x5e,0x6f,0x0d,0xaf, + 0xef,0x4a,0x6a,0x8e,0xc5,0x67,0xe6,0xb8,0x66,0x2d,0x95,0x37,0x6e,0x6a,0x82,0xa5,0x04,0x65,0x4b,0x8c,0x57,0x33,0x3a,0x59, + 0xee,0x95,0x41,0xa5,0x05,0x07,0x31,0xb3,0xb2,0x1f,0x6e,0x96,0xbc,0x15,0xcc,0x25,0x38,0x59,0x41,0xb5,0x91,0x17,0x4a,0xbf, + 0x98,0xd5,0xba,0xdc,0x79,0xb1,0x40,0xd1,0xba,0x17,0x0f,0x4a,0x6a,0x4f,0xa9,0xa3,0x4c,0x10,0x86,0x35,0xb9,0xcc,0x4e,0x09, + 0x17,0x83,0xf1,0x83,0x5e,0xc9,0x23,0x5a,0xc5,0xee,0x4b,0x68,0xcd,0x30,0x72,0xd2,0x5c,0xdd,0x59,0x63,0x85,0xeb,0xfe,0x2b, + 0xbe,0x0c,0xba,0xea,0xfb,0xbe,0xf1,0xe6,0xf2,0xe9,0x6a,0x46,0x25,0x97,0x4d,0xd4,0x8d,0xb3,0xcb,0x06,0x6a,0x4f,0x69,0xbd, + 0x73,0x54,0x61,0x83,0x12,0x36,0x61,0x58,0xa1,0x63,0x66,0xfd,0x53,0xdf,0xd6,0x65,0xc7,0xd5,0x6e,0x1d,0x8a,0x5d,0xb7,0xe0, + 0x9a,0xb5,0x6e,0x43,0x2a,0x6d,0xb6,0x30,0x1f,0x9a,0x12,0xd4,0x9e,0xd2,0x22,0x5d,0x75,0xeb,0xed,0x78,0xc3,0x1a,0xef,0x6d, + 0xda,0xe4,0xd2,0x74,0xca,0x5c,0xcd,0x06,0x9b,0xd4,0xb3,0xa9,0x09,0x9a,0x68,0x5f,0xdd,0xb9,0x33,0x07,0xad,0x2a,0xd8,0xbe, + 0xc9,0xfb,0xe9,0xf7,0xf6,0xc7,0xb6,0x3d,0xb3,0x63,0x3d,0xd7,0x75,0xf8,0x46,0x67,0xee,0xbe,0x75,0x77,0x1f,0xed,0xee,0x2b, + 0xb1,0xb7,0x0e,0x4f,0xa2,0xe5,0xef,0x48,0xad,0xd3,0xe5,0xd9,0xe1,0x4a,0x5f,0x7a,0x5a,0x6a,0x41,0xf5,0xc5,0x95,0xea,0x56, + 0xfb,0x5c,0x16,0x1f,0x2d,0xdb,0xf2,0x62,0x54,0x3c,0xc7,0x95,0xac,0x4b,0xb0,0x18,0xf4,0xfc,0xfd,0x44,0x63,0x41,0xa3,0xcb, + 0x57,0x59,0x09,0xc3,0x2c,0xb0,0x82,0xb7,0x2a,0x79,0x76,0x27,0xe0,0xd8,0x99,0xeb,0xf0,0xad,0xa7,0x5a,0xd3,0xf8,0xec,0x3f, + 0xcf,0x58,0xf9,0xf6,0x09,0x0e,0xbe,0x70,0x6e,0x4a,0x1f,0xd3,0xb7,0xff,0x26,0x5f,0xd7,0xc8,0xf3,0x1d,0xbe,0x8b,0x4a,0xec, + 0xea,0x6a,0x51,0xae,0xd0,0xb5,0x84,0x1a,0xae,0x57,0xf6,0x50,0xa1,0xdd,0x3a,0x5f,0x9f,0xe7,0x61,0x7a,0x2c,0x79,0x56,0x0d, + 0xa2,0xa6,0x17,0x8f,0x12,0xa4,0xd7,0x76,0x49,0x22,0xa2,0xe5,0xd7,0xeb,0xe6,0x5e,0x5a,0xc5,0x8c,0x93,0x84,0x28,0x2e,0x98, + 0x88,0x8c,0x52,0xa8,0x44,0x62,0x84,0x24,0xa6,0xcc,0x3c,0x73,0xef,0xb6,0xcc,0x5e,0x3a,0x06,0xd6,0xdc,0xfd,0x26,0x51,0xc1, + 0x43,0xd1,0xdb,0xf3,0xc3,0xe1,0xda,0xb3,0x7d,0xe9,0xfd,0xc5,0x37,0x98,0x51,0xde,0x67,0x55,0x77,0xb6,0x60,0xdb,0xdb,0xfa, + 0xda,0xd2,0xe7,0x8f,0x8d,0xca,0x63,0x8d,0x4f,0x36,0xbb,0xc8,0x65,0x75,0x66,0xad,0xd2,0xd5,0x9e,0xb9,0x7b,0x76,0x58,0x97, + 0x5e,0x72,0x79,0x5a,0xc3,0x68,0xc6,0xa8,0x42,0x3c,0x65,0xe1,0x41,0xb3,0x42,0x39,0xdc,0x2a,0x5d,0xbc,0x30,0x14,0xcb,0x63, + 0x35,0xe3,0xb3,0x36,0x79,0xd3,0x99,0x8b,0xaf,0x6a,0x3e,0x08,0xf3,0x54,0xab,0x94,0x6f,0x85,0x1b,0x86,0x05,0xef,0xaf,0x6c, + 0x95,0xc7,0x9a,0x6a,0x96,0x20,0x4d,0xfd,0xd0,0xd4,0xba,0xed,0xbb,0xe3,0x9a,0xa6,0x17,0x26,0xb6,0x65,0x07,0x0d,0x52,0x3b, + 0x7a,0xaa,0x3b,0x6b,0x8f,0xbd,0x58,0x7f,0x4a,0xdd,0xce,0xa7,0xfb,0xeb,0xe9,0xad,0xda,0xac,0x9f,0x85,0x6c,0xd5,0x60,0xd8, + 0x5d,0x8f,0x75,0x2d,0x61,0x61,0x9c,0x85,0x83,0xcc,0xcd,0xca,0xf2,0x54,0x0e,0xb0,0xa6,0xf5,0xb3,0x3e,0x41,0xc3,0xf8,0xac, + 0x52,0x9e,0x12,0xd6,0x27,0xbf,0xde,0x39,0x5a,0x9b,0x59,0x6d,0xb1,0x4d,0x3b,0xab,0xb4,0x5f,0x66,0x16,0x32,0x6b,0xa8,0x59, + 0x63,0x75,0x6b,0x5b,0x70,0xb4,0xba,0x9e,0xef,0x6f,0x28,0xaf,0xbe,0x1f,0x9a,0xfa,0x6f,0x79,0xec,0xce,0xe6,0x51,0xf5,0x94, + 0xf7,0x8f,0x2a,0x84,0x79,0x36,0x9c,0xda,0x4d,0x5b,0xed,0xa7,0xf6,0xc6,0xc7,0x96,0x68,0xf9,0x92,0xf3,0xb6,0x8b,0xce,0x36, + 0xb9,0x6c,0x75,0x87,0x54,0x5b,0xde,0x9a,0x4a,0x54,0x63,0x6f,0xd1,0x12,0x2b,0xaf,0x86,0xd9,0x7d,0x5d,0x43,0xf2,0x77,0x5a, + 0x53,0x26,0x78,0x32,0x47,0xf3,0xed,0x41,0xd3,0xfb,0xd3,0xfd,0x6c,0xc5,0xfb,0xc1,0xce,0xaf,0xc6,0x84,0x74,0x08,0x21,0x3e, + 0xb9,0x8d,0xe2,0x9d,0x63,0x95,0xd0,0xfd,0x69,0xb0,0x9f,0x5c,0xd6,0xd0,0x5f,0x75,0x37,0x28,0xa8,0xf1,0x4d,0xb3,0xe5,0x0f, + 0x47,0x1c,0xfa,0x2d,0xd0,0x9d,0xf0,0x6a,0x10,0xc3,0x1c,0xc4,0xb9,0xd2,0x7e,0xeb,0xc0,0xcd,0x13,0xfe,0x7d,0xd1,0xa9,0x00, + 0x00,0xdc,0x29,0x12,0xb8,0x75,0xb8,0x4b,0x8c,0x2a,0x24,0x51,0x25,0x24,0xc6,0xc2,0x63,0x67,0xc3,0xed,0xf2,0xbe,0xb7,0x92, + 0x68,0x1e,0x74,0x1e,0x52,0x77,0xaa,0x53,0xef,0x56,0xb4,0x00,0x00,0xb4,0xe5,0x72,0x2d,0xa3,0x3a,0x5a,0xa4,0x5b,0x4f,0x97, + 0xf7,0xd5,0xea,0xde,0x70,0x3a,0x3c,0x87,0xee,0xcd,0x16,0x5d,0xbc,0xfd,0xd0,0x58,0xdf,0xd6,0x0f,0xe6,0xde,0x7c,0x6e,0xf8, + 0xac,0x58,0x3f,0xa3,0x67,0x9f,0x2c,0xff,0x72,0xd2,0xc1,0xab,0xb4,0xfb,0x68,0x2b,0xe3,0xfa,0xb8,0x49,0x62,0xf1,0xd8,0x62, + 0xb5,0x49,0xa0,0x12,0xdb,0xd6,0x3a,0x81,0x7e,0x08,0x0f,0xe2,0x4f,0x73,0xa1,0x3f,0x4e,0xd0,0x1f,0xab,0x7e,0xbb,0x7d,0x58, + 0x77,0xac,0x29,0x41,0xfb,0xcc,0x9a,0x12,0x34,0xed,0x6c,0xa2,0xfa,0x6b,0x99,0x73,0x05,0x7d,0x6a,0xc6,0x89,0x2d,0x5b,0xb7, + 0x6d,0x2b,0xff,0xf1,0xc4,0x4f,0xc5,0x2b,0xd7,0x7a,0x56,0x67,0x36,0x0c,0xa7,0x9f,0x8a,0xbf,0xff,0x39,0x47,0xf5,0x94,0x16, + 0x3f,0xe7,0xf9,0xa4,0x28,0x28,0xff,0x0d,0xe1,0x65,0x62,0x25,0x2e,0x9e,0x2c,0xec,0xcc,0xff,0x19,0xc7,0x13,0xcc,0xfd,0xac, + 0xf8,0xdc,0xd6,0xfa,0x7f,0x4a,0x74,0xf9,0x57,0xd7,0x7f,0x35,0xfe,0xe3,0x8c,0x38,0x24,0x5b,0xfc,0x10,0x6e,0x9e,0x2e,0xff, + 0x50,0xdf,0xaf,0x76,0xf8,0xe7,0x49,0xdb,0x93,0xcd,0xf0,0x5f,0x8d,0x33,0xfc,0x7e,0xac,0x75,0xa2,0x74,0xfe,0x7d,0xe1,0xed, + 0xca,0x93,0x2e,0x8d,0x74,0xd9,0x30,0x7d,0x37,0x5e,0x8f,0x8e,0x93,0xf8,0x2f,0x0d,0x4c,0x2b,0x5c,0xff,0xf3,0x03,0x75,0x5b, + 0xd3,0xf5,0x09,0x16,0x76,0x36,0xfd,0xf2,0x7f,0xeb,0x7f,0x15,0xe0,0xf1,0xab,0x9a,0x63,0x8f,0x43,0x5d,0x79,0xa1,0x92,0xbc, + 0x7a,0x6c,0xdb,0xb7,0xfd,0x9b,0xea,0xf9,0x64,0xbe,0xbc,0x51,0x8b,0x7f,0xd9,0x20,0xac,0xe7,0x22,0xc6,0x57,0xd2,0xa2,0x79, + 0xca,0x9d,0x65,0xad,0x7b,0x69,0xf2,0xd5,0x95,0x5f,0x7c,0x25,0xe3,0xba,0x09,0x9e,0x54,0x2a,0xb1,0x65,0x23,0x3f,0xde,0xdb, + 0x4f,0xbf,0x27,0xc1,0x8b,0xd1,0x64,0x38,0x28,0xbe,0xfa,0x7a,0x9b,0x28,0x7f,0x9c,0x27,0x89,0xba,0xe0,0xae,0xb0,0x8b,0xdf, + 0x97,0x4a,0x22,0x30,0x00,0x40,0x8f,0x24,0xf1,0xf3,0x85,0xdb,0x5c,0x8f,0x42,0x8c,0xa1,0x3f,0x9a,0xca,0x9b,0x9c,0x5c,0x64, + 0x4c,0xf2,0x1f,0x78,0x3e,0x19,0x4f,0x4b,0x62,0xba,0x92,0xcb,0x97,0xa3,0x90,0xb5,0xe7,0xe8,0xc5,0x28,0x4f,0x30,0x7e,0x51, + 0x6c,0x3d,0xa8,0xfe,0x30,0xf4,0xb6,0x5b,0xd5,0x7a,0x6e,0x9b,0xcb,0xcb,0x82,0xc7,0xd5,0x9d,0x8b,0x25,0x14,0xb5,0xde,0x96, + 0xe1,0x28,0xff,0x97,0xae,0xee,0xaf,0x20,0x7c,0x7c,0x30,0x3e,0x2b,0xc9,0xcb,0x1b,0x8e,0x1e,0xc7,0xc6,0x1a,0xd5,0x32,0xbc, + 0xde,0xaa,0x76,0x55,0x4d,0xb1,0x65,0xcb,0xbf,0xbc,0x6e,0xf9,0xfc,0x73,0x25,0xd7,0xbd,0xf2,0x22,0xcc,0xf7,0xed,0x7b,0x47, + 0xe1,0xde,0x49,0xd1,0x39,0xf7,0xb2,0x33,0xb7,0xdd,0xba,0x2d,0xdc,0xce,0x5a,0x6f,0x1b,0x5f,0xc7,0x1e,0xdb,0x36,0x41,0x49, + 0x75,0xb9,0xa8,0x0e,0xfd,0x97,0xc5,0x72,0xf1,0x7c,0x46,0x9e,0x7c,0x54,0x52,0x66,0x56,0xce,0xcd,0x2c,0xb3,0x47,0xb1,0x12, + 0x8f,0x62,0x09,0x5b,0x6d,0xdd,0x16,0x6e,0x67,0xad,0xb7,0x8d,0xaf,0x63,0x8f,0x6d,0x9b,0xa0,0x45,0xba,0x97,0xf1,0x3a,0x96, + 0x9d,0x99,0x8d,0xc1,0x7c,0x60,0x3e,0x1a,0xcc,0x28,0x4f,0x69,0x75,0x49,0x0e,0xbf,0x12,0xf3,0xbc,0x2b,0x9c,0x6c,0x9f,0xfc, + 0xa6,0xcd,0x3e,0x1e,0x77,0x02,0x29,0x70,0x33,0x30,0xcb,0xdb,0xad,0x1b,0x2e,0x1a,0xb8,0xec,0x4e,0x1a,0x73,0x7a,0x67,0xf4, + 0xff,0xbc,0x72,0x5b,0xd8,0xc5,0xf3,0x5f,0xf5,0xe2,0xb6,0x7b,0xe2,0xec,0xb8,0x3c,0x0e,0x26,0x73,0x54,0xe6,0x7b,0xd3,0x0c, + 0x6f,0x4f,0x0f,0x6b,0x41,0x32,0xc4,0x1f,0x66,0xbf,0xd8,0x98,0xca,0x0c,0xb8,0xd8,0x07,0x49,0x8c,0xac,0x1e,0x07,0xe6,0x8c, + 0x96,0x57,0xa0,0x14,0xc6,0xe7,0xa8,0x61,0x2b,0x51,0xf6,0x37,0x3e,0x77,0x54,0xf9,0x55,0xe4,0x8f,0x2d,0xe8,0x83,0x70,0x12, + 0xb7,0x80,0x3d,0x90,0xc2,0xaa,0xb8,0xf7,0xc5,0xaa,0x9c,0x63,0x8d,0x24,0x10,0x03,0xb0,0x62,0x40,0x27,0x51,0xa5,0x1d,0x86, + 0x99,0xbf,0xc5,0x34,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8e, + 0x92,0x10,0x26,0x61,0x30,0xbe,0xc4,0x2d,0x25,0x89,0x41,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x79,0xfe,0x5d,0x62,0xbc,0x2c,0x18,0x25,0x51,0x17,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0xcd,0x9b,0x10,0xc2,0x60,0x3c,0xa8,0xf2,0x62,0x34,0xc9,0x8e,0x5d,0xe2,0x50,0xd4,0xf6, + 0x4a,0x7b,0xb2,0xbf,0x1f,0x0c,0xe3,0x31,0x6a,0x19,0xb5,0x60,0x52,0x30,0x2d,0xc9,0x76,0xfe,0xdb,0x98,0x1c,0x00,0x00,0x74, + 0x27,0xbb,0xd0,0x4e,0x32,0xa6,0x4f,0x22,0xe5,0xd6,0xbe,0xeb,0x72,0x55,0x70,0xde,0x91,0x6a,0x9e,0xf9,0xad,0x58,0x88,0x77, + 0x64,0x07,0x27,0xfb,0xf3,0x6e,0x18,0x0f,0x23,0x27,0xb6,0xb6,0xdd,0xca,0x36,0x4f,0x33,0xee,0x47,0x4e,0xab,0x84,0x30,0xc9, + 0x98,0x56,0x4e,0xd9,0x9a,0x32,0xb3,0xc8,0x28,0x85,0xd8,0xfb,0xd9,0x2a,0x43,0x19,0x2d,0x46,0x1b,0x9e,0xc5,0x99,0x83,0xbb, + 0xc0,0x83,0x8e,0x64,0xc3,0xe6,0x59,0x1c,0x3d,0xcf,0x66,0xa3,0x27,0x7f,0x56,0x5b,0xc7,0xf6,0xeb,0x67,0x96,0xc1,0xf8,0x79, + 0xea,0x8c,0xba,0x71,0x93,0x59,0xb8,0x88,0xf3,0xf6,0x22,0xce,0xdb,0x1d,0x6d,0x9d,0xec,0xbc,0x04,0x5b,0xbb,0xdc,0x1a,0x35, + 0xf4,0x66,0x0b,0x5a,0x14,0xd4,0xbd,0x9e,0xe5,0xf0,0x0e,0xe5,0xb8,0x6e,0x37,0xbc,0xc7,0x47,0x30,0x76,0x9b,0xd8,0xf6,0xcc, + 0x03,0xd5,0x7a,0x21,0x41,0xbb,0xfb,0xdd,0xe5,0x04,0xb5,0x5b,0x1d,0x0b,0x4a,0x82,0x30,0x3f,0x1b,0xab,0xd4,0x8e,0xeb,0xea, + 0x29,0xd5,0x63,0x2b,0xf9,0xe5,0x1b,0xb2,0xcb,0xee,0x2f,0xc7,0xcb,0xee,0x2f,0x6f,0x74,0xac,0xfd,0x29,0x49,0x30,0x2c,0x38, + 0x9b,0x51,0xd4,0x7a,0x46,0xb1,0x33,0x5b,0x5f,0x32,0x2e,0x6b,0x29,0xcf,0x5c,0xd5,0x63,0x19,0x17,0xad,0xb9,0x2c,0x79,0x1d, + 0xb2,0xca,0x8d,0x9f,0x85,0x82,0xcb,0x8d,0x46,0xc8,0xbf,0x89,0x81,0x61,0xd7,0x3c,0x0c,0x93,0x8c,0x69,0xc9,0x93,0x0a,0xdb, + 0xce,0xf0,0x6c,0xb8,0x7d,0x32,0x0e,0xc5,0x4f,0x16,0xa3,0x2e,0x67,0x8c,0x9d,0x50,0x6d,0xeb,0x7d,0x70,0xfa,0xc9,0xb8,0xb0, + 0x7c,0x72,0xd5,0x72,0xd1,0x82,0x49,0x91,0xd9,0xb4,0xe4,0xaa,0xe0,0xbc,0x23,0x9b,0x8c,0xcf,0xd3,0x5f,0x8a,0x31,0x1c,0x82, + 0xac,0x0a,0xbf,0x14,0xfb,0xaf,0x1d,0xd3,0x3a,0xb2,0x79,0x3b,0xbf,0x55,0x52,0x96,0x90,0x35,0xc8,0x2f,0xc6,0x76,0xe9,0x42, + 0x28,0x18,0xdf,0x6a,0xb2,0x06,0xf9,0xc5,0xd8,0xf2,0x9b,0x31,0x29,0x06,0x4a,0x3e,0x3e,0x7f,0x31,0x36,0xf2,0x2f,0xc4,0x3c, + 0x13,0x25,0xab,0xf5,0x2f,0xc4,0xca,0xf7,0x42,0x9e,0xe7,0x59,0x49,0xdf,0xb7,0x7e,0x59,0x9e,0xd3,0xcb,0x51,0xf8,0xf8,0x60, + 0x3c,0x3e,0x06,0x6a,0x3f,0xcf,0x90,0x35,0xe4,0xcf,0xc7,0xf6,0xac,0x10,0x7e,0x3e,0x5e,0x0d,0x7f,0x3e,0x76,0x1c,0x3a,0x51, + 0x6d,0xd6,0x19,0xb5,0x2d,0xdf,0xe2,0xcc,0xea,0xb1,0xb9,0xae,0x9a,0xb6,0x60,0x52,0x47,0x53,0x82,0xca,0x8d,0xf5,0xe8,0xaa, + 0xd8,0x79,0xde,0x91,0x35,0x13,0x6f,0xae,0xf4,0x0f,0x87,0xf0,0xb3,0x59,0x0b,0x36,0x73,0x9a,0x71,0x3f,0x6e,0x8d,0x5a,0x25, + 0x58,0xcd,0x55,0xc1,0x79,0x47,0x5a,0x14,0x74,0x13,0xed,0xcf,0xc5,0x81,0x82,0x1a,0xb2,0x31,0xff,0x73,0x71,0xe8,0xaf,0x27, + 0x4f,0x70,0x36,0xa3,0xed,0xb1,0xee,0x97,0x89,0x95,0xb5,0xee,0x1c,0x74,0x51,0xdd,0x6a,0x79,0x57,0xc5,0xce,0xf3,0x8e,0xd4, + 0xc5,0x90,0xaf,0x05,0xcb,0x74,0x9c,0x4e,0x5b,0xb2,0xf1,0x2c,0xbe,0xac,0xa3,0x3c,0x76,0x56,0x59,0x20,0xce,0x96,0x92,0xff, + 0x0c,0xfa,0xe4,0xf4,0x67,0x62,0x5b,0x57,0xb6,0xaa,0xd4,0x26,0xa8,0x3d,0xd6,0x54,0x42,0x6d,0x41,0xc5,0x56,0x12,0xaf,0x1d, + 0xb6,0xa0,0x2e,0xbe,0x51,0x64,0x5a,0x92,0x9d,0xf7,0x53,0x71,0x65,0xe8,0x81,0x61,0x41,0xbe,0x00,0xfe,0x54,0x5c,0x00,0x23, + 0xe5,0xce,0x82,0x49,0xc1,0xb4,0xa4,0x92,0x7c,0x54,0x52,0xcd,0xa5,0xb7,0xbb,0xed,0xfb,0xb1,0xa0,0x75,0x1c,0x36,0xdd,0x0e, + 0x03,0xab,0x96,0xd7,0x21,0x5d,0x87,0x37,0x8e,0xee,0x1e,0x61,0xf6,0xb6,0x55,0xed,0xab,0xfc,0x2d,0xdf,0x88,0x7b,0xd8,0x7c, + 0xca,0xc2,0xbb,0xc0,0x6b,0xc6,0xcb,0x4f,0xc7,0x74,0x40,0x2b,0xfa,0xbb,0x3e,0xdc,0x16,0xaa,0x97,0xac,0xda,0xeb,0x58,0xd3, + 0xc5,0xad,0xe9,0x02,0x76,0x55,0x1c,0x3b,0xef,0x48,0xfb,0xeb,0xc3,0x5b,0xf1,0xb5,0x99,0x0f,0xdc,0x66,0xc4,0x90,0x06,0x62, + 0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48, + 0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03, + 0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31, + 0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4, + 0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81, + 0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18, + 0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2, + 0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40, + 0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c, + 0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69, + 0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20, + 0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86, + 0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34, + 0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10, + 0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43, + 0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a, + 0x88,0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88, + 0x21,0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21, + 0x0d,0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d, + 0xc4,0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4, + 0x90,0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90, + 0x06,0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06, + 0x62,0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0x88,0x21,0x0d,0xc4,0x90,0x06,0x62, + 0x48,0x03,0x31,0xa4,0x81,0x18,0xd2,0x40,0x0c,0x69,0x20,0x86,0x34,0x10,0x43,0x1a,0xbc,0x09,0x21,0x0c,0xc6,0x83,0x5e,0xf9, + 0x50,0x28,0xb2,0x4e,0x97,0xa6,0xca,0x7f,0x30,0x9e,0x82,0x7e,0x69,0x6a,0xf2,0xaf,0xcf,0x08,0xe3,0xf7,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x84,0x78,0x33,0xcc,0xbf,0x06,0xf8, + 0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xe2,0xbc,0x18,0x85,0xe1,0x60, + 0x3c,0x06,0x00,0x00,0xc0,0x5d,0x22,0xbb,0x11,0x1c,0xdc,0x90,0x44,0x95,0x80,0x3d,0x8e,0xf9,0x3b,0x4b,0x08,0xe1,0x22,0x8c, + 0x4f,0xda,0xf3,0x26,0x33,0x8c,0x07,0xbd,0x92,0xfd,0xf9,0x44,0x2c,0x61,0x25,0x2d,0x72,0x99,0x86,0xc1,0x4f,0x86,0xf1,0x78, + 0x18,0x4e,0x33,0xee,0x97,0x5b,0x1d,0x09,0x61,0x94,0xf1,0xb4,0x9f,0xcc,0x6a,0x79,0x13,0x06,0x73,0x95,0x6f,0x7f,0x66,0x6d, + 0xba,0xf6,0x3b,0xb7,0x6f,0x90,0xe1,0x09,0x70,0x9b,0x78,0xbe,0x6f,0xde,0x84,0x61,0x5c,0x97,0xf6,0x44,0x0a,0x8d,0x0c,0x00, + 0x00,0x80,0x1d,0xf1,0x28,0x4c,0xb2,0x7b,0xbe,0xb7,0x5e,0x15,0x3c,0x09,0x61,0x92,0xed,0xbc,0xdc,0x23,0x09,0x34,0x01,0xb6, + 0xc6,0x83,0x43,0x1a,0x6c,0xf1,0x8c,0x57,0xcc,0xbf,0x37,0xe1,0x2c,0xee,0x3c,0x52,0x76,0xd1,0xd6,0xaf,0x0b,0x9e,0xd5,0xae, + 0x67,0xc3,0xe1,0xe9,0x20,0x8c,0xef,0xef,0x89,0x7b,0xf7,0x9f,0x8f,0x26,0x61,0x30,0x9e,0x3e,0xaa,0xf0,0xbc,0xc2,0x93,0x0a, + 0xaf,0x0a,0x9e,0xc4,0x33,0xdf,0x7a,0x16,0x77,0xe6,0xaf,0x78,0x0e,0xe2,0x0b,0x9f,0x6b,0x18,0x86,0x58,0xfa,0x4e,0x79,0xf7, + 0x86,0x17,0xb1,0x82,0x91,0xc7,0x15,0x3e,0x50,0x52,0x8d,0x68,0xf7,0x5b,0x95,0x2a,0x4d,0x97,0x8f,0x85,0x78,0x6c,0x05,0x1f, + 0xa8,0xf2,0x68,0x74,0x3f,0x9c,0xc4,0x63,0x27,0x79,0xff,0x15,0x5b,0x65,0x5b,0xbf,0x8c,0x25,0xbc,0xcc,0x76,0x2e,0x75,0x63, + 0x4c,0xfe,0x38,0x2f,0x7d,0x18,0x4b,0x1f,0xc6,0x7a,0xae,0xda,0x7a,0x31,0x1a,0xcf,0xd5,0x7a,0xc6,0x28,0xe3,0x69,0x4e,0x88, + 0xcd,0x1a,0xf2,0xad,0x79,0xca,0xba,0x94,0x09,0xde,0x2e,0x72,0x79,0xf6,0xba,0x92,0x59,0xd3,0x78,0x69,0xbf,0x74,0x25,0xb1, + 0x8c,0x02,0x68,0x47,0xf5,0x7e,0xe2,0xb4,0xb8,0xde,0x3e,0x2a,0xdf,0x3b,0x7b,0x72,0x52,0xac,0x67,0x2f,0x4e,0xe2,0x32,0x73, + 0x52,0x2c,0x17,0x6f,0x9f,0xc4,0xc5,0x23,0x6e,0xcd,0x8e,0xc5,0x65,0xf4,0x24,0x2e,0x56,0x27,0x71,0xb1,0xba,0x3e,0x56,0x2c, + 0x4f,0x8f,0x4e,0xe2,0x1a,0x79,0x52,0xac,0x52,0xb3,0xad,0xfb,0xf1,0x94,0x93,0x8c,0xf3,0x8e,0xbc,0xcc,0x32,0x1b,0x66,0x2b, + 0x6d,0x51,0x7a,0x51,0xa5,0x7c,0x01,0xac,0xb0,0x18,0x51,0xb8,0x18,0x8c,0x87,0xb7,0x8c,0xb2,0x91,0xcb,0x18,0x2a,0x6d,0xfd, + 0xfc,0x45,0xb1,0xf5,0x81,0xd9,0x56,0x9e,0xe0,0xe4,0x96,0x31,0x17,0xdf,0x30,0x1f,0x36,0xb3,0xf8,0xb2,0xad,0xea,0x00,0x7b, + 0x74,0xaf,0xb8,0x24,0xbf,0x2a,0x78,0x12,0xb7,0xae,0x77,0xbe,0x8c,0xbc,0xb8,0x17,0x1e,0x65,0xa3,0xfc,0xbd,0x9d,0xc9,0x32, + 0x1b,0x95,0x99,0x61,0x73,0x5e,0xc6,0x16,0x7c,0x39,0x6b,0xc8,0x8f,0xc7,0x63,0x47,0x46,0xed,0x47,0x10,0xb6,0x4d,0x9e,0x44, + 0xba,0xda,0x88,0xe2,0xe2,0xff,0xac,0xbc,0x14,0xc4,0xd5,0xe6,0x69,0x9c,0xa2,0xcf,0xe3,0xd6,0xe5,0xdb,0x95,0x53,0xae,0xef, + 0x23,0x8b,0x49,0x79,0x19,0x79,0xda,0x40,0x79,0xca,0xe5,0xac,0xd8,0xb3,0x78,0x37,0xba,0x1d,0xc3,0xe2,0x55,0xb1,0x47,0x55, + 0xde,0x13,0x8a,0x7a,0x3e,0x18,0x16,0x2c,0x3e,0x6f,0x86,0xff,0x52,0x5c,0x22,0x7b,0xe4,0xe6,0x53,0x2d,0xbd,0x67,0xbd,0x7b, + 0x52,0xaa,0x7c,0x6d,0x5d,0xf6,0x5d,0xc1,0xa5,0x8f,0x2a,0xed,0xb5,0xbc,0x63,0x27,0x89,0x71,0x06,0x1c,0x23,0x2d,0xe6,0xdf, + 0xa4,0x60,0x3a,0x29,0xae,0x94,0xd3,0x72,0x6b,0xcd,0x84,0xcd,0xb8,0xc0,0xe6,0x34,0xb4,0xe7,0xe5,0xf6,0x4c,0x1e,0x86,0xf1, + 0x03,0xec,0x9b,0x8b,0x06,0x2e,0x0f,0xc3,0x52,0x25,0xc2,0x1c,0xb3,0xe1,0x36,0x29,0x87,0x4d,0xef,0xac,0x18,0xde,0x93,0x87, + 0xab,0x8e,0x61,0xab,0xfb,0xa5,0x6e,0xcb,0xc5,0xdd,0xa5,0x7c,0xbf,0x2a,0x89,0x6e,0x04,0x10,0x8a,0xf5,0xec,0x5f,0xc7,0x1b, + 0xd6,0x5b,0xcf,0xaa,0xf8,0xfe,0x55,0x3c,0x05,0x3d,0xb2,0xb7,0xf1,0x59,0x5e,0x34,0x42,0x38,0x09,0xc5,0x9d,0xd5,0x6d,0x64, + 0xcd,0xfc,0xfb,0xdf,0xb1,0x59,0x8f,0x99,0x8b,0x5a,0xba,0x2f,0x5d,0xb5,0xe5,0xfd,0xcb,0x83,0xf1,0xa0,0x63,0xf2,0x76,0x41, + 0xff,0x65,0x4c,0x70,0xd7,0xc9,0x56,0x86,0xbf,0x8c,0x9f,0x7b,0x5a,0x49,0xbb,0xf6,0xfc,0x17,0x31,0xcf,0x63,0xa1,0x0c,0x6c, + 0x52,0x6c,0x4d,0xb3,0xff,0xff,0x5f,0xf1,0xd8,0xdd,0x63,0x4d,0xbf,0x6f,0x95,0xe7,0xa4,0xa0,0x6c,0xd6,0x07,0x4d,0x24,0x71, + 0x7b,0x97,0x3c,0xd9,0x9f,0x7f,0x1e,0xb2,0xb9,0x8c,0x3a,0x4e,0xb0,0xcc,0x3f,0x8b,0xb3,0x11,0x3d,0xf1,0x4f,0x8f,0x8b,0xea, + 0xfa,0x72,0x55,0xec,0x3c,0xef,0xc8,0x46,0xeb,0xd9,0x3f,0x89,0xd3,0xf7,0xee,0xb1,0xbe,0x5d,0x4e,0xee,0x24,0x6b,0xda,0xe5, + 0x1f,0xc7,0xb1,0x8b,0x79,0x3a,0xdc,0x4f,0xfc,0x44,0xcc,0x05,0xbb,0xa6,0xef,0x1b,0xc1,0x9f,0x88,0x37,0xd6,0xff,0x28,0xae, + 0x28,0x3d,0x70,0x93,0x75,0x7f,0x79,0xee,0xa2,0xbc,0xda,0x74,0x95,0x9d,0x27,0xfd,0xb0,0x8b,0x3c,0x77,0x51,0x5e,0x6d,0xba, + 0x24,0x9e,0x57,0xd0,0xfb,0xf3,0xdf,0x7f,0x8e,0x2b,0x0a,0x00,0x00,0xc0,0x9e,0x38,0xda,0xfb,0x97,0xc3,0xde,0x9f,0x25,0x71, + 0x73,0xd9,0x2e,0xbe,0x8b,0x30,0x1e,0xb5,0x60,0xe3,0x04,0x77,0x99,0x7e,0x1a,0x2b,0x89,0x11,0x82,0xdd,0xce,0xbf,0xc1,0x3f, + 0x2c,0x56,0x8d,0xb5,0x94,0x3f,0xa3,0x5c,0x52,0xdd,0xd9,0x3e,0x17,0x2c,0xb4,0x67,0x53,0x23,0xd7,0xb6,0xf5,0x52,0xba,0x7f, + 0x90,0x26,0x65,0x3d,0x27,0xc5,0xd6,0x34,0xee,0xbc,0xd8,0x86,0xbf,0x1f,0xf3,0x4c,0x9a,0xcb,0x0a,0x17,0x1b,0xf1,0xf7,0x62, + 0x2e,0x47,0x46,0xed,0x48,0x6e,0x41,0x4c,0x7e,0xb1,0x2d,0xdb,0x16,0x8b,0x95,0xdd,0xf1,0x77,0x63,0xa7,0x1e,0x90,0xda,0xba, + 0xb4,0xae,0xfc,0xc5,0x1a,0x7e,0x3c,0xe6,0x99,0x26,0x17,0x2d,0xa8,0x8d,0x7d,0x12,0x26,0x3f,0x1e,0xd7,0xdd,0x1f,0x8b,0x99, + 0xdd,0x26,0xda,0xf5,0xed,0x8f,0x15,0x5f,0xd5,0x4c,0x60,0x92,0xa0,0xcb,0xfa,0xf2,0xff,0x06,0x45,0xbf,0x1f,0x2d,0x3f,0x1a, + 0x6e,0x01,0x6b,0xfa,0xe8,0x47,0xe3,0x6a,0x73,0x43,0x35,0xf9,0xc5,0xde,0x58,0x5f,0x33,0x6c,0xc8,0x8f,0x84,0xe2,0xc3,0xdc, + 0x3f,0x12,0x3f,0xb7,0x3d,0x47,0xd9,0xc8,0xb5,0x3b,0x9b,0xa8,0xcd,0xac,0xa4,0x2c,0xaf,0x96,0x9b,0x4e,0xdd,0xec,0xd8,0xed, + 0xa4,0x45,0x9b,0xb5,0x68,0xe4,0x98,0xd9,0xc5,0xb6,0x6c,0xbc,0x5e,0x4f,0x8a,0x74,0xd3,0x8d,0x89,0xe5,0x6d,0x7e,0xb9,0xce, + 0xd2,0xfd,0x8f,0xd8,0x66,0x47,0xc2,0x45,0x85,0xbc,0x5d,0xfe,0x67,0x3c,0x76,0x24,0x5c,0x54,0x49,0xe2,0x26,0x63,0xb7,0xf7, + 0x2f,0x3f,0x1c,0x63,0xdf,0x86,0xcb,0x6e,0xc9,0xd3,0x20,0x5b,0x89,0x7e,0x38,0xae,0x59,0x3f,0xbc,0x66,0xcd,0x8a,0x09,0x2e, + 0x9a,0x98,0x14,0x4c,0x5b,0xf0,0x2c,0xd2,0xbd,0xff,0x7e,0x28,0x86,0x82,0xfd,0xb2,0xe2,0xf2,0x32,0xf9,0xa1,0xf8,0x73,0x3c, + 0x2d,0xc9,0x32,0xfb,0xeb,0x98,0x67,0x6a,0x2c,0x8d,0xb3,0xbf,0x8e,0xa3,0x7c,0x63,0xfe,0x2a,0xe6,0x79,0x40,0xda,0xcd,0xa3, + 0xbf,0x9a,0x55,0x77,0x33,0x7e,0x30,0x16,0x74,0x08,0xb6,0x59,0x2e,0x7e,0x30,0x8e,0xba,0x65,0x76,0x74,0x79,0xf9,0xc1,0x59, + 0x2b,0xb5,0x21,0x89,0x8b,0x22,0x6e,0x0d,0xd9,0xb0,0xf9,0x6f,0x71,0x3e,0xe0,0x0e,0x92,0xc4,0x18,0xbc,0xcb,0x64,0xfd,0xf0, + 0x5f,0x8b,0xef,0x1c,0x60,0x77,0xec,0xbc,0xff,0x4e,0xb0,0x4b,0xb6,0xec,0x95,0x8b,0x56,0x0c,0x7f,0xa0,0x58,0x0e,0xef,0x20, + 0xd9,0x13,0xfb,0x0f,0xc4,0x07,0xf7,0x65,0xb6,0xfd,0xa7,0x98,0xaf,0xc2,0xbd,0x1f,0x28,0xbe,0xb7,0xdb,0x89,0x4d,0x8a,0x4d, + 0x60,0x11,0x07,0x00,0x00,0xbd,0x12,0xc2,0xbd,0x93,0xe2,0x36,0xed,0xd8,0x98,0xc5,0x37,0xf8,0xfe,0xf8,0x38,0x8e,0xd5,0x94, + 0x8d,0x95,0xdd,0x9b,0x7e,0x7f,0xbc,0x45,0xcd,0x99,0x14,0xc7,0x1e,0x2f,0x8e,0x97,0x9a,0x74,0xc0,0xca,0xf5,0x65,0xf0,0xdf, + 0xe3,0x78,0x39,0x12,0x2e,0x7a,0xa1,0xc3,0xc7,0xb7,0x87,0xdf,0x17,0x9f,0x30,0x53,0x23,0x5b,0x35,0xbe,0x2f,0x2e,0x1e,0x3d, + 0x10,0xf3,0xbc,0x68,0x60,0xda,0xc4,0xb6,0x4f,0xd7,0xbb,0x27,0xeb,0xfe,0xbf,0x88,0x63,0xe9,0x10,0x64,0xad,0xfb,0x17,0xb1, + 0x91,0x97,0x89,0xa7,0x4c,0x6b,0x49,0x62,0x29,0x49,0x82,0xac,0x41,0xfe,0x4e,0x6c,0xcf,0xc4,0xb8,0x68,0x4f,0x12,0x0d,0x79, + 0xd3,0x9e,0x7f,0x3b,0xc6,0x90,0x28,0x1d,0xe3,0xcb,0x26,0xfd,0xf7,0x86,0xf1,0x59,0x36,0xc7,0xbe,0xb7,0x98,0x6a,0xc5,0x56, + 0x28,0x18,0x63,0x7f,0xcc,0x3a,0x60,0xd7,0x4c,0x8a,0xf2,0xa6,0x25,0x61,0x3d,0xcd,0xdf,0x1e,0x9d,0x7c,0x6f,0x31,0x6f,0x13, + 0xe0,0xaa,0xa8,0xee,0x79,0x47,0xca,0x56,0x6a,0xea,0x9c,0x72,0x67,0xc7,0x2f,0xde,0xde,0xe4,0xf9,0xb1,0x79,0xc2,0xc7,0xe2, + 0xfc,0xfb,0x58,0x2c,0x1d,0x1b,0x52,0xb6,0xe0,0x22,0xd5,0x46,0xae,0x69,0xf2,0xda,0x33,0x63,0x9e,0xd3,0x0a,0x8f,0x26,0x71, + 0xab,0x96,0x32,0x5d,0x6f,0x3f,0x8d,0xf0,0xb1,0x9b,0x7f,0xa1,0xfc,0x66,0xe7,0xdf,0x8a,0xd1,0xde,0x0a,0x36,0x0e,0xfa,0xaa, + 0x48,0x77,0xde,0x91,0x8d,0xa6,0xe1,0xf7,0xc4,0x0e,0x9f,0x23,0x3b,0xf2,0x3d,0x31,0x86,0xbb,0x47,0x6d,0x83,0x2c,0x92,0x9f, + 0x79,0xd6,0xea,0xcc,0x1a,0x6e,0x7a,0xfa,0x7b,0x62,0x8f,0x75,0x61,0x52,0x30,0xad,0x65,0x16,0x51,0x59,0xdd,0x82,0x72,0x67, + 0x87,0x49,0xf9,0xdd,0xb1,0xb1,0xee,0x10,0x59,0xc7,0x7d,0x77,0x9c,0x16,0x19,0xd3,0x87,0x91,0xf2,0x58,0xf7,0xcb,0xe0,0x77, + 0xc5,0xa1,0x11,0x09,0xdf,0x15,0xfb,0xe8,0xbb,0x62,0xe9,0xe8,0x83,0xb2,0x59,0x17,0xa9,0xb6,0xfc,0xc6,0xcc,0x67,0xd6,0x54, + 0xfa,0xa4,0x60,0x5a,0x12,0x2a,0x5b,0x4d,0x25,0x84,0xeb,0x53,0xe6,0xab,0x7b,0x55,0x6c,0x9d,0x77,0xa4,0xac,0xd9,0xc3,0xf9, + 0x2a,0x2d,0xd4,0xb3,0xe4,0x66,0xda,0x7f,0xb4,0xb8,0xd5,0x4c,0x80,0x9e,0x7f,0xff,0x25,0x7c,0x67,0xec,0xaa,0x43,0x90,0x44, + 0x25,0x36,0x66,0x58,0x70,0xb6,0xc8,0xe9,0x77,0xc6,0xb1,0x5b,0xa1,0xf6,0x94,0x9a,0x04,0x93,0x62,0xe7,0xb4,0x24,0x54,0xb6, + 0xaa,0x3b,0xcb,0x04,0x49,0xfc,0x7a,0x10,0x7a,0x98,0x7f,0x7f,0x33,0x8e,0xac,0x96,0x54,0xd3,0xb5,0xc8,0x65,0xdb,0x82,0xb6, + 0xa5,0xd7,0xf2,0x26,0x05,0x8d,0xaf,0x41,0x2c,0xb5,0xe7,0x77,0xc4,0xe4,0xe8,0x44,0xb6,0xcc,0x7c,0x47,0x5c,0xac,0xbe,0x23, + 0xae,0x60,0x15,0xca,0x63,0x1b,0xd2,0xee,0xf9,0xef,0x3b,0xe2,0x75,0xba,0x0b,0x1b,0xdd,0x7f,0x7e,0x7b,0xac,0x60,0x24,0x7c, + 0x7b,0x0c,0x33,0xe7,0x66,0x48,0x7d,0x7b,0x6c,0x97,0xcd,0x58,0x1a,0x98,0x2d,0x8f,0xa5,0xc4,0xb6,0x15,0x6c,0x0a,0xba,0x7d, + 0xf2,0xf2,0x1f,0x9f,0x2c,0x3b,0xa7,0x3c,0x56,0xed,0xa3,0xda,0x8e,0xab,0xed,0xc6,0x59,0x9e,0x6d,0x8f,0xd5,0x9e,0x52,0xdb, + 0x7f,0xcd,0x03,0xac,0x26,0x97,0x55,0x4b,0xd7,0xba,0x76,0x69,0xae,0x7c,0x75,0x24,0xaf,0xa5,0xd5,0x7c,0x68,0x9b,0x0e,0xc0, + 0xed,0x23,0xfb,0xf3,0x6d,0x71,0x7d,0xc1,0x9e,0x18,0x16,0x9c,0x2d,0x72,0xfa,0x6d,0x71,0x89,0xdd,0x94,0x16,0xb9,0xcc,0x1f, + 0x6b,0xaa,0xd9,0xa4,0x60,0x5a,0x4b,0x3c,0x65,0x7a,0x55,0x70,0xde,0x91,0x6a,0xd6,0x95,0xa1,0x38,0x6d,0xaa,0x67,0x12,0x53, + 0xa6,0xef,0xf9,0xf7,0xad,0x31,0x3e,0xf4,0xc1,0xb0,0xe0,0x6c,0x91,0xd3,0x6f,0x8d,0xf3,0x61,0x3d,0xd5,0x04,0xb5,0x99,0xd5, + 0xe6,0x59,0xb3,0xb3,0xae,0x82,0xd3,0x72,0x6b,0xdb,0xf1,0x72,0x55,0x24,0x3f,0xef,0x48,0x12,0x43,0x1f,0xc0,0x1d,0x27,0xfb, + 0xf3,0x37,0x8a,0x9f,0xc9,0x44,0x37,0x86,0x05,0x67,0x8b,0x9c,0x66,0xdc,0xaf,0x25,0xef,0x80,0x41,0xec,0x87,0x41,0xf1,0x32, + 0x45,0x5d,0xf2,0xda,0x5c,0x6a,0x76,0x3e,0x2c,0x76,0xe6,0x37,0x74,0x73,0x3c,0xa9,0x10,0xea,0x98,0xec,0x8b,0xe6,0xa6,0x5b, + 0xdd,0x2e,0xc7,0x4e,0xf6,0xf7,0x5b,0xe2,0xcd,0x09,0xfa,0x60,0x58,0x70,0xb6,0xc8,0xe9,0xb7,0xc4,0xdb,0xc2,0x4d,0xa9,0xcd, + 0xa5,0x26,0xcf,0x49,0xb1,0x73,0x5a,0x12,0xe6,0xe9,0xf7,0xa1,0xe9,0xaa,0xc8,0xf3,0xbc,0x23,0xed,0xcb,0x7b,0x18,0x26,0x1f, + 0x29,0x3e,0x73,0xd2,0x3f,0xa9,0x5c,0xff,0xbe,0x39,0x8e,0x1e,0xac,0x25,0x1b,0xec,0xdf,0x1c,0x67,0xc0,0x37,0xc7,0x19,0x50, + 0xd9,0xaa,0xee,0x6c,0xc1,0x7c,0x82,0x4a,0x41,0x1b,0x0c,0x8d,0xab,0x22,0xc1,0x79,0x47,0x92,0x18,0x8a,0x77,0x92,0x0f,0x87, + 0xf0,0x4d,0x59,0xbf,0xdf,0x4e,0x16,0x43,0x39,0xcd,0x76,0xde,0x5f,0x24,0x3f,0xf3,0x6c,0x46,0xed,0x29,0xd5,0x33,0x9b,0x4e, + 0x29,0x58,0x33,0x1f,0xbe,0x29,0x8e,0xeb,0x2e,0xc4,0xba,0x5c,0x94,0x4c,0x0a,0xa6,0x55,0xe2,0xb1,0xcb,0x8e,0x6d,0x06,0x00, + 0x77,0x96,0xec,0xcf,0x37,0xc6,0xfb,0x1e,0xb4,0x65,0x58,0x70,0xb6,0xc8,0xe9,0x37,0xc6,0x9b,0xcb,0x2d,0xa9,0xc9,0x25,0x96, + 0x97,0xc6,0x83,0x0a,0xb0,0xdd,0xfa,0xf2,0xa6,0xf8,0x21,0xce,0xa3,0xe6,0xe4,0x68,0xb9,0x2a,0x38,0xef,0x48,0xcc,0xec,0x62, + 0x5b,0x76,0x37,0x30,0xf3,0x25,0xfd,0x1b,0x36,0x62,0x29,0x97,0x95,0x3b,0xb7,0xcd,0xba,0xc5,0xce,0x74,0x19,0x16,0x9c,0xb5, + 0xa0,0x0c,0xac,0x76,0xe7,0xec,0xd8,0xe9,0x37,0xc4,0xab,0x61,0xa4,0x3c,0xb3,0xd8,0xaa,0x96,0xb7,0x58,0x7a,0x71,0xca,0xa4, + 0xd8,0x9a,0x56,0xe9,0x38,0x6c,0xae,0x8a,0x5c,0xce,0x3b,0x92,0xc4,0xd2,0x8c,0xfd,0x5c,0xff,0xbe,0x3e,0xce,0x8e,0xcd,0xe8, + 0x27,0x97,0xa3,0x65,0x58,0x70,0xb6,0xc8,0xe9,0xd7,0xc7,0xe5,0x62,0x99,0xa5,0x85,0xa5,0x72,0x4a,0x6d,0x66,0xf3,0x79,0x96, + 0xc5,0x3e,0x2c,0x98,0x56,0x2b,0x91,0xc4,0x38,0xeb,0x30,0x3e,0x3f,0x1c,0xdf,0x02,0xfd,0x70,0x7c,0x0b,0x74,0x3d,0xa1,0xc2, + 0xfc,0xb1,0x32,0x33,0x2c,0xb0,0x69,0xeb,0x9e,0xb5,0x48,0xf7,0xb0,0x38,0x65,0x1a,0xcf,0xcc,0x2f,0x6e,0x2b,0xa9,0x9e,0x59, + 0x26,0xcf,0xbb,0x7f,0xcb,0xf7,0x8b,0xbf,0x2e,0xd6,0xec,0xeb,0x62,0x5d,0xd6,0x93,0x27,0x38,0x9b,0x51,0x73,0x4a,0x99,0x27, + 0xb6,0x66,0x93,0xee,0xd8,0x98,0x9a,0x8e,0x9b,0x14,0x3b,0xa7,0x55,0xca,0xba,0x3c,0x8c,0x5b,0x55,0xaa,0x67,0x6e,0x3b,0xf8, + 0xda,0x8d,0xcf,0x77,0x62,0xbb,0xec,0x8d,0xb7,0x03,0x52,0x21,0x89,0x6b,0x2a,0x00,0x00,0xa9,0x93,0xfd,0x79,0x1d,0x2f,0x9f, + 0x5b,0xd1,0x4f,0x2e,0xc7,0xc0,0xb0,0x20,0xbf,0x4f,0x7e,0x1d,0x5f,0x59,0x68,0x49,0xd9,0x82,0x9b,0xa4,0x2b,0x0b,0xca,0xb9, + 0x5f,0x96,0x3e,0x29,0x98,0x36,0xd1,0xcf,0x78,0xb9,0x2a,0x32,0x3b,0xef,0x48,0xac,0xf5,0xc5,0x61,0xa9,0x8d,0x2f,0x7b,0x5e, + 0x79,0x15,0x8a,0xcf,0xac,0xbf,0x8a,0x2f,0xf4,0xbc,0x8a,0x5d,0x7c,0x2c,0x54,0xa3,0xcd,0x86,0xd4,0xab,0x38,0xb2,0x52,0x63, + 0x56,0xc1,0xbc,0xd6,0x67,0x5b,0xe4,0x52,0x9b,0xae,0x66,0x67,0x12,0xab,0x30,0x0e,0x78,0xfd,0xbb,0x8a,0xb3,0xa3,0x25,0xb5, + 0xe9,0xb6,0xcd,0xec,0x68,0xc9,0x26,0xd7,0x55,0x9c,0x63,0xeb,0xa8,0xed,0x95,0xea,0xb1,0xda,0x04,0xed,0x4b,0x28,0xa9,0xd6, + 0xac,0xc3,0xf5,0xef,0x2a,0x5e,0xc7,0xba,0xb0,0xd1,0xf8,0x7c,0x19,0x9b,0x75,0x1d,0xb5,0x09,0x36,0xce,0xe5,0x76,0x32,0x2c, + 0x38,0x6b,0xe2,0x66,0xd8,0xbc,0x8c,0x63,0xe2,0x65,0xe5,0x2a,0x53,0x49,0x50,0x9e,0x32,0xbf,0x55,0x6d,0xcf,0x8d,0xc6,0xcb, + 0xcb,0xd8,0xef,0x5d,0x48,0x62,0xa9,0x04,0x00,0x00,0x77,0x84,0xec,0xcf,0x87,0xe2,0x7d,0xd6,0x01,0xc9,0xee,0xc1,0x3e,0x14, + 0x6f,0xda,0x22,0xf9,0xce,0xb3,0x92,0x78,0xca,0xb4,0x24,0x89,0x36,0x03,0x80,0x43,0x90,0xfd,0xf9,0xe0,0x36,0xcf,0xa9,0x1d, + 0xca,0x7b,0x11,0x5f,0x52,0x4f,0x88,0x49,0xc6,0xe5,0xc6,0xbc,0x0e,0xe3,0x8c,0x67,0xb5,0x6c,0x9b,0x67,0x47,0x76,0xd8,0x71, + 0x93,0xa2,0xb1,0xf2,0xeb,0xe6,0x65,0xbc,0xd0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdc,0x65,0x92,0x78,0xab,0x0f, + 0xe8,0xe3,0xfd,0xdb,0x6c,0x40,0x3f,0x00,0xee,0x36,0x37,0x6f,0x8b,0x5f,0xc6,0xef,0x4c,0xae,0x64,0x07,0xf3,0x2f,0x8d,0xab, + 0x1a,0x00,0x1c,0x0b,0x49,0xdc,0x60,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xfc,0xf7,0xd6,0x9e,0xc7,0x5f,0x08,0x02,0x12,0x67,0x5a,0xb2,0xdb,0xf9, + 0xf0,0x7f,0x07,0x45,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0xdd,0x78,0x55,0xc7,0xa3,0x3a,0x92,0xa8,0xee,0x81,0x68,0x6a,0x82, + 0x6a,0x9b,0xbd,0x5a,0x9f,0x00,0x00,0x80,0x7d,0x51,0x7b,0x61,0x4f,0xa2,0x66,0x00,0xb0,0x2b,0xf2,0xf7,0x53,0x07,0xe3,0xc1, + 0xbd,0x62,0xeb,0x51,0x7b,0xe2,0x8a,0xf9,0x28,0x2e,0x95,0x8f,0xca,0x5c,0x36,0xe3,0xe0,0x1f,0xaa,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x3b,0x40,0xf6,0xe7,0xff,0xc4,0x7f,0xc4,0x0e,0x00,0x00,0x00, + 0x00,0x0e,0xcd,0xab,0xc8,0xa3,0x14,0xea,0x02,0xdc,0x72,0xf2,0xe7,0xfe,0x8d,0xff,0x85,0x79,0xec,0x92,0x83,0xbf,0x08,0x04, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x01,0xd9,0x9f,0x67,0x61,0x3c,0x06,0x00,0x00, + 0x00,0x00,0x00,0xfb,0x63,0x9b,0xe7,0xf7,0xa7,0x31,0xf9,0x91,0x51,0xc6,0x77,0x55,0x6c,0x9d,0x77,0xa4,0xa9,0x05,0x27,0xc5, + 0x29,0xd3,0x92,0x6c,0xd7,0x34,0x56,0x02,0x68,0xe0,0x66,0x7c,0x4e,0xe3,0x38,0xeb,0xc2,0x46,0xf3,0xfd,0x03,0xb1,0x12,0xc7, + 0x42,0x35,0xbe,0x61,0x38,0xcd,0x76,0xde,0x6f,0x62,0x52,0xa4,0x9b,0xf6,0xf6,0xfa,0xe7,0x5b,0xb1,0x2e,0xe8,0x83,0xac,0x8f, + 0xde,0x8a,0x5d,0xd5,0x92,0x49,0x91,0x6e,0x5a,0x25,0xd4,0x70,0xd9,0xc0,0xa8,0x96,0x4a,0x66,0x97,0xfd,0x8c,0x97,0xab,0x22, + 0xb3,0xf3,0x8e,0x54,0x06,0xdf,0x45,0x7b,0xd2,0x1d,0xb4,0xb7,0x65,0xaa,0x25,0xf1,0xa6,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, + 0xd0,0x92,0xec,0xcf,0x93,0x30,0x1e,0x1e,0x39,0x27,0x47,0xce,0x45,0xba,0x4c,0x0a,0xa6,0x25,0xa1,0x42,0x12,0x33,0x00,0xe8, + 0xb4,0x7e,0x3e,0x8e,0xef,0x0e,0xe0,0xce,0xd3,0x34,0x50,0x86,0xe1,0x34,0x3b,0xe5,0x7e,0x79,0xe6,0xb0,0xe0,0x0c,0x87,0x62, + 0xe3,0x89,0x5e,0xf6,0x5f,0x2d,0xb1,0x53,0x47,0xbb,0x20,0x89,0x45,0x0e,0x5b,0xf3,0x72,0x14,0xde,0x37,0x18,0x8f,0x32,0xde, + 0x5b,0x30,0x19,0x0e,0xc6,0xd3,0x6c,0x2b,0x63,0x74,0x6f,0x74,0xfa,0xfe,0xc1,0xf8,0x7e,0x7e,0xe6,0x20,0x26,0xe8,0xce,0xb0, + 0xc8,0xfa,0xac,0xa4,0xd7,0xac,0x6b,0x79,0x51,0xc4,0x37,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xe0,0x20,0xbc,0x09,0x21,0x0c,0xc6,0x83,0x8d,0x49,0xa2,0xf2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x03,0xc2,0x28, + 0xbc,0x1f,0x00,0x00,0x00,0x00,0x6e,0x37,0xdb,0x7e,0x22,0xe4,0x6e,0xd1,0xf1,0xf1,0x31,0x89,0x18,0x80,0xdb,0x4c,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x11,0x46,0xe1,0xd1,0x60,0x3c,0xaa, + 0x25,0x3f,0x65,0xd0,0x7c,0x4a,0xfb,0x74,0xe5,0xce,0x17,0xc5,0xd6,0x38,0xe3,0x1e,0x00,0x00,0x38,0x1e,0x1e,0x2d,0x51,0x5e, + 0xfb,0xb1,0x39,0xef,0x8d,0xcd,0x5a,0xe5,0x70,0x75,0x79,0x14,0x2b,0xb1,0xcc,0xb6,0x79,0x66,0x23,0xe4,0xbd,0x71,0xa0,0x00, + 0x00,0x00,0x00,0xb7,0x93,0x75,0xb7,0xbd,0x07,0x7f,0xd1,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xe7,0xc9,0xfe,0xbc,0x27,0x8c,0xc7,0xc0,0xf1,0x73,0xd8,0xf9,0xb0, + 0x8b,0xf2,0x0e,0x34,0xdf,0xeb,0xf2,0xbc,0x1c,0x86,0xd3,0x8c,0xfb,0x25,0x93,0x62,0xe7,0x74,0x18,0xce,0xb2,0x53,0x1e,0xd5, + 0x92,0xc4,0x02,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x06,0xc3,0x70,0x3a,0x18,0x8c,0xef,0x63,0x6b,0xf2,0x86,0x1c,0xc4,0xf6,0x1c,0xdc,0x82,0xf6,0xac,0x56,0x77, + 0x63,0x42,0xc1,0x25,0x80,0x35,0x74,0x9c,0x6a,0x2b,0x39,0xf8,0x45,0xe3,0x88,0xe8,0xa7,0xa7,0x01,0x00,0xd8,0x17,0xfd,0xdc, + 0x4f,0x24,0x11,0x4a,0x4a,0x68,0x9e,0xdb,0xc6,0xb0,0xe0,0x6c,0x46,0xcd,0x43,0x6f,0xab,0x74,0x4d,0x9c,0x65,0x3c,0xda,0x82, + 0xed,0x9e,0xd1,0x17,0xeb,0xd9,0x29,0xf9,0x31,0x70,0xb7,0xa2,0x3d,0x2a,0x26,0x73,0xec,0xea,0x81,0xb8,0xd3,0xf5,0x6f,0xf2, + 0x30,0x14,0x15,0xc4,0xed,0x27,0x5b,0x12,0x32,0xee,0x57,0x29,0x8f,0x25,0xf1,0x72,0x03,0x80,0x5b,0x44,0xfe,0x77,0x30,0xbe, + 0x48,0x82,0x37,0x61,0x27,0xd7,0xbf,0xe5,0xeb,0x34,0xd0,0x17,0x9d,0xc7,0x67,0x02,0x13,0x6f,0xc7,0x53,0xf4,0xe0,0x8b,0x1c, + 0x70,0x47,0x09,0x05,0xc3,0x5b,0xc9,0xc9,0xad,0x24,0x89,0xa6,0xdb,0x65,0x5b,0x57,0x46,0x96,0xb6,0xbe,0x33,0xe3,0xba,0x76, + 0x45,0xa9,0x5d,0x6d,0x9a,0x96,0xa0,0xf6,0xcb,0x53,0x2f,0x2b,0x58,0x9b,0x21,0xbc,0xed,0x80,0xde,0xdd,0x44,0x48,0x62,0x98, + 0xde,0x95,0x71,0x5d,0xd2,0x7e,0x44,0x76,0x1c,0x98,0xdb,0x26,0x4f,0x68,0xdd,0xdd,0x5f,0x5b,0x6f,0xda,0x2e,0xc3,0x7e,0xee, + 0x82,0x8e,0xa8,0xad,0x6f,0x17,0x49,0x34,0x9d,0xb6,0x4e,0x98,0x24,0x9a,0x4e,0x5b,0x27,0x4c,0x12,0x4d,0xa7,0xad,0x13,0x26, + 0x89,0xa6,0xbb,0x23,0x6d,0x7d,0xcd,0x11,0xbc,0x2e,0xf5,0x74,0x6f,0x8d,0xd5,0x17,0x93,0x6d,0x6a,0x9d,0x44,0x5b,0xeb,0x15, + 0xbd,0xa2,0x57,0xf4,0x8a,0x5e,0x49,0x91,0x2e,0xbd,0xb2,0x70,0x27,0x70,0x15,0xb2,0xc3,0xe3,0x73,0xec,0x84,0xac,0x89,0x27, + 0xf1,0xe3,0xaa,0x00,0x00,0x00,0x00,0x80,0x63,0x66,0x18,0x4e,0x27,0xf1,0xbb,0xa4,0x38,0x08,0x3a,0x27,0xc5,0x96,0x6f,0xd1, + 0x2b,0x7b,0x9b,0x9b,0xd5,0x9d,0x93,0x82,0x69,0x2d,0xf1,0x94,0x69,0xfe,0xc2,0xd9,0x5e,0xbe,0x3c,0xdc,0xa2,0x91,0xdb,0x9f, + 0xd9,0x0f,0x49,0x7c,0xa8,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x77,0xb2,0x3f,0x17,0xf1,0x0b,0x28, + 0xdd,0x19,0xf7,0x99,0x59,0x57,0x92,0x68,0x5d,0x00,0x40,0xaa,0x0c,0xc3,0xe9,0x83,0xf8,0x4f,0x05,0xb4,0x64,0xdb,0x74,0xfd, + 0xb0,0x8b,0xca,0xb7,0xcf,0x2c,0x89,0x1e,0x03,0x00,0xf4,0x41,0xf6,0xe7,0x3c,0x3e,0xb9,0x61,0x43,0x6a,0xdb,0x33,0xbb,0x52, + 0x9e,0xc7,0x0b,0x66,0x4b,0x62,0x66,0xa3,0xf6,0x54,0xcb,0xbb,0x2a,0x76,0x9e,0x77,0xa4,0xf5,0x08,0xf1,0xaf,0x28,0x01,0x00, + 0x80,0x5b,0x47,0xf6,0xe7,0x2c,0xde,0xcd,0x1c,0x0b,0xd9,0x7d,0xe4,0xd9,0xe1,0x5e,0x9b,0xc9,0xfe,0x9c,0xc6,0xba,0xa0,0x2d, + 0x59,0x8f,0x9d,0xc6,0x07,0x80,0x65,0xae,0x8a,0x53,0xce,0x3b,0xd2,0xa2,0xe3,0xde,0x0e,0xe3,0xec,0xcc,0x67,0x49,0x4c,0x4a, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xec,0x8c,0xec,0xcf,0xfd,0xf8,0xc9,0x95,0x96,0xb4,0x48,0x57, + 0x7b,0xca,0xb6,0xe5,0x6d,0xcb,0xac,0xbc,0xc1,0xb8,0xd8,0x09,0x00,0xe8,0x9b,0x37,0x61,0x10,0x2f,0x28,0x83,0x9b,0x05,0xf7, + 0x62,0x5b,0x86,0xe1,0x74,0x1c,0x3f,0x2d,0xd9,0x92,0x6a,0xe9,0x58,0x20,0x6b,0xd6,0x51,0xf1,0x2f,0x0f,0xdf,0x21,0x4e,0xee, + 0x08,0xd9,0x0c,0x18,0xc5,0x89,0xd0,0x92,0x98,0x6e,0xd4,0x34,0x5e,0xae,0x8a,0x53,0xce,0x3b,0xd2,0x54,0xc2,0xab,0xe2,0x94, + 0x69,0x49,0x12,0x93,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8e,0x82,0x61,0x4e,0x28,0xb8,0x40,0x8a,0xbc,0x2e,0xb8,0x6c, + 0x38,0xf6,0xac,0x29,0x79,0xd9,0xc5,0x7d,0x91,0xc4,0xa0,0x85,0xf9,0x7e,0x50,0xea,0x67,0xe3,0x2e,0xe8,0x79,0xfa,0x9a,0xef, + 0x00,0xee,0x28,0xd9,0xa2,0x7a,0x52,0x7c,0x54,0xa9,0x86,0x9b,0x6b,0xe3,0xca,0x53,0x92,0xa7,0x36,0x86,0xea,0xce,0xea,0x02, + 0xbf,0x8b,0xd8,0x5b,0x64,0xd6,0x54,0x7a,0xfb,0xab,0x53,0x8b,0x04,0xed,0xcb,0xdb,0x61,0x7b,0x76,0xac,0x4b,0x8b,0xf2,0x7a, + 0x1d,0xd0,0xfd,0x64,0x7d,0xd8,0x01,0xb6,0xfb,0x39,0xd6,0x62,0xd4,0x6d,0x5b,0xeb,0xe4,0xe3,0x43,0x4f,0x84,0x30,0xc9,0x9a, + 0xfc,0x69,0x89,0xfb,0x79,0x00,0x00,0x76,0xc1,0x8b,0x30,0x09,0x83,0xd1,0x65,0x3d,0xa3,0x86,0x63,0x77,0x9a,0xfc,0x8b,0x02, + 0x83,0x15,0x24,0x51,0x41,0xa0,0xe7,0x71,0xbd,0x2d,0x07,0xaa,0xfc,0xbe,0x8b,0xdd,0x79,0x41,0xa3,0x3d,0x97,0x97,0x3e,0x7d, + 0x8c,0xcf,0x07,0xd9,0x13,0xfe,0x60,0x7c,0xd1,0x13,0x79,0xcd,0x66,0xd4,0xd6,0xfa,0xc1,0x30,0xff,0x22,0xe7,0x31,0x91,0xff, + 0x8e,0x40,0xc1,0x91,0xc6,0x77,0x0c,0x14,0x9d,0x53,0x65,0xc5,0xac,0x2a,0x12,0x54,0xd9,0x45,0x95,0x76,0x5f,0xc2,0x0d,0xa3, + 0xba,0x82,0xca,0x9d,0x1d,0x39,0x68,0xa7,0xee,0xf4,0xaa,0x8d,0x4d,0xf9,0xba,0x9c,0x7b,0x97,0xb7,0x8c,0x17,0xa3,0x70,0xef, + 0x64,0x9c,0x13,0x4e,0x46,0x05,0x3b,0x1e,0x52,0xa3,0x38,0x76,0x7b,0x60,0xd4,0x4b,0x2e,0xbd,0x52,0x5b,0xa5,0x51,0x37,0xc6, + 0xcd,0xdd,0xd1,0xb1,0xd6,0x5b,0xf5,0xdf,0x5e,0x06,0xca,0x75,0x79,0x95,0xbb,0xdf,0x26,0x52,0x58,0x04,0x00,0xdc,0x26,0xda, + 0xaf,0x2f,0xb7,0x9a,0x1d,0xbe,0x22,0xd1,0xb1,0x4a,0x49,0x34,0x0f,0xf6,0x37,0x06,0x37,0x4d,0xf7,0xfe,0xd4,0x27,0x49,0xa8, + 0xd0,0xef,0x24,0xd9,0x01,0xa1,0x42,0xfb,0x04,0xed,0xbb,0xaa,0x4a,0x8b,0xde,0xbc,0x4e,0x10,0xe6,0xd9,0xbc,0x21,0x13,0x5c, + 0xe4,0x7a,0x1d,0x8a,0x2d,0x8e,0x55,0x78,0x9c,0x73,0xef,0x79,0x13,0x49,0x8c,0x48,0x6c,0x3f,0x42,0x2a,0x5b,0x2d,0x26,0x5e, + 0x3f,0xa4,0xd1,0x04,0xbb,0x8b,0xaf,0xd7,0x76,0x69,0xd1,0x66,0x4d,0x99,0xf5,0xd3,0x01,0xb5,0x79,0xee,0xbe,0x57,0x42,0xeb, + 0xad,0xf6,0x95,0x6f,0x5f,0x50,0xfb,0x12,0x70,0xfc,0xd4,0x5d,0x30,0xc3,0xa6,0xec,0xbb,0xd6,0x1b,0x57,0x30,0xa5,0x88,0x76, + 0x52,0xeb,0xe5,0xf7,0xb2,0xda,0xb3,0x78,0xb3,0x1e,0xda,0xdf,0xec,0x25,0x7b,0x3f,0xdf,0x66,0xb0,0xf7,0x42,0xe3,0xed,0x79, + 0xf5,0xcc,0xdd,0x55,0xa2,0x9f,0x18,0x5a,0x54,0x7e,0x0f,0x31,0x24,0xdb,0x4a,0xb7,0x93,0xa6,0x19,0xde,0x66,0xf6,0xa7,0xce, + 0xe6,0x11,0x25,0xb1,0x12,0xe1,0xb0,0x6c,0xfc,0xa0,0xd2,0x44,0xa7,0xab,0xef,0x51,0xf1,0x4e,0x1d,0x2f,0xeb,0x68,0xca,0x25, + 0x89,0x11,0x72,0xa0,0x11,0x99,0xee,0x44,0xd8,0x49,0x28,0xad,0xd7,0xf9,0xc6,0x3b,0x8f,0x16,0x59,0xd7,0x9f,0xb2,0xe5,0x5b, + 0x61,0xbd,0x5e,0xc7,0xda,0x54,0x69,0xd3,0xd8,0x37,0xe8,0x80,0x9a,0xf2,0x92,0x58,0x4a,0x80,0x5b,0xc0,0x2e,0xde,0x7f,0x4f, + 0x22,0x30,0x1c,0x13,0xcd,0x17,0xa2,0x14,0x3e,0x1f,0xd2,0xa2,0xbc,0x7d,0x7d,0xfe,0x25,0x6f,0xb3,0x10,0x9b,0xae,0x37,0xf2, + 0xac,0x43,0x2c,0x61,0x89,0x5d,0x94,0x87,0x7e,0xfb,0x68,0xf7,0xfd,0xb7,0xef,0xf2,0x8e,0x8f,0xc3,0xf6,0x5f,0x4a,0x2c,0x86, + 0x99,0xed,0x8c,0xcb,0x7d,0x18,0x6d,0xdd,0x4a,0xb8,0x2b,0xe4,0x83,0xa8,0xef,0x1b,0x90,0xf6,0x9f,0x7b,0xea,0xf8,0xda,0x45, + 0xaf,0x1f,0xd4,0xe8,0xf5,0xf5,0x90,0x9e,0x3e,0x46,0x51,0x69,0xcf,0xae,0xaf,0xdb,0xc4,0xcc,0x92,0x78,0x01,0xec,0x88,0x48, + 0xf7,0x03,0x41,0x68,0x33,0x45,0x5b,0xec,0x4c,0xa2,0x9e,0x2d,0x3e,0x13,0x75,0xb4,0x1f,0x6d,0xdb,0x21,0xc5,0x25,0x0b,0xe8, + 0x81,0xdd,0xbc,0x4c,0x51,0x66,0xbd,0x43,0x36,0x7d,0xbd,0xa7,0xb6,0x9e,0x3b,0x4c,0xd7,0x22,0x97,0xf6,0xa4,0xb0,0xe8,0xf4, + 0xc4,0xee,0xe3,0xdb,0xb2,0x3d,0xeb,0xaf,0x2b,0xfd,0xcc,0x87,0xbd,0x05,0xd6,0xb1,0xbc,0x2d,0xe3,0xdb,0xfc,0x72,0xdd,0xad, + 0x3d,0x93,0x78,0x09,0x03,0xc0,0xe1,0x78,0x93,0xbf,0x16,0x34,0xb6,0x16,0x1c,0x9a,0xb2,0x1f,0xee,0x32,0x57,0xe1,0x24,0xe3, + 0xbc,0x23,0xed,0xcb,0x4b,0xe2,0x45,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0xf2,0x26,0x9c,0xc5,0xf7, + 0xff,0x0a,0x5e,0x8c,0xc2,0x70,0x30,0x1e,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x2a,0x61,0x30,0x1e,0x1c,0x33,0x49,0x34,0x32,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x7b,0xfc,0xfb,0x8d,0x00,0x80,0x2d,0x71,0x7d,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x0f,0xc2,0x60,0x3c,0xd8,0x2d,0x49,0x84,0x09,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x23, + 0x0c,0xc6,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0x88,0x24,0x7e,0x5d,0x15,0x00,0x00,0x00,0x00,0x80,0x8d,0x49,0xe2, + 0xb1,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x2f,0xde,0x84,0xb3,0x10,0x66,0xbc, + 0x38,0xf4,0x67,0x35,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x10,0x06,0xe3,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x44,0xde,0x84,0xb3,0x10,0xe6,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x40,0x85,0xb3,0x0a,0x49,0x54,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x09,0x71,0x56,0x21,0x89,0x2a,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0xff,0xb3,0x77,0xc7,0x38,0x08,0x03,0x31,0x14,0x05,0x37,0xab,0x28,0xe0,0x32, + 0xdc,0xff,0xb0,0x48,0xa9,0xb0,0x48,0x43,0x43,0x3e,0x62,0xaa,0x29,0xdc,0x3c,0x17,0xd6,0x96,0x0b,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x35,0x22,0x92,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x35,0x22,0x92,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x35,0x22,0x92,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x35,0x22,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x35,0x22,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x35,0x22,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x35,0x22,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0xbd,0x33,0x0f,0xf6,0xd3,0xd9,0x4f,0x73,0x2c,0xb6,0xee,0x40,0x24,0x11, + 0x47,0x02,0xfc,0x29,0x73,0xde,0x97,0xb1,0xdd,0x00,0x00,0xb8,0x94,0x88,0x47,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x1f,0x10,0xf1,0x25,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x35,0xea,0x95,0x39,0xc6,0xb2,0x3d,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xcf,0x76,0xe7,0xd0,0x06, + 0x00,0x00,0x84,0x01,0xd8,0x30,0x24,0xfc,0xff,0x30,0x8a,0x1f,0x10,0x55,0xb5,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x99,0xa4,0xeb,0x78,0x51,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x23,0x32,0x49,0xd7,0x02,0x07,0x5b,0x8e,0x31, + }; +}; + +class BreakPairTable +{ +public: + BreakPairTable() = delete; + + static BreakOpportunity getLineBreakOpportunity (LineBreakType a, LineBreakType b) + { + return (BreakOpportunity) table[(int) a][(int) b]; + } + +private: + static constexpr auto numTypes = 44; + static constexpr uint8_t table[numTypes][numTypes] + { + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x2,0x1,0x1,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x1,0x1,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x1,0x1,0x1,0x0,0x0,0x2,0x2,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x1,0x1,0x1,0x0,0x0,0x2,0x2,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x1,0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x2,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x1,0x1,0x1,0x0,0x0,0x2,0x2,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x2,0x1,0x0,0x1,0x1,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x1,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x1,0x1,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x1,0x1,0x0,0x1,0x1,0x2,0x1,0x0,0x0,0x1,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x1,0x2,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x1,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x1,0x1,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x2,0x0,0x4,0x0,0x2,0x0,0x0,0x0,0x2,0x2,0x2,0x0,0x2,0x2,0x2,0x0,0x0,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x0,0x0,0x2,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x0,0x2,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x1,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x1,0x1,0x1,0x0,0x0,0x2,0x2,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x1,0x1,0x2,0x1,0x1,0x1,0x1,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x2,0x0,0x0,0x2,0x0,0x0,0x1,0x1,0x0,0x2,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x2,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + { 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}, + }; +}; +} diff --git a/modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp b/modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp deleted file mode 100644 index 565128825b..0000000000 --- a/modules/juce_graphics/unicode/juce_UnicodeGrapheme.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE framework. - Copyright (c) Raw Material Software Limited - - JUCE is an open source framework subject to commercial or open source - licensing. - - By downloading, installing, or using the JUCE framework, or combining the - JUCE framework with any other source code, object code, content or any other - copyrightable work, you agree to the terms of the JUCE End User Licence - Agreement, and all incorporated terms including the JUCE Privacy Policy and - the JUCE Website Terms of Service, as applicable, which will bind you. If you - do not agree to the terms of these agreements, we will not license the JUCE - framework to you, and you must discontinue the installation or download - process and cease use of the JUCE framework. - - JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ - JUCE Privacy Policy: https://juce.com/juce-privacy-policy - JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ - - Or: - - You may also use this code under the terms of the AGPLv3: - https://www.gnu.org/licenses/agpl-3.0.en.html - - THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL - WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. - - ============================================================================== -*/ - -namespace juce -{ - -static constexpr bool graphemeBreakTable[14][14] = -{ - // Other cr lf Control Extend ri Prepend SpacingMark L V T LV LVT zwj - /*Other*/ { true, true, true, true, false, true, true, false, true, true, true, true, true, true }, - /*cr*/ { true, true, false, true, true, true, true, true, true, true, true, true, true, true }, - /*lf*/ { true, true, true, true, true, true, true, true, true, true, true, true, true, true }, - /*Control*/ { true, true, true, true, true, true, true, true, true, true, true, true, true, true }, - /*Extend*/ { true, true, true, true, false, true, true, false, true, true, true, true, true, true }, - /*ri*/ { true, true, true, true, false, false, true, false, true, true, true, true, true, true }, - /*Prepend*/ { false, true, true, true, false, false, false, false, false, false, false, false, false, false }, - /*SpacingMark*/ { true, true, true, true, false, true, true, false, true, true, true, true, true, true }, - /*L*/ { true, true, true, true, false, true, true, false, false, false, true, false, false, true }, - /*V*/ { true, true, true, true, false, true, true, false, true, false, false, true, true, true }, - /*T*/ { true, true, true, true, false, true, true, false, true, true, false, true, true, true }, - /*LV*/ { true, true, true, true, false, true, true, false, true, false, false, true, true, true }, - /*LVT*/ { true, true, true, true, false, true, true, false, true, true, false, true, true, true }, - /*zwj*/ { true, true, true, true, false, true, true, false, true, true, true, true, true, true } -}; - -static inline bool isGraphemeBreak (GraphemeBreakType g1, GraphemeBreakType g2) -{ - return graphemeBreakTable[(int) g1][(int) g2]; -} - -} // namespace juce diff --git a/modules/juce_graphics/unicode/juce_UnicodeLine.cpp b/modules/juce_graphics/unicode/juce_UnicodeLine.cpp index 84f3458fca..42efe1aedc 100644 --- a/modules/juce_graphics/unicode/juce_UnicodeLine.cpp +++ b/modules/juce_graphics/unicode/juce_UnicodeLine.cpp @@ -32,260 +32,242 @@ ============================================================================== */ -namespace juce::tr14 +namespace juce { -using EAWType = EastAsianWidthType; -using BreakClass = LineBreakType; - -// This compiles down to the same machine code as an array matrix and -// gives us enum value compile time safety. This way we dont need to worry -// about the enum being modified and the table being out of sync. -template -struct LookUpTable +class TR14 { - inline constexpr void set (ValueType v1, ValueType v2, ResultType result) - { - cols[index (v1)][index (v2)] = result; - } +public: + TR14() = delete; - inline constexpr ResultType get (ValueType v1, ValueType v2) const + template + static size_t analyseLineBreaks (Span span, Callback&& callback) { - return cols[index (v1)][index (v2)]; + uint32_t resultIndex = 0; + uint32_t regionalCounter = 0; + std::optional lb9; + bool lb21a{}; + + const auto data = span.data(); + const auto len = span.size(); + + const auto emit = [&] (auto op) { callback ((int) resultIndex++, op); }; + + for (size_t i = 0; i < len;) + { + const auto isSOT = i == 0; + const auto isEOT = i == len - 1; + + const auto resolved = resolve (data[i]); + const auto prev = isSOT ? resolveSOT (resolved) + : lb9.value_or (resolved); + const auto finalBreak = lb9.has_value() ? LineBreakType::al + : LineBreakType::cm; + const auto next = isEOT ? finalBreak + : resolve (data[i + 1]); + lb9.reset(); + + // LB3 + if (isEOT) + { + emit (TextBreakType::soft); + break; + } + + //============================================================================== + // LB4-6 + if (prev == LineBreakType::bk) + { + emit (TextBreakType::hard); + i++; + continue; + } + + if (prev == LineBreakType::cr && next == LineBreakType::lf) + { + emit (TextBreakType::none); + i++; + continue; + } + + if (contains ({ LineBreakType::cr, LineBreakType::lf, LineBreakType::nl }, prev)) + { + emit (TextBreakType::hard); + i++; + continue; + } + + if (contains ({ LineBreakType::cr, LineBreakType::lf, LineBreakType::nl, LineBreakType::bk }, next)) + { + emit (TextBreakType::none); + i++; + continue; + } + + //============================================================================== + // LB7 + if (contains ({ LineBreakType::sp, LineBreakType::zw }, next)) + { + emit (TextBreakType::none); + i++; + continue; + } + + // LB8a + if (prev == LineBreakType::zwj) + { + emit (TextBreakType::none); + i++; + continue; + } + + // LB13 + if (contains ({ LineBreakType::cl, LineBreakType::cp, LineBreakType::ex, LineBreakType::is, LineBreakType::sy }, next)) + { + emit (TextBreakType::none); + i++; + continue; + } + + // lb21a + if (lb21a && contains ({ LineBreakType::hy, LineBreakType::ba }, prev)) + { + emit (TextBreakType::none); + i++; + continue; + } + + lb21a = prev == LineBreakType::hl; + + // LB30a + if (prev == LineBreakType::ri) + { + regionalCounter++; + + if (next == LineBreakType::ri && regionalCounter % 2 == 0) + { + regionalCounter = 0; + emit (TextBreakType::soft); + i++; + continue; + } + } + else + { + regionalCounter = 0; + } + + const auto bt = BreakPairTable::getLineBreakOpportunity (prev, next); + + switch (bt) + { + case BreakOpportunity::direct: + { + emit (TextBreakType::soft); + i++; + continue; + } + + case BreakOpportunity::prohibited: + { + emit (TextBreakType::none); + i++; + continue; + } + + case BreakOpportunity::indirect: + { + emit (next == LineBreakType::sp || next == LineBreakType::cm ? TextBreakType::soft + : TextBreakType::none); + i++; + continue; + } + + case BreakOpportunity::combinedIndirect: + case BreakOpportunity::combinedProhibited: + { + if (! contains ({ LineBreakType::bk, LineBreakType::cr, + LineBreakType::lf, LineBreakType::nl, + LineBreakType::sp, LineBreakType::zw }, prev)) + { + lb9 = std::make_optional (prev); + } + + while (i < len) + { + if (i == len - 1) + { + emit (TextBreakType::soft); + i++; + break; + } + + emit (TextBreakType::none); + + if (! contains ({ LineBreakType::cm, LineBreakType::zwj }, resolve (data[i]))) + break; + + i++; + } + + i++; + continue; + } + } + + i++; + continue; + } + + return resultIndex; } private: - static inline constexpr size_t index (ValueType value) + static LineBreakType resolve (const UnicodeAnalysisPoint& point) { - return (size_t) value; + const auto bc = point.getBreakType(); + + JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") + switch (bc) + { + case LineBreakType::ai: + case LineBreakType::sg: + case LineBreakType::xx: + return LineBreakType::al; + + case LineBreakType::cj: + return LineBreakType::ns; + + case LineBreakType::sa: + return contains ({ GeneralCategory::mn, GeneralCategory::mc }, point.getGeneralCategory()) + ? LineBreakType::cm + : LineBreakType::al; + + default: break; + } + JUCE_END_IGNORE_WARNINGS_GCC_LIKE + + return bc; } - ResultType cols[Size][Size]; -}; - -enum class BreakOppurtunity -{ - direct, - indirect, - prohibited, - combinedProhibited, - combinedIndirect -}; - -struct BreakAtom final : public UnicodeAnalysisPoint -{ - constexpr bool operator== (BreakClass type) const { return data.bt == type; } - constexpr bool operator== (EAWType type) const { return data.asian == type; } - - constexpr auto getBreakClass() const { return data.bt; } - constexpr auto getEastAsianWidthType() const { return data.asian; } -}; - -static_assert (sizeof (BreakAtom) == sizeof (UnicodeAnalysisPoint), "BreakAtom - UnicodeAnalysisPoint size mismatch"); - -struct BreakPairTable final : LookUpTable<42, BreakClass, BreakOppurtunity> -{ - BreakPairTable() + static LineBreakType resolveSOT (LineBreakType bc) { - #include "juce_LineBreakTable.inl" + JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") + switch (bc) + { + case LineBreakType::lf: + case LineBreakType::nl: + return LineBreakType::bk; + + case LineBreakType::sp: + return LineBreakType::wj; + + default: break; + } + JUCE_END_IGNORE_WARNINGS_GCC_LIKE + + return bc; } }; -static inline BreakClass resolve (BreakClass bc, [[maybe_unused]] bool mnMc = false) -{ - JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") - switch (bc) - { - case BreakClass::ai: - case BreakClass::sg: - case BreakClass::xx: - return BreakClass::al; - - case BreakClass::sa: - return BreakClass::al; - - case BreakClass::cj: - return BreakClass::ns; - - default: break; - } - JUCE_END_IGNORE_WARNINGS_GCC_LIKE - - return bc; -} - -static inline BreakClass resolveSOT (BreakClass bc) -{ - JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") - switch (bc) - { - case BreakClass::lf: - case BreakClass::nl: - return BreakClass::bk; - - case BreakClass::sp: - return BreakClass::wj; - - default: break; - } - JUCE_END_IGNORE_WARNINGS_GCC_LIKE - - return bc; -} - -static const BreakPairTable pairTable; - -template -size_t analyseLineBreaks (Span span, Callback&& callback) -{ - uint32_t resultIndex = 0; - uint32_t regionalCounter = 0; - std::optional lb9; - bool lb21a{}; - - const auto data = (const BreakAtom*) span.data(); - const auto len = span.size(); - - const auto emit = [&] (auto op) { callback ((int) resultIndex++, op); }; - - #define step() i++; continue - - for (size_t i = 0; i < len;) - { - const auto isSOT = i == 0; - const auto isEOT = i == len - 1; - - const auto prev = isSOT ? resolveSOT (resolve (data[i].getBreakClass())) - : lb9.value_or (resolve (data[i].getBreakClass())); - const auto next = isEOT ? BreakClass::cm - : resolve (data[i + 1].getBreakClass()); - - lb9.reset(); - - if (prev == BreakClass::cr && next == BreakClass::lf) - { - emit (TextBreakType::none); - step(); - } - - // LB4 - if (any (prev, BreakClass::bk, BreakClass::lf, BreakClass::nl)) - { - emit (TextBreakType::hard); - step(); - } - - // LB6 - if (any (next, BreakClass::bk, BreakClass::lf, BreakClass::nl)) - { - emit (TextBreakType::none); - step(); - } - - // LB7 - if (any (next, BreakClass::sp, BreakClass::zw)) - { - emit (TextBreakType::none); - step(); - } - - // LB13 - if (any (next, BreakClass::cl, BreakClass::cp, BreakClass::ex, BreakClass::is, BreakClass::sy)) - { - emit (TextBreakType::none); - step(); - } - - // lb21a - if (lb21a && any (prev, BreakClass::hy, BreakClass::ba)) - { - emit (TextBreakType::none); - step(); - } - - lb21a = prev == BreakClass::hl; - - // LB30a - if (prev == BreakClass::ri) - { - regionalCounter++; - - if (next == BreakClass::ri && regionalCounter % 2 == 0) - { - regionalCounter = 0; - emit (TextBreakType::soft); - step(); - } - } - else - { - regionalCounter = 0; - } - - const auto bt = pairTable.get (prev, next); - - switch (bt) - { - case BreakOppurtunity::direct: - { - emit (TextBreakType::soft); - step(); - } break; - - case BreakOppurtunity::prohibited: - { - emit (TextBreakType::none); - step(); - } break; - - case BreakOppurtunity::indirect: - { - while (i < len) - { - emit (TextBreakType::none); - - if (resolve (data[i].getBreakClass()) != BreakClass::sp) - break; - - i++; - } - - step(); - } break; - - case BreakOppurtunity::combinedIndirect: - { - lb9 = std::make_optional (prev); - - while (i < len) - { - emit (TextBreakType::none); - - if (! any (resolve (data[i].getBreakClass()), BreakClass::cm, BreakClass::zwj)) - break; - - i++; - } - - step(); - } break; - - case BreakOppurtunity::combinedProhibited: - { - emit (TextBreakType::none); - step(); - } break; - } - - step(); - } - - //emit (TextBreakType::soft); - - #undef emit - #undef step - - return resultIndex; -} - } diff --git a/modules/juce_graphics/unicode/juce_UnicodeScript.cpp b/modules/juce_graphics/unicode/juce_UnicodeScript.cpp index 64cf6f1fed..21b86a00e0 100644 --- a/modules/juce_graphics/unicode/juce_UnicodeScript.cpp +++ b/modules/juce_graphics/unicode/juce_UnicodeScript.cpp @@ -34,126 +34,202 @@ namespace juce { - -inline TextScript mapTextScript (UnicodeTextScript type) +// https://www.unicode.org/reports/tr31/#Table_Recommended_Scripts +enum class TextScript { - JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") + // Recommend scripts + common, + arabic, + armenian, + bengali, + bopomofo, + cyrillic, + devanagari, + ethiopic, + georgian, + greek, + gujarati, + gurmukhi, + hangul, + han, + hebrew, + hiragana, + katakana, + kannada, + khmer, + lao, + latin, + malayalam, + myanmar, + oriya, + sinhala, + tamil, + telugu, + thaana, + thai, + tibetan, - #define CASE(in, out) case UnicodeTextScript::in: return TextScript::out - switch (type) - { - CASE (Common, common); - CASE (Emoji, emoji); - CASE (Arabic, arabic); - CASE (Armenian, armenian); - CASE (Bengali, bengali); - CASE (Bopomofo, bopomofo); - CASE (Cyrillic, cyrillic); - CASE (Devanagari, devanagari); - CASE (Ethiopic, ethiopic); - CASE (Georgian, georgian); - CASE (Greek, greek); - CASE (Gujarati, gujarati); - CASE (Gurmukhi, gurmukhi); - CASE (Hangul, hangul); - CASE (Han, han); - CASE (Hebrew, hebrew); - CASE (Hiragana, hiragana); - CASE (Katakana, katakana); - CASE (Kannada, kannada); - CASE (Khmer, khmer); - CASE (Lao, lao); - CASE (Latin, latin); - CASE (Malayalam, malayalam); - CASE (Myanmar, myanmar); - CASE (Oriya, oriya); - CASE (Sinhala, sinhala); - CASE (Tamil, tamil); - CASE (Telugu, telugu); - CASE (Thaana, thaana); - CASE (Thai, thai); - CASE (Tibetan, tibetan); + // Limited use + adlam, + balinese, + bamum, + batak, + chakma, + canadianAboriginalSyllabics, + cham, + cherokee, + nyiakengPuachueHmong, + javanese, + kayahLi, + taiTham, + lepcha, + limbu, + lisu, + mandaic, + meeteiMayek, + newa, + nko, + olChiki, + osage, + miao, + hanifiRohingya, + saurashtra, + sundanese, + sylotiNagri, + syriac, + taiLe, + newTaiLue, + taiViet, + tifinagh, + vai, + wancho, + yi, - CASE (Adlam, adlam); - CASE (Balinese, balinese); - CASE (Bamum, bamum); - CASE (Batak, batak); - CASE (Chakma, chakma); - CASE (Cham, cham); - CASE (Cherokee, cherokee); - CASE (Javanese, javanese); - CASE (Kayah_Li, kayahLi); - CASE (Tai_Tham, taiTham); - CASE (Lepcha, lepcha); - CASE (Limbu, limbu); - CASE (Lisu, lisu); - CASE (Mandaic, mandaic); - CASE (Meetei_Mayek, meeteiMayek); - CASE (Newa, newa); - CASE (Nko, nko); - CASE (Ol_Chiki, olChiki); - CASE (Osage, osage); - CASE (Miao, miao); - CASE (Saurashtra, saurashtra); - CASE (Sundanese, sundanese); - CASE (Syloti_Nagri, sylotiNagri); - CASE (Syriac, syriac); - CASE (Tai_Le, taiLe); - CASE (New_Tai_Lue, newTaiLue); - CASE (Tai_Viet, taiViet); - CASE (Tifinagh, tifinagh); - CASE (Vai, vai); - CASE (Wancho, wancho); - CASE (Yi, yi); + emoji, - CASE (Hanifi_Rohingya, hanifiRohingya); - CASE (Nyiakeng_Puachue_Hmong, nyiakengPuachueHmong); - CASE (Canadian_Aboriginal, canadianAboriginalSyllabics); + scriptCount +}; - default: break; - } - #undef CASE - - JUCE_END_IGNORE_WARNINGS_GCC_LIKE - - return TextScript::common; -} - -// TR24 // https://www.unicode.org/reports/tr24/tr24-32.html -namespace tr24 +class TR24 { +public: + TR24() = delete; -template -void inline analyseScripts (const Span points, Callback&& callback) -{ - bool once = false; - UnicodeTextScript previousBaseTextScript = UnicodeTextScript::Common; - - for (size_t i = 0; i < points.size(); i++) + template + static void analyseScripts (Span points, Callback&& callback) { - const auto& entry = points[i].data; - auto script = entry.script; + bool once = false; + auto previousBaseTextScript = UnicodeScriptType::common; - if (! std::exchange (once, true)) + for (const auto [i, value] : enumerate (points)) { - if (script == UnicodeTextScript::Inherited) - script = UnicodeTextScript::Common; + const auto& entry = value.data; + auto script = entry.script; + if (! std::exchange (once, true)) + { + if (script == UnicodeScriptType::inherited) + script = UnicodeScriptType::common; + + previousBaseTextScript = script; + } + + if (script == UnicodeScriptType::common && entry.emoji == EmojiType::extended) + script = UnicodeScriptType::emoji; + + if (script == UnicodeScriptType::common || script == UnicodeScriptType::inherited) + script = previousBaseTextScript; + + callback ((int) i, mapTextScript (script)); previousBaseTextScript = script; } - - if (script == UnicodeTextScript::Common && entry.emoji == EmojiType::extended) - script = UnicodeTextScript::Emoji; - - // Last part is a hack.. - if (script == UnicodeTextScript::Common || script == UnicodeTextScript::Inherited) - script = previousBaseTextScript; - - callback ((int) i, mapTextScript (script)); - previousBaseTextScript = script; } -} -} + +private: + // The Unicode script spec lists a large number of scripts, some of which are recommended to be ignored. + // We map them to a script that we support here. + static TextScript mapTextScript (UnicodeScriptType type) + { + JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wswitch-enum") + + switch (type) + { + case UnicodeScriptType::common: return TextScript::common; + case UnicodeScriptType::emoji: return TextScript::emoji; + case UnicodeScriptType::arabic: return TextScript::arabic; + case UnicodeScriptType::armenian: return TextScript::armenian; + case UnicodeScriptType::bengali: return TextScript::bengali; + case UnicodeScriptType::bopomofo: return TextScript::bopomofo; + case UnicodeScriptType::cyrillic: return TextScript::cyrillic; + case UnicodeScriptType::devanagari: return TextScript::devanagari; + case UnicodeScriptType::ethiopic: return TextScript::ethiopic; + case UnicodeScriptType::georgian: return TextScript::georgian; + case UnicodeScriptType::greek: return TextScript::greek; + case UnicodeScriptType::gujarati: return TextScript::gujarati; + case UnicodeScriptType::gurmukhi: return TextScript::gurmukhi; + case UnicodeScriptType::hangul: return TextScript::hangul; + case UnicodeScriptType::han: return TextScript::han; + case UnicodeScriptType::hebrew: return TextScript::hebrew; + case UnicodeScriptType::hiragana: return TextScript::hiragana; + case UnicodeScriptType::katakana: return TextScript::katakana; + case UnicodeScriptType::kannada: return TextScript::kannada; + case UnicodeScriptType::khmer: return TextScript::khmer; + case UnicodeScriptType::lao: return TextScript::lao; + case UnicodeScriptType::latin: return TextScript::latin; + case UnicodeScriptType::malayalam: return TextScript::malayalam; + case UnicodeScriptType::myanmar: return TextScript::myanmar; + case UnicodeScriptType::oriya: return TextScript::oriya; + case UnicodeScriptType::sinhala: return TextScript::sinhala; + case UnicodeScriptType::tamil: return TextScript::tamil; + case UnicodeScriptType::telugu: return TextScript::telugu; + case UnicodeScriptType::thaana: return TextScript::thaana; + case UnicodeScriptType::thai: return TextScript::thai; + case UnicodeScriptType::tibetan: return TextScript::tibetan; + + case UnicodeScriptType::adlam: return TextScript::adlam; + case UnicodeScriptType::balinese: return TextScript::balinese; + case UnicodeScriptType::bamum: return TextScript::bamum; + case UnicodeScriptType::batak: return TextScript::batak; + case UnicodeScriptType::chakma: return TextScript::chakma; + case UnicodeScriptType::cham: return TextScript::cham; + case UnicodeScriptType::cherokee: return TextScript::cherokee; + case UnicodeScriptType::javanese: return TextScript::javanese; + case UnicodeScriptType::kayah_li: return TextScript::kayahLi; + case UnicodeScriptType::tai_tham: return TextScript::taiTham; + case UnicodeScriptType::lepcha: return TextScript::lepcha; + case UnicodeScriptType::limbu: return TextScript::limbu; + case UnicodeScriptType::lisu: return TextScript::lisu; + case UnicodeScriptType::mandaic: return TextScript::mandaic; + case UnicodeScriptType::meetei_mayek: return TextScript::meeteiMayek; + case UnicodeScriptType::newa: return TextScript::newa; + case UnicodeScriptType::nko: return TextScript::nko; + case UnicodeScriptType::ol_chiki: return TextScript::olChiki; + case UnicodeScriptType::osage: return TextScript::osage; + case UnicodeScriptType::miao: return TextScript::miao; + case UnicodeScriptType::saurashtra: return TextScript::saurashtra; + case UnicodeScriptType::sundanese: return TextScript::sundanese; + case UnicodeScriptType::syloti_nagri: return TextScript::sylotiNagri; + case UnicodeScriptType::syriac: return TextScript::syriac; + case UnicodeScriptType::tai_le: return TextScript::taiLe; + case UnicodeScriptType::new_tai_lue: return TextScript::newTaiLue; + case UnicodeScriptType::tai_viet: return TextScript::taiViet; + case UnicodeScriptType::tifinagh: return TextScript::tifinagh; + case UnicodeScriptType::vai: return TextScript::vai; + case UnicodeScriptType::wancho: return TextScript::wancho; + case UnicodeScriptType::yi: return TextScript::yi; + + case UnicodeScriptType::hanifi_rohingya: return TextScript::hanifiRohingya; + case UnicodeScriptType::nyiakeng_puachue_hmong: return TextScript::nyiakengPuachueHmong; + case UnicodeScriptType::canadian_aboriginal: return TextScript::canadianAboriginalSyllabics; + + default: break; + } + + JUCE_END_IGNORE_WARNINGS_GCC_LIKE + + return TextScript::common; + } +}; } diff --git a/modules/juce_graphics/unicode/juce_UnicodeScript.h b/modules/juce_graphics/unicode/juce_UnicodeScript.h deleted file mode 100644 index a022762778..0000000000 --- a/modules/juce_graphics/unicode/juce_UnicodeScript.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE framework. - Copyright (c) Raw Material Software Limited - - JUCE is an open source framework subject to commercial or open source - licensing. - - By downloading, installing, or using the JUCE framework, or combining the - JUCE framework with any other source code, object code, content or any other - copyrightable work, you agree to the terms of the JUCE End User Licence - Agreement, and all incorporated terms including the JUCE Privacy Policy and - the JUCE Website Terms of Service, as applicable, which will bind you. If you - do not agree to the terms of these agreements, we will not license the JUCE - framework to you, and you must discontinue the installation or download - process and cease use of the JUCE framework. - - JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ - JUCE Privacy Policy: https://juce.com/juce-privacy-policy - JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ - - Or: - - You may also use this code under the terms of the AGPLv3: - https://www.gnu.org/licenses/agpl-3.0.en.html - - THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL - WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. - - ============================================================================== -*/ - -namespace juce -{ - -// https://www.unicode.org/reports/tr31/#Table_Recommended_Scripts -enum class TextScript -{ - // Recommend scripts - common, - arabic, - armenian, - bengali, - bopomofo, - cyrillic, - devanagari, - ethiopic, - georgian, - greek, - gujarati, - gurmukhi, - hangul, - han, - hebrew, - hiragana, - katakana, - kannada, - khmer, - lao, - latin, - malayalam, - myanmar, - oriya, - sinhala, - tamil, - telugu, - thaana, - thai, - tibetan, - - // Limited use - adlam, - balinese, - bamum, - batak, - chakma, - canadianAboriginalSyllabics, - cham, - cherokee, - nyiakengPuachueHmong, - javanese, - kayahLi, - taiTham, - lepcha, - limbu, - lisu, - mandaic, - meeteiMayek, - newa, - nko, - olChiki, - osage, - miao, - hanifiRohingya, - saurashtra, - sundanese, - sylotiNagri, - syriac, - taiLe, - newTaiLue, - taiViet, - tifinagh, - vai, - wancho, - yi, - - emoji, - - scriptCount -}; - -} // namespace juce diff --git a/modules/juce_graphics/unicode/juce_UnicodeTestData.cpp b/modules/juce_graphics/unicode/juce_UnicodeTestData.cpp deleted file mode 100644 index 72fd69854b..0000000000 --- a/modules/juce_graphics/unicode/juce_UnicodeTestData.cpp +++ /dev/null @@ -1,1675 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE framework. - Copyright (c) Raw Material Software Limited - - JUCE is an open source framework subject to commercial or open source - licensing. - - By downloading, installing, or using the JUCE framework, or combining the - JUCE framework with any other source code, object code, content or any other - copyrightable work, you agree to the terms of the JUCE End User Licence - Agreement, and all incorporated terms including the JUCE Privacy Policy and - the JUCE Website Terms of Service, as applicable, which will bind you. If you - do not agree to the terms of these agreements, we will not license the JUCE - framework to you, and you must discontinue the installation or download - process and cease use of the JUCE framework. - - JUCE End User Licence Agreement: https://juce.com/legal/juce-8-licence/ - JUCE Privacy Policy: https://juce.com/juce-privacy-policy - JUCE Website Terms of Service: https://juce.com/juce-website-terms-of-service/ - - Or: - - You may also use this code under the terms of the AGPLv3: - https://www.gnu.org/licenses/agpl-3.0.en.html - - THE JUCE FRAMEWORK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL - WARRANTIES, WHETHER EXPRESSED OR IMPLIED, INCLUDING WARRANTY OF - MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. - - ============================================================================== -*/ - -static const int tr14TestDataUncompressedSize = 142812; -static const uint8_t tr14TestData[26222] = { -0x78,0x9C,0xAC,0xBD,0x5D,0xAC,0x74,0x5B,0x76,0x9E,0xB5,0xD6,0xE9,0x1F,0xF7,0x77, -0x56,0xAF,0x4A,0x36,0x74,0x94,0xC6,0x0A,0xD2,0xAA,0x3A,0xB5,0x9D,0x5D,0x70,0x8E, -0x6B,0x3B,0x76,0x80,0x80,0x20,0xF9,0x90,0x65,0xF1,0xE3,0x1F,0x42,0x40,0x60,0xC5, -0x46,0xCB,0x6D,0x3B,0xED,0x60,0x62,0x9B,0xD8,0x0E,0x26,0x87,0x6A,0xA2,0x88,0x12, -0x92,0x93,0x1B,0x5B,0xC1,0x42,0x42,0x42,0x25,0x40,0xEC,0x02,0xDC,0xCA,0x4D,0x09, -0xE4,0x38,0x56,0x2E,0x50,0x9C,0x18,0x84,0x68,0x04,0xE4,0x2E,0x88,0x1B,0x20,0xCA, -0x0D,0x8A,0x7C,0x99,0x48,0x66,0x8F,0x55,0xEB,0x1D,0xEF,0x3B,0xC6,0x1C,0xE7,0x1C, -0x77,0x87,0xB6,0xB6,0xBF,0x5D,0x6F,0xD5,0x78,0x6A,0xD6,0x9A,0x6B,0x56,0xCD,0x67, -0xCF,0x59,0xEB,0xBC,0xD3,0xBD,0xD7,0x75,0xCB,0x4F,0xD7,0xF5,0x9F,0x5A,0x7E,0x99, -0x18,0xAC,0xC9,0xE7,0x3E,0x85,0xA4,0xEB,0x3F,0xED,0x09,0x1F,0xF7,0xFA,0xC0,0x77, -0x96,0x5F,0xBF,0x30,0x49,0xD5,0x84,0x20,0x70,0x90,0x44,0xCE,0x3D,0x75,0xCE,0x9B, -0xDC,0x9E,0x37,0x4D,0x7B,0xDE,0x94,0xED,0x41,0xBA,0x72,0x6E,0x5A,0x35,0x21,0x08, -0x1C,0x24,0x91,0x73,0x8B,0x9C,0x21,0xB7,0x67,0xE8,0x34,0xB1,0x2A,0x24,0x91,0xB3, -0xA6,0xDD,0xCA,0xF9,0x7B,0xBF,0x95,0xDA,0xB3,0x04,0xA1,0x3D,0x48,0x22,0xE7,0x9E, -0x7A,0x7B,0x4E,0xB9,0x3D,0xA7,0xA6,0x3D,0x48,0x22,0xE7,0x14,0xDB,0x33,0x66,0xCE, -0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91, -0x73,0xC9,0x9C,0x35,0x10,0xCE,0xA5,0xE4,0x20,0x5D,0x39,0xDD,0x2F,0xA7,0xE3,0xBC, -0x04,0x81,0x83,0x24,0x72,0xEE,0xA9,0x73,0xFA,0xCC,0xE9,0x1B,0x4E,0x5F,0x72,0xFA, -0xC8,0xF9,0xDA,0x67,0xD2,0xEB,0x5A,0x03,0xE1,0xDC,0x93,0xFC,0xBA,0x90,0xAE,0x9C, -0x0F,0xF2,0xF1,0xF9,0xA0,0x39,0x3E,0x1F,0x94,0xC7,0x07,0xE9,0xCA,0xF9,0xE6,0xF7, -0xD2,0xEB,0x5A,0x82,0xC0,0x41,0x12,0x39,0xDF,0xFC,0x5E,0xE0,0xEC,0xA7,0xD4,0x9E, -0x35,0x10,0xCE,0x3D,0xC9,0xED,0x41,0xBA,0x72,0xDE,0xCF,0xAF,0xEB,0xFD,0x4E,0x13, -0xAB,0x42,0x12,0x39,0x6B,0x8A,0xF3,0xA7,0x7B,0x48,0xAF,0x6B,0x09,0x62,0xBF,0x3F, -0x54,0xAF,0xEB,0x9E,0x7A,0x7B,0xAE,0x99,0x73,0x6D,0x38,0xD7,0x92,0x73,0x8D,0x9C, -0x39,0x73,0xE6,0x86,0x33,0x97,0x9C,0x39,0x72,0xDE,0xCD,0xC7,0xE7,0xDD,0xE6,0xF8, -0x20,0x89,0x9C,0x77,0xE3,0xF1,0x39,0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72, -0xFE,0xC6,0xEF,0x4E,0x9C,0x35,0x10,0xCE,0x3D,0xC9,0x1C,0xA4,0x2B,0xE7,0x39,0xB7, -0x67,0x0D,0x84,0xF3,0x5C,0xB6,0x07,0xE9,0xCA,0x39,0xE4,0xF3,0xF9,0xD0,0x9C,0xCF, -0x48,0x22,0xE7,0x10,0xCF,0xE7,0xC7,0xDC,0x9E,0xC7,0xA6,0x3D,0x8F,0x65,0x7B,0x90, -0x62,0x5C,0x64,0xCE,0xBE,0xE1,0xEC,0x4B,0xCE,0x3E,0x72,0x76,0x99,0xB3,0x6B,0x38, -0xBB,0x92,0xB3,0x8B,0x9C,0x29,0x73,0xA6,0x4E,0x13,0x1F,0x05,0x0D,0x67,0x4D,0xD1, -0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,0xCE,0x3C,0x25,0xCE,0x3C,0x65, -0x0E,0x92,0x34,0x2E,0xA6,0xC0,0x19,0x32,0x67,0x68,0x38,0x43,0xC9,0x19,0x22,0xE7, -0xFF,0xFE,0x3B,0x7D,0x3C,0x7F,0x96,0x20,0x1C,0x67,0x24,0x91,0x73,0x4F,0xFD,0x38, -0xFF,0xC3,0xDF,0xD2,0x45,0xCE,0x12,0x04,0x0E,0x92,0xC8,0xB9,0xA7,0xCE,0xF9,0xBB, -0xBF,0x99,0xDA,0xB3,0x04,0x81,0x83,0x24,0x72,0xEE,0x29,0xC7,0x45,0xEE,0xAF,0x43, -0xD3,0x5F,0x48,0xD2,0xB8,0x88,0xFD,0xF5,0x94,0x39,0x6B,0x20,0x9C,0xA7,0x92,0x83, -0x14,0x9F,0xA7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0x33,0x4E,0x89,0xB3,0x06, -0xC2,0xB9,0x27,0xCD,0xBC,0x65,0x0A,0x9C,0x97,0xDC,0x9E,0x97,0xA6,0x3D,0x2F,0x65, -0x7B,0x90,0xAE,0x9C,0xCF,0x74,0x9F,0x89,0x9C,0x35,0x10,0xCE,0x3D,0xC9,0x1C,0xA4, -0x38,0x3E,0x9B,0x7C,0x7C,0x36,0xCD,0xF1,0xD9,0x94,0xC7,0x67,0x13,0xDA,0xF3,0xF6, -0x39,0x71,0xD6,0x40,0x38,0x6F,0x9F,0x2B,0x0E,0xD2,0x57,0x8E,0x4D,0xC9,0xFD,0x5D, -0xD4,0x6E,0xD8,0xFD,0x78,0xBB,0xBC,0x27,0xF4,0x02,0x3B,0x0F,0x91,0xF0,0x71,0xCE, -0xF9,0x02,0xFA,0x0B,0x1C,0xCC,0xF7,0xC9,0x41,0x12,0x39,0x6B,0xDA,0xAD,0x9C,0x37, -0x5D,0xE2,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0x37,0xAD,0xB2,0xFB, -0x6F,0x0D,0x87,0x5E,0xA0,0x9C,0x5B,0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD, -0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2, -0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x8F, -0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C,0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C, -0x6D,0xE4,0x5C,0x32,0x67,0x0D,0x84,0x73,0x29,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38, -0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0x71,0x9F,0x39,0x7D,0xC3,0xE9,0x4B, -0x4E,0x1F,0x39,0x5F,0xFB,0x4C,0xE2,0xD0,0x0B,0x50,0x85,0x24,0x72,0xC4,0x0B,0x2C, -0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00, -0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80, -0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81, -0x72,0xC4,0x0B,0x96,0x7E,0xC7,0x3C,0xDC,0xFB,0xDD,0xE7,0xE1,0xDE,0xEF,0x3E,0x0F, -0x0F,0xFD,0xCE,0x79,0xB8,0xC5,0xD7,0xCC,0xB9,0x36,0x9C,0x6B,0xC9,0xB9,0x46,0xCE, -0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45, -0x2F,0x50,0x8E,0x78,0x81,0xC5,0xE7,0xCC,0x39,0x37,0x9C,0x73,0xC9,0x39,0x47,0x8E, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0xB3,0x56,0xD9, -0xFD,0xF4,0x02,0x54,0x21,0x89,0x1C,0xF1,0x02,0x8B,0x0F,0xF9,0x7C,0x3E,0x34,0xE7, -0xF3,0xA1,0x3C,0x9F,0x0F,0xF1,0x7C,0x7E,0xCC,0xED,0xA1,0x17,0xA0,0x0A,0x49,0xE4, -0x88,0x17,0x2C,0xE3,0x22,0x73,0xF6,0x0D,0x67,0x5F,0x72,0xF6,0x91,0xE3,0x5E,0x00, -0xCE,0xAE,0xE1,0xD0,0x0B,0x94,0xB3,0x8B,0x9C,0x29,0x73,0xA6,0x4E,0x93,0xE8,0x05, -0x9A,0xAC,0x29,0xFA,0xFD,0x98,0x39,0xC7,0x86,0x73,0x2C,0x39,0xC7,0xC8,0x71,0x2F, -0xF0,0x71,0x31,0x65,0x0E,0xBD,0x20,0x8C,0x8B,0x29,0x70,0x86,0xCC,0x19,0x1A,0xCE, -0x50,0x72,0x86,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B, -0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F, -0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x71,0x91,0xFB,0x8B,0x5E, -0xE0,0xE3,0xA2,0xEC,0x2F,0xF1,0x02,0x8B,0x9F,0xF4,0x55,0xD8,0xFD,0xF4,0x02,0x54, -0x21,0x89,0x1C,0xF1,0x82,0xE5,0xF3,0x34,0xB7,0xA7,0x6F,0x38,0xF4,0x82,0xF0,0x79, -0x1A,0x39,0xEE,0x05,0x3E,0x6F,0x99,0x32,0x87,0x5E,0x10,0xE6,0x2D,0x53,0xE0,0xBC, -0xE4,0xD7,0x45,0x2F,0x40,0x15,0x92,0xC8,0x11,0x2F,0xB0,0x78,0x99,0xDE,0x2B,0x87, -0x5E,0x80,0x2A,0x24,0x91,0x23,0x5E,0xB0,0x1C,0x9F,0x4D,0x6A,0x0F,0xBD,0xC0,0x8F, -0xCF,0xA6,0x6A,0x8F,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xBC,0x7D,0xCE,0x1C,0x7A,0x81, -0x72,0xC4,0x0B,0x6C,0x2A,0xED,0xEF,0xA2,0x76,0x63,0x42,0xE0,0x49,0xF4,0x02,0x24, -0x7C,0x9C,0x73,0x96,0xCF,0x66,0xE5,0x7C,0x61,0xCA,0x1C,0x24,0x91,0xF3,0x85,0x29, -0x70,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0xFB,0xF5,0xA6, -0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x6E,0x91,0xE3,0x5E,0x00,0x0E,0xBD, -0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4, -0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88, -0x17,0x58,0x3C,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,0x0D, -0x67,0x5B,0x72,0xB6,0x91,0x73,0xD1,0xA3,0x31,0x75,0xEA,0x05,0xA8,0x42,0x12,0x39, -0x97,0x2E,0x1C,0x1F,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0, -0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0, -0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0, -0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02, -0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B, -0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xA5,0xDF,0x31,0x0F,0xF7,0x7E, -0xF7,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0x43,0xBF,0x73,0x1E,0x6E,0xF1,0x35,0x73,0xAE, -0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,0x47,0x8E, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE, -0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5, -0x88,0x17,0x58,0xFC,0xAC,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B, -0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0xB1, -0x4B,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0x58,0xC6,0x45,0xE6,0xEC,0x1B, -0xCE,0xBE,0xE4,0xEC,0x23,0xC7,0xBD,0x00,0x9C,0x5D,0xC3,0xA1,0x17,0x28,0x67,0x17, -0x39,0x53,0xE6,0x4C,0x9D,0x26,0xD1,0x0B,0x34,0x59,0x53,0xF4,0xFB,0x31,0x73,0x8E, -0x0D,0xE7,0x58,0x72,0x8E,0x91,0xE3,0x5E,0xE0,0xE3,0x62,0xCA,0x1C,0x7A,0x41,0x18, -0x17,0x53,0xE0,0x0C,0x99,0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0x5E,0x00,0x0E, -0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55, -0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5, -0x88,0x17,0x2C,0xE3,0x22,0xF7,0xD7,0xA1,0xE9,0x2F,0x24,0x69,0x5C,0xC4,0xFE,0x72, -0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0xCF,0xD3,0xDC,0x9E, -0xBE,0xE1,0xD0,0x0B,0xC2,0xE7,0x69,0xE4,0xB8,0x17,0xF8,0xBC,0x65,0xCA,0x1C,0x7A, -0x41,0x98,0xB7,0x4C,0x81,0xF3,0xA2,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72, -0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96, -0xE3,0xB3,0x49,0xED,0xA1,0x17,0xF8,0xF1,0xD9,0x54,0xED,0x11,0x2F,0xB0,0xD8,0xBD, -0x00,0x9C,0xB7,0xCF,0x99,0x43,0x2F,0x50,0x8E,0x78,0x81,0x4D,0x81,0xDF,0x43,0x7F, -0xDD,0xBA,0xEC,0x05,0xB7,0x4E,0xBD,0xC0,0x38,0x37,0xE1,0x88,0x17,0x58,0xFC,0x85, -0x29,0x71,0xE8,0x05,0xA8,0x82,0x01,0x44,0x8E,0x78,0x81,0xC5,0x6F,0x72,0x7B,0xDE, -0x34,0xED,0x79,0x53,0xB6,0x07,0xE9,0xCA,0xB9,0x65,0xCE,0xAD,0xE1,0xDC,0x4A,0xCE, -0x2D,0x72,0x86,0xCC,0xA1,0x17,0xA0,0x6A,0x28,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80, -0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40, -0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x8F,0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C,0x91, -0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,0xE4,0x5C,0x32,0x67,0x0D,0x84,0x73, -0x29,0x39,0x48,0x57,0xCE,0x3A,0xE9,0x27,0x87,0x5E,0x80,0x2A,0x18,0x40,0xE4,0x88, -0x17,0x58,0xDC,0x67,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0xEF,0x23,0x02,0x87, -0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEB,0xA4,0x9F,0x1C,0x7A,0x01,0xAA,0x60,0x00, -0x91,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E, -0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0xF4,0xFB, -0x43,0xE2,0xD0,0x0B,0xBC,0xDF,0x1F,0x2A,0x8E,0x78,0x81,0xC5,0xD7,0xCC,0xB9,0x36, -0x9C,0x6B,0xC9,0xB9,0x46,0xCE,0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE, -0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xE7,0xCC,0x39,0x37, -0x9C,0x73,0xC9,0x39,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23, -0x5E,0x60,0xB1,0xEF,0x23,0x02,0x87,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0x78,0x81, -0xC5,0x87,0x7C,0x3E,0x1F,0x9A,0xF3,0xF9,0x50,0x9E,0xCF,0x87,0x78,0x3E,0xFB,0x3E, -0x22,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0x88,0x17,0x2C,0xE3,0x22,0x73,0xF6, -0x0D,0x67,0x5F,0x72,0xF6,0x91,0xB3,0xCB,0x9C,0x5D,0xC3,0xD9,0x95,0x9C,0x5D,0xE4, -0x4C,0x99,0x33,0x75,0x9A,0x44,0x2F,0xD0,0x64,0x4D,0xD1,0xEF,0xC7,0xCC,0x39,0x36, -0x9C,0x63,0xC9,0x39,0x46,0x8E,0x7B,0x81,0x8F,0x8B,0x29,0x73,0xE8,0x05,0x61,0x5C, -0x4C,0x81,0x33,0x64,0xCE,0xD0,0x70,0x86,0x92,0x33,0x44,0xCE,0x3A,0xE9,0x27,0x87, -0x5E,0x80,0x2A,0x18,0x40,0xE4,0x88,0x17,0x58,0xBC,0x4E,0xFA,0xC9,0xA1,0x17,0xA0, -0x0A,0x06,0x10,0x39,0xE2,0x05,0x16,0xAF,0x93,0x7E,0x72,0xE8,0x05,0xA8,0x82,0x01, -0x44,0x8E,0x78,0xC1,0x32,0x2E,0x72,0x7F,0xD1,0x0B,0x7C,0x5C,0x94,0xFD,0x25,0x5E, -0x60,0xF1,0x53,0xE6,0xD0,0x0B,0x50,0xF5,0x54,0x72,0xC4,0x0B,0x96,0xCF,0xD3,0xCC, -0xE9,0x1B,0x4E,0x5F,0x72,0xFA,0xC8,0x71,0x2F,0xF0,0x79,0xCB,0x94,0x39,0xF4,0x82, -0x30,0x6F,0x99,0x02,0xC7,0xF7,0x11,0x81,0x43,0x2F,0x40,0x15,0xF7,0x11,0x29,0x47, -0xBC,0xC0,0x62,0xDF,0x47,0x04,0x0E,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0xF1,0x82, -0xE5,0xF8,0x60,0x1F,0x91,0x1F,0x1F,0xF7,0x02,0x3F,0x3E,0xBE,0x8F,0x28,0x1C,0x9F, -0x4D,0x68,0x8F,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0x53, -0x57,0x7F,0x17,0x1D,0x3A,0x99,0xEF,0xF7,0x48,0xDC,0x0B,0x7A,0xE3,0x0C,0xC2,0x41, -0xBA,0x72,0x7C,0xBD,0x00,0x9C,0x35,0x10,0x0E,0x92,0xC8,0xB9,0xA7,0xCE,0x79,0x93, -0xDB,0xF3,0xA6,0x69,0xCF,0x9B,0xB2,0x3D,0x6F,0x62,0x7B,0x6E,0x99,0x73,0x6B,0x38, -0x48,0x22,0xE7,0x16,0x39,0x43,0xE6,0x0C,0xEB,0xFD,0xE4,0x0C,0x65,0x7B,0xD6,0xB4, -0x5B,0x39,0xEE,0x05,0xE0,0xAC,0x81,0x70,0x90,0x44,0xCE,0x3D,0xF5,0xF6,0x9C,0x72, -0x7B,0x4E,0x4D,0x7B,0x4E,0x65,0x7B,0x4E,0xB1,0x3D,0x63,0xE6,0x8C,0x0D,0x67,0x2C, -0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0xB9, -0x34,0xFD,0x75,0x29,0x39,0x48,0x57,0x8E,0xAF,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12, -0x39,0xF7,0xD4,0x39,0x7D,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0xF8,0x7A,0x01, -0x38,0x6B,0x20,0x9C,0x7B,0x92,0x5F,0x17,0xD2,0x95,0xF3,0x41,0x3E,0x3E,0x1F,0x34, -0xC7,0xE7,0x83,0xF2,0xF8,0x20,0x5D,0x39,0xBE,0x5E,0x00,0xCE,0x1A,0x08,0x07,0x49, -0xE4,0xDC,0x53,0xE7,0x2C,0xD3,0x7B,0xE5,0xAC,0x81,0x70,0xEE,0x49,0x6E,0x0F,0xD2, -0x95,0xF3,0x7E,0x7E,0x5D,0xEF,0x37,0xE7,0x0F,0x92,0xC8,0x79,0x3F,0x9E,0x3F,0xBE, -0x5E,0xE0,0xFD,0xFE,0xD0,0xF4,0xFB,0x43,0xD9,0xEF,0x0F,0xA1,0x3D,0xD7,0xCC,0xB9, -0x36,0x9C,0x6B,0xC9,0xB9,0x46,0xCE,0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39, -0xEF,0xE6,0xE3,0xF3,0x6E,0x73,0x7C,0x90,0x44,0xCE,0xBB,0xF1,0xF8,0x9C,0x33,0xE7, -0xDC,0x70,0xCE,0x25,0xE7,0x1C,0x39,0xCB,0xF4,0x5E,0x39,0x6B,0x20,0x9C,0x7B,0x92, -0x39,0x48,0x57,0xCE,0x73,0x6E,0xCF,0x1A,0x08,0xE7,0xB9,0x6C,0x0F,0xD2,0x95,0x73, -0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x6E,0xCF, -0x63,0xD3,0x9E,0xC7,0xB2,0x3D,0x8F,0xB1,0x3D,0xFB,0xCC,0xD9,0x37,0x9C,0x7D,0xC9, -0xD9,0x47,0xCE,0x2E,0x73,0x76,0x0D,0x67,0x57,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4, -0xF4,0xFB,0x54,0x72,0xA6,0xD8,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46, -0xCE,0x32,0xBD,0x0F,0xE3,0x62,0xCA,0x1C,0x24,0x69,0x5C,0x4C,0x81,0x33,0x64,0xCE, -0xD0,0x70,0x86,0x92,0x33,0x44,0x8E,0xAF,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12,0x39, -0xF7,0xD4,0x8F,0xB3,0xAF,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12,0x39,0xF7,0xD4,0x39, -0xBE,0x5E,0x00,0xCE,0x1A,0x08,0x07,0x49,0xE4,0xDC,0x53,0x8E,0x8B,0xDC,0x5F,0x87, -0xA6,0xBF,0x90,0xA4,0x71,0x11,0xFB,0xEB,0x29,0x73,0x9E,0x9A,0xF3,0xF0,0xA9,0xE4, -0x20,0xC5,0xE7,0x69,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0x8C,0xB9,0xDF,0xD7, -0x40,0xE7,0x2D,0x65,0xBF,0x23,0x5D,0x39,0x2F,0xB9,0x3D,0x2F,0x4D,0x7B,0x5E,0xCA, -0xF6,0xBC,0xC4,0xF6,0xF8,0x7A,0x01,0x38,0x6B,0x20,0x9C,0x7B,0x92,0x39,0x48,0x71, -0x7C,0x36,0xA9,0x3D,0x6B,0xA0,0xC7,0x67,0x53,0x1E,0x9F,0x4D,0x68,0xCF,0x32,0xBD, -0x57,0xCE,0x1A,0x08,0xE7,0x9E,0x64,0x0E,0xD2,0x57,0x8E,0x4D,0x39,0xDD,0x0B,0xEC, -0x86,0xDD,0xBF,0x04,0x9E,0xB8,0x17,0x74,0x76,0x1E,0x22,0xE1,0xE3,0x9C,0xE3,0x5E, -0x00,0x0E,0xD7,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x91,0xF5,0x02,0x8B,0xDF,0xE4,0xF6, -0xBC,0x69,0xDA,0xF3,0xA6,0x6C,0xCF,0x9B,0xD8,0x9E,0x5B,0xE6,0xDC,0x1A,0xCE,0xAD, -0xE4,0xDC,0x22,0x67,0xB8,0xDF,0x22,0x67,0xE8,0x34,0x71,0x2F,0xE8,0xBA,0xC4,0x59, -0xD3,0x6E,0xE5,0xB8,0x17,0x80,0xC3,0xF5,0x02,0x54,0x71,0xBD,0x40,0x39,0xB2,0x5E, -0x60,0xBF,0x9E,0x72,0x7B,0x4E,0x4D,0x7B,0x4E,0x65,0x7B,0x4E,0xB1,0x3D,0x63,0xE6, -0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B, -0x39,0x97,0xCC,0xB9,0x34,0xFD,0x75,0x29,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0x5C, -0x2F,0x40,0x15,0xF7,0x11,0x29,0x47,0xD6,0x0B,0x2C,0xEE,0x33,0xA7,0x6F,0x38,0x7D, -0xC9,0xE9,0x23,0xC7,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xFB,0x88,0x94,0x23,0xEB, -0x05,0x16,0x7F,0xD0,0x25,0x0E,0xD7,0x0B,0x50,0x85,0x24,0x72,0x64,0xBD,0xC0,0x62, -0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xAC,0x17,0x58,0xEC,0x5E, -0x00,0x0E,0xD7,0x0B,0x50,0x85,0x24,0x72,0x64,0xBD,0xC0,0x62,0x5F,0x2F,0x00,0x87, -0xEB,0x05,0xA8,0xE2,0x7A,0x81,0x72,0x64,0xBD,0x60,0xE9,0xF7,0x87,0x2E,0xF5,0xBB, -0xFF,0x7D,0xDE,0xFB,0xDD,0xF7,0xED,0x84,0x7E,0xE7,0xDF,0xE7,0x2D,0xBE,0x66,0xCE, -0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,0xC8, -0xF1,0xF5,0x02,0x70,0xB8,0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xD6,0x0B,0x2C,0x3E, -0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0xDC,0x0B,0xC0,0xE1,0x7A,0x01,0xAA, -0x90,0x44,0x8E,0xAC,0x17,0x58,0xFC,0xDC,0x25,0x0E,0xD7,0x0B,0x50,0xC5,0x7D,0x44, -0xCA,0x91,0xF5,0x02,0x8B,0x0F,0xF9,0x7C,0x3E,0x34,0xE7,0xF3,0xA1,0x3C,0x9F,0x0F, -0xF1,0x7C,0x7E,0xCC,0xED,0x79,0x6C,0xDA,0xF3,0x58,0xB6,0xE7,0x31,0xB6,0x67,0x9F, -0x39,0xFB,0x86,0xB3,0x2F,0x39,0xFB,0xC8,0xF1,0xF5,0x02,0x70,0x76,0x0D,0x87,0xEB, -0x05,0xCA,0xD9,0x45,0xCE,0x94,0x39,0x53,0xD3,0xEF,0x53,0xC9,0x99,0x62,0xBF,0x1F, -0x33,0xE7,0xD8,0x70,0x8E,0x25,0xE7,0x18,0x39,0xCB,0xF4,0x5E,0x39,0xF3,0x94,0x39, -0x48,0xD2,0xB8,0x98,0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x1C,0xF7, -0x02,0x70,0xB8,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00, -0x0E,0xD7,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x91,0xF5,0x02,0x8B,0xDD,0x0B,0xC0,0xE1, -0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F,0x5C,0x2F, -0xF0,0x71,0x51,0xF6,0x97,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0xC5, -0x7D,0x44,0xCA,0x91,0xF5,0x82,0xE5,0xF3,0x34,0xB7,0xA7,0x6F,0x38,0x7D,0xD9,0x9E, -0x3E,0x72,0x7C,0xBD,0xC0,0xE7,0x2D,0x53,0xE6,0x70,0xBD,0x20,0xCC,0x5B,0xA6,0xC0, -0x79,0xD1,0x2A,0xBB,0x8B,0xEB,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x7A,0x81,0xC5, -0xEE,0x05,0xE0,0x70,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0x59,0x2F,0x58,0x8E,0xCF, -0x26,0xB5,0x87,0xEB,0x05,0x7E,0x7C,0x36,0x55,0x7B,0x64,0xBD,0xC0,0x62,0xF7,0x02, -0x70,0xDE,0x3E,0x67,0x0E,0x92,0xC8,0x91,0xF5,0x02,0x9B,0x2A,0xFA,0xBB,0xA8,0xDD, -0x98,0x3A,0xF5,0x02,0x4B,0xA2,0x17,0x20,0xE1,0xE3,0x9C,0xE3,0x5E,0x00,0x0E,0xBD, -0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0xFB,0x88,0xC0,0xA1,0x17,0xA0,0x8A, -0xFB,0x88,0x94,0x23,0x5E,0x60,0xF1,0x4D,0xAB,0xA6,0x4E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0xDC,0x22,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0, -0x78,0x99,0xBB,0x68,0x7B,0x96,0x20,0xB4,0x07,0x49,0xE4,0xDC,0x53,0x6F,0x8F,0x7B, -0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xBF,0x8E,0x99,0x33,0x36, -0x9C,0xB1,0xE4,0x8C,0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,0xE4,0x5C, -0x32,0x67,0x0D,0x84,0x73,0x29,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54, -0xD1,0x0B,0x94,0x23,0x5E,0x60,0x71,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39, -0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xBE,0x8F,0x08, -0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F, -0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xFB,0x3E,0x22,0x70,0xE8,0x05,0xA8,0xE2, -0x3E,0x22,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5, -0x88,0x17,0x2C,0xFD,0x8E,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0xBD,0xDF,0x7D,0x1E,0x1E, -0xFA,0x9D,0xF3,0x70,0x8B,0xAF,0x99,0x73,0x6D,0x38,0xD7,0x92,0x73,0x8D,0x9C,0x39, -0x73,0xE6,0x86,0x33,0x97,0x9C,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E, -0xA0,0x1C,0xF1,0x02,0x8B,0xCF,0x99,0x73,0x6E,0x38,0xE7,0x92,0x73,0x8E,0x1C,0xDF, -0x47,0x04,0x0E,0xE6,0xFB,0xE4,0x70,0x1F,0x91,0x72,0xD6,0x14,0x1C,0xFF,0xB4,0x02, -0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,0x9C, -0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0xB1,0x4B,0x1C,0x7A,0x01,0xAA,0xE8,0x05, -0xCA,0x11,0x2F,0x58,0xC6,0x45,0xE6,0xEC,0x1B,0xCE,0xBE,0xE4,0xEC,0x23,0xC7,0xBD, -0x00,0x9C,0x5D,0xC3,0xA1,0x17,0x28,0x67,0x17,0x39,0x53,0xE6,0x4C,0x5D,0xEE,0xAF, -0xA9,0xE4,0xAC,0x29,0xFA,0xEB,0x98,0x39,0xC7,0x86,0x73,0x2C,0x39,0xC7,0xC8,0x71, -0x2F,0xF0,0x71,0x31,0x65,0x0E,0xBD,0x20,0x8C,0x8B,0x29,0x70,0x86,0xCC,0x19,0x1A, -0xCE,0x50,0x72,0x86,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4, -0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76, -0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x71,0x91,0xFB,0x8B, -0x5E,0xE0,0xE3,0xA2,0xEC,0x2F,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A, -0x5E,0xA0,0x1C,0xF1,0x82,0xE5,0xF3,0x34,0xB7,0xA7,0x6F,0x38,0xF4,0x82,0xF0,0x79, -0x1A,0x39,0xEE,0x05,0x3E,0x6F,0x99,0x32,0x87,0x5E,0x10,0xE6,0x2D,0x53,0xE0,0xBC, -0x68,0xD5,0xD4,0xA9,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xE5,0xF8,0x6C,0x52,0x7B,0xE8,0x05, -0x7E,0x7C,0x36,0x55,0x7B,0xC4,0x0B,0x2C,0xF6,0x7D,0x44,0xE0,0xBC,0xF5,0x1D,0x9B, -0xA8,0xE2,0x3E,0x22,0xE5,0xBC,0xC5,0x1B,0xEB,0x3B,0xCB,0x14,0xCF,0xDF,0x45,0xC7, -0x4E,0xE6,0xFB,0x3D,0x12,0xF7,0x82,0x65,0xDD,0x61,0x14,0x0E,0xD2,0x95,0xE3,0x5E, -0x00,0x0E,0xF7,0x11,0xA1,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0x7E,0x93,0xDB, -0xF3,0xA6,0x69,0xCF,0x9B,0xB2,0x3D,0x6F,0x62,0x7B,0x6E,0x99,0x73,0x6B,0x38,0xDC, -0x47,0xA4,0x9C,0x5B,0xE4,0x0C,0x99,0x33,0xAC,0xF7,0x93,0x33,0x94,0xED,0x59,0x53, -0x1C,0x67,0xF7,0x02,0x70,0xD6,0x40,0x38,0x48,0x22,0xE7,0x9E,0x7A,0x7B,0x4E,0xB9, -0x3D,0xA7,0xA6,0x3D,0xA7,0xB2,0x3D,0xA7,0xD8,0x9E,0x31,0x73,0xC6,0x86,0x33,0x96, -0x9C,0x31,0x72,0xB6,0x99,0xB3,0x6D,0x38,0xDB,0x92,0xB3,0x8D,0x9C,0x4B,0xE6,0x5C, -0x9A,0xFE,0xBA,0x94,0x1C,0xA4,0x2B,0xC7,0xBD,0x00,0x1C,0xEE,0x23,0x42,0x15,0xF7, -0x11,0x29,0x47,0xF6,0x11,0x59,0xDC,0x67,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E, -0x7B,0x01,0x38,0xDC,0x47,0x84,0x2A,0xEE,0x23,0x52,0x8E,0xEC,0x23,0xB2,0xD8,0xD7, -0x0B,0xC0,0xE1,0x3E,0x22,0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xEE,0x05, -0xE0,0x70,0x1F,0x11,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0x62,0x5F,0x2F,0x00, -0x87,0xFB,0x88,0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0xFB,0x3E,0x22,0x70, -0xB8,0x8F,0x08,0x55,0xDC,0x47,0xA4,0x1C,0xD9,0x47,0xB4,0xF4,0xFB,0x43,0xE2,0x70, -0x1F,0x91,0xF7,0xBB,0xEF,0xDB,0x09,0xFD,0xFE,0x10,0xDA,0x73,0xCD,0x9C,0x6B,0xC3, -0xB9,0x96,0x9C,0x6B,0xE4,0xCC,0x99,0x33,0x37,0x9C,0xB9,0xE4,0xCC,0x91,0xE3,0x5E, -0x00,0x0E,0xF7,0x11,0xA1,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0xF6,0x7D,0x44, -0xE0,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0xC7,0xD7,0x0B,0xC0,0xE1,0x3E,0x22,0x54, -0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xCF,0xB9,0x3D,0xDC,0x47,0x84,0xAA,0xE7, -0xB2,0x3D,0xB2,0x8F,0xC8,0xE2,0x43,0x3E,0x9F,0x0F,0xCD,0xF9,0x7C,0x28,0xCF,0xE7, -0x43,0x3C,0x9F,0x1F,0x73,0x7B,0x1E,0x9B,0xF6,0x3C,0x96,0xED,0x79,0x8C,0xED,0xD9, -0x67,0xCE,0xBE,0xE1,0xEC,0x4B,0xCE,0x3E,0x72,0x76,0x99,0xB3,0x6B,0x38,0xBB,0x92, -0xB3,0x8B,0x9C,0x29,0x73,0xA6,0xA6,0xDF,0xA7,0x92,0x33,0xC5,0x7E,0x3F,0x66,0xCE, -0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0x96,0xE9,0x7D,0x18,0x17,0x53,0xE6,0x20,0x49, -0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,0x9C,0x21,0x72,0xDC,0x0B,0xC0, -0xE1,0x3E,0x22,0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xEE,0x05,0xE0,0x70, -0x1F,0x11,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0x62,0xF7,0x02,0x70,0xB8,0x8F, -0x08,0x55,0xDC,0x47,0xA4,0x1C,0xD9,0x47,0xB4,0x8C,0x8B,0xDC,0x5F,0xDC,0x47,0xE4, -0xE3,0xA2,0xEC,0x2F,0xD9,0x47,0x64,0xF1,0x53,0xE6,0x70,0x1F,0x11,0xAA,0x9E,0x4A, -0x8E,0xEC,0x23,0x1A,0xEF,0xC4,0xF4,0x79,0xDA,0x70,0xFA,0x92,0xD3,0x47,0x8E,0xEF, -0x23,0x02,0x87,0xFB,0x88,0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0xBF,0xE4, -0xF6,0xBC,0x34,0xED,0x79,0x29,0xDB,0xF3,0x12,0xDB,0xE3,0x5E,0x00,0x0E,0xF7,0x11, -0xA1,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x96,0xE3,0xB3,0x49,0xED,0xE1,0x3E,0x22, -0x3F,0x3E,0x9B,0xAA,0x3D,0xB2,0x8F,0xC8,0x62,0x5F,0x2F,0x00,0x87,0xFB,0x88,0x50, -0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x36,0x35,0x73,0x2F,0xD8,0xAE,0x9C,0x25,0xF0, -0xC4,0xBD,0x60,0xF1,0x94,0xAD,0x70,0xEE,0xA9,0x73,0xDC,0x0B,0xC0,0xE1,0x7A,0x01, -0xAA,0xB8,0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA, -0xB8,0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xF8,0xA6,0x55,0x53,0xA7,0xEB,0x05,0xA8,0xE2, -0x7A,0x81,0x72,0x6E,0x91,0xE3,0xEB,0x05,0xE0,0x70,0xBD,0x00,0x55,0x5C,0x2F,0x50, -0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8, -0x7A,0x81,0xC5,0xA7,0xDC,0x9E,0x53,0xD3,0x1E,0x24,0x91,0x73,0x8A,0xED,0x19,0x33, -0x67,0x6C,0x38,0x63,0xC9,0x19,0x23,0x67,0x9B,0x39,0xDB,0x86,0xB3,0x2D,0x39,0xDB, -0xC8,0xB9,0x64,0xCE,0x1A,0x08,0xE7,0x52,0x72,0x90,0xAE,0x1C,0xF7,0x02,0x70,0xB8, -0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xD6,0x0B,0x2C,0xEE,0x33,0xA7,0x6F,0x38,0x7D, -0xC9,0xE9,0x23,0xC7,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5, -0x02,0x8B,0x3F,0xC8,0xC7,0xE7,0x83,0xE6,0xF8,0x7C,0x50,0x1E,0x1F,0xA4,0x2B,0xC7, -0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x02,0x8B,0x7D,0xBD, -0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00, -0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x82,0xA5,0xDF,0x31,0x0F,0xF7, -0x7E,0xF7,0xBF,0xCF,0x7B,0xBF,0xFB,0xDF,0xE7,0x43,0xBF,0xF3,0xEF,0xF3,0x16,0x5F, -0x33,0xE7,0xDA,0x70,0xAE,0x25,0xE7,0x1A,0x39,0x73,0xE6,0xCC,0x0D,0x67,0x2E,0x39, -0x73,0xE4,0xB8,0x17,0x80,0xC3,0xF5,0x02,0x54,0x71,0xBD,0x40,0x39,0xB2,0x5E,0x60, -0xF1,0x39,0x73,0xCE,0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0xEB,0x05,0xE0,0x70,0x1F, -0x11,0xAA,0xB8,0x5E,0xA0,0x1C,0xD9,0x47,0x64,0xF1,0xB3,0x56,0x4D,0x9D,0xAE,0x17, -0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x02,0x8B,0x0F,0xF9,0x7C,0x3E,0x34,0xE7,0xF3, -0xA1,0x3C,0x9F,0x0F,0xF1,0x7C,0x7E,0xEC,0x12,0x87,0xEB,0x05,0xA8,0xE2,0x7A,0x81, -0x72,0x64,0xBD,0x60,0x19,0x17,0x99,0xB3,0x6F,0x38,0xFB,0x92,0xB3,0x8F,0x1C,0x5F, -0x2F,0x00,0x67,0xD7,0x70,0xB8,0x5E,0xA0,0x9C,0x5D,0xE4,0x4C,0x99,0x33,0x75,0x9A, -0xF8,0x28,0x68,0x38,0x6B,0x8A,0x7E,0x3F,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31, -0x72,0xE6,0x29,0x71,0xE6,0x29,0x73,0x90,0xA4,0x71,0x31,0x05,0xCE,0x90,0x39,0x43, -0xC3,0x19,0x4A,0xCE,0x10,0x39,0xEE,0x05,0xE0,0x70,0xBD,0x00,0x55,0x5C,0x2F,0x50, -0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8, -0x7A,0x81,0xC5,0xEE,0x05,0xE0,0x70,0xBD,0x00,0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17, -0x2C,0xE3,0x22,0xF7,0x17,0xD7,0x0B,0x7C,0x5C,0x94,0xFD,0x25,0xEB,0x05,0x16,0xBB, -0x17,0x80,0xC3,0xF5,0x02,0x54,0x71,0xBD,0x40,0x39,0xB2,0x5E,0x60,0x71,0x9F,0xDB, -0xD3,0x37,0x9C,0xBE,0x6C,0x4F,0x1F,0x39,0xBE,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0xC5, -0xF5,0x02,0xE5,0xC8,0x7A,0x81,0xC5,0x2F,0x5A,0x35,0x75,0xBA,0x5E,0x80,0x2A,0xAE, -0x17,0x28,0x47,0xD6,0x0B,0x2C,0x76,0x2F,0x00,0x87,0xEB,0x05,0xA8,0xE2,0x7A,0x81, -0x72,0x64,0xBD,0x60,0x39,0x3E,0x9B,0xD4,0x1E,0xAE,0x17,0xF8,0xF1,0xD9,0x54,0xED, -0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x9C,0xB7,0xCF,0x99,0xC3,0xF5,0x02,0xE5,0xC8, -0x3E,0xA2,0x4B,0xE7,0x93,0xFE,0x4F,0x2D,0x37,0x26,0x06,0x6B,0x42,0x2F,0x30,0xCE, -0x45,0x38,0xE2,0x05,0x16,0xFB,0xF5,0x88,0xC0,0xA1,0x17,0xA0,0x8A,0xD7,0x23,0x52, -0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81, -0xC5,0xB7,0xCC,0xB9,0x35,0x9C,0x5B,0xC9,0xB9,0x45,0xCE,0x90,0x39,0xF4,0x02,0x54, -0x0D,0x25,0x47,0xBC,0xC0,0xE2,0x75,0xD2,0x4F,0x0E,0xBD,0x00,0x55,0x30,0x80,0xC8, -0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0, -0x78,0xCC,0x9C,0xB1,0xE1,0x8C,0x25,0x67,0x8C,0x9C,0x6D,0xE6,0x6C,0x1B,0xCE,0xB6, -0xE4,0x6C,0x23,0xE7,0x92,0x39,0x6B,0x20,0x9C,0x4B,0xC9,0x41,0xBA,0x72,0xFC,0x7A, -0x44,0xE0,0xD0,0x0B,0x50,0xC5,0xEB,0x11,0x29,0x47,0xBC,0xC0,0xE2,0x3E,0x73,0xFA, -0x86,0xD3,0x97,0x9C,0x3E,0x72,0xFC,0x7A,0x44,0xE0,0xD0,0x0B,0x50,0xC5,0xEB,0x11, -0x29,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC, -0xC0,0x62,0xBF,0x1E,0x11,0x38,0xF4,0x02,0x54,0xF1,0x7A,0x44,0xCA,0x11,0x2F,0xB0, -0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00, -0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xAF,0x47,0x04,0x0E,0xBD, -0x00,0x55,0xBC,0x1E,0x91,0x72,0xC4,0x0B,0x2C,0xBE,0x66,0xCE,0xB5,0xE1,0x5C,0x4B, -0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,0xC8,0x71,0x2F,0x00,0x87, -0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0x67,0xCE,0xB9,0xE1,0x9C,0x4B, -0xCE,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B, -0x7D,0x75,0x1B,0x1C,0x7A,0x01,0xAA,0x78,0x3D,0x22,0xE5,0x88,0x17,0x58,0x7C,0xC8, -0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x6E,0x0F,0xBD, -0x00,0x55,0x30,0x80,0xC8,0x11,0x2F,0xB0,0x78,0x9F,0x39,0xFB,0x86,0xB3,0x2F,0x39, -0xFB,0xC8,0xD9,0x65,0xCE,0xAE,0xE1,0xEC,0x4A,0xCE,0x2E,0x72,0xA6,0xCC,0x99,0x3A, -0x4D,0xA2,0x17,0x68,0xB2,0xA6,0xE8,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C, -0x23,0x67,0x9E,0x12,0x67,0x9E,0x32,0x07,0x49,0x1A,0x17,0x53,0xE0,0x0C,0x99,0x33, -0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0xD7,0x23,0x02,0x87,0x5E,0x80,0x2A,0x5E,0x8F, -0x48,0x39,0xE2,0x05,0x16,0xFB,0xF5,0x88,0xC0,0xA1,0x17,0xA0,0x8A,0xD7,0x23,0x52, -0x8E,0x78,0x81,0xC5,0x7E,0x3D,0x22,0x70,0xE8,0x05,0xA8,0xE2,0xF5,0x88,0x94,0x23, -0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1, -0x53,0xE6,0xD0,0x0B,0x50,0xF5,0x54,0x72,0xC4,0x0B,0x2C,0xEE,0x33,0xA7,0x6F,0x38, -0x7D,0xC9,0xE9,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F, -0xB0,0xD8,0xAF,0x47,0x04,0x0E,0xBD,0x00,0x55,0xBC,0x1E,0x91,0x72,0xC4,0x0B,0x2C, -0xF6,0xEB,0x11,0x81,0x43,0x2F,0x40,0x15,0xAF,0x47,0xA4,0x1C,0xF1,0x82,0xE5,0xF8, -0xE0,0x7A,0x44,0x7E,0x7C,0xDC,0x0B,0xFC,0xF8,0xF8,0xF5,0x88,0xC2,0xF1,0xA1,0x17, -0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0xD8,0x54,0xC8, -0xDF,0x45,0xED,0x86,0xDD,0x4F,0x2F,0xB0,0x84,0x5E,0x60,0x9E,0x82,0x84,0x8F,0x73, -0x8E,0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xD7,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B, -0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x4D,0xAB,0xEC,0xFE, -0x5B,0xC3,0xE1,0x7A,0x81,0x72,0x6E,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4, -0x02,0xE5,0x88,0x17,0x58,0xEC,0xEB,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xF5,0x02,0xE5, -0x88,0x17,0x58,0x7C,0xCA,0xED,0x39,0x35,0xED,0x39,0x95,0xED,0x39,0xC5,0xF6,0x8C, -0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C,0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C, -0x6D,0xE4,0x5C,0x32,0xE7,0xD2,0xF4,0xD7,0xA5,0xE4,0x20,0x5D,0x39,0xBE,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0x5C,0x2F,0x50,0x8E,0x78,0x81,0xFD,0xDA,0x67,0x4E,0xDF,0x70, -0xFA,0x92,0xD3,0x47,0x8E,0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xD7,0x0B,0x94,0x23, -0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1, -0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xD7,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x7E,0x4A, -0xED,0x59,0x03,0xE1,0xDC,0x93,0xDC,0x1E,0xA4,0x2B,0xC7,0xBD,0x00,0x1C,0x7A,0x01, -0xAA,0xE8,0x05,0xCA,0x11,0x2F,0x58,0xBA,0xEE,0xA1,0x4B,0xFD,0xEE,0xF3,0x70,0xEF, -0x77,0xFF,0xFB,0x7C,0xE8,0x77,0xCE,0xC3,0x2D,0x76,0x2F,0x00,0xE7,0xDA,0x70,0xE8, -0x05,0xCA,0xB9,0x46,0xCE,0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,0x05, -0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xE7,0xCC,0x39,0x37,0x9C, -0x73,0xC9,0x39,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E, -0x60,0xF1,0xB3,0x56,0xD9,0xFD,0xF4,0x02,0x54,0x71,0xBD,0x40,0x39,0xE2,0x05,0x16, -0x1F,0xF2,0xF9,0x4C,0x2F,0x40,0x15,0x92,0xC8,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x9C, -0xC7,0xA6,0x3D,0xF4,0x02,0xE5,0x3C,0xC6,0xF6,0xEC,0xBB,0xD4,0x9E,0x7D,0xC3,0xE1, -0x7A,0x41,0x18,0x17,0x91,0xE3,0x5E,0x00,0xCE,0xAE,0xE1,0xD0,0x0B,0x94,0xB3,0x8B, -0x9C,0x29,0x73,0xA6,0xA6,0xDF,0xA7,0x92,0x33,0xC5,0x7E,0x3F,0x66,0xCE,0xB1,0xE1, -0x1C,0x4B,0xCE,0x31,0x72,0xDC,0x0B,0x7C,0x5C,0x4C,0x99,0x43,0x2F,0x08,0xE3,0x62, -0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,0x9C,0x21,0x72,0x7C,0xBD,0x00,0x1C,0x7A, -0x01,0xAA,0xB8,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA, -0xB8,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E, -0xA0,0x1C,0xF1,0x82,0x65,0x5C,0xE4,0xFE,0xA2,0x17,0xF8,0xB8,0x28,0xFB,0x4B,0xBC, -0xC0,0x62,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xBC,0x60,0xF9, -0x3C,0xCD,0xED,0xE9,0x1B,0x0E,0xBD,0x20,0x7C,0x9E,0x46,0xCE,0x98,0xFB,0x7D,0x0D, -0x74,0xDE,0x52,0xF6,0x3B,0xD2,0x95,0xF3,0xA2,0x55,0x76,0x17,0xBD,0x00,0x55,0x5C, -0x2F,0x50,0x8E,0x78,0x81,0xC5,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0x5C,0x2F,0x50, -0x8E,0x78,0xC1,0x72,0x7C,0x36,0xA9,0x3D,0xF4,0x02,0x3F,0x3E,0x9B,0xAA,0x3D,0xE2, -0x05,0x16,0xBB,0x17,0x80,0xF3,0xF6,0x39,0x73,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0x29, -0x8C,0xBF,0x8B,0xF6,0xBF,0x9C,0xBD,0xA0,0xFF,0xE5,0xEC,0x05,0xBD,0x70,0xDE,0xEB, -0x02,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD, -0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0xA6,0x55,0x76,0xFF, -0xAD,0xE1,0xD0,0x0B,0x94,0x73,0x8B,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17, -0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC, -0xC0,0xE2,0x53,0x6E,0xCF,0xA9,0x69,0xCF,0xA9,0x6C,0xCF,0x29,0xB6,0x67,0xCC,0x9C, -0xB1,0xE1,0x8C,0x25,0x67,0x8C,0x9C,0x6D,0xE6,0x6C,0x1B,0xCE,0xB6,0xE4,0x6C,0x23, -0xE7,0x92,0x39,0x97,0xA6,0xBF,0x2E,0x25,0x07,0xE9,0xCA,0x59,0xE6,0x88,0x7A,0x9C, -0x97,0x20,0x70,0x90,0x44,0xCE,0x3D,0x75,0x4E,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E, -0x1F,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE, -0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0, -0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45, -0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEF,0xE7,0xD7,0xF5,0x7E,0xA7,0x49,0xF4,0x02,0xE5, -0xAC,0x29,0xCE,0x1F,0xF7,0x02,0xEF,0x77,0x9F,0x87,0x7B,0xBF,0xBB,0x17,0x84,0x7E, -0xE7,0x3C,0xDC,0x62,0xF7,0x02,0x70,0xAE,0x0D,0x87,0x5E,0xA0,0x9C,0x6B,0xE4,0xCC, -0xB9,0x3D,0x73,0xC3,0x99,0xCB,0xF6,0xCC,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55, -0xF4,0x02,0xE5,0x88,0x17,0x58,0x7C,0xCE,0x9C,0x73,0xC3,0x39,0x97,0x9C,0x73,0xE4, -0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x3F,0x6B,0x95, -0xDD,0x4F,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x1F,0xF2,0xF9,0x7C,0x68, -0xCE,0xE7,0x43,0x79,0x3E,0x1F,0xE2,0xF9,0xEC,0x5E,0x00,0xCE,0x63,0xD3,0x1E,0x7A, -0x81,0x72,0x1E,0x63,0x7B,0xF6,0x5D,0x6A,0xCF,0xBE,0xE1,0xD0,0x0B,0xC2,0xB8,0x88, -0x1C,0xF7,0x02,0x70,0x76,0x0D,0x87,0x5E,0xA0,0x9C,0x5D,0xE4,0x4C,0x99,0x33,0x35, -0xFD,0x3E,0x95,0x9C,0x29,0xF6,0xFB,0x31,0x73,0x8E,0x0D,0xE7,0x58,0x72,0x8E,0x91, -0xE3,0x5E,0xE0,0xE3,0x62,0xCA,0x1C,0x7A,0x41,0x18,0x17,0x53,0xE0,0x0C,0x99,0x33, -0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5, -0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58, -0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xE3,0x22,0xF7, -0x17,0xBD,0xC0,0xC7,0x45,0xD9,0x5F,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40, -0x15,0xBD,0x40,0x39,0xE2,0x05,0xCB,0xE7,0x69,0x6E,0x4F,0xDF,0x70,0xE8,0x05,0xE1, -0xF3,0x34,0x72,0xC6,0xDC,0xEF,0x6B,0xA0,0xF3,0x96,0xB2,0xDF,0x91,0xAE,0x9C,0x17, -0xAD,0xB2,0xBB,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70, -0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,0x39,0x3E,0x9B,0xD4,0x1E,0x7A,0x81, -0x1F,0x9F,0x4D,0xD5,0x1E,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0x79,0xFB,0x9C,0x39,0xF4, -0x02,0xE5,0x88,0x17,0xD8,0xD4,0xE3,0x3D,0xF4,0x97,0xDD,0xB0,0xFB,0xE9,0x05,0x96, -0xD0,0x0B,0x8C,0x83,0x84,0x8F,0x73,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B, -0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E, -0x60,0xF1,0x4D,0xAB,0xEC,0xFE,0x5B,0xC3,0xA1,0x17,0x28,0xE7,0x16,0x39,0xEE,0x05, -0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B, -0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xA7,0xDC,0x9E,0x53,0xD3,0x9E,0x53,0xD9, -0x9E,0x53,0x6C,0xCF,0x98,0x39,0x63,0xC3,0x19,0x4B,0xCE,0x18,0x39,0xDB,0xCC,0xD9, -0x36,0x9C,0x6D,0xC9,0xD9,0x46,0xCE,0x25,0x73,0x2E,0x4D,0x7F,0x5D,0x4A,0x0E,0xD2, -0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67, -0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0xEF,0x23,0x02,0x87,0x5E,0x80,0x2A,0xEE, -0x23,0x52,0x8E,0x78,0x81,0xFD,0xEA,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5, -0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58, -0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0x87,0xEA,0xA1,0x4B,0xFD,0xEE, -0xF3,0x70,0xEF,0x77,0x9F,0x87,0x87,0x7E,0xE7,0x3C,0xDC,0xE2,0x6B,0xE6,0x5C,0x1B, -0xCE,0xB5,0xE4,0x5C,0x23,0x67,0xCE,0x9C,0xB9,0xE1,0xCC,0x25,0x67,0x8E,0x1C,0xF7, -0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0xE2,0x73,0xE6,0x9C,0x1B, -0xCE,0xB9,0xE4,0x9C,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11, -0x2F,0xB0,0xF8,0xB9,0x4B,0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xE2,0x05,0x16, -0x1F,0xF2,0xF9,0x7C,0x68,0xCE,0xE7,0x43,0x79,0x3E,0x1F,0xE2,0xF9,0xFC,0x98,0xDB, -0xF3,0xD8,0xB4,0xE7,0xB1,0x6C,0xCF,0x63,0x6C,0xCF,0x3E,0x73,0xF6,0x0D,0x67,0x5F, -0x72,0xF6,0x91,0xB3,0xCB,0x9C,0x5D,0xC3,0xD9,0x95,0x9C,0x5D,0xE4,0x4C,0x99,0x33, -0x35,0xFD,0x3E,0x95,0x9C,0x29,0xF6,0xFB,0x31,0x73,0x8E,0x0D,0xE7,0x58,0x72,0x8E, -0x91,0xE3,0x5E,0xE0,0xE3,0x62,0xCA,0x1C,0x7A,0x41,0x18,0x17,0x53,0xE0,0x0C,0x99, -0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17, -0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xE3,0x22, -0xF7,0x17,0xBD,0xC0,0xC7,0x45,0xD9,0x5F,0xE2,0x05,0x16,0x3F,0x65,0x0E,0xBD,0x00, -0x55,0x4F,0x25,0x47,0xBC,0x60,0xF9,0x3C,0xCD,0x9C,0xBE,0xE1,0xF4,0x25,0xA7,0x8F, -0x1C,0xF7,0x02,0x9F,0xB7,0x4C,0x99,0x43,0x2F,0x08,0xF3,0x96,0x29,0x70,0x7C,0x1F, -0x11,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,0xC4,0x0B,0x2C,0xF6,0x7D,0x44,0xE0, -0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x11,0x2F,0x58,0x8E,0xCF,0x26,0xB5,0x87,0x5E, -0xE0,0xC7,0x67,0x53,0xB5,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2, -0x17,0x28,0x47,0xBC,0xC0,0xA6,0x0C,0xFE,0x2E,0x6A,0x37,0x26,0x04,0x9E,0xD0,0x0B, -0xEC,0x3C,0x44,0xC2,0xC7,0x39,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA, -0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0, -0xF8,0xA6,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x6E,0x91,0xE3,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0x88,0x17,0x58,0x3C,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73, -0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xD1,0xA3,0x31,0x75,0xEA,0x05,0xA8,0x42, -0x12,0x39,0x97,0x2E,0x1C,0x1F,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47, -0xBC,0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xBE,0xF6,0x99,0xC4, -0xA1,0x17,0xA0,0x0A,0x49,0xE4,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55, -0xF4,0x02,0xE5,0x88,0x17,0xD8,0xAF,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50, -0x8E,0x78,0x81,0xC5,0xFB,0x29,0xB5,0x67,0x0D,0x84,0x73,0x4F,0x72,0x7B,0x90,0xAE, -0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,0x79,0x89,0x98, -0x87,0x7B,0xBF,0xFB,0x3C,0xDC,0xFB,0xDD,0xE7,0xE1,0xA1,0xDF,0x39,0x0F,0xB7,0xF8, -0x9A,0x39,0xD7,0x86,0x73,0x2D,0x39,0xD7,0xC8,0x99,0x33,0x67,0x6E,0x38,0x73,0xC9, -0x99,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8, -0x9C,0x39,0xE7,0x86,0x73,0x2E,0x39,0xE7,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A, -0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72, -0xC4,0x0B,0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3, -0xF9,0xB1,0x4B,0x1C,0x7A,0x01,0xAA,0x90,0x44,0x8E,0x78,0xC1,0x32,0x2E,0x32,0x67, -0xDF,0x70,0xF6,0x25,0x67,0x1F,0x39,0xEE,0x05,0xE0,0xEC,0x1A,0x0E,0xBD,0x40,0x39, -0xBB,0xC8,0x99,0x32,0x67,0xEA,0x34,0x89,0x5E,0xA0,0xC9,0x9A,0xA2,0xDF,0x8F,0x99, -0x73,0x6C,0x38,0xC7,0x92,0x73,0x8C,0x1C,0xF7,0x02,0x1F,0x17,0x53,0xE6,0xD0,0x0B, -0xC2,0xB8,0x98,0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x1C,0xF7,0x02, -0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05, -0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17, -0x28,0x47,0xBC,0x60,0x19,0x17,0xB9,0xBF,0xE8,0x05,0x3E,0x2E,0xCA,0xFE,0x12,0x2F, -0xB0,0xD8,0xD7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x11,0x2F,0x58,0x3E, -0x4F,0x73,0x7B,0xFA,0x86,0x43,0x2F,0x08,0x9F,0xA7,0x91,0xE3,0x5E,0x00,0x0E,0xBD, -0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xFC,0xA2,0x55,0x53,0xA7,0x5E,0x80,0x2A, -0xAE,0x17,0x28,0x47,0xBC,0xC0,0x62,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17, -0x28,0x47,0xBC,0x60,0x39,0x3E,0x9B,0xD4,0x1E,0x7A,0x81,0x1F,0x9F,0x4D,0xD5,0x1E, -0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0xFB, -0xA8,0xF7,0x77,0x51,0xBB,0x61,0xF7,0xD3,0x0B,0x2C,0x89,0x5E,0x80,0x84,0x8F,0x73, -0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01, -0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x4D,0xAB,0xEC,0xFE,0x5B, -0xC3,0xA1,0x17,0x28,0xE7,0x16,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50, -0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81, -0xC5,0xA7,0xDC,0x9E,0x53,0xD3,0x9E,0x53,0xD9,0x9E,0x53,0x6C,0xCF,0x98,0x39,0x63, -0xC3,0x19,0x4B,0xCE,0x18,0x39,0xDB,0xCC,0xD9,0x36,0x9C,0x6D,0xC9,0xD9,0x46,0xCE, -0x25,0x73,0x2E,0x4D,0x7F,0x5D,0x4A,0x0E,0xD2,0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47, -0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01, -0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02, -0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xBF,0xBA,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD, -0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2, -0x05,0x4B,0xD3,0x1E,0xBA,0xD4,0xEF,0x3E,0x0F,0xF7,0x7E,0xF7,0x79,0x78,0xE8,0x77, -0xCE,0xC3,0x2D,0xBE,0x66,0xCE,0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99, -0x1B,0xCE,0x5C,0x72,0xE6,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72, -0xC4,0x0B,0x2C,0x3E,0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0xDC,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x9F,0xB5,0xCA,0xEE,0xA7,0x17, -0xA0,0x8A,0xFB,0x88,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1, -0x0B,0x94,0x23,0x5E,0x60,0xB1,0xAF,0x17,0x80,0xF3,0xD8,0xB4,0x87,0xEB,0x05,0xCA, -0x79,0x8C,0xED,0xD9,0x77,0xA9,0x3D,0xFB,0x86,0x43,0x2F,0x08,0xE3,0x22,0x72,0xDC, -0x0B,0xC0,0xD9,0x35,0x1C,0x7A,0x81,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,0xF4,0xFB, -0x54,0x72,0xA6,0xD8,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,0x8E,0x7B, -0x81,0x8F,0x8B,0x29,0x73,0xE8,0x05,0x61,0x5C,0x4C,0x81,0x33,0x64,0xCE,0xD0,0x70, -0x86,0x92,0x33,0x44,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E, -0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B, -0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F,0xF4, -0x02,0x1F,0x17,0x65,0x7F,0x89,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4, -0x02,0xE5,0x88,0x17,0x2C,0x9F,0xA7,0xB9,0x3D,0x7D,0xC3,0xA1,0x17,0x84,0xCF,0xD3, -0xC8,0x71,0x2F,0xF0,0x79,0xCB,0x94,0x39,0xF4,0x82,0x30,0x6F,0x99,0x02,0xE7,0x45, -0xAB,0xEC,0x2E,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C, -0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0x58,0x8E,0xCF,0x26,0xB5,0x87,0x5E,0xE0, -0xC7,0x67,0x53,0xB5,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xDE,0x3E,0x67,0x0E,0xBD, -0x40,0x39,0xE2,0x05,0xF6,0x11,0xED,0xEF,0xA2,0x76,0xC3,0xEE,0xC7,0xDB,0xE5,0x3D, -0x89,0x5E,0x80,0x84,0x8F,0x73,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94, -0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60, -0xF1,0x4D,0xAB,0xEC,0xFE,0x5B,0xC3,0xA1,0x17,0x28,0xE7,0x16,0x39,0xEE,0x05,0xE0, -0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50, -0x8E,0x78,0x81,0xC5,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67, -0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0x59,0x03,0xE1,0x5C,0x4A,0x0E,0xD2, -0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67, -0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B, -0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E, -0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B, -0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xBF,0xBA,0x17,0x80,0x43, -0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x0B,0x12,0xF3,0x70,0xEF,0x77,0x9F,0x87, -0x7B,0xBF,0xFB,0x3C,0x3C,0xF4,0x3B,0xE7,0xE1,0x16,0x5F,0x33,0xE7,0xDA,0x70,0xAE, -0x25,0xE7,0x1A,0x39,0x73,0xE6,0xCC,0x0D,0x67,0x2E,0x39,0x73,0xE4,0xB8,0x17,0x80, -0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x9F,0x33,0xE7,0xDC,0x70,0xCE, -0x25,0xE7,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81, -0xC5,0xCF,0x5A,0x65,0xF7,0xD3,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0x87, -0x7C,0x3E,0x1F,0x9A,0xF3,0xF9,0x50,0x9E,0xCF,0x87,0x78,0x3E,0x3F,0xE6,0xF6,0xD0, -0x0B,0x50,0x85,0x24,0x72,0xC4,0x0B,0x96,0x71,0x91,0x39,0xFB,0x86,0xB3,0x2F,0x39, -0xFB,0xC8,0x71,0x2F,0x00,0x67,0xD7,0x70,0xE8,0x05,0xCA,0xD9,0x45,0xCE,0x94,0x39, -0x53,0xA7,0x49,0xF4,0x02,0x4D,0xD6,0x14,0xFD,0x7E,0xCC,0x9C,0x63,0xC3,0x39,0x96, -0x9C,0x63,0xE4,0xB8,0x17,0xF8,0xB8,0x98,0x32,0x87,0x5E,0x10,0xC6,0xC5,0x14,0x38, -0x43,0xE6,0x0C,0x0D,0x67,0x28,0x39,0x43,0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15, -0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39, -0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0xCB, -0xB8,0xC8,0xFD,0x45,0x2F,0xF0,0x71,0x51,0xF6,0x97,0x78,0x81,0xC5,0xEE,0x05,0xE0, -0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0xC1,0xF2,0x79,0x9A,0xDB,0xD3,0x37,0x1C, -0x7A,0x41,0xF8,0x3C,0x8D,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47, -0xBC,0xC0,0xE2,0x17,0xAD,0xB2,0xBB,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0, -0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,0x39,0x3E,0x9B, -0xD4,0x1E,0x7A,0x81,0x1F,0x9F,0x4D,0xD5,0x1E,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0x79, -0xFB,0x9C,0x39,0xF4,0x02,0xE5,0x88,0x17,0xD8,0x47,0xEB,0x7B,0xE8,0x2F,0xBB,0x31, -0x31,0x58,0x13,0x7A,0x81,0x71,0x90,0xF0,0x71,0xCE,0x71,0x2F,0x00,0x87,0x5E,0x80, -0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81, -0x72,0xC4,0x0B,0x2C,0xBE,0x69,0xD5,0xD4,0xA9,0x17,0xA0,0x8A,0x5E,0xA0,0x9C,0x5B, -0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17, -0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F, -0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x8F,0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C, -0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,0xE4,0x5C,0x32,0x67,0x0D,0x84, -0x73,0x29,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23, -0x5E,0x60,0x71,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0xEB,0xA4,0x9F,0x1C, -0x7A,0x01,0xAA,0x60,0x00,0x91,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54, -0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94, -0x23,0x5E,0x60,0xF1,0x32,0x17,0xD7,0xF6,0xAC,0x81,0x70,0xEE,0x49,0x6E,0x0F,0xD2, -0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xBF,0x62, -0x1E,0xEE,0xFD,0xEE,0xF3,0x70,0xEF,0x77,0x9F,0x87,0x87,0x7E,0xE7,0x3C,0xDC,0xE2, -0x6B,0xE6,0x5C,0x1B,0xCE,0xB5,0xE4,0x5C,0x23,0x67,0xCE,0x9C,0xB9,0xE1,0xCC,0x25, -0x67,0x8E,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0xE2, -0x73,0xE6,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA, -0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0x59,0xAB,0xA6,0x4E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0x88,0x17,0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88, -0xE7,0xF3,0x63,0x97,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B, -0xCC,0xD9,0x37,0x9C,0x7D,0xC9,0xD9,0x47,0x8E,0x7B,0x01,0x38,0xBB,0x86,0x43,0x2F, -0x50,0xCE,0x2E,0x72,0xA6,0xCC,0x99,0x3A,0x4D,0xA2,0x17,0x68,0xB2,0xA6,0xE8,0xF7, -0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C,0x23,0xC7,0xBD,0xC0,0xC7,0xC5,0x94,0x39, -0xF4,0x82,0x30,0x2E,0xA6,0xC0,0x19,0x32,0x67,0x68,0x38,0x43,0xC9,0x19,0x22,0xC7, -0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C, -0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA, -0xE8,0x05,0xCA,0x11,0x2F,0x58,0xC6,0x45,0xEE,0x2F,0x7A,0x81,0x8F,0x8B,0xB2,0xBF, -0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96, -0xCF,0xD3,0xDC,0x9E,0xBE,0xE1,0xD0,0x0B,0xC2,0xE7,0x69,0xE4,0x8C,0x53,0xE2,0xAC, -0x81,0xCE,0x5B,0xA6,0x8A,0x83,0x74,0xE5,0xF8,0xF7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A, -0xDF,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xFE,0xFD,0x02,0x70,0xE8,0x05,0xA8,0xE2,0xF7, -0x0B,0x94,0x23,0x5E,0xB0,0x1C,0x1F,0x7C,0xBF,0xC0,0x8F,0x8F,0x7B,0x81,0x1F,0x1F, -0xFF,0x7E,0x41,0x38,0x3E,0x9B,0xD0,0x1E,0xF7,0x02,0x70,0xDE,0x3E,0x67,0x0E,0xBD, -0x40,0x39,0x7A,0x9D,0xD2,0x07,0x59,0x2F,0xB0,0x1B,0x76,0x3F,0xBD,0xC0,0x12,0x7A, -0xC1,0x72,0x7D,0xA4,0x87,0xD2,0x0B,0x2C,0xE6,0x75,0x4A,0x1F,0xB2,0x17,0xA0,0x4A, -0xAE,0x53,0x2A,0x1C,0xBD,0x4E,0xE9,0x83,0x5E,0xA7,0xF4,0x21,0x7B,0x01,0xAA,0xE4, -0x3A,0xA5,0xC2,0xD1,0xEB,0x94,0x3E,0xE8,0x75,0x4A,0x1F,0xB2,0x17,0xA0,0x4A,0xAE, -0x53,0x2A,0x9C,0x5B,0xE4,0xF0,0x3A,0xA5,0x0F,0xD9,0x0B,0x50,0x25,0xD7,0x29,0x15, -0x8E,0x5E,0xA7,0xF4,0x41,0xAF,0x53,0xFA,0x90,0xBD,0x00,0x55,0x72,0x9D,0x52,0xE1, -0xE8,0x75,0x4A,0x1F,0xF4,0x3A,0xA5,0x0F,0xD9,0x0B,0x50,0x75,0x2A,0xDB,0x73,0x8A, -0xED,0x19,0x33,0x67,0x6C,0x38,0x63,0xC9,0x19,0x23,0x67,0x9B,0x39,0xDB,0x86,0xB3, -0x2D,0x39,0xDB,0xC8,0xB9,0x64,0xCE,0xA5,0xE9,0xAF,0x4B,0xC9,0x41,0xBA,0x72,0xD6, -0x49,0x3F,0x39,0xF4,0x02,0x54,0xC1,0x00,0x22,0x47,0xBC,0xC0,0xE2,0x3E,0x73,0xFA, -0x86,0xD3,0x97,0x9C,0x3E,0x72,0x7C,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,0xA0, -0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02, -0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B, -0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17, -0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xA5,0xDF,0x1F,0x72,0xBF,0xFB,0x3C,0xDC,0xFB, -0xFD,0xA1,0xEC,0x77,0xCE,0xC3,0xED,0x57,0xF7,0x02,0x70,0xAE,0x0D,0x87,0x5E,0xA0, -0x9C,0x6B,0xE4,0xCC,0xB9,0x3D,0x73,0xC3,0x99,0xCB,0xF6,0xCC,0x91,0xC3,0xEB,0x94, -0x3E,0x64,0x2F,0x40,0x95,0x5C,0xA7,0x54,0x38,0x7A,0x9D,0xD2,0x07,0xBD,0x4E,0xE9, -0x43,0xF6,0x02,0x54,0x9D,0x4B,0xCE,0x39,0x72,0x78,0x9D,0xD2,0x87,0xEC,0x05,0xA8, -0x92,0xEB,0x94,0x0A,0x47,0xAF,0x53,0xFA,0xA0,0xD7,0x29,0x7D,0xC8,0x5E,0x80,0x2A, -0xB9,0x4E,0xA9,0x70,0xF4,0x3A,0xA5,0x0F,0x7A,0x9D,0xD2,0x87,0xEC,0x05,0xA8,0xA2, -0x17,0x28,0x47,0xBC,0xC0,0xE2,0xC7,0x7C,0x7C,0x1E,0x9B,0xF6,0xC0,0x00,0x22,0xE7, -0x31,0xB6,0x67,0xDF,0xA5,0xF6,0xEC,0x1B,0x8E,0x5C,0xA7,0x54,0xC7,0x45,0xE4,0xF0, -0x3A,0xA5,0x0F,0xD9,0x0B,0x50,0x25,0xD7,0x29,0x15,0xCE,0x2E,0x72,0xA6,0xCC,0x99, -0x9A,0x7E,0x9F,0x4A,0xCE,0x14,0xFB,0xFD,0x98,0x39,0xC7,0x86,0x73,0x2C,0x39,0xC7, -0xC8,0x71,0x2F,0xF0,0x71,0x31,0x65,0x0E,0xBD,0x20,0x8C,0x8B,0x29,0x70,0x86,0xCC, -0x19,0x1A,0xCE,0x50,0x72,0x86,0xC8,0xE1,0x75,0x4A,0x1F,0xB2,0x17,0xA0,0x4A,0xAE, -0x53,0x2A,0x1C,0xBD,0x4E,0xE9,0x83,0x5E,0xA7,0xF4,0x21,0x7B,0x01,0xAA,0xE4,0x3A, -0xA5,0xC2,0xD1,0xEB,0x94,0x3E,0xE8,0x75,0x4A,0x1F,0xB2,0x17,0xA0,0x4A,0xAE,0x53, -0x2A,0x1C,0xBD,0x4E,0xE9,0x83,0x5E,0xA7,0x14,0xE3,0xA2,0xE9,0x2F,0xB9,0x4E,0xA9, -0x8E,0x8B,0xD8,0x5F,0xBC,0x4E,0xE9,0x43,0xF6,0x02,0x54,0xC9,0x75,0x4A,0x85,0xA3, -0xD7,0x29,0xB5,0xCF,0xD3,0xDC,0x9E,0xBE,0xE1,0xD0,0x0B,0xC2,0xE7,0x69,0xE4,0xB8, -0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBF,0x68,0x95,0xDD, -0x25,0xD7,0x29,0x7D,0x50,0x2F,0xC8,0xAF,0x4B,0xAF,0x53,0xFA,0xA0,0xD7,0x29,0x7D, -0xC8,0x5E,0x80,0x2A,0xB9,0x4E,0xA9,0x70,0xF4,0x3A,0xA5,0x76,0x7C,0x36,0xA9,0x3D, -0x72,0x9D,0x52,0x1C,0x9F,0x4D,0xD5,0x1E,0xBD,0x4E,0xE9,0x83,0x5E,0xA7,0xF4,0x21, -0x7B,0x01,0xAA,0xE4,0x3A,0xA5,0xC2,0x11,0x2F,0xB0,0x8F,0x32,0x7F,0x17,0xBD,0x3E, -0x64,0x2F,0xB8,0x3E,0x64,0x2F,0xB8,0x0A,0xE7,0xBD,0x2E,0x70,0xDC,0x0B,0xC0,0xA1, -0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A, -0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x6F,0x5A,0x65,0xF7,0xDF,0x1A,0x0E,0xBD,0x40,0x39, -0xB7,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76, -0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0xE5,0xF6,0x9C, -0x9A,0xF6,0x9C,0xCA,0xF6,0x9C,0x62,0x7B,0xC6,0xCC,0x19,0x1B,0xCE,0x58,0x72,0xC6, -0xC8,0xD9,0x66,0xCE,0xB6,0xE1,0x6C,0x4B,0xCE,0x36,0x72,0x2E,0x99,0x73,0x69,0xFA, -0xEB,0x52,0x72,0x90,0xAE,0x1C,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,0x28, -0x47,0xBC,0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0, -0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0, -0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02, -0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xA5,0xDF,0x1F, -0x72,0xBF,0x3F,0x34,0xFD,0xFE,0x50,0xF6,0xFB,0x43,0x68,0x8F,0x5F,0xA7,0x14,0x9C, -0x6B,0xC3,0xE1,0x75,0x4A,0x95,0x73,0x8D,0x9C,0x39,0xB7,0x67,0x6E,0x38,0x73,0xD9, -0x9E,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B, -0xCF,0x99,0x73,0x6E,0x38,0xE7,0x92,0x73,0x8E,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8, -0xA2,0x17,0x28,0x47,0xBC,0xC0,0xE2,0x67,0xAD,0xB2,0xFB,0xE9,0x05,0xA8,0xA2,0x17, -0x28,0x47,0xBC,0xC0,0xE2,0x43,0x3E,0x9F,0x0F,0xCD,0xF9,0x7C,0x28,0xCF,0xE7,0x43, -0x3C,0x9F,0xDD,0x0B,0xC0,0x79,0x6C,0xDA,0x43,0x2F,0x50,0xCE,0x63,0x6C,0xCF,0xBE, -0x4B,0xED,0xD9,0x37,0x1C,0x7A,0x41,0x18,0x17,0x91,0xE3,0x5E,0x00,0xCE,0xAE,0xE1, -0xD0,0x0B,0x94,0xB3,0x8B,0x9C,0x29,0x73,0xA6,0xA6,0xDF,0xA7,0x92,0x33,0xC5,0x7E, -0x3F,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xDC,0x0B,0x7C,0x5C,0x4C,0x99, -0x43,0x2F,0x08,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,0x9C,0x21,0x72, -0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0, -0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0x65,0x5C,0xE4,0xFE,0xA2,0x17,0xF8,0xB8,0x28,0xFB, -0x4B,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60, -0xF9,0x3C,0xCD,0xED,0xE9,0x1B,0x0E,0xBD,0x20,0x7C,0x9E,0x46,0x8E,0x7B,0x81,0xCF, -0x5B,0xA6,0xCC,0xA1,0x17,0x84,0x79,0xCB,0x14,0x38,0x2F,0x5A,0x65,0x77,0xD1,0x0B, -0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F, -0x50,0x8E,0x78,0xC1,0x72,0x7C,0x36,0xA9,0x3D,0xF4,0x02,0x3F,0x3E,0x9B,0xAA,0x3D, -0xE2,0x05,0x16,0xBB,0x17,0x80,0xF3,0xF6,0x39,0x73,0xE8,0x05,0xCA,0x11,0x2F,0xB0, -0x8F,0x20,0x7F,0x17,0x9D,0x1F,0xB2,0x17,0xCC,0x0F,0xD9,0x0B,0x66,0xE1,0x88,0x17, -0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E, -0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0x7C,0xD3,0x2A,0xBB,0xFF, -0xD6,0x70,0xE8,0x05,0xCA,0xB9,0x45,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B, -0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E, -0x60,0xF1,0x29,0xB7,0xE7,0xD4,0xB4,0xE7,0x54,0xB6,0xE7,0x14,0xDB,0x33,0x66,0xCE, -0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91, -0x73,0xC9,0x9C,0x4B,0xD3,0x5F,0x97,0x92,0x83,0x74,0xE5,0xB8,0x17,0x80,0x43,0x2F, -0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4, -0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E, -0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD, -0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4, -0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88, -0x17,0x2C,0xFD,0xFE,0x90,0xFB,0xFD,0xA1,0xE9,0xF7,0x87,0xB2,0xDF,0x1F,0x42,0x7B, -0xDC,0x0B,0xC0,0xB9,0x36,0x1C,0x7A,0x81,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70, -0xE6,0x92,0x33,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E, -0x60,0xF1,0x39,0x73,0xCE,0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD, -0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xFC,0xAC,0x55,0x76,0x3F,0xBD,0x00,0x55, -0xF4,0x02,0xE5,0x88,0x17,0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9, -0x7C,0x88,0xE7,0xB3,0x7B,0x01,0x38,0x8F,0x4D,0x7B,0xE8,0x05,0xCA,0x79,0x8C,0xED, -0xD9,0x77,0xA9,0x3D,0xFB,0x86,0x43,0x2F,0x08,0xE3,0x22,0x72,0xDC,0x0B,0xC0,0xD9, -0x35,0x1C,0x7A,0x81,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,0xF4,0xFB,0x54,0x72,0xA6, -0xD8,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,0x8E,0x7B,0x81,0x8F,0x8B, -0x29,0x73,0xE8,0x05,0x61,0x5C,0x4C,0x81,0x33,0x64,0xCE,0xD0,0x70,0x86,0x92,0x33, -0x44,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B, -0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4, -0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F,0xF4,0x02,0x1F,0x17, -0x65,0x7F,0x89,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88, -0x17,0x2C,0x9F,0xA7,0xB9,0x3D,0x7D,0xC3,0xA1,0x17,0x84,0xCF,0xD3,0xC8,0x71,0x2F, -0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x7E,0xD1,0x2A,0xBB,0x8B, -0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A, -0x7A,0x81,0x72,0xC4,0x0B,0x96,0xE3,0xB3,0x49,0xED,0xA1,0x17,0xF8,0xF1,0xD9,0x54, -0xED,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x9C,0xB7,0xCF,0x99,0x43,0x2F,0x50,0x8E,0x78, -0x81,0x7D,0x74,0xF8,0xBB,0xA8,0xDD,0x98,0x18,0xAC,0x89,0x7B,0x41,0x6F,0x1C,0x24, -0x7C,0x9C,0x73,0xDC,0x0B,0xC0,0x59,0x03,0xE1,0x20,0x89,0x9C,0x7B,0xEA,0x9C,0x37, -0xB9,0x3D,0x6F,0x9A,0xF6,0xBC,0x29,0xDB,0xF3,0x26,0xB6,0xE7,0x96,0x39,0xB7,0x86, -0x83,0x24,0x72,0x6E,0x91,0x33,0x64,0xCE,0xB0,0xDE,0x4F,0xCE,0x50,0xB6,0x67,0x4D, -0xBB,0x95,0xE3,0x5E,0x00,0xCE,0x1A,0x08,0x07,0x49,0xE4,0xDC,0x53,0x6F,0xCF,0x29, -0xB7,0xE7,0xD4,0xB4,0xE7,0x54,0xB6,0xE7,0x14,0xDB,0x33,0x66,0xCE,0xD8,0x70,0xC6, -0x92,0x33,0x46,0xCE,0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xC9,0x9C, -0x4B,0xD3,0x5F,0x97,0x92,0x83,0x74,0xE5,0xB8,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12, -0x39,0xF7,0xD4,0x39,0x7D,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0xB8,0x17,0x80, -0xB3,0x06,0xC2,0xB9,0x27,0xF9,0x75,0x21,0x5D,0x39,0x1F,0xE4,0xE3,0xF3,0x41,0x73, -0x7C,0x3E,0x28,0x8F,0x0F,0xD2,0x95,0xE3,0x5E,0x00,0xCE,0x1A,0x08,0x07,0x49,0xE4, -0xDC,0x53,0xE7,0x2C,0xD3,0x7B,0xE5,0xAC,0x81,0x70,0xEE,0x49,0x6E,0x0F,0xD2,0x95, -0xF3,0x7E,0x7E,0x5D,0xEF,0x37,0xE7,0x0F,0x92,0xC8,0x79,0x3F,0x9E,0x3F,0xEE,0x05, -0xDE,0xEF,0x0F,0x4D,0xBF,0x3F,0x94,0xFD,0xFE,0x10,0xDA,0x73,0xCD,0x9C,0x6B,0xC3, -0xB9,0x96,0x9C,0x6B,0xE4,0xCC,0x99,0x33,0x37,0x9C,0xB9,0xE4,0xCC,0x91,0xF3,0x6E, -0x3E,0x3E,0xEF,0x36,0xC7,0x07,0x49,0xE4,0xBC,0x1B,0x8F,0xCF,0x39,0x73,0xCE,0x0D, -0xE7,0x5C,0x72,0xCE,0x91,0xB3,0x4C,0xEF,0x95,0xB3,0x06,0xC2,0xB9,0x27,0x99,0x83, -0x74,0xE5,0x3C,0xE7,0xF6,0xAC,0x81,0x70,0x9E,0xCB,0xF6,0x20,0x5D,0x39,0x87,0x7C, -0x3E,0x1F,0x9A,0xF3,0xF9,0x50,0x9E,0xCF,0x87,0x78,0x3E,0x3F,0xE6,0xF6,0x3C,0x36, -0xED,0x79,0x2C,0xDB,0xF3,0x18,0xDB,0xB3,0xCF,0x9C,0x7D,0xC3,0xD9,0x97,0x9C,0x7D, -0xE4,0xEC,0x32,0x67,0xD7,0x70,0x76,0x25,0x67,0x17,0x39,0x53,0xE6,0x4C,0x4D,0xBF, -0x4F,0x25,0x67,0x8A,0xFD,0x7E,0xCC,0x9C,0x63,0xC3,0x39,0x96,0x9C,0x63,0xE4,0x2C, -0xD3,0xFB,0x30,0x2E,0xA6,0xCC,0x41,0x92,0xC6,0xC5,0x14,0x38,0x43,0xE6,0x0C,0x0D, -0x67,0x28,0x39,0x43,0xE4,0xB8,0x17,0x80,0xB3,0x06,0xC2,0x41,0x12,0x39,0xF7,0xD4, -0x8F,0xB3,0x7B,0x01,0x38,0x6B,0x20,0x1C,0x24,0x91,0x73,0x4F,0x9D,0xE3,0x5E,0x00, -0xCE,0x1A,0x08,0x07,0x49,0xE4,0xDC,0x53,0x8E,0x8B,0xDC,0x5F,0x87,0xA6,0xBF,0x90, -0xA4,0x71,0x11,0xFB,0xEB,0x29,0x73,0x9E,0x9A,0xF3,0xF0,0xA9,0xE4,0x20,0xC5,0xE7, -0x69,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0x8C,0xB9,0xDF,0xD7,0x40,0xE7,0x2D, -0x65,0xBF,0x23,0x5D,0x39,0x2F,0xB9,0x3D,0x2F,0x4D,0x7B,0x5E,0xCA,0xF6,0xBC,0xC4, -0xF6,0xB8,0x17,0x80,0xB3,0x06,0xC2,0xB9,0x27,0x99,0x83,0x14,0xC7,0x67,0x93,0xDA, -0xB3,0x06,0x7A,0x7C,0x36,0xE5,0xF1,0xD9,0x84,0xF6,0x2C,0xD3,0x7B,0xE5,0xAC,0x81, -0x70,0xEE,0x49,0xE6,0x20,0x7D,0xE5,0xD8,0x5B,0xBE,0x7B,0xC1,0x79,0xE5,0xD0,0x0B, -0xCE,0x5D,0xF6,0x82,0xB3,0x70,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A, -0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x7E,0x93,0xDB,0xF3,0xA6,0x69,0xCF,0x9B,0xB2,0x3D, -0x6F,0x62,0x7B,0x6E,0x99,0x73,0x6B,0x38,0xF4,0x02,0xE5,0xDC,0x22,0x67,0xC8,0x1C, -0x7A,0x01,0xAA,0x86,0xB2,0x3D,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15, -0xBD,0x40,0x39,0xE2,0x05,0x16,0x9F,0x72,0x7B,0x4E,0x4D,0x7B,0x4E,0x65,0x7B,0x4E, -0xB1,0x3D,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70, -0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0xB9,0x34,0xFD,0x75,0x29,0x39,0x48,0x57,0x8E, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0x71,0x9F,0x39,0x7D, -0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E, -0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5, -0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0, -0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0x78,0xC1,0xD2,0xEF,0x0F,0x89,0x43,0x2F,0xF0,0x7E,0xF7,0x79, -0x78,0xE8,0xF7,0x87,0xD0,0x9E,0x6B,0xE6,0x5C,0x1B,0xCE,0xB5,0xE4,0x5C,0x23,0x67, -0xCE,0x9C,0xB9,0xE1,0xCC,0x25,0x67,0x8E,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2, -0x17,0x28,0x47,0xBC,0xC0,0xE2,0x73,0xE6,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0xC7, -0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0x39,0xB7,0x87, -0x5E,0x80,0xAA,0xE7,0xB2,0x3D,0xE2,0x05,0x16,0x1F,0xF2,0xF9,0x7C,0x68,0xCE,0xE7, -0x43,0x79,0x3E,0x1F,0xE2,0xF9,0xFC,0x98,0xDB,0xF3,0xD8,0xB4,0xE7,0xB1,0x6C,0xCF, -0x63,0x6C,0xCF,0x3E,0x73,0xF6,0x0D,0x67,0x5F,0x72,0xF6,0x91,0xB3,0xCB,0x9C,0x5D, -0xC3,0xD9,0x95,0x9C,0x5D,0xE4,0x4C,0x99,0x33,0x35,0xFD,0x3E,0x95,0x9C,0x29,0xF6, -0xFB,0x31,0x73,0x8E,0x0D,0xE7,0x58,0x72,0x8E,0x91,0xE3,0x5E,0xE0,0xE3,0x62,0xCA, -0x1C,0x7A,0x41,0x18,0x17,0x53,0xE0,0x0C,0x99,0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91, -0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xE3,0x22,0xF7,0x17,0xBD,0xC0,0xC7,0x45,0xD9, -0x5F,0xE2,0x05,0x16,0x3F,0x65,0x0E,0xBD,0x00,0x55,0x4F,0x25,0x47,0xBC,0xE0,0x7C, -0x27,0xA6,0xCF,0xD3,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0, -0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x5F,0x72,0x7B,0x5E,0x9A,0xF6,0xBC,0x94,0xED, -0x79,0x89,0xED,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96, -0xE3,0xB3,0x49,0xED,0xA1,0x17,0xF8,0xF1,0xD9,0x54,0xED,0x11,0x2F,0xB0,0xD8,0xBD, -0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xB7,0x6A,0xF7,0x02,0xBB, -0x61,0xF7,0x2F,0x81,0x27,0xEE,0x05,0x9D,0x9D,0x87,0x48,0xF8,0x38,0xE7,0xB8,0x17, -0x80,0xC3,0x7D,0x44,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0x22,0x8B,0x7D,0x1F,0x11, -0x38,0xDC,0x47,0x84,0x2A,0xEE,0x23,0x52,0x8E,0xEC,0x23,0xB2,0xF8,0xA6,0x55,0x76, -0xFF,0xAD,0xE1,0x70,0x1F,0x91,0x72,0x6E,0x91,0xE3,0xFB,0x88,0xC0,0xE1,0x3E,0x22, -0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xEE,0x05,0xE0,0x70,0x1F,0x11,0xAA, -0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0xE2,0x53,0x6E,0xCF,0xA9,0x69,0xCF,0xA9,0x6C, -0xCF,0x29,0xB6,0x67,0xCC,0x9C,0xB1,0xE1,0x8C,0x25,0x67,0x8C,0x9C,0x6D,0xE6,0x6C, -0x1B,0xCE,0xB6,0xE4,0x6C,0x23,0xE7,0x92,0x39,0x97,0xA6,0xBF,0x2E,0x25,0x07,0xE9, -0xCA,0x71,0x2F,0x00,0x87,0xFB,0x88,0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16, -0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,0x0E,0xF7,0x11,0xA1, -0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0xF6,0x7D,0x44,0xE0,0x70,0x1F,0x11,0xAA, -0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0x62,0xF7,0x02,0x70,0xB8,0x8F,0x08,0x55,0xDC, -0x47,0xA4,0x1C,0xD9,0x47,0x64,0xF1,0x7E,0x4A,0xED,0x59,0x03,0xE1,0xDC,0x93,0xDC, -0x1E,0xA4,0x2B,0xC7,0xF7,0x11,0x81,0xC3,0x7D,0x44,0xA8,0xE2,0x3E,0x22,0xE5,0xC8, -0x3E,0xA2,0xA5,0xDF,0x1F,0xBA,0xD4,0xEF,0xBE,0x6F,0xC7,0xFB,0xFD,0xA1,0xEC,0x77, -0xEE,0xDB,0xB1,0xF8,0x9A,0x39,0xD7,0x86,0x73,0x2D,0x39,0xD7,0xC8,0x99,0x33,0x67, -0x6E,0x38,0x73,0xC9,0x99,0x23,0xE7,0xDD,0x7C,0x7C,0xDE,0x6D,0x8E,0x0F,0x92,0xC8, -0x79,0x37,0x1E,0x9F,0x73,0xE6,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0xC7,0xF7,0x11, -0x81,0xC3,0x7D,0x44,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0x22,0xFB,0xF5,0x59,0xAB, -0xEC,0x7E,0xEE,0x23,0x42,0x15,0xF7,0x11,0x29,0x47,0xF6,0x11,0x59,0x7C,0xC8,0xE7, -0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x6E,0xCF,0x63,0xD3, -0x9E,0xC7,0xB2,0x3D,0x8F,0xB1,0x3D,0xFB,0xCC,0xD9,0x37,0x9C,0x7D,0xC9,0xD9,0x47, -0x8E,0xEF,0x23,0x02,0x67,0xD7,0x70,0xB8,0x8F,0x48,0x39,0xBB,0xC8,0x99,0x32,0x67, -0x6A,0xFA,0x7D,0x2A,0x39,0x53,0xEC,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C, -0x23,0x67,0x99,0xDE,0x2B,0x67,0x9E,0x32,0x07,0x49,0x1A,0x17,0x53,0xE0,0x0C,0x99, -0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0x5E,0x00,0x0E,0xF7,0x11,0xA1,0x8A,0xFB, -0x88,0x94,0x23,0xFB,0x88,0x2C,0x76,0x2F,0x00,0x87,0xFB,0x88,0x50,0xC5,0x7D,0x44, -0xCA,0x91,0x7D,0x44,0x16,0xBB,0x17,0x80,0xC3,0x7D,0x44,0xA8,0xE2,0x3E,0x22,0xE5, -0xC8,0x3E,0xA2,0x65,0x5C,0xE4,0xFE,0xE2,0x3E,0x22,0x1F,0x17,0x65,0x7F,0xC9,0x3E, -0x22,0x8B,0xDD,0x0B,0xC0,0xE1,0x3E,0x22,0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0xD1, -0xF2,0x79,0x9A,0xDB,0xD3,0x37,0x9C,0xBE,0x6C,0x4F,0x1F,0x39,0xBE,0x8F,0xC8,0xE7, -0x2D,0x53,0xE6,0x70,0x1F,0x51,0x98,0xB7,0x4C,0x81,0xF3,0xA2,0x55,0x76,0x17,0xF7, -0x11,0xA1,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0x76,0x2F,0x00,0x87,0xFB,0x88, -0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0xCB,0xF1,0xD9,0xA4,0xF6,0x70,0x1F,0x91, -0x1F,0x9F,0x4D,0xD5,0x1E,0xD9,0x47,0x64,0xB1,0xEF,0x23,0x02,0xE7,0xED,0x73,0xE6, -0x70,0x1F,0x91,0x72,0x64,0x1F,0x91,0xFD,0xF6,0x1E,0xFA,0xCB,0x6E,0x4C,0x0C,0xD6, -0x84,0x5E,0x60,0x1C,0x24,0x7C,0x9C,0x73,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E, -0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1, -0x02,0x8B,0x6F,0x5A,0x35,0x75,0xEA,0x05,0xA8,0xA2,0x17,0x28,0xE7,0x16,0x39,0xEE, -0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0, -0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45, -0x2F,0x50,0x8E,0x78,0x81,0xC5,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C, -0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0x59,0x03,0xE1,0x5C,0x4A, -0x0E,0xD2,0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C, -0xE6,0x9C,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0x7E,0x9D,0x52,0x70,0xE8,0x05, -0xA8,0xE2,0x75,0x4A,0x95,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1, -0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23, -0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0xF4,0x3B,0xE6,0xE1, -0xDE,0xEF,0x3E,0x0F,0xF7,0x7E,0xF7,0x79,0x78,0xE8,0x77,0xCE,0xC3,0x2D,0xBE,0x66, -0xCE,0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6, -0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0x67, -0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E, -0xA0,0x1C,0xF1,0x02,0x8B,0x9F,0x73,0x7B,0xE8,0x05,0xA8,0x82,0x01,0x44,0x8E,0x78, -0x81,0xFD,0x7A,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3, -0x63,0x6E,0x0F,0xBD,0x00,0x55,0x30,0x80,0xC8,0x11,0x2F,0x58,0xC6,0x45,0xE6,0xEC, -0x1B,0xCE,0xBE,0xE4,0xEC,0x23,0x67,0x97,0x39,0xBB,0x86,0xB3,0x2B,0x39,0xBB,0xC8, -0x99,0x32,0x67,0xEA,0x34,0x89,0x5E,0xA0,0xC9,0x9A,0xA2,0xDF,0x8F,0x99,0x73,0x6C, -0x38,0xC7,0x92,0x73,0x8C,0x1C,0xF7,0x02,0x1F,0x17,0x53,0xE6,0xD0,0x0B,0xC2,0xB8, -0x98,0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x1C,0xF7,0x02,0x70,0xE8, -0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2, -0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47, -0xBC,0x60,0x19,0x17,0xB9,0xBF,0xE8,0x05,0x3E,0x2E,0xCA,0xFE,0x12,0x2F,0xB0,0xF8, -0x29,0x73,0xE8,0x05,0xA8,0x7A,0x2A,0x39,0xE2,0x05,0xCB,0xE7,0x69,0xE6,0xF4,0x0D, -0xA7,0x2F,0x39,0x7D,0xE4,0xB8,0x17,0xF8,0xBC,0x65,0xCA,0x1C,0x7A,0x41,0x98,0xB7, -0x4C,0x81,0xE3,0xD7,0x29,0x05,0x87,0x5E,0x80,0x2A,0x5E,0xA7,0x54,0x39,0xE2,0x05, -0x16,0xFB,0x75,0x4A,0xC1,0xA1,0x17,0xA0,0x8A,0xD7,0x29,0x55,0x8E,0x78,0xC1,0x72, -0x7C,0x70,0x9D,0x52,0x3F,0x3E,0xEE,0x05,0x7E,0x7C,0xFC,0x3A,0xA5,0xE1,0xF8,0x6C, -0x42,0x7B,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x7B,0x6B, -0x74,0x2F,0xB0,0x1B,0x76,0x3F,0xE6,0xFB,0xF7,0x24,0x7A,0x01,0x12,0x79,0x5C,0xB7, -0x72,0xBE,0x30,0x25,0x0E,0xE6,0xFB,0xE4,0x20,0x89,0x9C,0x35,0x05,0xE7,0x4D,0x97, -0x38,0x98,0xEF,0x93,0x43,0x2F,0x50,0xCE,0x9B,0xD8,0x9E,0x5B,0xE6,0xDC,0x1A,0xCE, -0xAD,0xE4,0xDC,0x22,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x9C,0x75,0xD2, -0x4F,0x0E,0xE6,0xFB,0xE4,0x20,0x89,0x9C,0x35,0x05,0xE7,0xD4,0x25,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0x3C,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46, -0xCE,0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xC9,0x9C,0x4B,0xC3,0xB9, -0x94,0x9C,0x4B,0xE4,0xF8,0x75,0x4A,0xC1,0xC1,0x7C,0x9F,0x1C,0x5E,0xA7,0x54,0x39, -0x6B,0x0A,0x4E,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0xEE,0x05,0xE0,0x60, -0xBE,0x4F,0x0E,0xBD,0x40,0x39,0x6B,0x0A,0xCE,0x07,0x5D,0xE2,0x60,0xBE,0x4F,0x0E, -0xBD,0x40,0x39,0x1F,0xC4,0xE3,0xB3,0x4E,0xFA,0xC9,0xC1,0x7C,0x9F,0x1C,0x24,0x91, -0xF3,0xCD,0xEF,0x05,0x8E,0x7B,0x01,0x38,0x98,0xEF,0x93,0x43,0x2F,0x50,0xCE,0x9A, -0x82,0xF3,0x7E,0x97,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0xF4,0xFB, -0x43,0xEE,0xF7,0x87,0xA6,0xDF,0x1F,0xCA,0x7E,0x7F,0x08,0x9C,0x6B,0xE6,0x5C,0x1B, -0xCE,0xB5,0xE4,0x5C,0x23,0x67,0xCE,0x9C,0xB9,0xE1,0xCC,0x25,0x67,0x8E,0x9C,0x77, -0xBB,0xC4,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xCF,0x99,0x73,0x6E, -0x38,0xE7,0x92,0x73,0x8E,0x1C,0xF7,0x02,0x70,0x30,0xDF,0x27,0x87,0x5E,0xA0,0x9C, -0x35,0x05,0xE7,0xB9,0x4B,0x1C,0xCC,0xF7,0xC9,0xA1,0x17,0x28,0xE7,0x39,0xB6,0xE7, -0x90,0xCF,0xE7,0x43,0x73,0x3E,0x23,0x89,0x9C,0x43,0x3C,0x9F,0x1F,0xBB,0xC4,0xC1, -0x7C,0x9F,0x1C,0x7A,0x81,0x72,0x1E,0x63,0x7B,0xF6,0x99,0xB3,0x6F,0x38,0xFB,0x92, -0xB3,0x8F,0x9C,0x5D,0xE6,0xEC,0x1A,0xCE,0xAE,0xE4,0xEC,0x22,0x67,0xCA,0x9C,0xA9, -0xE1,0x4C,0x25,0x67,0x8A,0x9C,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C,0x23,0xC7, -0xBD,0xC0,0xC7,0xC5,0x94,0x39,0xF4,0x82,0x30,0x2E,0xA6,0xC0,0x19,0x32,0x67,0x68, -0x38,0x43,0xC9,0x19,0x22,0x67,0x9D,0xF4,0x93,0x83,0xF9,0x3E,0x39,0x48,0x22,0x67, -0x4D,0xC1,0x59,0x27,0xFD,0xE4,0x60,0xBE,0x4F,0x0E,0x92,0xC8,0x59,0x53,0x70,0xD6, -0x49,0x3F,0x39,0x98,0xEF,0x93,0x83,0x24,0x72,0xD6,0xD4,0xC7,0x45,0xEE,0x2F,0x7A, -0x81,0x8F,0x8B,0xB2,0xBF,0xC4,0x0B,0x2C,0x7E,0xCA,0x9C,0xA7,0x86,0xF3,0x54,0x72, -0x9E,0x22,0xA7,0xCF,0x9C,0xBE,0xE1,0xF4,0x25,0xA7,0x8F,0x1C,0xF7,0x02,0x70,0x30, -0xDF,0x97,0x79,0x4B,0xD9,0xEF,0x63,0xEC,0xF7,0x97,0x2E,0x71,0x30,0xDF,0x27,0x87, -0x5E,0xA0,0x9C,0x97,0xD8,0x1E,0xF7,0x02,0x70,0x30,0xDF,0x27,0x87,0x5E,0xA0,0x9C, -0x35,0xF5,0xE3,0xB3,0x49,0xED,0xC1,0x7C,0x5F,0x8E,0xCF,0xA6,0x6A,0xCF,0x9A,0x82, -0xE3,0x5E,0x00,0xCE,0xDB,0xE7,0xCC,0xA1,0x17,0x28,0xE7,0xED,0xB3,0x73,0xEC,0x2D, -0xCD,0xDF,0x45,0xED,0xC6,0xC4,0x60,0x4D,0xAC,0x0A,0x6F,0xA0,0x9F,0xF6,0x84,0x8F, -0x5B,0xFC,0xC2,0x62,0x5F,0x2F,0x00,0x87,0xEB,0x05,0xA8,0xE2,0x7A,0x81,0x72,0x64, -0xBD,0xC0,0x62,0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,0xC0, -0xE2,0x9B,0x56,0x4D,0x9D,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0xB9,0x45,0x8E,0x7B, -0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0xAF,0x17,0x80,0xC3, -0xF5,0x02,0x54,0x71,0xBD,0x40,0x39,0xB2,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02, -0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x98,0x39,0x63,0xC3,0x19,0x4B,0xCE,0x18, -0x39,0xDB,0xCC,0xD9,0x36,0x9C,0x6D,0xC9,0xD9,0x46,0xCE,0x25,0x73,0xD6,0x40,0x38, -0x97,0x92,0x83,0x74,0xE5,0xF8,0x7A,0x01,0x38,0x5C,0x2F,0x40,0x15,0xD7,0x0B,0x94, -0x23,0xEB,0x05,0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00, -0x0E,0xD7,0x0B,0x50,0x45,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7, -0x0B,0x50,0x45,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0xEB,0x05,0xE0,0x70,0xBD,0x00, -0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0x45, -0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5, -0x88,0x17,0x2C,0xFD,0x8E,0xBF,0xCF,0x7B,0xBF,0xFB,0xDF,0xE7,0xBD,0xDF,0xFD,0xEF, -0xF3,0xA1,0xDF,0xF9,0xF7,0x79,0x8B,0xAF,0x99,0x73,0x6D,0x38,0xD7,0x92,0x73,0x8D, -0x9C,0x39,0x73,0xE6,0x86,0x33,0x97,0x9C,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0, -0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xCF,0x99,0x73,0x6E,0x38,0xE7,0x92,0x73,0x8E, -0x1C,0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,0xC0,0x62,0xFF, -0xB4,0x02,0x87,0xEB,0x05,0xA8,0xA2,0x17,0x28,0x47,0xD6,0x0B,0x2C,0x3E,0xE4,0xF3, -0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0xB1,0x4B,0x9C,0xC7,0xA6, -0x3D,0x48,0x22,0xE7,0x31,0xB6,0x67,0x9F,0x39,0xFB,0x86,0xB3,0x2F,0x39,0xFB,0xC8, -0x71,0x2F,0x00,0x67,0xD7,0x70,0xE8,0x05,0xCA,0xD9,0x45,0xCE,0x94,0x39,0x53,0xA7, -0x89,0x8F,0x82,0x86,0xB3,0xA6,0xE8,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4,0x1C, -0x23,0xC7,0xBD,0xC0,0xC7,0xC5,0x94,0x39,0xF4,0x82,0x30,0x2E,0xA6,0xC0,0x19,0x32, -0x67,0x68,0x38,0x43,0xC9,0x19,0x22,0xC7,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xB8, -0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xB8,0x5E, -0xA0,0x1C,0x59,0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xB8,0x5E,0xA0, -0x1C,0x59,0x2F,0x58,0xC6,0x45,0xEE,0x2F,0x7A,0x81,0x8F,0x8B,0xB2,0xBF,0xC4,0x0B, -0x2C,0xF6,0x7D,0x44,0xE0,0x70,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0x59,0x2F,0x58, -0x3E,0x4F,0x73,0x7B,0xFA,0x86,0x43,0x2F,0x08,0x9F,0xA7,0x91,0xE3,0x5E,0x00,0x0E, -0xD7,0x0B,0x50,0x45,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B, -0x50,0x45,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50,0x45, -0x2F,0x50,0x8E,0xAC,0x17,0x2C,0xC7,0x07,0x5E,0xE0,0xC7,0xC7,0xD7,0x0B,0xFC,0xF8, -0xB8,0x17,0x84,0xE3,0xB3,0x09,0xED,0x71,0x2F,0x00,0x87,0xEB,0x05,0xA8,0xA2,0x17, -0x28,0x47,0xD6,0x0B,0xEC,0xAD,0xC8,0xBD,0x60,0xDF,0x65,0x2F,0xD8,0x77,0xD9,0x0B, -0xF6,0xC2,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11, -0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8, -0xA6,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x6E,0x91,0xE3,0x5E,0x00,0x0E, -0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55, -0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5, -0x88,0x17,0x58,0x3C,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE,0x36,0x73,0xB6, -0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xC9,0x9C,0x35,0x10,0xCE,0xA5,0xE4,0x20,0x5D, -0x39,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0x5C,0x2F,0x50,0x8E,0x78,0x81,0xC5,0x7D, -0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD, -0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2, -0x05,0x16,0xFB,0x7A,0x01,0x38,0xF4,0x02,0x54,0x71,0xBD,0x40,0x39,0xE2,0x05,0x16, -0xEF,0xA7,0xC4,0x59,0x03,0xE1,0xDC,0x93,0xCC,0x41,0xBA,0x72,0xDC,0x0B,0xC0,0xA1, -0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xA5,0xDF,0x1F,0x12,0x87,0x5E,0xE0,0xFD, -0xFE,0x50,0x71,0xC4,0x0B,0x2C,0xBE,0x66,0xCE,0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72, -0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A, -0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72, -0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0x39,0x34,0xE7, -0x33,0xBD,0x40,0x39,0x87,0x78,0x3E,0x3F,0x76,0x89,0x43,0x2F,0x40,0x15,0xBD,0x40, -0x39,0xE2,0x05,0xCB,0xB8,0xC8,0x9C,0x7D,0xC3,0xD9,0x97,0x9C,0x7D,0xE4,0xB8,0x17, -0x80,0xB3,0x6B,0x38,0xF4,0x02,0xE5,0xEC,0x22,0x67,0xCA,0x9C,0xA9,0xD3,0x24,0x7A, -0x81,0x26,0x6B,0x8A,0x7E,0x3F,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xDC, -0x0B,0x7C,0x5C,0x4C,0x99,0x43,0x2F,0x08,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86, -0x33,0x94,0x9C,0x21,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1, -0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,0x1C,0xF1,0x02,0x8B, -0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,0x1C,0xF1,0x82,0x65,0x5C,0xE4, -0xFE,0xA2,0x17,0xF8,0xB8,0x28,0xFB,0x4B,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05, -0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60,0xF9,0x3C,0xCD,0xED,0xE9,0x1B,0x0E,0xBD,0x20, -0x7C,0x9E,0x46,0x8E,0x7B,0x81,0xCF,0x5B,0xA6,0xCC,0xA1,0x17,0x84,0x79,0xCB,0x14, -0x38,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05, -0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0xC1,0x72,0x7C,0xE0,0x05,0x7E,0x7C, -0xDC,0x0B,0xFC,0xF8,0xB8,0x17,0x84,0xE3,0xB3,0x09,0xED,0x71,0x2F,0x00,0x87,0x5E, -0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0xEC,0x2D,0xC4,0xBD,0x60,0xD7,0x65,0x2F,0xD8, -0x75,0xD9,0x0B,0x76,0xC2,0x11,0x2F,0xB0,0xD8,0xF7,0x11,0x81,0x43,0x2F,0x40,0x15, -0xF7,0x11,0x29,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28, -0x47,0xBC,0xC0,0xE2,0x5B,0xE6,0xDC,0x1A,0xCE,0xAD,0xE4,0xDC,0x22,0x67,0xC8,0x1C, -0x7A,0x01,0xAA,0x86,0x92,0x23,0x5E,0x60,0xB1,0xEF,0x23,0x02,0x87,0x5E,0x80,0x2A, -0xEE,0x23,0x52,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50, -0x8E,0x78,0x81,0xC5,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67, -0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0x59,0x03,0xE1,0x5C,0x4A,0x0E,0xD2, -0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67, -0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B, -0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E, -0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B, -0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4, -0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0xF4,0xFB,0x43,0xE2,0xD0,0x0B,0xBC,0xDF, -0x1F,0x2A,0x8E,0x78,0x81,0xC5,0xD7,0xCC,0xB9,0x36,0x9C,0x6B,0xC9,0xB9,0x46,0xCE, -0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45, -0x2F,0x50,0x8E,0x78,0x81,0xC5,0xE7,0xCC,0x39,0x37,0x9C,0x73,0xC9,0x39,0x47,0x8E, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38, -0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x21,0x9F,0xCF,0x98,0xEF,0x93, -0x73,0x28,0xCF,0xE7,0x03,0x3E,0xC0,0xEE,0x9C,0xC7,0xDC,0x1E,0x7A,0x01,0xAA,0x60, -0x00,0x91,0x23,0x5E,0xB0,0x8C,0x8B,0xCC,0xD9,0x37,0x9C,0x7D,0xC9,0xD9,0x47,0xCE, -0x2E,0x73,0x76,0x0D,0x67,0x57,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,0xE5,0xE3,0x33, -0x95,0x9C,0x35,0xC5,0xF1,0x39,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xDC, -0x0B,0x7C,0x5C,0x4C,0x99,0x43,0x2F,0x08,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86, -0x33,0x94,0x9C,0x21,0x72,0x7C,0x1F,0x11,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72, -0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C, -0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x71,0x91,0xFB, -0x8B,0x5E,0xE0,0xE3,0xA2,0xEC,0x2F,0xF1,0x02,0x8B,0x9F,0x32,0xE7,0xA9,0xE1,0x3C, -0x95,0x9C,0xA7,0xC8,0xE9,0x33,0x87,0x5E,0xE0,0x9F,0xA7,0x25,0x47,0xBC,0x60,0x99, -0xB7,0x4C,0x89,0x43,0x2F,0xF0,0x79,0xCB,0x54,0x71,0xC4,0x0B,0x2C,0x76,0x2F,0x00, -0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80, -0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0xE3,0x03,0x2F,0xF0,0xE3,0xE3,0x5E,0xE0,0xC7, -0xC7,0xBD,0x20,0x1C,0x9F,0x4D,0x68,0x8F,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B, -0x94,0x23,0x5E,0x60,0x37,0x7D,0x56,0x30,0x75,0xD9,0x0B,0xA6,0x4E,0xBC,0x60,0xB9, -0xAE,0xD1,0x24,0x1C,0xA4,0x2B,0xC7,0xD7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xD7,0x29, -0x55,0x8E,0x5C,0xA7,0xD4,0x7E,0x7B,0xD3,0x25,0x0E,0xBD,0x00,0x55,0xBC,0x4E,0xA9, -0x72,0xE4,0x3A,0xA5,0x76,0xF3,0x96,0x39,0xB7,0x86,0xC3,0xEB,0x94,0x2A,0xE7,0x16, -0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xEB,0x94,0x2A,0x47,0xAE,0x53,0x6A,0x37, -0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0x78,0x9D,0x52,0xE5,0xC8,0x75,0x4A,0xED,0xE6, -0x49,0x9F,0x9D,0x81,0xB6,0x87,0xD7,0x29,0x55,0x8E,0x5C,0xA7,0xD4,0x6E,0x8E,0x99, -0x33,0x36,0x9C,0xB1,0xE4,0x8C,0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D, -0xE4,0x5C,0xF4,0x68,0x78,0x10,0x8E,0xCF,0xA5,0xE4,0x20,0x5D,0x39,0xBE,0x8F,0x08, -0x1C,0x7A,0x01,0xAA,0x78,0x9D,0x52,0xE5,0xC8,0x75,0x4A,0xED,0x66,0x9F,0x39,0x7D, -0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0x7E,0x3D,0x22,0x70,0xE8,0x05,0xA8,0xE2,0x75,0x4A, -0x95,0x23,0xD7,0x29,0xB5,0x9B,0x1F,0x74,0x89,0x43,0x2F,0x40,0x15,0xAF,0x53,0xAA, -0x1C,0xB9,0x4E,0xA9,0xDD,0xF4,0x7D,0x44,0xE0,0xD0,0x0B,0x50,0xC5,0xEB,0x94,0x2A, -0x47,0xAE,0x53,0x6A,0x37,0x97,0xE9,0xBD,0x72,0xE8,0x05,0xA8,0xBA,0x3F,0x24,0xB7, -0x07,0xE9,0xCA,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x5E,0xA7,0x54,0x39,0x72,0x9D, -0xD2,0xE5,0x99,0xB1,0x6F,0x07,0x1C,0x7A,0x01,0xAA,0x78,0x9D,0x52,0xE5,0xC8,0x75, -0x4A,0xED,0xE6,0x35,0x73,0xAE,0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC, -0x70,0xE6,0x92,0x33,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xF1,0x3A,0xA5,0xCA, -0x91,0xEB,0x94,0xDA,0xCD,0x73,0xE6,0x9C,0x1B,0xCE,0xB9,0xE4,0x9C,0x23,0x67,0x99, -0xDE,0xEB,0xEB,0xA2,0x17,0xA0,0xEA,0xFE,0x90,0xCC,0x41,0xBA,0x72,0x9E,0xBB,0xC4, -0xA1,0x17,0xA0,0xEA,0xB9,0x6C,0x0F,0xD2,0x95,0x73,0xC8,0xE7,0xF3,0xA1,0x39,0x9F, -0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x97,0x38,0xF4,0x02,0x54,0x3D,0x96,0xED, -0x41,0x8A,0x71,0x91,0x39,0xFB,0x86,0xB3,0x2F,0x39,0xFB,0xC8,0xD9,0x65,0xCE,0xAE, -0xE1,0xEC,0x4A,0xCE,0x2E,0x72,0xA6,0x7B,0x19,0x39,0xF7,0x40,0xFB,0x7D,0x2A,0x39, -0x6B,0x8A,0x7E,0x3F,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xE6,0x29,0x71, -0xE6,0x29,0x73,0x96,0xA4,0xE1,0xAC,0x29,0x38,0x43,0xE6,0x0C,0x0D,0x67,0x28,0x39, -0x43,0xE4,0xF8,0x7A,0x01,0x38,0xF4,0x02,0x54,0xF1,0x3A,0xA5,0xCA,0x91,0xEB,0x94, -0xDA,0x4D,0xDF,0x47,0x04,0x0E,0xBD,0x00,0x55,0xBC,0x4E,0xA9,0x72,0xE4,0x3A,0xA5, -0x76,0xD3,0xF7,0x11,0x81,0x43,0x2F,0x40,0x15,0xAF,0x53,0xAA,0x1C,0xB9,0x4E,0xA9, -0xDD,0x74,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x5E,0xA7,0x54,0x39,0x72,0x9D,0x52,0xBB, -0xE9,0xEB,0x05,0xE0,0x70,0xBD,0x00,0x55,0x4F,0x25,0x47,0xAE,0x53,0xBA,0x1E,0xF1, -0xF4,0x79,0xDA,0x70,0xFA,0x92,0xD3,0x47,0x8E,0x5F,0xA7,0x14,0x1C,0x7A,0x01,0xAA, -0x78,0x9D,0x52,0xE5,0xC8,0x75,0x4A,0xED,0xB7,0x97,0x2E,0x71,0xE8,0x05,0xA8,0xE2, -0x75,0x4A,0x95,0x23,0xD7,0x29,0xB5,0x9B,0x7E,0x3D,0x22,0x70,0xE8,0x05,0xA8,0xE2, -0x75,0x4A,0x95,0x23,0xD7,0x29,0x5D,0x5A,0xB6,0xE9,0xD2,0xF1,0xD9,0xE4,0xF6,0xF0, -0x3A,0xA5,0xE1,0xF8,0x6C,0x42,0x7B,0xFC,0x3A,0xA5,0xE0,0xBC,0x7D,0xCE,0x1C,0x5E, -0xA7,0x54,0x39,0x72,0x9D,0x52,0x1B,0xB2,0xFE,0x2E,0x7A,0x5C,0x39,0xF4,0x82,0x63, -0x27,0x5E,0xD0,0xD9,0x79,0x78,0x14,0xCE,0x3D,0x75,0x8E,0x7B,0x01,0x38,0xF4,0x02, -0x54,0x71,0x1F,0x91,0x72,0x64,0xBD,0xC0,0x62,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A, -0xAE,0x17,0x28,0x47,0xD6,0x0B,0x2C,0xBE,0x69,0xD5,0xD4,0xA9,0x17,0xA0,0x8A,0xFB, -0x88,0x94,0x73,0x8B,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xE2,0x7A,0x81,0x72,0x64, -0xBD,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x7A,0x81, -0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8,0x7A,0x81,0xC5,0x63, -0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67, -0x1B,0x39,0x97,0xCC,0x59,0x03,0xE1,0x5C,0x4A,0x0E,0xD2,0x95,0xE3,0x5E,0x00,0x0E, -0xBD,0x00,0x55,0xFC,0x7E,0x81,0x72,0x64,0xBD,0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3, -0x97,0x9C,0x3E,0x72,0x7C,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E,0xA0,0x1C,0x59, -0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5,0x02, -0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xDF,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC, -0xEB,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8,0x7A,0x81,0xC5,0xEE,0x05, -0xE0,0xD0,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xC8,0x7A,0xC1,0xD2,0xEF,0x98,0x87,0x7B, -0xBF,0xFB,0x3C,0xDC,0xFB,0xDD,0xF7,0xF3,0x87,0x7E,0xE7,0xDF,0xE7,0x2D,0xBE,0x66, -0xCE,0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6, -0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xD6,0x0B,0x2C,0x3E, -0x67,0xCE,0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0x7C,0xBD,0x00,0x1C,0x7A,0x01,0xAA, -0xB8,0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xF8,0x59,0xAB,0xA6,0x4E,0xBD,0x00,0x55,0x48, -0x22,0x47,0xD6,0x0B,0x2C,0x3E,0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E, -0xC4,0xF3,0xF9,0xB1,0x4B,0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x5E,0xB0, -0x8C,0x8B,0xCC,0xD9,0x37,0x9C,0x7D,0xC9,0xD9,0x47,0x8E,0xAF,0x17,0x80,0xB3,0x6B, -0x38,0x5C,0x2F,0x50,0xCE,0x2E,0x72,0xA6,0xCC,0x99,0x3A,0x4D,0x7C,0x14,0x34,0x9C, -0x35,0x45,0xBF,0x1F,0x33,0xE7,0xD8,0x70,0x8E,0x25,0xE7,0x18,0x39,0xF3,0x94,0x38, -0xF3,0x94,0x39,0x48,0xD2,0xB8,0x98,0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67, -0x88,0x1C,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x7A,0x81,0xC5, -0xEE,0x05,0xE0,0xD0,0x0B,0x50,0xC5,0xEF,0x17,0x28,0x47,0xD6,0x0B,0x2C,0x76,0x2F, -0x00,0x87,0x5E,0x80,0x2A,0x7E,0xBF,0x40,0x39,0xB2,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F, -0xF4,0x02,0x1F,0x17,0x65,0x7F,0xC9,0x7A,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50, -0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0xCB,0xE7,0x69,0x6E,0x4F,0xDF,0x70,0xFA,0xB2, -0x3D,0x7D,0xE4,0xF8,0x7A,0x81,0xCF,0x5B,0xA6,0xCC,0xE1,0x7A,0x41,0x98,0xB7,0x4C, -0x81,0xF3,0xA2,0x55,0x53,0xA7,0x5E,0x80,0x2A,0x5E,0xA7,0x54,0x39,0xB2,0x5E,0x60, -0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xF1,0x3A,0xA5,0xCA,0x91,0xF5,0x82,0xE5,0xF8, -0x6C,0x52,0x7B,0xE8,0x05,0x7E,0x7C,0x36,0x55,0x7B,0x64,0xBD,0xC0,0x62,0x5F,0x2F, -0x00,0xE7,0xED,0x73,0xE6,0x70,0xBD,0x40,0x39,0xB2,0x5E,0x60,0x43,0xED,0x3D,0xF4, -0x97,0xDD,0xB0,0xFB,0xE9,0x05,0x96,0xD0,0x0B,0x8C,0x83,0x84,0x8F,0x73,0x8E,0xEF, -0x23,0x02,0x87,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0, -0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xB7,0xCC,0xB9,0x35,0x9C,0x5B, -0xC9,0xB9,0x45,0xCE,0x90,0x39,0xF4,0x02,0x54,0x0D,0x25,0x47,0xBC,0xC0,0x62,0xDF, -0x47,0x04,0x0E,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xC7,0xCC,0x19,0x1B,0xCE,0x58, -0x72,0xC6,0xC8,0xD9,0x66,0xCE,0xB6,0xE1,0x6C,0x4B,0xCE,0x36,0x72,0x2E,0x99,0xB3, -0x06,0xC2,0xB9,0x94,0x1C,0xA4,0x2B,0xC7,0xF7,0x11,0x81,0x43,0x2F,0x40,0x15,0xF7, -0x11,0x29,0x47,0xBC,0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC, -0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1, -0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x7D,0x1F,0x11,0x38,0xF4,0x02,0x54, -0x71,0x1F,0x91,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81, -0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B, -0x96,0x7E,0x7F,0x48,0x1C,0x7A,0x81,0xF7,0xFB,0x43,0xC5,0x11,0x2F,0xB0,0xF8,0x9A, -0x39,0xD7,0x86,0x73,0x2D,0x39,0xD7,0xC8,0x99,0x33,0x67,0x6E,0x38,0x73,0xC9,0x99, -0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0x9C, -0x39,0xE7,0x86,0x73,0x2E,0x39,0xE7,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A, -0x81,0x72,0xC4,0x0B,0x2C,0xF6,0x7D,0x44,0xE0,0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA, -0x11,0x2F,0xB0,0xF8,0x90,0xCF,0xE7,0x43,0x73,0x3E,0x1F,0xCA,0xF3,0xF9,0x10,0xCF, -0x67,0xDF,0x47,0x04,0x0E,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0xF1,0x82,0x65,0x5C, -0x64,0xCE,0xBE,0xE1,0xEC,0x4B,0xCE,0x3E,0x72,0x76,0x99,0xB3,0x6B,0x38,0xBB,0x92, -0xB3,0x8B,0x9C,0x29,0x73,0xA6,0x4E,0x93,0xE8,0x05,0x9A,0xAC,0x29,0xFA,0xFD,0x98, -0x39,0xC7,0x86,0x73,0x2C,0x39,0xC7,0xC8,0x59,0xC6,0x6A,0x18,0x17,0x53,0xE6,0x20, -0x49,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94,0x9C,0x21,0x72,0x7C,0x1F, -0x11,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,0xC4,0x0B,0x2C,0xF6,0x7D,0x44,0xE0, -0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x11,0x2F,0xB0,0xD8,0xF7,0x11,0x81,0x43,0x2F, -0x40,0x15,0xF7,0x11,0x29,0x47,0xBC,0x60,0x19,0x17,0xB9,0xBF,0xE8,0x05,0x3E,0x2E, -0xCA,0xFE,0x12,0x2F,0xB0,0xF8,0x29,0x73,0xE8,0x05,0xA8,0x7A,0x2A,0x39,0xE2,0x05, -0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0xFB,0x88,0xC0,0xA1,0x17,0xA0,0x8A,0xFB, -0x88,0x94,0x23,0x5E,0x60,0xB1,0xEF,0x23,0x02,0x87,0x5E,0x80,0x2A,0xEE,0x23,0x52, -0x8E,0x78,0xC1,0x72,0x7C,0xB0,0x8F,0xC8,0x8F,0x8F,0x7B,0x81,0x1F,0x1F,0xDF,0x47, -0x14,0x8E,0xCF,0x26,0xB4,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11, -0x2F,0xB0,0x21,0xE2,0xEF,0xA2,0xC3,0x94,0xBD,0x60,0x98,0xC4,0x0B,0x96,0x75,0x87, -0x41,0x38,0x48,0x57,0x8E,0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xF7,0x11,0x29,0x47, -0xF6,0x11,0x59,0xFC,0xA6,0x4B,0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F, -0xC8,0xE2,0x5B,0xE6,0xDC,0x1A,0x0E,0xF7,0x11,0x29,0xE7,0x16,0x39,0xEE,0x05,0xE0, -0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0xFB,0x7A,0x01,0x38,0xF4, -0x02,0x54,0x71,0x1F,0x91,0x72,0x64,0x1F,0x91,0xC5,0xA7,0x2E,0x71,0x4E,0xCD,0xEB, -0x3A,0x95,0xED,0x39,0xC5,0xF6,0xB8,0x17,0x80,0x43,0x2F,0x40,0xD5,0x58,0x72,0xC6, -0xC8,0xD9,0xE6,0xF6,0x6C,0x9B,0xF6,0x6C,0x4B,0xCE,0x36,0x72,0x2E,0x99,0x73,0x69, -0x38,0x97,0x92,0x83,0x74,0xE5,0xF8,0x7A,0x01,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91, -0x72,0x64,0x1F,0x91,0xC5,0x7D,0xE6,0xF4,0x0D,0xA7,0x2F,0x39,0x7D,0xE4,0xF8,0x3E, -0x22,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0x22,0x8B,0x3F,0xE8,0x12, -0x87,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xEC,0x23,0xB2,0xD8,0xD7,0x0B,0xC0,0xA1, -0x17,0xA0,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0xF6,0x7D,0x44,0xE0,0xD0,0x0B, -0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0xBF,0x9F,0x5F,0xD7,0xFB,0xCD,0xEB, -0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0xA2,0xA5,0xDF,0x1F,0x12,0x87,0x5E,0xE0,0xFD,0xEE, -0xFB,0x76,0x42,0xBF,0x73,0xDF,0x8E,0xC5,0xD7,0xCC,0xB9,0x36,0x9C,0x6B,0xC9,0xB9, -0x46,0xCE,0x9C,0x39,0x73,0xC3,0x99,0x4B,0xCE,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B, -0x50,0xC5,0x7D,0x44,0xCA,0x91,0x7D,0x44,0x16,0x9F,0x33,0xE7,0xDC,0x70,0xCE,0x25, -0xE7,0x1C,0x39,0xBE,0x8F,0x08,0x1C,0x7A,0x01,0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F, -0xC8,0xE2,0xE7,0x2E,0x71,0xE8,0x05,0xA8,0x7A,0x2E,0xDB,0x23,0xFB,0x88,0x2C,0x3E, -0xE4,0xF3,0xF9,0xD0,0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0x31,0xB7,0xE7, -0xB1,0x69,0xCF,0x63,0xD9,0x9E,0xC7,0xD8,0x9E,0x7D,0xE6,0xEC,0x1B,0xCE,0xBE,0xE4, -0xEC,0x23,0x67,0x97,0x39,0xBB,0x86,0xB3,0x2B,0x39,0xBB,0xC8,0x99,0x72,0xBF,0x4F, -0x4D,0xBF,0x4F,0x25,0x67,0x8A,0xFD,0x7E,0xCC,0xED,0x39,0x36,0xED,0x39,0x96,0x9C, -0x63,0xE4,0xD8,0x54,0x24,0x8E,0x8B,0x29,0x73,0xEE,0x0F,0xC9,0x9C,0x35,0x05,0x67, -0x98,0xD2,0xEB,0x1A,0xC2,0x2B,0x75,0x2F,0x68,0x3F,0x97,0x23,0xC7,0xD7,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0xFB,0x88,0x94,0x23,0xFB,0x88,0x2C,0xF6,0xF5,0x02,0x70,0xE8, -0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x3E,0x22,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01, -0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,0x68,0x19,0x17,0xB9,0xBF,0x0E,0x4D,0x7F,0x71, -0x1F,0x51,0x18,0x17,0xB1,0xBF,0x9E,0x32,0xE7,0xA9,0xE1,0x3C,0x95,0x1C,0xD9,0x47, -0xB4,0x7C,0x9E,0x66,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0xEF,0x23,0x02,0x87, -0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xEC,0x23,0xB2,0xF8,0xA5,0x4B,0x1C,0x7A,0x01, -0xAA,0xB8,0x8F,0x48,0x39,0xB2,0x8F,0xC8,0x62,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A, -0xEE,0x23,0x52,0x8E,0xEC,0x23,0x5A,0x8E,0xCF,0x26,0xB5,0x87,0x5E,0xE0,0xC7,0x67, -0x53,0xB5,0x47,0xF6,0x11,0x59,0xEC,0xFB,0x88,0xC0,0x79,0xFB,0x9C,0x39,0xDC,0x47, -0xA4,0x1C,0xD9,0x47,0x64,0xA7,0xB6,0xBF,0x8B,0xDA,0x0D,0xBB,0x9F,0x5E,0x60,0x89, -0x7B,0x41,0x67,0xE7,0x21,0x12,0x3E,0xCE,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0xC5, -0x7D,0x44,0xCA,0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xB8,0x5E, -0xA0,0x1C,0x59,0x2F,0xB0,0xF8,0xA6,0x55,0x76,0xFF,0xAD,0xE1,0x70,0x1F,0x91,0x72, -0x6E,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,0x58, -0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xDC,0x47,0xA4,0x1C,0x59,0x2F,0xB0,0xF8,0x94, -0xDB,0x73,0x6A,0xDA,0x73,0x2A,0xDB,0x73,0x8A,0xED,0x19,0x33,0x67,0x6C,0x38,0x63, -0xC9,0x19,0x23,0x67,0x9B,0x39,0xDB,0x86,0xB3,0x2D,0x39,0xDB,0xC8,0xB9,0x64,0xCE, -0xA5,0xE9,0xAF,0x4B,0xC9,0x41,0xBA,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xFB, -0x88,0x94,0x23,0xEB,0x05,0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3, -0x5E,0x00,0x0E,0xBD,0x00,0x55,0xFC,0xEF,0x1D,0x2B,0x47,0xD6,0x0B,0x2C,0xF6,0xF5, -0x02,0x70,0xE8,0x05,0xA8,0xE2,0x7A,0x81,0x72,0x64,0xBD,0xC0,0x62,0xF7,0x02,0x70, -0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5,0xC8,0x7A,0x81,0xC5,0xBE,0x5E,0x00,0x0E,0xBD, -0x00,0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,0x58,0xEC,0xEB,0x05,0xE0,0x70,0xBD,0x00, -0x55,0x5C,0x2F,0x50,0x8E,0xAC,0x17,0x2C,0xFD,0xFE,0xD0,0xA5,0x7E,0xF7,0x79,0xB8, -0xF7,0xBB,0xEF,0xDB,0x09,0xFD,0xCE,0xBF,0xCF,0x5B,0x7C,0xCD,0x9C,0x6B,0xC3,0xB9, -0x96,0x9C,0x6B,0xE4,0xCC,0x99,0x33,0x37,0x9C,0xB9,0xE4,0xCC,0x91,0xE3,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0x48,0x22,0xE7,0xDD,0x78,0x7C,0xCE,0x99,0x73,0x6E,0x38,0xE7, -0x92,0x73,0x8E,0x1C,0x5F,0x2F,0x00,0x87,0x5E,0x80,0x2A,0xAE,0x17,0x28,0x47,0xD6, -0x0B,0x2C,0x7E,0xD6,0x2A,0xBB,0x9F,0x5E,0x80,0x2A,0xEE,0x23,0x52,0x8E,0xAC,0x17, -0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xF3,0x63, -0x6E,0xCF,0x63,0xD3,0x9E,0xC7,0xB2,0x3D,0x8F,0xB1,0x3D,0xFB,0xCC,0xD9,0x37,0x9C, -0x7D,0xC9,0xD9,0x47,0x8E,0xAF,0x17,0x80,0xB3,0x6B,0x38,0x5C,0x2F,0x50,0xCE,0x2E, -0x72,0xA6,0xCC,0x99,0x9A,0x7E,0x9F,0x4A,0xCE,0x14,0xFB,0xFD,0x98,0x39,0xC7,0x86, -0x73,0x2C,0x39,0xC7,0xC8,0x59,0x35,0x40,0xC6,0xC5,0x94,0x39,0x48,0xD2,0xB8,0x98, -0x02,0x67,0xC8,0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x9C,0xE5,0xBD,0x43,0x39,0x6B, -0x20,0x9C,0x7B,0x92,0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0x71,0x1F, -0x91,0x72,0x64,0xBD,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xE2,0x3E,0x22,0xE5, -0xC8,0x7A,0xC1,0x32,0x2E,0x72,0x7F,0x71,0xBD,0xC0,0xC7,0x45,0xD9,0x5F,0xB2,0x5E, -0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,0x64,0xBD,0x60,0xF9, -0x3C,0xCD,0xED,0xE9,0x1B,0x4E,0x5F,0xB6,0xA7,0x8F,0x1C,0x5F,0x2F,0xF0,0x79,0xCB, -0x94,0x39,0x5C,0x2F,0x08,0xF3,0x96,0x29,0x70,0x5E,0xB4,0xCA,0xEE,0xA2,0x17,0xA0, -0x8A,0xFB,0x88,0x94,0x23,0xEB,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xF7, -0x11,0x29,0x47,0xD6,0x0B,0x96,0xE3,0xB3,0x49,0xED,0xA1,0x17,0xF8,0xF1,0xD9,0x54, -0xED,0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x9C,0xB7,0xCF,0x99,0xC3,0xF5,0x02,0xE5, -0xC8,0x7A,0x81,0x9D,0x92,0xFE,0x2E,0x6A,0x37,0xEC,0x7E,0x7A,0x81,0x25,0xD1,0x0B, -0x90,0xF0,0x71,0xCE,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B, -0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0xBE,0x69, -0x95,0xDD,0x7F,0x6B,0x38,0xF4,0x02,0xE5,0xDC,0x22,0xC7,0xBD,0x00,0x1C,0x7A,0x01, -0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05, -0xCA,0x11,0x2F,0xB0,0xF8,0x94,0xDB,0x73,0x6A,0xDA,0x73,0x2A,0xDB,0x73,0x8A,0xED, -0x19,0x33,0x67,0x6C,0x38,0x63,0xC9,0x19,0x23,0x67,0x9B,0x39,0xDB,0x86,0xB3,0x2D, -0x39,0xDB,0xC8,0xB9,0x64,0xCE,0xA5,0xE9,0xAF,0x4B,0xC9,0x41,0xBA,0x72,0xDC,0x0B, -0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xFB,0xCC,0xE9,0x1B,0x4E, -0x5F,0x72,0xFA,0xC8,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B, -0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F, -0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E, -0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A, -0x81,0x72,0xC4,0x0B,0x96,0x7E,0x7F,0xE8,0x52,0xBF,0xFB,0x3C,0xDC,0xFB,0xDD,0xE7, -0xE1,0xA1,0xDF,0x39,0x0F,0xB7,0xF8,0x9A,0x39,0xD7,0x86,0x73,0x2D,0x39,0xD7,0xC8, -0x99,0x33,0x67,0x6E,0x38,0x73,0xC9,0x99,0x23,0xC7,0xBD,0x00,0x1C,0x7A,0x01,0xAA, -0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xF8,0x9C,0x39,0xE7,0x86,0x73,0x2E,0x39,0xE7,0xC8, -0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x7E,0xD6,0x2A, -0xBB,0x9F,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0xE4,0xF3,0xF9,0xD0, -0x9C,0xCF,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xD9,0xF7,0x11,0x81,0xF3,0xD8,0xB4,0x87, -0xFB,0x88,0x94,0xF3,0x18,0xDB,0xB3,0xEF,0x52,0x7B,0xF6,0x0D,0x87,0x5E,0x10,0xC6, -0x45,0xE4,0xB8,0x17,0x80,0xB3,0x6B,0x38,0xF4,0x02,0xE5,0xEC,0x22,0x67,0xCA,0x9C, -0xA9,0xE9,0xF7,0xA9,0xE4,0x4C,0xB1,0xDF,0x8F,0x99,0x73,0x6C,0x38,0xC7,0x92,0x73, -0x8C,0x1C,0xF7,0x02,0x1F,0x17,0x53,0xE6,0xD0,0x0B,0xC2,0xB8,0x98,0x02,0x67,0xC8, -0x9C,0xA1,0xE1,0x0C,0x25,0x67,0x88,0x9C,0x65,0x7A,0xAF,0xFD,0x45,0x2F,0x40,0x15, -0x92,0xC8,0x11,0x2F,0xB0,0x78,0x79,0x0F,0x52,0xCE,0x12,0x04,0x0E,0x92,0xC8,0xB9, -0xA7,0xCE,0xF1,0x7D,0x44,0xE0,0xD0,0x0B,0x50,0xC5,0x7D,0x44,0xCA,0x11,0x2F,0x58, -0xC6,0x45,0xEE,0x2F,0x7A,0x81,0x8F,0x8B,0xB2,0xBF,0xC4,0x0B,0x2C,0x76,0x2F,0x00, -0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0xCF,0xD3,0xDC,0x9E,0xBE,0xE1, -0xD0,0x0B,0xC2,0xE7,0x69,0xE4,0xB8,0x17,0xF8,0xBC,0x65,0xCA,0x1C,0x7A,0x41,0x98, -0xB7,0x4C,0x81,0xF3,0xA2,0x55,0x76,0x17,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17, -0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xC7,0x67, -0x93,0xDA,0x43,0x2F,0xF0,0xE3,0xB3,0xA9,0xDA,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38, -0x6F,0x9F,0x33,0x87,0x5E,0xA0,0x1C,0xF1,0x02,0x3B,0x95,0xFC,0x5D,0xD4,0x6E,0xD8, -0xFD,0xF4,0x02,0x4B,0xA2,0x17,0x20,0xE1,0xE3,0x9C,0xE3,0x5E,0x00,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0x88,0x17,0x58,0x7C,0xD3,0x2A,0xBB,0xFF,0xD6,0x70,0xE8,0x05,0xCA,0xB9,0x45, -0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01, -0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x29,0xB7,0xE7,0xD4,0xB4, -0xE7,0x54,0xB6,0xE7,0x14,0xDB,0x33,0x66,0xCE,0xD8,0x70,0xC6,0x92,0x33,0x46,0xCE, -0x36,0x73,0xB6,0x0D,0x67,0x5B,0x72,0xB6,0x91,0x73,0xC9,0x9C,0x4B,0xD3,0x5F,0x97, -0x92,0x83,0x74,0xE5,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05, -0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17, -0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E, -0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xFD,0xFE,0xD0,0xA5,0x7E, -0xF7,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0x43,0xBF,0x73,0x1E,0x6E,0xF1,0x35,0x73,0xAE, -0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,0x47,0x8E, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE, -0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5, -0x88,0x17,0x58,0xFC,0xAC,0x55,0x76,0x3F,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17, -0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xB3,0x7B, -0x01,0x38,0x8F,0x4D,0x7B,0xE8,0x05,0xCA,0x79,0x8C,0xED,0xD9,0x77,0xA9,0x3D,0xFB, -0x86,0x43,0x2F,0x08,0xE3,0x22,0x72,0xDC,0x0B,0xC0,0xD9,0x35,0x1C,0x7A,0x81,0x72, -0x76,0x91,0x33,0x65,0xCE,0xD4,0xF4,0xFB,0x54,0x72,0xA6,0xD8,0xEF,0xC7,0xCC,0x39, -0x36,0x9C,0x63,0xC9,0x39,0x46,0x8E,0x7B,0x81,0x8F,0x8B,0x29,0x73,0xE8,0x05,0x61, -0x5C,0x4C,0x81,0x33,0x64,0xCE,0xD0,0x70,0x86,0x92,0x33,0x44,0x8E,0x7B,0x01,0x38, -0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54, -0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0xF2,0x5E,0xA6,0x9C,0x25,0x08,0x1C,0x24,0x91, -0x73,0x4F,0x39,0x2E,0x72,0x7F,0xD1,0x0B,0x7C,0x5C,0x94,0xFD,0x25,0x5E,0x60,0xB1, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x7C,0x9E,0xE6,0xF6, -0xF4,0x0D,0x87,0x5E,0x10,0x3E,0x4F,0x23,0xC7,0xBD,0xC0,0xE7,0x2D,0x53,0xE6,0xD0, -0x0B,0xC2,0xBC,0x65,0x0A,0x9C,0x17,0xAD,0xB2,0xBB,0xE8,0x05,0xA8,0xA2,0x17,0x28, -0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0x60, -0x39,0x3E,0x9B,0xD4,0x1E,0x7A,0x81,0x1F,0x9F,0x4D,0xD5,0x1E,0xF1,0x02,0x8B,0xDD, -0x0B,0xC0,0x79,0xFB,0x9C,0x39,0xF4,0x02,0xE5,0x88,0x17,0xD8,0x29,0xF0,0x1E,0xFA, -0xCB,0x6E,0x4C,0x0C,0xD6,0x84,0x5E,0x60,0x1C,0x24,0x7C,0x9C,0x73,0xDC,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0, -0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0x6F,0x5A,0x35,0x75,0xEA,0x05,0xA8,0xA2,0x17, -0x28,0xE7,0x16,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81, -0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05, -0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0x63,0xE6,0x8C,0x0D,0x67, -0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC, -0x59,0x03,0xE1,0x5C,0x4A,0x0E,0xD2,0x95,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4, -0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,0x4E,0xDF,0x70,0xFA,0x92,0xD3,0x47,0x8E,0x7F, -0xEF,0x18,0x1C,0x7A,0x01,0xAA,0xF8,0xBD,0x63,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17, -0x2C,0xFD,0x8E,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0xBD,0xDF,0x7D,0x1E,0x1E,0xFA,0x9D, -0xF3,0x70,0x8B,0xAF,0x99,0x73,0x6D,0x38,0xD7,0x92,0x73,0x8D,0x9C,0x39,0x73,0xE6, -0x86,0x33,0x97,0x9C,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C, -0xF1,0x02,0x8B,0xCF,0x99,0x73,0x6E,0x38,0xE7,0x92,0x73,0x8E,0x1C,0xF7,0x02,0x70, -0x30,0xDF,0x27,0x87,0x5E,0xA0,0x9C,0x35,0x05,0xE7,0xB9,0x4B,0x1C,0x7A,0x01,0xAA, -0xF8,0xBD,0x63,0xE5,0x88,0x17,0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5, -0xF9,0x7C,0x88,0xE7,0xF3,0x63,0x97,0x38,0xF4,0x02,0x54,0x71,0x1F,0x91,0x72,0xC4, -0x0B,0x96,0x71,0x91,0x39,0xFB,0x86,0xB3,0x2F,0x39,0xFB,0xC8,0x71,0x2F,0x00,0x67, -0xD7,0x70,0xE8,0x05,0xCA,0xD9,0x45,0xCE,0x94,0x39,0x53,0x97,0xFB,0x6B,0x2A,0x39, -0x6B,0x8A,0xFE,0x3A,0x66,0xCE,0xB1,0xE1,0x1C,0x4B,0xCE,0x31,0x72,0xDC,0x0B,0x7C, -0x5C,0x4C,0x99,0x43,0x2F,0x08,0xE3,0x62,0x0A,0x9C,0x21,0x73,0x86,0x86,0x33,0x94, -0x9C,0x21,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B, -0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0, -0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0x65,0x5C,0xE4,0xFE,0x3A,0x34,0xFD, -0x85,0x24,0x8D,0x8B,0xD8,0x5F,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E, -0x78,0xC1,0xF2,0x79,0x9A,0xDB,0xD3,0x37,0x1C,0x7A,0x41,0xF8,0x3C,0x8D,0x1C,0xF7, -0x02,0x9F,0xB7,0x4C,0x99,0x43,0x2F,0x08,0xF3,0x96,0x29,0x70,0xFC,0x7B,0xC7,0xE0, -0xD0,0x0B,0x50,0xC5,0xEF,0x1D,0x2B,0x47,0xBC,0xC0,0x62,0xFF,0xDE,0x31,0x38,0xF4, -0x02,0x54,0xF1,0x7B,0xC7,0xCA,0x11,0x2F,0x58,0x8E,0x0F,0xBE,0x77,0xEC,0xC7,0xC7, -0xBD,0xC0,0x8F,0x8F,0x7F,0xEF,0x38,0x1C,0x9F,0x4D,0x68,0x8F,0x7B,0x01,0x38,0x6F, -0xC3,0x3B,0x6D,0xF4,0x02,0xE5,0xBC,0xC5,0x1B,0xEB,0x3B,0x4B,0xD7,0xB9,0x17,0x3C, -0x75,0x71,0xBE,0x7F,0x4F,0xA2,0x17,0x3C,0x09,0x67,0x4D,0xC1,0xF1,0xEB,0x11,0x81, -0x83,0xF9,0x3E,0x39,0xBC,0x1E,0x91,0x72,0xD6,0x14,0x9C,0x37,0xB9,0x3D,0x6F,0x9A, -0xF6,0x20,0x89,0x9C,0x37,0xB1,0x3D,0xB7,0xCC,0xB9,0x35,0x9C,0x5B,0xC9,0xB9,0x45, -0xCE,0x90,0x39,0x43,0xC3,0x19,0x4A,0xCE,0x10,0x39,0x7E,0x3D,0x22,0x70,0x30,0xDF, -0x27,0x87,0xD7,0x23,0x52,0xCE,0x9A,0x82,0x73,0xEA,0x12,0x87,0x5E,0x80,0x2A,0x7A, -0x81,0x72,0xC4,0x0B,0x2C,0x1E,0x33,0x67,0x6C,0x38,0x63,0xC9,0x19,0x23,0x67,0x9B, -0x39,0xDB,0x86,0xB3,0x2D,0x39,0xDB,0xC8,0xB9,0x64,0xCE,0xA5,0xE1,0x5C,0x4A,0xCE, -0x25,0x72,0xFC,0x7A,0x44,0xE0,0x60,0xBE,0x4F,0x0E,0xAF,0x47,0xA4,0x9C,0x35,0x05, -0xA7,0xCF,0x9C,0xBE,0xE1,0xF4,0x25,0xA7,0x8F,0x1C,0xF7,0x02,0x70,0x30,0xDF,0x27, -0x87,0x5E,0xA0,0x9C,0x35,0x05,0xE7,0x83,0x2E,0x71,0x30,0xDF,0x27,0x87,0x5E,0xA0, -0x9C,0x0F,0xE2,0xF1,0xF1,0xEB,0x11,0x81,0x83,0xF9,0x3E,0x39,0xBC,0x1E,0x91,0x72, -0xBE,0xF9,0xBD,0xC0,0x71,0x2F,0x00,0x07,0xF3,0x7D,0x72,0xE8,0x05,0xCA,0x59,0x53, -0x70,0xDE,0xEF,0x12,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x7E,0x7F, -0x48,0x1C,0xCC,0xF7,0xA5,0xDF,0x1F,0x2A,0xCE,0x9A,0x82,0x73,0xCD,0x9C,0x6B,0xC3, -0xB9,0x96,0x9C,0x6B,0xE4,0xCC,0x99,0x33,0x37,0x9C,0xB9,0xE4,0xCC,0x91,0xF3,0x6E, -0x97,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE,0x0D, -0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88, -0x17,0x58,0xFC,0xDC,0x25,0x0E,0x3E,0x96,0xC8,0xA1,0x17,0x28,0xE7,0x39,0xB6,0xE7, -0x90,0xCF,0xE7,0x43,0x73,0x3E,0x1F,0xCA,0xF3,0xF9,0x10,0xCF,0xE7,0xC7,0x2E,0x71, -0x30,0xDF,0x27,0x87,0xEB,0x05,0xCA,0x79,0x8C,0xED,0xD9,0x67,0xCE,0xBE,0xE1,0xEC, -0x4B,0xCE,0x3E,0x72,0x76,0x99,0xB3,0x6B,0x38,0xBB,0x92,0xB3,0x8B,0x9C,0x29,0x73, -0xA6,0x86,0x33,0x95,0x9C,0x29,0x72,0x8E,0x99,0x73,0x6C,0x38,0xC7,0x92,0x73,0x8C, -0x1C,0xF7,0x02,0x1F,0x17,0x53,0xE6,0xD0,0x0B,0xC2,0xB8,0x98,0x02,0x67,0xC8,0x9C, -0xA1,0xE1,0x0C,0x25,0x67,0x88,0x1C,0xFF,0x7E,0x01,0x38,0x98,0xEF,0x93,0xC3,0xEF, -0x17,0x28,0x67,0x4D,0xC1,0x59,0x27,0xFD,0xE4,0x60,0xBE,0x4F,0x0E,0x92,0xC8,0x59, -0x53,0x70,0xD6,0x49,0x3F,0x39,0x98,0xEF,0x93,0x83,0x24,0x72,0xD6,0xD4,0xC7,0x45, -0xEE,0x2F,0x7A,0x81,0x8F,0x8B,0xB2,0xBF,0xC4,0x0B,0x2C,0x7E,0xCA,0x9C,0xA7,0x86, -0xF3,0x54,0x72,0x9E,0x22,0xA7,0xCF,0x9C,0xBE,0xE1,0xF4,0x25,0xA7,0x8F,0x1C,0xF7, -0x02,0x9F,0xB7,0x4C,0x99,0x43,0x2F,0x08,0xF3,0x96,0x29,0x70,0x5E,0xBA,0xC4,0xC1, -0x7C,0x9F,0x1C,0x7A,0x81,0x72,0x5E,0x62,0x7B,0xDC,0x0B,0xC0,0xC1,0x7C,0x9F,0x1C, -0x7A,0x81,0x72,0xD6,0xD4,0x8F,0xCF,0xA6,0x8B,0x1C,0xCC,0xF7,0xE5,0xF8,0xB8,0x17, -0x84,0xE3,0xB3,0x09,0xED,0x71,0x2F,0x00,0xE7,0xED,0x73,0xE6,0xD0,0x0B,0x94,0x23, -0x5E,0x60,0x87,0xDC,0xDF,0x45,0xFB,0x4E,0xE7,0xFB,0xFD,0x9A,0x44,0x2F,0xE8,0x85, -0x83,0x74,0xE5,0xF8,0x7A,0x01,0x38,0x5C,0x2F,0x40,0x15,0xD7,0x0B,0x94,0x23,0xEB, -0x05,0x16,0xBB,0x17,0x80,0xF3,0xA6,0x69,0x0F,0xBD,0x40,0x39,0x48,0x57,0xCE,0x4D, -0xAB,0xA6,0x4E,0xD7,0x0B,0x50,0xC5,0xF5,0x02,0xE5,0xDC,0x22,0xC7,0xBD,0x00,0x1C, -0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8,0xD7,0x0B,0xC0,0xE1,0x7A,0x01, -0xAA,0xB8,0x5E,0xA0,0x1C,0x59,0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8, -0x05,0xCA,0x11,0x2F,0xB0,0x78,0xCC,0x9C,0xB1,0xE1,0x8C,0x25,0x67,0x8C,0x9C,0x6D, -0xE6,0x6C,0x1B,0xCE,0xB6,0xE4,0x6C,0x23,0xE7,0x92,0x39,0x6B,0x20,0x9C,0x4B,0xC9, -0x41,0xBA,0x72,0x7C,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91,0xF5, -0x82,0xE5,0x9D,0x39,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,0xE1, -0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x91,0xF5,0x02,0x8B,0xDD,0x0B,0xC0,0xE1,0x7A,0x01, -0xAA,0xE8,0x05,0xCA,0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A, -0xEB,0x05,0xCA,0x91,0xF5,0x02,0x8B,0xDD,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xE8,0x05, -0xCA,0x91,0xF5,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1, -0x82,0xA5,0xDF,0xF1,0xF7,0x79,0xEF,0x77,0xFF,0xFB,0xBC,0xF7,0xBB,0xFF,0x7D,0x3E, -0xF4,0x3B,0xFF,0x3E,0x6F,0xF1,0x35,0x73,0xAE,0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33, -0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1, -0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE,0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3, -0x5E,0x00,0x0E,0xF7,0x11,0xA1,0x8A,0x5E,0xA0,0x1C,0xD9,0x47,0x64,0xB1,0x7F,0x5A, -0x81,0xC3,0xF5,0x02,0x54,0xD1,0x0B,0x94,0x23,0xEB,0x05,0x16,0x1F,0xF2,0xF9,0x7C, -0x68,0xCE,0xE7,0x43,0x79,0x3E,0x1F,0xE2,0xF9,0xEC,0x5E,0x00,0x0E,0xD7,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0xAC,0x17,0x2C,0xE3,0x22,0x73,0xF6,0x0D,0x67,0x5F,0x72,0xF6, -0x91,0xB3,0xCB,0x9C,0x5D,0xC3,0xD9,0x95,0x9C,0x5D,0xE4,0x4C,0x99,0x33,0x75,0x9A, -0x44,0x2F,0xD0,0x64,0x4D,0xD1,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46, -0xCE,0x3C,0x25,0xCE,0x3C,0x65,0x0E,0x92,0x34,0x2E,0xA6,0xC0,0x19,0x32,0x67,0x68, -0x38,0x43,0xC9,0x19,0x22,0xC7,0xD7,0x0B,0xC0,0xE1,0x7A,0x01,0xAA,0xB8,0x5E,0xA0, -0x1C,0x59,0x2F,0xB0,0x5F,0x7C,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA, -0x91,0xF5,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0xAE,0x17,0xA0,0x8A,0xEB,0x05,0xCA,0x91, -0xF5,0x82,0x65,0x5C,0xE4,0xFE,0xA2,0x17,0xF8,0xB8,0x28,0xFB,0x4B,0xBC,0xC0,0xE2, -0xA7,0xCC,0x59,0x03,0xE1,0x3C,0x95,0x1C,0xA4,0xF8,0x3C,0xCD,0x9C,0xBE,0xE1,0xF4, -0x25,0xA7,0x8F,0x1C,0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD, -0xC0,0x62,0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,0xC0,0x62, -0xF7,0x02,0x70,0xB8,0x5E,0x80,0x2A,0x7A,0x81,0x72,0x64,0xBD,0x60,0x39,0x3E,0xF0, -0x02,0x3F,0x3E,0xBE,0x5E,0xE0,0xC7,0xC7,0xBD,0x20,0x1C,0x9F,0x4D,0x68,0x8F,0x7B, -0x01,0x38,0xDC,0x47,0x84,0x2A,0x7A,0x81,0x72,0x64,0x1F,0x91,0x1D,0x2A,0xF7,0x02, -0xBB,0x61,0xF7,0xD3,0x0B,0x2C,0x89,0x5E,0x80,0x84,0x8F,0x73,0x8E,0xAF,0x17,0x80, -0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40, -0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xDF,0x32,0xE7,0xD6,0x70,0xE8,0x05,0xCA,0xB9, -0x45,0xCE,0x90,0x39,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1,0xAF,0x17, -0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F, -0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x8F,0x99,0x33,0x36,0x9C,0xB1,0xE4,0x8C, -0x91,0xB3,0xCD,0x9C,0x6D,0xC3,0xD9,0x96,0x9C,0x6D,0xE4,0x5C,0x32,0x67,0x0D,0x84, -0x73,0x29,0x39,0x48,0x57,0x8E,0xAF,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39, -0xE2,0x05,0x16,0xF7,0x99,0xD3,0x37,0x9C,0xBE,0xE4,0xF4,0x91,0xE3,0x5E,0x00,0x0E, -0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55, -0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0xEB,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50, -0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81, -0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0xC1,0xD2,0xEF,0x0F, -0x89,0x43,0x2F,0xF0,0x7E,0xF7,0x79,0x78,0xE8,0x77,0xCE,0xC3,0x2D,0xBE,0x66,0xCE, -0xB5,0xE1,0x5C,0x4B,0xCE,0x35,0x72,0xE6,0xCC,0x99,0x1B,0xCE,0x5C,0x72,0xE6,0xC8, -0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x3E,0x67,0xCE, -0xB9,0xE1,0x9C,0x4B,0xCE,0x39,0x72,0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0, -0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02, -0x8B,0x0F,0xF9,0x7C,0x3E,0x34,0xE7,0xF3,0xA1,0x3C,0x9F,0x0F,0xF1,0x7C,0x76,0x2F, -0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0x71,0x91,0x39,0xFB,0x86, -0xB3,0x2F,0x39,0xFB,0xC8,0xD9,0x65,0xCE,0xAE,0xE1,0xEC,0x4A,0xCE,0x2E,0x72,0xA6, -0xCC,0x99,0x3A,0x4D,0xA2,0x17,0x68,0xB2,0xA6,0xE8,0xF7,0x63,0xE6,0x1C,0x1B,0xCE, -0xB1,0xE4,0x1C,0x23,0x67,0x9E,0x12,0x67,0x9E,0x32,0x07,0x49,0x1A,0x17,0x53,0xE0, -0x0C,0x99,0x33,0x34,0x9C,0xA1,0xE4,0x0C,0x91,0xE3,0xEB,0x05,0xE0,0xD0,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0x88,0x17,0x58,0xEC,0xEB,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78, -0xC1,0x32,0x2E,0x72,0x7F,0xD1,0x0B,0x7C,0x5C,0x94,0xFD,0x25,0x5E,0x60,0xF1,0x53, -0xE6,0xD0,0x0B,0x50,0xF5,0x54,0x72,0xC4,0x0B,0x96,0xCF,0xD3,0xCC,0xE9,0x1B,0x4E, -0x5F,0x72,0xFA,0xC8,0x59,0xDE,0xEB,0xC3,0xBC,0x65,0xCA,0x9C,0x7B,0xD2,0xCC,0x5B, -0xA6,0xC0,0x71,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76, -0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x96,0xE3,0x03,0x2F,0xF0, -0xE3,0xE3,0x5E,0xE0,0xC7,0xC7,0xBD,0x20,0x1C,0x9F,0x4D,0x68,0x8F,0x7B,0x01,0x38, -0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0x2F,0xD1,0xBD,0xC0,0x6E,0x4C,0x0C, -0xD6,0x24,0x7A,0x01,0x12,0x3E,0xCE,0x39,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4, -0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88, -0x17,0x58,0x7C,0xD3,0xAA,0xA9,0x53,0x2F,0x40,0x15,0xBD,0x40,0x39,0xB7,0xC8,0x71, -0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0xF6,0xF5,0x02,0x70, -0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xC0,0x62,0xF7,0x02,0x70,0xE8,0x05,0xA8, -0xA2,0x17,0x28,0x47,0xBC,0xC0,0xE2,0x31,0x73,0xC6,0x86,0x33,0x96,0x9C,0x31,0x72, -0xB6,0x99,0xB3,0x6D,0x38,0xDB,0x92,0xB3,0x8D,0x9C,0x4B,0xE6,0xAC,0x81,0x70,0x2E, -0x25,0x07,0xE9,0xCA,0xF1,0xF5,0x02,0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC, -0xC0,0xE2,0x3E,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B,0xC0,0xA1,0x17, -0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x02,0x8B,0xDD,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E, -0xA0,0x1C,0xF1,0x02,0x8B,0x7D,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11, -0x2F,0xB0,0xD8,0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0xB0,0xD8, -0xBD,0x00,0x1C,0x7A,0x01,0xAA,0xE8,0x05,0xCA,0x11,0x2F,0x58,0xFA,0x1D,0x7F,0x9F, -0xF7,0x7E,0xF7,0x79,0xB8,0xF7,0xBB,0xCF,0xC3,0x43,0xBF,0x73,0x1E,0x6E,0xF1,0x35, -0x73,0xAE,0x0D,0xE7,0x5A,0x72,0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33, -0x47,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39, -0x73,0xCE,0x0D,0xE7,0x5C,0x72,0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4, -0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88, -0x17,0x58,0x7C,0xC8,0xE7,0xF3,0xA1,0x39,0x9F,0x0F,0xE5,0xF9,0x7C,0x88,0xE7,0xB3, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,0xCC,0xD9, -0x37,0x9C,0x7D,0xC9,0xD9,0x47,0xCE,0x2E,0x73,0x76,0x0D,0x67,0x57,0x72,0x76,0x91, -0x33,0x65,0xCE,0xD4,0x69,0x12,0xBD,0x40,0x93,0x35,0x45,0xBF,0x1F,0x33,0xE7,0xD8, -0x70,0x8E,0x25,0xE7,0x18,0x39,0xEE,0x05,0x3E,0x2E,0xA6,0xCC,0xA1,0x17,0x84,0x71, -0x31,0x05,0xCE,0x90,0x39,0x43,0xC3,0x19,0x4A,0xCE,0x10,0x39,0xBE,0x5E,0x00,0x0E, -0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0xEB,0x05,0xE0,0xD0,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xBE,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02, -0xE5,0x88,0x17,0x2C,0xE3,0x22,0xF7,0x17,0xBD,0xC0,0xC7,0x45,0xD9,0x5F,0xE2,0x05, -0x16,0x3F,0x65,0x0E,0xBD,0x00,0x55,0x4F,0x25,0x47,0xBC,0x60,0xF9,0x3C,0xCD,0x9C, -0xBE,0xE1,0xF4,0x25,0xA7,0x8F,0x1C,0xF7,0x02,0x9F,0xB7,0x4C,0x99,0x43,0x2F,0x08, -0xF3,0x96,0x29,0x70,0x5E,0x72,0x7B,0x5E,0x9A,0xF6,0xBC,0x94,0xED,0x41,0xBA,0x72, -0xDC,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0x5E,0xA0,0x1C,0xF1,0x82,0xE5,0xF8,0xC0,0x0B, -0xFC,0xF8,0xB8,0x17,0xF8,0xF1,0x71,0x2F,0x08,0xC7,0x67,0x13,0xDA,0xE3,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xD3,0xDC,0x0B,0xEC,0x86,0xDD, -0x4F,0x2F,0xB0,0x24,0x7A,0x01,0x12,0x3E,0xCE,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50, -0x8E,0x78,0x81,0xC5,0x37,0xAD,0xB2,0xFB,0x6F,0x0D,0x87,0x5E,0xA0,0x9C,0x5B,0xE4, -0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0xBB,0x17,0x80, -0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x9F,0x72,0x7B,0x4E,0x4D,0x7B, -0x4E,0x65,0x7B,0x4E,0xB1,0x3D,0x63,0xE6,0x8C,0x0D,0x67,0x2C,0x39,0x63,0xE4,0x6C, -0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC,0xB9,0x34,0xFD,0x75,0x29, -0x39,0x48,0x57,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60, -0x71,0x9F,0x39,0x7D,0xC3,0xE9,0x4B,0x4E,0x1F,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50, -0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81, -0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05, -0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0xC1,0xD2,0xEF,0x0F,0x5D,0xEA,0x77, -0x9F,0x87,0x7B,0xBF,0xFB,0x3C,0x3C,0xF4,0x3B,0xE7,0xE1,0x16,0x5F,0x33,0xE7,0xDA, -0x70,0xAE,0x25,0xE7,0x1A,0x39,0x73,0xE6,0xCC,0x0D,0x67,0x2E,0x39,0x73,0xE4,0xB8, -0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0x16,0x9F,0x33,0xE7,0xDC, -0x70,0xCE,0x25,0xE7,0x1C,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E, -0x78,0x81,0xC5,0xCF,0x5D,0xE2,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5, -0x87,0x7C,0x3E,0x1F,0x9A,0xF3,0xF9,0x50,0x9E,0xCF,0x87,0x78,0x3E,0x3F,0xE6,0xF6, -0x3C,0x36,0xED,0x79,0x2C,0xDB,0xF3,0x18,0xDB,0xB3,0xCF,0x9C,0x7D,0xC3,0xD9,0x97, -0x9C,0x7D,0xE4,0xEC,0x32,0x67,0xD7,0x70,0x76,0x25,0x67,0x17,0x39,0x53,0xE6,0x4C, -0x4D,0xBF,0x4F,0x25,0x67,0x8A,0xFD,0x7E,0xCC,0x9C,0x63,0xC3,0x39,0x96,0x9C,0x63, -0xE4,0xB8,0x17,0xF8,0xB8,0x98,0x32,0x87,0x5E,0x10,0xC6,0xC5,0x14,0x38,0x43,0xE6, -0x0C,0x0D,0x67,0x28,0x39,0x43,0xE4,0xB8,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40, -0x39,0xE2,0x05,0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05, -0x16,0xBB,0x17,0x80,0x43,0x2F,0x40,0x15,0xBD,0x40,0x39,0xE2,0x05,0xCB,0xB8,0xC8, -0xFD,0x45,0x2F,0xF0,0x71,0x51,0xF6,0x97,0x78,0x81,0xC5,0x4F,0x99,0x43,0x2F,0x40, -0xD5,0x53,0xC9,0x11,0x2F,0x58,0x3E,0x4F,0x33,0xA7,0x6F,0x38,0x7D,0xC9,0xE9,0x23, -0xC7,0xBD,0xC0,0xE7,0x2D,0x53,0xE6,0xD0,0x0B,0xC2,0xBC,0x65,0x0A,0x1C,0xF7,0x02, -0x70,0xE8,0x05,0xA8,0xA2,0x17,0x28,0x47,0xBC,0xE0,0x33,0xEB,0xFF,0x05,0xCE,0x1A, -0x08,0xE7,0x9E,0x64,0x0E,0x52,0x1C,0x9F,0x4D,0x6A,0x0F,0xBD,0xC0,0x8F,0xCF,0xA6, -0x6A,0x8F,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50,0x8E,0x78, -0x81,0x21,0xDD,0x0B,0xEC,0x86,0xDD,0x4F,0x2F,0xB0,0x24,0x7A,0x01,0x12,0x3E,0xCE, -0x39,0xFC,0x7E,0xC1,0x46,0xE7,0xFB,0xCA,0x91,0xEF,0x17,0x08,0x47,0xBF,0x5F,0xB0, -0xD1,0xEF,0x17,0x6C,0x74,0xBE,0xAF,0x1C,0xF9,0x7E,0x81,0x70,0xF4,0xFB,0x05,0x1B, -0xFD,0x7E,0xC1,0x46,0xE7,0xFB,0xCA,0x91,0xEF,0x17,0x08,0xE7,0x16,0x39,0xFC,0x7E, -0xC1,0x26,0xCC,0xF7,0x85,0x23,0xDF,0x2F,0x10,0x8E,0x7E,0xBF,0x60,0xA3,0xDF,0x2F, -0xD8,0xE8,0x7C,0x5F,0xDB,0x23,0xDF,0x2F,0x10,0x8E,0x7E,0xBF,0x60,0xA3,0xDF,0x2F, -0xD8,0x84,0xF9,0xBE,0x70,0x4E,0x65,0x7B,0x4E,0xB1,0x3D,0x63,0xE6,0x8C,0x0D,0x67, -0x2C,0x39,0x63,0xE4,0x6C,0x33,0x67,0xDB,0x70,0xB6,0x25,0x67,0x1B,0x39,0x97,0xCC, -0xB9,0x34,0xFD,0x75,0x29,0x39,0x48,0x57,0x0E,0xBF,0x5F,0xB0,0xD1,0xF9,0xBE,0x72, -0xE4,0xFB,0x05,0xC2,0xD1,0xEF,0x17,0xBC,0xC6,0x7D,0xE6,0xF4,0x0D,0xA7,0x2F,0x39, -0x7D,0xE4,0xF0,0xFB,0x05,0x1B,0x9D,0xEF,0x2B,0x47,0xBE,0x5F,0x20,0x1C,0xFD,0x7E, -0xC1,0x46,0xBF,0x5F,0xB0,0xD1,0xF9,0xBE,0x72,0xE4,0xFB,0x05,0xC2,0xD1,0xEF,0x17, -0x6C,0xF4,0xFB,0x05,0x1B,0x9D,0xEF,0x2B,0x47,0xBE,0x5F,0x20,0x1C,0xFD,0x7E,0xC1, -0x46,0xD6,0x0B,0xC0,0x91,0xEF,0x17,0x6C,0xF2,0x7A,0x81,0x72,0xF4,0xFB,0x05,0x1B, -0xFD,0x7E,0xC1,0x26,0xCC,0xF7,0x85,0x43,0x2F,0x50,0x8E,0x78,0xC1,0xD2,0xEF,0x0F, -0x5D,0xEA,0x77,0xEE,0xE7,0x47,0xBF,0x73,0x3F,0xBF,0xF6,0xBB,0xEC,0xE7,0xDF,0xE8, -0xF7,0x0B,0x36,0x3A,0xDF,0x57,0xCE,0xB5,0xE4,0x5C,0x23,0x67,0xCE,0x9C,0xB9,0xE1, -0xCC,0x25,0x67,0x8E,0x1C,0x7E,0xBF,0x60,0x13,0xE6,0xFB,0xC2,0x91,0xEF,0x17,0x08, -0x47,0xBF,0x5F,0xB0,0xD1,0xEF,0x17,0x6C,0xC2,0x7C,0x5F,0x38,0xE7,0x92,0x73,0x8E, -0x1C,0x7E,0xBF,0x60,0xA3,0xF3,0x7D,0x7D,0x5D,0xF2,0xFD,0x02,0xE1,0xE8,0xF7,0x0B, -0x36,0xFA,0xFD,0x82,0x8D,0xCE,0xF7,0x95,0x23,0xDF,0x2F,0x10,0x8E,0x7E,0xBF,0x60, -0xA3,0xDF,0x2F,0xD8,0xE8,0x7C,0x5F,0x39,0x87,0xF2,0x7C,0x3E,0xC4,0xF3,0xF9,0x31, -0xB7,0xE7,0xB1,0x69,0xCF,0x63,0xD9,0x9E,0xC7,0xD8,0x9E,0x7D,0xE6,0xEC,0x1B,0xCE, -0xBE,0xE4,0xEC,0x23,0x67,0x97,0x39,0xBB,0x86,0xB3,0x2B,0x39,0xBB,0xC8,0x99,0x32, -0x67,0x6A,0xFA,0x7D,0x2A,0x39,0x53,0xEC,0xF7,0x63,0xE6,0x1C,0x1B,0xCE,0xB1,0xE4, -0x1C,0x23,0xC7,0xBD,0xC0,0xC7,0xC5,0x94,0x39,0xF4,0x82,0x30,0x2E,0xA6,0xC0,0x19, -0x32,0x67,0x68,0x38,0x43,0xC9,0x19,0x22,0x87,0xDF,0x2F,0xD8,0xE8,0x7C,0x5F,0x8F, -0xB3,0x7C,0xBF,0x40,0x38,0xFA,0xFD,0x82,0x8D,0x7E,0xBF,0x60,0xA3,0xF3,0x7D,0xE5, -0xC8,0xF7,0x0B,0x84,0xA3,0xDF,0x2F,0xD8,0xE8,0xF7,0x0B,0x36,0x3A,0xDF,0x57,0x8E, -0x7C,0xBF,0x40,0x38,0xFA,0xFD,0x82,0x8D,0x7E,0xBF,0x00,0xE3,0xA2,0xE9,0x2F,0xF9, -0x7E,0x81,0x8E,0x8B,0xD8,0x5F,0x4F,0x99,0x23,0xDF,0x2F,0xD8,0xE4,0xF5,0x02,0xE5, -0xE8,0xF7,0x0B,0xEC,0xF3,0x34,0x73,0xFA,0x86,0xD3,0x97,0x9C,0x3E,0x72,0xDC,0x0B, -0x7C,0xDE,0x32,0x65,0x0E,0xBD,0x20,0xCC,0x5B,0xA6,0xC0,0x71,0x2F,0x00,0x87,0x5E, -0x80,0x2A,0x7A,0x81,0x72,0xC4,0x0B,0x2C,0x76,0x2F,0x00,0x87,0x5E,0x80,0x2A,0x7A, -0x81,0x72,0xC4,0x0B,0x96,0xE3,0xB3,0xC9,0xC7,0x67,0xD3,0x1C,0x9F,0x4D,0x79,0x7C, -0x36,0xA1,0x3D,0xFC,0x7E,0xC1,0x46,0xE7,0xFB,0xCA,0x91,0xEF,0x17,0x08,0x47,0xBC, -0xC0,0x7E,0xF5,0x77,0x51,0xBB,0x61,0xF7,0xD3,0x0B,0x2C,0xA1,0x17,0xD8,0x79,0x88, -0x84,0x8F,0x73,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60, -0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x4D,0xAB, -0xEC,0xFE,0x5B,0xC3,0xA1,0x17,0x28,0xE7,0x16,0x39,0xEE,0x05,0xE0,0xD0,0x0B,0x50, -0x45,0x2F,0x50,0x8E,0x78,0x81,0xC5,0xEE,0x05,0xE0,0xD0,0x0B,0x50,0x45,0x2F,0x50, -0x8E,0x78,0x81,0xC5,0xA7,0xDC,0x9E,0x53,0xD3,0x9E,0x53,0xD9,0x9E,0x53,0x6C,0xCF, -0x98,0x39,0x63,0xC3,0x19,0x4B,0xCE,0x18,0x39,0xDB,0xCC,0xD9,0x36,0x9C,0x6D,0xC9, -0xD9,0x46,0xCE,0x25,0x73,0x2E,0x4D,0x7F,0x5D,0x4A,0x0E,0xD2,0x95,0xE3,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xDC,0x67,0x4E,0xDF,0x70,0xFA, -0x92,0xD3,0x47,0x8E,0xFF,0xF7,0x0B,0xC0,0xA1,0x17,0xA0,0x8A,0xFF,0xFD,0x02,0xE5, -0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58, -0xEC,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00, -0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xEC,0x5E,0x00,0x0E,0xBD,0x00, -0x55,0xF4,0x02,0xE5,0x88,0x17,0x2C,0xFD,0xFE,0xD0,0xA5,0x7E,0xF7,0x79,0xB8,0xF7, -0xBB,0xCF,0xC3,0x43,0xBF,0x73,0x1E,0x6E,0xF1,0x35,0x73,0xAE,0x0D,0xE7,0x5A,0x72, -0xAE,0x91,0x33,0x67,0xCE,0xDC,0x70,0xE6,0x92,0x33,0x47,0x8E,0x7B,0x01,0x38,0xF4, -0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xF1,0x39,0x73,0xCE,0x0D,0xE7,0x5C,0x72, -0xCE,0x91,0xE3,0x5E,0x00,0x0E,0xBD,0x00,0x55,0xF4,0x02,0xE5,0x88,0x17,0x58,0xFC, -0xAC,0x55,0x76,0x3F,0xBD,0x00,0x55,0x48,0x22,0x47,0xBC,0xC0,0xE2,0x43,0x3E,0x9F, -0x0F,0xCD,0xF9,0x7C,0x28,0xCF,0xE7,0x43,0x3C,0x9F,0x1F,0x73,0x7B,0x1E,0x9B,0xF6, -0x3C,0x96,0xED,0x79,0x8C,0xED,0xD9,0x67,0xCE,0xBE,0xE1,0xEC,0x4B,0xCE,0x3E,0x72, -0xDC,0x0B,0xC0,0xD9,0x35,0x1C,0x7A,0x81,0x72,0x76,0x91,0x33,0x65,0xCE,0xD4,0xF4, -0xFB,0x54,0x72,0xA6,0xD8,0xEF,0xC7,0xCC,0x39,0x36,0x9C,0x63,0xC9,0x39,0x46,0x8E, -0x7B,0x81,0x8F,0x8B,0x29,0x73,0xE8,0x05,0x61,0x5C,0x4C,0x81,0x33,0x64,0xCE,0xD0, -0x70,0x86,0x92,0x33,0x44,0x8E,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23, -0x5E,0x60,0xB1,0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0x60,0xB1, -0x7B,0x01,0x38,0xF4,0x02,0x54,0xD1,0x0B,0x94,0x23,0x5E,0xB0,0x8C,0x8B,0xDC,0x5F, -0xF4,0x02,0x1F,0x17,0x65,0x7F,0x89,0x17,0x58,0xFC,0xA4,0xAF,0xC2,0xEE,0xA7,0x17, -0xA0,0x0A,0x49,0xE4,0x88,0x17,0x2C,0x9F,0xA7,0xB9,0x3D,0x7D,0xC3,0xA1,0x17,0x84, -0xCF,0xD3,0xC8,0x71,0x2F,0xF0,0x79,0xCB,0x94,0x39,0xF4,0x82,0x30,0x6F,0x99,0x02, -0xE7,0x25,0xBF,0x2E,0x7A,0x01,0xAA,0x90,0x44,0x8E,0x78,0x81,0xC5,0xCB,0xF4,0x5E, -0x39,0xF4,0x02,0x54,0x21,0x89,0x1C,0xF1,0x82,0xE5,0xF8,0x6C,0x52,0x7B,0xE8,0x05, -0x7E,0x7C,0x36,0x55,0x7B,0xC4,0x0B,0x2C,0x7E,0xFB,0x9C,0x8E,0xCF,0xDB,0xE7,0xCC, -0x79,0xFB,0x5C,0x1D,0x1F,0xA4,0xFD,0x7D,0x2F,0x89,0x7D,0x7C,0xFC,0xD0,0xFA,0xEF, -0xF2,0xE1,0xF9,0xDA,0x11,0xF6,0x1C,0x3F,0xC4,0xDB,0x9F,0xF2,0xE3,0xFA,0x5D,0x9F, -0xBD,0xDF,0xFF,0xA9,0xE5,0x37,0x7C,0xB3,0xE1,0x7E,0x12,0x0D,0x60,0x2F,0xDF,0x80, -0xD0,0x1B,0xE7,0x70,0xCF,0xE4,0x03,0x24,0xBC,0x51,0xBC,0xB3,0xFC,0x12,0x5E,0x95, -0xCE,0x05,0xC3,0x97,0x53,0xC3,0x37,0xA1,0xDE,0x59,0xCC,0xE2,0x0B,0x93,0x20,0xD7, -0x39,0xF8,0x3B,0xCB,0x2F,0xFE,0xCC,0xF6,0xCB,0x07,0xA8,0x91,0x3F,0x79,0xBE,0xB3, -0x4C,0x51,0xFD,0x86,0xFD,0xE2,0x37,0x9E,0xF5,0x1E,0xF9,0xCF,0x62,0x86,0xBF,0x79, -0xBD,0xB3,0xBC,0xA7,0xFB,0x8B,0xDA,0xB3,0x53,0xDF,0x59,0x1E,0xEF,0x37,0x6C,0x0A, -0xB2,0x4E,0x06,0xDE,0x59,0x7E,0xF1,0x1B,0x36,0xA9,0xB8,0xEA,0x3D,0xFE,0xA4,0x76, -0xE3,0x51,0x9F,0xC7,0x6B,0xE4,0xBF,0x8E,0xF8,0x99,0xEE,0x8F,0xBD,0xFE,0xF3,0xC7, -0x5F,0x7F,0x7E,0x62,0xED,0xCE,0x7F,0xAB,0x5B,0xFF,0xF7,0x7A,0xDF,0x0F,0xAF,0x99, -0xDD,0xF7,0x7B,0x5F,0x7F,0x7E,0xE6,0x23,0xEE,0xFB,0x87,0x26,0xBD,0xEF,0xCD,0xF2, -0xD8,0x5C,0x3B,0xAD,0xBF,0xFF,0xA4,0x72,0x6C,0xEC,0xBE,0x3E,0x5E,0x1F,0x3B,0xAD, -0x8F,0xD7,0xC7,0xFE,0x5E,0x3E,0xFA,0xF5,0xFF,0x0D,0xDD,0x97,0x5E,0xFF,0xF9,0xD9, -0xD7,0x9F,0x2F,0x77,0xF7,0x77,0x91,0x9F,0xEE,0xBA,0x70,0x95,0x6D,0xFD,0x91,0xFF, -0xF5,0x9F,0xFF,0xC8,0xCA,0xCB,0x27,0x57,0xDB,0x13,0x7F,0xEB,0xEB,0x3F,0xF6,0xF3, -0x95,0xD7,0x0E,0xFC,0xFE,0xD7,0x9F,0x77,0x5E,0x7F,0xFE,0xF5,0xD7,0xDB,0xDF,0xF3, -0xFA,0xF3,0xDD,0xD6,0xE8,0xE7,0xCE,0x1F,0x63,0xE7,0xCE,0xF2,0xFA,0x96,0xC3,0x65, -0x2F,0xCF,0x9E,0xFC,0xAB,0xEB,0xBF,0xFF,0x2E,0x5E,0xD1,0x6B,0x7F,0xD8,0xB9,0xF5, -0xED,0xF7,0x9B,0x9F,0xEE,0x7E,0x74,0x2D,0xFF,0xB2,0x63,0x96,0xB8,0xFB,0xDE,0xF5, -0xE6,0xF7,0x3A,0xDD,0xE2,0x1F,0x92,0xB6,0x7E,0x69,0x7D,0xF0,0xFA,0x6C,0x88,0xED, -0xE3,0xEC,0x4B,0x00,0x49,0x89,0x0D,0x92,0x2F,0x81,0xF4,0x6E,0xF7,0x6D,0x12,0xD9, -0x91,0xF9,0xA1,0xF5,0xC8,0x7C,0xB0,0xDE,0xFE,0x52,0xC7,0x77,0xFE,0xEE,0xFE,0xAA, -0xC6,0xA5,0x91,0x76,0xF2,0xFC,0xA9,0xD7,0x9F,0x1F,0x95,0x66,0xFC,0xE4,0xFA,0xF3, -0xE3,0xE9,0x30,0x7F,0xAB,0x94,0xE3,0x95,0x7D,0x65,0xFD,0x0C,0xF9,0x7E,0x7C,0x26, -0xDD,0xCF,0x09,0x3D,0x2F,0x7F,0x64,0x45,0x5B,0xF9,0x0F,0xAF,0xE8,0x3F,0x11,0xBA, -0xE6,0x77,0x2E,0x4F,0xFF,0x6F,0x77,0xF7,0xDE,0xC5,0x79,0xFC,0xD3,0x52,0x67,0x07, -0xF8,0xF7,0xAF,0xB7,0x7F,0x78,0x6D,0xAE,0xB1,0x7F,0x66,0x7D,0x9C,0xBE,0xB0,0xE5, -0xDF,0xCF,0x84,0x96,0xFF,0xD8,0x5A,0xD2,0xAD,0xF7,0x7D,0xB8,0xDE,0x77,0x8A,0xF7, -0x2D,0x87,0xF2,0xAF,0xBF,0x73,0xBF,0xEF,0x9F,0x5F,0x9B,0xF1,0xFD,0xEF,0xF0,0xB0, -0xDA,0xEF,0x87,0x4E,0x86,0xD9,0xBD,0xEC,0xA3,0x8B,0x3E,0x5C,0x7F,0x3F,0xE5,0xA2, -0xBE,0xFF,0x9C,0x1F,0x8C,0x1F,0x59,0x5B,0x50,0x1E,0x6B,0x7B,0xEC,0x47,0x3F,0xF4, -0x5B,0xBB,0xD0,0xAF,0x1F,0xF7,0x50,0x7B,0xD8,0xF6,0xB7,0xF7,0xD0,0x6D,0xA6,0xBE, -0x69,0x1E,0xFA,0x03,0xF2,0xF0,0x1F,0xD0,0x87,0xF7,0xF5,0xE3,0x71,0xF9,0x3C,0x74, -0xAA,0xE2,0xBB,0xFE,0x9B,0x9A,0xC7,0x6B,0x0F,0x7D,0x74,0x83,0xF5,0x51,0x9F,0x70, -0xC4,0xF4,0xA1,0xE1,0x30,0xD4,0xAF,0x0D,0x0F,0xFF,0x01,0x6D,0xC3,0x47,0xBC,0xB6, -0x0F,0xD3,0x6B,0x93,0x36,0x2F,0x27,0x87,0x3E,0xFE,0x69,0xAD,0xB1,0xD7,0xFF,0x2D, -0x53,0xEC,0x1D,0x3E,0xCB,0x6B,0x91,0xDD,0xF1,0x71,0x85,0x87,0x2E,0x9E,0xF9,0xCD, -0x33,0x7D,0xB8,0x16,0x9C,0xD6,0x82,0xEA,0x88,0x2E,0x45,0x1F,0xA6,0x67,0xCA,0x85, -0xA7,0xFC,0x4C,0x7D,0x6A,0x9E,0x0D,0xC4,0x0F,0x3A,0x8E,0x0C,0x7C,0x18,0x7C,0x39, -0x37,0x2F,0x17,0x7D,0xF5,0x1B,0x29,0x7A,0x98,0xBE,0x81,0x22,0xBC,0x17,0xD6,0x45, -0xFD,0x47,0x17,0x7D,0xF5,0x1B,0x29,0xB2,0x26,0x7E,0x6C,0xF3,0x3E,0xEC,0xDA,0xA3, -0x87,0xB7,0x88,0x8F,0x7C,0xA6,0x5C,0xF4,0xD5,0x6F,0xA4,0xC8,0x9A,0xF6,0x75,0x17, -0x9D,0x7E,0x3B,0x47,0xAF,0x2A,0xFA,0xC4,0xA3,0x57,0x15,0x7D,0xC2,0xD1,0x1B,0x96, -0x82,0x3F,0xD9,0xDD,0x4F,0xD2,0xFE,0x53,0x1C,0x1A,0xFD,0x2A,0x3D,0x3A,0x54,0xE4, -0xF9,0xFA,0x87,0xA6,0xF2,0x8F,0xAE,0xBF,0x5B,0xF6,0xEF,0x15,0x44,0xD0,0x30,0x42, -0x7F,0x30,0x12,0xD7,0x97,0xD1,0x72,0x3F,0xFC,0x3A,0xB9,0xA7,0x92,0x3B,0x2E,0x87, -0xC0,0x3E,0x2A,0xED,0xA3,0xE4,0x8F,0xAF,0x87,0xE2,0x67,0xD7,0xDA,0xCF,0xA5,0x57, -0x2B,0xCA,0x27,0x87,0xF8,0x77,0x7C,0x2C,0xE3,0xBF,0x59,0xEB,0x7E,0xB5,0xFB,0x04, -0x96,0xBF,0xD2,0x4F,0xA2,0x4D,0x1D,0x95,0xE3,0x13,0xA9,0x7D,0x77,0xFF,0x0F,0xDF, -0xF5,0xFF,0xE0,0x47,0x72,0xC1,0x7C,0x4A,0x6C,0x4C,0x18,0x7F,0xF5,0xE3,0x5B,0xED, -0xC7,0xF3,0xE3,0x9F,0xE1,0x38,0xD5,0xCF,0x60,0xF9,0x27,0x3F,0xC3,0xFD,0x69,0x3E, -0xBA,0xB7,0x3E,0xEC,0xF8,0x87,0xFB,0x6F,0xB4,0xB7,0x3E,0xEC,0x62,0x6F,0x7D,0x2C, -0xEB,0x13,0x7B,0x0B,0x34,0x7D,0xBD,0x9F,0x48,0xFD,0x3A,0x7A,0xEB,0xC3,0xC4,0x3E, -0x75,0xFF,0x7F,0xF7,0x56,0xF5,0x0C,0x5F,0x4F,0x6F,0xFD,0x2E,0x7F,0xE3,0xFE,0xD3, -0x1D,0xC7,0xEA,0xBF,0xD3,0xF1,0xAD,0xC8,0xFE,0xB5,0xF7,0x2F,0x7C,0xDE,0xFC,0xC4, -0xDA,0x92,0x1F,0x95,0x56,0xD9,0xEF,0x36,0x86,0x6D,0xA6,0xFC,0x43,0xED,0xEB,0xF8, -0xBA,0x9F,0x0B,0x1F,0x1E,0x5F,0xDF,0x73,0x7D,0xFD,0xAF,0x0B,0x9F,0x6C,0xDF,0xC0, -0x73,0xF1,0x85,0xBD,0x3E,0x17,0xDE,0xBE,0x7F,0x3B,0xC7,0xF0,0xF4,0x0D,0x1C,0x43, -0x7F,0xB2,0xAF,0xE3,0xB9,0xF0,0x11,0xF2,0xF7,0x73,0x0C,0x7F,0x3B,0xCF,0x85,0xCF, -0xB7,0xBF,0xBF,0x63,0xB8,0x59,0x58,0x3F,0x25,0xCF,0x63,0x8F,0xFD,0x99,0xF5,0x39, -0xEC,0xB6,0x7D,0x46,0xD9,0xE7,0x8E,0xF5,0xAB,0xFD,0xE5,0xC1,0xFA,0xEE,0x9F,0x6A, -0x70,0x5F,0x27,0xC8,0x20,0x1F,0x76,0x69,0xAA,0x7A,0x1F,0xE1,0x9F,0xED,0xDE,0xFF, -0xF2,0xFD,0x41,0xBF,0xB8,0x3A,0xDD,0x57,0x7F,0xBE,0xEB,0xFE,0xCC,0xF3,0xFD,0x89, -0x7A,0x13,0x17,0x3C,0xE0,0xF3,0xCF,0xF7,0x07,0x8D,0xC5,0x03,0xE5,0xA1,0x9F,0x7F, -0x8E,0x3C,0x7B,0x78,0xF3,0xD0,0xFB,0xD3,0x7E,0xB8,0x3E,0xEC,0xF4,0x51,0x4F,0xFB, -0x61,0x7A,0xDA,0xFC,0x40,0x79,0xE8,0x1F,0xED,0xE2,0xD3,0xFE,0x60,0xF5,0xD0,0x37, -0xCB,0x43,0xFE,0xC7,0xD7,0xE8,0xFF,0xB2,0xBF,0x20,0xD9,0x5F,0x68,0xD7,0x87,0xFF, -0xAD,0xF5,0xF6,0x5F,0x7C,0x96,0xC3,0x53,0x3C,0xDE,0x1E,0x6B,0x35,0x1F,0xF5,0xF8, -0x0F,0x0B,0xFE,0xE9,0x63,0xF8,0xF9,0xF1,0xA7,0x8F,0xE5,0x8F,0x4B,0x7B,0xFE,0xA5, -0x2F,0x76,0xDD,0x77,0xBD,0xFE,0xFC,0xE1,0xF5,0xDF,0xCF,0x7E,0xF1,0xDE,0xAE,0x7F, -0xE4,0xF5,0xDF,0xDD,0xEB,0xCF,0x77,0xAC,0xFF,0x7E,0xF0,0xFA,0xF3,0xF9,0x2F,0xA6, -0xB3,0xF0,0x23,0x18,0x56,0x6F,0x9C,0x8F,0x65,0xF8,0x9F,0x6F,0xC7,0xA5,0xDD,0x55, -0x3B,0x4E,0x9F,0xDC,0x8E,0xFE,0xE3,0x18,0xA7,0xAF,0xAB,0x1D,0x9B,0xE5,0xB5,0xFC, -0xD8,0x7A,0xEA,0xDB,0x8F,0x0D,0x89,0x7F,0xB2,0xBB,0xFF,0xDD,0xF0,0xB8,0x9E,0xFA, -0x3F,0xD7,0x71,0xDE,0x6D,0x3F,0xCD,0x7B,0x41,0xFF,0x0A,0xFA,0xF0,0x13,0x40,0xA7, -0x4F,0x02,0x2D,0xE3,0xB2,0xFF,0xA2,0x8F,0x5C,0x5B,0xD2,0xFC,0xB6,0xB5,0x05,0xFF, -0x68,0x77,0x3F,0x39,0x7F,0xDF,0x9A,0x7F,0xFB,0x9A,0xFF,0x47,0xBB,0x7B,0xFE,0x0F, -0xBC,0xFE,0xFB,0x1D,0xEB,0x7D,0xBF,0x7F,0xBD,0xEF,0x97,0xD6,0xFB,0xFE,0xB1,0x35, -0xFF,0xC7,0xBB,0x8F,0xFC,0x7C,0xBB,0x3F,0xFF,0x17,0x97,0xD7,0xA0,0x4F,0x7D,0x5A, -0x9F,0xFA,0xC3,0xF4,0xD4,0xA7,0xF5,0xA9,0x3F,0x2C,0x9E,0xFA,0xB4,0x3E,0xF5,0x87, -0xE9,0xA9,0x4F,0xE9,0xD9,0xF4,0x9F,0xF5,0x2F,0xC9,0xEB,0x5F,0xA8,0x3E,0xE5,0x37, -0xA6,0xF5,0x41,0x9F,0x0E,0xC9,0x0F,0xE3,0xA0,0xDF,0xAB,0xBE,0x72,0xFF,0xD3,0xED, -0x37,0x75,0x7F,0xE0,0x4D,0xD7,0xFD,0xC1,0xD7,0x9F,0xA7,0xD7,0x9F,0xEF,0x79,0xFD, -0xF9,0x96,0xD7,0x9F,0x3F,0xF4,0x26,0xFC,0x6D,0xAF,0xFF,0x7C,0x77,0x7C,0x4D,0xFE, -0x89,0xD7,0x9F,0xDF,0xFD,0xFA,0xF3,0xF6,0xF5,0xE7,0x9B,0xD7,0xAA,0xFD,0xFA,0x68, -0xDC,0xFF,0xCF,0xC4,0x4A,0xB4,0xF3,0xA7,0xFE,0x48,0xB7,0xBC,0x5D,0x2C,0x4F,0xCF, -0xF7,0x07,0xFB,0x63,0xDE,0x1F,0xEE,0xBA,0xFF,0xE4,0x5F,0xEE,0xBA,0x7F,0xED,0x35, -0xB8,0xDE,0x43,0xFB,0x3B,0xFB,0xF7,0x7C,0xDF,0xFD,0x4F,0x87,0x5F,0xFC,0x79,0x34, -0xDA,0xCA,0xDF,0xC1,0x9F,0xB0,0xFF,0xF4,0x2F,0xDD,0xDF,0x99,0x7E,0xC2,0xFF,0x30, -0x6F,0xF5,0xFF,0xE1,0xEB,0xCF,0x77,0x79,0x62,0xAF,0xD0,0x5E,0xE9,0xFA,0xBC,0xAF, -0x6F,0x58,0xBF,0xFE,0x57,0xBB,0xEE,0xF6,0xFA,0xF3,0x17,0x7E,0xFD,0xDE,0x48,0xBC, -0x69,0xDB,0xEF,0xBF,0xFA,0x97,0x96,0x47,0xDD,0xDF,0x07,0x3F,0xED,0xC5,0x7E,0x3C, -0xFB,0xE5,0x75,0x7C,0xF9,0x35,0xFE,0xF7,0xBF,0x6F,0x6D,0x91,0xFD,0x39,0xEE,0xCF, -0x3D,0xAF,0xCF,0x66,0x2D,0xF9,0x5F,0x5E,0x7F,0x7E,0x73,0x7D,0x0D,0x9F,0xBD,0xB7, -0xE4,0xF5,0xE7,0x9F,0x5B,0xFF,0xFD,0x17,0xD6,0x77,0x53,0xFF,0x08,0xF8,0x73,0xEB, -0xEA,0xC2,0x1F,0xFA,0x6B,0xAF,0xD1,0xDA,0xA4,0x1F,0x5F,0x9B,0xBF,0x34,0x42,0x5F, -0xD3,0x3B,0xA8,0xFC,0x54,0xF7,0x7F,0xE2,0x85,0x7F,0xEF,0xFD,0xA9,0xDE,0xE9,0xFE, -0xF7,0xD7,0x5B,0x7F,0x1B,0x47,0x14,0x37,0xEC,0x7D,0xEC,0x2B,0x7F,0xAA,0xC3,0x5B, -0xDE,0xFF,0x26,0x6F,0x77,0x7F,0xE5,0xF5,0x07,0x2F,0xE5,0xE9,0x67,0x3B,0xBE,0x92, -0xFB,0xE1,0x5F,0x9A,0xFF,0x57,0xD6,0xC7,0x7E,0x75,0xFD,0xD7,0xDE,0xE1,0xFF,0xF2, -0x97,0xD6,0x46,0xD8,0x2B,0xFE,0xEF,0x5E,0x83,0xFF,0x07,0xAF,0xD8,0xFF,0x6E,0x6A, -0x7F,0x21,0xFA,0x7D,0x7E,0x12,0xF6,0xF8,0xC3,0xAE,0xC6,0xBF,0xEB,0x0D,0x28,0xED, -0x7D,0x4B,0x67,0x15,0xF7,0xD9,0x01,0xFC,0xB8,0xFB,0xBE,0xF2,0xFC,0xD1,0xF7,0x7D, -0x7B,0x17,0xEF,0xFB,0xD2,0x7A,0xFF,0x84,0xC7,0x2C,0xCD,0xFF,0x4C,0xF7,0x76,0xCD, -0xBF,0x4D,0x4F,0x89,0xF5,0xE8,0xED,0x7F,0xED,0x7E,0xEA,0xA0,0xEE,0x6D,0x17,0xDB, -0xFD,0xF7,0xFE,0xF2,0x7A,0x8E,0xAC,0x8F,0xFF,0x9D,0xBF,0x76,0x3F,0xCD,0xF2,0xE3, -0xBF,0x3D,0x9C,0x6E,0x78,0xFC,0xE7,0xCA,0xC7,0x7E,0x47,0x68,0xC7,0xFA,0xD0,0xF6, -0xE5,0x7D,0xDE,0x5F,0xFA,0xB0,0x9C,0x3E,0x76,0xFB,0x6B,0xCF,0xFC,0x93,0xB4,0x3D, -0x1E,0x33,0x82,0xFF,0x60,0xBD,0xFF,0x57,0x9E,0x3B,0xFF,0x4C,0xB0,0x93,0x6D,0x58, -0xBA,0xDF,0xEE,0xF9,0x57,0x5F,0x93,0x7F,0xF1,0xF5,0xE7,0x6F,0xAE,0x3D,0xFB,0x1B, -0xEB,0x59,0xFB,0xE6,0xB7,0x5E,0x1F,0xE9,0x63,0x74,0x39,0x4F,0x96,0xDA,0xCF,0x77, -0x3F,0xF9,0x7C,0xBF,0xC7,0xAA,0xFF,0xE9,0x8E,0xD3,0x22,0xFC,0x59,0xFA,0x49,0x9E, -0xFF,0xC7,0xD6,0xB6,0xFA,0x51,0xFF,0xEC,0x72,0x1E,0xA2,0x7C,0x9B,0x1F,0x66,0xE7, -0xD9,0xB7,0xFF,0xFC,0xFD,0xCE,0xEF,0x5F,0xDB,0xFC,0x4D,0xDD,0x1F,0x5B,0x1F,0x8E, -0x4E,0xF9,0x83,0x5A,0xD6,0xA3,0xEE,0x27,0xD6,0x47,0xFD,0xE0,0x9A,0x7E,0x6A,0x69, -0xE9,0xE7,0xF9,0x1A,0x6C,0x08,0xBE,0x0E,0x80,0x6F,0xFE,0xAD,0x7B,0xFA,0xCF,0xAE, -0xE3,0xF4,0x3B,0xF9,0xE4,0x9F,0xED,0xBE,0x4F,0x5A,0xF7,0x1B,0xFF,0x6B,0xD7,0xFD, -0xC2,0x5F,0xBD,0x8F,0xD7,0x75,0x14,0xBC,0xF1,0x23,0xFE,0x7B,0xFE,0x7A,0xD7,0xFD, -0x57,0x7F,0xE9,0xFE,0x6A,0xBF,0xFB,0x3F,0x7E,0x6D,0xCF,0xBF,0x72,0x7F,0xD5,0xCB, -0x83,0xFB,0xFB,0x3B,0x8B,0xF5,0xDE,0xCF,0xBD,0xBE,0xDF,0x6D,0x5E,0x1F,0xFF,0x5F, -0xBE,0xFE,0xFC,0xE7,0xEB,0xF0,0xC2,0x9B,0x8E,0x1D,0x0A,0xBB,0xEF,0xEF,0xFC,0xD9, -0xAE,0xFB,0x4F,0x7F,0xDE,0xCF,0xD9,0xBC,0x7E,0xF3,0xFE,0x97,0x79,0xCE,0xE6,0xFB, -0xBE,0xF2,0xFC,0xD1,0xF7,0xFD,0x45,0xBF,0xEF,0xCD,0xD2,0xDD,0xF6,0x96,0x62,0x1D, -0x64,0x6F,0x83,0x86,0xFC,0xDC,0xEB,0x81,0xF8,0xE5,0x3F,0x79,0xEF,0xEA,0x5F,0xF4, -0x83,0x70,0x3F,0x98,0xF6,0x9C,0x76,0xFF,0x57,0xD6,0x43,0xF7,0xE9,0x25,0x99,0x3A, -0xAE,0x84,0xAC,0x47,0xF4,0x57,0x7E,0xEA,0x1E,0xDB,0xC4,0xF0,0x6F,0xBD,0x7E,0x7A, -0xFD,0xFA,0x2F,0xE1,0x2F,0x3A,0x3D,0xDF,0x0D,0x72,0xCB,0xEE,0xF7,0xBF,0x59,0x9E, -0xE1,0xBF,0x7D,0xBE,0x4F,0xC5,0xAC,0xB5,0xFF,0xC5,0xEB,0xCF,0x7F,0xBF,0xFE,0x6E, -0xD9,0xDF,0xC0,0x7B,0xD4,0x3A,0x6A,0x7E,0x6A,0x6D,0xF5,0x47,0x3E,0xB6,0x5F,0x47, -0x0D,0x3F,0x0A,0xF1,0xF0,0xF5,0x55,0x58,0x4B,0xF0,0xE1,0x74,0x40,0x33,0x3F,0xB5, -0x8C,0x0F,0x7B,0xE4,0x77,0xFA,0xB9,0xF3,0x1B,0x6B,0xF2,0x37,0xFD,0x00,0xFC,0xC6, -0x33,0x0F,0xC0,0xDF,0xFE,0xF3,0x4E,0xC4,0xEB,0x1A,0xFD,0x5D,0x69,0x39,0x80,0xF6, -0xFC,0x76,0x60,0x7F,0xC7,0x1A,0x7D,0x7A,0xE9,0x02,0x8C,0xAC,0x9F,0xC4,0x03,0x3F, -0x53,0x0F,0xB8,0xF5,0x3E,0x1B,0x5A,0x3F,0x2E,0xFC,0x3F,0xEB,0xF7,0xBD,0xBB,0xBC, -0x28,0xF4,0x85,0x7E,0xE6,0xFF,0x48,0x7E,0x7C,0x8F,0x9F,0xD7,0x03,0xF8,0x9B,0xEB, -0xC1,0xFA,0x3F,0x9E,0x39,0xEF,0x85,0xD9,0xFF,0x1C,0x0E,0x87,0x9D,0x02,0x9F,0xF3, -0x87,0xD8,0xDD,0x7F,0xA2,0x8B,0x6F,0x2B,0xFF,0x26,0x87,0xB5,0x35,0xF3,0x97,0x5F, -0x6F,0xFE,0xBF,0xEB,0xCB,0xB0,0x93,0xEC,0x8F,0xF8,0x39,0xFE,0xA9,0xE5,0x19,0x78, -0x68,0xAC,0x67,0x9A,0x47,0xDE,0x21,0xFA,0xC0,0x3E,0xBC,0xFB,0x7F,0xDA,0xEF,0xEB, -0x9F,0xFD,0xAC,0xB6,0x57,0xF3,0xD7,0xD6,0x31,0xF5,0x9F,0xAD,0x7D,0x85,0x43,0xC1, -0xE3,0xDE,0xDF,0xDB,0xF8,0xB9,0xEE,0xD7,0xFE,0x87,0xD7,0xF9,0xE6,0xEB,0xD0,0xFC, -0xDA,0x3A,0x1D,0xD0,0xB7,0x90,0x7F,0xE3,0xCF,0x74,0xEB,0xFB,0x5B,0x6F,0x07,0x56, -0x47,0xB2,0x1D,0xD4,0xEF,0x7E,0x2D,0xF9,0xCE,0xA2,0x6C,0x7D,0x4B,0xB8,0x37,0xE5, -0xFA,0xE7,0x79,0x76,0x7F,0xD0,0xF1,0x44,0xB1,0x33,0xF6,0x27,0x3B,0x1F,0x0F,0xD6, -0x94,0xFF,0xF9,0x17,0xF8,0xD0,0xDF,0xF3,0x5C,0x3E,0xF4,0x7E,0xF4,0xDE,0x2C,0xE7, -0xC6,0xFF,0xF4,0x0B,0xF7,0x17,0xA4,0x0F,0xB7,0x09,0xD4,0xDF,0x5D,0xEF,0x5B,0xBB, -0x21,0x7C,0xDA,0xED,0x3A,0x19,0xBD,0xCB,0xDD,0x9F,0x5D,0x4E,0xB9,0x69,0xBD,0xEF, -0xA7,0xD7,0x7F,0x27,0x3C,0x97,0xBD,0xCB,0xE2,0x7D,0xDD,0xEE,0x78,0x3D,0x04,0xBE, -0x86,0x37,0x75,0xFE,0xBF,0x57,0x8C,0xBE,0x81,0x00,0xF1,0x8B,0xFE,0x34,0xAF,0x6D, -0xF8,0x03,0xDD,0x7D,0x76,0x8C,0x3B,0x7F,0x4C,0xCE,0xD9,0x5F,0x59,0x4F,0xBF,0xFF, -0x7A,0x3D,0xB7,0xBE,0xF6,0x4C,0x7D,0xC3,0xFB,0xC0,0xFF,0xD7,0xC6,0xD5,0xF3,0x34, -0x0C,0x03,0x51,0x27,0x25,0x48,0xFD,0x17,0xED,0xC0,0xEE,0x19,0x09,0x75,0x61,0x00, -0x21,0xA6,0x22,0x75,0xC8,0x50,0x09,0x89,0x19,0x7E,0x04,0x63,0xFE,0x44,0xC5,0xD4, -0x8D,0xB1,0x1B,0x2B,0x8C,0x8C,0x8C,0x88,0x0D,0x31,0xB0,0x15,0x75,0x09,0x7E,0xBE, -0xF7,0x6C,0x07,0x3A,0x58,0xAD,0xCF,0xE7,0x73,0xEE,0xC3,0x77,0xE7,0xF8,0xDA,0x2F, -0x89,0x56,0x4C,0x69,0xD2,0x26,0xB4,0x0F,0x9F,0xF2,0x8F,0xE8,0xAE,0x65,0xCF,0xC8, -0x81,0xD6,0x85,0x43,0xA0,0xF9,0x8D,0xA3,0x97,0xD8,0x14,0xAB,0xBC,0x10,0xE9,0x91, -0xCC,0x76,0x57,0x6E,0x10,0xC7,0xDF,0x89,0x5B,0x26,0x3B,0x7F,0x37,0x4C,0x76,0x33, -0x4D,0x1A,0x2F,0x77,0xA3,0x39,0xAC,0x66,0x2F,0x0D,0x7B,0x70,0xF3,0xAF,0xC7,0x59, -0xB8,0xF4,0xAF,0x82,0x14,0x36,0xBE,0x0B,0xF1,0x03,0x31,0x44,0x43,0x7B,0xB2,0x3D, -0x4B,0x1F,0x47,0xAE,0x5B,0xDA,0xDD,0x92,0x72,0xCA,0xC3,0x7F,0x09,0xA5,0x1A,0x75, -0x3E,0x76,0x97,0x14,0x03,0x02,0x31,0x5A,0xF9,0x7D,0x5A,0x28,0x4F,0x04,0x65,0x23, -0x33,0x8E,0x4D,0xB3,0xF6,0xCD,0x43,0x2F,0x89,0x70,0x3E,0x31,0x79,0x00,0x01,0xC8, -0xF1,0x65,0x9F,0x10,0x8D,0xB3,0x7B,0xA2,0x9E,0x11,0x75,0xE6,0xF2,0x25,0xE9,0x00, -0xF5,0x20,0x52,0x05,0xF3,0x27,0x93,0xB4,0xF5,0x40,0xA1,0x05,0x85,0xDE,0x12,0x38, -0xCF,0x76,0xC4,0xD9,0x5D,0x9B,0x09,0x04,0xD9,0x20,0x79,0x42,0x2E,0x46,0xAF,0x12, -0x26,0xAF,0x02,0xD2,0x1B,0xAD,0xE1,0xD9,0x5B,0x7A,0x85,0x93,0xD8,0xA2,0x25,0x4B, -0x16,0xC4,0xA1,0x64,0x65,0x0D,0x0F,0xCE,0x25,0x42,0x26,0xF8,0x26,0x1E,0x58,0xB6, -0x73,0x7B,0x3C,0x8C,0xD7,0x5E,0xF6,0xD1,0xB8,0xCE,0xBB,0x14,0x78,0x75,0x11,0x6F, -0x63,0x75,0xDC,0x9A,0x54,0x45,0x93,0x3A,0xC3,0x13,0x1D,0x16,0x18,0x25,0x02,0x77, -0x37,0xF6,0xE4,0x19,0x32,0xF7,0x82,0x9C,0x12,0xF2,0x9A,0x34,0xBF,0xCF,0x25,0x77, -0x5E,0xE6,0x12,0x34,0x8F,0x7C,0x03,0x72,0xC2,0x5B,0xB5,0x5B,0xCA,0xAC,0xA2,0x18, -0xB2,0x08,0xCC,0xCC,0xE3,0xEF,0x27,0xD2,0x66,0x61,0xE7,0xC9,0x17,0x9D,0x0B,0xCF, -0x75,0xAB,0x62,0x2D,0xA4,0x37,0xF2,0x3A,0x91,0x0A,0x58,0x5D,0x70,0x1D,0xB1,0x9A, -0x3D,0xA9,0xC5,0x4C,0x94,0x08,0x5E,0x73,0x42,0xED,0xB6,0xA1,0xB7,0xD3,0xBF,0x19, -0xAB,0xF3,0x93,0x6A,0x0B,0x4B,0xC8,0xA7,0x41,0xB1,0x86,0xC0,0xA8,0xF3,0xC8,0x43, -0x16,0xD7,0x51,0x22,0x0E,0x07,0xAD,0x52,0xF1,0x70,0xD0,0xFC,0xAE,0x5C,0x6F,0xB5, -0x3F,0xB5,0x5B,0x87,0x8F,0xDE,0xCA,0x09,0x7F,0x01,0xA3,0xDD,0x0B,0xA6}; diff --git a/modules/juce_graphics/unicode/juce_UnicodeUtils.cpp b/modules/juce_graphics/unicode/juce_UnicodeUtils.cpp index 68869b96d3..180581931b 100644 --- a/modules/juce_graphics/unicode/juce_UnicodeUtils.cpp +++ b/modules/juce_graphics/unicode/juce_UnicodeUtils.cpp @@ -35,235 +35,70 @@ namespace juce { -// This only make sense with integral/enum types. -// We use it for enums and std::pair. -template -static constexpr bool any (T b, TT... bs) +template +static constexpr bool contains (std::initializer_list span, const T& b) { - return ((b == bs) || ...); + for (const auto& i : span) + if (i == b) + return true; + + return false; } -// Order is important!!!! -enum class LineBreakType : uint8_t -{ - al, bk, cm, cr, gl, lf, nl, sp, wj, - zw, zwj, ai, b2, ba, bb, cb, cj, cl, cp, - eb, em, ex, h2, h3, hl, hy, in, is, jl, - id, jt, jv, ns, nu, op, po, pr, qu, ri, - sa, sg, sy, xx, opw -}; - -// Order is important!!!! -enum class EastAsianWidthType : uint8_t -{ - N, - narrow, - ambiguous, - full, - half, - wide -}; - -// Order is important!!!! -enum class BidiType : uint8_t -{ - // Strong: Left to right - ltr, - - // Strong: Right to left - rtl, - - // Strong: Arabic Right to left - al, - - // Weak: European number - en, - - // Weak: Arabic umber - an, - - // Weak: European number seperator - es, - - // Weak: European number terminator - et, - - // Weak: Common number seperator - cs, - - // Weak: onspacing mark - nsm, - - // Weak: Boundary - bn, - - // eutral: Paragraph seperator - b, - - // eutral: Segment seperator - s, - - // eutral: Whitespace - ws, - - // eutral: Other s - on, - - // Explicit Formatting: LTR Embedding - lre, - - // Explicit Formatting: LTR Override - lro, - - // Explicit Formatting: RTL Embedding - rle, - - // Explicit Formatting: RTL Overide - rlo, - - // Explicit Formatting: Pop Directional Format - pdf, - - // Explicit Formatting: LTR Isolate - lri, - - // Explicit Formatting: RTL Isolate - rli, - - // Explicit Formatting: First Strong Isolate - fsi, - - // Explicit Formatting: Pop Directional Isolate - pdi, - - none -}; - - -enum class VerticalTransformType : uint8_t -{ - R, U, Tr, Tu -}; - -// https://www.unicode.org/reports/tr51/tr51-21.html -enum class EmojiType : uint8_t -{ - yes, - presentation, - modifier, - modifierBase, - component, - extended, - no -}; - -// This is an internal type -enum class UnicodeTextScript : uint8_t -{ - Common, Inherited, Han, Arabic, Hiragana, Adlam, Mende_Kikakui, Ethiopic, Wancho, - Toto, Nyiakeng_Puachue_Hmong, Glagolitic, Latin, SignWriting, Greek, Duployan, - Nushu, Katakana, Tangut, Khitan_Small_Script, Miao, Medefaidrin, Pahawh_Hmong, - Bassa_Vah, Tangsa, Mro, Bamum, Cypro_Minoan, Cuneiform, Tamil, Lisu, Makasar, - Gunjala_Gondi, Masaram_Gondi, Marchen, Bhaiksuki, Pau_Cin_Hau, Canadian_Aboriginal, - Soyombo, Zanabazar_Square, Nandinagari, Dives_Akuru, Warang_Citi, Dogra, Ahom, - Takri, Mongolian, Modi, Siddham, Tirhuta, Newa, Grantha, Khudawadi, Multani, - Khojki, Sinhala, Sharada, Mahajani, Chakma, Sora_Sompeng, Kaithi, Brahmi, Elymaic, - Chorasmian, Sogdian, Yezidi, Hanifi_Rohingya, Psalter_Pahlavi, Avestan, Manichaean, - Kharoshthi, Meroitic_Cursive, Lydian, Phoenician, Hatran, Nabataean, Palmyrene, - Imperial_Aramaic, Cypriot, Vithkuqi, Caucasian_Albanian, Elbasan, Osage, - Osmanya, Shavian, Deseret, Ugaritic, Gothic, Carian, Lycian, Hangul, Cyrillic, - Hebrew, Armenian, Meetei_Mayek, Cherokee, Tai_Viet, Myanmar, Cham, Javanese, Rejang, - Kayah_Li, Devanagari, Saurashtra, Phags_Pa, Syloti_Nagri, Vai, Yi, Bopomofo, - Tifinagh, Georgian, Coptic, Braille, Sundanese, Ol_Chiki, Lepcha, Batak, Balinese, - Tai_Tham, Buginese, Khmer, Limbu, Tai_Le, Tagbanwa, Buhid, Hanunoo, Tagalog, Runic, - Ogham, Tibetan, Lao, Thai, Malayalam, Kannada, Telugu, Oriya, Gujarati, Gurmukhi, - Bengali, Syriac, Mandaic, Samaritan, Nko, Thaana, - - Linear_A, - Linear_B, - - New_Tai_Lue, - - Old_Hungarian, - Old_Turkic, - Old_Uyghur, - Old_Sogdian, - Old_South_Arabian, - Old_North_Arabian, - Old_Persian, - Old_Permic, - Old_Italic, - - Inscriptional_Pahlavi, - Inscriptional_Parthian, - - Anatolian_Hieroglyphs, - Egyptian_Hieroglyphs, - Meroitic_Hieroglyphs, - - Emoji -}; - -enum class GraphemeBreakType : uint8_t -{ - other, cr, lf, control, extend, regionalIndicator, prepend, spacingMark, - l, v, t, lv, lvt, zwj -}; - - -namespace generated -{ -#include "juce_UnicodeData.cpp" -#ifdef JUCE_UNIT_TESTS - #include "juce_UnicodeTestData.cpp" -#endif -} - -using UnicodeData = generated::UnicodeEntry; - struct UnicodeAnalysisPoint { - uint32_t character; - UnicodeData data; + char32_t character = 0; + UnicodeEntry data{}; + uint16_t bidiLevel = 0; - struct + UnicodeAnalysisPoint (char32_t characterIn, UnicodeEntry entry) + : character { characterIn }, + data { std::move (entry) } + {} + + LineBreakType getBreakType() const { - uint16_t level; - } bidi; + return data.bt; + } + + GeneralCategory getGeneralCategory() const + { + return data.generalCategory; + } + + BidiType getBidiType() const + { + return data.bidi; + } + + void setBidiType (BidiType newType) + { + data.bidi = newType; + } + + bool operator== (const BidiType& b) const + { + return getBidiType() == b; + } }; -static UnicodeData getUnicodeDataForCodepoint (uint32_t codepoint) +//============================================================================== +/* Types of breaks between characters. */ +enum class TextBreakType { - static const Array data = [] - { - using namespace generated; + none, // The sequence of characters should not be broken. - Array arr; + soft, // The sequence of characters can be broken, if required. - MemoryInputStream mStream {compressedUnicodeData, std::size (compressedUnicodeData), false}; - GZIPDecompressorInputStream zStream {&mStream, false}; + hard // The sequence of characters must be broken here. +}; - // TODO: error checking - arr.resize (uncompressedUnicodeDataSize / sizeof (UnicodeData)); - zStream.read (arr.getRawDataPointer(), uncompressedUnicodeDataSize); - - return arr; - }(); - - return data[(int) codepoint]; -} - -// https://www.unicode.org/Public/UCD/latest/ucd/Jamo.txt -static inline bool isJamoSymbol (uint32_t cp) +/** Types of text direction. This may also be applied to characters. */ +enum class TextDirection { - return ((cp >= 0x1100 && cp <= 0x1112) || - (cp >= 0x1161 && cp <= 0x1175) || - (cp >= 0x11A8 && cp <= 0x11C2)); -} + ltr, // This text reads left to right. -static inline EmojiType getEmojiType (uint32_t cp) -{ - return getUnicodeDataForCodepoint (cp).emoji; -} + rtl // This text reads right to left. +}; } // namespace juce