pax_global_header00006660000000000000000000000064144155670200014516gustar00rootroot0000000000000052 comment=5ce859057ecf882a8ef7ed5b05325a5d9be2d891 libraqm-0.10.1/000077500000000000000000000000001441556702000132245ustar00rootroot00000000000000libraqm-0.10.1/.ci/000077500000000000000000000000001441556702000136755ustar00rootroot00000000000000libraqm-0.10.1/.ci/deploy-docs.sh000077500000000000000000000006511441556702000164600ustar00rootroot00000000000000#!/bin/bash set -x set -o errexit -o nounset if test "x$GITHUB_REF_TYPE" != xtag; then exit; fi git config user.name "CI" git config user.email "ci@raqm.org" git fetch origin git checkout -b gh-pages -t origin/gh-pages ls * rm -rf subprojects cp -v build/docs/html/* . rm -rf build ls * git add -A . if [[ $(git status -s) ]]; then git commit -m "Rebuild docs for $GITHUB_REF" git push -q origin HEAD:gh-pages fi libraqm-0.10.1/.github/000077500000000000000000000000001441556702000145645ustar00rootroot00000000000000libraqm-0.10.1/.github/workflows/000077500000000000000000000000001441556702000166215ustar00rootroot00000000000000libraqm-0.10.1/.github/workflows/ci.yml000066400000000000000000000031351441556702000177410ustar00rootroot00000000000000name: Build on: push: branches: [ master ] tags: [ "*" ] pull_request: branches: [ master ] jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] env: MATRIX_OS: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Install Python Dependencies run: pip install --upgrade meson ninja - if: matrix.os == 'ubuntu-latest' name: Install dependencies on Ubuntu run: | sudo apt-get update || true sudo apt-get install -y gtk-doc-tools - name: MSVC Setup if: matrix.os == 'windows-latest' uses: ilammy/msvc-dev-cmd@v1 with: arch: x64 - name: Meson Setup run: meson build $(test $MATRIX_OS = "ubuntu-latest" && echo "-Ddocs=true") - name: Build run: ninja -C build - name: Test run: ninja -C build test - name: Deploy documentation if: matrix.os == 'ubuntu-latest' run: .ci/deploy-docs.sh build-sheenbidi: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: '3.10' - name: Install Python Dependencies run: pip install --upgrade meson ninja - name: Meson Setup run: meson -Dsheenbidi=true build - name: Build run: ninja -C build - name: Test run: ninja -C build test libraqm-0.10.1/AUTHORS000066400000000000000000000002121441556702000142670ustar00rootroot00000000000000Abderraouf Adjal Ali Yousuf Anood Almuharbi Asma Albahanta Fahad Alsaidi Ibtisam Almabsali Khaled Hosny Mazoon Almaamari Shamsa Alqassabi libraqm-0.10.1/CODING.md000066400000000000000000000041611441556702000145130ustar00rootroot00000000000000Coding Style Guide ================== * Indent with 2 spaces, not tabs. * In function declarations, put function name on a new line: ```` static int move (int x); ```` * In function declarations, each parameter should be in a separate line, and aligned to the first parameter: ```` static void move (double x, int y, char *total); ```` * Place curly brackets on new lines on the new line: ```` if (x == 3) { ... } else { ... } ```` * There should be a space after `,` or `;` on functions call, functions headers or for loops definition but not before them. For example: ```` foo (x, y, count); int draw (int x, int total, double sum); ```` * All declaration should be in the beginning of code block: ```` int main () { int num1; int num2 double sum; printf ("Enters two number to add\n"); scanf ("%d %d", &num1, &num2); sum = add (num1, num2); /* function call */ printf ("sum=%d", sum); return 0; } ```` * In variable declarations, the asterisk attaches to the variable: ```` Shape *shape; Data *data; ```` * Put space before opening parentheses `(`, and no space after them, nor before closing parenthesis: ```` add (num1, num2); for (i=0; i<3; i++) { ... } ```` * Multi-line comments, lines should be aligned to the first line: ```` /* Handling script detection for each character of the input string, if the character script is common or inherited it takes the script of the character before it except some special paired characters */ ```` * Use C comments `/* */` not C++ comments `//`. * Variables should be all lower case, and compound words separated by `_`: ```` int total_amount; string first_stage; ```` * Avoid consecutive empty lines, the following code is a bad example: ```` /* to get number of runs */ run_count = get_visual_runs (types, length, par_type, levels, scripts, NULL); run = (Run*) malloc (sizeof (Run) * run_count); /* to populate run array */ get_visual_runs (types, length, par_type, levels, scripts, run); ```` * Operators like `*`, `+`, `-`, `/`, `=`, `==`, `<=`, `!=`, etc. should be surrounded by spaces: ```` if (someVar == 0) x = y + z * m; ```` libraqm-0.10.1/COPYING000066400000000000000000000022341441556702000142600ustar00rootroot00000000000000The MIT License (MIT) Copyright © 2015 Information Technology Authority (ITA) Copyright © 2016-2023 Khaled Hosny Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. libraqm-0.10.1/NEWS000066400000000000000000000071001441556702000137210ustar00rootroot00000000000000Overview of changes leading to 0.10.1 Wednesday, April 12, 2023 ==================================== Make combining marks always inherit the script of their base. Overview of changes leading to 0.10.0 Wednesday, January 11, 2023 ==================================== Fix font feature ranges. Fix resolved direction for all-neutral text. Implement letter and word spacing support. New API: * raqm_set_text_utf16 Overview of changes leading to 0.9.0 Sunday, January 30, 2022 ==================================== Raise the minimum versions of Raqm dependencies: no longer conditionally enabling any features based on specific dependency version. raqm_t objects can now be reused by calling raqm_clear_contents() before re-use, to potentially reduce the number memory allocations. Don't hardcode python3 in tests. New API: * raqm_set_freetype_load_flags_range * raqm_clear_contents Overview of changes leading to 0.8.0 Monday, December 13, 2021 ==================================== Remove autotools build. Support using SheenBiDi instead of FriBiDi for Unicode BiDi support. Fix running tests with Python <= 3.6. New API: * raqm_get_par_resolved_direction * raqm_get_direction_at_index Overview of changes leading to 0.7.2 Monday, September 27, 2021 ==================================== Fix test failure with newer HarfBuzz versions. Apply FT_Face transformation matrix when built against FreeType 2.11 or later. Add meson build system. Autotools build system will be dropped in next release. Improve MSVC support. Build and documentation fixes. Overview of changes leading to 0.7.1 Sunday, November 22, 2020 ==================================== Require HarfBuzz >= 2.0.0 Build and documentation fixes. Overview of changes leading to 0.7.0 Monday, May 27, 2019 ==================================== New API: * raqm_version * raqm_version_string * raqm_version_atleast * RAQM_VERSION_MAJOR * RAQM_VERSION_MICRO * RAQM_VERSION_MINOR * RAQM_VERSION_STRING * RAQM_VERSION_ATLEAST Overview of changes leading to 0.6.0 Sunday, May 5, 2019 ==================================== Fix TTB direction regression from the previous release. Correctly detect script of Common and Inherite characters at start of text. Undef HAVE_CONFIG_H workaround, for older versions of Fribidi. Drop test suite dependency on GLib. Port test runner to Python instead of shell script. New API: * raqm_set_invisible_glyph() Overview of changes leading to 0.5.0 Saturday, February 24, 2018 ==================================== Use FriBiDi 1.x API when available. Overview of changes leading to 0.4.0 Sunday, January 21, 2018 ==================================== Set begin-of-text and end-of-text HarfBuzz buffer flags. Dynamically allocate memory instead of using stack allocation for input text. Accept zero length text and do nothing instead of treating it as error. Overview of changes leading to 0.3.0 Monday, August 21, 2017 ==================================== Fix stack corruption on MSVC. New API: * raqm_set_freetype_load_flags Overview of changes leading to 0.2.0 Wednesday, August 25, 2016 ==================================== Fix building with MSVC due to lacking C99 support. Make multiple fonts support actually work. Start and length now respect the input encoding. New API: * raqm_index_to_position * raqm_position_to_index * raqm_set_language Overview of changes leading to 0.1.1 Sunday, May 1, 2016 ==================================== Fix make check on 32-bit systems. Overview of changes leading to 0.1.0 Wednesday, January 20, 2016 ==================================== First release. libraqm-0.10.1/README.md000066400000000000000000000051411441556702000145040ustar00rootroot00000000000000Raqm ==== [![Build](https://github.com/HOST-Oman/libraqm/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/HOST-Oman/libraqm/actions) Raqm is a small library that encapsulates the logic for complex text layout and provides a convenient API. It currently provides bidirectional text support (using [FriBiDi][1] or [SheenBidi][2]), shaping (using [HarfBuzz][3]), and proper script itemization. As a result, Raqm can support most writing systems covered by Unicode. The documentation can be accessed on the web at: > https://host-oman.github.io/libraqm/ Raqm (Arabic: رَقْم) is writing, also number or digit and the Arabic word for digital (رَقَمِيّ) shares the same root, so it is a play on “digital writing”. Building -------- Raqm depends on the following libraries: * [FreeType][4] * [HarfBuzz][3] * [FriBiDi][1] or [SheenBidi][2] To build the documentation you will also need: * [GTK-Doc][5] To install dependencies on Fedora: sudo dnf install freetype-devel harfbuzz-devel fribidi-devel meson gtk-doc To install dependencies on Ubuntu: sudo apt-get install libfreetype6-dev libharfbuzz-dev libfribidi-dev meson gtk-doc-tools On Mac OS X you can use Homebrew: brew install freetype harfbuzz fribidi meson gtk-doc export XML_CATALOG_FILES="/usr/local/etc/xml/catalog" # for the docs Once you have the source code and the dependencies, you can proceed to build. To do that, run the customary sequence of commands in the source code directory: $ meson build $ ninja -C build $ ninja -C build install To build the documentation, pass `-Ddocs=true` to the `meson`. To run the tests: $ ninja -C build test Contributing ------------ Once you have made a change that you are happy with, contribute it back, we’ll be happy to integrate it! Just fork the repository and make a pull request. Projects using Raqm ------------------- 1. [ImageMagick](https://github.com/ImageMagick/ImageMagick) 2. [LibGD](https://github.com/libgd/libgd) 3. [FontView](https://github.com/googlei18n/fontview) 4. [Pillow](https://github.com/python-pillow) 5. [mplcairo](https://github.com/anntzer/mplcairo) 6. [CEGUI](https://github.com/cegui/cegui) The following projects have patches to support complex text layout using Raqm: 2. SDL_ttf: https://bugzilla.libsdl.org/show_bug.cgi?id=3211 3. Pygame: https://bitbucket.org/pygame/pygame/pull-requests/52 4. Blender: https://developer.blender.org/D1809 [1]: https://github.com/fribidi/fribidi [2]: https://github.com/Tehreer/SheenBidi [3]: https://github.com/harfbuzz/harfbuzz [4]: https://freetype.org/ [5]: https://www.gtk.org/gtk-doc libraqm-0.10.1/docs/000077500000000000000000000000001441556702000141545ustar00rootroot00000000000000libraqm-0.10.1/docs/meson.build000066400000000000000000000012131441556702000163130ustar00rootroot00000000000000gtkdoc = find_program('gtkdoc-scan', required: false) if not gtkdoc.found() error('MESON_SKIP_TEST gtkdoc not found.') endif version_xml = configure_file( input: 'version.xml.in', output: 'version.xml', configuration: version_h, ) gnome = import('gnome') gnome.gtkdoc( 'raqm', main_xml: 'raqm-docs.xml', src_dir: [ meson.project_source_root() / 'src', meson.project_build_root() / 'src', ], ignore_headers: ['config.h'], content_files: [version_xml], mkdb_args: ['--xml-mode', '--output-format=xml'], install: true, scan_args: ['--ignore-decorators=RAQM_API'], check: true, ) libraqm-0.10.1/docs/raqm-docs.xml000066400000000000000000000041661441556702000165730ustar00rootroot00000000000000 ]> Raqm Reference Manual This document is for Raqm &version;. The latest version of this documentation can be found on-line at https://host-oman.github.io/libraqm/. Raqm API API Index Index of new symbols in 0.1.x Index of new symbols in 0.2.x Index of new symbols in 0.3.x Index of new symbols in 0.6.x Index of new symbols in 0.7.x Index of new symbols in 0.8.x Index of new symbols in 0.9.x Index of new symbols in 0.10.x libraqm-0.10.1/docs/raqm-sections.txt000066400000000000000000000013771441556702000175120ustar00rootroot00000000000000
raqm raqm_create raqm_reference raqm_destroy raqm_clear_contents raqm_set_text raqm_set_text_utf8 raqm_set_text_utf16 raqm_set_par_direction raqm_set_language raqm_set_freetype_face raqm_set_freetype_face_range raqm_set_freetype_load_flags raqm_set_freetype_load_flags_range raqm_set_letter_spacing_range raqm_set_word_spacing_range raqm_set_invisible_glyph raqm_add_font_feature raqm_layout raqm_get_glyphs raqm_get_par_resolved_direction raqm_get_direction_at_index raqm_index_to_position raqm_position_to_index raqm_version raqm_version_atleast raqm_version_string RAQM_VERSION_ATLEAST RAQM_VERSION_MAJOR RAQM_VERSION_MICRO RAQM_VERSION_MINOR RAQM_VERSION_STRING raqm_t raqm_direction_t raqm_glyph_t RAQM_API
libraqm-0.10.1/docs/version.xml.in000066400000000000000000000000171441556702000167660ustar00rootroot00000000000000@RAQM_VERSION@ libraqm-0.10.1/meson.build000066400000000000000000000050311441556702000153650ustar00rootroot00000000000000project( 'raqm', 'c', version: '0.10.1', default_options: [ 'c_std=c99', 'cpp_std=c++11', ], meson_version: '>= 0.56.0', ) raqm_version = meson.project_version().split('.') cc = meson.get_compiler('c') # FreeType version ([libtool, actual] from its docs/VERSIONS.TXT) # ([pkg-config, cmake]) freetype_version = ['24.0.18', '2.11.0'] # Set freetype as a dummy, for now freetype = dependency('', required: false) if cc.get_argument_syntax() == 'msvc' freetype = dependency( 'freetype', version: '>= @0@'.format(freetype_version[1]), method: 'cmake', required: false, ) if not freetype.found() freetype_lib = cc.find_library( 'freetype', has_headers: ['freetype/freetype.h'], required: false, ) if cc.has_function('FT_Reference_Face', dependencies: freetype_lib) freetype = freetype_lib else message('Your FreeType2 installation is too old, falling back...') endif endif endif if not freetype.found() freetype = dependency( 'freetype2', version: '>= @0@'.format(freetype_version[0]), method: 'pkg-config', fallback: ['freetype2', 'freetype_dep'], default_options: [ 'png=disabled', 'bzip2=disabled', 'zlib=disabled', 'harfbuzz=disabled', ], ) endif harfbuzz = dependency( 'harfbuzz', version: '>= 3.0.0', fallback: ['harfbuzz', 'libharfbuzz_dep'], default_options: [ 'freetype=enabled', 'glib=disabled', 'gobject=disabled', 'cairo=disabled', 'icu=disabled', 'tests=disabled', ], ) fribidi = dependency('', required: false) sheenbidi = dependency('', required: false) if get_option('sheenbidi') sheenbidi = dependency( 'sheenbidi', fallback: ['sheenbidi', 'sheenbidi_dep'], ) else fribidi = dependency( 'fribidi', version: '>= 1.0.6', fallback: ['fribidi', 'libfribidi_dep'], default_options: ['docs=false', 'tests=false'], ) endif deps = [freetype, harfbuzz, fribidi, sheenbidi] subdir('src') subdir('tests') if get_option('docs') subdir('docs') endif pkg = import('pkgconfig') pkg.generate( filebase: meson.project_name(), version: meson.project_version(), name: meson.project_name(), description: 'A library for complex text layout', url: 'https://github.com/HOST-Oman/libraqm', libraries: libraqm, ) libraqm-0.10.1/meson_options.txt000066400000000000000000000003531441556702000166620ustar00rootroot00000000000000option( 'docs', description: 'Build API reference using GTK-Doc', type: 'boolean', value: false, ) option( 'sheenbidi', description: 'Use SheenBidi instead of Fribidi', type: 'boolean', value: false, ) libraqm-0.10.1/src/000077500000000000000000000000001441556702000140135ustar00rootroot00000000000000libraqm-0.10.1/src/meson.build000066400000000000000000000024031441556702000161540ustar00rootroot00000000000000cc = meson.get_compiler('c') config_h = configuration_data() if cc.get_argument_syntax() == 'msvc' library_type = get_option('default_library') if library_type == 'shared' or library_type == 'both' config_h.set('RAQM_API', '__declspec (dllexport)') endif endif if sheenbidi.found() config_h.set('RAQM_SHEENBIDI', 1) endif configure_file(output: 'config.h', configuration: config_h) version_h = configuration_data() version_h.set('RAQM_VERSION_MAJOR', raqm_version[0].to_int()) version_h.set('RAQM_VERSION_MINOR', raqm_version[1].to_int()) version_h.set('RAQM_VERSION_MICRO', raqm_version[2].to_int()) version_h.set('RAQM_VERSION', meson.project_version()) configure_file( input: 'raqm-version.h.in', output: 'raqm-version.h', configuration: version_h, install: true, install_dir: join_paths(get_option('includedir')), ) raqm_headers = files('raqm.h') install_headers(raqm_headers) libraqm = library( 'raqm', 'raqm.c', 'raqm.h', version: meson.project_version(), dependencies: deps, c_args: ['-DHAVE_CONFIG_H'], install: true, ) libraqm_test = static_library( 'raqm-test', 'raqm.c', 'raqm.h', dependencies: deps, c_args: ['-DRAQM_TESTING', '-DHAVE_CONFIG_H'], install: false, ) libraqm-0.10.1/src/raqm-version.h.in000066400000000000000000000031061441556702000172140ustar00rootroot00000000000000/* * Copyright © 2011 Google, Inc. * * This is part of HarfBuzz, a text shaping library. * * Permission is hereby granted, without written agreement and without * license or royalty fees, to use, copy, modify, and distribute this * software and its documentation for any purpose, provided that the * above copyright notice and the following two paragraphs appear in * all copies of this software. * * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. * * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * * Google Author(s): Behdad Esfahbod */ #ifndef _RAQM_H_IN_ #error "Include instead." #endif #ifndef _RAQM_VERSION_H_ #define _RAQM_VERSION_H_ #define RAQM_VERSION_MAJOR @RAQM_VERSION_MAJOR@ #define RAQM_VERSION_MINOR @RAQM_VERSION_MINOR@ #define RAQM_VERSION_MICRO @RAQM_VERSION_MICRO@ #define RAQM_VERSION_STRING "@RAQM_VERSION@" #define RAQM_VERSION_ATLEAST(major,minor,micro) \ ((major)*10000+(minor)*100+(micro) <= \ RAQM_VERSION_MAJOR*10000+RAQM_VERSION_MINOR*100+RAQM_VERSION_MICRO) #endif /* _RAQM_VERSION_H_ */ libraqm-0.10.1/src/raqm.c000066400000000000000000002067041441556702000151300ustar00rootroot00000000000000/* * Copyright © 2015 Information Technology Authority (ITA) * Copyright © 2016-2023 Khaled Hosny * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #ifdef RAQM_SHEENBIDI #include #else #include #endif #include #include #include "raqm.h" /** * SECTION:raqm * @title: Raqm * @short_description: A library for complex text layout * @include: raqm.h * * Raqm is a light weight text layout library with strong emphasis on * supporting languages and writing systems that require complex text layout. * * The main object in Raqm API is #raqm_t, it stores all the states of the * input text, its properties, and the output of the layout process. * * To start, you create a #raqm_t object, add text and font(s) to it, run the * layout process, and finally query about the output. For example: * * |[ * #include "raqm.h" * * int * main (int argc, char *argv[]) * { * const char *fontfile; * const char *text; * const char *direction; * const char *language; * int ret = 1; * * FT_Library library = NULL; * FT_Face face = NULL; * * if (argc < 5) * { * printf ("Usage: %s FONT_FILE TEXT DIRECTION LANG\n", argv[0]); * return 1; * } * * fontfile = argv[1]; * text = argv[2]; * direction = argv[3]; * language = argv[4]; * * if (FT_Init_FreeType (&library) == 0) * { * if (FT_New_Face (library, fontfile, 0, &face) == 0) * { * if (FT_Set_Char_Size (face, face->units_per_EM, 0, 0, 0) == 0) * { * raqm_t *rq = raqm_create (); * if (rq != NULL) * { * raqm_direction_t dir = RAQM_DIRECTION_DEFAULT; * * if (strcmp (direction, "r") == 0) * dir = RAQM_DIRECTION_RTL; * else if (strcmp (direction, "l") == 0) * dir = RAQM_DIRECTION_LTR; * * if (raqm_set_text_utf8 (rq, text, strlen (text)) && * raqm_set_freetype_face (rq, face) && * raqm_set_par_direction (rq, dir) && * raqm_set_language (rq, language, 0, strlen (text)) && * raqm_layout (rq)) * { * size_t count, i; * raqm_glyph_t *glyphs = raqm_get_glyphs (rq, &count); * * ret = !(glyphs != NULL || count == 0); * * printf("glyph count: %zu\n", count); * for (i = 0; i < count; i++) * { * printf ("gid#%d off: (%d, %d) adv: (%d, %d) idx: %d\n", * glyphs[i].index, * glyphs[i].x_offset, * glyphs[i].y_offset, * glyphs[i].x_advance, * glyphs[i].y_advance, * glyphs[i].cluster); * } * } * * raqm_destroy (rq); * } * } * * FT_Done_Face (face); * } * * FT_Done_FreeType (library); * } * * return ret; * } * ]| * To compile this example: * |[ * cc -o test test.c `pkg-config --libs --cflags raqm` * ]| */ /* For enabling debug mode */ /*#define RAQM_DEBUG 1*/ #ifdef RAQM_DEBUG #define RAQM_DBG(...) fprintf (stderr, __VA_ARGS__) #else #define RAQM_DBG(...) #endif #ifdef RAQM_TESTING # define RAQM_TEST(...) printf (__VA_ARGS__) # define SCRIPT_TO_STRING(script) \ char buff[5]; \ hb_tag_to_string (hb_script_to_iso15924_tag (script), buff); \ buff[4] = '\0'; #else # define RAQM_TEST(...) #endif #define RAQM_BIDI_LEVEL_IS_RTL(level) \ ((level) & 1) #ifdef RAQM_SHEENBIDI typedef SBLevel _raqm_bidi_level_t; #else typedef FriBidiLevel _raqm_bidi_level_t; #endif typedef struct { FT_Face ftface; int ftloadflags; hb_language_t lang; hb_script_t script; int spacing_after; } _raqm_text_info; typedef struct _raqm_run raqm_run_t; struct _raqm { int ref_count; uint32_t *text; uint16_t *text_utf16; char *text_utf8; size_t text_len; size_t text_capacity_bytes; _raqm_text_info *text_info; raqm_direction_t base_dir; raqm_direction_t resolved_dir; hb_feature_t *features; size_t features_len; raqm_run_t *runs; raqm_run_t *runs_pool; raqm_glyph_t *glyphs; size_t glyphs_capacity; int invisible_glyph; }; struct _raqm_run { uint32_t pos; uint32_t len; hb_direction_t direction; hb_script_t script; hb_font_t *font; hb_buffer_t *buffer; raqm_run_t *next; }; static size_t _raqm_encoding_to_u32_index (raqm_t *rq, size_t index); static bool _raqm_allowed_grapheme_boundary (hb_codepoint_t l_char, hb_codepoint_t r_char); static void _raqm_init_text_info (raqm_t *rq) { hb_language_t default_lang = hb_language_get_default (); for (size_t i = 0; i < rq->text_len; i++) { rq->text_info[i].ftface = NULL; rq->text_info[i].ftloadflags = -1; rq->text_info[i].lang = default_lang; rq->text_info[i].script = HB_SCRIPT_INVALID; rq->text_info[i].spacing_after = 0; } } static void _raqm_release_text_info (raqm_t *rq) { if (!rq->text_info) return; for (size_t i = 0; i < rq->text_len; i++) { if (rq->text_info[i].ftface) FT_Done_Face (rq->text_info[i].ftface); } } static bool _raqm_compare_text_info (_raqm_text_info a, _raqm_text_info b) { if (a.ftface != b.ftface) return false; if (a.ftloadflags != b.ftloadflags) return false; if (a.lang != b.lang) return false; if (a.script != b.script) return false; /* Spacing shouldn't break runs, so we don't compare them here. */ return true; } static void _raqm_free_text(raqm_t* rq) { free (rq->text); rq->text = NULL; rq->text_info = NULL; rq->text_utf8 = NULL; rq->text_utf16 = NULL; rq->text_len = 0; rq->text_capacity_bytes = 0; } static bool _raqm_alloc_text(raqm_t *rq, size_t len, bool need_utf8, bool need_utf16) { /* Allocate contiguous memory block for texts and text_info */ size_t mem_size = (sizeof (uint32_t) + sizeof (_raqm_text_info)) * len; if (need_utf8) mem_size += sizeof (char) * len; else if (need_utf16) mem_size += sizeof (uint16_t) * len; if (mem_size > rq->text_capacity_bytes) { void* new_mem = realloc (rq->text, mem_size); if (!new_mem) { _raqm_free_text (rq); return false; } rq->text_capacity_bytes = mem_size; rq->text = new_mem; } rq->text_info = (_raqm_text_info*)(rq->text + len); rq->text_utf8 = need_utf8 ? (char*)(rq->text_info + len) : NULL; rq->text_utf16 = need_utf16 ? (uint16_t*)(rq->text_info + len) : NULL; return true; } static raqm_run_t* _raqm_alloc_run (raqm_t *rq) { raqm_run_t *run = rq->runs_pool; if (run) { rq->runs_pool = run->next; } else { run = malloc (sizeof (raqm_run_t)); run->font = NULL; run->buffer = NULL; } run->pos = 0; run->len = 0; run->direction = HB_DIRECTION_INVALID; run->script = HB_SCRIPT_INVALID; run->next = NULL; return run; } static void _raqm_free_runs (raqm_run_t *runs) { while (runs) { raqm_run_t *run = runs; runs = runs->next; if (run->buffer) hb_buffer_destroy (run->buffer); if (run->font) hb_font_destroy (run->font); free (run); } } /** * raqm_create: * * Creates a new #raqm_t with all its internal states initialized to their * defaults. * * Return value: * A newly allocated #raqm_t with a reference count of 1. The initial reference * count should be released with raqm_destroy() when you are done using the * #raqm_t. Returns `NULL` in case of error. * * Since: 0.1 */ raqm_t * raqm_create (void) { raqm_t *rq; rq = malloc (sizeof (raqm_t)); if (!rq) return NULL; rq->ref_count = 1; rq->base_dir = RAQM_DIRECTION_DEFAULT; rq->resolved_dir = RAQM_DIRECTION_DEFAULT; rq->features = NULL; rq->features_len = 0; rq->invisible_glyph = 0; rq->text = NULL; rq->text_utf16 = NULL; rq->text_utf8 = NULL; rq->text_info = NULL; rq->text_capacity_bytes = 0; rq->text_len = 0; rq->runs = NULL; rq->runs_pool = NULL; rq->glyphs = NULL; rq->glyphs_capacity = 0; return rq; } /** * raqm_reference: * @rq: a #raqm_t. * * Increases the reference count on @rq by one. This prevents @rq from being * destroyed until a matching call to raqm_destroy() is made. * * Return value: * The referenced #raqm_t. * * Since: 0.1 */ raqm_t * raqm_reference (raqm_t *rq) { if (rq) rq->ref_count++; return rq; } /** * raqm_destroy: * @rq: a #raqm_t. * * Decreases the reference count on @rq by one. If the result is zero, then @rq * and all associated resources are freed. * See raqm_reference(). * * Since: 0.1 */ void raqm_destroy (raqm_t *rq) { if (!rq || --rq->ref_count != 0) return; _raqm_release_text_info (rq); _raqm_free_text (rq); _raqm_free_runs (rq->runs); _raqm_free_runs (rq->runs_pool); free (rq->glyphs); free (rq->features); free (rq); } /** * raqm_clear_contents: * @rq: a #raqm_t. * * Clears internal state of previously used raqm_t object, making it ready * for reuse and keeping some of allocated memory to increase performance. * * Since: 0.9 */ void raqm_clear_contents (raqm_t *rq) { if (!rq) return; _raqm_release_text_info (rq); /* Return allocated runs to the pool, keep hb buffers for reuse */ raqm_run_t *run = rq->runs; while (run) { if (run->buffer) hb_buffer_reset (run->buffer); if (run->font) { hb_font_destroy (run->font); run->font = NULL; } if (!run->next) { run->next = rq->runs_pool; rq->runs_pool = rq->runs; rq->runs = NULL; break; } run = run->next; } rq->text_len = 0; rq->resolved_dir = RAQM_DIRECTION_DEFAULT; } /** * raqm_set_text: * @rq: a #raqm_t. * @text: a UTF-32 encoded text string. * @len: the length of @text. * * Adds @text to @rq to be used for layout. It must be a valid UTF-32 text, any * invalid character will be replaced with U+FFFD. The text should typically * represent a full paragraph, since doing the layout of chunks of text * separately can give improper output. * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.1 */ bool raqm_set_text (raqm_t *rq, const uint32_t *text, size_t len) { if (!rq || !text) return false; /* Call raqm_clear_contents to reuse this raqm_t */ if (rq->text_len) return false; /* Empty string, don’t fail but do nothing */ if (!len) return true; if (!_raqm_alloc_text(rq, len, false, false)) return false; rq->text_len = len; memcpy (rq->text, text, sizeof (uint32_t) * len); _raqm_init_text_info (rq); return true; } static void * _raqm_get_utf8_codepoint (const void *str, uint32_t *out_codepoint) { const char *s = (const char *)str; if (0xf0 == (0xf8 & s[0])) { *out_codepoint = ((0x07 & s[0]) << 18) | ((0x3f & s[1]) << 12) | ((0x3f & s[2]) << 6) | (0x3f & s[3]); s += 4; } else if (0xe0 == (0xf0 & s[0])) { *out_codepoint = ((0x0f & s[0]) << 12) | ((0x3f & s[1]) << 6) | (0x3f & s[2]); s += 3; } else if (0xc0 == (0xe0 & s[0])) { *out_codepoint = ((0x1f & s[0]) << 6) | (0x3f & s[1]); s += 2; } else { *out_codepoint = s[0]; s += 1; } return (void *)s; } static size_t _raqm_u8_to_u32 (const char *text, size_t len, uint32_t *unicode) { size_t in_len = 0; uint32_t *out_utf32 = unicode; const char *in_utf8 = text; while ((*in_utf8 != '\0') && (in_len < len)) { in_utf8 = _raqm_get_utf8_codepoint (in_utf8, out_utf32); ++out_utf32; ++in_len; } return (out_utf32 - unicode); } static void * _raqm_get_utf16_codepoint (const void *str, uint32_t *out_codepoint) { const uint16_t *s = (const uint16_t *)str; if (s[0] > 0xD800 && s[0] < 0xDBFF) { if (s[1] > 0xDC00 && s[1] < 0xDFFF) { uint32_t X = ((s[0] & ((1 << 6) -1)) << 10) | (s[1] & ((1 << 10) -1)); uint32_t W = (s[0] >> 6) & ((1 << 5) - 1); *out_codepoint = (W+1) << 16 | X; s += 2; } else { /* A single high surrogate, this is an error. */ *out_codepoint = s[0]; s += 1; } } else { *out_codepoint = s[0]; s += 1; } return (void *)s; } static size_t _raqm_u16_to_u32 (const uint16_t *text, size_t len, uint32_t *unicode) { size_t in_len = 0; uint32_t *out_utf32 = unicode; const uint16_t *in_utf16 = text; while ((*in_utf16 != '\0') && (in_len < len)) { in_utf16 = _raqm_get_utf16_codepoint (in_utf16, out_utf32); ++out_utf32; ++in_len; } return (out_utf32 - unicode); } /** * raqm_set_text_utf8: * @rq: a #raqm_t. * @text: a UTF-8 encoded text string. * @len: the length of @text in UTF-8 bytes. * * Same as raqm_set_text(), but for text encoded in UTF-8 encoding. * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.1 */ bool raqm_set_text_utf8 (raqm_t *rq, const char *text, size_t len) { if (!rq || !text) return false; /* Call raqm_clear_contents to reuse this raqm_t */ if (rq->text_len) return false; /* Empty string, don’t fail but do nothing */ if (!len) return true; if (!_raqm_alloc_text(rq, len, true, false)) return false; rq->text_len = _raqm_u8_to_u32 (text, len, rq->text); memcpy (rq->text_utf8, text, sizeof (char) * len); _raqm_init_text_info (rq); return true; } /** * raqm_set_text_utf16: * @rq: a #raqm_t. * @text: a UTF-16 encoded text string. * @len: the length of @text in UTF-16 shorts. * * Same as raqm_set_text(), but for text encoded in UTF-16 encoding. * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.10 */ bool raqm_set_text_utf16 (raqm_t *rq, const uint16_t *text, size_t len) { if (!rq || !text) return false; /* Call raqm_clear_contents to reuse this raqm_t */ if (rq->text_len) return false; /* Empty string, don’t fail but do nothing */ if (!len) return true; if (!_raqm_alloc_text(rq, len, false, true)) return false; rq->text_len = _raqm_u16_to_u32 (text, len, rq->text); memcpy (rq->text_utf16, text, sizeof (uint16_t) * len); _raqm_init_text_info (rq); return true; } /** * raqm_set_par_direction: * @rq: a #raqm_t. * @dir: the direction of the paragraph. * * Sets the paragraph direction, also known as block direction in CSS. For * horizontal text, this controls the overall direction in the Unicode * Bidirectional Algorithm, so when the text is mainly right-to-left (with or * without some left-to-right) text, then the base direction should be set to * #RAQM_DIRECTION_RTL and vice versa. * * The default is #RAQM_DIRECTION_DEFAULT, which determines the paragraph * direction based on the first character with strong bidi type (see [rule * P2](https://unicode.org/reports/tr9/#P2) in Unicode Bidirectional Algorithm), * which can be good enough for many cases but has problems when a mainly * right-to-left paragraph starts with a left-to-right character and vice versa * as the detected paragraph direction will be the wrong one, or when text does * not contain any characters with string bidi types (e.g. only punctuation or * numbers) as this will default to left-to-right paragraph direction. * * For vertical, top-to-bottom text, #RAQM_DIRECTION_TTB should be used. Raqm, * however, provides limited vertical text support and does not handle rotated * horizontal text in vertical text, instead everything is treated as vertical * text. * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.1 */ bool raqm_set_par_direction (raqm_t *rq, raqm_direction_t dir) { if (!rq) return false; rq->base_dir = dir; return true; } /** * raqm_set_language: * @rq: a #raqm_t. * @lang: a BCP47 language code. * @start: index of first character that should use @face. * @len: number of characters using @face. * * Sets a [BCP47 language * code](https://www.w3.org/International/articles/language-tags/) to be used * for @len-number of characters staring at @start. The @start and @len are * input string array indices (i.e. counting bytes in UTF-8 and scaler values * in UTF-32). * * This method can be used repeatedly to set different languages for different * parts of the text. * * Return value: * `true` if no errors happened, `false` otherwise. * * Stability: * Unstable * * Since: 0.2 */ bool raqm_set_language (raqm_t *rq, const char *lang, size_t start, size_t len) { hb_language_t language; size_t end; if (!rq) return false; if (!rq->text_len) return true; end = _raqm_encoding_to_u32_index (rq, start + len); start = _raqm_encoding_to_u32_index (rq, start); if (start >= rq->text_len || end > rq->text_len) return false; if (!rq->text_info) return false; language = hb_language_from_string (lang, -1); for (size_t i = start; i < end; i++) { rq->text_info[i].lang = language; } return true; } static bool _raqm_add_font_feature (raqm_t *rq, hb_feature_t fea) { void* new_features; if (!rq) return false; new_features = realloc (rq->features, sizeof (hb_feature_t) * (rq->features_len + 1)); if (!new_features) return false; if (fea.start != HB_FEATURE_GLOBAL_START) fea.start = _raqm_encoding_to_u32_index (rq, fea.start); if (fea.end != HB_FEATURE_GLOBAL_END) fea.end = _raqm_encoding_to_u32_index (rq, fea.end); rq->features = new_features; rq->features[rq->features_len] = fea; rq->features_len++; return true; } /** * raqm_add_font_feature: * @rq: a #raqm_t. * @feature: (transfer none): a font feature string. * @len: length of @feature, -1 for `NULL`-terminated. * * Adds a font feature to be used by the #raqm_t during text layout. This is * usually used to turn on optional font features that are not enabled by * default, for example `dlig` or `ss01`, but can be also used to turn off * default font features. * * @feature is string representing a single font feature, in the syntax * understood by hb_feature_from_string(). * * This function can be called repeatedly, new features will be appended to the * end of the features list and can potentially override previous features. * * Return value: * `true` if parsing @feature succeeded, `false` otherwise. * * Since: 0.1 */ bool raqm_add_font_feature (raqm_t *rq, const char *feature, int len) { hb_bool_t ok; hb_feature_t fea; if (!rq) return false; ok = hb_feature_from_string (feature, len, &fea); if (ok) _raqm_add_font_feature (rq, fea); return ok; } static hb_font_t * _raqm_create_hb_font (raqm_t *rq, FT_Face face, int loadflags) { hb_font_t *font = hb_ft_font_create_referenced (face); if (loadflags >= 0) hb_ft_font_set_load_flags (font, loadflags); return font; } static bool _raqm_set_freetype_face (raqm_t *rq, FT_Face face, size_t start, size_t end) { if (!rq) return false; if (!rq->text_len) return true; if (start >= rq->text_len || end > rq->text_len) return false; if (!rq->text_info) return false; for (size_t i = start; i < end; i++) { if (rq->text_info[i].ftface) FT_Done_Face (rq->text_info[i].ftface); rq->text_info[i].ftface = face; FT_Reference_Face (face); } return true; } /** * raqm_set_freetype_face: * @rq: a #raqm_t. * @face: an #FT_Face. * * Sets an #FT_Face to be used for all characters in @rq. * * See also raqm_set_freetype_face_range(). * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.1 */ bool raqm_set_freetype_face (raqm_t *rq, FT_Face face) { return _raqm_set_freetype_face (rq, face, 0, rq->text_len); } /** * raqm_set_freetype_face_range: * @rq: a #raqm_t. * @face: an #FT_Face. * @start: index of first character that should use @face from the input string. * @len: number of elements using @face. * * Sets an #FT_Face to be used for @len-number of characters staring at @start. * The @start and @len are input string array indices, counting elements * according to the underlying encoding. @start must always be aligned to the * start of an encoded codepoint, and @len must always end at a codepoint's * final element. * * This method can be used repeatedly to set different faces for different * parts of the text. It is the responsibility of the client to make sure that * face ranges cover the whole text, and is properly aligned. * * See also raqm_set_freetype_face(). * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.1 */ bool raqm_set_freetype_face_range (raqm_t *rq, FT_Face face, size_t start, size_t len) { size_t end; if (!rq) return false; if (!rq->text_len) return true; end = _raqm_encoding_to_u32_index (rq, start + len); start = _raqm_encoding_to_u32_index (rq, start); return _raqm_set_freetype_face (rq, face, start, end); } static bool _raqm_set_freetype_load_flags (raqm_t *rq, int flags, size_t start, size_t end) { if (!rq) return false; if (!rq->text_len) return true; if (start >= rq->text_len || end > rq->text_len) return false; if (!rq->text_info) return false; for (size_t i = start; i < end; i++) rq->text_info[i].ftloadflags = flags; return true; } /** * raqm_set_freetype_load_flags: * @rq: a #raqm_t. * @flags: FreeType load flags. * * Sets the load flags passed to FreeType when loading glyphs, should be the * same flags used by the client when rendering FreeType glyphs. * * This requires version of HarfBuzz that has hb_ft_font_set_load_flags(), for * older version the flags will be ignored. * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.3 */ bool raqm_set_freetype_load_flags (raqm_t *rq, int flags) { return _raqm_set_freetype_load_flags(rq, flags, 0, rq->text_len); } /** * raqm_set_freetype_load_flags_range: * @rq: a #raqm_t. * @flags: FreeType load flags. * @start: index of first character that should use @flags. * @len: number of characters using @flags. * * Sets the load flags passed to FreeType when loading glyphs for @len-number * of characters staring at @start. Flags should be the same as used by the * client when rendering corresponding FreeType glyphs. The @start and @len * are input string array indices (i.e. counting bytes in UTF-8 and scaler * values in UTF-32). * * This method can be used repeatedly to set different flags for different * parts of the text. It is the responsibility of the client to make sure that * flag ranges cover the whole text. * * This requires version of HarfBuzz that has hb_ft_font_set_load_flags(), for * older version the flags will be ignored. * * See also raqm_set_freetype_load_flags(). * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.9 */ bool raqm_set_freetype_load_flags_range (raqm_t *rq, int flags, size_t start, size_t len) { size_t end; if (!rq) return false; if (!rq->text_len) return true; end = _raqm_encoding_to_u32_index (rq, start + len); start = _raqm_encoding_to_u32_index (rq, start); return _raqm_set_freetype_load_flags (rq, flags, start, end); } static bool _raqm_set_spacing (raqm_t *rq, int spacing, bool word_spacing, size_t start, size_t end) { if (!rq) return false; if (!rq->text_len) return true; if (start >= rq->text_len || end > rq->text_len) return false; if (!rq->text_info) return false; for (size_t i = start; i < end; i++) { bool set_spacing = i == 0; if (!set_spacing) set_spacing = _raqm_allowed_grapheme_boundary (rq->text[i-1], rq->text[i]); if (set_spacing) { if (word_spacing) { if (_raqm_allowed_grapheme_boundary (rq->text[i], rq->text[i+1])) { /* CSS word seperators, word spacing is only applied on these.*/ if (rq->text[i] == 0x0020 || /* Space */ rq->text[i] == 0x00A0 || /* No Break Space */ rq->text[i] == 0x1361 || /* Ethiopic Word Space */ rq->text[i] == 0x10100 || /* Aegean Word Seperator Line */ rq->text[i] == 0x10101 || /* Aegean Word Seperator Dot */ rq->text[i] == 0x1039F || /* Ugaric Word Divider */ rq->text[i] == 0x1091F) /* Phoenician Word Separator */ { rq->text_info[i].spacing_after = spacing; } } } else { rq->text_info[i].spacing_after = spacing; } } } return true; } /** * raqm_set_letter_spacing_range: * @rq: a #raqm_t. * @spacing: amount of spacing in Freetype Font Units (26.6 format). * @start: index of first character that should use @spacing. * @len: number of characters using @spacing. * * Set the letter spacing or tracking for a given range, the value * will be added onto the advance and offset for RTL, and the advance for * other directions. Letter spacing will be applied between characters, so * the last character will not have spacing applied after it. * Note that not all scripts have a letter-spacing tradition, * for example, Arabic does not, while Devanagari does. * * This will also add “disable `liga`, `clig`, `hlig`, `dlig`, and `calt`” font * features to the internal features list, so call this function after setting * the font features for best spacing results. * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.10 */ bool raqm_set_letter_spacing_range(raqm_t *rq, int spacing, size_t start, size_t len) { size_t end; if (!rq) return false; if (!rq->text_len) return true; end = start + len - 1; if (spacing != 0) { #define NUM_TAGS 5 static char *tags[NUM_TAGS] = { "clig", "liga", "hlig", "dlig", "calt" }; for (size_t i = 0; i < NUM_TAGS; i++) { hb_feature_t fea = { hb_tag_from_string(tags[i], 5), 0, start, end }; _raqm_add_font_feature (rq, fea); } #undef NUM_TAGS } start = _raqm_encoding_to_u32_index (rq, start); end = _raqm_encoding_to_u32_index (rq, end); return _raqm_set_spacing (rq, spacing, false, start, end); } /** * raqm_set_word_spacing_range: * @rq: a #raqm_t. * @spacing: amount of spacing in Freetype Font Units (26.6 format). * @start: index of first character that should use @spacing. * @len: number of characters using @spacing. * * Set the word spacing for a given range. Word spacing will only be applied to * 'word separator' characters, such as 'space', 'no break space' and * Ethiopic word separator'. * The value will be added onto the advance and offset for RTL, and the advance * for other directions. * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.10 */ bool raqm_set_word_spacing_range(raqm_t *rq, int spacing, size_t start, size_t len) { size_t end; if (!rq) return false; if (!rq->text_len) return true; end = _raqm_encoding_to_u32_index (rq, start + len); start = _raqm_encoding_to_u32_index (rq, start); return _raqm_set_spacing (rq, spacing, true, start, end); } /** * raqm_set_invisible_glyph: * @rq: a #raqm_t. * @gid: glyph id to use for invisible glyphs. * * Sets the glyph id to be used for invisible glyhphs. * * If @gid is negative, invisible glyphs will be suppressed from the output. * * If @gid is zero, invisible glyphs will be rendered as space. * * If @gid is a positive number, it will be used for invisible glyphs. * * Return value: * `true` if no errors happened, `false` otherwise. * * Since: 0.6 */ bool raqm_set_invisible_glyph (raqm_t *rq, int gid) { if (!rq) return false; rq->invisible_glyph = gid; return true; } static bool _raqm_itemize (raqm_t *rq); static bool _raqm_shape (raqm_t *rq); /** * raqm_layout: * @rq: a #raqm_t. * * Run the text layout process on @rq. This is the main Raqm function where the * Unicode Bidirectional Text algorithm will be applied to the text in @rq, * text shaping, and any other part of the layout process. * * Return value: * `true` if the layout process was successful, `false` otherwise. * * Since: 0.1 */ bool raqm_layout (raqm_t *rq) { if (!rq) return false; if (!rq->text_len) return true; if (!rq->text_info) return false; for (size_t i = 0; i < rq->text_len; i++) { if (!rq->text_info[i].ftface) return false; } if (!_raqm_itemize (rq)) return false; if (!_raqm_shape (rq)) return false; return true; } static uint32_t _raqm_u32_to_u8_index (raqm_t *rq, uint32_t index); static uint32_t _raqm_u32_to_u16_index (raqm_t *rq, uint32_t index); /** * raqm_get_glyphs: * @rq: a #raqm_t. * @length: (out): output array length. * * Gets the final result of Raqm layout process, an array of #raqm_glyph_t * containing the glyph indices in the font, their positions and other possible * information. * * Return value: (transfer none): * An array of #raqm_glyph_t, or `NULL` in case of error. This is owned by @rq * and must not be freed. * * Since: 0.1 */ raqm_glyph_t * raqm_get_glyphs (raqm_t *rq, size_t *length) { size_t count = 0; if (!rq || !rq->runs || !length) { if (length) *length = 0; return NULL; } for (raqm_run_t *run = rq->runs; run != NULL; run = run->next) count += hb_buffer_get_length (run->buffer); if (count > rq->glyphs_capacity) { void* new_mem = realloc (rq->glyphs, sizeof (raqm_glyph_t) * count); if (!new_mem) { *length = 0; return NULL; } rq->glyphs = new_mem; rq->glyphs_capacity = count; } *length = count; RAQM_TEST ("Glyph information:\n"); count = 0; for (raqm_run_t *run = rq->runs; run != NULL; run = run->next) { size_t len; hb_glyph_info_t *info; hb_glyph_position_t *position; len = hb_buffer_get_length (run->buffer); info = hb_buffer_get_glyph_infos (run->buffer, NULL); position = hb_buffer_get_glyph_positions (run->buffer, NULL); for (size_t i = 0; i < len; i++) { rq->glyphs[count + i].index = info[i].codepoint; rq->glyphs[count + i].cluster = info[i].cluster; rq->glyphs[count + i].x_advance = position[i].x_advance; rq->glyphs[count + i].y_advance = position[i].y_advance; rq->glyphs[count + i].x_offset = position[i].x_offset; rq->glyphs[count + i].y_offset = position[i].y_offset; rq->glyphs[count + i].ftface = rq->text_info[info[i].cluster].ftface; RAQM_TEST ("glyph [%d]\tx_offset: %d\ty_offset: %d\tx_advance: %d\tfont: %s\n", rq->glyphs[count + i].index, rq->glyphs[count + i].x_offset, rq->glyphs[count + i].y_offset, rq->glyphs[count + i].x_advance, rq->glyphs[count + i].ftface->family_name); } count += len; } if (rq->text_utf8) { #ifdef RAQM_TESTING RAQM_TEST ("\nUTF-32 clusters:"); for (size_t i = 0; i < count; i++) RAQM_TEST (" %02d", rq->glyphs[i].cluster); RAQM_TEST ("\n"); #endif for (size_t i = 0; i < count; i++) rq->glyphs[i].cluster = _raqm_u32_to_u8_index (rq, rq->glyphs[i].cluster); #ifdef RAQM_TESTING RAQM_TEST ("UTF-8 clusters: "); for (size_t i = 0; i < count; i++) RAQM_TEST (" %02d", rq->glyphs[i].cluster); RAQM_TEST ("\n"); #endif } else if (rq->text_utf16) { for (size_t i = 0; i < count; i++) rq->glyphs[i].cluster = _raqm_u32_to_u16_index (rq, rq->glyphs[i].cluster); } return rq->glyphs; } /** * raqm_get_par_resolved_direction: * @rq: a #raqm_t. * * Gets the resolved direction of the paragraph; * * Return value: * The #raqm_direction_t specifying the resolved direction of text, * or #RAQM_DIRECTION_DEFAULT if raqm_layout() has not been called on @rq. * * Since: 0.8 */ raqm_direction_t raqm_get_par_resolved_direction (raqm_t *rq) { if (!rq) return RAQM_DIRECTION_DEFAULT; return rq->resolved_dir; } /** * raqm_get_direction_at_index: * @rq: a #raqm_t. * @index: (in): character index. * * Gets the resolved direction of the character at specified index; * * Return value: * The #raqm_direction_t specifying the resolved direction of text at the * specified index, or #RAQM_DIRECTION_DEFAULT if raqm_layout() has not been * called on @rq. * * Since: 0.8 */ raqm_direction_t raqm_get_direction_at_index (raqm_t *rq, size_t index) { if (!rq) return RAQM_DIRECTION_DEFAULT; for (raqm_run_t *run = rq->runs; run != NULL; run = run->next) { if (run->pos <= index && index < run->pos + run->len) { switch (run->direction) { case HB_DIRECTION_LTR: return RAQM_DIRECTION_LTR; case HB_DIRECTION_RTL: return RAQM_DIRECTION_RTL; case HB_DIRECTION_TTB: return RAQM_DIRECTION_TTB; default: return RAQM_DIRECTION_DEFAULT; } } } return RAQM_DIRECTION_DEFAULT; } static bool _raqm_resolve_scripts (raqm_t *rq); static hb_direction_t _raqm_hb_dir (raqm_t *rq, _raqm_bidi_level_t level) { hb_direction_t dir = HB_DIRECTION_LTR; if (rq->base_dir == RAQM_DIRECTION_TTB) dir = HB_DIRECTION_TTB; else if (RAQM_BIDI_LEVEL_IS_RTL(level)) dir = HB_DIRECTION_RTL; return dir; } typedef struct { size_t pos; size_t len; _raqm_bidi_level_t level; } _raqm_bidi_run; #ifdef RAQM_SHEENBIDI static _raqm_bidi_run * _raqm_bidi_itemize (raqm_t *rq, size_t *run_count) { _raqm_bidi_run *runs; SBAlgorithmRef bidi; SBParagraphRef par; SBUInteger par_len; SBLineRef line; SBLevel base_level = SBLevelDefaultLTR; SBCodepointSequence input = { SBStringEncodingUTF32, (void *) rq->text, rq->text_len }; if (rq->base_dir == RAQM_DIRECTION_RTL) base_level = 1; else if (rq->base_dir == RAQM_DIRECTION_LTR) base_level = 0; /* paragraph */ bidi = SBAlgorithmCreate (&input); par = SBAlgorithmCreateParagraph (bidi, 0, INT32_MAX, base_level); par_len = SBParagraphGetLength (par); /* lines */ line = SBParagraphCreateLine (par, 0, par_len); *run_count = SBLineGetRunCount (line); if (SBParagraphGetBaseLevel (par) == 1) rq->resolved_dir = RAQM_DIRECTION_RTL; else rq->resolved_dir = RAQM_DIRECTION_LTR; runs = malloc (sizeof (_raqm_bidi_run) * (*run_count)); if (runs) { const SBRun *sheenbidi_runs = SBLineGetRunsPtr(line); for (size_t i = 0; i < (*run_count); ++i) { runs[i].pos = sheenbidi_runs[i].offset; runs[i].len = sheenbidi_runs[i].length; runs[i].level = sheenbidi_runs[i].level; } } SBLineRelease (line); SBParagraphRelease (par); SBAlgorithmRelease (bidi); return runs; } #else static void _raqm_reverse_run (_raqm_bidi_run *run, const size_t len) { assert (run); for (size_t i = 0; i < len / 2; i++) { _raqm_bidi_run temp = run[i]; run[i] = run[len - 1 - i]; run[len - 1 - i] = temp; } } static _raqm_bidi_run * _raqm_reorder_runs (const FriBidiCharType *types, const size_t len, const FriBidiParType base_dir, /* input and output */ FriBidiLevel *levels, /* output */ size_t *run_count) { FriBidiLevel level; FriBidiLevel last_level = -1; FriBidiLevel max_level = 0; size_t run_start = 0; size_t run_index = 0; _raqm_bidi_run *runs = NULL; size_t count = 0; if (len == 0) { *run_count = 0; return NULL; } assert (types); assert (levels); /* L1. Reset the embedding levels of some chars: 4. any sequence of white space characters at the end of the line. */ for (int i = len - 1; i >= 0 && FRIBIDI_IS_EXPLICIT_OR_BN_OR_WS (types[i]); i--) { levels[i] = FRIBIDI_DIR_TO_LEVEL (base_dir); } /* Find max_level of the line. We don't reuse the paragraph * max_level, both for a cleaner API, and that the line max_level * may be far less than paragraph max_level. */ for (int i = len - 1; i >= 0; i--) { if (levels[i] > max_level) max_level = levels[i]; } for (size_t i = 0; i < len; i++) { if (levels[i] != last_level) count++; last_level = levels[i]; } runs = malloc (sizeof (_raqm_bidi_run) * count); while (run_start < len) { size_t run_end = run_start; while (run_end < len && levels[run_start] == levels[run_end]) { run_end++; } runs[run_index].pos = run_start; runs[run_index].level = levels[run_start]; runs[run_index].len = run_end - run_start; run_start = run_end; run_index++; } /* L2. Reorder. */ for (level = max_level; level > 0; level--) { for (int i = count - 1; i >= 0; i--) { if (runs[i].level >= level) { int end = i; for (i--; (i >= 0 && runs[i].level >= level); i--) ; _raqm_reverse_run (runs + i + 1, end - i); } } } *run_count = count; return runs; } static _raqm_bidi_run * _raqm_bidi_itemize (raqm_t *rq, size_t *run_count) { FriBidiParType par_type = FRIBIDI_PAR_ON; _raqm_bidi_run *runs = NULL; FriBidiCharType *types; _raqm_bidi_level_t *levels; int max_level = 0; FriBidiBracketType *btypes; types = calloc (rq->text_len, sizeof (FriBidiCharType)); btypes = calloc (rq->text_len, sizeof (FriBidiBracketType)); levels = calloc (rq->text_len, sizeof (_raqm_bidi_level_t)); if (!types || !levels || !btypes) goto done; if (rq->base_dir == RAQM_DIRECTION_RTL) par_type = FRIBIDI_PAR_RTL; else if (rq->base_dir == RAQM_DIRECTION_LTR) par_type = FRIBIDI_PAR_LTR; fribidi_get_bidi_types (rq->text, rq->text_len, types); fribidi_get_bracket_types (rq->text, rq->text_len, types, btypes); max_level = fribidi_get_par_embedding_levels_ex (types, btypes, rq->text_len, &par_type, levels); if (par_type == FRIBIDI_PAR_RTL) rq->resolved_dir = RAQM_DIRECTION_RTL; else rq->resolved_dir = RAQM_DIRECTION_LTR; if (max_level == 0) goto done; /* Get the number of bidi runs */ runs = _raqm_reorder_runs (types, rq->text_len, par_type, levels, run_count); done: free (types); free (levels); free (btypes); return runs; } #endif static bool _raqm_itemize (raqm_t *rq) { _raqm_bidi_run *runs = NULL; raqm_run_t *last; size_t run_count = 0; bool ok = true; #ifdef RAQM_TESTING static char *dir_names[] = { "DEFAULT", "RTL", "LTR", "TTB" }; assert (rq->base_dir < sizeof (dir_names)); RAQM_TEST ("Direction is: %s\n\n", dir_names[rq->base_dir]); #endif if (!_raqm_resolve_scripts (rq)) { ok = false; goto done; } if (rq->base_dir == RAQM_DIRECTION_TTB) { /* Treat every thing as LTR in vertical text */ run_count = 1; rq->resolved_dir = RAQM_DIRECTION_TTB; runs = malloc (sizeof (_raqm_bidi_run)); if (runs) { runs->pos = 0; runs->len = rq->text_len; runs->level = 0; } } else runs = _raqm_bidi_itemize (rq, &run_count); if (!runs) { ok = false; goto done; } #ifdef RAQM_TESTING assert (rq->resolved_dir < sizeof (dir_names)); if (rq->base_dir == RAQM_DIRECTION_DEFAULT) RAQM_TEST ("Resolved direction is: %s\n\n", dir_names[rq->resolved_dir]); RAQM_TEST ("Number of runs before script itemization: %zu\n\n", run_count); RAQM_TEST ("BiDi Runs:\n"); for (size_t i = 0; i < run_count; i++) { RAQM_TEST ("run[%zu]:\t start: %zu\tlength: %zu\tlevel: %d\n", i, runs[i].pos, runs[i].len, runs[i].level); } RAQM_TEST ("\n"); #endif last = NULL; for (size_t i = 0; i < run_count; i++) { raqm_run_t *run = _raqm_alloc_run (rq); if (!run) { ok = false; goto done; } if (!rq->runs) rq->runs = run; if (last) last->next = run; run->direction = _raqm_hb_dir (rq, runs[i].level); if (HB_DIRECTION_IS_BACKWARD (run->direction)) { run->pos = runs[i].pos + runs[i].len - 1; run->script = rq->text_info[run->pos].script; run->font = _raqm_create_hb_font (rq, rq->text_info[run->pos].ftface, rq->text_info[run->pos].ftloadflags); for (int j = runs[i].len - 1; j >= 0; j--) { _raqm_text_info info = rq->text_info[runs[i].pos + j]; if (!_raqm_compare_text_info (rq->text_info[run->pos], info)) { raqm_run_t *newrun = _raqm_alloc_run (rq); if (!newrun) { ok = false; goto done; } newrun->pos = runs[i].pos + j; newrun->len = 1; newrun->direction = _raqm_hb_dir (rq, runs[i].level); newrun->script = info.script; newrun->font = _raqm_create_hb_font (rq, info.ftface, info.ftloadflags); run->next = newrun; run = newrun; } else { run->len++; run->pos = runs[i].pos + j; } } } else { run->pos = runs[i].pos; run->script = rq->text_info[run->pos].script; run->font = _raqm_create_hb_font (rq, rq->text_info[run->pos].ftface, rq->text_info[run->pos].ftloadflags); for (size_t j = 0; j < runs[i].len; j++) { _raqm_text_info info = rq->text_info[runs[i].pos + j]; if (!_raqm_compare_text_info (rq->text_info[run->pos], info)) { raqm_run_t *newrun = _raqm_alloc_run (rq); if (!newrun) { ok = false; goto done; } newrun->pos = runs[i].pos + j; newrun->len = 1; newrun->direction = _raqm_hb_dir (rq, runs[i].level); newrun->script = info.script; newrun->font = _raqm_create_hb_font (rq, info.ftface, info.ftloadflags); run->next = newrun; run = newrun; } else run->len++; } } last = run; last->next = NULL; } #ifdef RAQM_TESTING run_count = 0; for (raqm_run_t *run = rq->runs; run != NULL; run = run->next) run_count++; RAQM_TEST ("Number of runs after script itemization: %zu\n\n", run_count); run_count = 0; RAQM_TEST ("Final Runs:\n"); for (raqm_run_t *run = rq->runs; run != NULL; run = run->next) { SCRIPT_TO_STRING (run->script); RAQM_TEST ("run[%zu]:\t start: %d\tlength: %d\tdirection: %s\tscript: %s\tfont: %s\n", run_count++, run->pos, run->len, hb_direction_to_string (run->direction), buff, rq->text_info[run->pos].ftface->family_name); } RAQM_TEST ("\n"); #endif done: free (runs); return ok; } /* Stack to handle script detection */ typedef struct { size_t capacity; size_t size; int *pair_index; hb_script_t *script; } _raqm_stack_t; /* Special paired characters for script detection */ static size_t paired_len = 34; static const uint32_t paired_chars[] = { 0x0028, 0x0029, /* ascii paired punctuation */ 0x003c, 0x003e, 0x005b, 0x005d, 0x007b, 0x007d, 0x00ab, 0x00bb, /* guillemets */ 0x2018, 0x2019, /* general punctuation */ 0x201c, 0x201d, 0x2039, 0x203a, 0x3008, 0x3009, /* chinese paired punctuation */ 0x300a, 0x300b, 0x300c, 0x300d, 0x300e, 0x300f, 0x3010, 0x3011, 0x3014, 0x3015, 0x3016, 0x3017, 0x3018, 0x3019, 0x301a, 0x301b }; static void _raqm_stack_free (_raqm_stack_t *stack) { free (stack->script); free (stack->pair_index); free (stack); } /* Stack handling functions */ static _raqm_stack_t * _raqm_stack_new (size_t max) { _raqm_stack_t *stack; stack = calloc (1, sizeof (_raqm_stack_t)); if (!stack) return NULL; stack->script = malloc (sizeof (hb_script_t) * max); if (!stack->script) { _raqm_stack_free (stack); return NULL; } stack->pair_index = malloc (sizeof (int) * max); if (!stack->pair_index) { _raqm_stack_free (stack); return NULL; } stack->size = 0; stack->capacity = max; return stack; } static bool _raqm_stack_pop (_raqm_stack_t *stack) { if (!stack->size) { RAQM_DBG ("Stack is Empty\n"); return false; } stack->size--; return true; } static hb_script_t _raqm_stack_top (_raqm_stack_t *stack) { if (!stack->size) { RAQM_DBG ("Stack is Empty\n"); return HB_SCRIPT_INVALID; /* XXX: check this */ } return stack->script[stack->size]; } static bool _raqm_stack_push (_raqm_stack_t *stack, hb_script_t script, int pair_index) { if (stack->size == stack->capacity) { RAQM_DBG ("Stack is Full\n"); return false; } stack->size++; stack->script[stack->size] = script; stack->pair_index[stack->size] = pair_index; return true; } static int _get_pair_index (const uint32_t ch) { int lower = 0; int upper = paired_len - 1; while (lower <= upper) { int mid = (lower + upper) / 2; if (ch < paired_chars[mid]) upper = mid - 1; else if (ch > paired_chars[mid]) lower = mid + 1; else return mid; } return -1; } #define STACK_IS_EMPTY(script) ((script)->size <= 0) #define IS_OPEN(pair_index) (((pair_index) & 1) == 0) static hb_script_t _raqm_unicode_script (hb_codepoint_t u) { static hb_unicode_funcs_t* unicode_funcs; unicode_funcs = hb_unicode_funcs_get_default (); /* Make combining marks inherit the script of their bases, regardless of * their own script. */ if (hb_unicode_general_category (unicode_funcs, u) == HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK) return HB_SCRIPT_INHERITED; return hb_unicode_script (unicode_funcs, u); } /* Resolve the script for each character in the input string, if the character * script is common or inherited it takes the script of the character before it * except paired characters which we try to make them use the same script. We * then split the BiDi runs, if necessary, on script boundaries. */ static bool _raqm_resolve_scripts (raqm_t *rq) { int last_script_index = -1; int last_set_index = -1; hb_script_t last_script = HB_SCRIPT_INVALID; _raqm_stack_t *stack = NULL; for (size_t i = 0; i < rq->text_len; ++i) rq->text_info[i].script = _raqm_unicode_script (rq->text[i]); #ifdef RAQM_TESTING RAQM_TEST ("Before script detection:\n"); for (size_t i = 0; i < rq->text_len; ++i) { SCRIPT_TO_STRING (rq->text_info[i].script); RAQM_TEST ("script for ch[%zu]\t%s\n", i, buff); } RAQM_TEST ("\n"); #endif stack = _raqm_stack_new (rq->text_len); if (!stack) return false; for (int i = 0; i < (int) rq->text_len; i++) { if (rq->text_info[i].script == HB_SCRIPT_COMMON && last_script_index != -1) { int pair_index = _get_pair_index (rq->text[i]); if (pair_index >= 0) { if (IS_OPEN (pair_index)) { /* is a paired character */ rq->text_info[i].script = last_script; last_set_index = i; _raqm_stack_push (stack, rq->text_info[i].script, pair_index); } else { /* is a close paired character */ /* find matching opening (by getting the last even index for current * odd index) */ while (!STACK_IS_EMPTY (stack) && stack->pair_index[stack->size] != (pair_index & ~1)) { _raqm_stack_pop (stack); } if (!STACK_IS_EMPTY (stack)) { rq->text_info[i].script = _raqm_stack_top (stack); last_script = rq->text_info[i].script; last_set_index = i; } else { rq->text_info[i].script = last_script; last_set_index = i; } } } else { rq->text_info[i].script = last_script; last_set_index = i; } } else if (rq->text_info[i].script == HB_SCRIPT_INHERITED && last_script_index != -1) { rq->text_info[i].script = last_script; last_set_index = i; } else { for (int j = last_set_index + 1; j < i; ++j) rq->text_info[j].script = rq->text_info[i].script; last_script = rq->text_info[i].script; last_script_index = i; last_set_index = i; } } /* Loop backwards and change any remaining Common or Inherit characters to * take the script if the next character. * https://github.com/HOST-Oman/libraqm/issues/95 */ for (int i = rq->text_len - 2; i >= 0; --i) { if (rq->text_info[i].script == HB_SCRIPT_INHERITED || rq->text_info[i].script == HB_SCRIPT_COMMON) rq->text_info[i].script = rq->text_info[i + 1].script; } #ifdef RAQM_TESTING RAQM_TEST ("After script detection:\n"); for (size_t i = 0; i < rq->text_len; ++i) { SCRIPT_TO_STRING (rq->text_info[i].script); RAQM_TEST ("script for ch[%zu]\t%s\n", i, buff); } RAQM_TEST ("\n"); #endif _raqm_stack_free (stack); return true; } static void _raqm_ft_transform (int *x, int *y, FT_Matrix matrix) { FT_Vector vector; vector.x = *x; vector.y = *y; FT_Vector_Transform (&vector, &matrix); *x = vector.x; *y = vector.y; } static bool _raqm_shape (raqm_t *rq) { hb_buffer_flags_t hb_buffer_flags = HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT; if (rq->invisible_glyph < 0) hb_buffer_flags |= HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES; for (raqm_run_t *run = rq->runs; run != NULL; run = run->next) { if (!run->buffer) run->buffer = hb_buffer_create (); hb_buffer_add_utf32 (run->buffer, rq->text, rq->text_len, run->pos, run->len); hb_buffer_set_script (run->buffer, run->script); hb_buffer_set_language (run->buffer, rq->text_info[run->pos].lang); hb_buffer_set_direction (run->buffer, run->direction); hb_buffer_set_flags (run->buffer, hb_buffer_flags); if (rq->invisible_glyph > 0) hb_buffer_set_invisible_glyph (run->buffer, rq->invisible_glyph); hb_shape_full (run->font, run->buffer, rq->features, rq->features_len, NULL); { FT_Matrix matrix; hb_glyph_info_t *info; hb_glyph_position_t *pos; unsigned int len; FT_Get_Transform (hb_ft_font_get_face (run->font), &matrix, NULL); pos = hb_buffer_get_glyph_positions (run->buffer, &len); info = hb_buffer_get_glyph_infos (run->buffer, &len); for (unsigned int i = 0; i < len; i++) { _raqm_ft_transform (&pos[i].x_advance, &pos[i].y_advance, matrix); _raqm_ft_transform (&pos[i].x_offset, &pos[i].y_offset, matrix); bool set_spacing = false; if (run->direction == HB_DIRECTION_RTL) { set_spacing = i == 0; if (!set_spacing) set_spacing = info[i].cluster != info[i-1].cluster; } else { set_spacing = i == len - 1; if (!set_spacing) set_spacing = info[i].cluster != info[i+1].cluster; } _raqm_text_info rq_info = rq->text_info[info[i].cluster]; if (rq_info.spacing_after != 0 && set_spacing) { if (run->direction == HB_DIRECTION_TTB) pos[i].y_advance -= rq_info.spacing_after; else if (run->direction == HB_DIRECTION_RTL) { pos[i].x_advance += rq_info.spacing_after; pos[i].x_offset += rq_info.spacing_after; } else pos[i].x_advance += rq_info.spacing_after; } } } } return true; } /* Count equivalent UTF-8 bytes in codepoint */ static size_t _raqm_count_codepoint_utf8_bytes (uint32_t chr) { if (0 == ((uint32_t) 0xffffff80 & chr)) return 1; else if (0 == ((uint32_t) 0xfffff800 & chr)) return 2; else if (0 == ((uint32_t) 0xffff0000 & chr)) return 3; else return 4; } /* Convert index from UTF-32 to UTF-8 */ static uint32_t _raqm_u32_to_u8_index (raqm_t *rq, uint32_t index) { size_t length = 0; for (uint32_t i = 0; i < index; ++i) length += _raqm_count_codepoint_utf8_bytes (rq->text[i]); return length; } /* Convert index from UTF-8 to UTF-32 */ static size_t _raqm_u8_to_u32_index (raqm_t *rq, size_t index) { const unsigned char *s = (const unsigned char *) rq->text_utf8; const unsigned char *t = s; size_t length = 0; while (((size_t) (s - t) < index) && ('\0' != *s)) { if (0xf0 == (0xf8 & *s)) s += 4; else if (0xe0 == (0xf0 & *s)) s += 3; else if (0xc0 == (0xe0 & *s)) s += 2; else s += 1; length++; } if ((size_t) (s-t) > index) length--; return length; } /* Count equivalent UTF-16 short in codepoint */ static size_t _raqm_count_codepoint_utf16_short (uint32_t chr) { if (chr > 0x010000) return 2; else return 1; } /* Convert index from UTF-32 to UTF-16 */ static uint32_t _raqm_u32_to_u16_index (raqm_t *rq, uint32_t index) { size_t length = 0; for (uint32_t i = 0; i < index; ++i) length += _raqm_count_codepoint_utf16_short (rq->text[i]); return length; } /* Convert index from UTF-16 to UTF-32 */ static size_t _raqm_u16_to_u32_index (raqm_t *rq, size_t index) { const uint16_t *s = (const uint16_t *) rq->text_utf16; const uint16_t *t = s; size_t length = 0; while (((size_t) (s - t) < index) && ('\0' != *s)) { if (*s < 0xD800 || *s > 0xDBFF) s += 1; else s += 2; length++; } if ((size_t) (s-t) > index) length--; return length; } static inline size_t _raqm_encoding_to_u32_index (raqm_t *rq, size_t index) { if (rq->text_utf8) return _raqm_u8_to_u32_index (rq, index); else if (rq->text_utf16) return _raqm_u16_to_u32_index (rq, index); return index; } static bool _raqm_in_hangul_syllable (hb_codepoint_t ch); /** * raqm_index_to_position: * @rq: a #raqm_t. * @index: (inout): character index. * @x: (out): output x position. * @y: (out): output y position. * * Calculates the cursor position after the character at @index. If the character * is right-to-left, then the cursor will be at the left of it, whereas if the * character is left-to-right, then the cursor will be at the right of it. * * Return value: * `true` if the process was successful, `false` otherwise. * * Since: 0.2 */ bool raqm_index_to_position (raqm_t *rq, size_t *index, int *x, int *y) { /* We don't currently support multiline, so y is always 0 */ *y = 0; *x = 0; if (rq == NULL) return false; *index = _raqm_encoding_to_u32_index (rq, *index); if (*index >= rq->text_len) return false; RAQM_TEST ("\n"); while (*index < rq->text_len) { if (_raqm_allowed_grapheme_boundary (rq->text[*index], rq->text[*index + 1])) break; ++*index; } for (raqm_run_t *run = rq->runs; run != NULL; run = run->next) { size_t len; hb_glyph_info_t *info; hb_glyph_position_t *position; len = hb_buffer_get_length (run->buffer); info = hb_buffer_get_glyph_infos (run->buffer, NULL); position = hb_buffer_get_glyph_positions (run->buffer, NULL); for (size_t i = 0; i < len; i++) { uint32_t curr_cluster = info[i].cluster; uint32_t next_cluster = curr_cluster; *x += position[i].x_advance; if (run->direction == HB_DIRECTION_LTR) { for (size_t j = i + 1; j < len && next_cluster == curr_cluster; j++) next_cluster = info[j].cluster; } else { for (int j = i - 1; i != 0 && j >= 0 && next_cluster == curr_cluster; j--) next_cluster = info[j].cluster; } if (next_cluster == curr_cluster) next_cluster = run->pos + run->len; if (*index < next_cluster && *index >= curr_cluster) { if (run->direction == HB_DIRECTION_RTL) *x -= position[i].x_advance; *index = curr_cluster; goto found; } } } found: if (rq->text_utf8) *index = _raqm_u32_to_u8_index (rq, *index); else if (rq->text_utf16) *index = _raqm_u32_to_u16_index (rq, *index); RAQM_TEST ("The position is %d at index %zu\n",*x ,*index); return true; } /** * raqm_position_to_index: * @rq: a #raqm_t. * @x: x position. * @y: y position. * @index: (out): output character index. * * Returns the @index of the character at @x and @y position within text. * If the position is outside the text, the last character is chosen as * @index. * * Return value: * `true` if the process was successful, `false` in case of error. * * Since: 0.2 */ bool raqm_position_to_index (raqm_t *rq, int x, int y, size_t *index) { int delta_x = 0, current_x = 0; (void)y; if (rq == NULL) return false; if (x < 0) /* Get leftmost index */ { if (rq->resolved_dir == RAQM_DIRECTION_RTL) *index = rq->text_len; else *index = 0; return true; } RAQM_TEST ("\n"); for (raqm_run_t *run = rq->runs; run != NULL; run = run->next) { size_t len; hb_glyph_info_t *info; hb_glyph_position_t *position; len = hb_buffer_get_length (run->buffer); info = hb_buffer_get_glyph_infos (run->buffer, NULL); position = hb_buffer_get_glyph_positions (run->buffer, NULL); for (size_t i = 0; i < len; i++) { delta_x = position[i].x_advance; if (x < (current_x + delta_x)) { bool before = false; if (run->direction == HB_DIRECTION_LTR) before = (x < current_x + (delta_x / 2)); else before = (x > current_x + (delta_x / 2)); if (before) *index = info[i].cluster; else { uint32_t curr_cluster = info[i].cluster; uint32_t next_cluster = curr_cluster; if (run->direction == HB_DIRECTION_LTR) for (size_t j = i + 1; j < len && next_cluster == curr_cluster; j++) next_cluster = info[j].cluster; else for (int j = i - 1; i != 0 && j >= 0 && next_cluster == curr_cluster; j--) next_cluster = info[j].cluster; if (next_cluster == curr_cluster) next_cluster = run->pos + run->len; *index = next_cluster; } if (_raqm_allowed_grapheme_boundary (rq->text[*index],rq->text[*index + 1])) { RAQM_TEST ("The start-index is %zu at position %d \n", *index, x); return true; } while (*index < (unsigned)run->pos + run->len) { if (_raqm_allowed_grapheme_boundary (rq->text[*index], rq->text[*index + 1])) { *index += 1; break; } *index += 1; } RAQM_TEST ("The start-index is %zu at position %d \n", *index, x); return true; } else current_x += delta_x; } } /* Get rightmost index*/ if (rq->resolved_dir == RAQM_DIRECTION_RTL) *index = 0; else *index = rq->text_len; RAQM_TEST ("The start-index is %zu at position %d \n", *index, x); return true; } typedef enum { RAQM_GRAPHEM_CR, RAQM_GRAPHEM_LF, RAQM_GRAPHEM_CONTROL, RAQM_GRAPHEM_EXTEND, RAQM_GRAPHEM_REGIONAL_INDICATOR, RAQM_GRAPHEM_PREPEND, RAQM_GRAPHEM_SPACING_MARK, RAQM_GRAPHEM_HANGUL_SYLLABLE, RAQM_GRAPHEM_OTHER } _raqm_grapheme_t; static _raqm_grapheme_t _raqm_get_grapheme_break (hb_codepoint_t ch, hb_unicode_general_category_t category); static bool _raqm_allowed_grapheme_boundary (hb_codepoint_t l_char, hb_codepoint_t r_char) { hb_unicode_general_category_t l_category; hb_unicode_general_category_t r_category; _raqm_grapheme_t l_grapheme, r_grapheme; hb_unicode_funcs_t* unicode_funcs = hb_unicode_funcs_get_default (); l_category = hb_unicode_general_category (unicode_funcs, l_char); r_category = hb_unicode_general_category (unicode_funcs, r_char); l_grapheme = _raqm_get_grapheme_break (l_char, l_category); r_grapheme = _raqm_get_grapheme_break (r_char, r_category); if (l_grapheme == RAQM_GRAPHEM_CR && r_grapheme == RAQM_GRAPHEM_LF) return false; /*Do not break between a CR and LF GB3*/ if (l_grapheme == RAQM_GRAPHEM_CONTROL || l_grapheme == RAQM_GRAPHEM_CR || l_grapheme == RAQM_GRAPHEM_LF || r_grapheme == RAQM_GRAPHEM_CONTROL || r_grapheme == RAQM_GRAPHEM_CR || r_grapheme == RAQM_GRAPHEM_LF) return true; /*Break before and after CONTROL GB4, GB5*/ if (r_grapheme == RAQM_GRAPHEM_HANGUL_SYLLABLE) return false; /*Do not break Hangul syllable sequences. GB6, GB7, GB8*/ if (l_grapheme == RAQM_GRAPHEM_REGIONAL_INDICATOR && r_grapheme == RAQM_GRAPHEM_REGIONAL_INDICATOR) return false; /*Do not break between regional indicator symbols. GB8a*/ if (r_grapheme == RAQM_GRAPHEM_EXTEND) return false; /*Do not break before extending characters. GB9*/ /*Do not break before SpacingMarks, or after Prepend characters.GB9a, GB9b*/ if (l_grapheme == RAQM_GRAPHEM_PREPEND) return false; if (r_grapheme == RAQM_GRAPHEM_SPACING_MARK) return false; return true; /*Otherwise, break everywhere. GB1, GB2, GB10*/ } static _raqm_grapheme_t _raqm_get_grapheme_break (hb_codepoint_t ch, hb_unicode_general_category_t category) { _raqm_grapheme_t gb_type; gb_type = RAQM_GRAPHEM_OTHER; switch ((int)category) { case HB_UNICODE_GENERAL_CATEGORY_FORMAT: if (ch == 0x200C || ch == 0x200D) gb_type = RAQM_GRAPHEM_EXTEND; else gb_type = RAQM_GRAPHEM_CONTROL; break; case HB_UNICODE_GENERAL_CATEGORY_CONTROL: if (ch == 0x000D) gb_type = RAQM_GRAPHEM_CR; else if (ch == 0x000A) gb_type = RAQM_GRAPHEM_LF; else gb_type = RAQM_GRAPHEM_CONTROL; break; case HB_UNICODE_GENERAL_CATEGORY_SURROGATE: case HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR: case HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR: case HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED: if ((ch >= 0xFFF0 && ch <= 0xFFF8) || (ch >= 0xE0000 && ch <= 0xE0FFF)) gb_type = RAQM_GRAPHEM_CONTROL; break; case HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK: case HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK: case HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK: if (ch != 0x102B && ch != 0x102C && ch != 0x1038 && (ch < 0x1062 || ch > 0x1064) && (ch < 0x1067 || ch > 0x106D) && ch != 0x1083 && (ch < 0x1087 || ch > 0x108C) && ch != 0x108F && (ch < 0x109A || ch > 0x109C) && ch != 0x1A61 && ch != 0x1A63 && ch != 0x1A64 && ch != 0xAA7B && ch != 0xAA70 && ch != 0x11720 && ch != 0x11721) /**/ gb_type = RAQM_GRAPHEM_SPACING_MARK; else if (ch == 0x09BE || ch == 0x09D7 || ch == 0x0B3E || ch == 0x0B57 || ch == 0x0BBE || ch == 0x0BD7 || ch == 0x0CC2 || ch == 0x0CD5 || ch == 0x0CD6 || ch == 0x0D3E || ch == 0x0D57 || ch == 0x0DCF || ch == 0x0DDF || ch == 0x1D165 || (ch >= 0x1D16E && ch <= 0x1D172)) gb_type = RAQM_GRAPHEM_EXTEND; break; case HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER: if (ch == 0x0E33 || ch == 0x0EB3) gb_type = RAQM_GRAPHEM_SPACING_MARK; break; case HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL: if (ch >= 0x1F1E6 && ch <= 0x1F1FF) gb_type = RAQM_GRAPHEM_REGIONAL_INDICATOR; break; default: gb_type = RAQM_GRAPHEM_OTHER; break; } if (_raqm_in_hangul_syllable (ch)) gb_type = RAQM_GRAPHEM_HANGUL_SYLLABLE; return gb_type; } static bool _raqm_in_hangul_syllable (hb_codepoint_t ch) { (void)ch; return false; } /** * raqm_version: * @major: (out): Library major version component. * @minor: (out): Library minor version component. * @micro: (out): Library micro version component. * * Returns library version as three integer components. * * Since: 0.7 **/ void raqm_version (unsigned int *major, unsigned int *minor, unsigned int *micro) { *major = RAQM_VERSION_MAJOR; *minor = RAQM_VERSION_MINOR; *micro = RAQM_VERSION_MICRO; } /** * raqm_version_string: * * Returns library version as a string with three components. * * Return value: library version string. * * Since: 0.7 **/ const char * raqm_version_string (void) { return RAQM_VERSION_STRING; } /** * raqm_version_atleast: * @major: Library major version component. * @minor: Library minor version component. * @micro: Library micro version component. * * Checks if library version is less than or equal the specified version. * * Return value: * `true` if library version is less than or equal the specified version, * `false` otherwise. * * Since: 0.7 **/ bool raqm_version_atleast (unsigned int major, unsigned int minor, unsigned int micro) { return RAQM_VERSION_ATLEAST (major, minor, micro); } /** * RAQM_VERSION_ATLEAST: * @major: Library major version component. * @minor: Library minor version component. * @micro: Library micro version component. * * Checks if library version is less than or equal the specified version. * * Return value: * `true` if library version is less than or equal the specified version, * `false` otherwise. * * Since: 0.7 **/ /** * RAQM_VERSION_STRING: * * Library version as a string with three components. * * Since: 0.7 **/ /** * RAQM_VERSION_MAJOR: * * Library major version component. * * Since: 0.7 **/ /** * RAQM_VERSION_MINOR: * * Library minor version component. * * Since: 0.7 **/ /** * RAQM_VERSION_MICRO: * * Library micro version component. * * Since: 0.7 **/ libraqm-0.10.1/src/raqm.h000066400000000000000000000135311441556702000151270ustar00rootroot00000000000000/* * Copyright © 2015 Information Technology Authority (ITA) * Copyright © 2016-2023 Khaled Hosny * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * */ #ifndef _RAQM_H_ #define _RAQM_H_ #define _RAQM_H_IN_ #ifdef HAVE_CONFIG_H #include "config.h" #endif #ifndef RAQM_API #define RAQM_API #endif #include #include #include #include FT_FREETYPE_H #ifdef __cplusplus extern "C" { #endif #include "raqm-version.h" /** * raqm_t: * * This is the main object holding all state of the currently processed text as * well as its output. * * Since: 0.1 */ typedef struct _raqm raqm_t; /** * raqm_direction_t: * @RAQM_DIRECTION_DEFAULT: Detect paragraph direction automatically. * @RAQM_DIRECTION_RTL: Paragraph is mainly right-to-left text. * @RAQM_DIRECTION_LTR: Paragraph is mainly left-to-right text. * @RAQM_DIRECTION_TTB: Paragraph is mainly vertical top-to-bottom text. * * Base paragraph direction, see raqm_set_par_direction(). * * Since: 0.1 */ typedef enum { RAQM_DIRECTION_DEFAULT, RAQM_DIRECTION_RTL, RAQM_DIRECTION_LTR, RAQM_DIRECTION_TTB } raqm_direction_t; /** * raqm_glyph_t: * @index: the index of the glyph in the font file. * @x_advance: the glyph advance width in horizontal text. * @y_advance: the glyph advance width in vertical text. * @x_offset: the horizontal movement of the glyph from the current point. * @y_offset: the vertical movement of the glyph from the current point. * @cluster: the index of original character in input text. * @ftface: the @FT_Face of the glyph. * * The structure that holds information about output glyphs, returned from * raqm_get_glyphs(). */ typedef struct raqm_glyph_t { unsigned int index; int x_advance; int y_advance; int x_offset; int y_offset; uint32_t cluster; FT_Face ftface; } raqm_glyph_t; RAQM_API raqm_t * raqm_create (void); RAQM_API raqm_t * raqm_reference (raqm_t *rq); RAQM_API void raqm_destroy (raqm_t *rq); RAQM_API void raqm_clear_contents (raqm_t *rq); RAQM_API bool raqm_set_text (raqm_t *rq, const uint32_t *text, size_t len); RAQM_API bool raqm_set_text_utf8 (raqm_t *rq, const char *text, size_t len); RAQM_API bool raqm_set_text_utf16 (raqm_t *rq, const uint16_t *text, size_t len); RAQM_API bool raqm_set_par_direction (raqm_t *rq, raqm_direction_t dir); RAQM_API bool raqm_set_language (raqm_t *rq, const char *lang, size_t start, size_t len); RAQM_API bool raqm_add_font_feature (raqm_t *rq, const char *feature, int len); RAQM_API bool raqm_set_freetype_face (raqm_t *rq, FT_Face face); RAQM_API bool raqm_set_freetype_face_range (raqm_t *rq, FT_Face face, size_t start, size_t len); RAQM_API bool raqm_set_freetype_load_flags (raqm_t *rq, int flags); RAQM_API bool raqm_set_freetype_load_flags_range (raqm_t *rq, int flags, size_t start, size_t len); RAQM_API bool raqm_set_letter_spacing_range(raqm_t *rq, int spacing, size_t start, size_t len); RAQM_API bool raqm_set_word_spacing_range(raqm_t *rq, int spacing, size_t start, size_t len); RAQM_API bool raqm_set_invisible_glyph (raqm_t *rq, int gid); RAQM_API bool raqm_layout (raqm_t *rq); RAQM_API raqm_glyph_t * raqm_get_glyphs (raqm_t *rq, size_t *length); RAQM_API raqm_direction_t raqm_get_par_resolved_direction (raqm_t *rq); RAQM_API raqm_direction_t raqm_get_direction_at_index (raqm_t *rq, size_t index); RAQM_API bool raqm_index_to_position (raqm_t *rq, size_t *index, int *x, int *y); RAQM_API bool raqm_position_to_index (raqm_t *rq, int x, int y, size_t *index); RAQM_API void raqm_version (unsigned int *major, unsigned int *minor, unsigned int *micro); RAQM_API const char * raqm_version_string (void); RAQM_API bool raqm_version_atleast (unsigned int major, unsigned int minor, unsigned int micro); #ifdef __cplusplus } #endif #undef _RAQM_H_IN_ #endif /* _RAQM_H_ */ libraqm-0.10.1/subprojects/000077500000000000000000000000001441556702000155675ustar00rootroot00000000000000libraqm-0.10.1/subprojects/freetype2.wrap000066400000000000000000000001531441556702000203660ustar00rootroot00000000000000[wrap-git] directory=freetype url=https://gitlab.freedesktop.org/freetype/freetype.git revision=VER-2-11-0 libraqm-0.10.1/subprojects/fribidi.wrap000066400000000000000000000001311441556702000200650ustar00rootroot00000000000000[wrap-git] directory=fribidi url=https://github.com/fribidi/fribidi.git revision=v1.0.10 libraqm-0.10.1/subprojects/harfbuzz.wrap000066400000000000000000000001321441556702000203110ustar00rootroot00000000000000[wrap-git] directory=harfbuzz url=https://github.com/harfbuzz/harfbuzz.git revision=3.0.0 libraqm-0.10.1/subprojects/sheenbidi.wrap000066400000000000000000000001341441556702000204120ustar00rootroot00000000000000[wrap-git] directory=sheenbidi url=https://github.com/Tehreer/SheenBidi.git revision=master libraqm-0.10.1/tests/000077500000000000000000000000001441556702000143665ustar00rootroot00000000000000libraqm-0.10.1/tests/buffer-flags-1.test000066400000000000000000000017461441556702000200000ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf َب َ --font-features -fina,-init,-medi Direction is: DEFAULT Before script detection: script for ch[0] Zinh script for ch[1] Arab script for ch[2] Zyyy script for ch[3] Zinh After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab Resolved direction is: RTL Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 4 level: 1 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 4 direction: rtl script: Arab font: Amiri Glyph information: glyph [427] x_offset: 0 y_offset: 0 x_advance: 0 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [389] x_offset: 0 y_offset: 0 x_advance: 1897 font: Amiri glyph [427] x_offset: 147 y_offset: -430 x_advance: 0 font: Amiri glyph [782] x_offset: 0 y_offset: 0 x_advance: 1392 font: Amiri UTF-32 clusters: 02 02 01 00 00 UTF-8 clusters: 04 04 02 00 00 libraqm-0.10.1/tests/cursor-position-1.test000066400000000000000000000035401441556702000206060ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf ömán عُمان --cluster 1 --position 1000 Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Zinh script for ch[2] Latn script for ch[3] Latn script for ch[4] Zinh script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Zinh script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab Resolved direction is: LTR Number of runs before script itemization: 2 BiDi Runs: run[0]: start: 0 length: 7 level: 0 run[1]: start: 7 length: 5 level: 1 Number of runs after script itemization: 2 Final Runs: run[0]: start: 0 length: 7 direction: ltr script: Latn font: Amiri run[1]: start: 7 length: 5 direction: rtl script: Arab font: Amiri Glyph information: glyph [183] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [162] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [428] x_offset: -234 y_offset: 0 x_advance: 0 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri UTF-32 clusters: 00 02 03 05 06 11 10 09 07 07 UTF-8 clusters: 00 03 04 07 08 17 15 13 09 09 The position is 1018 at index 0 The start-index is 2 at position 1000 libraqm-0.10.1/tests/cursor-position-2.test000066400000000000000000000035421441556702000206110ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf ömán عُمان --cluster 10 --position 6000 Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Zinh script for ch[2] Latn script for ch[3] Latn script for ch[4] Zinh script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Zinh script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab Resolved direction is: LTR Number of runs before script itemization: 2 BiDi Runs: run[0]: start: 0 length: 7 level: 0 run[1]: start: 7 length: 5 level: 1 Number of runs after script itemization: 2 Final Runs: run[0]: start: 0 length: 7 direction: ltr script: Latn font: Amiri run[1]: start: 7 length: 5 direction: rtl script: Arab font: Amiri Glyph information: glyph [183] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [162] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [428] x_offset: -234 y_offset: 0 x_advance: 0 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri UTF-32 clusters: 00 02 03 05 06 11 10 09 07 07 UTF-8 clusters: 00 03 04 07 08 17 15 13 09 09 The position is 7211 at index 9 The start-index is 11 at position 6000 libraqm-0.10.1/tests/cursor-position-3.test000066400000000000000000000033761441556702000206170ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf عمَان oman --cluster 0 --position 7000 Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Zinh script for ch[3] Arab script for ch[4] Arab script for ch[5] Zyyy script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Arab script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn Resolved direction is: RTL Number of runs before script itemization: 2 BiDi Runs: run[0]: start: 6 length: 4 level: 2 run[1]: start: 0 length: 6 level: 1 Number of runs after script itemization: 2 Final Runs: run[0]: start: 6 length: 4 direction: ltr script: Latn font: Amiri run[1]: start: 0 length: 6 direction: rtl script: Arab font: Amiri Glyph information: glyph [82] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [427] x_offset: -356 y_offset: 0 x_advance: 0 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri UTF-32 clusters: 06 07 08 09 05 04 03 01 01 00 UTF-8 clusters: 11 12 13 14 10 08 06 02 02 00 The position is 7211 at index 0 The start-index is 3 at position 7000 libraqm-0.10.1/tests/cursor-position-4.test000066400000000000000000000033761441556702000206200ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf عمَان oman --cluster 4 --position 5000 Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Zinh script for ch[3] Arab script for ch[4] Arab script for ch[5] Zyyy script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Arab script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn Resolved direction is: RTL Number of runs before script itemization: 2 BiDi Runs: run[0]: start: 6 length: 4 level: 2 run[1]: start: 0 length: 6 level: 1 Number of runs after script itemization: 2 Final Runs: run[0]: start: 6 length: 4 direction: ltr script: Latn font: Amiri run[1]: start: 0 length: 6 direction: rtl script: Arab font: Amiri Glyph information: glyph [82] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [427] x_offset: -356 y_offset: 0 x_advance: 0 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri UTF-32 clusters: 06 07 08 09 05 04 03 01 01 00 UTF-8 clusters: 11 12 13 14 10 08 06 02 02 00 The position is 6767 at index 2 The start-index is 5 at position 5000 libraqm-0.10.1/tests/cursor-position-GB3.test000066400000000000000000000022461441556702000210230ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf om\r\nan --cluster 2 --position 3000 Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Zyyy script for ch[3] Zyyy script for ch[4] Latn script for ch[5] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 6 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 6 direction: ltr script: Latn font: Amiri Glyph information: glyph [82] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 UTF-8 clusters: 00 01 02 03 04 05 The position is 4094 at index 3 The start-index is 3 at position 3000 libraqm-0.10.1/tests/cursor-position-GB4.test000066400000000000000000000030301441556702000210140ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf omanƒoman --cluster 3 --position 4000 Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Zyyy script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 9 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 9 direction: ltr script: Latn font: Amiri Glyph information: glyph [82] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [82] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 07 08 UTF-8 clusters: 00 01 02 03 04 06 07 08 09 The position is 4524 at index 3 The start-index is 4 at position 4000 libraqm-0.10.1/tests/cursor-position-GB5.test000066400000000000000000000030301441556702000210150ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf omanƒoman --cluster 4 --position 5000 Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Zyyy script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 9 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 9 direction: ltr script: Latn font: Amiri Glyph information: glyph [82] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [82] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 07 08 UTF-8 clusters: 00 01 02 03 04 06 07 08 09 The position is 5272 at index 4 The start-index is 5 at position 5000 libraqm-0.10.1/tests/cursor-position-GB8a.test000066400000000000000000000017451441556702000211740ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf 🇦🇧🇨🇩 --cluster 1 --position 1000 Direction is: DEFAULT Before script detection: script for ch[0] Zyyy script for ch[1] Zyyy script for ch[2] Zyyy script for ch[3] Zyyy After script detection: script for ch[0] Zyyy script for ch[1] Zyyy script for ch[2] Zyyy script for ch[3] Zyyy Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 4 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 4 direction: ltr script: Zyyy font: Amiri Glyph information: glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri UTF-32 clusters: 00 00 02 02 UTF-8 clusters: 00 00 08 08 The position is 2244 at index 8 The start-index is 4 at position 1000 libraqm-0.10.1/tests/cursor-position-GB9.test000066400000000000000000000035401441556702000210270ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf ömán عُمان --cluster 1 --position 1000 Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Zinh script for ch[2] Latn script for ch[3] Latn script for ch[4] Zinh script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Zinh script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab Resolved direction is: LTR Number of runs before script itemization: 2 BiDi Runs: run[0]: start: 0 length: 7 level: 0 run[1]: start: 7 length: 5 level: 1 Number of runs after script itemization: 2 Final Runs: run[0]: start: 0 length: 7 direction: ltr script: Latn font: Amiri run[1]: start: 7 length: 5 direction: rtl script: Arab font: Amiri Glyph information: glyph [183] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [80] x_offset: 0 y_offset: 0 x_advance: 1580 font: Amiri glyph [162] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [428] x_offset: -234 y_offset: 0 x_advance: 0 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri UTF-32 clusters: 00 02 03 05 06 11 10 09 07 07 UTF-8 clusters: 00 03 04 07 08 17 15 13 09 09 The position is 1018 at index 0 The start-index is 2 at position 1000 libraqm-0.10.1/tests/cursor-position-GB9a.test000066400000000000000000000015541441556702000211730ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf अीअ --cluster 0 --position 300 Direction is: DEFAULT Before script detection: script for ch[0] Deva script for ch[1] Deva script for ch[2] Deva After script detection: script for ch[0] Deva script for ch[1] Deva script for ch[2] Deva Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 3 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 3 direction: ltr script: Deva font: Amiri Glyph information: glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Amiri UTF-32 clusters: 00 00 02 UTF-8 clusters: 00 00 06 The position is 748 at index 0 The start-index is 2 at position 300 libraqm-0.10.1/tests/direction-ltr-1.test000066400000000000000000000056251441556702000202140ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf عربي(English ) عربي --direction ltr Direction is: LTR Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Zyyy script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Latn script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 0 length: 4 level: 1 run[1]: start: 4 length: 11 level: 0 run[2]: start: 15 length: 4 level: 1 Number of runs after script itemization: 5 Final Runs: run[0]: start: 0 length: 4 direction: rtl script: Arab font: Amiri run[1]: start: 4 length: 1 direction: ltr script: Arab font: Amiri run[2]: start: 5 length: 8 direction: ltr script: Latn font: Amiri run[3]: start: 13 length: 2 direction: ltr script: Arab font: Amiri run[4]: start: 15 length: 4 direction: rtl script: Arab font: Amiri Glyph information: glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri glyph [11] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [40] x_offset: 0 y_offset: 0 x_advance: 1174 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [74] x_offset: 0 y_offset: 0 x_advance: 932 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [86] x_offset: 0 y_offset: 0 x_advance: 738 font: Amiri glyph [75] x_offset: 0 y_offset: 0 x_advance: 1032 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [12] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri UTF-32 clusters: 03 02 01 00 04 05 06 07 08 09 10 11 12 13 14 18 17 16 15 UTF-8 clusters: 06 04 02 00 08 09 10 11 12 13 14 15 16 17 18 25 23 21 19 libraqm-0.10.1/tests/direction-ltr-2.test000066400000000000000000000044601441556702000202110ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf arabic عربي 123 --direction ltr Direction is: LTR Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Zyyy script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 0 length: 7 level: 0 run[1]: start: 12 length: 3 level: 2 run[2]: start: 7 length: 5 level: 1 Number of runs after script itemization: 3 Final Runs: run[0]: start: 0 length: 7 direction: ltr script: Latn font: Amiri run[1]: start: 12 length: 3 direction: ltr script: Arab font: Amiri run[2]: start: 7 length: 5 direction: rtl script: Arab font: Amiri Glyph information: glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [85] x_offset: 0 y_offset: 0 x_advance: 766 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [70] x_offset: 0 y_offset: 0 x_advance: 846 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [20] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [21] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [22] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 12 13 14 11 10 09 08 07 UTF-8 clusters: 00 01 02 03 04 05 06 16 17 18 15 13 11 09 07 libraqm-0.10.1/tests/direction-ltr-3.test000066400000000000000000000100571441556702000202110ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf arabic عربي 123 عمان english --direction ltr Direction is: LTR Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Zyyy script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy script for ch[15] Zyyy script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Zyyy script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Arab script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn Number of runs before script itemization: 5 BiDi Runs: run[0]: start: 0 length: 7 level: 0 run[1]: start: 15 length: 5 level: 1 run[2]: start: 12 length: 3 level: 2 run[3]: start: 7 length: 5 level: 1 run[4]: start: 20 length: 8 level: 0 Number of runs after script itemization: 6 Final Runs: run[0]: start: 0 length: 7 direction: ltr script: Latn font: Amiri run[1]: start: 15 length: 5 direction: rtl script: Arab font: Amiri run[2]: start: 12 length: 3 direction: ltr script: Arab font: Amiri run[3]: start: 7 length: 5 direction: rtl script: Arab font: Amiri run[4]: start: 20 length: 1 direction: ltr script: Arab font: Amiri run[5]: start: 21 length: 7 direction: ltr script: Latn font: Amiri Glyph information: glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [85] x_offset: 0 y_offset: 0 x_advance: 766 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [70] x_offset: 0 y_offset: 0 x_advance: 846 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [20] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [21] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [22] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [72] x_offset: 0 y_offset: 0 x_advance: 860 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [74] x_offset: 0 y_offset: 0 x_advance: 932 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [86] x_offset: 0 y_offset: 0 x_advance: 738 font: Amiri glyph [75] x_offset: 0 y_offset: 0 x_advance: 1032 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 19 18 17 16 15 12 13 14 11 10 09 08 07 20 21 22 23 24 25 26 27 UTF-8 clusters: 00 01 02 03 04 05 06 26 24 22 20 19 16 17 18 15 13 11 09 07 28 29 30 31 32 33 34 35 libraqm-0.10.1/tests/direction-ltr-4.test000066400000000000000000000047251441556702000202170ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf بيت سالم مصلى عمان --direction ltr Direction is: LTR Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Zyyy script for ch[4] Arab script for ch[5] Arab script for ch[6] Arab script for ch[7] Arab script for ch[8] Zyyy script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Zyyy script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Arab script for ch[6] Arab script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 18 level: 1 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 18 direction: rtl script: Arab font: Amiri Glyph information: glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [2926] x_offset: 0 y_offset: 0 x_advance: 961 font: Amiri glyph [2914] x_offset: 0 y_offset: 0 x_advance: 401 font: Amiri glyph [2382] x_offset: 0 y_offset: 0 x_advance: 1480 font: Amiri glyph [2334] x_offset: 0 y_offset: 0 x_advance: 797 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5199] x_offset: 0 y_offset: 0 x_advance: 416 font: Amiri glyph [5154] x_offset: 0 y_offset: 0 x_advance: 488 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [2396] x_offset: 0 y_offset: 0 x_advance: 1164 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [2052] x_offset: 0 y_offset: 0 x_advance: 1810 font: Amiri glyph [4494] x_offset: 0 y_offset: 0 x_advance: 500 font: Amiri glyph [4460] x_offset: 0 y_offset: 0 x_advance: 478 font: Amiri UTF-32 clusters: 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 UTF-8 clusters: 31 29 27 25 24 22 20 18 16 15 13 11 09 07 06 04 02 00 libraqm-0.10.1/tests/direction-ltr-5.test000066400000000000000000000030151441556702000202070ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf aa (bb) aa --direction ltr Direction is: LTR Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Zyyy script for ch[3] Zyyy script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Zyyy script for ch[8] Latn script for ch[9] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 10 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 10 direction: ltr script: Latn font: Amiri Glyph information: glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [11] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 936 font: Amiri glyph [12] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 UTF-8 clusters: 00 01 02 03 04 05 06 07 08 09 libraqm-0.10.1/tests/direction-neutral-1.test000066400000000000000000000012251441556702000210550ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf .! Direction is: DEFAULT Before script detection: script for ch[0] Zyyy script for ch[1] Zyyy After script detection: script for ch[0] Zyyy script for ch[1] Zyyy Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 2 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 2 direction: ltr script: Zyyy font: Amiri Glyph information: glyph [17] x_offset: 0 y_offset: 0 x_advance: 414 font: Amiri glyph [4] x_offset: 0 y_offset: 0 x_advance: 482 font: Amiri UTF-32 clusters: 00 01 UTF-8 clusters: 00 01 libraqm-0.10.1/tests/direction-rtl-1.test000066400000000000000000000055201441556702000202060ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf عربي(English ) عربي --direction rtl Direction is: RTL Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Zyyy script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Latn script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 12 length: 7 level: 1 run[1]: start: 5 length: 7 level: 2 run[2]: start: 0 length: 5 level: 1 Number of runs after script itemization: 4 Final Runs: run[0]: start: 13 length: 6 direction: rtl script: Arab font: Amiri run[1]: start: 12 length: 1 direction: rtl script: Latn font: Amiri run[2]: start: 5 length: 7 direction: ltr script: Latn font: Amiri run[3]: start: 0 length: 5 direction: rtl script: Arab font: Amiri Glyph information: glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [11] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [40] x_offset: 0 y_offset: 0 x_advance: 1174 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [74] x_offset: 0 y_offset: 0 x_advance: 932 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [86] x_offset: 0 y_offset: 0 x_advance: 738 font: Amiri glyph [75] x_offset: 0 y_offset: 0 x_advance: 1032 font: Amiri glyph [12] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri UTF-32 clusters: 18 17 16 15 14 13 12 05 06 07 08 09 10 11 04 03 02 01 00 UTF-8 clusters: 25 23 21 19 18 17 16 09 10 11 12 13 14 15 08 06 04 02 00 libraqm-0.10.1/tests/direction-rtl-2.test000066400000000000000000000045641441556702000202160ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf arabic عربي 123 --direction rtl Direction is: RTL Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Zyyy script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 12 length: 3 level: 2 run[1]: start: 6 length: 6 level: 1 run[2]: start: 0 length: 6 level: 2 Number of runs after script itemization: 4 Final Runs: run[0]: start: 12 length: 3 direction: ltr script: Arab font: Amiri run[1]: start: 7 length: 5 direction: rtl script: Arab font: Amiri run[2]: start: 6 length: 1 direction: rtl script: Latn font: Amiri run[3]: start: 0 length: 6 direction: ltr script: Latn font: Amiri Glyph information: glyph [20] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [21] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [22] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [85] x_offset: 0 y_offset: 0 x_advance: 766 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [70] x_offset: 0 y_offset: 0 x_advance: 846 font: Amiri UTF-32 clusters: 12 13 14 11 10 09 08 07 06 00 01 02 03 04 05 UTF-8 clusters: 16 17 18 15 13 11 09 07 06 00 01 02 03 04 05 libraqm-0.10.1/tests/direction-rtl-3.test000066400000000000000000000100561441556702000202100ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf arabic عربي 123 عمان english --direction rtl Direction is: RTL Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Zyyy script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy script for ch[15] Zyyy script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Zyyy script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Arab script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn Number of runs before script itemization: 5 BiDi Runs: run[0]: start: 21 length: 7 level: 2 run[1]: start: 15 length: 6 level: 1 run[2]: start: 12 length: 3 level: 2 run[3]: start: 6 length: 6 level: 1 run[4]: start: 0 length: 6 level: 2 Number of runs after script itemization: 6 Final Runs: run[0]: start: 21 length: 7 direction: ltr script: Latn font: Amiri run[1]: start: 15 length: 6 direction: rtl script: Arab font: Amiri run[2]: start: 12 length: 3 direction: ltr script: Arab font: Amiri run[3]: start: 7 length: 5 direction: rtl script: Arab font: Amiri run[4]: start: 6 length: 1 direction: rtl script: Latn font: Amiri run[5]: start: 0 length: 6 direction: ltr script: Latn font: Amiri Glyph information: glyph [72] x_offset: 0 y_offset: 0 x_advance: 860 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [74] x_offset: 0 y_offset: 0 x_advance: 932 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [86] x_offset: 0 y_offset: 0 x_advance: 738 font: Amiri glyph [75] x_offset: 0 y_offset: 0 x_advance: 1032 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [20] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [21] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [22] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [85] x_offset: 0 y_offset: 0 x_advance: 766 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [70] x_offset: 0 y_offset: 0 x_advance: 846 font: Amiri UTF-32 clusters: 21 22 23 24 25 26 27 20 19 18 17 16 15 12 13 14 11 10 09 08 07 06 00 01 02 03 04 05 UTF-8 clusters: 29 30 31 32 33 34 35 28 26 24 22 20 19 16 17 18 15 13 11 09 07 06 00 01 02 03 04 05 libraqm-0.10.1/tests/direction-rtl-4.test000066400000000000000000000047251441556702000202170ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf بيت سالم مصلى عمان --direction rtl Direction is: RTL Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Zyyy script for ch[4] Arab script for ch[5] Arab script for ch[6] Arab script for ch[7] Arab script for ch[8] Zyyy script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Zyyy script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Arab script for ch[6] Arab script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 18 level: 1 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 18 direction: rtl script: Arab font: Amiri Glyph information: glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [2926] x_offset: 0 y_offset: 0 x_advance: 961 font: Amiri glyph [2914] x_offset: 0 y_offset: 0 x_advance: 401 font: Amiri glyph [2382] x_offset: 0 y_offset: 0 x_advance: 1480 font: Amiri glyph [2334] x_offset: 0 y_offset: 0 x_advance: 797 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5199] x_offset: 0 y_offset: 0 x_advance: 416 font: Amiri glyph [5154] x_offset: 0 y_offset: 0 x_advance: 488 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [2396] x_offset: 0 y_offset: 0 x_advance: 1164 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [2052] x_offset: 0 y_offset: 0 x_advance: 1810 font: Amiri glyph [4494] x_offset: 0 y_offset: 0 x_advance: 500 font: Amiri glyph [4460] x_offset: 0 y_offset: 0 x_advance: 478 font: Amiri UTF-32 clusters: 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 UTF-8 clusters: 31 29 27 25 24 22 20 18 16 15 13 11 09 07 06 04 02 00 libraqm-0.10.1/tests/direction-rtl-5.test000066400000000000000000000030151441556702000202070ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf aa (bb) aa --direction rtl Direction is: RTL Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Zyyy script for ch[3] Zyyy script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Zyyy script for ch[8] Latn script for ch[9] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 10 level: 2 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 10 direction: ltr script: Latn font: Amiri Glyph information: glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [11] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 936 font: Amiri glyph [12] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 UTF-8 clusters: 00 01 02 03 04 05 06 07 08 09 libraqm-0.10.1/tests/direction-ttb-1.test000066400000000000000000000032031441556702000201720ustar00rootroot00000000000000fonts/sha1sum/788742748bf8bfbd3b6b56859f92938275da74bd.otf 汉语English --direction ttb Direction is: TTB Before script detection: script for ch[0] Hani script for ch[1] Hani script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn After script detection: script for ch[0] Hani script for ch[1] Hani script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 9 level: 0 Number of runs after script itemization: 2 Final Runs: run[0]: start: 0 length: 2 direction: ttb script: Hani font: Noto Serif CJK SC run[1]: start: 2 length: 7 direction: ttb script: Latn font: Noto Serif CJK SC Glyph information: glyph [8] x_offset: -500 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [9] x_offset: -500 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [1] x_offset: -327 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [6] x_offset: -329 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [2] x_offset: -280 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [5] x_offset: -162 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [4] x_offset: -162 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [7] x_offset: -235 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [3] x_offset: -327 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC UTF-32 clusters: 00 01 02 03 04 05 06 07 08 UTF-8 clusters: 00 03 06 07 08 09 10 11 12 libraqm-0.10.1/tests/direction-ttb-2.test000066400000000000000000000045221441556702000202000ustar00rootroot00000000000000fonts/sha1sum/788742748bf8bfbd3b6b56859f92938275da74bd.otf 汉语English عربي --direction ttb Direction is: TTB Before script detection: script for ch[0] Hani script for ch[1] Hani script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Zyyy script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab After script detection: script for ch[0] Hani script for ch[1] Hani script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 14 level: 0 Number of runs after script itemization: 3 Final Runs: run[0]: start: 0 length: 2 direction: ttb script: Hani font: Noto Serif CJK SC run[1]: start: 2 length: 8 direction: ttb script: Latn font: Noto Serif CJK SC run[2]: start: 10 length: 4 direction: ttb script: Arab font: Noto Serif CJK SC Glyph information: glyph [8] x_offset: -500 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [9] x_offset: -500 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [1] x_offset: -327 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [6] x_offset: -329 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [2] x_offset: -280 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [5] x_offset: -162 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [4] x_offset: -162 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [7] x_offset: -235 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [3] x_offset: -327 y_offset: -880 x_advance: 0 font: Noto Serif CJK SC glyph [0] x_offset: -500 y_offset: 0 x_advance: 0 font: Noto Serif CJK SC glyph [0] x_offset: -500 y_offset: 0 x_advance: 0 font: Noto Serif CJK SC glyph [0] x_offset: -500 y_offset: 0 x_advance: 0 font: Noto Serif CJK SC glyph [0] x_offset: -500 y_offset: 0 x_advance: 0 font: Noto Serif CJK SC glyph [0] x_offset: -500 y_offset: 0 x_advance: 0 font: Noto Serif CJK SC UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 UTF-8 clusters: 00 03 06 07 08 09 10 11 12 13 14 16 18 20 libraqm-0.10.1/tests/empty-text.test000066400000000000000000000000751441556702000174110ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf libraqm-0.10.1/tests/features-arabic.test000066400000000000000000000036701441556702000203320ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf اللغة العربية --font-features -fina,-init,-medi Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Zyyy script for ch[6] Arab script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Arab script for ch[6] Arab script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab Resolved direction is: RTL Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 13 level: 1 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 13 direction: rtl script: Arab font: Amiri Glyph information: glyph [390] x_offset: 0 y_offset: 0 x_advance: 756 font: Amiri glyph [423] x_offset: 0 y_offset: 0 x_advance: 1566 font: Amiri glyph [389] x_offset: 0 y_offset: 0 x_advance: 1897 font: Amiri glyph [398] x_offset: 0 y_offset: 0 x_advance: 819 font: Amiri glyph [406] x_offset: 0 y_offset: 0 x_advance: 1107 font: Amiri glyph [417] x_offset: 0 y_offset: 0 x_advance: 1236 font: Amiri glyph [388] x_offset: 0 y_offset: 0 x_advance: 446 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [390] x_offset: 0 y_offset: 0 x_advance: 756 font: Amiri glyph [407] x_offset: 0 y_offset: 0 x_advance: 1107 font: Amiri glyph [417] x_offset: 0 y_offset: 0 x_advance: 1236 font: Amiri glyph [417] x_offset: 0 y_offset: 0 x_advance: 1236 font: Amiri glyph [388] x_offset: 0 y_offset: 0 x_advance: 446 font: Amiri UTF-32 clusters: 12 11 10 09 08 07 06 05 04 03 02 01 00 UTF-8 clusters: 23 21 19 17 15 13 11 10 08 06 04 02 00 libraqm-0.10.1/tests/features-kerning.test000066400000000000000000000036251441556702000205460ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf Linux Support --font-features -kern Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Zyyy script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Latn Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 13 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 13 direction: ltr script: Latn font: Amiri Glyph information: glyph [47] x_offset: 0 y_offset: 0 x_advance: 1128 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [88] x_offset: 0 y_offset: 0 x_advance: 1030 font: Amiri glyph [91] x_offset: 0 y_offset: 0 x_advance: 952 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [54] x_offset: 0 y_offset: 0 x_advance: 1004 font: Amiri glyph [88] x_offset: 0 y_offset: 0 x_advance: 1030 font: Amiri glyph [83] x_offset: 0 y_offset: 0 x_advance: 1020 font: Amiri glyph [83] x_offset: 0 y_offset: 0 x_advance: 1020 font: Amiri glyph [82] x_offset: 0 y_offset: 0 x_advance: 1018 font: Amiri glyph [85] x_offset: 0 y_offset: 0 x_advance: 766 font: Amiri glyph [87] x_offset: 0 y_offset: 0 x_advance: 622 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 10 11 12 UTF-8 clusters: 00 01 02 03 04 05 06 07 08 09 10 11 12 libraqm-0.10.1/tests/features-ligature.test000066400000000000000000000041631441556702000207230ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf file is filling --font-features -liga Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Zyyy script for ch[5] Latn script for ch[6] Latn script for ch[7] Zyyy script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Latn script for ch[13] Latn script for ch[14] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Latn script for ch[13] Latn script for ch[14] Latn Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 15 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 15 direction: ltr script: Latn font: Amiri Glyph information: glyph [73] x_offset: 0 y_offset: 0 x_advance: 616 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [72] x_offset: 0 y_offset: 0 x_advance: 860 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [86] x_offset: 0 y_offset: 0 x_advance: 738 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [73] x_offset: 0 y_offset: 0 x_advance: 616 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [74] x_offset: 0 y_offset: 0 x_advance: 932 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 UTF-8 clusters: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 libraqm-0.10.1/tests/fonts/000077500000000000000000000000001441556702000155175ustar00rootroot00000000000000libraqm-0.10.1/tests/fonts/sha1sum/000077500000000000000000000000001441556702000171005ustar00rootroot00000000000000libraqm-0.10.1/tests/fonts/sha1sum/788742748bf8bfbd3b6b56859f92938275da74bd.otf000066400000000000000000000100101441556702000251550ustar00rootroot00000000000000OTTO`CFF xKsGPOSآ GSUB|HOS/2c?N t`VORGqcmapma head 6hhea  _ P$hmtx7 (&maxp Pname'A post2 vhea -$vmtxVP NotoSerifCJKjp-RegularH * y q  "z % $sAdobeIdentityCopyright 2017 Adobe Systems Incorporated (http://www.adobe.com/). Noto is a trademark of Google Inc.Noto Serif CJK JP RegularNoto Serif CJK JPNotoSerifCJKjp-Regular-GenericNotoSerifCJKjp-Regular-IdeographsNotoSerifCJKjp-Regular-Proportional "',28=CHMQW]E  ׀ ˀ  ր  fe  ) m ( n (0  H &HIJMOT[ Jx & 5Q Fd_vvB-EhwYKՓπ*cC_ԶR86^OApL۩eYIIU0PJȪ*z*d*i^W9JBWnV[whgbpL@gmd[:T,AU'SzvFBŠ׿"]0F?bKQq> 3 <Êؾ2̪̾i#'B ċ: (8+oghosfgrԵ6 "* ŋ_A .|/D PJP.< / " 35 ùdh^Aoب|2[_Q JG=AanxprZUaf2fmpu[ r}c!Iln mT[c)u6{nW^c'mL&# $ =}%kyn~gk8P.20L+lD'`an,[;6.F}+)>Q $9 ;Eq"EL"l@ \>O["iҠ ( ,Pyl{:Ϊ`m`mft4qq S! " <,@PNϛNkC' >'D) Y jm\f^^:*)zHzG{X* $&  " &!! &=" &F F |  *09@JQY_R %  xhw _u| & !nZ. Ikh $k <n {^  %(Oty  (.4@JN]fnwU! UY0 U. # Ug51 q$D"b|C ( ? \aL$ 2˾˩i#+ h' 8 7k<@ /#/ ) R% 2 Š׿!]0H@dKQ , 3 = YcM- 'W>T6k ; 6*P_"+ S3  P C  $ Q7 # X>T5~k +)*T }b 9 ' 4 )*, TX>S @ yww0 )%^Q ~k|1Wj .|-al }$Vk Šؾ Ɗ4 W?S6k Fɀw al A,lh~_<,Ɲ) qd40+"E#D'6+(  q XKX^24GOOG@Ep`. Z  "  N " v ,|Copyright 2017 Adobe Systems Incorporated (http://www.adobe.com/).Noto Serif CJK SCRegular1.001;GOOG;NotoSerifCJKsc-Regular;ADOBEVersion 1.001;PS 1.001;hotconv 16.6.54;makeotf.lib2.5.65590NotoSerifCJKsc-Regular$t$ tPEilnslIEglnslIt dEEgillnnsslIlI 2 DFLT,cyrl8grekDhangPhani\kanahlatntkern,kern,kern,kern,kern,kern,kern, X,2:dn DFDFLT,cyrl6grek6hang6hani6kana6latn6p`I_I``7. ;h qlibraqm-0.10.1/tests/fonts/sha1sum/83db7d61f9292c18c951662f254f4ad038e41639.otf000066400000000000000000000073041441556702000247770ustar00rootroot00000000000000OTTO @CFF VX$GDEF(JGPOS|GSUBOS/2X<`cmap\head3(1]6hhea$hmtxPBmaxpPname"3DFLTarabhebrlatnmarkx f`ZTNNHB<60*$'..mt{ TZ    :f (> $ $NotoAHTest-RegularVersion 2.016Noto AH Test Regular2.016;GOOG;NotoAHTest-RegularRegularNoto AH TestCopyright 2022 The Noto Project Authors (https://github.com/notofonts/arabic)NotoAHTest-Regular@ @ |'n2.16Noto is a trademark of Google LLC.Copyright 2022 The Noto Project Authors https:github.comnotofontsarabicNoto AH Test RegularNoto AH Testuni0628uniFE90uniFE92uniFE91uni0631uniFEAEuni0639uniFECAuniFECCuniFECBuni064AuniFEF2uniFEF4uniFEF3uni05B4uni05B71>Je+0<LPZvUit Lgwolvu|}ywt)0vqnvty{{vs O vutzwtsmnuvt fyvyij^:vvveCN'plf~jrl }gG{o ʝ5 Ĕ ƾwmmn˄55\~tYyxp_sup|nrOF}  I흏f{Ird G 4  }z}tŃ$ 6z  4X흏f{Ird G Ńcurjnui`glu |h VakKogkga |tt}}o ᥾X\Wnlj(>ꨔ´ﶮGuQqZm)RPl\pqwsYejFRuwxelUQpI@60 𡚙,sP8" /[G|N" dx*^g^Ϙ|dBzn} {!mqu >uwj[Ufxǵ~w^qn}njJR[3Nmsxe~uvvkwcL(oD. \s*Yg^|vf{tzsi,l1S1 ˜fzM^o~r\RnooTzSm\z}~|~qet{ ş&dw!]j\%ywhZ" ='|)" ƀq cuqjnui\fqu\  %.8BJRYasow/wa' c #, c * 6c #'"c `" `% E( Y2 1 RF. z4 =/ bb`! S# 1 (2 )J + J /) 33www7_ 67IORZ_djq#$  - ϼ+8 " -7}v‚$23 S1 & 32m~ ; < 9  Q 7jhXglqVowSe]pqxsZeiERbdv ckspfloh^m :^ Ƚ|n,pKPīؿ^ʿ7^eлK5pppT{Ol\z|~}~qf9Fpc>ilqLeM5rqx}~~pf}}}}xxou{v`stkoui]go_/p1 0 libraqm-0.10.1/tests/fonts/sha1sum/a22e097e7f3cefffd1a602674dff5108efa0eec2.ttf000066400000000000000000000044501441556702000256420ustar00rootroot00000000000000pGDEF:*GPOSRG(GSUB|n$OS/2ix`cmap 4cvt D8gaspglyfԝThead Av6hhea4$hmtx!,loca<maxpX?X namen op@post*  _< a{a{h 9 AhR   t@.!33f G@BLQ ? A DxxjjxwA% -,D '/J0&20jG7'>7*T*)U*6h45h5jG0 F&#">#"'&'&5477&547676763232767632p-H>L}e* eV %fC/+RAA8(3|<+Ǵ0!h#/M%:e6-bEP79`+/I/K)8:Ft5&i/(0&ud" 6|,&'& 67676$ 767> $'&?> `F$2$2HLeo)3|<+Ǵa7}ee*- >) ^0c7 *:Ft5&Dud (~-bA <&'&#"%65437%>7632327#"547>75+*-" ,mLiA$'!736113?$%;C'9@8$/9x# 2  $:o<*+n3[/=y$>7&76$ &5>&'&>70N)YBTfCceR 0*2AH`5;tH/+)*) BxV H$#,M'A4#)6767&'.'&7>?&56767>%d;B(:F8$.9fLNEw**1&4MU'C  #;n<+o3[0T2B*%gN fO1F2  Aref RuqaaRegular' "  &darabcalt fina&init,isol2medi82Hd* ^ B &   >arabcursmark (d || "(^.^ .dF (  &2Llibraqm-0.10.1/tests/fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf000066400000000000000000020562601441556702000256120ustar00rootroot00000000000000 DSIG\FFTMT|GDEFA+TGPOSGSUBquOS/2`cmap2Ͷk$cvt Dsgasptglyfe6/XheadZ}S,6hhea`d$hmtx-Riloca"t`BlB$BBBdBBB|BBtL<j`pbTD`TT.T`TTr0"ThT0CbHSbSb48@,>Z z^JNNN\Ph2.$@ $$,@(@RN@Rn(~D.".tpj|ZX|@4rLd&p^RdZv&p`$LHDL|Nd:DldHNLR^vDJxFRDbTTTTKTT8TCbbbbbnb4444HT22^J^J^J^J^J^JJNN\P\P\P\P)@@  P(@RRRRRxT^J^J^JD`NND`NND`NND`NNT(NTNT\PT\PT\PT^PT\P`.`.`.`.TT$A7LTOT8T@vR@r0"T $*@hT$hT"T"$hT$h>"C(@C(>C(@(C@bRbRbRbRS@S>S@bRbRbTbRn*n(n(444444@~D@~D@~D"2`.T<*<,<ld|dd<ddD&Z R0xb <C<S<88XRROE_PzPi ;RNnt5SWniUmiUiUK;K;K;}}3V3Vuu x xWrWrStSt } }nnn}wCtym5Snn ( DPRJRffK\WiUw< 5SniUiUiUiUiUiUiUiUK;K;K;K;K;K;K;}}}}}}}}}3V3V3V3V3V3V3V3V3Vuuu x xWrSt}}}}}}ww }2vCCCC } } } } } }yyyyy7K;mmmm5S5S5S5S5S5S5S5Snn5Snn G{ G{ms <Z8ZHTB>#`V p}3Vu xStts7iUiUiUiUiUiUiUK;K;}}3VuStStSt}} } } }ttyyy3V3VuK;K;u3VK;nnn5S5S G{ G{K;uuCiUzXrRRNRNRNRN.Rh2T"T$T"0,@HQbRbTn(n*n*@~B"nU,uvv"thxxxXF(&XF(&FN^``u7X@b bRj<hV A:?|pZ`0(2T2^46:iUhiUhiUhiUhiUhiUh} ]} ]K;n?K;n?K;n?K;n?}K}K}K}K3VR3VR } }F } }F } }F } }Fhhyyyym ~mD7.* G{{ G{${q/q/F/F/2/2/2.2.e/e/0//u&..CF5S_5S_5S_5S_5S_5S_nt\PP~~J__J__J__J__epepnt/a/a-ee/a/a/a-ee/a/a/a-ee/a-eea mba mbaa mb5_5_5_H[[[[ nbbsabsabaaabeeabee5-aaa lE-eeaaa-eePaPaPaKbee/a/a/a-eeab;e;e/a/a/a-ee}3VnXXXXXXhThT}YpphThT}YpphThT}YpphThT}Ypp8e8e8e8e- lM55sRRPbhThT}YppthThT}Ypp%%%A%%%A%%%A mABBB$B$=w%%%A/Y%%%ACCwA||| ;t ;teeeeppppeeeeee p p p p5_5_5_H0P0PPP t t5555pppp t t t t t t p p p p n n nzPzPPPrrA o o o o o o  ?(_? n ??<<< n Ht Ht z zt an { { qb On b b Nt an { qb OZtb >n # t b b _ Tt b Tt Tt b n b b 't 't` n b4n  Ht   ; ? t b? t Zt Zt b9 t t t t t Zt Zt Httt HttZttZt 'trt t t Zt t mt t4 Tt t  Ht4 ob b ntttt Ht mt t  Nt t {{q lT KGbW ~ s qn c[|X|X XX|X|X|X|X|tnQD5S_WnWPiUhm )iUhiUhK;n?K;n?K;n?}K}K3VR3VRuvuv x tb x tbWryjWryjSt<St<} ]wY]CF(lht.byym ~ 5S_ntnt%;?%%|%|iUK;}5S3VK;WrnCtyuSt} xw3VuiUiUK;} xWrStiUy}w??Fh]]?;;Ozzy +zt zz +z; ztyz\PPtPPaP\PPP\PbPP3PlP3PbP\P\PPlPaPP\P3PiU;;`|j];;~qvxvt| Wwj]viUiU;;` W~tiFK\593.K\W>ZoPpfSl R43.fiFiFK\ RW>SMP<SthiUK} ]}n?K; ~m  FC(lhq.bt y {yYw.v~3V tb xvuyWrjatn s}zjie _d]V|pK/k|?/YI.vu::b`gjMan![d'W]5<bv?qJ`d/hMuodJoXYzp~xmqv`pV|pZ!a:a G D.vv 2v AvNvrbvIqqD]a{d\DPJH29v vPh:RR=@w/p<^5Ul-4e@LbQbf\r;t!<ssVQhi5e4c?Nd nle!-uduGuN~.EgucgccHpbp4P"QDnPp:<<<<<<<hhhhhhhhhhhhhhhhhhh2aZKKKKKKKKKKKKKK         ]]]]]]]]]]]]]nnnnnnnnnnnnnnnnn????????????????? ~DD ~ )  } } } } } } } } } } } }FFFFFFFFFFFFFFFyFFFhyh(l(l(l(l(l(lhhZhhhh~.b.b.byyyyyyyyyYYYYRRRRRRRRRRRRRRRR tb tb tb tb tbvvvvvvvvvvvyyyjjj______________tttttttttttWttt      sjjSj^,VSSjRjj|jxjjjt{j|gtj|jjjjeTeTeTeTeTeTeTeTeTeTeTeTeTeTeTeTQQQQQQQQQQXQQQQzjzjzjzjzjzjiiiiiiiiiiiiieeeeeeeeeeeeeeM=qv _ _ K _ W U  U _ _  _ _ _   _ ' _ _ _ _ $ _  _  _ _ $  _ # _  _ _ _ _ _ _d]]$])]]i]]M])])]8]{]]])]]]x]]8]]]]]]3]3]]])]]]]]]])]8]]])])VVVVVVVVVVVVVV|p|p|p|p|p|p| |p|p|p|h|p|p|p|?|C|p|p|p|p|p|p|n|p|b|p|b|p|p|n|?|p|m|p|b|p|p|p|p|p|p3eKyvjjvej8jUttjtSr8Il DKK /kkkkkk||  ;|Ar?????????????????/YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYIIIIIIIuuugusuuusuHu:::::::::::::::::::::::bbbb```````````g}+',.~,*T+`4{1,|{,5+4',`T4,|T+rr~~~rM~*\`\VTVTVTVTVTVTVTVTVTVTVTVTVTVTVTVT66BBB655S5S5S5S5S5S5S5S5S5S5S5S5S5S5Snn0!!!!!!!!!!!!!!!![[[[[[6[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[d'''''''''''@@LLL@++T+T+T+T+T+T+T+T+T+T+T+T+T+T+T]]]]]]]5555555555j55555<<<<qD]]]]]]]aaaaaaaaaaaaaaaaa{ddddd\d\ddd\dVddd\d\dddVd)=)=======5===55=)@@@@@@@@@@@@@@@@@@wwwwww/P//p/p/p/p+9`9c]D^U}DfCCCCCCCCCCCC } } < <{]4%ZSPDD]P4bD{{{N###########################################???????????gHJXXnX%X6XX2X*XXHX0gg  $])])|b|njvtYY''[[JJ^^MMuuoovvZZ[g!!~~jj][][|b|njvjj[[JJMM..II[g!!TTDP##d66N6z6X868468>DP(&h.: ,Dl@BDDf0p\@ez^rXXnX%X6XX2X*XXHX0XXXHXXmX[X4X!X"XVXXXHXXFX-XX!X"XVX+X4X7zZ!x.>"2,Ozj``zUqx|wUUl,4, 4~@>~7 #(.1%+AWco  " $ & 0 3 : > B D ""%?rt 7 #&.1P $(@V`j  $ & ( 2 8 > B D ""%PPptvc[ qpoMLGE861/a_] |h`ZJ><^By x^ ~bA77CDFHIKLM  VYZ##[&(\.._11`ae{P] $%(+@AVW`cjo   " $ $ & & ( 0 2 3 8 : > > B B D D  "" "" %%P?P3iprwttzv{!"!$$#''$)2%47/993;;4BB5GG6II7KK8MO9QR<TT>WW?YY@[[A]]B__CabDddFgjGlrKtwRy|V~~Z[evy~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aqcdhwojuirfvk{bm l|9  xpIJyLKHD((((@lXxL\0T|  ` $ ` d`LD 0L0(hX<h !<"#($T%H%&L&&'H'|'(T) )*T*+,---./@011234@45d6,679(9:X:;(;<$<|<=>4?d?AAABC CDCTDxDDELEFFG\HPHtHIIPIJKM,MMNNN0NHN`OPP(P@PXPpPPPPPQQQ0QHQ`QxQRRR4RLRdR|SXTTTTTTUV4VLVdV|VVVVVW WWWXX,XDX\X|XXXXXY YYZZ(Z@ZX[\\\\\]](]@]X]p]]]]]^^^0^H_`x`````aa a8aPahaaaaaabb(b@bXc,cDc\ccdd4dLddd|eeeeefff0fHf`fxfffffgg h8ii0iHi`ixiikkkll,lDl\ltlllllmmm4mLmdm|mmmmmn n$n<nTnlnnnoppqq(q@qXqpqqqqqrrrs(s<sPssssttt0tltuuduuvv@vvvw4wwwx xxxyy|zXz{h{{|l|||}4}x}~<pl d| 8Phx0@Xh(@Xhx<$XTPdx\Ld `@4\4 $<Td|8Ph(@Xp 8Ph 8Xp0H`x0Pp0P`x 8Tp(@Xt\Xd @,@0H`p0`p 8Pp(H`x 8Ph(@Xx$@\x<TlPd|D`t0H| $<Tl,D\t4Ld| $<Tl,D\\\\\\\\\\\\\x$`LD\|$,ÀÀÀðTĘĘŴd(ǔǨ0d|ͬθϼx 8PhӀӘӰ(@XpԈԠԸ0H`xՐը 8Phրְ֘(@Xp׈נ׸0H`xؐب(8Phـ٘ٸ8Xxژڨڸ0HXhxې۠۰4H\p܄ܘܬ$8L`tݔݴ8Tpތެ8Tl߄ߜߴ4Tx Lx<\|4T| ,T|,Tt4\|0T| @`x0Pp 8Xp0Ph(Hp @Xp @h0Hl,P|4`Dh(Lx0Ph<d|8`8X0Pp0Pp8X8X(H` 8Xp8Xx8Xx8Xp @`8Pp(Xp @h0\,Ll4LlDl  8 \ x     ( H h      ( H p    ,\Dl4\4Tt<lDt$Dd4dL| 4T|$T|L|$\,\,T <t , T t   !$!L!l!!!"$"T""""##L###$$8$`$$$% %,*P--..// /4/D/\/l//////000(0D0\0t000001 1$1<1L1\1t1111122242L2d2|222223 33,3<3L3d3|3333334 4 484T4d4t444444555$545L5d5|55555566646D6T6d6t6666677747L7d7|777777888$848D8T8d8|888888999,9<9L9d9|9999: :,:L:l::::::;;;(;8;P;h;x;;;;;;<<<(<@> >8>P>h>>>>?p?@8@PA,ABBBCC,CDCDDDDDEE4ELEdEEEEEF F,FLFlFFFFGGGGGHIJLJdKHL4LLM NN(O,P,PDQ8QPRRR4RLRdR|RRRSTTUUVXDZ[[]^_atbdePehfhhhhhi iijjk8klDlmmlmnDnoDop`pqrrsLstttuvvw`wx|xy\yzPz{X{|<|}X}~T~`h@8dxpdh|pX(<<DhxxDL xd  4$|XDTX4T dt@\LTd8p\xl0D<H4d,lTH\P °(ØèøĔ 0ŤŴ(8ƠDǬȤ Xɔɨ4DThxʌʜʬ,˨˸̌$͐ Τdp\ TҴHӜl՜֤phـtېܔ$|݌ p0߰(D@td|hd0D$lt\,DTp @Xp0H`p8Pp(@Ph,Pp4D\t4Tl $Ddt ,H`8Phx 8Ph(@Xx(@`x 8Xp(H`x(@`x0HXp0H`x0Ld|4Ld 8P`x(@XxPhx(@Xx8P`0@`   ( H ` x       ( H h        ( @ ` x        ( @ X p         8 P ` x      8Xx$@\x (D` 8H`(8Xp$<\|(H`4Ll $<Ld (D`| 8Tl 8Ph8Pt(@Xh(@Xx0Hh0Pl8Tp  0 H X p     !!,!H!d!!!!!"","@"X"p""""""## #8#P#`#x#####$$0$L$h$$$$$%%$%8%T%p%%%%%&&&0&H&`&p&&&&&&''('@'X'p'''''((,(D(\(x(((())$)D)h))))))** *8*P*h*****++ +8+X+p+++++,,0,H,X,p,,,,,- --4-L-\-t-----..4.L.l.....// /8/P/h/////00080P0h0000011 1@1`1x11111222@2`2x22223 3$343L3d3|333334 4$4D4\4|444445545T5d5555556646L6d6|6666677,7D7\7t7777888<8\88888899 989P9h99999:: :8:P:p:::::;;0;H;`;p;;;;;;<<(<@>$>D>h>>>>>>?? ?8?P?h?????@@ @8@X@p@@@@@AA0AHAXApAAAABB B8BXBxBBBBBC C$C<CTClCCCCCDD$D<DTDlDDDDDE E,ELEdE|EEEEEFF,FDF\FtFFFFFFGG(G@GXGpGGGGGGHH0HHH`HxHHHHHHII,IDI\ItIIIIIJJ,JDJ\JtJJJJJK K(K@KdKKKKKLL0LHLXLpLLLLLMMM0MHMhMMMMMNN N8NXNxNNNNNOO O@OXOpOOOOOOPPP0PHP`PxPPPPPQQ Q8QPQhQQQQQQRRR0RHR`RxRRRRRSS4SLSdS|SSSSTTT4TTTtTTTTTUU U8UPUhUUUUUVV V8VPVhVVVVVWW(WHW`WxWWWWWXX(X@XXXhXXXXXXYY Y@YXYpYYYYYZZZ0Z@ZXZpZZZZZ[[[0[H[`[x[[[[[\\\0\P\h\\\\\]]],]D]\]t]]]]]^ ^$^D^`^x^^^^^___0_H_`_x_____```<`T`t`````aa<aXataaaabb,bHbdbbbbbc c(cDchcccccd d<dXd|ddddee4eHedeeeeeff(fHfhffffffgg0gPghgggggghh(hHh\hxhhhhii$iDihiiiiiijj j8jPjhjjjjjkk k8kXkpkkkkkll0lHlXlplllllm m$mDm\m|mmmmn n,nDn\n|nnnnooo0oHo`oxooooopp(pHp`pxppppqq q0qPqpqqqqqrr r<rXrtrrrrss$s@sdsxssssstt t@t`ttttttuu(u@uXuxuuuuvv(vDv`v|vvvvww$w@wXwpwwwwwwwxx x8xPxhxxxxxyyy8yTylyyyyyzz,zDzdzzzzz{{{0{H{`{x{{{{{||0|H|`|x||||}}}8}X}p}}}}}~~~(~@~\~t~~~~4Ldt4L\| <X|$H\x,<Tl $<Tl 8Tl 8Ph0@Xp 8Xt,D\l4Ldt0Tt 8H`x 8Xp(Hhx0Ld<Tl| $<Tl ,D\|,Dd|4Tl$<`,DTl,Dd|4Tt<Lh4Xp(@Xp(H`x 8H`(@Xx0H`|(Hl $<Tl $<\t4L\t $<\|(@Xp(@Xp0Ph 8Hh 0Ph0Hh4Ld|4Ld| <\t,Ld| 8Ph0Hh @Pp @Pp(@Xp @\t0Tp 4Pl|0Lh4Pl,DTl| $D\t,Pp4D\t4Tl $Ddt ,H`| 8H`x(D`4Plˆ¤0TpÔð (DhČĠ 4PtŔŬż(@`xƘƴ$HdǀǜǸ(D`ȄȤ(Hhɀɤ<\xʐʴ$Dhˀ˘˨ 8Ph̸̘̀ 8Xp͈ͨ0HXpΐά 8XxϜϴ $<TlЄМд$<TlьѤѼ ,Ld|ҌҤ<TlӌӬ(@XpԈԠԸ 8XpՈՠ0@`րְ֘ 8Ph׀טװ8Tl؄؜ش $<Tlٌ٤ټ(@Xpڀژڰ0H`pۈۘ۰(@`xܐܰ,<Tl݄ݜݴ4Tpވޠ޸4Ll߄ߤ߼$<Xp8Phx $Hh,<Tl,Ld<\l$@X| 0H`p0H` 8Pp 8Xx $D\|(@`,D\t ,D\t4Tl $<Tl (@Xp(@`x$4D\l4Ld 8Ph0H`4D\t,D\t $<Tl| $<Td$Dl4Tt 4\,DTl ,Ll,Dd|,D\t,<Tl4Ld| ,Ld| $D\t,D\t 4L\t,DTp  $ < T l       $ < T l |       4 L \ |       4 D d |     , < T l      ,Ld|4Ldt,DTl ,Dd| $4Tt <Tl<\t4Tt $<Tl,DTl4Ll 8H`|$<\t,Ll4Ld,Ll0H`x0H`   @ X p      !!(!@!X!p!!!!!"","D"\"t""""""# #$#4#L#l#####$$$4$L$d$t$$$$$$% %%8%P%l%%%%%%&&(&8&P&h&&&&&&''('H'h''''''((((@(`(x((((()))@)`)x))))* *$*4*L*d*|*****+ +$+D+\+|+++++,,4,T,d,,,,,,--,-<-X-p----..$.H.`.x.....///0/H/`/x////00080P0h0000011(181P1p1111112202H2`2x222233 383X3x333334 4$4<4T4l4444455$5<5T5l555556 6,6L6d6|6666677<7T7l7777888(8@8X8p8888899 989X9p99999::0:@:`::::::;;;0;H;`;x;;;;;<<<(<@>>H>x>>>??(?P?p???@ @8@P@`@x@@@@@AAA0AHA`ApAAAAAABB(B@BhBBBBC CPCCCCDD(DHDxDDDEE(E8EPEhEEEEEEFF F8FHF`FxFFFFFGGG0GHGXGpGGGGGGHH(H@HXHhHHHHHHII I8IPIhIIIIIJ J$J<JTJlJ|JJJJJK K$KDK\KtKKKKKLLL(L@LXLpLLLLLMM,MPMtMMMMMNN4NLNlNNNNNOOO4OTOtOOOOPP(PHP`PPPPPQQ Q8QPQhQQQQQRR<RTRlRRRRRSS4STSlSSSSSSTT<TXT|TTTTUU(UHU`UxUUUUVVV0VHV`VVVVWWW4WTWtWWWWWXX4XLXhXXXXXY Y<Y`YYYYZZ ZDZ`Z|ZZZZ[[,[D[\[t[[[[\\0\H\h\\\\\]]0]H]`]x]]]]]^^4^X^|^^^^__$_<_T_t_____` `$`<`\`|````aa0aPahaaaaabb(b@bXbpbbbbbc cDc\ctccccddd<d\dtdddddee$eDe`eeeeeff0fPfhfffffg g(gDg`g|ggghh(hDh`hhhhii iDihiiiiijjj8jXjtjjjjk k,kDkdk|kkkklll4lLldl|llllm m8mPmpmmmmmnn8nPnhnnnnnoo o<o`ooooop p,pDp\p|pppppqq,qDqdqqqqrrr8rXrprrrrsss0sHs`sxsssstt(tLtdt|ttttu u$uDudu|uuuuuv v,vLvhvvvvww w8wXwpwwwwwxx(x@xXxpxxxxyy,yDydyyyyyz z,zDz\ztzzzzz{{ {8{P{h{{{{{{||,|D|||||}}}L}`}t}}}}}}~~~(~<~P~d~x~~~~~~|p8DX44Xt4PdT$@\x0Hh(@P<|P0@`(H`x(@`,D\t ,D\t4Tl,DTl $4Ll80(8Ph0Pl4L\ 4l|0DXl  4H\p4D\t0H`x $<Tl0H`x 8Ph,D`x 4 0@Pdx 0@Xp0Hh4Ld|4Ld| <\t4Ll @`x 8Xx(XHx Hp8Hd|0Tl $<Tl $D\t4D\| $Hh,<Tl,Ld<\l$<Tl(@Ph\LP0ń|ƜƼ<\|ǜǼ<\|Ȝȼ<`Ʉɤ$Ddʄʤ$Dd˄ˤ$Dd̨̄ ,Ll͌ͬ ,LlΌά ,LlόϬ ,LlЌЬ4TtєѴ4TxҜҼ<\|ӜӼ<\|ԜԼ<\|՜ڈ\XPxL 0@P`p,@Th|0DXl  4H\p$Xx0X,T $X\TDxX\8DdU3!%!!D $hUD^T&1Nv 2"'&546#2"'&546  F<  F<v,M 32!7>3232##   #! #  -    $   #  p-.,0)2.0    ,0fVGWd2#"'.'#"'"&57&'.5>32.54>32 32654.'&#"HFh%   K9M F*C*2th!!1 ! *N3R.8T44la"2O"_  (4CK*P ,8F"32>54.'2#"&546"32>54.'2#"&546 #"'632t8MoI)> (P*EW}8N qI)= 'O*}r:+  Nm?k-LT/EZ0Q]8Nm?k-LT/EZ0n j  g%./326">54&'2>54.#&6732>7#"32672#"./#"&54>7.546,:55,)Bx>B\hEN3PJ/][Cu2@$5BY"`4d5.$;&B  &,L+!H7. L_5ggI%(';PP;2I*<LVD(CmJHlHukAp_E)L 5 W>0%5C 1#**CSEu^C%@M@sNv 2"'&546  F<v,M '.'.'.7>76'&&'&6767676'.'&6767>[=$!.$# >!,j )! B"}3&>,&2% _7 @>!E 7 g $2'16&1$ <  / e, B#-"z> 632!2!#"&5!"5467!;   v9 f  f 3 l  E ",72"&5>54&546$N 0BC>NT+ 9L- Z(#?t~" $72"54B)G 57.`<6462"`CZ??Z-Z??ZC2'"&/>j  &%  l"32654.'2#"&6,R}A?uHV|:>rTceɆgeJ߱޲"`"$'%4&#"&547>;23&#"&672676!kEd _ _ (*"( T/ Hzt * *&*0!.57>54&#""&5>32!267632,@L=9'|`8gH+ :[Ir:M!,k_TRh)>1R`ÊJP D2#"'.5463232>54&#"&547>54&#""&5>4(YP5%=:-^V7X^p\ 2"&*2b*PG+f-5 @j[3oU+U0. 7#>e:.YD10NxFcq?./*672"E}Rw /Gf>Pj'*2Qqd232##"5!&5>!,v NH %u@4 X T"B2#"'.5463232>54.#""&57!276?+> U^4X^p\ 2"&*2b*PG+2HnC"o l($.. %px (?e~@cq?./*672!E}S'PO>&  (*d (x2+32654.#"72#".5476$72>F7^9_}1uV{PP6Wb8b^f- 7c2d8PFPY]b5Qic.PRgp#+{*0|2632#"&56?!"#"'670h ?\``:?< 3 #GS m%K%2654.'&#""327654&'2#"&54>36'.546 cu2>V(SKUHd%G4'nJ)M=- i噥  -22 N~6xf/aCC 5_uZ4WB#Z]F7aM/ ;c͵2)-(# /d+654.#"32$#".54632"&7^9^|0tV{ c26PO6Wb8b^fӅ 8PFPZ]*05Qja/PRgp#+tP^6462"462"tCZ??ZCCZ??Z-Z??ZCZ??ZCLV^72"&5>54&546462"$N 0BCQCZ??Z>NT+ 9L- Z(#?Z??ZC<x\%#"'&547632 x$$tFV|=v^ ~ %0!&>7!!&>7!  &   & -8+8-8+8`\7474? &54632#"&`v""FPJG>Upl86462""&547632&'&54>767>54&"~CZ??Z=D)fjY8[o*i  2 )!9Xx]-Z??ZC^8,1@VzCg@S '8Cs(E,.-!2KY*bGU2#"&547#"&54>3232>54.#"#"'&54>"32>?&Dr‰a.ksMY8L\)YegdKGz5+/aM1&Ruewԛs9sLJ5/?8{b?f0w^(Dv_TX7% QX;pkެm.,K{[Sh=ViC,  5?vѡ^UTč`.ER>323&#"&67267654&/&#&#"3.#"&4726763327276=z7 2 c)GX M D""~Z 8"%5& D:')?L"R *hNK]7+ԁ% ) * TT`R< - , 7TQ, B3 !'32654&#"72!&67267654'.#.7326 I@>z}~[ :llO1C 'b]@}4h h"Nb &8L`y+BiBg.O}Fqh* tVt * `6(2"'!"327676!".54>. 9v)UyemZ #3cf6* $_zH`Q&ZjoT',532>54.#"72#!&67267654'.#.7326 mU=hY ̡ a*i h h&:EݎՎ`+&|ck~L* tVt * T_0d2$3#"'.+";2>767632#"'.'&#*;267>7632"$#"#&67267654'.#.7GZq- oZ 0'j281  ( 5G`H)+4& *gH1%h h": oM&h (  O+ #`]S rGZ* tVt * T0O2$3#"'.+";2>767632#"'.'&#"3&"#&67267654'.#.7GZq- oZ 0'j281   y!b%h h": oM n (  O+ t * * tVt * `m6A4'.#.7327"#".54>32"'!"32765. fa 54'.#.7<h EhU2. .,"4, h" * tN 1? *3}Vt * T/,q27"67>7654.*#&473267# "'&'&&#"3&#"&67267654'.#.7Gh 4t\.  aM!4,%+=~P) VM D%:*1+cL?N:7u  hh h" 0&nr sb;%  '  5 BN'e Y%M(?+1(. ):6t 0 0 tJt 0 T_,7%;26767632"$#"#&67267654'.#.7327" 5Gr?'R,& *gH1%h hh  8 rGZ* tVt * *&n0,l27327?327"3&#".7267654&5'4&#"' 3.#".72676754'.#"47E4n8$X|dk  g&)J^Z . 4 t"PB')GZ !u m#G;" 6#: 6=aY6 & ) JWh rPM )*) F:7C2J2754&'.#.732>7"#"&'3&#"&7267>54&'.#&7`82lrs)?L"w  )q)?L"w  w (N t>6 ( !6=Ҭh Nt>6 ( !6=d=6! bv6)"32>54.'2#".54>W_BAvpW_CBwRiihhCnSvtCoSvsDekelS ,=#"'&54>32654&#"3&#"&67267654'.#.732632 6 3|[ hh h"@m~~t * * tVt * Qb69"32>54.'23272#".'&54>W_BAvpW_CBwRi7DsId* `T<{ttGhCnSvtCoSvsDe@L& 33+DHG6elS,>J2"'&'&'&'&+3&#"&67267674'.#.73264&#"326bFyKj-ePE@"W,j hh h"[ k{&-TRg$;7 )#0t * *{Vt * ~^b4Y2#"'.#"#".'.563232654.'.54> ,M2^%  2?X1:Y0' 8$AH-E,4FuP/mHo4ErDf #3%?*PC,q4 W JN?()DJ'6*+'' ,1'96E$P^5OA\F2q6('!"  24#82?!fVT42676'"'.+3&#"&6726765!"#'6763NbH hh HbF* ч ot * * to  4.;27"3 4&'.#.732>7"#"'&54'.#.7'h b^|k)?L"w ۊ h" * tzt>6 ( !6=Ht * ,@27"67654.#&4732>7#"#"&/&'&'.#"470 "- #oh7$!1& <);CT&>0(W0,X XG" 0 )_z\0"/2,ZD h}C7,`2>7"67>32667654.#&4732>7#"#"&'& .#"&'&'.'.#"47'DS "- $2. 7U>!#1( )8@T%#.:1 WWL2571 C&  K" 0 &o[zY' Ģh(~`,"/ 2y}*Q*z/ # 7 <,f27#">7654.#.7327"3.#"&432654'3&#"&67267>7.'.#"47?823 n?D @4Jdx3Uq9O?%2Zr&Y ` H5)."$C~3$7)D"`L" 1 "+S_ / + ((( ,2ր( . +*.VD8;2,Q%4'&'.'.#"47327#"67654.#"&732>7#"3&#"&672676 >59,D"`L,823DC4/EN>7=  hh .q*_6;2 1 ' zO= 6  1 $k%,t * * @>1"#"&'673!2% !27>5632!"&7d" "/p4 uE #R}  G !& *-q9K$ ,!0%0#00'&#&'476R2LA#B2#'&'6X&   Z2"/&5476?&'"'&54? !76t $@\ )78""~\ XC$  Gr-,@@++`2uG 63!2+!" B\ I(XM4JDh D%265232>32#"&'#"&5467>7>=4&#"#"&5467>v1}9ANW>   c*F .c?%!u eG21 M& >\A. O78T rd^7Q1ia9Y <* 6Gy=?`4 !:jl0?"'.""&5654'&#"&6767267>32"2>54&+i   k)1VY0KH$` t|H # 5_P$B @nv NLzFaM& =QcPNl,#".'.#"32672#".54>32.(- "+%VHm 0He7uc=e~?lH 1/)B$48$tiTtW-0#Nl8E22=4'&#"&676723#"=&#"&54>"32654&*\ k&&# KA@bm@nl*P$B @n!  &F  X]xITDž6#?Pl30!276.#"32672#"&54>32F+$D+/N- Hu 0He7JrBDn@*)K:.<@,0EE0JF$48$a|K*=N@./ 2r=2#"'&#"32#3&#"&6726765#"5467354>+  (!1>  d#AT] t ,JJkwr##cY t * * t 3&gdžR.9n \"32654&"32>54.72.54>7.5>7.546327'"#"&'3Q_iWN\c,L}D]gAZ:! ] #AT] Qs"]? ] #AT] k(l">l\t * * tȽ04 ^t * * ttP$B @n<,f@'T Z2`'TZC$l[%3&#"&67267654'&#"&6767267>4.#&67327"7#"&'&'&'&/M ] #AT] k$B'%a_gIcg9m$g-fPrt * * ttP$B @n8 m7!  , +W=v# :|$l&4'&#"&676723&#"&6726765 k ] #AT] \P$B @nJt * * t@p26323&#"&672676=4.#"3&#"&672676=4&#"3&#"&67267654'.#.7672327676[roAZ:! ] #AT] )D0,a7 ] #AT] Pl=} ] #AT] @+s ];<lNX">l\t * * t@ZS045 3[t * * t̸V^t * * tlX(=TN@pS23&#"&672676=4&#"3&#"&67267654'.#.7672327>AZ:! ] #AT] Qs"]? ] #AT] @+s (l">l\t * * tȽ04 ^t * * tlX(=T,fRn"32>54.'2#"&54Ql+>VQl+??,h\eh[dB<p=K2#"'3&#"&67267674'.#.7672327>"32>54&EXU-STFF ] #AT] @+s/ :nyAO{<lO~C^N t * *{2P(=G (Jv7 FLfSN:lB"32654&'232723&#"&67267654&#".54>Ck< 9gs " ] #AT] #8BvR==g$Ejn18=OH2# 5_t * * t( S3Ulr6OrX.@p>2#".'&#"3&#"&67267674'.#.767267>_'E. #$&:f #+] @+s "j"17 +t * *{tP(= JRj=2#"'.#"#".'.563232654.'.546- \:EI+> >7!})G_  zJ?Q:.^FRjZ CuF8+"#$%+/w ( GwMC#801 (eIk(Lm)!2#327#".5#"546735>7>@ B@1\-)F>#t ,J<, ` . +-.X>D3~A0pG4'&#.76723#"&='#".54'&#.7672326'Zn&'% KA8 .H=\5! Zn`hAxN('"' f\WA   \ 1S4Npc9N('" nVРI%\82>7#"7654&#"4732>7#"#"'&&'&#&7"=M '.fL @462%"6DUV& /d1[ J=R 1  #"2 1 $ oFd(\_2>7">54&'&#&47327"7654.'.732>7"#"' "'&#&47"=M&/ >  >n/d"$> /c/"5C]r "YH<R .7K=OR% H&. *@4W[IsM  - 1"&C Bb, ( \m27">54.#.7327#32.#"&63>54'&'32.#"&67>77.#"&67\nP S+!$*L=$ZF}fA2hH9!&DW7h6 e %F9#"9F( % Q&nR ("rH2 2%#Z H 0P3   '   Z 8\:27#"7654&#"47327#"#"547267>7'&#"47sU '.fL @4KiDdUV B2!LbWPZ8Er[_R 1  #"2 1 $l0pV'K(7 DFn'!27!26762!.47%"#"567(qUs <v . j^ &kI  \$% Y")('&&7676'56'&'&776<8  8; ;d{{d;4v>^@^@tOaVXb#"'465076763T .    (&'&767&'&7676'&76'&76;d{{d; ;8  8<4ObXVaOt@^@^>vp%.#"&5463232>7#"./4Y*5T-R,_-6/5Z, "[.\;*/) 6f 3ijBF\462""&54>767j?ZCCZ%+-  <7ZCCZ?G-QN-GZ&F 2XpY2#".'.#"!!63232>72#".#""&547>54'#&6;&'&>t07) .!!2?Ky9 &$F5a<&H3   1Ji79mDR"'" d+A )l Ak#1/" LpJNz *b4$&=+  IO5$*$'< 8d+G ?Yc{I 32654&#"76'#"'.'7&547'&>7632LYq_Ys/v"!x:Bl0h_ucj"!l4 i#&6;&'&'.'.#"47327#"67654.#"&732>7#"3#3#3&#"&672676=#&6;Z # >59,D"`L,823FI3/EN>7= hh # Aq*_6;2 1 '$Q6 6  1 $k%! V ,t * * t, A##".65&7632&7632#".6Q  "+g "+Q     L  .  Ld(Ck276767654.'.54>3232654'&#"#"'.#"654.'&54>767f @Qb)JG._9G"   1 %-f @Qb)JG._9G"   1 %'8@ '8@ T 6sd=xjO*W=#4 2T 6sd=xjO*W=#4 26*79:*,6*79:*,dfUnp&2>#"&54632#"'.#"327>32 >. 32#" ^vyz}c  'K2PpOg) %%߂@( o&wz&r  &|Tp|& !߂߂@^nX @26=232>?2#"&'#"&546767>=4&#"#"&547>.!W ;- V7q<\* E1xE], @6## 5 )<7 "B';nNB  '8"I\D'= R &2J%)B$ 'Id%'.547676'.547676Ƕ wCEu f wCEu TҜ <~mp9 Ҝ <~mp9 Z4H #&'!"563. H   \v"p P9FRa2"'&'&'&+3&#"&67267654'.#.73264&#"626$ >. 432#".BsB-7654&#"&7>3232>767220 wc$`F>*H$$Bi\'%xk1_@P"# ?[x^\n# N2 =22#"&'&5463232654&#"#&'&7>54&#".76DEiJ*3$T%0AOW9"Pj?'   P RH;XpX %$]YHd  ]E'? xdXN4:jE32>7=6323272#.'#"'#"&5474&=632 420[G6X JB7/ k;!5=Na2Y%XX.32326?"6?2 0, [0*02N d2F&a [[2gS;L;;232."&4326765[]: SzZV  ?'  'J#.TN`9% .. =LT "32654.'2#"&546vPPf\LN&X,$`n^EzW0}~}^%4'&76'&76%4'&76'&76 uECw  uECw Tݑ 9pm~< ݑ 9pm~< D+ BQ203##"'5!&'603."&67267654&#"&'67./> F L64 O*,PbXqK 3    N".  - "459t8*  ! *2t) bm  J *Q`232>7672!"&7>7654&#"&7>3."&67267654&#"&'67%'./>ri\' 20  0pF>*H$$2PbXqK 3   N" x^\n#  %54&#".76'./> F L64 O*,EiJ*3$T%0AOW9"Pj?'   PN" .  - "459RH;XpX %$]YHd ]E'? x  RBN\8"&4622632#".5467>7>&567@CZ??Z2 )!9Xx]=D)fjY8[o*i  Z??ZCCs(E,.-!2KY*8,1@VzCg@S '8'$'$'$V'|$x&$8 '|$0!"".632676=&#"3.#"&4726767654&#&6732$3#"'.+";2>767632#"'.'&#*;267>7632"$332<::eHj3 T>P"2! D:')32#"'&54>32654&#"3&#"&67267654'.#.7Gh !lE>uJ6 3|}b hh h" *&n~1WSn&* * tVt * 2jo2#"&'4763232654.'.54>7654&#"3&#"&6726765#"5467354>I|c8vI# C4.%-C&pT<  &57E9,+5* "B_f^+B)  d#AT] t ,Jgj>hDxl< .52 30G(x8Z 9XJ!5. !%"-;%Ajdz;B\J02t * * t&3 wJD'MtDJD'NDJD 'ODJD'PDJD'UDJDH'VDJle3265&'&5"3!276.'2#32672#"&'#"&54676$7>7654&#"#"&547>32>j8BN8:~ q/N- F+$D Dn@*)KHu 0He7a1,0c5'9  UE21 .'&5`"32654&'&u5Q0  Uj  WJk{EtP5cJ:V1@|NrvQn 2@z.  .v7+ #V -DU{v~ESQB;g|HdxśP @'PQR'MRR'N*RR 'O RR'PRR'URx 8'TZ&'TZ$5Tn&R6'MX'N7X 'OX'UX8'NO\<l<J2#"'3&#"&67267654'&#"&67672327>"32>54&'XU-STFF ] #AT] k/ :nyAO{<lO~C^N t * * t2P$B @nb (Jv7 FLfS8'U\<'~8$JDn'Q6D'$JD'SDB._k.'32>32#".5467#"&67267654&/&#&#"3.#"&4726767>323332726=cN%-#?" dn4D[M D""~Z 8"%5% E:&)?L"R *4z7 2 cVhNK]/<7  9A M9 * TT`R< - , 77+ԁ% ):JBDh c%2657#"&5467>7>=4&#"#"&5467>3232>3232>32#".5467.v1}9AN.c?%!u eG21 M& >aW>   < 74'%-#?" dn4D~P*\A. O78Tia9Y <* 6Gy=?`4 !:jrd^*')*!)7  9A >?A`'&N'NF`'&N 'OF`x'T&N'TZF`&&N'XFT'&'N'ZRGT',&3'Nl&G7T_<'8(Pn'Q6HT_'N(P'SHT_x'TL(P'TZHT@_0~2$3#"'.+";2>767632#"'.'&#*;267>7632"32>32#".5467"$#"#&67267654'.#.7GZq- oZ 0'j281  ( 5G`H)+4& *T%-#?"dn4D{U1%h h": oM&h (  O+ #`]S rGZE7  9A H;* tVt * P@l=K%32>32#".5467#"&54>32#32672!276.#"]g%-#?"dn4D]?JrBDn@*)KHu F+$D+/N- 3OO7  9A 9@a|K*=N@./ F$+.<@,0EE0T_&(VP'XH`m'*.9H'O2J`m'*.9'SJ`mx'T*.9'TZJ`6m6'\*.90'YJTZ'+'KTZ,&+8$l&K9AtV'G,75'P%L]<'V8, n'Q6T8'O,O'S;T@8,L27#"32&'32>32#".5467#"&543267654'.#"547L hhZP%-#?"dn4D]$)J^ef^J" EuuE 0<7  9A J=6||68@'TZT8x'TD,@p(3&#"&67267674'.#.7672k ] #AT] @+s^t * *{tP(=b"R:1,&,-@24&'T Z'CTZ0:-'D-2 'OCT6/,'\.$6l'\N@#p[67>4.#&67327"7#"&'&'./3&#"&67267674'.#.7672k$B'%a_gIcg9m$g-fPr ] #AT] @+s m7!  , +W=v# :| t * *{tP(=bT_'/$'OOT6_,'\{/"6l'\OT_6'Z/$l'Z(OT_,'T},/$l'T|O>_,&/:"l&O;C'$1@ 'NaQC62'\1>6p'\#QC&1@'X;QD'ZQC:2_%3&#"&7267>54&'.#&732754&'.#.732>7"#"&'&5463232>q)?L"w  w &`82lrs)?L"w EhU2. .,;=-K't>6 ( !6=d=6! N t>6 ( !6=N 1? *'[@2pM%.#"3&#"&67267674'.#.7672327>32&'&47>Ps"]? ] #AT] @+s (@AZ:! /FaV.4@E"\T04 ^t * *{tP(=T,f">l\n}e7  %Asbv<'82Rn'Q6Rbv'2R'SRbv' ' 2R'N'NRb6^v!"#"$54>3272$3#"'.+";2>767632#"'.'&#*;267>7632"$"3267>54'.Wxjߦi} kLZq- oZ 0'j281  ( 5G`H)+4& *gHT`B@vpgF.4l: oM&h (  O+ #`]S rGZBoRvt/"S?DhyK0 Rn M"3!276.%"32>54.2672#"&'#"&5432>32p/N- F+$DKQl+>VQl+?Hu 0He7j6:fx76p'\US']5@ 'X Ub'X6R'NVb'6R 'OVb4&:6Tj']tVb'6R'XVT'7*Nm']bW'_7(X'Z`WT&7<(Lm&W=4V'8'PX4<'88n'Q6X4'8'SX4'8H'VX4' ' 8'N'NX4@._27"3 4&'.#.732>7"32>32#".5467#"'&54'.#.7'h b^|k)?L"w 6_R-4!/%-#?" fl4DW&Yۊ h" * tzt>6 ( !6=|=!),%)(7  9A M6 Ht * :dd3#"32>32#".5467"&='#".=4'.54767263232654'.547672632B&'%  >%-#?" dn4DDH 4E=]4! ;& @ ]g=k;& @ pWA  K7  9A ?/ f 8V4MiZ0N0!"`4]#vN0!"`{': 'O(Z{'v<8 'O\x'* <@'=DF'N]@x'T=DF'TZ]@'=DF'X]2r83&#"&6726765#"54673=4>32#"'&#"[ d#AT] t ,JJkw.+  (!1>`t * * t&3gdžR##cY`m'*.9H'X2J2`p#74'.#.7672&'&47> @+s/FaV.)5?$ZP(=b"Dn}e7  /Ub<"Y<DZd,lJt2654&#&72#&DE[XPnm rNUk $ji<lZt"&5463"B mnPX[*ij$ kUNrd X4dSD.d,TdLT^dX'N4N4D$2#".54>  0 #$< g $2#"5467>x # 0 $ g <&2#'"&5>7 # /vF/ #(*0= `8 =0*(232>72#".'&#""54761L( 0 7E/O' ,5 0"*"*J 2#)&$H80!&67!@  C =ZD463!2!"Z x W@ 267432#"&'4&54632~` {OPz >OA RvtV Af462":T::TT::T:  2"&46!2"&46%78L8:%78L8:8&%57J78&%57J7RJ2654&"462"&AZ??Zhffh\BA/.@nIihjj$$'NlNd0"'.'463672  # /nN/ #(*0= bD =0*(vN#.54>7632dLR$82 ..R,BC0Z>(  (6!D2"&5654&546BM? >89D /AHEOS2M6fTx6^2.5>54.546 #tR I6\4T#M'&?!32#"'4&5463232654&#""&7>732&2lP) .(.'#/ *6:(ES '!# JbLT!%232>32#".54>6  `QF%-#?" fl4DPieT D@`,7  9A .nN SLQ<( 0'&547632! '&/&4 ;dmG< , < T;V+C "t=}yOl"nO#"J (<'H2&7>7&"! $'&#"'.".54632767632327632! %6$ C B= LF O<,4 8H-+MJ FLY15%KId(* gr&lH/q^F`GG.cIWBGvv ^)Q Wv8D ]X,//#qyS-j!"4.54762!$%6 IE"S(;K2Y#7Q.U&/N5 F/jV8 1>:: ><^W%/"47&'! %&/&4! 7672#"'&"26764lB8>C "O+WoK lI?9s_^?D .hGJ Zc1Hp RPa8.&[E|&f8.&[Ez&fX<%&6'&'&763276'&?'&'&7?6767676C, ?EgG9~-pMH  gf )IJ~h"2[zu?g&1A9>0?%0Cd5'H'2'Jm> TD67632'&'&>!+P /J@[c@N- -09[^#d zEW?'&'&7676%&-2MO^6tLBQ(+LL' 2}P{0""4.5476276%6! IE"S(;K2Y#7R.U&/N5 F/jV8 1>:: >P/P3<&'&767676'$76767667$?6%!$6Q3+az<#1 !?'-Sٓ.B&8lr) #  fs=&@G$`O;c2 5 &: ]R\?k0/}WDx&%>36'&76'&?6>?t+MY4N!,Jg^* #D :%Z )[\ZP aoxT-xS (&76'&?67&'&>'&76o+ #D &Bi zyb  gh- MCh&(_aoxT ['4bwU  (&z @Ssc!/Q ?cl l/Q &oJ n%&767676'&?6E""؝ WW  -mr9BC&4Oe  }6B6.?&?667&f7|@ ID\ YQ- :6 NN(` n @< O5*(0,lPai w '#76&?6%6'&'&676'&'&?6 !#.% \)t$4[ KWe< 1/4P -6 ,V@Lc $ h- "6&'&76'&67676'&'&79&;N00s T=lN("]/1 ? Aa  %6?6$_ # 9x ;xv6'&767&76&'" :\K"*P@e%-F<0oJN("w)9U1N`q, Ro[wFTD'khL[&[@n<&\tc'&7&76763'&7>76w  # tG1i -\(,tG^J' 6 #j=fTQr)KX8?8"+5tL&&S4<'W.&JHnT&bU&Jm&KpU&KU&L;&J 4;;&J})}0&J$V$TV$&JHu"ou"o&Lx ='x =&Jrr&J\t.t.N&JrB}v #@'KV}1 # &U:nT&nT&KJnT&LJ515}b&Jw&KV&Rlz^tyi$&J&mS4TnT<n}<&K 6?676?67B +c: "E ->@ -'%64"(<'   ">'&''&767.>&'&6'&'&7676'&b" +# X/1KG$C'"  $# RQ7OF &VY, C  624,D, (/V6%/&76&% _\(lL @)) aj; bn'&7&'&76.26o\ iL UVa> <*Q.DT!'8 %A&0SvuTB6@ R 1 9,)676'&.|( 7u , !~i+ ?67!6>(4*>(4*&0&0D$0#"'&'&547667632&d#uB N*X 8  y  "KkP)#'&''&'4767676 c:? 0e0u  aN#   u  RVfeJY 1 '&'/&767&76>'&b;2:l-($' !438 B% ,5/lZ, O&= ' /K&A&67&'&76.26'&&7676, L UVa> <*Q.DT!%#4j3I*G3/1\&0SvuTB6@ R!J+3> z#  60/&7/%A5+m.4 n->" 6&5&75y)7H 6#2Uzt % =,?676762'&'&7:d9&@f<""$ +]p%.['}9)@'t%62'&'''&'&?67676@)6<,ay<" "* 35w9Xz*0 ou@%=}=!j  "h>'HO! (45c+632'&'&?67&'&?6U %t'u2$#wC+3:; ").nq:/A=V  )2!Z =P/PO3!m6}MK(M'dx 6 &5&7676&'&&?67>} !֨ S  +$ k<A9t#A\>'&/&763 !֨ S  8 k<|A96# 6''&&'&76Žyac%-w? #[n&1D27.dl+0mxB+ R'@&\\>w6767676/&7)] ܂~W_W*+`- ,K5L?\wj  /Kkc'&7676=] ܂~WxfY(+`- K5L?W|m  /WL !!%WgppgooUUUw$  k 6'&'&7 > K "բ&w& }&YL} )&\n}E)&JH}E&'YLJH}^&K$})&K}3&L$}.&U$}N&m$V$&YHxV$&zV=T&\VTT&J0WVRT&VTT&'J0WJ0V$X&KyV$-&LyV$H&myu"o&'JJ@uo&UOuo&'LUOx ='&K}x =&Lr&L\t.Q&LrB}b"} b"&J}Eb&'JJH}b&L} "&U}b&mw&Jw&L}v # vPV&'Rl\XdV&'RlJ#&'RlLV&'RlU]}v (&WbO}v ('\&WbO}v ('KV'WbO} ('K &WbO} ('Z&WbO}v ('L['WbOz^&z^&Jz^3&L1$'^&U0y$&'J&J=yi$yi$X&Y&yz$&'J&\=yi$&L&7i;&'JU$m&pmm'pm'KpS4T'\S4<T'BS4'S4_'|S4/'aS4'S42'KS4'LnT<T<&q+nT&S4'Jn<&Zn<&U{w{''>h %#!&?63D$w6$$w6m ?E&'&'&?6767667676''&'7676'&'&7676%&76&2/=EH|\7%:y* DA,('X_1". w. #'tKv 7:my' $9B,?E +Co,-U~S2 =8(OZ?>6E $85:RP1 =U67&'&'&76'"'7676'&'&7676'&'&'&?6676'&''&'&7oR 9[-HX@#I('X_r". w. #'t&n(*B9<- : S!Cp;JunPp?8vZ?>6 E $85:Rb:my' $9B,>s ?+Y$G ( ez '&7676'&r, +_+lx#d i. `M  t.66&7>'&'&760767&'/&?63607&N #! e"'n T4w R mS'? C. -E'"VDC 3$ /P Xh.' " n8 36&'&7#76$7&&567676676q/$9Jkr1NS H)=mP  \.Ȋe" t!Z-@ &Jr@"  $o'/>'s t - (6&'&76'&'&7'6'&'&7l <*dZ <)d c<*d b '"6lQb"6k [f"6k [  W962'''&'&67>76'&7676767>76&7* 7I5d2>/ #6J+i5 ' == /:  K 6WC ,_f1j.e 1[r 6 B 2X <#Z Uaq'&767&'$&''&7&'.7&6767&76>%67&'&76676'&676'&'&7676'&%&7676'&&7676'&%&7676'&.7#$'$%6%2&>763"'6765&'/A9(4ߍ&33&4(9A/rhhr/A93#&33&#39A/rhhUU3LG(FM22MF(GL3P('6  6'(P(MRL(R( (~6  6~( (R(LMPlqddql!!!!b 8 Χ 9 9 !ͨ 8kmpg~~grkZ/6%6'%'#"7'&7%54%&76&32G:;Wpp(W:;G% RS %G;:W)ppW;:G% SR %W:;G% RS %G;;X)pp~W;:H% SR %G;:W~ppA 6'&766'&'&K|[7#[ %/24PJXBQe4"2f23?  4'&#376'47632#"'& 4. 04 229<2222<922y+76&~{+67+{vEFFFuwFFFFD('&76767&'&'&7676/ I( (C[ e?372 2'/L 7 I    P >%H( 7>'&'&767&-RG6  U (* +n$2BV) ;DOe(#3mpQ)2P9Mr96%/&76At LJ#13t ! NT/Tl!&'&'&767632'&7676 C"6f"1#N*V58nsb|S5F@#aŀQ1 ? +5>  632"'&'"%6$'&7676#5D=+*9HN4\#q3m4+.QR:VhPlT 4;2H#aOSC#{B )6&'&7&676367656&'&?6/%9K*4 E{ C  IZ_E$ !Y -\Mg7)l x] {f7) XV '/7?GOW_gow/7&?6'%&76&6/6&76/&%?6&&6'$&?6/&$?6&6/42'&"&7%64'6"2767&'67632#"'&566666'''''47632#"'&'#"54'&'#"'&547632767&7'&7'&7'&754&76&76&76&7&'&#"'&547632676543267&{= 3Z  Q{< 3Z  aZ3N  ={1 Y3N  <{1 ^5 ^K  ^6 ^J ZZ + 4ZZ , /+,0+3Y_(-7.*q9 -hR@bL:h#7+wx\FVIrW' 9q*.7-(_Y33Y_(-7.*q9 +hR?`M"?@'t?d(776'&#76'&'&?6fS# zl Pz  $4G 5xQo B; -0cvGS$&*+7676'&7%$'&767632'&'&1&]>65# }6 &PICP Dr\Hn"5@Q2 <3c()t^GWD F*>\ u"o&'LJ@x =&'JJt.N&'JrBJtc&~v~ns&v7i&U&oU&'LJU@&LDU@&'KLDU&'JKU&RU&;2&K;&L"}&'YLZ}S)&V$T&u"o&mt.|&KrBt.L&UrBt. &ZrB}"&K}"&L }v #'Js}v #'Lt}P # 'LTt"&Jt&J?y$&'J&KByi$&'J&Ynyi$&'J&z&8V$~&ZHV$b&zu"ol&Z;&YH;&'YH>Kju"o&'KYdV$P&'KyYe;&Y&dx &ex nT&C nT&B n<&e S4J' S4E' {&wR { &wQ ;& u"o& u"o&xV&'RlKU&Rz'K B}#&'&7>76'.6Q X+5%L7+E*TMG+5"%=I4j;&"*E(X 1!(&'&7676&''&767676767&6P:1>_#34! (#*@g8$  4 4.%B 13&O ,9:\%0,1QK:*/ ' =5U J& &la' 632.47&>@Y{9d4z &>!/6'&''&74767676676&'&'&76*#* JV1$5?Q:3t.5# -): 8+ 79  !"3* - . 9z'D~>| n 6?676?67B + ; "G->@ -'!%64!)=' rL'|j|@e7 HB71")6'&'576?&76766''7&#&5$= N6OZ!c$"P R-=@!0G 64C"5%D8'"0,73*c"=cRmC%&C'DOb %'7%Oggg1H'T=BDn'T]",l'QHK`'UW'<8('M\V#<VVu#7'7'77<a*aa*aa*aa*6ba*aa*aa*aa* #'73#<+BC*6ʌ*B++>&@4@.8%b  w%8.@4@^,c3272#&#"#"&5>5.#""&4633265&'67&'674&#""&46332674&'46323272#&#" )%j8--@b#0 #1b@--8j#1  & 1#j8--@b1# 0#b@--8j%) %Bb%8.@4@&>++>@4@.8%w%'2w%8.@4@>++>&@4@.8%b/6N462"~~`D 7462#"&`@`DD0/AZ0BB`FE`,$462"$462"$462"DF`BB`HF`BB`HF`BB`*`BB`FF`BB`FF`BB`F 3#'7'7<<3*``+VV*a`* 77#+``*<V*`a*Vu #7''7<*aa*6U*aa* 3#'7'7'7'7<<*``+**``+VV*a`**a`*7 7?7#7+``*)+``*<V*`a**`a*VX +7GSa"32>54.'2#"&546"32>54.'2#"&546"32>54.'2#"&546 #"'632Z8N qI)> (P*}8N qI)> (P*}8N qI)= 'O*}r:+  BNm?k-LT/EZ0hNm?k-LT/EZ08Nm?k-LT/EZ0n bv2#"&54>7>2-+(  Ev0,[N g0/bv#2#"&54>7>#2#"&54>7>0+-&  E2-+(  Ev0,aJ i0/0,[N g0/"&'#"&=>7>32t8. N` .'>2Hn86pAl= K,9*<N!.'&547>.#W '  J̓u=N  &R & AU$F8V0N#7.54>?.'.54>7 & Y >tsU  % V" 9F!KH DRA.7' |'  :C  '&'&/>CN"   ?R2#"'.#"!2!!2!3 2!".'&'#"7673&547#"767367>Aٽ,( ;InBgv"   1 xy/C  20 } Os e 1(>-9$ab *+) *jf2#Vfs24-*(-''yjA$ 0!&>7!x   .9,9|:H2!".7>3"#".654#!"547>;!25&76323!2+!"  -( r ~  7   % 4".  7 | pI..547>763#"'.3 $ J2!!P{  3 l( Z #/;GS_kw#"&54632'#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632#"&54632'#"&54632r01jk50hHRTIh0rXm"32#3&#"&6726765!3&#"&6726765#"546;54>32>32#"&'&>4'.#"!546  d#AT] d#AT] t)@\S,G0 -& )G+:V0d t * * t&t * * t& 5 jԄ-9S '1  (;hxGDu2r`2726323&#"&67267654'&+3&#"&6726765#"546;54>32#"'.'.#"A^ ] #AT] | d#AT] t)@lo?x#B2&? 62TzF"P@>t * * tz?-&t * * t  5t;%B>!1H %`24nb754+"546;2=4>3232>;232&#"&43267654&'.#";2#"32&#"&432676 jR HqFC,` ^ D:V( ` ^@ > i‡P. @npt>1 2:Ro,nm\f 02.1 2:4<n%4'.+"32&#"&5432676554#!"32&#"&5432676554+"546;2=4>32>32#"'.#";27263232&#"&432676"3!2=47654/.B4Y%@QX Y%@QX jR N{G4]>% ;KX\l0*; % 5;Y)K ` ^^h  2N;# 2t>1 Fl2t>1 Fl > h{H 0(MW.8@*4,1kZf.P@dt>1 2:nf qQ  (26bn%4&'.#";2#"32&#"&543267654#!"32&#"&543267654+"546;2=4>32>3232>;232&#"&432676'.#"3!27676546 D:V(Y%@QX Y%@QX jR N{G4]>% 9LC,` ^ 2N0^ho,nm\f 02t>1 Fl 2t>1 Fl > h{H 0(MW. @npt>1 2:(2f6  'wo'w4dU#'Z&hG'ZU\W'ZXUP'Z,XUE'UNh G'UW'UwP'UUU'mXhG'm#W'm&P'm-U'Zh]G'Z9'Z'ZU'mh]G'm'm'mXU'Yh]G'Y,'Y"'Y}b'L>k'L\'L*3'L$}b'm>'m\'m*N'm$;'ZHn'ZHv'Z5'Z;'KVAn'K$x'Kf{5'K\;'U$n'U$l'Uf5'U\;'m>n'm>v'm5'mv})'KKH'KK}^'K$K'K}3'L$K'L}'YLK 'YV$-'LyR'LeV$'YHxR'Ydf}v # }v > }v ('WbO}v >&a'W O'a} ('WbO&Z} >'Z&a'Z6'W O'a'Z}v (&'WbOKV}v >'a&KVh3'Wmw'Kah 'a'Kayi$yI!Myi$X'Y&yI!'Y,'Y"'Ym'p~8'm0L'-7i*&c= &U{w{Qx{&'>{#'yR'./CJ/ACPJD/K(/A~K(D/L/L.U.U/7mG/7 mG0v/kZ/AkZD&D\.rLYJ.hrYJh#'L'Rl)'L>'Rr'L-'LS4_'|_'|NS4'_6'S4/'a_'ZE4_''|̜S4'L_'LyS4<T'B_ 'S4'_;'n<'Ztf'ZU\W'ZXUP'Z,X+WPPi&'jP&'.~&'j ~'&'. _W''sj_''._W'|N''sj_'|N''._W'''sj_'''._W'ZE''sj_'ZE''.ep'Z&'J^p'Z&5'(j4`K'Z&'g$Ye>p&'J^p(&5'(j4`K&'g$YnT<t<fW'KHP'KKaK'J1 &>'r:aK&>'r:-a#&'^e>p&'J^e_p'Kb&'J^a'J1 &>'J:a&>'J:a'JG&>'J:-&'Je#&'J&&e_'Kb&'J&&aA'J1 &>'Kr:aA&>'Kr:aA'JG&>'Kr:-a&'K^e>p&'K#e_p'Kb&'K#a'J1 &>'Lr:-a&'L^e>p&'L#e_p'Kb&'L#aR&>'JhbW&'J.a6'J1 &>hbW&.aR'J1 &>'JhaR&>'JhbW6&'J*._?'J1 &>_?&>_'JG&>)''rE[ &>M''rG[ 'J1 &>'Ju[ &>'Ju[ 'JG&>'JuMh''r'J\Gn -&bW=&.bW=&'J+\.a'J1 &>bWB&.aM'J1 &>'JAbW&'JZ.af'J1 &>'JpZaf&>'JpZaf'J!&>'JpZbW&'J.e>p&'J e_p'Kb&'J a&>'K{ZbW,&'K.e>pD&'K e_pD'Kb&'K -}P&a'J1 &>la&>la'J!&>llP&-&e>]&e_]'Kb&a'J1 &>a&>a'J!&>-6&e>p&e_p'Kb&ad'J1 &>k ad&>k a'JG&>k bW&.e>jP&e_jP'Kb&a'J1 &>'Jr:a&>'Jr:a'JG&>'Jr:-a&'J^e>p&'JJe_p'Kb&'JJaV'J1 &>/%&bW^L&.e>t&e_t'Kb&a'J1 &>'KV:a&>'KV:a'JG&>'KV:-&'KNe&'K*e_'Kb&'K*} k&'J$V$ k&nTa' 'XB0 '7 J'zh J'| 'L ' TR''n2VTR'Jb''n2V'r'8jY\M,'J|&,'+Xp(&5'(j4`pc'Kf&5'(j4`T|''JdVT+'Jb''JdV'r'J0YM'J|&,'J+XpQ&5'JT4`pc'Kf&5'JT4`TR''Ky\VTR'Jb''Ky\V'r'K8Y\M"'J|&,'K+Xp(&5'K34`pc'Kf&5'K34`TRk''Ly\VTRk'Jb''Ly\V'r'L8Y\M'J|&,'L+Xp(&5'L34`pc'Kf&5'L34`e[0''J$e[0'K''J$e[^''K$e[^'K''K$-&l W&M_' v5kTT&5TT'K&s:'F&)'K,&P&bW &.TRh''Jn\VTRh'Jb''Jn\V'r'J8Y\M'J|&,'J+Xp(&5'J(4`pc'Kf&5'J(4`t<f'T*|''Kh-VT*+'Jb''Kh-V'r'KrY*M'J|&,'K-+Xp"S&5'Kc%4`pcS'Kf&5'Kc%4`m0'Jp&3'7;q0&3'7;q0'J\&3'7;qr&' d<&'.l'Jp&3'J;ql&3'J;ql'J\&3'J;q&'J d&'J/.m&'Jp&3'K7;q&&3'K7;q&'J\&3'K7;qh&'K. d2&'K.=&'L. dxN&3'J{q][U&'Je`Y<'J\&3q[U&YN:'J\&3'J.q^&'Jm 'Jp&3q &3q h'J\&3q &dwV&32qwh'J\&32q k&dmw'Jp&3'J2qw&3'J2qw'J\&3'J2q &'Jgd&&'J\m'Jp&3q4&m'Jp&3'Jsq4?&'J3mf'J p&3'JZf&3'JZf'J&3'JZ(&'J&3'KZV&'Km'J p&3l&3l'J&3lwP&&m'J p&3&3'J&3[&/=&  m6'Jp&3q6&3qh'J\&3q]&dm'Jp&3'J7;q&3'J7;q'J\&3'J7;q:&'J. d&'J.m0'Jp&3/q&0 k&͡ml'Jp&3'K,};qzl&3'K,};qzl'J\&3'K,};q}&'K d$&'K4U.&'.<&'.&'J&'J.&'KX2&'K.g&'LX&'L.p&'-&Fp&'L }'-&'L}Fw&&]&&'J&'J.H&'KK&'K). J'zh'b J'|'b 'L'bt<&t]'K`&e>)a&e_)a'Kb&e>)&'Je_)'Kb&'Jp(=)'4b&5Epc=)'Kf'4b&5Ep(='4b&5'LEpc='Kf'4b&5'LEe>K9&e_K9'Kb&e>K9&'Jte_K9'Kb&'Jte>K&'Je_K'Kb&'Jp( '4b&5Gpc 'Kf'4b&5Gp( h'4b&5'J\Gpc h'Kf'4b&5'J\G_w'J1 &>'LCh_w&>'LCh_w'JG&>'LCh''r'LcEPu'8'LKEnPu)'8EnPu5'8GnPu5h'8'J\Gnt< R&t] R'K`&5kG&5G'K&5kG6&'Jk*5G6'K&'Jk*p( '4b&5Fpc 'Kf'4b&5Fp( '4b&5'L}Fpc 'Kf'4b&5'L}Ft< &t] 'K`&t< &'Jt] 'K`&'Jt< 6&'J:*t] 6'K`&'J:*p( )'4b&5Hpc )'Kf'4b&5Hp( )T'4b&5'JHHpc )T'Kf'4b&5'JHHn 'J 4&'Lq}n &'Lq}n 'J&'Lq}''r'Lh}FPu'8'LP}FnPu'8FnPu'8HnPuT'8'JHHnm &'Jp&3'Lq &&3'Lq &'J\&3'Lq &'Lld)'-&E'-&'LE& 'JX& & 6'J*& 'JX&'L5} &'L5} 'J*&'L5}X&X&'Jr\? 'S'(W\q327654'&#"76/'&'&?&'&'&'&767676367'&76766'>37&75.>75'%6?67&/&'67'#"&'6')D*$8)D*$8%,I  ?/ .@ I,\#H2rZ\&  A..@  \[r73G#ԔT nUXt' t01//""/C30."!/V20t& sWVm5  T+#8)D*$8)T CC>>u  7D2B $ *DC>>DB $ A1E6|y\ {03P<=u $ u;< (( %u=< (( <;uD21v 6_\q4'&#"3276&6176/&&7.?47&''&'&'&76767667&5'&63>7&/&'0767&/&'6%5'075.667767'"&'#8$*D*8$*D(X"G36r\\  @..@  &\Zr2I#\,I @. .@  Hh20t &tXTn *.""..1ܞ0 ".03sd  6lVVr &t0TD)8$*D)8#]56E1u $ BD>>CD* $ s2D7%q  u>>CC30<  (( <;u $ u=u;< (( <=u% ]] ?12&'J'='Krt<jn 'J 4&''K X &'JX&'3'K;S&'='Krt<j&'Jry'='Krt<jl'J8&3''K2l&3''K2l'J&3''K2n &''J ,] =U&''J G`t] 'K`&'ft< &'f 'JX&'3Sm &'Jp'3St<L&'J' n &' &'F 'JX&'FbW &'.&'n&' YV&'32SbW &'.bW &'.'L c} &&'3'L{'t]L'K`&'J''L } n 'J&''L '} 'J*&''LNFbW &'.'L 7}&''L"t<|[&''J ZO bW[&'J*'.'J O  -&'Jj\'3'J2'n v&' &' {&'lt] 'K`&'fbW F&'J'. bW &'.&'rt< &'fbW h&'.'J\t] h'K`&''J j\ft< h&''J j\fbW :0&'J*'.'J $ sf&'J'3'JZKn ^&''K o$bW ^&'.'K $bW &'. t] B'K`&' t< B&' Y $'J\&A'J\'@?vn 'J 4&'Jv' bW &'J*'. &'J'/nn &' &3&v 6'JX&'3Sc&'= Lt] p'K`&' m 6&'Jp'3Src&'Ju'= L h'JX&'J\'3S&'J'= Lm 6'J*&'Jp'3S 'JX&'&'r&'='Jrt<jt< &''J  bW .&'J'.'J  &'J'='Jrt<jt< &'J''J  t] 'K`&''J `ft< &''J `fbW &'.'KK3&''KC t] 6'K`&'J:*''J  t] 'K`&'J''K yX t< &'J''K yX t] 6'K`&'J:*''K yX t< 6&'J:*''K yX t] 'K`&''K MXft< &''K MXft] 'K`&''J ft<&''J  t< &''J ft<L6&'J:*' t]|'K`&' t]L'K`&''L } t]|['K`&''J ZO t] B'K`&'J' t]'K`&'t] 'K`&''K K t] 'K`&'J''K K t] 'K`&''K yKft] D'K`&'ft] ^'K`&''K $ft] 'K`&''J  V&''K&'/nt] 'K`&'ft] F'K`&'lm &'Jp'3'J;St] p6'K`&'J:*' {&'J~'/nbW &'.bW &'J'. n &'Jv''J  t]'K`&''J  t]'K`&'J' t] p'K`&'J' t] 0'K`&''J K$ft] 'K`&''J  a&'rms&'Jnp'3' k&'t]L6'K`&'J:*' t] 'K`&'J''J  { I&x''{ &x''K'qK&'^'H''T  ''Jd'V'h K bc&''= bW &'.'&'' $~H K&'KK' 'Bs ('F''> t&'R{LUf :>#67>'&/&76767>67632#&'"'567."&' '&67$7&.674"54'&/&?626263'#"54>6.?667&&?6"&'&''&6767'5676'67&'&?6! 7674?67.76'&7676$''&'! ''&'>7667&'6'&'4'&57662>7&''"'47672&5&6'&6#"'&'!$+&''&'676'547676=54?6$7676763&#"6?67%6?67)/ Htl{R $V01W aB jC; ;/ UO@nA EI =)7g(%6*5/ ! 00IE ;A3@,%\778C* RY   |O\4 ,%&C  nm7Q( I"( J"-%f= Q86+|FDx L] (78Scs3d8R5i)YNiv/6W "=P;|)A>T+6+9$_ 5)L$, 0\0;;xr6&_0/8 >iw( oG {syZFQ 3A &&:~J)'M\ ":c=,S 9k6  W#E5S7/-V&7nk>V 60 SK']$[9s>U;a3T`&F. [<P:v 1 ?Yk )1*K4"FG #/"FG # cxcU` 7676'&''&'&'&76767'&?676'&'&'&'"/&?676&'&&'"?>7667672#&32#&''&76767'5476767&?6676&6&'&7%6&'&7'&#"2?6766?676?67&'&'&676)i;g )   b #Z1'S# X .&/kOcb;< Gy n@/; B3ˑlyDu  804D>1 ;&6~l eEU3`8-E  8. "H Y$.8qOPj | A8 #[727U1NֆYwU)m7 )l75A=.%) *o&)* K϶C~;z*M@T &''KOW'0 ['>|'>Vu7'w6'w~'w# '' k'z"'v'zd'3'z!E'>' 'f'n[''#Z'Xc'jr''$6'J'K'JZ'0x'1 y'0w'1'' g'"A'HJ  'b  A7KK'b 1 1'bL'Lb  'b#vv'Mbtc~tL'nL'F'D'7{S4<'_'OW.'JH '*nT'W<f'J>'j'.bP U'JhG'J4W'JP'Jm'Kp)8'K"U'Kh]G'K'K'KXU'Lh]G'L'Lg'LX;'J 4n'J 4'Jb5'JX;n5;'Jn'J6'Jb*56'J*})K}0'J$K'JV$TREV$'JHR'Jfu"ov.Tu"o'Lv.q'L;b'L'LS}x ='b 9"HTx ='Jb 'Jv9"'JzT['JOry<,r'J\y<,'J\'J\'J\t.<]B6t.N'JrB<6'JX*]'J,6h'J\}b'J>h'Jx\'J*0'J$w'KY'KX,'K*^'K$V'Rl'Rr z^l_6tbWpyi$'J&yI!'J9'J'Jm~80L&US4T_nT<t<fn}<'Kt]f'K`W'KHP'KK;7'&?'t&'&'&&|')&'&|&&bU&J;&J 4})S4TV$&JH;rn}<'KV'Rlz^tyi$&J&u"ot.}b&Jx ='w&KV$Tu"o&LU&KU&L;&J}0&J$x =&Jr&J\t.N&JrBUyi$}b"w$4W'J&Jb0LW'K 9'JT]B'J9"H,'K&L'K'L6&Jb*9"&Jz]&J,;Z&6J 4;Z.$'$%$&5676766767672''" &OZ<1S.cZ]9(?[@CQ 05k D /nAm?  gz}<'K Kzz26'&&'&732%$7&'4?62'$&f7:;"X(T'$0)< F+xG ~0{$F  D Za4>&ΩhS9yiZ'J Bz"A%&&'&7326'&767676767676&?>''%$&76b8:;># \ ,Cik)$ 0Rd% H]\ VlV ~0{5'F  ^, rY"<  -^uOU [ltl>267632"'.#"%$%&'&767676'$767676j-uE<3!' `Ap*Bc>3+az<#1 !?'-%j[VG9l~ޒe(jRZ@G$`O;c2 6 &: Qz n'5:%&&'&7327676'&'&?6676'&76&b8:;>"/BM$!H?LHifD[l)Zb~ ~0{5'F-Z c #,6"+](NgVtKz3'KCz"&:L-;Z&6Jz n&<JtlN&;JrByiZ-%676'&&'&7767$7654'&'&?6& h7 84&)N,:<1> HZ.x.6l ~4w}!'9\G eH#_Hz3$1&"7$7>''&72&76'&&'&732E,BP]ee 9y&0k$)ec8:;>  1*{X` P9,8:uu~ Kl ~0{5'AP'J'PR7&'CJ.UP&P7&CP&P'K'P &Pt&P'&JP&P&BP'Jv&P9&P'K&P'&L`Pq'&KPi'&LP7'C&JHP9'&JPP'&J\P'B&J~P'P&  .76'&5''&'&7676&'&?6O` `@jk"^ -,:e *J<6 ,-/*q@0 )7S+?X#r]$ m#"iFBU'JL;&bJ`) 47767&'&'&'"'&'&7676676'&%&7676@Y.( a-:p!x;!Bf+^.( !.& 9 8&67=&w%va){rvB=E]ydl =\L @H&76'&65&'&5&'#'&'&'&7>7667&767&'&76'&''&'&  P* 'D8SFF: ac&%3.+e9+(9+l.0xW,?v b>: BhK `&"k X. "&w%UJ 1/LSm&7=[/N_!lh4Jio0:9#|fJ+7&&'&76766767&''&76327&'7&'&76h;D4e R-ģ]&03&;m[qJ*SVLS]n'Jm;B7>76'&'&7%&''.567&'$%$&547676676"./PL7'FЗJh'd&eJC   &OZ<1S0` N+R8*hC&|i{$XQK!j@CQ *;k D /nAf(~KE$7&7&'&'&'"#.7>766?.7>>76wD;`2: G 4.*f9H '@' 0 N*5ol#4-/B7-:U &w%JCINm&7=\0$(^ [F*374g !Hz$6aPq<'K?M*^ <%676''&'&767'$&7667&'4?62@ ZRE<&B/ J#dVx{lL{IT'8)" F*{O aN0,9L Sƶ!o-] D ZX=>eΩhJ vZ:F67&'&'&76767&'767>76'$''&''&7&zKhI)8<$H;e *Jz8uD`I<I>:2k"h j;C ^P N > ZK2r]$ u=$t>N-PMS+$ Z! )7Gux*$'J&NvoAM7$76'&7676767>76&?>'''&767'$&6'&'&TK ] ,Cik)$ Rd% H]\ Vl$9/ D$02RM:ɀ73 w<3v!x.ر ^, rY"  j<  -^uOU"yL! PiR:%YR] t5qL67>76'&'&&'$%&'&767676'$7676767''.54]PL7'FЗK'U >3+az<#1 !?'-%jk'd%dy  K+Q8+j l@G$`O;c2 6 &: Q+ D& o$X[|$b'JOW =' E776'&'&&'&767&667676'&'&?6676'/'<:6X:@~%:/ E$a:|JKF+ I?LHifD[l)ZlTIb #""}L>&e =G ) NOAHjGQ%#%D %3;A = .d(J-L 8F5K"<4'm >O KSXLQ[)(I=@9(G{/4\{C&{S6\6'&0#"%676''&&%&676'&7676$v7  b  5 &5 &T&79&58),#(4V /'' h =l #g:̎~'GtIWeDi<!)9  *D6'&&'76'&67676.'&6$'&76767&''&:5 U=}($mc{nP !U{ G` DU]fBWhTkSs_bI 5qM>!YwSJ'(9E "q72d; \*: &hpݫ I-(T ]6C.&T\{C(Q%6%6?6'&%&76%>4%$&7%6'&%&#&76%6%6  ; 1- z&\!Oj@6ӻ2`-b.&fd)0[  ;(# ./!=H7N5)?YoԈF0Ybg#'&,7>&'&/6<>76.#".67>76"#&'&767%76$$7&Pe w3Gw6%6#p_3>.' H  > ^  ?'5* .'n])u;MQ q VA-bt#Yp8%ِB$4+ S5Q,,1F7*(M#c1!<-36 i/>F-ݯxLZ1(S smPD '@7676'67&76&767>&'67'$&'&EG1Of<7Da2 {D}?% 4$5e-֧E0ZH#D|'@` C  EZ]/F#J'lk+`|1FFh: 3/#p:P ;W?6'&'&'6&'&7&'76'0'&7$767&767$7&&?676ca@Q !d8b ##~" L  r o~4 // >u !j L $L 8 $7K"' P\y?}b^ }/-,!fLB|'&76&'.%$&76&#&7>7676767654'&'%$&7676'&?67676.?676"%ZG " A . U jKHfZ;SM nV ] jS'J' a`);Y=\#cBdU+G :(=4> %  7N3\ % -J46$ŸPR U  O "s`* 8. >%Ӗ A u   "?oI  *S|D - CRBl?JV* "uL @а6x< A;EqҗF M z 1 2&D2T]{* ( bxb)*%, +h.cf%OC* ,i "sB5% Dlq #,Rt6?6'&'&'6'&'&7&7676&'&'&'&676 '&76&%6,76 $'&>$%67&''&76ca@Q !d8b$"E63X"/%+Y{* <5{N$ *v҇n<7 ?}iu9S^1#F9RD#arA\`9y ?L 8 $7$K"0]K )" 0(5TOQ(S36?ha(ND{Kuх=^u,WwTh.@Rf3) c bR ]T6bjn'&'&/&+#&76&7$7667$7>'&'6''&76%2767&'&?6766%"7$&$Oj.@HM `j#l,Yv?Y*~aDJjv۴,]耬?'Eg?^Z M "&F:uF_\^4%y{6G  $JfZ6$7B" _n9+1Ƣ|?-t*%=v"vv4v/1:@`'&'&6?66?6'&'&'6&'&'&?662'&&"&76&76'&%67676'&'&&&6$7>'@ 2< cD Za@Q !d8b ! M= ##~"c };R0!S;!+6"m 4YLhgכ3&Y.ӴӀB8]HW=npQ+j^ $Lm 6 8  $7/aK".Rk16,A 3E;{#'lkpt>QJz,K 12 .SO.8'&767&'&'6'&'&6676?&'&7< 7􍵉 d*@{\6R  UD-aށJG]0#.4X d U++ 2M/QC SeQި2J/J((S\ f&UF83Rp'.6?6?6'&'&'6&'&'&?6$%676'&'% '&76&&7676!%&'&?676 @ 2DcD Za@Q !d8b !!L= ##~"c?1#L>&e =G ) NOAHjGQ%#%D %3;A = .d(J- ^ $Lm 6 8  $7.aK"!4'm >O KSXLQ[)(I=@9(G{/4FN 2Hg?6'&6&'&7'&6?66?6'&'&'6'&'&'&?6$%676'&'% '&76&&7676!%&'&?676 Rca QS$!d8b ##~#:_c? Lb@Q !d8b!?8 ##~"cp%L>&e =G ) NOAHjGQ%#%D %3;A = .d(J-#L /1 $7K!U =Le . 8  $7#&YK",F4'm >O KSXLQ[)(I=@9(G{/4\{'&{V6S&xWR ]&X>&|Yq&Z 2%6'&'&'7676XD/DEF (Bem :& :M-)?y {xk?C+P 6# '& '&7 & 5  % $CUX Hn!b60&76'&7/OX %,lHDN""#<,#"'&%6'$%>'&'&7676X] S1 afK> rACJ R2+$5M: 'P8hS :In ntC0-o2{E`)- a3|]B"00"&767&7%6'&7676P*y)-!N ^52=x$v8,"9 ,J̗"7Qj qVF& 1DV!i !t./6'$767676%6%6'$%&'&7676<#1 !?&.%jP H>3+^c2 3 &5 J/ tA,f@G$`O6%2''&'&767&'&7676H .u1QsBx `h IIm MhOA@R?xWIh]G6%$%676#"'& '& ID(t:@5 ![Ka/^fE `*a?w^x+W76#"'&76'&'&z:Q31;y= +'&hSF ;<U '&7676$%&'&676:(19)mM N  %+ HN[$ B!1ІKU )_#Mv^LP%#'/&676762"np[L "C q}o  U.u&\K%%'&'&'&'&>7676&76760@dڪS *'ġP? " 2;]UD)3 ; *@ Q[G!R})67676767676'&%&]!.& 1 'rM&(dl d! .s>"+676'%.762%$%&67&67&HYp& 1L22ڋ{J~y R#u,J1S: ::`BOdJ^ BwCT>5 Au6A "92G!2!&67$7.7>67&' :#G / (V /F"L_Y=(Y0mM  J}b"%-6 &676%$%67&'&'&766'&_S 6s#*C  yzo ,8T"HI) :T:tF8^ h7-8J2# l i4>J 2*&2'&6767&7676&276C 1>,_ #J%te'?@1aQZxKRBA/2$Q[[#[h~0qzNn56%676'&7%$76'&%$&56O3</g )]&!+ ك&!-7X#' 43 4j/;`ZFF3UjzQ.,kG1,>Z >76'&#"'&67$7$& f;-9 !t &?u+; '~' B+ ~8'676&'.>767.7767& 46 :$ um;<)L BmF T &8'k%"X` o NL,O*ur%K&U",4%6''7#"'&767676"676'&76'&E,n  iYD fG-;e9(>r~RLI }'< $`NPLB̽ <:GHIb3,,ݸYGMW%ߣ*!0n*6#"'&7676%67>5&7 -#4R)&&#G[jz Y ,c7 : !Rc [QfR$x 68ɓ >p'Qr) 25%$%6'&'& %&'&767%6 %,%.6yT JxY)6AQ`" ke 3LLRW!%4>| PI$U sCVNz Ky|& -\^ &576'&%&'&7%632'&'&54P~"C# ( =>Zդ0̘n< ōST502GV#0%&'&'&7676.?6*C% 91{  QO &BZ5=Fdo 1  XGƂ= N -'2267&%&'&7632'"&'!"&54 NE0*  8)ֈ1_e .OGR QPkx*QH  9![^KRGt@l_6!#"''&76%67&?6.0 W1tt5  BPd %!( ]J}qr qD"z&O>276767&/&  :- E@$o,Y HK#[:?scp/ OMsz^%62'$&76%$7&'47$0)< F+x m X(Ta4>&ѦhS \  D %'&'&"'&7676'&?6tW#2IG% $ ; 06-44,G E$cSqE&%6'&'& 67.7676u6Q(5\ |#7[3HydU'EZ+k=-{:0^PҞ9=F+b/XbWp"'&'&'&'&767>fB#  Vymu$q "J?JC 'ykR Fjvm0,%t\$:'&'#'&7676766&݉5 pw^-L_VgF5Io{ .e+p%GX:t!67&>76'$'&76?KhI)8tuD`I<I>\LBzN > $t>N-P& 8u)6#"''&'&'&767676&'& K('$ec +Zz ? Ig, n/fn$ "\'[h# = 8 L#6%&&>%$%$65&'&7 ,5;A .H8qmZp"  S2 /<&lExaufV  L : [n yI!M 632#&>76'&77 )*<+ $? c7T!I /,A'Wa 9 N{P n  %,&6%$%676'&'&?6 :0.:U(p= NcK k[Lj\rrQ&zK@Rm ~ yi$&767$7656'&?6HZ.xt~ x1> _Ho `AGY'.632+'&'&?6$76'"&76&76*FO5*IJ~h":;  ' vhC\`D kU7S C]\8'H''&&"&0k$*e#  e 9,BP$:uu} Kl  P9,81*vDU!!'&'&7>7677676.vk9X40s /( TAA=H^' ]\OH^PR+-,l 91%P>~E%763'"&'.6767676'&@ #=000""x dЮJV">8 $< !,RS4WV$T6'&'&4667676'&'&7PP 4.: ̄X;R튲2Q$ +Ul b @"$7&'76763 7676'&'&?6676'խpMD|-J iD&T@K>gMv k ~_ #guIFSX/G# g-S y$'wP` /219"H&02!&'&767&'&"#"'&67676676&$760:jyi(B (k= ;Q jH:?XTu9)v+ H!I`.IJR e-bJj *04 x ='166'&7676767676'&'&?66&OD[l)ZbW$  @/'M$K?LHi~%6"+](NgB(  +=x-Z h #,tKT 3&7676'&7.''&7676676'ʚD؋t  ) ?@T)mn ^}]vetQ$Qz\ #YeB+X [S ;5 $K4 g qKk,2xv.C67676#"'&''%$&7>$76'&?6767>76cn< #` 340yem:(PZ7g ~7JoZ-w 1 b7 RSv )vEa^x~^<O  `&(1BDgC<&-T&6''#&76762>6'&*AiHl`4m  )"T+H 0MmB K>  W-0;[ u"o9>''%$&7>6'&7676767>76&7% H`~\ VlR=^ K7 \ ,Cik)$ Rd-^uMU P*  T  ^, rW" h<  .>7>6762#"'&'"'#"'&76 c G+Jz M$F-IO:QX' 3K ="f E.!I 82L|Zs_PP*y<,06%'&'&?6'676267676$%&Fd4aI ܼ -$  .' 0 #r9X6 {\ + ~N1'8( Z aE. [/4]5#q'Y )QBp,66$76&676?676&'&76"$76'&3%) +L0L: $E0"W0s˽ S  v)4g+{'o#iJ$W\\o=>) CPB!U |r&,>>76.?6 &$7&P')' . N*5ol#4r8# ,. Da^ 7=-34g !Hz$6kc_(R-/.6%'&'&?&'&76>76&$%&1*HXqF 9*,# 4 "Ab8 o + Ȳt^q11.z*Qn  n*- ]Evs&c((QB_P_' ,%&72'&6%674'.767>676##c';$  m ^@TO ,:;V )&  Y}Qv&]PR0.^ 4T62$'&6767&'&%&Ga:f[>WG M ;D4- !aT wz`W:t<f%>76%$%6.'&7676#"'&Z.%Mo0aw eKZ> $O;mue>ۘ7t?Tv6 >I lnT<)&&7676%$76'&$&767676_{{/ + p>-c6K F[@!p?%ImM6NBjFcOZ]t\(qޚO 6e'&7676 '&?6#"w(P. / + a>\; , VM]U?ZisAF6'&70766'+^uS9  6y\ 43N RQb'.67$654'&?64 |Ѳ bd6  Amns ,@3$-0>!60#"'&767676&7 (;.+^6 < nk!$  P  )F*`v! :M,0`@j }'.67$6'&76._ /^ W(qm9%%bQTT ULI G1(j&'&6767>7676H2)G+ ;3:V$#V?OTF OJ: M j+3#6763272"''76%&&276S?@+ 1>,S #<3?'aQZxK~0RBA53t^qzNepx2>&&?6!%M0L!,5+75;MY f3== 6?67$76'.'&?6 ) ?ﲓM >c  >*;P/X:s 4Hu K q33)#"'&&676F_0&uJ fQBm3@L@l(W)@(2mrK&2%'&7&'767>7>67&'&W76$0|2N 6)=vF)DFp|@$< S5V˹Wmzn!&7,. 6'.7637&'&/&767 G,:M</ =  GC>ᄄlWa#"dB$j+)F_C2'&767676'&'&'&\ ) XU[)D/&&-cW$%6`KJ t[)(ML`'.#"&6767&76 5)6Nr5w=6,&#';smZbPH(9 Vp$"&"'&7>7676&?6-h2BLj  ,LTbFB(O)(:Og !y1P\$) 2)14T1*o@p\V6'&&'&5476jP 4 SQ :#)CLFY%I P + 5;WZƄ@S4,'&'&76,dLy6 4dP6 "l7  b}0'33 >676>6 >hp 6&'"'&676760'&67>4 &6##S(PyM"j WM SO/9 z9'^9'E OBG)[G67'&'&>%67&%6( x98aɌZG l.P@G $ !aN,})f, $EW%0D9A:3CYu ;7&&67676'&gp$\Gg,0l [`k@"KS'&&/&76765;L/6 % M ޢ6.W.A^&?$"JR,#)[6'.#"'&767&!6 H""oC% 1M" 6-C@ n)W) ?}.767$6'&7>u=U61K. +<9;En<,OM wE;|%7&'/&?676'&'&76;'U_*"D$/{ wZ5#-Ht1$ Y= >20&7676'&'&W $>4 8!}XrF*"vJ c>F;$5a d2:>'&'&&76%65&$}OW5Bi ) {T3L4/ Ł?W#!K9i$0EY,B6'&'#'&76767676 4:<$b[d v2$+8)RKL2PMLO%'&''&7676,&6~t+ CL !DO)[Xd: 6762#"'&'&7676%&'&MƦV#LW`8!u ÙCGQ?bs0{n9AX88Cvfa!'>u8 \05676/&7676&547u$#{VQUrzr&=1 y11.Q-<$);.0#vDUu.'&676%&76767$7.f7_`P4p1Dt ,tK 5 23)D0C !PVT]# :sH3+ 33676'&'$'6%6'.-^;05~PPl0h) w05iba Z,  6#"'&767676'&7(%kY::`1\* # 5)%  :SHm?  @K#  u[e"bD_ (767627$76'.76&76 5'b O v=UMwL+$bI4 %VB6p  w&g &HaU &2:16'&'&&'.76766767676726'&7 .x%5 YpMZ=, iYP߉)$B6d1= $  * 5V| jTk 4M. ;5dHf3;h"' S^'&76%'&7676+.l$' ?!@ X&PB9#RA'.u  V_ %'$4767627676'&?6_Fu5,/ ]Pu] > [pPR`M}V I y+ 0#'&76767&'&76767$%6? ^,`:L, k1gJ0+ ;F#>#GI!  GdG#Ec0L#M_$ vj#&'.6325&&6762+,"h  Bb/d\Q7 K -'&&'&'&#"'&767>76767676  A7lg;od PeaX2\ %f@8.r<"Jl   F "1^2% T|#"'.'&6767E& <+ES 4, :**|?fAkz?RG<  4#R .67$765&'&?6ǖ wh;175t :;gL"QZ< b)#"''#"&767&'&6?6%$%6)`PJ ^p-*d.2$ |b;9s%9w}8I-$U%m2+GbJWEfF2'&'&66$76'&?6 H,  0ZR+l7 5, *hfh8 u  z8En~6760'&''&'& @3 $O U$7.4,  ZL5  "A0$8*XX&^=!*7&>$''&6">&7>'&p ,!C (+,{j{ + r$ta/.iIr =KJ ]Hn*,&F") VdG<)FdkU# Kvc7676%'&7676nk' 6*@ U Bp^9u-RA'6m!v[=['&776'&N1/nhQ zl;>[P: S[1l76767>726&7 X91m, sM> :!L#( /jH !D.3   (d5 R +N{c;)TS  T2; 0'&76&'.77$%67!)BBd;^ =n?m_Dci(TD'&'.66$76&'&?>!$Q Sd* թ$=*=U(U=r  '&76%.>'&76J ^& LI?I^V zTQ] t#o [r9jþ })} oT.#"'&'&'?6767&&'.76767$%6 2 bx7HU#< B2 ;7*+-v, 0DetoptTT"i]HC**LG 5k| %'&676%6767&%&?68 N(uy## $,KNT?#y B]7H<4*0? i 6&'&'&7<'8)-%DL /   a4"< <`V!Dd'&'&7OS   d3&9= fM{ YM331!76#"'&&'&'&47676&7"7gm;#;"2 3ZnN :N=T5Ln*y `.];2r'%&/&/46/ O''2f)3'){" 6'.''&6676&7PJ7'Re \AaP82Zgw  1$hAmQ8? -6$K]v'.'.'&767>76A.Y ,a(O  ,+:)71bRR>1 f!(">BU7H.#.67&'&767'&7676'767&(C$[!&v#$4)!p4ijd!B4weHH ";$I(5 &6767>*)c *6[W \636'&'&76767676i>+=".0O%ol/OD:>V^df.XZ2 J>98DJ33`R767676'&'&'&S"+%s*s-,pR6S#TKMQlA %5H/A*h,A9'&767254'&7076228 - 0$ -k$QOs $ []x)ht "'&%$'&767676767>:,&= :  E !& .*_@ ihd? VRC#$"[ T &62676'*#SF ("'aoX6&'&'&767632 ]~1]E'$T@`*,!H%NN < nJ8s ^H( Bg  <0(*^y '&''&767>M,{@Z] :r96!n$&O 0Hm!.&'&76[N'AtGDO '&'&?6J2cC)UO32!0<: n/SfFQA 'pGQ/|N#Y76'&7p 6(#d  a;?Z *E&wKTrv"2 p|0&067632'&'7>$7&7>7&'&6'&&'&!Au 2 ;vJ^ SJH B6DG,;^KR " i^J0 8Yr8+w' ]?/ <0*&vh::[B06'.7>676'.? N&5 X1%86/4S) )/$[(Qat16  ('AAp'X~b'&67676&'&?>m# 8NQ"tE C 0*`2 bbD@ mmV%,0&67.'&767>7667672'$7&I %#)M :\$$>,76V = nKZm F$SLB nSEqd,(*Z %'.'&>76v=;ij^ !5M1q ;u3u&x2Sp(%.76&767$%6&$|O L:^e(2Ct)Fv yVnNN ljSA8P #`j&Gba0,ji 0ӜM "j|vx{!&''&76767>7>X  K0riVh! 3m9P& ' fJ =l-Q('* z_uH$m LQ|u>(!"&'.'&66$76'&'&767676FMz(B( OtD(6 +;./2 !]W ޛR5 E,,:\Xp('4b5967>32&'& ,fK=-,$7 *M"'`69p8V1NŔ`ol&'&'&'&7676767676n-T}]$-ᣔD65h %t+"Ve[l6&76'&767$7676h*z:͇B^I4v| .)nEO-<!v[>'$'6%.1C`@4Q-*l*~̇1VA! KOBUG#:*a$%6%676'$67%&76762  ne Ns!G'O9=k[)g= 4 <ZG'l:$67676.6B2!%t3 XJ<ê=y(ab_676'&76$67&"76 #mztD Ʀre  ,5u .OxB PBb,6 72'$#"'&7$7.&6S+8 =0BU8 -U[B &14W< , &)>)9 Q&''&767&'&7676'&?69 |ºi3#9 nxsrTFI9=E N{ X53Z\J`ku KG-.nr T(- a= 72'&'&7676&'"%7>~Tr %&olϜ? 8Kwhu@j _X &?Q@ 0$f n^I_YD a!(>32'&76'&7#&7%&76F?  +S bA" F'R-&ش@+Kt/ * +6z#y!B]jx\? e)6'#"'&7>762&'&7 K%Jqbn5r'(nK  JG| t* \1>$' 8)52767>767632#"'&''&:"#!(Ga  L$F-I^Z*A(T E.!!( @.&"|Zs[/w >'&7"'&'&7&$76.Tc1 Y#$ +YL/e |;^.t M, s/!T^)@x zQ",%%&465.677676.6$76H$*!$<e@ae2 X}g ! 7.ɮ> 6A M+7?[Q"AS)z 'G6%/?w9 647.7d '-?(&I WFv 6&'&7! Q@ b9 N:6'&'&'&?6E Q@ b gMd C829 >z N, #6&'&76'&'&'&?6P Q@ b Q@ b YHd ;29 N@9 6r N$v J  K Lv5%%$%6'&'& %&'&767%6 %,%.'&{Z JxY)6AQ`" ke 3LLR8l4y"5>{ PI$U sCVNz Ky|& 5%$%6'&'&%&'&767%6%$%$76#"'&7%.6F  My H*3?I\# meVb勴 \n,K'6A&$&%QKr c0/ T tD^ Tzr I JK|1~g \\ %fNO^[ =* 2&'&4767676&/.7, 9 T>-Q>4V# ;18=*l " >% =# %$%676'-!< f /v}B%%$%6'&'& %&'&767%6 %,#"'&75%.'&V JxR)6AQ`" ke < dd'#+ HGT:j4y"5>{ PH#T sCVNz Ky|#ZO \\ 'qCAP\ oE. 5 #'&'&?6''&'&?676'&'N Q@ b Q@ b YHd ;29 N@9 6r N$ U >7$%6.:X4 U!/ H7e b$&676'&&.7676&, 3'YEZ7DvV Tl.?6&667&C)?z..-L{5E LP6)&v"h wDZn`F <58~nAEN6&'&?&'&7I Q@ B8/ bJ$K9 h* Nn-v? Z(Br" '&7>&'&76z H4'J.-&4 gd?,z@[ b4@>'&/&''!"767>$76'&?>7676760Ld6$c^ 340yembP)"g y$;XZ/y1,z9  TQv*'@:.a^x<ذ  ؝ /< <&.'rD %6'&'&@'*C 6 6v Jx >7$%65&4D J xM= m q %>7$%64>e@ ]" C2u]B976%&'&767&'&=:21d& A?XW!%$TVA; 4H+3333_%%&'&7&76'&F* D+"'6 H""om%9 .y} 6-C: n|0/Poa676'&#67$%6'&'&;&P@/( n\!.ZOYخ f.V  ^B9 Z' a>d['&76%'&7676$3c' 6*@ S Q"^d9u-RA'6g\$%&7676767&'&/&767$%6' 1%@%EL < %e A$>] |V \# *4p  z+gSԠ * (676'&'&'&?&'&7707&' D8J Q@ ]A6 b gMc!^IHH5,n9 0 >z N9m+s*m'N< 67676'&''&'&'&7 6)N 6)N J3 KU KUo5 -L -L,D  FY FYfR o 76?676q  !F$o]DT0PY0(pYtn 76'&?676'&?6 4!  4 4!  4GU7J}V$'U7J}V$Z76'"67672'&'&'&76Y[:-F*85P +uE@ UH$-Haf&1C;E +%  6/&7+P8''}=5+u"J >60&?6706&?670(! m(   ( v 66   H %6?6q$ -/G~&176'&767&76&%6'&767&76&!  9\J"*P@e%,F;0!  9\J"*P@e%,F;0KN)"w)8V1O`q, KN)"w)8V1O`q, 2_ 6''&767&76&X *$  Hs]* 4dP~.8WJ < ]b3+3%Gk=bx7"  7  676.7&76'&84|X1p N?  j_+xm5Ubz/-3. 60/&7$( SX  < 9^|^&,|dfZa6"&462a9P99PP99P96462"CZ??Z-Z??ZC &SWEAv J  K L Uv? Z(B*mR oPY0}'!!2>}}h$ :  QM QM D"#"'&7676676'&''&E<9pS} / B g;2 0իȿn 7 |A^6?6$'& 4678 .fA% #|U-H h==P!%&'&7676'&%&5&76%$%6rIxeN ؞ y*FS19 ([zsq))7.J" h `M0z7 Ri@)%'&&676$7?632J8 Af|i%" * 3cNHE,,'7@&#%U D$/'g6 TP^LHMw#"'&767654?6'&*Y]3&" )  1 "T. G<#V;+Y  Y} pu"%'&'&7632767676?6/, ECy]: "w$"  + 1$" Y{ >.g?37pff70Y ^)57%&476%$%6'"&'&76C MS19 *]L &مK+ _e *K| / z7 Rs`{π#'^K?Z3mh/t{7767676'&?6'&|H "3 'N8 -'gIB3>Xj O+,Q08!k<2=ec "%'&766&?66-'-( 6A +.1p\~bXJL`1J,,gU'%'&'&. &7$64?64[=K  "\_6424+ :#.18> M\y, F,!fUl.ЕV3 l5 %&76%67&?6'&'/@i5  EPd % 6*xF%z7@  qD"z%N$!6-%'&'&6''&?6G ]\Bo ; 7)( r` FrCK^"}SS4_a)&76$76'&%&'&767663Y5V21"T7 #^lO \5I{vt3* I nks_1(  b@a3#"'''&7676!256'&%&7676766[8LK:m% #" S3'D'V7 #oxHr8 2L >9//>JNeC1>qt3* z&676'$'&76<8 > ?2$"$>+8n)'&'#"'&7676'&?6N)&(*^,N{6Z+'5a]b<(zL) r8F:'%'&''$&762$7&7676"4= ,Odz&hN N1SG(3:J)3/&"N}ZBwv(l=~  9]AGI3?Qk'&'&&?6**&_D7A( /8"/" b'2b?&547!2"&567654'&#"776'$?64cU|xȒB5JLsjw{@<9_=͒O=E9 u/VM<9  ,CO+nXVWB= ' W]*w(- {\ub%6'&'&767&/&6767$2  7ݏ.1V0*6  b6H&S4\5ˮx(7vdW)u  o #k3z,2#"&'&7667&767$%6uMUM/P4uw! .Pn|F_$/7ND+ $޲n $aM5\?ULa$3(W#Ar4!%'&&'&76767'&?6'76'&/&l0+v/` K %c"] # t 6'&767676'&''&6&"76 TDg%V'{ or< ;<7?#M :JoSF & B ~%*6'5- iuU2'&'&'&76%&&76wCBCJ1 / Ꞧ_*}B mT$$460IJ"d2 d$",46#&''&767&'&7&'&76&>776'&I"NX: >rCC- [ )HkW(/ :(.J;< +1+ 94H-~gS-.e'?+ G( 3# nLg~p.+#nbh) x&&%67676#&'#'&3276v2v#15sGV) \d )Rn:XIIP .:C& ZmDU4 p.A%e-'&76767676'&?6'&'&'&'&'&c Y5/,K"% q<6JA2@_ :`j)J!c# =74 m {p?%@P0'&7676'676+60/ `Tk 4Y鉘#)${;AR?p( frT:}S$!"76767676'&''&767676'jF &@,.uF97Ul3v7 >> ~TF.C &d":6V>hW"-8 Za '4767&76$76'$76 n7]51  GWz>3XB@ LaNn`5 Wq$@9&67>'&/&7> l?W }g  $=*q*$>3#Rr L$Z7Ast 4&76'&65&'&67676767&767&'&76'&'0-+;8SFG+6:7&K+l0xW,? \PG L&k X0n B+.93X_lh4CkA e>p6%.766'&%"7w7IJ3^\ }b? 4@b7 \w"0C)0$76767&'&/&76767$%6"'t*5H&i 2 ?t )O&WI,؂|J&(FRX/Q T9 "O%.,66'&'&767& '&7  [+5  Ij)D  HE.B63;C@$$;v)[H'&'&'&767$2#=MU! "~-Hq4,.O@A 18#PV-">'&'&76&>7.-1 z$ ۪g.. " `HpT%&'a\/^ &.1 |ܩNj4y( uZ>76'&'&6 pT55~F" A!Z6NZz; Z O1 :]]|ALl'&7636#"'&H T(%;N31b$I" BOBkfP7;/uZ'&'&6&7676p:" A!Z6 I* :]]|AL<\P(:u{l&eN.'&?60C8 .L 1R d4W%&&767676-lti^K$! uFA'_ 71%DOe7 !% P& P Xd/Gexjli`;J&'"'&7>7&?61f/&K3=@l;K2 \.69pZL3X gN"&'&!"76767676&?6p"*"  H"NAڌ @M,2 Q. 2`4R @n2XvuId*6&'&767627$76'&7 R%'B ;S- ? oqP &?%6@;&Dl!#3r4cBr Vj; (c$FP#'!"'&76%67&?6P^soB  =Jl&! 2,[$f#zv  w?&h[u(%gb%6#"''.67&'&'&76 p$TBNA`#28 A hH`,.~}L2q9Z 4b4l.767&0&?6#"'#;4Om%!?3L8=iL|S7,=AQ*91b*_0gN"2'&&!"76767676&?6`-1 [&JAڌ @M,2 N??%@l @n2XJ'&#"'&7>7&?6->< + G=@l;K2 \dH Rpk9pZL2Xc$6'&'&7676%$76'&7m CUH $R{G3 Pr $+CewEfxn0ghr E^!c$P(!"'&7676%67&?6'&Hso!  =Jl&! 2/ 5 + ZMzvŰ  w?&h[uw5MupN$'&763276'&&'&?6'&>Dzy]: "w$  + .2+ph0&FJKBd..g?37knf&!Y 26 AA/b7767676'&&?6'&|H "3 $R 3[%vf.&KE2j O+,Q-]X)1q!6B0"g766&'&?6&( -41$.&th/&K ~eXLJzK((<6p`N$'&'&763276'&&'&?68 + OBy]: "w$  + .1t8Mub0.g?37knf&!Y 2/vb7767676'&&?6'&{H "3 $ E 3q8 + d O+,Q-]X)1bbt8Mu"g%'&766&'&?6~ + G- .31$2Muk~eXKKzK((< &*P /' "' D&{7nL'FP&Np &~ H &o&dw4<6&'JX*JX<6&JX*<4&UY*<d&KY*<&ZX*<9&LY*<]&'J,J]&J,]&U-]&K-]&Z,]&L-]B6h&'J\J@6h&J\6f&U\6&K\6&&Z\6k&L\6hG&'LJhG&oUhG&'KLhG&mh]G&KhG&'JKh]G&Lh]G&YhEG&'K\lh]G&hG&Lh]Gh]G&mhG&\ h]G&Uh G&UhG&ZhG&Jh]G&ZnW& #W&m&E&/ K5l&'J\2W&o|j&ja&'JY}&'jKJ&/ KW'U&j+WlW&\W&K,&Y&m!FW&&UW&UU\W&ZX4W&J9&Z&'JL9&J&'LKW&L&K&j&'jK&L,&Y9&'JJ9&'J}+W5&'K\&'KJW&UU\W&ZX+WW&K&'KJnP& P&m-H'&'KK &'J\xZ@P&oR&.&'JYjHR&'KK.H,&'KK wP'U&.P P&\jHP&KK"&Y&mX!P&b&UXwP&UUP&Z,XP&J&Zg&'LXJ&Jr&'KXLvrP&Lv&KXB&^.HW&'KK.g&LX"&Y&'JJ&'JP&'KX\xH&'JKKwP&UUP&Z,XPHP&KKH&'JKKK&mK#&K&\xK &YK&K&JKK &'YZK&KKw &'YJzKw&JzK&UK&LKH&KK>&K@>&LD>h&Jx\>E>&JH}>h&'Jx\J>k&L\E>&UN>&m\G@!G&L9D+G&K;,&K&J&LGEG&J,HE&'JJ,H&LE&G&U;N&m&J*@*&LD*&K*^&K$*0&J$*3&L$*E*&JrHE*0&'J$JrH*3&L$E*&UN*N&m$*0&J$n&Jnn<&n&m>vn&Ln&J 4n&Zn2&Kn&ZHvn&'Y>Kn&Yn&K$n&'JU$ln&~ n&L"n&Yn&U$l6&Jb*n&b&m9&Lc*&Jb&Zb*d&Km*&Z&'YK&Yx&Kf{6&'Jb*Uf&]` &Ld&&Yb&Uf56&J*55n&5&mv59&L*5&JX5&Z*5d&K*5&Z5&'YK5&Y5&K\56&'J*U\5&Sl 5&LZ5&&Y5&U\~8%'&'&&766E?!w_[FDv  Z?.=LM$U,1.`R [AV35o'K5~8)8&K"0L0L&U&-}v >'K1}1 >&U:T&'RrK>}P >&LT&Rr}v >'\?'a} >'a&Z} >'a&K &'Rr\(&&'RrJ>)&'RrL>w&'RrU}v >'a}v >}v >'L[&a}v >-&L[}v >'J0}v >'KV&a@&K &U@&K &L &'W O\l&'W OZ6&'W OK &\l&J&L &U&W O y3&'WmwLf&L&Jh3&'KaWmw&K&U&K&L&'\?a&'Zaz&'K}a&\?&J-&L&U&ay &'Lfa-&L&Jh &'Kaal_&fl_k&L\l_6l_6&Ul_6&JX$l_6&d &PiZ/&LG &U&JP~r&xh&D&Ly&U&J&bWp2&J&bWpbWp&Jv&J&J&Jv&JyI!&Jy_!&'JK(byI!MyL!&'J\#yI!&YyI!&'JYvy!&'JJ#yI!&'JvyI!&LYg&LXYd&JXY&KXYR'YdfR'dxRE'\"RE'JRE'RE''JJR'KeR'LeR'meRE'R'dxR'JfR''KeYQdRERl'ZfR'fxb &Kb &'JvJHb &Jvb &Lvb "H&K/"&'JzJ 9"&Jz9"&Lz9"H&K/[&'JOJ T[&JOT^&LOTv.q&'L;bJ@v.,&Z;bv.v.a&;8v.&6v v.q&L;bv.&'K;bY'$v.&m;bv.n&'J;bJ@v&UOvq&'L;bUO&'LJ&ZT&s& &L*&'KYv"&m&'JJT&U&'LU&'LS}J&G&ZS}|&SS&N &LS}&'KS}Y??&mS}&'JS}J&E&U5NE&'LS}U5Ny<,&J\y<,y<,&L\&J\&L\&J\&L\_'Ly_'O_'Ky_'Jy_' _6'_'|N_'\~_ '_<'XO&˜'|NO_'ZE_;'_' _tf&E tf&Ut<f& v t<fw&Lht<f`&t<fg&>t<f&Khtf&Zt<ft<f& { <f&qt<fW<f&J>tf&\t]f&K`t<fb&>e&e@&L1e&Ue=&J1e&sAF&b !&m1zw&'K}= ~6&'J*\^r&oK$&*&'J*Yz$&'K}z|&'K}8 'Un&R&\z&K}^&YT&m*^&4&U*&Ut&ZL&J~&Z*9&'L*J~6&J*d&'K*L&Ld&K*n&z)&'K}9&L*^&Y~6&'J*J~(&'J*d&'K*\z6&'J*K}&Ut&Zz&K}z6&'J*K}Tb.'YVTb'VTy'\T'JDT'TT''JDJ|oTb4'KUTb 'LUTb$'mUTb'Tb'VTb'JTTb,''KUYATbTb'ZTTb>'V>&q>&L>>&U'> &J>&Q'LQ'~Q'KQ'JQ' Qh'DQ'|}Q'\Q4':jQ<'X~&Ԝ'|}~Q'\tQm'DQ' Qj&6j'&L-jjq&Uzj$&J6j=&C*3&LE&KG3^&K$30&JG$33&L$3&J80&'JG$J833&L$&UG3N&m$30&JG$epx' e0px'U9epB' ep'Lep4'ep':ep*'Kerpx'Zuepxep=' px'qepxp4'epx'\X|epx'Kep':M2& 27&L(2q&Uz24&J (=21&7b&F&L7q &U5zC&J7&&3J33q<&3d3&3mc&3Lo3&3JE&3Zv&3Ko3&3Zm3&3'YmK3&3Ym3&3KI&3'JUI3&3@l 3&3LG&3YL3&3UI)& =)&m@)&/h K)&'\&xJo)&o:)&oj)&'YoXJo)&'ojK)&/i K-)'U6)&oj)#)&\)&K)&YoX)&mo;)&)&Uo-)&U6o)&Zr-)&J0)^&Zo-)&'J0Lo)&Jo()&'L,Ko()&L,)&Ko)&j)&'ojK)&Lo)&YoX-)&'J0Jo)&'oJo))&'\&xKo)&'KJo-)&U6o)&Zr))&K)&'KJomrK&KK&'JJK&JK&LKe&{a&Ly &&U; &Jx &_n2& _U2&m*XK&'K U _{CN&'JB\hW2&oUC<&CB&'JBYU<&'K_&'K P _E2'UNC&_C2_ 2&\ j_2&KCv&YCl&mB_!2&'CL&UB_E2&UN_U2&Z3X_2&J _C &ZB$Q&'LBJ _CN&JB@|&'KBLD_@2&LDC|&KB_Y&u_A&'K$CQ&LBCv&Y_N&'JBJ #C@&'JB_C2{C|&'KB\h_N&'JBK_E2&UN_U2&Z3X_C2_2&K_N&'JBKn?d&K $U,d&m?&'KOATE pl>&'J[2\p6.V&op\,&[ \ 2&'J[2Y)p>?,&'KOA[p>?&'KOAU@ pm:V'UOvh\v&[p\VpV&\K.p>?V&KOA?f&Y[C\\&m[2pV&#Hp\<&U[2pm:V&UOvpV&ZspV&JKp\&Z[2nA&'L[2JKp\>&J[2bh5l&'K[2LMlph5V&LMlb\l&K[2pv&#p>?1&'KOA[n\A&L[2?f&Y[p>&'J[2JKm\ 0&'J[2) p\Vbll&'K[2\p>?>&'J[2KOApm:V&UOvpV&Zsp\Vp>?V&KOAp>?>&'J[2KOAS4&3J33&33&3mV&3L3&3J8&3Z&3K3&3Z`3&3'Y`K3&3Y`\3&3K<_&3'JU<3&33D 3&3L:&3YL3&3U<& e&mh&&'K)zx % q&'Je\{^&o<_&;3we&'JeYO&o_&'K);&o&'K){s Uj'U^e&;K#&\&o&K)el&YKS&mcec/&kyNo&UceUj&U^E&ZU&JX /&ZevUKt&'LceJX q&JejPe&'KceL}TPe&L}TjS&KceZ&v;&od&'K);vKt&Lceel&YUq&'JeJX c&'JeO?j%S&'Kce\{&oq&'JeK)Uj&U^E&Z&o&K)&oq&'JeK)a& 2&mBV&'K( &'J \p\&o&8 &'J YT&'K([&'K( 'U(M&&\]&K(j&YU3&mm &w&Um &U(H&ZK&J &Z &'Lm J &J tC&'Km L&&L&tC&Km M&&'K(&Lm j&Y&'J J &'J TtC&'Km \p\&'J K(&U(H&ZK&K(&'J K(Q!& !&U!&5 !&L#!&e!&e!&K#8!&Z;!!&4 !&q!S!&Fe!&\M!&K!&er&b&.>8&&L%&&U&&J.I&&CG& XG&UaG&@ G&LGG&aG&aG&KGG&ZGG&? G&qGG&~aNG&\)G&K,G&a-d&K^d&UE -d&K^d&LC-d-d&'aa\Ed&'aaZHd&'aaKE-d&\-dj&J<^-dm&L^d&UE -d&aa-d-dm&'aaL^-dm&L^-dj&J<^-d&'aaK^n ;&  ;&mlH &'KK+ S &'J2\ @ ;&oV &P^ &'J2YTH &'KKP^H &'KK, w ;'U &^ ; ;&\~H ;&KK *&Y &m! ;& &Uw ;&UU ;&ZX ;&J &Z2 &'LJ &J2r &'KLvr ;&Lv &K &H &'KKP^ &L *&Y &'J2JD &'J2 ;S &'K\H &'J2KKw ;&UU ;&ZX ;H ;&KKH &'J2KKS&`r&LKSK&U S&J&[.&o.e&L}.v&U.3&J'.&|&)|f&P{ e&O{ &;7&|&SA&O &)&wU&~rG&L_  &U &Jh &&J:&:&m&L{:&J~&Z&K:&Z s5:&'Y K/v5:&Y L:&KO{&'JU:&4 v:&Lz &YL{:&UBO&_ O&mp&'Ks Sn&'Jb\hO&ohA&&'JY\p&'Ksp&'Ks O'U&O;O&\dpO&Ks"d&Y&mSO&<&UO&UO&ZEO&JdH&ZE&'LJdH&J&'KLO&L&KB&^p&'Ks&L"d&YE&'JJdH&'JO5&'K\pn&'JbKsO&UO&ZOpO&Ksp&'JKs}6&'J*JX6&J*4&U*d&K*&Z*9&L*\R&JF\0\0&JDH'YtDF't"'\ 'J''J'JND'KD'LD'mD'DK't"D'JtD'K'YDD'ZtD'u"uud&Lhu&K=g&K`Zuf&JUZsi&L`Zuu&JXuf&'JUZJXsi&L`Zui&UrH&m`Zuf&JUZ&3J33<&3}3&3m'&3Lm3&3J p&3Z2&3K3&3Z1e3&3'Y1KSh3&3Y1>3&3K Am&3'JU v3&3& h3&3L l&3Ym3&3U v:&JS.7r&Sl&m|F=&L^.x&JS{&ZS.Nh&K^.&Z{p&'Y{Ks&Y{IR&KbLxM:&'JS.UbB&N1 sH&L`w{*&YSxM&Ub&%&L &U;"&J&bbD&LbD&JbD$&KbD_r&'LncJ2-&Znc2:2b&n92&iw 2r&Lnc2&'KncYZ%2&mnco&'JncJ:&Ur&'LncUS^' 'm\''K_ 'V''J\T'oi- ~'Z~ ''JY\~''K_Z\''K_ 'U 'Z  d'\~\'K_ 'YH 'm5p' 'U'Ui'Zl'^'J* VN'Z'''LJ* V'J''KL'L 'K x'Z\''K_Z 'L 'YH'^''JJ* V''J^  '''K\\''JK_'Ui'Zl  \'K_\''JK_V &J &'JK&V_U &'J\!V&Y V&'JYb &'JJ!V&'JbV&Lr&Kk&Ur&Kk&L&'bH\X&'bHZz&'bHK}&\X&Jj~&Lk&U&bH~&'bHLk~&Lk&Jjr&'bHKkM_$ v&#0 A&mQH'9&'K7Kq j&'Jx\~@&oj&x*n&'JxYF|H'&'K7KxH'>&'K7Kr w"'U7j0&xjm&\(H'&K7K\ &Yx`j&mx&j&Uxw"&U7&ZPw&J(zj&Zxw&'LxJ(zj&Jxr&&'KxL5vr&L5vj&&Kx$0&@H'&'K7Kxj&Lx\ &Yxw&'JxJ(zj&'JxFjj&&'Kx\H'&'JxK7Kw"&U7&ZPjH'&K7KH'&'JxK7KE&'LwJvH&Zv&v7&q &Lw&'KwYc~&mwE&'JvJvH&U&'LwUPT|& iT|&m,l*T&'K-o Th&'J\\"T|&oTV&2T\&'J\Y*TV&'K-2*T&'K-j YT|'UbT&2T|T|&\L*T|&K-T&Y T&m#\T|&fTf&U#\YT|&Ub7T|&Z6:T|&JT&&Z\Tk&'L#\JTh&J\TT&'K#\LXTT|&LXT&K#\`&|2*T[&'K-2Tk&L#\T&Y Th&'J\JTZ&'J\6T|T&'K#\\*Th&'J\K-YT|&Ub7T|&Z6:T|*T|&K-*Th&'J\K-TRS'YbTR'bTy '\T 'JT ':T ''JJt^TRY'KbTR.'LbTRI'mbTR 'TR'bTR+'JbTRQ''KbYNTR TR'ZbTRc'b6&K/5b&U>6&K/0b&L4b,A&'b\Fw,A&'bZz,A&'bK b&\F&J.B&L/5b&U>,A&bbB,&'bL/B&L/&J.6,A&'bK/x'YSx'dSx'\HSx'JSx':Sx''JJxSx'KhSxw'LhSx'mhS'BSx'dSxt'JhSx''KhY*SxSx2'ZhSx'>~r& N& Ln~ n^& Us0~& J& = = vc !v&=J!v[=!v&=Y![&=m8!v&=L)!r[&=Ju!vM&=Z!v&=K)![&=ZB!j[&='YBKdm![&=YB!C[&=KF!r&='JU{![&=+ !m[&=Lqv&=Y!r[&=U{[n&  [U3& mCX[{& 'K)}A [:& 'J.\R[& o[(& 6.& 'J.YR[(& 'K)[& 'K)~< [E'U)N [r& [ [ & \$j[& K)[& Y8[X& m.[!& [8& U.[E& U)N[U& ZLX[& J$[& Z.[=& 'L.J$[:& J.[@h& 'K.L'D[@& L'D[h& K.[0r& L[-& 'K)[=& L.[& Y8[:& 'J.J$[,& 'J.R[ [h& 'K.\R[:& 'J.K)[E& U)N[U& ZLX[ [& K)[:& 'J.K) &'LTJg-&ZTcggb&T9g&Ow g&LTg1&'KTY@g)&mT o&'JTcJ &U &'LTU@0&K9q&Uz@0&K9l&Lp00&'WK/\&'WK/ZB&'WK/KE0&\0&J8L0&L9q&Uz0&WK/0L0&'WK/L9L0&L90&J8@0&'WK/K9j2'YTj0'd T jD'\lTrD'JT{D'HTrD''JJTj'KTj'LTj'mT%D'+tTj5'd Tj'JTj''KY\TjDTjd'ZTj'p"&'JsJ&Js}&Us&Ks=&Zs&Ls}&KzCT&U}&KzCT&LTK&'b\ K&'bZ zK&'bK}T&\ T&JyCR&LzCT&UK&bTR&'bLzCR&LzCT&JyCK&'bKzC5|&{ 5|&U5k|& 5k|&Lw5k|c&5k|v&M5k|&Kw5|&Z 5k|5k|& jk|&qw5k|5k|&)M5|&\5|&K5k|q&M&a&LR SX &Um\P^&JR &dh&3J\33&323&3mk&3L\3&3Jy&&3Z\&3K\3&3Z3&3'YK3&3Yz3&3K}}h&3'J\U}3&3tb 3&3L{X&3Y3&3U}1&1&L11&Us1&J1&0&?&bx D&ax &&?&t&W& & & <&w&\&LX&Um+&J&D]v_&JS]v&J&hN&Z &mB&'KEs [Ml&'J`\:&ob5~Z&6u5`&'J`YBZ&'KE6B&'KEn q'Uz5&65&\_dB&KE5&Y$5&m`&7~5j&U`q&UzO&ZR &J_5M*&Z` o&'L`J_5Ml&J`l&'K`Lpl&Lp5&K`5o&6B_&'KE65o&L`5&Y$ Ml&'J`J_5M^&'J`:5[&'K`\Bl&'J`KEq&UzO&ZR5B&KEBl&'J`KE2&  U& mX& 'KR K& 'J?\>& oP9& ?& 'J?Y9& 'K& 'KM E'UN &  & \.& Ks& Yi& m?& HI& U?E& UN& Z& J & Z?N& 'L?JK& J?@y& 'K?LD@& LDy& K?& >& 'KN& L?s& YK& 'J?J=& 'J? y& 'K?\>K& 'J?KE& UN& Z & KK& 'J?Kh&3J\33&323&3mxk&3L\3&3JZ&&3Z\&3K\3&3Z3&3'YK3&3Yz3&3K^}h&3'J\U^3&3Ub 3&3L\X&3Y3&3U^`R&"N `R&"mf&"'Kii eb&"'JV\X`^R&"os7P&",JV&"'JVYffP&"'Ki,f&"'Kid `R'U"&",`R"`nR&"\`fR&"Ki|&"Y&"mV`zR&"`&"UV`R&"U`R&"Z`hR&"J &"ZVhe&"'LVJb&"JV&"'KVL`R&"L&"KV &",fU&"'Ki,e&"LV|&"Yhb&"'JVJT&"'JVf0`R"e&"'KV\Xfb&"'JVKi`R&"U`R&"Z`R"`fR&"Kifb&"'JVKid&$ &$m<&$'K( &$'J/\P<&$o&$%&$'J/Y=&$'K&$'K) 'U$&$$&$\`&$KW&$Y/q&$m%&$z&$U% &$UK&$ZN &$J w&$Z/  &$'L%J &$J/&$'K%L&$L&$K%&$&$'K &$L%W&$Y/q &$'J/J &$'J/$&$'K%\P&$'J/K &$UK&$ZN$&$K&$'J/Kht&%'LcJRht &%oh,t&%'KcLT0hAt &%mpDht&%Kcht&%'JcKVht&%Lcht&%Ycht&%'Kc\ ht&%ch,t &%LT0ht %ht&%mcht &%*>ht&%Uch1t &%UV:ht &%Zzht &%JRht&%Zc|T&& 1T&&m4&&'K E&&'Jt\dXT&&oFvn&&Jmt&&'JtYn&&'KJ&&'K !T'U*&&&JT&AT&&\xT&&K&&Y8&&mt/MT&&~&&Ut!T&&U*ccT&&Zf!;T&&J$E>&&Zt!&&'LtJ$E&&Jt&&'KtL T&&L &&Ktg&&Js&&'KJ&&Lt&&Y8!E&&'JtJ$Er&&'JtNT&&&'Kt\dX&&'JtK!T&&U*ccT&&ZfT&T&&K&&'JtKoZX&'G R_X&'mjb )&''KP# 6&''J\\X&'o&'r&''JYl &''KP#( .&''KP# fOX'UPX' &'oX'oX&'\LVW X&'KP#&'Y&'mo X&'$p&'UfOX&'UPXoAX&'ZtDoX&'JL&'Z&''LJL6&'JJ&''KLNNaJX&'LNN&'K1 &'$ &''KP#&'L&'Y6&''JJL&''JoX'&''K\\6 &''JKP#fOX&'UPXoAX&'ZtDoX'W X&'KP#6 &''JKP#&)K&)U &)K&)L)&)'a X\E&)'a XZ6H&)'a XK&)\&)J&)L&)U &)a X)&)'a XL&)L&)J&)'a XKn &*  &*mlH&*'KK+ 5&*'J2\@ &*o`&*P^&*'J2YTH&*'KKP^H&*'KK, w 'U*&*^ * &*\~H &*KK*&*Y&*m! &*&*Uw &*UU &*ZX &*J&*Z2&*'LJ&*J2r&*'KLvr &*Lv&*K&*H&*'KKP^&*L*&*Y&*'J2JD&*'J2 *5&*'K\H&*'J2KKw &*UU &*ZX *H &*KKH&*'J2KKPm&+ im&+ml*5&+'K- &+'J\"m&+o4&+[&+'JYwx*&+'K-*:&+'K- Ym'Ub+,&+m+m&+\L*m&+K-&+Y&+mm&+wf&+UYm&+Ub7m&+Z:m&+J&+Z&+'LJ&+JT"&+'KLXTm&+LX"&+K,&+ *&+'K-&+L&+Y&+'JJ&+'Jwm+"&+'K\*&+'JK-Ym&+Ub7m&+Z:m+*m&+K-*&+'JK-Y\&,J|Yt&,'J|K6wY\,Ya&,'J|\1Y\&,Y|XY\&,'J|YJZY&,'J|J1Y\&,'J|JY\&,L|b&J&-J>b&s-b&&-&s&-mvb&M&-L>&s&-JMb&&-Z>b&x&-K>&s&-Zu&s&-'YuK&s&-Yuz&s&-K\}&J&-'J>U\&s&-Hb &s&-LZb&:&-Y&s&-U\N%'.Y^HN%~'.^ZN='.\N'.JN'.:N'.'JJ0N%'.KaN%'.LaN%'.maN%>'.DN%'.^ZN%'.JaN%'.'KaYMFN%.N%N'.ZaN%'.^Zp|0/p|0/E &0i&0LvB00q0&0UzB&0Jv0&0RbX'1YsRb'1sR'1\R'1JR'1DR'1'JJRb`'1Ks&Rb5'1Ls&RbP'1ms&Rb*'10Rb#'1sRb2'1Js&RbX'1'Ks&Y_Rb1Rb'1Zs&Rbh'1smBV&2KEmq&2'JhJtmm&2Jhmm&2LhmmV2h&3J\33&32}3&3mk&3L\m3&3Jp&&3Z\&3K\3&3Ze3&3'YK*h3&3Y>3&3KAmh&3'J\Uv3&3& h3&3LlX&3Ym3&3Uv&4 a &4md"&4'K% &4'J\@&4o&4jz&4'JY$"&4'K%j"&4'K% Q'UZ4&4j4G&4\"&4K%&4YX&4m_&4h&4UQ&4UZ&4ZQ&4JT^&4ZQ&4'LJT&4JL&4'KLPL&4LP&4K&4,j"&4'K%j&4L&4YXQ&4'JJT&4'Jn4&4'K\@"&4'JK%Q&4UZ&4Z4"&4K%"&4'JK%p&5K p&5Up(&5% p(&5L,p(&5rp(&5rp(&5K,p&5Zp(5p(&5$ (&5qp(5p(&5crp&5\pc&5Kfp(&5rH|'v# A|'vmQ''v/qu K7jn'v'\[Jxb~|'voj\'vx8*na'v'JxbYF'\'v'x8K7''v/rp K7"|'U7vj'vx8j|v|'v\ 9'|'vK7\'vYx&`j'vmxb|'v^jl'vUxb"|'vU7/|'vZP2|'vJ(j,'vZxbq'v'J(Lxbjn'vJxb'v'L5Kxb|'vL5j'vKxb$'v@8'a'v'x8K7jq'vLxb\'vYx&n'v'J(Jxbj\'v'x8Jxbj|vj'v'\[Kxb'n'v'K7Jxb"|'vU7/|'vZP2j|v'|'vK7'n'v'K7JxbExf&7'LWJDHx!&7ZWx{7xV&7-x&7k xf&7LWx&7'KWYx&7mWExc&7'JWJDHx{&7USxf&7'LWUSPu`'8YnPu&'8nP>'8\P>'8JP}>'8P>'8'JJPuf'8Kn,Pu;'8Ln,PuV'8mn,Pu>'8NBPu+'8nPu8'8Jn,Pu^'8'Kn,YZPu>8Pu'8Zn,Pup'8np&5'4bK p&5'4bUp(&5'4b% p(&5'4bL,p(&5'4bpp(&5'4bpp(&5'4bK,p&5'4bZp(&54bp(&5'4b$ (&5'4bqp(&54bp(&5'4bcpp&5'4b\pc&5'4bKfp(&5'4bp&:; G&:mWS-T&:'K=V ~&:'J\K&:o$X&: &:'JYkS-&:'K=VS-Y&:'K=V ('U=:K&:9:x@&:\S-&:K=V;&:Y1&:mL&:&:U(&:U=b&:Z:&:J9&:Z:&:'LJ9&:J}#A&:'KL;}#&:L;A&:KIK&:eS-&:'K=V&:L;&:Y:&:'JJ9&:'Jk9:A&:'K\S-&:'JK=V(&:U=b&:Z9:S-&:K=VS-&:'JK=V<l&; l&;mz9&;'K} &;'J\rl&;oLK&;&;'JY|z&;'K}z>&;'K} l'U;0&;ol;<l&;\8zl&;K} &;Y&;mHl&;R&;Ul&;U#^l&;Z&6l&;Jo&;Z6&;'LJo&;J&&;'KLl&;L&&;Kr0&;z&;'K}&;L &;Y6&;'JJo&;'Jol;&&;'K\z&;'JK}l&;U#^l&;Z&ol;zl&;K}z&;'JK}&<? &<mW&<'KZ (&<'Jt\O&<oK(&<  t&<'JtYW&<'KZ W&<'KZ 'U<D&<l<|F&<\W&<KZ0&<Y8&<mtR&<~&<Ut&<Uh&<Z@&<J>&<Zt@&<'LtJ&<Jt&<'KtL&<L&<KtbD&<~W&<'KZ&<Lt0&<Y8@&<'JtJr&<'JtNl<(&<'Kt\W&<'JtKZ&<Uh&<Zl<W&<KZW&<'JtKZ!v&=Jy!v[=v&=O![&=mOv&=Ly![&=J1vC&=Zyv&=Ky! [&=ZY![&='YYK{![&=YY![&=K5!&='JyU5!%[&=, ![&=L3vu&=Y![&=U5a&>JGa>T&>Ga&>m a&>LRa&>J1 a&>ZGY&>KRa&>Za&>'Y>Ka&>Y a&>K"-a&>'JGUla&>, a&>Lb+&>YGVa&>Ul:&? :r&?Lc:$?:$&?U :o&?J c:$&?&B'J~J&BJ~&BU~&BK~H&BZ~&BL~&Ba&CJra=CaR&Crba=&Cmvea&CLrRa=&CJXUa&CZraH&CKra=&CZJa=&C'YKMa=&CY#a=&CK\&Ra&C'JrU\[a=&CS Ma=&CLZQa &CYrRa=&CU\[;&DJT/aDs&DTa&DmY>&DLU/ra&DJ:u&DZT/i&DKU/a&DZbja&D'YbKma&DYbCa&DK?Fr;&D'JT/U?{a&D5+ ma&DL=q+&DYTra&DU?{e&E'LJAe&EZe)Ee&EeU&E e&ELe &E'KYe&Eme&E'JJAe)&EUPe&E'LUPE8&F'L}J,H8G&FZ}8F8|&FS8&F 8&FL}8&F'K}Y?8&Fm}E8&F'J}J,Hm8&FU;vm8&F'L}U;v&GKEh&G'J,\JHwh&GJ,\wk&GL,\wGQ&HKQT&H'JHJzQT&HJHzQW&HLHzQHn&I '&Im7H E&I'KKX &I'J_\xxd@&IoL&IjU&I'J_Y-H &I'KKjH J&I'KKY w'UIu&IjI l&I\jH &IKKC,&IY_&Im!x&I&IUw&IUU&IZXf&IJ&IZ_&I'LJ&IJ_r&I'KLvr&ILv&IK=&IYjH &I'KKj&ILC,&IY_f&I'J_Jq&I'J_-I&I'K\xxH &I'J_KKw&IUU&IZXIH &IKKH &I'J_KKn$&X U$&Xm3X$%&X'K $&X'J\`$&Xo$&Xu$&X'JYh$&X'K$*&X'K E$'UNX$&X$X $&X\j$&XK$ &XY$&Xm!$&X$&XUE$&XUNU$&XZ=X$&XJ$&XZ$&X'LJ$&XJ@$&X'KLD@$&XLD$&XK$&X'$&X'K$&XL$ &XY$&X'JJ$&X'J$X$&X'K\$&X'JKE$&XUNU$&XZ=X$X$&XK$&X'JKb4s&]'L:dJlb4.&]Z:db4]b4c&]::b4&]5x b4s&]L:db4&]'K:dY&&b4&]m:db4p&]'J:dJlb&]U{bs&]'L:dU{'rn9&c #O9&cm_&0&c/ K@&c'Ju\q9&coS&cu&c'JuY0&c'K@0&c/ K@9'U2c&cK9c 9&c\j09&cK@&cY9 &cm{!9&c&cU9&cU2U9&cZ1X9&cJ w&cZ&c'L{J &cJu&c'KuL09&cLH &cKu&cK0&c'K@&cL{&cY9&c'JuJ s&c'JuO9c &c'Ku\q0&c'JuK@9&cU2U9&cZ1X9c09&cK@0&c'JuK@:&3JR.33_r&3Ri3&3mle=&3LR.Y3&3J\&3ZR.Yh&3KR.3&3ZQ3&3'YKT3&3Y*3&3K-Y:&3'JR.Ub3&3 T3&3LX6*&3YRY3&3Ubh&3JZ\33I&3<2}3&3mZk&3LG\m3&3Jp&&3ZZ\N&3KG\3&3Ze3&3'YKh3&3Y>3&3KAmh&3'JZ\Uv3&3& h3&3Ll>X&3YZm3&3Uv_f|0/P|0/Po}&hJoaho&h  &hm o&hL}&hJo}y&hZo&hK;&hZ>C&h'Y*K=*C&hY*&hK&h'JUT&h &hLo&hY;&hUM&'JAJM&JAK&UA{&KA &ZAP&LAa&>J!a>a&>!`a&>mPa&>L,a&>J1 aT&>Z!a&>K,a&>ZYa&>'Y>Ka&>Ya&>K6Aa&>'J!U6va&>, a&>L4la&>Y!a&>U6vd[k&lK &lU&lK&lL\l\&l'bk\DK&l'bkZN&l'bkK\&l\DV&lJ&lL &lU\&lbk\l&l'bkL&lLV&lJ&l'bkK)P&K"=1P&U:)P&K"=,P&L0=P=X&'\a=sX&'Z va=X&'Ka=P&\=P&J!5&L"=1P&U:=X&a=P5X&'L"a5&L"=P&J!)X&'K"a@ &'S )'RK@O@ &'S )'RU@&'RK@O@ &'S )'RL@&R@ 4&'WnG'S )'\R@ 4&'WnG'S )'RZ@z 4&'WnG'S )'RK}@&'R\Z@[&'RJ@O@^&'RL@O@&'RU@ 4&'WnG'S )R@ &'S )R@ 4&'WnG'S )'RL@O@ &'S )'RL@O@ &'S )'RJ@O@ 4&'WnG'S )'RK@Ow|&nXw&Leww&Uw&Jnw&Pu& zu&Lpup&Upu&J pu&=XG&K@^&UG&K@^&L^^&'a/\?^&'a/Z^z&'a/K}^&\?^&J?S-&L@^&U^&a/^S&'a/L@S-&L@^&J?G&'a/K@O/t*& /t&L/t{]{&Uf/t&J '/t{&!"&~"U&LuF"X&Um"R&J~F"&[U&U&LUU&UsUS&JGU&l&flk&L\l5l5&Ul5&JX$l5&-B&^H-' "' #v'nL'F-&kp&~ PfB&^W&xw4_a&K 4_a&U_a&K 4_a&L4_a4_a&'aZ\4_a&'aZZ 4_a&'aZK4_a&\4_a&J  _&L 4_a&U4_a&aZ4_a _a&'aZL  _&L 4_a&J _a&'aZK a&K @qa&Uza&K @la&Lp@a@a&'\aZ@a&'ZaZ@Ba&'KEaZ@a&\@a&J  &L @qa&Uz@a&aZ@a a&'L aZ &L @a&J a&'K aZzn&xnY&LoJn))&UnV&JxJn)&:m&vI:&L\::&U:&J&$:&&Qkkx_'% "kw' Ckp'6hkL'@Qk&~jk&x &k!&nw4ub&K\Eb&UNub&K\@b&LD\ub\u?&'W6\@\?&'W6Z \?&'W6K\ub&\@Xub&Ju&L\Eb&UN\u?&W6\ubu?&'W6Lu&LXub&Ju?&'W6Kz&KB&U}z&KB&L{zzi&'b\Z'i&'bZ*i&'bK}z&\Zz&JBzQ&LB&U}zi&bzzi&'bLBzQ&LBz&JBzi&'bKBr4$=G%'&'&'&&766fCqR3Yt  ?=`4Rx%z1ok;Zt$='Kmr4&Ktz&mtz[&(2tz3&\x< zX&Y(t5z3&tz&Jtz3 izX&'Y(Zltz&K 'zX&'Y(J*t'z3&J*tz&Utz&Ltz3&K5b&>5&L5&^&Us/+5&J5&=/|&X/&L/&Uo/&J/&0s5~ %#'&'&&766EB nZ{4Dv  Z>/3h=" t&K  V&K (&J +&L t?t&JB?(&'JJB +&L?t&UH F&m (&Jiu&JiuUiu9&imU&mpiu&Li]U&J`iu&Ziu /&KiU&ZiUU&'YKXiU&Yi.U&K1i]&'JUfiU& iXU&L\iu@&Yi]U&Ufd$d$e&'LJee&Z(ee'&e&< e&Le&'KYe&me4&'J(Jee&Ute&'LUtck&K'c&'JJc&Jc&LckN]&KnE&UN&Kn@&LDnn&'a\"n&'aZn&'aKn&\"n&J"&LnE&UNn&an&'aL"&Ln&J&'aK~F&R e&muK&'K[t &'J{\^:&o[O&{^-q&'J{YIK&'K[{^K&'K[u F'U[_&{^O&\WzK&K[_&Y{L<O&mT1&/jO&UTF&U[e &Zh#&JW&OR&Z{g#&'LTJW&O&J{[A&'KTLYA&LY[O&KT&,^K&'K[{^gO&LT_&Y{L#&'J{JW&O&'J{IbO[&'KT\^K&'J{K[F&U[e &ZhOK&K[K&'J{K[|&J |9|J& |9&m |&L q|9&Jt|&Z |@&K |9&Zi|9&'YKp&\ e>p]&LNe>p&e>pM&r$e>p&KNep&Ze>pe>p&a >p&qe>p>p&$ep&\e_p&Kbe>pH&r$)0j&K 0 0&U)0j&K 00&L )0)3&'b!\1)3&'b!ZXO)3&'b!K)0&\1~)0<&J0)0?&L 0 0&U)3&b!)0)3?&'b!L 0)0?&L 0~)0<&J0)3&'b!K 0b, &(,&Lv,6s6&U|,&JvS,G6&MTqJ&V i&myKO,&'K_N &'J\&C>&oH&H&'JYoKO&'K_NKO1&'K_N zJ'U_H#&H &\[mKO&K_NH&YH &m$&3H&UzJ&U_X &Z[&J[H&Z&'LJ[H&JuE&'KL]yuE&L]yH&KHj#&KO&'K_NH&LH&Y&'JJ[H&'JH&'K\&KO&'JK_NzJ&U_X &Z[HKO&K_NKO&'JK_N-uZtl& )1l&mA,&'K' &'J\nl&o&j{&'JY$&'K'j&'K' l'U'"&jll&\#pl&K'&YX&m'l&&Ul&U'"[l&ZK^l&J#^&Z&'LJ#&J&'KL%l&L%&K&-j&'K'j&L&YX&'JJ#&'Jnl&'K\&'JK'l&U'"[l&ZK^ll&K'&'JK'uZu{l&ey&N' "'x A'4TL',N&&V&d 5&s_&nw4<& &m RE&'KU &'J\hJ&o#&&'JYR&'KURJ&'KU 'U<&&\8R&KU,&Y"&m&R&U&U#&Z)&&J&Z&'LJ&J|2&'KL|&L2&K{<&R&'KU&L,&Y&'JJ&'J2&'K\hR&'JKU&U#&Z)&R&KUR&'JKUL\&} e\&mnh&E&'KT)\ {&'Jc\@\&o&c&'JcY1&&'KT)c&J&'KT)] U\'UT^<&c\\&\H&\&KT)&Yc"&mc\&Zb&UcU\&UT^3\&Z6\&J&Zc&'LcJ&JcP2&'KcLRTP\&LRT2&Kc<&&&'KT)c&Lc&Yc&'JcJ&'Jc1\{2&'Kc\@&&'JcKT)U\&UT^3\&Z6\&\&KT)&&'JcKT)kk&-&-P&PU&LFP&UPR&JFP&#&KU*&LBMM&U&JKtM&z;$&;&L};J;J&U;&J;J&g|&pXg&LlgNgN&Ug&JpgN&uI U&'S m'REKu U&'S m'REUuI'&'REKu U&'S m'RELuId&REuI F&'WQ'S m'\gREu F&'WQ'S m'REZua F&'WQ'S m'REKdud&'RE\uI&'REJuI&'RELud&'REUuI F&'WQ'S mREuI U&'S mREuI F&'WQ'S m'RELuI U&'S m'RELuI U&'S m'REJuI F&'WQ'S m'REKc$F&fc$Fk&L\c$FPcFP&Uc$FP&JX$c$FP&dlD&P Zl&LGl&Ul&JPql&k0g|&pXg&LlgNgN&Ug&JpgN&$&&L}JJ&U&JJ&c s&'S'RGKLcc s&'S'RGUlc)&'RGKLc^ s&'S'RGLbc&RGc d&'WB'S'\RGc d&'WB'S'RGZc4 d&'WB'S'RGK7c&'RG\c&'RGJLc&'RGLLcc&'RGUlc d&'WB'SRGc s&'SRGc d&'WB'S'RGLLc s&'S'RGLLc s&'S'RGJLc d&'WB'S'RGKLc$&fc$k&L\c$PcP&Uc$P&JX$c$P&dP& z&LpNpN&Up&J pN&((O/*& /&L/b]b&Uf/&J &'J[2KOWpT?1&'KOW[p:V&F< pT?&'KOWTE pT?&'KOWU@ pT?V&KOWpT?V&KOWpT?,&'KOW[nA&'L[2JKpL.V&o%b~5l&'K[2LMp~5V&LMpV&#pT?>&'J[2KOWp>&'J[2JKp:V&UOpV&Zs&mj'Uj&UE&Z&JToq&'JeKWTod&'KW;&< T&'KWzx To&'KW{s To&KWTo&KWTo_&'KW;vKt&'LceJL^&o%j~e&'KceL}~e&L}/&kToq&'JeKWq&'JeJj&UE&Z'm'U'U'Z^'JT''JKWT''KWZ'< T''KW T''KW T'KWT'KWT~''KWZ''LJL'oi%~''KL~'Lp'T''JKW^''JJ'U'ZA&mQ"'U7"&U7&ZP&J(T'&'JxK7WT'&'K7Wx&#< T'9&'K7Wq T'>&'K7Wr T'&K7WT'&K7WT'&'K7Wx&'LxJ(~L&o%~&&'KxL5~&L5&T'&'JxK7W&'JxJ("&U7&ZP[3& mC['U) [& U)[& ZL[& J$[T:& 'J.K)W[T-& 'K)W[& < [T{& 'K)W}A [T& 'K)W~< [T& K)W[T& K)W[T(& 'K)W[=& 'L.J$[L& o%[~h& 'K.L'[~& L'[& [T:& 'J.K)W[:& 'J.J$[& U)[& ZL&m'U&U&Z&J^Tl&'J`KWT_&'KW6M&Y< T&'KWs T&'KWn T&KWT&KWTZ&'KW6o&'L`J^L&oc%~&'K`L~&L&6Tl&'J`KWMl&'J`J^&U&Z&$m'U$&$U&$Z&$Jr&$'J/Kur&$'Ku&$Z r<&$/( Kur&$/) Kur&$Kur&$Kur&$'Ku &$'L%J2j&$o|C&$'K%L&$L&$r&$'J/Ku&$'J/J&$U&$ZT&&mT'U&T&&UcT&&Z;T&&JT&&'JtKWTs&&'KWJT&&< T&&'KW T&&'KW TT&&KWTT&&KWTn&&'KWJ&&'LtJLT&&oF%~&&'KtL~T&&LMT&&T&&'JtKWE&&'JtJT&&UcT&&Z|'vm%|'U v|'vU |'vZ.|'vJT`'v'JTK WTS'v'K W*|'v< T'v'K Wg T'v'K Wb T|'vK WT|'vK WTN'v'K W*c'v'LTJRL|'vo%~'v'KTL ~|'vL |'vT`'v'JTK W`'v'JTJ|'vU |'vZ.l&;ml'U;l&;U^l&;Z6l&;JT&;'JKWT&;'KWl&;< T9&;'KW T>&;'KW Tl&;KWTl&;KWT&;'KW6&;'LJLl&;oL%~&&;'KL~l&;LHl&;T&;'JKW6&;'JJl&;U^l&;Z&<m'U<&<Uh&<Z@&<JT&<'JtKWT&<'KW_&<< T&<'KW T&<'KW T&<KWT&<KWT&<'KW_@&<'LtJL&<oK%~&<'KtL~&<LR&<T&<'JtKW@&<'JtJ&<Uh&<Z'&Im7'UI&IU&IZf&IJT &I'J_KWT &I'KWj&I< T E&I'KWX T J&I'KWY T &IKWT &IKWT &I'KWj&I'LJdL&Io%~&I'KL~&ILx&IT &I'J_KWf&I'J_J&IU&IZZ9&cmj;9'UPc;9&cUP9&cZs9&cJKT@&c'JuKPWT@&c'KPW:9&cF< T@&c'KPW T@&c'KPW T@9&cKPWT@9&cKPWT@&c'KPW&c'L{JKL/9&co%~6&c'KuLN~69&cLN9&c#T@&c'JuKPW&c'JuJK;9&cUP9&cZse&muF'U[F&U[ &Z&JWTK&'J{K[WTK&'K[W{^F&R< TK&'K[Wt TK&'K[Wu TK&K[WTK&K[WTK&'K[W{^g&'LTJWL:&o%[~A&'KTLY~A&LY&/TK&'J{K[W&'J{JWF&U[ &Zi&myJ'U_J&U_ &Z&J[TO&'JK_WTO&'K_WJ&V< TO,&'K_W TO1&'K_W TO&K_WTO&K_WTO&'K_W&'LJ[L>&o%~E&'KL]~E&L]&3TO&'JK_W&'JJ[J&U_ &Z&m 'U&U&Z)&JT&'JKWT&'KW&< TE&'KW TJ&'KW T&KWT&KWT&'KW&'LJL&o%~2&'KL~&L&T&'JKW&'JJ&U&Z)y:W&\yR&\yd&\PpyV&\Ky#&\yd'\y&\([y& \$y&\^&$\&yAT&&\y|'v\y<l&;\yF&<\yl&I\y9&c\Ky&\Wy&\[y&\Y&7JMv'67'&7676'&' <$@ U< 009{'RA'6m v7v&7JD_;v/n'>L',>6Y33 %6!&/&XGFGYYH=&f@&fH@&fBC&fmA&f[8L7&f4$A&f!6A&f"7@&fV@&f=&f@&fH@&fBC&fFgQB&f-R=&fCBS?&f!6A&f"7@&fV@&f+:X&f4$A&f7(A&fJ z 6&?676&?67b(  (!  k6   H ( v ?m d6'&5'476G&(  OG M=*  /56.7676'&76'&767&76& @ JI2F?"!  9\J"*P@e%,F;00Z.VP$ "%% 14--4AKN)"w)8V1O`q, n'B]>3'C!>8.0'"'&'367676 " "J& a-Ph (A`[/]6j %/&?6E$D$$DH$$H$$67676#&''&/&76%&&87sGV) 7#?l v2vg@) ZmDU4 pXm47x TIIP . `o`'&7$76'&76'&&&18҃WS;/A$@;=CF, W-:*u17b$%!+^t)`1&/&3276#"E____E___YDDY"'&/&3276_EFYCCY!!! %"/&! %6XJF8FEYFEY %6%$%&/&56 7{o6S^+ Y=;Y -:G7'JJ'L(L'Z1'{/ 7'L('Y6'KR'm(G'JJ'JG'UPG7'UP'L(P"'K/S"'J 'Jz"'Jz"7'L("{(6'&%$2#$$'&767>76"4#9 Xb2"Yo:,$ 1 .-f+oYgE..Wc{)- .S20N"''eNT{Q6$'&767%2# ;,& 1 +6A' [1S0N"'(. {2'&'&%$2#$$'&767>76767636 726&7 X91m, x  /jH !D.3  ? (d5 R !/  !S  T2; H!+&767&'&'&7667672'767&I # P-   9Prמ7676332"Yo:,$ 1 .-3%/=I.,@>(- .S20N"''e'0P>!'&'&'&'&'&?676ʊ   A %  r9 CBb!j$Cv,-G*&76'&'4'.' T/# s  \2zNFG'&76'7>67&#V:h2 u$I{, &P ,Lg@4jv.]ߴI  EBN5)'&'&/&7>36  "! $=*9]Cqr L$Z7AHy!6'45%&'.'&67z'-S%  $ JIL,/j. M^I M 1A(F&)Hy&K"ly&Uu)Hy&K"gy&LkHyH x&'a\+  x&'aZ= x&'aK@Hy&\+ Hy&J!5H&L"ly&UuH x&aHyH x&'aL5H&L"Hy&J!H x&'aK9&E# x&m{9&'K<{ Mft&'Jh\&1&oO G*b&>G* h&'JhY9b&'K<>?9&'K<v h'UqG*&>G*&\7(9&K<G*&Y,G*&mhx&"G*r&Uhh&Uq&Zr&JJ %G*2&Zhw&'LhJJ MG*t&Jhc&'KhLgc&LgG*&KhG&>'9g&'K<>G*w&LhG*&Y,Mt&'JhJJ G*f&'JhBG*f&'Kh\&M9t&'JhK&76Qn& <>\s&sA?$j/+2{B 4T!*?'& & |9&J&Jl&J]A&]l&m|F&L^&J] &Z]N&K^^&Za&'YK&YeR&KbhM&'J]UbwL&X H&L`&Y]AM&Ub9&'J-JH9&J-7&U-g&K-&Z-<&L-",6'&''&767&767&'&65&'&7&76'& 0xW,?c %Ka!+l.;8SFG@-lh4@Y:s3f_!&k X0w:rI L  4$%6'&&767676'&'&7676676 /3A!@873%)  M-k+ ?2׵!%g9 &3_cSFDe`) C-  v)4g+`; c"(cg~h&J&LL7i07>'&%">&&'&>76'&'/&76Ir =r$ta/. ,HG"C (+,Жfh,hKlkkU# KdG<)F K%$ ]Hn*- #? 4(= =#' *&c*&c#'&U&U#&*&c#-5%/&7$7676%6''"676'&76'&N3rWn9-RL)  iYD fG-;F }'< $`NPLS? #ݸY Cɺ <:GHIGMW%ߣ*!0n#'&776325476"'&&'&}Ί@L hI T7' !j` n{ h9y%&%' bn2oT330&db33'b33J*5T33E3333x [33^&$\33` &?33332oT330&db33'b33J*5T33(f\Q33n>;R33M4]S33^&$\33` &?3333l733x [33{)A33P6#"'& '&7 & Y5  % $CUXHn!nL'8FD"&8{7&8*P8&8dw4p&8~ H&8P&8N"y'8 z/'8 D$ .">&7>'&'&767&767676$r$ta/.iIr =nW %HVG5?^HG"C (+,dG<)FdkU# KQ:qI{Fi%$ ]Hn*,DhG&\ =W&P&U&+)&_2&ld&(pV&#HS&&k&w ;&CO&<%g'u&T|&f[& { &7~& H`qR&"&$zht &%*>DT&&hX&'$p &*m&+wfO&4h|'v^C&:gl&;RI&<o&I$&X29&cw!&/&3l&&R\&Zb=W&U&ld&(pV&#&&kg'&[& z&6&$DT&&|'vjgl&;I&<o&I9&c#&/&3&h&"DT0<D(!0'&547632! '&/&4! ;dmG< , < T;V*C " =}yOl"nO#"J (P)(>=\?R\@t5cutx˜^â`>c\] $i(>=\?R\@t\?Q>^kYR+S`>c\] $iDD~^âUA^D&{7&dw4{ >#"'&32?6>Z \]2{& {&m&/ K K<&'\nJ0{&oByn&T&'YJ0*&'K&/ K{'Ut&{K{&\`{&KT&YZ&m0a{&H:&U0{&Uw{&ZO{&J>&Z0?&'JL0><&J0j&'LK0{&Lj&K0' &C/&'K?&L0T&YO<&'JJ0>.&'J0 { j&'\nK0<&'KJ0{&Uw{&Z{{&K<&'KJ0{&m{'U{&Uw{&ZO{&JT<&'KWJ0T/&'KW2{& T&/ KWT&/ KWT{&KWT{&KWT*&'KW?&'JL0L{&oB%~j&'LK0~{&La{&T<&'KWJ0O<&'JJ0{&Uw{&ZH`&'SXxRl &'S Rrc Q'Rl'SXx&W 'Rr'S &WZc Q'\r'W&'SXxRl '\'WZ&'S Rrc Q'K'W&'SXxRl 'K>'WZ&'S Rrzc Q'K]}'W&'SXxRlH 'KK'WZ&'S Rrc Q'Z'W&'SXxRl 'Z'WZ&'S Rrc Q'L'W&'SXxRl 'L>'WZ&'S RrH`'J'Rl'SXx 'J>'Rr'S H`'L'Rl'SXx 'L>'Rr'S H`'L['Rl'SXxr 'Lv'Rr'S H`&'SXx'RlK &'S 'RrK>H`&'SXx'RlU]w &'S 'RrU}v # -6'&%&'&7%632&676%$g~"C# ( =U#*C  G̘n< ōStV:F8^ h7<}v >4&%&'&7632'"&'&676%$o0*  8)ֈ1_e (#*C  Qkx*QH  9![^KRGo:F8^ h7@< ( 0'&547632! '&/&4 0;dmG< , < T;V*C " =}yOl"nO#"J (<^ W%1"47&'! %&/&4! 7672#"'&"3276764 B8br>C "*H+WoK lI?9s00d_^?D .rQJ dm1Hp RPa 1&/&276#"JK="I*53YK HY{#pyRg%&'&76h 0k!  ",$!VNO\g& ug&mx6'&'K9I &'JP\x.g&o6R&P.&'JPYj6R&'P.K96,&'K9J eg'Un]&P.g g&\Fl6g&K94&YP%&m=XZsg& Sb&U=Xeg&Ung&ZZeg&J2h&ZPPeg&'L=XJ2h&JPD`&'K=XLd`g&LdD&K=X]&P.6W&'K9P.Pg&L=X4&YPe&'JPJ2hb&'JPgD&'K=X\x6&'JPK9eg&Ung&ZZg6g&K96&'JPK9{#_'yR% {#d'yR {#pyRNcg& {[{& uB{&mRx6(&/ K89 <&'\nJ0.{&o*&0&'J0Y6(*&'K896(&/ K89e#{'U8nt&{ 1{&\l6({&K89?T&YZ&m0sa{&:&U0e#{&U8nw{&ZeO{&Jh&Z0e?&'JhL0<&J0`j&'L6dK0`{&L6dj&K0S &o6(/&'K89?&L0?T&Ye<&'JhJ0.&'J0 { j&'\nK06(<&'K89J0e#{&U8nw{&Z{6({&K896(<&'K89J0cX{&u&mxe&Jlh&Z&'YK&Y6&Kp9e6&'Jl*Upn&g `&Lnde&UpnX{&HX{&-{&\ <"7663276v%0% Ý e/8 gb |$H-zKJ,yU2654&"62"\ZZɋ>n".47>;232&"&4327654&"](lVl$( ! 5]"(FH(*@> %3*&""&4>76;2767>2'#&'6NfB$ % Hj0*Nb $)$ q2C"(".BrdMN=P[  4 !i36"-22"&'&462264&#"&47>54#""&76F:n|!P?+Zk=m&/35_P[7: Owv*=!RdFm5,^v10<$  &&OWPAl6(*0("&=&#!&'676232#"'4";> e  EG H Rx  9S?R ,Dd  2(%254&""'636367&632#"&'&462Tw= 7  L 6>i/p&1eO]KB$ ׍# L*$ 264&#""&5477632Iu&H$.&462"&5476764'3764&264."2moE0@Z€+C0, L24>B7b/J4[qb\#vzi]-*E$F;Y7&+G:ZPrR0* 64&"32$62.5676&#"&Iu?l'K[2'KOAn>?A'L[2'KOAj&o'Kce'K)v&ot'Lce'K)tC'Km 'K('Lm 'K(H 'K'KKH 'L'KKp'K'Ksp'L'Ks\'K'K_\'L'K_H'&'Kx'K7KH''Lx'K7K*T'K#\'K-*Tk'L#\'K-[h'K.'K) [='L.'K) B'K`'KEBo'L`'KEy'K?'K N'L?'K f'KV'Ki"fe'LV'Ki"'K%'K$ 'L%'K$'Kt'K&'Lt'K& 'K'KP#' 'L'KP#'H'K'KK*H'L'KK**"'K'K-+*'L'K-+"'K'K%4"'L'K%4''K7'Kxbv'q'K7'LxbvS-A'K'K=V:S-'L'K=V:z&'K'K};z'L'K};W'Kt'KZ<W'Lt'KZ<H 'K'KKIH 'L'KKI$'K'KX$'L'KX0'K@'Kuc0'K@'L{c[K'KT'K[gK'LT'K[KO'K'K_NKO'L'K_N'K'K''L'K'R2'K'KUR'L'KU&2'Kc'KT)&'Lc'KT)T'KW'KT'KW'LTd'K*'KWT9'L*'KW[T'Kv'KTW[T'Lv'KTWbT?l'K[2'KOWnT?A'L[2'KOWjTo'Kce'KWvTot'Lce'KWT'K'KWT'L'KWT'&'Kx'K7WT''Lx'K7W[Th'K.'K)W [T='L.'K)W T'K`'KWTo'L`'KWr'Ku'K%$r 'Ku'L%$T'Kt'KW&T'Lt'KW&T'Kxb'K WvTq'Lxb'K WvT&'K'KW;T'L'KW;T'Kt'KW<T'Lt'KW<T 'K'KWIT 'L'KWIT@'Ku'KPWcT@'L{'KPWc[TK'KT'K[WgTK'LT'K[WTO'K'K_WTO'L'K_WT2'K'KWT'L'KW9'Kh'K<9w'Lh'K<j'K'K0?'K'L0Tj'K0'KWT?'L0'KWD6'K=X'K9P6g'L=X'K96(j'K89'K06(?'K89'L06nq4&'.#";2#"32&#"&5432676554+"546;2=4>3232>;267>32#"'.""&565"2>54& D:V(Y%@QX jR HqFC,)1VY0Kh+i  8$` t|Hm,nm\f 02t>1 Fl > i‡P. @nv NLzFaM # 5_& =QcP6<n4&'.#";2#"32&#"&543267654#!"32&#"&543267654+"546;2=4>32>3232>;267>32#"'.""&565"2>54&'.#"3!27676546 D:V(Y%@QX Y%@QX jR N{G4]>% 9LC,)1VY0Kh+i  8$` t|H 2N0^h#d,nm\f 02t>1 Fl 2t>1 Fl > h{H 0(MW. @nv NLzFaM # 5_& =QcPf(2f6  6Zn4&'.#";2#"32&#"&5432676554+"546;2=4>3232>;267>4.#&67327"7#"&'&'./3&#"&6726765 D:V(Y%@QX jR HqFC,$B'%a_gIcg9m$g-fPr ] #AT] m+om\f 02t>1 Fl > i‡P. @n8 m7!  , +W=v# :| t * * t6n4&'.#";2#"32&#"&543267674#!"32&#"&543267674+"546;2=4>32>3232>;267>4.#&67327"7#"&'&'./3&#"&6726765.#"3!27676544 D:V(Y%@QX Y%@QX jR N{G4]>% 9LC,$B'%a_gIcg9m$g-fPr ] #AT]  ",=#^hl*pm\f 02t>1 8z 2t>1 8z > h{H 0(MW. @n8 m7!  , +W=v# :| t * * tt%f6  8Kn4&'.#";2#"32.#"&5432676554+"546;2=4>3232>;2327>323&#"&672676=4&#"3&#"&6726765 D:V(UM=$%@QT jR HqFC,(@AZ:! ] #AT] Qs"]? ] #AT] !m,nm\f 02t>- Fl > i‡P. @n<,f">l\t * * tȽ04 ^t * * t6{n4&'.#";2#"32&#"&543267674#!"32&#"&543267674+"546;2=4>32>3232>;2327>323&#"&672676=4&#"3&#"&6726765.#"3!27676546 D:V(Y%@QX Y%@QX jR N{G4]>% 9LC,(@AZ:! ] #AT] Qs"]? ] #AT]  ",=#^hp*pm\f 02t>1 8z 2t>1 8z > h{H 0(MW. @n<,f">l\t * * tȽ04 ^t * * tt%f6  82nk4'.+"32.#"&5432676554+"546;2=4>32#"'.#";272632&'&47>5B4UM=$%@QT jR HqF=]0*; % 5:V(V /FaV.)5?$l;# 2t>- Fl > i‡P.O)*4,1m\f.P@"n}e7  /Ub`62n4'.+"32&#"&543267654#!"32&#"&543267654+"546;2=4>32>32#"'.#";272632&'&47>5'.#"3!2=47654B4Y%@QX Y%@QX jR N{G4]>% ;K=]0*; % 5;Y)V /FaV.)5?$ 2N0^h l8& 2t>1 Fl2t>1 Fl > h{H 0(MW.O)*4,1kZf @P"n}e7  /Ub`(2f qQ  8@dE&43267654'.54767263232.'32>32#".5467"&#"@^;& @ ` 6 P%-#?"dn4D]$ 2:RzN0!"P@dt>1 1:7  9A J>> #".5432\ 2 Hf <%D 467632#"&D2 \ %< fH 2#'"&5676 +{& Н4 &/) `  *P 2654&#"462"CZ??-.jff\BA/.@ihj-d%232>72#"'.#""&54767NV%#9";O7N  09d+0") 'I+ !'G0!&67!  C =(2"&'&546326zzYY M]]M ;AA&\!32#"'.5463232654&#""&7>73<-;^4 5/7.&; 26D0Pb . &* Y.6l 2"&46!2"&46(:;R;=(:;R;=l;)(8:P:;)(8:P::lX462"$462":T::T\:T::TT::T::T::T:,"'.'46372+{& T:%/)  U=)l@9BvD4D4f0xpb\x@&T Ze-4233-6233z2 6 233*6233^(%9233*9233(> 233r*,233#7233(> 233Ue&nf&%3g&6"h&0i&2j&*$k&0l&Hm&0*n&c&ff&fHf&fBi&fm g&f[^r]&f4$g&f!6g&f"7f&fV4f&fc&ff&fHf&fBi&fFgQh&f-Rc&fiBSe&f!6g&f"7f&fV4f&f+ `~&f4$g&f7(g&f>RT 2&'54X,F <TH,N,zX2"5 88 Zn !"&767!2vn<!6.7j0.6  x8& "5467!2   D 4 "j .7  ( P` !2!"54 ` "547!2 P   .X` !2!"54: `>d(~.7 B ~ 0$ *"N.7F   ( $2n !"&767!2vn<,Lh !2!"548 h!$OG2%&/&7.7>7&' :) H#G ,_ #'J'?@0qzNRBA/2+&jZ #N[h~0j* 632.4701D,M (62".547301((M N 632.47!,1D,M (N 632.47!,1D,M (5 632.47!,1D,M (`'7'7*``+V*a`*` '7'7'7'7ɋ*``+**``+V*a`**a`*rZ/29&''%$%$'&'>7$767&'&?6767"&'%76767&'&&7>6'&'&'%$''&'&"'&7676765&7676%&2'&''&''&'%$%'&'&#"'&7676765&7676$%37>7627>765&'&'&'&767&RT) DZRw@\;zT<5%6'&&'&732%$76'&$&767676'&&a7:;# [@!p@&HmM9%|{/ + p?.% ~0{'F pܜO 6CkFcOZ]6U$'1676$%&'&676#767$'&76&'&'&LS,IN N[% :09< ./ PzmM"Lϊ, AfY -_Iz^LCvv $//$>;2,b0#q:<4>6$76'&'.767676'&"'&767$&6'&'&K5!.~#@&HmM9%|{/ . p - 9#*'j'/ D  pܜO 6CkFc OZbl&&!y=l4%]oTx*$)5667656'&?6'&767'&766'&'&76cL\;x1> HZ.Cz'C. J#GUop Z:ɗ@V@OoQ!l,O `@H#_Hi6L hjaN;,l|$b";E6'&67667$%67&'&'&7676767"#&76&'&'&tI) :J 2ds -` ,8J'. l i4T::. $//$F@^F@54 Pitw:$ >77676'&'&%&"'&767&767667>''&32*):C0[4,BP&C M$e,TKe 9y&0k$)Ć RD: 1*Љ&&! Kl\!h-yP9,8:uu~hU$'1676$%&'&676#767$'&76&'&'&LS,IN N[% :09< ./ PzmM"Lϊ, AfY -_Iz^LCvv $//$>;2,b0#U$'1676$%&'&676#767$'&76&'&'&LS,IN N[% :09< ./ PzmM"Lϊ, AfY -_Iz^LCvv $//$>;2,b0#lc72?6'&'&'6'&'&7ca@Q !d8b ""ȔL  8 $7K"72?6'&'&'6'&'&7&ca@Q !d8b ""L  8 $7K" 7N72?6'&'&'6'&'&7'&?62?6&'&'6'&''&'&?6ca@Q !d8b$#:_c ?Eb<S$!d8b!?8 ""cpL  8 $7$K!U =L e ) , 0 $7$&YK",Fl' ?6'&'&'6'&'&7ca@Q !d8b ""L 8 $7K"TS72?6'&'6'&'&7ca LL !^>b ""(L ,-  !:K"A72?6'&'&'6'&'&7oca@Q !^>b%"ΔL  8 !:#K"/872?6'&'&'6'&'&7fca@Q !^>b%"`L  8 !:#K"$"q72?6'&'&'6'&'&7Pca@Q !d8b ""FL  8 $7K"       b$         0 4 J 4  p H P  l  2~ Copyright (c) 2010-2015, Khaled Hosny <khaledhosny@eglug.org>. Portions copyright (c) 2010, Sebastian Kosch <sebastian@aldusleaf.org>.AmiriRegularSorts Mill Tools 2.1.0_alpha1 : Amiri : 21-9-2015Version 000.108 Amiri-RegularKhaled HosnyAmiri is a classical Arabic typeface in Naskh style for typesetting books and other running text. Its design is a revival of the beautiful typeface pioneered in early 20th century by Bulaq Press in Cairo, also known as Amiria Press, after which the font is named.http://www.amirifont.orghttp://www.khaledhosny.orgThis Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software.http://scripts.sil.org/OFL5PAR .NDRBN .NHR/M CNEP+RDP qD4QNER3P %P0R (N2N:N*R JN-R8NIp qD6QN,PJ9O (PGN' FN,RDN'!N EP9R7N'1P.-BHB 'DF41 2010-2015 .'D/ -3FJ <khaledhosny@eglug.org>.9'/J%5/'1) 000k108.'D/ -3FJ'D.7 'D#EJ1J GH %-J'! D.7 'DF3. 'D0J 5OEE H'3*./E DDE1) 'D#HDJ AJ E(79) (HD'B ('DB'G1) )*91A #J6' ('DE7(9) 'D#EJ1J)( AJ #H'&D 'DB1F 'D941JF. *EJ2 'D.7 'D#EJ1J F'(9 EF EH2'F*G 'DE*EJ2) (JF ,E'D .7 'DF3. HE*7D('* 'D7('9) 'D1'BJ). 'D.7 'D#EJ1J EH,G #C+1 D7('9) 'DF5H5 'D7HJD) H'DC*(.f[  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuni00ADuni00B2uni00B3uni00B9AmacronamacronAbreveabreveAogonekaogonek Ccircumflex ccircumflex Cdotaccent cdotaccentDcarondcaronDcroatEmacronemacronEbreveebreve Edotaccent edotaccentEogonekeogonekEcaronecaron Gcircumflex gcircumflex Gdotaccent gdotaccentuni0122uni0123 Hcircumflex hcircumflexHbarhbarItildeitildeImacronimacronIbreveibreveIogonekiogonekIJij Jcircumflex jcircumflexuni0136uni0137 kgreenlandicLacutelacuteuni013Buni013CLcaronlcaronLdotldotNacutenacuteuni0145uni0146Ncaronncaron napostropheEngengOmacronomacronObreveobreve Ohungarumlaut ohungarumlautRacuteracuteuni0156uni0157RcaronrcaronSacutesacute Scircumflex scircumflexuni0162uni0163TcarontcaronTbartbarUtildeutildeUmacronumacronUbreveubreveUringuring Uhungarumlaut uhungarumlautUogonekuogonek Wcircumflex wcircumflex Ycircumflex ycircumflexZacutezacute Zdotaccent zdotaccentlongsGcarongcaronuni0237uni02BBuni02BCuni02BEuni02BF gravecomb acutecombuni0302 tildecombuni0304uni0305uni0306uni0307uni0308uni030Auni030Buni030Cuni0312uni0315 dotbelowcombuni0326uni0327uni0328uni032Euni0331uni0600uni0601uni0602uni0603uni0606uni0607uni0608uni0609uni060Auni060Buni060Cuni060Duni060Euni060Funi0610uni0611uni0612uni0613uni0614uni0615uni0616uni0617uni0618uni0619uni061Auni061Buni061Euni061Funi0620uni0621uni0622uni0623uni0624uni0625uni0626uni0627uni0628uni0629uni062Auni062Buni062Cuni062Duni062Euni062Funi0630uni0631uni0632uni0633uni0634uni0635uni0636uni0637uni0638uni0639uni063Auni063Buni063Cuni063Duni063Euni063Funi0640uni0641uni0642uni0643uni0644uni0645uni0646uni0647uni0648uni0649uni064Auni064Buni064Cuni064Duni064Euni064Funi0650uni0651uni0652uni0653uni0654uni0655uni0656uni0657uni0658uni0659uni065Auni065Buni065Cuni065Duni065Euni065Funi0660uni0661uni0662uni0663uni0664uni0665uni0666uni0667uni0668uni0669uni066Auni066Buni066Cuni066Duni066Euni066Funi0670uni0671uni0672uni0673uni0674uni0675uni0676uni0677uni0678uni0679uni067Auni067Buni067Cuni067Duni067Euni067Funi0680uni0681uni0682uni0683uni0684uni0685uni0686uni0687uni0688uni0689uni068Auni068Buni068Cuni068Duni068Euni068Funi0690uni0691uni0692uni0693uni0694uni0695uni0696uni0697uni0698uni0699uni069Auni069Buni069Cuni069Duni069Euni069Funi06A0uni06A1uni06A2uni06A3uni06A4uni06A5uni06A6uni06A7uni06A8uni06A9uni06AAuni06ABuni06ACuni06ADuni06AEuni06AFuni06B0uni06B1uni06B2uni06B3uni06B4uni06B5uni06B6uni06B7uni06B8uni06B9uni06BAuni06BBuni06BCuni06BDuni06BEuni06BFuni06C0uni06C1uni06C2uni06C3uni06C4uni06C5uni06C6uni06C7uni06C8uni06C9uni06CAuni06CBuni06CCuni06CDuni06CEuni06CFuni06D0uni06D1uni06D2uni06D3uni06D4uni06D5uni06D6uni06D7uni06D8uni06D9uni06DAuni06DBuni06DCuni06DDuni06DEuni06DFuni06E0uni06E1uni06E2uni06E3uni06E4uni06E5uni06E6uni06E7uni06E8uni06E9uni06EAuni06EBuni06ECuni06EDuni06EEuni06EFuni06F0uni06F1uni06F2uni06F3uni06F4uni06F5uni06F6uni06F7uni06F8uni06F9uni06FAuni06FBuni06FCuni06FDuni06FEuni06FFuni0750uni0751uni0752uni0753uni0754uni0755uni0756uni0757uni0758uni0759uni075Auni075Buni075Cuni075Duni075Euni075Funi0760uni0761uni0762uni0763uni0764uni0765uni0766uni0767uni0768uni0769uni076Auni076Buni076Cuni076Duni076Euni076Funi0770uni0771uni0772uni0773uni0774uni0775uni0776uni0777uni0778uni0779uni077Auni077Buni077Cuni077Duni077Euni077Funi08A0uni08ACuni08E4uni08E5uni08E6uni08E7uni08E8uni08E9uni08EAuni08EBuni08ECuni08EDuni08EEuni08EFuni08F0uni08F1uni08F2uni08F3uni08F4uni08F5uni08F6uni08F7uni08F8uni08F9uni08FAuni08FBuni08FCuni08FDuni08FEuni1E02uni1E03uni1E0Auni1E0Buni1E0Cuni1E0Duni1E0Euni1E0Funi1E10uni1E11uni1E1Euni1E1Funi1E24uni1E25uni1E28uni1E29uni1E2Auni1E2Buni1E40uni1E41uni1E56uni1E57uni1E60uni1E61uni1E62uni1E63uni1E6Auni1E6Buni1E6Cuni1E6Duni1E6Euni1E6FWgravewgraveWacutewacute Wdieresis wdieresisuni1E92uni1E93uni1E96uni1E97Ygraveygraveuni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni200Buni200Cuni200Duni200Euni200Funi2010uni2011 figuredashuni2015 quotereverseduni201Fonedotenleaderuni2028uni2029uni202Auni202Buni202Cuni202Duni202Euni202Fminuteseconduni2038uni203Euni2042Eurouni2213uni25CCf_ff_if_lf_f_if_f_luniFB50uniFB51uniFB52uniFB53uniFB54uniFB55uniFB56uniFB57uniFB58uniFB59uniFB5AuniFB5BuniFB5CuniFB5DuniFB5EuniFB5FuniFB60uniFB61uniFB62uniFB63uniFB64uniFB65uniFB66uniFB67uniFB68uniFB69uniFB6AuniFB6BuniFB6CuniFB6DuniFB6EuniFB6FuniFB70uniFB71uniFB72uniFB73uniFB74uniFB75uniFB76uniFB77uniFB78uniFB79uniFB7AuniFB7BuniFB7CuniFB7DuniFB7EuniFB7FuniFB80uniFB81uniFB82uniFB83uniFB84uniFB85uniFB86uniFB87uniFB88uniFB89uniFB8AuniFB8BuniFB8CuniFB8DuniFB8EuniFB8FuniFB90uniFB91uniFB92uniFB93uniFB94uniFB95uniFB96uniFB97uniFB98uniFB99uniFB9AuniFB9BuniFB9CuniFB9DuniFB9EuniFB9FuniFBA0uniFBA1uniFBA2uniFBA3uniFBA4uniFBA5uniFBA6uniFBA7uniFBA8uniFBA9uniFBAAuniFBABuniFBACuniFBADuniFBAEuniFBAFuniFBB0uniFBB1uniFBB2uniFBB3uniFBB4uniFBB5uniFBB6uniFBB7uniFBB8uniFBB9uniFBBAuniFBBBuniFBBCuniFBBDuniFBBEuniFBBFuniFBC0uniFBC1uniFBD3uniFBD4uniFBD5uniFBD6uniFBD7uniFBD8uniFBD9uniFBDAuniFBDBuniFBDCuniFBDDuniFBDEuniFBDFuniFBE0uniFBE1uniFBE2uniFBE3uniFBE4uniFBE5uniFBE6uniFBE7uniFBE8uniFBE9uniFBEAuniFBEBuniFBECuniFBEDuniFBEEuniFBEFuniFBF0uniFBF1uniFBF2uniFBF3uniFBF4uniFBF5uniFBF6uniFBF7uniFBF8uniFBF9uniFBFAuniFBFBuniFBFCuniFBFDuniFBFEuniFBFFuniFC00uniFC01uniFC02uniFC03uniFC04uniFC05uniFC06uniFC07uniFC08uniFC09uniFC0AuniFC0BuniFC0CuniFC0DuniFC0EuniFC0FuniFC10uniFC11uniFC12uniFC13uniFC14uniFC15uniFC16uniFC17uniFC18uniFC19uniFC1AuniFC1BuniFC1CuniFC1DuniFC1EuniFC1FuniFC20uniFC21uniFC22uniFC23uniFC24uniFC25uniFC26uniFC27uniFC28uniFC29uniFC2AuniFC2BuniFC2CuniFC2DuniFC2EuniFC2FuniFC30uniFC31uniFC32uniFC33uniFC34uniFC35uniFC36uniFC37uniFC38uniFC39uniFC3AuniFC3BuniFC3CuniFC3DuniFC3EuniFC3FuniFC40uniFC41uniFC42uniFC43uniFC44uniFC45uniFC46uniFC47uniFC48uniFC49uniFC4AuniFC4BuniFC4CuniFC4DuniFC4EuniFC4FuniFC50uniFC51uniFC52uniFC53uniFC54uniFC55uniFC56uniFC57uniFC58uniFC59uniFC5AuniFC5BuniFC5CuniFC5DuniFC5EuniFC5FuniFC60uniFC61uniFC62uniFC63uniFC64uniFC65uniFC66uniFC67uniFC68uniFC69uniFC6AuniFC6BuniFC6CuniFC6DuniFC6EuniFC6FuniFC70uniFC71uniFC72uniFC73uniFC74uniFC75uniFC76uniFC77uniFC78uniFC79uniFC7AuniFC7BuniFC7CuniFC7DuniFC7EuniFC7FuniFC80uniFC81uniFC82uniFC83uniFC84uniFC85uniFC86uniFC87uniFC88uniFC89uniFC8AuniFC8BuniFC8CuniFC8DuniFC8EuniFC8FuniFC90uniFC91uniFC92uniFC93uniFC94uniFC95uniFC96uniFC97uniFC98uniFC99uniFC9AuniFC9BuniFC9CuniFC9DuniFC9EuniFC9FuniFCA0uniFCA1uniFCA2uniFCA3uniFCA4uniFCA5uniFCA6uniFCA7uniFCA8uniFCA9uniFCAAuniFCABuniFCACuniFCADuniFCAEuniFCAFuniFCB0uniFCB1uniFCB2uniFCB3uniFCB4uniFCB5uniFCB6uniFCB7uniFCB8uniFCB9uniFCBAuniFCBBuniFCBCuniFCBDuniFCBEuniFCBFuniFCC0uniFCC1uniFCC2uniFCC3uniFCC4uniFCC5uniFCC6uniFCC7uniFCC8uniFCC9uniFCCAuniFCCBuniFCCCuniFCCDuniFCCEuniFCCFuniFCD0uniFCD1uniFCD2uniFCD3uniFCD4uniFCD5uniFCD6uniFCD7uniFCD8uniFCD9uniFCDAuniFCDBuniFCDCuniFCDDuniFCDEuniFCDFuniFCE0uniFCE1uniFCE2uniFCE3uniFCE4uniFCE5uniFCE6uniFCE7uniFCE8uniFCE9uniFCEAuniFCEBuniFCECuniFCEDuniFCEEuniFCEFuniFCF0uniFCF1uniFCF2uniFCF3uniFCF4uniFCF5uniFCF6uniFCF7uniFCF8uniFCF9uniFCFAuniFCFBuniFCFCuniFCFDuniFCFEuniFCFFuniFD00uniFD01uniFD02uniFD03uniFD04uniFD05uniFD06uniFD07uniFD08uniFD09uniFD0AuniFD0BuniFD0CuniFD0DuniFD0EuniFD0FuniFD10uniFD11uniFD12uniFD13uniFD14uniFD15uniFD16uniFD17uniFD18uniFD19uniFD1AuniFD1BuniFD1CuniFD1DuniFD1EuniFD1FuniFD20uniFD21uniFD22uniFD23uniFD24uniFD25uniFD26uniFD27uniFD28uniFD29uniFD2AuniFD2BuniFD2CuniFD2DuniFD2EuniFD2FuniFD30uniFD31uniFD32uniFD33uniFD34uniFD35uniFD36uniFD37uniFD38uniFD39uniFD3AuniFD3BuniFD3CuniFD3DuniFD3EuniFD3FuniFD50uniFD51uniFD52uniFD53uniFD54uniFD55uniFD56uniFD57uniFD58uniFD59uniFD5AuniFD5BuniFD5CuniFD5DuniFD5EuniFD5FuniFD60uniFD61uniFD62uniFD63uniFD64uniFD65uniFD66uniFD67uniFD68uniFD69uniFD6AuniFD6BuniFD6CuniFD6DuniFD6EuniFD6FuniFD70uniFD71uniFD72uniFD73uniFD74uniFD75uniFD76uniFD77uniFD78uniFD79uniFD7AuniFD7BuniFD7CuniFD7DuniFD7EuniFD7FuniFD80uniFD81uniFD82uniFD83uniFD84uniFD85uniFD86uniFD87uniFD88uniFD89uniFD8AuniFD8BuniFD8CuniFD8DuniFD8EuniFD8FuniFD92uniFD93uniFD94uniFD95uniFD96uniFD97uniFD98uniFD99uniFD9AuniFD9BuniFD9CuniFD9DuniFD9EuniFD9FuniFDA0uniFDA1uniFDA2uniFDA3uniFDA4uniFDA5uniFDA6uniFDA7uniFDA8uniFDA9uniFDAAuniFDABuniFDACuniFDADuniFDAEuniFDAFuniFDB0uniFDB1uniFDB2uniFDB3uniFDB4uniFDB5uniFDB6uniFDB7uniFDB8uniFDB9uniFDBAuniFDBBuniFDBCuniFDBDuniFDBEuniFDBFuniFDC0uniFDC1uniFDC2uniFDC3uniFDC4uniFDC5uniFDC6uniFDC7uniFDF0uniFDF1uniFDF2uniFDF3uniFDF4uniFDF5uniFDF6uniFDF7uniFDF8uniFDF9uniFDFAuniFDFBuniFDFCuniFDFDuniFE70uniFE71uniFE72uniFE74uniFE76uniFE77uniFE78uniFE79uniFE7AuniFE7BuniFE7CuniFE7DuniFE7EuniFE7FuniFE80uniFE81uniFE82uniFE83uniFE84uniFE85uniFE86uniFE87uniFE88uniFE89uniFE8AuniFE8BuniFE8CuniFE8DuniFE8EuniFE8FuniFE90uniFE91uniFE92uniFE93uniFE94uniFE95uniFE96uniFE97uniFE98uniFE99uniFE9AuniFE9BuniFE9CuniFE9DuniFE9EuniFE9FuniFEA0uniFEA1uniFEA2uniFEA3uniFEA4uniFEA5uniFEA6uniFEA7uniFEA8uniFEA9uniFEAAuniFEABuniFEACuniFEADuniFEAEuniFEAFuniFEB0uniFEB1uniFEB2uniFEB3uniFEB4uniFEB5uniFEB6uniFEB7uniFEB8uniFEB9uniFEBAuniFEBBuniFEBCuniFEBDuniFEBEuniFEBFuniFEC0uniFEC1uniFEC2uniFEC3uniFEC4uniFEC5uniFEC6uniFEC7uniFEC8uniFEC9uniFECAuniFECBuniFECCuniFECDuniFECEuniFECFuniFED0uniFED1uniFED2uniFED3uniFED4uniFED5uniFED6uniFED7uniFED8uniFED9uniFEDAuniFEDBuniFEDCuniFEDDuniFEDEuniFEDFuniFEE0uniFEE1uniFEE2uniFEE3uniFEE4uniFEE5uniFEE6uniFEE7uniFEE8uniFEE9uniFEEAuniFEEBuniFEECuniFEEDuniFEEEuniFEEFuniFEF0uniFEF1uniFEF2uniFEF3uniFEF4uniFEF5uniFEF6uniFEF7uniFEF8uniFEF9uniFEFAuniFEFBuniFEFCu1EE00u1EE01u1EE02u1EE03u1EE05u1EE06u1EE07u1EE08u1EE09u1EE0Au1EE0Bu1EE0Cu1EE0Du1EE0Eu1EE0Fu1EE10u1EE11u1EE12u1EE13u1EE14u1EE15u1EE16u1EE17u1EE18u1EE19u1EE1Au1EE1Bu1EE1Cu1EE1Du1EE1Eu1EE1Fu1EE21u1EE22u1EE24u1EE27u1EE29u1EE2Au1EE2Bu1EE2Cu1EE2Du1EE2Eu1EE2Fu1EE30u1EE31u1EE32u1EE34u1EE35u1EE36u1EE37u1EE39u1EE3Bu1EE42u1EE47u1EE49u1EE4Bu1EE4Du1EE4Eu1EE4Fu1EE51u1EE52u1EE54u1EE57u1EE59u1EE5Bu1EE5Du1EE5Fu1EE61u1EE62u1EE64u1EE67u1EE68u1EE69u1EE6Au1EE6Cu1EE6Du1EE6Eu1EE6Fu1EE70u1EE71u1EE72u1EE74u1EE75u1EE76u1EE77u1EE79u1EE7Au1EE7Bu1EE7Cu1EE7Eu1EE80u1EE81u1EE82u1EE83u1EE84u1EE85u1EE86u1EE87u1EE88u1EE89u1EE8Bu1EE8Cu1EE8Du1EE8Eu1EE8Fu1EE90u1EE91u1EE92u1EE93u1EE94u1EE95u1EE96u1EE97u1EE98u1EE99u1EE9Au1EE9Bu1EEA1u1EEA2u1EEA3u1EEA5u1EEA6u1EEA7u1EEA8u1EEA9u1EEABu1EEACu1EEADu1EEAEu1EEAFu1EEB0u1EEB1u1EEB2u1EEB3u1EEB4u1EEB5u1EEB6u1EEB7u1EEB8u1EEB9u1EEBAu1EEBB aAlf.fina.alt aAlf.fina aAlf.isol aAyn.fina aAyn.init aAyn.isol aAyn.medi aBaa.fina aBaa.init aBaa.isol aBaa.medi aDal.fina aDal.isol aFaa.fina aFaa.init aFaa.isol aFaa.medi aHaa.fina aHaa.init aHaa.isol aHaa.medi aHeh.fina aHeh.init aHeh.isol aHeh.medi aKaf.fina aKaf.init.alt aKaf.init aKaf.isol aKaf.medi aLam.fina aLam.init aLam.isol aLam.medi aMem.fina.alt aMem.fina aMem.init aMem.isol aMem.medi aNon.fina.alt aNon.fina aNon.isol.alt aNon.isol aQaf.fina aQaf.isolaRaa.fina.alt2 aRaa.fina aRaa.isol aSad.fina aSad.init aSad.isol aSad.medi aSen.fina aSen.init aSen.isol aSen.medi aTaa.fina aTaa.init aTaa.isol aTaa.medi aWaw.fina aWaw.isol aYaa.fina aYaa.isolaLam.medi_LamMemFinaaMem.fina_LamMemFinaaBaa.init_BaaRaaIsolaRaa.fina_BaaRaaIsolaLam.medi_LamWawFinaaWaw.fina_LamWawFinaaLam.init_LamHaaInitaFaa.medi_FaaYaaFinaaYaa.fina_FaaYaaFinaaLam.init_LamLamHaaInitaLam.medi_LamLamHaaInitaHaa.medi_LamLamHaaInitaBaa.medi_BaaMemFinaaMem.fina_BaaMemFinaaSad.init_AboveHaaaLam.init_LamBaaMemInitaBaa.medi_LamBaaMemInitaMem.medi_LamBaaMemInitaBaa.init_BaaDalaDal.fina_BaaDalaBaa.init_BaaMemHaaInitaMem.medi_BaaMemHaaInitaHaa.medi_BaaMemHaaInitaBaa.init_BaaBaaYaaaBaa.medi_BaaBaaYaaaYaa.fina_BaaBaaYaaaLam.medi_LamYaaFinaaYaa.fina_LamYaaFinaaKaf.init_KafBaaInitaBaa.medi_KafBaaInitaLam.init_LamMemInitaMem.medi_LamMemInitaLam.init_LamAlfIsolaAlf.fina_LamAlfIsolaLam.init_LamHaaMemInitaHaa.medi_LamHaaMemInitaMem.medi_LamHaaMemInitaBaa.medi_BaaBaaInitaAyn.medi_AynYaaFinaaMem.init_MemRaaIsolaRaa.fina_MemRaaIsolaFaa.init_FaaHaaInitaHaa.medi_FaaHaaInitaHaa.init_HaaHaaInitaLam.medi_LamQafFinaaQaf.fina_LamQafFinaaSen.init_AboveHaaaMem.init_MemHaaInitaBaa.init_BaaNonIsolaNon.fina_BaaNonIsolaKaf.medi_KafMemFinaaMem.fina_KafMemFinaaBaa.init_BaaSenInitaSen.medi_BaaSenInitaBaa.medi_BaaRaaFinaaRaa.fina_BaaRaaFinaaKaf.medi_KafRaaFinaaRaa.fina_KafRaaFinaaLam.init_LamHehInitaHeh.medi_LamHehInitaMem.init_MemHaaMemInitaHaa.medi_MemHaaMemInitaBaa.init_BaaMemInitaMem.medi_BaaMemInitaSen.init_SenHaaInitaKaf.init_KafRaaIsolaRaa.fina_KafRaaIsolaAyn.init_AynHaaInitaKaf.medi_KafYaaFinaaYaa.fina_KafYaaFinaaLam.init_LamMemHaaInitaMem.medi_LamMemHaaInitaHaa.medi_LamMemHaaInitaLam.medi_LamAlfFinaaAlf.fina_LamAlfFinaaLam.medi_LamMemMediaMem.medi_LamMemMediuni0644.init_Lellahuni0644.medi_Lellahuni0647.fina_LellahaBaa.init_BaaBaaHaaInitaBaa.medi_BaaBaaHaaInitaHaa.medi_BaaBaaHaaInitaBaa.medi_SenBaaMemInitaMem.medi_SenBaaMemInitaBaa.init_BaaBaaIsolaBaa.fina_BaaBaaIsolaBaa.init_BaaBaaMemInitaBaa.medi_BaaBaaMemInitaMem.medi_BaaBaaMemInitaKaf.medi_KafBaaMediaBaa.medi_KafBaaMediaBaa.medi_BaaNonFinaaNon.fina_BaaNonFinaaHaa.init_HaaRaaIsolaRaa.fina_HaaRaaIsolaHeh.init_HehHaaInitaLam.init_LamRaaIsolaRaa.fina_LamRaaIsolaSad.init_SadHaaInitaHaa.medi_SadHaaInitaBaa.medi_BaaYaaFinaaYaa.fina_BaaYaaFinaaBaa.init_BaaSenAltInitaSen.medi_BaaSenAltInitaRaa.fina_PostToothaYaa.fina_PostToothaBaa.init_AboveHaaaBaa.init_BaaHaaInitaBaa.init_BaaHaaMemInitaHaa.medi_BaaHaaMemInitaHaa.fina_AboveHaaIsolaLam.init_LamHaaHaaInitaHaa.medi_1LamHaaHaaInitaHaa.medi_2LamHaaHaaInitaAyn.init_FinjaniaHaa.init_FinjaniaHaa.medi_FinjaniaSen.init_PreYaaaSen.medi_PreYaaaSad.init_PreYaaaSad.medi_PreYaaaBaa.init_HighDot.a TwoDots.a ThreeDots.aDot.b TwoDots.b ThreeDots.b aKaf.isol.alt aKaf.medi.alt hamza.kafdash.kaf aKaf.fina.alt iThreeDots.a iThreeDots.bdash.gafaBaa.medi_Highsmalltaa.above vTwoDots.a vTwoDots.b ring.belowaSen.fina_BaaSenaMem.fina_PostToothtatwil.one_LamKafdot.alt1 dash.gaf.alt2 dash.gaf.alt1aBaa.init_WideaHaa.medi_HaaHaaInitaHaa.medi_AynHaaInitaMem.medi_LamMemInitTatweelaHeh.init_AboveHaaaHaa.init_AboveHaaaAyn.init_AboveHaaaHaa.fina_AboveHaaIsol2aMem.init_AboveHaaaKaf.init_AboveHaa FourDots.a FourDots.b hThreeDots.a hThreeDots.b aYaa.tailhamza.above.wavy smallv.belowsmallv.below.invertedsmalltaa.belowtwostrokes.below hamza.wasl period.ara uni064B.small uni064E.small uni08F1.small uni064F.smalluni0652.small2uni0650.small2 damma.markhamzadamma.mark aAlf.daggerdot.1dot.2 dash.kaf_gafDot.b.l TwoDots.b.l ThreeDots.b.liThreeDots.b.l vTwoDots.b.l FourDots.b.lhThreeDots.b.lsmallv.below.inverted.lowstroke aTwo.above aThree.above aFour.above aFour.below uni06F4.urd uni06F6.urd uni06F7.urdaKaf.init_KafLamaKaf.fina_KafKafFinaaLam.medi_KafLamaLam.medi_KafLamMemMediaKaf.medi_KafLamaLam.medi_KafLamHehIsolaLam.medi_KafLamYaaaLam.medi_KafLamAlfaLam.fina_KafLamaAlf.fina_KafAlfaKaf.init_KafMemAlfaKaf.medi_KafMemAlfaMem.medi_KafMemAlfaLam.medi_KafMemLamaLam.fina_KafMemLamaAlf.fina_KafMemAlfat.araaKaf.init_KafHehaKaf.medi_KafHehaHeh.fina_KafHehaDal.fina_KafDalaLam.init_LamHehaLam.medi_LamHehaHeh.fina_LamHehaDal.fina_LamDalaKaf.medi_KafMemMediaKaf.init_KafMemInitaAyn.init_AynMemInitaFaa.init_FaaMemInitaHaa.init_HaaMemInitaHeh.init_HehMemInitaMem.medi_KafMemMediaSen.init_SenMemInitaSad.init_SadMemInitaMem.init_MemMemInitaMem.medi_SenMemInitaKaf.init_KafYaaIsolaBaa.init_BaaYaaIsolaHaa.init_HaaYaaIsolaMem.init_MemYaaIsolaFaa.init_FaaYaaIsolaAyn.init_AynYaaIsolaLam.init_LamYaaIsolaHeh.init_HehYaaIsolaYaa.fina_KafYaaIsolaKaf.init_KafMemIsolaLam.init_LamMemIsolaBaa.init_BaaMemIsolaMem.fina_KafMemIsolaMem.medi_MemAlfFinaaBaa.medi_BaaMemAlfFinaaMem.medi_BaaMemAlfFinaaMem.medi_AlfPostToothaAlf.fina_MemAlfFinaaBaa.init_BaaHehInitaBaa.medi_BaaHehMediaHeh.medi_BaaHehMediaHeh.medi_PostToothaLam.medi_KafLamMemFinaaLam.init_LamLamInitaLam.medi_LamLamInitaLam.medi_LamLamAlfIsolaKaf.fina_LamKafIsolaLam.fina_LamLamIsoluni0644.medi_FaLellahaLam.medi_LamLamMediaLam.medi_LamLamAlefFinaaLam.medi_LamLamMedi2aKaf.fina_LamKafFinaaLam.fina_LamLamFinaaLam.medi_LamLamMemInitaLam.medi_LamLamHehIsolaLam.medi_LamLamYaaIsolaLam.medi_LamLamMemMediaLam.medi_LamLamHehFinaaLam.medi_LamLamYaaFina uni0625.fina uni0627.fina uni0774.fina uni0773.fina uni0623.fina uni0622.fina uni0675.fina uni0672.fina uni0673.fina uni0671.fina uni06FC.fina uni063A.fina uni075E.fina uni075D.fina uni075F.fina uni06A0.fina uni0639.fina uni06FC.init uni063A.init uni075E.init uni075D.init uni075F.init uni06A0.init uni0639.init uni06FC.medi uni063A.medi uni075E.medi uni075D.medi uni075F.medi uni06A0.medi uni0639.medi uni0751.fina uni0750.fina uni0753.fina uni0680.fina uni062A.fina uni0754.fina uni062B.fina uni0679.fina uni067C.fina uni0756.fina uni0752.fina uni066E.fina uni067F.fina uni0755.fina uni067D.fina uni067E.fina uni067B.fina uni0628.fina uni067A.fina uni0777.init uni0680.init uni0776.init uni06BC.init uni0750.init uni0756.init uni0768.init uni06CE.init uni0775.init uni06BD.init uni0626.init uni066E.init uni0620.init uni064A.init uni06BB.init uni067F.init uni0755.init uni067D.init uni067E.init uni067B.init uni0628.init uni067A.init uni0751.init uni0646.init uni0753.init uni0752.init uni062A.init uni0678.init uni063D.init uni062B.init uni0679.init uni06B9.init uni0769.init uni0649.init uni067C.init uni0754.init uni06D1.init uni06D0.init uni06BA.init uni06CC.init uni0767.init uni0777.medi uni0680.medi uni0776.medi uni06BC.medi uni0750.medi uni0756.medi uni0768.medi uni06CE.medi uni0775.medi uni06BD.medi uni0626.medi uni066E.medi uni0620.medi uni064A.medi uni06BB.medi uni067F.medi uni0755.medi uni067D.medi uni067E.medi uni067B.medi uni0628.medi uni067A.medi uni0751.medi uni0646.medi uni0753.medi uni0752.medi uni062A.medi uni0678.medi uni063D.medi uni062B.medi uni0679.medi uni06B9.medi uni0769.medi uni0649.medi uni067C.medi uni0754.medi uni06D1.medi uni06D0.medi uni06BA.medi uni06CC.medi uni0767.medi uni0690.fina uni06EE.fina uni0689.fina uni0688.fina uni075A.fina uni0630.fina uni062F.fina uni0759.fina uni068C.fina uni068B.fina uni068A.fina uni068F.fina uni068E.fina uni068D.fina uni0760.fina uni0761.fina uni0641.fina uni06A1.fina uni06A2.fina uni06A3.fina uni06A4.fina uni06A5.fina uni06A6.fina uni066F.init uni0761.init uni0760.init uni0642.init uni0641.init uni06A8.init uni06A1.init uni06A2.init uni06A3.init uni06A4.init uni06A5.init uni06A6.init uni06A7.init uni066F.medi uni0761.medi uni0760.medi uni0642.medi uni0641.medi uni06A8.medi uni06A1.medi uni06A2.medi uni06A3.medi uni06A4.medi uni06A5.medi uni06A6.medi uni06A7.medi uni062E.fina uni062D.fina uni0681.fina uni0687.fina uni0685.fina uni062C.fina uni0682.fina uni0757.fina uni0684.fina uni076F.fina uni076E.fina uni0683.fina uni06BF.fina uni077C.fina uni0758.fina uni0772.fina uni0686.fina uni062E.init uni062D.init uni0681.init uni0687.init uni0685.init uni062C.init uni0682.init uni0757.init uni0684.init uni076F.init uni076E.init uni0683.init uni06BF.init uni077C.init uni0758.init uni0772.init uni0686.init uni062E.medi uni062D.medi uni0681.medi uni0687.medi uni0685.medi uni062C.medi uni0682.medi uni0757.medi uni0684.medi uni076F.medi uni076E.medi uni0683.medi uni06BF.medi uni077C.medi uni0758.medi uni0772.medi uni0686.medi uni0647.fina uni06C1.fina uni06C3.fina uni06D5.fina uni0629.fina uni0647.init uni06C1.init uni0647.medi uni06C1.medi uni063B.fina uni063C.fina uni077F.fina uni0764.fina uni0643.fina uni06B0.fina uni06B3.fina uni06B2.fina uni06AB.fina uni06AC.fina uni06AD.fina uni06AE.fina uni06AF.fina uni06A9.fina uni06B4.fina uni0763.fina uni0762.fina uni06B1.fina uni063B.init uni063C.init uni077F.init uni0764.init uni0643.init uni06B0.init uni06B3.init uni06B2.init uni06AB.init uni06AC.init uni06AD.init uni06AE.init uni06AF.init uni06A9.init uni06B4.init uni0763.init uni0762.init uni06B1.init uni063B.medi uni063C.medi uni077F.medi uni0764.medi uni0643.medi uni06B0.medi uni06B3.medi uni06B2.medi uni06AB.medi uni06AC.medi uni06AD.medi uni06AE.medi uni06AF.medi uni06A9.medi uni06B4.medi uni0763.medi uni0762.medi uni06B1.medi uni06B5.fina uni06B7.fina uni0644.fina uni06B8.fina uni06B6.fina uni076A.fina uni06B5.init uni06B7.init uni0644.init uni06B8.init uni06B6.init uni076A.init uni06B5.medi uni06B7.medi uni0644.medi uni06B8.medi uni06B6.medi uni076A.medi uni0765.fina uni0645.fina uni0766.fina uni0765.init uni0645.init uni0766.init uni0765.medi uni0645.medi uni0766.medi uni0646.fina uni0767.fina uni06BA.fina uni06BC.fina uni06BB.fina uni0768.fina uni06B9.fina uni0769.fina uni06BD.fina uni06A8.fina uni06A7.fina uni0642.fina uni066F.fina uni0691.fina uni0692.fina uni0693.fina uni0694.fina uni0695.fina uni0696.fina uni0697.fina uni0698.fina uni0699.fina uni075B.fina uni06EF.fina uni0632.fina uni0771.fina uni0631.fina uni076B.fina uni076C.fina uni069D.fina uni06FB.fina uni0636.fina uni069E.fina uni0635.fina uni069D.init uni06FB.init uni0636.init uni069E.init uni0635.init uni069D.medi uni06FB.medi uni0636.medi uni069E.medi uni0635.medi uni06FA.fina uni076D.fina uni0633.fina uni077E.fina uni077D.fina uni0634.fina uni0770.fina uni075C.fina uni069A.fina uni069B.fina uni069C.fina uni06FA.init uni076D.init uni0633.init uni077E.init uni077D.init uni0634.init uni0770.init uni075C.init uni069A.init uni069B.init uni069C.init uni06FA.medi uni076D.medi uni0633.medi uni077E.medi uni077D.medi uni0634.medi uni0770.medi uni075C.medi uni069A.medi uni069B.medi uni069C.medi uni0638.fina uni0637.fina uni069F.fina uni0638.init uni0637.init uni069F.init uni0638.medi uni0637.medi uni069F.medi uni06CB.fina uni0624.fina uni06CA.fina uni06CF.fina uni0778.fina uni06C6.fina uni06C7.fina uni06C4.fina uni06C5.fina uni0676.fina uni0677.fina uni06C8.fina uni06C9.fina uni0779.fina uni0648.fina uni0777.fina uni06D1.fina uni0775.fina uni063F.fina uni0678.fina uni063D.fina uni063E.fina uni06D0.fina uni0649.fina uni0776.fina uni06CD.fina uni06CC.fina uni0626.fina uni0620.fina uni064A.fina uni06CE.finauni06B5.medi_LamMemFinauni06B7.medi_LamMemFinauni0644.medi_LamMemFinauni06B8.medi_LamMemFinauni06B6.medi_LamMemFinauni076A.medi_LamMemFinauni0645.fina_LamMemFinauni0777.init_BaaRaaIsoluni0680.init_BaaRaaIsoluni0776.init_BaaRaaIsoluni06BC.init_BaaRaaIsoluni0750.init_BaaRaaIsoluni0756.init_BaaRaaIsoluni0768.init_BaaRaaIsoluni06CE.init_BaaRaaIsoluni0775.init_BaaRaaIsoluni06BD.init_BaaRaaIsoluni0626.init_BaaRaaIsoluni066E.init_BaaRaaIsoluni0620.init_BaaRaaIsoluni064A.init_BaaRaaIsoluni06BB.init_BaaRaaIsoluni067F.init_BaaRaaIsoluni0755.init_BaaRaaIsoluni067D.init_BaaRaaIsoluni067E.init_BaaRaaIsoluni067B.init_BaaRaaIsoluni0628.init_BaaRaaIsoluni067A.init_BaaRaaIsoluni0751.init_BaaRaaIsoluni0646.init_BaaRaaIsoluni0753.init_BaaRaaIsoluni0752.init_BaaRaaIsoluni062A.init_BaaRaaIsoluni0678.init_BaaRaaIsoluni063D.init_BaaRaaIsoluni062B.init_BaaRaaIsoluni0679.init_BaaRaaIsoluni06B9.init_BaaRaaIsoluni0769.init_BaaRaaIsoluni0649.init_BaaRaaIsoluni067C.init_BaaRaaIsoluni0754.init_BaaRaaIsoluni06D1.init_BaaRaaIsoluni06D0.init_BaaRaaIsoluni06BA.init_BaaRaaIsoluni06CC.init_BaaRaaIsoluni0767.init_BaaRaaIsoluni0691.fina_BaaRaaIsoluni0692.fina_BaaRaaIsoluni0693.fina_BaaRaaIsoluni0694.fina_BaaRaaIsoluni0695.fina_BaaRaaIsoluni0696.fina_BaaRaaIsoluni0697.fina_BaaRaaIsoluni0698.fina_BaaRaaIsoluni0699.fina_BaaRaaIsoluni075B.fina_BaaRaaIsoluni06EF.fina_BaaRaaIsoluni0632.fina_BaaRaaIsoluni0771.fina_BaaRaaIsoluni0631.fina_BaaRaaIsoluni076B.fina_BaaRaaIsoluni076C.fina_BaaRaaIsoluni06B5.medi_LamWawFinauni06B7.medi_LamWawFinauni0644.medi_LamWawFinauni06B8.medi_LamWawFinauni06B6.medi_LamWawFinauni076A.medi_LamWawFinauni06CB.fina_LamWawFinauni0624.fina_LamWawFinauni06CA.fina_LamWawFinauni06CF.fina_LamWawFinauni0778.fina_LamWawFinauni06C6.fina_LamWawFinauni06C7.fina_LamWawFinauni06C4.fina_LamWawFinauni06C5.fina_LamWawFinauni0676.fina_LamWawFinauni0677.fina_LamWawFinauni06C8.fina_LamWawFinauni06C9.fina_LamWawFinauni0779.fina_LamWawFinauni0648.fina_LamWawFinauni06B5.init_LamHaaInituni06B7.init_LamHaaInituni0644.init_LamHaaInituni06B8.init_LamHaaInituni06B6.init_LamHaaInituni076A.init_LamHaaInituni066F.medi_FaaYaaFinauni0761.medi_FaaYaaFinauni0760.medi_FaaYaaFinauni0642.medi_FaaYaaFinauni0641.medi_FaaYaaFinauni06A8.medi_FaaYaaFinauni06A1.medi_FaaYaaFinauni06A2.medi_FaaYaaFinauni06A3.medi_FaaYaaFinauni06A4.medi_FaaYaaFinauni06A5.medi_FaaYaaFinauni06A6.medi_FaaYaaFinauni06A7.medi_FaaYaaFinauni0777.fina_FaaYaaFinauni06D1.fina_FaaYaaFinauni0775.fina_FaaYaaFinauni063F.fina_FaaYaaFinauni0678.fina_FaaYaaFinauni063D.fina_FaaYaaFinauni063E.fina_FaaYaaFinauni06D0.fina_FaaYaaFinauni0649.fina_FaaYaaFinauni0776.fina_FaaYaaFinauni06CD.fina_FaaYaaFinauni06CC.fina_FaaYaaFinauni0626.fina_FaaYaaFinauni0620.fina_FaaYaaFinauni064A.fina_FaaYaaFinauni06CE.fina_FaaYaaFinauni06B5.init_LamLamHaaInituni06B7.init_LamLamHaaInituni0644.init_LamLamHaaInituni06B8.init_LamLamHaaInituni06B6.init_LamLamHaaInituni076A.init_LamLamHaaInituni06B5.medi_LamLamHaaInituni06B7.medi_LamLamHaaInituni0644.medi_LamLamHaaInituni06B8.medi_LamLamHaaInituni06B6.medi_LamLamHaaInituni076A.medi_LamLamHaaInituni062E.medi_LamLamHaaInituni062D.medi_LamLamHaaInituni0681.medi_LamLamHaaInituni0687.medi_LamLamHaaInituni0685.medi_LamLamHaaInituni062C.medi_LamLamHaaInituni0682.medi_LamLamHaaInituni0757.medi_LamLamHaaInituni0684.medi_LamLamHaaInituni076F.medi_LamLamHaaInituni076E.medi_LamLamHaaInituni0683.medi_LamLamHaaInituni06BF.medi_LamLamHaaInituni077C.medi_LamLamHaaInituni0758.medi_LamLamHaaInituni0772.medi_LamLamHaaInituni0686.medi_LamLamHaaInituni0777.medi_BaaMemFinauni0680.medi_BaaMemFinauni0776.medi_BaaMemFinauni06BC.medi_BaaMemFinauni0750.medi_BaaMemFinauni0756.medi_BaaMemFinauni0768.medi_BaaMemFinauni06CE.medi_BaaMemFinauni0775.medi_BaaMemFinauni06BD.medi_BaaMemFinauni0626.medi_BaaMemFinauni066E.medi_BaaMemFinauni0620.medi_BaaMemFinauni064A.medi_BaaMemFinauni06BB.medi_BaaMemFinauni067F.medi_BaaMemFinauni0755.medi_BaaMemFinauni067D.medi_BaaMemFinauni067E.medi_BaaMemFinauni067B.medi_BaaMemFinauni0628.medi_BaaMemFinauni067A.medi_BaaMemFinauni0751.medi_BaaMemFinauni0646.medi_BaaMemFinauni0753.medi_BaaMemFinauni0752.medi_BaaMemFinauni062A.medi_BaaMemFinauni0678.medi_BaaMemFinauni063D.medi_BaaMemFinauni062B.medi_BaaMemFinauni0679.medi_BaaMemFinauni06B9.medi_BaaMemFinauni0769.medi_BaaMemFinauni0649.medi_BaaMemFinauni067C.medi_BaaMemFinauni0754.medi_BaaMemFinauni06D1.medi_BaaMemFinauni06D0.medi_BaaMemFinauni06BA.medi_BaaMemFinauni06CC.medi_BaaMemFinauni0767.medi_BaaMemFinauni0645.fina_BaaMemFinauni069D.init_AboveHaauni06FB.init_AboveHaauni0636.init_AboveHaauni069E.init_AboveHaauni0635.init_AboveHaauni06B5.init_LamBaaMemInituni06B7.init_LamBaaMemInituni0644.init_LamBaaMemInituni06B8.init_LamBaaMemInituni06B6.init_LamBaaMemInituni076A.init_LamBaaMemInituni0777.medi_LamBaaMemInituni0680.medi_LamBaaMemInituni0776.medi_LamBaaMemInituni06BC.medi_LamBaaMemInituni0750.medi_LamBaaMemInituni0756.medi_LamBaaMemInituni0768.medi_LamBaaMemInituni06CE.medi_LamBaaMemInituni0775.medi_LamBaaMemInituni06BD.medi_LamBaaMemInituni0626.medi_LamBaaMemInituni066E.medi_LamBaaMemInituni0620.medi_LamBaaMemInituni064A.medi_LamBaaMemInituni06BB.medi_LamBaaMemInituni067F.medi_LamBaaMemInituni0755.medi_LamBaaMemInituni067D.medi_LamBaaMemInituni067E.medi_LamBaaMemInituni067B.medi_LamBaaMemInituni0628.medi_LamBaaMemInituni067A.medi_LamBaaMemInituni0751.medi_LamBaaMemInituni0646.medi_LamBaaMemInituni0753.medi_LamBaaMemInituni0752.medi_LamBaaMemInituni062A.medi_LamBaaMemInituni0678.medi_LamBaaMemInituni063D.medi_LamBaaMemInituni062B.medi_LamBaaMemInituni0679.medi_LamBaaMemInituni06B9.medi_LamBaaMemInituni0769.medi_LamBaaMemInituni0649.medi_LamBaaMemInituni067C.medi_LamBaaMemInituni0754.medi_LamBaaMemInituni06D1.medi_LamBaaMemInituni06D0.medi_LamBaaMemInituni06BA.medi_LamBaaMemInituni06CC.medi_LamBaaMemInituni0767.medi_LamBaaMemInituni0645.medi_LamBaaMemInituni0777.init_BaaDaluni0680.init_BaaDaluni0776.init_BaaDaluni06BC.init_BaaDaluni0750.init_BaaDaluni0756.init_BaaDaluni0768.init_BaaDaluni06CE.init_BaaDaluni0775.init_BaaDaluni06BD.init_BaaDaluni0626.init_BaaDaluni066E.init_BaaDaluni0620.init_BaaDaluni064A.init_BaaDaluni06BB.init_BaaDaluni067F.init_BaaDaluni0755.init_BaaDaluni067D.init_BaaDaluni067E.init_BaaDaluni067B.init_BaaDaluni0628.init_BaaDaluni067A.init_BaaDaluni0751.init_BaaDaluni0646.init_BaaDaluni0753.init_BaaDaluni0752.init_BaaDaluni062A.init_BaaDaluni0678.init_BaaDaluni063D.init_BaaDaluni062B.init_BaaDaluni0679.init_BaaDaluni06B9.init_BaaDaluni0769.init_BaaDaluni0649.init_BaaDaluni067C.init_BaaDaluni0754.init_BaaDaluni06D1.init_BaaDaluni06D0.init_BaaDaluni06BA.init_BaaDaluni06CC.init_BaaDaluni0767.init_BaaDaluni0690.fina_BaaDaluni06EE.fina_BaaDaluni0689.fina_BaaDaluni0688.fina_BaaDaluni075A.fina_BaaDaluni0630.fina_BaaDaluni062F.fina_BaaDaluni0759.fina_BaaDaluni068C.fina_BaaDaluni068B.fina_BaaDaluni068A.fina_BaaDaluni068F.fina_BaaDaluni068E.fina_BaaDaluni068D.fina_BaaDaluni0777.init_BaaMemHaaInituni0680.init_BaaMemHaaInituni0776.init_BaaMemHaaInituni06BC.init_BaaMemHaaInituni0750.init_BaaMemHaaInituni0756.init_BaaMemHaaInituni0768.init_BaaMemHaaInituni06CE.init_BaaMemHaaInituni0775.init_BaaMemHaaInituni06BD.init_BaaMemHaaInituni0626.init_BaaMemHaaInituni066E.init_BaaMemHaaInituni0620.init_BaaMemHaaInituni064A.init_BaaMemHaaInituni06BB.init_BaaMemHaaInituni067F.init_BaaMemHaaInituni0755.init_BaaMemHaaInituni067D.init_BaaMemHaaInituni067E.init_BaaMemHaaInituni067B.init_BaaMemHaaInituni0628.init_BaaMemHaaInituni067A.init_BaaMemHaaInituni0751.init_BaaMemHaaInituni0646.init_BaaMemHaaInituni0753.init_BaaMemHaaInituni0752.init_BaaMemHaaInituni062A.init_BaaMemHaaInituni0678.init_BaaMemHaaInituni063D.init_BaaMemHaaInituni062B.init_BaaMemHaaInituni0679.init_BaaMemHaaInituni06B9.init_BaaMemHaaInituni0769.init_BaaMemHaaInituni0649.init_BaaMemHaaInituni067C.init_BaaMemHaaInituni0754.init_BaaMemHaaInituni06D1.init_BaaMemHaaInituni06D0.init_BaaMemHaaInituni06BA.init_BaaMemHaaInituni06CC.init_BaaMemHaaInituni0767.init_BaaMemHaaInituni0645.medi_BaaMemHaaInituni062E.medi_BaaMemHaaInituni062D.medi_BaaMemHaaInituni0681.medi_BaaMemHaaInituni0687.medi_BaaMemHaaInituni0685.medi_BaaMemHaaInituni062C.medi_BaaMemHaaInituni0682.medi_BaaMemHaaInituni0757.medi_BaaMemHaaInituni0684.medi_BaaMemHaaInituni076F.medi_BaaMemHaaInituni076E.medi_BaaMemHaaInituni0683.medi_BaaMemHaaInituni06BF.medi_BaaMemHaaInituni077C.medi_BaaMemHaaInituni0758.medi_BaaMemHaaInituni0772.medi_BaaMemHaaInituni0686.medi_BaaMemHaaInituni0777.init_BaaBaaYaauni0680.init_BaaBaaYaauni0776.init_BaaBaaYaauni06BC.init_BaaBaaYaauni0750.init_BaaBaaYaauni0756.init_BaaBaaYaauni0768.init_BaaBaaYaauni06CE.init_BaaBaaYaauni0775.init_BaaBaaYaauni06BD.init_BaaBaaYaauni0626.init_BaaBaaYaauni066E.init_BaaBaaYaauni0620.init_BaaBaaYaauni064A.init_BaaBaaYaauni06BB.init_BaaBaaYaauni067F.init_BaaBaaYaauni0755.init_BaaBaaYaauni067D.init_BaaBaaYaauni067E.init_BaaBaaYaauni067B.init_BaaBaaYaauni0628.init_BaaBaaYaauni067A.init_BaaBaaYaauni0751.init_BaaBaaYaauni0646.init_BaaBaaYaauni0753.init_BaaBaaYaauni0752.init_BaaBaaYaauni062A.init_BaaBaaYaauni0678.init_BaaBaaYaauni063D.init_BaaBaaYaauni062B.init_BaaBaaYaauni0679.init_BaaBaaYaauni06B9.init_BaaBaaYaauni0769.init_BaaBaaYaauni0649.init_BaaBaaYaauni067C.init_BaaBaaYaauni0754.init_BaaBaaYaauni06D1.init_BaaBaaYaauni06D0.init_BaaBaaYaauni06BA.init_BaaBaaYaauni06CC.init_BaaBaaYaauni0767.init_BaaBaaYaauni0777.medi_BaaBaaYaauni0680.medi_BaaBaaYaauni0776.medi_BaaBaaYaauni06BC.medi_BaaBaaYaauni0750.medi_BaaBaaYaauni0756.medi_BaaBaaYaauni0768.medi_BaaBaaYaauni06CE.medi_BaaBaaYaauni0775.medi_BaaBaaYaauni06BD.medi_BaaBaaYaauni0626.medi_BaaBaaYaauni066E.medi_BaaBaaYaauni0620.medi_BaaBaaYaauni064A.medi_BaaBaaYaauni06BB.medi_BaaBaaYaauni067F.medi_BaaBaaYaauni0755.medi_BaaBaaYaauni067D.medi_BaaBaaYaauni067E.medi_BaaBaaYaauni067B.medi_BaaBaaYaauni0628.medi_BaaBaaYaauni067A.medi_BaaBaaYaauni0751.medi_BaaBaaYaauni0646.medi_BaaBaaYaauni0753.medi_BaaBaaYaauni0752.medi_BaaBaaYaauni062A.medi_BaaBaaYaauni0678.medi_BaaBaaYaauni063D.medi_BaaBaaYaauni062B.medi_BaaBaaYaauni0679.medi_BaaBaaYaauni06B9.medi_BaaBaaYaauni0769.medi_BaaBaaYaauni0649.medi_BaaBaaYaauni067C.medi_BaaBaaYaauni0754.medi_BaaBaaYaauni06D1.medi_BaaBaaYaauni06D0.medi_BaaBaaYaauni06BA.medi_BaaBaaYaauni06CC.medi_BaaBaaYaauni0767.medi_BaaBaaYaauni0777.fina_BaaBaaYaauni06D1.fina_BaaBaaYaauni0775.fina_BaaBaaYaauni063F.fina_BaaBaaYaauni0678.fina_BaaBaaYaauni063D.fina_BaaBaaYaauni063E.fina_BaaBaaYaauni06D0.fina_BaaBaaYaauni0649.fina_BaaBaaYaauni0776.fina_BaaBaaYaauni06CD.fina_BaaBaaYaauni06CC.fina_BaaBaaYaauni0626.fina_BaaBaaYaauni0620.fina_BaaBaaYaauni064A.fina_BaaBaaYaauni06CE.fina_BaaBaaYaauni06B5.medi_LamYaaFinauni06B7.medi_LamYaaFinauni0644.medi_LamYaaFinauni06B8.medi_LamYaaFinauni06B6.medi_LamYaaFinauni076A.medi_LamYaaFinauni0777.fina_LamYaaFinauni06D1.fina_LamYaaFinauni0775.fina_LamYaaFinauni063F.fina_LamYaaFinauni0678.fina_LamYaaFinauni063D.fina_LamYaaFinauni063E.fina_LamYaaFinauni06D0.fina_LamYaaFinauni0649.fina_LamYaaFinauni0776.fina_LamYaaFinauni06CD.fina_LamYaaFinauni06CC.fina_LamYaaFinauni0626.fina_LamYaaFinauni0620.fina_LamYaaFinauni064A.fina_LamYaaFinauni06CE.fina_LamYaaFinauni063B.init_KafBaaInituni063C.init_KafBaaInituni077F.init_KafBaaInituni0764.init_KafBaaInituni0643.init_KafBaaInituni06B0.init_KafBaaInituni06B3.init_KafBaaInituni06B2.init_KafBaaInituni06AB.init_KafBaaInituni06AC.init_KafBaaInituni06AD.init_KafBaaInituni06AE.init_KafBaaInituni06AF.init_KafBaaInituni06A9.init_KafBaaInituni06B4.init_KafBaaInituni0763.init_KafBaaInituni0762.init_KafBaaInituni06B1.init_KafBaaInituni0777.medi_KafBaaInituni0680.medi_KafBaaInituni0776.medi_KafBaaInituni06BC.medi_KafBaaInituni0750.medi_KafBaaInituni0756.medi_KafBaaInituni0768.medi_KafBaaInituni06CE.medi_KafBaaInituni0775.medi_KafBaaInituni06BD.medi_KafBaaInituni0626.medi_KafBaaInituni066E.medi_KafBaaInituni0620.medi_KafBaaInituni064A.medi_KafBaaInituni06BB.medi_KafBaaInituni067F.medi_KafBaaInituni0755.medi_KafBaaInituni067D.medi_KafBaaInituni067E.medi_KafBaaInituni067B.medi_KafBaaInituni0628.medi_KafBaaInituni067A.medi_KafBaaInituni0751.medi_KafBaaInituni0646.medi_KafBaaInituni0753.medi_KafBaaInituni0752.medi_KafBaaInituni062A.medi_KafBaaInituni0678.medi_KafBaaInituni063D.medi_KafBaaInituni062B.medi_KafBaaInituni0679.medi_KafBaaInituni06B9.medi_KafBaaInituni0769.medi_KafBaaInituni0649.medi_KafBaaInituni067C.medi_KafBaaInituni0754.medi_KafBaaInituni06D1.medi_KafBaaInituni06D0.medi_KafBaaInituni06BA.medi_KafBaaInituni06CC.medi_KafBaaInituni0767.medi_KafBaaInituni06B5.init_LamMemInituni06B7.init_LamMemInituni0644.init_LamMemInituni06B8.init_LamMemInituni06B6.init_LamMemInituni076A.init_LamMemInituni0645.medi_LamMemInituni06B5.init_LamAlfIsoluni06B7.init_LamAlfIsoluni0644.init_LamAlfIsoluni06B8.init_LamAlfIsoluni06B6.init_LamAlfIsoluni076A.init_LamAlfIsoluni0625.fina_LamAlfIsoluni0627.fina_LamAlfIsoluni0774.fina_LamAlfIsoluni0773.fina_LamAlfIsoluni0623.fina_LamAlfIsoluni0622.fina_LamAlfIsoluni0675.fina_LamAlfIsoluni0672.fina_LamAlfIsoluni0673.fina_LamAlfIsoluni0671.fina_LamAlfIsoluni06B5.init_LamHaaMemInituni06B7.init_LamHaaMemInituni0644.init_LamHaaMemInituni06B8.init_LamHaaMemInituni06B6.init_LamHaaMemInituni076A.init_LamHaaMemInituni062E.medi_LamHaaMemInituni062D.medi_LamHaaMemInituni0681.medi_LamHaaMemInituni0687.medi_LamHaaMemInituni0685.medi_LamHaaMemInituni062C.medi_LamHaaMemInituni0682.medi_LamHaaMemInituni0757.medi_LamHaaMemInituni0684.medi_LamHaaMemInituni076F.medi_LamHaaMemInituni076E.medi_LamHaaMemInituni0683.medi_LamHaaMemInituni06BF.medi_LamHaaMemInituni077C.medi_LamHaaMemInituni0758.medi_LamHaaMemInituni0772.medi_LamHaaMemInituni0686.medi_LamHaaMemInituni0645.medi_LamHaaMemInituni0777.medi_BaaBaaInituni0680.medi_BaaBaaInituni0776.medi_BaaBaaInituni06BC.medi_BaaBaaInituni0750.medi_BaaBaaInituni0756.medi_BaaBaaInituni0768.medi_BaaBaaInituni06CE.medi_BaaBaaInituni0775.medi_BaaBaaInituni06BD.medi_BaaBaaInituni0626.medi_BaaBaaInituni066E.medi_BaaBaaInituni0620.medi_BaaBaaInituni064A.medi_BaaBaaInituni06BB.medi_BaaBaaInituni067F.medi_BaaBaaInituni0755.medi_BaaBaaInituni067D.medi_BaaBaaInituni067E.medi_BaaBaaInituni067B.medi_BaaBaaInituni0628.medi_BaaBaaInituni067A.medi_BaaBaaInituni0751.medi_BaaBaaInituni0646.medi_BaaBaaInituni0753.medi_BaaBaaInituni0752.medi_BaaBaaInituni062A.medi_BaaBaaInituni0678.medi_BaaBaaInituni063D.medi_BaaBaaInituni062B.medi_BaaBaaInituni0679.medi_BaaBaaInituni06B9.medi_BaaBaaInituni0769.medi_BaaBaaInituni0649.medi_BaaBaaInituni067C.medi_BaaBaaInituni0754.medi_BaaBaaInituni06D1.medi_BaaBaaInituni06D0.medi_BaaBaaInituni06BA.medi_BaaBaaInituni06CC.medi_BaaBaaInituni0767.medi_BaaBaaInituni06FC.medi_AynYaaFinauni063A.medi_AynYaaFinauni075E.medi_AynYaaFinauni075D.medi_AynYaaFinauni075F.medi_AynYaaFinauni06A0.medi_AynYaaFinauni0639.medi_AynYaaFinauni0765.init_MemRaaIsoluni0645.init_MemRaaIsoluni0766.init_MemRaaIsoluni0691.fina_MemRaaIsoluni0692.fina_MemRaaIsoluni0693.fina_MemRaaIsoluni0694.fina_MemRaaIsoluni0695.fina_MemRaaIsoluni0696.fina_MemRaaIsoluni0697.fina_MemRaaIsoluni0698.fina_MemRaaIsoluni0699.fina_MemRaaIsoluni075B.fina_MemRaaIsoluni06EF.fina_MemRaaIsoluni0632.fina_MemRaaIsoluni0771.fina_MemRaaIsoluni0631.fina_MemRaaIsoluni076B.fina_MemRaaIsoluni076C.fina_MemRaaIsoluni066F.init_FaaHaaInituni0761.init_FaaHaaInituni0760.init_FaaHaaInituni0642.init_FaaHaaInituni0641.init_FaaHaaInituni06A8.init_FaaHaaInituni06A1.init_FaaHaaInituni06A2.init_FaaHaaInituni06A3.init_FaaHaaInituni06A4.init_FaaHaaInituni06A5.init_FaaHaaInituni06A6.init_FaaHaaInituni06A7.init_FaaHaaInituni062E.medi_FaaHaaInituni062D.medi_FaaHaaInituni0681.medi_FaaHaaInituni0687.medi_FaaHaaInituni0685.medi_FaaHaaInituni062C.medi_FaaHaaInituni0682.medi_FaaHaaInituni0757.medi_FaaHaaInituni0684.medi_FaaHaaInituni076F.medi_FaaHaaInituni076E.medi_FaaHaaInituni0683.medi_FaaHaaInituni06BF.medi_FaaHaaInituni077C.medi_FaaHaaInituni0758.medi_FaaHaaInituni0772.medi_FaaHaaInituni0686.medi_FaaHaaInituni062E.init_HaaHaaInituni062D.init_HaaHaaInituni0681.init_HaaHaaInituni0687.init_HaaHaaInituni0685.init_HaaHaaInituni062C.init_HaaHaaInituni0682.init_HaaHaaInituni0757.init_HaaHaaInituni0684.init_HaaHaaInituni076F.init_HaaHaaInituni076E.init_HaaHaaInituni0683.init_HaaHaaInituni06BF.init_HaaHaaInituni077C.init_HaaHaaInituni0758.init_HaaHaaInituni0772.init_HaaHaaInituni0686.init_HaaHaaInituni06B5.medi_LamQafFinauni06B7.medi_LamQafFinauni0644.medi_LamQafFinauni06B8.medi_LamQafFinauni06B6.medi_LamQafFinauni076A.medi_LamQafFinauni06A8.fina_LamQafFinauni06A7.fina_LamQafFinauni0642.fina_LamQafFinauni066F.fina_LamQafFinauni06FA.init_AboveHaauni076D.init_AboveHaauni0633.init_AboveHaauni077E.init_AboveHaauni077D.init_AboveHaauni0634.init_AboveHaauni0770.init_AboveHaauni075C.init_AboveHaauni069A.init_AboveHaauni069B.init_AboveHaauni069C.init_AboveHaauni0645.init_MemHaaInituni0777.init_BaaNonIsoluni0680.init_BaaNonIsoluni0776.init_BaaNonIsoluni06BC.init_BaaNonIsoluni0750.init_BaaNonIsoluni0756.init_BaaNonIsoluni0768.init_BaaNonIsoluni06CE.init_BaaNonIsoluni0775.init_BaaNonIsoluni06BD.init_BaaNonIsoluni0626.init_BaaNonIsoluni066E.init_BaaNonIsoluni0620.init_BaaNonIsoluni064A.init_BaaNonIsoluni06BB.init_BaaNonIsoluni067F.init_BaaNonIsoluni0755.init_BaaNonIsoluni067D.init_BaaNonIsoluni067E.init_BaaNonIsoluni067B.init_BaaNonIsoluni0628.init_BaaNonIsoluni067A.init_BaaNonIsoluni0751.init_BaaNonIsoluni0646.init_BaaNonIsoluni0753.init_BaaNonIsoluni0752.init_BaaNonIsoluni062A.init_BaaNonIsoluni0678.init_BaaNonIsoluni063D.init_BaaNonIsoluni062B.init_BaaNonIsoluni0679.init_BaaNonIsoluni06B9.init_BaaNonIsoluni0769.init_BaaNonIsoluni0649.init_BaaNonIsoluni067C.init_BaaNonIsoluni0754.init_BaaNonIsoluni06D1.init_BaaNonIsoluni06D0.init_BaaNonIsoluni06BA.init_BaaNonIsoluni06CC.init_BaaNonIsoluni0767.init_BaaNonIsoluni0646.fina_BaaNonIsoluni0767.fina_BaaNonIsoluni06BA.fina_BaaNonIsoluni06BC.fina_BaaNonIsoluni06BB.fina_BaaNonIsoluni0768.fina_BaaNonIsoluni06B9.fina_BaaNonIsoluni0769.fina_BaaNonIsoluni06BD.fina_BaaNonIsoluni063B.medi_KafMemFinauni063C.medi_KafMemFinauni077F.medi_KafMemFinauni0764.medi_KafMemFinauni0643.medi_KafMemFinauni06B0.medi_KafMemFinauni06B3.medi_KafMemFinauni06B2.medi_KafMemFinauni06AB.medi_KafMemFinauni06AC.medi_KafMemFinauni06AD.medi_KafMemFinauni06AE.medi_KafMemFinauni06AF.medi_KafMemFinauni06A9.medi_KafMemFinauni06B4.medi_KafMemFinauni0763.medi_KafMemFinauni0762.medi_KafMemFinauni06B1.medi_KafMemFinauni0645.fina_KafMemFinauni0777.init_BaaSenInituni0680.init_BaaSenInituni0776.init_BaaSenInituni06BC.init_BaaSenInituni0750.init_BaaSenInituni0756.init_BaaSenInituni0768.init_BaaSenInituni06CE.init_BaaSenInituni0775.init_BaaSenInituni06BD.init_BaaSenInituni0626.init_BaaSenInituni066E.init_BaaSenInituni0620.init_BaaSenInituni064A.init_BaaSenInituni06BB.init_BaaSenInituni067F.init_BaaSenInituni0755.init_BaaSenInituni067D.init_BaaSenInituni067E.init_BaaSenInituni067B.init_BaaSenInituni0628.init_BaaSenInituni067A.init_BaaSenInituni0751.init_BaaSenInituni0646.init_BaaSenInituni0753.init_BaaSenInituni0752.init_BaaSenInituni062A.init_BaaSenInituni0678.init_BaaSenInituni063D.init_BaaSenInituni062B.init_BaaSenInituni0679.init_BaaSenInituni06B9.init_BaaSenInituni0769.init_BaaSenInituni0649.init_BaaSenInituni067C.init_BaaSenInituni0754.init_BaaSenInituni06D1.init_BaaSenInituni06D0.init_BaaSenInituni06BA.init_BaaSenInituni06CC.init_BaaSenInituni0767.init_BaaSenInituni06FA.medi_BaaSenInituni076D.medi_BaaSenInituni0633.medi_BaaSenInituni077E.medi_BaaSenInituni077D.medi_BaaSenInituni0634.medi_BaaSenInituni0770.medi_BaaSenInituni075C.medi_BaaSenInituni069A.medi_BaaSenInituni069B.medi_BaaSenInituni069C.medi_BaaSenInituni0777.medi_BaaRaaFinauni0680.medi_BaaRaaFinauni0776.medi_BaaRaaFinauni06BC.medi_BaaRaaFinauni0750.medi_BaaRaaFinauni0756.medi_BaaRaaFinauni0768.medi_BaaRaaFinauni06CE.medi_BaaRaaFinauni0775.medi_BaaRaaFinauni06BD.medi_BaaRaaFinauni0626.medi_BaaRaaFinauni066E.medi_BaaRaaFinauni0620.medi_BaaRaaFinauni064A.medi_BaaRaaFinauni06BB.medi_BaaRaaFinauni067F.medi_BaaRaaFinauni0755.medi_BaaRaaFinauni067D.medi_BaaRaaFinauni067E.medi_BaaRaaFinauni067B.medi_BaaRaaFinauni0628.medi_BaaRaaFinauni067A.medi_BaaRaaFinauni0751.medi_BaaRaaFinauni0646.medi_BaaRaaFinauni0753.medi_BaaRaaFinauni0752.medi_BaaRaaFinauni062A.medi_BaaRaaFinauni0678.medi_BaaRaaFinauni063D.medi_BaaRaaFinauni062B.medi_BaaRaaFinauni0679.medi_BaaRaaFinauni06B9.medi_BaaRaaFinauni0769.medi_BaaRaaFinauni0649.medi_BaaRaaFinauni067C.medi_BaaRaaFinauni0754.medi_BaaRaaFinauni06D1.medi_BaaRaaFinauni06D0.medi_BaaRaaFinauni06BA.medi_BaaRaaFinauni06CC.medi_BaaRaaFinauni0767.medi_BaaRaaFinauni0691.fina_BaaRaaFinauni0692.fina_BaaRaaFinauni0693.fina_BaaRaaFinauni0694.fina_BaaRaaFinauni0695.fina_BaaRaaFinauni0696.fina_BaaRaaFinauni0697.fina_BaaRaaFinauni0698.fina_BaaRaaFinauni0699.fina_BaaRaaFinauni075B.fina_BaaRaaFinauni06EF.fina_BaaRaaFinauni0632.fina_BaaRaaFinauni0771.fina_BaaRaaFinauni0631.fina_BaaRaaFinauni076B.fina_BaaRaaFinauni076C.fina_BaaRaaFinauni063B.medi_KafRaaFinauni063C.medi_KafRaaFinauni077F.medi_KafRaaFinauni0764.medi_KafRaaFinauni0643.medi_KafRaaFinauni06B0.medi_KafRaaFinauni06B3.medi_KafRaaFinauni06B2.medi_KafRaaFinauni06AB.medi_KafRaaFinauni06AC.medi_KafRaaFinauni06AD.medi_KafRaaFinauni06AE.medi_KafRaaFinauni06AF.medi_KafRaaFinauni06A9.medi_KafRaaFinauni06B4.medi_KafRaaFinauni0763.medi_KafRaaFinauni0762.medi_KafRaaFinauni06B1.medi_KafRaaFinauni0691.fina_KafRaaFinauni0692.fina_KafRaaFinauni0693.fina_KafRaaFinauni0694.fina_KafRaaFinauni0695.fina_KafRaaFinauni0696.fina_KafRaaFinauni0697.fina_KafRaaFinauni0698.fina_KafRaaFinauni0699.fina_KafRaaFinauni075B.fina_KafRaaFinauni06EF.fina_KafRaaFinauni0632.fina_KafRaaFinauni0771.fina_KafRaaFinauni0631.fina_KafRaaFinauni076B.fina_KafRaaFinauni076C.fina_KafRaaFinauni06B5.init_LamHehInituni06B7.init_LamHehInituni0644.init_LamHehInituni06B8.init_LamHehInituni06B6.init_LamHehInituni076A.init_LamHehInituni0647.medi_LamHehInituni06C1.medi_LamHehInituni0645.init_MemHaaMemInituni062E.medi_MemHaaMemInituni062D.medi_MemHaaMemInituni0681.medi_MemHaaMemInituni0687.medi_MemHaaMemInituni0685.medi_MemHaaMemInituni062C.medi_MemHaaMemInituni0682.medi_MemHaaMemInituni0757.medi_MemHaaMemInituni0684.medi_MemHaaMemInituni076F.medi_MemHaaMemInituni076E.medi_MemHaaMemInituni0683.medi_MemHaaMemInituni06BF.medi_MemHaaMemInituni077C.medi_MemHaaMemInituni0758.medi_MemHaaMemInituni0772.medi_MemHaaMemInituni0686.medi_MemHaaMemInituni0777.init_BaaMemInituni0680.init_BaaMemInituni0776.init_BaaMemInituni06BC.init_BaaMemInituni0750.init_BaaMemInituni0756.init_BaaMemInituni0768.init_BaaMemInituni06CE.init_BaaMemInituni0775.init_BaaMemInituni06BD.init_BaaMemInituni0626.init_BaaMemInituni066E.init_BaaMemInituni0620.init_BaaMemInituni064A.init_BaaMemInituni06BB.init_BaaMemInituni067F.init_BaaMemInituni0755.init_BaaMemInituni067D.init_BaaMemInituni067E.init_BaaMemInituni067B.init_BaaMemInituni0628.init_BaaMemInituni067A.init_BaaMemInituni0751.init_BaaMemInituni0646.init_BaaMemInituni0753.init_BaaMemInituni0752.init_BaaMemInituni062A.init_BaaMemInituni0678.init_BaaMemInituni063D.init_BaaMemInituni062B.init_BaaMemInituni0679.init_BaaMemInituni06B9.init_BaaMemInituni0769.init_BaaMemInituni0649.init_BaaMemInituni067C.init_BaaMemInituni0754.init_BaaMemInituni06D1.init_BaaMemInituni06D0.init_BaaMemInituni06BA.init_BaaMemInituni06CC.init_BaaMemInituni0767.init_BaaMemInituni0645.medi_BaaMemInituni06FA.init_SenHaaInituni076D.init_SenHaaInituni0633.init_SenHaaInituni077E.init_SenHaaInituni077D.init_SenHaaInituni0634.init_SenHaaInituni0770.init_SenHaaInituni075C.init_SenHaaInituni069A.init_SenHaaInituni069B.init_SenHaaInituni069C.init_SenHaaInituni063B.init_KafRaaIsoluni063C.init_KafRaaIsoluni077F.init_KafRaaIsoluni0764.init_KafRaaIsoluni0643.init_KafRaaIsoluni06B0.init_KafRaaIsoluni06B3.init_KafRaaIsoluni06B2.init_KafRaaIsoluni06AB.init_KafRaaIsoluni06AC.init_KafRaaIsoluni06AD.init_KafRaaIsoluni06AE.init_KafRaaIsoluni06AF.init_KafRaaIsoluni06A9.init_KafRaaIsoluni06B4.init_KafRaaIsoluni0763.init_KafRaaIsoluni0762.init_KafRaaIsoluni06B1.init_KafRaaIsoluni0691.fina_KafRaaIsoluni0692.fina_KafRaaIsoluni0693.fina_KafRaaIsoluni0694.fina_KafRaaIsoluni0695.fina_KafRaaIsoluni0696.fina_KafRaaIsoluni0697.fina_KafRaaIsoluni0698.fina_KafRaaIsoluni0699.fina_KafRaaIsoluni075B.fina_KafRaaIsoluni06EF.fina_KafRaaIsoluni0632.fina_KafRaaIsoluni0771.fina_KafRaaIsoluni0631.fina_KafRaaIsoluni076B.fina_KafRaaIsoluni076C.fina_KafRaaIsoluni06FC.init_AynHaaInituni063A.init_AynHaaInituni075E.init_AynHaaInituni075D.init_AynHaaInituni075F.init_AynHaaInituni06A0.init_AynHaaInituni0639.init_AynHaaInituni063B.medi_KafYaaFinauni063C.medi_KafYaaFinauni077F.medi_KafYaaFinauni0764.medi_KafYaaFinauni0643.medi_KafYaaFinauni06B0.medi_KafYaaFinauni06B3.medi_KafYaaFinauni06B2.medi_KafYaaFinauni06AB.medi_KafYaaFinauni06AC.medi_KafYaaFinauni06AD.medi_KafYaaFinauni06AE.medi_KafYaaFinauni06AF.medi_KafYaaFinauni06A9.medi_KafYaaFinauni06B4.medi_KafYaaFinauni0763.medi_KafYaaFinauni0762.medi_KafYaaFinauni06B1.medi_KafYaaFinauni0777.fina_KafYaaFinauni06D1.fina_KafYaaFinauni0775.fina_KafYaaFinauni063F.fina_KafYaaFinauni0678.fina_KafYaaFinauni063D.fina_KafYaaFinauni063E.fina_KafYaaFinauni06D0.fina_KafYaaFinauni0649.fina_KafYaaFinauni0776.fina_KafYaaFinauni06CD.fina_KafYaaFinauni06CC.fina_KafYaaFinauni0626.fina_KafYaaFinauni0620.fina_KafYaaFinauni064A.fina_KafYaaFinauni06CE.fina_KafYaaFinauni06B5.init_LamMemHaaInituni06B7.init_LamMemHaaInituni0644.init_LamMemHaaInituni06B8.init_LamMemHaaInituni06B6.init_LamMemHaaInituni076A.init_LamMemHaaInituni0645.medi_LamMemHaaInituni062E.medi_LamMemHaaInituni062D.medi_LamMemHaaInituni0681.medi_LamMemHaaInituni0687.medi_LamMemHaaInituni0685.medi_LamMemHaaInituni062C.medi_LamMemHaaInituni0682.medi_LamMemHaaInituni0757.medi_LamMemHaaInituni0684.medi_LamMemHaaInituni076F.medi_LamMemHaaInituni076E.medi_LamMemHaaInituni0683.medi_LamMemHaaInituni06BF.medi_LamMemHaaInituni077C.medi_LamMemHaaInituni0758.medi_LamMemHaaInituni0772.medi_LamMemHaaInituni0686.medi_LamMemHaaInituni06B5.medi_LamAlfFinauni06B7.medi_LamAlfFinauni0644.medi_LamAlfFinauni06B8.medi_LamAlfFinauni06B6.medi_LamAlfFinauni076A.medi_LamAlfFinauni0625.fina_LamAlfFinauni0627.fina_LamAlfFinauni0774.fina_LamAlfFinauni0773.fina_LamAlfFinauni0623.fina_LamAlfFinauni0622.fina_LamAlfFinauni0675.fina_LamAlfFinauni0672.fina_LamAlfFinauni0673.fina_LamAlfFinauni0671.fina_LamAlfFinauni06B5.medi_LamMemMediuni06B7.medi_LamMemMediuni0644.medi_LamMemMediuni06B8.medi_LamMemMediuni06B6.medi_LamMemMediuni076A.medi_LamMemMediuni0765.medi_LamMemMediuni0645.medi_LamMemMediuni0766.medi_LamMemMediuni0777.init_BaaBaaHaaInituni0680.init_BaaBaaHaaInituni0776.init_BaaBaaHaaInituni06BC.init_BaaBaaHaaInituni0750.init_BaaBaaHaaInituni0756.init_BaaBaaHaaInituni0768.init_BaaBaaHaaInituni06CE.init_BaaBaaHaaInituni0775.init_BaaBaaHaaInituni06BD.init_BaaBaaHaaInituni0626.init_BaaBaaHaaInituni066E.init_BaaBaaHaaInituni0620.init_BaaBaaHaaInituni064A.init_BaaBaaHaaInituni06BB.init_BaaBaaHaaInituni067F.init_BaaBaaHaaInituni0755.init_BaaBaaHaaInituni067D.init_BaaBaaHaaInituni067E.init_BaaBaaHaaInituni067B.init_BaaBaaHaaInituni0628.init_BaaBaaHaaInituni067A.init_BaaBaaHaaInituni0751.init_BaaBaaHaaInituni0646.init_BaaBaaHaaInituni0753.init_BaaBaaHaaInituni0752.init_BaaBaaHaaInituni062A.init_BaaBaaHaaInituni0678.init_BaaBaaHaaInituni063D.init_BaaBaaHaaInituni062B.init_BaaBaaHaaInituni0679.init_BaaBaaHaaInituni06B9.init_BaaBaaHaaInituni0769.init_BaaBaaHaaInituni0649.init_BaaBaaHaaInituni067C.init_BaaBaaHaaInituni0754.init_BaaBaaHaaInituni06D1.init_BaaBaaHaaInituni06D0.init_BaaBaaHaaInituni06BA.init_BaaBaaHaaInituni06CC.init_BaaBaaHaaInituni0767.init_BaaBaaHaaInituni0777.medi_BaaBaaHaaInituni0680.medi_BaaBaaHaaInituni0776.medi_BaaBaaHaaInituni06BC.medi_BaaBaaHaaInituni0750.medi_BaaBaaHaaInituni0756.medi_BaaBaaHaaInituni0768.medi_BaaBaaHaaInituni06CE.medi_BaaBaaHaaInituni0775.medi_BaaBaaHaaInituni06BD.medi_BaaBaaHaaInituni0626.medi_BaaBaaHaaInituni066E.medi_BaaBaaHaaInituni0620.medi_BaaBaaHaaInituni064A.medi_BaaBaaHaaInituni06BB.medi_BaaBaaHaaInituni067F.medi_BaaBaaHaaInituni0755.medi_BaaBaaHaaInituni067D.medi_BaaBaaHaaInituni067E.medi_BaaBaaHaaInituni067B.medi_BaaBaaHaaInituni0628.medi_BaaBaaHaaInituni067A.medi_BaaBaaHaaInituni0751.medi_BaaBaaHaaInituni0646.medi_BaaBaaHaaInituni0753.medi_BaaBaaHaaInituni0752.medi_BaaBaaHaaInituni062A.medi_BaaBaaHaaInituni0678.medi_BaaBaaHaaInituni063D.medi_BaaBaaHaaInituni062B.medi_BaaBaaHaaInituni0679.medi_BaaBaaHaaInituni06B9.medi_BaaBaaHaaInituni0769.medi_BaaBaaHaaInituni0649.medi_BaaBaaHaaInituni067C.medi_BaaBaaHaaInituni0754.medi_BaaBaaHaaInituni06D1.medi_BaaBaaHaaInituni06D0.medi_BaaBaaHaaInituni06BA.medi_BaaBaaHaaInituni06CC.medi_BaaBaaHaaInituni0767.medi_BaaBaaHaaInituni062E.medi_BaaBaaHaaInituni062D.medi_BaaBaaHaaInituni0681.medi_BaaBaaHaaInituni0687.medi_BaaBaaHaaInituni0685.medi_BaaBaaHaaInituni062C.medi_BaaBaaHaaInituni0682.medi_BaaBaaHaaInituni0757.medi_BaaBaaHaaInituni0684.medi_BaaBaaHaaInituni076F.medi_BaaBaaHaaInituni076E.medi_BaaBaaHaaInituni0683.medi_BaaBaaHaaInituni06BF.medi_BaaBaaHaaInituni077C.medi_BaaBaaHaaInituni0758.medi_BaaBaaHaaInituni0772.medi_BaaBaaHaaInituni0686.medi_BaaBaaHaaInituni0777.medi_SenBaaMemInituni0680.medi_SenBaaMemInituni0776.medi_SenBaaMemInituni06BC.medi_SenBaaMemInituni0750.medi_SenBaaMemInituni0756.medi_SenBaaMemInituni0768.medi_SenBaaMemInituni06CE.medi_SenBaaMemInituni0775.medi_SenBaaMemInituni06BD.medi_SenBaaMemInituni0626.medi_SenBaaMemInituni066E.medi_SenBaaMemInituni0620.medi_SenBaaMemInituni064A.medi_SenBaaMemInituni06BB.medi_SenBaaMemInituni067F.medi_SenBaaMemInituni0755.medi_SenBaaMemInituni067D.medi_SenBaaMemInituni067E.medi_SenBaaMemInituni067B.medi_SenBaaMemInituni0628.medi_SenBaaMemInituni067A.medi_SenBaaMemInituni0751.medi_SenBaaMemInituni0646.medi_SenBaaMemInituni0753.medi_SenBaaMemInituni0752.medi_SenBaaMemInituni062A.medi_SenBaaMemInituni0678.medi_SenBaaMemInituni063D.medi_SenBaaMemInituni062B.medi_SenBaaMemInituni0679.medi_SenBaaMemInituni06B9.medi_SenBaaMemInituni0769.medi_SenBaaMemInituni0649.medi_SenBaaMemInituni067C.medi_SenBaaMemInituni0754.medi_SenBaaMemInituni06D1.medi_SenBaaMemInituni06D0.medi_SenBaaMemInituni06BA.medi_SenBaaMemInituni06CC.medi_SenBaaMemInituni0767.medi_SenBaaMemInituni0645.medi_SenBaaMemInituni0777.init_BaaBaaIsoluni0680.init_BaaBaaIsoluni0776.init_BaaBaaIsoluni06BC.init_BaaBaaIsoluni0750.init_BaaBaaIsoluni0756.init_BaaBaaIsoluni0768.init_BaaBaaIsoluni06CE.init_BaaBaaIsoluni0775.init_BaaBaaIsoluni06BD.init_BaaBaaIsoluni0626.init_BaaBaaIsoluni066E.init_BaaBaaIsoluni0620.init_BaaBaaIsoluni064A.init_BaaBaaIsoluni06BB.init_BaaBaaIsoluni067F.init_BaaBaaIsoluni0755.init_BaaBaaIsoluni067D.init_BaaBaaIsoluni067E.init_BaaBaaIsoluni067B.init_BaaBaaIsoluni0628.init_BaaBaaIsoluni067A.init_BaaBaaIsoluni0751.init_BaaBaaIsoluni0646.init_BaaBaaIsoluni0753.init_BaaBaaIsoluni0752.init_BaaBaaIsoluni062A.init_BaaBaaIsoluni0678.init_BaaBaaIsoluni063D.init_BaaBaaIsoluni062B.init_BaaBaaIsoluni0679.init_BaaBaaIsoluni06B9.init_BaaBaaIsoluni0769.init_BaaBaaIsoluni0649.init_BaaBaaIsoluni067C.init_BaaBaaIsoluni0754.init_BaaBaaIsoluni06D1.init_BaaBaaIsoluni06D0.init_BaaBaaIsoluni06BA.init_BaaBaaIsoluni06CC.init_BaaBaaIsoluni0767.init_BaaBaaIsoluni0751.fina_BaaBaaIsoluni0750.fina_BaaBaaIsoluni0753.fina_BaaBaaIsoluni0680.fina_BaaBaaIsoluni062A.fina_BaaBaaIsoluni0754.fina_BaaBaaIsoluni062B.fina_BaaBaaIsoluni0679.fina_BaaBaaIsoluni067C.fina_BaaBaaIsoluni0756.fina_BaaBaaIsoluni0752.fina_BaaBaaIsoluni066E.fina_BaaBaaIsoluni067F.fina_BaaBaaIsoluni0755.fina_BaaBaaIsoluni067D.fina_BaaBaaIsoluni067E.fina_BaaBaaIsoluni067B.fina_BaaBaaIsoluni0628.fina_BaaBaaIsoluni067A.fina_BaaBaaIsoluni0777.init_BaaBaaMemInituni0680.init_BaaBaaMemInituni0776.init_BaaBaaMemInituni06BC.init_BaaBaaMemInituni0750.init_BaaBaaMemInituni0756.init_BaaBaaMemInituni0768.init_BaaBaaMemInituni06CE.init_BaaBaaMemInituni0775.init_BaaBaaMemInituni06BD.init_BaaBaaMemInituni0626.init_BaaBaaMemInituni066E.init_BaaBaaMemInituni0620.init_BaaBaaMemInituni064A.init_BaaBaaMemInituni06BB.init_BaaBaaMemInituni067F.init_BaaBaaMemInituni0755.init_BaaBaaMemInituni067D.init_BaaBaaMemInituni067E.init_BaaBaaMemInituni067B.init_BaaBaaMemInituni0628.init_BaaBaaMemInituni067A.init_BaaBaaMemInituni0751.init_BaaBaaMemInituni0646.init_BaaBaaMemInituni0753.init_BaaBaaMemInituni0752.init_BaaBaaMemInituni062A.init_BaaBaaMemInituni0678.init_BaaBaaMemInituni063D.init_BaaBaaMemInituni062B.init_BaaBaaMemInituni0679.init_BaaBaaMemInituni06B9.init_BaaBaaMemInituni0769.init_BaaBaaMemInituni0649.init_BaaBaaMemInituni067C.init_BaaBaaMemInituni0754.init_BaaBaaMemInituni06D1.init_BaaBaaMemInituni06D0.init_BaaBaaMemInituni06BA.init_BaaBaaMemInituni06CC.init_BaaBaaMemInituni0767.init_BaaBaaMemInituni0777.medi_BaaBaaMemInituni0680.medi_BaaBaaMemInituni0776.medi_BaaBaaMemInituni06BC.medi_BaaBaaMemInituni0750.medi_BaaBaaMemInituni0756.medi_BaaBaaMemInituni0768.medi_BaaBaaMemInituni06CE.medi_BaaBaaMemInituni0775.medi_BaaBaaMemInituni06BD.medi_BaaBaaMemInituni0626.medi_BaaBaaMemInituni066E.medi_BaaBaaMemInituni0620.medi_BaaBaaMemInituni064A.medi_BaaBaaMemInituni06BB.medi_BaaBaaMemInituni067F.medi_BaaBaaMemInituni0755.medi_BaaBaaMemInituni067D.medi_BaaBaaMemInituni067E.medi_BaaBaaMemInituni067B.medi_BaaBaaMemInituni0628.medi_BaaBaaMemInituni067A.medi_BaaBaaMemInituni0751.medi_BaaBaaMemInituni0646.medi_BaaBaaMemInituni0753.medi_BaaBaaMemInituni0752.medi_BaaBaaMemInituni062A.medi_BaaBaaMemInituni0678.medi_BaaBaaMemInituni063D.medi_BaaBaaMemInituni062B.medi_BaaBaaMemInituni0679.medi_BaaBaaMemInituni06B9.medi_BaaBaaMemInituni0769.medi_BaaBaaMemInituni0649.medi_BaaBaaMemInituni067C.medi_BaaBaaMemInituni0754.medi_BaaBaaMemInituni06D1.medi_BaaBaaMemInituni06D0.medi_BaaBaaMemInituni06BA.medi_BaaBaaMemInituni06CC.medi_BaaBaaMemInituni0767.medi_BaaBaaMemInituni0645.medi_BaaBaaMemInituni063B.medi_KafBaaMediuni063C.medi_KafBaaMediuni077F.medi_KafBaaMediuni0764.medi_KafBaaMediuni0643.medi_KafBaaMediuni06B0.medi_KafBaaMediuni06B3.medi_KafBaaMediuni06B2.medi_KafBaaMediuni06AB.medi_KafBaaMediuni06AC.medi_KafBaaMediuni06AD.medi_KafBaaMediuni06AE.medi_KafBaaMediuni06AF.medi_KafBaaMediuni06A9.medi_KafBaaMediuni06B4.medi_KafBaaMediuni0763.medi_KafBaaMediuni0762.medi_KafBaaMediuni06B1.medi_KafBaaMediuni0777.medi_KafBaaMediuni0680.medi_KafBaaMediuni0776.medi_KafBaaMediuni06BC.medi_KafBaaMediuni0750.medi_KafBaaMediuni0756.medi_KafBaaMediuni0768.medi_KafBaaMediuni06CE.medi_KafBaaMediuni0775.medi_KafBaaMediuni06BD.medi_KafBaaMediuni0626.medi_KafBaaMediuni066E.medi_KafBaaMediuni0620.medi_KafBaaMediuni064A.medi_KafBaaMediuni06BB.medi_KafBaaMediuni067F.medi_KafBaaMediuni0755.medi_KafBaaMediuni067D.medi_KafBaaMediuni067E.medi_KafBaaMediuni067B.medi_KafBaaMediuni0628.medi_KafBaaMediuni067A.medi_KafBaaMediuni0751.medi_KafBaaMediuni0646.medi_KafBaaMediuni0753.medi_KafBaaMediuni0752.medi_KafBaaMediuni062A.medi_KafBaaMediuni0678.medi_KafBaaMediuni063D.medi_KafBaaMediuni062B.medi_KafBaaMediuni0679.medi_KafBaaMediuni06B9.medi_KafBaaMediuni0769.medi_KafBaaMediuni0649.medi_KafBaaMediuni067C.medi_KafBaaMediuni0754.medi_KafBaaMediuni06D1.medi_KafBaaMediuni06D0.medi_KafBaaMediuni06BA.medi_KafBaaMediuni06CC.medi_KafBaaMediuni0767.medi_KafBaaMediuni0777.medi_BaaNonFinauni0680.medi_BaaNonFinauni0776.medi_BaaNonFinauni06BC.medi_BaaNonFinauni0750.medi_BaaNonFinauni0756.medi_BaaNonFinauni0768.medi_BaaNonFinauni06CE.medi_BaaNonFinauni0775.medi_BaaNonFinauni06BD.medi_BaaNonFinauni0626.medi_BaaNonFinauni066E.medi_BaaNonFinauni0620.medi_BaaNonFinauni064A.medi_BaaNonFinauni06BB.medi_BaaNonFinauni067F.medi_BaaNonFinauni0755.medi_BaaNonFinauni067D.medi_BaaNonFinauni067E.medi_BaaNonFinauni067B.medi_BaaNonFinauni0628.medi_BaaNonFinauni067A.medi_BaaNonFinauni0751.medi_BaaNonFinauni0646.medi_BaaNonFinauni0753.medi_BaaNonFinauni0752.medi_BaaNonFinauni062A.medi_BaaNonFinauni0678.medi_BaaNonFinauni063D.medi_BaaNonFinauni062B.medi_BaaNonFinauni0679.medi_BaaNonFinauni06B9.medi_BaaNonFinauni0769.medi_BaaNonFinauni0649.medi_BaaNonFinauni067C.medi_BaaNonFinauni0754.medi_BaaNonFinauni06D1.medi_BaaNonFinauni06D0.medi_BaaNonFinauni06BA.medi_BaaNonFinauni06CC.medi_BaaNonFinauni0767.medi_BaaNonFinauni0646.fina_BaaNonFinauni0767.fina_BaaNonFinauni06BA.fina_BaaNonFinauni06BC.fina_BaaNonFinauni06BB.fina_BaaNonFinauni0768.fina_BaaNonFinauni06B9.fina_BaaNonFinauni0769.fina_BaaNonFinauni06BD.fina_BaaNonFinauni062E.init_HaaRaaIsoluni062D.init_HaaRaaIsoluni0681.init_HaaRaaIsoluni0687.init_HaaRaaIsoluni0685.init_HaaRaaIsoluni062C.init_HaaRaaIsoluni0682.init_HaaRaaIsoluni0757.init_HaaRaaIsoluni0684.init_HaaRaaIsoluni076F.init_HaaRaaIsoluni076E.init_HaaRaaIsoluni0683.init_HaaRaaIsoluni06BF.init_HaaRaaIsoluni077C.init_HaaRaaIsoluni0758.init_HaaRaaIsoluni0772.init_HaaRaaIsoluni0686.init_HaaRaaIsoluni0691.fina_HaaRaaIsoluni0692.fina_HaaRaaIsoluni0693.fina_HaaRaaIsoluni0694.fina_HaaRaaIsoluni0695.fina_HaaRaaIsoluni0696.fina_HaaRaaIsoluni0697.fina_HaaRaaIsoluni0698.fina_HaaRaaIsoluni0699.fina_HaaRaaIsoluni075B.fina_HaaRaaIsoluni06EF.fina_HaaRaaIsoluni0632.fina_HaaRaaIsoluni0771.fina_HaaRaaIsoluni0631.fina_HaaRaaIsoluni076B.fina_HaaRaaIsoluni076C.fina_HaaRaaIsoluni0647.init_HehHaaInituni06C1.init_HehHaaInituni06B5.init_LamRaaIsoluni06B7.init_LamRaaIsoluni0644.init_LamRaaIsoluni06B8.init_LamRaaIsoluni06B6.init_LamRaaIsoluni076A.init_LamRaaIsoluni0691.fina_LamRaaIsoluni0692.fina_LamRaaIsoluni0693.fina_LamRaaIsoluni0694.fina_LamRaaIsoluni0695.fina_LamRaaIsoluni0696.fina_LamRaaIsoluni0697.fina_LamRaaIsoluni0698.fina_LamRaaIsoluni0699.fina_LamRaaIsoluni075B.fina_LamRaaIsoluni06EF.fina_LamRaaIsoluni0632.fina_LamRaaIsoluni0771.fina_LamRaaIsoluni0631.fina_LamRaaIsoluni076B.fina_LamRaaIsoluni076C.fina_LamRaaIsoluni069D.init_SadHaaInituni06FB.init_SadHaaInituni0636.init_SadHaaInituni069E.init_SadHaaInituni0635.init_SadHaaInituni062E.medi_SadHaaInituni062D.medi_SadHaaInituni0681.medi_SadHaaInituni0687.medi_SadHaaInituni0685.medi_SadHaaInituni062C.medi_SadHaaInituni0682.medi_SadHaaInituni0757.medi_SadHaaInituni0684.medi_SadHaaInituni076F.medi_SadHaaInituni076E.medi_SadHaaInituni0683.medi_SadHaaInituni06BF.medi_SadHaaInituni077C.medi_SadHaaInituni0758.medi_SadHaaInituni0772.medi_SadHaaInituni0686.medi_SadHaaInituni0777.medi_BaaYaaFinauni0680.medi_BaaYaaFinauni0776.medi_BaaYaaFinauni06BC.medi_BaaYaaFinauni0750.medi_BaaYaaFinauni0756.medi_BaaYaaFinauni0768.medi_BaaYaaFinauni06CE.medi_BaaYaaFinauni0775.medi_BaaYaaFinauni06BD.medi_BaaYaaFinauni0626.medi_BaaYaaFinauni066E.medi_BaaYaaFinauni0620.medi_BaaYaaFinauni064A.medi_BaaYaaFinauni06BB.medi_BaaYaaFinauni067F.medi_BaaYaaFinauni0755.medi_BaaYaaFinauni067D.medi_BaaYaaFinauni067E.medi_BaaYaaFinauni067B.medi_BaaYaaFinauni0628.medi_BaaYaaFinauni067A.medi_BaaYaaFinauni0751.medi_BaaYaaFinauni0646.medi_BaaYaaFinauni0753.medi_BaaYaaFinauni0752.medi_BaaYaaFinauni062A.medi_BaaYaaFinauni0678.medi_BaaYaaFinauni063D.medi_BaaYaaFinauni062B.medi_BaaYaaFinauni0679.medi_BaaYaaFinauni06B9.medi_BaaYaaFinauni0769.medi_BaaYaaFinauni0649.medi_BaaYaaFinauni067C.medi_BaaYaaFinauni0754.medi_BaaYaaFinauni06D1.medi_BaaYaaFinauni06D0.medi_BaaYaaFinauni06BA.medi_BaaYaaFinauni06CC.medi_BaaYaaFinauni0767.medi_BaaYaaFinauni0777.fina_BaaYaaFinauni06D1.fina_BaaYaaFinauni0775.fina_BaaYaaFinauni063F.fina_BaaYaaFinauni0678.fina_BaaYaaFinauni063D.fina_BaaYaaFinauni063E.fina_BaaYaaFinauni06D0.fina_BaaYaaFinauni0649.fina_BaaYaaFinauni0776.fina_BaaYaaFinauni06CD.fina_BaaYaaFinauni06CC.fina_BaaYaaFinauni0626.fina_BaaYaaFinauni0620.fina_BaaYaaFinauni064A.fina_BaaYaaFinauni06CE.fina_BaaYaaFinauni0777.init_BaaSenAltInituni0680.init_BaaSenAltInituni0776.init_BaaSenAltInituni06BC.init_BaaSenAltInituni0750.init_BaaSenAltInituni0756.init_BaaSenAltInituni0768.init_BaaSenAltInituni06CE.init_BaaSenAltInituni0775.init_BaaSenAltInituni06BD.init_BaaSenAltInituni0626.init_BaaSenAltInituni066E.init_BaaSenAltInituni0620.init_BaaSenAltInituni064A.init_BaaSenAltInituni06BB.init_BaaSenAltInituni067F.init_BaaSenAltInituni0755.init_BaaSenAltInituni067D.init_BaaSenAltInituni067E.init_BaaSenAltInituni067B.init_BaaSenAltInituni0628.init_BaaSenAltInituni067A.init_BaaSenAltInituni0751.init_BaaSenAltInituni0646.init_BaaSenAltInituni0753.init_BaaSenAltInituni0752.init_BaaSenAltInituni062A.init_BaaSenAltInituni0678.init_BaaSenAltInituni063D.init_BaaSenAltInituni062B.init_BaaSenAltInituni0679.init_BaaSenAltInituni06B9.init_BaaSenAltInituni0769.init_BaaSenAltInituni0649.init_BaaSenAltInituni067C.init_BaaSenAltInituni0754.init_BaaSenAltInituni06D1.init_BaaSenAltInituni06D0.init_BaaSenAltInituni06BA.init_BaaSenAltInituni06CC.init_BaaSenAltInituni0767.init_BaaSenAltInituni06FA.medi_BaaSenAltInituni076D.medi_BaaSenAltInituni0633.medi_BaaSenAltInituni077E.medi_BaaSenAltInituni077D.medi_BaaSenAltInituni0634.medi_BaaSenAltInituni0770.medi_BaaSenAltInituni075C.medi_BaaSenAltInituni069A.medi_BaaSenAltInituni069B.medi_BaaSenAltInituni069C.medi_BaaSenAltInituni0691.fina_PostToothuni0692.fina_PostToothuni0693.fina_PostToothuni0694.fina_PostToothuni0695.fina_PostToothuni0696.fina_PostToothuni0697.fina_PostToothuni0698.fina_PostToothuni0699.fina_PostToothuni075B.fina_PostToothuni06EF.fina_PostToothuni0632.fina_PostToothuni0771.fina_PostToothuni0631.fina_PostToothuni076B.fina_PostToothuni076C.fina_PostToothuni0777.fina_PostToothuni06D1.fina_PostToothuni0775.fina_PostToothuni063F.fina_PostToothuni0678.fina_PostToothuni063D.fina_PostToothuni063E.fina_PostToothuni06D0.fina_PostToothuni0649.fina_PostToothuni0776.fina_PostToothuni06CD.fina_PostToothuni06CC.fina_PostToothuni0626.fina_PostToothuni0620.fina_PostToothuni064A.fina_PostToothuni06CE.fina_PostToothuni0777.init_AboveHaauni0680.init_AboveHaauni0776.init_AboveHaauni06BC.init_AboveHaauni0750.init_AboveHaauni0756.init_AboveHaauni0768.init_AboveHaauni06CE.init_AboveHaauni0775.init_AboveHaauni06BD.init_AboveHaauni0626.init_AboveHaauni066E.init_AboveHaauni0620.init_AboveHaauni064A.init_AboveHaauni06BB.init_AboveHaauni067F.init_AboveHaauni0755.init_AboveHaauni067D.init_AboveHaauni067E.init_AboveHaauni067B.init_AboveHaauni0628.init_AboveHaauni067A.init_AboveHaauni0751.init_AboveHaauni0646.init_AboveHaauni0753.init_AboveHaauni0752.init_AboveHaauni062A.init_AboveHaauni0678.init_AboveHaauni063D.init_AboveHaauni062B.init_AboveHaauni0679.init_AboveHaauni06B9.init_AboveHaauni0769.init_AboveHaauni0649.init_AboveHaauni067C.init_AboveHaauni0754.init_AboveHaauni06D1.init_AboveHaauni06D0.init_AboveHaauni06BA.init_AboveHaauni06CC.init_AboveHaauni0767.init_AboveHaauni0777.init_BaaHaaInituni0680.init_BaaHaaInituni0776.init_BaaHaaInituni06BC.init_BaaHaaInituni0750.init_BaaHaaInituni0756.init_BaaHaaInituni0768.init_BaaHaaInituni06CE.init_BaaHaaInituni0775.init_BaaHaaInituni06BD.init_BaaHaaInituni0626.init_BaaHaaInituni066E.init_BaaHaaInituni0620.init_BaaHaaInituni064A.init_BaaHaaInituni06BB.init_BaaHaaInituni067F.init_BaaHaaInituni0755.init_BaaHaaInituni067D.init_BaaHaaInituni067E.init_BaaHaaInituni067B.init_BaaHaaInituni0628.init_BaaHaaInituni067A.init_BaaHaaInituni0751.init_BaaHaaInituni0646.init_BaaHaaInituni0753.init_BaaHaaInituni0752.init_BaaHaaInituni062A.init_BaaHaaInituni0678.init_BaaHaaInituni063D.init_BaaHaaInituni062B.init_BaaHaaInituni0679.init_BaaHaaInituni06B9.init_BaaHaaInituni0769.init_BaaHaaInituni0649.init_BaaHaaInituni067C.init_BaaHaaInituni0754.init_BaaHaaInituni06D1.init_BaaHaaInituni06D0.init_BaaHaaInituni06BA.init_BaaHaaInituni06CC.init_BaaHaaInituni0767.init_BaaHaaInituni0777.init_BaaHaaMemInituni0680.init_BaaHaaMemInituni0776.init_BaaHaaMemInituni06BC.init_BaaHaaMemInituni0750.init_BaaHaaMemInituni0756.init_BaaHaaMemInituni0768.init_BaaHaaMemInituni06CE.init_BaaHaaMemInituni0775.init_BaaHaaMemInituni06BD.init_BaaHaaMemInituni0626.init_BaaHaaMemInituni066E.init_BaaHaaMemInituni0620.init_BaaHaaMemInituni064A.init_BaaHaaMemInituni06BB.init_BaaHaaMemInituni067F.init_BaaHaaMemInituni0755.init_BaaHaaMemInituni067D.init_BaaHaaMemInituni067E.init_BaaHaaMemInituni067B.init_BaaHaaMemInituni0628.init_BaaHaaMemInituni067A.init_BaaHaaMemInituni0751.init_BaaHaaMemInituni0646.init_BaaHaaMemInituni0753.init_BaaHaaMemInituni0752.init_BaaHaaMemInituni062A.init_BaaHaaMemInituni0678.init_BaaHaaMemInituni063D.init_BaaHaaMemInituni062B.init_BaaHaaMemInituni0679.init_BaaHaaMemInituni06B9.init_BaaHaaMemInituni0769.init_BaaHaaMemInituni0649.init_BaaHaaMemInituni067C.init_BaaHaaMemInituni0754.init_BaaHaaMemInituni06D1.init_BaaHaaMemInituni06D0.init_BaaHaaMemInituni06BA.init_BaaHaaMemInituni06CC.init_BaaHaaMemInituni0767.init_BaaHaaMemInituni062E.medi_BaaHaaMemInituni062D.medi_BaaHaaMemInituni0681.medi_BaaHaaMemInituni0687.medi_BaaHaaMemInituni0685.medi_BaaHaaMemInituni062C.medi_BaaHaaMemInituni0682.medi_BaaHaaMemInituni0757.medi_BaaHaaMemInituni0684.medi_BaaHaaMemInituni076F.medi_BaaHaaMemInituni076E.medi_BaaHaaMemInituni0683.medi_BaaHaaMemInituni06BF.medi_BaaHaaMemInituni077C.medi_BaaHaaMemInituni0758.medi_BaaHaaMemInituni0772.medi_BaaHaaMemInituni0686.medi_BaaHaaMemInituni062E.fina_AboveHaaIsoluni062D.fina_AboveHaaIsoluni0681.fina_AboveHaaIsoluni0687.fina_AboveHaaIsoluni0685.fina_AboveHaaIsoluni062C.fina_AboveHaaIsoluni0682.fina_AboveHaaIsoluni0757.fina_AboveHaaIsoluni0684.fina_AboveHaaIsoluni076F.fina_AboveHaaIsoluni076E.fina_AboveHaaIsoluni0683.fina_AboveHaaIsoluni06BF.fina_AboveHaaIsoluni077C.fina_AboveHaaIsoluni0758.fina_AboveHaaIsoluni0772.fina_AboveHaaIsoluni0686.fina_AboveHaaIsoluni06B5.init_LamHaaHaaInituni06B7.init_LamHaaHaaInituni0644.init_LamHaaHaaInituni06B8.init_LamHaaHaaInituni06B6.init_LamHaaHaaInituni076A.init_LamHaaHaaInituni06FC.init_Finjaniuni063A.init_Finjaniuni075E.init_Finjaniuni075D.init_Finjaniuni075F.init_Finjaniuni06A0.init_Finjaniuni0639.init_Finjaniuni062E.init_Finjaniuni062D.init_Finjaniuni0681.init_Finjaniuni0687.init_Finjaniuni0685.init_Finjaniuni062C.init_Finjaniuni0682.init_Finjaniuni0757.init_Finjaniuni0684.init_Finjaniuni076F.init_Finjaniuni076E.init_Finjaniuni0683.init_Finjaniuni06BF.init_Finjaniuni077C.init_Finjaniuni0758.init_Finjaniuni0772.init_Finjaniuni0686.init_Finjaniuni062E.medi_Finjaniuni062D.medi_Finjaniuni0681.medi_Finjaniuni0687.medi_Finjaniuni0685.medi_Finjaniuni062C.medi_Finjaniuni0682.medi_Finjaniuni0757.medi_Finjaniuni0684.medi_Finjaniuni076F.medi_Finjaniuni076E.medi_Finjaniuni0683.medi_Finjaniuni06BF.medi_Finjaniuni077C.medi_Finjaniuni0758.medi_Finjaniuni0772.medi_Finjaniuni0686.medi_Finjaniuni06FA.init_PreYaauni076D.init_PreYaauni0633.init_PreYaauni077E.init_PreYaauni077D.init_PreYaauni0634.init_PreYaauni0770.init_PreYaauni075C.init_PreYaauni069A.init_PreYaauni069B.init_PreYaauni069C.init_PreYaauni06FA.medi_PreYaauni076D.medi_PreYaauni0633.medi_PreYaauni077E.medi_PreYaauni077D.medi_PreYaauni0634.medi_PreYaauni0770.medi_PreYaauni075C.medi_PreYaauni069A.medi_PreYaauni069B.medi_PreYaauni069C.medi_PreYaauni069D.init_PreYaauni06FB.init_PreYaauni0636.init_PreYaauni069E.init_PreYaauni0635.init_PreYaauni069D.medi_PreYaauni06FB.medi_PreYaauni0636.medi_PreYaauni069E.medi_PreYaauni0635.medi_PreYaauni0777.init_Highuni0680.init_Highuni0776.init_Highuni06BC.init_Highuni0750.init_Highuni0756.init_Highuni0768.init_Highuni06CE.init_Highuni0775.init_Highuni06BD.init_Highuni0626.init_Highuni066E.init_Highuni0620.init_Highuni064A.init_Highuni06BB.init_Highuni067F.init_Highuni0755.init_Highuni067D.init_Highuni067E.init_Highuni067B.init_Highuni0628.init_Highuni067A.init_Highuni0751.init_Highuni0646.init_Highuni0753.init_Highuni0752.init_Highuni062A.init_Highuni0678.init_Highuni063D.init_Highuni062B.init_Highuni0679.init_Highuni06B9.init_Highuni0769.init_Highuni0649.init_Highuni067C.init_Highuni0754.init_Highuni06D1.init_Highuni06D0.init_Highuni06BA.init_Highuni06CC.init_Highuni0767.init_Highuni0777.medi_Highuni0680.medi_Highuni0776.medi_Highuni06BC.medi_Highuni0750.medi_Highuni0756.medi_Highuni0768.medi_Highuni06CE.medi_Highuni0775.medi_Highuni06BD.medi_Highuni0626.medi_Highuni066E.medi_Highuni0620.medi_Highuni064A.medi_Highuni06BB.medi_Highuni067F.medi_Highuni0755.medi_Highuni067D.medi_Highuni067E.medi_Highuni067B.medi_Highuni0628.medi_Highuni067A.medi_Highuni0751.medi_Highuni0646.medi_Highuni0753.medi_Highuni0752.medi_Highuni062A.medi_Highuni0678.medi_Highuni063D.medi_Highuni062B.medi_Highuni0679.medi_Highuni06B9.medi_Highuni0769.medi_Highuni0649.medi_Highuni067C.medi_Highuni0754.medi_Highuni06D1.medi_Highuni06D0.medi_Highuni06BA.medi_Highuni06CC.medi_Highuni0767.medi_Highuni06FA.fina_BaaSenuni076D.fina_BaaSenuni0633.fina_BaaSenuni077E.fina_BaaSenuni077D.fina_BaaSenuni0634.fina_BaaSenuni0770.fina_BaaSenuni075C.fina_BaaSenuni069A.fina_BaaSenuni069B.fina_BaaSenuni069C.fina_BaaSenuni0645.fina_PostToothuni0777.init_Wideuni0680.init_Wideuni0776.init_Wideuni06BC.init_Wideuni0750.init_Wideuni0756.init_Wideuni0768.init_Wideuni06CE.init_Wideuni0775.init_Wideuni06BD.init_Wideuni0626.init_Wideuni066E.init_Wideuni0620.init_Wideuni064A.init_Wideuni06BB.init_Wideuni067F.init_Wideuni0755.init_Wideuni067D.init_Wideuni067E.init_Wideuni067B.init_Wideuni0628.init_Wideuni067A.init_Wideuni0751.init_Wideuni0646.init_Wideuni0753.init_Wideuni0752.init_Wideuni062A.init_Wideuni0678.init_Wideuni063D.init_Wideuni062B.init_Wideuni0679.init_Wideuni06B9.init_Wideuni0769.init_Wideuni0649.init_Wideuni067C.init_Wideuni0754.init_Wideuni06D1.init_Wideuni06D0.init_Wideuni06BA.init_Wideuni06CC.init_Wideuni0767.init_Wideuni062E.medi_HaaHaaInituni062D.medi_HaaHaaInituni0681.medi_HaaHaaInituni0687.medi_HaaHaaInituni0685.medi_HaaHaaInituni062C.medi_HaaHaaInituni0682.medi_HaaHaaInituni0757.medi_HaaHaaInituni0684.medi_HaaHaaInituni076F.medi_HaaHaaInituni076E.medi_HaaHaaInituni0683.medi_HaaHaaInituni06BF.medi_HaaHaaInituni077C.medi_HaaHaaInituni0758.medi_HaaHaaInituni0772.medi_HaaHaaInituni0686.medi_HaaHaaInituni062E.medi_AynHaaInituni062D.medi_AynHaaInituni0681.medi_AynHaaInituni0687.medi_AynHaaInituni0685.medi_AynHaaInituni062C.medi_AynHaaInituni0682.medi_AynHaaInituni0757.medi_AynHaaInituni0684.medi_AynHaaInituni076F.medi_AynHaaInituni076E.medi_AynHaaInituni0683.medi_AynHaaInituni06BF.medi_AynHaaInituni077C.medi_AynHaaInituni0758.medi_AynHaaInituni0772.medi_AynHaaInituni0686.medi_AynHaaInituni0645.medi_LamMemInitTatweeluni0647.init_AboveHaauni06C1.init_AboveHaauni062E.init_AboveHaauni062D.init_AboveHaauni0681.init_AboveHaauni0687.init_AboveHaauni0685.init_AboveHaauni062C.init_AboveHaauni0682.init_AboveHaauni0757.init_AboveHaauni0684.init_AboveHaauni076F.init_AboveHaauni076E.init_AboveHaauni0683.init_AboveHaauni06BF.init_AboveHaauni077C.init_AboveHaauni0758.init_AboveHaauni0772.init_AboveHaauni0686.init_AboveHaauni06FC.init_AboveHaauni063A.init_AboveHaauni075E.init_AboveHaauni075D.init_AboveHaauni075F.init_AboveHaauni06A0.init_AboveHaauni0639.init_AboveHaauni062E.fina_AboveHaaIsol2uni062D.fina_AboveHaaIsol2uni0681.fina_AboveHaaIsol2uni0687.fina_AboveHaaIsol2uni0685.fina_AboveHaaIsol2uni062C.fina_AboveHaaIsol2uni0682.fina_AboveHaaIsol2uni0757.fina_AboveHaaIsol2uni0684.fina_AboveHaaIsol2uni076F.fina_AboveHaaIsol2uni076E.fina_AboveHaaIsol2uni0683.fina_AboveHaaIsol2uni06BF.fina_AboveHaaIsol2uni077C.fina_AboveHaaIsol2uni0758.fina_AboveHaaIsol2uni0772.fina_AboveHaaIsol2uni0686.fina_AboveHaaIsol2uni0645.init_AboveHaauni063B.init_AboveHaauni063C.init_AboveHaauni077F.init_AboveHaauni0764.init_AboveHaauni0643.init_AboveHaauni06B0.init_AboveHaauni06B3.init_AboveHaauni06B2.init_AboveHaauni06AB.init_AboveHaauni06AC.init_AboveHaauni06AD.init_AboveHaauni06AE.init_AboveHaauni06AF.init_AboveHaauni06A9.init_AboveHaauni06B4.init_AboveHaauni0763.init_AboveHaauni0762.init_AboveHaauni06B1.init_AboveHaauni063B.init_KafLamuni063C.init_KafLamuni077F.init_KafLamuni0764.init_KafLamuni0643.init_KafLamuni06B0.init_KafLamuni06B3.init_KafLamuni06B2.init_KafLamuni06AB.init_KafLamuni06AC.init_KafLamuni06AD.init_KafLamuni06AE.init_KafLamuni06AF.init_KafLamuni06A9.init_KafLamuni06B4.init_KafLamuni0763.init_KafLamuni0762.init_KafLamuni06B1.init_KafLamuni063B.fina_KafKafFinauni063C.fina_KafKafFinauni077F.fina_KafKafFinauni0764.fina_KafKafFinauni0643.fina_KafKafFinauni06B0.fina_KafKafFinauni06B3.fina_KafKafFinauni06B2.fina_KafKafFinauni06AB.fina_KafKafFinauni06AC.fina_KafKafFinauni06AD.fina_KafKafFinauni06AE.fina_KafKafFinauni06AF.fina_KafKafFinauni06A9.fina_KafKafFinauni06B4.fina_KafKafFinauni0763.fina_KafKafFinauni0762.fina_KafKafFinauni06B1.fina_KafKafFinauni06B5.medi_KafLamuni06B7.medi_KafLamuni0644.medi_KafLamuni06B8.medi_KafLamuni06B6.medi_KafLamuni076A.medi_KafLamuni06B5.medi_KafLamMemMediuni06B7.medi_KafLamMemMediuni0644.medi_KafLamMemMediuni06B8.medi_KafLamMemMediuni06B6.medi_KafLamMemMediuni076A.medi_KafLamMemMediuni063B.medi_KafLamuni063C.medi_KafLamuni077F.medi_KafLamuni0764.medi_KafLamuni0643.medi_KafLamuni06B0.medi_KafLamuni06B3.medi_KafLamuni06B2.medi_KafLamuni06AB.medi_KafLamuni06AC.medi_KafLamuni06AD.medi_KafLamuni06AE.medi_KafLamuni06AF.medi_KafLamuni06A9.medi_KafLamuni06B4.medi_KafLamuni0763.medi_KafLamuni0762.medi_KafLamuni06B1.medi_KafLamuni06B5.medi_KafLamHehIsoluni06B7.medi_KafLamHehIsoluni0644.medi_KafLamHehIsoluni06B8.medi_KafLamHehIsoluni06B6.medi_KafLamHehIsoluni076A.medi_KafLamHehIsoluni06B5.medi_KafLamYaauni06B7.medi_KafLamYaauni0644.medi_KafLamYaauni06B8.medi_KafLamYaauni06B6.medi_KafLamYaauni076A.medi_KafLamYaauni06B5.medi_KafLamAlfuni06B7.medi_KafLamAlfuni0644.medi_KafLamAlfuni06B8.medi_KafLamAlfuni06B6.medi_KafLamAlfuni076A.medi_KafLamAlfuni06B5.fina_KafLamuni06B7.fina_KafLamuni0644.fina_KafLamuni06B8.fina_KafLamuni06B6.fina_KafLamuni076A.fina_KafLamuni0625.fina_KafAlfuni0627.fina_KafAlfuni0774.fina_KafAlfuni0773.fina_KafAlfuni0623.fina_KafAlfuni0622.fina_KafAlfuni0675.fina_KafAlfuni0672.fina_KafAlfuni0673.fina_KafAlfuni0671.fina_KafAlfuni063B.init_KafMemAlfuni063C.init_KafMemAlfuni077F.init_KafMemAlfuni0764.init_KafMemAlfuni0643.init_KafMemAlfuni06B0.init_KafMemAlfuni06B3.init_KafMemAlfuni06B2.init_KafMemAlfuni06AB.init_KafMemAlfuni06AC.init_KafMemAlfuni06AD.init_KafMemAlfuni06AE.init_KafMemAlfuni06AF.init_KafMemAlfuni06A9.init_KafMemAlfuni06B4.init_KafMemAlfuni0763.init_KafMemAlfuni0762.init_KafMemAlfuni06B1.init_KafMemAlfuni063B.medi_KafMemAlfuni063C.medi_KafMemAlfuni077F.medi_KafMemAlfuni0764.medi_KafMemAlfuni0643.medi_KafMemAlfuni06B0.medi_KafMemAlfuni06B3.medi_KafMemAlfuni06B2.medi_KafMemAlfuni06AB.medi_KafMemAlfuni06AC.medi_KafMemAlfuni06AD.medi_KafMemAlfuni06AE.medi_KafMemAlfuni06AF.medi_KafMemAlfuni06A9.medi_KafMemAlfuni06B4.medi_KafMemAlfuni0763.medi_KafMemAlfuni0762.medi_KafMemAlfuni06B1.medi_KafMemAlfuni0645.medi_KafMemAlfuni06B5.medi_KafMemLamuni06B7.medi_KafMemLamuni0644.medi_KafMemLamuni06B8.medi_KafMemLamuni06B6.medi_KafMemLamuni076A.medi_KafMemLamuni06B5.fina_KafMemLamuni06B7.fina_KafMemLamuni0644.fina_KafMemLamuni06B8.fina_KafMemLamuni06B6.fina_KafMemLamuni076A.fina_KafMemLamuni0625.fina_KafMemAlfuni0627.fina_KafMemAlfuni0774.fina_KafMemAlfuni0773.fina_KafMemAlfuni0623.fina_KafMemAlfuni0622.fina_KafMemAlfuni0675.fina_KafMemAlfuni0672.fina_KafMemAlfuni0673.fina_KafMemAlfuni0671.fina_KafMemAlfuni063B.init_KafHehuni063C.init_KafHehuni077F.init_KafHehuni0764.init_KafHehuni0643.init_KafHehuni06B0.init_KafHehuni06B3.init_KafHehuni06B2.init_KafHehuni06AB.init_KafHehuni06AC.init_KafHehuni06AD.init_KafHehuni06AE.init_KafHehuni06AF.init_KafHehuni06A9.init_KafHehuni06B4.init_KafHehuni0763.init_KafHehuni0762.init_KafHehuni06B1.init_KafHehuni063B.medi_KafHehuni063C.medi_KafHehuni077F.medi_KafHehuni0764.medi_KafHehuni0643.medi_KafHehuni06B0.medi_KafHehuni06B3.medi_KafHehuni06B2.medi_KafHehuni06AB.medi_KafHehuni06AC.medi_KafHehuni06AD.medi_KafHehuni06AE.medi_KafHehuni06AF.medi_KafHehuni06A9.medi_KafHehuni06B4.medi_KafHehuni0763.medi_KafHehuni0762.medi_KafHehuni06B1.medi_KafHehuni0647.fina_KafHehuni06C1.fina_KafHehuni06C3.fina_KafHehuni06D5.fina_KafHehuni0629.fina_KafHehuni0690.fina_KafDaluni06EE.fina_KafDaluni0689.fina_KafDaluni0688.fina_KafDaluni075A.fina_KafDaluni0630.fina_KafDaluni062F.fina_KafDaluni0759.fina_KafDaluni068C.fina_KafDaluni068B.fina_KafDaluni068A.fina_KafDaluni068F.fina_KafDaluni068E.fina_KafDaluni068D.fina_KafDaluni06B5.init_LamHehuni06B7.init_LamHehuni0644.init_LamHehuni06B8.init_LamHehuni06B6.init_LamHehuni076A.init_LamHehuni06B5.medi_LamHehuni06B7.medi_LamHehuni0644.medi_LamHehuni06B8.medi_LamHehuni06B6.medi_LamHehuni076A.medi_LamHehuni0647.fina_LamHehuni06C1.fina_LamHehuni06C3.fina_LamHehuni06D5.fina_LamHehuni0629.fina_LamHehuni0690.fina_LamDaluni06EE.fina_LamDaluni0689.fina_LamDaluni0688.fina_LamDaluni075A.fina_LamDaluni0630.fina_LamDaluni062F.fina_LamDaluni0759.fina_LamDaluni068C.fina_LamDaluni068B.fina_LamDaluni068A.fina_LamDaluni068F.fina_LamDaluni068E.fina_LamDaluni068D.fina_LamDaluni063B.medi_KafMemMediuni063C.medi_KafMemMediuni077F.medi_KafMemMediuni0764.medi_KafMemMediuni0643.medi_KafMemMediuni06B0.medi_KafMemMediuni06B3.medi_KafMemMediuni06B2.medi_KafMemMediuni06AB.medi_KafMemMediuni06AC.medi_KafMemMediuni06AD.medi_KafMemMediuni06AE.medi_KafMemMediuni06AF.medi_KafMemMediuni06A9.medi_KafMemMediuni06B4.medi_KafMemMediuni0763.medi_KafMemMediuni0762.medi_KafMemMediuni06B1.medi_KafMemMediuni063B.init_KafMemInituni063C.init_KafMemInituni077F.init_KafMemInituni0764.init_KafMemInituni0643.init_KafMemInituni06B0.init_KafMemInituni06B3.init_KafMemInituni06B2.init_KafMemInituni06AB.init_KafMemInituni06AC.init_KafMemInituni06AD.init_KafMemInituni06AE.init_KafMemInituni06AF.init_KafMemInituni06A9.init_KafMemInituni06B4.init_KafMemInituni0763.init_KafMemInituni0762.init_KafMemInituni06B1.init_KafMemInituni06FC.init_AynMemInituni063A.init_AynMemInituni075E.init_AynMemInituni075D.init_AynMemInituni075F.init_AynMemInituni06A0.init_AynMemInituni0639.init_AynMemInituni066F.init_FaaMemInituni0761.init_FaaMemInituni0760.init_FaaMemInituni0642.init_FaaMemInituni0641.init_FaaMemInituni06A8.init_FaaMemInituni06A1.init_FaaMemInituni06A2.init_FaaMemInituni06A3.init_FaaMemInituni06A4.init_FaaMemInituni06A5.init_FaaMemInituni06A6.init_FaaMemInituni06A7.init_FaaMemInituni062E.init_HaaMemInituni062D.init_HaaMemInituni0681.init_HaaMemInituni0687.init_HaaMemInituni0685.init_HaaMemInituni062C.init_HaaMemInituni0682.init_HaaMemInituni0757.init_HaaMemInituni0684.init_HaaMemInituni076F.init_HaaMemInituni076E.init_HaaMemInituni0683.init_HaaMemInituni06BF.init_HaaMemInituni077C.init_HaaMemInituni0758.init_HaaMemInituni0772.init_HaaMemInituni0686.init_HaaMemInituni0647.init_HehMemInituni06C1.init_HehMemInituni0645.medi_KafMemMediuni06FA.init_SenMemInituni076D.init_SenMemInituni0633.init_SenMemInituni077E.init_SenMemInituni077D.init_SenMemInituni0634.init_SenMemInituni0770.init_SenMemInituni075C.init_SenMemInituni069A.init_SenMemInituni069B.init_SenMemInituni069C.init_SenMemInituni069D.init_SadMemInituni06FB.init_SadMemInituni0636.init_SadMemInituni069E.init_SadMemInituni0635.init_SadMemInituni0645.init_MemMemInituni0645.medi_SenMemInituni063B.init_KafYaaIsoluni063C.init_KafYaaIsoluni077F.init_KafYaaIsoluni0764.init_KafYaaIsoluni0643.init_KafYaaIsoluni06B0.init_KafYaaIsoluni06B3.init_KafYaaIsoluni06B2.init_KafYaaIsoluni06AB.init_KafYaaIsoluni06AC.init_KafYaaIsoluni06AD.init_KafYaaIsoluni06AE.init_KafYaaIsoluni06AF.init_KafYaaIsoluni06A9.init_KafYaaIsoluni06B4.init_KafYaaIsoluni0763.init_KafYaaIsoluni0762.init_KafYaaIsoluni06B1.init_KafYaaIsoluni0777.init_BaaYaaIsoluni0680.init_BaaYaaIsoluni0776.init_BaaYaaIsoluni06BC.init_BaaYaaIsoluni0750.init_BaaYaaIsoluni0756.init_BaaYaaIsoluni0768.init_BaaYaaIsoluni06CE.init_BaaYaaIsoluni0775.init_BaaYaaIsoluni06BD.init_BaaYaaIsoluni0626.init_BaaYaaIsoluni066E.init_BaaYaaIsoluni0620.init_BaaYaaIsoluni064A.init_BaaYaaIsoluni06BB.init_BaaYaaIsoluni067F.init_BaaYaaIsoluni0755.init_BaaYaaIsoluni067D.init_BaaYaaIsoluni067E.init_BaaYaaIsoluni067B.init_BaaYaaIsoluni0628.init_BaaYaaIsoluni067A.init_BaaYaaIsoluni0751.init_BaaYaaIsoluni0646.init_BaaYaaIsoluni0753.init_BaaYaaIsoluni0752.init_BaaYaaIsoluni062A.init_BaaYaaIsoluni0678.init_BaaYaaIsoluni063D.init_BaaYaaIsoluni062B.init_BaaYaaIsoluni0679.init_BaaYaaIsoluni06B9.init_BaaYaaIsoluni0769.init_BaaYaaIsoluni0649.init_BaaYaaIsoluni067C.init_BaaYaaIsoluni0754.init_BaaYaaIsoluni06D1.init_BaaYaaIsoluni06D0.init_BaaYaaIsoluni06BA.init_BaaYaaIsoluni06CC.init_BaaYaaIsoluni0767.init_BaaYaaIsoluni062E.init_HaaYaaIsoluni062D.init_HaaYaaIsoluni0681.init_HaaYaaIsoluni0687.init_HaaYaaIsoluni0685.init_HaaYaaIsoluni062C.init_HaaYaaIsoluni0682.init_HaaYaaIsoluni0757.init_HaaYaaIsoluni0684.init_HaaYaaIsoluni076F.init_HaaYaaIsoluni076E.init_HaaYaaIsoluni0683.init_HaaYaaIsoluni06BF.init_HaaYaaIsoluni077C.init_HaaYaaIsoluni0758.init_HaaYaaIsoluni0772.init_HaaYaaIsoluni0686.init_HaaYaaIsoluni0765.init_MemYaaIsoluni0645.init_MemYaaIsoluni0766.init_MemYaaIsoluni066F.init_FaaYaaIsoluni0761.init_FaaYaaIsoluni0760.init_FaaYaaIsoluni0642.init_FaaYaaIsoluni0641.init_FaaYaaIsoluni06A8.init_FaaYaaIsoluni06A1.init_FaaYaaIsoluni06A2.init_FaaYaaIsoluni06A3.init_FaaYaaIsoluni06A4.init_FaaYaaIsoluni06A5.init_FaaYaaIsoluni06A6.init_FaaYaaIsoluni06A7.init_FaaYaaIsoluni06FC.init_AynYaaIsoluni063A.init_AynYaaIsoluni075E.init_AynYaaIsoluni075D.init_AynYaaIsoluni075F.init_AynYaaIsoluni06A0.init_AynYaaIsoluni0639.init_AynYaaIsoluni06B5.init_LamYaaIsoluni06B7.init_LamYaaIsoluni0644.init_LamYaaIsoluni06B8.init_LamYaaIsoluni06B6.init_LamYaaIsoluni076A.init_LamYaaIsoluni0647.init_HehYaaIsoluni06C1.init_HehYaaIsoluni0777.fina_KafYaaIsoluni06D1.fina_KafYaaIsoluni0775.fina_KafYaaIsoluni063F.fina_KafYaaIsoluni0678.fina_KafYaaIsoluni063D.fina_KafYaaIsoluni063E.fina_KafYaaIsoluni06D0.fina_KafYaaIsoluni0649.fina_KafYaaIsoluni0776.fina_KafYaaIsoluni06CD.fina_KafYaaIsoluni06CC.fina_KafYaaIsoluni0626.fina_KafYaaIsoluni0620.fina_KafYaaIsoluni064A.fina_KafYaaIsoluni06CE.fina_KafYaaIsoluni063B.init_KafMemIsoluni063C.init_KafMemIsoluni077F.init_KafMemIsoluni0764.init_KafMemIsoluni0643.init_KafMemIsoluni06B0.init_KafMemIsoluni06B3.init_KafMemIsoluni06B2.init_KafMemIsoluni06AB.init_KafMemIsoluni06AC.init_KafMemIsoluni06AD.init_KafMemIsoluni06AE.init_KafMemIsoluni06AF.init_KafMemIsoluni06A9.init_KafMemIsoluni06B4.init_KafMemIsoluni0763.init_KafMemIsoluni0762.init_KafMemIsoluni06B1.init_KafMemIsoluni06B5.init_LamMemIsoluni06B7.init_LamMemIsoluni0644.init_LamMemIsoluni06B8.init_LamMemIsoluni06B6.init_LamMemIsoluni076A.init_LamMemIsoluni0777.init_BaaMemIsoluni0680.init_BaaMemIsoluni0776.init_BaaMemIsoluni06BC.init_BaaMemIsoluni0750.init_BaaMemIsoluni0756.init_BaaMemIsoluni0768.init_BaaMemIsoluni06CE.init_BaaMemIsoluni0775.init_BaaMemIsoluni06BD.init_BaaMemIsoluni0626.init_BaaMemIsoluni066E.init_BaaMemIsoluni0620.init_BaaMemIsoluni064A.init_BaaMemIsoluni06BB.init_BaaMemIsoluni067F.init_BaaMemIsoluni0755.init_BaaMemIsoluni067D.init_BaaMemIsoluni067E.init_BaaMemIsoluni067B.init_BaaMemIsoluni0628.init_BaaMemIsoluni067A.init_BaaMemIsoluni0751.init_BaaMemIsoluni0646.init_BaaMemIsoluni0753.init_BaaMemIsoluni0752.init_BaaMemIsoluni062A.init_BaaMemIsoluni0678.init_BaaMemIsoluni063D.init_BaaMemIsoluni062B.init_BaaMemIsoluni0679.init_BaaMemIsoluni06B9.init_BaaMemIsoluni0769.init_BaaMemIsoluni0649.init_BaaMemIsoluni067C.init_BaaMemIsoluni0754.init_BaaMemIsoluni06D1.init_BaaMemIsoluni06D0.init_BaaMemIsoluni06BA.init_BaaMemIsoluni06CC.init_BaaMemIsoluni0767.init_BaaMemIsoluni0645.fina_KafMemIsoluni0645.medi_MemAlfFinauni0777.medi_BaaMemAlfFinauni0680.medi_BaaMemAlfFinauni0776.medi_BaaMemAlfFinauni06BC.medi_BaaMemAlfFinauni0750.medi_BaaMemAlfFinauni0756.medi_BaaMemAlfFinauni0768.medi_BaaMemAlfFinauni06CE.medi_BaaMemAlfFinauni0775.medi_BaaMemAlfFinauni06BD.medi_BaaMemAlfFinauni0626.medi_BaaMemAlfFinauni066E.medi_BaaMemAlfFinauni0620.medi_BaaMemAlfFinauni064A.medi_BaaMemAlfFinauni06BB.medi_BaaMemAlfFinauni067F.medi_BaaMemAlfFinauni0755.medi_BaaMemAlfFinauni067D.medi_BaaMemAlfFinauni067E.medi_BaaMemAlfFinauni067B.medi_BaaMemAlfFinauni0628.medi_BaaMemAlfFinauni067A.medi_BaaMemAlfFinauni0751.medi_BaaMemAlfFinauni0646.medi_BaaMemAlfFinauni0753.medi_BaaMemAlfFinauni0752.medi_BaaMemAlfFinauni062A.medi_BaaMemAlfFinauni0678.medi_BaaMemAlfFinauni063D.medi_BaaMemAlfFinauni062B.medi_BaaMemAlfFinauni0679.medi_BaaMemAlfFinauni06B9.medi_BaaMemAlfFinauni0769.medi_BaaMemAlfFinauni0649.medi_BaaMemAlfFinauni067C.medi_BaaMemAlfFinauni0754.medi_BaaMemAlfFinauni06D1.medi_BaaMemAlfFinauni06D0.medi_BaaMemAlfFinauni06BA.medi_BaaMemAlfFinauni06CC.medi_BaaMemAlfFinauni0767.medi_BaaMemAlfFinauni0645.medi_BaaMemAlfFinauni0645.medi_AlfPostToothuni0625.fina_MemAlfFinauni0627.fina_MemAlfFinauni0774.fina_MemAlfFinauni0773.fina_MemAlfFinauni0623.fina_MemAlfFinauni0622.fina_MemAlfFinauni0675.fina_MemAlfFinauni0672.fina_MemAlfFinauni0673.fina_MemAlfFinauni0671.fina_MemAlfFinauni0777.init_BaaHehInituni0680.init_BaaHehInituni0776.init_BaaHehInituni06BC.init_BaaHehInituni0750.init_BaaHehInituni0756.init_BaaHehInituni0768.init_BaaHehInituni06CE.init_BaaHehInituni0775.init_BaaHehInituni06BD.init_BaaHehInituni0626.init_BaaHehInituni066E.init_BaaHehInituni0620.init_BaaHehInituni064A.init_BaaHehInituni06BB.init_BaaHehInituni067F.init_BaaHehInituni0755.init_BaaHehInituni067D.init_BaaHehInituni067E.init_BaaHehInituni067B.init_BaaHehInituni0628.init_BaaHehInituni067A.init_BaaHehInituni0751.init_BaaHehInituni0646.init_BaaHehInituni0753.init_BaaHehInituni0752.init_BaaHehInituni062A.init_BaaHehInituni0678.init_BaaHehInituni063D.init_BaaHehInituni062B.init_BaaHehInituni0679.init_BaaHehInituni06B9.init_BaaHehInituni0769.init_BaaHehInituni0649.init_BaaHehInituni067C.init_BaaHehInituni0754.init_BaaHehInituni06D1.init_BaaHehInituni06D0.init_BaaHehInituni06BA.init_BaaHehInituni06CC.init_BaaHehInituni0767.init_BaaHehInituni0777.medi_BaaHehMediuni0680.medi_BaaHehMediuni0776.medi_BaaHehMediuni06BC.medi_BaaHehMediuni0750.medi_BaaHehMediuni0756.medi_BaaHehMediuni0768.medi_BaaHehMediuni06CE.medi_BaaHehMediuni0775.medi_BaaHehMediuni06BD.medi_BaaHehMediuni0626.medi_BaaHehMediuni066E.medi_BaaHehMediuni0620.medi_BaaHehMediuni064A.medi_BaaHehMediuni06BB.medi_BaaHehMediuni067F.medi_BaaHehMediuni0755.medi_BaaHehMediuni067D.medi_BaaHehMediuni067E.medi_BaaHehMediuni067B.medi_BaaHehMediuni0628.medi_BaaHehMediuni067A.medi_BaaHehMediuni0751.medi_BaaHehMediuni0646.medi_BaaHehMediuni0753.medi_BaaHehMediuni0752.medi_BaaHehMediuni062A.medi_BaaHehMediuni0678.medi_BaaHehMediuni063D.medi_BaaHehMediuni062B.medi_BaaHehMediuni0679.medi_BaaHehMediuni06B9.medi_BaaHehMediuni0769.medi_BaaHehMediuni0649.medi_BaaHehMediuni067C.medi_BaaHehMediuni0754.medi_BaaHehMediuni06D1.medi_BaaHehMediuni06D0.medi_BaaHehMediuni06BA.medi_BaaHehMediuni06CC.medi_BaaHehMediuni0767.medi_BaaHehMediuni0647.medi_BaaHehMediuni06C1.medi_BaaHehMediuni0647.medi_PostToothuni06C1.medi_PostToothuni06B5.medi_KafLamMemFinauni06B7.medi_KafLamMemFinauni0644.medi_KafLamMemFinauni06B8.medi_KafLamMemFinauni06B6.medi_KafLamMemFinauni076A.medi_KafLamMemFinauni06B5.init_LamLamInituni06B7.init_LamLamInituni0644.init_LamLamInituni06B8.init_LamLamInituni06B6.init_LamLamInituni076A.init_LamLamInituni06B5.medi_LamLamInituni06B7.medi_LamLamInituni0644.medi_LamLamInituni06B8.medi_LamLamInituni06B6.medi_LamLamInituni076A.medi_LamLamInituni06B5.medi_LamLamAlfIsoluni06B7.medi_LamLamAlfIsoluni0644.medi_LamLamAlfIsoluni06B8.medi_LamLamAlfIsoluni06B6.medi_LamLamAlfIsoluni076A.medi_LamLamAlfIsoluni063B.fina_LamKafIsoluni063C.fina_LamKafIsoluni077F.fina_LamKafIsoluni0764.fina_LamKafIsoluni0643.fina_LamKafIsoluni06B0.fina_LamKafIsoluni06B3.fina_LamKafIsoluni06B2.fina_LamKafIsoluni06AB.fina_LamKafIsoluni06AC.fina_LamKafIsoluni06AD.fina_LamKafIsoluni06AE.fina_LamKafIsoluni06AF.fina_LamKafIsoluni06A9.fina_LamKafIsoluni06B4.fina_LamKafIsoluni0763.fina_LamKafIsoluni0762.fina_LamKafIsoluni06B1.fina_LamKafIsoluni06B5.fina_LamLamIsoluni06B7.fina_LamLamIsoluni0644.fina_LamLamIsoluni06B8.fina_LamLamIsoluni06B6.fina_LamLamIsoluni076A.fina_LamLamIsoluni06B5.medi_LamLamMediuni06B7.medi_LamLamMediuni0644.medi_LamLamMediuni06B8.medi_LamLamMediuni06B6.medi_LamLamMediuni076A.medi_LamLamMediuni06B5.medi_LamLamAlefFinauni06B7.medi_LamLamAlefFinauni0644.medi_LamLamAlefFinauni06B8.medi_LamLamAlefFinauni06B6.medi_LamLamAlefFinauni076A.medi_LamLamAlefFinauni06B5.medi_LamLamMedi2uni06B7.medi_LamLamMedi2uni0644.medi_LamLamMedi2uni06B8.medi_LamLamMedi2uni06B6.medi_LamLamMedi2uni076A.medi_LamLamMedi2uni063B.fina_LamKafFinauni063C.fina_LamKafFinauni077F.fina_LamKafFinauni0764.fina_LamKafFinauni0643.fina_LamKafFinauni06B0.fina_LamKafFinauni06B3.fina_LamKafFinauni06B2.fina_LamKafFinauni06AB.fina_LamKafFinauni06AC.fina_LamKafFinauni06AD.fina_LamKafFinauni06AE.fina_LamKafFinauni06AF.fina_LamKafFinauni06A9.fina_LamKafFinauni06B4.fina_LamKafFinauni0763.fina_LamKafFinauni0762.fina_LamKafFinauni06B1.fina_LamKafFinauni06B5.fina_LamLamFinauni06B7.fina_LamLamFinauni0644.fina_LamLamFinauni06B8.fina_LamLamFinauni06B6.fina_LamLamFinauni076A.fina_LamLamFinauni06B5.medi_LamLamMemInituni06B7.medi_LamLamMemInituni0644.medi_LamLamMemInituni06B8.medi_LamLamMemInituni06B6.medi_LamLamMemInituni076A.medi_LamLamMemInituni06B5.medi_LamLamHehIsoluni06B7.medi_LamLamHehIsoluni0644.medi_LamLamHehIsoluni06B8.medi_LamLamHehIsoluni06B6.medi_LamLamHehIsoluni076A.medi_LamLamHehIsoluni06B5.medi_LamLamYaaIsoluni06B7.medi_LamLamYaaIsoluni0644.medi_LamLamYaaIsoluni06B8.medi_LamLamYaaIsoluni06B6.medi_LamLamYaaIsoluni076A.medi_LamLamYaaIsoluni06B5.medi_LamLamMemMediuni06B7.medi_LamLamMemMediuni0644.medi_LamLamMemMediuni06B8.medi_LamLamMemMediuni06B6.medi_LamLamMemMediuni076A.medi_LamLamMemMediuni06B5.medi_LamLamHehFinauni06B7.medi_LamLamHehFinauni0644.medi_LamLamHehFinauni06B8.medi_LamLamHehFinauni06B6.medi_LamLamHehFinauni076A.medi_LamLamHehFinauni06B5.medi_LamLamYaaFinauni06B7.medi_LamLamYaaFinauni0644.medi_LamLamYaaFinauni06B8.medi_LamLamYaaFinauni06B6.medi_LamLamYaaFinauni076A.medi_LamLamYaaFinauni062E.medi_1LamHaaHaaInituni062D.medi_1LamHaaHaaInituni0681.medi_1LamHaaHaaInituni0687.medi_1LamHaaHaaInituni0685.medi_1LamHaaHaaInituni062C.medi_1LamHaaHaaInituni0682.medi_1LamHaaHaaInituni0757.medi_1LamHaaHaaInituni0684.medi_1LamHaaHaaInituni076F.medi_1LamHaaHaaInituni076E.medi_1LamHaaHaaInituni0683.medi_1LamHaaHaaInituni06BF.medi_1LamHaaHaaInituni077C.medi_1LamHaaHaaInituni0758.medi_1LamHaaHaaInituni0772.medi_1LamHaaHaaInituni0686.medi_1LamHaaHaaInituni062E.medi_2LamHaaHaaInituni062D.medi_2LamHaaHaaInituni0681.medi_2LamHaaHaaInituni0687.medi_2LamHaaHaaInituni0685.medi_2LamHaaHaaInituni062C.medi_2LamHaaHaaInituni0682.medi_2LamHaaHaaInituni0757.medi_2LamHaaHaaInituni0684.medi_2LamHaaHaaInituni076F.medi_2LamHaaHaaInituni076E.medi_2LamHaaHaaInituni0683.medi_2LamHaaHaaInituni06BF.medi_2LamHaaHaaInituni077C.medi_2LamHaaHaaInituni0758.medi_2LamHaaHaaInituni0772.medi_2LamHaaHaaInituni0686.medi_2LamHaaHaaInit uni06AA.init uni06AA.medi uni06AA.finauni0625.LowHamzauni0673.LowHamzauni0680.init_LDuni06BD.init_LDuni067E.init_LDuni067B.init_LDuni0628.init_LDuni0767.init_LDuni063D.init_LDuni0777.init_LDuni0776.init_LDuni0775.init_LDuni06CC.init_LDuni064A.init_LDuni06CE.init_LDuni0751.init_LDuni0750.init_LDuni0753.init_LDuni0752.init_LDuni0755.init_LDuni0754.init_LDuni06B9.init_LDuni06D1.init_LDuni06D0.init_LDuni0680.init_BaaRaaIsolLDuni06BD.init_BaaRaaIsolLDuni067E.init_BaaRaaIsolLDuni067B.init_BaaRaaIsolLDuni0628.init_BaaRaaIsolLDuni0767.init_BaaRaaIsolLDuni063D.init_BaaRaaIsolLDuni0777.init_BaaRaaIsolLDuni0776.init_BaaRaaIsolLDuni0775.init_BaaRaaIsolLDuni06CC.init_BaaRaaIsolLDuni064A.init_BaaRaaIsolLDuni06CE.init_BaaRaaIsolLDuni0751.init_BaaRaaIsolLDuni0750.init_BaaRaaIsolLDuni0753.init_BaaRaaIsolLDuni0752.init_BaaRaaIsolLDuni0755.init_BaaRaaIsolLDuni0754.init_BaaRaaIsolLDuni06B9.init_BaaRaaIsolLDuni06D1.init_BaaRaaIsolLDuni06D0.init_BaaRaaIsolLDuni0680.init_BaaDalLDuni06BD.init_BaaDalLDuni067E.init_BaaDalLDuni067B.init_BaaDalLDuni0628.init_BaaDalLDuni0767.init_BaaDalLDuni063D.init_BaaDalLDuni0777.init_BaaDalLDuni0776.init_BaaDalLDuni0775.init_BaaDalLDuni06CC.init_BaaDalLDuni064A.init_BaaDalLDuni06CE.init_BaaDalLDuni0751.init_BaaDalLDuni0750.init_BaaDalLDuni0753.init_BaaDalLDuni0752.init_BaaDalLDuni0755.init_BaaDalLDuni0754.init_BaaDalLDuni06B9.init_BaaDalLDuni06D1.init_BaaDalLDuni06D0.init_BaaDalLDuni0680.init_BaaMemHaaInitLDuni06BD.init_BaaMemHaaInitLDuni067E.init_BaaMemHaaInitLDuni067B.init_BaaMemHaaInitLDuni0628.init_BaaMemHaaInitLDuni0767.init_BaaMemHaaInitLDuni063D.init_BaaMemHaaInitLDuni0777.init_BaaMemHaaInitLDuni0776.init_BaaMemHaaInitLDuni0775.init_BaaMemHaaInitLDuni06CC.init_BaaMemHaaInitLDuni064A.init_BaaMemHaaInitLDuni06CE.init_BaaMemHaaInitLDuni0751.init_BaaMemHaaInitLDuni0750.init_BaaMemHaaInitLDuni0753.init_BaaMemHaaInitLDuni0752.init_BaaMemHaaInitLDuni0755.init_BaaMemHaaInitLDuni0754.init_BaaMemHaaInitLDuni06B9.init_BaaMemHaaInitLDuni06D1.init_BaaMemHaaInitLDuni06D0.init_BaaMemHaaInitLDuni0680.init_BaaBaaYaaLDuni06BD.init_BaaBaaYaaLDuni067E.init_BaaBaaYaaLDuni067B.init_BaaBaaYaaLDuni0628.init_BaaBaaYaaLDuni0767.init_BaaBaaYaaLDuni063D.init_BaaBaaYaaLDuni0777.init_BaaBaaYaaLDuni0776.init_BaaBaaYaaLDuni0775.init_BaaBaaYaaLDuni06CC.init_BaaBaaYaaLDuni064A.init_BaaBaaYaaLDuni06CE.init_BaaBaaYaaLDuni0751.init_BaaBaaYaaLDuni0750.init_BaaBaaYaaLDuni0753.init_BaaBaaYaaLDuni0752.init_BaaBaaYaaLDuni0755.init_BaaBaaYaaLDuni0754.init_BaaBaaYaaLDuni06B9.init_BaaBaaYaaLDuni06D1.init_BaaBaaYaaLDuni06D0.init_BaaBaaYaaLDuni0680.init_BaaNonIsolLDuni06BD.init_BaaNonIsolLDuni067E.init_BaaNonIsolLDuni067B.init_BaaNonIsolLDuni0628.init_BaaNonIsolLDuni0767.init_BaaNonIsolLDuni063D.init_BaaNonIsolLDuni0777.init_BaaNonIsolLDuni0776.init_BaaNonIsolLDuni0775.init_BaaNonIsolLDuni06CC.init_BaaNonIsolLDuni064A.init_BaaNonIsolLDuni06CE.init_BaaNonIsolLDuni0751.init_BaaNonIsolLDuni0750.init_BaaNonIsolLDuni0753.init_BaaNonIsolLDuni0752.init_BaaNonIsolLDuni0755.init_BaaNonIsolLDuni0754.init_BaaNonIsolLDuni06B9.init_BaaNonIsolLDuni06D1.init_BaaNonIsolLDuni06D0.init_BaaNonIsolLDuni0680.init_BaaSenInitLDuni06BD.init_BaaSenInitLDuni067E.init_BaaSenInitLDuni067B.init_BaaSenInitLDuni0628.init_BaaSenInitLDuni0767.init_BaaSenInitLDuni063D.init_BaaSenInitLDuni0777.init_BaaSenInitLDuni0776.init_BaaSenInitLDuni0775.init_BaaSenInitLDuni06CC.init_BaaSenInitLDuni064A.init_BaaSenInitLDuni06CE.init_BaaSenInitLDuni0751.init_BaaSenInitLDuni0750.init_BaaSenInitLDuni0753.init_BaaSenInitLDuni0752.init_BaaSenInitLDuni0755.init_BaaSenInitLDuni0754.init_BaaSenInitLDuni06B9.init_BaaSenInitLDuni06D1.init_BaaSenInitLDuni06D0.init_BaaSenInitLDuni0680.init_BaaMemInitLDuni06BD.init_BaaMemInitLDuni067E.init_BaaMemInitLDuni067B.init_BaaMemInitLDuni0628.init_BaaMemInitLDuni0767.init_BaaMemInitLDuni063D.init_BaaMemInitLDuni0777.init_BaaMemInitLDuni0776.init_BaaMemInitLDuni0775.init_BaaMemInitLDuni06CC.init_BaaMemInitLDuni064A.init_BaaMemInitLDuni06CE.init_BaaMemInitLDuni0751.init_BaaMemInitLDuni0750.init_BaaMemInitLDuni0753.init_BaaMemInitLDuni0752.init_BaaMemInitLDuni0755.init_BaaMemInitLDuni0754.init_BaaMemInitLDuni06B9.init_BaaMemInitLDuni06D1.init_BaaMemInitLDuni06D0.init_BaaMemInitLDuni0680.init_BaaBaaHaaInitLDuni06BD.init_BaaBaaHaaInitLDuni067E.init_BaaBaaHaaInitLDuni067B.init_BaaBaaHaaInitLDuni0628.init_BaaBaaHaaInitLDuni0767.init_BaaBaaHaaInitLDuni063D.init_BaaBaaHaaInitLDuni0777.init_BaaBaaHaaInitLDuni0776.init_BaaBaaHaaInitLDuni0775.init_BaaBaaHaaInitLDuni06CC.init_BaaBaaHaaInitLDuni064A.init_BaaBaaHaaInitLDuni06CE.init_BaaBaaHaaInitLDuni0751.init_BaaBaaHaaInitLDuni0750.init_BaaBaaHaaInitLDuni0753.init_BaaBaaHaaInitLDuni0752.init_BaaBaaHaaInitLDuni0755.init_BaaBaaHaaInitLDuni0754.init_BaaBaaHaaInitLDuni06B9.init_BaaBaaHaaInitLDuni06D1.init_BaaBaaHaaInitLDuni06D0.init_BaaBaaHaaInitLDuni0680.init_BaaBaaIsolLDuni06BD.init_BaaBaaIsolLDuni067E.init_BaaBaaIsolLDuni067B.init_BaaBaaIsolLDuni0628.init_BaaBaaIsolLDuni0767.init_BaaBaaIsolLDuni063D.init_BaaBaaIsolLDuni0777.init_BaaBaaIsolLDuni0776.init_BaaBaaIsolLDuni0775.init_BaaBaaIsolLDuni06CC.init_BaaBaaIsolLDuni064A.init_BaaBaaIsolLDuni06CE.init_BaaBaaIsolLDuni0751.init_BaaBaaIsolLDuni0750.init_BaaBaaIsolLDuni0753.init_BaaBaaIsolLDuni0752.init_BaaBaaIsolLDuni0755.init_BaaBaaIsolLDuni0754.init_BaaBaaIsolLDuni06B9.init_BaaBaaIsolLDuni06D1.init_BaaBaaIsolLDuni06D0.init_BaaBaaIsolLDuni0680.init_BaaBaaMemInitLDuni06BD.init_BaaBaaMemInitLDuni067E.init_BaaBaaMemInitLDuni067B.init_BaaBaaMemInitLDuni0628.init_BaaBaaMemInitLDuni0767.init_BaaBaaMemInitLDuni063D.init_BaaBaaMemInitLDuni0777.init_BaaBaaMemInitLDuni0776.init_BaaBaaMemInitLDuni0775.init_BaaBaaMemInitLDuni06CC.init_BaaBaaMemInitLDuni064A.init_BaaBaaMemInitLDuni06CE.init_BaaBaaMemInitLDuni0751.init_BaaBaaMemInitLDuni0750.init_BaaBaaMemInitLDuni0753.init_BaaBaaMemInitLDuni0752.init_BaaBaaMemInitLDuni0755.init_BaaBaaMemInitLDuni0754.init_BaaBaaMemInitLDuni06B9.init_BaaBaaMemInitLDuni06D1.init_BaaBaaMemInitLDuni06D0.init_BaaBaaMemInitLDuni0680.init_BaaSenAltInitLDuni06BD.init_BaaSenAltInitLDuni067E.init_BaaSenAltInitLDuni067B.init_BaaSenAltInitLDuni0628.init_BaaSenAltInitLDuni0767.init_BaaSenAltInitLDuni063D.init_BaaSenAltInitLDuni0777.init_BaaSenAltInitLDuni0776.init_BaaSenAltInitLDuni0775.init_BaaSenAltInitLDuni06CC.init_BaaSenAltInitLDuni064A.init_BaaSenAltInitLDuni06CE.init_BaaSenAltInitLDuni0751.init_BaaSenAltInitLDuni0750.init_BaaSenAltInitLDuni0753.init_BaaSenAltInitLDuni0752.init_BaaSenAltInitLDuni0755.init_BaaSenAltInitLDuni0754.init_BaaSenAltInitLDuni06B9.init_BaaSenAltInitLDuni06D1.init_BaaSenAltInitLDuni06D0.init_BaaSenAltInitLDuni0680.init_BaaHaaInitLDuni06BD.init_BaaHaaInitLDuni067E.init_BaaHaaInitLDuni067B.init_BaaHaaInitLDuni0628.init_BaaHaaInitLDuni0767.init_BaaHaaInitLDuni063D.init_BaaHaaInitLDuni0777.init_BaaHaaInitLDuni0776.init_BaaHaaInitLDuni0775.init_BaaHaaInitLDuni06CC.init_BaaHaaInitLDuni064A.init_BaaHaaInitLDuni06CE.init_BaaHaaInitLDuni0751.init_BaaHaaInitLDuni0750.init_BaaHaaInitLDuni0753.init_BaaHaaInitLDuni0752.init_BaaHaaInitLDuni0755.init_BaaHaaInitLDuni0754.init_BaaHaaInitLDuni06B9.init_BaaHaaInitLDuni06D1.init_BaaHaaInitLDuni06D0.init_BaaHaaInitLDuni0680.init_BaaHaaMemInitLDuni06BD.init_BaaHaaMemInitLDuni067E.init_BaaHaaMemInitLDuni067B.init_BaaHaaMemInitLDuni0628.init_BaaHaaMemInitLDuni0767.init_BaaHaaMemInitLDuni063D.init_BaaHaaMemInitLDuni0777.init_BaaHaaMemInitLDuni0776.init_BaaHaaMemInitLDuni0775.init_BaaHaaMemInitLDuni06CC.init_BaaHaaMemInitLDuni064A.init_BaaHaaMemInitLDuni06CE.init_BaaHaaMemInitLDuni0751.init_BaaHaaMemInitLDuni0750.init_BaaHaaMemInitLDuni0753.init_BaaHaaMemInitLDuni0752.init_BaaHaaMemInitLDuni0755.init_BaaHaaMemInitLDuni0754.init_BaaHaaMemInitLDuni06B9.init_BaaHaaMemInitLDuni06D1.init_BaaHaaMemInitLDuni06D0.init_BaaHaaMemInitLDuni0680.init_HighLDuni06BD.init_HighLDuni067E.init_HighLDuni067B.init_HighLDuni0628.init_HighLDuni0767.init_HighLDuni063D.init_HighLDuni0777.init_HighLDuni0776.init_HighLDuni0775.init_HighLDuni06CC.init_HighLDuni064A.init_HighLDuni06CE.init_HighLDuni0751.init_HighLDuni0750.init_HighLDuni0753.init_HighLDuni0752.init_HighLDuni0755.init_HighLDuni0754.init_HighLDuni06B9.init_HighLDuni06D1.init_HighLDuni06D0.init_HighLDuni0680.init_WideLDuni06BD.init_WideLDuni067E.init_WideLDuni067B.init_WideLDuni0628.init_WideLDuni0767.init_WideLDuni063D.init_WideLDuni0777.init_WideLDuni0776.init_WideLDuni0775.init_WideLDuni06CC.init_WideLDuni064A.init_WideLDuni06CE.init_WideLDuni0751.init_WideLDuni0750.init_WideLDuni0753.init_WideLDuni0752.init_WideLDuni0755.init_WideLDuni0754.init_WideLDuni06B9.init_WideLDuni06D1.init_WideLDuni06D0.init_WideLDuni0680.init_BaaYaaIsolLDuni06BD.init_BaaYaaIsolLDuni067E.init_BaaYaaIsolLDuni067B.init_BaaYaaIsolLDuni0628.init_BaaYaaIsolLDuni0767.init_BaaYaaIsolLDuni063D.init_BaaYaaIsolLDuni0777.init_BaaYaaIsolLDuni0776.init_BaaYaaIsolLDuni0775.init_BaaYaaIsolLDuni06CC.init_BaaYaaIsolLDuni064A.init_BaaYaaIsolLDuni06CE.init_BaaYaaIsolLDuni0751.init_BaaYaaIsolLDuni0750.init_BaaYaaIsolLDuni0753.init_BaaYaaIsolLDuni0752.init_BaaYaaIsolLDuni0755.init_BaaYaaIsolLDuni0754.init_BaaYaaIsolLDuni06B9.init_BaaYaaIsolLDuni06D1.init_BaaYaaIsolLDuni06D0.init_BaaYaaIsolLDuni0680.init_BaaMemIsolLDuni06BD.init_BaaMemIsolLDuni067E.init_BaaMemIsolLDuni067B.init_BaaMemIsolLDuni0628.init_BaaMemIsolLDuni0767.init_BaaMemIsolLDuni063D.init_BaaMemIsolLDuni0777.init_BaaMemIsolLDuni0776.init_BaaMemIsolLDuni0775.init_BaaMemIsolLDuni06CC.init_BaaMemIsolLDuni064A.init_BaaMemIsolLDuni06CE.init_BaaMemIsolLDuni0751.init_BaaMemIsolLDuni0750.init_BaaMemIsolLDuni0753.init_BaaMemIsolLDuni0752.init_BaaMemIsolLDuni0755.init_BaaMemIsolLDuni0754.init_BaaMemIsolLDuni06B9.init_BaaMemIsolLDuni06D1.init_BaaMemIsolLDuni06D0.init_BaaMemIsolLDuni0680.init_BaaHehInitLDuni06BD.init_BaaHehInitLDuni067E.init_BaaHehInitLDuni067B.init_BaaHehInitLDuni0628.init_BaaHehInitLDuni0767.init_BaaHehInitLDuni063D.init_BaaHehInitLDuni0777.init_BaaHehInitLDuni0776.init_BaaHehInitLDuni0775.init_BaaHehInitLDuni06CC.init_BaaHehInitLDuni064A.init_BaaHehInitLDuni06CE.init_BaaHehInitLDuni0751.init_BaaHehInitLDuni0750.init_BaaHehInitLDuni0753.init_BaaHehInitLDuni0752.init_BaaHehInitLDuni0755.init_BaaHehInitLDuni0754.init_BaaHehInitLDuni06B9.init_BaaHehInitLDuni06D1.init_BaaHehInitLDuni06D0.init_BaaHehInitLDuni0620.initLDuni0620.init_BaaRaaIsolLDuni0620.init_BaaDalLDuni0620.init_BaaMemHaaInitLDuni0620.init_BaaBaaYaaLDuni0620.init_BaaNonIsolLDuni0620.init_BaaSenInitLDuni0620.init_BaaMemInitLDuni0620.init_BaaBaaHaaInitLDuni0620.init_BaaBaaIsolLDuni0620.init_BaaBaaMemInitLDuni0620.init_BaaSenAltInitLDuni0620.init_BaaHaaInitLDuni0620.init_BaaHaaMemInitLDuni0620.init_HighLDuni0620.init_WideLDuni0620.init_BaaYaaIsolLDuni0620.init_BaaMemIsolLDuni0620.init_BaaHehInitLDuni0765.init_MemHehInitaMem.init_MemHehInituni0645.init_MemHehInituni0766.init_MemHehInit uni0670.isol uni0670.medi uni0621.medi uni0621.float uni0640.long1 uni0660.small uni0661.small uni0662.small uni0663.small uni0664.small uni0665.small uni0666.small uni0667.small uni0668.small uni0669.small uni06F0.small uni06F1.small uni06F2.small uni06F3.small uni06F4.small uni06F5.small uni06F6.small uni06F7.small uni06F8.small uni06F9.smalluni06F4.urd.smalluni06F6.urd.smalluni06F7.urd.small uni08F0.smalluni064E.small2 uni064C.small uni06E5.medi uni06E6.medi radical.rtlm dot.percentuni0645.medi_KafMemMediTatweeluni0645.fina_LamMemFinaExtendeduni0645.fina_KafMemFinaExtendedaMem.fina_Extendeduni0645.fina_KafMemIsolExtended uni0640.1uni0627.fina_Tatweel uni0640.2 uni0640.3 uni0640.4uni06FA.init_SenBaaMemInituni076D.init_SenBaaMemInituni0633.init_SenBaaMemInituni077E.init_SenBaaMemInituni077D.init_SenBaaMemInituni0634.init_SenBaaMemInituni0770.init_SenBaaMemInituni075C.init_SenBaaMemInituni069A.init_SenBaaMemInituni069B.init_SenBaaMemInituni069C.init_SenBaaMemInituni069D.init_SenBaaMemInituni06FB.init_SenBaaMemInituni0636.init_SenBaaMemInituni069E.init_SenBaaMemInituni0635.init_SenBaaMemInit aYaaBari.isol aYaaBari.finaaYaaBari.fina_PostToothaSen.init_YaaBariaSad.init_YaaBari uni077B.finauni077B.fina_PostTooth uni077A.finauni077A.fina_PostTooth uni06D2.finauni06D2.fina_PostToothuni06FA.init_YaaBariuni076D.init_YaaBariuni0633.init_YaaBariuni077E.init_YaaBariuni077D.init_YaaBariuni0634.init_YaaBariuni0770.init_YaaBariuni075C.init_YaaBariuni069A.init_YaaBariuni069B.init_YaaBariuni069C.init_YaaBariuni069D.init_YaaBariuni06FB.init_YaaBariuni0636.init_YaaBariuni069E.init_YaaBariuni0635.init_YaaBariaYaaBari.fina_PostAscenderuni0627.fina_WideaBaa.init_YaaBariaFaa.init_YaaBari uni06E5.lowaLam.init_YaaBariaKaf.init_YaaBariuni063B.init_YaaBariuni063C.init_YaaBariuni077F.init_YaaBariuni0764.init_YaaBariuni0643.init_YaaBariuni06B0.init_YaaBariuni06B3.init_YaaBariuni06B2.init_YaaBariuni06AB.init_YaaBariuni06AC.init_YaaBariuni06AD.init_YaaBariuni06AE.init_YaaBariuni06AF.init_YaaBariuni06A9.init_YaaBariuni06B4.init_YaaBariuni0763.init_YaaBariuni0762.init_YaaBariuni06B1.init_YaaBariuni0777.init_YaaBariuni0680.init_YaaBariuni0776.init_YaaBariuni06BC.init_YaaBariuni0750.init_YaaBariuni0756.init_YaaBariuni0768.init_YaaBariuni06CE.init_YaaBariuni0775.init_YaaBariuni06BD.init_YaaBariuni0626.init_YaaBariuni066E.init_YaaBariuni0620.init_YaaBariuni064A.init_YaaBariuni06BB.init_YaaBariuni067F.init_YaaBariuni0755.init_YaaBariuni067D.init_YaaBariuni067E.init_YaaBariuni067B.init_YaaBariuni0628.init_YaaBariuni067A.init_YaaBariuni0751.init_YaaBariuni0646.init_YaaBariuni0753.init_YaaBariuni0752.init_YaaBariuni062A.init_YaaBariuni0678.init_YaaBariuni063D.init_YaaBariuni062B.init_YaaBariuni0679.init_YaaBariuni06B9.init_YaaBariuni0769.init_YaaBariuni0649.init_YaaBariuni067C.init_YaaBariuni0754.init_YaaBariuni06D1.init_YaaBariuni06D0.init_YaaBariuni06BA.init_YaaBariuni06CC.init_YaaBariuni0767.init_YaaBariuni077B.fina_PostAscenderuni077A.fina_PostAscenderuni06D2.fina_PostAscenderuni06B5.init_YaaBariuni06B7.init_YaaBariuni0644.init_YaaBariuni06B8.init_YaaBariuni06B6.init_YaaBariuni076A.init_YaaBariuni066F.init_YaaBariuni0761.init_YaaBariuni0760.init_YaaBariuni0642.init_YaaBariuni0641.init_YaaBariuni06A8.init_YaaBariuni06A1.init_YaaBariuni06A2.init_YaaBariuni06A3.init_YaaBariuni06A4.init_YaaBariuni06A5.init_YaaBariuni06A6.init_YaaBariuni06A7.init_YaaBariaYaaBari.fina_PostAynaHaa.init_YaaBariaAyn.init_YaaBariaMem.init_YaaBariuni077B.fina_PostAynuni077A.fina_PostAynuni06D2.fina_PostAynuni0765.init_YaaBariuni0645.init_YaaBariuni0766.init_YaaBariuni062E.init_YaaBariuni062D.init_YaaBariuni0681.init_YaaBariuni0687.init_YaaBariuni0685.init_YaaBariuni062C.init_YaaBariuni0682.init_YaaBariuni0757.init_YaaBariuni0684.init_YaaBariuni076F.init_YaaBariuni076E.init_YaaBariuni0683.init_YaaBariuni06BF.init_YaaBariuni077C.init_YaaBariuni0758.init_YaaBariuni0772.init_YaaBariuni0686.init_YaaBariuni06FC.init_YaaBariuni063A.init_YaaBariuni075E.init_YaaBariuni075D.init_YaaBariuni075F.init_YaaBariuni06A0.init_YaaBariuni0639.init_YaaBariaHeh.init_YaaBariuni0647.init_YaaBariuni06C1.init_YaaBariaTaa.init_YaaBareeuni0638.init_YaaBariuni0637.init_YaaBariuni069F.init_YaaBariaHehKnotted.isol uni06BE.init uni06FF.init uni06BE.fina uni06FF.fina uni06BE.medi uni06FF.mediaHehKnotted.finaaHeh.medi_HehYaaFinauni0647.medi_HehYaaFinauni06C1.medi_HehYaaFinauni0647.medi_PostToothHehYaauni06C1.medi_PostToothHehYaa hamza.aboveuni0660.mediumuni0661.mediumuni0662.mediumuni0663.mediumuni0664.mediumuni0665.mediumuni0666.mediumuni0667.mediumuni0668.mediumuni0669.mediumuni06F0.mediumuni06F1.mediumuni06F2.mediumuni06F3.mediumuni06F4.mediumuni06F5.mediumuni06F6.mediumuni06F7.mediumuni06F8.mediumuni06F9.mediumuni06F4.urd.mediumuni06F6.urd.mediumuni06F7.urd.mediumaAlf.fina_Narrowuni0622.fina_Narrowuni0623.fina_Narrowuni0625.fina_Narrowuni0627.fina_Narrowuni0671.fina_Narrowuni0672.fina_Narrowuni0673.fina_Narrowuni0675.fina_Narrowuni0773.fina_Narrowuni0774.fina_Narrow smallv.aboveaHehKnotted.init_YaaBariuni06BE.init_YaaBari uni08A0.fina uni08A0.init uni08A0.mediuni08A0.init_BaaRaaIsoluni08A0.medi_BaaMemFinauni08A0.medi_LamBaaMemInituni08A0.init_BaaDaluni08A0.init_BaaMemHaaInituni08A0.init_BaaBaaYaauni08A0.medi_BaaBaaYaauni08A0.medi_KafBaaInituni08A0.medi_BaaBaaInituni08A0.init_BaaNonIsoluni08A0.init_BaaSenInituni08A0.medi_BaaRaaFinauni08A0.init_BaaMemInituni08A0.init_BaaBaaHaaInituni08A0.medi_BaaBaaHaaInituni08A0.medi_SenBaaMemInituni08A0.init_BaaBaaIsoluni08A0.fina_BaaBaaIsoluni08A0.init_BaaBaaMemInituni08A0.medi_BaaBaaMemInituni08A0.medi_KafBaaMediuni08A0.medi_BaaNonFinauni08A0.medi_BaaYaaFinauni08A0.init_BaaSenAltInituni08A0.init_AboveHaauni08A0.init_BaaHaaInituni08A0.init_BaaHaaMemInituni08A0.init_Highuni08A0.medi_Highuni08A0.init_Wideuni08A0.init_BaaYaaIsoluni08A0.init_BaaMemIsoluni08A0.medi_BaaMemAlfFinauni08A0.init_BaaHehInituni08A0.medi_BaaHehMediuni08A0.init_LDuni08A0.init_BaaRaaIsolLDuni08A0.init_BaaDalLDuni08A0.init_BaaMemHaaInitLDuni08A0.init_BaaBaaYaaLDuni08A0.init_BaaNonIsolLDuni08A0.init_BaaSenInitLDuni08A0.init_BaaMemInitLDuni08A0.init_BaaBaaHaaInitLDuni08A0.init_BaaBaaIsolLDuni08A0.init_BaaBaaMemInitLDuni08A0.init_BaaSenAltInitLDuni08A0.init_BaaHaaInitLDuni08A0.init_BaaHaaMemInitLDuni08A0.init_HighLDuni08A0.init_WideLDuni08A0.init_BaaYaaIsolLDuni08A0.init_BaaMemIsolLDuni08A0.init_BaaHehInitLDuni08A0.init_YaaBarismallv.below.low uni0600.4smallv.above.inverted uni0660.prop uni0661.prop uni0662.prop uni0663.prop uni0664.prop uni0665.prop uni0666.prop uni0667.prop uni0668.prop uni0669.prop uni06F0.prop uni06F1.prop uni06F2.prop uni06F3.prop uni06F4.prop uni06F5.prop uni06F6.prop uni06F7.prop uni06F8.prop uni06F9.propuni06F4.urd.propuni06F6.urd.propuni06F7.urd.propuni0623.fina_Wideuni0671.fina_WideaBaa.init_BaaBaaHehuni0777.init_BaaBaaHehuni0680.init_BaaBaaHehuni0776.init_BaaBaaHehuni06BC.init_BaaBaaHehuni0750.init_BaaBaaHehuni0756.init_BaaBaaHehuni0768.init_BaaBaaHehuni06CE.init_BaaBaaHehuni0775.init_BaaBaaHehuni06BD.init_BaaBaaHehuni0626.init_BaaBaaHehuni066E.init_BaaBaaHehuni0620.init_BaaBaaHehuni064A.init_BaaBaaHehuni06BB.init_BaaBaaHehuni067F.init_BaaBaaHehuni0755.init_BaaBaaHehuni067D.init_BaaBaaHehuni067E.init_BaaBaaHehuni067B.init_BaaBaaHehuni0628.init_BaaBaaHehuni067A.init_BaaBaaHehuni0751.init_BaaBaaHehuni0646.init_BaaBaaHehuni0753.init_BaaBaaHehuni0752.init_BaaBaaHehuni062A.init_BaaBaaHehuni0678.init_BaaBaaHehuni063D.init_BaaBaaHehuni062B.init_BaaBaaHehuni0679.init_BaaBaaHehuni06B9.init_BaaBaaHehuni0769.init_BaaBaaHehuni0649.init_BaaBaaHehuni067C.init_BaaBaaHehuni0754.init_BaaBaaHehuni06D1.init_BaaBaaHehuni06D0.init_BaaBaaHehuni06BA.init_BaaBaaHehuni06CC.init_BaaBaaHehuni0767.init_BaaBaaHehuni0680.init_BaaBaaHehLDuni06BD.init_BaaBaaHehLDuni067E.init_BaaBaaHehLDuni067B.init_BaaBaaHehLDuni0628.init_BaaBaaHehLDuni0767.init_BaaBaaHehLDuni063D.init_BaaBaaHehLDuni0777.init_BaaBaaHehLDuni0776.init_BaaBaaHehLDuni0775.init_BaaBaaHehLDuni06CC.init_BaaBaaHehLDuni064A.init_BaaBaaHehLDuni06CE.init_BaaBaaHehLDuni0751.init_BaaBaaHehLDuni0750.init_BaaBaaHehLDuni0753.init_BaaBaaHehLDuni0752.init_BaaBaaHehLDuni0755.init_BaaBaaHehLDuni0754.init_BaaBaaHehLDuni06B9.init_BaaBaaHehLDuni06D1.init_BaaBaaHehLDuni06D0.init_BaaBaaHehLD uni06A9.altuni06A9.alt.fina uni06AF.altuni06AF.alt.fina uni06B0.altuni06B0.alt.fina uni06B1.altuni06B1.alt.fina uni06B2.altuni06B2.alt.fina uni06B3.altuni06B3.alt.fina uni06B4.altuni06B4.alt.fina uni0762.altuni0762.alt.fina uni0763.altuni0763.alt.fina uni0764.altuni0764.alt.fina uni063B.altuni063B.alt.fina uni063C.altuni063C.alt.fina aGaf.isol aGaf.fina uni0600.3 uni0603.3 uni0640.05aYaaBari.fina_PostToothFinaaBaa.medi_YaaBariuni0777.medi_YaaBariuni0680.medi_YaaBariuni0776.medi_YaaBariuni06BC.medi_YaaBariuni0750.medi_YaaBariuni0756.medi_YaaBariuni0768.medi_YaaBariuni06CE.medi_YaaBariuni0775.medi_YaaBariuni06BD.medi_YaaBariuni0626.medi_YaaBariuni066E.medi_YaaBariuni0620.medi_YaaBariuni064A.medi_YaaBariuni06BB.medi_YaaBariuni067F.medi_YaaBariuni0755.medi_YaaBariuni067D.medi_YaaBariuni067E.medi_YaaBariuni067B.medi_YaaBariuni0628.medi_YaaBariuni067A.medi_YaaBariuni0751.medi_YaaBariuni0646.medi_YaaBariuni0753.medi_YaaBariuni0752.medi_YaaBariuni062A.medi_YaaBariuni0678.medi_YaaBariuni063D.medi_YaaBariuni062B.medi_YaaBariuni0679.medi_YaaBariuni06B9.medi_YaaBariuni0769.medi_YaaBariuni0649.medi_YaaBariuni067C.medi_YaaBariuni0754.medi_YaaBariuni06D1.medi_YaaBariuni06D0.medi_YaaBariuni06BA.medi_YaaBariuni06CC.medi_YaaBariuni0767.medi_YaaBariuni077B.fina_PostToothFinauni077A.fina_PostToothFinauni06D2.fina_PostToothFinauni08A0.medi_YaaBariaBaa.init_BaaBaaYaaBariuni0777.init_BaaBaaYaaBariuni0680.init_BaaBaaYaaBariuni0776.init_BaaBaaYaaBariuni06BC.init_BaaBaaYaaBariuni0750.init_BaaBaaYaaBariuni0756.init_BaaBaaYaaBariuni0768.init_BaaBaaYaaBariuni06CE.init_BaaBaaYaaBariuni0775.init_BaaBaaYaaBariuni06BD.init_BaaBaaYaaBariuni0626.init_BaaBaaYaaBariuni066E.init_BaaBaaYaaBariuni0620.init_BaaBaaYaaBariuni064A.init_BaaBaaYaaBariuni06BB.init_BaaBaaYaaBariuni067F.init_BaaBaaYaaBariuni0755.init_BaaBaaYaaBariuni067D.init_BaaBaaYaaBariuni067E.init_BaaBaaYaaBariuni067B.init_BaaBaaYaaBariuni0628.init_BaaBaaYaaBariuni067A.init_BaaBaaYaaBariuni0751.init_BaaBaaYaaBariuni0646.init_BaaBaaYaaBariuni0753.init_BaaBaaYaaBariuni0752.init_BaaBaaYaaBariuni062A.init_BaaBaaYaaBariuni0678.init_BaaBaaYaaBariuni063D.init_BaaBaaYaaBariuni062B.init_BaaBaaYaaBariuni0679.init_BaaBaaYaaBariuni06B9.init_BaaBaaYaaBariuni0769.init_BaaBaaYaaBariuni0649.init_BaaBaaYaaBariuni067C.init_BaaBaaYaaBariuni0754.init_BaaBaaYaaBariuni06D1.init_BaaBaaYaaBariuni06D0.init_BaaBaaYaaBariuni06BA.init_BaaBaaYaaBariuni06CC.init_BaaBaaYaaBariuni0767.init_BaaBaaYaaBariuni08A0.init_BaaBaaYaaBariuni0687.init_BaaYaaBariuni062C.init_BaaYaaBariuni0684.init_BaaYaaBariuni076F.init_BaaYaaBariuni076E.init_BaaYaaBariuni0683.init_BaaYaaBariuni06BF.init_BaaYaaBariuni077C.init_BaaYaaBariuni0758.init_BaaYaaBariuni0686.init_BaaYaaBariaHaa.init_BaaYaaBariuni08A0.init_BaaBaaHehuni08A0.init_BaaBaaHehLDuni0620.init_BaaBaaHehLD uni0657.urd uni0657.small uni0650.small uni064D.small zero.small one.small two.small three.small four.small five.small six.small seven.small eight.small nine.small uni063E.init uni063F.init uni063E.medi uni063F.mediuni063E.init_BaaRaaIsoluni063F.init_BaaRaaIsoluni063E.medi_BaaMemFinauni063F.medi_BaaMemFinauni063E.medi_LamBaaMemInituni063F.medi_LamBaaMemInituni063E.init_BaaDaluni063F.init_BaaDaluni063E.init_BaaMemHaaInituni063F.init_BaaMemHaaInituni063E.init_BaaBaaYaauni063F.init_BaaBaaYaauni063E.medi_BaaBaaYaauni063F.medi_BaaBaaYaauni063E.medi_KafBaaInituni063F.medi_KafBaaInituni063E.medi_BaaBaaInituni063F.medi_BaaBaaInituni063E.init_BaaNonIsoluni063F.init_BaaNonIsoluni063E.init_BaaSenInituni063F.init_BaaSenInituni063E.medi_BaaRaaFinauni063F.medi_BaaRaaFinauni063E.init_BaaMemInituni063F.init_BaaMemInituni063E.init_BaaBaaHaaInituni063F.init_BaaBaaHaaInituni063E.medi_BaaBaaHaaInituni063F.medi_BaaBaaHaaInituni063E.medi_SenBaaMemInituni063F.medi_SenBaaMemInituni063E.init_BaaBaaIsoluni063F.init_BaaBaaIsoluni063E.init_BaaBaaMemInituni063F.init_BaaBaaMemInituni063E.medi_BaaBaaMemInituni063F.medi_BaaBaaMemInituni063E.medi_KafBaaMediuni063F.medi_KafBaaMediuni063E.medi_BaaNonFinauni063F.medi_BaaNonFinauni063E.medi_BaaYaaFinauni063F.medi_BaaYaaFinauni063E.init_BaaSenAltInituni063F.init_BaaSenAltInituni063E.init_AboveHaauni063F.init_AboveHaauni063E.init_BaaHaaInituni063F.init_BaaHaaInituni063E.init_BaaHaaMemInituni063F.init_BaaHaaMemInituni063E.init_Highuni063F.init_Highuni063E.medi_Highuni063F.medi_Highuni063E.init_Wideuni063F.init_Wideuni063E.init_BaaYaaIsoluni063F.init_BaaYaaIsoluni063E.init_BaaMemIsoluni063F.init_BaaMemIsoluni063E.medi_BaaMemAlfFinauni063F.medi_BaaMemAlfFinauni063E.init_BaaHehInituni063F.init_BaaHehInituni063E.medi_BaaHehMediuni063F.medi_BaaHehMediuni063E.init_LDuni063F.init_LDuni063E.init_BaaRaaIsolLDuni063F.init_BaaRaaIsolLDuni063E.init_BaaDalLDuni063F.init_BaaDalLDuni063E.init_BaaMemHaaInitLDuni063F.init_BaaMemHaaInitLDuni063E.init_BaaBaaYaaLDuni063F.init_BaaBaaYaaLDuni063E.init_BaaNonIsolLDuni063F.init_BaaNonIsolLDuni063E.init_BaaSenInitLDuni063F.init_BaaSenInitLDuni063E.init_BaaMemInitLDuni063F.init_BaaMemInitLDuni063E.init_BaaBaaHaaInitLDuni063F.init_BaaBaaHaaInitLDuni063E.init_BaaBaaIsolLDuni063F.init_BaaBaaIsolLDuni063E.init_BaaBaaMemInitLDuni063F.init_BaaBaaMemInitLDuni063E.init_BaaSenAltInitLDuni063F.init_BaaSenAltInitLDuni063E.init_BaaHaaInitLDuni063F.init_BaaHaaInitLDuni063E.init_BaaHaaMemInitLDuni063F.init_BaaHaaMemInitLDuni063E.init_HighLDuni063F.init_HighLDuni063E.init_WideLDuni063F.init_WideLDuni063E.init_BaaYaaIsolLDuni063F.init_BaaYaaIsolLDuni063E.init_BaaMemIsolLDuni063F.init_BaaMemIsolLDuni063E.init_BaaHehInitLDuni063F.init_BaaHehInitLDuni063E.init_YaaBariuni063F.init_YaaBariuni063E.init_BaaBaaHehuni063F.init_BaaBaaHehuni063E.init_BaaBaaHehLDuni063F.init_BaaBaaHehLDuni063E.medi_YaaBariuni063F.medi_YaaBariuni063E.init_BaaBaaYaaBariuni063F.init_BaaBaaYaaBarif_bf_f_bf_kf_f_kf_hf_f_hf_jf_f_jiogonek.dotless gravecomb.cap acutecomb.cap uni0302.cap uni030A.cap tildecomb.cap uni0304.cap uni0306.cap uni0327.capuni0308.narrow uni0308.cap uni030C.cap zero.propone.proptwo.prop three.prop four.prop five.propsix.prop seven.prop eight.prop nine.propi.TRK zero.medium one.medium two.medium three.medium four.medium five.medium six.medium seven.medium eight.medium nine.medium zero.numrone.numrtwo.numr three.numr four.numr five.numrsix.numr seven.numr eight.numr nine.numr uni0660.numr uni0661.numr uni0662.numr uni0663.numr uni0664.numr uni0665.numr uni0666.numr uni0667.numr uni0668.numr uni0669.numr uni06F0.numr uni06F1.numr uni06F2.numr uni06F3.numr uni06F4.numr uni06F5.numr uni06F6.numr uni06F7.numr uni06F8.numr uni06F9.numruni06F4.urd.numruni06F6.urd.numruni06F7.urd.numr exclam.ref1 cent.ref1Eth.ref1 Oslash.ref1 divide.ref1 oslash.ref1 dcroat.ref1 Hbar.ref1 hbar.ref1 Lslash.ref1 lslash.ref1 Tbar.ref1 tbar.ref1 uni060B.ref1 uni0612.ref1 uni061F.ref1 uni065E.ref1 uni08AC.ref1 uni08F5.ref1 uni08F6.ref1 uni08FC.ref1 uni08FD.ref1 uni08FE.ref1 uni202A.ref1 uni202D.ref1 uniFDFD.ref1 u1EE49.ref1 u1EE81.ref1 u1EE89.ref1 u1EE8D.ref1 u1EE90.ref1 u1EE92.ref1 u1EE95.ref1 u1EE96.ref1 u1EEA2.ref1 u1EEA6.ref1 u1EEB4.ref1 u1EEB7.ref1 u1EEB8.ref1 u1EEB9.ref1 u1EEBA.ref1 u1EEBB.ref1|% 1$ DL^    &'()?@@ABCLM^_noyz239:;<ABCDEFFGJKIJOPQRSTTUWXXY\]_`bclmwxxyUVXY  !BCCD`adeZ ^DFLTarablatn>ARA SND URD  TRK curs&kern,markFmark^mkmkfss05pu NT`gjnpst vwxyz{v|}~ 0F BxfTxfT,,bP>t TfxBTfx,,>Pbt (08@ P , > P b h ^ p `xrR~U[2]dd بRR̬V.Fj     ~~~~ZZZ !<<"#$$%&'()*RRRH+,-44*./0:*123cLLLL$4567"""89:*;<=al>?@AHBCD*EFtGb\\\HIJ88*KL Mdv^dR@. ?Uen`|N|<|*z|||\|c|||||[|v|d=|R|@5|.|O| |!7 2T"6O<P QR , 0BTvBp$HUXVWX GXY oq  v @Q0B ,Z  oq  v @Q0BT [ \    ] W [ \ f-?*\^b<_FS|     Z d s u(+#'')*D2  ppKK fg er *'48 \ J88 8pp $& #!(,,LLhhxy~~!" 0 ?# y 3 B R a b c , ;s L[||@b,a GX$6b v c oq  @Qd28eA4f:@ .88   !(,,"KL#fh%xy(~~*+er- 0 ?; y K Z j y  , ; L['4 ~ 6hh  /78:op<izPP xx!(,,LLhhxy~~ 0 ? y / > N ] , ;m }L[ &@Fk,hlNm 2"#$%&   oq  v  0@QBTfGXx6o #%&')+,/2678:;              ! " # % & h i j l o p q t u x z { | ~ V W X Z ] ^ _ b c f h i j l n o r u y z { } ~   #&*+,./ !$%(*+,.0147;<=?@XYZ\_`adehjklnpqtw{|}&'(*-./23689:<>?BEIJKMNGILMNRSUVY[`bcdfghj^opstyz{|}~   " $FqBr xj ,6HRXbhr228dd222J8"9 >^ >>^^$$&&**--22446688DDFFGG HH II LL PQ RR UU VVWWXXYYZZ\\]]                      !!""$$&&(())**++,,--..//00112233446688;;==??@@         "*@@ ZZ\\6688V 1z0.,"`H@~h`hHb 6@ ?l|   ??ll||    #  #(0##$$%%&&')**+,--./0011223344556677 88 99 :: ;; <<==DDFFGGHHIIJJKKLLMMNNOO PQRRSS!TT"UUVV&WW)XX*YY,ZZ-[[.\\/]]+ll *//             &&  &!!""&## $$)%% &&)'' (())) ***++ ,,*-- ..*// 00*11 22*33 44*55 66-7788/99::;;+<<==+>>??+@@CC!&& ) ) ) - - -+)/$%$%0' @ ~ *jRBP&v&lnnB@nVbjz^zx|xDEFGHIJKLMNOPQRSTUVWXYZ[\]   "$&(*,.02468;=?CDDEEFFGGHHII JJKK LLMM NN OO PQ RRSSTTUUVVWWXXYYZZ[[\\]]            ""$$&&((**,,..0022446688;;==??CC                #""$$%%&&')**+,--./22334455778899::<< ?? @@DD FFGGHHJJKKMMNNOORRSSTTVV"WW$XX%YY&ZZ'[[(\\)``lloo!  %))     ""  """"##$$$%%&&$''(($))**%++,,%--..%//00%1122%3344%5566'77 88)99 CC""$$$'''$ )   ^ zT?rllpjdzbvrn^ r$ $"<hT46:nTz6\xbF^Ld~frt**dj|\~@ V^8HJLrfJftb$%&'()*+,-./0123456789:;<=  !#%')+-/13579:<>y$$%%&&''(())**+, -- .. // 00 112233445566778899::;;<<==        !!##%%''))++--//1133557799::<<>>    -  - + 4>2$$%%&&')**+,--./0011223344556677 88 99 :: ;; <<==??@@DDEEFFGGHHII JJ#KK&LLMM'NN&OO(PQRRSS*TT,UUVV1WW5XX8YY:ZZ;[[<\\=]]9``ll$oo0||%  8==####&&'&(((((        11  1!!""1## $$5%% &&5'' ((5)) **8++ ,,8-- ..8// 00811 22833 44855 66;7788=99::;;9<<==9>>??9@@ CC' &&&*11 5 5 5 ; ; ;9&5=././$%  >)76"!32\| <8H boE   bbooEE       w  $$%%')+,--./00113355778899 :: ;; << ?? @@GGHHRR   ##%%''))++--//113355 77 99      !                          +33 :: >> @@ gikk W [  \ g& 2 E P W`lq--joPP|6;BMTjG\aa q~/\/]/V///Uo  l.tuvwx3456789<=>?ADEHIa.8D>DD>D   ,&,2JMD>8>DD>Dh (hhh">qhHhp> ( ( ( ({ (M (ph@>h hh9h%h &,hghhh_h (8 y@GJbdef 05:5:>28>DJP5:5:bb4&B3?4:Ab " Rrw /2   !"$%&'*+,-.123456789:;<=>@ABCDFGHIXcdehij"#%wy{8&(] >&,>2>>8>9Zpv| $*06<BHrHHHNTZ`flrx~HHPH &,28>DJPV\bhntzHHD "(.4:@FLRX^Idjpv|^,Lr fx~FpBrl0&L.zz~V;.S 4|do nx[LILXSvxxvH&9cfht|h xxGVP rT , dR<;!~!x4"3P2T{ sk dcEG^Lrf^8L\XL]A~PXl G ,\yJ~cd2}~)+/-22KLWY\IPQTTXX]^cl         p9s<<'YZ(]_*aa-cc.gw/y{@}}CDEWY88:<>BD'(`o@F@;:9$;@@FLDDD?bbbb&&&'h&8&', '''''8Z8Z''888800''8*(888'881@(6, 'h8&'8&&&'h&8''&''&'&'''J''' '8Z8Z8Z8Z8Z8Z8Z8Z8Z'''''''''888880'''''''888*'88888*8*8*((8*1@1@1@'666668' , , , , 'h'h'h'h'h'h'h'h888'h'&','n, 8Z'88'28/''8'8''>'''t8Z'D'8'''''8*8*(((6661@''8'J'P8'''V'\88'b'h'h'n'n't888'z'6\66'-b'6P.8'88Z8Z(R6P'(p() '66J8, 88$2T*D8(201@+ 688(8Z'((R668'8$'8888$)68) 8$8Z0,8$,)68,,l888')T)r)88Z6P,))98888Z8*D*V8**1*6P811**0+F+ 98+'+4+F+X11@+^+j966-968'8'+8++99,, 108Z,B,H,N,`1,r19n'''9 9&,9,6V92-989>199D9J-b-t8-2H6---."9V6P'."9\'9h1/162H.|6.1...9n'2Z2`9t../0/T/l'////////928029n0210892920&180J80V90h80t8Z80z908Z800006P9060080111(91@6P1|11199886n18112'11812829n829n66667666'''''''-b-b-b-b-b-b-b6P6P6P6P6P6P6P.'''......'..(.( (..((8888888((88888888(((.8888("("8888888888(((.888(4888888888888888(:88(@88888888888888888(@8888Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z(R(F(R(R(R(R(R(L(R6P(X6P6P6P6P6P6P6P6P(^6P6P(p(d(p(p(p(p(p(p(p(p(j(p(p((((v((v(((|(((((((((((((((((((((((((666666666(666(6666J((6J6J88888*(8$(8$8*((8$8$8$8$8*8*8*8*8*8**D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D*D((((((((((((((((((222222000000+ + + + + + 8888888Z8Z8Z(((((((((66668Z8Z8Z)()8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z88888888888$8$8$8$8$)))))))))))66666666666) ) ) ) ) ) ) ) ) ))8$8$8$8Z8Z8Z,,,8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z88Z8Z8Z8Z)))6)6)6)6)6)$)6)6)6)6)6)*)0)6,,,,,,,l)<8888888888888888888888888888888888888888888)H)B)H8888888888888888/l/l/l/l/l/l/l/l/l/l)N/l/l/l/l)T)T)T)T)T)T)r)Z)`)r)r)r)r)f)f)r)l)r)r)x)~))))))))))))))8888888Z8Z8Z8Z8Z8Z6P6P6P6P6P6P6P6P6P)6P6P6P)6P6P6P))8,),,88),,)8,,),))),),)),,8,,),,,8)),88))))))999999))8888888*888888)8**8888))8888888888**8888*68888888* 888888*8* *&8888**8888888888* *&8888Z8Z8Z8Z*,8Z8Z8Z8Z8Z8Z8Z8Z8Z*2888888888888888*888*>88888888888888888*>888*D*V*V*V*V*V*V*V*V*V*J*V*V*V*P*V*V*V*\8888888888888888888888888888888888888888*b*h8**n**88****t8***z***********8******8***88****************111511****************6P6P6P6P6P6P6P6P6P6P6P6P6P6P6P6P6P6P*888888888888888888*88888888888888888*8881111111********6J*****000000+F+F+F+F+F+F+F+F+F+F+F+F+F++F+F+F+ +999999999999999+9999999999999999999999998888888++++++"+.+(+.+++++++++++4+4+4+4+4+4+4+4+4+4+4+4+4+F+F+F+F+F+F+F+F+F+:+F+F+F+@+F+F+F+X+X+X+X+X+X+X+X+X+L+X+X+X+R+X+X+X1111111@1@1@1@+^+^+^+^+^+^+^+^+^+d+d+j+p999999999999999+v9999999999999999999999996+|6666+66666666666666666666-+999999999999999999999999999999999999999966666666666+.8888888+888888+8++8888++8898888888++888---+++----------888888888888888888++++++++++++++++++++++88++++++++++++++++++++9999999+999999+9+,9999++9999999999+,9999,,,,,,,,,,,, , , , , , , , , , , , , , , , , , ,,,,,,,,,,,,,,,,00000008Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z,$,*,B,B,B,B,B,0,B,B,B,B,B,6,<,B,H,H,H,H,H,H,N,`,`,`,`,`,`,`,`,`,T,`,`,`,Z,`,`,`111111,x,r,f,l,r,r,r,x1111119n9n9n,~9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ,,9&9&9&9&9&9&9&,9&9&9&9&9&9&,9&,,9&9&9&9&,,9&9&9&9&9&9&9&9&9&9&,,9&9&9&,,,,,,,,,,,,,,,,,,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,6V,,92929292929292,9292929292929292,,92929292,,92929292929292929292,,929292-,,,------,--,-,,---98989898989898989898989898989898989898989898989898989898989898989898989898989898-9>9>9>9>9>9>9>9>- 9>9>9>9>9>9>-9>- -&9>9>9>9>--9>9>9>9>9>9>9>9>9>9>- -&9>9>9>1999999999999999999-,9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D-29D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D-29D9D9D-89J9J9J9J9J9J9J9J-J9J9J9J9J9J9J->9J-J-P9J9J9J9J-D-D9J9J9J9J9J9J9J9J9J9J-J-P9J9J9J-b-V-b-b-b-b-\-b-b-t-t-t-t-t-t-t-t-t-h-t-t-t-n-t-t-t888-z4-z8888888888--2H2H2H2H2H2H...---..........------------------------9P----9P9P----9P--------------9P------9P---9P9P.. .".".".".".."."."."."..."9V9V9V9V9V9V9V9V9V-9V9V9V9V9V9V9V9V--9V9V9V9V--9V9V9V9V9V9V9V9V9V9V--9V9V9V6P6P6P6P6P6P6P6P6P6P6P----------------.. .".".".".".."."."."."...".(9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\9\..9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b.49b9b.:9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b.:9b9b9b.@9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h111111111.F111.L111///.R////.X/.^/.d/.j/.p111.v11.|.|.|.|.|.|.|666666666.66...6..................11111111111......................9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n.9n9n.9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n9n.9n9n9n..9t9t9t9t9t9t9t.9t9t9t9t9t9t.9t..9t9t9t9t..9t9t9t9t9t9t9t9t9t9t..9t9t9t............./9z//0/0/09z9z/$/0/0/9z/0/0/ /0/$/*//0//0///0/09z/0/0//0/0/9z/$/*/09z9z/T/T/T/B/T0t/T/T/88888880D8888880J0J0J0J0J0J0J0J0J0J0J0J0J0J0J0J0J0J888880V0V0V0V0P0V0V0V0V0V0V0V0V0V9990\990h0h0h0b0h0h888880t0t0t0t0n0t0t0t0t0t0t0t0t0t8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8Z8888888888888888880z0z0z0z0z0z0z96P6P99996P6P96P99000000000000000008Z8Z80000000000000000006P06P06P6P6P6P6P6P6P06P6P6P6P6P6P0099999990999999090099990099999999990099900000000000000000666000000000000000000008880880000111111111111 111111111111111111111(1(1(1"1(1(1.99999999999999914991:999999999999999991:9991@6P1F1L91|1R1|1|991p1|1|1X91|1|1^1|1p1v1j1|1j1|1d1d1|1|91|1|1j1|1|1|91p1v1|9911116\16\111199999999999999919919999999999999999919991999999991999999191199991199999999991199988886n6n6n16n6n1111118888881111111111111111111111112222221111111111118888881111111111111111112222228888882222 229n9n9n29n9n8888882222 229n9n9n29n9n666666666266202$2*6202H2H2H2H2H2H2H2H2H262H2H2N2<2B2H2N2T2Z2`2f2f2l2222992r9999922x2~2~29222222229929999922222922222222992999992222292222335H5<995$999995<3335695<35H338383>3299399999323 3&3&3,932383>3D3h3h33b993J999993b3P3V3V3\93b3h33n3333993t9999933z33393333333399399999333339333333339939999933333933334"4"4(49949999944 444944"4(4.4R4R4X4L9944999994L4:4@4@4F94L4R4X4^4444|994d999994|4j4p4p4v94|444444499499999444449444444449949999944444944445555 994999995 455595 5555B5B5H5<995$999995<5*50505695<5B5H5N5r5r5x5l995T999995l5Z5`5`5f95l5r5x5~5555::5:::::55555:55555555: : 5: : : : : 55555: 55555562555666666 6&6,62686>6D6J6J6J6J6P6P6P6V6666\666666666668888868Z6b6h8Z8Z8Z6b6b6b6b6b6b6b6b6b6b6b6h6h6h6h6h6n:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::6n6n6n:::::::::::::::::::6n6z666n6n6n6666z6z6z6z6z6z6z6z6z6t6z6z6z6z6z6z6z6666666666888888866886666666766666666666686666866669669 79,7 798777"7(7.9\749h7:7@7F7L7R7X7^7d7j7p7v77|77777777777777:7:77:::::::7::8:::8:77::::77::::::::::77:::78888 ::7:::::8 8888:8 8888$88$88$88$88$88$88$88$88$88$88$88$8*808Z:"868<:":":":":":":"8N:":"8B:":":":":"8N8T:":":":"8H8H:":":":":":":":":":"8N8T:":":"8Z8Z8Z8`:(8f8l:(:(:(:(:(:(:(8~:(:(8r:(:(:(:(:(8~8:(:(:(:(8x8x:(:(:(:(:(:(:(:(:(:(8~8:(:(:(8888888888888888888888888888888888899999999999 9 9&9&9,9,929298989>9>9D9D9J9J9P9P9V9V9\9\9b9b9h9h9n9n9t9t9z9z99999999999999999999999999999999999999999999::: : :::::::":":(:(s<BUJDBbG#H~>~N t~+f~z~^B_BbX ~bLb6b dbbbb|bb bnbdvfb\@h;@,0#b7#}#Jb>zHzzz4z z tzwbbbX bbbab87Ai~lb#AjS5:$bbIbCwWJV|b],XuEZ^" J&P @* `#30P@(r#x0XK#s&b[88b3B}$x##K 6u@&b6b)|bdr<:b V^,bc= bHSb4bT6?("/b76bb7b>b$@C%y#L0bbb7 kbbbyybbb@b_:#yZZb6E&*bpR*zbNL,$L%-t@"w/7FLO~byMMbbb:=Tb~ hF'S/nT3P t"ZbEpY;1 *@TYb"XX(0B::brb@0@3i#=0bb @_bF1b10b)bb/.b7=bM9*&RPOYF121d8bbbb%b^Dbgl|bb6#bbf?b b|b-beb,bvb2bS#WPur/W@bb'b,lU7bb Q[C3 3Db#FA##AwK6bbcbbb)ZP+3 9bbbbbXi;bM)/G7)/b7bb bH<<dZY<^a<|Y^an<P PY(n^axi<KYa<4{Yk^a<Y^(aQ<(3YF^aPC<$%YB^yaL<^Y6|^"aZ2w|;<jY^a%<Y$^[a.<pY^ a<oY^ a7<Y^maj<KLY#i^asu<WWY/u^ay<[[Y3y^a <Y^Va)JJPJJJ(J$J^J&tJJJJJKJWJ[JJb,bbbbb^bbHbbbb&bbbXb\h(#<*$wh w/3Z<<(<k<<<<6<f<<<<#</<3<<wb,IQf<b bbb.dZb -R4Alll<bbb"bPbb8bdbb(bhb$b_bWbbbbLbb'bbfbbbbObW[b7bPb,,d,_,,,G,9,,J,,,,-,`,k,o,,bb ,   !"$%&'*+-34569:;<=>@ACDXdehj]  N  H X n   w (QV9dGr8(]  6 *$*06<BH &,28NT>Z`DJfPVlr\bxhn~tz &,28>DJPV\bhntzJ>l6 XB;EB8)  Sy8Z8R\M81YX:j1^ B8 8PKf,8j($8Q_f$L68(|!8JW[#pJ]#fl vAH:}})+ -. 559944]]  . / 0 N N@ A B C  D H HE P _F f uV  f g h  i w wj k(({QQ|}~\kyy GGrrbbh~~~~~~~~   D                >>          &&&&&  &  &  &,28\>DDDDDDDDDDDDDDDDJPV\bh< XX^XJ:|fhXF~d )^c(Xc&ZVT_ 0f?AIyz{|}VWXab>Irz CaBrH28N``TxZ`flrxthhX,hNL4^d:p|vvp@F^dLRX^dpjpvv|znzz)g   6?Az|b fz   ` . 4bJ~cd ~cd"((D *$$*0666h))V (9 N<  d@ $@ Npp $E"hd "Pc8d^ d*uwx<=>?ADHI|}Wab4}~)+/-22BCKLWY\IPQTTXX]^cl         p~s=lYZ)]_+aa.cc/gw0y{A}}DEF88::<<>>@BD()`o*17+36f  hhhpthz@hhhh:h,hNc'j&&5,'@&'@6j*.6j6j666666(6((H(H(<(<'d'd6666'j'j'j''X66d6('R*.1B'j'j6j'X&'@&1B5n&6j6j6j6j6j6j6j6j6666666' 66' 666666(6(6(6(6(6(6(6(6((H(H(H(<(<'d6'''&'&'X'X6'666666666'&6d6d6d'R'R'R'R'R66*.*.*.*.1B1B1B1B1B1B1B1B'j'j'j1B'j'j6d*.&'66((H(<666j6j6j6j6j6j6j66' 66((H666''''66(6('R''"6d6(6((H66'('.6'44'j'j'j1B1B6d6d6(H(H66j':5\6@'@6d6(626j66j7l'6'4T'6"6665h+7$*.6(64Z5h6'6d(6d36((*6(6(6('F(0'L'R6'X'^66((<5n(<6(H5h(H6(Z6'd66d66d'j7l77<13'p*(6(,67$7)7727B)6|1)7N6* 270*.76*X6(2*.Z6F7l*5,'v+2+ 0F+$+<+H7T+l6(1$606'|+66,7l7l7`7,J7$6,7l5,6,,626F0F'''7f676-v7T6p673-77 6.*'5&3'.l3.7.7x.'66v67///5z4T/1f//37$/7'4`4f7f0070@0F3420^0v0|000637$040726d2111$21B21f111117211272&7$7222>2D72\6227 6226(2373.347*336F7707`3337336d'23766d7$4077$4076F6^6X66R6L6d6d6d6d6d6d6d6(6(6(6(6(6(6(22222226j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j6j666666'6666666666666666666666666666666666666666'6666666666666666666666666666666666'''''''''''''''''''''''4T4T4T4T4T4T4T4T4T4T4T4T4T6"6"6"6"6"6"6"6"6"6"6"6"6"66666666666666666'''''''''''''''''5h5h5h5h5h5h5h5h5h5h5h5h5h5h5h5h5h+7$'++7$7$6(3'6666666666666'''65h5h5h5h5h5h5h5h5h5h5h5h5h5h5h5h5h5h''''''''''''''''''6d6d6d6d6d6d((((( (((33($3(*(*(*6(6(6(6(6(6((0(0(0(0(0(0(0(0(06666777777777777(6777(<(<(<(<(<5n5n5n5n5n66660(H(H(H(H(H(H(B(H(H(H(H5h5h5h5h5h5h(N5h5h5h5h666666(T6666(Z(Z(Z6666667$7$7$7$7$7$7$7$7$7$67$7$7$7$6d6d6d6d(`6d6d6d6d6d6d6d(f6d6d6d(l(r7l7l(x7l77<7<7<7<7<7<(~7<7<7<(7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<(7<7<7<7<7<7<7<7<7<7<7<7<777)D7)J7777777727B7B7B7B7B7B)P7B7B7B)V7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B)\7B7B7B7B)b7B7B7B7B7B7B7B7B)h)))n))))n))n))t)z)6|6|4l46|7H)7H4r6|)6|6|6|))6|)6|6|6|)4x44~6|4~)7H4x)4)6|4~46|6|6|6|41)))))))))))))))))7N7N47N7N7N)7N47N)7N7N7N7N)7N)7N7N7N7N47N7N7N7N)7N47N7N)7N7N7N7N7N7N7N7N666666)666)6666666666666666)6666)66666666* * * * )* * * * * * * ** * * **22*270707070*"70707070707070*(707070*@*.*@*.*.*.*.*.*.*:*4*.*.*.*4*4*:*@77-777-7-7-777. -7-777-.7777.7.. 7777777777*F*L66*R6*X*^*d6(6(*j6(26F*p*v*|**2******.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z*.Z6F7l7l7l7l7l7l7l7l7l7l*7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l*7l7l7l7l7l7l7l7l7l7l7l7l7l*******5,5,5,****************+++++++++++++22222222222222222+ + + + + + + + + + + + + + + ++ ++0F0F+0F+$+$+$+$+B+<+<+<+*+B+0+6+<+<+B+H7T7T7T7T7T7T+N7T7T7T+T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T+Z7T7T7T7T+`7T7T7T7T7T7T7T7T+l+l+l+l+l+f+l+l+l+~6(+~6(6(6(6(6(6(+x+r6(6(6(+r+r+x+~1$664667Z+7Z46+666++6+666+46666+7Z4+6+66666666000000+0000666666+666+6666666666666666+6666666666666++++++++++++++++++++++++++++++++++777777777777777++,66,6,,7l7l7l7l7l,7l7l7l7l7l7l7l7l7l7l,7l7`7`47`7`7`, 7`7`7`,&7`7`7`,27`7`7`7`7`7`7`7`7`7`7`7`,,7`7`,27`,87`7`7`7`7`7`7`7`7,J,J,J,J,>,J,D,J,J,J,J,\7$,\7$7$7$7$7$7$,V,P7$7$7$,P,P,V,\777777777777777,b,h,h,n,t,z,,,7l,7l7l7l7l7l7l7l,7l7l7l,,7l,5,5,5,5,,5,5,5,5,5,5,5,,5,5,5,,,66,6,,,,,,,,,,,,,,,,,,,,66,626F,,,,,2,,6F6F6F6F5P5P5P7f7f47f7f7f,7f47f-7f7f7f-- 7f7f7f7f7f7f47f7f7f7f-7f4-7f-7f7f7f7f7f7f7f7f66-"666-(6-.6-4666-:666666666666-466-:6-@666666667777777777777777766-F666-L6-R6-X666-j-^66666666666-d66-j6-p66666666-v7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l6p6p6p6p6p6p6p6p6p6p6p6p6p6p6p6p6p6p6p664667r-|7r46-666--6-666646666-7r4-6-66666666777777-777-7777777777777777-7777-777777773------------------77-777-7-7-777. -7-777-.7777.7.. 77777777777 7 7 7 7 7 .7 7 7 .7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 .7 7 7 7 7 7 7 7 7 7 7 7 7 66666.$666.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.6.6.6.6.6.6.6.6.6.6.6.6.0.6.6.<5&5&.B.H33.N3.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.T.Z.Z.`.l.l.l.f.l3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.777777.r777.x7777777777777777.~7777777777777................7x7x.7x7x7x.7x.7x.7x7x7x..7x7x7x7x7x7x.7x7x7x7x.7x..7x7x7x7x7x7x7x7x7x7x...........................6666.6666666.6666v6v.6v6v7.7.6v.6v6v6v/ /6v/6v6v6v//6v6v6v6v/7// 6v/&6v6v6v6v6v6v6v6v5&5&45&5&7~/,7~45&/25&5&5&/P/85&/>5&5&5&/D45&5&5&5&/J7~4/P5&/V5&5&5&5&5&5&5&5&774577/\747/b777//h7/n777/t55575/z75/5/75577775///////////////////////////////////////////////1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f////////////////////////////333333/33337$7$7$7$7$/////777777/777/7777777777777777/77777777777777f7f7f7f7f7f/7f7f7f/7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f07f7f7f7f0 7f7f7f7f7f7f7f7f0000000000007$7$77$7$7$0"7$77$0(7$7$7$77$7$7$7$7$7$7$7$7$7$7$7$0.7$7$77$047$7$7$7$7$7$7$7$0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0:0@0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F7l220^0^0^0^0L0^0R0^0^0^0^0^0^0^0^0X0^0v0v0d0v0j0p0v0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0000000000000000000000000000000000000060666666606660060003303447$7$7$7$00000000000000000044$40404*400077070022026d6d6d6d6d6d220111 6L21111111111111111111111111111111111111$1*10221621<1B1B1B1B1B26F1H1N1T1Z1`21x1f1x1f1f1f1f1f1f1r1l1f1f1f1l1l1r1x11111111111~1111~1~11111111111111111111111111111111177$7$7722212221212222111111111111111111111111111111111111221122277777277727272&2&2&2&2&2&2&2&2&2&2&2&2&2&2&2 2&7$7$72222222222222,222222222>2>2>282>2D72J2\2J2\2\2\2\2\2\2\2V2\2\2\2P2V2\2b6656672h7562n66622t62z66665 6666275 26266666666222222222222222222227 7 7 7 7 27 7 7 27 27 6626226222222226(6(6(6(26(6(6(6(6(6(6(26(6(6(22222222222222222223333 37777773777377777777777777773"77773(777777773.347*7*7*7*7*7*3:7*7*7*3@7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*7*3F7*7*7*7*7*7*7*7*7*7*7*7*7*336F6F3L3R3X3^3d6F7777773j7773p77777777777777773v77777777777777070707070703|7070703707070707070707070707070707070703707070707070707070707070707`7`333333333333333477473333333333333333333333336d6d6d6d6d6d33773733333334774766666666664 6664 4 666d6d6d6d6d6d447$7$7$7$44$40404*40464<774B7447$7$7$7$44$40404*40464<774B75z5z5z5z5z5z5z5z5z5z5z5z5z5z5z4H5z4T4T4T4T4T4T4T4T4T4T4T4T4T4T4T4N4T4Z4`4f767676767676767676767676767676767676767676767<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7<7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B6|6|6|6|6|47H6|4l4r6|6|7H4x6|4~6|6|446|6|7N7N7N7N7N7N7N7N447N7N7N47N7N7N7N7N7N7N7N7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T7T6666667Z644667Z4666666667`7`7`7`7`7`7`7`47`7`7`7`7`7`7`7`7`7`7`7`7`7f7f7f7f7f7f7f7f447f7f7f47f7f7f7f7f7f7f7f7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l7l6666667r644667r4666666667x7x7x7x7x7x7x7x447x7x7x7x7x7x7x7x7x7x7x7x5&5&5&5&5&5&7~5&445&5&7~45&5&5&5&5&5&5&5&77777577447775757755777777777777777777777777777777777777777777777766666676556675 6666666677777777777777777777777777777777777777777777767<7B6|7N7T67`7f7T67x5&7776775,5,5,5,52585>5D5J5J5P6(5V6(5\5h5h5h5h5h5h5b5h5h5h5h5n5n5n5n5n6d65z56665z5z5z5z5z5z5t5z5z5z5z555557l777555555555555555555555775577575757775575777555575575555755777757l7l7l55555577777777777777l56d6d7l7l7l6d6d6d555555555555555556d6d66d6 66d6d6d6d666666"6"6.6.6(6(6.6464646:6:6@66F6L6R6X6^6d6d6j67l7<7$77B6|7N677l7T667`7f667T6p6777 77x6v6777f7677*77067<7B6|7N7T67`7f7T67x6777677767777777777777777777777777777677777777777777777777777777777777777666666666666666666666666666777777767777777777777777777777777777777777666777777777777777777777777777777777777777777776666666666677766667<7<7$7$777B7B7H7H7N7N66777l7l7T7T7Z7Z667`7`7f7f66667l7l7r7r77777 7 777x7x777~7~77777f7f7$7$77777*7*77707076767<7<7B7B7H7H7N7N7T7T7Z7Z7`7`7f7f7l7l7r7r7x7x7~7~7777777777777777777777,fODtffJVWW|]h?0=j~Nhhh&hhhLh h]hHhRhhhThZUq:{6hxhbhhhh/hP$#PhPhh)hhNDhR*^x]DF$\,+h1h6ED$h UTh!"dpc)#hPd5M\CA<i=H:Gh L))X33) h'O'1DO,#TT[##h.xLph4 aeho.TSQ!QQd9d8h`,`hLbL&l ttB@LCh+D1hCBhn22hDhrb:h8W F<DFPP:F>;vJ&kbh0"h: h*HR\RTKTh %:.zz]5hpf <Z~hqh4}0bhah%5izYJY>pf\pf%haQfpp.hpnD2Ddeo *DOw||"h%h,` X7rhA$hhn((]010h{xF<Phnh<].1.C !ka_k-u3&4uUkYl D\:> ^LJ<hGh MNhhTh&hh_('(ill*hhhh*D.hhEhzg+5nhhgj  =h|,n<Kh~0sLr'e$sf)hhhx4wFvvh.f<Ffrhl  o`hnJhsh5hyh),-"Y@,`PhIt hh;hDh(Hd(!I"SIh^h7b s%$h)hM^]\`dsTs1hnho((:f2fue 1~hNsrhKwhhhPp>FhxT 5 ~hVD(Dh4hhPh[_G)^lxlVDllOD{h|hxhh,xhhNlhvhKh\h4E} jRmj`]5hSZZhhhhhthxdhLf bXhhchQhh hhh!hf AGhh'hh\hlhxhhhhhhh2hhhU V,hhhhhh[hhx:hhhh:lh_hh{hhhhhh DFLTarablatnARA SND >URD d    TRK .  caltcaltccmpZdnombfinahinitnligatloclzloclloclloclmedinumrpnumrligrtlmss01ss02ss03ss04ss054  ()*,-1468:<?BDFH5  ()*,-1468:<?BDFH  !V@\ N ~ h   4 N,@BVhn~4&:"PFd  ""#8##$ $*$8%.%z%&&F&'(()B))***+Z,-.../D///0@122X23t3444556,6Z678V899J9:Z:;D@>??@@AABtBCXC|KKL$MNVOFOPPlPzQbQRRzRS S S:STSxSTvTUUV V@VNVvWvWXY>YLY~YYZHZ[\\4\^\]4]H]\]r^fBg"g0ghhiFiTijj(qqgaQST aST!R! !"#$%&'()*+,-./0,'-0 \ _ I G t s/op  *4 |.1(&5$%" b c d E H u|    29!:87 Z F),+6# a~}  ;3  [ ` ^ ]GHFPVY g j N L w vXqr  !S]IGWZQO^MNK= m n o J M x }        [bJ?EcCa` e K@RUT_LA l   "dB\  f kD><D> i hH}} 0V))W++X-.YWY[\e^iwhz}w{|  $(,048<@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx| "&*.26:>BFJNRVZ^bfjnrvz~ }})+0.22KLWY\  z kj = ; Q T D B q p   u .   #     /    hgonmrqpe 0 1 2 3 4 5 6 7 8 W X Y @ C rvwxyz{ - ,~     ) % ' & +   ~    { y    |  Ff : O A   li 9 Vst   $ ( *  > ? P U <    } ~| S RF6fedcbdef  mzlrd|`z      ! ! E N Z o s xGHor:<{,l     ! ! # D J Y e r v FF*HH+qr,2'-0 \ _ I G t s  *4 :VYP  !S L N g j v w]cFI= z kj = ; Q T D B q pu .  # FIPSVY]c  ! L N g j v w^<YZ;~     8b~~ ~>"2)u  # . B D Q T p q ~BC:=) '*-04:   G I \ _ s tZ;8  2TBh!efghijklmn?@ABCDEFGHIJKLMNOPQRSTU!     !"#$%&'()*+,-./01234567 ad "@Xj,\~hhP>>>>6:*c:||||(abLLLh**F. MVabd $@.PPPP888ad!7N (     &6''''"}}$&(*_rs .t22KLWY]e{     # D O Y6 p rA y DFFc?>''&(,".d'|^bw      ! ! E N Z o s x||HHor0Lj ,Vt<^ %&"U`%&"UB%&"p~%&"RU`%&"2T8@%&"fT%&"FT~T%&"$T\T%&" $&"zT8$&"ZffTlt$&"8>DDR$&"$$S2$&"S$&"l$&"LSp$&"*SN$&"lrxx$&"JPVVSd$&"&,22R8@$&" #tyXz|bV{ &JT+I:+yz{|VXb++ L~. v/ |D0 W|}022oB,f 6Br9B3B^88.3BH8883      P g b;):  < E I= Z dBGGMopN.55;)  + E I, Z d1GG<op=~<                    T<d 0 ?)HH9qr:L.77p5^_`abcdefghijklmnopqrstuvwxyz{|}~^<d # +)HH2qr3Kj+j99`- - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U VJuv<d  )HH*qr+J8;;> v w x y z { | } ~  P<d)HH;qr<>56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]#$%&'()*+,-./01234]<d )HH;qr< "*I\%l==*ID%T>>l        ZYQdFHeorhXXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~dedGHRorT@^GLGL A Z o O Y e o ;$GG@@AFHA<d E N) Z o3 IHHrQQsqrtv <d O Y< e oGCMR]FFHHkkqrFpA O Y e o CM:PFHAA<d O Y< e oGFFRHHSqrT]689jkdR  TGHWorY/CCd  RGHUorW8,^8xEkk)*&    EDGGEp nZ !"#$%&'()*+,-./0123456789:;<=>?@LMNOPQRSTUVWXYZ[ABCDEFGHIJK\]^_`abcdefghijk`;)  + 0 ?, e o< GGGWopX4Z[\]^_`abcdefghij       $* t7     er      *   ! ! E I Z d~     g ;|0=NP  b  h kGG{op|~< Ist; 0 ?)GG9op:P%'()*+,-./01234"#$%& !<=>?@Aer  0    y @           @     ! " # $ % & ' ( ) * + ,              l3 b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  \ ] ^ _ ` a Kwx<d  ) ! !/HH0qr1? V z: Lyz;er)GG7op8> M{|;) ! !:GG;op<h                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _NO}~d RGHbord~<   BCDEFG6789:;<=>?@A<              ` a b c d e  !r6 "&'()012345TUVWXYHIJKLMNOPQRS+*#/%$,.-!6        ` a b c d e  !: 2 ` a b c d e f g h i j k l m n o p q r s t u        ! !&    6    ! !Y      !"[\d ! !RGHSorUi      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiVWdRGHcore(               ! "   0 ?J" A B C D E F G H I J K L M N O P QE&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN !"#$%Oh;)  ;  AGGBopC R S T U V W X Y Z [   , /N$ E F G H I J K L M N O P Q R S T U D D E F G H I J K L M N O P Q R S T U   g gp5 h i j k l m n o p q r s t u v w x y z { | } ~  R; # +)GG2op3,    p B  S; O Y) e o4GG?op@J"       ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ;  0 ? B C < = > ? @ A  `- V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ U; ! !)GG*op+LTVZ[\]@ABCDEFGHIJKLMNOPQpqrstuvwxyz{|}~defghi_^WcYX`baURS      :@ABCDEFGHIJKJ"  0 ?6 X)         "=jklmnopqrstuvwxyz{|}~rstuvghijklmnopqX<d ! !) E I* Z d/HH:qr;H! 0 ?2   0 ?|;  4 ! !:zcc;):KGGtbbuopvx lmnopqrstuvwxyz{|}~ # $ % & ' ( ) * + , - . /     ./0123456789:;<=>? - W X Y Z [ \ ] ^ _ ` a b c d e fa ;|0=_a  s  y E Iz Z dGGop t" !"#$%&'()*+, 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @@LMNOPQRSTUVWXYZ[NOPQRSTUVW89:;<=>?@ABCDEFGHIJKLM\]^_`abcdefghijk 0 ? E N Z o 0LYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GHIJKLMNOPQRSTUVWX56789:;<=>?@ABCDEF|% ' ! !KzC.Jh)`N)FN)*N)t N)XrrN)<VVN) NF.Jh|hbhFhn(hR" h6rrhh  '.Jh' & a'&a'&a'v&a'Z.&a'>~&r~a'"&VaD.JhN&&l4   lnlPlJ4l.ll%PLZZZ6r*@l.Nj(DZp@`2Rr:`h%%rIR%$zzz   hJJJ   0 ? %88KKL%8MM$NN#OO   E I Z dPP ;|0=NP  b  hGGkoplHQQ&RR   er$SS y TT##UUU#"0"VVV##rWv#,rXN    ^YYer![[[#__"" ```"!aa"!bb"!ccc!!ddd eeeFff F*f>gghh;)  ;GGAopB!ii , / jj  gkk # +ll!2Hrm!z*0rm   = nn e opJn O Yoo   z ppqq rr      ss ttuu vv ! "www@@<dFF<HH=qr>6xx yy 0 ?D {{;)GGRbbSopTVP|| ;0A  C E ID Z dIGGTopU,|}|   ~~ 0 ? ,} E I Z d||~~d E I Z d(      !"#STUVWXYZ[\      !"#)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ$%&''R<d)*+2 3\||~~HHQQYYqr @VR j2TYY)* QQ)*T ;|)6  H||N~~OPGGQopR;|)6  HGGNopON$    E    s u|| ~~!"#>   s u |~<<.Jh.".pRT68zGJ~F|% ' ,\\^]      ` e  !$J"NOPQRSTUVW89:;<=>?@ABCDEFGHIJKLM E N Z o r\"wxy<=>?AEHIyz{|}VWXAF$ .| <!er  #  ; A G ` eM R WS Y k  + #4^p(:L!^5Fd vTT|^^}ee~X) !"#$%&'()*+,-./01234567~<     _<d )HH9qr:H!NOPQRSTUVW89:;<=>?@ABCDEFGHIJKLM   E N Z o & E N Z o  $$_diDJPV\bhntz b b b b b b b b b b b bdbebfbgbhbibbbbbbbbbbbbb     +0 BTf0DJPV\bhntz d d d d d d d d d d d dddedfdgdhdiddddddddddddd *LV(8B   di $D  $ (.4:@FLRX^djpv| 0b 1b 2b 3b 4b 5b 6b 7b 8b 9b :b ;b <b =b >b ?b @b( # / 0 @  + $60"JPV\bhntz  0 1 2 3 4 5 6 7 8 9 : ; < = > ? @" 0 @ ^)TTR^^STV 3;GG)op*^, !"#$%&'()*+,-./0123456789:;Gopff)* &@\ VP r k!(,,LLhhxy~~ 0 ? y / > N ] , ;m }L[$%&'(  )   "#)'$*&,(*+!.-/0% 819?=:2+<B345>@A7DCEF;6NGOUSPH,RXIJKTVWMZY[\QLd]ekif^-hn_`ajlmcpoqrgbzs{|t.~uvwy}x/01234     5 !"lmnopqrstuvwxyz{|}~`_ #%&')+,/2678:;              ! " # % & h i j l o p q t u x z { | ~ V W X Z ] ^ _ b c f h i j l n o r u y z { } ~   #&*+,./ !$%(*+,.0147;<=?@XYZ\_`adehjklnpqtw{|}&'(*-./23689:<>?BEIJKMNGILMNRSUVY[`bcdfghj^opstyz{|}~R|}~PSTUVWCDEFGHIJKLM !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK` ! ! J N e o SSOP Z`-QRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzi<d ! !)HH*qr+Fx ! "<dHH)qr* J N e o"8X^ SS)*  !#6  opq^; 2^Lr\\  &L^]  b rr  *dc6.b T^",NbFpZdnL~  &,28>D^SQVUPONMT $XTON] $]`[TX  &,28>DX^TSQUONMT $AX]TSO _][O  &,28>DT^SQPUONMO]X]NT X]NP$*06<WS QUPONMTX]N &,[T!X]ON $`[T%X#] "(.4:@FL3^1W/V-S+Q)PUONM UNM5O M9U7ON [>X<T:N  &,28>D^SQVUPONMT $XTON] $]`[TX  &,28>DX^TSQUONMT $BX]TSO $`_][O$*06<^SQPUONMO]X]NT  X]NP$*06<WSQUPONMTX]N &,[T"X ]ON &,U`[T&X$] "(.4:@FL4^2W0V.S,Q*PUONM UNM6O M8OUN [?X=T;N$358::<=DSUX'ZZ+\],L~ $,4<DLRX^djpIMIKINIEIOILKEMONLIIlibraqm-0.10.1/tests/fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf000066400000000000000000000247241441556702000250200ustar00rootroot00000000000000GDEF&HFGPOS^dSdjGSUB{}dOS/2Y-v-4Vcmap,mcvt i9|fpgmq4vj |gasp ( glyfN 4headQn!6hhea "0$hmtx"Tloca$x#dmaxpq# name $ Jrarabhebr4latn(nko 4kernmarkmkmk" (npp :R z;>  cr 4@  !6 8:!$JPtzV\bhntzR`4R,:rX~SrR&RL X+:BR   &farabfina init&liga,medi4rlig:@\  "#$'*+.148  0&)-036: %(,/259 D =#>#  ;"<"/0!33f n $`) PfEd@ m`$$ ,  )eilns#(-19EGJO (eglns#'-19DGJO:3+&%   ()eegillnn ss    ##'(--1199DEGGJJOO5fqu-J3T99NR7s`s3VV9s3D{o{RoHT3fs +b-{T#\q#H99`#fy```{w``b{{Rffw;{J/}oo5jo{-{T7fD)fs, %Id@QX Y!-,%Id@QX Y!-,  P y PXY%%# P y PXY%-,KPX EDY!-,%E`D-,KSX%%EDY!!-,ED-,%%I%%I` ch #:e:-{ 7@  KTX 8YKTX @8Y29910#&547{>;o @ <99103#654<:q{p@$   KE9190@)?p?????,// , ooooo ]q]!3267# 32.#" ͷjbck)^Z44*,8 CėqVZ{ (J@#  &#' & G E)221/990`***]4&#"326!"&'5326=#"3253aQQR9||9=,*[cb::bcd4@  N  F21/<90`]#4&#"#3>32d||Bu\edy+@F<21/0@  @ P ` p ]3#3#`y"F1/0@ @P`p]3#d{6@  N  F21/<90`]#4&#"#3>32d||Bu\`edo{'@<  S  SB %( R"E(9999190KSX99Y"']@m   . , , , ; ; ; ; $( ( *//*(() )!$'      '/)?)_))))))]]q.#"#"&'532654&/.54632NZb?ĥZlfae@f?((TT@I!*##55YQKP%$XH`6ܴt o]1K QX8Y /0%4.#!5!23!5 &EyWJ{tEKcf:%.UrUB`#1K QX8Y/0B`LXBH`KF >   ]1K QX8Y ]0g G ]35%3>1X‚$FDvj/h 29X`@F 1KTKT[X /1YK QX8Y /0KPX//0Y#4.#!5!2ʺ3P~RO~zM::IviF)5]`I F 1]K QX 8Y /j[]0#4.+#"'53265#5!2 $@pP{5NA&G.]l,^`Jce:%r3Cl'y3#&?9 (f$3  !27# '&5767"$JKԖ^`e~h'?6`vc–e4- b&%654'3!5 76 52.0ڞ:H~vR>u **!27# '&54767&'&54763"32767SwSԖ[bWqM3/X|t]0-.()ѱvcoɱe8MA4hKEu%653#"'$&733276NbyU_I@A(IPmI~jÐB"\\ss>"5^.327654'&'&#"&#4763&547632#bzL,5;(.;Dn2KxAZM\MObxX'*9:X DD(NOf7*(?$S-8AP"327654'&'2#"'&5476B!799[]KB{ƶ`Q%T*WE{R,,9.UMAx|KU#JNJ6%#"'$47376767654'&'&'&'4762#&'&'&VfxH?Ba=~T;~BrC:@_` B(EN><}9M I&huqc- !P85J.39sJ%*==!'&"7*S@UYD J&@ $-&'&5476323"'&'#5276767654&#") lE?I(7$# +EȓV " - 8_W4'6O -n=*{nmp" %Ow#"'$47332%$7654'L㹿?Ah C7ZFe@:&a \^}C"96q]K;=z27&'&547632&#"7zN,8:\>42@B^!x$%-`+-!d! M fMX %+53276=3+HZ#c,1VV,1jٻ~X%+53276=3;#"+MZ#c,11,c7nVV,1jj1,P,l9&# 3;#"'&1,cKPWskj1,\e&A?9X&B?~X&C? >f0%3#"'&'&'!27# '&5767"#"5$3 "(1{R=IrbJIԖ^` __&m3HZdP^vc–e4)?6 [_w\/&'&'&5672+5327676SSgURHKLXJKݣdht^#4b4bBPH:jV>/);#"'&'+53276767&'&'&5672~AI2hrBV~(;E)Kݣdht^eSgURHK 4b)N"w6a.%PH:jV# ~&3;#"'!5 767654x I*eK2D0# &pgM,>ꅗ:H~u %+! '&7.54762;# '!2764"[b=D}a_[9^DU)k_1ocz2t*n@00@p[C+ @Mkl=v8`3$*727&'&5763"327%+5SF7J \X];d}M4F!Ť$/%+532767&'&5476762;#""654'v`kB;(aD hYYh MXD=p`vʨ4/gg/($'UZ'-)74--47)-'bM,(U __ #$%653;#"'#"'$&733276N1,cKpNyUcE@A(IPmI~jkj1,3.(B"[\ss~B"5 +5327653WPKc,1se\,1j%+5327653;#"SMKc,11,cKVV,1jkj1,gt5%327654'&'&#"#"'&#4763&547632;#"bzL,5;(.;D K2KxAZM\HT((&iK*9:X DD(PNNOmf7*(?$GC,,m$%#"'+5326767632%327654'&#"dan@ht4W^Q[a>/4(*X.[4fb0G1P8TYNE5EK&)/4:''5)24fb0$#1P8S1>,E5EX !a%^ $&'&'&'3;#"'&'#"'&5476 xRot$8pKZI-&8:m*12e CY>)2'+eO,3;I0D-=67654'&#"27&'&5476&'5#"'+5327654'&$"':A4N--0M,Q@(Jxb 41}! @H=.%4-+#%v iEN@TSZ 'D49g=ql)D%'i.C!,T#"'53273676537M͞jK`Uq%BUG FA+7T#"'5327367653;#"'&4;IʡjK`Uq%"@Pif<[A FA+7DT)53#73#'3#&;#"'&'#"'$&733$767654'3F??7KX~X W x;R_<?ײ?ײ r Um Q rDfqq99+oXXXB9l9*u1CCOVz:jXplp:j**jBupSIJ8:jTT:j8c1mH2S<G_M'n 0 h H    F y DT+h   DejaVu SansBook~Z@%2%%A:B2SAS//2ݖ}ٻ֊A}G}G͖2ƅ%]%]@@%d%d%A2dA  d   A(]%]@%..%A  %d%@~}}~}}|d{T{%zyxw v utsrqponl!kjBjSih}gBfedcba:`^ ][ZYX YX WW2VUTUBTSSRQJQP ONMNMLKJKJIJI IH GFEDC-CBAK@?>=>=<=<; <@; :987876765 65 43 21 21 0/ 0 / .- .- ,2+*%+d*)*%)('%(A'%&% &% $#"!! d d BBBdB-B}d       -d@--d++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++libraqm-0.10.1/tests/fonts/sha1sum/db17d357d9d813a863c3859d2f3af11faa0b39c7.ttf000066400000000000000000000066341441556702000253530ustar00rootroot00000000000000GDEF GPOS $GSUBP/ 4hOS/2ruHVcmapuatcvt 3 fpgmgasp glyfDlheadl6hhea $$hmtx%@ loca3maxpd name C BpostvZ prepuy^ D/>323!654'&#"#654'&#"##7!>32aLn>%o"o{#s#o{#sh$Gd|Xuwh>eBSjN8>$EK6>#Dijp{dJ&24?67676$>7367632#"'&73 65# d cj>Q)djafO.MijoM2jM+ZY@H"Y<%E95dNnMOjDN͒k{jQ3h D,)547%.47%63267#'"632#"'&73 65# ,@&I4|WQx-Z=>h1[09=oM2oM+ZYENLWG # [+Y; jEN͙kujR3hH'+7!267326733!7#"&'# 477!^#"s#"s%|oIjqNv$EPjKt$CPBi{q BS:7 +@ JDYE)І_<~~I: (fd,m Im (d363Ef PfEd1Bm`$ L$ L(1B1B (11BB, %Id@QX Y!-,%Id@QX Y!-,  P y PXY%%# P y PXY%-,KPX EDY!-,%E`D-,KSX%%EDY!!-,ED-@$d@$ 'd']}  22GG}  2d2dd%x %K.%x @@%0% @@   @I o} @ :]%]@%@0d0 ddl~}~2}|{|{zyx wv wvuv utltsrqp qp p@o}nm>nkm>lk llk k@jddjihihg]hhgf%g]g@f%eddeddcba`_.`_.^]\K[}ZYDXWVUSdRQ2POP}ONA@BL JdI"IH2GGFE EDCDkCBCBA BA@ A @ @@S?>->M=<=K<; <<@; :9:]98987 654543432 321 2 2@1 0/0D/.//. ..- d-,+,K+"++@* *d)(0)A(-(0'-'&:% %]$#$S#"##@"! !]     @#$0S-0 k@-B d-    @    @8k d } d2}-2- Sd+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sLjq{)j/s3fbwPP;f=fRBsJ}s jjb\jjjj jj)R`fX{Hjj``'''Djb{sj\)'\jj=fHf JJ }T{3`}TjNNs   DejaVu SerifItalic~Z   @NDFLT2cyrlgrek2latn2MKD SRB locllibraqm-0.10.1/tests/fonts/sha1sum/e4c7989e4c78dc2af43fd87ede6a6ba6cbf14cb5.ttf000066400000000000000000000031341441556702000257450ustar00rootroot00000000000000OTTO CFF =\ "OS/2h7`cmapSlhead Ʀ6hhea$hmtxDmaxpPname3e1_` post2 _<$>p8>PXKX^2,UKWN@ p8x   4; Ub @| (  4 & 4@Copyright 2016 by Unicode Inc.OpenTypeTest CMAP 14RegularOpenTypeTestCMAP14-RegularSascha Brawerhttp://scripts.sil.org/OFLCopyright 2016 by Unicode Inc.OpenTypeTest CMAP 14RegularOpenTypeTestCMAP14-RegularSascha Brawerhttp://scripts.sil.org/OFLL0 "i "iݛ}[E+4<"i2OpenTypeTestCMAP14-Regular .>Ur\(/Souni82A6_uE0100uni82A6_uE0101uni2269FE00uni2269Copyright \(c\) 2016 by Unicode Inc.OpenTypeTest CMAP 14 Regular l*PPP"DB)*z 1q|̳VWnJK{B@B@tGt99{ $d3Oqww_PW|: q{ӱDAAAAzGz3? h! qLL h! JfvlCul 7 |W&-y46[6B " "  "ddXlibraqm-0.10.1/tests/invisible-glyph-explicit.test000066400000000000000000000013201441556702000222070ustar00rootroot00000000000000fonts/sha1sum/e4c7989e4c78dc2af43fd87ede6a6ba6cbf14cb5.ttf 芦󠄂 --direction ltr --invisible-glyph 33333 Direction is: LTR Before script detection: script for ch[0] Hani script for ch[1] Zinh After script detection: script for ch[0] Hani script for ch[1] Hani Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 2 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 2 direction: ltr script: Hani font: OpenTypeTest CMAP 14 Glyph information: glyph [1] x_offset: 0 y_offset: 0 x_advance: 1000 font: OpenTypeTest CMAP 14 glyph [33333] x_offset: 0 y_offset: 0 x_advance: 0 font: OpenTypeTest CMAP 14 UTF-32 clusters: 00 00 UTF-8 clusters: 00 00 libraqm-0.10.1/tests/invisible-glyph-hidden.test000066400000000000000000000011711441556702000216250ustar00rootroot00000000000000fonts/sha1sum/e4c7989e4c78dc2af43fd87ede6a6ba6cbf14cb5.ttf 芦󠄂 --direction ltr --invisible-glyph -1 Direction is: LTR Before script detection: script for ch[0] Hani script for ch[1] Zinh After script detection: script for ch[0] Hani script for ch[1] Hani Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 2 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 2 direction: ltr script: Hani font: OpenTypeTest CMAP 14 Glyph information: glyph [1] x_offset: 0 y_offset: 0 x_advance: 1000 font: OpenTypeTest CMAP 14 UTF-32 clusters: 00 UTF-8 clusters: 00 libraqm-0.10.1/tests/invisible-glyph-space.test000066400000000000000000000013101441556702000214600ustar00rootroot00000000000000fonts/sha1sum/e4c7989e4c78dc2af43fd87ede6a6ba6cbf14cb5.ttf 芦󠄂 --direction ltr --invisible-glyph 0 Direction is: LTR Before script detection: script for ch[0] Hani script for ch[1] Zinh After script detection: script for ch[0] Hani script for ch[1] Hani Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 2 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 2 direction: ltr script: Hani font: OpenTypeTest CMAP 14 Glyph information: glyph [1] x_offset: 0 y_offset: 0 x_advance: 1000 font: OpenTypeTest CMAP 14 glyph [5] x_offset: 0 y_offset: 0 x_advance: 0 font: OpenTypeTest CMAP 14 UTF-32 clusters: 00 00 UTF-8 clusters: 00 00 libraqm-0.10.1/tests/languages-sr-ru.test000066400000000000000000000017631441556702000203120ustar00rootroot00000000000000fonts/sha1sum/db17d357d9d813a863c3859d2f3af11faa0b39c7.ttf тбтб --direction ltr --languages sr,0,4,ru,4,4 Direction is: LTR Before script detection: script for ch[0] Cyrl script for ch[1] Cyrl script for ch[2] Cyrl script for ch[3] Cyrl After script detection: script for ch[0] Cyrl script for ch[1] Cyrl script for ch[2] Cyrl script for ch[3] Cyrl Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 4 level: 0 Number of runs after script itemization: 2 Final Runs: run[0]: start: 0 length: 2 direction: ltr script: Cyrl font: DejaVu Serif run[1]: start: 2 length: 2 direction: ltr script: Cyrl font: DejaVu Serif Glyph information: glyph [5] x_offset: 0 y_offset: 0 x_advance: 1940 font: DejaVu Serif glyph [4] x_offset: 0 y_offset: 0 x_advance: 1233 font: DejaVu Serif glyph [3] x_offset: 0 y_offset: 0 x_advance: 1942 font: DejaVu Serif glyph [2] x_offset: 0 y_offset: 0 x_advance: 1250 font: DejaVu Serif UTF-32 clusters: 00 01 02 03 UTF-8 clusters: 00 02 04 06 libraqm-0.10.1/tests/languages-sr.test000066400000000000000000000012571441556702000176640ustar00rootroot00000000000000fonts/sha1sum/db17d357d9d813a863c3859d2f3af11faa0b39c7.ttf тб --direction ltr --languages sr,0,4 Direction is: LTR Before script detection: script for ch[0] Cyrl script for ch[1] Cyrl After script detection: script for ch[0] Cyrl script for ch[1] Cyrl Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 2 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 2 direction: ltr script: Cyrl font: DejaVu Serif Glyph information: glyph [5] x_offset: 0 y_offset: 0 x_advance: 1940 font: DejaVu Serif glyph [4] x_offset: 0 y_offset: 0 x_advance: 1233 font: DejaVu Serif UTF-32 clusters: 00 01 UTF-8 clusters: 00 02 libraqm-0.10.1/tests/letter-and-wordspacing.test000066400000000000000000000224041441556702000216460ustar00rootroot00000000000000fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf وَرِقْE̽̿̎ͩͥ͊̚n̡̩͉̜̩͕ͨ̉ͩ̂̾ğ̞̭͙̰͍̽̆͝l̯̟̹̩̟͓̒̐ͫͥ̒̑͝i̷̲̪̳̝̓͌͊̍̚ş̍̒ͬ̅̅h̫ͥ z --direction rtl --letter-spacing 10,0,72 --word-spacing 50,0,72 Direction is: RTL Before script detection: script for ch[0] Arab script for ch[1] Zinh script for ch[2] Arab script for ch[3] Zinh script for ch[4] Arab script for ch[5] Zinh script for ch[6] Latn script for ch[7] Zinh script for ch[8] Zinh script for ch[9] Zinh script for ch[10] Zinh script for ch[11] Zinh script for ch[12] Zinh script for ch[13] Zinh script for ch[14] Latn script for ch[15] Zinh script for ch[16] Zinh script for ch[17] Zinh script for ch[18] Zinh script for ch[19] Zinh script for ch[20] Zinh script for ch[21] Zinh script for ch[22] Zinh script for ch[23] Zinh script for ch[24] Zinh script for ch[25] Zinh script for ch[26] Latn script for ch[27] Zinh script for ch[28] Zinh script for ch[29] Zinh script for ch[30] Zinh script for ch[31] Zinh script for ch[32] Zinh script for ch[33] Zinh script for ch[34] Zinh script for ch[35] Zinh script for ch[36] Latn script for ch[37] Zinh script for ch[38] Zinh script for ch[39] Zinh script for ch[40] Zinh script for ch[41] Zinh script for ch[42] Zinh script for ch[43] Zinh script for ch[44] Zinh script for ch[45] Zinh script for ch[46] Zinh script for ch[47] Zinh script for ch[48] Zinh script for ch[49] Zinh script for ch[50] Latn script for ch[51] Zinh script for ch[52] Zinh script for ch[53] Zinh script for ch[54] Zinh script for ch[55] Zinh script for ch[56] Zinh script for ch[57] Zinh script for ch[58] Zinh script for ch[59] Zinh script for ch[60] Zinh script for ch[61] Latn script for ch[62] Zinh script for ch[63] Zinh script for ch[64] Zinh script for ch[65] Zinh script for ch[66] Zinh script for ch[67] Zinh script for ch[68] Latn script for ch[69] Zinh script for ch[70] Zinh script for ch[71] Zyyy script for ch[72] Latn After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Arab script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Latn script for ch[13] Latn script for ch[14] Latn script for ch[15] Latn script for ch[16] Latn script for ch[17] Latn script for ch[18] Latn script for ch[19] Latn script for ch[20] Latn script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn script for ch[28] Latn script for ch[29] Latn script for ch[30] Latn script for ch[31] Latn script for ch[32] Latn script for ch[33] Latn script for ch[34] Latn script for ch[35] Latn script for ch[36] Latn script for ch[37] Latn script for ch[38] Latn script for ch[39] Latn script for ch[40] Latn script for ch[41] Latn script for ch[42] Latn script for ch[43] Latn script for ch[44] Latn script for ch[45] Latn script for ch[46] Latn script for ch[47] Latn script for ch[48] Latn script for ch[49] Latn script for ch[50] Latn script for ch[51] Latn script for ch[52] Latn script for ch[53] Latn script for ch[54] Latn script for ch[55] Latn script for ch[56] Latn script for ch[57] Latn script for ch[58] Latn script for ch[59] Latn script for ch[60] Latn script for ch[61] Latn script for ch[62] Latn script for ch[63] Latn script for ch[64] Latn script for ch[65] Latn script for ch[66] Latn script for ch[67] Latn script for ch[68] Latn script for ch[69] Latn script for ch[70] Latn script for ch[71] Latn script for ch[72] Latn Number of runs before script itemization: 2 BiDi Runs: run[0]: start: 6 length: 67 level: 2 run[1]: start: 0 length: 6 level: 1 Number of runs after script itemization: 2 Final Runs: run[0]: start: 6 length: 67 direction: ltr script: Latn font: DejaVu Sans run[1]: start: 0 length: 6 direction: rtl script: Arab font: DejaVu Sans Glyph information: glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1239 font: DejaVu Sans glyph [9] x_offset: 0 y_offset: 0 x_advance: 1298 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1239 font: DejaVu Sans glyph [5] x_offset: 0 y_offset: 0 x_advance: 1300 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1239 font: DejaVu Sans glyph [8] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1239 font: DejaVu Sans glyph [7] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [10] x_offset: 0 y_offset: 0 x_advance: 1067 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [6] x_offset: 0 y_offset: 0 x_advance: 1298 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 10 y_offset: 0 x_advance: 1239 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 10 y_offset: 0 x_advance: 1239 font: DejaVu Sans glyph [20] x_offset: 0 y_offset: 0 x_advance: 989 font: DejaVu Sans glyph [0] x_offset: 10 y_offset: 0 x_advance: 1239 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans UTF-32 clusters: 06 06 06 06 06 06 06 06 14 14 14 14 14 14 14 14 14 14 14 14 26 26 26 26 26 26 26 26 26 26 36 36 36 36 36 36 36 36 36 36 36 36 36 36 50 50 50 50 50 50 50 50 50 50 50 61 61 61 61 61 61 61 68 68 68 71 72 04 04 02 02 00 00 UTF-8 clusters: 12 12 12 12 12 12 12 12 27 27 27 27 27 27 27 27 27 27 27 27 50 50 50 50 50 50 50 50 50 50 69 69 69 69 69 69 69 69 69 69 69 69 69 69 96 96 96 96 96 96 96 96 96 96 96 117 117 117 117 117 117 117 130 130 130 135 136 08 08 04 04 00 00 libraqm-0.10.1/tests/meson.build000066400000000000000000000037151441556702000165360ustar00rootroot00000000000000python3 = import('python').find_installation() raqm_test = executable( 'raqm-test', 'raqm-test.c', include_directories: include_directories(['../src']), link_with: libraqm_test, dependencies: deps, install: false, ) tests = [ 'buffer-flags-1.test', 'cursor-position-1.test', 'cursor-position-2.test', 'cursor-position-3.test', 'cursor-position-4.test', #'cursor-position-GB3.test', 'cursor-position-GB4.test', 'cursor-position-GB5.test', 'cursor-position-GB8a.test', 'cursor-position-GB9.test', 'cursor-position-GB9a.test', 'direction-ltr-1.test', 'direction-ltr-2.test', 'direction-ltr-3.test', 'direction-ltr-4.test', 'direction-ltr-5.test', 'direction-neutral-1.test', 'direction-rtl-1.test', 'direction-rtl-2.test', 'direction-rtl-3.test', 'direction-rtl-4.test', 'direction-rtl-5.test', 'direction-ttb-1.test', 'direction-ttb-2.test', 'empty-text.test', 'features-arabic.test', 'features-kerning.test', 'features-ligature.test', 'invisible-glyph-explicit.test', 'invisible-glyph-hidden.test', 'invisible-glyph-space.test', 'languages-sr-ru.test', 'languages-sr.test', 'letter-and-wordspacing.test', 'multi-fonts-1.test', 'multi-fonts-2.test', 'scripts-backward-ltr.test', 'scripts-backward-rtl.test', 'scripts-backward.test', 'scripts-common.test', 'scripts-combinig-marks.test', 'scripts-forward-ltr.test', 'scripts-forward-rtl.test', 'scripts-forward.test', 'test-1.test', 'test-2.test', 'test-3.test', 'test-4.test', 'test-5.test', 'xyoffset.test', ] foreach filename : tests testname = filename.split('.')[0] test( testname, python3, args: [ files('runtest.py'), meson.current_source_dir(), raqm_test, join_paths(meson.current_source_dir(), filename), ], ) endforeach libraqm-0.10.1/tests/multi-fonts-1.test000066400000000000000000000061071441556702000177120ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf,0,12,fonts/sha1sum/a22e097e7f3cefffd1a602674dff5108efa0eec2.ttf,12,21 English اللغة العربية Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Zyyy script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Zyyy script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Arab After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Arab Resolved direction is: LTR Number of runs before script itemization: 2 BiDi Runs: run[0]: start: 0 length: 8 level: 0 run[1]: start: 8 length: 13 level: 1 Number of runs after script itemization: 3 Final Runs: run[0]: start: 0 length: 8 direction: ltr script: Latn font: Amiri run[1]: start: 10 length: 11 direction: rtl script: Arab font: Aref Ruqaa run[2]: start: 8 length: 2 direction: rtl script: Arab font: Amiri Glyph information: glyph [40] x_offset: 0 y_offset: 0 x_advance: 1174 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [74] x_offset: 0 y_offset: 0 x_advance: 932 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [86] x_offset: 0 y_offset: 0 x_advance: 738 font: Amiri glyph [75] x_offset: 0 y_offset: 0 x_advance: 1032 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [0] x_offset: 0 y_offset: 0 x_advance: 748 font: Aref Ruqaa glyph [2320] x_offset: 0 y_offset: 0 x_advance: 360 font: Amiri glyph [388] x_offset: 0 y_offset: 0 x_advance: 446 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 07 20 19 18 17 16 15 14 13 12 11 10 09 08 UTF-8 clusters: 00 01 02 03 04 05 06 07 31 29 27 25 23 21 19 18 16 14 12 10 08 libraqm-0.10.1/tests/multi-fonts-2.test000066400000000000000000000021371441556702000177120ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf,0,8,fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf,2,4 عربي Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab Resolved direction is: RTL Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 4 level: 1 Number of runs after script itemization: 3 Final Runs: run[0]: start: 3 length: 1 direction: rtl script: Arab font: Amiri run[1]: start: 1 length: 2 direction: rtl script: Arab font: DejaVu Sans run[2]: start: 0 length: 1 direction: rtl script: Arab font: Amiri Glyph information: glyph [2454] x_offset: 0 y_offset: 0 x_advance: 1200 font: Amiri glyph [37] x_offset: 0 y_offset: 0 x_advance: 570 font: DejaVu Sans glyph [42] x_offset: 0 y_offset: 0 x_advance: 1130 font: DejaVu Sans glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri UTF-32 clusters: 03 02 01 00 UTF-8 clusters: 06 04 02 00 libraqm-0.10.1/tests/raqm-test.c000066400000000000000000000167121441556702000164560ustar00rootroot00000000000000/* * Copyright © 2015 Information Technology Authority (ITA) * Copyright © 2016-2023 Khaled Hosny * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ #ifdef __GNUC__ #define _DEFAULT_SOURCE #endif #include #include #include #include #include #include "raqm.h" static char *text = NULL; static char *font = NULL; static char *fonts = NULL; static char *languages = NULL; static char *direction = NULL; static char *features = NULL; static char *require = NULL; static char *letterspacing = NULL; static char *wordspacing = NULL; static int cluster = -1; static int position = -1; static int invisible_glyph = 0; /* Special exit code, recognized by automake that we're skipping a test. */ static const int skip_exit_status = 77; static char* encode_bytes (const char *bytes) { char *s = (char *) bytes; char *p; char *ret = (char *) malloc (strlen (bytes) + 1); char *r = ret; while (s && *s) { while (*s && strchr (" ", *s)) s++; if (!*s) break; errno = 0; unsigned char b = strtoul (s, &p, 16); if (errno || s == p) { free (ret); return NULL; } *r++ = b; s = p; } *r = '\0'; return ret; } static bool parse_args (int argc, char **argv) { int i = 1; while (i < argc) { if (strcmp (argv[i], "--text") == 0) text = strdup (argv[++i]); else if (strcmp (argv[i], "--bytes") == 0) text = encode_bytes (argv[++i]); else if (strcmp (argv[i], "--font") == 0) font = argv[++i]; else if (strcmp (argv[i], "--fonts") == 0) fonts = argv[++i]; else if (strcmp (argv[i], "--languages") == 0) languages = argv[++i]; else if (strcmp (argv[i], "--direction") == 0) direction = argv[++i]; else if (strcmp (argv[i], "--font-features") == 0) features = argv[++i]; else if (strcmp (argv[i], "--letter-spacing") == 0) letterspacing = argv[++i]; else if (strcmp (argv[i], "--word-spacing") == 0) wordspacing = argv[++i]; else if (strcmp (argv[i], "--require") == 0) require = argv[++i]; else if (strcmp (argv[i], "--cluster") == 0) cluster = atoi (argv[++i]); else if (strcmp (argv[i], "--position") == 0) position = atoi (argv[++i]); else if (strcmp (argv[i], "--invisible-glyph") == 0) invisible_glyph = atoi (argv[++i]); else { fprintf (stderr, "Unknown option: %s\n", argv[i]); return false; } i++; } return true; } static bool has_requirement (char *req) { if (strcmp (req, "HB_") > 0) { long req_ver = strtol (req + strlen ("HB_"), NULL, 10); long ver = HB_VERSION_MAJOR*10000 + HB_VERSION_MINOR*100 + HB_VERSION_MICRO; return ver >= req_ver; } if (strcmp (req, "FT_") > 0) { long req_ver = strtol (req + strlen ("FT_"), NULL, 10); long ver = FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH; return ver >= req_ver; } fprintf (stderr, "Unknown requirement: %s\n", req); return false; } int main (int argc, char **argv) { FT_Library library; FT_Face face; raqm_t *rq; raqm_glyph_t *glyphs; size_t count, start_index, index; raqm_direction_t dir; int x = 0, y = 0; unsigned int major, minor, micro; setlocale (LC_ALL, ""); fprintf (stderr, "Raqm " RAQM_VERSION_STRING "\n"); raqm_version (&major, &minor, µ); assert (major == RAQM_VERSION_MAJOR); assert (minor == RAQM_VERSION_MINOR); assert (micro == RAQM_VERSION_MICRO); assert (raqm_version_atleast (major, minor, micro)); if (!parse_args(argc, argv)) return 1; if (text == NULL || (font == NULL && fonts == NULL)) { fprintf (stderr, "Text or font is missing.\n"); return 1; } if (require) { for (char *req = strtok (require, ","); req; req = strtok (NULL, ",")) if (!has_requirement (req)) return skip_exit_status; } dir = RAQM_DIRECTION_DEFAULT; if (direction && strcmp(direction, "rtl") == 0) dir = RAQM_DIRECTION_RTL; else if (direction && strcmp(direction, "ltr") == 0) dir = RAQM_DIRECTION_LTR; else if (direction && strcmp(direction, "ttb") == 0) dir = RAQM_DIRECTION_TTB; rq = raqm_create (); assert (raqm_set_text_utf8 (rq, text, strlen (text))); assert (raqm_set_par_direction (rq, dir)); assert (!FT_Init_FreeType (&library)); if (fonts) { for (char *tok = strtok (fonts, ","); tok; tok = strtok (NULL, ",")) { int start, length; assert (!FT_New_Face (library, tok, 0, &face)); assert (!FT_Set_Char_Size (face, face->units_per_EM, 0, 0, 0)); start = atoi (strtok (NULL, ",")); length = atoi (strtok (NULL, ",")); assert (raqm_set_freetype_face_range(rq, face, start, length)); } } else { assert (!FT_New_Face (library, font, 0, &face)); assert (!FT_Set_Char_Size (face, face->units_per_EM, 0, 0, 0)); assert (raqm_set_freetype_face (rq, face)); } if (languages) { for (char *tok = strtok (languages, ","); tok; tok = strtok (NULL, ",")) { int start, length; start = atoi (strtok (NULL, ",")); length = atoi (strtok (NULL, ",")); assert (raqm_set_language(rq, tok, start, length)); } } if (features) { for (char *tok = strtok (features, ","); tok; tok = strtok (NULL, ",")) assert (raqm_add_font_feature (rq, tok, -1)); } if (letterspacing) { for (char *tok = strtok (letterspacing, ","); tok; tok = strtok (NULL, ",")) { int spacing = atoi (tok); int start, length; start = atoi (strtok (NULL, ",")); length = atoi (strtok (NULL, ",")); assert (raqm_set_letter_spacing_range (rq, spacing, start, length)); } } if (wordspacing) { for (char *tok = strtok (wordspacing, ","); tok; tok = strtok (NULL, ",")) { int spacing = atoi (tok); int start, length; start = atoi (strtok (NULL, ",")); length = atoi (strtok (NULL, ",")); assert (raqm_set_word_spacing_range (rq, spacing, start, length)); } } if (invisible_glyph) { assert (raqm_set_invisible_glyph (rq, invisible_glyph)); } assert (raqm_layout (rq)); glyphs = raqm_get_glyphs (rq, &count); assert (glyphs != NULL || count == 0); if (cluster >= 0) { index = cluster; assert (raqm_index_to_position (rq, &index, &x, &y)); } if (position) assert (raqm_position_to_index (rq, position, 0, &start_index)); free (text); raqm_destroy (rq); FT_Done_Face (face); FT_Done_FreeType (library); return 0; } libraqm-0.10.1/tests/runtest.py000066400000000000000000000041151441556702000164450ustar00rootroot00000000000000import difflib import os import subprocess import sys # Special exit code that tells automake that a test has been skipped, # eg. when we needs a newer HarfBuzz version than what is available. SKIP_EXIT_STATUS = 77 def cmd(command): print(command) p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) out, err = p.communicate() print(f"Error:\n{err}") return out.strip(), p.returncode def diff(expected, actual): expected = expected.splitlines(1) actual = actual.splitlines(1) diff = difflib.unified_diff(expected, actual) return "".join(diff) srcdir = sys.argv[1] testtool = sys.argv[2] fails = 0 skips = 0 for filename in sys.argv[3:]: print("Testing %s..." % filename) with open(filename, encoding="utf-8") as fp: lines = [l.strip("\n") for l in fp.readlines()] font = lines[0] text = lines[1].replace(r'\r', "\r").replace(r'\n', '\n') text = " ".join(f"{b:04X}" for b in text.encode("utf-8")) opts = lines[2] and lines[2].split(" ") or [] expected = "\n".join(lines[3:]) if "," in font: fonts = [] for f in font.split(","): if f.endswith(".ttf"): f = os.path.join(srcdir, f) fonts.append(f) fonts = ",".join(fonts) command = [testtool, "--bytes", text] + opts + ["--fonts", fonts] else: font = os.path.join(srcdir, font) command = [testtool, "--bytes", text] + opts + ["--font", font] actual, ret = cmd(command) expected = expected.strip() actual = actual.strip() if ret == SKIP_EXIT_STATUS: # platform is missing a requirement to run the test, eg. old HarfBuzz skips += 1 elif ret: print(f"Error code returned: {ret}") fails += 1 elif actual != expected: print(diff(expected, actual)) fails += 1 if fails: print("%d tests failed." % fails) sys.exit(1) elif skips: print("%d tests skipped." % skips) sys.exit(SKIP_EXIT_STATUS) else: print("All tests passed.") sys.exit(0) libraqm-0.10.1/tests/scripts-backward-ltr.test000066400000000000000000000123461441556702000213370ustar00rootroot00000000000000fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf عربيעבריתأهلבריתمم(ُenglish ) مرحبا --direction ltr Direction is: LTR Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Hebr script for ch[5] Hebr script for ch[6] Hebr script for ch[7] Hebr script for ch[8] Hebr script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Hebr script for ch[13] Hebr script for ch[14] Hebr script for ch[15] Hebr script for ch[16] Arab script for ch[17] Arab script for ch[18] Zyyy script for ch[19] Zinh script for ch[20] Latn script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Zyyy script for ch[28] Zyyy script for ch[29] Zyyy script for ch[30] Arab script for ch[31] Arab script for ch[32] Arab script for ch[33] Arab script for ch[34] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Hebr script for ch[5] Hebr script for ch[6] Hebr script for ch[7] Hebr script for ch[8] Hebr script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Hebr script for ch[13] Hebr script for ch[14] Hebr script for ch[15] Hebr script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Latn script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn script for ch[28] Arab script for ch[29] Arab script for ch[30] Arab script for ch[31] Arab script for ch[32] Arab script for ch[33] Arab script for ch[34] Arab Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 0 length: 18 level: 1 run[1]: start: 18 length: 12 level: 0 run[2]: start: 30 length: 5 level: 1 Number of runs after script itemization: 9 Final Runs: run[0]: start: 16 length: 2 direction: rtl script: Arab font: DejaVu Sans run[1]: start: 12 length: 4 direction: rtl script: Hebr font: DejaVu Sans run[2]: start: 9 length: 3 direction: rtl script: Arab font: DejaVu Sans run[3]: start: 4 length: 5 direction: rtl script: Hebr font: DejaVu Sans run[4]: start: 0 length: 4 direction: rtl script: Arab font: DejaVu Sans run[5]: start: 18 length: 2 direction: ltr script: Arab font: DejaVu Sans run[6]: start: 20 length: 8 direction: ltr script: Latn font: DejaVu Sans run[7]: start: 28 length: 2 direction: ltr script: Arab font: DejaVu Sans run[8]: start: 30 length: 5 direction: rtl script: Arab font: DejaVu Sans Glyph information: glyph [49] x_offset: 0 y_offset: 0 x_advance: 1363 font: DejaVu Sans glyph [50] x_offset: 0 y_offset: 0 x_advance: 1097 font: DejaVu Sans glyph [15] x_offset: 0 y_offset: 0 x_advance: 1346 font: DejaVu Sans glyph [12] x_offset: 0 y_offset: 0 x_advance: 458 font: DejaVu Sans glyph [14] x_offset: 0 y_offset: 0 x_advance: 1156 font: DejaVu Sans glyph [11] x_offset: 0 y_offset: 0 x_advance: 1184 font: DejaVu Sans glyph [46] x_offset: 0 y_offset: 0 x_advance: 1551 font: DejaVu Sans glyph [53] x_offset: 0 y_offset: 0 x_advance: 1080 font: DejaVu Sans glyph [16] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [15] x_offset: 0 y_offset: 0 x_advance: 1346 font: DejaVu Sans glyph [12] x_offset: 0 y_offset: 0 x_advance: 458 font: DejaVu Sans glyph [14] x_offset: 0 y_offset: 0 x_advance: 1156 font: DejaVu Sans glyph [11] x_offset: 0 y_offset: 0 x_advance: 1184 font: DejaVu Sans glyph [13] x_offset: 0 y_offset: 0 x_advance: 1282 font: DejaVu Sans glyph [56] x_offset: 0 y_offset: 0 x_advance: 1707 font: DejaVu Sans glyph [37] x_offset: 0 y_offset: 0 x_advance: 570 font: DejaVu Sans glyph [42] x_offset: 0 y_offset: 0 x_advance: 1130 font: DejaVu Sans glyph [44] x_offset: 0 y_offset: 0 x_advance: 1222 font: DejaVu Sans glyph [27] x_offset: 0 y_offset: 0 x_advance: 0 font: DejaVu Sans glyph [2] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [4] x_offset: 0 y_offset: 0 x_advance: 1260 font: DejaVu Sans glyph [9] x_offset: 0 y_offset: 0 x_advance: 1298 font: DejaVu Sans glyph [5] x_offset: 0 y_offset: 0 x_advance: 1300 font: DejaVu Sans glyph [8] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [7] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [10] x_offset: 0 y_offset: 0 x_advance: 1067 font: DejaVu Sans glyph [6] x_offset: 0 y_offset: 0 x_advance: 1298 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [3] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [35] x_offset: 0 y_offset: 0 x_advance: 624 font: DejaVu Sans glyph [38] x_offset: 0 y_offset: 0 x_advance: 618 font: DejaVu Sans glyph [40] x_offset: 0 y_offset: 0 x_advance: 1266 font: DejaVu Sans glyph [42] x_offset: 0 y_offset: 0 x_advance: 1130 font: DejaVu Sans glyph [50] x_offset: 0 y_offset: 0 x_advance: 1097 font: DejaVu Sans UTF-32 clusters: 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 18 18 20 21 22 23 24 25 26 27 28 29 34 33 32 31 30 UTF-8 clusters: 34 32 30 28 26 24 22 20 18 16 14 12 10 08 06 04 02 00 36 36 39 40 41 42 43 44 45 46 47 48 57 55 53 51 49 libraqm-0.10.1/tests/scripts-backward-rtl.test000066400000000000000000000122321441556702000213310ustar00rootroot00000000000000fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf عربيעבריתأهلבריתمم(ُenglish ) مرحبا --direction rtl Direction is: RTL Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Hebr script for ch[5] Hebr script for ch[6] Hebr script for ch[7] Hebr script for ch[8] Hebr script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Hebr script for ch[13] Hebr script for ch[14] Hebr script for ch[15] Hebr script for ch[16] Arab script for ch[17] Arab script for ch[18] Zyyy script for ch[19] Zinh script for ch[20] Latn script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Zyyy script for ch[28] Zyyy script for ch[29] Zyyy script for ch[30] Arab script for ch[31] Arab script for ch[32] Arab script for ch[33] Arab script for ch[34] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Hebr script for ch[5] Hebr script for ch[6] Hebr script for ch[7] Hebr script for ch[8] Hebr script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Hebr script for ch[13] Hebr script for ch[14] Hebr script for ch[15] Hebr script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Latn script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn script for ch[28] Arab script for ch[29] Arab script for ch[30] Arab script for ch[31] Arab script for ch[32] Arab script for ch[33] Arab script for ch[34] Arab Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 27 length: 8 level: 1 run[1]: start: 20 length: 7 level: 2 run[2]: start: 0 length: 20 level: 1 Number of runs after script itemization: 8 Final Runs: run[0]: start: 28 length: 7 direction: rtl script: Arab font: DejaVu Sans run[1]: start: 27 length: 1 direction: rtl script: Latn font: DejaVu Sans run[2]: start: 20 length: 7 direction: ltr script: Latn font: DejaVu Sans run[3]: start: 16 length: 4 direction: rtl script: Arab font: DejaVu Sans run[4]: start: 12 length: 4 direction: rtl script: Hebr font: DejaVu Sans run[5]: start: 9 length: 3 direction: rtl script: Arab font: DejaVu Sans run[6]: start: 4 length: 5 direction: rtl script: Hebr font: DejaVu Sans run[7]: start: 0 length: 4 direction: rtl script: Arab font: DejaVu Sans Glyph information: glyph [35] x_offset: 0 y_offset: 0 x_advance: 624 font: DejaVu Sans glyph [38] x_offset: 0 y_offset: 0 x_advance: 618 font: DejaVu Sans glyph [40] x_offset: 0 y_offset: 0 x_advance: 1266 font: DejaVu Sans glyph [42] x_offset: 0 y_offset: 0 x_advance: 1130 font: DejaVu Sans glyph [50] x_offset: 0 y_offset: 0 x_advance: 1097 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [2] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [4] x_offset: 0 y_offset: 0 x_advance: 1260 font: DejaVu Sans glyph [9] x_offset: 0 y_offset: 0 x_advance: 1298 font: DejaVu Sans glyph [5] x_offset: 0 y_offset: 0 x_advance: 1300 font: DejaVu Sans glyph [8] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [7] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [10] x_offset: 0 y_offset: 0 x_advance: 1067 font: DejaVu Sans glyph [6] x_offset: 0 y_offset: 0 x_advance: 1298 font: DejaVu Sans glyph [27] x_offset: 0 y_offset: 0 x_advance: 0 font: DejaVu Sans glyph [3] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [49] x_offset: 0 y_offset: 0 x_advance: 1363 font: DejaVu Sans glyph [50] x_offset: 0 y_offset: 0 x_advance: 1097 font: DejaVu Sans glyph [15] x_offset: 0 y_offset: 0 x_advance: 1346 font: DejaVu Sans glyph [12] x_offset: 0 y_offset: 0 x_advance: 458 font: DejaVu Sans glyph [14] x_offset: 0 y_offset: 0 x_advance: 1156 font: DejaVu Sans glyph [11] x_offset: 0 y_offset: 0 x_advance: 1184 font: DejaVu Sans glyph [46] x_offset: 0 y_offset: 0 x_advance: 1551 font: DejaVu Sans glyph [53] x_offset: 0 y_offset: 0 x_advance: 1080 font: DejaVu Sans glyph [16] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [15] x_offset: 0 y_offset: 0 x_advance: 1346 font: DejaVu Sans glyph [12] x_offset: 0 y_offset: 0 x_advance: 458 font: DejaVu Sans glyph [14] x_offset: 0 y_offset: 0 x_advance: 1156 font: DejaVu Sans glyph [11] x_offset: 0 y_offset: 0 x_advance: 1184 font: DejaVu Sans glyph [13] x_offset: 0 y_offset: 0 x_advance: 1282 font: DejaVu Sans glyph [56] x_offset: 0 y_offset: 0 x_advance: 1707 font: DejaVu Sans glyph [37] x_offset: 0 y_offset: 0 x_advance: 570 font: DejaVu Sans glyph [42] x_offset: 0 y_offset: 0 x_advance: 1130 font: DejaVu Sans glyph [44] x_offset: 0 y_offset: 0 x_advance: 1222 font: DejaVu Sans UTF-32 clusters: 34 33 32 31 30 29 28 27 20 21 22 23 24 25 26 18 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 UTF-8 clusters: 57 55 53 51 49 48 47 46 39 40 41 42 43 44 45 36 36 34 32 30 28 26 24 22 20 18 16 14 12 10 08 06 04 02 00 libraqm-0.10.1/tests/scripts-backward.test000066400000000000000000000122531441556702000205350ustar00rootroot00000000000000fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf عربيעבריתأهلבריתمم(ُenglish ) مرحبا Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Hebr script for ch[5] Hebr script for ch[6] Hebr script for ch[7] Hebr script for ch[8] Hebr script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Hebr script for ch[13] Hebr script for ch[14] Hebr script for ch[15] Hebr script for ch[16] Arab script for ch[17] Arab script for ch[18] Zyyy script for ch[19] Zinh script for ch[20] Latn script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Zyyy script for ch[28] Zyyy script for ch[29] Zyyy script for ch[30] Arab script for ch[31] Arab script for ch[32] Arab script for ch[33] Arab script for ch[34] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Hebr script for ch[5] Hebr script for ch[6] Hebr script for ch[7] Hebr script for ch[8] Hebr script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Hebr script for ch[13] Hebr script for ch[14] Hebr script for ch[15] Hebr script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Latn script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn script for ch[28] Arab script for ch[29] Arab script for ch[30] Arab script for ch[31] Arab script for ch[32] Arab script for ch[33] Arab script for ch[34] Arab Resolved direction is: RTL Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 27 length: 8 level: 1 run[1]: start: 20 length: 7 level: 2 run[2]: start: 0 length: 20 level: 1 Number of runs after script itemization: 8 Final Runs: run[0]: start: 28 length: 7 direction: rtl script: Arab font: DejaVu Sans run[1]: start: 27 length: 1 direction: rtl script: Latn font: DejaVu Sans run[2]: start: 20 length: 7 direction: ltr script: Latn font: DejaVu Sans run[3]: start: 16 length: 4 direction: rtl script: Arab font: DejaVu Sans run[4]: start: 12 length: 4 direction: rtl script: Hebr font: DejaVu Sans run[5]: start: 9 length: 3 direction: rtl script: Arab font: DejaVu Sans run[6]: start: 4 length: 5 direction: rtl script: Hebr font: DejaVu Sans run[7]: start: 0 length: 4 direction: rtl script: Arab font: DejaVu Sans Glyph information: glyph [35] x_offset: 0 y_offset: 0 x_advance: 624 font: DejaVu Sans glyph [38] x_offset: 0 y_offset: 0 x_advance: 618 font: DejaVu Sans glyph [40] x_offset: 0 y_offset: 0 x_advance: 1266 font: DejaVu Sans glyph [42] x_offset: 0 y_offset: 0 x_advance: 1130 font: DejaVu Sans glyph [50] x_offset: 0 y_offset: 0 x_advance: 1097 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [2] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [4] x_offset: 0 y_offset: 0 x_advance: 1260 font: DejaVu Sans glyph [9] x_offset: 0 y_offset: 0 x_advance: 1298 font: DejaVu Sans glyph [5] x_offset: 0 y_offset: 0 x_advance: 1300 font: DejaVu Sans glyph [8] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [7] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [10] x_offset: 0 y_offset: 0 x_advance: 1067 font: DejaVu Sans glyph [6] x_offset: 0 y_offset: 0 x_advance: 1298 font: DejaVu Sans glyph [27] x_offset: 0 y_offset: 0 x_advance: 0 font: DejaVu Sans glyph [3] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [49] x_offset: 0 y_offset: 0 x_advance: 1363 font: DejaVu Sans glyph [50] x_offset: 0 y_offset: 0 x_advance: 1097 font: DejaVu Sans glyph [15] x_offset: 0 y_offset: 0 x_advance: 1346 font: DejaVu Sans glyph [12] x_offset: 0 y_offset: 0 x_advance: 458 font: DejaVu Sans glyph [14] x_offset: 0 y_offset: 0 x_advance: 1156 font: DejaVu Sans glyph [11] x_offset: 0 y_offset: 0 x_advance: 1184 font: DejaVu Sans glyph [46] x_offset: 0 y_offset: 0 x_advance: 1551 font: DejaVu Sans glyph [53] x_offset: 0 y_offset: 0 x_advance: 1080 font: DejaVu Sans glyph [16] x_offset: 0 y_offset: 0 x_advance: 569 font: DejaVu Sans glyph [15] x_offset: 0 y_offset: 0 x_advance: 1346 font: DejaVu Sans glyph [12] x_offset: 0 y_offset: 0 x_advance: 458 font: DejaVu Sans glyph [14] x_offset: 0 y_offset: 0 x_advance: 1156 font: DejaVu Sans glyph [11] x_offset: 0 y_offset: 0 x_advance: 1184 font: DejaVu Sans glyph [13] x_offset: 0 y_offset: 0 x_advance: 1282 font: DejaVu Sans glyph [56] x_offset: 0 y_offset: 0 x_advance: 1707 font: DejaVu Sans glyph [37] x_offset: 0 y_offset: 0 x_advance: 570 font: DejaVu Sans glyph [42] x_offset: 0 y_offset: 0 x_advance: 1130 font: DejaVu Sans glyph [44] x_offset: 0 y_offset: 0 x_advance: 1222 font: DejaVu Sans UTF-32 clusters: 34 33 32 31 30 29 28 27 20 21 22 23 24 25 26 18 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 UTF-8 clusters: 57 55 53 51 49 48 47 46 39 40 41 42 43 44 45 36 36 34 32 30 28 26 24 22 20 18 16 14 12 10 08 06 04 02 00 libraqm-0.10.1/tests/scripts-combinig-marks.test000066400000000000000000000024201441556702000216540ustar00rootroot00000000000000fonts/sha1sum/83db7d61f9292c18c951662f254f4ad038e41639.otf عַرַبִي Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Zinh script for ch[2] Arab script for ch[3] Zinh script for ch[4] Arab script for ch[5] Zinh script for ch[6] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Arab script for ch[6] Arab Resolved direction is: RTL Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 7 level: 1 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 7 direction: rtl script: Arab font: Noto AH Test Glyph information: glyph [12] x_offset: 0 y_offset: 0 x_advance: 687 font: Noto AH Test glyph [15] x_offset: 57 y_offset: -239 x_advance: 0 font: Noto AH Test glyph [4] x_offset: 0 y_offset: 0 x_advance: 275 font: Noto AH Test glyph [16] x_offset: -23 y_offset: -258 x_advance: 0 font: Noto AH Test glyph [6] x_offset: 0 y_offset: 0 x_advance: 404 font: Noto AH Test glyph [16] x_offset: 133 y_offset: -100 x_advance: 0 font: Noto AH Test glyph [10] x_offset: 0 y_offset: 0 x_advance: 505 font: Noto AH Test UTF-32 clusters: 06 04 04 02 02 00 00 UTF-8 clusters: 12 08 08 04 04 00 00 libraqm-0.10.1/tests/scripts-common.test000066400000000000000000000021401441556702000202410ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf 012ABC Direction is: DEFAULT Before script detection: script for ch[0] Zyyy script for ch[1] Zyyy script for ch[2] Zyyy script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 6 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 6 direction: ltr script: Latn font: Amiri Glyph information: glyph [19] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [20] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [21] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [36] x_offset: 0 y_offset: 0 x_advance: 1254 font: Amiri glyph [37] x_offset: 0 y_offset: 0 x_advance: 1192 font: Amiri glyph [38] x_offset: 0 y_offset: 0 x_advance: 1348 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 UTF-8 clusters: 00 01 02 03 04 05 libraqm-0.10.1/tests/scripts-forward-ltr.test000066400000000000000000000051241441556702000212210ustar00rootroot00000000000000fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf abcd (αβγ) δабгд --direction ltr Direction is: LTR Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Zyyy script for ch[5] Zyyy script for ch[6] Grek script for ch[7] Grek script for ch[8] Grek script for ch[9] Zyyy script for ch[10] Zyyy script for ch[11] Grek script for ch[12] Cyrl script for ch[13] Cyrl script for ch[14] Cyrl script for ch[15] Cyrl After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Grek script for ch[7] Grek script for ch[8] Grek script for ch[9] Latn script for ch[10] Latn script for ch[11] Grek script for ch[12] Cyrl script for ch[13] Cyrl script for ch[14] Cyrl script for ch[15] Cyrl Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 16 level: 0 Number of runs after script itemization: 5 Final Runs: run[0]: start: 0 length: 6 direction: ltr script: Latn font: DejaVu Sans run[1]: start: 6 length: 3 direction: ltr script: Grek font: DejaVu Sans run[2]: start: 9 length: 2 direction: ltr script: Latn font: DejaVu Sans run[3]: start: 11 length: 1 direction: ltr script: Grek font: DejaVu Sans run[4]: start: 12 length: 4 direction: ltr script: Cyrl font: DejaVu Sans Glyph information: glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [2] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [3] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 UTF-8 clusters: 00 01 02 03 04 05 06 08 10 12 13 14 16 18 20 22 libraqm-0.10.1/tests/scripts-forward-rtl.test000066400000000000000000000051241441556702000212210ustar00rootroot00000000000000fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf abcd (αβγ) δабгд --direction rtl Direction is: RTL Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Zyyy script for ch[5] Zyyy script for ch[6] Grek script for ch[7] Grek script for ch[8] Grek script for ch[9] Zyyy script for ch[10] Zyyy script for ch[11] Grek script for ch[12] Cyrl script for ch[13] Cyrl script for ch[14] Cyrl script for ch[15] Cyrl After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Grek script for ch[7] Grek script for ch[8] Grek script for ch[9] Latn script for ch[10] Latn script for ch[11] Grek script for ch[12] Cyrl script for ch[13] Cyrl script for ch[14] Cyrl script for ch[15] Cyrl Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 16 level: 2 Number of runs after script itemization: 5 Final Runs: run[0]: start: 0 length: 6 direction: ltr script: Latn font: DejaVu Sans run[1]: start: 6 length: 3 direction: ltr script: Grek font: DejaVu Sans run[2]: start: 9 length: 2 direction: ltr script: Latn font: DejaVu Sans run[3]: start: 11 length: 1 direction: ltr script: Grek font: DejaVu Sans run[4]: start: 12 length: 4 direction: ltr script: Cyrl font: DejaVu Sans Glyph information: glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [2] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [3] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 UTF-8 clusters: 00 01 02 03 04 05 06 08 10 12 13 14 16 18 20 22 libraqm-0.10.1/tests/scripts-forward.test000066400000000000000000000051451441556702000204250ustar00rootroot00000000000000fonts/sha1sum/d46a2549d27c32605024201abf801bb9a9273da3.ttf abcd (αβγ) δабгд Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Zyyy script for ch[5] Zyyy script for ch[6] Grek script for ch[7] Grek script for ch[8] Grek script for ch[9] Zyyy script for ch[10] Zyyy script for ch[11] Grek script for ch[12] Cyrl script for ch[13] Cyrl script for ch[14] Cyrl script for ch[15] Cyrl After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Grek script for ch[7] Grek script for ch[8] Grek script for ch[9] Latn script for ch[10] Latn script for ch[11] Grek script for ch[12] Cyrl script for ch[13] Cyrl script for ch[14] Cyrl script for ch[15] Cyrl Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 16 level: 0 Number of runs after script itemization: 5 Final Runs: run[0]: start: 0 length: 6 direction: ltr script: Latn font: DejaVu Sans run[1]: start: 6 length: 3 direction: ltr script: Grek font: DejaVu Sans run[2]: start: 9 length: 2 direction: ltr script: Latn font: DejaVu Sans run[3]: start: 11 length: 1 direction: ltr script: Grek font: DejaVu Sans run[4]: start: 12 length: 4 direction: ltr script: Cyrl font: DejaVu Sans Glyph information: glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [2] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [3] x_offset: 0 y_offset: 0 x_advance: 799 font: DejaVu Sans glyph [1] x_offset: 0 y_offset: 0 x_advance: 651 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans glyph [0] x_offset: 0 y_offset: 0 x_advance: 1229 font: DejaVu Sans UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 UTF-8 clusters: 00 01 02 03 04 05 06 08 10 12 13 14 16 18 20 22 libraqm-0.10.1/tests/test-1.test000066400000000000000000000055411441556702000164110ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf عربي(English ) عربي Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Zyyy script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn script for ch[10] Latn script for ch[11] Latn script for ch[12] Latn script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab Resolved direction is: RTL Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 12 length: 7 level: 1 run[1]: start: 5 length: 7 level: 2 run[2]: start: 0 length: 5 level: 1 Number of runs after script itemization: 4 Final Runs: run[0]: start: 13 length: 6 direction: rtl script: Arab font: Amiri run[1]: start: 12 length: 1 direction: rtl script: Latn font: Amiri run[2]: start: 5 length: 7 direction: ltr script: Latn font: Amiri run[3]: start: 0 length: 5 direction: rtl script: Arab font: Amiri Glyph information: glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [11] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [40] x_offset: 0 y_offset: 0 x_advance: 1174 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [74] x_offset: 0 y_offset: 0 x_advance: 932 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [86] x_offset: 0 y_offset: 0 x_advance: 738 font: Amiri glyph [75] x_offset: 0 y_offset: 0 x_advance: 1032 font: Amiri glyph [12] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri UTF-32 clusters: 18 17 16 15 14 13 12 05 06 07 08 09 10 11 04 03 02 01 00 UTF-8 clusters: 25 23 21 19 18 17 16 09 10 11 12 13 14 15 08 06 04 02 00 libraqm-0.10.1/tests/test-2.test000066400000000000000000000045011441556702000164050ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf arabic عربي 123 Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Zyyy script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab Resolved direction is: LTR Number of runs before script itemization: 3 BiDi Runs: run[0]: start: 0 length: 7 level: 0 run[1]: start: 12 length: 3 level: 2 run[2]: start: 7 length: 5 level: 1 Number of runs after script itemization: 3 Final Runs: run[0]: start: 0 length: 7 direction: ltr script: Latn font: Amiri run[1]: start: 12 length: 3 direction: ltr script: Arab font: Amiri run[2]: start: 7 length: 5 direction: rtl script: Arab font: Amiri Glyph information: glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [85] x_offset: 0 y_offset: 0 x_advance: 766 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [70] x_offset: 0 y_offset: 0 x_advance: 846 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [20] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [21] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [22] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 12 13 14 11 10 09 08 07 UTF-8 clusters: 00 01 02 03 04 05 06 16 17 18 15 13 11 09 07 libraqm-0.10.1/tests/test-3.test000066400000000000000000000101001441556702000163760ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf arabic عربي 123 عمان english Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Zyyy script for ch[12] Zyyy script for ch[13] Zyyy script for ch[14] Zyyy script for ch[15] Zyyy script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Zyyy script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab script for ch[18] Arab script for ch[19] Arab script for ch[20] Arab script for ch[21] Latn script for ch[22] Latn script for ch[23] Latn script for ch[24] Latn script for ch[25] Latn script for ch[26] Latn script for ch[27] Latn Resolved direction is: LTR Number of runs before script itemization: 5 BiDi Runs: run[0]: start: 0 length: 7 level: 0 run[1]: start: 15 length: 5 level: 1 run[2]: start: 12 length: 3 level: 2 run[3]: start: 7 length: 5 level: 1 run[4]: start: 20 length: 8 level: 0 Number of runs after script itemization: 6 Final Runs: run[0]: start: 0 length: 7 direction: ltr script: Latn font: Amiri run[1]: start: 15 length: 5 direction: rtl script: Arab font: Amiri run[2]: start: 12 length: 3 direction: ltr script: Arab font: Amiri run[3]: start: 7 length: 5 direction: rtl script: Arab font: Amiri run[4]: start: 20 length: 1 direction: ltr script: Arab font: Amiri run[5]: start: 21 length: 7 direction: ltr script: Latn font: Amiri Glyph information: glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [85] x_offset: 0 y_offset: 0 x_advance: 766 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [70] x_offset: 0 y_offset: 0 x_advance: 846 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [20] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [21] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [22] x_offset: 0 y_offset: 0 x_advance: 1090 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5132] x_offset: 0 y_offset: 0 x_advance: 975 font: Amiri glyph [5049] x_offset: 0 y_offset: 0 x_advance: 529 font: Amiri glyph [3104] x_offset: 180 y_offset: 0 x_advance: 1150 font: Amiri glyph [2040] x_offset: 0 y_offset: 0 x_advance: 978 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [72] x_offset: 0 y_offset: 0 x_advance: 860 font: Amiri glyph [81] x_offset: 0 y_offset: 0 x_advance: 1064 font: Amiri glyph [74] x_offset: 0 y_offset: 0 x_advance: 932 font: Amiri glyph [79] x_offset: 0 y_offset: 0 x_advance: 510 font: Amiri glyph [76] x_offset: 0 y_offset: 0 x_advance: 540 font: Amiri glyph [86] x_offset: 0 y_offset: 0 x_advance: 738 font: Amiri glyph [75] x_offset: 0 y_offset: 0 x_advance: 1032 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 19 18 17 16 15 12 13 14 11 10 09 08 07 20 21 22 23 24 25 26 27 UTF-8 clusters: 00 01 02 03 04 05 06 26 24 22 20 19 16 17 18 15 13 11 09 07 28 29 30 31 32 33 34 35 libraqm-0.10.1/tests/test-4.test000066400000000000000000000047461441556702000164220ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf بيت سالم مصلى عمان Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Zyyy script for ch[4] Arab script for ch[5] Arab script for ch[6] Arab script for ch[7] Arab script for ch[8] Zyyy script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Zyyy script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab script for ch[3] Arab script for ch[4] Arab script for ch[5] Arab script for ch[6] Arab script for ch[7] Arab script for ch[8] Arab script for ch[9] Arab script for ch[10] Arab script for ch[11] Arab script for ch[12] Arab script for ch[13] Arab script for ch[14] Arab script for ch[15] Arab script for ch[16] Arab script for ch[17] Arab Resolved direction is: RTL Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 18 level: 1 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 18 direction: rtl script: Arab font: Amiri Glyph information: glyph [419] x_offset: 0 y_offset: 0 x_advance: 1173 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [4992] x_offset: 0 y_offset: 0 x_advance: 444 font: Amiri glyph [4959] x_offset: 0 y_offset: 0 x_advance: 1005 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [2926] x_offset: 0 y_offset: 0 x_advance: 961 font: Amiri glyph [2914] x_offset: 0 y_offset: 0 x_advance: 401 font: Amiri glyph [2382] x_offset: 0 y_offset: 0 x_advance: 1480 font: Amiri glyph [2334] x_offset: 0 y_offset: 0 x_advance: 797 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [5199] x_offset: 0 y_offset: 0 x_advance: 416 font: Amiri glyph [5154] x_offset: 0 y_offset: 0 x_advance: 488 font: Amiri glyph [2018] x_offset: 0 y_offset: 0 x_advance: 470 font: Amiri glyph [2396] x_offset: 0 y_offset: 0 x_advance: 1164 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [2052] x_offset: 0 y_offset: 0 x_advance: 1810 font: Amiri glyph [4494] x_offset: 0 y_offset: 0 x_advance: 500 font: Amiri glyph [4460] x_offset: 0 y_offset: 0 x_advance: 478 font: Amiri UTF-32 clusters: 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 UTF-8 clusters: 31 29 27 25 24 22 20 18 16 15 13 11 09 07 06 04 02 00 libraqm-0.10.1/tests/test-5.test000066400000000000000000000030361441556702000164120ustar00rootroot00000000000000fonts/sha1sum/bcb3b98eb67ece19b8b709f77143d91bcb3d95eb.ttf aa (bb) aa Direction is: DEFAULT Before script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Zyyy script for ch[3] Zyyy script for ch[4] Latn script for ch[5] Latn script for ch[6] Zyyy script for ch[7] Zyyy script for ch[8] Latn script for ch[9] Latn After script detection: script for ch[0] Latn script for ch[1] Latn script for ch[2] Latn script for ch[3] Latn script for ch[4] Latn script for ch[5] Latn script for ch[6] Latn script for ch[7] Latn script for ch[8] Latn script for ch[9] Latn Resolved direction is: LTR Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 10 level: 0 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 10 direction: ltr script: Latn font: Amiri Glyph information: glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [11] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 996 font: Amiri glyph [69] x_offset: 0 y_offset: 0 x_advance: 936 font: Amiri glyph [12] x_offset: 0 y_offset: 0 x_advance: 940 font: Amiri glyph [3] x_offset: 0 y_offset: 0 x_advance: 600 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri glyph [68] x_offset: 0 y_offset: 0 x_advance: 862 font: Amiri UTF-32 clusters: 00 01 02 03 04 05 06 07 08 09 UTF-8 clusters: 00 01 02 03 04 05 06 07 08 09 libraqm-0.10.1/tests/xyoffset.test000066400000000000000000000016661441556702000171470ustar00rootroot00000000000000fonts/sha1sum/a22e097e7f3cefffd1a602674dff5108efa0eec2.ttf حجج Direction is: DEFAULT Before script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab After script detection: script for ch[0] Arab script for ch[1] Arab script for ch[2] Arab Resolved direction is: RTL Number of runs before script itemization: 1 BiDi Runs: run[0]: start: 0 length: 3 level: 1 Number of runs after script itemization: 1 Final Runs: run[0]: start: 0 length: 3 direction: rtl script: Arab font: Aref Ruqaa Glyph information: glyph [4] x_offset: 783 y_offset: 50 x_advance: 0 font: Aref Ruqaa glyph [6] x_offset: 0 y_offset: 0 x_advance: 302 font: Aref Ruqaa glyph [4] x_offset: 909 y_offset: 1075 x_advance: 0 font: Aref Ruqaa glyph [10] x_offset: 0 y_offset: 868 x_advance: 432 font: Aref Ruqaa glyph [9] x_offset: 0 y_offset: 1664 x_advance: 1054 font: Aref Ruqaa UTF-32 clusters: 02 02 01 01 00 UTF-8 clusters: 04 04 02 02 00