diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..9eb0f2e9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# Doxygen outputs +doc/html/ +doc/latex/ +doc/doxygen_sqlite3.db + +# Objects & build products +Makefile +*.in +configure +config +*.m4 +*.cache +*.o +.* +*.lo +*.la +*.log +include/config.h +include/config.in +include/stamp-h1 +config.status +*.in~ + +# Binaries +wrudf/wrudf +libtool +udffsck/udffsck +udffsck/test +udffsck/testextra1 +udffsck/testextra2 +udffsck/unittest +mkudffs/mkudffs +pktsetup/pktsetup +cdrwtool/cdrwtool diff --git a/.travis.yml b/.travis.yml index 1dadeb2d..38a5aeb9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,13 @@ language: c +#env: +# - TESTS= +# - TESTS=--enable-tests TESTLEVEL=unit +# - TESTS=--enable-tests TESTLEVEL=basic +# - TESTS=--enable-tests TESTLEVEL=extra1 +# - TESTS=--enable-tests TESTLEVEL=extra2 + + matrix: include: - compiler: gcc-4.4 @@ -459,6 +467,7 @@ matrix: packages: - libreadline-dev - tcc + - gcc - compiler: tcc dist: trusty env: PLATFORM=x86_64 @@ -468,6 +477,7 @@ matrix: packages: - libreadline-dev - tcc + - gcc - compiler: gcc dist: trusty env: PLATFORM=x32 @@ -496,37 +506,69 @@ matrix: - qemu-user - compiler: gcc env: - - secure: "rH+rQS0W+0U3C/W/uRqJ8E5A3KrlbWaDRpZtdT1/SO0kEMnmuG2b0UvoadcIKOEXNHnQeZ3kPQbG2Wjfo/D6up0mXGZLXAvaJZozagxdfF2QPHSpvj2NDRLM71+UaKK/ksq3auPq+o3Y74FZOc4oBr7kPpr01H0pK8/2lljxS2daINRgFfcsaRhKNshtvHBn/KLgbwa5vEB/jadKBKM+mgAYE1sFv8P3yZ3+MzxygpurJ6enU6/9JITF5QgB11ybivYCbqoEf+IhzxgsmELz0zgL+PCVzTvrrNzpCT1UZJ35vWht5Yf7/AmK3sI/rMJm7TYswFKAc7NUbn80oIw6opp7sW1oFqMEHnHNLMNSljg8BwUrbH+y6+yV7sRfG6djCTYUYGYY9ZC2Ef4r3s3ZrRwHuBujZx/DOnFj0nd0AuvETNPkMWD1996bvSQ+WkfZ4JdW335/G61GdQv7kMTutWLKrlDquqxKM1AsoP1d99vCBzpEfRKyZjDUUSmnjdvZ/QgIDidGzH3vYFO81N39HjgKZlxH+oCuoX2ak3A6BrOT7t6mgEXnGM4H9vWhoKb7hseadBsR7YnbFSRmF2FDihEoIJ/BCPykGSZWzxTF94zC3WURI1C3HL0sAHGg3M620FgFj3M4Xkf0CPsmdsjwsnZg6TgVkYwAaKKP0HI2MFs=" - addons: - apt: - packages: - - libreadline-dev - coverity_scan: - project: - name: "pali/udftools" - description: "Build submitted via Travis CI" - notification_email: pali.rohar@gmail.com - build_command_prepend: "./autogen.sh && ./configure" - build_command: make - branch_pattern: master + - secure: "rH+rQS0W+0U3C/W/uRqJ8E5A3KrlbWaDRpZtdT1/SO0kEMnmuG2b0UvoadcIKOEXNHnQeZ3kPQbG2Wjfo/D6up0mXGZLXAvaJZozagxdfF2QPHSpvj2NDRLM71+UaKK/ksq3auPq+o3Y74FZOc4oBr7kPpr01H0pK8/2lljxS2daINRgFfcsaRhKNshtvHBn/KLgbwa5vEB/jadKBKM+mgAYE1sFv8P3yZ3+MzxygpurJ6enU6/9JITF5QgB11ybivYCbqoEf+IhzxgsmELz0zgL+PCVzTvrrNzpCT1UZJ35vWht5Yf7/AmK3sI/rMJm7TYswFKAc7NUbn80oIw6opp7sW1oFqMEHnHNLMNSljg8BwUrbH+y6+yV7sRfG6djCTYUYGYY9ZC2Ef4r3s3ZrRwHuBujZx/DOnFj0nd0AuvETNPkMWD1996bvSQ+WkfZ4JdW335/G61GdQv7kMTutWLKrlDquqxKM1AsoP1d99vCBzpEfRKyZjDUUSmnjdvZ/QgIDidGzH3vYFO81N39HjgKZlxH+oCuoX2ak3A6BrOT7t6mgEXnGM4H9vWhoKb7hseadBsR7YnbFSRmF2FDihEoIJ/BCPykGSZWzxTF94zC3WURI1C3HL0sAHGg3M620FgFj3M4Xkf0CPsmdsjwsnZg6TgVkYwAaKKP0HI2MFs=" + addons: + apt: + packages: + - libreadline-dev + coverity_scan: + project: + name: "pali/udftools" + description: "Build submitted via Travis CI" + notification_email: pali.rohar@gmail.com + build_command_prepend: "./autogen.sh && ./configure" + build_command: make + branch_pattern: master before_script: - if ! which "$CC" &>/dev/null; then export CC=${CC%%-*}; fi - - export CFLAGS="-W -Wall -Werror -g" - if [ -z "$NOOPT" ]; then export CFLAGS="$CFLAGS -O2"; fi - if [[ "$CC" =~ "gcc" && "$CC" != "gcc-4.4" ]]; then export CFLAGS="$CFLAGS -Wno-error=unused-but-set-variable"; fi # needed for AC_PROG_CC_C99 - if [[ "$CC" =~ "clang" ]]; then export CFLAGS="$CFLAGS -Wno-error=unused-function"; fi # -Werror=unused-function is broken on clang - case "$PLATFORM" in "x86") export CFLAGS="-m32 $CFLAGS" ;; "x86_64"|"") ;; - "x32") export CFLAGS="-mx32 $CFLAGS"; export LDFLAGS="--static" ;; - "powerpc") export CONFIGURE_FLAGS="--host=powerpc-linux-gnu"; export LDFLAGS="--static"; export RUN=qemu-ppc ;; - "arm") export CONFIGURE_FLAGS="--host=arm-linux-gnueabi"; export LDFLAGS="--static"; export RUN=qemu-arm ;; + "x32") export CFLAGS="-mx32 $CFLAGS"; export LDFLAGS="" ;; + "powerpc") export CONFIGURE_FLAGS="--host=powerpc-linux-gnu"; export LDFLAGS="--static"; export RUN=qemu-ppc; export CMOCKA_STATIC="-DWITH_STATIC_LIB=ON";; + "arm") export CONFIGURE_FLAGS="--host=arm-linux-gnueabi"; export LDFLAGS="--static"; export RUN=qemu-arm; export CMOCKA_STATIC="-DWITH_STATIC_LIB=ON";; *) echo "Unsupported platform '$PLATFORM'"; exit 1 ;; esac + - case "$CC" in + "tcc") export CMOCKA_STATIC="-DWITH_STATIC_LIB=ON";; + *) ;; + esac +# CMocka installation + - cd ..; mkdir cmocka; cd cmocka; PTH=$(pwd); cd ..; + - wget --no-check-certificate https://github.com/argorain/udffsck-test-samples/archive/v1.0-beta.4.tar.gz + - tar xzf v1.0-beta.4.tar.gz + - cd udffsck-test-samples-1.0-beta.4/cmocka + - tar zxf cmocka-1.1.0-static-patch.tar.gz + - cd cmocka-1.1.0 + - mkdir build + - cd build + - cmake -DCMAKE_INSTALL_PREFIX=$PTH -DCMAKE_BUILD_TYPE=Release $CMOCKA_STATIC ../ + - make + - make install + - cd ../../../../udftools +# Configure flags + - export CFLAGS="-W -Wall -Werror -g $CFLAGS" + - export PATH="$PTH:$PATH" + - export LD_LIBRARY_PATH="$PTH/lib:$LD_LIBRARY_PATH" + - export CFLAGS="$CFLAGS -I$PTH/include/" + - export LDFLAGS="$LDFLAGS -L$PTH/lib/" + - export CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-tests" script: + - set -e - if [ -n "$COVERITY_SCAN_TOKEN" ]; then exit 0; fi - ./autogen.sh - ./configure $CONFIGURE_FLAGS - make + - set +e + - if [[ "$PLATFORM" =~ "powerpc" ]]; then exit 0; fi # PowerPC is big-endian platform and udffsck is not currently available for BE. Therefore we are skipping them. + - ./udffsck/travis-tests.sh unit + - ./udffsck/travis-tests.sh basic v1.0-beta.4 + - ./udffsck/travis-tests.sh extra1 v1.0-beta.4 + - ./udffsck/travis-tests.sh extra2 v1.0-beta.4 + - ./udffsck/travis-tests.sh extra3 v1.0-beta.4 + diff --git a/Doxyfile b/Doxyfile index 717fc30c..aabec4ad 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.6 +# Doxyfile 1.8.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -70,6 +70,14 @@ OUTPUT_DIRECTORY = doc CREATE_SUBDIRS = NO +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. @@ -220,7 +228,7 @@ TAB_SIZE = 4 # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. -ALIASES = +ALIASES = "bugfix=\xrefitem bugfix \"Bugfix\" \"Bugfix List\"" # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" @@ -261,9 +269,12 @@ OPTIMIZE_OUTPUT_VHDL = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note For files without extension you can use no_extension as a placeholder. # @@ -398,25 +409,25 @@ LOOKUP_CACHE_SIZE = 0 # normally produced when WARNINGS is set to YES. # The default value is: NO. -EXTRACT_ALL = NO +EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will # be included in the documentation. # The default value is: NO. -EXTRACT_PRIVATE = NO +EXTRACT_PRIVATE = YES # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # scope will be included in the documentation. # The default value is: NO. -EXTRACT_PACKAGE = NO +EXTRACT_PACKAGE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file will be # included in the documentation. # The default value is: NO. -EXTRACT_STATIC = NO +EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined # locally in source files will be included in the documentation. If set to NO @@ -669,8 +680,7 @@ LAYOUT_FILE = # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. +# search path. See also \cite for info how to create references. CITE_BIB_FILES = @@ -743,7 +753,8 @@ WARN_LOGFILE = # spaces. # Note: If this tag is empty the current directory is searched. -INPUT = +INPUT = . \ + doc/doxygen # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses @@ -763,13 +774,16 @@ INPUT_ENCODING = UTF-8 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, # *.qsf, *.as and *.js. -FILE_PATTERNS = +FILE_PATTERNS = *.c \ + *.h \ + Introduction.txt \ + udffsck.txt # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. -RECURSIVE = NO +RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a @@ -831,7 +845,7 @@ EXAMPLE_RECURSIVE = NO # that contain images that are to be included in the documentation (see the # \image command). -IMAGE_PATH = +IMAGE_PATH = ./doc/doxygen/images # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program @@ -892,7 +906,7 @@ USE_MDFILE_AS_MAINPAGE = # also VERBATIM_HEADERS is set to NO. # The default value is: NO. -SOURCE_BROWSER = NO +SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. @@ -967,6 +981,25 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES +# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# compiled with the --with-libclang option. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -1059,13 +1092,15 @@ HTML_FOOTER = HTML_STYLESHEET = -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra stylesheet files is of importance (e.g. the last +# stylesheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @@ -1181,7 +1216,7 @@ DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. -DOCSET_PUBLISHER_NAME = Publisher +DOCSET_PUBLISHER_NAME = udftools # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The @@ -1230,7 +1265,8 @@ GENERATE_CHI = NO CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. +# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1470,11 +1506,11 @@ SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There -# are two flavours of web server based searching depending on the -# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for -# searching and an index file used by the script. When EXTERNAL_SEARCH is -# enabled the indexing and searching needs to be provided by external tools. See -# the section "External Indexing and Searching" for details. +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1540,7 +1576,7 @@ EXTRA_SEARCH_MAPPINGS = # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. # The default value is: YES. -GENERATE_LATEX = YES +GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of @@ -1602,17 +1638,19 @@ EXTRA_PACKAGES = # # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will -# replace them by respectively the title of the page, the current date and time, -# only the current date, the version number of doxygen, the project name (see -# PROJECT_NAME), or the project number (see PROJECT_NUMBER). +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string, +# for the replacement values of the other commands the user is refered to +# HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. # # Note: Only use a user-defined footer if you know what you are doing! # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1636,7 +1674,7 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate # the PDF file directly from the LaTeX files. Set this option to YES to get a # higher quality PDF documentation. # The default value is: YES. @@ -1762,6 +1800,13 @@ MAN_OUTPUT = man MAN_EXTENSION = .3 +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without @@ -1789,18 +1834,6 @@ GENERATE_XML = NO XML_OUTPUT = xml -# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a -# validating XML parser to check the syntax of the XML files. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify a XML DTD, which can be used by a -# validating XML parser to check the syntax of the XML files. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_DTD = - # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size @@ -1828,6 +1861,15 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook +# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -1947,9 +1989,9 @@ PREDEFINED = EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will -# remove all refrences to function-like macros that are alone on a line, have an -# all uppercase name, and do not end with a semicolon. Such function macros are -# typically used for boiler-plate code, and will confuse the parser if not +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not # removed. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -1969,7 +2011,7 @@ SKIP_FUNCTION_MACROS = YES # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. -# Note: Each tag file must have an unique name (where the name does NOT include +# Note: Each tag file must have a unique name (where the name does NOT include # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. @@ -2047,9 +2089,9 @@ HIDE_UNDOC_RELATIONS = YES # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO -# The default value is: NO. +# The default value is: YES. -HAVE_DOT = NO +HAVE_DOT = YES # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed # to run in parallel. When set to 0 doxygen will base this on the number of @@ -2059,9 +2101,9 @@ HAVE_DOT = NO # Minimum value: 0, maximum value: 32, default value: 0. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_NUM_THREADS = 0 +DOT_NUM_THREADS = 4 -# When you want a differently looking font n the dot files that doxygen +# When you want a differently looking font in the dot files that doxygen # generates you can specify the font name using DOT_FONTNAME. You need to make # sure dot is able to find the font, which can be done by putting it in a # standard location or by setting the DOTFONTPATH environment variable or by @@ -2076,7 +2118,7 @@ DOT_FONTNAME = Helvetica # Minimum value: 4, maximum value: 24, default value: 10. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTSIZE = 10 +DOT_FONTSIZE = 8 # By default doxygen will tell dot to use the default font as specified with # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set @@ -2115,7 +2157,7 @@ GROUP_GRAPHS = YES # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. -UML_LOOK = NO +UML_LOOK = YES # If the UML_LOOK tag is enabled, the fields and methods are shown inside the # class node. If there are many fields or methods and many nodes the graph may @@ -2128,7 +2170,7 @@ UML_LOOK = NO # Minimum value: 0, maximum value: 100, default value: 10. # This tag requires that the tag HAVE_DOT is set to YES. -UML_LIMIT_NUM_FIELDS = 10 +UML_LIMIT_NUM_FIELDS = 30 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their @@ -2199,7 +2241,9 @@ DIRECTORY_GRAPH = YES # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). -# Possible values are: png, jpg, gif and svg. +# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, +# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, +# gif:cairo:gd, gif:gd, gif:gd:gd and svg. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2215,7 +2259,7 @@ DOT_IMAGE_FORMAT = png # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. -INTERACTIVE_SVG = NO +INTERACTIVE_SVG = YES # The DOT_PATH tag can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. @@ -2242,6 +2286,15 @@ MSCFILE_DIRS = DIAFILE_DIRS = +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. +# This tag requires that the tag HAVE_DOT is set to YES. + +PLANTUML_JAR_PATH = + # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized diff --git a/INSTALL b/INSTALL index b42a17ac..20998407 100644 --- a/INSTALL +++ b/INSTALL @@ -1,48 +1,80 @@ +Installation Instructions +************************* + +Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, +Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + Basic Installation ================== - These are generic installation instructions. + Briefly, the shell command `./configure && make && make install' +should configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. -The simplest way to compile this package is: + The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + `./configure' to configure the package for your system. - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with - the package. + the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is @@ -51,62 +83,119 @@ The simplest way to compile this package is: all sorts of other programs in order to regenerate files that came with the distribution. + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + Compilers and Options ===================== Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. Installation Names ================== - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular +options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. -Optional Features -================= - Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE @@ -119,25 +208,80 @@ find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + Specifying the System Type ========================== - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + CPU-COMPANY-SYSTEM -See the file `config.sub' for the possible values of each field. If +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't -need to know the host type. +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. Sharing Defaults ================ @@ -150,19 +294,56 @@ default values for variables like `CC', `cache_file', and `prefix'. `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. -Operation Controls +Defining Variables ================== + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf limitation. Until the limitation is lifted, you can use +this workaround: + + CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + `configure' recognizes the following options to control how it operates. +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + `--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. -`--help' - Print a summary of the options to `configure', and exit. +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. `--quiet' `--silent' @@ -175,8 +356,15 @@ operates. Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. -`configure' also accepts some other, not widely useful, options. +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. diff --git a/README.md b/README.md new file mode 100644 index 00000000..f3bed68a --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +[![Build Status](https://travis-ci.org/argorain/udftools.svg?branch=master)](https://travis-ci.org/argorain/udftools) + +Linux tools for UDF filesystems and DVD/CD-R(W) drives diff --git a/TODO b/TODO new file mode 100644 index 00000000..f331459f --- /dev/null +++ b/TODO @@ -0,0 +1,4 @@ +TODO + +- Take a look at Doxygen docs. They seems to be just empty placeholder + diff --git a/configure.ac b/configure.ac index ed18f6b6..b0cd0c41 100644 --- a/configure.ac +++ b/configure.ac @@ -35,4 +35,31 @@ AM_CONDITIONAL(USE_READLINE, test "$ac_cv_lib_readline_readline" = "yes" -a "$ac AC_CONFIG_FILES(Makefile libudffs/Makefile mkudffs/Makefile cdrwtool/Makefile pktsetup/Makefile udffsck/Makefile udfinfo/Makefile udflabel/Makefile wrudf/Makefile doc/Makefile) +AC_ARG_ENABLE(debug, +AS_HELP_STRING([--enable-debug], +[enable debugging, default: no]), +[case "${enableval}" in + yes) debug=true ;; + no) debug=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-debug]) ;; +esac], +[debug=false]) + +AM_CONDITIONAL(DEBUG, test x"$debug" = x"true") + +AC_ARG_ENABLE(tests, +AS_HELP_STRING([--enable-tests], +[enable tests building, default: no]), +[case "${enableval}" in + yes) tests=true ;; + no) tests=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-tests]) ;; +esac], +[tests=false]) + +AM_CONDITIONAL(TESTS, test x"$tests" = x"true") + +AM_CONDITIONAL(WORDS_LITTLEENDIAN, test "x$ac_cv_c_bigendian" = "xno") +AM_CONDITIONAL(WORDS_BIGENDIAN, test "x$ac_cv_c_bigendian" = "xyes") + AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am index dd76ca50..28aa6a90 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,2 +1,2 @@ -dist_man_MANS = cdrwtool.1 udfinfo.1 wrudf.1 mkfs.udf.8 mkudffs.8 pktsetup.8 udflabel.8 +dist_man_MANS = cdrwtool.1 udfinfo.1 wrudf.1 mkfs.udf.8 mkudffs.8 pktsetup.8 udflabel.8 udffsck.8 fsck.udf.8 dist_doc_DATA = HOWTO.udf UDF-Specifications diff --git a/doc/doxygen/Introduction.txt b/doc/doxygen/Introduction.txt new file mode 100644 index 00000000..772c4825 --- /dev/null +++ b/doc/doxygen/Introduction.txt @@ -0,0 +1,15 @@ +/** +\mainpage UDFTOOLS Documentation + +This is documentation for UDFTOOLS project. It consists from those subprojects: + - cdrwtool + - mkudffs + - pktsetup + - \link udffsck-doc udffsck \endlink + - wrudf + +Their documentations are in their relative folders in their source files. + +\n +Last change: $Date:: 2017-05-20#$ +*/ diff --git a/doc/doxygen/images/udffsck_avdp.eps b/doc/doxygen/images/udffsck_avdp.eps new file mode 100644 index 00000000..73f6a681 --- /dev/null +++ b/doc/doxygen/images/udffsck_avdp.eps @@ -0,0 +1,3428 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/rain/Development/udf/udf-diploma/diploma/obrazky/avdp.dia +%%Creator: Dia v0.97.3 +%%CreationDate: Thu May 11 23:48:18 2017 +%%For: rain +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 740 628 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /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 /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-7.950000 -24.100000 translate +%%EndProlog + + +1.000000 1.000000 1.000000 srgb +n 9.000000 5.000000 m 9.000000 7.000000 l 15.000000 7.000000 l 15.000000 5.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 9.000000 5.000000 m 9.000000 7.000000 l 15.000000 7.000000 l 15.000000 5.000000 l cp s +gsave 10.380000 6.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 10.737163 6.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 11.144282 6.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 11.623831 6.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.826138 6.195000 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 12.363135 6.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.565442 6.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 12.957571 6.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 13.209835 6.195000 translate 0.035278 -0.035278 scale +start_ol +2176 1375 moveto +2176 1848 1982 2108 conicto +1789 2368 1439 2368 conicto +1091 2368 897 2108 conicto +704 1848 704 1375 conicto +704 904 897 644 conicto +1091 384 1439 384 conicto +1789 384 1982 644 conicto +2176 904 2176 1375 conicto +2624 347 moveto +2624 -347 2323 -685 conicto +2023 -1024 1404 -1024 conicto +1174 -1024 971 -992 conicto +768 -961 576 -896 conicto +576 -448 lineto +766 -546 951 -593 conicto +1137 -640 1329 -640 conicto +1754 -640 1965 -415 conicto +2176 -190 2176 264 conicto +2176 448 lineto +2042 223 1833 111 conicto +1624 0 1332 0 conicto +848 0 552 376 conicto +256 753 256 1375 conicto +256 1999 552 2375 conicto +848 2752 1332 2752 conicto +1624 2752 1833 2640 conicto +2042 2529 2176 2304 conicto +2176 2688 lineto +2624 2688 lineto +2624 347 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 9.000000 8.000000 m 9.000000 10.000000 l 15.000000 10.000000 l 15.000000 8.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 9.000000 8.000000 m 9.000000 10.000000 l 15.000000 10.000000 l 15.000000 8.000000 l cp s +gsave 10.461250 9.195000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 10.878357 9.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 11.272983 9.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 11.665112 9.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 12.072232 9.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.274539 9.195000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 12.614214 9.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 13.041310 9.195000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 12.000000 7.000000 m 12.000000 7.464368 l s +[] 0 sd +0 slj +0 slc +n 12.000000 7.839368 m 11.750000 7.339368 l 12.000000 7.464368 l 12.250000 7.339368 l ef +n 12.000000 7.839368 m 11.750000 7.339368 l 12.000000 7.464368 l 12.250000 7.339368 l cp s +1.000000 1.000000 1.000000 srgb +n 12.000000 19.000000 m 16.000000 21.000000 l 12.000000 23.000000 l 8.000000 21.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 12.000000 19.000000 m 16.000000 21.000000 l 12.000000 23.000000 l 8.000000 21.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 8.000000 11.000000 m 8.000000 13.000000 l 16.216250 13.000000 l 16.216250 11.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 8.000000 11.000000 m 8.000000 13.000000 l 16.216250 13.000000 l 16.216250 11.000000 l cp s +gsave 8.894375 12.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 9.341455 12.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 9.733584 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 9.910912 12.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 10.263081 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 10.667695 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 10.845024 12.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 11.237153 12.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 11.486920 12.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 11.881546 12.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.083853 12.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 12.436021 12.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 12.840635 12.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.235261 12.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 13.587430 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 13.957078 12.195000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 14.289262 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 14.693876 12.195000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 12.000000 10.000000 m 12.025143 10.465078 l s +[] 0 sd +0 slj +0 slc +n 12.045387 10.839532 m 11.768760 10.353757 l 12.025143 10.465078 l 12.268031 10.326765 l ef +n 12.045387 10.839532 m 11.768760 10.353757 l 12.025143 10.465078 l 12.268031 10.326765 l cp s +1.000000 1.000000 1.000000 srgb +n 12.000000 14.000000 m 16.000000 16.000000 l 12.000000 18.000000 l 8.000000 16.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 12.000000 14.000000 m 16.000000 16.000000 l 12.000000 18.000000 l 8.000000 16.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 21.000000 22.000000 m 21.000000 24.000000 l 27.000000 24.000000 l 27.000000 22.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 21.000000 22.000000 m 21.000000 24.000000 l 27.000000 24.000000 l 27.000000 22.000000 l cp s +gsave 22.196250 23.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 22.603369 23.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 22.853136 23.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 23.245265 23.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 23.492526 23.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 23.887152 23.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.089460 23.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 24.486583 23.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 24.923674 23.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.415708 23.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 24.000000 7.000000 m 28.000000 8.973455 l 24.000000 10.946910 l 20.000000 8.973455 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 24.000000 7.000000 m 28.000000 8.973455 l 24.000000 10.946910 l 20.000000 8.973455 l cp s +gsave 22.063750 9.168455 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 22.510830 9.168455 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 22.922943 9.168455 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 23.370023 9.168455 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 23.572330 9.168455 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 24.194241 9.168455 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 24.586370 9.168455 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 24.836137 9.168455 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 25.188306 9.168455 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 25.592920 9.168455 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 9.000000 2.000000 m 9.000000 3.900000 l 15.000000 3.900000 l 15.000000 2.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +n 9.000000 2.000000 m 9.000000 3.900000 l 15.000000 3.900000 l 15.000000 2.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 11.013750 3.145000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 11.420869 3.145000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 11.760545 3.145000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 12.197636 3.145000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 12.594759 3.145000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 12.000000 3.926953 m 12.000000 4.462898 l s +[] 0 sd +0 slj +0 slc +n 12.000000 4.837898 m 11.750000 4.337898 l 12.000000 4.462898 l 12.250000 4.337898 l ef +n 12.000000 4.837898 m 11.750000 4.337898 l 12.000000 4.462898 l 12.250000 4.337898 l cp s +gsave 9.250000 16.200000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 9.697080 16.200000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 10.101694 16.200000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 10.496320 16.200000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 10.848488 16.200000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 11.218136 16.200000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 11.550321 16.200000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 11.954935 16.200000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 12.576846 16.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.779153 16.200000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 13.401064 16.200000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.793193 16.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 14.042960 16.200000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 14.395129 16.200000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 14.799743 16.200000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +gsave 9.550000 21.200000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 9.889675 21.200000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 10.316771 21.200000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave 10.811302 21.200000 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 11.013609 21.200000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 11.190938 21.200000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 11.598057 21.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.800364 21.200000 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 12.337361 21.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.539668 21.200000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 12.936791 21.200000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 13.373882 21.200000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 13.865916 21.200000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 14.250554 21.200000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 21.000000 4.000000 m 21.000000 6.000000 l 27.000000 6.000000 l 27.000000 4.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 21.000000 4.000000 m 21.000000 6.000000 l 27.000000 6.000000 l 27.000000 4.000000 l cp s +gsave 21.750000 5.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 22.197080 5.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 22.589209 5.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 22.766537 5.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 23.118706 5.195000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 23.523320 5.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 23.700649 5.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 24.092778 5.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 24.342545 5.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 24.737171 5.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.939478 5.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 25.386557 5.195000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 25.798671 5.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 24.000000 6.000000 m 24.000000 6.513197 l s +[] 0 sd +0 slj +0 slc +n 24.000000 6.888197 m 23.750000 6.388197 l 24.000000 6.513197 l 24.250000 6.388197 l ef +n 24.000000 6.888197 m 23.750000 6.388197 l 24.000000 6.513197 l 24.250000 6.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 28.000000 8.973460 m 30.513216 8.995694 l s +[] 0 sd +0 slj +0 slc +n 30.888201 8.999011 m 30.386009 9.244578 l 30.513216 8.995694 l 30.390432 8.744598 l ef +n 30.888201 8.999011 m 30.386009 9.244578 l 30.513216 8.995694 l 30.390432 8.744598 l cp s +gsave 16.350000 15.500000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 16.829549 15.500000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 16.400000 20.350000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 16.879549 20.350000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 28.400000 8.550000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 28.879549 8.550000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 12.650000 18.550000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 12.954709 18.550000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.349335 18.550000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 12.625000 23.435000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 12.929709 23.435000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.324335 23.435000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 24.600000 11.575000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 24.904709 11.575000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 25.299335 11.575000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 12.108125 13.000000 m 12.052331 13.516018 l s +[] 0 sd +0 slj +0 slc +n 12.012019 13.888844 m 11.817217 13.364867 l 12.052331 13.516018 l 12.314319 13.418616 l ef +n 12.012019 13.888844 m 11.817217 13.364867 l 12.052331 13.516018 l 12.314319 13.418616 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 12.000000 18.000000 m 12.000000 18.513197 l s +[] 0 sd +0 slj +0 slc +n 12.000000 18.888197 m 11.750000 18.388197 l 12.000000 18.513197 l 12.250000 18.388197 l ef +n 12.000000 18.888197 m 11.750000 18.388197 l 12.000000 18.513197 l 12.250000 18.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 12.000000 23.000000 m 12.000000 24.050000 l 19.000000 24.050000 l 19.000000 3.000000 l 24.000000 3.000000 l 24.000000 3.513197 l s +[] 0 sd +0 slj +0 slc +n 24.000000 3.888197 m 23.750000 3.388197 l 24.000000 3.513197 l 24.250000 3.388197 l ef +n 24.000000 3.888197 m 23.750000 3.388197 l 24.000000 3.513197 l 24.250000 3.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 24.000000 12.000000 m 28.000000 14.000000 l 24.000000 16.000000 l 20.000000 14.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 24.000000 12.000000 m 28.000000 14.000000 l 24.000000 16.000000 l 20.000000 14.000000 l cp s +gsave 21.500000 14.200000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 21.862157 14.200000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 22.254286 14.200000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 22.586470 14.200000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 22.763799 14.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 23.013565 14.200000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 23.190894 14.200000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 23.583023 14.200000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 23.987637 14.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.189944 14.200000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 24.811856 14.200000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 25.203985 14.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 25.453751 14.200000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 25.805920 14.200000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 26.210534 14.200000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 24.000000 10.946900 m 24.000000 11.513197 l s +[] 0 sd +0 slj +0 slc +n 24.000000 11.888197 m 23.750000 11.388197 l 24.000000 11.513197 l 24.250000 11.388197 l ef +n 24.000000 11.888197 m 23.750000 11.388197 l 24.000000 11.513197 l 24.250000 11.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 24.000000 16.000000 m 24.000000 21.513197 l s +[] 0 sd +0 slj +0 slc +n 24.000000 21.888197 m 23.750000 21.388197 l 24.000000 21.513197 l 24.250000 21.388197 l ef +n 24.000000 21.888197 m 23.750000 21.388197 l 24.000000 21.513197 l 24.250000 21.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 18.000000 21.000000 m 18.000000 2.000000 l 31.000000 2.000000 l 31.000000 21.513197 l s +[] 0 sd +0 slj +0 slc +n 31.000000 21.888197 m 30.750000 21.388197 l 31.000000 21.513197 l 31.250000 21.388197 l ef +n 31.000000 21.888197 m 30.750000 21.388197 l 31.000000 21.513197 l 31.250000 21.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 16.000000 21.000000 m 17.513197 21.000000 l s +[] 0 sd +0 slj +0 slc +n 17.888197 21.000000 m 17.388197 21.250000 l 17.513197 21.000000 l 17.388197 20.750000 l ef +n 17.888197 21.000000 m 17.388197 21.250000 l 17.513197 21.000000 l 17.388197 20.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 16.000000 16.000000 m 17.513197 16.000000 l s +[] 0 sd +0 slj +0 slc +n 17.888197 16.000000 m 17.388197 16.250000 l 17.513197 16.000000 l 17.388197 15.750000 l ef +n 17.888197 16.000000 m 17.388197 16.250000 l 17.513197 16.000000 l 17.388197 15.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 28.000000 14.000000 m 30.513197 14.000000 l s +[] 0 sd +0 slj +0 slc +n 30.888197 14.000000 m 30.388197 14.250000 l 30.513197 14.000000 l 30.388197 13.750000 l ef +n 30.888197 14.000000 m 30.388197 14.250000 l 30.513197 14.000000 l 30.388197 13.750000 l cp s +gsave 28.325000 13.535000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 28.804549 13.535000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 24.425000 16.535000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 24.729709 16.535000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 25.124335 16.535000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 29.000000 22.000000 m 33.000000 22.000000 l 33.552285 22.000000 34.000000 22.447715 34.000000 23.000000 c 34.000000 23.552285 33.552285 24.000000 33.000000 24.000000 c 29.000000 24.000000 l 28.447715 24.000000 28.000000 23.552285 28.000000 23.000000 c 28.000000 22.447715 28.447715 22.000000 29.000000 22.000000 c ef +0.000000 0.000000 0.000000 srgb +n 29.000000 22.000000 m 33.000000 22.000000 l 33.552285 22.000000 34.000000 22.447715 34.000000 23.000000 c 34.000000 23.552285 33.552285 24.000000 33.000000 24.000000 c 29.000000 24.000000 l 28.447715 24.000000 28.000000 23.552285 28.000000 23.000000 c 28.000000 22.447715 28.447715 22.000000 29.000000 22.000000 c s +gsave 29.250000 23.200000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 29.667107 23.200000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 30.061733 23.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 30.311500 23.200000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 30.716114 23.200000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 30.968378 23.200000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 31.372992 23.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 31.575299 23.200000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 31.969925 23.200000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 32.222189 23.200000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 32.469450 23.200000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 32.861579 23.200000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +showpage diff --git a/doc/doxygen/images/udffsck_avdp.png b/doc/doxygen/images/udffsck_avdp.png new file mode 100644 index 00000000..61b746cc Binary files /dev/null and b/doc/doxygen/images/udffsck_avdp.png differ diff --git a/doc/doxygen/images/udffsck_det-ch.eps b/doc/doxygen/images/udffsck_det-ch.eps new file mode 100644 index 00000000..b2c6e8ad --- /dev/null +++ b/doc/doxygen/images/udffsck_det-ch.eps @@ -0,0 +1,862 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.14.0 (http://cairographics.org) +%%CreationDate: Thu May 11 23:22:03 2017 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 0 -1 692 266 +%%EndComments +%%BeginProlog +save +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/pdfmark where { pop globaldict /?pdfmark /exec load put } + { globaldict begin /?pdfmark /pop load def /pdfmark + /cleartomark load def end } ifelse +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +%%EndProlog +%%BeginSetup +%%BeginResource: font LiberationSans-Bold +11 dict begin +/FontType 42 def +/FontName /LiberationSans-Bold def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 67 /C put +Encoding 68 /D put +Encoding 77 /M put +Encoding 82 /R put +Encoding 84 /T put +Encoding 97 /a put +Encoding 98 /b put +Encoding 99 /c put +Encoding 100 /d put +Encoding 101 /e put +Encoding 103 /g put +Encoding 104 /h put +Encoding 105 /i put +Encoding 107 /k put +Encoding 109 /m put +Encoding 110 /n put +Encoding 111 /o put +Encoding 112 /p put +Encoding 114 /r put +Encoding 115 /s put +Encoding 116 /t put +Encoding 117 /u put +Encoding 118 /v put +Encoding 121 /y put +/CharStrings 26 dict dup begin +/.notdef 0 def +/D 1 def +/e 2 def +/s 3 def +/c 4 def +/r 5 def +/i 6 def +/p 7 def +/t 8 def +/o 9 def +/R 10 def +/d 11 def +/u 12 def +/n 13 def +/a 14 def +/T 15 def +/g 16 def +/space 17 def +/b 18 def +/y 19 def +/M 20 def +/C 21 def +/h 22 def +/k 23 def +/m 24 def +/v 25 def +end readonly def +/sfnts [ +<000100000009008000030010637674205fe25f80000018000000024a6670676d73d323b00000 +1a4c00000705676c7966d5b718130000009c0000176468656164055426e70000215400000036 +686865610e8a05db0000218c00000024686d747877610966000021b0000000686c6f63614bae +465e00002218000000366d617870055b08a80000225000000020707265703beb0c6d00002270 +000003e90002004400000264055500030007002eb101002f3cb2070422ed32b10605dc3cb203 +0222ed3200b103002f3cb2050422ed32b2070623fc3cb2010222ed3233112111252111214402 +20fe240198fe680555faab4404cd000000020089000005710581000c00190058b90018ffe0b4 +090a004c18b8ffe8403108004d0f200a004d0f3809004d0f1808004d0d5b001b901b01301b40 +1b02145a000630064006030806135f0703145f0612003fed3fed012f5e5ded5d7110deed3130 +002b2b2b2b2b0114020e01232111213204161205342e022b011133323e0205716ab8fb91fdc6 +01fea40112c66efed74378a765d1fa59976f3f02cbb0fef5b45c058152aafefab47bb07136fc +473e7bb6000000020050ffec042d044e001e0027004fb619461a1a254610b8ffc04027272b48 +10292f294f295f296f299f29052411470511522424161f520a1016510010190119190016003f +322f5d10ed3fed12392fed012fed325d10de2bed332fed313005222e0235343e0233321e021d +0121141e0233323637050e0303220e0207212e01024a75bb8446538db86680b57436fd4a1836 +563d4a5e14010912416ca1732b4b37220201a4086e14458dd58f9bd4833a59a0df8708447555 +313f42172e68573903b11d3f6446838300010048ffec041f044f003b0098b9003affe8400a09 +004d2110090a004c02b8fff0400a09004d32461f2a46291fb8ffc040461920481f291f290a15 +46cf00df00024f0001003d503d01303db03d02403d012f3d010b460a3215052f5124d22a0170 +2a011f2a2f2a022a2a2410105105100b200b020b0b0516003f332f5d10ed3f332f5d5d5d10ed +123939012fed5d5d717210de5d71ed1239392f2f2b10ed10ed31302b2b2b01140e0223222e02 +27371e0333323e0235342e02272e0335343e0233321e0217072e0323220615141e02171e0304 +1f417cb47367a67d5415f70c2a3e533530533d2231557341448468403c74ab6f5898785110f9 +072435462a6464294b673d4b917145013c4e7c572f1e456e51252d381e0a0b1b31252a311f17 +0f0f2a486f554d79552d21476e4e1a27331e0b333c252c1d150f102b4b76000000010050ffec +0437044e00200037401e10460f0f1b464f1c011c22164705134f0a10100a10401b011b1b184f +0016003fed332f5d3f332f10ed012fed10de5ded332fed313005222e0235343e0233321e0217 +052e01232206151033323637050e03025281c180404684c17b69a376490efee50c60587168dd +506c0d011a0a4779ac145092cd7c87d3914c3861844c0e5363bab1fe8a65640d4b89693f0001 +0087000002fe044f001d005eb9000fffe8b4090a004c15b8ffc0401c090c4815151f7f1f9f1f +02d01f012f1f5f1faf1f030c1d46d0000100b8ffc0b324284800b8ffc0400d090c480019500c +1210070f0015003f3f3f33ed012f2b2b5ded325d5d7111332f2b3130002b3311342e0227211e +0315333e0333321617152e0123220615118f01030202010c0204040304152a39503b19310d1b +37266975033c234e47390d0c3b4645153b5d41230906eb0609aaa7fded000002008f000001a8 +05cc00030007004f403601054602bf0601700601df060106094009500902a009b009027f0901 +6009011f0901ef09018009b009c009d00904050f041500530100003fed3f3f015d5d71717171 +7210de5d717132ed32313013352115011121118f0119fee7011904fdcfcffb03043afbc60002 +0087fe57048f045100240036005db90022ffe0401c08004d032008004d2547cf00df00020038 +7038012d1c1146d0120112b8ffc0b324284812b8ffc04012080c4812284f1c2010160f111b32 +4f0a0516003f33ed3f3f3f33ed012f2b2b5ded32327110de71ed3130002b2b01140e0223222e +0227231e0315112111342627211e0315333e0133321e0205342623220e0215141e0233323e02 +048f31669d6b305f56491a0601020201fee705030111020503020433b2756796612ffedb706f +2a5341292841522a3654391e02227bd09655142d49360528353b19fe6104ea53822407283438 +156b5c5494cd7ab9b323558f6d6a8d54232b5b8e000000010019ffee02910538001700544033 +0228090a004c0c0c5f140114140a0e4603070305054f035f036f03030340262c48a00301030d +054f060a060808060f114f0016003fed3f332f113310ed32012f5d2b71332f113310ed32322f +5d332f31302b052226351123353337331533152311141633323637150e0101a47c86899758b0 +cdcd3c3f1a2a1a3474128789027ebefefebefdce4f4b0806ae111100000000020050ffec0493 +044e00130023002440141447002560257025021a470a174f0f101f4f0516003fed3fed012fed +7110deed313001140e0223222e0235343e0233321e0205342623220615141e0233323e020493 +458ace8984ca89464388ce8a92ce833dfeda7e787c8423405a363e614222021e7cce95535294 +cf7d79cd96545495cd7ac1aeb0bf618c5a2b2b5a8c00000200890000059d05810011001c0070 +404b0028090a004c011003125b0b0011100f111f110211113f0b4f0b020b1e701e01201e301e +a01e0317035a20043004020410025f5f176f177f17af17041740162148171700165f05030400 +12003f323fed12392f2b5ded39012f5ded325d7110ce71322f5d383310ed12393931302b2101 +2111211121321e0215140e02070901342623211121323e020451feb9fea6fed902c084c58441 +2f537243017dfe91877dfe860182425f3d1e0217fde905813b6d9b614f83664510fdb003d167 +64fe601f394e00020054ffec045c05cc002400350044402a1f052546df210121402428482137 +7037012f47c00ed00e02300e010e1f002a4f181310314f0509160015003f3f33ed3f33ed3f01 +2f5d71ed7110de2b5ded32323130212e0335230e0123222e0235343e0233321e021733342634 +263511211114161701342e0223220e02151033323e02034c020505030431af7a6695612f3166 +9d6c356254441802010101190602fee32841532b3653391ddd2a5442290829343615695b5496 +cd797bce9554162e48330a27323619018bfb204f7b2202236b8d53212a5a8c63fe9024569100 +00000001007fffec045c043a0023005c402e1f10090a004c140b46df0e010e402428480e2590 +25a0250270259025a025b025f02505ef25010146ef22ff220222b8ffc0400e090c4822190650 +1d1614150c000f003f323f3fed33012f2b5ded5d717210de2b5ded323130002b0111141e0233 +323e0235112111141e0217212e0335230e0123222e0235110198142e493533533c2101190103 +0301fef4010503030538ad7761885526043afda13f694b2a2d5373450244fcb8224b43350d0c +354040167b70406f985802af0001008700000464044f00230061b9001fffe0402608004d0046 +e023f0230223259025a0250270259025a025b025f02505ef2501190c46d00d010db8ffc0b324 +28480db8ffc0400e080c480d1906501d10130f0d0015003f323f3fed33012f2b2b5ded325d71 +7210de5ded3130002b2111342e0223220e0215112111342e0227211e0315333e0133321e0215 +11034c142e4a3533533c21fee701030202010c020404030439ac7762875526025f3f694b2a2d +537345fdbc0348234a43350d0c354040167c7040709858fd51000002003cffec0480044e0035 +00440089b63118090c004c1fb8fff0402509004d071009004d0318090b004c36320b4622c029 +d0290229292246bf46014f4601164717b8ffc0402915184817173c4705400d10480537520a0a +1c3f1f162f167f168f1604161611511c10273f4f322f0016003f3232ed323fed332f5d111239 +2fed012f2bed332f2bed5d7110cc322f5d10ed323231302b2b2b2b05222e0235343e023f0135 +342e0223220e0207253e0333321e021511141e02333237150e0323222627230e0113070e0315 +141633323e023501894e7b562e43749c58e915283b262337281905fedb0c4071a56f659e6e3a +0713231c201e1928282d1e6a650a0638afca902d513d24473b36583d22142b537a4e60835125 +0104373b4f32150e233b2d0e4775562f3263905ffe76263c29150698060a0604686565700209 +02020b2342394d4b2e4b623300010017000004cd058100070230407f070e0102040e0b04016f +6b04010b042b047b048b049b04053b0b041b045b046b04ab04bb04063b047b048b04cb04db04 +051b042b043b045b046b047b04ab04eb04fb040904015acb02db02eb0203b402010b024b025b +029b02048b02bb02cb020302402a344804021402020b0290090104097409840903a409b409f4 +090309b8ffc040ffdee1486b097b09025409013b09010409240902ccf00901d409e40902bb09 +0184099409a409036b09015409013b09010409140902db09eb0902b009c00902240954096409 +7409a40905fb0901e00901d40901ab09019409015b09014409011b092b09020409019afb0901 +8409b409d409035b09013409010b0901bb0901400950090204092409340903e409f40902c009 +01a409b409028b090170090154096409023b0901040924090268fb0901e40901cb09019009a0 +09020409340944095409840905f40901cb09db0902b409018b09017409013b095b0902240901 +0b0901eb09fb0902d00901c409019b09014409010b091b090237f409017b098b099b09403bbb +09cb09056f09012b093b094b09030409010b094b095b098b09ab09db0906ff0901028f09cf09 +df09030009200930097009040700045f05030112003f3fed32015e5d5d5f5d7172727272725e +5d5d5d5d5d5d717171717171717172727272725e5d5d5d5d5d5d5d5d71717172727272725e5d +5d5d5d5d5d5d5d5d71717172727272727272725e5d5d5d5d2b5d71712f5e5d2b5d717272edc6 +5d71725e5d725e5d2b0118104de6313001112111213521150305fed9fe3904b6049dfb63049d +e4e4000000020054fe4e045a044f0033004500544033240e3446df2f012f402428482f477047 +01064605053e47c01cd01c02301c011c2a0f394f242110414f1317150951000606001b003f32 +2f10ed3f33ed3f33ed3f012f5d71ed332fed7110de2b5ded3232313001222e0227251e013332 +3e02353c01373635230e0123222e0235343e023332161733343e0237210e011511140e021334 +2e0223220e0215141633323e0202546ba373450d01190f635032533b2101010231b17a679562 +2f32679d6c6cab300503040502010a02044483bf712840532a36533a1e706f2a534228fe4e2b +4d6b4021414a1c436e511c3a181c1a695e5191c9797dcb924f5c671537332807248254fce176 +af743a03de668852222a58885eafb221538a00020087ffec048f05cc00240034004d40142547 +cf00df00020036703601160a2d46d0140114b8ffc0b324284814b8ffc04012090c4814284f1c +201015001115324f0a0516003f33ed3f3f3f33ed012f2b2b5ded32327110de71ed313001140e +0223222e022723140e0207213e01351121111406070607333e0133321e0205342623220e0215 +141e02333236048f31669d6b306056481a0203040502feef03050119010101010433b2756896 +612efedb6c712b5442282840542b6b7402217bcf9754142e4a36153633280823815304d5fe62 +203d1a1e1b70605395cc79b8b222558f6d6a8c5422b100010010fe570468043a0013002300b9 +000701243fb00ccdb1120f3fb0013301b0142fb015d600b1120c1112b0003930312513210106 +07062322273516323637363f0101210248fa0126fe5451575f9a654c3555401a332912fe5401 +29f10349fb8dc552590dc80812152a6630042f00000100890000062105810030025bb62e2009 +0a004c20b8ffe0400b090a004c0f08090a004c0eb8fff840ff090a004c0f0e26261e2e06005c +3032cb3201bd3201018b32017f32013b324b326b32032f32011b3201fb3201ef3201ab32cb32 +029f32015b327b328b32034f32013b32012f32010b3201c7eb3201df32019b32bb32cb32038f +32014b327b32023f32010b322b3202fb3201ef3201bb32db32029f32af32028432016b32015f +32014b32013432011b32010f3201f43201cb3201bf3201a432017b328b32026f32015432013b +32012f320104320197eb3201df3201cb3201b432019b32018f32010b322b324b327b32041b32 +3b324b326b328b32bb32db32fb3208fb3201ef3201c43201ab32019f32018b32017432015b32 +014f32013432010b320167ff320140afe43201bb32cb3202af32019432017b32016f32014432 +012b32011f32010b3201f43201db3201cf32011b323b324b326b328b32bb32063b325b327b32 +8b32ab32cb32fb32072f320104320137cb32eb3202b432019b32017432014b32012432010b32 +01fb3201d43201bb3201af32018432016b32015f3201024032011f323f3202e032f03202cf32 +01a032013f324f327f320300322032020720171d5c201e301e021e06172617262e1f031e0f00 +12003f32323f3339392f2f33012f5ded32325e5d5d5d5d5d71715f7171717171717172727272 +7272725e5d5d5d7171717172727272727272727272725e5d5d5d5d5d5d5d5d5d5d5d71727272 +727272725e5d5d5d5d5d5d5d5d5d5d7171717171717171717171727272727272725e5d5d5d5d +5d5d5d5d5d71717171715f717110deed3232123911333331302b2b2b2b211134363736370607 +0e03070323032e0327262716171e011511211121131e0117161736373e0337132111051b0302 +030215130812111006fed2fe060f111209141603030204fefa018bfc0a170b0c0e0e0d060c0c +0c05f801890356336c2d35324f471e403c3413fcee031213343c401e474f3a38306a27fcaa05 +81fcec1f5a2a31353430152c2a260f0319fa7f0000010054ffec058f059600290063b90028ff +f8b4090a004c22b8fff84037090a004c1b5c1a1a055c062b302b01255b3010010f101f100210 +205f151b1b1504200530050220056005a005e005f005050505005f0b13003fed332f5d713f33 +2f10ed012f5d5ded5d10deed332fed31302b2b25323e0237050e032322242602353412362433 +321e0217052e0323220e0215141e02031b5379593b1301011f6496cf8cb7fef4af5555ac0107 +b28acf97631cfefc0e3a59784c6b9a632f2f649dd42f4c6031614c9270456dc3010c9fa5010a +bb653a698f56472d5340274580b36f6eb7844a000001008f0000046405cc001f0061b90005ff +e0402608004d0a46e009f0090209219021a0210270219021a021b021f02105ef21011a1646d0 +170117b8ffc0b324284817b8ffc0400e080c481718001709151f10500310003fed333f333f01 +2f2b2b5ded325d717210de5ded3130002b013e0133321e0215112111342e0223220e02151121 +112111140e020701a439ac7762875526fee8142e4a3533533c21fee701190203020103627c70 +40709858fd52025e3f694b2a2d537345fdbd05ccfe6b2041392e0d0000000001008f00000475 +05cc000b008e40241c00011a0101570a670a02050a010a08010a010b08092600360046009600 +0409000b100bb8ffc04010090c480b0b0d2f0d01070346d0040104b8ffc0b324284804b8ffc0 +401c090c48047b018b0102012013194802070a01010707080f0500040015003f323f3f392f39 +113311332b5d012f2b2b5ded325d11332f2b3833335d113311393931305d5d5d5d5d21010711 +21112111012109010342fedf79fee701190182012efe84019901ea54fe6a05ccfcae01c0fe5a +fd6c000100870000069e044f003900a8b90028fff0b4090a004c1fb8ffe04055090a004c2039 +4600000d2d46e42cf42c022c3b543b843bd43be43b043b3b019b3bbb3bdb3b03543b013b3b01 +2f3b01021f3b01003b01b03bd03be03b039f3b01603b803b022f3b01190c46000d200d300dd0 +0d040db8ffc040132428480d330650192126031d10130f2d0d0015003f32323f3f1733ed3201 +2f2b5ded325d5d5d5d71715f71717171727210de5ded11392fed323130002b2b2111342e0223 +220e0215112111342e0227211e0315333e0133321617333e0333321e0215112111342e022322 +0e020711030c11273f2d2b46331cfee701030202010c0204040304349b6c7c971a061d43515f +38597b4d23fee911273f2d2a45331c02025f3f694b2a2d537345fdbc0348234a43350d0c3540 +40167c707973435a371840709858fd51025f3f694b2a2b4f6e43fdaf0000000100080000046a +043a0006001e00b104083fb1050f3fb0013301b0072fb008d600b105041112b0003930312501 +21012101210235010f0126fe71feb0fe7d0129e30357fbc6043a05cc05cc007d058100150079 +058100150000000000000000000000000000043a001400770000ffec00000000ffec00000000 +ffec0000fe570000000000000000000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000800000000000119012500f500eb0000000000000000000000c100d300ba +00b000cf0000000000000000000000000127012901060000011200e400f400c6000000000000 +0000000000000000000000000000000000000119011f014c0000000000df00d100c500b50000 +0000000000000000000000000000000000000000010200a901fd00d80119008000b701fd0000 +0000013f00db015d012500aa00800075008d01fc0179012100a001100000000001310119010e +0104000000000000000000000000000000000000013d01ff00e00106009400e00094014400e0 +05730319000000d802c5009c038102cd00cb00f4004e028d000000ff00d700cc013001450073 +00b400a60000000000730080008d000000000000000000000000030000a200980083008d0000 +00000000000005aefebc058102b60011fff600b600bc00c60000007f008a0060000000000000 +000000f001ee0190000002190108011500000000000000be00000000000000000748036a02b6 +0202fd930000009100670091006101d90000028d0341000000000000000000000000000000aa +fe6ffe6801050093009800e20151008f00be00aefeb9fea4005e00af02d5005500f200a60044 +051101a90000404559585554535251504f4e4d4c4b4a494847464544434241403f3e3d3c3b3a +393837363531302f2e2d2c28272625242322211f181411100f0e0d0b0a090807060504030201 +002c4523466020b02660b004262348482d2c452346236120b02661b004262348482d2c452346 +60b0206120b04660b004262348482d2c4523462361b0206020b02661b02061b004262348482d +2c45234660b0406120b06660b004262348482d2c4523462361b0406020b02661b04061b00426 +2348482d2c0110203c003c2d2c20452320b0cd442320b8015a51582320b08d44235920b0ed51 +582320b04d44235920b0042651582320b00d44235921212d2c20204518684420b001602045b0 +4676688a4560442d2c01b10b0a432343650a2d2c00b10a0b4323430b2d2c00b0282370b10128 +3e01b0282370b10228453ab10200080d2d2c2045b00325456164b050515845441b2121592d2c +49b00e23442d2c2045b0004360442d2c01b00643b00743650a2d2c2069b04061b0008b20b12c +c08a8cb8100062602b0c642364615c58b00361592d2c8a03458a8a87b0112bb0292344b0297a +e4182d2c4565b02c234445b02b23442d2c4b525845441b2121592d2c4b515845441b2121592d +2c01b005251023208af500b0016023edec2d2c01b005251023208af500b0016123edec2d2c01 +b0062510f500edec2d2c462346608a8a462320468a608a61b8ff8062232010238ab10c0c8a70 +456020b0005058b00161b8ffba8b1bb0468c59b0106068013a2d2c2045b0032546524bb01351 +5b58b0022546206861b00325b003253f2321381b2111592d2c2045b00325465058b002254620 +6861b00325b003253f2321381b2111592d2c00b00743b006430b2d2c21210c6423648bb84000 +622d2c21b08051580c6423648bb82000621bb200402f2b59b002602d2c21b0c051580c642364 +8bb81555621bb200802f2b59b002602d2c0c6423648bb84000626023212d2c4b53588ab00425 +4964234569b0408b61b08062b020616ab00e23442310b00ef61b21238a121120392f592d2c4b +535820b0032549646920b00526b0062549642361b08062b020616ab00e2344b0042610b00ef6 +8a10b00e2344b00ef6b00e2344b00eed1b8ab00426111220392320392f2f592d2c4523456023 +456023456023766818b08062202d2cb0482b2d2c2045b0005458b040442045b04061441b2121 +592d2c45b1302f4523456160b0016069442d2c4b5158b02f2370b01423421b2121592d2c4b51 +5820b0032545695358441b2121591b2121592d2c45b01443b0006063b0016069442d2cb02f45 +442d2c452320458a60442d2c45234560442d2c4b235158b90033ffe0b134201bb33300340059 +44442d2cb0164358b00326458a586466b01f601b64b020606620581b21b04059b00161592358 +6559b02923442310b029e01b2121212121592d2cb0024354584b53234b515a58381b2121591b +21212121592d2cb0164358b004254564b020606620581b21b04059b0016123581b6559b02923 +44b00525b00825082058021b0359b0042510b005252046b0042523423cb00425b0072508b007 +2510b006252046b00425b0016023423c2058011b0059b0042510b00525b029e0b02920456544 +b0072510b00625b029e0b00525b00825082058021b0359b00525b003254348b00425b0072508 +b00625b00325b0016043481b2159212121212121212d2c02b00425202046b004252342b00525 +08b003254548212121212d2c02b0032520b0042508b0022543482121212d2c452320451820b0 +0050205823652359236820b040505821b04059235865598a60442d2c4b53234b515a5820458a +60441b2121592d2c4b545820458a60441b2121592d2c4b53234b515a58381b2121592d2cb000 +214b5458381b2121592d2cb002435458b0462b1b21212121592d2cb002435458b0472b1b2121 +21592d2cb002435458b0482b1b21212121592d2cb002435458b0492b1b212121592d2c208a08 +234b538a4b515a5823381b2121592d2c00b0022549b000535820b04038111b21592d2c014623 +466023466123201020468a61b8ff80628ab140408a704560683a2d2c208a2349648a2353583c +1b21592d2c4b52587d1b7a592d2cb012004b014b54422d2cb1020042b123018851b140018853 +5a58b910000020885458b202010243604259b12401885158b920000040885458b20202024360 +42b12401885458b2022002436042004b014b5258b2020802436042591bb940000080885458b2 +02040243604259b94000008063b80100885458b202080243604259b94000010063b802008854 +58b202100243604259b94000020063b80400885458b202400243604259595959592d2c451868 +234b51582320452064b04050587c59688a6059442d2cb00016b00225b0022501b001233e00b0 +02233eb10102060cb00a236542b00b234201b001233f00b002233fb10102060cb006236542b0 +072342b00116012d2c7a8a104523f5182d00000000010000000111eb79905ff95f0f3cf5001f +080000000000cf8ce51400000000cf8ce514fe87fd93087f0844000100080002000000000000 +00010000073efe4e004308ebfe87fe87087f00010000000000000000000000000000001a02ec +004405c70089047300500473004804730050031d00870239008f04e3008702aa001904e30050 +05c7008904e3005404e3007f04e300870473003c04e3001704e300540239000004e300870473 +001006aa008905c7005404e3008f0473008f071d0087047300080000002c008600ea018a01d8 +0234027002ee033e038603f0046004c4052a05ce06fa0786078607fa083209ae0a200a840ae8 +0b8e0bb2000000010000001a015200540082000500020010002f005a0000047a06a100030002 +bf005001070001002f0107000100af0104404701d0fd01bffd0110fd016ffb0140fb0180f590 +f5a0f503f1f0351f2ff09ff0025fef012fef5fef6fef9fefdfef05e6e4201fe5e43d1fe2e027 +1fe1e03d1fdf3ddd55de3d0355ddb8011eb23c1f2f410b011e00010010011e0020011e004001 +1e0003ffc0011e4028191c46dc03ff1f00db01da043c1fd4d21c1fd3d2261f60d190d1c0d103 +60d190d1b0d1c0d1e0d105b8ffc0b3d1191d46b8ffc0b4d10a0d460fb80116400f01bfbe261f +40bb29414640bb222746b801214023b63d1f00b801b8b70a1f00b70100b720b740b760b770b7 +0540b760b790b7d0b7f0b705b80120400d483d1f00b560b502a0b5d0b502b8ffc0400eb50b0e +460fb25fb202b1033c1f2f410b0119003f0119004f01190003008f0119000100400119402826 +29461faf2faf3faf9faf040faf0140af0e164600ad70ad80ad03e0adf0ad02abaa351faa5026 +1fb9011b011ab23c1f00b8011ab6010fa9010fa801bc01170113003c001f01154087503c1f9e +9b271f9d9b271f9c9b271f809b019846281f9f97af97029646351f0f941f94029390261f9291 +261f8f8c0b1f8e8c261f0f8d1f8d025f8d6f8d7f8dff8d04408d1317460f8c01408c0b0f460f +891f890286850f1f5f850136824682027650261f7550261f7450261f7350261f2970011b7001 +037001f47001d670e67002687001597001b8fff04074700a0d466f6e481f6e46321f1a011855 +19331855073303550603ff1f6150261f605f321f5f50261f5e5a481f5c46271f5b5a781f5a46 +311f1332125505010355043203556f03010f033f03025f53014053282c4640531e2246405313 +18465251281f514f1c1f504f1c1f194f294f02594f694f02b80112402946251f4946191f4846 +211f4746351ff846019846011632155511010f5510320f55020100550100ff1fb80111b21b09 +1fb80110403d1b091f101b401b02101b201b301b701b041f0f3f0f5f0f7f0f040f0f2f0f4f0f +6f0f8f0fdf0fff0f073f0f5f0f7f0fef0f046f00015f00018016010501b80190b154532b2b4b +b807ff524bb007505bb00188b02553b00188b040515ab00688b000555a5b58b101018e59858d +8d00421d4bb0325358b0601d594bb0645358b0401d594bb0805358b0101db116004259737473 +747573742b2b2b2b2b2b2b0173742b2b2b2b0073742b2b2b2b2b2b7373752b2b2b012b2b2b00 +2b2b2b2b2b2b2b2b012b2b2b73737373747474002b2b2b2b0173732b73002b732b74752b2b2b +2b73012b732b00732b2b2b2b2b7373732b012b2b0073742b73742b73742b73012b73742b0073 +74752b742b2b2b012b00732b2b7374012b2b002b732b2b73752b2b2b012b2b002b2b73740173 +2b00737373737373017373731800000000> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%BeginResource: font LiberationSans +11 dict begin +/FontType 42 def +/FontName /LiberationSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 42 /asterisk put +Encoding 67 /C put +Encoding 68 /D put +Encoding 73 /I put +Encoding 76 /L put +Encoding 82 /R put +Encoding 97 /a put +Encoding 99 /c put +Encoding 100 /d put +Encoding 101 /e put +Encoding 102 /f put +Encoding 103 /g put +Encoding 104 /h put +Encoding 105 /i put +Encoding 110 /n put +Encoding 111 /o put +Encoding 112 /p put +Encoding 114 /r put +Encoding 115 /s put +Encoding 116 /t put +/CharStrings 21 dict dup begin +/.notdef 0 def +/I 1 def +/d 2 def +/e 3 def +/n 4 def +/t 5 def +/i 6 def +/f 7 def +/r 8 def +/asterisk 9 def +/L 10 def +/o 11 def +/c 12 def +/a 13 def +/D 14 def +/s 15 def +/p 16 def +/C 17 def +/R 18 def +/g 19 def +/h 20 def +end readonly def +/sfnts [ +<00010000000900800003001063767420439d43ea0000139c000002166670676d73d323b00000 +15b400000705676c79666c9880da0000009c0000130068656164051425eb00001cbc00000036 +686865610e4b061800001cf400000024686d7478528508a900001d18000000546c6f63612bcc +303200001d6c0000002c6d617870047a07d100001d9800000020707265707ac85ef600001db8 +000002d50002004400000264055500030007002eb101002f3cb2070408ed32b10605dc3cb203 +0208ed3200b103002f3cb2050408ed32b2070609fc3cb2010208ed3233112111252111214402 +20fe240198fe680555faab4404cd0000000100bd0000017c05810003007a4046035a0f00010c +0000013d10002000d0000360007000020000100040005000b000050700af05010005a005b005 +030005100540055005a005b005c005f0050820059005f0050305b8ffc0b3383d4805b8ffc0b3 +2d304805b8ffc0b60d104801030012003f3f012b2b2b5d71725d2f5e5d71725e5d5e5ded3130 +33113311bdbf0581fa7f000000020056ffec03ef05cc001f0033007b405755226522025a326a +32023901490102360a460a020904190479048904040607160776078607041346402a008f12ef +120212358020471f06010670359035021f3501ff3501c035e03502191512000b2f5008100025 +500316003fed323fed323f3f015d5d71712f5ded1a10dc5d32321aed3130005d5d5d5d5d5d25 +0e0123220211102132161733342e013435113311141e0217232e033501141e0233323e023534 +2e0223220e02033532a57acdc1018e7ba432020101b401020201ac02030302fdda1c3e604547 +6d4926264a6b464260401fae685a0114011802365a620a2b2f2a0901a3fb1327483c2b090a25 +30351a017070a067302e67a678739f622b2e66a3000000020057ffec0418044e001c0025006b +402e5a236a23025a1e6a1e025503650302084909091b47401f1d01901d011d27802500471f11 +01113027c027d0270327b8ffc040131e234808080500502525052050161005500e16003fed3f +ed12392fed11392f012b712f5ded321a10dc5d711aed322fed31305d005d5d01141e02333236 +37170e0323220211343e0233321e021d01272e0123220e0207011423497250758d199e113d66 +996cf0fb4c84b06488b76f2fba0f90872d63543a0401f7558f67395e482d2d5b492f011e011a +98d3843b589bd27a188aab9d1d4a7f62000000010088000003ee044e0025006db90022ffe040 +24070b482546405000019f00ff00020027800027c027d027e02704c027010f270180270127b8 +ffc04020131748190c46c00d01000d100d300de00df00d05080d1906501f10130f0d0015003f +323f3fed32012f5e5d71ed322b5d7171721a10dc5d711aed31302b2111342e0223220e021511 +2311342e0227331e0315333e0333321e02151103391734553f40674928b401020201aa010203 +02031a3e526a465a82542702ae4f6a411b2d557d51fd8d0353224b433007052c393b142f4c35 +1d2c5c9164fd2f0000000001001ffff0022a052c0016007b4057280e01690e790e890e03280d +01690d790d890d038b04010420090d486c047c049c04ac04040420090c486f167f1602160c0d +1603104609088f050100051005200540050407058018010f06500c3f0a010a090f1350031600 +3fed3fcd5d33ed32015d2f5e5d713333ed17322f5d3130002b5d012b5d5d715d71250e012322 +351123353337331533152311141633323637022a295538d87d843578c8c8333f1a311d080b0d +f502d283f2f283fd554e3f0806000000000200890000013d05cc000300070073400d03074600 +000410043004030804b8ffc0402a15184804040809ff0901e00901df0901b009c009029f0901 +70098009021f0901000901f00901df090109b8ffc040112225484f09011f0901050f04150053 +0100003fed3f3f015d712b717172727272727272721112392f2b5e5d33ed3231301335331503 +11331189b4b4b40520acacfae0043afbc60000000001001d0000023c05ca001b00a1400b030a +130a330a430a040d0ab8ffe0406a080c481a0f10010e10191001460500020112021f1d2f1d4f +1d5f1d7f1d8f1d9f1d070f1d3f1d7f1daf1dbf1ddf1def1d073b5f1dbf1d027f1d8f1d9f1d03 +1d405664481d40272c48201d301d601d03af1ddf1def1d03401d010f1d2f1d0213500c000003 +5019060f0115003f3f33ed323fed015d5d5d712b2b71725e5d712f5e5d33ed32322f5e5d3331 +30002b5e5d0111231123353335343e0233321617152e0123220e021d0133150169b49898163b +665120451a112d1228331d0bd303b7fc4903b7837a3b654b2b060689030516293c2761830001 +008800000288044e001f003e402810153015021515210c1f46c00001000010003000e000f000 +0508001928131648190c1210070f0015003f3f3f33cd2b012f5e5d71ed3211332f5d31303311 +342e0227331e0315333e0333321617152e0123220e0215118e01020201aa0103030104132b3a +503916280b12301e3e57371a033e2247423a17173b3e39143e5b3b1d0703a5050538638951fd +cc000001002102b202fd0581000e006b404b4d055d056d05034b045b046b0403420852080243 +0753070200060c030d5f04010f040104032002300202020e2f0a3f0a020a0908bf0dcf0d0210 +0d200d020df00501df0501000501050e03003fcc5d5d5d012f5d5dcc33cc5dddcc5d33cc7172 +12173931305d5d5d5d0125170517070b012737253705033301c801082dfee6b977969c77bdfe +e82d010b0c88045a678449fa480102ff0048f849866b01290000000100a80000042f05810005 +003840281004300402000410042004400460048004a004f0040804035a000010004000030700 +0103035f0012003fed3f012f5e5ded2f5d713130331133112115a8bf02c80581fb1b9c000000 +00020056ffec041d044e000e00220074403b7920892002741c841c0276168616027912891202 +960ca60c02040c140c020b091b09020b051b0502040214020207004740900f010f2480302401 +24b8ffc040141e2348df240119471f08010814500a101e500316003fed3fed012f5ded5d2b71 +1a10dc5d1aed31305e5d5d5d5d5d5d5d5d5d01100223222e02351021321e0207342e0223220e +0215141e0233323e02041dfaee71b27b4101e57eb77538bd274b6c44456f4e292c4d693e4570 +4e2a021efee4feea448cd38f0230468cd28c7ea462272963a47b7ea562282762a60000010057 +ffec03ca044e00270075405179100179170163250163030120461f1f0846a009010909290047 +1f13011323501a1f207f208f20df200420201a10200870088008d008e0080500081008600870 +088008c008d00807080805500e161f29015d003fed332f5d713f332f5d10ed012f5ded11337d +2f7118ed332fed31305d5d5d5d01141e0233323637170e0323222e0235343e0433321e021707 +2e0123220e0201131b40694d60810fb6093c6794617fb26f3224415867723a5b8e67400db90e +72694d67401b02225d9c713e686c0c437c5e395697cd786da77d553317325776440e5a6a3367 +9c00000000020057ffec0473044e0032004100a14032793d893d02790c890c020228090d480a +051a05022b18091148051c151c0225251e46402e096f387f388f3803384380144715b8ffc040 +14151c4815153f471f0301033043c04302a0430143b8ffc040201e234821512816395109091a +335f14012f148f140214140f501a102e33500016003fed323fed332f5d711112392fed3fed01 +2b5d712f5ded332f2bed1a10dc5d32321aed322f31305d2b5d2b005d5d05222635343e023f01 +35342e0223220e0207273e033332161511141633323637150e0123222e0227230e0327323e02 +3d01070e03151416019ea3a45183a857f31c3a573b34543e2606bc0a38679b6eccce2a3b0f1e +0e22432633492e1803061d455c75235681552ac542775a355f14ac966b894e1e02043b435e3a +1b0f27433311406b4e2bbbb1fe2e505104037008081b37513634543b20873f62743559040111 +325a49586000000200a8000005650581000c001900644046a918017b1801ac17011b172b173b +177b1704a910011b102b103b107b10047b0f01990301790201005a402f0d010d1b80401b0114 +5a000610064006030706135f0703145f0612003fed3fed012f5e5ded5d1a10dc711aed31305d +5d5d5d5d5d5d5d5d0114020e01232111213204161207342e0223211121323e0205656ab8fb91 +fdf101d2a30113c66fc05294ce7bfef1013a6fbd8a4e02cfb0fef3b55d058151a9fefcb48fcb +823dfbb1488ed40000010039ffec03b6044b003700bd4055742e842e026f157f158f15036b16 +012536012a1b0115340105021502020b1e1b1e022449232300484020133013029013a013b013 +031339800b490a40191e480a0a2c484f1d5f1d02201d011d6039c0390280390139b8ffc0402a +272a483f3901103901132c052950200024019024f02402242420100e5005600b700b02800b01 +0b0b0516003f332f5d7110ed3f332f5d7110ed123939015d5d2b5d712f5d71ed332f2bed1a10 +dc5d711aed322fed31305d5d005d015d5d005d5d5d01140e0223222e0227371e0133323e0235 +342e02272e0335343633321617072e0323220615141e02171e0503b63b70a3695e97724d129f +1790803a6146272e52754641806740d3cab3d31ca2093044552e7a742b4d6c412b5a554b3821 +012b4c77512b1d40694c1f575110274130313f2a1f13112a45664d949b7e8b142a39230f4a4b +2c39271d100b19232f425800000000020084fe57041d044d0026003a00944010693879380269 +2a792a02862496240224b8ffe04013070a48491f591f024907590702860396030203b8ffe040 +3f070a48004740a02701273c80311c0f46001010103010f010040810b03c013f3c01703c903c +021f3c01ff3c01c03ce03c021c2c502210160f0f1b0836500516003fed323f3f3fed32015d5d +717172722f5e5ded32321a10dc5d1aed31302b5d5d5d2b5d5d5d01140e0223222627231e0315 +112311342e0227331e0315333e0333321e0207342e0223220e0215141e0233323e02041d285d +997074ae2e0501010101b401020201ae0103030304194052653f70995d28bd183b624a3c6a4f +2e26496c464b633b1802227bd0965558640220303b1dfe59050627483b2a090324333a1a3449 +2f155091cd81649c6c382260a987739f622b3a6e9f0000010068ffec05790596002700ad404f +790e890e02750d850d027b258b25026a26017c248c24026a24016a1c015507015a03012a1d6a +1d028617012a176a170205081508020502150202055b501a601a02af1abf1a02201a010f1a01 +1a2210b8ffc0402a070d481010292029014f23012323005f1f04000f100f02300f400f700f80 +0fc00fd00f060f0f0a5f1513003fed332f5d713fed332f5d015d11332f2b332f5d5d5d71ed31 +305d5d5d5d5d005d5d015d5d5d5d005d5d015d01220e0215141e0233323e0237170e03232224 +2602353412362433320417072e03031878b97d404581bb7552876d56219c267097bf76abfeff +ad565baf0100a4e1012e47b51444668904fa5094d07f7fd398542b4e6b414e4f8864396dc301 +0c9fa5010abb65b0ad3c325b462a000200a80000056805810011001e00d2403ea90d018a149a +14aa1403941d01751d851d02ae00019d00017c008c00024a005a006a000303a0010172018201 +920103026301014001013301012501010310b8ff704057114970108010901003541064100242 +100102231033100201101019125a0b0b0000113011401160119011a011061140209020a02003 +19035a00041004400403070410025f2f195f196f198f1904191900185f0503040012003f323f +ed12392f5ded32012f5e5ded325d2f5d33392fed1239113331305d5f5d5d5d2b5f5d5d5d5d5f +5d5d5f5d5d5d5d005d5d5d5d21012111231121321e0215140e02070103342e0223211121323e +02048cfe92fe49bf029778b97e422754825b0190f82c54784cfe3b01cd52784d250249fdb705 +813768965e43826c4e10fda103ec405e3f1ffdf829486200000000020056fe5703ef044b0031 +004500d940487a318a31027607860702653e01550c650c025a3a6a3a02260336030226120129 +2101091719177917891704061d161d761d861d04092f46403222300e017f0edf0e020e478006 +4605b8ffc04051171c4805053c470f1a010a1a2047404702cf4701004720479047b0470450df +4701c047014f47018047a047020f472f4702d047f047020f470108290f2237501f100f415015 +16095035060126060106001b003f325d5ded3fed323fed323f015e5d5d71717272725e5d5d71 +2f5e5ded332f2bed1a10dc5d7132321aed3130005e5d5d5d5d5d5d5d5d5d5d01222e0227371e +0133323e023d01230e0323222e0235343e023332161733343e0237330e031511140613342e02 +23220e0215141e0233323e0202245d9066400eb5127b643d64462602143b55704867935d2b2b +619b6f73a92e0203030402ab01020201df2c315067364563411f1f40624436675232fe572647 +623c1a4b51224b7856ae294b3a23458acd8782d0914d6961193e372803092b3c4927fcc5e3e5 +03c671a166303067a170759f622a2e649e0000000001008e000003ee05cc0021006db90008ff +c04024070b480b4640500c019f0cff0c020c23800023c023d023e02304c023010f2301802301 +23b8ffc040201317481c1846c01901001910193019e019f0190508191a00190b150012500510 +003fed323f333f012f5e5d71ed322b5d7171721a10dc5d711aed31302b013e0333321e021511 +2311342e0223220e02151123113311140e0207013d1e4654643e68854d1db511305846406749 +28b4b4020302010381374d321738658c54fd2f02ae456845232e54784bfd8205ccfe7e214238 +2707000005cc05cc007d058100150079058100150000000000000000000000000000043a0014 +00770000ffec00000000ffec00000000ffec0000fe5700000000000000000000000000000000 +0000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000008000000000000b400bd00af00a0 +0000000000000000000000000088007e000000ac00000000000000000000000000bf00c300ab +00000000009b008d000000000000000000000000000000000000000000000000000000b900aa +000000000000009400990087000000000000000000000000000000000000000000000000006a +0083008d00a400b4000000000000000000000060006a0079009800ac00b800a7000001220133 +00c3006b00000000000000db00c90000000000000000000000000000000000000000000001e1 +01c9009200a8006b009200b7006b009b0000027b02f200920252006e02d703810082008900a0 +009f0169008f0000016000a4015b005e0082000000000000005e0065006f0000000000000000 +000000000000008a009000a5007a0080000000000000000000000581fff3000dfca700830089 +008f0096006900710000000000000000000000a801f900000000031f00a700ae00b500000000 +008100000000000000000748036a02b60202fd930000009100670091006101d90000028d0341 +0044051101a90000404559585554535251504f4e4d4c4b4a494847464544434241403f3e3d3c +3b3a393837363531302f2e2d2c28272625242322211f181411100f0e0d0b0a09080706050403 +0201002c4523466020b02660b004262348482d2c452346236120b02661b004262348482d2c45 +234660b0206120b04660b004262348482d2c4523462361b0206020b02661b02061b004262348 +482d2c45234660b0406120b06660b004262348482d2c4523462361b0406020b02661b04061b0 +04262348482d2c0110203c003c2d2c20452320b0cd442320b8015a51582320b08d44235920b0 +ed51582320b04d44235920b0042651582320b00d44235921212d2c20204518684420b0016020 +45b04676688a4560442d2c01b10b0a432343650a2d2c00b10a0b4323430b2d2c00b0282370b1 +01283e01b0282370b10228453ab10200080d2d2c2045b00325456164b050515845441b212159 +2d2c49b00e23442d2c2045b0004360442d2c01b00643b00743650a2d2c2069b04061b0008b20 +b12cc08a8cb8100062602b0c642364615c58b00361592d2c8a03458a8a87b0112bb0292344b0 +297ae4182d2c4565b02c234445b02b23442d2c4b525845441b2121592d2c4b515845441b2121 +592d2c01b005251023208af500b0016023edec2d2c01b005251023208af500b0016123edec2d +2c01b0062510f500edec2d2c462346608a8a462320468a608a61b8ff8062232010238ab10c0c +8a70456020b0005058b00161b8ffba8b1bb0468c59b0106068013a2d2c2045b0032546524bb0 +13515b58b0022546206861b00325b003253f2321381b2111592d2c2045b00325465058b00225 +46206861b00325b003253f2321381b2111592d2c00b00743b006430b2d2c21210c6423648bb8 +4000622d2c21b08051580c6423648bb82000621bb200402f2b59b002602d2c21b0c051580c64 +23648bb81555621bb200802f2b59b002602d2c0c6423648bb84000626023212d2c4b53588ab0 +04254964234569b0408b61b08062b020616ab00e23442310b00ef61b21238a121120392f592d +2c4b535820b0032549646920b00526b0062549642361b08062b020616ab00e2344b0042610b0 +0ef68a10b00e2344b00ef6b00e2344b00eed1b8ab00426111220392320392f2f592d2c452345 +6023456023456023766818b08062202d2cb0482b2d2c2045b0005458b040442045b04061441b +2121592d2c45b1302f4523456160b0016069442d2c4b5158b02f2370b01423421b2121592d2c +4b515820b0032545695358441b2121591b2121592d2c45b01443b0006063b0016069442d2cb0 +2f45442d2c452320458a60442d2c45234560442d2c4b235158b90033ffe0b134201bb3330034 +005944442d2cb0164358b00326458a586466b01f601b64b020606620581b21b04059b0016159 +23586559b02923442310b029e01b2121212121592d2cb0024354584b53234b515a58381b2121 +591b21212121592d2cb0164358b004254564b020606620581b21b04059b0016123581b6559b0 +292344b00525b00825082058021b0359b0042510b005252046b0042523423cb00425b0072508 +b0072510b006252046b00425b0016023423c2058011b0059b0042510b00525b029e0b0292045 +6544b0072510b00625b029e0b00525b00825082058021b0359b00525b003254348b00425b007 +2508b00625b00325b0016043481b2159212121212121212d2c02b00425202046b004252342b0 +052508b003254548212121212d2c02b0032520b0042508b0022543482121212d2c4523204518 +20b00050205823652359236820b040505821b04059235865598a60442d2c4b53234b515a5820 +458a60441b2121592d2c4b545820458a60441b2121592d2c4b53234b515a58381b2121592d2c +b000214b5458381b2121592d2cb002435458b0462b1b21212121592d2cb002435458b0472b1b +212121592d2cb002435458b0482b1b21212121592d2cb002435458b0492b1b212121592d2c20 +8a08234b538a4b515a5823381b2121592d2c00b0022549b000535820b04038111b21592d2c01 +4623466023466123201020468a61b8ff80628ab140408a704560683a2d2c208a2349648a2353 +583c1b21592d2c4b52587d1b7a592d2cb012004b014b54422d2cb1020042b123018851b14001 +88535a58b910000020885458b202010243604259b12401885158b920000040885458b2020202 +436042b12401885458b2022002436042004b014b5258b2020802436042591bb9400000808854 +58b202040243604259b94000008063b80100885458b202080243604259b94000010063b80200 +885458b202100243604259b94000020063b80400885458b202400243604259595959592d2c45 +1868234b51582320452064b04050587c59688a6059442d2cb00016b00225b0022501b001233e +00b002233eb10102060cb00a236542b00b234201b001233f00b002233fb10102060cb0062365 +42b0072342b00116012d2c7a8a104523f5182d00000000010000000111eb92d97c2d5f0f3cf5 +001f080000000000cf8ce51400000000cf8ce514fe60fd930867074800000008000200000000 +000000010000073efe4e004308c0fe60fef40867000100000000000000000000000000000015 +02ec0044023900bd0473005604730057047300880239001f01c700890239001d02aa0088031d +0021047300a804730056040000570473005705c700a8040000390473008405c7006805c700a8 +047300560473008e0000002c00760100017001de0240028e0308035603ae03da044a04c0056c +05cc067a071607aa08480916098000010000001501520054008c000500020010002f005a0000 +039e05c000030002b10940be01070001001f01070001009f0104408e01c0fd01affd0100fd01 +0a4ffb0120fb01f550281ff246281ff1462a1ff0462b1f5fef7fef020fef4fef5fef8fefafef +050be5e41e1fe3e2461f0fe20140e246161fe1e0461fcfe0dfe0efe00340e0333646e046181f +dd3ddf55de3d0355df010355dc03ff1f0fd51fd5020fd51fd50240ca181b46cfc201bdc03c1f +c150261fbcbe281fffb90150b870b880b803b8ffc040ffb81232461fb73fb74fb76fb77fb79f +b7afb70770b2a0b2b0b2030fb20190b501b0b5010fb501080fb33fb3efb30380b090b002b0b0 +c0b0d0b0032faf3faf02a0adb0ad02c0add0ad022fac3fac029fab01c0aad0aa024fa98fa902 +2fa96fa9bfa9ffa9049c9b241f509b016f9601bf960196461d1f9594171f7f948f94ff940330 +91409102809101708f808f02908f01c08fd08f024f8c5f8c6f8c038646ff1f9f85018483311f +74733f1f7350261f6f6e3c1f6e46351f1a01185519331855073303550603ff1f6050261f5f50 +261f5c46311f5b5a481f5a46311f1332125505010355043203556f03010f033f0302ef51ff51 +0240513538464051252846cf405450014946201f4846351f4746351faf4601df46ef46028046 +011632155511010f5510320f55020100550100011f1f0f3f0f5f0f7f0f040f0f2f0f4f0f6f0f +8f0fdf0fff0f073f0f7f0fef0f036f00018016010501b80190b154532b2b4bb807ff524bb007 +505bb00188b02553b00188b040515ab00688b000555a5b58b101018e59858d8d00421d4bb032 +5358b0601d594bb0645358b0401d594bb0805358b0101db116004259747374752b2b2b2b2b01 +7374752b2b2b00742b2b7373752b2b2b012b2b2b002b2b2b2b2b2b012b2b002b2b012b732b00 +747374757374732b012b747500732b73740173737400737474737473015e737374737300732b +7373012b002b012b00732b74752b2b2b2b012b2b742b2b5e732b002b5e7374012b2b2b002b73 +735e73737301737373185e00000000> +] def +/f-1-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 0 -1 692 266 +%%EndPageSetup +q 0 -1 692 267 rectclip q +q +0 265.1 692 -266 re W n +[ 1 0 0 1 0 -0.899994 ] concat + q +0.8 0.956863 0.776471 rg +96.832 245.801 178.398 -19.902 re f* +0.992157 0.913725 0.662745 rg +275.23 245.801 367.199 -19.902 re f* +0.572549 0.886275 0.521569 rg +96.832 226 25.5 -85.102 re f* +0.8 0.956863 0.776471 rg +122.332 226 25.5 -85.102 re f* +0.572549 0.886275 0.521569 rg +147.832 226 25.5 -85.102 re f* +0.8 0.956863 0.776471 rg +173.332 226 25.5 -85.102 re f* +0.572549 0.886275 0.521569 rg +198.832 226 25.5 -85.102 re f* +0.8 0.956863 0.776471 rg +224.332 226 25.5 -85.102 re f* +0.572549 0.886275 0.521569 rg +249.73 226 25.5 -85.102 re f* +0.992157 0.913725 0.662745 rg +275.23 226 367.199 -85.102 re f* +0.8 0.956863 0.776471 rg +96.832 87.102 178.398 -85.102 re f* +0.992157 0.913725 0.662745 rg +275.23 87.102 367.199 -85.102 re f* + Q +Q +0 g +642.531 264.702 m 642.133 264.299 l 97.332 264.299 l 96.531 265.1 l 642.93 + 265.1 l h +642.531 264.702 m f* +642.531 244.799 m 642.133 244.401 l 97.332 244.401 l 96.93 244.799 l 97.332 + 245.202 l 642.133 245.202 l h +642.531 244.799 m f* +642.531 224.998 m 641.531 223.998 l 97.93 223.998 l 96.93 224.998 l 97.332 + 225.998 l 642.133 225.998 l h +642.531 224.998 m f* +642.531 139.901 m 643.531 138.901 l 95.93 138.901 l 96.93 139.901 l 97.93 + 140.998 l 641.531 140.998 l h +642.531 139.901 m f* +642.531 85.998 m 641.531 84.998 l 97.93 84.998 l 96.93 85.998 l 95.93 87.1 + l 643.531 87.1 l h +642.531 85.998 m f* +642.531 0.998 m 643.531 -0.002 l 95.93 -0.002 l 97.93 1.998 l 641.531 1.998 + l h +642.531 0.998 m f* +96.93 264.702 m 97.332 264.299 l 97.332 225.998 l 96.93 224.998 l 96.633 + 224.202 l 96.531 224.202 l 96.531 265.1 l h +96.93 264.702 m f* +96.93 224.998 m 97.93 223.998 l 97.93 140.998 l 96.93 139.901 l 95.93 138.901 + l 95.93 225.998 l h +96.93 224.998 m f* +96.93 85.998 m 97.93 84.998 l 97.93 1.998 l 95.93 -0.002 l 95.93 87.1 l + h +96.93 85.998 m f* +122.43 224.998 m 122.832 223.901 l 122.832 140.998 l 122.43 139.901 l 122.031 + 140.998 l 122.031 223.901 l h +122.43 224.998 m f* +147.93 224.998 m 148.332 223.901 l 148.332 140.998 l 147.93 139.901 l 147.531 + 140.998 l 147.531 223.901 l h +147.93 224.998 m f* +173.43 224.998 m 173.832 223.901 l 173.832 140.998 l 173.43 139.901 l 173.031 + 140.998 l 173.031 223.901 l h +173.43 224.998 m f* +198.93 224.998 m 199.332 223.901 l 199.332 140.998 l 198.93 139.901 l 198.531 + 140.998 l 198.531 223.901 l h +198.93 224.998 m f* +224.332 224.998 m 224.73 223.901 l 224.73 140.998 l 224.332 139.901 l 223.93 + 140.998 l 223.93 223.901 l h +224.332 224.998 m f* +249.832 224.998 m 250.23 223.901 l 250.23 140.998 l 249.832 139.901 l 249.43 + 140.998 l 249.43 223.901 l h +249.832 224.998 m f* +275.332 224.998 m 276.332 223.998 l 276.332 140.998 l 275.332 139.901 l + 274.332 140.998 l 274.332 223.998 l h +275.332 224.998 m f* +275.332 85.998 m 276.332 84.998 l 276.332 1.998 l 275.332 0.998 l 274.332 + 1.998 l 274.332 84.998 l h +275.332 85.998 m f* +642.531 264.702 m 642.93 265.1 l 642.93 224.202 l 642.832 224.202 l 642.531 + 224.998 l 642.133 225.998 l 642.133 264.299 l h +642.531 264.702 m f* +642.531 224.998 m 643.531 225.998 l 643.531 138.901 l 642.531 139.901 l + 641.531 140.998 l 641.531 223.998 l h +642.531 224.998 m f* +642.531 85.998 m 643.531 87.1 l 643.531 -0.002 l 641.531 1.998 l 641.531 + 84.998 l h +642.531 85.998 m f* +BT +10 0 0 10 344.731055 251.200006 Tm +/f-0-0 1 Tf +[(Des)-4(cri)-3(pt)3(or)]TJ +0 10 -10 0 691.131055 106.700006 Tm +[(Redundant)]TJ +10 0 0 10 177.631055 231.400006 Tm +[(T)81(a)-3(g)]TJ +24.29 0 Td +[(Des)-4(cri)-3(pt)3(or bod)3(y)]TJ +-40.38 -5.25 Td +[(M)3(a)-3(in de)-3(s)-3(c)-3(ript)3(or)]TJ +0 10 -10 0 113.231055 163.100006 Tm +/f-1-0 1 Tf +[(Id)-6(e)-4(n)-4(tif)-12(ier)]TJ +1.74 -2.55 Td +(*)Tj +/f-0-0 1 Tf +-2.34 -2.54 Td +[(Ch)3(e)-4(c)-4(k)-4(s)-3(um)]TJ +/f-1-0 1 Tf +2.34 -2.55 Td +(*)Tj +/f-0-0 1 Tf +-3.53 -2.55 Td +[(Des)-6(c)-3(ri)-3(pt)3(or)-280(C)3(RC)]TJ +/f-1-0 1 Tf +1.82 -5.1 Td +[(L)-4(o)-4(ca)-4(tio)-3(n)]TJ +10 0 0 10 160.831055 108.600006 Tm +/f-0-0 1 Tf +[(Ch)3(e)-3(c)-3(k)-3(sum)]TJ +28.73 0 Td +[(CR)4(C)]TJ +-44.88 -6.86 Td +[(Res)-4(erv)-5(e)-3( Des)-5(cri)-3(pt)3(or)-8642(T)81(a)-3(g)]TJ +42.12 0 Td +[(Des)-4(cri)-3(pt)3(or bod)3(y)]TJ +0 10 -10 0 235.031055 147.400006 Tm +/f-1-0 1 Tf +[(Descri)3(p)-3(t)-3(o)-3(r)-277(CR)4(C)]TJ +1.97 -1.12 Td +[(L)-4(e)-4(n)-4(g)7(t)-3(h)]TJ +ET +1.169554 w +1 J +1 j +[] 0.0 d +4 M q 1 0 0 -0.673755 0 265.100006 cm +279.258 191.256 m 279.258 250.416 460.031 151.814 460.031 215.908 c S Q +q 1 0 0 -0.673755 0 265.100006 cm +460.031 215.084 m 460.031 155.924 640.805 254.526 640.805 190.432 c S Q +1.04 w +q 1 0 0 -1 0 265.100006 cm +96.328 129.137 m 96.328 158.23 185.223 109.742 185.223 141.258 c S Q +q 1 0 0 -1 0 265.100006 cm +185.223 140.855 m 185.223 111.762 274.117 160.25 274.117 128.73 c S Q +1.000184 w +0 J +0 j +q 0 -0.785379 1 0 0 265.100006 cm +3.556 652.672 m 3.556 707.023 169.633 616.438 169.633 675.32 c S Q +q 0 -0.785379 1 0 0 265.100006 cm +169.633 674.562 m 169.633 620.211 335.716 710.801 335.716 651.918 c S Q +0.96 w +446.074 115.198 m 272.328 112.772 220.609 151.561 220.609 151.561 c S +436.477 115.061 m 432.582 118.85 l 446.074 115.198 l 432.691 111.17 l h +436.477 115.061 m f* +0.959907 w +q -1 -0.0139535 0.0139535 -1 0 265.100006 cm +-434.298 156.099 m -430.458 152.256 l -443.896 156.096 l -430.46 159.936 + l h +-434.298 156.099 m S Q +228.289 145.803 m 229.059 140.424 l 220.609 151.561 l 233.664 146.569 l + h +228.289 145.803 m f* +0.768 w +q 1 -0.75 0.75 1 0 265.100006 cm +203.368 33.229 m 206.442 30.156 l 195.689 33.227 l 206.44 36.299 l h +203.368 33.229 m S Q +0.96 w +172.828 118.807 m 163.938 147.901 162.32 152.748 162.32 152.748 c S +170.023 127.987 m 172.57 132.784 l 172.828 118.807 l 165.227 130.538 l +h +170.023 127.987 m f* +0.918097 w +q -0.305556 1 -1 -0.305556 0 265.100006 cm +-172.92 -117.187 m -169.245 -120.857 l -182.1 -117.186 l -169.247 -113.512 + l h +-172.92 -117.187 m S Q +165.359 143.639 m 162.93 138.784 l 162.32 152.748 l 170.215 141.213 l h +165.359 143.639 m f* +0.910736 w +q 0.333334 -1 1 0.333334 0 265.100006 cm +158.923 112.385 m 162.564 108.742 l 149.813 112.383 l 162.563 116.027 l + h +158.923 112.385 m S Q +Q Q +showpage +%%Trailer +end restore +%%EOF diff --git a/doc/doxygen/images/udffsck_det-ch.png b/doc/doxygen/images/udffsck_det-ch.png new file mode 100644 index 00000000..1cb02730 Binary files /dev/null and b/doc/doxygen/images/udffsck_det-ch.png differ diff --git a/doc/doxygen/images/udffsck_get-file.eps b/doc/doxygen/images/udffsck_get-file.eps new file mode 100644 index 00000000..95a98ac0 --- /dev/null +++ b/doc/doxygen/images/udffsck_get-file.eps @@ -0,0 +1,8073 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/rain/Development/udf/udf-diploma/diploma/obrazky/get-file.dia +%%Creator: Dia v0.97.3 +%%CreationDate: Thu May 11 23:43:24 2017 +%%For: rain +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 1315 739 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /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 /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-8.638197 -29.050000 translate +%%EndProlog + + +1.000000 1.000000 1.000000 srgb +n 10.000000 5.000000 m 10.000000 7.000000 l 16.000000 7.000000 l 16.000000 5.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 10.000000 5.000000 m 10.000000 7.000000 l 16.000000 7.000000 l 16.000000 5.000000 l cp s +gsave 11.461250 6.195000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 11.878357 6.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 12.272983 6.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 12.665112 6.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 13.072232 6.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 13.274539 6.195000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 13.614214 6.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 14.041310 6.195000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 10.000000 8.000000 m 10.000000 11.000000 l 16.000000 11.000000 l 16.000000 8.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 10.000000 8.000000 m 10.000000 11.000000 l 16.000000 11.000000 l 16.000000 8.000000 l cp s +gsave 11.403750 9.295000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 11.850830 9.295000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 12.242959 9.295000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 12.420287 9.295000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 12.772456 9.295000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 13.177070 9.295000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 13.354399 9.295000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.746528 9.295000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 13.996295 9.295000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 14.390921 9.295000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.335000 10.095000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 11.782080 10.095000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 12.186694 10.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 12.581320 10.095000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 12.933488 10.095000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 13.303136 10.095000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 13.635321 10.095000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 14.039935 10.095000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 13.000000 12.000000 m 16.000000 14.000000 l 13.000000 16.000000 l 10.000000 14.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 13.000000 12.000000 m 16.000000 14.000000 l 13.000000 16.000000 l 10.000000 14.000000 l cp s +gsave 11.335000 13.813188 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 11.782080 13.813188 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 12.186694 13.813188 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 12.581320 13.813188 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 12.933488 13.813188 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 13.303136 13.813188 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 13.635321 13.813188 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 14.039935 13.813188 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 11.818750 14.613188 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 12.440661 14.613188 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 12.832790 14.613188 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 13.082557 14.613188 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 13.434726 14.613188 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 13.839340 14.613188 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 10.000000 17.000000 m 10.000000 19.000000 l 16.000000 19.000000 l 16.000000 17.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 10.000000 17.000000 m 10.000000 19.000000 l 16.000000 19.000000 l 16.000000 17.000000 l cp s +gsave 10.750000 18.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 11.197080 18.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 11.589209 18.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 11.766537 18.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 12.118706 18.195000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 12.523320 18.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 12.700649 18.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.092778 18.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 13.342545 18.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.737171 18.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 13.939478 18.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 14.386557 18.195000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 14.798671 18.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 13.000000 20.000000 m 16.000000 22.000000 l 13.000000 24.000000 l 10.000000 22.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 13.000000 20.000000 m 16.000000 22.000000 l 13.000000 24.000000 l 10.000000 22.000000 l cp s +gsave 11.050000 22.200000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 11.497080 22.200000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 11.909193 22.200000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 12.356273 22.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.558580 22.200000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 13.180491 22.200000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.572620 22.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 13.822387 22.200000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 14.174556 22.200000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 14.579170 22.200000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 4.000000 m 13.000000 4.513197 l s +[] 0 sd +0 slj +0 slc +n 13.000000 4.888197 m 12.750000 4.388197 l 13.000000 4.513197 l 13.250000 4.388197 l ef +n 13.000000 4.888197 m 12.750000 4.388197 l 13.000000 4.513197 l 13.250000 4.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 7.048828 m 13.000000 7.513197 l s +[] 0 sd +0 slj +0 slc +n 13.000000 7.888197 m 12.750000 7.388197 l 13.000000 7.513197 l 13.250000 7.388197 l ef +n 13.000000 7.888197 m 12.750000 7.388197 l 13.000000 7.513197 l 13.250000 7.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 11.000000 m 13.000000 11.513197 l s +[] 0 sd +0 slj +0 slc +n 13.000000 11.888197 m 12.750000 11.388197 l 13.000000 11.513197 l 13.250000 11.388197 l ef +n 13.000000 11.888197 m 12.750000 11.388197 l 13.000000 11.513197 l 13.250000 11.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 16.000000 m 13.000000 16.513197 l s +[] 0 sd +0 slj +0 slc +n 13.000000 16.888197 m 12.750000 16.388197 l 13.000000 16.513197 l 13.250000 16.388197 l ef +n 13.000000 16.888197 m 12.750000 16.388197 l 13.000000 16.513197 l 13.250000 16.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 19.000000 m 13.000000 19.513197 l s +[] 0 sd +0 slj +0 slc +n 13.000000 19.888197 m 12.750000 19.388197 l 13.000000 19.513197 l 13.250000 19.388197 l ef +n 13.000000 19.888197 m 12.750000 19.388197 l 13.000000 19.513197 l 13.250000 19.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 10.000000 22.000000 m 9.486803 22.000000 l s +[] 0 sd +0 slj +0 slc +n 9.111803 22.000000 m 9.611803 21.750000 l 9.486803 22.000000 l 9.611803 22.250000 l ef +n 9.111803 22.000000 m 9.611803 21.750000 l 9.486803 22.000000 l 9.611803 22.250000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 10.000000 14.000000 m 9.486803 14.000000 l s +[] 0 sd +0 slj +0 slc +n 9.111803 14.000000 m 9.611803 13.750000 l 9.486803 14.000000 l 9.611803 14.250000 l ef +n 9.111803 14.000000 m 9.611803 13.750000 l 9.486803 14.000000 l 9.611803 14.250000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 9.000000 14.000000 m 9.000000 27.513197 l s +[] 0 sd +0 slj +0 slc +n 9.000000 27.888197 m 8.750000 27.388197 l 9.000000 27.513197 l 9.250000 27.388197 l ef +n 9.000000 27.888197 m 8.750000 27.388197 l 9.000000 27.513197 l 9.250000 27.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 18.000000 5.000000 m 18.000000 7.000000 l 24.000000 7.000000 l 24.000000 5.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 18.000000 5.000000 m 18.000000 7.000000 l 24.000000 7.000000 l 24.000000 5.000000 l cp s +gsave 18.848750 6.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 19.255869 6.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 19.505636 6.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 19.897765 6.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 20.145026 6.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 20.539652 6.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 20.741960 6.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +2624 0 lineto +2176 0 lineto +2176 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2871 lineto +512 3301 718 3506 conicto +924 3712 1351 3712 conicto +1792 3712 lineto +1792 3328 lineto +1376 3328 lineto +1142 3328 1051 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +2624 2688 lineto +2176 3712 moveto +2624 3712 lineto +2624 3136 lineto +2176 3136 lineto +2176 3712 lineto +end_ol grestore +gsave 21.144077 6.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 21.321405 6.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 21.716031 6.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 21.965798 6.195000 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 22.345442 6.195000 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 22.752561 6.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 13.000000 24.000000 m 13.000000 25.000000 l 17.000000 25.000000 l 17.000000 4.000000 l 21.000000 4.000000 l 21.000000 4.513197 l s +[] 0 sd +0 slj +0 slc +n 21.000000 4.888197 m 20.750000 4.388197 l 21.000000 4.513197 l 21.250000 4.388197 l ef +n 21.000000 4.888197 m 20.750000 4.388197 l 21.000000 4.513197 l 21.250000 4.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 21.000000 8.000000 m 24.000000 10.000000 l 21.000000 12.000000 l 18.000000 10.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 21.000000 8.000000 m 24.000000 10.000000 l 21.000000 12.000000 l 18.000000 10.000000 l cp s +gsave 19.265000 9.722500 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 19.634648 9.722500 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 19.811976 9.722500 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 20.433888 9.722500 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 20.828514 9.722500 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 21.160698 9.722500 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 21.410465 9.722500 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 21.802594 9.722500 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 22.424505 9.722500 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 20.232500 10.522500 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 20.624629 10.522500 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 20.801958 10.522500 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 21.209077 10.522500 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 21.603703 10.522500 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 20.176250 11.322500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.463480 11.322500 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 20.900572 11.322500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 21.090394 11.322500 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 21.582428 11.322500 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 21.000000 7.000000 m 21.000000 7.513197 l s +[] 0 sd +0 slj +0 slc +n 21.000000 7.888197 m 20.750000 7.388197 l 21.000000 7.513197 l 21.250000 7.388197 l ef +n 21.000000 7.888197 m 20.750000 7.388197 l 21.000000 7.513197 l 21.250000 7.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 21.000000 17.000000 m 24.000000 19.000000 l 21.000000 21.000000 l 18.000000 19.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 21.000000 17.000000 m 24.000000 19.000000 l 21.000000 21.000000 l 18.000000 19.000000 l cp s +gsave 19.937500 18.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.304651 18.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.709265 18.422500 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 20.911572 18.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 21.378628 18.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 21.568450 18.422500 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.731250 19.222500 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 19.628750 20.022500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 19.995901 20.022500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.185723 20.022500 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.677757 20.022500 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 20.880064 20.022500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 21.347120 20.022500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 21.536942 20.022500 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 22.028976 20.022500 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 21.000000 14.900000 m 21.000000 16.513197 l s +[] 0 sd +0 slj +0 slc +n 21.000000 16.888197 m 20.750000 16.388197 l 21.000000 16.513197 l 21.250000 16.388197 l ef +n 21.000000 16.888197 m 20.750000 16.388197 l 21.000000 16.513197 l 21.250000 16.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 18.000000 22.000000 m 18.000000 24.000000 l 24.000000 24.000000 l 24.000000 22.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 18.000000 22.000000 m 18.000000 24.000000 l 24.000000 24.000000 l 24.000000 22.000000 l cp s +gsave 18.888750 23.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 19.208449 23.195000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 19.385778 23.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 19.765422 23.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 19.967729 23.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 20.434785 23.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 20.839399 23.195000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 21.016728 23.195000 translate 0.035278 -0.035278 scale +start_ol +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +2176 384 moveto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +2176 2688 lineto +2624 2688 lineto +2624 -1024 lineto +2176 -1024 lineto +2176 384 lineto +end_ol grestore +gsave 21.423847 23.195000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 21.828461 23.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 22.223087 23.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 22.425394 23.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 22.615216 23.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 21.000000 21.000000 m 21.000000 21.464368 l s +[] 0 sd +0 slj +0 slc +n 21.000000 21.839368 m 20.750000 21.339368 l 21.000000 21.464368 l 21.250000 21.339368 l ef +n 21.000000 21.839368 m 20.750000 21.339368 l 21.000000 21.464368 l 21.250000 21.339368 l cp s +1.000000 1.000000 1.000000 srgb +n 30.000000 5.000000 m 33.000000 7.000000 l 30.000000 9.000000 l 27.000000 7.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 30.000000 5.000000 m 33.000000 7.000000 l 30.000000 9.000000 l 27.000000 7.000000 l cp s +gsave 28.973750 6.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.340901 6.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.745515 6.422500 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 29.947822 6.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 30.137644 6.422500 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 30.584724 6.422500 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.731250 7.222500 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 28.676250 8.022500 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 29.083369 8.022500 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 29.487983 8.022500 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 29.880112 8.022500 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 30.142364 8.022500 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 30.392131 8.022500 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 30.829222 8.022500 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 30.000000 10.000000 m 33.000000 12.000000 l 30.000000 14.000000 l 27.000000 12.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 30.000000 10.000000 m 33.000000 12.000000 l 30.000000 14.000000 l 27.000000 12.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 30.000000 15.000000 m 33.000000 17.000000 l 30.000000 19.000000 l 27.000000 17.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 30.000000 15.000000 m 33.000000 17.000000 l 30.000000 19.000000 l 27.000000 17.000000 l cp s +gsave 28.973750 11.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.340901 11.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.745515 11.422500 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 29.947822 11.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 30.137644 11.422500 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 30.584724 11.422500 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.731250 12.222500 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 28.758750 13.022500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.105925 13.022500 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 29.498054 13.022500 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 29.902668 13.022500 translate 0.035278 -0.035278 scale +start_ol +2176 1375 moveto +2176 1848 1982 2108 conicto +1789 2368 1439 2368 conicto +1091 2368 897 2108 conicto +704 1848 704 1375 conicto +704 904 897 644 conicto +1091 384 1439 384 conicto +1789 384 1982 644 conicto +2176 904 2176 1375 conicto +2624 347 moveto +2624 -347 2323 -685 conicto +2023 -1024 1404 -1024 conicto +1174 -1024 971 -992 conicto +768 -961 576 -896 conicto +576 -448 lineto +766 -546 951 -593 conicto +1137 -640 1329 -640 conicto +1754 -640 1965 -415 conicto +2176 -190 2176 264 conicto +2176 448 lineto +2042 223 1833 111 conicto +1624 0 1332 0 conicto +848 0 552 376 conicto +256 753 256 1375 conicto +256 1999 552 2375 conicto +848 2752 1332 2752 conicto +1624 2752 1833 2640 conicto +2042 2529 2176 2304 conicto +2176 2688 lineto +2624 2688 lineto +2624 347 lineto +end_ol grestore +gsave 30.309787 13.022500 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 30.746879 13.022500 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 28.973750 16.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.340901 16.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.745515 16.422500 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 29.947822 16.422500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 30.137644 16.422500 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 30.584724 16.422500 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.731250 17.222500 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 28.705000 18.022500 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 29.142092 18.022500 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 29.634126 18.022500 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 29.811454 18.022500 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 30.216068 18.022500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 30.405890 18.022500 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 30.852970 18.022500 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 30.000000 9.000000 m 30.000000 9.513197 l s +[] 0 sd +0 slj +0 slc +n 30.000000 9.888197 m 29.750000 9.388197 l 30.000000 9.513197 l 30.250000 9.388197 l ef +n 30.000000 9.888197 m 29.750000 9.388197 l 30.000000 9.513197 l 30.250000 9.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 30.000000 14.000000 m 30.000000 14.513197 l s +[] 0 sd +0 slj +0 slc +n 30.000000 14.888197 m 29.750000 14.388197 l 30.000000 14.513197 l 30.250000 14.388197 l ef +n 30.000000 14.888197 m 29.750000 14.388197 l 30.000000 14.513197 l 30.250000 14.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 21.000000 24.000000 m 21.000000 25.050000 l 26.000000 25.050000 l 26.000000 4.000000 l 30.000000 4.000000 l 30.000000 4.513197 l s +[] 0 sd +0 slj +0 slc +n 30.000000 4.888197 m 29.750000 4.388197 l 30.000000 4.513197 l 30.250000 4.388197 l ef +n 30.000000 4.888197 m 29.750000 4.388197 l 30.000000 4.513197 l 30.250000 4.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 24.000000 19.000000 m 25.513197 19.000000 l s +[] 0 sd +0 slj +0 slc +n 25.888197 19.000000 m 25.388197 19.250000 l 25.513197 19.000000 l 25.388197 18.750000 l ef +n 25.888197 19.000000 m 25.388197 19.250000 l 25.513197 19.000000 l 25.388197 18.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 30.000000 19.000000 m 30.000000 27.513197 l s +[] 0 sd +0 slj +0 slc +n 30.000000 27.888197 m 29.750000 27.388197 l 30.000000 27.513197 l 30.250000 27.388197 l ef +n 30.000000 27.888197 m 29.750000 27.388197 l 30.000000 27.513197 l 30.250000 27.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 34.000000 6.000000 m 34.000000 8.000000 l 42.000000 8.000000 l 42.000000 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 34.000000 6.000000 m 34.000000 8.000000 l 42.000000 8.000000 l 42.000000 6.000000 l cp s +gsave 34.691250 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 35.048413 7.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 35.455532 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 35.935081 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 36.137388 7.195000 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 36.674385 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 36.876692 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 37.233854 7.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 37.640974 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 38.120523 7.195000 translate 0.035278 -0.035278 scale +start_ol +2240 3072 moveto +2240 1728 lineto +3584 1728 lineto +3584 1344 lineto +2240 1344 lineto +2240 0 lineto +1856 0 lineto +1856 1344 lineto +512 1344 lineto +512 1728 lineto +1856 1728 lineto +1856 3072 lineto +2240 3072 lineto +end_ol grestore +gsave 38.657520 7.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 39.064639 7.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 39.469253 7.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 39.861382 7.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 40.123634 7.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 40.373400 7.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 40.810492 7.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 34.000000 11.000000 m 34.000000 13.000000 l 42.000000 13.000000 l 42.000000 11.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 34.000000 11.000000 m 34.000000 13.000000 l 42.000000 13.000000 l 42.000000 11.000000 l cp s +gsave 34.773750 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 35.130913 12.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 35.538032 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 36.017581 12.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 36.219888 12.195000 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 36.756885 12.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 36.959192 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 37.316354 12.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 37.723474 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 38.203023 12.195000 translate 0.035278 -0.035278 scale +start_ol +2240 3072 moveto +2240 1728 lineto +3584 1728 lineto +3584 1344 lineto +2240 1344 lineto +2240 0 lineto +1856 0 lineto +1856 1344 lineto +512 1344 lineto +512 1728 lineto +1856 1728 lineto +1856 3072 lineto +2240 3072 lineto +end_ol grestore +gsave 38.740020 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 39.087194 12.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 39.479323 12.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 39.883937 12.195000 translate 0.035278 -0.035278 scale +start_ol +2176 1375 moveto +2176 1848 1982 2108 conicto +1789 2368 1439 2368 conicto +1091 2368 897 2108 conicto +704 1848 704 1375 conicto +704 904 897 644 conicto +1091 384 1439 384 conicto +1789 384 1982 644 conicto +2176 904 2176 1375 conicto +2624 347 moveto +2624 -347 2323 -685 conicto +2023 -1024 1404 -1024 conicto +1174 -1024 971 -992 conicto +768 -961 576 -896 conicto +576 -448 lineto +766 -546 951 -593 conicto +1137 -640 1329 -640 conicto +1754 -640 1965 -415 conicto +2176 -190 2176 264 conicto +2176 448 lineto +2042 223 1833 111 conicto +1624 0 1332 0 conicto +848 0 552 376 conicto +256 753 256 1375 conicto +256 1999 552 2375 conicto +848 2752 1332 2752 conicto +1624 2752 1833 2640 conicto +2042 2529 2176 2304 conicto +2176 2688 lineto +2624 2688 lineto +2624 347 lineto +end_ol grestore +gsave 40.291057 12.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 40.728148 12.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 33.000000 7.000000 m 33.513197 7.000000 l s +[] 0 sd +0 slj +0 slc +n 33.888197 7.000000 m 33.388197 7.250000 l 33.513197 7.000000 l 33.388197 6.750000 l ef +n 33.888197 7.000000 m 33.388197 7.250000 l 33.513197 7.000000 l 33.388197 6.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 33.000000 12.000000 m 33.513197 12.000000 l s +[] 0 sd +0 slj +0 slc +n 33.888197 12.000000 m 33.388197 12.250000 l 33.513197 12.000000 l 33.388197 11.750000 l ef +n 33.888197 12.000000 m 33.388197 12.250000 l 33.513197 12.000000 l 33.388197 11.750000 l cp s +1.000000 1.000000 1.000000 srgb +n 35.000000 14.000000 m 35.000000 16.000000 l 41.000000 16.000000 l 41.000000 14.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 35.000000 14.000000 m 35.000000 16.000000 l 41.000000 16.000000 l 41.000000 14.000000 l cp s +gsave 36.220000 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 36.567175 15.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 36.959304 15.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 37.351433 15.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 37.758552 15.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 37.960859 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 38.365473 15.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 38.802565 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 2112 lineto +2624 2112 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2624 0 lineto +2624 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 39.284611 15.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 38.000000 17.000000 m 41.000000 19.000000 l 38.000000 21.000000 l 35.000000 19.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 38.000000 17.000000 m 41.000000 19.000000 l 38.000000 21.000000 l 35.000000 19.000000 l cp s +gsave 37.076250 18.500000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 37.415925 18.500000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 37.843021 18.500000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave 38.337552 18.500000 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 38.539859 18.500000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 38.729681 18.500000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 37.881250 19.300000 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 37.071250 20.100000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 37.475864 20.100000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 37.912956 20.100000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 2112 lineto +2624 2112 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2624 0 lineto +2624 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 38.395002 20.100000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 38.887036 20.100000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 38.000000 22.000000 m 41.000000 24.000000 l 38.000000 26.000000 l 35.000000 24.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 38.000000 22.000000 m 41.000000 24.000000 l 38.000000 26.000000 l 35.000000 24.000000 l cp s +gsave 37.263750 23.172500 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 37.553477 23.172500 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 37.933121 23.172500 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 38.340240 23.172500 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 37.731250 23.972500 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 36.505000 24.772500 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 36.942092 24.772500 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 37.349211 24.772500 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 37.756330 24.772500 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 37.958637 24.772500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 38.425693 24.772500 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 38.757877 24.772500 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 39.152504 24.772500 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 38.000000 16.000000 m 38.000000 16.513197 l s +[] 0 sd +0 slj +0 slc +n 38.000000 16.888197 m 37.750000 16.388197 l 38.000000 16.513197 l 38.250000 16.388197 l ef +n 38.000000 16.888197 m 37.750000 16.388197 l 38.000000 16.513197 l 38.250000 16.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 38.000000 21.050000 m 38.000000 21.513197 l s +[] 0 sd +0 slj +0 slc +n 38.000000 21.888197 m 37.750000 21.388197 l 38.000000 21.513197 l 38.250000 21.388197 l ef +n 38.000000 21.888197 m 37.750000 21.388197 l 38.000000 21.513197 l 38.250000 21.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 33.000000 17.000000 m 34.000000 17.000000 l 34.000000 15.000000 l 34.513197 15.000000 l s +[] 0 sd +0 slj +0 slc +n 34.888197 15.000000 m 34.388197 15.250000 l 34.513197 15.000000 l 34.388197 14.750000 l ef +n 34.888197 15.000000 m 34.388197 15.250000 l 34.513197 15.000000 l 34.388197 14.750000 l cp s +1.000000 1.000000 1.000000 srgb +n 48.000000 22.000000 m 51.000000 24.000000 l 48.000000 26.000000 l 45.000000 24.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 48.000000 22.000000 m 51.000000 24.000000 l 48.000000 26.000000 l 45.000000 24.000000 l cp s +gsave 46.741250 24.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 47.108401 24.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 47.298223 24.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 47.790257 24.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 47.992564 24.195000 translate 0.035278 -0.035278 scale +start_ol +1890 3200 moveto +1375 3200 1071 2813 conicto +768 2426 768 1759 conicto +768 1094 1071 707 conicto +1375 320 1890 320 conicto +2406 320 2707 707 conicto +3008 1094 3008 1759 conicto +3008 2426 2707 2813 conicto +2406 3200 1890 3200 conicto +1890 3584 moveto +2632 3584 3076 3088 conicto +3520 2593 3520 1759 conicto +3520 927 3076 431 conicto +2632 -64 1890 -64 conicto +1146 -64 701 430 conicto +256 925 256 1759 conicto +256 2593 701 3088 conicto +1146 3584 1890 3584 conicto +end_ol grestore +gsave 48.497091 24.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 2032 lineto +2528 3520 lineto +3136 3520 lineto +1402 1879 lineto +3264 0 lineto +2641 0 lineto +960 1695 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 48.916696 24.195000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 45.000000 19.000000 m 45.000000 21.000000 l 51.000000 21.000000 l 51.000000 19.000000 l f +0.100000 slw +[0.200000] 0 sd +[0.200000] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 45.000000 19.000000 m 45.000000 21.000000 l 51.000000 21.000000 l 51.000000 19.000000 l cp s +gsave 46.207500 20.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 46.397322 20.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 46.801936 20.195000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 47.134120 20.195000 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 47.541240 20.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 47.935866 20.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 48.288035 20.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 48.537801 20.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 48.740108 20.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 49.107259 20.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 49.297081 20.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 38.000000 26.000000 m 38.000000 27.000000 l 44.000000 27.000000 l 44.000000 18.000000 l 48.000000 18.000000 l 48.000000 18.513197 l s +[] 0 sd +0 slj +0 slc +n 48.000000 18.888197 m 47.750000 18.388197 l 48.000000 18.513197 l 48.250000 18.388197 l ef +n 48.000000 18.888197 m 47.750000 18.388197 l 48.000000 18.513197 l 48.250000 18.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 48.000000 21.000000 m 48.000000 21.513197 l s +[] 0 sd +0 slj +0 slc +n 48.000000 21.888197 m 47.750000 21.388197 l 48.000000 21.513197 l 48.250000 21.388197 l ef +n 48.000000 21.888197 m 47.750000 21.388197 l 48.000000 21.513197 l 48.250000 21.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 51.000000 24.000000 m 52.000000 24.000000 l 52.000000 17.950000 l 49.500000 17.950000 l 49.500000 18.513197 l s +[] 0 sd +0 slj +0 slc +n 49.500000 18.888197 m 49.250000 18.388197 l 49.500000 18.513197 l 49.750000 18.388197 l ef +n 49.500000 18.888197 m 49.250000 18.388197 l 49.500000 18.513197 l 49.750000 18.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 41.000000 24.000000 m 42.513197 24.000000 l s +[] 0 sd +0 slj +0 slc +n 42.888197 24.000000 m 42.388197 24.250000 l 42.513197 24.000000 l 42.388197 23.750000 l ef +n 42.888197 24.000000 m 42.388197 24.250000 l 42.513197 24.000000 l 42.388197 23.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 41.000000 19.000000 m 42.513197 19.000000 l s +[] 0 sd +0 slj +0 slc +n 42.888197 19.000000 m 42.388197 19.250000 l 42.513197 19.000000 l 42.388197 18.750000 l ef +n 42.888197 19.000000 m 42.388197 19.250000 l 42.513197 19.000000 l 42.388197 18.750000 l cp s +1.000000 1.000000 1.000000 srgb +n 48.000000 5.000000 m 51.000000 7.000000 l 48.000000 9.000000 l 45.000000 7.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 48.000000 5.000000 m 51.000000 7.000000 l 48.000000 9.000000 l 45.000000 7.000000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 42.000000 7.000000 m 42.513197 7.000000 l s +[] 0 sd +0 slj +0 slc +n 42.888197 7.000000 m 42.388197 7.250000 l 42.513197 7.000000 l 42.388197 6.750000 l ef +n 42.888197 7.000000 m 42.388197 7.250000 l 42.513197 7.000000 l 42.388197 6.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 42.000000 12.000000 m 42.513197 12.000000 l s +[] 0 sd +0 slj +0 slc +n 42.888197 12.000000 m 42.388197 12.250000 l 42.513197 12.000000 l 42.388197 11.750000 l ef +n 42.888197 12.000000 m 42.388197 12.250000 l 42.513197 12.000000 l 42.388197 11.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 43.000000 12.000000 m 43.000000 12.000000 l 43.000000 4.000000 l 48.000000 4.000000 l 48.000000 4.513197 l s +[] 0 sd +0 slj +0 slc +n 48.000000 4.888197 m 47.750000 4.388197 l 48.000000 4.513197 l 48.250000 4.388197 l ef +n 48.000000 4.888197 m 47.750000 4.388197 l 48.000000 4.513197 l 48.250000 4.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 43.000000 24.000000 m 43.000000 20.000000 l 43.000000 20.000000 l 43.000000 12.486803 l s +[] 0 sd +0 slj +0 slc +n 43.000000 12.111803 m 43.250000 12.611803 l 43.000000 12.486803 l 42.750000 12.611803 l ef +n 43.000000 12.111803 m 43.250000 12.611803 l 43.000000 12.486803 l 42.750000 12.611803 l cp s +gsave 46.848750 6.272500 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 47.168449 6.272500 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 47.345778 6.272500 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 47.523107 6.272500 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 47.917733 6.272500 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 48.167499 6.272500 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 48.547143 6.272500 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 48.954263 6.272500 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 47.831250 7.072500 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 46.455000 7.872500 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 46.947034 7.872500 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 47.124363 7.872500 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 47.371624 7.872500 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 47.766250 7.872500 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 48.118419 7.872500 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 48.368186 7.872500 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 48.760315 7.872500 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 49.022566 7.872500 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 49.402210 7.872500 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 45.000000 10.000000 m 45.000000 12.000000 l 51.000000 12.000000 l 51.000000 10.000000 l f +0.100000 slw +[0.200000] 0 sd +[0.200000] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 45.000000 10.000000 m 45.000000 12.000000 l 51.000000 12.000000 l 51.000000 10.000000 l cp s +gsave 46.207500 11.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 46.397322 11.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 46.801936 11.195000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 47.134120 11.195000 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 47.541240 11.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 47.935866 11.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 48.288035 11.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 48.537801 11.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 48.740108 11.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 49.107259 11.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 49.297081 11.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 48.000000 9.050000 m 48.000000 9.513197 l s +[] 0 sd +0 slj +0 slc +n 48.000000 9.888197 m 47.750000 9.388197 l 48.000000 9.513197 l 48.250000 9.388197 l ef +n 48.000000 9.888197 m 47.750000 9.388197 l 48.000000 9.513197 l 48.250000 9.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 48.000000 13.000000 m 51.000000 15.000000 l 48.000000 17.000000 l 45.000000 15.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 48.000000 13.000000 m 51.000000 15.000000 l 48.000000 17.000000 l 45.000000 15.000000 l cp s +gsave 46.741250 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 47.108401 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 47.298223 15.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 47.790257 15.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 47.992564 15.195000 translate 0.035278 -0.035278 scale +start_ol +1890 3200 moveto +1375 3200 1071 2813 conicto +768 2426 768 1759 conicto +768 1094 1071 707 conicto +1375 320 1890 320 conicto +2406 320 2707 707 conicto +3008 1094 3008 1759 conicto +3008 2426 2707 2813 conicto +2406 3200 1890 3200 conicto +1890 3584 moveto +2632 3584 3076 3088 conicto +3520 2593 3520 1759 conicto +3520 927 3076 431 conicto +2632 -64 1890 -64 conicto +1146 -64 701 430 conicto +256 925 256 1759 conicto +256 2593 701 3088 conicto +1146 3584 1890 3584 conicto +end_ol grestore +gsave 48.497091 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 2032 lineto +2528 3520 lineto +3136 3520 lineto +1402 1879 lineto +3264 0 lineto +2641 0 lineto +960 1695 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 48.916696 15.195000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 48.000000 12.000000 m 48.000000 12.513197 l s +[] 0 sd +0 slj +0 slc +n 48.000000 12.888197 m 47.750000 12.388197 l 48.000000 12.513197 l 48.250000 12.388197 l ef +n 48.000000 12.888197 m 47.750000 12.388197 l 48.000000 12.513197 l 48.250000 12.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 45.000000 15.000000 m 45.000000 15.000000 l 44.000000 15.000000 l 44.000000 9.000000 l 46.500000 9.000000 l 46.500000 9.513197 l s +[] 0 sd +0 slj +0 slc +n 46.500000 9.888197 m 46.250000 9.388197 l 46.500000 9.513197 l 46.750000 9.388197 l ef +n 46.500000 9.888197 m 46.250000 9.388197 l 46.500000 9.513197 l 46.750000 9.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 45.000000 24.000000 m 43.486803 24.000000 l s +[] 0 sd +0 slj +0 slc +n 43.111803 24.000000 m 43.611803 23.750000 l 43.486803 24.000000 l 43.611803 24.250000 l ef +n 43.111803 24.000000 m 43.611803 23.750000 l 43.486803 24.000000 l 43.611803 24.250000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 51.000000 15.000000 m 51.000000 15.000000 l 52.980000 15.000000 l 52.980000 26.464246 l s +[] 0 sd +0 slj +0 slc +n 52.980000 26.839246 m 52.730000 26.339246 l 52.980000 26.464246 l 53.230000 26.339246 l ef +n 52.980000 26.839246 m 52.730000 26.339246 l 52.980000 26.464246 l 53.230000 26.339246 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 9.000000 28.000000 m 31.513198 27.951058 l s +[] 0 sd +0 slj +0 slc +n 31.888197 27.950243 m 31.388742 28.201329 l 31.513198 27.951058 l 31.387655 27.701331 l ef +n 31.888197 27.950243 m 31.388742 28.201329 l 31.513198 27.951058 l 31.387655 27.701331 l cp s +gsave 12.218750 3.595000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 12.625869 3.595000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 12.875636 3.595000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.267765 3.595000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 13.530017 3.595000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 24.100000 9.500000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 24.404709 9.500000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 24.799335 9.500000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 24.150000 18.550000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 24.454709 18.550000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 24.849335 18.550000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 32.800000 6.350000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 33.104709 6.350000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 33.499335 6.350000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 13.550000 24.600000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 13.854709 24.600000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 14.249335 24.600000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 13.600000 16.550000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 13.904709 16.550000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 14.299335 16.550000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 32.700000 11.350000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 33.004709 11.350000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 33.399335 11.350000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 38.550000 21.650000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 38.854709 21.650000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 39.249335 21.650000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 44.400000 14.600000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 44.704709 14.600000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 45.099335 14.600000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 32.700000 16.550000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 33.004709 16.550000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 33.399335 16.550000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 40.700000 23.400000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 41.004709 23.400000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 41.399335 23.400000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 50.700000 23.450000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 51.004709 23.450000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 51.399335 23.450000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 51.000000 7.000000 m 51.000000 7.000000 l 53.000000 7.000000 l 53.000000 14.513197 l s +[] 0 sd +0 slj +0 slc +n 53.000000 14.888197 m 52.750000 14.388197 l 53.000000 14.513197 l 53.250000 14.388197 l ef +n 53.000000 14.888197 m 52.750000 14.388197 l 53.000000 14.513197 l 53.250000 14.388197 l cp s +gsave 48.650000 9.550000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 48.954709 9.550000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 49.349335 9.550000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 30.550000 9.500000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 31.029549 9.500000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 38.550000 26.500000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 39.029549 26.500000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 30.500000 14.650000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 30.979549 14.650000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 30.400000 19.550000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 30.879549 19.550000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 21.600000 21.500000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 22.079549 21.500000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 9.250000 13.550000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 9.729549 13.550000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 9.400000 21.450000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 9.879549 21.450000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 40.950000 18.350000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 41.429549 18.350000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 21.550000 12.500000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 22.029549 12.500000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 51.150000 6.550000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 51.629549 6.550000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 51.150000 14.650000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 51.629549 14.650000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 44.300000 23.500000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 44.779549 23.500000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 32.818750 27.000000 m 36.093750 27.000000 l 36.545933 27.000000 36.912500 27.425329 36.912500 27.950000 c 36.912500 28.474671 36.545933 28.900000 36.093750 28.900000 c 32.818750 28.900000 l 32.366567 28.900000 32.000000 28.474671 32.000000 27.950000 c 32.000000 27.425329 32.366567 27.000000 32.818750 27.000000 c ef +0.000000 0.000000 0.000000 srgb +n 32.818750 27.000000 m 36.093750 27.000000 l 36.545933 27.000000 36.912500 27.425329 36.912500 27.950000 c 36.912500 28.474671 36.545933 28.900000 36.093750 28.900000 c 32.818750 28.900000 l 32.366567 28.900000 32.000000 28.474671 32.000000 27.950000 c 32.000000 27.425329 32.366567 27.000000 32.818750 27.000000 c s +gsave 32.968750 28.150000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 33.373364 28.150000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 33.753008 28.150000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 33.930337 28.150000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 34.180103 28.150000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 34.382410 28.150000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 34.787025 28.150000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 35.039288 28.150000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 35.286550 28.150000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 35.678679 28.150000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 51.660000 27.000000 m 54.300000 27.000000 l 54.664508 27.000000 54.960000 27.447715 54.960000 28.000000 c 54.960000 28.552285 54.664508 29.000000 54.300000 29.000000 c 51.660000 29.000000 l 51.295492 29.000000 51.000000 28.552285 51.000000 28.000000 c 51.000000 27.447715 51.295492 27.000000 51.660000 27.000000 c ef +0.000000 0.000000 0.000000 srgb +n 51.660000 27.000000 m 54.300000 27.000000 l 54.664508 27.000000 54.960000 27.447715 54.960000 28.000000 c 54.960000 28.552285 54.664508 29.000000 54.300000 29.000000 c 51.660000 29.000000 l 51.295492 29.000000 51.000000 28.552285 51.000000 28.000000 c 51.000000 27.447715 51.295492 27.000000 51.660000 27.000000 c s +gsave 51.810000 28.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 52.214614 28.200000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 52.594258 28.200000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 52.771587 28.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 53.021353 28.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 53.223660 28.200000 translate 0.035278 -0.035278 scale +start_ol +1890 3200 moveto +1375 3200 1071 2813 conicto +768 2426 768 1759 conicto +768 1094 1071 707 conicto +1375 320 1890 320 conicto +2406 320 2707 707 conicto +3008 1094 3008 1759 conicto +3008 2426 2707 2813 conicto +2406 3200 1890 3200 conicto +1890 3584 moveto +2632 3584 3076 3088 conicto +3520 2593 3520 1759 conicto +3520 927 3076 431 conicto +2632 -64 1890 -64 conicto +1146 -64 701 430 conicto +256 925 256 1759 conicto +256 2593 701 3088 conicto +1146 3584 1890 3584 conicto +end_ol grestore +gsave 53.728188 28.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 2032 lineto +2528 3520 lineto +3136 3520 lineto +1402 1879 lineto +3264 0 lineto +2641 0 lineto +960 1695 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 18.000000 13.000000 m 18.000000 14.900000 l 24.000000 14.900000 l 24.000000 13.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 18.000000 13.000000 m 18.000000 14.900000 l 24.000000 14.900000 l 24.000000 13.000000 l cp s +gsave 18.792500 14.145000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 19.199619 14.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 19.594245 14.145000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 19.844012 14.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 20.046319 14.145000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.333549 14.145000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 20.770641 14.145000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.960463 14.145000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 21.452497 14.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.654804 14.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 22.049430 14.145000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 22.301694 14.145000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 22.548955 14.145000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 22.941084 14.145000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 21.000000 12.000000 m 21.000000 12.513197 l s +[] 0 sd +0 slj +0 slc +n 21.000000 12.888197 m 20.750000 12.388197 l 21.000000 12.513197 l 21.250000 12.388197 l ef +n 21.000000 12.888197 m 20.750000 12.388197 l 21.000000 12.513197 l 21.250000 12.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 24.000000 10.000000 m 25.000000 10.000000 l 25.000000 16.000000 l 21.486765 15.956085 l s +[] 0 sd +0 slj +0 slc +n 21.111795 15.951397 m 21.614880 15.707666 l 21.486765 15.956085 l 21.608631 16.207627 l ef +n 21.111795 15.951397 m 21.614880 15.707666 l 21.486765 15.956085 l 21.608631 16.207627 l cp s +showpage diff --git a/doc/doxygen/images/udffsck_get-file.png b/doc/doxygen/images/udffsck_get-file.png new file mode 100644 index 00000000..ea59ea23 Binary files /dev/null and b/doc/doxygen/images/udffsck_get-file.png differ diff --git a/doc/doxygen/images/udffsck_inspect-fid.eps b/doc/doxygen/images/udffsck_inspect-fid.eps new file mode 100644 index 00000000..b3586c57 --- /dev/null +++ b/doc/doxygen/images/udffsck_inspect-fid.eps @@ -0,0 +1,5121 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/rain/Development/udf/udf-diploma/diploma/obrazky/inspect-fid.dia +%%Creator: Dia v0.97.3 +%%CreationDate: Thu May 11 23:44:15 2017 +%%For: rain +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 997 636 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /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 /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-9.888197 -22.050000 translate +%%EndProlog + + +1.000000 1.000000 1.000000 srgb +n 11.000000 2.000000 m 11.000000 4.000000 l 17.000000 4.000000 l 17.000000 2.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 11.000000 2.000000 m 11.000000 4.000000 l 17.000000 4.000000 l 17.000000 2.000000 l cp s +gsave 12.461250 3.195000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 12.878357 3.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.272983 3.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.665112 3.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 14.072232 3.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.274539 3.195000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 14.614214 3.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 15.041310 3.195000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 14.000000 9.000000 m 17.000000 11.000000 l 14.000000 13.000000 l 11.000000 11.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 14.000000 9.000000 m 17.000000 11.000000 l 14.000000 13.000000 l 11.000000 11.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 14.000000 14.000000 m 17.000000 16.000000 l 14.000000 18.000000 l 11.000000 16.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 14.000000 14.000000 m 17.000000 16.000000 l 14.000000 18.000000 l 11.000000 16.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 22.000000 4.000000 m 25.000000 6.000000 l 22.000000 8.000000 l 19.000000 6.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 22.000000 4.000000 m 25.000000 6.000000 l 22.000000 8.000000 l 19.000000 6.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 22.000000 9.000000 m 25.000000 11.000000 l 22.000000 13.000000 l 19.000000 11.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 22.000000 9.000000 m 25.000000 11.000000 l 22.000000 13.000000 l 19.000000 11.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 22.000000 14.000000 m 25.000000 16.000000 l 22.000000 18.000000 l 19.000000 16.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 22.000000 14.000000 m 25.000000 16.000000 l 22.000000 18.000000 l 19.000000 16.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 32.000000 1.000000 m 35.000000 3.000000 l 32.000000 5.000000 l 29.000000 3.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 32.000000 1.000000 m 35.000000 3.000000 l 32.000000 5.000000 l 29.000000 3.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 32.000000 6.000000 m 35.000000 8.000000 l 32.000000 10.000000 l 29.000000 8.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 32.000000 6.000000 m 35.000000 8.000000 l 32.000000 10.000000 l 29.000000 8.000000 l cp s +1.000000 1.000000 1.000000 srgb +n 41.000000 1.000000 m 44.000000 3.000000 l 41.000000 5.000000 l 38.000000 3.000000 l ef +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 41.000000 1.000000 m 44.000000 3.000000 l 41.000000 5.000000 l 38.000000 3.000000 l cp s +gsave 12.335000 10.813188 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 12.782080 10.813188 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 13.186694 10.813188 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.581320 10.813188 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 13.933488 10.813188 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 14.303136 10.813188 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 14.635321 10.813188 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 15.039935 10.813188 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 12.818750 11.613188 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 13.440661 11.613188 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.832790 11.613188 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 14.082557 11.613188 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 14.434726 11.613188 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 14.839340 11.613188 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +gsave 11.850000 16.200000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +3008 3520 lineto +3008 3136 lineto +1728 3136 lineto +1728 0 lineto +1216 0 lineto +1216 3136 lineto +-64 3136 lineto +-64 3520 lineto +end_ol grestore +gsave 12.189675 16.200000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 12.616771 16.200000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave 13.111302 16.200000 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 13.313609 16.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 13.503431 16.200000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 13.995465 16.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.197772 16.200000 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 14.734769 16.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.937076 16.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.304226 16.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.494048 16.200000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.986082 16.200000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 1.000000 m 19.000000 3.000000 l 25.000000 3.000000 l 25.000000 1.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 19.000000 1.000000 m 19.000000 3.000000 l 25.000000 3.000000 l 25.000000 1.000000 l cp s +gsave 19.750000 2.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 20.197080 2.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 20.589209 2.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 20.766537 2.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 21.118706 2.195000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 21.523320 2.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 21.700649 2.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 22.092778 2.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 22.342545 2.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 22.737171 2.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 22.939478 2.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 23.386557 2.195000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 23.798671 2.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 11.000000 5.000000 m 11.000000 8.000000 l 17.000000 8.000000 l 17.000000 5.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 11.000000 5.000000 m 11.000000 8.000000 l 17.000000 8.000000 l 17.000000 5.000000 l cp s +gsave 12.403750 6.295000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 12.850830 6.295000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.242959 6.295000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 13.420287 6.295000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 13.772456 6.295000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 14.177070 6.295000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 14.354399 6.295000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 14.746528 6.295000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 14.996295 6.295000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 15.390921 6.295000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.335000 7.095000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 12.782080 7.095000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 13.186694 7.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.581320 7.095000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 13.933488 7.095000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 14.303136 7.095000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 14.635321 7.095000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 15.039935 7.095000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 20.200000 6.100000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 20.647080 6.100000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 21.059193 6.100000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 21.506273 6.100000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.708580 6.100000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 22.330491 6.100000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 22.722620 6.100000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 22.972387 6.100000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 23.324556 6.100000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 23.729170 6.100000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 14.000000 4.000000 m 14.000000 4.464124 l s +[] 0 sd +0 slj +0 slc +n 14.000000 4.839124 m 13.750000 4.339124 l 14.000000 4.464124 l 14.250000 4.339124 l ef +n 14.000000 4.839124 m 13.750000 4.339124 l 14.000000 4.464124 l 14.250000 4.339124 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 14.000000 8.000000 m 14.000000 8.513197 l s +[] 0 sd +0 slj +0 slc +n 14.000000 8.888197 m 13.750000 8.388197 l 14.000000 8.513197 l 14.250000 8.388197 l ef +n 14.000000 8.888197 m 13.750000 8.388197 l 14.000000 8.513197 l 14.250000 8.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 14.000000 13.000000 m 14.000000 13.513197 l s +[] 0 sd +0 slj +0 slc +n 14.000000 13.888197 m 13.750000 13.388197 l 14.000000 13.513197 l 14.250000 13.388197 l ef +n 14.000000 13.888197 m 13.750000 13.388197 l 14.000000 13.513197 l 14.250000 13.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 22.000000 3.000000 m 22.000000 3.513197 l s +[] 0 sd +0 slj +0 slc +n 22.000000 3.888197 m 21.750000 3.388197 l 22.000000 3.513197 l 22.250000 3.388197 l ef +n 22.000000 3.888197 m 21.750000 3.388197 l 22.000000 3.513197 l 22.250000 3.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 14.000000 1.000000 m 14.000000 1.513197 l s +[] 0 sd +0 slj +0 slc +n 14.000000 1.888197 m 13.750000 1.388197 l 14.000000 1.513197 l 14.250000 1.388197 l ef +n 14.000000 1.888197 m 13.750000 1.388197 l 14.000000 1.513197 l 14.250000 1.388197 l cp s +gsave 20.600000 11.150000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 21.092034 11.150000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 21.486660 11.150000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 21.663989 11.150000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 22.058615 11.150000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 22.308382 11.150000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 22.703008 11.150000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 23.110127 11.150000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 14.000000 18.000000 m 14.000000 19.000000 l 18.000000 19.000000 l 18.000000 0.000000 l 22.000000 0.000000 l 22.000000 0.513197 l s +[] 0 sd +0 slj +0 slc +n 22.000000 0.888197 m 21.750000 0.388197 l 22.000000 0.513197 l 22.250000 0.388197 l ef +n 22.000000 0.888197 m 21.750000 0.388197 l 22.000000 0.513197 l 22.250000 0.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 22.000000 8.000000 m 22.000000 8.513197 l s +[] 0 sd +0 slj +0 slc +n 22.000000 8.888197 m 21.750000 8.388197 l 22.000000 8.513197 l 22.250000 8.388197 l ef +n 22.000000 8.888197 m 21.750000 8.388197 l 22.000000 8.513197 l 22.250000 8.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 22.000000 13.000000 m 22.000000 13.513197 l s +[] 0 sd +0 slj +0 slc +n 22.000000 13.888197 m 21.750000 13.388197 l 22.000000 13.513197 l 22.250000 13.388197 l ef +n 22.000000 13.888197 m 21.750000 13.388197 l 22.000000 13.513197 l 22.250000 13.388197 l cp s +gsave 20.350000 16.250000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 20.707163 16.250000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 21.099292 16.250000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 21.346553 16.250000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 21.741179 16.250000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 22.145793 16.250000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 22.395560 16.250000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 22.597867 16.250000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 22.965018 16.250000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 23.154840 16.250000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 23.646874 16.250000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 22.000000 18.000000 m 22.000000 19.000000 l 28.000000 19.000000 l 28.000000 0.000000 l 32.000000 0.000000 l 32.000000 0.513197 l s +[] 0 sd +0 slj +0 slc +n 32.000000 0.888197 m 31.750000 0.388197 l 32.000000 0.513197 l 32.250000 0.388197 l ef +n 32.000000 0.888197 m 31.750000 0.388197 l 32.000000 0.513197 l 32.250000 0.388197 l cp s +gsave 30.600000 3.200000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 31.007119 3.200000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 31.401745 3.200000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 31.579074 3.200000 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 31.803862 3.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 32.006169 3.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 32.373320 3.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 32.563142 3.200000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 33.055176 3.200000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +gsave 30.650000 8.200000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 31.067107 8.200000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 31.459236 8.200000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 31.851365 8.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 32.101132 8.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 32.303439 8.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 32.670590 8.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 32.860412 8.200000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 33.352446 8.200000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 29.000000 11.000000 m 29.000000 14.000000 l 35.000000 14.000000 l 35.000000 11.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 29.000000 11.000000 m 29.000000 14.000000 l 35.000000 14.000000 l 35.000000 11.000000 l cp s +gsave 31.153750 12.295000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 31.560869 12.295000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 31.810636 12.295000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 32.202765 12.295000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 32.450026 12.295000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 30.428750 13.095000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 30.895806 13.095000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 31.300420 13.095000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 31.477749 13.095000 translate 0.035278 -0.035278 scale +start_ol +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +2176 384 moveto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +2176 2688 lineto +2624 2688 lineto +2624 -1024 lineto +2176 -1024 lineto +2176 384 lineto +end_ol grestore +gsave 31.884868 13.095000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 32.289482 13.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 32.684108 13.095000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 32.886415 13.095000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 33.076237 13.095000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 32.000000 5.000000 m 32.000000 5.513197 l s +[] 0 sd +0 slj +0 slc +n 32.000000 5.888197 m 31.750000 5.388197 l 32.000000 5.513197 l 32.250000 5.388197 l ef +n 32.000000 5.888197 m 31.750000 5.388197 l 32.000000 5.513197 l 32.250000 5.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 32.000000 10.000000 m 32.000000 10.513197 l s +[] 0 sd +0 slj +0 slc +n 32.000000 10.888197 m 31.750000 10.388197 l 32.000000 10.513197 l 32.250000 10.388197 l ef +n 32.000000 10.888197 m 31.750000 10.388197 l 32.000000 10.513197 l 32.250000 10.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 32.000000 14.000000 m 32.000000 15.000000 l 37.000000 15.000000 l 37.000000 0.000000 l 41.000000 0.000000 l 41.000000 0.513197 l s +[] 0 sd +0 slj +0 slc +n 41.000000 0.888197 m 40.750000 0.388197 l 41.000000 0.513197 l 41.250000 0.388197 l ef +n 41.000000 0.888197 m 40.750000 0.388197 l 41.000000 0.513197 l 41.250000 0.388197 l cp s +gsave 39.428750 3.000000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 39.895806 3.000000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 40.300420 3.000000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 40.477749 3.000000 translate 0.035278 -0.035278 scale +start_ol +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +2176 384 moveto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +2176 2688 lineto +2624 2688 lineto +2624 -1024 lineto +2176 -1024 lineto +2176 384 lineto +end_ol grestore +gsave 40.884868 3.000000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 41.289482 3.000000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 41.684108 3.000000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 41.886415 3.000000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 42.076237 3.000000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 40.256250 3.800000 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 40.793247 3.800000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 40.995554 3.800000 translate 0.035278 -0.035278 scale +start_ol +1535 3200 moveto +1185 3200 1008 2840 conicto +832 2481 832 1759 conicto +832 1039 1008 679 conicto +1185 320 1535 320 conicto +1887 320 2063 679 conicto +2240 1039 2240 1759 conicto +2240 2481 2063 2840 conicto +1887 3200 1535 3200 conicto +1536 3584 moveto +2127 3584 2439 3116 conicto +2752 2649 2752 1759 conicto +2752 871 2439 403 conicto +2127 -64 1536 -64 conicto +944 -64 632 403 conicto +320 871 320 1759 conicto +320 2649 632 3116 conicto +944 3584 1536 3584 conicto +end_ol grestore +gsave 41.402673 3.800000 translate 0.035278 -0.035278 scale +start_ol +896 576 moveto +1408 576 lineto +1408 0 lineto +896 0 lineto +896 576 lineto +1408 896 moveto +896 896 lineto +896 1270 lineto +896 1515 971 1672 conicto +1046 1830 1287 2038 conicto +1493 2254 lineto +1617 2381 1672 2493 conicto +1728 2606 1728 2723 conicto +1728 2937 1572 3068 conicto +1417 3200 1161 3200 conicto +974 3200 762 3118 conicto +550 3036 320 2880 conicto +320 3328 lineto +546 3457 778 3520 conicto +1011 3584 1260 3584 conicto +1703 3584 1971 3352 conicto +2240 3121 2240 2742 conicto +2240 2561 2149 2397 conicto +2058 2234 1831 2029 conicto +1626 1820 lineto +1529 1706 1489 1641 conicto +1449 1577 1433 1517 conicto +1420 1466 1414 1393 conicto +1408 1320 1408 1194 conicto +1408 896 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 38.000000 6.000000 m 38.000000 9.000000 l 44.000000 9.000000 l 44.000000 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 38.000000 6.000000 m 38.000000 9.000000 l 44.000000 9.000000 l 44.000000 6.000000 l cp s +gsave 40.561250 7.295000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 40.880949 7.295000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 41.058278 7.295000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 39.428750 8.095000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 39.895806 8.095000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 40.300420 8.095000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 40.477749 8.095000 translate 0.035278 -0.035278 scale +start_ol +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +2176 384 moveto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +2176 2688 lineto +2624 2688 lineto +2624 -1024 lineto +2176 -1024 lineto +2176 384 lineto +end_ol grestore +gsave 40.884868 8.095000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 41.289482 8.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 41.684108 8.095000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 41.886415 8.095000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 42.076237 8.095000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 41.000000 5.000000 m 41.000000 5.513197 l s +[] 0 sd +0 slj +0 slc +n 41.000000 5.888197 m 40.750000 5.388197 l 41.000000 5.513197 l 41.250000 5.388197 l ef +n 41.000000 5.888197 m 40.750000 5.388197 l 41.000000 5.513197 l 41.250000 5.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 38.000000 11.000000 m 38.000000 13.000000 l 44.000000 13.000000 l 44.000000 11.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 38.000000 11.000000 m 38.000000 13.000000 l 44.000000 13.000000 l 44.000000 11.000000 l cp s +gsave 38.741250 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 39.098413 12.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 39.505532 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 39.985081 12.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 40.187388 12.195000 translate 0.035278 -0.035278 scale +start_ol +512 2176 moveto +3584 2176 lineto +3584 1792 lineto +512 1792 lineto +512 2176 lineto +512 1216 moveto +3584 1216 lineto +3584 832 lineto +512 832 lineto +512 1216 lineto +end_ol grestore +gsave 40.724385 12.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 40.926692 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 41.293843 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 41.483665 12.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 41.975699 12.195000 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 0 lineto +576 0 lineto +576 576 lineto +end_ol grestore +gsave 42.178006 12.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 42.367828 12.195000 translate 0.035278 -0.035278 scale +start_ol +3136 3264 moveto +3136 2752 lineto +2892 2977 2616 3088 conicto +2340 3200 2030 3200 conicto +1418 3200 1093 2829 conicto +768 2459 768 1759 conicto +768 1061 1093 690 conicto +1418 320 2030 320 conicto +2340 320 2616 431 conicto +2892 543 3136 768 conicto +3136 256 lineto +2882 96 2599 16 conicto +2316 -64 2000 -64 conicto +1189 -64 722 424 conicto +256 913 256 1759 conicto +256 2607 722 3095 conicto +1189 3584 2000 3584 conicto +2320 3584 2603 3504 conicto +2887 3424 3136 3264 conicto +end_ol grestore +gsave 42.814907 12.195000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 41.000000 9.000000 m 41.000000 10.513197 l s +[] 0 sd +0 slj +0 slc +n 41.000000 10.888197 m 40.750000 10.388197 l 41.000000 10.513197 l 41.250000 10.388197 l ef +n 41.000000 10.888197 m 40.750000 10.388197 l 41.000000 10.513197 l 41.250000 10.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 38.000000 14.000000 m 38.000000 16.000000 l 44.000000 16.000000 l 44.000000 14.000000 l f +0.100000 slw +[0.200000] 0 sd +[0.200000] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 38.000000 14.000000 m 38.000000 16.000000 l 44.000000 16.000000 l 44.000000 14.000000 l cp s +gsave 39.793750 15.195000 translate 0.035278 -0.035278 scale +start_ol +2816 504 moveto +2816 1472 lineto +2048 1472 lineto +2048 1856 lineto +3328 1856 lineto +3328 325 lineto +3052 133 2720 34 conicto +2388 -64 2011 -64 conicto +1187 -64 721 417 conicto +256 899 256 1759 conicto +256 2621 725 3102 conicto +1195 3584 2028 3584 conicto +2375 3584 2687 3503 conicto +3000 3422 3264 3264 conicto +3264 2752 lineto +2998 2975 2699 3087 conicto +2400 3200 2071 3200 conicto +1420 3200 1094 2838 conicto +768 2476 768 1759 conicto +768 1044 1084 682 conicto +1400 320 2030 320 conicto +2276 320 2469 365 conicto +2662 410 2816 504 conicto +end_ol grestore +gsave 40.288281 15.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 40.682907 15.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 40.932674 15.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 41.134981 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 41.454680 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 41.632009 15.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 41.809338 15.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 41.000000 13.000000 m 41.000000 13.513197 l s +[] 0 sd +0 slj +0 slc +n 41.000000 13.888197 m 40.750000 13.388197 l 41.000000 13.513197 l 41.250000 13.388197 l ef +n 41.000000 13.888197 m 40.750000 13.388197 l 41.000000 13.513197 l 41.250000 13.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 44.000000 3.000000 m 45.000000 3.000000 l 45.000000 10.000000 l 41.486803 10.000000 l s +[] 0 sd +0 slj +0 slc +n 41.111803 10.000000 m 41.611803 9.750000 l 41.486803 10.000000 l 41.611803 10.250000 l ef +n 41.111803 10.000000 m 41.611803 9.750000 l 41.486803 10.000000 l 41.611803 10.250000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 25.000000 6.000000 m 26.513197 6.000000 l s +[] 0 sd +0 slj +0 slc +n 26.888197 6.000000 m 26.388197 6.250000 l 26.513197 6.000000 l 26.388197 5.750000 l ef +n 26.888197 6.000000 m 26.388197 6.250000 l 26.513197 6.000000 l 26.388197 5.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 25.000000 11.000000 m 25.513197 11.000000 l s +[] 0 sd +0 slj +0 slc +n 25.888197 11.000000 m 25.388197 11.250000 l 25.513197 11.000000 l 25.388197 10.750000 l ef +n 25.888197 11.000000 m 25.388197 11.250000 l 25.513197 11.000000 l 25.388197 10.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 25.000000 16.000000 m 25.513197 16.000000 l s +[] 0 sd +0 slj +0 slc +n 25.888197 16.000000 m 25.388197 16.250000 l 25.513197 16.000000 l 25.388197 15.750000 l ef +n 25.888197 16.000000 m 25.388197 16.250000 l 25.513197 16.000000 l 25.388197 15.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 11.000000 11.000000 m 10.486803 11.000000 l s +[] 0 sd +0 slj +0 slc +n 10.111803 11.000000 m 10.611803 10.750000 l 10.486803 11.000000 l 10.611803 11.250000 l ef +n 10.111803 11.000000 m 10.611803 10.750000 l 10.486803 11.000000 l 10.611803 11.250000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 11.000000 16.000000 m 10.486803 16.000000 l s +[] 0 sd +0 slj +0 slc +n 10.111803 16.000000 m 10.611803 15.750000 l 10.486803 16.000000 l 10.611803 16.250000 l ef +n 10.111803 16.000000 m 10.611803 15.750000 l 10.486803 16.000000 l 10.611803 16.250000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 36.000000 3.000000 m 36.000000 17.513197 l s +[] 0 sd +0 slj +0 slc +n 36.000000 17.888197 m 35.750000 17.388197 l 36.000000 17.513197 l 36.250000 17.388197 l ef +n 36.000000 17.888197 m 35.750000 17.388197 l 36.000000 17.513197 l 36.250000 17.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 35.000000 3.000000 m 35.513197 3.000000 l s +[] 0 sd +0 slj +0 slc +n 35.888197 3.000000 m 35.388197 3.250000 l 35.513197 3.000000 l 35.388197 2.750000 l ef +n 35.888197 3.000000 m 35.388197 3.250000 l 35.513197 3.000000 l 35.388197 2.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 35.000000 8.000000 m 35.513197 8.000000 l s +[] 0 sd +0 slj +0 slc +n 35.888197 8.000000 m 35.388197 8.250000 l 35.513197 8.000000 l 35.388197 7.750000 l ef +n 35.888197 8.000000 m 35.388197 8.250000 l 35.513197 8.000000 l 35.388197 7.750000 l cp s +gsave 13.218750 0.222500 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 13.625869 0.222500 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 13.875636 0.222500 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 14.267765 0.222500 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 14.530017 0.222500 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 14.550000 13.500000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 14.854709 13.500000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 15.249335 13.500000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 14.625000 18.485000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 14.929709 18.485000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 15.324335 18.485000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 22.600000 8.525000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 22.904709 8.525000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 23.299335 8.525000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 24.575000 10.365000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 24.879709 10.365000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 25.274335 10.365000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 24.650000 15.355000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 24.954709 15.355000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 25.349335 15.355000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 34.875000 2.395000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 35.179709 2.395000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 35.574335 2.395000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 34.750000 7.335000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 35.054709 7.335000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 35.449335 7.335000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 41.725000 5.575000 translate 0.035278 -0.035278 scale +start_ol +-64 3520 moveto +466 3520 lineto +1476 2072 lineto +2479 3520 lineto +3008 3520 lineto +1728 1676 lineto +1728 0 lineto +1216 0 lineto +1216 1676 lineto +-64 3520 lineto +end_ol grestore +gsave 42.029709 5.575000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 42.424335 5.575000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 10.150000 10.365000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 10.629549 10.365000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 10.225000 15.435000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 10.704549 15.435000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 24.900000 5.375000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.379549 5.375000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 22.525000 13.715000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 23.004549 13.715000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 22.500000 18.555000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 22.979549 18.555000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 32.475000 5.695000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 32.954549 5.695000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 32.550000 10.635000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 33.029549 10.635000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 44.025000 2.575000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +1131 3520 lineto +2624 575 lineto +2624 3520 lineto +3136 3520 lineto +3136 0 lineto +2453 0 lineto +960 2945 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 44.504549 2.575000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 26.000000 11.000000 m 26.000000 11.000000 l 26.000000 18.000000 l 37.513197 18.000000 l s +[] 0 sd +0 slj +0 slc +n 37.888197 18.000000 m 37.388197 18.250000 l 37.513197 18.000000 l 37.388197 17.750000 l ef +n 37.888197 18.000000 m 37.388197 18.250000 l 37.513197 18.000000 l 37.388197 17.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 27.000000 6.000000 m 27.000000 20.513197 l s +[] 0 sd +0 slj +0 slc +n 27.000000 20.888197 m 26.750000 20.388197 l 27.000000 20.513197 l 27.250000 20.388197 l ef +n 27.000000 20.888197 m 26.750000 20.388197 l 27.000000 20.513197 l 27.250000 20.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 10.000000 11.000000 m 10.000000 11.000000 l 10.000000 21.000000 l 37.513197 21.000000 l s +[] 0 sd +0 slj +0 slc +n 37.888197 21.000000 m 37.388197 21.250000 l 37.513197 21.000000 l 37.388197 20.750000 l ef +n 37.888197 21.000000 m 37.388197 21.250000 l 37.513197 21.000000 l 37.388197 20.750000 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 39.000000 17.000000 m 43.000000 17.000000 l 43.552285 17.000000 44.000000 17.447715 44.000000 18.000000 c 44.000000 18.552285 43.552285 19.000000 43.000000 19.000000 c 39.000000 19.000000 l 38.447715 19.000000 38.000000 18.552285 38.000000 18.000000 c 38.000000 17.447715 38.447715 17.000000 39.000000 17.000000 c ef +0.000000 0.000000 0.000000 srgb +n 39.000000 17.000000 m 43.000000 17.000000 l 43.552285 17.000000 44.000000 17.447715 44.000000 18.000000 c 44.000000 18.552285 43.552285 19.000000 43.000000 19.000000 c 39.000000 19.000000 l 38.447715 19.000000 38.000000 18.552285 38.000000 18.000000 c 38.000000 17.447715 38.447715 17.000000 39.000000 17.000000 c s +gsave 39.830000 18.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 40.234614 18.200000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 40.614258 18.200000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 40.791587 18.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 41.041353 18.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 41.243660 18.200000 translate 0.035278 -0.035278 scale +start_ol +1890 3200 moveto +1375 3200 1071 2813 conicto +768 2426 768 1759 conicto +768 1094 1071 707 conicto +1375 320 1890 320 conicto +2406 320 2707 707 conicto +3008 1094 3008 1759 conicto +3008 2426 2707 2813 conicto +2406 3200 1890 3200 conicto +1890 3584 moveto +2632 3584 3076 3088 conicto +3520 2593 3520 1759 conicto +3520 927 3076 431 conicto +2632 -64 1890 -64 conicto +1146 -64 701 430 conicto +256 925 256 1759 conicto +256 2593 701 3088 conicto +1146 3584 1890 3584 conicto +end_ol grestore +gsave 41.748188 18.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 2032 lineto +2528 3520 lineto +3136 3520 lineto +1402 1879 lineto +3264 0 lineto +2641 0 lineto +960 1695 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +0 slj +0.100000 slw +0 slc +0 slj +[] 0 sd +1.000000 1.000000 1.000000 srgb +n 39.000000 20.000000 m 43.000000 20.000000 l 43.552285 20.000000 44.000000 20.447715 44.000000 21.000000 c 44.000000 21.552285 43.552285 22.000000 43.000000 22.000000 c 39.000000 22.000000 l 38.447715 22.000000 38.000000 21.552285 38.000000 21.000000 c 38.000000 20.447715 38.447715 20.000000 39.000000 20.000000 c ef +0.000000 0.000000 0.000000 srgb +n 39.000000 20.000000 m 43.000000 20.000000 l 43.552285 20.000000 44.000000 20.447715 44.000000 21.000000 c 44.000000 21.552285 43.552285 22.000000 43.000000 22.000000 c 39.000000 22.000000 l 38.447715 22.000000 38.000000 21.552285 38.000000 21.000000 c 38.000000 20.447715 38.447715 20.000000 39.000000 20.000000 c s +gsave 39.512500 21.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 39.917114 21.200000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 40.296758 21.200000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 40.474087 21.200000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 40.723853 21.200000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 40.926160 21.200000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2688 3520 lineto +2688 3136 lineto +960 3136 lineto +960 2112 lineto +2624 2112 lineto +2624 1728 lineto +960 1728 lineto +960 384 lineto +2752 384 lineto +2752 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 41.330775 21.200000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 41.583038 21.200000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 41.830300 21.200000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 42.222429 21.200000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +showpage diff --git a/doc/doxygen/images/udffsck_inspect-fid.png b/doc/doxygen/images/udffsck_inspect-fid.png new file mode 100644 index 00000000..7c48393d Binary files /dev/null and b/doc/doxygen/images/udffsck_inspect-fid.png differ diff --git a/doc/doxygen/images/udffsck_steps-korekce.eps b/doc/doxygen/images/udffsck_steps-korekce.eps new file mode 100644 index 00000000..e8df5a17 --- /dev/null +++ b/doc/doxygen/images/udffsck_steps-korekce.eps @@ -0,0 +1,4845 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/rain/Development/udf/udf-diploma/diploma/obrazky/steps-korekce.dia +%%Creator: Dia v0.97.3 +%%CreationDate: Sat May 6 17:03:38 2017 +%%For: rain +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 1139 475 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /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 /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-7.849662 -15.850000 translate +%%EndProlog + + +1.000000 1.000000 1.000000 srgb +n 9.000000 6.000000 m 9.000000 8.000000 l 17.000000 8.000000 l 17.000000 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 9.000000 6.000000 m 9.000000 8.000000 l 17.000000 8.000000 l 17.000000 6.000000 l cp s +gsave 9.967500 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 10.144829 7.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 10.536958 7.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 10.929087 7.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 11.336206 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.538513 7.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 12.038046 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.240354 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 12.592522 7.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 12.997136 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.391762 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 13.743931 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 14.113579 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.315886 7.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 14.713009 7.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 15.150100 7.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.642135 7.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 9.000000 m 19.000000 11.000000 l 27.000000 11.000000 l 27.000000 9.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 19.000000 9.000000 m 19.000000 11.000000 l 27.000000 11.000000 l 27.000000 9.000000 l cp s +gsave 20.120000 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 20.297329 10.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 20.689458 10.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 21.081587 10.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 21.488706 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.691013 10.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 22.190546 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 22.392854 10.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 22.745022 10.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 23.149636 10.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 23.544262 10.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 23.896431 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 24.266079 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.468386 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 24.755616 10.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 25.192707 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.382529 10.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 29.000000 3.000000 m 29.000000 5.000000 l 37.000000 5.000000 l 37.000000 3.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 29.000000 3.000000 m 29.000000 5.000000 l 37.000000 5.000000 l 37.000000 3.000000 l cp s +gsave 29.601250 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 29.778579 4.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 30.170708 4.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 30.562837 4.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 30.969956 4.195000 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 173 lineto +704 -576 lineto +384 -576 lineto +576 173 lineto +576 576 lineto +end_ol grestore +gsave 31.172263 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 31.374570 4.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 31.726739 4.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 32.131353 4.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 32.525979 4.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 32.878148 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 33.247795 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 33.450102 4.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 33.949636 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 34.151943 4.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +2624 0 lineto +2176 0 lineto +2176 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2871 lineto +512 3301 718 3506 conicto +924 3712 1351 3712 conicto +1792 3712 lineto +1792 3328 lineto +1376 3328 lineto +1142 3328 1051 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +2624 2688 lineto +2176 3712 moveto +2624 3712 lineto +2624 3136 lineto +2176 3136 lineto +2176 3712 lineto +end_ol grestore +gsave 34.554060 4.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 34.933704 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 35.136011 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 35.493174 4.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 35.900293 4.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 29.000000 6.000000 m 29.000000 9.000000 l 37.000000 9.000000 l 37.000000 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 29.000000 6.000000 m 29.000000 9.000000 l 37.000000 9.000000 l 37.000000 6.000000 l cp s +gsave 30.230000 7.295000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 30.407329 7.295000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 30.799458 7.295000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 31.191587 7.295000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 31.598706 7.295000 translate 0.035278 -0.035278 scale +start_ol +576 576 moveto +1088 576 lineto +1088 173 lineto +704 -576 lineto +384 -576 lineto +576 173 lineto +576 576 lineto +end_ol grestore +gsave 31.801013 7.295000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 32.003320 7.295000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 32.355489 7.295000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 32.760103 7.295000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 33.154729 7.295000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 33.506898 7.295000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 33.876545 7.295000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 34.078852 7.295000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 34.578386 7.295000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 34.780693 7.295000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +2624 0 lineto +2176 0 lineto +2176 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2871 lineto +512 3301 718 3506 conicto +924 3712 1351 3712 conicto +1792 3712 lineto +1792 3328 lineto +1376 3328 lineto +1142 3328 1051 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +2624 2688 lineto +2176 3712 moveto +2624 3712 lineto +2624 3136 lineto +2176 3136 lineto +2176 3712 lineto +end_ol grestore +gsave 35.182810 7.295000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 35.562454 7.295000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 31.720000 8.095000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 32.039699 8.095000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 32.217028 8.095000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 32.394357 8.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 32.788983 8.095000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 32.991290 8.095000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 33.241057 8.095000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 33.488318 8.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 33.882944 8.095000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 9.000000 3.100000 m 9.000000 5.000000 l 17.000000 5.000000 l 17.000000 3.100000 l f +0.000000 slw +[] 0 sd +[] 0 sd +0 slj +n 9.000000 3.100000 m 9.000000 5.000000 l 17.000000 5.000000 l 17.000000 3.100000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 11.980000 4.245000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 12.157329 4.245000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 12.489513 4.245000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.691820 4.245000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 13.158876 4.245000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 13.650910 4.245000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 5.000000 m 13.000000 5.464368 l s +[] 0 sd +0 slj +0 slc +n 13.000000 5.839368 m 12.750000 5.339368 l 13.000000 5.464368 l 13.250000 5.339368 l ef +n 13.000000 5.839368 m 12.750000 5.339368 l 13.000000 5.464368 l 13.250000 5.339368 l cp s +1.000000 1.000000 1.000000 srgb +n 9.000000 12.000000 m 9.000000 13.900000 l 17.050000 13.900000 l 17.050000 12.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 9.000000 12.000000 m 9.000000 13.900000 l 17.050000 13.900000 l 17.050000 12.000000 l cp s +gsave 10.078750 13.145000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 10.256079 13.145000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 10.648208 13.145000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 11.040337 13.145000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 11.447456 13.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.649763 13.145000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 12.066871 13.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 12.461497 13.145000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 12.793681 13.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.188307 13.145000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 13.450559 13.145000 translate 0.035278 -0.035278 scale +start_ol +128 2688 moveto +586 2688 lineto +1408 432 lineto +2230 2688 lineto +2688 2688 lineto +1702 0 lineto +1114 0 lineto +128 2688 lineto +end_ol grestore +gsave 13.830203 13.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 14.224829 13.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.427136 13.145000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 14.864227 13.145000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.356261 13.145000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 15.763381 13.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 9.000000 9.000000 m 9.000000 11.000000 l 17.000000 11.000000 l 17.000000 9.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 9.000000 9.000000 m 9.000000 11.000000 l 17.000000 11.000000 l 17.000000 9.000000 l cp s +gsave 10.106250 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 10.283579 10.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 10.675708 10.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 11.067837 10.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 11.474956 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.677263 10.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 12.051913 10.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 12.314165 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 12.491494 10.195000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 13.113405 10.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.505534 10.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 13.767786 10.195000 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 14.147430 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.349737 10.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 14.786828 10.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.278862 10.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 15.685982 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 6.000000 m 19.000000 8.000000 l 27.000000 8.000000 l 27.000000 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 19.000000 6.000000 m 19.000000 8.000000 l 27.000000 8.000000 l 27.000000 6.000000 l cp s +gsave 19.801250 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 20.153419 7.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 20.558033 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 20.952659 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 21.304827 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 21.674475 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.876782 7.195000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 22.293890 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 22.688516 7.195000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 23.020700 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 23.415326 7.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 23.677578 7.195000 translate 0.035278 -0.035278 scale +start_ol +128 2688 moveto +586 2688 lineto +1408 432 lineto +2230 2688 lineto +2688 2688 lineto +1702 0 lineto +1114 0 lineto +128 2688 lineto +end_ol grestore +gsave 24.057222 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 24.451848 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.654155 7.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 25.091246 7.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.583281 7.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 25.990400 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 3.000000 m 19.000000 5.000000 l 27.000000 5.000000 l 27.000000 3.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 19.000000 3.000000 m 19.000000 5.000000 l 27.000000 5.000000 l 27.000000 3.000000 l cp s +gsave 19.853750 4.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 20.205919 4.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 20.610533 4.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 21.005159 4.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 21.357327 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 21.726975 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.929282 4.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 22.303932 4.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 22.566184 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 22.743513 4.195000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 23.365424 4.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 23.757553 4.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 24.019805 4.195000 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 24.399449 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.601756 4.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 25.038847 4.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.530882 4.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 25.938001 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 12.000000 m 19.000000 14.000000 l 27.000000 14.000000 l 27.000000 12.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 19.000000 12.000000 m 19.000000 14.000000 l 27.000000 14.000000 l 27.000000 12.000000 l cp s +gsave 20.153750 13.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 20.331079 13.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 20.723208 13.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 21.115337 13.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 21.522456 13.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.724763 13.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 22.224296 13.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 22.426604 13.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 22.778772 13.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 23.183386 13.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 23.578012 13.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 23.930181 13.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 24.299829 13.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.502136 13.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 24.909255 13.195000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.348844 13.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 8.000000 m 13.000000 8.513197 l s +[] 0 sd +0 slj +0 slc +n 13.000000 8.888197 m 12.750000 8.388197 l 13.000000 8.513197 l 13.250000 8.388197 l ef +n 13.000000 8.888197 m 12.750000 8.388197 l 13.000000 8.513197 l 13.250000 8.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 11.000000 m 13.012834 11.513349 l s +[] 0 sd +0 slj +0 slc +n 13.022206 11.888232 m 12.759788 11.394636 l 13.012834 11.513349 l 13.259632 11.382140 l ef +n 13.022206 11.888232 m 12.759788 11.394636 l 13.012834 11.513349 l 13.259632 11.382140 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 23.000000 5.000000 m 23.000000 5.513197 l s +[] 0 sd +0 slj +0 slc +n 23.000000 5.888197 m 22.750000 5.388197 l 23.000000 5.513197 l 23.250000 5.388197 l ef +n 23.000000 5.888197 m 22.750000 5.388197 l 23.000000 5.513197 l 23.250000 5.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 23.000000 8.000000 m 23.000000 8.513197 l s +[] 0 sd +0 slj +0 slc +n 23.000000 8.888197 m 22.750000 8.388197 l 23.000000 8.513197 l 23.250000 8.388197 l ef +n 23.000000 8.888197 m 22.750000 8.388197 l 23.000000 8.513197 l 23.250000 8.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 23.000000 11.000000 m 23.000000 11.513197 l s +[] 0 sd +0 slj +0 slc +n 23.000000 11.888197 m 22.750000 11.388197 l 23.000000 11.513197 l 23.250000 11.388197 l ef +n 23.000000 11.888197 m 22.750000 11.388197 l 23.000000 11.513197 l 23.250000 11.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 33.000000 5.000000 m 33.000000 5.513197 l s +[] 0 sd +0 slj +0 slc +n 33.000000 5.888197 m 32.750000 5.388197 l 33.000000 5.513197 l 33.250000 5.388197 l ef +n 33.000000 5.888197 m 32.750000 5.388197 l 33.000000 5.513197 l 33.250000 5.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 13.025000 13.900000 m 13.025000 14.950000 l 18.012500 14.950000 l 18.012500 1.950000 l 23.000000 1.950000 l 23.000000 2.513197 l s +[] 0 sd +0 slj +0 slc +n 23.000000 2.888197 m 22.750000 2.388197 l 23.000000 2.513197 l 23.250000 2.388197 l ef +n 23.000000 2.888197 m 22.750000 2.388197 l 23.000000 2.513197 l 23.250000 2.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 23.000000 14.000000 m 23.000000 15.050000 l 28.000000 15.050000 l 28.000000 1.950000 l 33.000000 1.950000 l 33.000000 2.513197 l s +[] 0 sd +0 slj +0 slc +n 33.000000 2.888197 m 32.750000 2.388197 l 33.000000 2.513197 l 33.250000 2.388197 l ef +n 33.000000 2.888197 m 32.750000 2.388197 l 33.000000 2.513197 l 33.250000 2.388197 l cp s +1.000000 1.000000 1.000000 srgb +n 29.000000 10.000000 m 29.000000 13.500000 l 37.000000 13.500000 l 37.000000 10.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 29.000000 10.000000 m 29.000000 13.500000 l 37.000000 13.500000 l 37.000000 10.000000 l cp s +gsave 31.493750 11.145000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 31.845919 11.145000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 32.238048 11.145000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 32.859959 11.145000 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 33.267078 11.145000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 33.659207 11.145000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 33.906469 11.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 34.301095 11.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 29.755000 11.945000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 30.107169 11.945000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 30.499298 11.945000 translate 0.035278 -0.035278 scale +start_ol +448 1040 moveto +448 2688 lineto +896 2688 lineto +896 1057 lineto +896 689 1042 504 conicto +1188 320 1481 320 conicto +1832 320 2036 541 conicto +2240 763 2240 1145 conicto +2240 2688 lineto +2688 2688 lineto +2688 0 lineto +2240 0 lineto +2240 384 lineto +2081 157 1870 46 conicto +1660 -64 1382 -64 conicto +923 -64 685 217 conicto +448 499 448 1040 conicto +1554 2752 moveto +1554 2752 lineto +end_ol grestore +gsave 30.903912 11.945000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 31.308526 11.945000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 31.558293 11.945000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 31.952919 11.945000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 32.360038 11.945000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 32.562345 11.945000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 33.061878 11.945000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 33.264185 11.945000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 33.671305 11.945000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 34.065931 11.945000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 34.418099 11.945000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 34.595428 11.945000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 34.987557 11.945000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 35.234818 11.945000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 35.629445 11.945000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 36.036564 11.945000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 31.327500 12.745000 translate 0.035278 -0.035278 scale +start_ol +1792 3712 moveto +1792 3328 lineto +1369 3328 lineto +1139 3328 1049 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +1664 2688 lineto +1664 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2864 lineto +512 3307 718 3509 conicto +925 3712 1374 3712 conicto +1792 3712 lineto +end_ol grestore +gsave 31.552288 12.745000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 31.799550 12.745000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 32.194176 12.745000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 32.588802 12.745000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 32.791109 12.745000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 33.123293 12.745000 translate 0.035278 -0.035278 scale +start_ol +896 384 moveto +896 -1024 lineto +448 -1024 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1032 2531 1240 2641 conicto +1448 2752 1737 2752 conicto +2217 2752 2516 2364 conicto +2816 1976 2816 1344 conicto +2816 712 2516 324 conicto +2217 -64 1737 -64 conicto +1448 -64 1240 46 conicto +1032 157 896 384 conicto +2368 1344 moveto +2368 1823 2171 2095 conicto +1975 2368 1632 2368 conicto +1289 2368 1092 2095 conicto +896 1823 896 1344 conicto +896 865 1092 592 conicto +1289 320 1632 320 conicto +1975 320 2171 592 conicto +2368 865 2368 1344 conicto +end_ol grestore +gsave 33.530413 12.745000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 33.922542 12.745000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 34.274710 12.745000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 39.000000 3.000000 m 39.000000 5.000000 l 47.000000 5.000000 l 47.000000 3.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 39.000000 3.000000 m 39.000000 5.000000 l 47.000000 5.000000 l 47.000000 3.000000 l cp s +gsave 41.651250 4.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +2624 0 lineto +2176 0 lineto +2176 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2871 lineto +512 3301 718 3506 conicto +924 3712 1351 3712 conicto +1792 3712 lineto +1792 3328 lineto +1376 3328 lineto +1142 3328 1051 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +2624 2688 lineto +2176 3712 moveto +2624 3712 lineto +2624 3136 lineto +2176 3136 lineto +2176 3712 lineto +end_ol grestore +gsave 42.053367 4.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 42.433011 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 42.635318 4.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 43.032441 4.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 43.469533 4.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 43.961567 4.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 39.000000 6.000000 m 39.000000 8.000000 l 47.000000 8.000000 l 47.000000 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 39.000000 6.000000 m 39.000000 8.000000 l 47.000000 8.000000 l 47.000000 6.000000 l cp s +gsave 41.838750 7.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +2624 0 lineto +2176 0 lineto +2176 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2871 lineto +512 3301 718 3506 conicto +924 3712 1351 3712 conicto +1792 3712 lineto +1792 3328 lineto +1376 3328 lineto +1142 3328 1051 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +2624 2688 lineto +2176 3712 moveto +2624 3712 lineto +2624 3136 lineto +2176 3136 lineto +2176 3712 lineto +end_ol grestore +gsave 42.240867 7.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 42.620511 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 42.822818 7.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 43.259910 7.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 43.751944 7.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 39.000000 9.000000 m 39.000000 11.000000 l 47.000000 11.000000 l 47.000000 9.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 39.000000 9.000000 m 39.000000 11.000000 l 47.000000 11.000000 l 47.000000 9.000000 l cp s +gsave 41.803750 10.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +2624 0 lineto +2176 0 lineto +2176 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2871 lineto +512 3301 718 3506 conicto +924 3712 1351 3712 conicto +1792 3712 lineto +1792 3328 lineto +1376 3328 lineto +1142 3328 1051 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +2624 2688 lineto +2176 3712 moveto +2624 3712 lineto +2624 3136 lineto +2176 3136 lineto +2176 3712 lineto +end_ol grestore +gsave 42.205867 10.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 42.585511 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 42.787818 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 43.075048 10.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 43.512140 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 43.701962 10.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 39.000000 12.000000 m 39.000000 14.000000 l 47.000000 14.000000 l 47.000000 12.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 0.000000 0.000000 srgb +n 39.000000 12.000000 m 39.000000 14.000000 l 47.000000 14.000000 l 47.000000 12.000000 l cp s +gsave 41.837500 13.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +2624 0 lineto +2176 0 lineto +2176 2368 lineto +960 2368 lineto +960 0 lineto +512 0 lineto +512 2368 lineto +64 2368 lineto +64 2688 lineto +512 2688 lineto +512 2871 lineto +512 3301 718 3506 conicto +924 3712 1351 3712 conicto +1792 3712 lineto +1792 3328 lineto +1376 3328 lineto +1142 3328 1051 3237 conicto +960 3147 960 2912 conicto +960 2688 lineto +2624 2688 lineto +2176 3712 moveto +2624 3712 lineto +2624 3136 lineto +2176 3136 lineto +2176 3712 lineto +end_ol grestore +gsave 42.239617 13.195000 translate 0.035278 -0.035278 scale +start_ol +2624 2688 moveto +1666 1380 lineto +2688 0 lineto +2169 0 lineto +1389 1056 lineto +632 0 lineto +128 0 lineto +1134 1406 lineto +192 2688 lineto +705 2688 lineto +1408 1730 lineto +2111 2688 lineto +2624 2688 lineto +end_ol grestore +gsave 42.619261 13.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 42.821568 13.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 43.228687 13.195000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 43.668276 13.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 33.000000 13.500000 m 33.000000 14.550000 l 38.000000 14.550000 l 38.000000 1.950000 l 43.000000 1.950000 l 43.000000 2.513197 l s +[] 0 sd +0 slj +0 slc +n 43.000000 2.888197 m 42.750000 2.388197 l 43.000000 2.513197 l 43.250000 2.388197 l ef +n 43.000000 2.888197 m 42.750000 2.388197 l 43.000000 2.513197 l 43.250000 2.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 33.000000 9.000000 m 33.000000 9.513197 l s +[] 0 sd +0 slj +0 slc +n 33.000000 9.888197 m 32.750000 9.388197 l 33.000000 9.513197 l 33.250000 9.388197 l ef +n 33.000000 9.888197 m 32.750000 9.388197 l 33.000000 9.513197 l 33.250000 9.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 43.000000 5.000000 m 43.000000 5.464368 l s +[] 0 sd +0 slj +0 slc +n 43.000000 5.839368 m 42.750000 5.339368 l 43.000000 5.464368 l 43.250000 5.339368 l ef +n 43.000000 5.839368 m 42.750000 5.339368 l 43.000000 5.464368 l 43.250000 5.339368 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 43.000000 8.048828 m 43.000000 8.513197 l s +[] 0 sd +0 slj +0 slc +n 43.000000 8.888197 m 42.750000 8.388197 l 43.000000 8.513197 l 43.250000 8.388197 l ef +n 43.000000 8.888197 m 42.750000 8.388197 l 43.000000 8.513197 l 43.250000 8.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 43.000000 11.000000 m 43.000000 11.513197 l s +[] 0 sd +0 slj +0 slc +n 43.000000 11.888197 m 42.750000 11.388197 l 43.000000 11.513197 l 43.250000 11.388197 l ef +n 43.000000 11.888197 m 42.750000 11.388197 l 43.000000 11.513197 l 43.250000 11.388197 l cp s +0.100000 slw +[0.200000] 0 sd +[0.200000] 0 sd +0 slj +0 slc +1.000000 0.000000 0.000000 srgb +n 25.000000 3.000000 m 27.000000 -1.000000 36.000000 -2.000000 38.829072 5.544192 c s +[] 0 sd +0 slj +0 slc +n 38.960743 5.895315 m 38.551099 5.514931 l 38.829072 5.544192 l 39.019264 5.339370 l ef +n 38.960743 5.895315 m 38.551099 5.514931 l 38.829072 5.544192 l 39.019264 5.339370 l cp s +0.100000 slw +[0.200000] 0 sd +[0.200000] 0 sd +0 slj +0 slc +n 25.000000 6.000000 m 27.000000 -2.000000 37.000000 0.000000 38.846059 5.538178 c s +[] 0 sd +0 slj +0 slc +n 38.964645 5.893934 m 38.569360 5.498649 l 38.846059 5.538178 l 39.043702 5.340535 l ef +n 38.964645 5.893934 m 38.569360 5.498649 l 38.846059 5.538178 l 39.043702 5.340535 l cp s +0.100000 slw +[0.200000] 0 sd +[0.200000] 0 sd +0 slj +0 slc +n 27.000000 10.000000 m 30.000000 9.000000 36.000000 9.000000 38.538178 9.846059 c s +[] 0 sd +0 slj +0 slc +n 38.893934 9.964645 m 38.340535 10.043702 l 38.538178 9.846059 l 38.498649 9.569360 l ef +n 38.893934 9.964645 m 38.340535 10.043702 l 38.538178 9.846059 l 38.498649 9.569360 l cp s +0.100000 slw +[0.200000] 0 sd +[0.200000] 0 sd +0 slj +0 slc +n 27.000000 13.000000 m 31.000000 16.000000 35.000000 16.000000 38.610557 13.292082 c s +[] 0 sd +0 slj +0 slc +n 38.910557 13.067082 m 38.660557 13.567082 l 38.610557 13.292082 l 38.360557 13.167082 l ef +n 38.910557 13.067082 m 38.660557 13.567082 l 38.610557 13.292082 l 38.360557 13.167082 l cp s +0.100000 slw +[0.200000] 0 sd +[0.200000] 0 sd +0 slj +0 slc +n 17.000000 6.000000 m 17.000000 -3.000000 40.000000 -2.000000 40.904530 2.522650 c s +[] 0 sd +0 slj +0 slc +n 40.978074 2.890368 m 40.634870 2.449106 l 40.904530 2.522650 l 41.125161 2.351048 l ef +n 40.978074 2.890368 m 40.634870 2.449106 l 40.904530 2.522650 l 41.125161 2.351048 l cp s +0.000000 0.000000 0.000000 srgb +0.200000 slw +[1.000000] 0 sd +[1.000000] 0 sd +0 slj +0 slc +0.000000 0.000000 1.000000 srgb +n 8.000000 0.950000 m 37.300000 0.950000 l 37.300000 9.300000 l 28.350000 9.300000 l 28.300000 15.750000 l 7.950000 15.750000 l cp s +0.200000 slw +[1.000000] 0 sd +[1.000000] 0 sd +0 slj +0 slc +0.000000 0.792157 0.086275 srgb +n 47.900000 15.250000 m 47.800000 1.100000 l 28.550000 0.900000 l 28.650000 15.500000 l cp s +showpage diff --git a/doc/doxygen/images/udffsck_steps-korekce.png b/doc/doxygen/images/udffsck_steps-korekce.png new file mode 100644 index 00000000..db6b785b Binary files /dev/null and b/doc/doxygen/images/udffsck_steps-korekce.png differ diff --git a/doc/doxygen/images/udffsck_steps.eps b/doc/doxygen/images/udffsck_steps.eps new file mode 100644 index 00000000..36f9122e --- /dev/null +++ b/doc/doxygen/images/udffsck_steps.eps @@ -0,0 +1,3325 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: /home/rain/Development/udf/udf-diploma/diploma/obrazky/steps1b.dia +%%Creator: Dia v0.97.3 +%%CreationDate: Sat May 6 15:53:51 2017 +%%For: rain +%%Orientation: Portrait +%%Magnification: 1.0000 +%%BoundingBox: 0 0 797 375 +%%BeginSetup +%%EndSetup +%%EndComments +%%BeginProlog +[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one +/two /three /four /five /six /seven /eight /nine /colon /semicolon +/less /equal /greater /question /at /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 /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /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 /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright +/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior +/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf +/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde +/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex +/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring +/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave +/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def +/cp {closepath} bind def +/c {curveto} bind def +/f {fill} bind def +/a {arc} bind def +/ef {eofill} bind def +/ex {exch} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth pop} bind def +/tr {translate} bind def + +/ellipsedict 8 dict def +ellipsedict /mtrx matrix put +/ellipse +{ ellipsedict begin + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def /savematrix mtrx currentmatrix def + x y tr xrad yrad sc + 0 0 1 startangle endangle arc + savematrix setmatrix + end +} def + +/mergeprocs { +dup length +3 -1 roll +dup +length +dup +5 1 roll +3 -1 roll +add +array cvx +dup +3 -1 roll +0 exch +putinterval +dup +4 2 roll +putinterval +} bind def +/dpi_x 300 def +/dpi_y 300 def +/conicto { + /to_y exch def + /to_x exch def + /conic_cntrl_y exch def + /conic_cntrl_x exch def + currentpoint + /p0_y exch def + /p0_x exch def + /p1_x p0_x conic_cntrl_x p0_x sub 2 3 div mul add def + /p1_y p0_y conic_cntrl_y p0_y sub 2 3 div mul add def + /p2_x p1_x to_x p0_x sub 1 3 div mul add def + /p2_y p1_y to_y p0_y sub 1 3 div mul add def + p1_x p1_y p2_x p2_y to_x to_y curveto +} bind def +/start_ol { gsave 1.1 dpi_x div dup scale} bind def +/end_ol { closepath fill grestore } bind def +28.346000 -28.346000 scale +-8.950000 -15.100000 translate +%%EndProlog + + +1.000000 1.000000 1.000000 srgb +n 9.000000 6.000000 m 9.000000 8.000000 l 17.000000 8.000000 l 17.000000 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 0.000000 0.000000 srgb +n 9.000000 6.000000 m 9.000000 8.000000 l 17.000000 8.000000 l 17.000000 6.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 9.967500 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 10.144829 7.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 10.536958 7.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 10.929087 7.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 11.336206 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.538513 7.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 12.038046 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.240354 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 12.592522 7.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 12.997136 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.391762 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 13.743931 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 14.113579 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.315886 7.195000 translate 0.035278 -0.035278 scale +start_ol +1696 3047 moveto +1042 1280 lineto +2352 1280 lineto +1696 3047 lineto +1424 3520 moveto +1970 3520 lineto +3328 0 lineto +2827 0 lineto +2502 896 lineto +897 896 lineto +572 0 lineto +64 0 lineto +1424 3520 lineto +end_ol grestore +gsave 14.713009 7.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 15.150100 7.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.642135 7.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 9.000000 m 19.000000 11.000000 l 27.000000 11.000000 l 27.000000 9.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 0.000000 0.000000 srgb +n 19.000000 9.000000 m 19.000000 11.000000 l 27.000000 11.000000 l 27.000000 9.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 20.120000 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 20.297329 10.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 20.689458 10.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 21.081587 10.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 21.488706 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.691013 10.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 22.190546 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 22.392854 10.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 22.745022 10.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 23.149636 10.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 23.544262 10.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 23.896431 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 24.266079 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.468386 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 384 lineto +2688 384 lineto +2688 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 24.755616 10.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 25.192707 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.382529 10.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 29.000000 3.000000 m 29.000000 5.000000 l 37.000000 5.000000 l 37.000000 3.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 0.000000 0.000000 srgb +n 29.000000 3.000000 m 29.000000 5.000000 l 37.000000 5.000000 l 37.000000 3.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 30.195000 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 30.372329 4.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 30.764458 4.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 31.156587 4.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 31.563706 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 31.766013 4.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 32.265546 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 32.467854 4.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 32.820022 4.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 33.224636 4.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 33.619262 4.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 33.971431 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 34.341079 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 34.543386 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 34.900548 4.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 35.307668 4.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 28.993750 6.000000 m 28.993750 8.000000 l 37.006250 8.000000 l 37.006250 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 0.000000 0.000000 srgb +n 28.993750 6.000000 m 28.993750 8.000000 l 37.006250 8.000000 l 37.006250 6.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 29.543750 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 29.721079 7.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 30.113208 7.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 30.505337 7.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 30.912456 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 31.114763 7.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 31.614296 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 31.816604 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 32.168772 7.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 32.573386 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 32.968012 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 33.320181 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 33.689829 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 33.892136 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 34.211835 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 34.389164 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 34.566493 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 34.961119 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 35.163426 7.195000 translate 0.035278 -0.035278 scale +start_ol +896 3456 moveto +896 2688 lineto +1792 2688 lineto +1792 2368 lineto +896 2368 lineto +896 902 lineto +896 572 984 478 conicto +1073 384 1345 384 conicto +1792 384 lineto +1792 0 lineto +1345 0 lineto +836 0 642 194 conicto +448 389 448 902 conicto +448 2368 lineto +128 2368 lineto +128 2688 lineto +448 2688 lineto +448 3456 lineto +896 3456 lineto +end_ol grestore +gsave 35.413192 7.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 35.660454 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 36.055080 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 9.000000 3.100000 m 9.000000 5.000000 l 17.000000 5.000000 l 17.000000 3.100000 l f +0.000000 slw +[] 0 sd +[] 0 sd +0 slj +n 9.000000 3.100000 m 9.000000 5.000000 l 17.000000 5.000000 l 17.000000 3.100000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 11.980000 4.245000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 12.157329 4.245000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 12.489513 4.245000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 12.691820 4.245000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +960 3520 lineto +960 1383 lineto +960 817 1156 568 conicto +1353 320 1793 320 conicto +2231 320 2427 568 conicto +2624 817 2624 1383 conicto +2624 3520 lineto +3136 3520 lineto +3136 1324 lineto +3136 637 2796 286 conicto +2456 -64 1793 -64 conicto +1128 -64 788 286 conicto +448 637 448 1324 conicto +448 3520 lineto +end_ol grestore +gsave 13.158876 4.245000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 13.650910 4.245000 translate 0.035278 -0.035278 scale +start_ol +448 3520 moveto +2496 3520 lineto +2496 3136 lineto +960 3136 lineto +960 2112 lineto +2368 2112 lineto +2368 1728 lineto +960 1728 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 5.000000 m 13.000000 5.464368 l s +[] 0 sd +0 slj +0 slc +n 13.000000 5.839368 m 12.750000 5.339368 l 13.000000 5.464368 l 13.250000 5.339368 l ef +n 13.000000 5.839368 m 12.750000 5.339368 l 13.000000 5.464368 l 13.250000 5.339368 l cp s +1.000000 1.000000 1.000000 srgb +n 9.000000 12.000000 m 9.000000 13.900000 l 17.050000 13.900000 l 17.050000 12.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 0.647059 0.000000 srgb +n 9.000000 12.000000 m 9.000000 13.900000 l 17.050000 13.900000 l 17.050000 12.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 10.078750 13.145000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 10.256079 13.145000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 10.648208 13.145000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 11.040337 13.145000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 11.447456 13.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.649763 13.145000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 12.066871 13.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 12.461497 13.145000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 12.793681 13.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 13.188307 13.145000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 13.450559 13.145000 translate 0.035278 -0.035278 scale +start_ol +128 2688 moveto +586 2688 lineto +1408 432 lineto +2230 2688 lineto +2688 2688 lineto +1702 0 lineto +1114 0 lineto +128 2688 lineto +end_ol grestore +gsave 13.830203 13.145000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 14.224829 13.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.427136 13.145000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 14.864227 13.145000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.356261 13.145000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 15.763381 13.145000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 9.000000 9.000000 m 9.000000 11.000000 l 17.000000 11.000000 l 17.000000 9.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 0.647059 0.000000 srgb +n 9.000000 9.000000 m 9.000000 11.000000 l 17.000000 11.000000 l 17.000000 9.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 10.106250 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 10.283579 10.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 10.675708 10.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 11.067837 10.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 11.474956 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 11.677263 10.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 12.051913 10.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 12.314165 10.195000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 12.491494 10.195000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 13.113405 10.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 13.505534 10.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 13.767786 10.195000 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 14.147430 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 14.349737 10.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 14.786828 10.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 15.278862 10.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 15.685982 10.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 6.000000 m 19.000000 8.000000 l 27.000000 8.000000 l 27.000000 6.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 0.647059 0.000000 srgb +n 19.000000 6.000000 m 19.000000 8.000000 l 27.000000 8.000000 l 27.000000 6.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 19.801250 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 20.153419 7.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 20.558033 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 20.952659 7.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 21.304827 7.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 21.674475 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.876782 7.195000 translate 0.035278 -0.035278 scale +start_ol +2140 1632 moveto +2295 1581 2442 1413 conicto +2590 1245 2738 952 conicto +3200 0 lineto +2709 0 lineto +2250 893 lineto +2077 1243 1915 1357 conicto +1753 1472 1473 1472 conicto +960 1472 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +1552 3520 lineto +2157 3520 2454 3265 conicto +2752 3010 2752 2496 conicto +2752 2161 2595 1939 conicto +2439 1718 2140 1632 conicto +960 3136 moveto +960 1856 lineto +1552 1856 lineto +1893 1856 2066 2019 conicto +2240 2182 2240 2498 conicto +2240 2815 2066 2975 conicto +1893 3136 1552 3136 conicto +960 3136 lineto +end_ol grestore +gsave 22.293890 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 22.688516 7.195000 translate 0.035278 -0.035278 scale +start_ol +2112 2560 moveto +2112 2176 lineto +1932 2272 1738 2320 conicto +1544 2368 1336 2368 conicto +1020 2368 862 2269 conicto +704 2170 704 1972 conicto +704 1821 814 1735 conicto +925 1649 1260 1571 conicto +1403 1538 lineto +1857 1438 2048 1255 conicto +2240 1072 2240 744 conicto +2240 371 1954 153 conicto +1668 -64 1167 -64 conicto +958 -64 732 -16 conicto +506 32 256 128 conicto +256 576 lineto +491 448 719 384 conicto +947 320 1170 320 conicto +1470 320 1631 425 conicto +1792 531 1792 722 conicto +1792 900 1678 994 conicto +1564 1089 1177 1177 conicto +1032 1212 lineto +621 1298 438 1476 conicto +256 1654 256 1964 conicto +256 2341 520 2546 conicto +784 2752 1269 2752 conicto +1509 2752 1721 2704 conicto +1933 2656 2112 2560 conicto +end_ol grestore +gsave 23.020700 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 23.415326 7.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 23.677578 7.195000 translate 0.035278 -0.035278 scale +start_ol +128 2688 moveto +586 2688 lineto +1408 432 lineto +2230 2688 lineto +2688 2688 lineto +1702 0 lineto +1114 0 lineto +128 2688 lineto +end_ol grestore +gsave 24.057222 7.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 24.451848 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.654155 7.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 25.091246 7.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.583281 7.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 25.990400 7.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 3.000000 m 19.000000 5.000000 l 27.000000 5.000000 l 27.000000 3.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +1.000000 0.647059 0.000000 srgb +n 19.000000 3.000000 m 19.000000 5.000000 l 27.000000 5.000000 l 27.000000 3.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 19.853750 4.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 20.205919 4.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 20.610533 4.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 21.005159 4.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 21.357327 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 21.726975 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.929282 4.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 1792 lineto +1552 1792 lineto +1881 1792 2060 1967 conicto +2240 2142 2240 2465 conicto +2240 2786 2060 2961 conicto +1881 3136 1552 3136 conicto +960 3136 lineto +448 3520 moveto +1552 3520 lineto +2145 3520 2448 3251 conicto +2752 2983 2752 2465 conicto +2752 1943 2448 1675 conicto +2145 1408 1552 1408 conicto +960 1408 lineto +960 0 lineto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 22.303932 4.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 22.566184 4.195000 translate 0.035278 -0.035278 scale +start_ol +448 2688 moveto +896 2688 lineto +896 0 lineto +448 0 lineto +448 2688 lineto +448 3712 moveto +896 3712 lineto +896 3136 lineto +448 3136 lineto +448 3712 lineto +end_ol grestore +gsave 22.743513 4.195000 translate 0.035278 -0.035278 scale +start_ol +2549 2204 moveto +2714 2485 2942 2618 conicto +3171 2752 3482 2752 conicto +3899 2752 4125 2464 conicto +4352 2177 4352 1646 conicto +4352 0 lineto +3904 0 lineto +3904 1632 lineto +3904 2006 3769 2187 conicto +3634 2368 3356 2368 conicto +3017 2368 2820 2146 conicto +2624 1925 2624 1542 conicto +2624 0 lineto +2176 0 lineto +2176 1632 lineto +2176 2008 2041 2188 conicto +1906 2368 1624 2368 conicto +1289 2368 1092 2145 conicto +896 1922 896 1542 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1046 2534 1255 2643 conicto +1465 2752 1753 2752 conicto +2044 2752 2247 2611 conicto +2451 2471 2549 2204 conicto +end_ol grestore +gsave 23.365424 4.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 23.757553 4.195000 translate 0.035278 -0.035278 scale +start_ol +1984 2304 moveto +1912 2337 1828 2352 conicto +1744 2368 1642 2368 conicto +1282 2368 1089 2127 conicto +896 1887 896 1437 conicto +896 0 lineto +448 0 lineto +448 2688 lineto +896 2688 lineto +896 2304 lineto +1030 2531 1245 2641 conicto +1460 2752 1767 2752 conicto +1811 2752 1864 2752 conicto +1917 2752 1982 2752 conicto +1984 2304 lineto +end_ol grestore +gsave 24.019805 4.195000 translate 0.035278 -0.035278 scale +start_ol +1542 -238 moveto +1360 -726 1187 -875 conicto +1015 -1024 726 -1024 conicto +384 -1024 lineto +384 -640 lineto +636 -640 lineto +813 -640 910 -555 conicto +1008 -470 1127 -155 conicto +1204 46 lineto +128 2688 lineto +603 2688 lineto +1418 586 lineto +2234 2688 lineto +2688 2688 lineto +1542 -238 lineto +end_ol grestore +gsave 24.399449 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.601756 4.195000 translate 0.035278 -0.035278 scale +start_ol +1424 0 moveto +64 3520 lineto +567 3520 lineto +1696 556 lineto +2827 3520 lineto +3328 3520 lineto +1970 0 lineto +1424 0 lineto +end_ol grestore +gsave 25.038847 4.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.530882 4.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 25.938001 4.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +1.000000 1.000000 1.000000 srgb +n 19.000000 12.000000 m 19.000000 14.000000 l 27.000000 14.000000 l 27.000000 12.000000 l f +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0.000000 1.000000 0.000000 srgb +n 19.000000 12.000000 m 19.000000 14.000000 l 27.000000 14.000000 l 27.000000 12.000000 l cp s +0.000000 0.000000 0.000000 srgb +gsave 20.153750 13.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 20.331079 13.195000 translate 0.035278 -0.035278 scale +start_ol +1473 2368 moveto +1117 2368 910 2094 conicto +704 1820 704 1344 conicto +704 868 909 594 conicto +1115 320 1473 320 conicto +1827 320 2033 595 conicto +2240 870 2240 1344 conicto +2240 1816 2033 2092 conicto +1827 2368 1473 2368 conicto +1472 2752 moveto +2040 2752 2364 2378 conicto +2688 2005 2688 1344 conicto +2688 685 2364 310 conicto +2040 -64 1472 -64 conicto +902 -64 579 310 conicto +256 685 256 1344 conicto +256 2005 579 2378 conicto +902 2752 1472 2752 conicto +end_ol grestore +gsave 20.723208 13.195000 translate 0.035278 -0.035278 scale +start_ol +1622 1344 moveto +1104 1344 904 1225 conicto +704 1106 704 818 conicto +704 589 854 454 conicto +1004 320 1262 320 conicto +1618 320 1833 572 conicto +2048 825 2048 1244 conicto +2048 1344 lineto +1622 1344 lineto +2496 1513 moveto +2496 0 lineto +2048 0 lineto +2048 384 lineto +1900 154 1679 45 conicto +1458 -64 1138 -64 conicto +733 -64 494 162 conicto +256 389 256 769 conicto +256 1213 555 1438 conicto +854 1664 1448 1664 conicto +2048 1664 lineto +2048 1712 lineto +2048 2025 1851 2196 conicto +1655 2368 1300 2368 conicto +1074 2368 860 2320 conicto +646 2272 448 2176 conicto +448 2560 lineto +687 2656 912 2704 conicto +1138 2752 1351 2752 conicto +1927 2752 2211 2444 conicto +2496 2137 2496 1513 conicto +end_ol grestore +gsave 21.115337 13.195000 translate 0.035278 -0.035278 scale +start_ol +2176 2304 moveto +2176 3712 lineto +2624 3712 lineto +2624 0 lineto +2176 0 lineto +2176 384 lineto +2040 157 1832 46 conicto +1624 -64 1332 -64 conicto +855 -64 555 324 conicto +256 712 256 1344 conicto +256 1976 555 2364 conicto +855 2752 1332 2752 conicto +1624 2752 1832 2641 conicto +2040 2531 2176 2304 conicto +704 1344 moveto +704 865 900 592 conicto +1096 320 1439 320 conicto +1782 320 1979 592 conicto +2176 865 2176 1344 conicto +2176 1823 1979 2095 conicto +1782 2368 1439 2368 conicto +1096 2368 900 2095 conicto +704 1823 704 1344 conicto +end_ol grestore +gsave 21.522456 13.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 21.724763 13.195000 translate 0.035278 -0.035278 scale +start_ol +1109 1924 moveto +900 1730 802 1537 conicto +704 1345 704 1134 conicto +704 784 950 552 conicto +1197 320 1569 320 conicto +1789 320 1982 395 conicto +2175 471 2345 624 conicto +1109 1924 lineto +1438 2171 moveto +2630 948 lineto +2771 1161 2850 1404 conicto +2930 1647 2944 1920 conicto +3392 1920 lineto +3363 1604 3238 1295 conicto +3113 986 2889 684 conicto +3584 0 lineto +2963 0 lineto +2610 354 lineto +2368 143 2102 39 conicto +1836 -64 1531 -64 conicto +969 -64 612 261 conicto +256 587 256 1096 conicto +256 1400 411 1666 conicto +566 1933 876 2167 conicto +760 2314 700 2460 conicto +640 2606 640 2746 conicto +640 3124 899 3354 conicto +1159 3584 1589 3584 conicto +1783 3584 1976 3536 conicto +2169 3488 2368 3392 conicto +2368 2944 lineto +2165 3069 1981 3134 conicto +1797 3200 1638 3200 conicto +1393 3200 1240 3072 conicto +1088 2944 1088 2742 conicto +1088 2624 1157 2505 conicto +1226 2387 1438 2171 conicto +end_ol grestore +gsave 22.224296 13.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 22.426604 13.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 22.778772 13.195000 translate 0.035278 -0.035278 scale +start_ol +2688 1646 moveto +2688 0 lineto +2240 0 lineto +2240 1632 lineto +2240 2001 2093 2184 conicto +1947 2368 1654 2368 conicto +1302 2368 1099 2146 conicto +896 1925 896 1542 conicto +896 0 lineto +448 0 lineto +448 3712 lineto +896 3712 lineto +896 2304 lineto +1053 2529 1266 2640 conicto +1479 2752 1757 2752 conicto +2217 2752 2452 2471 conicto +2688 2191 2688 1646 conicto +end_ol grestore +gsave 23.183386 13.195000 translate 0.035278 -0.035278 scale +start_ol +2752 1480 moveto +2752 1280 lineto +704 1280 lineto +733 811 978 565 conicto +1223 320 1660 320 conicto +1914 320 2152 384 conicto +2390 448 2624 576 conicto +2624 192 lineto +2388 67 2140 1 conicto +1893 -64 1639 -64 conicto +1001 -64 628 309 conicto +256 683 256 1320 conicto +256 1979 613 2365 conicto +970 2752 1576 2752 conicto +2120 2752 2436 2410 conicto +2752 2068 2752 1480 conicto +2304 1600 moveto +2299 1950 2099 2159 conicto +1900 2368 1572 2368 conicto +1200 2368 976 2166 conicto +753 1964 719 1597 conicto +2304 1600 lineto +end_ol grestore +gsave 23.578012 13.195000 translate 0.035278 -0.035278 scale +start_ol +2368 2560 moveto +2368 2176 lineto +2180 2272 1991 2320 conicto +1803 2368 1611 2368 conicto +1180 2368 942 2099 conicto +704 1830 704 1344 conicto +704 858 942 589 conicto +1180 320 1611 320 conicto +1803 320 1991 368 conicto +2180 416 2368 512 conicto +2368 128 lineto +2184 32 1987 -16 conicto +1791 -64 1569 -64 conicto +966 -64 611 316 conicto +256 697 256 1344 conicto +256 2000 615 2376 conicto +974 2752 1598 2752 conicto +1801 2752 1994 2704 conicto +2187 2656 2368 2560 conicto +end_ol grestore +gsave 23.930181 13.195000 translate 0.035278 -0.035278 scale +start_ol +448 3712 moveto +896 3712 lineto +896 1529 lineto +2196 2688 lineto +2752 2688 lineto +1346 1430 lineto +2816 0 lineto +2246 0 lineto +896 1313 lineto +896 0 lineto +448 0 lineto +448 3712 lineto +end_ol grestore +gsave 24.299829 13.195000 translate 0.035278 -0.035278 scale +start_ol +end_ol grestore +gsave 24.502136 13.195000 translate 0.035278 -0.035278 scale +start_ol +2624 3392 moveto +2624 2944 lineto +2352 3073 2111 3136 conicto +1870 3200 1645 3200 conicto +1255 3200 1043 3052 conicto +832 2904 832 2631 conicto +832 2402 969 2285 conicto +1107 2169 1491 2097 conicto +1773 2039 lineto +2308 1937 2562 1678 conicto +2816 1420 2816 986 conicto +2816 469 2468 202 conicto +2121 -64 1450 -64 conicto +1197 -64 911 0 conicto +626 65 320 192 conicto +320 704 lineto +613 513 893 416 conicto +1174 320 1445 320 conicto +1857 320 2080 485 conicto +2304 650 2304 955 conicto +2304 1221 2148 1371 conicto +1992 1522 1636 1597 conicto +1352 1652 lineto +807 1756 563 1978 conicto +320 2201 320 2597 conicto +320 3056 654 3320 conicto +989 3584 1576 3584 conicto +1828 3584 2089 3536 conicto +2351 3488 2624 3392 conicto +end_ol grestore +gsave 24.909255 13.195000 translate 0.035278 -0.035278 scale +start_ol +960 1728 moveto +960 384 lineto +1696 384 lineto +2071 384 2251 550 conicto +2432 716 2432 1057 conicto +2432 1401 2251 1564 conicto +2071 1728 1696 1728 conicto +960 1728 lineto +960 3136 moveto +960 2112 lineto +1639 2112 lineto +1975 2112 2139 2238 conicto +2304 2365 2304 2624 conicto +2304 2881 2139 3008 conicto +1975 3136 1639 3136 conicto +960 3136 lineto +448 3520 moveto +1673 3520 lineto +2222 3520 2519 3300 conicto +2816 3080 2816 2674 conicto +2816 2360 2658 2174 conicto +2500 1989 2193 1943 conicto +2549 1866 2746 1621 conicto +2944 1376 2944 1009 conicto +2944 526 2625 263 conicto +2306 0 1718 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +gsave 25.348844 13.195000 translate 0.035278 -0.035278 scale +start_ol +960 3136 moveto +960 384 lineto +1536 384 lineto +2266 384 2605 716 conicto +2944 1048 2944 1764 conicto +2944 2475 2605 2805 conicto +2266 3136 1536 3136 conicto +960 3136 lineto +448 3520 moveto +1463 3520 lineto +2493 3520 2974 3094 conicto +3456 2669 3456 1764 conicto +3456 853 2972 426 conicto +2488 0 1463 0 conicto +448 0 lineto +448 3520 lineto +end_ol grestore +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 8.000000 m 13.000000 8.513197 l s +[] 0 sd +0 slj +0 slc +n 13.000000 8.888197 m 12.750000 8.388197 l 13.000000 8.513197 l 13.250000 8.388197 l ef +n 13.000000 8.888197 m 12.750000 8.388197 l 13.000000 8.513197 l 13.250000 8.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 13.000000 11.000000 m 13.012834 11.513349 l s +[] 0 sd +0 slj +0 slc +n 13.022206 11.888232 m 12.759788 11.394636 l 13.012834 11.513349 l 13.259632 11.382140 l ef +n 13.022206 11.888232 m 12.759788 11.394636 l 13.012834 11.513349 l 13.259632 11.382140 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 23.000000 5.000000 m 23.000000 5.513197 l s +[] 0 sd +0 slj +0 slc +n 23.000000 5.888197 m 22.750000 5.388197 l 23.000000 5.513197 l 23.250000 5.388197 l ef +n 23.000000 5.888197 m 22.750000 5.388197 l 23.000000 5.513197 l 23.250000 5.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 23.000000 8.000000 m 23.000000 8.513197 l s +[] 0 sd +0 slj +0 slc +n 23.000000 8.888197 m 22.750000 8.388197 l 23.000000 8.513197 l 23.250000 8.388197 l ef +n 23.000000 8.888197 m 22.750000 8.388197 l 23.000000 8.513197 l 23.250000 8.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 23.000000 11.000000 m 23.000000 11.513197 l s +[] 0 sd +0 slj +0 slc +n 23.000000 11.888197 m 22.750000 11.388197 l 23.000000 11.513197 l 23.250000 11.388197 l ef +n 23.000000 11.888197 m 22.750000 11.388197 l 23.000000 11.513197 l 23.250000 11.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slc +n 33.000000 5.000000 m 33.000000 5.513197 l s +[] 0 sd +0 slj +0 slc +n 33.000000 5.888197 m 32.750000 5.388197 l 33.000000 5.513197 l 33.250000 5.388197 l ef +n 33.000000 5.888197 m 32.750000 5.388197 l 33.000000 5.513197 l 33.250000 5.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 13.025000 13.900000 m 13.025000 14.950000 l 18.012500 14.950000 l 18.012500 1.950000 l 23.000000 1.950000 l 23.000000 2.513197 l s +[] 0 sd +0 slj +0 slc +n 23.000000 2.888197 m 22.750000 2.388197 l 23.000000 2.513197 l 23.250000 2.388197 l ef +n 23.000000 2.888197 m 22.750000 2.388197 l 23.000000 2.513197 l 23.250000 2.388197 l cp s +0.100000 slw +[] 0 sd +[] 0 sd +0 slj +0 slc +n 23.000000 14.000000 m 23.000000 15.050000 l 28.000000 15.050000 l 28.000000 1.950000 l 33.000000 1.950000 l 33.000000 2.513197 l s +[] 0 sd +0 slj +0 slc +n 33.000000 2.888197 m 32.750000 2.388197 l 33.000000 2.513197 l 33.250000 2.388197 l ef +n 33.000000 2.888197 m 32.750000 2.388197 l 33.000000 2.513197 l 33.250000 2.388197 l cp s +showpage diff --git a/doc/doxygen/images/udffsck_steps.png b/doc/doxygen/images/udffsck_steps.png new file mode 100644 index 00000000..bc547a27 Binary files /dev/null and b/doc/doxygen/images/udffsck_steps.png differ diff --git a/doc/doxygen/udffsck.txt b/doc/doxygen/udffsck.txt new file mode 100644 index 00000000..d45fa20f --- /dev/null +++ b/doc/doxygen/udffsck.txt @@ -0,0 +1,101 @@ + +/** +\page udffsck-doc udffsck documentation +\tableofcontents +Author: **Vojtech Vladyka** <> + +Developer documentation for **udffsck** tool. + +\section purpose Purpose +Purpose of this tool is check and correction of UDF filesystem metadata. UDF standard doesn't cover data integrity itself, it is covered by used medium (most usually ECC blocks). + +In case of found errors on filesystem, this tool can try to fix them. Fixing process is irreversible and writes changes back to checked medium. You should always back up your data before. + +\section limitations Limitations +There are several limits for this tool. + - it can work with UDF up to version 2.01 + - it can't fix WORM devices (obviously) + - it ignores errors against specification errata if those are just recomendations (for example LVID size) + +\section usage Usage + +\subsection SYNOPSIS Synopsis + udffsck [-vvvciph] [-B BLOCKSIZE] medium + +\subsection OPTIONS Options +-B BLOCKSIZE -- Force udffsck to use this blocksize instead of autodetection. This value is in bytes. Default is autodetected value by finding VRS and AVDP positions. + +-c -- Only check medium and print found errors. This is default behavior. + +-i -- Interactively fix medium. In this mode all corrections must be authorized by user. + +-p -- Automatical corrections. This is like -i, but all questions are answered yes. + +-h -- Short help message. + +-v -- Warning verbosity level. Errors and warning will be printed. + +-vv -- Message verbosity level. Errors, warnings and messages will be printed. Recomended for manual usage. + +-vvv -- Debug Verbosity level. Only for development and debug purposes. And for nosy users. + +\subsection RETURN Return codes +The exit code returned by udffsck is the sum of the following conditions: + - 0 -- No errors + - 1 -- File system errors corrected + - 2 -- File system errors corrected, system should be rebooted (not used at this moment) + - 4 -- File system errors left uncorrected + - 8 -- Operational error + - 16 -- Usage or syntax error + - 32 -- udffsck canceled by user request + - 128 -- Shared library error (not used at this moment) + +\subsection EXAMPLES Examples +Check medium and show it structure to user: +\code{.sh} +udffsck -vvc /dev/sda2 +\endcode + +Check and fix medium image automatically, show only errors: +\code{.sh} +udffsck -p udf_image_file.img +\endcode + +\section structure Tool design +Tool is designed as single pass sequence with recursive file tree parsing. Following picture shows overall structure of tool after successfull UDF recognition. Red boxes are critical for function, orange boxes can fail but it depends on failure type how critical it is, green boxes can fail more or less without consequences. +\image html udffsck_steps.png "Overall algorithm steps" +All descriptors are checked for Checksum match, CRC match and position match. Critical descriptors (AVDP and VDS) are redundant as next layer of security. If any check fails, descriptor is marked as wrong and if there is his redundant correct copy, it can be fixed. Otherwise it is unrecoverable error. +\image html udffsck_det-ch.png "UDF protection mechanisms on metadata" +Found errors are stored and passed to correction functions as is shown on following picture by red dotted arrows. Blue dashed area is error detection part and it stops after File tree step if tool is run in Check only mode. Green dashed area is correction part. FSD and File tree are in both, because it was no use to split them. +\image html udffsck_steps-korekce.png "Error triggers flow" + +\subsection avdp AVDP detection algorithm +AVDP detection algorithm is core function to read UDF. There 4 possible positions (sector #256, #512, last sector and last sector - 256) and there can be single AVDP or up to 3 of them. It is critical to find at least one correct to continue. +\image html udffsck_avdp.png "AVDP detection algorithm" + +\subsection files File Tree +File tree detection is recursive algorithm consisting from two parts. First part is function get_file(), which loads (Extended) File Entry (FE, EFE) and process it. If FE is directory, it continues to inspect its File Identifier Descriptor (FID) with inspect_fid(). Both algorithms are at following pictures. There is third function between them, which is not captured on pictures named translate_fid(). It linearizes FID area between actual positions. + +File tree checks for errors in modification timestamps (must be older than LVID one), Unique ID match, declared and actual file size match and Checksum, CRC and position. It also builds map of used blocks and space. If is found error in declared space, file is considered as unfinished write and during correction will be deleted (FID will be set as deleted and FE will be zeroed). It can actually happen even for directory FE and then is lost whole sub-tree. +\image html udffsck_get-file.png "get_file() function workflow" +\image html udffsck_inspect-fid.png "inspect_fid() function workflow" + +\section changelog Changelog + - 1.00-beta [2017-05-14] -- first beta release + +\section reporting Bug reporting +Almost every software have bugs and this one is not different. If you find some bug or weird behavior, please report it to with as much information as possible. This means complete log at maximum verbosity and if possible, binary copy of medium, which made it fail. + +Logs are obtainable in this way: +\code{.sh} +udffsck -vvv -c /path/to/medium > output.log 2>&1 +\endcode +It produce file output.log with stdout and stderr. +If you want to provide medium image, you can do it with dd. +\code{.sh} +touch medium.img +dd if=/path/to/medium of=medium.img bs=512 +\endcode +\n +Last change: 2017-05-14 +*/ diff --git a/doc/fsck.udf.8 b/doc/fsck.udf.8 new file mode 100644 index 00000000..b165f416 --- /dev/null +++ b/doc/fsck.udf.8 @@ -0,0 +1 @@ +.so udffsck.8 diff --git a/doc/udffsck.8 b/doc/udffsck.8 new file mode 100644 index 00000000..1cbaec36 --- /dev/null +++ b/doc/udffsck.8 @@ -0,0 +1,161 @@ +.\" Copyright 2017 Vojtech Vladyka +.\" +.\" This is free documentation; you can redistribute it and/or +.\" modify it under the terms of the GNU General Public License as +.\" published by the Free Software Foundation; either version 2 of +.\" the License, or (at your option) any later version. +.\" +.\" The GNU General Public License's references to "object code" +.\" and "executables" are to be interpreted as the output of any +.\" document formatting or typesetting system, including +.\" intermediate and printed output. +.\" +.\" This manual is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public +.\" License along with this manual; if not, write to the Free +.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, +.\" USA. +.\" +.\" References consulted: +.\" udftools src +.\" +.TH UDFFSCK 8 "udftools" "System Management Commands" +.SH NAME +udffsck \- check and correction for UDF filesystem +.SH SYNOPSIS +.B udffsck +[\fB\-vvvcipCh\fR] +[\fB\-b\fR \fIBLOCKSIZE\fR] +.IR medium +.SH DESCRIPTION +.B udffsck +is used to check and correct UDF file systems. +There are known limitations regarding UDF version, which is now limited to 2.01 or older. +.PP +.I medium +is the device file where file system is stored (e.g. +.IR /dev/sda1 ). +.PP +Please note it is not safe run +.B udffsck +on mounted file system. +Even if you think it is safe to run it on mounted file system, whole report is invalid. +You should never never make any changes on mounted file system, so if +.B udffsck +asks to do so, only valid answer is ,,no'', otherwise you can break your filesystem instead. +.PP +.SH OPTIONS +.TP +.BR \-b " " \fIBLOCKSIZE\fR +Force udffsck to use this blocksize instead of autodetection. +This value is in bytes. +Default is autodetected value by finding VRS and AVDP positions. +.TP +.BR \-c +Only check medium and print found errors. +This is default behavior. +.TP +.BR \-C +Coloring output with ASCII color code. +.TP +.BR \-i +Interactively fix medium. +In this mode all corrections must be authorized by user. +.TP +.BR \-p +Automatical corrections. This is like +.BR -i , +but all questions are answered yes. +.TP +.BR \-h +Short help message. +.TP +.BR \-v +Warning verbosity level. +Errors and warning will be printed. +.TP +.BR \-vv +Message verbosity level. +Errors, warnings and messages will be printed. +Recomended for manual usage. +.TP +.BR \-vvv +Debug Verbosity level. +Only for development and debug purposes. +And for nosy users. +.SH EXIT CODE +The exit code returned by +.B udffsck +is the sum of the following conditions: +.br +\ 0\ \-\ No errors +.br +\ 1\ \-\ File system errors corrected +.br +\ 2\ \-\ File system errors corrected, system should +.br +\ \ \ \ be rebooted (not used at this moment) +.br +\ 4\ \-\ File system errors left uncorrected +.br +\ 8\ \-\ Operational error +.br +\ 16\ \-\ Usage or syntax error +.br +\ 32\ \-\ udffsck canceled by user request +.br +\ 128\ \-\ Shared library error (not used at this moment) +.br +.SH EXAMPLES +Check medium and show it structure to user: +.PP +.nf +.RS +udffsck -vvc /dev/sda2 +.RE +.fi +.PP +Check and fix medium image automatically, show only errors: +.PP +.nf +.RS +udffsck -p udf_image_file.img +.RE +.fi +.PP +.SH BUGS +Reading and correcting is supported on UDF filesystems up to version 2.01. +More recent filesystems are not currently covered and +.B udffsck +will end with exit code 8. +.SH REPORTING BUGS +Almost any piece of software will have bugs. +If you manage to find a filesystem which causes +.B udffsck +to crash, or which +.B udffsck +is unable to repair, please report it to the author. +.PP +Please include as much information as possible in bug report. +It helps to analyze bug and hopefuly fix it. +.PP +Necessary information in bug report are +.B udffsck +version (obtainable by -h option) and OS information (uname -a). +Also if possible attach compressed medium image which made +.B udffsck +fail and complete log from stdout and stderr at debug verbosity (obtainable by -vvv option). +.SH AUTHOR +This version of +.B udffsck +was written by Vojtech Vladyka +.SH "SEE ALSO" +.BR cdrwtool (1), +.BR fsck (8), +.BR mkudfs (8), +.BR pktsetup (8), +.BR wrudf (8) diff --git a/udffsck/.gitignore b/udffsck/.gitignore new file mode 100644 index 00000000..9daeafb9 --- /dev/null +++ b/udffsck/.gitignore @@ -0,0 +1 @@ +test diff --git a/udffsck/Makefile.am b/udffsck/Makefile.am index 728d99e1..04695935 100644 --- a/udffsck/Makefile.am +++ b/udffsck/Makefile.am @@ -1,4 +1,42 @@ -noinst_PROGRAMS = udffsck -udffsck_SOURCES = main.c +if WORDS_LITTLEENDIAN +sbin_PROGRAMS = udffsck +udffsck_LDADD = $(top_builddir)/libudffs/libudffs.la +#dffsck_SOURCES = main.c utils.c utils.h udffsck.c udffsck.h options.c options.h log.c log.h ../include/ecma_167.h ../include/osta_udf.h ../mkudffs/mkudffs.h ../mkudffs/defaults.h ../mkudffs/file.h ../libudffs/crc.c ../include/libudffs.h ../include/udf_endian.h +udffsck_SOURCES = main.c utils.c utils.h udffsck.c udffsck.h options.c options.h log.c log.h ../include/ecma_167.h ../include/osta_udf.h ../libudffs/crc.c ../include/libudffs.h ../include/udf_endian.h -AM_CPPFLAGS = -I$(top_srcdir)/include +AM_CFLAGS = -I$(top_srcdir)/include +AM_LDFLAGS = -lm -ldl +#-Wl,--no-as-needed + +if TESTS +test_SOURCES = test.c +test_LDFLAGS = -lcmocka -lm +test_CFLAGS = -DBASIC_TESTS +noinst_PROGRAMS = test + +testextra1_SOURCES = test.c +testextra1_LDFLAGS = -lcmocka -lm +testextra1_CFLAGS = -DEXTRA_TESTS=1 +noinst_PROGRAMS += testextra1 + +testextra2_SOURCES = test.c +testextra2_LDFLAGS = -lcmocka -lm +testextra2_CFLAGS = -DEXTRA_TESTS=2 +noinst_PROGRAMS += testextra2 + +testextra3_SOURCES = test.c +testextra3_LDFLAGS = -lcmocka -lm +testextra3_CFLAGS = -DEXTRA_TESTS=3 +noinst_PROGRAMS += testextra3 + +unittest_LDADD = $(top_builddir)/libudffs/libudffs.la +unittest_SOURCES = unit-test.c utils.c utils.h udffsck.c udffsck.h options.c options.h log.c log.h ../include/ecma_167.h ../include/osta_udf.h ../mkudffs/mkudffs.h ../mkudffs/defaults.h ../mkudffs/file.h ../libudffs/crc.c ../include/libudffs.h ../include/udf_endian.h +unittest_LDFLAGS = -lcmocka -lm -I$(top_srcdir)/include +#unittest_CFLAGS = +noinst_PROGRAMS += unittest +endif + +if DEBUG +AM_CFLAGS += -fsanitize=address -DDEBUG +endif +endif diff --git a/udffsck/compare-x86-x86_64.sh b/udffsck/compare-x86-x86_64.sh new file mode 100755 index 00000000..9305e872 --- /dev/null +++ b/udffsck/compare-x86-x86_64.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +rm trace1a.log trace1b.log +rm trace1a.err trace1b.err +#!/usr/bin/env bash + +unpack= + +while getopts ":n" opt; do + case $opt in + n) unpack="1" ;; + ?) exit ;; + esac +done + +if [ ! -z "$unpack" ]; then + cd ../../udffsck-test-samples + tar -xJvf udf-samples.tar.xz udf-samples/bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity.img + cp udf-samples/bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity.img udf-samples/bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity-a.img + mv udf-samples/bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity.img udf-samples/bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity-b.img + cd ../udftools +else + cd .. +fi + +make clean +make CFLAGS="" +cd udffsck +./udffsck -vvvp ../../udffsck-test-samples/udf-samples/bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity-b.img > >(tee -a trace1b.log) 2> >(tee -a trace1b.err >&2) +#cd ../../udffsck-test-samples +#./decompress-samples.sh +#tar -xJvf udf-samples.tar.xz udf-samples/bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity.img +#cd ../udftools +cd .. +make clean +make CFLAGS="-m32" +cd udffsck +./udffsck -vvvp ../../udffsck-test-samples/udf-samples/bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity-a.img > >(tee -a trace1a.log) 2> >(tee -a trace1a.err >&2) +meld trace1a.log trace1b.log +meld trace1a.err trace1b.err diff --git a/udffsck/log.c b/udffsck/log.c new file mode 100644 index 00000000..fad45123 --- /dev/null +++ b/udffsck/log.c @@ -0,0 +1,300 @@ +/* + * Copyright (C) 2017 Vojtech Vladyka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include +#include +#include + +#include "log.h" +#include "options.h" + +#define ANSI_COLOR_RED "\x1b[31m" +#define ANSI_COLOR_GREEN "\x1b[32m" +#define ANSI_COLOR_YELLOW "\x1b[33m" +#define ANSI_COLOR_BLUE "\x1b[34m" +#define ANSI_COLOR_MAGENTA "\x1b[35m" +#define ANSI_COLOR_CYAN "\x1b[36m" +#define ANSI_COLOR_RESET "\x1b[0m" + +#define EOL "" + +typedef enum { + show = 0, + message, + important, + warning, + error, + faterr, + debug +} message_type; + +verbosity_e verbosity; + +/** + * \brief Simple prompt printing out message and accepting y/Y/n/N. Anything else restarts prompt. + * + * \param[in] *format formatting string with params for vprintf() + * + * \return 0 if n/N + * \return 1 if y/Y + * \return -1 if CRLF + * \return -128 prompt failed + */ +int prompt(const char *format, ...) { + va_list args; + int b = 0,c = 0; + char again = 0; + + do { + again = 0; + va_start(args, format); + + vprintf(format, args); + + va_end(args); + + c = getchar(); + while ((b = getchar()) != EOF && b != '\n'); + + if(c == 'y' || c == 'Y') { + return 1; + } else if(c == 'n' || c == 'N') { + return 0; + } else if(c == '\n') { + return -1; + } else { + again = 1; + } + } while(again); + + return -128; +} + +/** + * \brief Internall logger function producing printing to stdout + * + * \param[in] type mesage types are debug, message, important, warning, error, faterr + * \param[in] *color color ASCII formating string + * \param[in] *format message to print + * \param[in] arg aguments to message + */ +void logger(message_type type, char *color, const char *format, va_list arg) { + char *prefix; + FILE *stream; + verbosity_e verblvl; + + switch(type) { + case debug: + prefix = "DBG"; + stream = stdout; + verblvl = DBG; + break; + case message: + prefix = 0; + stream = stdout; + verblvl = MSG; + break; + case important: + prefix = 0; + stream = stdout; + verblvl = WARN; + break; + case warning: + prefix = "WARN"; + stream = stdout; + verblvl = WARN; + break; + case error: + prefix = "ERROR"; + stream = stderr; + verblvl = NONE; + break; + case faterr: + prefix = "FATAL"; + stream = stderr; + verblvl = NONE; + break; + default: + prefix = 0; + stream = stdout; + verblvl = DBG; + break; + } + + if(verbosity >= verblvl) { + if(color == NULL || colored == 0) + color = ""; + if(prefix != NULL) + fprintf(stream, "%s[%s] ", color, prefix); + else + fprintf(stream, "%s", color); + vfprintf (stream, format, arg); + if(colored == 1) + fprintf(stream, ANSI_COLOR_RESET EOL); + } +} + +/** + * \brief Debug output + * + * Prefix: **[DBG]**\n + * Color: **default**\n + * Output: **stdout**\n + * + * \param[in] *format string to print + */ +void dbg(const char *format, ...) { + va_list arg; + va_start (arg, format); + logger(debug, "", format, arg); + va_end (arg); +} + +/** + * \brief Debug warning output + * + * Prefix: **[DBG]**\n + * Color: **yellow**\n + * Output: **stdout**\n + * + * \param[in] *format string to print + */ +void dwarn(const char *format, ...) { + va_list arg; + va_start (arg, format); + logger(debug, ANSI_COLOR_YELLOW, format, arg); + va_end (arg); +} + +/** + * \brief Note output + * + * Prefix: ---\n + * Color: **default**\n + * Output: **stdout**\n + * + * \param[in] *format string to print + */ +void note(const char *format, ...) { + va_list arg; + va_start (arg, format); + logger(show, "", format, arg); + va_end (arg); +} + +/** + * \brief Message output + * + * Prefix: ---\n + * Color: **default**\n + * Output: **stdout**\n + * + * \param[in] *format string to print + */ +void msg(const char *format, ...) { + va_list arg; + va_start (arg, format); + logger(message, "", format, arg); + va_end (arg); +} + +/** + * \brief Important message output + * + * Prefix: ---\n + * Color: **Green**\n + * Output: **stdout**\n + * + * \param[in] *format string to print + */ +void imp(const char *format, ...) { + va_list arg; + va_start (arg, format); + logger(important, ANSI_COLOR_GREEN, format, arg); + va_end (arg); +} + +/** + * \brief Warning output + * + * Prefix: **[WARN]**\n + * Color: **Yellow**\n + * Output: **stdout**\n + * + * \param[in] *format string to print + */ +void warn(const char *format, ...) { + va_list arg; + va_start (arg, format); + logger(warning, ANSI_COLOR_YELLOW, format, arg); + va_end (arg); +} + +/** + * \brief Error output + * + * Prefix: **[ERR]**\n + * Color: **Red**\n + * Output: **stderr**\n + * + * \param[in] *format string to print + */ +void err(const char *format, ...) { + va_list arg; + va_start (arg, format); + logger(error, ANSI_COLOR_RED, format, arg); + va_end (arg); +} + +/** + * \brief Fatal Error output + * + * Prefix: **[FATAL]**\n + * Color: **Red** + * Output: **stderr** + * + * \param[in] *format string to print + */ +void fatal(const char *format, ...) { + va_list arg; + va_start (arg, format); + logger(faterr, ANSI_COLOR_RED, format, arg); + va_end (arg); +} + +/** + * \brief Verbosity level to string + * + * \return constant char array + */ +char * verbosity_level_str(verbosity_e lvl) { + switch(lvl) { + case NONE: + return "NONE"; + case WARN: + return "WARNING"; + case MSG: + return "MESSAGE"; + case DBG: + return "DEBUG"; + default: + return "UNKNOWN"; + } +} diff --git a/udffsck/log.h b/udffsck/log.h new file mode 100644 index 00000000..a1dd7edc --- /dev/null +++ b/udffsck/log.h @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2017 Vojtech Vladyka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __LOG_G__ +#define __LOG_G__ + +#include "config.h" + +#include +#include + +#include +#include +#include +#include +#include + +#include "udffsck.h" + +typedef enum { + NONE=0, + WARN, + MSG, + DBG +} verbosity_e; + +extern verbosity_e verbosity; + +void dbg(const char *format, ...); +void dwarn(const char *format, ...); +void note(const char *format, ...); +void msg(const char *format, ...); +void imp(const char *format, ...); +void warn(const char *format, ...); +void err(const char *format, ...); +void fatal(const char *format, ...); + +char * verbosity_level_str(verbosity_e lvl); + + +#endif //__LOG_H__ diff --git a/udffsck/main.c b/udffsck/main.c index 28d7ca37..c91129f4 100644 --- a/udffsck/main.c +++ b/udffsck/main.c @@ -1,8 +1,5 @@ /* - * main.c - * - * Copyright (c) 2001-2002 Ben Fennema - * All rights reserved. + * Copyright (C) 2017 Vojtech Vladyka * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -14,13 +11,703 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#define _POSIX_C_SOURCE 200808L +#define _DEFAULT_SOURCE + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "utils.h" +#include "options.h" +#include "udffsck.h" + + +#define PRINT_DISC + +#define MAX_VERSION 0x0201 + +/** + * \brief User interrupt hander (Ctrl + C or SIGINT) + * + * After calling this, program exits with code 32 (User interrupt). + */ +void user_interrupt(int dummy) { + (void)dummy; + warn("\nUser interrupted operation. Exiting.\n"); + exit(32); +} + +/** + * \brief Segmentation fault handler + * + * If program dies because of SEGV, this handler catches it and die properly. + * It instructs user to report it, because this behavior is bug. + */ +void segv_interrupt(int dummy) { + (void)dummy; + fatal("Unexpected error (SEGV), please report it. More info at man page. Exiting.\n"); + exit(8); +} + +/** + * \brief Bus error handler + * + * If program dies because of SIGBUS, this handler catches it and die properly. + * It instructs user to report it, because this behavior is bug. + */ +void sigbus_interrupt(int dummy) { + (void)dummy; + fatal("Medium changed its size during fsck run. Is somebody manipulating with it? Exiting.\n"); + exit(8); +} + +/** + * \brief Return non-zero when error found in any generic descriptor (e.g. not in filetree) + * + * \param[in] seq Error sequence structure * + * \return 0 all descriptors are Ok */ +int any_error(vds_sequence_t *seq) { + int status = 0; + + status |= seq->anchor[0].error; + status |= seq->anchor[1].error; + if(seq->anchor[2].error != 255) + status |= seq->anchor[2].error; + status |= seq->lvid.error; + status |= seq->pd.error; + + for(int i=0; imain[MAIN_VDS].error; + status |= seq->main[RESERVE_VDS].error; + } + + return status; +} + +#define ES_AVDP1 0x0001 +#define ES_AVDP2 0x0002 +#define ES_PD 0x0004 +#define ES_LVID 0x0008 + +/** + * \brief **udffsck** entry point + * + * This is entry point for **udffsck**. It contains structure of whole tool and calls + * function from udffsck.c + * + * It accepts inputs via argv. + * + * \return 0 -- No error + * \return 1 -- Filesystem errors were fixed + * \return 2 -- Filesystem errors were fixed, reboot is recomended (Unsupported) + * \return 4 -- Filesystem errors remained unfixed + * \return 8 -- Program error + * \return 16 -- Wrong input parameters + * \return 32 -- Check was interrupted by user request + * \return 128 -- Shared library error (Unsupported) + */ +int main(int argc, char *argv[]) { + char *path = NULL; + int fd; + FILE *fp; + int status = 0; + int blocksize = -1; + struct udf_disc disc; + memset(&disc, 0, sizeof(struct udf_disc)); + struct stat stat; + uint8_t **dev; + off_t st_size; + vds_sequence_t *seq; + struct filesystemStats stats; + memset(&stats, 0, sizeof(struct filesystemStats)); + uint16_t error_status = 0; + uint16_t fix_status = 0; + int force_sectorsize = 0; + int third_avdp_missing = 0; + struct sigaction new_action; + int source = -1; + + sigemptyset (&new_action.sa_mask); + new_action.sa_flags = 0; + + new_action.sa_handler = user_interrupt; + sigaction (SIGINT, &new_action, NULL); + + new_action.sa_handler = sigbus_interrupt; + sigaction (SIGBUS, &new_action, NULL); + +#ifndef DEBUG //if debugging, we want Address Sanitizer to catch those + new_action.sa_handler = segv_interrupt; + sigaction (SIGSEGV, &new_action, NULL); +#endif + + parse_args(argc, argv, &path, &blocksize); +#ifdef MEMTRACE + dbg("Path: %p\n", path); +#endif + + note("Verbose: %d, Autofix: %d, Interactive: %d\n", verbosity, autofix, interactive); + if(fast_mode) + warn("Fast mode active. File tree checks will be skipped if rest of filesystem will be clean.\n"); + + if(path == NULL) { + err("No medium given. Use -h for help.\n"); + exit(16); + } + + if(blocksize > 0) { + force_sectorsize = 1; + } + + msg("Medium to analyze: %s\n", path); + + /* TODO remove. Replaced by check during opening + //Check if medium is mounted or not + FILE* mtab = setmntent("/proc/mounts", "r"); + struct mntent* m; + struct mntent mnt; + char strings[4096]; + while ((m = getmntent_r(mtab, &mnt, strings, sizeof(strings)))) { + dbg("%s\n", mnt.mnt_fsname); + if(strcmp(mnt.mnt_fsname, path) == 0) { //Match + err("Medium is mounted, therefore cannot be checked. Exiting.\n"); + exit(16); + } + } + + endmntent(mtab); + */ + + int flags = O_RDONLY; + // If is there some request for corrections, we need read/write access to medium + if(interactive || autofix) { + flags = O_RDWR; + dbg("RW\n"); + } + + if((fd = open(path, flags, 0660)) == -1) { + fatal("Error opening %s: %s.", path, strerror(errno)); + exit(16); + } else { + int fd2; + int flags2; + char filename2[64]; + const char *error; + + if (fstat(fd, &stat) != 0) { + fatal("Cannot stat device '%s': %s\n", path, strerror(errno)); + exit(16); + } + + flags2 = flags; + if (snprintf(filename2, sizeof(filename2), "/proc/self/fd/%d", fd) >= (int)sizeof(filename2)) + { + fatal("Cannot open device '%s': %s\n", path, strerror(ENAMETOOLONG)); + exit(16); + } + + // Re-open block device with O_EXCL mode which fails when device is already mounted + if (S_ISBLK(stat.st_mode)) + flags2 |= O_EXCL; + + fd2 = open(filename2, flags2); + if (fd2 < 0) + { + if (errno != ENOENT) + { + error = (errno != EBUSY) ? strerror(errno) : "Device is mounted or mkudffs is already running"; + fatal("Cannot open device '%s': %s\n", path, error); + exit(16); + } + + // Fallback to orignal filename when /proc is not available, but this introduce race condition between stat and open + fd2 = open(path, flags2); + if (fd2 < 0) + { + error = (errno != EBUSY) ? strerror(errno) : "Device is mounted or mkudffs is already running"; + fatal("Cannot open device '%s': %s\n", path, error); + exit(16); + } + } + + close(fd); + fd = fd2; + + } + + if((fp = fopen(path, "r")) == NULL) { + fatal("Error opening %s: %s.", path, strerror(errno)); + exit(16); + } + //Lock medium to ensure no-one is going to change during our operation. Make nonblocking, so it will fail when medium is already locked. + if(flock(fd, LOCK_EX | LOCK_NB)) { + fatal("Error locking %s, %s. Is antoher process using it?\n", path, strerror(errno)); + exit(16); + } + + note("FD: 0x%x\n", fd); + + if(fseeko(fp, 0 , SEEK_END) != 0) { + if(errno == EBADF) { + err("Medium is not seekable. Aborting.\n"); + exit(16); + } else { + err("Unknown seek error (errno: %d). Aborting.\n", errno); + exit(16); + } + } + st_size = ftello(fp); + dbg("Size: 0x%lx\n", (long)st_size); + + uint32_t chunksize = CHUNK_SIZE; + uint64_t rest = st_size%chunksize; + dbg("Chunk size %ld, rest: %ld\n", chunksize, rest); + dev = calloc(sizeof(uint8_t *), st_size/chunksize + (rest > 0 ? 1 : 0)); + dbg("Amount of chunks: %d\n", st_size/chunksize + (rest > 0 ? 1 : 0)); + for(uint64_t i=0; i<(uint64_t)(st_size/chunksize +(rest > 0 ? 1 : 0)) ; i++) { + dev[i] = NULL; + } + + //------------- Detections ----------------------- + + seq = calloc(1, sizeof(vds_sequence_t)); + + stats.AVDPSerialNum = 0xFFFF; + status = is_udf(fd, dev, &blocksize, st_size, force_sectorsize); //this function is checking for UDF recognition sequence. It also tries to detect blocksize + if(status < 0) { + exit(status); + } else if(status == 1) { //Unclosed or bridged medium + status = get_avdp(fd, dev, &disc, &blocksize, st_size, -1, force_sectorsize, &stats); //load AVDP and verify blocksize + source = FIRST_AVDP; // Unclosed medium have only one AVDP and that is saved at first position. + if(status) { + err("AVDP is broken. Aborting.\n"); + exit(4); + } + } else { //Normal medium + seq->anchor[0].error = get_avdp(fd, dev, &disc, &blocksize, st_size, FIRST_AVDP, force_sectorsize, &stats); //try load FIRST AVDP + if(seq->anchor[0].error) { + err("AVDP[0] is broken.\n"); + } else { + force_sectorsize = 1; + } + + seq->anchor[1].error = get_avdp(fd, dev, &disc, &blocksize, st_size, SECOND_AVDP, force_sectorsize, &stats); //load AVDP + if(seq->anchor[1].error) { + err("AVDP[1] is broken.\n"); + } else { + force_sectorsize = 1; + } + + seq->anchor[2].error = get_avdp(fd, dev, &disc, &blocksize, st_size, THIRD_AVDP, force_sectorsize, &stats); //load AVDP + if(seq->anchor[2].error) { + dbg("AVDP[2] somehow errored, not necessarily bad thing.\n"); + if(seq->anchor[2].error < 255) { //Third AVDP is not necessarily present. + err("AVDP[2] is broken.\n"); + } else { + third_avdp_missing = 1; + } + } + + if((seq->anchor[0].error & ~E_EXTLEN) == 0) { + dbg("FIRST AVDP as source\n"); + source = FIRST_AVDP; + } else if((seq->anchor[1].error & ~E_EXTLEN) == 0) { + dbg("SECOND AVDP as source\n"); + source = SECOND_AVDP; + } else if((seq->anchor[2].error & ~E_EXTLEN) == 0 && third_avdp_missing == 0) { + dbg("THIRD AVDP as source\n"); + source = THIRD_AVDP; + } else { + if(force_sectorsize) + err("All AVDP are broken or wrong block size was entered. Try running without -B option. Aborting.\n"); + else + err("All AVDP are broken. Aborting.\n"); + exit(4); + } + } + + msg("Sectorsize: %d\n", blocksize); + + if(blocksize == -1) { + err("Device blocksize is not defined. Please define it with -b BLOCKSIZE parameter\n"); + exit(16); + } + + // Correct blocksize MUST be blocksize%512 == 0. We keep definitive list for now. + if(!((blocksize == 512) | (blocksize == 1024) | (blocksize == 2048) | (blocksize == 4096))) { + err("Invalid blocksize. Posible blocksizes must be dividable by 512.\n"); + exit(16); + } + + note("\nTrying to load first VDS\n"); + status |= get_vds(fd, dev, &disc, blocksize, st_size, source, MAIN_VDS, seq); //load main VDS + note("\nTrying to load second VDS\n"); + status |= get_vds(fd, dev, &disc, blocksize, st_size, source, RESERVE_VDS, seq); //load reserve VDS + + dbg("First VDS verification\n"); + verify_vds(&disc, MAIN_VDS, seq, &stats); + dbg("Second VDS verification\n"); + verify_vds(&disc, RESERVE_VDS, seq, &stats); + + //Check if blocksizes matches. If not, exit. + int blocksize_status = check_blocksize(fd, dev, &disc, blocksize, force_sectorsize, seq); + if(blocksize_status != 0) + exit(status | blocksize_status); + + + status |= get_lvid(fd, dev, &disc, blocksize, st_size, &stats, seq); //load LVID + if(stats.minUDFReadRev > MAX_VERSION){ + err("Medium UDF revision is %04x and we are able to check up to %04x\n", stats.minUDFReadRev, MAX_VERSION); + exit(8); + } + +#ifdef PRINT_DISC + print_disc(&disc); +#endif + + stats.blocksize = blocksize; + + if(get_pd(fd, dev, &disc, blocksize, st_size, &stats, seq)) { + err("PD error\n"); + exit(8); + } + + uint32_t lbnlsn = 0; + dbg("STATUS: 0x%02x\n", status); + status |= get_fsd(fd, dev, &disc, blocksize, st_size, &lbnlsn, &stats, seq); + dbg("STATUS: 0x%02x\n", status); + if(status >= 8) { + err("Unable to continue without FSD. Consider submitting bug report. Exiting.\n"); + exit(status); + } else if(status >= 4) { + err("Unable to continue without FSD. Medium seems unrecoverable. Exiting.\n"); + exit(status); + } + + note("LBNLSN: %d\n", lbnlsn); + if(any_error(seq) || disc.udf_lvid->integrityType != LVID_INTEGRITY_TYPE_CLOSE || fast_mode == 0) { + status |= get_file_structure(fd, dev, &disc, st_size, lbnlsn, &stats, seq); + } + + dbg("PD PartitionsContentsUse\n"); + for(int i=0; i<128; ) { + for(int j=0; j<8; j++, i++) { + note("%02x ", disc.udf_pd[0]->partitionContentsUse[i]); + } + note("\n"); + } + + uint64_t countedBits = count_used_bits(&stats); + dbg("**** BITMAP USED SPACE: %d ****\n", countedBits); + + //---------- Corrections -------------- + msg("\nFilesystem status\n-----------------\n"); + get_volume_identifier(&disc, &stats, seq); + msg("Volume set identifier: %s\n", stats.volumeSetIdent); + msg("Partition identifier: %s\n", stats.partitionIdent); + msg("Next UniqueID: %d\n", stats.actUUID); + if(fast_mode == 0) { + msg("Max found UniqueID: %d\n", stats.maxUUID); + } + msg("Last LVID recoreded change: %s\n", print_timestamp(stats.LVIDtimestamp)); + msg("expected number of files: %d\n", stats.expNumOfFiles); + msg("expected number of dirs: %d\n", stats.expNumOfDirs); + if(fast_mode == 0) { + msg("counted number of files: %d\n", stats.countNumOfFiles); + msg("counted number of dirs: %d\n", stats.countNumOfDirs); + if(stats.expNumOfDirs != stats.countNumOfDirs || stats.expNumOfFiles != stats.countNumOfFiles) { + seq->lvid.error |= E_FILES; + } + } + msg("UDF rev: min read: %04x\n", stats.minUDFReadRev); + msg(" min write: %04x\n", stats.minUDFWriteRev); + msg(" max write: %04x\n", stats.maxUDFWriteRev); + if(fast_mode == 0) { + msg("Used Space: %"PRIu64" (%"PRIu64")\n", stats.usedSpace, stats.usedSpace/blocksize); + } + msg("Free Space: %"PRIu64" (%"PRIu64")\n", (uint64_t)(stats.freeSpaceBlocks)*(uint64_t)(blocksize), (uint64_t)(stats.freeSpaceBlocks)); + msg("Partition size: %"PRIu64" (%"PRIu64")\n", (uint64_t)(stats.partitionSizeBlocks)*(uint64_t)(blocksize), (uint64_t)(stats.partitionSizeBlocks)); + uint64_t expUsedSpace = 0; + if(fast_mode == 0) { + expUsedSpace = (stats.partitionSizeBlocks-stats.freeSpaceBlocks)*blocksize; + msg("Expected Used Space: %"PRIu64" (%"PRIu64")\n", (uint64_t)expUsedSpace, (uint64_t)(expUsedSpace)/(uint64_t)(blocksize)); + msg("Expected Used Blocks: %d\nExpected Unused Blocks: %d\n", stats.expUsedBlocks, stats.expUnusedBlocks); + } + if(fast_mode == 0) { + int64_t usedSpaceDiff = expUsedSpace-stats.usedSpace; + if(usedSpaceDiff != 0) { + err("%d blocks is unused but not marked as unallocated in Free Space Table.\n", usedSpaceDiff/blocksize); + err("Correct free space: %lu\n", stats.freeSpaceBlocks + usedSpaceDiff/blocksize); + seq->lvid.error |= E_FREESPACE; + } + int32_t usedSpaceDiffBlocks = stats.expUsedBlocks - countedBits;//stats.usedSpace/blocksize; + if(usedSpaceDiffBlocks != 0) { + err("%d blocks is unused but not marked as unallocated in SBD.\n", usedSpaceDiffBlocks); + seq->pd.error |= E_FREESPACE; + } + } + + status |= dstring_error("FSD, Logical Volume Identifier", stats.dstringFSDLogVolIdentErr); + status |= dstring_error("FSD, File Set Identifier", stats.dstringFSDFileSetIdentErr); + status |= dstring_error("FSD, Copyright File Identifier", stats.dstringFSDCopyrightFileIdentErr); + status |= dstring_error("FSD, Abstract File Identifier", stats.dstringFSDAbstractFileIdentErr); + + status |= dstring_error("PVD, Main VDS, Volume Identifier", stats.dstringPVDVolIdentErr[MAIN_VDS]); + status |= dstring_error("PVD, Main VDS, Volume Set Identifier", stats.dstringPVDVolSetIdentErr[MAIN_VDS]); + status |= dstring_error("LVD, Main VDS, Logical Volume Identifier", stats.dstringLVDLogicalVolIdentErr[MAIN_VDS]); + status |= dstring_error("IUVD, Main VDS, Logical Volume Info 1", stats.dstringIUVDLVInfo1Err[MAIN_VDS]); + status |= dstring_error("IUVD, Main VDS, Logical Volume Info 2", stats.dstringIUVDLVInfo2Err[MAIN_VDS]); + status |= dstring_error("IUVD, Main VDS, Logical Volume Info 3", stats.dstringIUVDLVInfo3Err[MAIN_VDS]); + status |= dstring_error("IUVD, Main VDS, Logical Volume Identifier", stats.dstringIUVDLogicalVolIdentErr[MAIN_VDS]); + + status |= dstring_error("PVD, Reserve VDS, Volume Identifier", stats.dstringPVDVolIdentErr[RESERVE_VDS]); + status |= dstring_error("PVD, Reserve VDS, Volume Set Identifier", stats.dstringPVDVolSetIdentErr[RESERVE_VDS]); + status |= dstring_error("LVD, Reserve VDS, Logical Volume Identifier", stats.dstringLVDLogicalVolIdentErr[RESERVE_VDS]); + status |= dstring_error("IUVD, Reserve VDS, Logical Volume Info 1", stats.dstringIUVDLVInfo1Err[RESERVE_VDS]); + status |= dstring_error("IUVD, Reserve VDS, Logical Volume Info 2", stats.dstringIUVDLVInfo2Err[RESERVE_VDS]); + status |= dstring_error("IUVD, Reserve VDS, Logical Volume Info 3", stats.dstringIUVDLVInfo3Err[RESERVE_VDS]); + status |= dstring_error("IUVD, Reserve VDS, Logical Volume Identifier", stats.dstringIUVDLogicalVolIdentErr[RESERVE_VDS]); + + if(seq->anchor[0].error + seq->anchor[1].error + seq->anchor[2].error != 0) { //Something went wrong with AVDPs + int target1 = -1; + int target2 = -1; + + if((seq->anchor[0].error & ~E_EXTLEN) == 0) { + source = FIRST_AVDP; + if((seq->anchor[1].error & ~E_EXTLEN) != 0) + target1 = SECOND_AVDP; + if((seq->anchor[2].error & ~E_EXTLEN) != 0 && third_avdp_missing == 0) + target2 = THIRD_AVDP; + } else if((seq->anchor[1].error & ~E_EXTLEN) == 0) { + source = SECOND_AVDP; + target1 = FIRST_AVDP; + if((seq->anchor[2].error & ~E_EXTLEN) != 0 && third_avdp_missing == 0) + target2 = THIRD_AVDP; + } else if((seq->anchor[2].error & ~E_EXTLEN) == 0 && third_avdp_missing == 0) { + source = THIRD_AVDP; + target1 = FIRST_AVDP; + target2 = SECOND_AVDP; + } else { + err("Unrecoverable AVDP failure. Aborting.\n"); + exit(4); + } + + if(target1 >= 0) + error_status |= ES_AVDP1; + + if(target2 >= 0) + error_status |= ES_AVDP2; + + int fixavdp = 0; + if(interactive) { + if(prompt("Found error at AVDP. Do you want to fix them? [Y/n]") != 0) { + fixavdp = 1; + } + } + if(autofix) + fixavdp = 1; + + + if(fixavdp) { + msg("Source: %d, Target1: %d, Target2: %d\n", source, target1, target2); + if(target1 >= 0) { + if(write_avdp(fd, dev, &disc, blocksize, st_size, source, target1) != 0) { + fatal("AVDP recovery failed. Is medium writable?\n"); + } else { + imp("AVDP recovery was successful.\n"); + error_status &= ~ES_AVDP1; + fix_status |= ES_AVDP1; + } + } + if(target2 >= 0) { + if(write_avdp(fd, dev, &disc, blocksize, st_size, source, target2) != 0) { + fatal("AVDP recovery failed. Is medium writable?\n"); + } else { + imp("AVDP recovery was successful.\n"); + error_status &= ~ES_AVDP2; + fix_status |= ES_AVDP2; + } + } + } + + if(fixavdp) { + if(seq->anchor[0].error & E_EXTLEN) { + status |= fix_avdp(fd, dev, &disc, blocksize, st_size, FIRST_AVDP); + } + if(seq->anchor[1].error & E_EXTLEN) { + status |= fix_avdp(fd, dev, &disc, blocksize, st_size, SECOND_AVDP); + } + if((seq->anchor[2].error & E_EXTLEN) && third_avdp_missing == 0) { + status |= fix_avdp(fd, dev, &disc, blocksize, st_size, THIRD_AVDP); + } + } + + } + + + print_metadata_sequence(seq); + + status |= fix_vds(fd, dev, &disc, st_size, blocksize, source, seq); + + int fixlvid = 0; + int fixpd = 0; + int lviderr = 0; + if(seq->lvid.error == (E_CRC | E_CHECKSUM)) { + //LVID is doomed. + err("LVID is broken. Recovery is not possible.\n"); + error_status |= ES_LVID; + } else { + if(stats.maxUUID >= stats.actUUID || (seq->lvid.error & E_UUID)) { + err("Max found Unique ID is same or bigger that Unique ID found at LVID.\n"); + lviderr = 1; + } + if(disc.udf_lvid->integrityType != LVID_INTEGRITY_TYPE_CLOSE) { + //There are some unfinished writes + err("Opened integrity type. Some writes may be unfinished.\n"); + lviderr = 1; + } + if(seq->lvid.error & E_TIMESTAMP) { + err("LVID timestamp is older than timestamps of files.\n"); + lviderr=1; + } + if(seq->lvid.error & E_FILES) { + err("Number of files or directories is not corresponding to counted number\n"); + lviderr=1; + } + if(seq->lvid.error & E_FREESPACE) { + err("Free Space table is not corresponding to reality.\n"); + lviderr=1; + } + + if(lviderr) { + error_status |= ES_LVID; + if(interactive) { + if(prompt("Fix it? [Y/n]") != 0) { + fixlvid = 1; + } + } + if(autofix) + fixlvid = 1; + } + } + + if(seq->pd.error != 0) { + error_status |= ES_PD; + if(interactive) { + if(prompt("Fix SBD? [Y/n]") != 0) + fixpd = 1; + } + if(autofix) + fixpd = 1; + } + + + if(fixlvid == 1) { + if(fix_lvid(fd, dev, &disc, st_size, blocksize, &stats, seq) == 0) { + error_status &= ~(ES_LVID | ES_PD); + fix_status |= (ES_LVID | ES_PD); + } + } else if(fixlvid == 0 && fixpd == 1) { + if(fix_pd(fd, dev, &disc, st_size, blocksize, &stats, seq) == 0) { + error_status &= ~(ES_PD); + fix_status |= ES_PD; + } + } + +#if DEBUG && 0 + note("\n ACT \t EXP\n"); + uint32_t shift = 0; + uint32_t line = 0; + uint32_t amount = 50000; + for(int i=0+shift, k=0+shift; i + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include +#include +#include + +#include "libudffs.h" +#include "options.h" +#include "utils.h" + +verbosity_e verbose = NONE; +int interactive = 0; +int autofix = 0; +int colored = 0; +int fast_mode = 0; + +/** + * Options for getopt_long() parser function. + */ +static struct option long_options[] = +{ + /* These options set a flag. */ + {"verbose", no_argument, 0, 'v'}, + {"blocksize", required_argument, 0, 'b'}, + {"interactive", no_argument, 0, 'i'}, + {"autofix", no_argument, 0, 'p'}, + {"check", no_argument, 0, 'c'}, + {"colors", no_argument, 0, 'C'}, + {"fast", no_argument, 0, 'f'}, + {"help", no_argument, 0, 'h'}, + {0, 0, 0, 0} +}; + +/** + * Help string for options + */ +static char * help[] = { + "Increase verbosity. Without it are printed only error messages, -v prints warnings, -vv is for humans, -vvv is for developers and curious people.", + "Medium block size. Mandatory parameter, can be 512, 1024, 2048 or 4096.", + "Medium is will be fixed interactivelly and all fixings must be authorized by user.", + "Medium is will be fixed automatically. All found errors will be fixed if possible.", + "Medium will be only checked. This is default behavior, but this flag override -p.", + "Tool output will be colored with ASCII color codes.", + "Fast mode: File tree check will be skipped.", + "This help message.", + "" +}; + +/** + * \brief Prints out usage + */ +void usage(void) +{ + int i; + + printf("udffsck " UDFFSCK_VERSION " from " PACKAGE_NAME " " PACKAGE_VERSION "."); + printf("\nUsage:\n\tudffsck [-icpvvvCh] [-b blocksize] medium\n"); + printf("Options:\n"); + for (i = 0; long_options[i].name != NULL; i++) { + if (long_options[i].flag != 0) + printf(" --%s\t", long_options[i].name); + else + printf(" -%c\t", long_options[i].val); + printf(" %s\n", help[i]); + } + printf("Return codes:\n"); + printf(" 0 - No error\n" + " 1 - Filesystem errors were fixed\n" + /* " 2 - Filesystem errors were fixed, reboot is recomended\n"*/ + " 4 - Filesystem errors remained unfixed\n" + " 8 - Program error\n" + " 16 - Wrong input parameters\n" + " 32 - Check was interrupted by user request\n" + /* " 128 - Shared library error"*/ + "\n"); + exit(32); +} + +/** + * \brief Input argument parsing function + * + * This function parse thru inputs. It recognizes following: -vvvipch -B . Without any argument is only path to medium. + */ +void parse_args(int argc, char *argv[], char **path, int *blocksize) +{ + int c; + + while (1) + { + /* getopt_long stores the option index here. */ + int option_index = 0; + + c = getopt_long (argc, argv, "vb:ipcCfh", long_options, &option_index); + + /* Detect the end of the options. */ + if (c == -1) + break; + + switch (c) + { + case 0: + /* If this option set a flag, do nothing else now. */ + if (long_options[option_index].flag != 0) + break; + printf ("option %s", long_options[option_index].name); + if (optarg) + printf (" with arg %s", optarg); + printf ("\n"); + break; + + case 'b': + *blocksize = strtol(optarg, NULL, 10); + printf("Device block size: %d\n", *blocksize); + break; + + case 'i': + printf ("Medium will be fixed interactively. Expect questions.\n"); + interactive = 1; + break; + + case 'p': + printf ("We try to fix medium automaticaly.\n"); + autofix = 1; + break; + + case 'c': + printf ("Medium will be only checked. No corrections.\n"); + autofix = 0; + break; + + case 'v': + verbosity ++; + if(verbosity > DBG) + verbosity = DBG; + printf("Verbosity increased to %s.\n", verbosity_level_str(verbosity)); + break; + + case 'C': + colored = 1; + break; + + case 'f': + fast_mode = 1; + break; + + case 'h': + usage(); + break; + + default: + printf("Unrecognized option -%c.\n", c); + usage(); + break; + } + } + + /* Print any remaining command line arguments (not options). */ + if (optind < argc) + { + dbg("Optind: %d\n", optind); + dbg("non-option ARGV-elements: "); + while (optind < argc) { + *path = argv[optind]; + dbg("%s ", *path); + optind++; + if(optind > 2) //We accept one medium at a time. + break; + } + dbg("\n"); + } + dbg("Param parse done.\n"); +} + diff --git a/udffsck/options.h b/udffsck/options.h new file mode 100644 index 00000000..c06857b4 --- /dev/null +++ b/udffsck/options.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2017 Vojtech Vladyka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef _OPTIONS_H +#define _OPTIONS_H + +#include "config.h" + +#include +#include "utils.h" +#include "log.h" + +void usage(void); +void parse_args(int, char *[], char **path, int *blocksize/*, struct cdrw_disc *, char **/); + +extern int interactive; +extern int autofix; +extern verbosity_e verbosity; +extern int colored; +extern int fast_mode; + +/* + * Command line option token values. + * 0x0000-0x00ff Single characters + * 0x1000-0x1fff Long switches (no arg) + * 0x2000-0x2fff Long settings (arg required) + */ + +#define OPT_HELP 0x1000 + +#endif /* _OPTIONS_H */ diff --git a/udffsck/test.c b/udffsck/test.c new file mode 100644 index 00000000..3eebbc6c --- /dev/null +++ b/udffsck/test.c @@ -0,0 +1,641 @@ +/* + * Copyright (C) 2017 Vojtech Vladyka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// UDF fsck error codes +#define NO_ERR 0 +#define ERR_FIXED 1 +#define ERR_UNFIXED 4 +#define PROG_ERR 8 +#define WRONG_PARS 16 +#define USER_INTERRUPT 32 + +/** + * \brief UDF fsck exec wrapper for simplified test writing + * + * This function wraps fork/exec around udfffsck calling. + * Expected path differs based on define BASIC_TESTS (udf-samples) or EXTRA_TESTS (udf-samples-extra) + * + * \return udffsck exit code + * \param[in] medium name of tested medium. All mediums need to be at ../../udf-samples(-extra)/---MEDIUM NAME HERE---.img format + * \param[in] args non-parametric input arguments + * \param[in] argsB blocksize parameter. Should be "-b 2048" or something like that + */ +int fsck_wrapper(const char * medium, char *const args, char *const argB) { + char cwd[1024]; + if (getcwd(cwd, sizeof(cwd)) != NULL) { + strcpy(cwd + strlen(cwd), "/udffsck"); + } else { + printf("getcwd error. Aborting.\n"); + return -1; + } + + + char medpwd[10240]; +#if BASIC_TESTS + sprintf(medpwd, "../../udf-samples/%s.img", medium); +#elif EXTRA_TESTS==1 + sprintf(medpwd, "../../udf-samples-extra-1/%s.img", medium); +#elif EXTRA_TESTS==2 + sprintf(medpwd, "../../udf-samples-extra-2/%s.img", medium); +#elif EXTRA_TESTS==3 + sprintf(medpwd, "../../udf-samples-extra-3/%s.img", medium); +#else + #error NO TEST DEFINED +#endif + printf("Medium: %s\n", medpwd); + char * const pars[] = { + cwd, + medpwd, + args, + argB, + NULL + }; + + time_t t = time(NULL); + struct tm tm = *localtime(&t); + char fout[1024]; + char ferr[1024]; +#if BASIC_TESTS + sprintf(fout, "../../udf-samples/%d-%02d-%02d-%02d-%02d-%02d_%s.img.out", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, medium); + sprintf(ferr, "../../udf-samples/%d-%02d-%02d-%02d-%02d-%02d_%s.img.err", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, medium); +#endif +#if EXTRA_TESTS + sprintf(fout, "../../udf-samples-extra/%d-%02d-%02d-%02d-%02d-%02d_%s.img.out", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, medium); + sprintf(ferr, "../../udf-samples-extra/%d-%02d-%02d-%02d-%02d-%02d_%s.img.err", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, medium); +#endif + + int pipefd[3]; + if(pipe(pipefd)) { + printf("Pipe opening failed\n"); + return -1; + } + + int statval, exitval; + if(fork() == 0) { + /*int fdout = open(fout, O_RDWR | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR); + int fderr = open(ferr, O_RDWR | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR); + dup2(fdout, 1); // make stdout go to file + dup2(fderr, 2); // make stderr go to file + close(fdout); // fd no longer needed - the dup'ed handles are sufficient + close(fderr); // fd no longer needed - the dup'ed handles are sufficient +*/ + execv(cwd, pars); + } else { + wait(&statval); + if(WIFEXITED(statval)) { + printf("Child's exit code %d\n", WEXITSTATUS(statval)); + exitval = WEXITSTATUS(statval); + } else { + printf("Child did not terminate with exit\n"); + exitval = -1; + } + return exitval; + } + return 0; +} + +/** + * \brief Test against unfinished write operation. Medium was not more used. + * + * Result of this is broken LVID's free space, UUID, timestamp and SBD. + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ +void bs2048_dirty_file_tree_1(void **state) { + (void) state; + char *medium = "bs2048-r0201-dirty-file-tree"; + assert_int_equal(fsck_wrapper(medium, "-cvv", "-b 2048"), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-pvv", "-b 2048"), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-cvv", "-b 2048"), 0); //Check it +} + +/** + * \brief Test against unfinished write operation. After that, another file was deleted. + * + * Result of this is broken LVID's free space, UUID, timestamp and SBD. + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ +void bs2048_dirty_file_tree_2(void **state) { + (void) state; + char *medium = "bs2048-r0201-dirty-file-tree-deleted-peregrine"; + assert_int_equal(fsck_wrapper(medium, "-c", "-b 2048"), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", "-b 2048"), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-c", "-b 2048"), 0); //Check it +} + +/** + * \brief Test against unfinished write operation. After that, more files were written. + * + * It resulted in broken UUIDs at them (all newer files were set UUID=0, also LVID + * timestamp was old. + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ +void bs2048_dirty_file_tree_3(void **state) { + (void) state; + char *medium = "bs2048-r0201-broken-UUIDs"; + assert_int_equal(fsck_wrapper(medium, "-c", "-b 2048"), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", "-b 2048"), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-c", "-b 2048"), 0); //Check it +} + +/** + * \brief This medium should be clean, so this is test for positive result. + * \note Blocksize: 2048 + * \note Revisiob: 2.01 + */ +void bs2048_clean(void **state) { + (void) state; + char *medium = "bs2048-r0201-clean"; + assert_int_equal(fsck_wrapper(medium, "-c", "-b 2048"), 0); //Check it +} + +/** + * \brief This medium should be clean, but too new. Should fail. + * \note Blocksize: 2048 + * \note Revision: 2.60 + */ +void bs2048_apple_r0260(void **state) { + (void) state; + char *medium = "bs2048-r0260-apple"; + assert_int_equal(fsck_wrapper(medium, "-c", "-b 2048"), 8); //Check it +} + +/** + * \brief This medium should be clean. + * \note Blocksize: 2048 + * \note Revision: 1.50 + * \note Apple UDF + */ +void bs2048_apple_r0150(void **state) { + (void) state; + char *medium = "bs2048-r0150-apple"; + assert_int_equal(fsck_wrapper(medium, "-c", "-b 2048"), 0); //Check it +} + +/** + * \brief Test against UDF from Windows. + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_windows7(void **state) { + (void) state; + char *medium = "udf-hdd-win7"; + assert_int_equal(fsck_wrapper(medium, "-c", "-b 512"), 0); //Check it +} + +/** + * \brief Test against udfclient 0.7.5 + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ + void bs2048_udfclient_075(void **state) { + (void) state; + char *medium = "udf-hdd-udfclient-0.7.5"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Test against udfclient 0.7.7 + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ + void bs2048_udfclient_077(void **state) { + (void) state; + char *medium = "udf-hdd-udfclient-0.7.7"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Blocksize detection test + * + * \note Blocksize: 512 + * \note Revision: 1.50 + */ + void bs512_blocksize_detection_test(void **state) { + (void) state; + char *medium = "bs512-r0150"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Blocksize detection test + * + * \note Blocksize: 1024 + * \note Revision: 1.50 + */ + void bs1024_blocksize_detection_test(void **state) { + (void) state; + char *medium = "bs1024-r0150"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Blocksize detection test + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ + void bs2048_blocksize_detection_test(void **state) { + (void) state; + char *medium = "bs2048-r0201"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Blocksize detection test + * + * \note Blocksize: 4096 + * \note Revision: 2.01 + */ + void bs4096_blocksize_detection_test(void **state) { + (void) state; + char *medium = "bs4096"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Unclosed medium check + * + * \note Blocksize: 1024 + * \note Revision: 1.50 + */ + void bs1024_unclosed_medium(void **state) { + (void) state; + char *medium = "bs1024-r0150-unclosed"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-c", "-b 1024"), 0); //Check it +} + +/** + * \brief Defective primary VDS + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_defect_primary_vds(void **state) { + (void) state; + char *medium = "bs512-defect-primary-vds"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", ""), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Defective AVDP1 + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ + void bs2048_defect_avdp1(void **state) { + (void) state; + char *medium = "bs2048-r0201-brokenAVDP1"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", ""), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Crosplatform medium test no. 1 + * + * Clean medium right from MS Windows 7 + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_crossplatform_1(void **state) { + (void) state; + char *medium = "bs512_windows7_udf0201"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Crosplatform medium test no. 2 + * + * Broken file tree + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_crossplatform_2(void **state) { + (void) state; + char *medium = "bs512_windows7_udf0201_broken_file_tree"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", ""), 1); //fix it + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Crosplatform medium test no. 3 + * + * CHKDSK broken medium + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_crossplatform_3(void **state) { + (void) state; + char *medium = "bs512_windows7_udf0201_chkdsk"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", ""), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Crosplatform medium test no. 4 + * + * Serial numbers broken (Linux / Win noncompatibility) + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_crossplatform_4(void **state) { + (void) state; + char *medium = "bs512_windows7_udf0201-serial-broken-linux-written"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", ""), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Crosplatform medium test no. 5 + * + * Serial numbers broken afterfix write + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_crossplatform_5(void **state) { + (void) state; + char *medium = "bs512_windows7_udf0201-serial-broken-linux-written-afterfix-win-write"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Crosplatform medium test no. 6 + * + * AED test case at directory .git/objects + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_crossplatform_6(void **state) { + (void) state; + char *medium = "bs512_windows7_udf0201-aed-test-lot-of-files-open-integrity"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", ""), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} + +/** + * \brief Crosplatform medium test no. 7 + * + * Another medium from Win7 + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_crossplatform_7(void **state) { + (void) state; + char *medium = "bs512_windows7_udf0201-linux-before-fix"; + assert_int_equal(fsck_wrapper(medium, "-c", ""), 4); //Check it + assert_int_equal(fsck_wrapper(medium, "-p", ""), 1); //Fix it + assert_int_equal(fsck_wrapper(medium, "-c", ""), 0); //Check it +} +/** + * \brief Test forced blocksize + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ + + void bs2048_wrong_blocksize_1(void **state) { + (void) state; + char *medium = "bs2048-r0201-dirty-file-tree"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 512"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ + void bs2048_wrong_blocksize_2(void **state) { + (void) state; + char *medium = "bs2048-r0201-dirty-file-tree-deleted-peregrine"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 1024"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 2048 + * \note Revision: 2.01 + */ + void bs2048_wrong_blocksize_3(void **state) { + (void) state; + char *medium = "bs2048-r0201-broken-UUIDs"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 4096"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 512 + * \note Revision: 2.01 + */ + void bs512_wrong_blocksize_1(void **state) { + (void) state; + char *medium = "udf-hdd-win7"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 1024"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 512 + * \note Revision: 1.50 + */ + void bs512_wrong_blocksize_2(void **state) { + (void) state; + char *medium = "bs512-r0150"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 2048"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 512 + * \note Revision: 1.50 + */ + void bs512_wrong_blocksize_3(void **state) { + (void) state; + char *medium = "bs512-r0150"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 4096"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 1024 + * \note Revision: 1.50 + */ + void bs1024_wrong_blocksize_1(void **state) { + (void) state; + char *medium = "bs1024-r0150"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 512"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 1024 + * \note Revision: 1.50 + */ + void bs1024_wrong_blocksize_2(void **state) { + (void) state; + char *medium = "bs1024-r0150"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 2048"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 1024 + * \note Revision: 1.50 + */ + void bs1024_wrong_blocksize_3(void **state) { + (void) state; + char *medium = "bs1024-r0150"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 4096"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 4096 + * \note Revision: 2.01 + */ + void bs4096_wrong_blocksize_1(void **state) { + (void) state; + char *medium = "bs4096"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 512"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 4096 + * \note Revision: 2.01 + */ + void bs4096_wrong_blocksize_2(void **state) { + (void) state; + char *medium = "bs4096"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 1024"), 8); //Check it +} + +/** + * \brief Test forced blocksize + * + * \note Blocksize: 4096 + * \note Revision: 2.01 + */ + void bs4096_wrong_blocksize_3(void **state) { + (void) state; + char *medium = "bs4096"; + assert_int_not_equal(fsck_wrapper(medium, "-c", "-b 2048"), 8); //Check it +} + +int main(void) { + const struct CMUnitTest tests[] = { +#ifdef DEMO + cmocka_unit_test(blank_fail), + cmocka_unit_test(blank_pass), +#endif +#if BASIC_TESTS + cmocka_unit_test(bs2048_dirty_file_tree_1), + cmocka_unit_test(bs2048_dirty_file_tree_2), + cmocka_unit_test(bs2048_dirty_file_tree_3), + cmocka_unit_test(bs2048_clean), + cmocka_unit_test(bs2048_apple_r0150), + cmocka_unit_test(bs2048_apple_r0260), + cmocka_unit_test(bs512_windows7), + cmocka_unit_test(bs2048_udfclient_075), + cmocka_unit_test(bs2048_udfclient_077), + cmocka_unit_test(bs512_blocksize_detection_test), + cmocka_unit_test(bs1024_blocksize_detection_test), + cmocka_unit_test(bs2048_blocksize_detection_test), + cmocka_unit_test(bs4096_blocksize_detection_test), + cmocka_unit_test(bs1024_unclosed_medium), + cmocka_unit_test(bs512_defect_primary_vds), + cmocka_unit_test(bs2048_defect_avdp1), + cmocka_unit_test(bs512_crossplatform_6), + cmocka_unit_test(bs512_wrong_blocksize_1), + cmocka_unit_test(bs512_wrong_blocksize_2), + cmocka_unit_test(bs512_wrong_blocksize_3), + cmocka_unit_test(bs1024_wrong_blocksize_1), + cmocka_unit_test(bs1024_wrong_blocksize_2), + cmocka_unit_test(bs1024_wrong_blocksize_3), + cmocka_unit_test(bs2048_wrong_blocksize_1), + cmocka_unit_test(bs2048_wrong_blocksize_2), + cmocka_unit_test(bs2048_wrong_blocksize_3), + cmocka_unit_test(bs4096_wrong_blocksize_1), + cmocka_unit_test(bs4096_wrong_blocksize_2), + cmocka_unit_test(bs4096_wrong_blocksize_3), +#endif +#if EXTRA_TESTS==1 + cmocka_unit_test(bs512_crossplatform_1), + cmocka_unit_test(bs512_crossplatform_2), + cmocka_unit_test(bs512_crossplatform_3), +#endif +#if EXTRA_TESTS==2 + cmocka_unit_test(bs512_crossplatform_4), + cmocka_unit_test(bs512_crossplatform_5), +#endif +#if EXTRA_TESTS==3 + cmocka_unit_test(bs512_crossplatform_7), +#endif + }; + + return cmocka_run_group_tests(tests, NULL, NULL); +} diff --git a/udffsck/travis-tests.sh b/udffsck/travis-tests.sh new file mode 100755 index 00000000..93f39acd --- /dev/null +++ b/udffsck/travis-tests.sh @@ -0,0 +1,58 @@ +#!/bin/bash +set -e + +if [ "$1" == 'basic' ]; then + cd .. + wget --no-check-certificate https://github.com/argorain/udffsck-test-samples/raw/master/decompress-samples.sh + wget --no-check-certificate https://github.com/argorain/udffsck-test-samples/releases/download/"$2"/udf-samples.tar.xz + bash decompress-samples.sh + cd udftools/udffsck + $RUN ./test || error=true + cd ../.. + rm udf-samples.tar.xz udf-samples -r + cd udftools/udffsck +fi + +if [ "$1" == 'extra1' ]; then + cd .. + wget --no-check-certificate https://github.com/argorain/udffsck-test-samples/releases/download/"$2"/udf-samples-extra-1.tar.xz + tar -xJvf udf-samples-extra-1.tar.xz + cd udftools/udffsck + $RUN ./testextra1 || error=true + cd ../.. + rm -r udf-samples-extra-1 udf-samples-extra-1.tar.xz + cd udftools/udffsck +fi + +if [ "$1" == 'extra2' ]; then + cd .. + wget --no-check-certificate https://github.com/argorain/udffsck-test-samples/releases/download/"$2"/udf-samples-extra-2.tar.xz + tar -xJvf udf-samples-extra-2.tar.xz + cd udftools/udffsck + $RUN ./testextra2 || error=true + cd ../.. + rm -r udf-samples-extra-2 udf-samples-extra-2.tar.xz + cd udftools/udffsck +fi + +if [ "$1" == 'extra3' ]; then + cd .. + wget --no-check-certificate https://github.com/argorain/udffsck-test-samples/releases/download/"$2"/udf-samples-extra-3.tar.xz + tar -xJvf udf-samples-extra-3.tar.xz + cd udftools/udffsck + $RUN ./testextra3 || error=true + cd ../.. + rm -r udf-samples-extra-3 udf-samples-extra-3.tar.xz + cd udftools/udffsck +fi + +if [ "$1" == 'unit' ]; then + cd udffsck + $RUN ./unittest || error=true +fi + +#Fail the build if there was an error +if [ $error ] +then + exit -1 +fi diff --git a/udffsck/udffsck.c b/udffsck/udffsck.c new file mode 100644 index 00000000..800b5229 --- /dev/null +++ b/udffsck/udffsck.c @@ -0,0 +1,3390 @@ +/* + * Copyright (C) 2017 Vojtech Vladyka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "udffsck.h" +#include "utils.h" +#include "libudffs.h" +#include "options.h" + +// Local function protypes +uint8_t get_file(int fd, uint8_t **dev, const struct udf_disc *disc, size_t st_size, uint32_t lbnlsn, uint32_t lsn, struct filesystemStats *stats, uint32_t depth, uint32_t uuid, struct fileInfo info, vds_sequence_t *seq ); +void increment_used_space(struct filesystemStats *stats, uint64_t increment, uint32_t position); +uint8_t inspect_fid(int fd, uint8_t **dev, const struct udf_disc *disc, size_t st_size, uint32_t lbnlsn, uint32_t lsn, uint8_t *base, uint32_t *pos, struct filesystemStats *stats, uint32_t depth, vds_sequence_t *seq, uint8_t *status); +void print_file_chunks(struct filesystemStats *stats); +int copy_descriptor(int fd, uint8_t **dev, struct udf_disc *disc, size_t st_size, size_t sectorsize, uint32_t sourcePosition, uint32_t destinationPosition, size_t size); +int append_error(vds_sequence_t *seq, uint16_t tagIdent, vds_type_e vds, uint8_t error); +uint8_t get_error(vds_sequence_t *seq, uint16_t tagIdent, vds_type_e vds); + +// Local defines +#define MARK_BLOCK 1 ///< Mark switch for markUsedBlock() function +#define UNMARK_BLOCK 0 ///< Unmark switch for markUsedBlock() function + +#define MAX_DEPTH 100 ///< Maximal printed filetree depth is MAX_DEPTH/4. Required by function depth2str(). + +/** + * \brief File tree prefix creator + * + * This fuction takes depth and based on that prints lines and splits + * + * \param[in] depth required depth to print + * \return NULL terminated static char array with printed depth + */ +char * depth2str(int32_t depth) { + static char prefix[MAX_DEPTH] = {0}; + + if(depth == 0) { + return prefix; + } + + if(depth < MAX_DEPTH) { + int i=0, c=0; + int width = 4; + for(i=0, c=0; c= 16) { + uint16_t calcCrc = udf_crc((uint8_t *)(desc) + offset, size - offset, crc); + return calcCrc; + } else { + return 0; + } +} + +/** + * \brief Wrapper function for CRC calculation + * + * \param[in] desc descriptor for calculation + * \param[in] size size for calculation + * \return result of checksum comparsion, 0 if match, 1 if differs + */ +int crc(void * restrict desc, uint16_t size) { + uint16_t calcCrc = calculate_crc(desc, size); + tag *descTag = desc; + dbg("Calc CRC: 0x%04x, TagCRC: 0x%04x\n", calcCrc, descTag->descCRC); + return le16_to_cpu(descTag->descCRC) != calcCrc; +} + +/** + * \brief Position check function + * + * Checks declared position from tag against inserted position + * + * \param[in] descTag tag with declared position + * \param[in] position actual position to compare + * \return result of position comparsion, 0 if match, 1 if differs + */ +int check_position(tag descTag, uint32_t position) { + dbg("tag pos: 0x%x, pos: 0x%x\n", descTag.tagLocation, position); + return (descTag.tagLocation != position); +} + +/** + * \brief Timestamp printing function + * + * This function prints timestamp to static char array in human readable form + * + * Used format is YYYY-MM-DD hh:mm:ss.cshmms+hh:mm\n + * cs -- centiseconds\n + * hm -- hundreds of microseconds\n + * ms -- microseconds\n + * + * \param[in] ts UDF timestamp + * \return pointer to char static char array + * + * \warning char array is NOT NULL terminated + */ +char * print_timestamp(timestamp ts) { + static char str[34+11] = {0}; //Total length is 34 characters. We add some reserve (11 bytes -> 1 for each parameter) to suppress GCC7 warnings. + uint8_t type = ts.typeAndTimezone >> 12; + int16_t offset = (ts.typeAndTimezone & 0x0800) > 0 ? (ts.typeAndTimezone & 0x0FFF) - (0x1000) : (ts.typeAndTimezone & 0x0FFF); + int8_t hrso = 0; + int8_t mino = 0; + dbg("offset: %d\n", offset); + if(type == 1 && offset > -2047) { // timestamp is in local time. Convert to UCT. + hrso = offset/60; // offset in hours + mino = offset%60; // offset in minutes + } + dbg("TypeAndTimezone: 0x%04x\n", ts.typeAndTimezone); + sprintf(str, "%04d-%02d-%02d %02d:%02d:%02d.%02d%02d%02d+%02d:%02d", ts.year, ts.month, ts.day, ts.hour, ts.minute, ts.second, ts.centiseconds, ts.hundredsOfMicroseconds ,ts.microseconds, hrso, mino); + return str; +} + +/** + * \brief UDF timestamp to Unix timestamp conversion function + * + * This function fills Unix timestamp structure with its values, add time offset from UDF timestamp to it and create timestamp. + * + * \warning Because Unix timestamp have second as minimal unit of time, there is precission loss since UDF operates up to microseconds + * + * \param[in] t UDF timestamp + * \return time_t Unix timestamp structure + */ +time_t timestamp2epoch(timestamp t) { + struct tm tm; + tm.tm_wday = 0; + tm.tm_yday = 0; + tm.tm_isdst = 0; + tm.tm_year = t.year - 1900; + tm.tm_mon = t.month - 1; + tm.tm_mday = t.day; + tm.tm_hour = t.hour; + tm.tm_min = t.minute; + tm.tm_sec = t.second; + float rest = (t.centiseconds * 10000 + t.hundredsOfMicroseconds * 100 + t.microseconds)/1000000.0; + if(rest > 0.5) + tm.tm_sec++; + uint8_t type = t.typeAndTimezone >> 12; + int16_t offset = (t.typeAndTimezone & 0x0800) > 0 ? (t.typeAndTimezone & 0x0FFF) - (0x1000) : (t.typeAndTimezone & 0x0FFF); + if(type == 1 && offset > -2047) { // timestamp is in local time. Convert to UCT. + int8_t hrso = offset/60; // offset in hours + int8_t mino = offset%60; // offset in minutes + tm.tm_hour -= hrso; + tm.tm_min -= mino; + } else if(type == 2) { + warn("Time interpretation is not specified.\n"); + } + return mktime(&tm); +} + +/** + * \brief UDF Timestamp comparison wrapper + * + * Timestamps are converted to Unix timestamps and compared with difftime() + * + * \param[in] a first timestamp + * \param[in] b second timestamp + * \return result of difftime(). Basically result a-b. + */ +double compare_timestamps(timestamp a, timestamp b) { + double dt = difftime(timestamp2epoch(a), timestamp2epoch(b)); + return dt; +} + +/** + * \brief File information printing function + * + * This function wraps file charactersitics, file type, permissions, modification time, size and record name + * and prints it in human readable form. + * + * Format is this: HdDPM:darwxd:arwxd:arwx ""\n + * - H -- Hidden + * - d -- Directory + * - D -- Deleted + * - P -- Parent + * - M -- Metadata + * - d -- right to delete + * - r -- right to read + * - w -- right to write + * - x -- right to execute + * - a -- right to change attributes + * - . -- bit not set + * + * \param[in] info file information to print + * \param[in] depth parameter for prefix, required by depth2str(). + */ +void print_file_info(struct fileInfo info, uint32_t depth) { + msg("%s", depth2str(depth)); + + //Print file char + uint8_t deleted = 0; + for(int i=0; i<5; i++) { + switch(info.fileCharacteristics & (1 << i)) { + case FID_FILE_CHAR_HIDDEN: msg("H"); break; + case FID_FILE_CHAR_DIRECTORY:msg("d"); break; + case FID_FILE_CHAR_DELETED: msg("D"); deleted = 1; break; + case FID_FILE_CHAR_PARENT: msg("P"); break; + case FID_FILE_CHAR_METADATA: msg("M"); break; + default: msg("."); + } + } + + if(deleted == 0) { + msg(":"); + + //Print permissions + for(int i=14; i>=0; i--) { + switch(info.permissions & (1 << i)) { + case FE_PERM_O_EXEC: msg("x"); break; + case FE_PERM_O_WRITE: msg("w"); break; + case FE_PERM_O_READ: msg("r"); break; + case FE_PERM_O_CHATTR: msg("a"); break; + case FE_PERM_O_DELETE: msg("d"); break; + case FE_PERM_G_EXEC: msg("x"); break; + case FE_PERM_G_WRITE: msg("w"); break; + case FE_PERM_G_READ: msg("r"); break; + case FE_PERM_G_CHATTR: msg("a"); break; + case FE_PERM_G_DELETE: msg("d"); break; + case FE_PERM_U_EXEC: msg("x"); break; + case FE_PERM_U_WRITE: msg("w"); break; + case FE_PERM_U_READ: msg("r"); break; + case FE_PERM_U_CHATTR: msg("a"); break; + case FE_PERM_U_DELETE: msg("d"); break; + + default: msg("."); + } + if(i == 4 || i == 9 ) { + msg(":"); + } + } + + switch(info.fileType) { + case ICBTAG_FILE_TYPE_DIRECTORY: msg(" DIR "); break; + case ICBTAG_FILE_TYPE_REGULAR: msg(" FILE "); break; + case ICBTAG_FILE_TYPE_BLOCK: msg(" BLOCK "); break; + case ICBTAG_FILE_TYPE_CHAR: msg(" CHAR "); break; + case ICBTAG_FILE_TYPE_FIFO: msg(" FIFO "); break; + case ICBTAG_FILE_TYPE_SOCKET: msg(" SOCKET "); break; + case ICBTAG_FILE_TYPE_SYMLINK: msg(" SYMLIN "); break; + case ICBTAG_FILE_TYPE_STREAMDIR: msg(" STREAM "); break; + default: msg(" UNKNOWN "); break; + } + + //Print timestamp + msg(" %s ", print_timestamp(info.modTime)); + + //Print size + msg(" %8d ", info.size); + + } else { + msg(" "); + } + + //Print filename + if(info.filename == NULL) { + msg(" "); + } else { + msg(" \"%s\"", info.filename); + } + + msg("\n"); +} + +void sync_chunk(uint8_t **dev, uint32_t chunk, size_t st_size) { + uint32_t chunksize = CHUNK_SIZE; + uint64_t rest = st_size%chunksize; + if(dev[chunk] != NULL) { +#ifndef MEMTRACE + dbg("Going to sync chunk #%d\n", chunk); +#else + dbg("Going to sync chunk #%d, ptr: %p\n", chunk, dev[chunk]); +#endif + if(rest > 0 && chunk==st_size/chunksize) { + dbg("\tRest used\n"); + msync(dev[chunk], chunksize, MS_SYNC); + } else { + dbg("\tChunk size used\n"); + msync(dev[chunk], chunksize, MS_SYNC); + } + dbg("\tChunk #%d synced\n", chunk); + } else { + dbg("\tChunk #%d is unmapped\n"); + } +} + +void unmap_chunk(uint8_t **dev, uint32_t chunk, size_t st_size) { + uint32_t chunksize = CHUNK_SIZE; + uint64_t rest = st_size%chunksize; + if(dev[chunk] != NULL) { + sync_chunk(dev, chunk, st_size); +#ifndef MEMTRACE + dbg("Going to unmap chunk #%d\n", chunk); +#else + dbg("Going to unmap chunk #%d, ptr: %p\n", chunk, dev[chunk]); +#endif + if(rest > 0 && chunk==st_size/chunksize) { + dbg("\tRest used\n"); + munmap(dev[chunk], rest); + } else { + dbg("\tChunk size used\n"); + munmap(dev[chunk], chunksize); + } + dev[chunk] = NULL; + dbg("\tChunk #%d unmapped\n", chunk); + } else { + dbg("\tChunk #%d is already unmapped\n", chunk); +#ifdef MEMTRACE + dbg("[MEMTRACE] Chunk #%d is already unmapped\n", chunk); +#endif + } +} + +void map_chunk(int fd, uint8_t **dev, uint32_t chunk, size_t st_size, char * file, int line) { + uint32_t chunksize = CHUNK_SIZE; + uint64_t rest = st_size%chunksize; + if(dev[chunk] != NULL) { + dbg("\tChunk #%d is already mapped.\n", chunk); + return; + } +#ifdef MEMTRACE + dbg("[MEMTRACE] map_chunk source call: %s:%d\n", file, line); +#endif + dbg("\tSize: 0x%x, chunk size 0x%x, rest: 0x%x\n", st_size, chunksize, rest); + + int prot = PROT_READ; + // If is there some request for corrections, we need read/write access to medium + if(interactive || autofix) { + prot |= PROT_WRITE; + dbg("\tRW\n"); + } + + dbg("\tst_size/chunksize = %d\n", st_size/chunksize); + if(rest > 0 && chunk==st_size/chunksize) { + dbg("\tRest used\n"); + dev[chunk] = (uint8_t *)mmap(NULL, rest, prot, MAP_SHARED, fd, (uint64_t)(chunk)*chunksize); + } else { + dbg("\tChunk size used\n"); + dev[chunk] = (uint8_t *)mmap(NULL, chunksize, prot, MAP_SHARED, fd, (uint64_t)(chunk)*chunksize); + } + if(dev[chunk] == MAP_FAILED) { + switch(errno) { + case EACCES: dbg("EACCES\n"); break; + case EAGAIN: dbg("EAGAIN\n"); break; + case EBADF: dbg("EBADF\n"); break; + case EINVAL: dbg("EINVAL\n"); break; + case ENFILE: dbg("ENFILE\n"); break; + case ENODEV: dbg("ENODEV\n"); break; + case ENOMEM: dbg("ENOMEM\n"); break; + case EPERM: dbg("EPERM\n"); break; + case ETXTBSY: dbg("ETXTBSY\n"); break; + case EOVERFLOW: dbg("EOVERFLOW\n"); break; + default: dbg("EUnknown\n"); break; + } + + fatal("\tError maping: %s.\n", strerror(errno)); + exit(8); + } +#ifdef MEMTRACE + dbg("\tChunk #%d allocated, pointer: %p, offset 0x%x\n", chunk, dev[chunk], (uint64_t)(chunk)*chunksize); +#else + dbg("\tChunk #%d allocated\n", chunk); +#endif + + // Suppressing unused variables + (void)file; + (void)line; +} + +void unmap_raw(uint8_t **ptr, uint32_t offset, size_t size) { + if(*ptr != NULL) { +#ifdef MEMTRACE + dbg("Going to unmap area, ptr: %p\n", ptr); +#endif + munmap(*ptr, size); + ptr = NULL; + dbg("\tArea unmapped\n"); + } else { + dbg("\tArea is already unmapped\n"); + } + + (void)offset; +} + +void map_raw(int fd, uint8_t **ptr, uint64_t offset, size_t size, size_t st_size) { + if(*ptr != NULL) { + dbg("\tArea is already mapped.\n"); + return; + } + + dbg("\tSize: 0x%x, Alloc size 0x%x\n", st_size, size); + + int prot = PROT_READ; + // If is there some request for corrections, we need read/write access to medium + if(interactive || autofix) { + prot |= PROT_WRITE; + dbg("\tRW\n"); + } + + *ptr = (uint8_t *)mmap(NULL, size, prot, MAP_SHARED, fd, offset); + if(ptr == MAP_FAILED) { + switch(errno) { + case EACCES: dbg("EACCES\n"); break; + case EAGAIN: dbg("EAGAIN\n"); break; + case EBADF: dbg("EBADF\n"); break; + case EINVAL: dbg("EINVAL\n"); break; + case ENFILE: dbg("ENFILE\n"); break; + case ENODEV: dbg("ENODEV\n"); break; + case ENOMEM: dbg("ENOMEM\n"); break; + case EPERM: dbg("EPERM\n"); break; + case ETXTBSY: dbg("ETXTBSY\n"); break; + case EOVERFLOW: dbg("EOVERFLOW\n"); break; + default: dbg("EUnknown\n"); break; + } + + fatal("\tError maping: %s.\n", strerror(errno)); + exit(8); + } +#ifdef MEMTRACE + dbg("\tArea allocated, pointer: %p, offset 0x%x\n", ptr, offset); +#else + dbg("\tArea allocated\n"); +#endif +} + +char * dstring_suberror(uint8_t e_code) { + switch(e_code) { + case 0: + return NULL; + case DSTRING_E_NONZERO_PADDING: + return "non-zero padding"; + case DSTRING_E_WRONG_LENGTH: + return "wrong length"; + case DSTRING_E_INVALID_CHARACTERS: + return "invalid characters present"; + case DSTRING_E_NOT_EMPTY: + return "string is not empty"; + case DSTRING_E_UNKNOWN_COMP_ID: + return "unknown Compression ID"; + default: + return "unknown dstring error"; + } +} + +uint8_t dstring_error(char * string_name, uint8_t e_code) { + if(e_code > 0) { + msg("Dstring %s has following errors:\n", string_name); + for(int i=0; i<8; ++i) { + if(e_code & 1<actParitionBitmap. + * + * Support function for getting free space from actual bitmap. + * + * \param[in] *stats file system stats structure with filled bitmap + * \return used blocks amount + */ +uint64_t count_used_bits(struct filesystemStats *stats) { + if(stats->actPartitionBitmap == NULL) + return -1; + + uint64_t countedBits = 0; + uint8_t rest = stats->partitionNumOfBits % 8; + for(int i = 0; i<(int)(stats->partitionNumOfBytes); i++) { + uint8_t piece = ~stats->actPartitionBitmap[i]; + if(i<(int)(stats->partitionNumOfBytes-1)) { + for(int j = 0; j<8; j++) { + countedBits += (piece>>j)&1; + } + } else { + for(int j = 0; j>j)&1; + } + } + } + return countedBits; +} + +/** + * \brief Locate AVDP on device and store it + * + * This function searches AVDP at its positions. If it finds it, store it to udf_disc structure to required position by type parameter. + * + * It also determine sector size, since AVDP have fixed position. + * + * \param[in] *dev pointer to device array + * \param[out] *disc AVDP is stored in udf_disc structure + * \param[in,out] *sectorsize device logical sector size + * \param[in] devsize size of whole device in B + * \param[in] type selector of AVDP - first or second + * \param[in] *stats statistics of file system + * + * \return 0 everything is ok + * \return 255 Only for Third AVDP: it is not AVDP. Abort. + * \return sum of E_CRC, E_CHECKSUM, E_WRONGDESC, E_POSITION, E_EXTLEN + */ +int get_avdp(int fd, uint8_t **dev, struct udf_disc *disc, int *sectorsize, size_t devsize, avdp_type_e type, int force_sectorsize, struct filesystemStats *stats) { + int64_t position = 0; + tag desc_tag; + int ssize = 512; + int status = 0; + uint32_t chunksize = CHUNK_SIZE; + uint32_t chunk = 0; + uint32_t offset = 0; + + for(int it = 0; it < 5; it++, ssize *= 2) { + + //Check if sectorsize is already found + if(force_sectorsize) { + ssize = *sectorsize; + it = INT_MAX-1; //break after this round + } + dbg("Trying sectorsize %d\n", ssize); + + //Reset status for new round + status = 0; + + if(type == 0) { + position = ssize*256; //First AVDP is on LSN=256 + } else if(type == 1) { + position = devsize-ssize; //Second AVDP is on last LSN + } else if(type == 2) { + position = devsize-ssize-256*ssize; //Third AVDP can be at last LSN-256 + } else { + position = ssize*512; //Unclosed disc have AVDP at sector 512 + type = 0; //Save it to FIRST_AVDP positon + } + + dbg("DevSize: %zu\n", devsize); + dbg("Current position: %lx\n", position); + chunk = position/chunksize; + offset = position%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, devsize, __FILE__, __LINE__); + + if(disc->udf_anchor[type] == NULL) { + disc->udf_anchor[type] = malloc(sizeof(struct anchorVolDescPtr)); // Prepare memory for AVDP + } + +#ifdef MEMTRACE + dbg("AVDP chunk ptr: %p\n", dev[chunk]+offset); +#endif + desc_tag = *(tag *)(dev[chunk]+offset); + dbg("Tag allocated\n"); + + if(!checksum(desc_tag)) { + status |= E_CHECKSUM; + unmap_chunk(dev, chunk, devsize); + if(type == THIRD_AVDP) { + return -1; + } + continue; + } + if(le16_to_cpu(desc_tag.tagIdent) != TAG_IDENT_AVDP) { + status |= E_WRONGDESC; + unmap_chunk(dev, chunk, devsize); + if(type == THIRD_AVDP) { + return -1; + } + continue; + } + dbg("Tag Serial Num: %d\n", desc_tag.tagSerialNum); + if(stats->AVDPSerialNum == 0xFFFF) { // Default state -> save first found + stats->AVDPSerialNum = desc_tag.tagSerialNum; + } else if(stats->AVDPSerialNum != desc_tag.tagSerialNum) { //AVDP serial numbers differs, no recovery support. UDF 2.1.6 + stats->AVDPSerialNum = 0; //No recovery support + } + + memcpy(disc->udf_anchor[type], dev[chunk]+offset, sizeof(struct anchorVolDescPtr)); + + if(crc(disc->udf_anchor[type], sizeof(struct anchorVolDescPtr))) { + status |= E_CRC; + unmap_chunk(dev, chunk, devsize); + continue; + } + + if(check_position(desc_tag, position/ssize)) { + status |= E_POSITION; + unmap_chunk(dev, chunk, devsize); + continue; + } + + dbg("AVDP[%d]: Main Ext Len: %d, Reserve Ext Len: %d\n", type, disc->udf_anchor[type]->mainVolDescSeqExt.extLength, disc->udf_anchor[type]->reserveVolDescSeqExt.extLength); + dbg("AVDP[%d]: Main Ext Pos: 0x%08x, Reserve Ext Pos: 0x%08x\n", type, disc->udf_anchor[type]->mainVolDescSeqExt.extLocation, disc->udf_anchor[type]->reserveVolDescSeqExt.extLocation); + if(disc->udf_anchor[type]->mainVolDescSeqExt.extLength < (uint32_t)(16*ssize) || disc->udf_anchor[type]->reserveVolDescSeqExt.extLength < (uint32_t)(16*ssize)) { + status |= E_EXTLEN; + } + + msg("AVDP[%d] successfully loaded.\n", type); + *sectorsize = ssize; + + if(status & E_CHECKSUM) { + err("Checksum failure at AVDP[%d]\n", type); + } + if(status & E_WRONGDESC) { + err("AVDP not found at 0x%lx\n", position); + } + if(status & E_CRC) { + err("CRC error at AVDP[%d]\n", type); + } + if(status & E_POSITION) { + err("Position mismatch at AVDP[%d]\n", type); + } + if(status & E_EXTLEN) { + err("Main or Reserve Extent Length at AVDP[%d] is less than 16 sectors\n", type); + } + unmap_chunk(dev, chunk, devsize); + return status; + } + unmap_chunk(dev, chunk, devsize); + return status; +} + + +/** + * \brief Loads Volume Descriptor Sequence (VDS) and stores it at struct udf_disc + * + * \param[in] *dev pointer to device array + * \param[out] *disc VDS is stored in udf_disc structure + * \param[in] sectorsize device logical sector size + * \param[in] vds MAIN_VDS or RESERVE_VDS selector + * \param[out] *seq structure capturing actual order of descriptors in VDS for recovery + * \return 0 everything ok + * -3 found unknown tag + * -4 descriptor is already set + */ +int get_vds(int fd, uint8_t **dev, struct udf_disc *disc, int sectorsize, size_t st_size, avdp_type_e avdp, vds_type_e vds, vds_sequence_t *seq) { + uint8_t *position; + int8_t counter = 0; + tag descTag; + uint64_t location = 0; + uint32_t chunksize = CHUNK_SIZE; + uint32_t chunk = 0; + uint32_t offset = 0; + + // Go to first address of VDS + switch(vds) { + case MAIN_VDS: + location = sectorsize*((uint64_t)(disc->udf_anchor[avdp]->mainVolDescSeqExt.extLocation)); + dbg("VDS location: 0x%x\n", disc->udf_anchor[avdp]->mainVolDescSeqExt.extLocation); + break; + case RESERVE_VDS: + location = sectorsize*((uint64_t)(disc->udf_anchor[avdp]->reserveVolDescSeqExt.extLocation)); + dbg("VDS location: 0x%x\n", disc->udf_anchor[avdp]->reserveVolDescSeqExt.extLocation); + break; + } + chunk = location/chunksize; + offset = (uint32_t)(location % (uint64_t)chunksize); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + position = dev[chunk]+offset; + dbg("VDS Location: 0x%llx, chunk: %d, offset: 0x%lx\n", location, chunk, offset); + + // Go thru descriptors until TagIdent is 0 or amout is too big to be real + while(counter < VDS_STRUCT_AMOUNT) { + + // Read tag + memcpy(&descTag, position, sizeof(descTag)); + + dbg("Tag ID: %d\n", descTag.tagIdent); + + if(vds == MAIN_VDS) { + seq->main[counter].tagIdent = descTag.tagIdent; + seq->main[counter].tagLocation = (location)/sectorsize; + } else { + seq->reserve[counter].tagIdent = descTag.tagIdent; + seq->reserve[counter].tagLocation = (location)/sectorsize; + } + + counter++; + dbg("Tag stored\n"); + + // What kind of descriptor is that? + switch(le16_to_cpu(descTag.tagIdent)) { + case TAG_IDENT_PVD: + if(disc->udf_pvd[vds] != 0) { + err("Structure PVD is already set. Probably error at tag or media\n"); + unmap_chunk(dev, chunk, st_size); + return -4; + } + disc->udf_pvd[vds] = malloc(sizeof(struct primaryVolDesc)); // Prepare memory + memcpy(disc->udf_pvd[vds], position, sizeof(struct primaryVolDesc)); + dbg("VolNum: %d\n", disc->udf_pvd[vds]->volDescSeqNum); + dbg("pVolNum: %d\n", disc->udf_pvd[vds]->primaryVolDescNum); + dbg("seqNum: %d\n", disc->udf_pvd[vds]->volSeqNum); + dbg("predLoc: %d\n", disc->udf_pvd[vds]->predecessorVolDescSeqLocation); + break; + case TAG_IDENT_IUVD: + if(disc->udf_iuvd[vds] != 0) { + err("Structure IUVD is already set. Probably error at tag or media\n"); + unmap_chunk(dev, chunk, st_size); + return -4; + } + dbg("Store IUVD\n"); + disc->udf_iuvd[vds] = malloc(sizeof(struct impUseVolDesc)); // Prepare memory +#ifdef MEMTRACE + dbg("Malloc ptr: %p\n", disc->udf_iuvd[vds]); +#endif + memcpy(disc->udf_iuvd[vds], position, sizeof(struct impUseVolDesc)); + dbg("Stored\n"); + break; + case TAG_IDENT_PD: + if(disc->udf_pd[vds] != 0) { + err("Structure PD is already set. Probably error at tag or media\n"); + unmap_chunk(dev, chunk, st_size); + return -4; + } + disc->udf_pd[vds] = malloc(sizeof(struct partitionDesc)); // Prepare memory + memcpy(disc->udf_pd[vds], position, sizeof(struct partitionDesc)); + break; + case TAG_IDENT_LVD: + if(disc->udf_lvd[vds] != 0) { + err("Structure LVD is already set. Probably error at tag or media\n"); + unmap_chunk(dev, chunk, st_size); + return -4; + } + dbg("LVD size: 0x%lx\n", sizeof(struct logicalVolDesc)); + + struct logicalVolDesc *lvd; + lvd = (struct logicalVolDesc *)(position); + + disc->udf_lvd[vds] = malloc(sizeof(struct logicalVolDesc)+lvd->mapTableLength); // Prepare memory + memcpy(disc->udf_lvd[vds], position, sizeof(struct logicalVolDesc)+lvd->mapTableLength); + dbg("NumOfPartitionMaps: %d\n", disc->udf_lvd[vds]->numPartitionMaps); + dbg("MapTableLength: %d\n", disc->udf_lvd[vds]->mapTableLength); + for(int i=0; i<(int)(le32_to_cpu(lvd->mapTableLength)); i++) { + note("[0x%02x] ", disc->udf_lvd[vds]->partitionMaps[i]); + } + note("\n"); + break; + case TAG_IDENT_USD: + if(disc->udf_usd[vds] != 0) { + err("Structure USD is already set. Probably error at tag or media\n"); + unmap_chunk(dev, chunk, st_size); + return -4; + } + + struct unallocSpaceDesc *usd; + usd = (struct unallocSpaceDesc *)(position); + dbg("VolDescNum: %d\n", usd->volDescSeqNum); + dbg("NumAllocDesc: %d\n", usd->numAllocDescs); + + disc->udf_usd[vds] = malloc(sizeof(struct unallocSpaceDesc)+(usd->numAllocDescs)*sizeof(extent_ad)); // Prepare memory + memcpy(disc->udf_usd[vds], position, sizeof(struct unallocSpaceDesc)+(usd->numAllocDescs)*sizeof(extent_ad)); + break; + case TAG_IDENT_TD: + if(disc->udf_td[vds] != 0) { + err("Structure TD is already set. Probably error at tag or media\n"); + unmap_chunk(dev, chunk, st_size); + return -4; + } + disc->udf_td[vds] = malloc(sizeof(struct terminatingDesc)); // Prepare memory + memcpy(disc->udf_td[vds], position, sizeof(struct terminatingDesc)); + // Found terminator, ending. + unmap_chunk(dev, chunk, st_size); + return 0; + case 0: + // Found end of VDS, ending. + unmap_chunk(dev, chunk, st_size); + return 0; + default: + // Unkown TAG + fatal("Unknown TAG found at %p. Ending.\n", position); + unmap_chunk(dev, chunk, st_size); + return -3; + } + + dbg("Unmap old chunk...\n"); + unmap_chunk(dev, chunk, st_size); + dbg("Unmapped\n"); + location = location + sectorsize; + chunk = location/chunksize; + offset = location%chunksize; + dbg("New VDS Location: 0x%llx, chunk: %d, offset: 0x%lx\n", location, chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + position = dev[chunk]+offset; + } + //unmap_chunk(dev, chunk); + return 0; +} + +/** + * \brief Selects **MAIN_VDS** or **RESERVE_VDS** for required descriptor based on errors + * + * If some function needs some descriptor from VDS, it requires check if descriptor is structurally correct. + * This is already checked and stored in seq->main[vds].error and seq->reserve[vds].error. + * This function search thru this sequence based on tagIdent and looks at errors when found. + * + * \param[in] *seq descriptor sequence + * \param[in] tagIdent identifier to find + * \return MAIN_VDS or RESERVE_VDS if correct descriptor found + * \return -1 if no correct descriptor found or both are broken. + */ +int get_correct(vds_sequence_t *seq, uint16_t tagIdent) { + for(int i=0; imain[i].tagIdent == tagIdent && (seq->main[i].error & (E_CRC | E_CHECKSUM | E_WRONGDESC)) == 0) { + return MAIN_VDS; + } else if(seq->reserve[i].tagIdent == tagIdent && (seq->reserve[i].error & (E_CRC | E_CHECKSUM | E_WRONGDESC)) == 0) { + return RESERVE_VDS; + } + } + return -1; +} + +/** + * \brief Loads Logical Volume Integrity Descriptor (LVID) and stores it at struct udf_disc + * + * Loads LVID descriptor to disc stucture. Beside that, it stores selected params in stats structure for + * easier access. + * + * \param[in] *dev pointer to device array + * \param[out] *disc LVID is stored in udf_disc structure + * \param[in] sectorsize device logical sector size + * \param[out] *stats file system status + * \param[in] *seq descriptor sequence + * \return 0 everything ok + * \return 4 structure is already set or no correct LVID found + */ +int get_lvid(int fd, uint8_t **dev, struct udf_disc *disc, int sectorsize, size_t st_size, struct filesystemStats *stats, vds_sequence_t *seq ) { + uint32_t chunksize = CHUNK_SIZE; + uint32_t chunk = 0; + uint32_t offset = 0; + + if(disc->udf_lvid != 0) { + err("Structure LVID is already set. Probably error at tag or media\n"); + return 4; + } + int vds = -1; + if((vds=get_correct(seq, TAG_IDENT_LVD)) < 0) { + err("No correct LVD found. Aborting.\n"); + return 4; + } + + uint32_t loc = disc->udf_lvd[vds]->integritySeqExt.extLocation; + uint32_t len = disc->udf_lvd[vds]->integritySeqExt.extLength; + dbg("LVID: loc: %d, len: %d\n", loc, len); + + chunk = (loc*sectorsize)/chunksize; + offset = (loc*sectorsize)%chunksize; + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + struct logicalVolIntegrityDesc *lvid; + lvid = (struct logicalVolIntegrityDesc *)(dev[chunk]+offset); + + disc->udf_lvid = malloc(len); + memcpy(disc->udf_lvid, dev[chunk]+offset, len); + dbg("LVID: lenOfImpUse: %d\n",disc->udf_lvid->lengthOfImpUse); + dbg("LVID: numOfPartitions: %d\n", disc->udf_lvid->numOfPartitions); + + struct impUseLVID *impUse = (struct impUseLVID *)((uint8_t *)(disc->udf_lvid) + sizeof(struct logicalVolIntegrityDesc) + 8*disc->udf_lvid->numOfPartitions); //this is because of ECMA 167r3, 3/24, fig 22 + //stats->actUUID = ((struct logicalVolHeaderDesc *)disc->udf_lvid->logicalVolContentsUse)->uniqueID; + struct logicalVolHeaderDesc *lvhd = (struct logicalVolHeaderDesc *)(disc->udf_lvid->logicalVolContentsUse); + stats->actUUID = lvhd->uniqueID; + + stats->LVIDtimestamp = lvid->recordingDateAndTime; + + dbg("LVID: number of files: %d\n", impUse->numOfFiles); + dbg("LVID: number of dirs: %d\n", impUse->numOfDirs); + dbg("LVID: UDF rev: min read: %04x\n", impUse->minUDFReadRev); + dbg(" min write: %04x\n", impUse->minUDFWriteRev); + dbg(" max write: %04x\n", impUse->maxUDFWriteRev); + dbg("Next Unique ID: %d\n", stats->actUUID); + dbg("LVID recording timestamp: %s\n", print_timestamp(stats->LVIDtimestamp)); + + stats->expNumOfFiles = impUse->numOfFiles; + stats->expNumOfDirs = impUse->numOfDirs; + + stats->minUDFReadRev = impUse->minUDFReadRev; + stats->minUDFWriteRev = impUse->minUDFWriteRev; + stats->maxUDFWriteRev = impUse->maxUDFWriteRev; + + dbg("Logical Volume Contents Use\n"); + for(int i=0; i<32; ) { + for(int j=0; j<8; j++, i++) { + note("%02x ", disc->udf_lvid->logicalVolContentsUse[i]); + } + note("\n"); + } + dbg("Free Space Table\n"); + for(int i=0; i<(int)(disc->udf_lvid->numOfPartitions * 4); i++) { + note("0x%08x, %d\n", disc->udf_lvid->freeSpaceTable[i], disc->udf_lvid->freeSpaceTable[i]); + } + stats->freeSpaceBlocks = disc->udf_lvid->freeSpaceTable[0]; + stats->partitionSizeBlocks = disc->udf_lvid->freeSpaceTable[1]; + + dbg("Size Table\n"); + for(int i=disc->udf_lvid->numOfPartitions * 4; i<(int)(disc->udf_lvid->numOfPartitions * 4 * 2); i++) { + note("0x%08x, %d\n", disc->udf_lvid->freeSpaceTable[i],disc->udf_lvid->freeSpaceTable[i]); + } + + if(disc->udf_lvid->nextIntegrityExt.extLength > 0) { + dbg("Next integrity extent found.\n"); + } else { + dbg("No other integrity extents are here.\n"); + } + + unmap_chunk(dev, chunk, st_size); + return 0; +} + +/** + * \brief Checks Logical Block Size stored in LVD with autodetected or declared size. + * + * Compare LVD->LogicalBlockSize with detected or declared block size. If they matches, fsck can continue. + * Otherwise it stops with fatal error, because medium is badly created and therefore unfixable. + * + * Return can be sum of its parts. + * + * \param[in] fd device file descriptor + * \param[in] *dev pointer to device array + * \param[out] *disc udf_disc structure + * \param[in] blocksize device logical sector size + * \param[in] force_blocksize 1 represent user defined sector size + * \param[in] *seq descriptor sequence + * \return 0 blocksize matches + * \return 4 blocksize differs from detected one + * \return 16 blocksize differs from declared one + */ +int check_blocksize(int fd, uint8_t **dev, struct udf_disc *disc, int blocksize, int force_sectorsize, vds_sequence_t *seq) { + + int vds = -1; + if((vds=get_correct(seq, TAG_IDENT_LVD)) < 0) { + err("No correct LVD found. Aborting.\n"); + return 4; + } + + int lvd_blocksize = disc->udf_lvd[vds]->logicalBlockSize; + + + if(lvd_blocksize != blocksize) { + if(force_sectorsize) { + err("User defined block size is not corresponding to detected. Aborting.\n"); + return 16 | 4; + } + + err("Detected block size is not corresponding to stored in medium. Probably badly created UDF. Aborting.\n"); + return 4; + } + + dbg("Blocksize matches.\n"); + + (void)dev; + (void)fd; + return 0; +} +/** + * \brief Select various volume identifiers and store them at stats structure + * + * At this moment it selects PVD->volSetIdent and FSD->logicalVolIdent + * + * \param[in] *disc disc structure + * \param[out] *stats file system status structure + * \param[in] *seq VDS sequence + * + * \return 0 -- everything OK + * \return 4 -- no correct PVD found. + */ +int get_volume_identifier(struct udf_disc *disc, struct filesystemStats *stats, vds_sequence_t *seq ) { + int vds = -1; + if((vds=get_correct(seq, TAG_IDENT_PVD)) < 0) { + err("No correct PVD found. Aborting.\n"); + return 4; + } + char *namebuf = calloc(1,128*2); + memset(namebuf, 0, 128*2); + decode_string(disc, disc->udf_pvd[vds]->volSetIdent, namebuf, 128, 128*2); + + for(int i=0; i<16; i++) { + if((namebuf[i] >= '0' && namebuf[i]<='9') || (namebuf[i] >= 'a' && namebuf[i] <= 'z')) { + continue; + } else { + warn("Volume Set Identifier Unique Identifier is not compliant.\n"); + //append_error(seq, TAG_IDENT_PVD, MAIN_VDS, E_UUID); + //append_error(seq, TAG_IDENT_PVD, RESERVE_VDS, E_UUID); + //TODO create fix somewhere. Use this gen_uuid_from_vol_set_ident() for generating new UUID. + break; + } + } + + stats->volumeSetIdent = namebuf; + stats->partitionIdent = disc->udf_fsd->logicalVolIdent; + return 0; +} + +/** + * \brief Marks used blocks in actual bitmap + * + * This function mark or unmark specified areas of block bitmap at stats->actPartitionBitmap + * If medium is consistent, this bitmap should be same as declared (stats->expPartitionBitmap) + * + * \param[in,out] *stats file system status structure + * \param[in] lbn starting logical block of area + * \param[in] size length of marked area + * \param[in] MARK_BLOCK or UNMARK_BLOCK switch + * + * \return 0 everything is OK or size is 0 (nothing to mark) + * \return -1 marking failed (actParititonBitmap is uninitialized) + */ +uint8_t markUsedBlock(struct filesystemStats *stats, uint32_t lbn, uint32_t size, uint8_t mark) { + if(lbn+size < stats->partitionNumOfBits) { + uint32_t byte = 0; + uint8_t bit = 0; + + dbg("Marked LBN %d with size %d\n", lbn, size); + if(size == 0) { + dbg("Size is 0, return.\n"); + return 0; + } + int i = 0; + do { + byte = lbn/8; + bit = lbn%8; + if(mark) { // write 0 + if(stats->actPartitionBitmap[byte] & (1<actPartitionBitmap[byte] &= ~(1<actPartitionBitmap[byte] & (1<actPartitionBitmap[byte] |= 1<partitionSizeBlocks/8 && i < 100+shift; ) { + for(int j=0; j<16; j++, i++) { + note("%02x ", stats->actPartitionBitmap[i]); + } + note("| "); + for(int j=0; j<16; j++, k++) { + note("%02x ", stats->expPartitionBitmap[k]); + } + note("\n"); + } + note("\n"); + shift = 4400; + for(int i=0+shift, k=0+shift; ipartitionSizeBlocks/8 && i < 100+shift; ) { + for(int j=0; j<16; j++, i++) { + note("%02x ", stats->actPartitionBitmap[i]); + } + note("| "); + for(int j=0; j<16; j++, k++) { + note("%02x ", stats->expPartitionBitmap[k]); + } + note("\n"); + } + note("\n"); +#endif + } else { + err("MARKING USED BLOCK TO BITMAP FAILED\n"); + return -1; + } + return 0; +} + +/** + * \brief Loads File Set Descriptor and stores it at struct udf_disc + * + * After storing also do check for dstring defects. + * + * \param[in] *dev pointer to device array + * \param[out] *disc FSD is stored in udf_disc structure + * \param[in] sectorsize device logical sector size + * \param[out] lbnlsn LBN starting offset + * \param[in] *stats file system status + * \param[in] *seq VDS sequence + * + * \return 0 everything ok + * \return 4 no correct PD or LVD found + * \return 8 error during FSD identification + */ +uint8_t get_fsd(int fd, uint8_t **dev, struct udf_disc *disc, int sectorsize, size_t st_size, uint32_t *lbnlsn, struct filesystemStats * stats, vds_sequence_t *seq) { + long_ad *lap; + int vds = -1; + uint32_t offset = 0, chunk = 0; + uint32_t chunksize = CHUNK_SIZE; + uint64_t position = 0; + + if((vds=get_correct(seq, TAG_IDENT_PD)) < 0) { + err("No correct PD found. Aborting.\n"); + return 4; + } + dbg("PD partNum: %d\n", disc->udf_pd[vds]->partitionNumber); + uint32_t lsnBase = 0; + lsnBase = disc->udf_pd[vds]->partitionStartingLocation; + dbg("Partition Length: %d\n", disc->udf_pd[vds]->partitionLength); + + dbg("LSN base: %d\n", lsnBase); + + vds = -1; + if((vds=get_correct(seq, TAG_IDENT_LVD)) < 0) { + err("No correct LVD found. Aborting.\n"); + return 4; + } + uint32_t lbSize = le32_to_cpu(disc->udf_lvd[vds]->logicalBlockSize); + + lap = (long_ad *)disc->udf_lvd[vds]->logicalVolContentsUse; //FIXME BIG_ENDIAN use lela_to_cpu, but not on ptr to disc. Must store it on different place. + lb_addr filesetblock = lelb_to_cpu(lap->extLocation); + uint32_t filesetlen = lap->extLength; + + dbg("FSD at (%d, p%d)\n", + lap->extLocation.logicalBlockNum, + lap->extLocation.partitionReferenceNum); + + dbg("LAP: length: %x, LBN: %x, PRN: %x\n", filesetlen, filesetblock.logicalBlockNum, filesetblock.partitionReferenceNum); + dbg("LAP: LSN: %d\n", lsnBase/*+filesetblock.logicalBlockNum*/); + + position = (lsnBase+filesetblock.logicalBlockNum)*lbSize; + chunk = position/chunksize; + offset = position%chunksize; + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + disc->udf_fsd = malloc(sizeof(struct fileSetDesc)); + memcpy(disc->udf_fsd, dev[chunk]+offset, sizeof(struct fileSetDesc)); + + if(le16_to_cpu(disc->udf_fsd->descTag.tagIdent) != TAG_IDENT_FSD) { + err("Error identifiing FSD. Tag ID: 0x%x\n", disc->udf_fsd->descTag.tagIdent); + free(disc->udf_fsd); + unmap_chunk(dev, chunk, st_size); + return 8; + } + dbg("LogicVolIdent: %s\nFileSetIdent: %s\n", (disc->udf_fsd->logicalVolIdent), (disc->udf_fsd->fileSetIdent)); + + increment_used_space(stats, filesetlen, lap->extLocation.logicalBlockNum); + + *lbnlsn = lsnBase; + + unmap_chunk(dev, chunk, st_size); + + stats->dstringFSDLogVolIdentErr = check_dstring(disc->udf_fsd->logicalVolIdent, 128); + stats->dstringFSDFileSetIdentErr = check_dstring(disc->udf_fsd->fileSetIdent, 32); + stats->dstringFSDCopyrightFileIdentErr = check_dstring(disc->udf_fsd->copyrightFileIdent, 32); + stats->dstringFSDAbstractFileIdentErr = check_dstring(disc->udf_fsd->abstractFileIdent, 32); + + dbg("Stream Length: %d\n", disc->udf_fsd->streamDirectoryICB.extLength); + + (void)sectorsize; + +#if HEXPRINT + print_hex_array(disc->udf_fsd, sizeof(struct fileSetDesc)); +#endif + + return 0; +} + +/** + * \brief Inspect AED and return array of its allocation descriptors + * + * This function returns pointer to array of allocation descriptors. This pointer points to memory mapped device! + * + * \param[in] *dev memory mapped device + * \param[in] lsnBase LBN offset to LSN + * \param[in] aedlbn LBN of AED + * \param[out] *lengthADArray size of allocation descriptor array ADArray + * \param[out] **ADAarray allocation descriptors array itself + * \param[in] *stats file system status + * \param[out] status error status + * + * \return 0 -- AED found and ADArray is set + * \return 4 -- AED not found + * \return 4 -- checksum failed + * \return 4 -- CRC failed + */ +uint8_t inspect_aed(int fd, uint8_t **dev, size_t st_size, uint32_t lsnBase, uint32_t aedlbn, uint32_t *lengthADArray, uint8_t **ADArray, struct filesystemStats *stats, uint8_t *status) { + uint16_t lbSize = stats->blocksize; + uint32_t lad = 0; + uint32_t offset = 0, chunk = 0, chunksize = CHUNK_SIZE; + + chunk = ((lsnBase + aedlbn)*lbSize)/chunksize; + offset = ((lsnBase + aedlbn)*lbSize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + struct allocExtDesc *aed = (struct allocExtDesc *)(dev[chunk]+offset); + if(aed->descTag.tagIdent == TAG_IDENT_AED) { + //checksum + if(!checksum(aed->descTag)) { + err("AED checksum failed\n"); + *status |= 4; + return 4; + } + //CRC +#if 0 + dbg("AED: descCRCLength: %d, LAD: %d\n", aed->descTag.descCRCLength, aed->lengthAllocDescs); + dbg("AED: CRC: 0x%04x\n", aed->descTag.descCRC); + for(int i=16; idescTag.descCRCLength+16; i++) { + dbg("[%d]: CRC: 0x%04x\n", i, udf_crc((uint8_t *)(aed) + sizeof(tag), i - sizeof(tag), 0)); + } + if(crc(aed, aed->descTag.descCRCLength-8)) { + err("AED CRC failed\n"); + *status |= 4; + return 4; + } +#endif + // position + if(check_position(aed->descTag, aedlbn)) { + err("AED position differs\n"); + *status |= 4; + } + + lad = aed->lengthAllocDescs; + *ADArray = (uint8_t *)(aed)+sizeof(struct allocExtDesc); + *lengthADArray = lad; +#if 0 //For debug purposes only + uint32_t line = 0; + dbg("AED Array\n"); + for(int i=0; i<*lengthADArray; ) { + note("[%04d] ",line++); + for(int j=0; j<8; j++, i++) { + note("%02x ", (*ADArray)[i]); + } + note("\n"); + } +#endif +#ifdef MEMTRACE + dbg("ADArray ptr: %p\n", *ADArray); +#endif + dbg("lengthADArray: %d\n", *lengthADArray); + increment_used_space(stats, lad%lbSize == 0 ? lad/lbSize : lad/lbSize + 1, aedlbn); + return 0; + } else { + err("There should be AED, but is not\n"); + } + return 4; +} + +/** + * \brief FID allocation descriptor position translation function + * + * FID's allocation descriptors are stored at Allocation Descriptors area of FE. Problem is, this area is not + * necessarily in one piece and can be splitted, even in middle of descriptor. This function creates virtual + * linear area for futher processing. + * + * This function internally calls inspect_fid(). + * + * \param[in] *dev memory mapped device + * \param[in] *disc udf_disc structure + * \param[in] lbnlsn LBN offset against LSN + * \param[in] lsn actual LSN + * \param[in] *allocDescs pointer to allocation descriptors area + * \param[in] lengthAllocDescs length of allocation descriptors area + * \param[in] icb_ad type od AD + * \param[in] *stats file system status + * \param[in] depth depth of FE for printing + * \param[in] *seq VDS sequence + * \param[out] *status run status + * + * \return 0 -- everything OK + * \return 1 -- Unsupported AD + * \return 2 -- FID array allocation failed + * \return 255 -- inspect_aed() failed + */ +uint8_t translate_fid(int fd, uint8_t **dev, const struct udf_disc *disc, size_t st_size, uint32_t lbnlsn, uint32_t lsn, uint8_t *allocDescs, uint32_t lengthAllocDescs, uint16_t icb_ad, struct filesystemStats *stats, uint32_t depth, vds_sequence_t *seq, uint8_t *status) { + + uint32_t descSize = 0; + uint8_t *fidArray = NULL; + int nAD = 0; + uint32_t overallLength = 0; + uint32_t overallBodyLength = 0; + short_ad *sad = NULL; + long_ad *lad = NULL; + ext_ad *ead = NULL; + uint16_t lbSize = stats->blocksize; + uint32_t lsnBase = lbnlsn; + uint32_t offset = 0, chunk = 0, chunksize = CHUNK_SIZE; + + switch(icb_ad) { + case ICBTAG_FLAG_AD_SHORT: + dbg("Short AD\n"); + descSize = sizeof(short_ad); + break; + case ICBTAG_FLAG_AD_LONG: + dbg("Long AD\n"); + descSize = sizeof(long_ad); + break; + case ICBTAG_FLAG_AD_EXTENDED: + dbg("Extended AD\n"); + descSize = sizeof(ext_ad); + break; + default: + err("[translate_fid] Unsupported icb_ad: 0x%04x\n", icb_ad); + return 1; + } + dbg("LengthOfAllocDescs: %d\n", lengthAllocDescs); + + nAD = lengthAllocDescs/descSize; + +#if 0 // For debug purposes only + uint32_t line = 0; + dbg("FID Alloc Array\n"); + for(int i=0; iextLength & 0x3FFFFFFF; //lower 30 bits are unsiged length + overallBodyLength += lbSize; + dbg("ExtLength: %d, type: %d\n", sad->extLength & 0x3FFFFFFF, sad->extLength>>30); + if(sad->extLength>>30 == 3) { //Extent is AED + switch(icb_ad) { + case ICBTAG_FLAG_AD_SHORT: + //we already have sad + aedlbn = sad->extPosition; + break; + case ICBTAG_FLAG_AD_LONG: + lad = (long_ad *)(allocDescs + i*descSize); + aedlbn = lad->extLocation.logicalBlockNum; + break; + case ICBTAG_FLAG_AD_EXTENDED: + ead = (ext_ad *)(allocDescs + i*descSize); + aedlbn = ead->extLocation.logicalBlockNum; + break; + } + if(inspect_aed(fd, dev, st_size, lsnBase, aedlbn, &lengthADArray, &ADArray, stats, status)) { + err("AED inspection failed.\n"); + return -1; + } +#if 1 + dbg("FID Alloc Array after AED\n"); +#ifdef MEMTRACE + dbg("ADArray ptr: %p\n", ADArray); +#endif + dbg("lengthADArray: %d\n", lengthADArray); +#endif +#if 0 //For debug purposes only + for(int i=0; iextLength >> 30 == 3) { //Extent is AED + aed = 1; + continue; + } + chunk = ((lsnBase + sad->extPosition)*lbSize)/chunksize; + offset = ((lsnBase + sad->extPosition)*lbSize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + memcpy(fidArray+prevExtLength, (uint8_t *)(dev[chunk]+offset), sad->extLength); + increment_used_space(stats, 1, sad->extPosition); + prevExtLength += sad->extLength; + break; + case ICBTAG_FLAG_AD_LONG: + if(aed) { + lad = (long_ad *)(ADArray + i*descSize - lengthAllocDescs); + } else { + lad = (long_ad *)(allocDescs + i*descSize); + } + if(lad->extLength >> 30 == 3) { //Extent is AED + aed = 1; + continue; + } + chunk = ((lsnBase + lad->extLocation.logicalBlockNum)*lbSize)/chunksize; + offset = ((lsnBase + lad->extLocation.logicalBlockNum)*lbSize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + memcpy(fidArray+prevExtLength, (uint8_t *)(dev[chunk]+offset), lad->extLength); + increment_used_space(stats, 1, lad->extLocation.logicalBlockNum); + prevExtLength += lad->extLength; + break; + case ICBTAG_FLAG_AD_EXTENDED: + if(aed) { + ead = (ext_ad *)(ADArray + i*descSize - lengthAllocDescs); + } else { + ead = (ext_ad *)(allocDescs + i*descSize); + } + if(ead->extLength >> 30 == 3) { //Extent is AED + aed = 1; + continue; + } + chunk = ((lsnBase + ead->extLocation.logicalBlockNum)*lbSize)/chunksize; + offset = ((lsnBase + ead->extLocation.logicalBlockNum)*lbSize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + memcpy(fidArray+prevExtLength, (uint8_t *)(dev[chunk]+offset), ead->extLength); + increment_used_space(stats, 1, ead->extLocation.logicalBlockNum); + prevExtLength += ead->extLength; + break; + } + } + + uint8_t tempStatus = 0; + int counter = 0; + for(uint32_t pos=0; pos < overallLength; ) { + dbg("FID #%d\n", counter++); + if(inspect_fid(fd, dev, disc, st_size, lbnlsn, lsn, fidArray, &pos, stats, depth+1, seq, &tempStatus) != 0) { + dbg("1 FID inspection over.\n"); + break; + } + } + dbg("2 FID inspection over.\n"); + + aed = 0; + if(tempStatus & 0x01) { //Something was fixed - we need to copy back array + prevExtLength = 0; + for(int i = 0; i < nAD; i++) { + switch(icb_ad) { + case ICBTAG_FLAG_AD_SHORT: + if(aed) { + sad = (short_ad *)(ADArray + i*descSize - lengthAllocDescs); + } else { + sad = (short_ad *)(allocDescs + i*descSize); + } + if(sad->extLength >> 30 == 3) { //Extent is AED + aed = 1; + continue; + } + chunk = ((lsnBase + sad->extPosition)*lbSize)/chunksize; + offset = ((lsnBase + sad->extPosition)*lbSize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + memcpy((uint8_t *)(dev[chunk]+offset), fidArray+prevExtLength, sad->extLength); + prevExtLength += sad->extLength; + break; + case ICBTAG_FLAG_AD_LONG: + if(aed) { + lad = (long_ad *)(ADArray + i*descSize - lengthAllocDescs); + } else { + lad = (long_ad *)(allocDescs + i*descSize); + } + if(lad->extLength >> 30 == 3) { //Extent is AED + aed = 1; + continue; + } + chunk = ((lsnBase + lad->extLocation.logicalBlockNum)*lbSize)/chunksize; + offset = ((lsnBase + lad->extLocation.logicalBlockNum)*lbSize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + memcpy((uint8_t *)(dev[chunk]+offset), fidArray+prevExtLength, lad->extLength); + prevExtLength += lad->extLength; + break; + case ICBTAG_FLAG_AD_EXTENDED: + if(aed) { + ead = (ext_ad *)(ADArray + i*descSize - lengthAllocDescs); + } else { + ead = (ext_ad *)(allocDescs + i*descSize); + } + if(ead->extLength >> 30 == 3) { //Extent is AED + aed = 1; + continue; + } + chunk = ((lsnBase + ead->extLocation.logicalBlockNum)*lbSize)/chunksize; + offset = ((lsnBase + ead->extLocation.logicalBlockNum)*lbSize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + memcpy((uint8_t *)(dev[chunk]+offset), fidArray+prevExtLength, ead->extLength); + prevExtLength += ead->extLength; + break; + } + } + } + + dbg("3 FID inspection copyback done.\n"); + //free array + free(fidArray); + (*status) |= tempStatus; + return 0; +} + +/** + * \brief FID parsing function + * + * This function pareses via FIDs. It continues to its FE using get_file() function. + * Checks and fixes *Unique ID*, *Serial Numbers* or unfinished writings. + * + * This fucntion is complement to get_file() and translate_fid(). + * + * \param[in,out] *dev memory mapped device + * \param[in] *disc udf_disc structure + * \param[in] lbnlsn LBN offset against LSN + * \param[in] lsn actual LSN + * \param[in] *base base pointer for for FID area + * \param[in,out] *pos actial position in FID area + * \param[in] *stats file system status + * \param[in] depth depth of FE for printing + * \param[in] *seq VDS sequence + * \param[out] *status run status + * + * \return 0 -- everything OK + * \return 1 -- Unknown descriptor found + * \return 252 -- FID checksum failed + * \return 251 -- FID CRC failed + */ +uint8_t inspect_fid(int fd, uint8_t **dev, const struct udf_disc *disc, size_t st_size, uint32_t lbnlsn, uint32_t lsn, uint8_t *base, uint32_t *pos, struct filesystemStats *stats, uint32_t depth, vds_sequence_t *seq, uint8_t *status) { + uint32_t flen, padding; + uint32_t lsnBase = lbnlsn; + struct fileIdentDesc *fid = (struct fileIdentDesc *)(base + *pos); + struct fileInfo info; + memset(&info, 0, sizeof(struct fileInfo)); + uint32_t offset = 0, chunk = 0; + uint64_t position = 0; + uint32_t chunksize = CHUNK_SIZE; + + dbg("FID pos: 0x%x\n", *pos); + if (!checksum(fid->descTag)) { + err("[inspect fid] FID checksum failed.\n"); + return -4; + warn("DISABLED ERROR RETURN\n"); + } + if (le16_to_cpu(fid->descTag.tagIdent) == TAG_IDENT_FID) { + dwarn("FID found (%d)\n",*pos); + flen = 38 + le16_to_cpu(fid->lengthOfImpUse) + fid->lengthFileIdent; + padding = 4 * ((le16_to_cpu(fid->lengthOfImpUse) + fid->lengthFileIdent + 38 + 3)/4) - (le16_to_cpu(fid->lengthOfImpUse) + fid->lengthFileIdent + 38); + + dbg("lengthOfImpUse: %d\n", fid->lengthOfImpUse); + dbg("flen+padding: %d\n", flen+padding); + if(crc(fid, flen + padding)) { + err("FID CRC failed.\n"); + return -5; + warn("DISABLED ERROR RETURN\n"); + } + dbg("FID: ImpUseLen: %d\n", fid->lengthOfImpUse); + dbg("FID: FilenameLen: %d\n", fid->lengthFileIdent); + if(fid->lengthFileIdent == 0) { + dbg("ROOT directory\n"); + } else { + char *namebuf = calloc(1,256*2); + memset(namebuf, 0, 256*2); + size_t size = decode_utf8(fid->fileIdent, namebuf, fid->lengthFileIdent, 256*2); + if(size == (size_t) - 1) { //Decoding failed + warn("Filename decoding failed."); //TODO add tests + } else { + dbg("Size: %d\n", size); + dbg("%sFilename: %s\n", depth2str(depth), namebuf/*fid->fileIdent*/); + info.filename = namebuf/*(char *)fid->fileIdent+1*/; + } + } + + dbg("Tag Serial Num: %d\n", fid->descTag.tagSerialNum); + if(stats->AVDPSerialNum != fid->descTag.tagSerialNum) { + err("(%s) Tag Serial Number differs.\n", info.filename); + uint8_t fixsernum = autofix; + if(interactive) { + if(prompt("Fix it? [Y/n] ")) { + fixsernum = 1; + } + } + if(fixsernum) { + fid->descTag.tagSerialNum = stats->AVDPSerialNum; + fid->descTag.descCRC = calculate_crc(fid, flen+padding); + fid->descTag.tagChecksum = calculate_checksum(fid->descTag); + + position = (lsn) * stats->blocksize; + chunk = position/chunksize; + offset = position%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + struct fileEntry *fe = (struct fileEntry *)(dev[chunk]+offset); + struct extendedFileEntry *efe = (struct extendedFileEntry *)(dev[chunk]+offset); + if(efe->descTag.tagIdent == TAG_IDENT_EFE) { + efe->descTag.descCRC = calculate_crc(efe, sizeof(struct extendedFileEntry) + le32_to_cpu(efe->lengthExtendedAttr) + le32_to_cpu(efe->lengthAllocDescs)); + efe->descTag.tagChecksum = calculate_checksum(efe->descTag); + dbg("[CHECKSUM] %"PRIx16"\n", efe->descTag.tagChecksum); + } else if(efe->descTag.tagIdent == TAG_IDENT_FE) { + fe->descTag.descCRC = calculate_crc(fe, sizeof(struct fileEntry) + le32_to_cpu(fe->lengthExtendedAttr) + le32_to_cpu(fe->lengthAllocDescs)); + fe->descTag.tagChecksum = calculate_checksum(fe->descTag); + dbg("[CHECKSUM] %"PRIx16"\n", fe->descTag.tagChecksum); + } else { + err("(%s) FID parent FE not found.\n", info.filename); + } + imp("(%s) Tag Serial Number was fixed.\n", info.filename); + sync_chunk(dev, chunk, st_size); + *status |= 1; + } else { + *status |= 4; + } + } + + dbg("FileVersionNum: %d\n", fid->fileVersionNum); + + info.fileCharacteristics = fid->fileCharacteristics; + if((fid->fileCharacteristics & FID_FILE_CHAR_DELETED) == 0) { //NOT deleted, continue + dbg("ICB: LSN: %d, length: %d\n", fid->icb.extLocation.logicalBlockNum + lsnBase, fid->icb.extLength); + dbg("ROOT ICB: LSN: %d\n", disc->udf_fsd->rootDirectoryICB.extLocation.logicalBlockNum + lsnBase); + + if(*pos == 0) { + dbg("Parent. Not Following this one\n"); + }else if(fid->icb.extLocation.logicalBlockNum + lsnBase == lsn) { + dbg("Self. Not following this one\n"); + } else if(fid->icb.extLocation.logicalBlockNum + lsnBase == disc->udf_fsd->rootDirectoryICB.extLocation.logicalBlockNum + lsnBase) { + dbg("ROOT. Not following this one.\n"); + } else { + uint32_t uuid = 0; + memcpy(&uuid, (fid->icb).impUse+2, sizeof(uint32_t)); + dbg("UUID: %d\n", uuid); + if(stats->maxUUID < uuid) { + stats->maxUUID = uuid; + dwarn("New MAX UUID\n"); + } + int fixuuid = 0; + if(uuid == 0) { + err("(%s) FID Unique ID is 0. There should be %d.\n", info.filename, stats->actUUID); + if(interactive) { + if(prompt("Fix it? [Y/n] ")) { + fixuuid = 1; + } else { + *status |= 4; + } + } + if(autofix) { + fixuuid = 1; + } else { + *status |= 4; + } + if(fixuuid) { + uuid = stats->actUUID; + stats->maxUUID = uuid; + stats->actUUID++; + seq->lvid.error |= E_UUID; + fid->icb.impUse[2] = uuid; + fid->descTag.descCRC = calculate_crc(fid, flen+padding); + fid->descTag.tagChecksum = calculate_checksum(fid->descTag); + dbg("Location: %d\n", fid->descTag.tagLocation); + + position = (lsn) * stats->blocksize; + chunk = position/chunksize; + offset = position%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + struct fileEntry *fe = (struct fileEntry *)(dev[chunk]+offset); + struct extendedFileEntry *efe = (struct extendedFileEntry *)(dev[chunk]+offset); + if(efe->descTag.tagIdent == TAG_IDENT_EFE) { + efe->descTag.descCRC = calculate_crc(efe, sizeof(struct extendedFileEntry) + le32_to_cpu(efe->lengthExtendedAttr) + le32_to_cpu(efe->lengthAllocDescs)); + efe->descTag.tagChecksum = calculate_checksum(efe->descTag); + } else if(efe->descTag.tagIdent == TAG_IDENT_FE) { + fe->descTag.descCRC = calculate_crc(fe, sizeof(struct fileEntry) + le32_to_cpu(fe->lengthExtendedAttr) + le32_to_cpu(fe->lengthAllocDescs)); + fe->descTag.tagChecksum = calculate_checksum(fe->descTag); + } else { + + } + imp("(%s) UUID was fixed.\n", info.filename); + *status |= 1; + } + } + dbg("ICB to follow.\n"); + int tmp_status = get_file(fd, dev, disc, st_size, lbnlsn, (fid->icb).extLocation.logicalBlockNum + lsnBase, stats, depth, uuid, info, seq); + if(tmp_status == 32) { //32 means delete this FID + fid->fileCharacteristics |= FID_FILE_CHAR_DELETED; //Set deleted flag + memset(&(fid->icb), 0, sizeof(long_ad)); //clear ICB according ECMA-167r3, 4/14.4.5 + fid->descTag.descCRC = calculate_crc(fid, flen+padding); + fid->descTag.tagChecksum = calculate_checksum(fid->descTag); + dbg("Location: %d\n", fid->descTag.tagLocation); + + position = (fid->descTag.tagLocation + lbnlsn) * stats->blocksize; + chunk = position/chunksize; + offset = position%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + struct fileEntry *fe = (struct fileEntry *)(dev[chunk] + offset); + struct extendedFileEntry *efe = (struct extendedFileEntry *)(dev[chunk]+offset); + if(efe->descTag.tagIdent == TAG_IDENT_EFE) { + efe->descTag.descCRC = calculate_crc(efe, sizeof(struct extendedFileEntry) + le32_to_cpu(efe->lengthExtendedAttr) + le32_to_cpu(efe->lengthAllocDescs)); + efe->descTag.tagChecksum = calculate_checksum(efe->descTag); + } else if(efe->descTag.tagIdent == TAG_IDENT_EFE) { + fe->descTag.descCRC = calculate_crc(fe, sizeof(struct fileEntry) + le32_to_cpu(fe->lengthExtendedAttr) + le32_to_cpu(fe->lengthAllocDescs)); + fe->descTag.tagChecksum = calculate_checksum(fe->descTag); + } else { + err("(%s) FID parent FE not found.\n", info.filename); + } + imp("(%s) Unifinished file was removed.\n", info.filename); + + tmp_status = 1; + } + *status |= tmp_status; + dbg("Return from ICB\n"); + } + } else { + dbg("DELETED FID\n"); + *status |= check_dstring(fid->fileIdent, fid->lengthFileIdent) ? 4 : 0; //FIXME expand for fixing later. + print_file_info(info, depth); + } + dbg("Len: %d, padding: %d\n", flen, padding); + *pos = *pos + flen + padding; + note("\n"); + } else { + msg("Ident: %x\n", le16_to_cpu(fid->descTag.tagIdent)); + uint8_t *fidarray = (uint8_t *)fid; + for(int i=0; i<80;) { + for(int j=0; j<8; j++, i++) { + note("%02x ", fidarray[i]); + } + note("\n"); + } + return 1; + } + + free(info.filename); + return 0; +} + +/** + * \brief Pair function capturing used space and its position + * + * This function is pair with decrement_used_space() + * + * It only stores information about used:free space ration and positions + * + * \param[in,out] *stats file system status contatins fields used for free space counting and bitmaps for position marking + * \param[in] increment size of space to mark + * \param[in] its position + */ +void increment_used_space(struct filesystemStats *stats, uint64_t increment, uint32_t position) { + stats->usedSpace += (increment % stats->blocksize == 0 ? increment/stats->blocksize : increment/stats->blocksize+1)*stats->blocksize; + markUsedBlock(stats, position, increment % stats->blocksize == 0 ? increment/stats->blocksize : increment/stats->blocksize+1, MARK_BLOCK); +#if DEBUG + uint64_t bits = count_used_bits(stats); + dwarn("INCREMENT to %d (%d) / (%d)\n", stats->usedSpace, stats->usedSpace/stats->blocksize, bits); +#endif +} + +/** + * \brief Pair function capturing used space and its position + * + * This function is pair with increment_used_space() + * + * It only stores information about used:free space ration and positions + * + * \param[in,out] *stats file system status contatins fields used for free space counting and bitmaps for position marking + * \param[in] increment size of space to mark + * \param[in] its position + */ +void decrement_used_space(struct filesystemStats *stats, uint64_t increment, uint32_t position) { + stats->usedSpace -= (increment % stats->blocksize == 0 ? increment/stats->blocksize : increment/stats->blocksize+1)*stats->blocksize; + markUsedBlock(stats, position, increment % stats->blocksize == 0 ? increment/stats->blocksize : increment/stats->blocksize+1, UNMARK_BLOCK); +#if DEBUG + uint64_t bits = count_used_bits(stats); + dwarn("DECREMENT to %d (%d) / (%d)\n", stats->usedSpace, stats->usedSpace/stats->blocksize, bits); +#endif +} + +/** + * \brief (E)FE parsing function + * + * This function parses thru file tree, made of FE. It is complement to inspect_fid() function, which parses FIDs. + * + * It fixes *Unifinished writes*, *File modifiacation timestamps* (or records them for LVID fix, depending on error) and *Unique ID*. + * + * When it finds directory, it calls inspect_fid() to process its contents. + * + * \param[in,out] *dev memory mapped device + * \param[in] *disc udf_disc structure + * \param[in] lbnlsn LBN offset against LSN + * \param[in] lsn actual LSN + * \param[in,out] *stats file system status + * \param[in] depth depth of FE for printing + * \param[in] uuid Unique ID from parent FID + * \param[in] info file information structure for easier handling for print + * \param[in] *seq VDS sequence + * + * \return 4 -- No correct LVD found + * \return 4 -- Checksum failed + * \return 4 -- CRC failed + * \return 32 -- removed unfinished file + * \return sum of status returned from inspect_fid(), translate_fid() or own actions (4 for unfixed error, 1 for fixed error, 0 for no error) + */ +uint8_t get_file(int fd, uint8_t **dev, const struct udf_disc *disc, size_t st_size, uint32_t lbnlsn, uint32_t lsn, struct filesystemStats *stats, uint32_t depth, uint32_t uuid, struct fileInfo info, vds_sequence_t *seq ) { + tag descTag; + struct fileEntry *fe; + struct extendedFileEntry *efe; + int vds = -1; + + if((vds=get_correct(seq, TAG_IDENT_LVD)) < 0) { + err("No correct LVD found. Aborting.\n"); + return 4; + } + + uint32_t lbSize = le32_to_cpu(disc->udf_lvd[vds]->logicalBlockSize); + uint32_t lsnBase = lbnlsn; + uint8_t dir = 0; + uint8_t status = 0; + uint32_t chunksize = CHUNK_SIZE; + uint32_t chunk = 0; + uint32_t offset = 0; + uint64_t position = 0; + + dwarn("\n(%d) ---------------------------------------------------\n", lsn); + position = lbSize*lsn; + chunk = position/chunksize; + offset = position%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + descTag = *(tag *)(dev[chunk]+offset); + if(!checksum(descTag)) { + err("Tag checksum failed. Unable to continue.\n"); + return 4; + } + + dbg("global FE increment.\n"); + dbg("usedSpace: %d\n", stats->usedSpace); + increment_used_space(stats, lbSize, lsn-lbnlsn); + dbg("usedSpace: %d\n", stats->usedSpace); + switch(le16_to_cpu(descTag.tagIdent)) { + case TAG_IDENT_FE: + case TAG_IDENT_EFE: + dir = 0; + fe = (struct fileEntry *)(dev[chunk]+offset); + efe = (struct extendedFileEntry *)fe; + uint8_t ext = 0; + + if(le16_to_cpu(descTag.tagIdent) == TAG_IDENT_EFE) { + dwarn("[EFE]\n"); + if(crc(efe, sizeof(struct extendedFileEntry) + le32_to_cpu(efe->lengthExtendedAttr) + le32_to_cpu(efe->lengthAllocDescs))) { + err("EFE CRC failed.\n"); + int cont = 0; + if(interactive) { + if(prompt("Continue with caution, yes? [Y/n] ")) { + cont = 1; + } + } + if(cont == 0) { + unmap_chunk(dev, chunk, st_size); + return 4; + } + } + ext = 1; + } else { + if(crc(fe, sizeof(struct fileEntry) + le32_to_cpu(fe->lengthExtendedAttr) + le32_to_cpu(fe->lengthAllocDescs))) { + err("FE CRC failed.\n"); + int cont = 0; + if(interactive) { + if(prompt("Continue with caution, yes? [Y/n] ")) { + cont = 1; + } + } + if(cont == 0) { + unmap_chunk(dev, chunk, st_size); + return 4; + } + } + } + dbg("Tag Serial Num: %d\n", descTag.tagSerialNum); + if(stats->AVDPSerialNum != descTag.tagSerialNum) { + err("(%s) Tag Serial Number differs.\n", info.filename); + uint8_t fixsernum = autofix; + if(interactive) { + if(prompt("Fix it? [Y/n] ")) { + fixsernum = 1; + } else { + status |= 4; + } + } + if(fixsernum) { + descTag.tagSerialNum = stats->AVDPSerialNum; + if(ext) { + efe->descTag.descCRC = calculate_crc(efe, sizeof(struct extendedFileEntry) + le32_to_cpu(efe->lengthExtendedAttr) + le32_to_cpu(efe->lengthAllocDescs)); + efe->descTag.tagChecksum = calculate_checksum(efe->descTag); + } else { + fe->descTag.descCRC = calculate_crc(fe, sizeof(struct fileEntry) + le32_to_cpu(fe->lengthExtendedAttr) + le32_to_cpu(fe->lengthAllocDescs)); + fe->descTag.tagChecksum = calculate_checksum(fe->descTag); + } + status |= 1; + } + } + dbg("\nFE, LSN: %d, EntityID: %s ", lsn, fe->impIdent.ident); + dbg("fileLinkCount: %d, LB recorded: %lu\n", fe->fileLinkCount, ext ? efe->logicalBlocksRecorded: fe->logicalBlocksRecorded); + uint32_t lea = ext ? efe->lengthExtendedAttr : fe->lengthExtendedAttr; + uint32_t lad = ext ? efe->lengthAllocDescs : fe->lengthAllocDescs; + dbg("LEA %d, LAD %d\n", lea, lad); + dbg("Information Length: %d\n", fe->informationLength); + + + if((le16_to_cpu(fe->icbTag.flags) & ICBTAG_FLAG_AD_MASK) != ICBTAG_FLAG_AD_IN_ICB && fe->icbTag.fileType == ICBTAG_FILE_TYPE_REGULAR && (fe->informationLength % stats->blocksize == 0? fe->informationLength/stats->blocksize : fe->informationLength/stats->blocksize + 1) != (ext ? efe->logicalBlocksRecorded : fe->logicalBlocksRecorded)) { + dbg("InfLenBlocks: %d\n", fe->informationLength % stats->blocksize == 0? fe->informationLength/stats->blocksize : fe->informationLength/stats->blocksize + 1); + dbg("BlocksRecord: %d\n", ext ? efe->logicalBlocksRecorded : fe->logicalBlocksRecorded); + err("(%s) File size mismatch. Probably unfinished file write.\n", info.filename); + int fixit = 0; + + if(interactive) { + if(prompt("Fix it? [Y/n] ")) { + fixit = 1; + } else { + status |= 4; + } + } else if(autofix) { + fixit = 1; + } + + if(fixit) { + imp("Removing unfinished file...\n"); + dbg("global FE decrement.\n"); + dbg("usedSpace: %d\n", stats->usedSpace); + decrement_used_space(stats, lbSize, lsn-lbnlsn); + dbg("usedSpace: %d\n", stats->usedSpace); + uint8_t *blank; + blank = malloc(stats->blocksize); + memcpy(fe, blank, stats->blocksize); + free(blank); + //unmap_chunk(dev, chunk, st_size); + sync_chunk(dev, chunk, st_size); + return 32; + } + } + + info.size = fe->informationLength; + info.fileType = fe->icbTag.fileType; + info.permissions = fe->permissions; + dbg("Permissions: 0x%04x : 0x%04x\n", info.permissions, fe->permissions); + + switch(fe->icbTag.fileType) { + case ICBTAG_FILE_TYPE_UNDEF: + dbg("Filetype: undef\n"); + break; + case ICBTAG_FILE_TYPE_USE: + dbg("Filetype: USE\n"); + break; + case ICBTAG_FILE_TYPE_PIE: + dbg("Filetype: PIE\n"); + break; + case ICBTAG_FILE_TYPE_IE: + dbg("Filetype: IE\n"); + break; + case ICBTAG_FILE_TYPE_DIRECTORY: + dbg("Filetype: DIR\n"); + stats->countNumOfDirs ++; + // stats->usedSpace += lbSize; + //increment_used_space(stats, lbSize); + dir = 1; + break; + case ICBTAG_FILE_TYPE_REGULAR: + dbg("Filetype: REGULAR\n"); + stats->countNumOfFiles ++; + // stats->usedSpace += lbSize; + break; + case ICBTAG_FILE_TYPE_BLOCK: + dbg("Filetype: BLOCK\n"); + stats->countNumOfFiles ++; + break; + case ICBTAG_FILE_TYPE_CHAR: + dbg("Filetype: CHAR\n"); + stats->countNumOfFiles ++; + break; + case ICBTAG_FILE_TYPE_EA: + dbg("Filetype: EA\n"); + break; + case ICBTAG_FILE_TYPE_FIFO: + dbg("Filetype: FIFO\n"); + stats->countNumOfFiles ++; + break; + case ICBTAG_FILE_TYPE_SOCKET: + dbg("Filetype: SOCKET\n"); + break; + case ICBTAG_FILE_TYPE_TE: + dbg("Filetype: TE\n"); + break; + case ICBTAG_FILE_TYPE_SYMLINK: + dbg("Filetype: SYMLINK\n"); + stats->countNumOfFiles ++; + break; + case ICBTAG_FILE_TYPE_STREAMDIR: + dbg("Filetype: STRAMDIR\n"); + //stats->usedSpace += lbSize; + break; + default: + dbg("Unknown filetype\n"); + break; + } + + dbg("numEntries: %d\n", fe->icbTag.numEntries); + dbg("Parent ICB loc: %d\n", fe->icbTag.parentICBLocation.logicalBlockNum); + + double cts = 0; + if((cts = compare_timestamps(stats->LVIDtimestamp, ext ? efe->modificationTime : fe->modificationTime)) < 0) { + err("(%s) File timestamp is later than LVID timestamp. LVID need to be fixed.\n", info.filename); +#ifdef DEBUG + err("CTS: %f\n", cts); +#endif + seq->lvid.error |= E_TIMESTAMP; + } + info.modTime = ext ? efe->modificationTime : fe->modificationTime; + + + uint64_t feUUID = (ext ? efe->uniqueID : fe->uniqueID); + dbg("Unique ID: FE: %"PRIu64" FID: %"PRIu32"\n", (feUUID), uuid); //PRIu32 is fixing uint32_t printing + int fixuuid = 0; + if(uuid != feUUID) { + err("(%s) FE Unique ID differs from FID Unique ID.\n", info.filename); + if(interactive) { + if(prompt("Fix it (set Unique ID to %d, value according FID)? [Y/n] ", uuid) != 0) { + fixuuid = 1; + } else { + status |= 4; + } + } + if(autofix) { + fixuuid = 1; + } + } + if(fixuuid) { + if(lsn==1704005) + dbg("[1704005] fixuuid"); + if(ext) { + efe->uniqueID = uuid; + efe->descTag.descCRC = calculate_crc(efe, sizeof(struct extendedFileEntry) + le32_to_cpu(efe->lengthExtendedAttr) + le32_to_cpu(efe->lengthAllocDescs)); + efe->descTag.tagChecksum = calculate_checksum(efe->descTag); + } else { + fe->uniqueID = uuid; + fe->descTag.descCRC = calculate_crc(fe, sizeof(struct fileEntry) + le32_to_cpu(fe->lengthExtendedAttr) + le32_to_cpu(fe->lengthAllocDescs)); + fe->descTag.tagChecksum = calculate_checksum(fe->descTag); + } + status |= 1; + } + + dbg("FC: %04d DC: %04d ", stats->countNumOfFiles, stats->countNumOfDirs); + print_file_info(info, depth); + + uint8_t fid_inspected = 0; + uint8_t *allocDescs = (ext ? efe->allocDescs : fe->allocDescs) + lea; + if((le16_to_cpu(fe->icbTag.flags) & ICBTAG_FLAG_AD_MASK) == ICBTAG_FLAG_AD_SHORT) { + if(dir) { + fid_inspected = 1; + translate_fid(fd, dev, disc, st_size, lbnlsn, lsn, allocDescs, lad, ICBTAG_FLAG_AD_SHORT, stats, depth, seq, &status); + } else { + dbg("SHORT\n"); + dbg("LAD: %d, N: %d, rest: %d\n", lad, lad/sizeof(short_ad), lad%sizeof(short_ad)); + for(int si = 0; si < (int)(lad/sizeof(short_ad)); si++) { + dwarn("SHORT #%d\n", si); + short_ad *sad = (short_ad *)(allocDescs + si*sizeof(short_ad)); + dbg("ExtLen: %d, ExtLoc: %d\n", sad->extLength, sad->extPosition); + + dbg("usedSpace: %d\n", stats->usedSpace); + uint32_t usedsize = sad->extLength; + dbg("Used size: %d\n", usedsize); + increment_used_space(stats, usedsize, sad->extPosition); + lsn = lsn + sad->extLength/lbSize; + dbg("LSN: %d, ExtLocOrig: %d\n", lsn, sad->extPosition); + dbg("usedSpace: %d\n", stats->usedSpace); + dwarn("Size: %d, Blocks: %d\n", usedsize, usedsize/lbSize); + } + } + } else if((le16_to_cpu(fe->icbTag.flags) & ICBTAG_FLAG_AD_MASK) == ICBTAG_FLAG_AD_LONG) { + if(dir) { + fid_inspected = 1; + translate_fid(fd, dev, disc, st_size, lbnlsn, lsn, allocDescs, lad, ICBTAG_FLAG_AD_LONG, stats, depth, seq, &status); + } else { + for(int si = 0; si < (int)(lad/sizeof(long_ad)); si++) { + dbg("LONG\n"); + long_ad *lad = (long_ad *)(allocDescs + si*sizeof(long_ad)); + dbg("ExtLen: %d, ExtLoc: %d\n", lad->extLength/lbSize, lad->extLocation.logicalBlockNum+lsnBase); + + dbg("usedSpace: %d\n", stats->usedSpace); + uint32_t usedsize = lad->extLength;//(fe->informationLength%lbSize == 0 ? fe->informationLength : (fe->informationLength + lbSize - fe->informationLength%lbSize)); + increment_used_space(stats, usedsize, lad->extLocation.logicalBlockNum); + lsn = lsn + lad->extLength/lbSize; + dbg("LSN: %d\n", lsn); + dbg("usedSpace: %d\n", stats->usedSpace); + dwarn("Size: %d, Blocks: %d\n", usedsize, usedsize/lbSize); + } + } + } else if((le16_to_cpu(fe->icbTag.flags) & ICBTAG_FLAG_AD_MASK) == ICBTAG_FLAG_AD_EXTENDED) { + if(dir) { + fid_inspected = 1; + translate_fid(fd, dev, disc, st_size, lbnlsn, lsn, allocDescs, lad, ICBTAG_FLAG_AD_EXTENDED, stats, depth, seq, &status); + } else { + err("EAD found. Please report.\n"); + } + } else if((le16_to_cpu(fe->icbTag.flags) & ICBTAG_FLAG_AD_MASK) == ICBTAG_FLAG_AD_IN_ICB) { + dbg("AD in ICB\n"); + struct extendedAttrHeaderDesc eahd; + struct genericFormat *gf; + struct impUseExtAttr *impAttr; + struct appUseExtAttr *appAttr; + tag *descTag; + uint8_t *base = NULL; + if(ext) { + eahd = *(struct extendedAttrHeaderDesc *)(efe + sizeof(struct extendedFileEntry) + efe->lengthExtendedAttr); + descTag = (tag *)((uint8_t *)(efe) + sizeof(struct extendedFileEntry) + efe->lengthExtendedAttr); +#ifdef MEMTRACE + dbg("efe: %p, POS: %d, descTag: %p\n",efe, sizeof(struct extendedFileEntry) + efe->lengthExtendedAttr, descTag); +#endif + } else { + eahd = *(struct extendedAttrHeaderDesc *)(fe + sizeof(struct fileEntry) + fe->lengthExtendedAttr); + descTag = (tag *)((uint8_t *)(fe) + sizeof(struct fileEntry) + fe->lengthExtendedAttr); +#ifdef MEMTRACE + dbg("fe: %p, POS: %d, descTag: %p\n", fe, sizeof(struct fileEntry) + fe->lengthExtendedAttr, descTag); +#endif + } + + if(descTag->tagIdent == TAG_IDENT_EAHD) { + base = (ext ? efe->allocDescs : fe->allocDescs) + eahd.appAttrLocation; + + dbg("impAttrLoc: %d, appAttrLoc: %d\n", eahd.impAttrLocation, eahd.appAttrLocation); + gf = (struct genericFormat *)(fe->allocDescs + eahd.impAttrLocation); + + dbg("AttrType: %d\n", gf->attrType); + dbg("AttrLength: %d\n", gf->attrLength); + if(gf->attrType == EXTATTR_IMP_USE) { + impAttr = (struct impUseExtAttr *)gf; + dbg("ImpUseLength: %d\n", impAttr->impUseLength); + dbg("ImpIdent: Flags: 0x%02x\n", impAttr->impIdent.flags); + dbg("ImpIdent: Ident: %s\n", impAttr->impIdent.ident); + dbg("ImpIdent: IdentSuffix: "); + for(int k=0; k<8; k++) { + note("0x%02x ", impAttr->impIdent.identSuffix[k]); + } + note("\n"); + } else { + err("EAHD mismatch. Expected IMP, found %d\n", gf->attrType); + } + + gf = (struct genericFormat *)(fe->allocDescs + eahd.appAttrLocation); + + dbg("AttrType: %d\n", gf->attrType); + dbg("AttrLength: %d\n", gf->attrLength); + if(gf->attrType == EXTATTR_APP_USE) { + appAttr = (struct appUseExtAttr *)gf; + (void)appAttr; + } else { + err("EAHD mismatch. Expected APP, found %d\n", gf->attrType); + + fid_inspected = 1; + for(uint32_t pos=0; ; ) { + if(inspect_fid(fd, dev, disc, st_size, lbnlsn, lsn, base, &pos, stats, depth, seq, &status) != 0) { + dbg("FID inspection over\n"); + break; + } + } + } + } else { + dwarn("ID: 0x%02x\n",descTag->tagIdent); + } + + } else { + dbg("ICB TAG->flags: 0x%02x\n", fe->icbTag.flags); + } + + // We can assume that directory have one or more FID inside. + // FE have inside long_ad/short_ad. + if(dir && fid_inspected == 0) { + if(ext) { + dbg("[EFE DIR] lengthExtendedAttr: %d\n", efe->lengthExtendedAttr); + dbg("[EFE DIR] lengthAllocDescs: %d\n", efe->lengthAllocDescs); + for(uint32_t pos=0; pos < efe->lengthAllocDescs; ) { + if(inspect_fid(fd, dev, disc, st_size, lbnlsn, lsn, efe->allocDescs + efe->lengthExtendedAttr, &pos, stats, depth+1, seq, &status) != 0) { + break; + } + } + } else { + dbg("[FE DIR] lengthExtendedAttr: %d\n", fe->lengthExtendedAttr); + dbg("[FE DIR] lengthAllocDescs: %d\n", fe->lengthAllocDescs); + for(uint32_t pos=0; pos < fe->lengthAllocDescs; ) { + if(inspect_fid(fd, dev, disc, st_size, lbnlsn, lsn, fe->allocDescs + fe->lengthExtendedAttr, &pos, stats, depth+1, seq, &status) != 0) { + break; + } + } + } + } + break; + default: + err("IDENT: %x, LSN: %d, addr: 0x%x\n", descTag.tagIdent, lsn, lsn*lbSize); + } + // unmap_chunk(dev, chunk, st_size); + return status; +} + +/** + * \brief File tree entry point + * + * This function is entry for file tree parsing. It actually parses two trees, Stream file tree based on Stream Directory ICB and normal File tree based on Root Directory ICB. + * + * \param[in,out] *dev memory mapped device + * \param[in] *disc udf disc structure + * \param[in] lbnlsn LBN offset from LSN + * \pararm[in,out] *stats file system status + * \param[in] *seq VDS sequence + * + * \return sum of returns from stream and normal get_file() + */ +uint8_t get_file_structure(int fd, uint8_t **dev, const struct udf_disc *disc, size_t st_size, uint32_t lbnlsn, struct filesystemStats *stats, vds_sequence_t *seq ) { + uint32_t lsn, slsn; + + uint32_t lsnBase = lbnlsn; + int status = 0; + uint32_t elen = 0, selen = 0; + + int vds = -1; + if((vds=get_correct(seq, TAG_IDENT_LVD)) < 0) { + err("No correct LVD found. Aborting.\n"); + return 4; + } + dbg("VDS used: %d\n", vds); +#ifdef MEMTRACE + dbg("Disc ptr: %p, LVD ptr: %p\n", disc, disc->udf_lvd[vds]); + dbg("Disc ptr: %p, FSD ptr: %p\n", disc, disc->udf_fsd); +#endif + + // Go to ROOT ICB + lb_addr icbloc = lelb_to_cpu(disc->udf_fsd->rootDirectoryICB.extLocation); + // Get Stream Dir ICB + lb_addr sicbloc = lelb_to_cpu(disc->udf_fsd->streamDirectoryICB.extLocation); + dbg("icbloc: %d\n", icbloc.logicalBlockNum); + dbg("sicbloc: %d\n", sicbloc.logicalBlockNum); + + lsn = icbloc.logicalBlockNum+lsnBase; + slsn = sicbloc.logicalBlockNum+lsnBase; + elen = disc->udf_fsd->rootDirectoryICB.extLength; + selen = disc->udf_fsd->streamDirectoryICB.extLength; + dbg("ROOT LSN: %d, len: %d, partition: %d\n", lsn, elen, icbloc.partitionReferenceNum); + dbg("STREAM LSN: %d len: %d, partition: %d\n", slsn, selen, sicbloc.partitionReferenceNum); + + dbg("Used space offset: %d\n", stats->usedSpace); + struct fileInfo info; + memset(&info, 0, sizeof(struct fileInfo)); + + if(selen > 0) { + msg("\nStream file tree\n----------------\n"); + status |= get_file(fd, dev, disc, st_size, lbnlsn, slsn, stats, 0, 0, info, seq); + } + if(elen > 0) { + msg("\nMedium file tree\n----------------\n"); + status |= get_file(fd, dev, disc, st_size, lbnlsn, lsn, stats, 0, 0, info, seq); + } + return status; +} + +/** + * \brief Support function for appending error to seq structure + * + * \param[in,out] seq VDS sequence + * \param[in] tagIdent identifer of descriptor to append + * \param[in] vds VDS to search + * \param[in] error to append + * + * \return 0 everything OK + * \return -1 required descriptor not found + */ +int append_error(vds_sequence_t *seq, uint16_t tagIdent, vds_type_e vds, uint8_t error) { + for(int i=0; imain[i].tagIdent == tagIdent) { + seq->main[i].error |= error; + return 0; + } + } else { + if(seq->reserve[i].tagIdent == tagIdent) { + seq->reserve[i].error |= error; + return 0; + } + } + } + return -1; +} + +/** + * \brief Support function for getting error from seq structure + * + * \param[in,out] *seq VDS sequence + * \param[in] tagIdent identifier of descriptor to find + * \param[in] vds VDS to search + * + * \return requested error if found or UINT8_MAX if not + */ +uint8_t get_error(vds_sequence_t *seq, uint16_t tagIdent, vds_type_e vds) { + for(int i=0; imain[i].tagIdent == tagIdent) { + return seq->main[i].error; + } + } else { + if(seq->reserve[i].tagIdent == tagIdent) { + return seq->reserve[i].error; + } + } + } + return -1; +} + +/** + * \brief Support function for getting tag location from seq structure + * + * \param[in,out] *seq VDS sequence + * \param[in] tagIdent identifier of descriptor to find + * \param[in] vds VDS to search + * + * \return requested location if found or UINT32_MAX if not + */ +uint32_t get_tag_location(vds_sequence_t *seq, uint16_t tagIdent, vds_type_e vds) { + for(int i=0; imain[i].tagIdent == tagIdent) { + return seq->main[i].tagLocation; + } + } else { + if(seq->reserve[i].tagIdent == tagIdent) { + return seq->reserve[i].tagLocation; + } + } + } + return -1; +} + + +/** + * \brief VDS verification structure + * + * This function go thru all VDS descriptors and checks them for checksum, CRC and position. Result are stored using append_error() function. + * + * \param[in] *disc UDF disc structure + * \param[in] vds VDS to search + * \param[in,out] *seq VDS sequence for error storing + * + * \return 0 + */ +int verify_vds(struct udf_disc *disc, vds_type_e vds, vds_sequence_t *seq, struct filesystemStats *stats) { + if(!checksum(disc->udf_pvd[vds]->descTag)) { + err("Checksum failure at PVD[%d]\n", vds); + append_error(seq, TAG_IDENT_PVD, vds, E_CHECKSUM); + } + if(!checksum(disc->udf_lvd[vds]->descTag)) { + err("Checksum failure at LVD[%d]\n", vds); + append_error(seq, TAG_IDENT_LVD, vds, E_CHECKSUM); + } + if(!checksum(disc->udf_pd[vds]->descTag)) { + err("Checksum failure at PD[%d]\n", vds); + append_error(seq, TAG_IDENT_PD, vds, E_CHECKSUM); + } + if(!checksum(disc->udf_usd[vds]->descTag)) { + err("Checksum failure at USD[%d]\n", vds); + append_error(seq, TAG_IDENT_USD, vds, E_CHECKSUM); + } + if(!checksum(disc->udf_iuvd[vds]->descTag)) { + err("Checksum failure at IUVD[%d]\n", vds); + append_error(seq, TAG_IDENT_IUVD, vds, E_CHECKSUM); + } + if(!checksum(disc->udf_td[vds]->descTag)) { + err("Checksum failure at TD[%d]\n", vds); + append_error(seq, TAG_IDENT_TD, vds, E_CHECKSUM); + } + + if(check_position(disc->udf_pvd[vds]->descTag, get_tag_location(seq, TAG_IDENT_PVD, vds))) { + err("Position failure at PVD[%d]\n", vds); + append_error(seq, TAG_IDENT_PVD, vds, E_POSITION); + } + if(check_position(disc->udf_lvd[vds]->descTag, get_tag_location(seq, TAG_IDENT_LVD, vds))) { + err("Position failure at LVD[%d]\n", vds); + append_error(seq, TAG_IDENT_LVD, vds, E_POSITION); + } + if(check_position(disc->udf_pd[vds]->descTag, get_tag_location(seq, TAG_IDENT_PD, vds))) { + err("Position failure at PD[%d]\n", vds); + append_error(seq, TAG_IDENT_PD, vds, E_POSITION); + } + if(check_position(disc->udf_usd[vds]->descTag, get_tag_location(seq, TAG_IDENT_USD, vds))) { + err("Position failure at USD[%d]\n", vds); + append_error(seq, TAG_IDENT_USD, vds, E_POSITION); + } + if(check_position(disc->udf_iuvd[vds]->descTag, get_tag_location(seq, TAG_IDENT_IUVD, vds))) { + err("Position failure at IUVD[%d]\n", vds); + append_error(seq, TAG_IDENT_IUVD, vds, E_POSITION); + } + if(check_position(disc->udf_td[vds]->descTag, get_tag_location(seq, TAG_IDENT_TD, vds))) { + err("Position failure at TD[%d]\n", vds); + append_error(seq, TAG_IDENT_TD, vds, E_POSITION); + } + + if(crc(disc->udf_pvd[vds], sizeof(struct primaryVolDesc))) { + err("CRC error at PVD[%d]\n", vds); + append_error(seq, TAG_IDENT_PVD, vds, E_CRC); + } + if(crc(disc->udf_lvd[vds], sizeof(struct logicalVolDesc)+disc->udf_lvd[vds]->mapTableLength)) { + err("CRC error at LVD[%d]\n", vds); + append_error(seq, TAG_IDENT_LVD, vds, E_CRC); + } + if(crc(disc->udf_pd[vds], sizeof(struct partitionDesc))) { + err("CRC error at PD[%d]\n", vds); + append_error(seq, TAG_IDENT_PD, vds, E_CRC); + } + if(crc(disc->udf_usd[vds], sizeof(struct unallocSpaceDesc)+(disc->udf_usd[vds]->numAllocDescs)*sizeof(extent_ad))) { + err("CRC error at USD[%d]\n", vds); + append_error(seq, TAG_IDENT_USD, vds, E_CRC); + } + if(crc(disc->udf_iuvd[vds], sizeof(struct impUseVolDesc))) { + err("CRC error at IUVD[%d]\n", vds); + append_error(seq, TAG_IDENT_IUVD, vds, E_CRC); + } + if(crc(disc->udf_td[vds], sizeof(struct terminatingDesc))) { + err("CRC error at TD[%d]\n", vds); + append_error(seq, TAG_IDENT_TD, vds, E_CRC); + } + + + if(get_error(seq, TAG_IDENT_LVD, vds) == 0) { + stats->dstringLVDLogicalVolIdentErr[vds] = check_dstring(disc->udf_lvd[vds]->logicalVolIdent, 128); + } + + if(get_error(seq, TAG_IDENT_PVD, vds) == 0) { + stats->dstringPVDVolIdentErr[vds] = check_dstring(disc->udf_pvd[vds]->volIdent, 32); + stats->dstringPVDVolSetIdentErr[vds] = check_dstring(disc->udf_pvd[vds]->volSetIdent, 128); + } + + if(get_error(seq, TAG_IDENT_IUVD, vds) == 0) { + struct impUseVolDescImpUse * impUse = (struct impUseVolDescImpUse *)disc->udf_iuvd[vds]->impUse; + + stats->dstringIUVDLVInfo1Err[vds] = check_dstring(impUse->LVInfo1, 36); + stats->dstringIUVDLVInfo2Err[vds] = check_dstring(impUse->LVInfo2, 36); + stats->dstringIUVDLVInfo3Err[vds] = check_dstring(impUse->LVInfo3, 36); + stats->dstringIUVDLogicalVolIdentErr[vds] = check_dstring(impUse->logicalVolIdent, 128); + } + + dbg("Verify VDS done\n"); + return 0; +} + +/** + * \brief Copy descriptor from one position to another on medium + * + * Beside actual copy it also fixes declared position, CRC and checksum. + * + * \param[in,out] *dev memory mapped device + * \param[in,out] *disc UDF disc structure + * \param[in] sectorsize + * \param[in] sourcePosition in blocks + * \param[in] destinationPosition in blocks + * \param[in] size size of descriptor to copy + * + * return 0 + */ +int copy_descriptor(int fd, uint8_t **dev, struct udf_disc *disc, size_t st_size, size_t sectorsize, uint32_t sourcePosition, uint32_t destinationPosition, size_t size) { + tag sourceDescTag, destinationDescTag; + uint8_t *destArray; + uint32_t offset = 0, chunk = 0; + uint32_t chunksize = CHUNK_SIZE; + + dbg("source: 0x%x, destination: 0x%x\n", sourcePosition, destinationPosition); + + chunk = (sourcePosition*sectorsize)/chunksize; + offset = (sourcePosition*sectorsize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + sourceDescTag = *(tag *)(dev[chunk]+offset); + memcpy(&destinationDescTag, &sourceDescTag, sizeof(tag)); + destinationDescTag.tagLocation = destinationPosition; + destinationDescTag.tagChecksum = calculate_checksum(destinationDescTag); + + dbg("srcChecksum: 0x%x, destChecksum: 0x%x\n", sourceDescTag.tagChecksum, destinationDescTag.tagChecksum); + + destArray = calloc(1, size); + memcpy(destArray, &destinationDescTag, sizeof(tag)); + memcpy(destArray+sizeof(tag), dev[chunk]+offset+sizeof(tag), size-sizeof(tag)); + + unmap_chunk(dev, chunk, st_size); + chunk = (destinationPosition*sectorsize)/chunksize; + offset = (destinationPosition*sectorsize)%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + memcpy(dev[chunk]+offset, destArray, size); + + free(destArray); + + unmap_chunk(dev, chunk, st_size); + + (void)disc; + return 0; +} + +/** + * \brief Writes back specified AVDP from udf_disc structure to device + * + * \param[in,out] *dev memory mapped device + * \param[in,out] *disc UDF disc structure + * \param[in] sectorsize + * \param[in] devsize size of device in bytes + * \param[in] source source AVDP + * \param[in] target target AVDP + * + * \return 0 everything OK + * \return -2 after write checksum failed + * \return -4 after write CRC failed + */ +int write_avdp(int fd, uint8_t **dev, struct udf_disc *disc, size_t sectorsize, size_t devsize, avdp_type_e source, avdp_type_e target) { + uint64_t sourcePosition = 0; + uint64_t targetPosition = 0; + tag desc_tag; + avdp_type_e type = target; + uint32_t offset = 0, chunk = 0; + uint32_t chunksize = CHUNK_SIZE; + + // Taget type to determine position on media + if(source == 0) { + sourcePosition = sectorsize*256; //First AVDP is on LSN=256 + } else if(source == 1) { + sourcePosition = devsize-sectorsize; //Second AVDP is on last LSN + } else if(source == 2) { + sourcePosition = devsize-sectorsize-256*sectorsize; //Third AVDP can be at last LSN-256 + } else { + sourcePosition = sectorsize*512; //Unclosed disc have AVDP at sector 512 + } + + // Taget type to determine position on media + if(target == 0) { + targetPosition = sectorsize*256; //First AVDP is on LSN=256 + } else if(target == 1) { + targetPosition = devsize-sectorsize; //Second AVDP is on last LSN + } else if(target == 2) { + targetPosition = devsize-sectorsize-256*sectorsize; //Third AVDP can be at last LSN-256 + } else { + targetPosition = sectorsize*512; //Unclosed disc have AVDP at sector 512 + type = FIRST_AVDP; //Save it to FIRST_AVDP positon + } + + dbg("DevSize: %zu\n", devsize); + dbg("Current position: %lx\n", targetPosition); + + copy_descriptor(fd, dev, disc, devsize, sectorsize, sourcePosition/sectorsize, targetPosition/sectorsize, sizeof(struct anchorVolDescPtr)); + + free(disc->udf_anchor[type]); + disc->udf_anchor[type] = malloc(sizeof(struct anchorVolDescPtr)); // Prepare memory for AVDP + + chunk = targetPosition/chunksize; + offset = targetPosition%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, devsize, __FILE__, __LINE__); + + desc_tag = *(tag *)(dev[chunk]+offset); + + if(!checksum(desc_tag)) { + err("Checksum failure at AVDP[%d]\n", type); + map_chunk(fd, dev, chunk, devsize, __FILE__, __LINE__); + return -2; + } else if(le16_to_cpu(desc_tag.tagIdent) != TAG_IDENT_AVDP) { + err("AVDP not found at 0x%lx\n", targetPosition); + map_chunk(fd, dev, chunk, devsize, __FILE__, __LINE__); + return -4; + } + + memcpy(disc->udf_anchor[type], dev[chunk]+offset, sizeof(struct anchorVolDescPtr)); + + if(crc(disc->udf_anchor[type], sizeof(struct anchorVolDescPtr))) { + err("CRC error at AVDP[%d]\n", type); + map_chunk(fd, dev, chunk, devsize, __FILE__, __LINE__); + return -3; + } + + imp("AVDP[%d] successfully written.\n", type); + map_chunk(fd, dev, chunk, devsize, __FILE__, __LINE__); + return 0; +} + +/** + * \brief Fix target AVDP's extent length + * + * \param[in,out] *dev memory mapped device + * \param[in,out] *disc UDF disc structure + * \param[in] sectorsize + * \param[in] devsize size of device in bytes + * \param[in] target target AVDP + * + * \return 0 everything OK + * \return -2 checksum failed + * \return -4 CRC failed + */ +int fix_avdp(int fd, uint8_t **dev, struct udf_disc *disc, size_t sectorsize, size_t devsize, avdp_type_e target) { + uint64_t targetPosition = 0; + tag desc_tag; + avdp_type_e type = target; + uint32_t offset = 0, chunk = 0; + uint32_t chunksize = CHUNK_SIZE; + + // Taget type to determine position on media + if(target == 0) { + targetPosition = sectorsize*256; //First AVDP is on LSN=256 + } else if(target == 1) { + targetPosition = devsize-sectorsize; //Second AVDP is on last LSN + } else if(target == 2) { + targetPosition = devsize-sectorsize-256*sectorsize; //Third AVDP can be at last LSN-256 + } else { + targetPosition = sectorsize*512; //Unclosed disc have AVDP at sector 512 + type = FIRST_AVDP; //Save it to FIRST_AVDP positon + } + + dbg("DevSize: %zu\n", devsize); + dbg("Current position: %lx\n", targetPosition); + + chunk = targetPosition/chunksize; + offset = targetPosition%chunksize; + dbg("Chunk: %d, offset: 0x%x\n", chunk, offset); + map_chunk(fd, dev, chunk, devsize, __FILE__, __LINE__); + + desc_tag = *(tag *)(dev[chunk]+offset); + + if(!checksum(desc_tag)) { + err("Checksum failure at AVDP[%d]\n", type); + return -2; + } else if(le16_to_cpu(desc_tag.tagIdent) != TAG_IDENT_AVDP) { + err("AVDP not found at 0x%lx\n", targetPosition); + return -4; + } + + if(disc->udf_anchor[type]->mainVolDescSeqExt.extLength > disc->udf_anchor[type]->reserveVolDescSeqExt.extLength) { //main is bigger + if(disc->udf_anchor[type]->mainVolDescSeqExt.extLength >= 16*sectorsize) { //and is big enough + disc->udf_anchor[type]->reserveVolDescSeqExt.extLength = disc->udf_anchor[type]->mainVolDescSeqExt.extLength; + } + } else { //reserve is bigger + if(disc->udf_anchor[type]->reserveVolDescSeqExt.extLength >= 16*sectorsize) { //and is big enough + disc->udf_anchor[type]->mainVolDescSeqExt.extLength = disc->udf_anchor[type]->reserveVolDescSeqExt.extLength; + } + } + disc->udf_anchor[type]->descTag.descCRC = calculate_crc(disc->udf_anchor[type], sizeof(struct anchorVolDescPtr)); + disc->udf_anchor[type]->descTag.tagChecksum = calculate_checksum(disc->udf_anchor[type]->descTag); + + memcpy(dev[chunk]+offset, disc->udf_anchor[type], sizeof(struct anchorVolDescPtr)); + + imp("AVDP[%d] Extent Length successfully fixed.\n", type); + return 0; +} + +/** + * \brief Get descriptor name string + * + * \param[in] descIdent descriptor identifier + * + * \return constant char array + */ +char * descriptor_name(uint16_t descIdent) { + switch(descIdent) { + case TAG_IDENT_PVD: + return "PVD"; + case TAG_IDENT_LVD: + return "LVD"; + case TAG_IDENT_PD: + return "PD"; + case TAG_IDENT_USD: + return "USD"; + case TAG_IDENT_IUVD: + return "IUVD"; + case TAG_IDENT_TD: + return "TD"; + case TAG_IDENT_AVDP: + return "AVDP"; + case TAG_IDENT_LVID: + return "LVID"; + default: + return "Unknown"; + } +} + +/** + * \brief Fix VDS sequence + * + * This function go thru VDS and if find error, check second VDS. If secondary is ok, copy it, if not, report unrecoverable error. + * + * \param[in,out] *dev memory mapped medium + * \param[in,out] *disc UDF disc structure + * \param[in] sectorsize + * \param[in] source AVDP pointing to VDS + * \param[in,out] *seq VDS sequence + * + * \return sum of 0, 1 and 4 according fixing and found errors + */ +int fix_vds(int fd, uint8_t **dev, struct udf_disc *disc, size_t st_size, size_t sectorsize, avdp_type_e source, vds_sequence_t *seq) { + uint32_t position_main, position_reserve; + uint8_t fix=0; + uint8_t status = 0; + + // Go to first address of VDS + position_main = (disc->udf_anchor[source]->mainVolDescSeqExt.extLocation); + position_reserve = (disc->udf_anchor[source]->reserveVolDescSeqExt.extLocation); + + + msg("\nVDS verification status\n-----------------------\n"); + + for(int i=0; imain[i].error != 0 && seq->reserve[i].error != 0) { + //Both descriptors are broken + //TODO It can be possible to reconstruct some descriptors, but not all. + err("[%d] Both descriptors are broken. Maybe not able to continue later.\n",i); + } else if(seq->main[i].error != 0) { + //Copy Reserve -> Main + if(interactive) { + fix = prompt("%s is broken. Fix it? [Y/n]", descriptor_name(seq->reserve[i].tagIdent)); + } else if (autofix) { + fix = 1; + } + + //int copy_descriptor(uint8_t *dev, struct udf_disc *disc, size_t sectorsize, uint32_t sourcePosition, uint32_t destinationPosition, size_t amount); + if(fix) { + warn("[%d] Fixing Main %s\n",i,descriptor_name(seq->reserve[i].tagIdent)); + warn("sectorsize: %d\n", sectorsize); + warn("src pos: 0x%x\n", position_reserve + i); + warn("dest pos: 0x%x\n", position_main + i); + // memcpy(position_main + i*sectorsize, position_reserve + i*sectorsize, sectorsize); + copy_descriptor(fd, dev, disc, st_size, sectorsize, position_reserve + i, position_main + i, sectorsize); + status |= 1; + } else { + err("[%i] %s is broken.\n", i,descriptor_name(seq->reserve[i].tagIdent)); + status |= 4; + } + fix = 0; + } else if(seq->reserve[i].error != 0) { + //Copy Main -> Reserve + if(interactive) { + fix = prompt("%s is broken. Fix it? [Y/n]", descriptor_name(seq->main[i].tagIdent)); + } else if (autofix) { + fix = 1; + } + + if(fix) { + warn("[%i] Fixing Reserve %s\n", i,descriptor_name(seq->main[i].tagIdent)); + copy_descriptor(fd, dev, disc, st_size, sectorsize, position_reserve + i, position_main + i, sectorsize); + status |= 1; + } else { + err("[%i] %s is broken.\n", i,descriptor_name(seq->main[i].tagIdent)); + status |= 4; + } + fix = 0; + } else { + msg("[%d] %s is fine. No functional fixing needed.\n", i, descriptor_name(seq->main[i].tagIdent)); + } + if(seq->main[i].tagIdent == TAG_IDENT_TD) + break; + } + + + return status; +} + +static const unsigned char BitsSetTable256[256] = +{ +#define B2(n) n, n+1, n+1, n+2 +#define B4(n) B2(n), B2(n+1), B2(n+1), B2(n+2) +#define B6(n) B4(n), B4(n+1), B4(n+1), B4(n+2) + B6(0), B6(1), B6(1), B6(2) +}; ///< Support array for bit counting + +/** + * \brief Fix PD Partition Header contents + * + * At this moment it fixes only SBD, because no other descriptors were found. + * + * \param[in,out] *dev memory mapped medium + * \param[in] *disc UDF disc + * \param[in] sectorsize + * \param[in,out] *stats file system status + * \param[in] *seq VDS sequence + * + * \return 0 -- All OK + * \return 1 -- PD SBD recovery failed + * \return 4 -- No correct PD found + * \return -1 -- no SBD found even if declared + */ +int fix_pd(int fd, uint8_t **dev, struct udf_disc *disc, size_t st_size, size_t sectorsize, struct filesystemStats *stats, vds_sequence_t *seq) { + int vds = -1; + uint32_t chunksize = CHUNK_SIZE; + uint32_t chunk = 0; + uint32_t offset = 0; + + if((vds=get_correct(seq, TAG_IDENT_PD)) < 0) { + err("No correct PD found. Aborting.\n"); + return 4; + } + struct partitionHeaderDesc *phd = (struct partitionHeaderDesc *)(disc->udf_pd[vds]->partitionContentsUse); + dbg("[USD] UST pos: %d, len: %d\n", phd->unallocSpaceTable.extPosition, phd->unallocSpaceTable.extLength); + dbg("[USD] USB pos: %d, len: %d\n", phd->unallocSpaceBitmap.extPosition, phd->unallocSpaceBitmap.extLength); + dbg("[USD] FST pos: %d, len: %d\n", phd->freedSpaceTable.extPosition, phd->freedSpaceTable.extLength); + dbg("[USD] FSB pos: %d, len: %d\n", phd->freedSpaceBitmap.extPosition, phd->freedSpaceBitmap.extLength); + + if(phd->unallocSpaceTable.extLength > 0) { + //Unhandled. Not found on any medium. + err("[USD] Unallocated Space Table is unhandled. Skipping.\n"); + } + if(phd->freedSpaceTable.extLength > 0) { + //Unhandled. Not found on any medium. + err("[USD] Free Space Table is unhandled. Skipping.\n"); + } + if(phd->freedSpaceBitmap.extLength > 0) { + //Unhandled. Not found on any medium. + err("[USD] Unallocated Space Table is unhandled. Skipping.\n"); + } + + if(phd->unallocSpaceBitmap.extLength > 3) { //0,1,2,3 are special values ECMA 167r3 4/14.14.1.1 + uint32_t lsnBase = disc->udf_pd[vds]->partitionStartingLocation; + + chunk = ((lsnBase + phd->unallocSpaceBitmap.extPosition)*sectorsize)/chunksize; + offset = ((lsnBase + phd->unallocSpaceBitmap.extPosition)*sectorsize)%chunksize; + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + struct spaceBitmapDesc *sbd = (struct spaceBitmapDesc *)(dev[chunk]+offset); + if(sbd->descTag.tagIdent != TAG_IDENT_SBD) { + err("SBD not found\n"); + return -1; + } + dbg("[SBD] NumOfBits: %d\n", sbd->numOfBits); + dbg("[SBD] NumOfBytes: %d\n", sbd->numOfBytes); + dbg("[SBD] Chunk: %d, Offset: %d\n", chunk, offset); + +#ifdef MEMTRACE + dbg("Bitmap: %d, %p\n", (lsnBase + phd->unallocSpaceBitmap.extPosition), sbd->bitmap); +#else + dbg("Bitmap: %d\n", (lsnBase + phd->unallocSpaceBitmap.extPosition)); +#endif + memcpy(sbd->bitmap, stats->actPartitionBitmap, sbd->numOfBytes); + dbg("MEMCPY DONE\n"); + + //Recalculate CRC and checksum + sbd->descTag.descCRC = calculate_crc(sbd, sbd->descTag.descCRCLength + sizeof(tag)); + sbd->descTag.tagChecksum = calculate_checksum(sbd->descTag); + + imp("PD SBD recovery was successful.\n"); + return 0; + } + err("PD SBD recovery failed.\n"); + return 1; +} + +/** + * \brief Get PD Partition Header contents + * + * At this moment handles only SBD, because none other was found. + * + * \param[in] *dev memory mapped device + * \param[in] *disc UDF disc + * \param[in] sectorsize + * \param[out] *stats filesystem status + * \param[in] *seq VDS sequence + * + * \return 0 -- All OK + * \return 4 --No correct PD found + * \return -1 -- SBD not found even if declared + * \return -128 -- UST, FST or FSB found + */ +int get_pd(int fd, uint8_t **dev, struct udf_disc *disc, size_t sectorsize, size_t st_size, struct filesystemStats *stats, vds_sequence_t *seq) { + int vds = -1; + uint32_t offset = 0, chunk = 0; + uint32_t chunksize = CHUNK_SIZE; + uint64_t position = 0; + + if((vds=get_correct(seq, TAG_IDENT_PD)) < 0) { + err("No correct PD found. Aborting.\n"); + return 4; + } + struct partitionHeaderDesc *phd = (struct partitionHeaderDesc *)(disc->udf_pd[vds]->partitionContentsUse); + dbg("[USD] UST pos: %d, len: %d\n", phd->unallocSpaceTable.extPosition, phd->unallocSpaceTable.extLength); + dbg("[USD] USB pos: %d, len: %d\n", phd->unallocSpaceBitmap.extPosition, phd->unallocSpaceBitmap.extLength); + dbg("[USD] FST pos: %d, len: %d\n", phd->freedSpaceTable.extPosition, phd->freedSpaceTable.extLength); + dbg("[USD] FSB pos: %d, len: %d\n", phd->freedSpaceBitmap.extPosition, phd->freedSpaceBitmap.extLength); + + if(phd->unallocSpaceTable.extLength > 0) { + //Unhandled. Not found on any medium. + err("[USD] Unallocated Space Table is unhandled. Skipping.\n"); + return -128; + } + if(phd->freedSpaceTable.extLength > 0) { + //Unhandled. Not found on any medium. + err("[USD] Free Space Table is unhandled. Skipping.\n"); + return -128; + } + if(phd->freedSpaceBitmap.extLength > 0) { + //Unhandled. Not found on any medium. + err("[USD] Freed Space Bitmap is unhandled. Skipping.\n"); + return -128; + } + if(phd->unallocSpaceBitmap.extLength > 3) { //0,1,2,3 are special values ECMA 167r3 4/14.14.1.1 + uint32_t lsnBase = disc->udf_pd[vds]->partitionStartingLocation; + dbg("LSNBase: %d\n", lsnBase); + position = (lsnBase + phd->unallocSpaceBitmap.extPosition)*sectorsize; + chunk = position/chunksize; + offset = position%chunksize; + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + struct spaceBitmapDesc *sbd = (struct spaceBitmapDesc *)(dev[chunk]+offset); + if(sbd->descTag.tagIdent != TAG_IDENT_SBD) { + err("SBD not found\n"); + return -1; + } + if(!checksum(sbd->descTag)) { + err("SBD checksum error. Continue with caution.\n"); + seq->pd.error |= E_CHECKSUM; + } + if(crc(sbd, sbd->descTag.descCRCLength + sizeof(tag))) { + err("SBD CRC error. Continue with caution.\n"); + seq->pd.error |= E_CRC; + } + dbg("SBD is ok\n"); + dbg("[SBD] NumOfBits: %d\n", sbd->numOfBits); + dbg("[SBD] NumOfBytes: %d\n", sbd->numOfBytes); +#ifdef MEMTRACE + dbg("Bitmap: %d, %p\n", (lsnBase + phd->unallocSpaceBitmap.extPosition), sbd->bitmap); +#else + dbg("Bitmap: %d\n", (lsnBase + phd->unallocSpaceBitmap.extPosition)); +#endif + + //Create array for used/unused blocks counting + stats->actPartitionBitmap = calloc(sbd->numOfBytes, 1); + memset(stats->actPartitionBitmap, 0xff, sbd->numOfBytes); + stats->partitionNumOfBytes = sbd->numOfBytes; + stats->partitionNumOfBits = sbd->numOfBits; + + dbg("Crete array done\n"); + + uint8_t *ptr = NULL; + dbg("Chunk: %d\n", chunk); + map_raw(fd, &ptr, (uint64_t)(chunk)*CHUNK_SIZE, (sbd->numOfBytes + offset), st_size); +#ifdef MEMTRACE + dbg("Ptr: %p\n", ptr); +#endif + sbd = (struct spaceBitmapDesc *)(ptr+offset); + + dbg("Get bitmap statistics\n"); + //Get actual bitmap statistics + uint32_t usedBlocks = 0; + uint32_t unusedBlocks = 0; + uint8_t count = 0; + uint8_t v = 0; + for(int i=0; i<(int)(sbd->numOfBytes-1); i++) { + v = sbd->bitmap[i]; + //if(i%1000 == 0) dbg("0x%02x %d\n",v, i); + count = BitsSetTable256[v & 0xff] + BitsSetTable256[(v >> 8) & 0xff] + BitsSetTable256[(v >> 16) & 0xff] + BitsSetTable256[v >> 24]; + usedBlocks += 8-count; + unusedBlocks += count; + } + dbg("Unused blocks: %d\n", unusedBlocks); + dbg("Used Blocks: %d\n", usedBlocks); + + uint8_t bitCorrection = sbd->numOfBytes*8-sbd->numOfBits; + dbg("BitCorrection: %d\n", bitCorrection); + v = sbd->bitmap[sbd->numOfBytes-1]; + dbg("Bitmap last: 0x%02x\n", v); + for(int i=0; i<8 - bitCorrection; i++) { + dbg("Mask: 0x%02x, Result: 0x%02x\n", (1 << i), v & (1 << i)); + if(v & (1 << i)) + unusedBlocks++; + else + usedBlocks++; + } + + + stats->expUsedBlocks = usedBlocks; + stats->expUnusedBlocks = unusedBlocks; + stats->expPartitionBitmap = sbd->bitmap; + dbg("Unused blocks: %d\n", unusedBlocks); + dbg("Used Blocks: %d\n", usedBlocks); + + sbd = (struct spaceBitmapDesc *)(dev[chunk]+offset); + unmap_raw(&ptr, (uint64_t)(chunk)*CHUNK_SIZE, sbd->numOfBytes); + unmap_chunk(dev, chunk, st_size); + } + + //Mark used space + increment_used_space(stats, phd->unallocSpaceTable.extLength, phd->unallocSpaceTable.extPosition); + increment_used_space(stats, phd->unallocSpaceBitmap.extLength, phd->unallocSpaceBitmap.extPosition); + increment_used_space(stats, phd->freedSpaceTable.extLength, phd->freedSpaceTable.extPosition); + increment_used_space(stats, phd->freedSpaceBitmap.extLength, phd->freedSpaceBitmap.extPosition); + + return 0; +} + +/** + * \brief Fix LVID values + * + * This function fixes only values of LVID. It is not able to fix structurally broken LVID (wrong CRC/checksum). + * + * Fixes opened intergrity type, timestamps, amounts of files/directories, free space tables. + * + * \param[in,out] *dev memory mapped device + * \param[in,out] *disc UDF disc + * \param[in] sectorsize + * \param[in] *stats filesystem status + * \param[in] *seq VDS sequence + * + * \return 0 -- All Ok + * \return 4 -- No correct LVD found + */ +int fix_lvid(int fd, uint8_t **dev, struct udf_disc *disc, size_t st_size, size_t sectorsize, struct filesystemStats *stats, vds_sequence_t *seq) { + int vds = -1; + uint32_t chunksize = CHUNK_SIZE; + uint32_t chunk = 0; + uint32_t offset = 0; + + if((vds=get_correct(seq, TAG_IDENT_LVD)) < 0) { + err("No correct LVD found. Aborting.\n"); + return 4; + } + + uint32_t loc = disc->udf_lvd[vds]->integritySeqExt.extLocation; + uint32_t len = disc->udf_lvd[vds]->integritySeqExt.extLength; + uint16_t size = sizeof(struct logicalVolIntegrityDesc) + disc->udf_lvid->numOfPartitions*4*2 + disc->udf_lvid->lengthOfImpUse; + dbg("LVID: loc: %d, len: %d, size: %d\n", loc, len, size); + + chunk = (loc*sectorsize)/chunksize; + offset = (loc*sectorsize)%chunksize; + map_chunk(fd, dev, chunk, st_size, __FILE__, __LINE__); + + struct logicalVolIntegrityDesc *lvid = (struct logicalVolIntegrityDesc *)(dev[chunk]+offset); + struct impUseLVID *impUse = (struct impUseLVID *)((uint8_t *)(disc->udf_lvid) + sizeof(struct logicalVolIntegrityDesc) + 8*disc->udf_lvid->numOfPartitions); //this is because of ECMA 167r3, 3/24, fig 22 + + // Fix PD too + fix_pd(fd, dev, disc, st_size, sectorsize, stats, seq); + + // Fix files/dir amounts + impUse->numOfFiles = stats->countNumOfFiles; + impUse->numOfDirs = stats->countNumOfDirs; + + // Fix Next Unique ID by maximal found +1 + //((struct logicalVolHeaderDesc *)(disc->udf_lvid->logicalVolContentsUse))->uniqueID = stats->maxUUID+1; + struct logicalVolHeaderDesc *lvhd = (struct logicalVolHeaderDesc *)(disc->udf_lvid->logicalVolContentsUse); + lvhd->uniqueID = stats->maxUUID+1; + + // Set recording date and time to now. + time_t t = time(NULL); + struct tm tmlocal = *localtime(&t); + struct tm tm = *gmtime(&t); + int8_t hrso = tmlocal.tm_hour - tm.tm_hour; + if(hrso > 12 || hrso < -12) { + hrso += 24; + } + + int8_t mino = tmlocal.tm_min - tm.tm_min; + int16_t t_offset = hrso*60+mino; + dbg("Offset: %d, hrs: %d, min: %d\n", t_offset, hrso, mino); + dbg("lhr: %d, hr: %d\n", tmlocal.tm_hour, tm.tm_hour); + timestamp *ts = &(disc->udf_lvid->recordingDateAndTime); + ts->typeAndTimezone = (1 << 12) | (t_offset >= 0 ? t_offset : (0x1000-t_offset)); + ts->year = tmlocal.tm_year + 1900; + ts->month = tmlocal.tm_mon + 1; + ts->day = tmlocal.tm_mday; + ts->hour = tmlocal.tm_hour; + ts->minute = tmlocal.tm_min; + ts->second = tmlocal.tm_sec; + ts->centiseconds = 0; + ts->hundredsOfMicroseconds = 0; + ts->microseconds = 0; + dbg("Type and Timezone: 0x%04x\n", ts->typeAndTimezone); + + uint32_t newFreeSpace = disc->udf_lvid->freeSpaceTable[1] - stats->usedSpace/sectorsize; + disc->udf_lvid->freeSpaceTable[0] = cpu_to_le32(newFreeSpace); + dbg("New Free Space: %d\n", disc->udf_lvid->freeSpaceTable[0]); + + // Close integrity (last thing before write) + disc->udf_lvid->integrityType = LVID_INTEGRITY_TYPE_CLOSE; + + //Recalculate CRC and checksum + disc->udf_lvid->descTag.descCRC = calculate_crc(disc->udf_lvid, size); + disc->udf_lvid->descTag.tagChecksum = calculate_checksum(disc->udf_lvid->descTag); + //Write changes back to medium + memcpy(lvid, disc->udf_lvid, size); + + unmap_chunk(dev, chunk, st_size); + imp("LVID recovery was successful.\n"); + return 0; +} + diff --git a/udffsck/udffsck.h b/udffsck/udffsck.h new file mode 100644 index 00000000..4bc40f81 --- /dev/null +++ b/udffsck/udffsck.h @@ -0,0 +1,183 @@ +/* + * Copyright (C) 2017 Vojtech Vladyka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __UDFFSCK_H__ +#define __UDFFSCK_H__ + +#include "config.h" + +#include +#include + +#include +#include +#include + +#define UDFFSCK_VERSION "1.0-beta" ///< **udffsck** version number + +#define VDS_STRUCT_AMOUNT 8 ///< Maximum amount of VDS descriptors +#define BLOCK_SIZE 2048 ///< Minimal VRS search block size +#define CHUNK_SIZE ((uint32_t)0x800000) ///< Chunk size for using + + +typedef enum { + FIRST_AVDP = 0, + SECOND_AVDP, + THIRD_AVDP, +} avdp_type_e; + +typedef enum { + MAIN_VDS = 0, + RESERVE_VDS, +} vds_type_e; + +typedef struct { + uint16_t tagIdent; ///< descriptor identifier + uint32_t tagLocation; ///< descriptor declared position + uint8_t error; ///< errors found on descriptor +} metadata_t; + +typedef struct { + metadata_t anchor[3]; + metadata_t main[VDS_STRUCT_AMOUNT]; + metadata_t reserve[VDS_STRUCT_AMOUNT]; + metadata_t lvid; + metadata_t pd; +} vds_sequence_t; + +typedef struct { + uint16_t flags; + uint32_t lsn; + uint32_t blocks; + uint32_t size; +} file_t; + +struct filesystemStats { + uint16_t blocksize; + uint64_t actUUID; + uint64_t maxUUID; + uint32_t expNumOfFiles; + uint32_t countNumOfFiles; + uint32_t expNumOfDirs; + uint32_t countNumOfDirs; + uint16_t minUDFReadRev; + uint16_t minUDFWriteRev; + uint16_t maxUDFWriteRev; + uint16_t AVDPSerialNum; + uint64_t usedSpace; + uint32_t freeSpaceBlocks; + uint32_t partitionSizeBlocks; + uint32_t expUsedBlocks; + uint32_t expUnusedBlocks; + uint32_t partitionNumOfBytes; + uint32_t partitionNumOfBits; + uint8_t * actPartitionBitmap; + uint8_t * expPartitionBitmap; + timestamp LVIDtimestamp; + dstring * partitionIdent; + char * volumeSetIdent; + uint8_t dstringFSDLogVolIdentErr; + uint8_t dstringFSDFileSetIdentErr; + uint8_t dstringFSDCopyrightFileIdentErr; + uint8_t dstringFSDAbstractFileIdentErr; + uint8_t dstringPVDVolIdentErr[VDS_STRUCT_AMOUNT]; + uint8_t dstringPVDVolSetIdentErr[VDS_STRUCT_AMOUNT]; + uint8_t dstringLVDLogicalVolIdentErr[VDS_STRUCT_AMOUNT]; + uint8_t dstringIUVDLVInfo1Err[VDS_STRUCT_AMOUNT]; + uint8_t dstringIUVDLVInfo2Err[VDS_STRUCT_AMOUNT]; + uint8_t dstringIUVDLVInfo3Err[VDS_STRUCT_AMOUNT]; + uint8_t dstringIUVDLogicalVolIdentErr[VDS_STRUCT_AMOUNT]; + + +}; + +struct fileInfo { + char * filename; + uint8_t fileCharacteristics; + uint8_t fileType; + uint32_t permissions; + uint64_t size; + uint16_t FIDSerialNum; + timestamp modTime; +}; + +// Implementation Use for Logical Volume Integrity Descriptor (ECMA 167r3 3/10.10, UDF 2.2.6.4) +struct impUseLVID { + regid impID; + uint32_t numOfFiles; + uint32_t numOfDirs; + uint16_t minUDFReadRev; + uint16_t minUDFWriteRev; + uint16_t maxUDFWriteRev; + uint8_t impUse[0]; +} __attribute__ ((packed)); + +#define E_CHECKSUM 0b00000001 +#define E_CRC 0b00000010 +#define E_POSITION 0b00000100 +#define E_WRONGDESC 0b00001000 +#define E_UUID 0b00010000 +#define E_TIMESTAMP 0b00100000 +#define E_FREESPACE 0b01000000 +#define E_FILES 0b10000000 +#define E_EXTLEN 0b10000000 //AVDP specific + +#define DSTRING_E_NONZERO_PADDING 0x01 +#define DSTRING_E_WRONG_LENGTH 0x02 +#define DSTRING_E_INVALID_CHARACTERS 0x04 +#define DSTRING_E_NOT_EMPTY 0x08 +#define DSTRING_E_UNKNOWN_COMP_ID 0x10 + +// Support functions +char * print_timestamp(timestamp ts); +uint64_t count_used_bits(struct filesystemStats *stats); +int get_volume_identifier(struct udf_disc *disc, struct filesystemStats *stats, vds_sequence_t *seq ); +void unmap_chunk(uint8_t **dev, uint32_t chunk, size_t st_size); +void map_chunk(int fd, uint8_t **dev, uint32_t chunk, size_t st_size, char * file, int line); + +// UDF detection +int is_udf(int fd, uint8_t **dev, int *sectorsize, size_t st_size, int force_sectorsize); +int get_avdp(int fd, uint8_t **dev, struct udf_disc *disc, int *sectorsize, size_t devsize, avdp_type_e type, int force_sectorsize, struct filesystemStats *stats); +int write_avdp(int fd, uint8_t **dev, struct udf_disc *disc, size_t sectorsize, size_t devsize, avdp_type_e source, avdp_type_e target); +int fix_avdp(int fd, uint8_t **dev, struct udf_disc *disc, size_t sectorsize, size_t devsize, avdp_type_e target); + +// VDS functions +int get_vds(int fd, uint8_t **dev, struct udf_disc *disc, int sectorsize, size_t st_size, avdp_type_e avdp, vds_type_e vds, vds_sequence_t *seq); +int verify_vds(struct udf_disc *disc, vds_type_e vds, vds_sequence_t *seq, struct filesystemStats *stats); +int fix_vds(int fd, uint8_t **dev, struct udf_disc *disc, size_t st_size, size_t sectorsize, avdp_type_e source, vds_sequence_t *seq); + +// LVID functions +int get_lvid(int fd, uint8_t **dev, struct udf_disc *disc, int sectorsize, size_t st_size, struct filesystemStats *stats, vds_sequence_t *seq ); +int fix_lvid(int fd, uint8_t **dev, struct udf_disc *disc, size_t st_size, size_t sectorsize, struct filesystemStats *stats, vds_sequence_t *seq); + +// PD (SBD) functions +int get_pd(int fd, uint8_t **dev, struct udf_disc *disc, size_t sectorsize, size_t st_size, struct filesystemStats *stats, vds_sequence_t *seq); +int fix_pd(int fd, uint8_t **dev, struct udf_disc *disc, size_t st_size, size_t sectorsize, struct filesystemStats *stats, vds_sequence_t *seq); + +// Filetree functions +uint8_t get_fsd(int fd, uint8_t **dev, struct udf_disc *disc, int sectorsize, size_t st_size, uint32_t *lbnlsn, struct filesystemStats * stats, vds_sequence_t *seq); +uint8_t get_file_structure(int fd, uint8_t **dev, const struct udf_disc *disc, size_t st_size, uint32_t lbnlsn, struct filesystemStats *stats, vds_sequence_t *seq ); + +// Check for match on blocksize +int check_blocksize(int fd, uint8_t **dev, struct udf_disc *disc, int blocksize, int force_sectorsize, vds_sequence_t *seq); + +// Check and correct d-string +uint8_t check_dstring(dstring *in, size_t field_size); +uint8_t dstring_error(char * string_name, uint8_t e_code); + +#endif //__UDFFSCK_H__ diff --git a/udffsck/unit-test.c b/udffsck/unit-test.c new file mode 100644 index 00000000..1cbf9bc8 --- /dev/null +++ b/udffsck/unit-test.c @@ -0,0 +1,594 @@ +/* + * Copyright (C) 2017 Vojtech Vladyka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "config.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "udffsck.h" +#include "log.h" + + +verbosity_e verbosity = DBG; + +// Support functions +void clear_dstring(dstring *string, size_t field_length) { + // clear string + for(int i = 0; i < (int)field_length; ++i) { + string[i] = 0; + } +} + +void generate_valid_dstring_u8(dstring *string, size_t field_length, uint8_t compID, uint8_t length, uint8_t content) { + // clear string + clear_dstring(string, field_length); + + string[0] = compID; + string[field_length-1] = length > 0 ? length +1 : 0; + + for(int i = 0; i < length; ++i) { + string[i+1] = content; + } +} + +void generate_valid_dstring_u16(dstring *string, size_t field_length, uint8_t compID, uint8_t length, uint16_t content) { + // clear string + clear_dstring(string, field_length); + + string[0] = compID; + string[field_length-1] = length > 0 ? length +1 : 0; + + for(int i = 0; i < length; i+=2) { + string[i+1] = content >> 8; + string[i+2] = content & 0xFF; + } +} + +void print_dstring(dstring *string, size_t field_length) { + printf("[ "); + for(int i=0; i<(int)field_length; ++i) { + printf("%02x ", string[i]); + } + printf("]\n"); +} + +//int check_dstring(dstring *in, size_t field_size); + + void dstring_check_u8_ok_1(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 8, 16, 0xDA); + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u8_ok_2(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 8, 30, 0xDA); + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u8_ok_3(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u8(array, 128, 8, 30, 0x02); + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), 0); //Check it +} + + void dstring_check_u8_ok_4(void **state) { + (void) state; + dstring array[256]; + generate_valid_dstring_u8(array, 256, 8, 254, 0x02); + print_dstring(array, 256); + assert_int_equal(check_dstring(array, 256), 0); //Check it +} + + void dstring_check_u8_empty(void **state) { + (void) state; + dstring array[256]; + generate_valid_dstring_u8(array, 256, 0, 0, 0); + print_dstring(array, 256); + assert_int_equal(check_dstring(array, 256), 0); //Check it +} + + void dstring_check_u16_ok_1(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u16(array, 32, 16, 4*2, 0xDEAD); + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u16_ok_2(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u16(array, 32, 16, 14*2, 0xBEEF); + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u16_ok_3(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u16(array, 128, 16, 30*2, 0xDEAD); + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), 0); //Check it +} + + void dstring_check_u16_ok_4(void **state) { + (void) state; + dstring array[256]; + generate_valid_dstring_u16(array, 256, 16, 127*2, 0xBEEF); + print_dstring(array, 256); + assert_int_equal(check_dstring(array, 256), 0); //Check it +} + + void dstring_check_u16_empty(void **state) { + (void) state; + dstring array[256]; + generate_valid_dstring_u16(array, 256, 0, 0, 0); + print_dstring(array, 256); + assert_int_equal(check_dstring(array, 256), 0); //Check it +} + + void dstring_check_u8_non_empty_1(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u8(array, 128, 8, 0, 0x0); + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), DSTRING_E_NOT_EMPTY); //Check it +} + + void dstring_check_u8_non_empty_2(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u8(array, 128, 0, 30, 0x10); + array[127] = 0; //rewrite length + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), DSTRING_E_NOT_EMPTY); //Check it +} + + void dstring_check_u8_non_empty_3(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u16(array, 128, 0, 30, 0x10); + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), DSTRING_E_NOT_EMPTY); //Check it +} + + void dstring_check_u16_non_empty_1(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u16(array, 128, 16, 0, 0x0); + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), DSTRING_E_NOT_EMPTY); //Check it +} + + void dstring_check_u16_non_empty_2(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u16(array, 128, 0, 30*2, 0x10); + array[127] = 0; //rewrite length + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), DSTRING_E_NOT_EMPTY); //Check it +} + + void dstring_check_u16_non_empty_3(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u16(array, 128, 0, 30*2, 0x10); + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), DSTRING_E_NOT_EMPTY); //Check it +} + + void dstring_check_u8_padding_1(void **state) { + (void) state; + dstring array[36]; + generate_valid_dstring_u8(array, 36, 8, 10, 0x10); + array[12] = 0xde; + array[13] = 0xad; + array[14] = 0xbe; + array[15] = 0xef; + print_dstring(array, 36); + assert_int_equal(check_dstring(array, 36), DSTRING_E_NONZERO_PADDING); //Check it +} + + void dstring_check_u8_padding_2(void **state) { + (void) state; + dstring array[36]; + generate_valid_dstring_u8(array, 36, 8, 10, 0x10); + array[31] = 0xde; + array[32] = 0xad; + array[33] = 0xbe; + array[34] = 0xef; + print_dstring(array, 36); + assert_int_equal(check_dstring(array, 36), DSTRING_E_NONZERO_PADDING); //Check it +} + + void dstring_check_u8_padding_3(void **state) { + (void) state; + dstring array[36]; + generate_valid_dstring_u8(array, 36, 8, 10, 0x10); + array[12] = 0xde; + print_dstring(array, 36); + assert_int_equal(check_dstring(array, 36), DSTRING_E_NONZERO_PADDING); //Check it +} + + void dstring_check_u8_padding_4(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u8(array, 16, 8, 10, 0x10); + array[12] = 0xde; + array[13] = 0xad; + array[14] = 0xbe; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_NONZERO_PADDING); //Check it +} + + void dstring_check_u16_padding_1(void **state) { + (void) state; + dstring array[36]; + generate_valid_dstring_u16(array, 36, 16, 5*2, 0x10); + array[13] = 0xde; + array[14] = 0xad; + array[15] = 0xbe; + array[16] = 0xef; + print_dstring(array, 36); + assert_int_equal(check_dstring(array, 36), DSTRING_E_NONZERO_PADDING); //Check it +} + + void dstring_check_u16_padding_2(void **state) { + (void) state; + dstring array[36]; + generate_valid_dstring_u16(array, 36, 16, 5*2, 0x10); + array[31] = 0xde; + array[32] = 0xad; + array[33] = 0xbe; + array[34] = 0xef; + print_dstring(array, 36); + assert_int_equal(check_dstring(array, 36), DSTRING_E_NONZERO_PADDING); //Check it +} + + void dstring_check_u16_padding_3(void **state) { + (void) state; + dstring array[36]; + generate_valid_dstring_u16(array, 36, 16, 5*2, 0x10); + array[13] = 0xde; + print_dstring(array, 36); + assert_int_equal(check_dstring(array, 36), DSTRING_E_NONZERO_PADDING); //Check it +} + + void dstring_check_u16_padding_4(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0x10); + array[13] = 0xde; + array[14] = 0xad; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_NONZERO_PADDING); //Check it +} + + void dstring_check_u16_invalid_chars_1(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xFFFE); + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_INVALID_CHARACTERS); //Check it +} + + void dstring_check_u16_invalid_chars_2(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xFEFF); + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_INVALID_CHARACTERS); //Check it +} + + void dstring_check_u16_invalid_chars_3(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xFEFE); + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), 0); //Check it +} + + void dstring_check_u16_invalid_chars_4(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xFFFF); + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), 0); //Check it +} + + void dstring_check_u16_invalid_chars_5(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xabcd); + array[1] = 0xFF; + array[2] = 0xFE; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_INVALID_CHARACTERS); //Check it +} + + void dstring_check_u16_invalid_chars_6(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xabcd); + array[1] = 0xFE; + array[2] = 0xFF; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_INVALID_CHARACTERS); //Check it +} + + void dstring_check_u16_invalid_chars_7(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xabcd); + array[3] = 0xFF; + array[4] = 0xFE; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_INVALID_CHARACTERS); //Check it +} + + void dstring_check_u16_invalid_chars_8(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xabcd); + array[3] = 0xFE; + array[4] = 0xFF; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_INVALID_CHARACTERS); //Check it +} + + void dstring_check_u16_invalid_chars_9(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xabcd); + array[2] = 0xFF; + array[3] = 0xFE; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), 0); //Check it +} + + void dstring_check_u16_invalid_chars_10(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xabcd); + array[2] = 0xFE; + array[3] = 0xFF; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), 0); //Check it +} + + void dstring_check_u8_wrong_length_1(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u8(array, 16, 8, 5, 0xab); + array[6] = 0x7f; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_WRONG_LENGTH); //Check it +} + + void dstring_check_u8_wrong_length_2(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u8(array, 16, 8, 5, 0xab); + array[15] = 0xFF; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_WRONG_LENGTH); //Check it +} + + void dstring_check_u8_wrong_length_3(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u8(array, 128, 8, 30, 0x0); + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), DSTRING_E_WRONG_LENGTH); //Check it +} + + void dstring_check_u16_wrong_length_1(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xab); + array[12] = 0x7f; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_WRONG_LENGTH); //Check it +} + + void dstring_check_u16_wrong_length_2(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 16, 5*2, 0xab); + array[15] = 0xFF; + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_WRONG_LENGTH); //Check it +} + + void dstring_check_u16_wrong_length_3(void **state) { + (void) state; + dstring array[128]; + generate_valid_dstring_u16(array, 128, 16, 30*2, 0x0); + print_dstring(array, 128); + assert_int_equal(check_dstring(array, 128), DSTRING_E_WRONG_LENGTH); //Check it +} + + void dstring_check_u8_compID_1(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u8(array, 16, 42, 5, 0xab); + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_UNKNOWN_COMP_ID); //Check it +} + + void dstring_check_u16_compID_1(void **state) { + (void) state; + dstring array[16]; + generate_valid_dstring_u16(array, 16, 42, 5*2, 0xab); + print_dstring(array, 16); + assert_int_equal(check_dstring(array, 16), DSTRING_E_UNKNOWN_COMP_ID); //Check it +} + + void dstring_check_u8_old_mkudffs_1(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 8, 10, 0x24); + array[31] = 0; + array[5] = 0x80; + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), DSTRING_E_NOT_EMPTY); //Check it +} + + void dstring_check_u8_dchars_1(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 254, 10, 0x24); + array[31] = 0; + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u8_dchars_2(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 254, 31, 0x24); + array[31] = 0x24; + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u16_dchars_1(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 255, 20, 0x24); + array[31] = 0; + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u16_dchars_2(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 255, 31, 0x24); + array[31] = 0x24; + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u16_dchars_3(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 255, 31, 0x24); + array[31] = 0xFF; + array[30] = 0xFE; + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), 0); //Check it +} + + void dstring_check_u16_dchars_4(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 255, 31, 0x24); + array[3] = 0xFE; + array[4] = 0xFF; + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), DSTRING_E_INVALID_CHARACTERS); //Check it +} + + void dstring_check_u16_dchars_5(void **state) { + (void) state; + dstring array[32]; + generate_valid_dstring_u8(array, 32, 255, 31, 0x24); + array[29] = 0xFF; + array[30] = 0xFE; + print_dstring(array, 32); + assert_int_equal(check_dstring(array, 32), DSTRING_E_INVALID_CHARACTERS); //Check it +} + +int main(void) { + const struct CMUnitTest tests[] = { + cmocka_unit_test(dstring_check_u8_ok_1), + cmocka_unit_test(dstring_check_u8_ok_2), + cmocka_unit_test(dstring_check_u8_ok_3), + cmocka_unit_test(dstring_check_u8_ok_4), + cmocka_unit_test(dstring_check_u8_empty), + cmocka_unit_test(dstring_check_u16_ok_1), + cmocka_unit_test(dstring_check_u16_ok_2), + cmocka_unit_test(dstring_check_u16_ok_3), + cmocka_unit_test(dstring_check_u16_ok_4), + cmocka_unit_test(dstring_check_u16_empty), + cmocka_unit_test(dstring_check_u8_non_empty_1), + cmocka_unit_test(dstring_check_u8_non_empty_2), + cmocka_unit_test(dstring_check_u8_non_empty_3), + cmocka_unit_test(dstring_check_u16_non_empty_1), + cmocka_unit_test(dstring_check_u16_non_empty_2), + cmocka_unit_test(dstring_check_u16_non_empty_3), + cmocka_unit_test(dstring_check_u8_padding_1), + cmocka_unit_test(dstring_check_u8_padding_2), + cmocka_unit_test(dstring_check_u8_padding_3), + cmocka_unit_test(dstring_check_u8_padding_4), + cmocka_unit_test(dstring_check_u16_padding_1), + cmocka_unit_test(dstring_check_u16_padding_2), + cmocka_unit_test(dstring_check_u16_padding_3), + cmocka_unit_test(dstring_check_u16_padding_4), + cmocka_unit_test(dstring_check_u16_invalid_chars_1), + cmocka_unit_test(dstring_check_u16_invalid_chars_2), + cmocka_unit_test(dstring_check_u16_invalid_chars_3), + cmocka_unit_test(dstring_check_u16_invalid_chars_4), + cmocka_unit_test(dstring_check_u16_invalid_chars_5), + cmocka_unit_test(dstring_check_u16_invalid_chars_6), + cmocka_unit_test(dstring_check_u16_invalid_chars_7), + cmocka_unit_test(dstring_check_u16_invalid_chars_8), + cmocka_unit_test(dstring_check_u16_invalid_chars_9), + cmocka_unit_test(dstring_check_u16_invalid_chars_10), + cmocka_unit_test(dstring_check_u8_wrong_length_1), + cmocka_unit_test(dstring_check_u8_wrong_length_2), + cmocka_unit_test(dstring_check_u8_wrong_length_3), + cmocka_unit_test(dstring_check_u16_wrong_length_1), + cmocka_unit_test(dstring_check_u16_wrong_length_2), + cmocka_unit_test(dstring_check_u16_wrong_length_3), + cmocka_unit_test(dstring_check_u8_compID_1), + cmocka_unit_test(dstring_check_u16_compID_1), + cmocka_unit_test(dstring_check_u8_old_mkudffs_1), + cmocka_unit_test(dstring_check_u8_dchars_1), + cmocka_unit_test(dstring_check_u8_dchars_2), + cmocka_unit_test(dstring_check_u16_dchars_1), + cmocka_unit_test(dstring_check_u16_dchars_2), + cmocka_unit_test(dstring_check_u16_dchars_3), + cmocka_unit_test(dstring_check_u16_dchars_4), + cmocka_unit_test(dstring_check_u16_dchars_5), + }; + + + return cmocka_run_group_tests(tests, NULL, NULL); +} diff --git a/udffsck/utils.c b/udffsck/utils.c new file mode 100644 index 00000000..8bf3d825 --- /dev/null +++ b/udffsck/utils.c @@ -0,0 +1,216 @@ +/* + * Copyright (C) 2017 Vojtech Vladyka + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#define _GNU_SOURCE + +#include "config.h" +#include "utils.h" +#include "options.h" + +#include +#include + +#include + +/** + * \brief Support function for printing basic tag information + * + * \param[in] id tag identifier + */ +void read_tag(tag id) { + note("\tIdentification Tag\n" + "\t==================\n"); + note("\tID: %d (", id.tagIdent); + switch(id.tagIdent) { + case TAG_IDENT_PVD: + note("PVD"); + break; + case TAG_IDENT_AVDP: + note("AVDP"); + break; + case TAG_IDENT_VDP: + note("VDP"); + break; + case TAG_IDENT_IUVD: + note("IUVD"); + break; + case TAG_IDENT_PD: + note("PD"); + break; + case TAG_IDENT_LVD: + note("LVD"); + break; + case TAG_IDENT_USD: + note("USD"); + break; + case TAG_IDENT_TD: + note("TD"); + break; + case TAG_IDENT_LVID: + note("LVID"); + break; + } + note(")\n"); + note("\tVersion: %d\n", id.descVersion); + note("\tChecksum: 0x%x\n", id.tagChecksum); + note("\tSerial Number: 0x%x\n", id.tagSerialNum); + note("\tDescriptor CRC: 0x%x, Length: %d\n", id.descCRC, id.descCRCLength); + note("\tTag Location: 0x%x\n", id.tagLocation); +} + +/** + * \brief Support function printing VDS, AVDP and LVID + * + * \param[in] *disc UDF disc + */ +int print_disc(struct udf_disc *disc) { + note("\nUDF Metadata Overview\n" + "---------------------\n"); + + note("AVDP\n" + "----\n"); + for(int i=0; i<3; i++) { + note("[%d]\n", i); + if(disc->udf_anchor[i] != 0) { + read_tag(disc->udf_anchor[i]->descTag); + } + } + + note("PVD\n" + "---\n"); + for(int i=0; i<2; i++) { + note("[%d]\n", i); + if(disc->udf_pvd[i] != 0) { + read_tag(disc->udf_pvd[i]->descTag); + } + } + + note("LVD\n" + "---\n"); + for(int i=0; i<2; i++) { + note("[%d]\n", i); + if(disc->udf_lvd[i] != 0) { + read_tag(disc->udf_lvd[i]->descTag); + note("\tPartition Maps: %d\n",disc->udf_lvd[i]->partitionMaps[0]); + } + } + + note("PD\n" + "--\n"); + for(int i=0; i<2; i++) { + note("[%d]\n", i); + if(disc->udf_pd[i] != 0) { + read_tag(disc->udf_pd[i]->descTag); + } + } + + note("USD\n" + "---\n"); + for(int i=0; i<2; i++) { + note("[%d]\n", i); + if(disc->udf_usd[i] != 0) { + read_tag(disc->udf_usd[i]->descTag); + note("\tNumOfAllocDescs: %d\n", disc->udf_usd[i]->numAllocDescs); + } + } + + note("IUVD\n" + "----\n"); + for(int i=0; i<2; i++) { + note("[%d]\n", i); + if(disc->udf_iuvd[i] != 0) { + read_tag(disc->udf_iuvd[i]->descTag); + } + } + + note("TD\n" + "--\n"); + for(int i=0; i<2; i++) { + note("[%d]\n", i); + if(disc->udf_td[i] != 0) { + read_tag(disc->udf_td[i]->descTag); + } + } + + return 0; +} + +/** + * \brief Prints metadata error sequence + * + * \param[in] *seq VDS sequence + */ +void print_metadata_sequence(vds_sequence_t *seq) { + note("Main Reserve\n"); + note("ident | Errors | ident | Errors \n"); + for(int i=0; imain[i].tagIdent, seq->main[i].error, seq->reserve[i].tagIdent, seq->reserve[i].error); + } +} + +#if MEMTRACE +uint64_t alloc_size = 0; +uint64_t map_size = 0; + +void *custom_malloc(size_t size, char * file, int line) { + void *(*libc_malloc)(size_t) = dlsym(RTLD_NEXT, "malloc"); + void * ptr = libc_malloc(size); + dbg("[MEMTRACE] malloc %s:%d (%d) -> %p\n", file, line, size, ptr); + return ptr; +} + +void custom_free(void *ptr, char * file, int line) { + void (*libc_free)(void*) = dlsym(RTLD_NEXT, "free"); + dbg("[MEMTRACE] free %s:%d %p\n", file, line, ptr); + libc_free(ptr); +} + + +void *custom_mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset, char * file, int line) { + void *(*libc_mmap)(void *, size_t, int, int, int, off_t) = dlsym(RTLD_NEXT, "mmap"); + void * ptr = libc_mmap(addr, length, prot, flags, fd, offset); + map_size += length; + dbg("[MEMTRACE] mmap %s:%d (%d) -> %p, Total: %ld\n", file, line, length, ptr, map_size); + return ptr; +} + +int custom_munmap(void *addr, size_t length, char * file, int line) { + int (*libc_munmap)(void*, size_t) = dlsym(RTLD_NEXT, "munmap"); + map_size -= length; + dbg("[MEMTRACE] munmap %s:%d %p -> (%d), Total: %ld\n", file, line, addr, length, map_size); + return libc_munmap(addr, length); +} +#endif + + + +#if HEXPRINT +void print_hex_array(void *ptr, size_t size) { + uint32_t shift = 0; + uint32_t line = 0; + uint32_t amount = 50000; + + for(int i=0+shift, k=0+shift; i + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef __UTILS_H__ +#define __UTILS_H__ + +#include "config.h" + +#include +#include + +#include +#include +#include +#include +#include + +#include "udffsck.h" + +int print_disc(struct udf_disc *disc); +int prompt(const char *format, ...); + +void print_metadata_sequence(vds_sequence_t *seq); + +#if MEMTRACE + +void *custom_malloc(size_t size, char * file, int line); +void custom_free(void *ptr, char * file, int line); +int custom_munmap(void *addr, size_t length, char * file, int line); +void *custom_mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset, char * file, int line); + +#define malloc(size) custom_malloc(size, __FILE__, __LINE__) +#define free(ptr) custom_free(ptr, __FILE__, __LINE__) +#define mmap(addr, length, prot, flags, fd, offset) custom_mmap(addr, length, prot, flags, fd, offset, __FILE__, __LINE__) +#define munmap(addr, length) custom_munmap(addr, length, __FILE__, __LINE__) + +#endif + +#if HEXPRINT +void print_hex_array(void *ptr, size_t size); +#endif + + +#endif //__UTILS_H__