From 311cdb45bae991278e2eb074b5abfbcd06862217 Mon Sep 17 00:00:00 2001 From: Kun Yang Date: Tue, 25 Sep 2012 01:21:22 +0000 Subject: [PATCH] upload droidbox23 and APIMonitor --- APIMonitor/README | 41 + APIMonitor/androguard/__init__.py | 0 APIMonitor/androguard/core/__init__.py | 0 APIMonitor/androguard/core/androconf.py | 234 + APIMonitor/androguard/core/bytecode.py | 424 + .../androguard/core/bytecodes/__init__.py | 0 APIMonitor/androguard/core/bytecodes/apk.py | 1037 +++ APIMonitor/androguard/core/bytecodes/dvm.py | 7523 +++++++++++++++++ .../core/bytecodes/dvm_permissions.py | 181 + APIMonitor/api_example.py | 62 + APIMonitor/apimonitor.py | 116 + APIMonitor/apkil/__init__.py | 9 + APIMonitor/apkil/api.py | 203 + APIMonitor/apkil/apk.py | 18 + APIMonitor/apkil/logger.py | 40 + APIMonitor/apkil/monitor.py | 1028 +++ APIMonitor/apkil/smali.py | 865 ++ APIMonitor/config/apkil.cert | Bin 0 -> 1283 bytes APIMonitor/config/default_api_collection | 94 + APIMonitor/examples/APKILTests.apk | Bin 0 -> 156638 bytes APIMonitor/process_api.py | 19 + APIMonitor/smali/baksmali.jar | Bin 0 -> 471233 bytes APIMonitor/smali/smali.jar | Bin 0 -> 653002 bytes droidbox23/dalvik.patch | 276 + droidbox23/framework_base.patch | 382 + droidbox23/libcore.patch | 995 +++ 26 files changed, 13547 insertions(+) create mode 100644 APIMonitor/README create mode 100644 APIMonitor/androguard/__init__.py create mode 100644 APIMonitor/androguard/core/__init__.py create mode 100644 APIMonitor/androguard/core/androconf.py create mode 100644 APIMonitor/androguard/core/bytecode.py create mode 100644 APIMonitor/androguard/core/bytecodes/__init__.py create mode 100644 APIMonitor/androguard/core/bytecodes/apk.py create mode 100644 APIMonitor/androguard/core/bytecodes/dvm.py create mode 100644 APIMonitor/androguard/core/bytecodes/dvm_permissions.py create mode 100644 APIMonitor/api_example.py create mode 100755 APIMonitor/apimonitor.py create mode 100644 APIMonitor/apkil/__init__.py create mode 100644 APIMonitor/apkil/api.py create mode 100644 APIMonitor/apkil/apk.py create mode 100644 APIMonitor/apkil/logger.py create mode 100644 APIMonitor/apkil/monitor.py create mode 100644 APIMonitor/apkil/smali.py create mode 100644 APIMonitor/config/apkil.cert create mode 100644 APIMonitor/config/default_api_collection create mode 100644 APIMonitor/examples/APKILTests.apk create mode 100644 APIMonitor/process_api.py create mode 100644 APIMonitor/smali/baksmali.jar create mode 100644 APIMonitor/smali/smali.jar create mode 100644 droidbox23/dalvik.patch create mode 100644 droidbox23/framework_base.patch create mode 100644 droidbox23/libcore.patch diff --git a/APIMonitor/README b/APIMonitor/README new file mode 100644 index 0000000..98c49ae --- /dev/null +++ b/APIMonitor/README @@ -0,0 +1,41 @@ +APKIL is an APK Instrumentation Library. +Supported by Google Summer of Code 2012 and The Honeynet Project. + +Author: Kun Yang +Project Wiki: http://code.google.com/p/droidbox/wiki/APIMonitor + +apimonitor.py + DroidBox APIMonitor script(currently beta). + + usage: apimonitor.py [-h] [-o, --output dirpath] [-a, --api apilist] [-v, --version] filename + + Repackage apk to monitor arbitrary APIs. + + positional arguments: + filename path of APK file + + optional arguments: + -h, --help show this help message and exit + -o, --output dirpath output directory + -a, --api apilist config file of API list + -v, --version show program's version number and exit + +apkil/apk.py + A light weight module to play with apk to develop in the future. Currently we use androguard/apk.py. + +apkil/smali.py + Parse smali files of APKs to tree based structure. + +apkil/monitor.py + Inject monitor code to smali tree. + +apkil/api.py + Derive inheritence relationship of Android API from android.jar + +process_api.py + Call apkil/api.py to build and store API database. + +api_permissions.py + Permissions from http://www.android-permissions.org/ which may be used in the future. + + diff --git a/APIMonitor/androguard/__init__.py b/APIMonitor/androguard/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/APIMonitor/androguard/core/__init__.py b/APIMonitor/androguard/core/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/APIMonitor/androguard/core/androconf.py b/APIMonitor/androguard/core/androconf.py new file mode 100644 index 0000000..e98dbe0 --- /dev/null +++ b/APIMonitor/androguard/core/androconf.py @@ -0,0 +1,234 @@ +# This file is part of Androguard. +# +# Copyright (C) 2010, Anthony Desnos +# All rights reserved. +# +# Androguard is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Androguard 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 Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Androguard. If not, see . + +import sys, os, logging, types, random, string + +ANDROGUARD_VERSION = "1.5" + +def get_ascii_string(s) : + try : + return s.decode("ascii") + except UnicodeDecodeError : + d = "" + for i in s : + if ord(i) < 128 : + d += i + else : + d += "%x" % ord(i) + return d + +class Color: + Normal = "\033[0m" + Black = "\033[30m" + Red = "\033[31m" + Green = "\033[32m" + Yellow = "\033[33m" + Blue = "\033[34m" + Purple = "\033[35m" + Cyan = "\033[36m" + Grey = "\033[37m" + Bold = "\033[1m" + +CONF = { + "BIN_DED" : "ded.sh", + "PATH_DED" : "./decompiler/ded/", + "PATH_DEX2JAR" : "./decompiler/dex2jar/", + "BIN_DEX2JAR" : "dex2jar.sh", + "PATH_JAD" : "./decompiler/jad/", + "BIN_JAD" : "jad", + "PRETTY_SHOW" : 1, + + # Full python or mix python/c++ (native) + #"ENGINE" : "automatic", + "ENGINE" : "python", + + "RECODE_ASCII_STRING" : False, + "RECODE_ASCII_STRING_METH" : get_ascii_string, + + "DEOBFUSCATED_STRING" : True, +# "DEOBFUSCATED_STRING_METH" : get_deobfuscated_string, + + "PATH_JARSIGNER" : "jarsigner", + + "COLORS" : { + "OFFSET" : Color.Yellow, + "OFFSET_ADDR" : Color.Green, + "INSTRUCTION_NAME" : Color.Yellow, + "BRANCH_FALSE" : Color.Red, + "BRANCH_TRUE" : Color.Green, + "BRANCH" : Color.Blue, + "EXCEPTION" : Color.Cyan, + "BB" : Color.Purple, + "NOTE" : Color.Red, + "NORMAL" : Color.Normal, + }, + + "PRINT_FCT" : sys.stdout.write, + + "LAZY_ANALYSIS" : False, + + "MAGIC_PATH_FILE" : None, +} + +def default_colors(obj) : + CONF["COLORS"]["OFFSET"] = obj.Yellow + CONF["COLORS"]["OFFSET_ADDR"] = obj.Green + CONF["COLORS"]["INSTRUCTION_NAME"] = obj.Yellow + CONF["COLORS"]["BRANCH_FALSE"] = obj.Red + CONF["COLORS"]["BRANCH_TRUE"] = obj.Green + CONF["COLORS"]["BRANCH"] = obj.Blue + CONF["COLORS"]["EXCEPTION"] = obj.Cyan + CONF["COLORS"]["BB"] = obj.Purple + CONF["COLORS"]["NOTE"] = obj.Red + CONF["COLORS"]["NORMAL"] = obj.Normal + +def disable_colors() : + """ Disable colors from the output (color = normal)""" + for i in CONF["COLORS"] : + CONF["COLORS"][i] = Color.normal + +def remove_colors() : + """ Remove colors from the output (no escape sequences)""" + for i in CONF["COLORS"] : + CONF["COLORS"][i] = "" + +def enable_colors(colors) : + for i in colors : + CONF["COLORS"][i] = colors[i] + +def save_colors() : + c = {} + for i in CONF["COLORS"] : + c[i] = CONF["COLORS"][i] + return c + +def long2int( l ) : + if l > 0x7fffffff : + l = (0x7fffffff & l) - 0x80000000 + return l + +def long2str(l): + """Convert an integer to a string.""" + if type(l) not in (types.IntType, types.LongType): + raise ValueError, 'the input must be an integer' + + if l < 0: + raise ValueError, 'the input must be greater than 0' + s = '' + while l: + s = s + chr(l & 255L) + l >>= 8 + + return s + +def str2long(s): + """Convert a string to a long integer.""" + if type(s) not in (types.StringType, types.UnicodeType): + raise ValueError, 'the input must be a string' + + l = 0L + for i in s: + l <<= 8 + l |= ord(i) + + return l + +def random_string() : + return random.choice( string.letters ) + ''.join([ random.choice(string.letters + string.digits) for i in range(10 - 1) ] ) + +def is_android(filename) : + """Return the type of the file + + @param filename : the filename + @rtype : "APK", "DEX", "ELF", None + """ + + fd = open( filename, "r") + val = None + + f_bytes = fd.read(7) + + val = is_android_raw( f_bytes ) + + fd.close() + return val + +def is_android_raw(raw) : + val = None + f_bytes = raw[:7] + + if f_bytes[0:2] == "PK" : + val = "APK" + elif f_bytes[0:3] == "dex" : + val = "DEX" + elif f_bytes[0:3] == "dey" : + val = "DEY" + elif f_bytes[0:7] == "\x7fELF\x01\x01\x01" : + val = "ELF" + elif f_bytes[0:4] == "\x03\x00\x08\x00" : + val = "AXML" + + return val + +def is_valid_android_raw(raw) : + return raw.find("classes.dex") != -1 + +# from scapy +log_andro = logging.getLogger("andro") +console_handler = logging.StreamHandler() +console_handler.setFormatter(logging.Formatter("%(levelname)s: %(message)s")) +log_andro.addHandler(console_handler) +log_runtime = logging.getLogger("andro.runtime") # logs at runtime +log_interactive = logging.getLogger("andro.interactive") # logs in interactive functions +log_loading = logging.getLogger("andro.loading") # logs when loading andro + +def set_lazy() : + CONF["LAZY_ANALYSIS"] = True + +def set_debug() : + log_andro.setLevel( logging.DEBUG ) + +def get_debug() : + return log_andro.getEffectiveLevel() == logging.DEBUG + +def warning(x): + log_runtime.warning(x) + +def error(x) : + log_runtime.error(x) + raise() + +def debug(x) : + log_runtime.debug(x) + +def set_options(key, value) : + CONF[ key ] = value + +def save_to_disk(buff, output) : + fd = open(output, "w") + fd.write(buff) + fd.close() + +def rrmdir( directory ): + for root, dirs, files in os.walk(directory, topdown=False): + for name in files: + os.remove(os.path.join(root, name)) + for name in dirs: + os.rmdir(os.path.join(root, name)) + os.rmdir( directory ) + diff --git a/APIMonitor/androguard/core/bytecode.py b/APIMonitor/androguard/core/bytecode.py new file mode 100644 index 0000000..2bef990 --- /dev/null +++ b/APIMonitor/androguard/core/bytecode.py @@ -0,0 +1,424 @@ +# This file is part of Androguard. +# +# Copyright (C) 2012, Anthony Desnos +# All rights reserved. +# +# Androguard is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Androguard 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 Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Androguard. If not, see . + +from struct import unpack, pack + +from androconf import Color, warning, error, CONF, disable_colors, enable_colors, remove_colors, save_colors + +def disable_print_colors() : + colors = save_colors() + remove_colors() + return colors + +def enable_print_colors(colors) : + enable_colors(colors) + +# Handle exit message +def Exit( msg ): + warning("Error : " + msg) + raise("oops") + +def Warning( msg ): + warning(msg) + +def _PrintBanner() : + print_fct = CONF["PRINT_FCT"] + print_fct("*" * 75 + "\n") + +def _PrintSubBanner(title=None) : + print_fct = CONF["PRINT_FCT"] + if title == None : + print_fct("#" * 20 + "\n") + else : + print_fct("#" * 10 + " " + title + "\n") + +def _PrintNote(note, tab=0) : + print_fct = CONF["PRINT_FCT"] + note_color = CONF["COLORS"]["NOTE"] + normal_color = CONF["COLORS"]["NORMAL"] + print_fct("\t" * tab + "%s# %s%s" % (note_color, note, normal_color) + "\n") + +# Print arg into a correct format +def _Print(name, arg) : + buff = name + " " + + if type(arg).__name__ == 'int' : + buff += "0x%x" % arg + elif type(arg).__name__ == 'long' : + buff += "0x%x" % arg + elif type(arg).__name__ == 'str' : + buff += "%s" % arg + elif isinstance(arg, SV) : + buff += "0x%x" % arg.get_value() + elif isinstance(arg, SVs) : + buff += arg.get_value().__str__() + + print buff + +def PrettyShowEx( exceptions ) : + if len(exceptions) > 0 : + CONF["PRINT_FCT"]("Exceptions:\n") + for i in exceptions : + CONF["PRINT_FCT"]("\t%s%s%s\n" % (CONF["COLORS"]["EXCEPTION"], i.show_buff(), CONF["COLORS"]["NORMAL"])) + +def _PrintXRef(tag, items) : + print_fct = CONF["PRINT_FCT"] + for i in items : + print_fct("%s: %s %s %s %s\n" % (tag, i[0].get_class_name(), i[0].get_name(), i[0].get_descriptor(), ' '.join("%x" % j.get_idx() for j in i[1]))) + +def _PrintDRef(tag, items) : + print_fct = CONF["PRINT_FCT"] + for i in items : + print_fct( "%s: %s %s %s %s\n" % (tag, i[0].get_class_name(), i[0].get_name(), i[0].get_descriptor(), ' '.join("%x" % j for j in i[1]) ) ) + +def _PrintDefault(msg) : + print_fct = CONF["PRINT_FCT"] + print_fct(msg) + +def PrettyShow( basic_blocks, notes={} ) : + idx = 0 + nb = 0 + + offset_color = CONF["COLORS"]["OFFSET"] + offset_addr_color = CONF["COLORS"]["OFFSET_ADDR"] + instruction_name_color = CONF["COLORS"]["INSTRUCTION_NAME"] + branch_false_color = CONF["COLORS"]["BRANCH_FALSE"] + branch_true_color = CONF["COLORS"]["BRANCH_TRUE"] + branch_color = CONF["COLORS"]["BRANCH"] + exception_color = CONF["COLORS"]["EXCEPTION"] + bb_color = CONF["COLORS"]["BB"] + normal_color = CONF["COLORS"]["NORMAL"] + print_fct = CONF["PRINT_FCT"] + + for i in basic_blocks : + print_fct("%s%s%s : \n" % (bb_color, i.name, normal_color)) + instructions = i.get_instructions() + for ins in instructions : + #for ins in i.ins : + + if nb in notes : + for note in notes[nb] : + _PrintNote(note, 1) + + print_fct("\t%s%-3d%s(%s%08x%s) " % (offset_color, nb, normal_color, offset_addr_color, idx, normal_color)) + print_fct("%s%-20s%s %s" %(instruction_name_color, ins.get_name(), normal_color, ins.get_output(idx))) + + op_value = ins.get_op_value() + if ins == instructions[-1] and i.childs != [] : + print_fct(" ") + + # packed/sparse-switch + if (op_value == 0x2b or op_value == 0x2c) and len(i.childs) > 1 : + values = i.get_special_ins(idx).get_values() + print_fct("%s[ D:%s%s " % (branch_false_color, i.childs[0][2].name, branch_color)) + print_fct(' '.join("%d:%s" % (values[j], i.childs[j+1][2].name) for j in range(0, len(i.childs)-1) ) + " ]%s" % normal_color) + else : + if len(i.childs) == 2 : + print_fct("%s[ %s%s " % (branch_false_color, i.childs[0][2].name, branch_true_color)) + print_fct(' '.join("%s" % c[2].name for c in i.childs[1:]) + " ]%s" % normal_color) + else : + print_fct("%s[ " % branch_color + ' '.join("%s" % c[2].name for c in i.childs) + " ]%s" % normal_color) + + idx += ins.get_length() + nb += 1 + + print_fct("\n") + + if i.get_exception_analysis() != None : + print_fct("\t%s%s%s\n" % (exception_color, i.exception_analysis.show_buff(), normal_color)) + + print_fct("\n") + +def method2dot( mx ) : + """ + Export analysis method to dot format + + @param mx : MethodAnalysis object + + @rtype : dot format buffer + """ + + vm = mx.get_vm() + buff = "" + for i in mx.basic_blocks.get() : + val = "green" + if len(i.childs) > 1 : + val = "red" + elif len(i.childs) == 1 : + val = "blue" + + for j in i.childs : + buff += "\"%s\" -> \"%s\" [color=\"%s\"];\n" % ( i.get_name(), j[-1].get_name(), val ) + if val == "red" : + val = "green" + + idx = i.start + label = "" + for ins in i.get_instructions() : + label += "%x %s\l" % (idx, vm.dotbuff(ins, idx)) + idx += ins.get_length() + + buff += "\"%s\" [color=\"lightgray\", label=\"%s\"]\n" % (i.get_name(), label) + return buff + +def method2format( output, _format="png", mx = None, raw = False ) : + """ + Export method to a specific file format + + @param output : output filename + @param _format : format type (png, jpg ...) (default : png) + @param mx : specify the MethodAnalysis object + @param raw : use directly a dot raw buffer + """ + try : + import pydot + except ImportError : + error("module pydot not found") + + buff = "digraph code {\n" + buff += "graph [bgcolor=white];\n" + buff += "node [color=lightgray, style=filled shape=box fontname=\"Courier\" fontsize=\"8\"];\n" + + if raw == False : + buff += method2dot( mx ) + else : + buff += raw + + buff += "}" + + d = pydot.graph_from_dot_data( buff ) + if d : + getattr(d, "write_" + _format)( output ) + +def method2png( output, mx, raw = False ) : + """ + Export method to a png file format + + :param output: output filename + :type output: string + :param mx: specify the MethodAnalysis object + :type mx: :class:`MethodAnalysis` object + :param raw: use directly a dot raw buffer + :type raw: string + """ + buff = raw + if raw == False : + buff = method2dot( mx ) + + method2format( output, "png", mx, buff ) + +def method2jpg( output, mx, raw = False ) : + """ + Export method to a jpg file format + + :param output: output filename + :type output: string + :param mx: specify the MethodAnalysis object + :type mx: :class:`MethodAnalysis` object + :param raw: use directly a dot raw buffer (optional) + :type raw: string + """ + buff = raw + if raw == False : + buff = method2dot( mx ) + + method2format( output, "jpg", mx, buff ) + +class SV : + def __init__(self, size, buff) : + self.__size = size + self.__value = unpack(self.__size, buff)[0] + + def _get(self) : + return pack(self.__size, self.__value) + + def __str__(self) : + return "0x%x" % self.__value + + def __int__(self) : + return self.__value + + def get_value_buff(self) : + return self._get() + + def get_value(self) : + return self.__value + + def set_value(self, attr) : + self.__value = attr + +class SVs : + def __init__(self, size, ntuple, buff) : + self.__size = size + + self.__value = ntuple._make( unpack( self.__size, buff ) ) + + def _get(self) : + l = [] + for i in self.__value._fields : + l.append( getattr( self.__value, i ) ) + return pack( self.__size, *l) + + def _export(self) : + return [ x for x in self.__value._fields ] + + def get_value_buff(self) : + return self._get() + + def get_value(self) : + return self.__value + + def set_value(self, attr) : + self.__value = self.__value._replace( **attr ) + + def __str__(self) : + return self.__value.__str__() + +def object_to_str(obj) : + if isinstance(obj, str) : + return obj + elif isinstance(obj, bool) : + return "" + elif isinstance(obj, int) : + return pack("", "") + i = i.replace("$", "_") + + return i + +def FormatDescriptorToPython(input) : + i = input.replace("/", "_") + i = i.replace(";", "") + i = i.replace("[", "") + i = i.replace("(", "") + i = i.replace(")", "") + i = i.replace(" ", "") + i = i.replace("$", "") + + return i \ No newline at end of file diff --git a/APIMonitor/androguard/core/bytecodes/__init__.py b/APIMonitor/androguard/core/bytecodes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/APIMonitor/androguard/core/bytecodes/apk.py b/APIMonitor/androguard/core/bytecodes/apk.py new file mode 100644 index 0000000..4267db2 --- /dev/null +++ b/APIMonitor/androguard/core/bytecodes/apk.py @@ -0,0 +1,1037 @@ +# This file is part of Androguard. +# +# Copyright (C) 2012, Anthony Desnos +# All rights reserved. +# +# Androguard is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Androguard 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 Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Androguard. If not, see . + + +from androguard.core import bytecode +from androguard.core import androconf +from androguard.core.bytecode import SV +from androguard.core.bytecodes.dvm_permissions import DVM_PERMISSIONS + +import zipfile, StringIO +from struct import pack, unpack +from xml.dom import minidom +from xml.sax.saxutils import escape +from zlib import crc32 +import re + +import sys +if sys.hexversion < 0x2070000 : + try : + import chilkat + ZIPMODULE = 0 + # UNLOCK : change it with your valid key ! + try : + CHILKAT_KEY = open("key.txt", "rb").read() + except Exception : + CHILKAT_KEY = "testme" + + except ImportError : + ZIPMODULE = 1 +else : + ZIPMODULE = 1 + +################################################### CHILKAT ZIP FORMAT ##################################################### +class ChilkatZip : + def __init__(self, raw) : + self.files = [] + self.zip = chilkat.CkZip() + + self.zip.UnlockComponent( CHILKAT_KEY ) + + self.zip.OpenFromMemory( raw, len(raw) ) + + filename = chilkat.CkString() + e = self.zip.FirstEntry() + while e != None : + e.get_FileName(filename) + self.files.append( filename.getString() ) + e = e.NextEntry() + + def delete(self, patterns) : + el = [] + + filename = chilkat.CkString() + e = self.zip.FirstEntry() + while e != None : + e.get_FileName(filename) + + if re.match(patterns, filename.getString()) != None : + el.append( e ) + e = e.NextEntry() + + for i in el : + self.zip.DeleteEntry( i ) + + def remplace_file(self, filename, buff) : + entry = self.zip.GetEntryByName(filename) + if entry != None : + + obj = chilkat.CkByteData() + obj.append( buff, len(buff) ) + return entry.ReplaceData( obj ) + return False + + def write(self) : + obj = chilkat.CkByteData() + self.zip.WriteToMemory( obj ) + return obj.getBytes() + + def namelist(self) : + return self.files + + def read(self, elem) : + e = self.zip.GetEntryByName( elem ) + s = chilkat.CkByteData() + + e.Inflate( s ) + return s.getBytes() + +def sign_apk(filename, keystore, alias_name, storepass) : + from subprocess import Popen, PIPE, STDOUT + compile = Popen([ androconf.CONF["PATH_JARSIGNER"], + "-sigalg", + "MD5withRSA", + "-digestalg", + "SHA1", + + "-storepass", + storepass, + + "-keystore", + keystore, + + filename, + + alias_name ], + stdout=PIPE, stderr=STDOUT) + stdout, stderr = compile.communicate() + +######################################################## APK FORMAT ######################################################## +class APK : + """ + This class can access to all elements in an APK file + + :param filename: specify the path of the file, or raw data + :param raw: specify if the filename is a path or raw data (optional) + :param mode: specify the mode to open the file (optional) + :param magic_file: specify the magic file (optional) + + :type filename: string + :type raw: boolean + :type mode: string + :type magic_file: string + + :Example: + APK("myfile.apk") + + APK(open("myfile.apk", "rb").read(), raw=True) + """ + def __init__(self, filename, raw=False, mode="r", magic_file=None) : + self.filename = filename + + self.xml = {} + self.package = "" + self.androidversion = {} + self.permissions = [] + self.validAPK = False + + self.files = {} + self.files_crc32 = {} + + self.magic_file = magic_file + + if raw == True : + self.__raw = filename + else : + fd = open( filename, "rb" ) + self.__raw = fd.read() + fd.close() + + + if ZIPMODULE == 0 : + self.zip = ChilkatZip( self.__raw ) + else : + self.zip = zipfile.ZipFile( StringIO.StringIO( self.__raw ), mode=mode ) + + + for i in self.zip.namelist() : + if i == "AndroidManifest.xml" : + self.xml[i] = minidom.parseString( AXMLPrinter( self.zip.read( i ) ).getBuff() ) + + self.package = self.xml[i].documentElement.getAttribute( "package" ) + self.androidversion["Code"] = self.xml[i].documentElement.getAttribute( "android:versionCode" ) + self.androidversion["Name"] = self.xml[i].documentElement.getAttribute( "android:versionName") + + for item in self.xml[i].getElementsByTagName('uses-permission') : + self.permissions.append( str( item.getAttribute("android:name") ) ) + + self.validAPK = True + + self.get_files_types() + + def get_AndroidManifest(self) : + """ + Return the Android Manifest XML file + + :rtype: xml object + """ + return self.xml["AndroidManifest.xml"] + + def is_valid_APK(self) : + """ + Return true if the APK is valid, false otherwise + + :rtype: boolean + """ + return self.validAPK + + + def get_filename(self) : + """ + Return the filename of the APK + + :rtype: string + """ + return self.filename + + def get_package(self) : + """ + Return the name of the package + + :rtype: string + """ + return self.package + + def get_androidversion_code(self) : + """ + Return the android version code + + :rtype: string + """ + return self.androidversion["Code"] + + def get_androidversion_name(self) : + """ + Return the android version name + + :rtype: string + """ + return self.androidversion["Name"] + + def get_files(self) : + """ + Return the files inside the APK + + :rtype: a list of strings + """ + return self.zip.namelist() + + def get_files_types(self) : + """ + Return the files inside the APK with their associated types (by using python-magic) + + :rtype: a dictionnary + """ + try : + import magic + except ImportError : + for i in self.get_files() : + buffer = self.zip.read( i ) + self.files_crc32[ i ] = crc32( buffer ) + return self.files + + if self.files != {} : + return self.files + + builtin_magic = 0 + try : + getattr(magic, "Magic") + except AttributeError : + builtin_magic = 1 + + if builtin_magic : + ms = magic.open(magic.MAGIC_NONE) + ms.load() + + for i in self.get_files() : + buffer = self.zip.read( i ) + self.files[ i ] = ms.buffer( buffer ) + self.files[ i ] = self._patch_magic(buffer, self.files[ i ]) + self.files_crc32[ i ] = crc32( buffer ) + else : + m = magic.Magic(magic_file=self.magic_file) + for i in self.get_files() : + buffer = self.zip.read( i ) + self.files[ i ] = m.from_buffer( buffer ) + self.files[ i ] = self._patch_magic(buffer, self.files[ i ]) + self.files_crc32[ i ] = crc32( buffer ) + + return self.files + + def _patch_magic(self, buffer, orig) : + if ("Zip" in orig) or ("DBase" in orig) : + val = androconf.is_android_raw( buffer ) + if val == "APK" : + if androconf.is_valid_android_raw( buffer ) : + return "Android application package file" + elif val == "AXML" : + return "Android's binary XML" + + return orig + + def get_files_crc32(self) : + if self.files_crc32 == {} : + self.get_files_types() + + return self.files_crc32 + + def get_files_information(self) : + """ + Return the files inside the APK with their associated types and crc32 + + :rtype: string, string, int + """ + if self.files == {} : + self.get_files_types() + + for i in self.get_files() : + try : + yield i, self.files[ i ], self.files_crc32[ i ] + except KeyError : + yield i, "", "" + + def get_raw(self) : + """ + Return raw bytes of the APK + + :rtype: string + """ + return self.__raw + + def get_file(self, filename) : + """ + Return the raw data of the specified filename + + :rtype: string + """ + try : + return self.zip.read( filename ) + except KeyError : + return "" + + def get_dex(self) : + """ + Return the raw data of the classes dex file + + :rtype: string + """ + return self.get_file( "classes.dex" ) + + def get_elements(self, tag_name, attribute) : + """ + Return elements in xml files which match with the tag name and the specific attribute + + :param tag_name: a string which specify the tag name + :param attribute: a string which specify the attribute + """ + l = [] + for i in self.xml : + for item in self.xml[i].getElementsByTagName(tag_name) : + value = item.getAttribute(attribute) + value = self.format_value( value ) + + + l.append( str( value ) ) + return l + + def format_value(self, value) : + if len(value) > 0 : + if value[0] == "." : + value = self.package + value + else : + v_dot = value.find(".") + if v_dot == 0 : + value = self.package + "." + value + elif v_dot == -1 : + value = self.package + "." + value + return value + + def get_element(self, tag_name, attribute) : + """ + Return element in xml files which match with the tag name and the specific attribute + + :param tag_name: specify the tag name + :type tag_name: string + :param attribute: specify the attribute + :type attribute: string + + :rtype: string + """ + for i in self.xml : + for item in self.xml[i].getElementsByTagName(tag_name) : + value = item.getAttribute(attribute) + + if len(value) > 0 : + return value + return None + + def get_main_activity(self) : + """ + Return the name of the main activity + + :rtype: string + """ + for i in self.xml : + x = set() + y = set() + for item in self.xml[i].getElementsByTagName("activity") : + for sitem in item.getElementsByTagName( "action" ) : + val = sitem.getAttribute( "android:name" ) + if val == "android.intent.action.MAIN" : + x.add( item.getAttribute( "android:name" ) ) + + for sitem in item.getElementsByTagName( "category" ) : + val = sitem.getAttribute( "android:name" ) + if val == "android.intent.category.LAUNCHER" : + y.add( item.getAttribute( "android:name" ) ) + + z = x.intersection(y) + if len(z) > 0 : + return self.format_value(z.pop()) + return None + + def get_activities(self) : + """ + Return the android:name attribute of all activities + + :rtype: a list of string + """ + return self.get_elements("activity", "android:name") + + def get_services(self) : + """ + Return the android:name attribute of all services + + :rtype: a list of string + """ + return self.get_elements("service", "android:name") + + def get_receivers(self) : + """ + Return the android:name attribute of all receivers + + :rtype: a list of string + """ + return self.get_elements("receiver", "android:name") + + def get_providers(self) : + """ + Return the android:name attribute of all providers + + :rtype: a list of string + """ + return self.get_elements("provider", "android:name") + + def get_permissions(self) : + """ + Return permissions + + :rtype: list of string + """ + return self.permissions + + def get_details_permissions(self) : + """ + Return permissions with details + + :rtype: list of string + """ + l = {} + + for i in self.permissions : + perm = i + pos = i.rfind(".") + + if pos != -1 : + perm = i[pos+1:] + + try : + l[ i ] = DVM_PERMISSIONS["MANIFEST_PERMISSION"][ perm ] + except KeyError : + l[ i ] = [ "dangerous", "Unknown permission from android reference", "Unknown permission from android reference" ] + + return l + + def get_min_sdk_version(self) : + """ + Return the android:minSdkVersion attribute + + :rtype: string + """ + return self.get_element( "uses-sdk", "android:minSdkVersion" ) + + def get_target_sdk_version(self) : + """ + Return the android:targetSdkVersion attribute + + :rtype: string + """ + return self.get_element( "uses-sdk", "android:targetSdkVersion" ) + + def get_libraries(self) : + """ + Return the android:name attributes for libraries + + :rtype: list + """ + return self.get_elements( "uses-library", "android:name" ) + + def get_certificate(self, filename) : + """ + Return a certificate object by giving the name in the apk file + """ + import chilkat + + cert = chilkat.CkCert() + f = self.get_file( filename ) + + success = cert.LoadFromBinary(f, len(f)) + + return success, cert + + def new_zip(self, filename, deleted_files=None, new_files={}) : + """ + Create a new zip file + + :param filename: the output filename of the zip + :param deleted_files: a regex pattern to remove specific file + :param new_files: a dictionnary of new files + + :type filename: string + :type deleted_files: None or a string + :type new_files: a dictionnary (key:filename, value:content of the file) + """ + zout = zipfile.ZipFile (filename, 'w') + + for item in self.zip.infolist() : + + if deleted_files != None : + if re.match(deleted_files, item.filename) == None : + if item.filename in new_files : + zout.writestr(item, new_files[item.filename]) + else : + buffer = self.zip.read(item.filename) + zout.writestr(item, buffer) + zout.close() + + def show(self) : + self.get_files_types() + + print "FILES: " + for i in self.get_files() : + try : + print "\t", i, self.files[i], "%x" % self.files_crc32[i] + except KeyError : + print "\t", i, "%x" % self.files_crc32[i] + + print "PERMISSIONS: " + details_permissions = self.get_details_permissions() + for i in details_permissions : + print "\t", i, details_permissions[i] + print "MAIN ACTIVITY: ", self.get_main_activity() + print "ACTIVITIES: ", self.get_activities() + print "SERVICES: ", self.get_services() + print "RECEIVERS: ", self.get_receivers() + print "PROVIDERS: ", self.get_providers() + +def show_Certificate(cert) : + print "Issuer: C=%s, CN=%s, DN=%s, E=%s, L=%s, O=%s, OU=%s, S=%s" % (cert.issuerC(), cert.issuerCN(), cert.issuerDN(), cert.issuerE(), cert.issuerL(), cert.issuerO(), cert.issuerOU(), cert.issuerS()) + print "Subject: C=%s, CN=%s, DN=%s, E=%s, L=%s, O=%s, OU=%s, S=%s" % (cert.subjectC(), cert.subjectCN(), cert.subjectDN(), cert.subjectE(), cert.subjectL(), cert.subjectO(), cert.subjectOU(), cert.subjectS()) + + +######################################################## AXML FORMAT ######################################################## +# Translated from http://code.google.com/p/android4me/source/browse/src/android/content/res/AXmlResourceParser.java +class StringBlock : + def __init__(self, buff) : + buff.read( 4 ) + + self.chunkSize = SV( '= len(self.m_stringOffsets) : + return None + + offset = self.m_stringOffsets[ idx ].get_value() + length = self.getShort(self.m_strings, offset) + + data = "" + + while length > 0 : + offset += 2 + # Unicode character + data += unichr( self.getShort(self.m_strings, offset) ) + + # FIXME + if data[-1] == "&" : + data = data[:-1] + + length -= 1 + + return data + + def getShort(self, array, offset) : + value = array[offset/4].get_value() + if ((offset%4)/2) == 0 : + return value & 0xFFFF + else : + return value >> 16 + +ATTRIBUTE_IX_NAMESPACE_URI = 0 +ATTRIBUTE_IX_NAME = 1 +ATTRIBUTE_IX_VALUE_STRING = 2 +ATTRIBUTE_IX_VALUE_TYPE = 3 +ATTRIBUTE_IX_VALUE_DATA = 4 +ATTRIBUTE_LENGHT = 5 + +CHUNK_AXML_FILE = 0x00080003 +CHUNK_RESOURCEIDS = 0x00080180 +CHUNK_XML_FIRST = 0x00100100 +CHUNK_XML_START_NAMESPACE = 0x00100100 +CHUNK_XML_END_NAMESPACE = 0x00100101 +CHUNK_XML_START_TAG = 0x00100102 +CHUNK_XML_END_TAG = 0x00100103 +CHUNK_XML_TEXT = 0x00100104 +CHUNK_XML_LAST = 0x00100104 + +START_DOCUMENT = 0 +END_DOCUMENT = 1 +START_TAG = 2 +END_TAG = 3 +TEXT = 4 +class AXMLParser : + def __init__(self, raw_buff) : + self.reset() + + self.buff = bytecode.BuffHandle( raw_buff ) + + self.buff.read(4) + self.buff.read(4) + + self.sb = StringBlock( self.buff ) + + self.m_resourceIDs = [] + self.m_prefixuri = {} + self.m_uriprefix = {} + self.m_prefixuriL = [] + + def reset(self) : + self.m_event = -1 + self.m_lineNumber = -1 + self.m_name = -1 + self.m_namespaceUri = -1 + self.m_attributes = [] + self.m_idAttribute = -1 + self.m_classAttribute = -1 + self.m_styleAttribute = -1 + + def next(self) : + self.doNext() + return self.m_event + + def doNext(self) : + if self.m_event == END_DOCUMENT : + return + + event = self.m_event + + self.reset() + while 1 : + chunkType = -1 + + # Fake END_DOCUMENT event. + if event == END_TAG : + pass + + # START_DOCUMENT + if event == START_DOCUMENT : + chunkType = CHUNK_XML_START_TAG + else : + if self.buff.end() == True : + self.m_event = END_DOCUMENT + break + chunkType = SV( ' CHUNK_XML_LAST : + raise("ooo") + + # Fake START_DOCUMENT event. + if chunkType == CHUNK_XML_START_TAG and event == -1 : + self.m_event = START_DOCUMENT + break + + self.buff.read( 4 ) #/*chunkSize*/ + lineNumber = SV( '>16) - 1 + attributeCount = attributeCount & 0xFFFF + self.m_classAttribute = SV( '>16) - 1 + + self.m_classAttribute = (self.m_classAttribute & 0xFFFF) - 1 + + for i in range(0, attributeCount*ATTRIBUTE_LENGHT) : + self.m_attributes.append( SV( '>24) + + self.m_event = START_TAG + break + + if chunkType == CHUNK_XML_END_TAG : + self.m_namespaceUri = SV( '= len(self.m_attributes) : + raise("Invalid attribute index") + + return offset + + def getAttributeCount(self) : + if self.m_event != START_TAG : + return -1 + + return len(self.m_attributes) / ATTRIBUTE_LENGHT + + def getAttributePrefix(self, index) : + offset = self.getAttributeOffset(index) + uri = self.m_attributes[offset+ATTRIBUTE_IX_NAMESPACE_URI] + + prefix = self.getPrefixByUri( uri ) + if prefix == -1 : + return "" + + return self.sb.getRaw( prefix ) + + def getAttributeName(self, index) : + offset = self.getAttributeOffset(index) + name = self.m_attributes[offset+ATTRIBUTE_IX_NAME] + + if name == -1 : + return "" + + return self.sb.getRaw( name ) + + def getAttributeValueType(self, index) : + offset = self.getAttributeOffset(index) + return self.m_attributes[offset+ATTRIBUTE_IX_VALUE_TYPE] + + def getAttributeValueData(self, index) : + offset = self.getAttributeOffset(index) + return self.m_attributes[offset+ATTRIBUTE_IX_VALUE_DATA] + + def getAttributeValue(self, index) : + offset = self.getAttributeOffset(index) + valueType = self.m_attributes[offset+ATTRIBUTE_IX_VALUE_TYPE] + if valueType == TYPE_STRING : + valueString = self.m_attributes[offset+ATTRIBUTE_IX_VALUE_STRING] + return self.sb.getRaw( valueString ) + # WIP + return "" + #int valueData=m_attributes[offset+ATTRIBUTE_IX_VALUE_DATA]; + #return TypedValue.coerceToString(valueType,valueData); + +TYPE_ATTRIBUTE = 2 +TYPE_DIMENSION = 5 +TYPE_FIRST_COLOR_INT = 28 +TYPE_FIRST_INT = 16 +TYPE_FLOAT = 4 +TYPE_FRACTION = 6 +TYPE_INT_BOOLEAN = 18 +TYPE_INT_COLOR_ARGB4 = 30 +TYPE_INT_COLOR_ARGB8 = 28 +TYPE_INT_COLOR_RGB4 = 31 +TYPE_INT_COLOR_RGB8 = 29 +TYPE_INT_DEC = 16 +TYPE_INT_HEX = 17 +TYPE_LAST_COLOR_INT = 31 +TYPE_LAST_INT = 31 +TYPE_NULL = 0 +TYPE_REFERENCE = 1 +TYPE_STRING = 3 + +RADIX_MULTS = [ 0.00390625, 3.051758E-005, 1.192093E-007, 4.656613E-010 ] +DIMENSION_UNITS = [ "px","dip","sp","pt","in","mm","","" ] +FRACTION_UNITS = [ "%","%p","","","","","","" ] + +COMPLEX_UNIT_MASK = 15 + +class AXMLPrinter : + def __init__(self, raw_buff) : + self.axml = AXMLParser( raw_buff ) + self.xmlns = False + + self.buff = "" + + while 1 : + _type = self.axml.next() +# print "tagtype = ", _type + + if _type == START_DOCUMENT : + self.buff += "\n" + elif _type == START_TAG : + self.buff += "<%s%s\n" % ( self.getPrefix( self.axml.getPrefix() ), self.axml.getName() ) + + # FIXME : use namespace + if self.xmlns == False : + self.buff += self.axml.getXMLNS() + self.xmlns = True + + for i in range(0, self.axml.getAttributeCount()) : + self.buff += "%s%s=\"%s\"\n" % ( self.getPrefix( + self.axml.getAttributePrefix(i) ), self.axml.getAttributeName(i), self._escape( self.getAttributeValue( i ) ) ) + + self.buff += ">\n" + + elif _type == END_TAG : + self.buff += "\n" % ( self.getPrefix( self.axml.getPrefix() ), self.axml.getName() ) + + elif _type == TEXT : + self.buff += "%s\n" % self.axml.getText() + + elif _type == END_DOCUMENT : + break + + # pleed patch + def _escape(self, s) : + s = s.replace("&","&") + s = s.replace('"',""") + s = s.replace("'","'") + s = s.replace("<","<") + s = s.replace(">",">") + + return escape(s) + + + def getBuff(self) : + return self.buff.encode("utf-8") + + def getPrefix(self, prefix) : + if prefix == None or len(prefix) == 0 : + return "" + + return prefix + ":" + + def getAttributeValue(self, index) : + _type = self.axml.getAttributeValueType(index) + _data = self.axml.getAttributeValueData(index) + + #print _type, _data + if _type == TYPE_STRING : + return self.axml.getAttributeValue( index ) + + elif _type == TYPE_ATTRIBUTE : + return "?%s%08X" % (self.getPackage(_data), _data) + + elif _type == TYPE_REFERENCE : + return "@%s%08X" % (self.getPackage(_data), _data) + + # WIP + elif _type == TYPE_FLOAT : + return "%f" % unpack("=f", pack("=L", _data))[0] + + elif _type == TYPE_INT_HEX : + return "0x%08X" % _data + + elif _type == TYPE_INT_BOOLEAN : + if _data == 0 : + return "false" + return "true" + + elif _type == TYPE_DIMENSION : + return "%f%s" % (self.complexToFloat(_data), DIMENSION_UNITS[_data & COMPLEX_UNIT_MASK]) + + elif _type == TYPE_FRACTION : + return "%f%s" % (self.complexToFloat(_data), FRACTION_UNITS[_data & COMPLEX_UNIT_MASK]) + + elif _type >= TYPE_FIRST_COLOR_INT and _type <= TYPE_LAST_COLOR_INT : + return "#%08X" % _data + + elif _type >= TYPE_FIRST_INT and _type <= TYPE_LAST_INT : + return "%d" % androconf.long2int( _data ) + + return "<0x%X, type 0x%02X>" % (_data, _type) + + def complexToFloat(self, xcomplex) : + return (float)(xcomplex & 0xFFFFFF00)*RADIX_MULTS[(xcomplex>>4) & 3]; + + def getPackage(self, id) : + if id >> 24 == 1 : + return "android:" + return "" + diff --git a/APIMonitor/androguard/core/bytecodes/dvm.py b/APIMonitor/androguard/core/bytecodes/dvm.py new file mode 100644 index 0000000..0207ec1 --- /dev/null +++ b/APIMonitor/androguard/core/bytecodes/dvm.py @@ -0,0 +1,7523 @@ +# This file is part of Androguard. +# +# Copyright (C) 2012, Anthony Desnos +# All rights reserved. +# +# Androguard is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Androguard 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 Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Androguard. If not, see . + +from androguard.core import bytecode +from androguard.core.androconf import CONF, debug + +import sys, re +from struct import pack, unpack, calcsize + +DEX_FILE_MAGIC = 'dex\n035\x00' +ODEX_FILE_MAGIC_35 = 'dey\n035\x00' +ODEX_FILE_MAGIC_36 = 'dey\n036\x00' + + +TYPE_MAP_ITEM = { + 0x0 : "TYPE_HEADER_ITEM", + 0x1 : "TYPE_STRING_ID_ITEM", + 0x2 : "TYPE_TYPE_ID_ITEM", + 0x3 : "TYPE_PROTO_ID_ITEM", + 0x4 : "TYPE_FIELD_ID_ITEM", + 0x5 : "TYPE_METHOD_ID_ITEM", + 0x6 : "TYPE_CLASS_DEF_ITEM", + 0x1000 : "TYPE_MAP_LIST", + 0x1001 : "TYPE_TYPE_LIST", + 0x1002 : "TYPE_ANNOTATION_SET_REF_LIST", + 0x1003 : "TYPE_ANNOTATION_SET_ITEM", + 0x2000 : "TYPE_CLASS_DATA_ITEM", + 0x2001 : "TYPE_CODE_ITEM", + 0x2002 : "TYPE_STRING_DATA_ITEM", + 0x2003 : "TYPE_DEBUG_INFO_ITEM", + 0x2004 : "TYPE_ANNOTATION_ITEM", + 0x2005 : "TYPE_ENCODED_ARRAY_ITEM", + 0x2006 : "TYPE_ANNOTATIONS_DIRECTORY_ITEM", + } + +ACCESS_FLAGS = [ + (0x1 , 'public'), + (0x2 , 'private'), + (0x4 , 'protected'), + (0x8 , 'static'), + (0x10 , 'final'), + (0x20 , 'synchronized'), + (0x40 , 'bridge'), + (0x80 , 'varargs'), + (0x100 , 'native'), + (0x200 , 'interface'), + (0x400 , 'abstract'), + (0x800 , 'strict'), + (0x1000 , 'synthetic'), + (0x4000 , 'enum'), + (0x8000 , 'unused'), + (0x10000, 'constructor'), + (0x20000, 'synchronized'), +] + +TYPE_DESCRIPTOR = { + 'V': 'void', + 'Z': 'boolean', + 'B': 'byte', + 'S': 'short', + 'C': 'char', + 'I': 'int', + 'J': 'long', + 'F': 'float', + 'D': 'double', + 'STR': 'String', + 'StringBuilder': 'String' +} + +def get_access_flags_string(value) : + """ + Transform an access flags to the corresponding string + + :param value: the value of the access flags + :type value: int + + :rtype: string + """ + buff = "" + for i in ACCESS_FLAGS : + if (i[0] & value) == i[0] : + buff += i[1] + " " + + if buff != "" : + return buff[:-1] + return buff + + +def get_type(atype, size=None): + """ + Retrieve the type of a descriptor (e.g : I) + """ + if atype.startswith('java.lang'): + atype = atype.replace('java.lang.', '') + res = TYPE_DESCRIPTOR.get(atype.lstrip('java.lang')) + if res is None: + if atype[0] == 'L': + res = atype[1:-1].replace('/', '.') + elif atype[0] == '[': + if size is None: + res = '%s[]' % get_type(atype[1:]) + else: + res = '%s[%s]' % (get_type(atype[1:]), size) + else: + res = atype + return res + + +MATH_DVM_OPCODES = { "add." : '+', + "div." : '/', + "mul." : '*', + "or." : '|', + "sub." : '-', + "and." : '&', + "xor." : '^', + "shl." : "<<", + "shr." : ">>", + } + +FIELD_READ_DVM_OPCODES = [ ".get" ] +FIELD_WRITE_DVM_OPCODES = [ ".put" ] + +BREAK_DVM_OPCODES = [ "invoke.", "move.", ".put", "if." ] + +BRANCH_DVM_OPCODES = [ "throw", "throw.", "if.", "goto", "goto.", "return", "return.", "packed-switch$", "sparse-switch$" ] + +def clean_name_instruction( instruction ) : + op_value = instruction.get_op_value() + + # goto range + if op_value >= 0x28 and op_value <= 0x2a : + return "goto" + + return instruction.get_name() + +def static_operand_instruction( instruction ) : + buff = "" + + if isinstance(instruction, Instruction) : + # get instructions without registers + for val in instruction.get_literals() : + buff += "%s" % val + + op_value = instruction.get_op_value() + if op_value == 0x1a or op_value == 0x1b : + buff += instruction.get_string() + + return buff + +html_escape_table = { + "&": "&", + '"': """, + "'": "'", + ">": ">", + "<": "<", +} + +def dot_buff(ins, idx) : + op_value = ins.get_op_value() + + if op_value == 0x300 : + return ins.get_name() + " " + ins.get_output(idx).replace("\"", "") + elif op_value == 0x1a : + return ins.get_name() + " " + ins.get_output(idx).replace("\"", "") #"".join(html_escape_table.get(c,c) for c in ins.get_output()) + + return ins.get_name() + " " + ins.get_output(idx) + +def readuleb128(buff) : + result = ord( buff.read(1) ) + if result > 0x7f : + cur = ord( buff.read(1) ) + result = (result & 0x7f) | ((cur & 0x7f) << 7) + if cur > 0x7f : + cur = ord( buff.read(1) ) + result |= (cur & 0x7f) << 14 + if cur > 0x7f : + cur = ord( buff.read(1) ) + result |= (cur & 0x7f) << 21 + if cur > 0x7f : + cur = ord( buff.read(1) ) + if cur > 0x0f : + raise("prout") + result |= cur << 28 + + return result + +def readusleb128(buff) : + result = ord( buff.read(1) ) + if result > 0x7f : + cur = ord( buff.read(1) ) + result = (result & 0x7f) | ((cur & 0x7f) << 7) + if cur > 0x7f : + cur = ord( buff.read(1) ) + result |= (cur & 0x7f) << 14 + if cur > 0x7f : + cur = ord( buff.read(1) ) + result |= (cur & 0x7f) << 21 + if cur > 0x7f : + cur = ord( buff.read(1) ) + result |= cur << 28 + + return result + +def readuleb128p1(buff) : + return readuleb128( buff ) - 1 + +def readsleb128(buff) : + result = unpack( '=b', buff.read(1) )[0] + + if result <= 0x7f : + result = (result << 25) + if result > 0x7fffffff : + result = (0x7fffffff & result) - 0x80000000 + result = result >> 25 + else : + cur = unpack( '=b', buff.read(1) )[0] + result = (result & 0x7f) | ((cur & 0x7f) << 7) + if cur <= 0x7f : + result = (result << 18) >> 18 + else : + cur = unpack( '=b', buff.read(1) )[0] + result |= (cur & 0x7f) << 14 + if cur <= 0x7f : + result = (result << 11) >> 11 + else : + cur = unpack( '=b', buff.read(1) )[0] + result |= (cur & 0x7f) << 21 + if cur <= 0x7f : + result = (result << 4) >> 4 + else : + cur = unpack( '=b', buff.read(1) )[0] + result |= cur << 28 + + return result + +def get_sbyte(buff) : + return unpack( '=b', buff.read(1) )[0] + +def readsleb128_2(buff) : + result = get_sbyte(buff) + if result <= 0x7f : + result = (result << 25) >> 25 + else : + cur = get_sbyte(buff) + result = (result & 0x7f) | ((cur & 0x7f) << 7) + if cur <= 0x7f : + result = (result << 18) >> 18 + else : + cur = get_sbyte(buff) + result |= (cur & 0x7f) << 14 + if cur <= 0x7f : + result = (result << 11) >> 11 + else : + cur = get_sbyte(buff) + result |= (cur & 0x7f) << 21 + if cur <= 0x7f : + result = (result << 4) >> 4 + else : + cur = get_sbyte(buff) + result |= cur << 28 + + return result + + +def writeuleb128(value) : + remaining = value >> 7 + + buff = "" + while remaining > 0 : + buff += pack( "=B", ((value & 0x7f) | 0x80) ) + + value = remaining + remaining >>= 7 + + buff += pack( "=B", value & 0x7f ) + return buff + +def writesleb128(value) : + remaining = value >> 7 + hasMore = True + end = 0 + buff = "" + + if (value & (-sys.maxint - 1)) == 0 : + end = 0 + else : + end = -1 + + while hasMore : + hasMore = (remaining != end) or ((remaining & 1) != ((value >> 6) & 1)) + tmp = 0 + if hasMore : + tmp = 0x80 + + buff += pack( "=B", (value & 0x7f) | (tmp) ) + value = remaining + remaining >>= 7 + + return buff + +def determineNext(i, end, m) : + op_value = i.get_op_value() + + # throw + return* + if (op_value == 0x27) or (0x0e <= op_value <= 0x11) : + return [ -1 ] + # goto + elif 0x28 <= op_value <= 0x2a : + off = i.get_ref_off() * 2 + return [ off + end ] + # if + elif 0x32 <= op_value <= 0x3d : + off = i.get_ref_off() * 2 + return [ end + i.get_length(), off + (end) ] + # sparse/packed + elif op_value in (0x2b, 0x2c) : + x = [] + + x.append( end + i.get_length() ) + + code = m.get_code().get_bc() + off = i.get_ref_off() * 2 + + data = code.get_ins_off( off + end ) + + if data != None : + for target in data.get_targets() : + x.append( target*2 + end ) + + return x + return [] + +def determineException(vm, m) : + # no exceptions ! + if m.get_code().get_tries_size() <= 0 : + return [] + + h_off = {} + + handler_catch_list = m.get_code().get_handlers() + + for try_item in m.get_code().get_tries() : + offset_handler = try_item.get_handler_off() + handler_catch_list.get_off() + if offset_handler in h_off : + h_off[ offset_handler ].append( [ try_item ] ) + else : + h_off[ offset_handler ] = [] + h_off[ offset_handler ].append( [ try_item ] ) + + #print m.get_name(), "\t HANDLER_CATCH_LIST SIZE", handler_catch_list.size, handler_catch_list.get_offset() + for handler_catch in handler_catch_list.get_list() : + if handler_catch.get_off() not in h_off : + continue + + for i in h_off[ handler_catch.get_off() ] : + i.append( handler_catch ) + + exceptions = [] + #print m.get_name(), h_off + for i in h_off : + for value in h_off[ i ] : + try_value = value[0] + + z = [ try_value.get_start_addr() * 2, (try_value.get_start_addr() * 2) + (try_value.get_insn_count() * 2) - 1 ] + + handler_catch = value[1] + if handler_catch.get_size() <= 0 : + z.append( [ "any", handler_catch.get_catch_all_addr() * 2 ] ) + + for handler in handler_catch.get_handlers() : + z.append( [ vm.get_cm_type( handler.get_type_idx() ), handler.get_addr() * 2 ] ) + + exceptions.append( z ) + + #print m.get_name(), exceptions + return exceptions + +class HeaderItem : + """ + This class can parse an header_item of a dex file + + :param buff: a string which represents a Buff object of the header_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, size, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.magic = unpack("=Q", buff.read(8))[0] + self.checksum = unpack("=I", buff.read(4))[0] + self.signature = unpack("=20s", buff.read(20))[0] + self.file_size = unpack("=I", buff.read(4))[0] + self.header_size = unpack("=I", buff.read(4))[0] + self.endian_tag = unpack("=I", buff.read(4))[0] + self.link_size = unpack("=I", buff.read(4))[0] + self.link_off = unpack("=I", buff.read(4))[0] + self.map_off = unpack("=I", buff.read(4))[0] + self.string_ids_size = unpack("=I", buff.read(4))[0] + self.string_ids_off = unpack("=I", buff.read(4))[0] + self.type_ids_size = unpack("=I", buff.read(4))[0] + self.type_ids_off = unpack("=I", buff.read(4))[0] + self.proto_ids_size = unpack("=I", buff.read(4))[0] + self.proto_ids_off = unpack("=I", buff.read(4))[0] + self.field_ids_size = unpack("=I", buff.read(4))[0] + self.field_ids_off = unpack("=I", buff.read(4))[0] + self.method_ids_size = unpack("=I", buff.read(4))[0] + self.method_ids_off = unpack("=I", buff.read(4))[0] + self.class_defs_size = unpack("=I", buff.read(4))[0] + self.class_defs_off = unpack("=I", buff.read(4))[0] + self.data_size = unpack("=I", buff.read(4))[0] + self.data_off = unpack("=I", buff.read(4))[0] + + self.map_off_obj = None + self.string_off_obj = None + self.type_off_obj = None + self.proto_off_obj = None + self.field_off_obj = None + self.method_off_obj = None + self.class_off_obj = None + self.data_off_obj = None + + def reload(self) : + pass + + def get_obj(self) : + if self.map_off_obj == None : + self.map_off_obj = self.__CM.get_item_by_offset( self.map_off ) + + if self.string_off_obj == None : + self.string_off_obj = self.__CM.get_item_by_offset( self.string_ids_off ) + + if self.type_off_obj == None : + self.type_off_obj = self.__CM.get_item_by_offset( self.type_ids_off ) + + if self.proto_off_obj == None : + self.proto_off_obj = self.__CM.get_item_by_offset( self.proto_ids_off ) + + if self.field_off_obj == None : + self.field_off_obj = self.__CM.get_item_by_offset( self.field_ids_off ) + + if self.method_off_obj == None : + self.method_off_obj = self.__CM.get_item_by_offset( self.method_ids_off ) + + if self.class_off_obj == None : + self.class_off_obj = self.__CM.get_item_by_offset( self.class_defs_off ) + + if self.data_off_obj == None : + self.data_off_obj = self.__CM.get_item_by_offset( self.data_off ) + + self.map_off = self.map_off_obj.get_off() + + self.string_ids_size = len(self.string_off_obj) + self.string_ids_off = self.string_off_obj[0].get_off() + + self.type_ids_size = len(self.type_off_obj.type) + self.type_ids_off = self.type_off_obj.get_off() + + self.proto_ids_size = len(self.proto_off_obj.proto) + self.proto_ids_off = self.proto_off_obj.get_off() + + self.field_ids_size = len(self.field_off_obj.elem) + self.field_ids_off = self.field_off_obj.get_off() + + self.method_ids_size = len(self.method_off_obj.methods) + self.method_ids_off = self.method_off_obj.get_off() + + self.class_defs_size = len(self.class_off_obj.class_def) + self.class_defs_off = self.class_off_obj.get_off() + + #self.data_size = len(self.data_off_obj) + self.data_off = self.data_off_obj[0].get_off() + + return pack("=Q", self.magic) + \ + pack("=I", self.checksum) + \ + pack("=20s", self.signature) + \ + pack("=I", self.file_size) + \ + pack("=I", self.header_size) + \ + pack("=I", self.endian_tag) + \ + pack("=I", self.link_size) + \ + pack("=I", self.link_off) + \ + pack("=I", self.map_off) + \ + pack("=I", self.string_ids_size) + \ + pack("=I", self.string_ids_off) + \ + pack("=I", self.type_ids_size) + \ + pack("=I", self.type_ids_off) + \ + pack("=I", self.proto_ids_size) + \ + pack("=I", self.proto_ids_off) + \ + pack("=I", self.field_ids_size) + \ + pack("=I", self.field_ids_off) + \ + pack("=I", self.method_ids_size) + \ + pack("=I", self.method_ids_off) + \ + pack("=I", self.class_defs_size) + \ + pack("=I", self.class_defs_off) + \ + pack("=I", self.data_size) + \ + pack("=I", self.data_off) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_raw()) + + def show(self) : + bytecode._PrintSubBanner("Header Item") + bytecode._PrintDefault("magic=%s, checksum=%s, signature=%s\n" % (self.magic, self.checksum, self.signature)) + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + +class AnnotationOffItem : + """ + This class can parse an annotation_off_item of a dex file + + :param buff: a string which represents a Buff object of the annotation_off_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + self.annotation_off = unpack("=I", buff.read( 4 ) )[0] + + def show(self) : + bytecode._PrintSubBanner("Annotation Off Item") + bytecode._PrintDefault("annotation_off=0x%x\n" % self.annotation_off) + + def get_obj(self) : + if self.annotation_off != 0 : + self.annotation_off = self.__CM.get_obj_by_offset( self.annotation_off ).get_off() + + return pack("=I", self.annotation_off) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_obj()) + +class AnnotationSetItem : + """ + This class can parse an annotation_set_item of a dex file + + :param buff: a string which represents a Buff object of the annotation_set_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + self.offset = buff.get_idx() + self.annotation_off_item = [] + + self.size = unpack("=I", buff.read( 4 ) )[0] + for i in xrange(0, self.size) : + self.annotation_off_item.append( AnnotationOffItem(buff, cm) ) + + def get_annotation_off_item(self) : + """ + Return the offset from the start of the file to an annotation + + :rtype: a list of :class:`AnnotationOffItem` + """ + return self.annotation_off_item + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def reload(self) : + pass + + def show(self) : + bytecode._PrintSubBanner("Annotation Set Item") + for i in self.annotation_off_item : + i.show() + + def get_obj(self) : + return pack("=I", self.size) + + def get_raw(self) : + return self.get_obj() + ''.join(i.get_raw() for i in self.annotation_off_item) + + def get_length(self) : + length = len(self.get_obj()) + + for i in self.annotation_off_item : + length += i.get_length() + + return length + +class AnnotationSetRefItem : + """ + This class can parse an annotation_set_ref_item of a dex file + + :param buff: a string which represents a Buff object of the annotation_set_ref_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + self.annotations_off = unpack("=I", buff.read( 4 ) )[0] + + def get_annotations_off(self) : + """ + Return the offset from the start of the file to the referenced annotation set or + 0 if there are no annotations for this element. + + :rtype: int + """ + return self.annotations_off + + def show(self) : + bytecode._PrintSubBanner("Annotation Set Ref Item") + bytecode._PrintDefault("annotation_off=0x%x\n" % self.annotation_off) + + def get_obj(self) : + if self.annotations_off != 0 : + self.annotations_off = self.__CM.get_obj_by_offset( self.annotations_off ).get_off() + + return pack("=I", self.annotations_off) + + def get_raw(self) : + return self.get_obj() + +class AnnotationSetRefList : + """ + This class can parse an annotation_set_ref_list_item of a dex file + + :param buff: a string which represents a Buff object of the annotation_set_ref_list_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.offset = buff.get_idx() + + self.__CM = cm + self.list = [] + + self.size = unpack("=I", buff.read( 4 ) )[0] + for i in xrange(0, self.size) : + self.list.append( AnnotationSetRefItem(buff, cm) ) + + def get_list(self) : + """ + Return elements of the list + + :rtype: :class:`AnnotationSetRefItem` + """ + return self.list + + def get_off(self) : + return self.offset + + def set_off(self, off) : + self.offset = off + + def reload(self) : + pass + + def show(self) : + bytecode._PrintSubBanner("Annotation Set Ref List Item") + for i in self.list : + i.show() + + def get_obj(self) : + return [ i for i in self.list ] + + def get_raw(self) : + return pack("=I", self.size) + ''.join(i.get_raw() for i in self.list) + +class FieldAnnotation : + """ + This class can parse a field_annotation of a dex file + + :param buff: a string which represents a Buff object of the field_annotation + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.offset = buff.get_idx() + + self.__CM = cm + self.field_idx = unpack("=I", buff.read( 4 ) )[0] + self.annotations_off = unpack("=I", buff.read( 4 ) )[0] + + def get_field_idx(self) : + """ + Return the index into the field_ids list for the identity of the field being annotated + + :rtype: int + """ + return self.get_field_idx + + def get_annotations_off(self) : + """ + Return the offset from the start of the file to the list of annotations for the field + + :rtype: int + """ + return self.annotations_off + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def show(self) : + bytecode._PrintSubBanner("Field Annotation") + bytecode._PrintDefault( "field_idx=0x%x annotations_off=0x%x\n" % (self.field_idx, self.annotations_off) ) + + def get_obj(self) : + if self.annotations_off != 0 : + self.annotations_off = self.__CM.get_obj_by_offset( self.annotations_off ).get_off() + + return pack("=I", self.field_idx) + pack("=I", self.annotations_off) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_raw()) + +class MethodAnnotation : + """ + This class can parse a method_annotation of a dex file + + :param buff: a string which represents a Buff object of the method_annotation + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.offset = buff.get_idx() + + self.__CM = cm + self.method_idx = unpack("=I", buff.read( 4 ) )[0] + self.annotations_off = unpack("=I", buff.read( 4 ) )[0] + + def get_method_idx(self) : + """ + Return the index into the method_ids list for the identity of the method being annotated + + :rtype: int + """ + return self.get_method_idx + + def get_annotations_off(self) : + """ + Return the offset from the start of the file to the list of annotations for the method + + :rtype: int + """ + return self.annotations_off + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def show(self) : + bytecode._PrintSubBanner("Method Annotation") + bytecode._PrintDefault( "method_idx=0x%x annotations_off=0x%x\n" % (self.method_idx, self.annotations_off) ) + + def get_obj(self) : + if self.annotations_off != 0 : + self.annotations_off = self.__CM.get_obj_by_offset( self.annotations_off ).get_off() + + return pack("=I", self.method_idx) + pack("=I", self.annotations_off) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_raw()) + +class ParameterAnnotation : + """ + This class can parse a parameter_annotation of a dex file + + :param buff: a string which represents a Buff object of the parameter_annotation + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.offset = buff.get_idx() + + self.__CM = cm + self.method_idx = unpack("=I", buff.read( 4 ) )[0] + self.annotations_off = unpack("=I", buff.read( 4 ) )[0] + + def get_method_idx(self) : + """ + Return the index into the method_ids list for the identity of the method whose parameters are being annotated + + :rtype: int + """ + return self.get_method_idx + + def get_annotations_off(self) : + """ + Return the offset from the start of the file to the list of annotations for the method parameters + + :rtype: int + """ + return self.annotations_off + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def show(self) : + bytecode._PrintSubBanner("Parameter Annotation") + bytecode._PrintDefault( "method_idx=0x%x annotations_off=0x%x\n" % (self.method_idx, self.annotations_off) ) + + def get_obj(self) : + if self.annotations_off != 0 : + self.annotations_off = self.__CM.get_obj_by_offset( self.annotations_off ).get_off() + + return pack("=I", self.method_idx) + pack("=I", self.annotations_off) + + def get_raw(self) : + return self.get_obj() + +class AnnotationsDirectoryItem : + """ + This class can parse an annotations_directory_item of a dex file + + :param buff: a string which represents a Buff object of the annotations_directory_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.class_annotations_off = unpack("=I", buff.read(4))[0] + self.annotated_fields_size = unpack("=I", buff.read(4))[0] + self.annotated_methods_size = unpack("=I", buff.read(4))[0] + self.annotated_parameters_size = unpack("=I", buff.read(4))[0] + + self.field_annotations = [] + for i in xrange(0, self.annotated_fields_size) : + self.field_annotations.append( FieldAnnotation( buff, cm ) ) + + self.method_annotations = [] + for i in xrange(0, self.annotated_methods_size) : + self.method_annotations.append( MethodAnnotation( buff, cm ) ) + + self.parameter_annotations = [] + for i in xrange(0, self.annotated_parameters_size) : + self.parameter_annotations.append( ParameterAnnotation( buff, cm ) ) + + def get_class_annotations_off(self) : + """ + Return the offset from the start of the file to the annotations made directly on the class, + or 0 if the class has no direct annotations + + :rtype: int + """ + return self.class_annotations_off + + + def get_annotated_fields_size(self) : + """ + Return the count of fields annotated by this item + + :rtype: int + """ + return self.annotated_fields_size + + def get_annotated_methods_size(self) : + """ + Return the count of methods annotated by this item + + :rtype: int + """ + return self.annotated_methods_size + + def get_annotated_parameters_size(self) : + """ + Return the count of method parameter lists annotated by this item + + :rtype: int + """ + return self.annotated_parameters_size + + def get_field_annotations(self) : + """ + Return the list of associated field annotations + + :rtype: a list of :class:`FieldAnnotation` + """ + return self.field_annotations + + def get_method_annotations(self) : + """ + Return the list of associated method annotations + + :rtype: a list of :class:`MethodAnnotation` + """ + return self.method_annotations + + + def get_parameter_annotations(self) : + """ + Return the list of associated method parameter annotations + + :rtype: a list of :class:`ParameterAnnotation` + """ + return self.parameter_annotations + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def reload(self) : + pass + + def show(self) : + bytecode._PrintSubBanner("Annotations Directory Item") + bytecode._PrintDefault("class_annotations_off=0x%x annotated_fields_size=%d annotated_methods_size=%d annotated_parameters_size=%d\n" % + ( self.class_annotations_off, + self.annotated_fields_size, + self.annotated_methods_size, + self.annotated_parameters_size)) + + for i in self.field_annotations : + i.show() + + for i in self.method_annotations : + i.show() + + for i in self.parameter_annotations : + i.show() + + def get_obj(self) : + if self.class_annotations_off != 0 : + self.class_annotations_off = self.__CM.get_obj_by_offset( self.class_annotations_off ).get_off() + + return pack("=I", self.class_annotations_off) + \ + pack("=I", self.annotated_fields_size) + \ + pack("=I", self.annotated_methods_size) + \ + pack("=I", self.annotated_parameters_size) + + def get_raw(self) : + return self.get_obj() + \ + ''.join(i.get_raw() for i in self.field_annotations) + \ + ''.join(i.get_raw() for i in self.method_annotations) + \ + ''.join(i.get_raw() for i in self.parameter_annotations) + + def get_length(self) : + length = len( self.get_obj() ) + for i in self.field_annotations : + length += i.get_length() + + for i in self.method_annotations : + length += i.get_length() + + for i in self.parameter_annotations : + length += i.get_length() + + return length + +class TypeItem : + """ + This class can parse a type_item of a dex file + + :param buff: a string which represents a Buff object of the type_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + self.type_idx = unpack("=H", buff.read(2))[0] + + def get_type_idx(self) : + """ + Return the index into the type_ids list + + :rtype: int + """ + return self.type_idx + + def get_string(self) : + """ + Return the type string + + :rtype: string + """ + return self.__CM.get_type( self.type_idx ) + + def show(self) : + bytecode._PrintSubBanner("Type Item") + bytecode._PrintDefault("type_idx=%d\n" % self.type_idx) + + def get_obj(self) : + return pack("=H", self.type_idx) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_obj()) + +class TypeList : + """ + This class can parse a type_list of a dex file + + :param buff: a string which represents a Buff object of the type_list + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.pad = "" + if self.offset % 4 != 0 : + self.pad = buff.read( self.offset % 4 ) + + self.len_pad = len(self.pad) + + self.size = unpack("=I", buff.read( 4 ) )[0] + + self.list = [] + for i in xrange(0, self.size) : + self.list.append( TypeItem( buff, cm ) ) + + def get_pad(self) : + """ + Return the alignment string + + :rtype: string + """ + return self.pad + + def get_type_list_off(self) : + """ + Return the offset of the item + + :rtype: int + """ + return self.offset + self.len_pad + + def get_string(self) : + """ + Return the concatenation of all strings + + :rtype: string + """ + return ' '.join(i.get_string() for i in self.list) + + def get_size(self) : + """ + Return the size of the list, in entries + + :rtype: int + """ + return self.size + + def get_list(self) : + """ + Return the list of TypeItem + + :rtype: a list of :class:`TypeItem` objects + """ + return self.list + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + self.len_pad + + def reload(self) : + pass + + def show(self) : + bytecode._PrintSubBanner("Type List") + bytecode._PrintDefault("size=%d\n" % self.size) + + for i in self.list : + i.show() + + def get_obj(self) : + return self.pad + pack("=I", self.size) + + def get_raw(self) : + return self.get_obj() + ''.join(i.get_raw() for i in self.list) + + def get_length(self) : + length = len(self.get_obj()) + + for i in self.list : + length += i.get_length() + + return length + +DBG_END_SEQUENCE = 0x00 # (none) terminates a debug info sequence for a code_item +DBG_ADVANCE_PC = 0x01 # uleb128 addr_diff addr_diff: amount to add to address register advances the address register without emitting a positions entry +DBG_ADVANCE_LINE = 0x02 # sleb128 line_diff line_diff: amount to change line register by advances the line register without emitting a positions entry +DBG_START_LOCAL = 0x03 # uleb128 register_num + # uleb128p1 name_idx + # uleb128p1 type_idx + # register_num: register that will contain local name_idx: string index of the name + # type_idx: type index of the type introduces a local variable at the current address. Either name_idx or type_idx may be NO_INDEX to indicate that that value is unknown. +DBG_START_LOCAL_EXTENDED = 0x04 # uleb128 register_num uleb128p1 name_idx uleb128p1 type_idx uleb128p1 sig_idx + # register_num: register that will contain local + # name_idx: string index of the name + # type_idx: type index of the type + # sig_idx: string index of the type signature + # introduces a local with a type signature at the current address. Any of name_idx, type_idx, or sig_idx may be NO_INDEX to indicate that that value is unknown. ( + # If sig_idx is -1, though, the same data could be represented more efficiently using the opcode DBG_START_LOCAL.) + # Note: See the discussion under "dalvik.annotation.Signature" below for caveats about handling signatures. +DBG_END_LOCAL = 0x05 # uleb128 register_num + # register_num: register that contained local + # marks a currently-live local variable as out of scope at the current address +DBG_RESTART_LOCAL = 0x06 # uleb128 register_num + # register_num: register to restart re-introduces a local variable at the current address. + # The name and type are the same as the last local that was live in the specified register. +DBG_SET_PROLOGUE_END = 0x07 # (none) sets the prologue_end state machine register, indicating that the next position entry that is added should be considered the end of a + # method prologue (an appropriate place for a method breakpoint). The prologue_end register is cleared by any special (>= 0x0a) opcode. +DBG_SET_EPILOGUE_BEGIN = 0x08 # (none) sets the epilogue_begin state machine register, indicating that the next position entry that is added should be considered the beginning + # of a method epilogue (an appropriate place to suspend execution before method exit). The epilogue_begin register is cleared by any special (>= 0x0a) opcode. +DBG_SET_FILE = 0x09 # uleb128p1 name_idx + # name_idx: string index of source file name; NO_INDEX if unknown indicates that all subsequent line number entries make reference to this source file name, + # instead of the default name specified in code_item +DBG_Special_Opcodes_BEGIN = 0x0a # (none) advances the line and address registers, emits a position entry, and clears prologue_end and epilogue_begin. See below for description. +DBG_Special_Opcodes_END = 0xff +DBG_LINE_BASE = -4 +DBG_LINE_RANGE = 15 + + +class DBGBytecode : + def __init__(self, cm, op_value) : + self.CM = cm + self.op_value = op_value + self.format = [] + + def get_op_value(self) : + return self.op_value + + def add(self, value, ttype) : + self.format.append( (value, ttype) ) + + def get_value(self) : + if self.get_op_value() == DBG_START_LOCAL : + return self.CM.get_string(self.format[1][0]) + elif self.get_op_value() == DBG_START_LOCAL_EXTENDED : + return self.CM.get_string(self.format[1][0]) + + return None + + def show(self) : + bytecode._PrintSubBanner("DBGBytecode") + bytecode._PrintDefault("op_value=%x format=%s value=%s\n" % (self.op_value, str(self.format), self.get_value())) + + def get_obj(self) : + return [] + + def get_raw(self) : + buff = self.op_value.get_value_buff() + for i in self.format : + if i[1] == "u" : + buff += writeuleb128( i[0] ) + elif i[1] == "s" : + buff += writesleb128( i[0] ) + return buff + +class DebugInfoItem : + def __init__(self, buff, cm) : + self.CM = cm + + self.offset = buff.get_idx() + + self.line_start = readuleb128( buff ) + self.parameters_size = readuleb128( buff ) + + #print "line", self.line_start, "params", self.parameters_size + + self.parameter_names = [] + for i in xrange(0, self.parameters_size) : + self.parameter_names.append( readuleb128p1( buff ) ) + + self.bytecodes = [] + bcode = DBGBytecode( self.CM, unpack("=B", buff.read(1))[0] ) + self.bytecodes.append( bcode ) + + while bcode.get_op_value() != DBG_END_SEQUENCE : + bcode_value = bcode.get_op_value() + + if bcode_value == DBG_ADVANCE_PC : + bcode.add( readuleb128( buff ), "u" ) + elif bcode_value == DBG_ADVANCE_LINE : + bcode.add( readsleb128( buff ), "s" ) + elif bcode_value == DBG_START_LOCAL : + bcode.add( readusleb128( buff ), "u" ) + bcode.add( readuleb128p1( buff ), "u1" ) + bcode.add( readuleb128p1( buff ), "u1" ) + elif bcode_value == DBG_START_LOCAL_EXTENDED : + bcode.add( readusleb128( buff ), "u" ) + bcode.add( readuleb128p1( buff ), "u1" ) + bcode.add( readuleb128p1( buff ), "u1" ) + bcode.add( readuleb128p1( buff ), "u1" ) + elif bcode_value == DBG_END_LOCAL : + bcode.add( readusleb128( buff ), "u" ) + elif bcode_value == DBG_RESTART_LOCAL : + bcode.add( readusleb128( buff ), "u" ) + elif bcode_value == DBG_SET_PROLOGUE_END : + pass + elif bcode_value == DBG_SET_EPILOGUE_BEGIN : + pass + elif bcode_value == DBG_SET_FILE : + bcode.add( readuleb128p1( buff ), "u1" ) + else : #bcode_value >= DBG_Special_Opcodes_BEGIN and bcode_value <= DBG_Special_Opcodes_END : + pass + + bcode = DBGBytecode( self.CM, unpack("=B", buff.read(1))[0] ) + self.bytecodes.append( bcode ) + + def reload(self) : + pass + + def get_parameters_size(self) : + return self.parameters_size + + def get_line_start(self) : + return self.line_start + + def get_parameter_names(self) : + return self.parameter_names + + def get_translated_parameter_names(self) : + l = [] + for i in self.parameter_names : + if i == -1 : + l.append( None ) + else : + l.append( self.CM.get_string( i ) ) + return l + + def get_bytecodes(self) : + return self.bytecodes + + def show(self) : + bytecode._PrintSubBanner("Debug Info Item") + bytecode._PrintDefault("line_start=%d parameters_size=%d\n" % (self.line_start, self.parameters_size)) + nb = 0 + for i in self.parameter_names : + bytecode._PrintDefault("parameter_names[%d]=%s\n" % (nb, self.CM.get_string( i ))) + nb += 1 + + for i in self.bytecodes : + i.show() + + def get_raw(self) : + return [ bytecode.Buff( self.__offset, writeuleb128( self.line_start ) + \ + writeuleb128( self.parameters_size ) + \ + ''.join(writeuleb128(i) for i in self.parameter_names) + \ + ''.join(i.get_raw() for i in self.bytecodes) ) ] + + def get_off(self) : + return self.offset + +VALUE_BYTE = 0x00 # (none; must be 0) ubyte[1] signed one-byte integer value +VALUE_SHORT = 0x02 # size - 1 (0..1) ubyte[size] signed two-byte integer value, sign-extended +VALUE_CHAR = 0x03 # size - 1 (0..1) ubyte[size] unsigned two-byte integer value, zero-extended +VALUE_INT = 0x04 # size - 1 (0..3) ubyte[size] signed four-byte integer value, sign-extended +VALUE_LONG = 0x06 # size - 1 (0..7) ubyte[size] signed eight-byte integer value, sign-extended +VALUE_FLOAT = 0x10 # size - 1 (0..3) ubyte[size] four-byte bit pattern, zero-extended to the right, and interpreted as an IEEE754 32-bit floating point value +VALUE_DOUBLE = 0x11 # size - 1 (0..7) ubyte[size] eight-byte bit pattern, zero-extended to the right, and interpreted as an IEEE754 64-bit floating point value +VALUE_STRING = 0x17 # size - 1 (0..3) ubyte[size] unsigned (zero-extended) four-byte integer value, interpreted as an index into the string_ids section and representing a string value +VALUE_TYPE = 0x18 # size - 1 (0..3) ubyte[size] unsigned (zero-extended) four-byte integer value, interpreted as an index into the type_ids section and representing a reflective type/class value +VALUE_FIELD = 0x19 # size - 1 (0..3) ubyte[size] unsigned (zero-extended) four-byte integer value, interpreted as an index into the field_ids section and representing a reflective field value +VALUE_METHOD = 0x1a # size - 1 (0..3) ubyte[size] unsigned (zero-extended) four-byte integer value, interpreted as an index into the method_ids section and representing a reflective method value +VALUE_ENUM = 0x1b # size - 1 (0..3) ubyte[size] unsigned (zero-extended) four-byte integer value, interpreted as an index into the field_ids section and representing the value of an enumerated type constant +VALUE_ARRAY = 0x1c # (none; must be 0) encoded_array an array of values, in the format specified by "encoded_array Format" below. The size of the value is implicit in the encoding. +VALUE_ANNOTATION = 0x1d # (none; must be 0) encoded_annotation a sub-annotation, in the format specified by "encoded_annotation Format" below. The size of the value is implicit in the encoding. +VALUE_NULL = 0x1e # (none; must be 0) (none) null reference value +VALUE_BOOLEAN = 0x1f # boolean (0..1) (none) one-bit value; 0 for false and 1 for true. The bit is represented in the value_arg. + + +class DebugInfoItemEmpty : + def __init__(self, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + self.__buff = buff + self.__raw = "" + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def reload(self) : + offset = self.offset + + n = self.__CM.get_next_offset_item( offset ) + + s_idx = self.__buff.get_idx() + self.__buff.set_idx( offset ) + self.__raw = self.__buff.read( n - offset ) + self.__buff.set_idx( s_idx ) + + def show(self) : + pass + + def get_obj(self) : + return [] + + def get_raw(self) : + return self.__raw + + def get_length(self) : + return len(self.__raw) + +class EncodedArray : + """ + This class can parse an encoded_array of a dex file + + :param buff: a string which represents a Buff object of the encoded_array + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + self.offset = buff.get_idx() + + self.size = readuleb128( buff ) + + self.values = [] + for i in xrange(0, self.size) : + self.values.append( EncodedValue(buff, cm) ) + + def get_size(self) : + """ + Return the number of elements in the array + + :rtype: int + """ + return self.size + + def get_values(self) : + """ + Return a series of size encoded_value byte sequences in the format specified by this section, + concatenated sequentially + + :rtype: a list of :class:`EncodedValue` objects + """ + return self.values + + def show(self) : + bytecode._PrintSubBanner("Encoded Array") + bytecode._PrintDefault("size=%d\n" % self.size) + + for i in self.values : + i.show() + + def get_obj(self) : + return writeuleb128( self.size ) + + def get_raw(self) : + return self.get_obj() + ''.join(i.get_raw() for i in self.values) + + def get_length(self) : + length = len(self.get_obj()) + for i in self.values : + length += i.get_length() + + return length + +class EncodedValue : + """ + This class can parse an encoded_value of a dex file + + :param buff: a string which represents a Buff object of the encoded_value + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.val = unpack("=B", buff.read(1))[0] + self.value_arg = self.val >> 5 + self.value_type = self.val & 0x1f + + self.raw_value = None + self.value = "" + + # TODO: parse floats/doubles correctly + if self.value_type >= VALUE_SHORT and self.value_type < VALUE_STRING : + self.value, self.raw_value = self._getintvalue(buff.read( self.value_arg + 1 )) + elif self.value_type == VALUE_STRING : + id, self.raw_value = self._getintvalue(buff.read( self.value_arg + 1 )) + self.value = cm.get_raw_string(id) + elif self.value_type == VALUE_TYPE : + id, self.raw_value = self._getintvalue(buff.read( self.value_arg + 1 )) + self.value = cm.get_type(id) + elif self.value_type == VALUE_FIELD : + id, self.raw_value = self._getintvalue(buff.read( self.value_arg + 1 )) + self.value = cm.get_field(id) + elif self.value_type == VALUE_METHOD : + id, self.raw_value = self._getintvalue(buff.read( self.value_arg + 1 )) + self.value = cm.get_method(id) + elif self.value_type == VALUE_ENUM : + id, self.raw_value = self._getintvalue(buff.read( self.value_arg + 1 )) + self.value = cm.get_field(id) + elif self.value_type == VALUE_ARRAY : + self.value = EncodedArray( buff, cm ) + elif self.value_type == VALUE_ANNOTATION : + self.value = EncodedAnnotation( buff, cm ) + elif self.value_type == VALUE_BYTE : + self.value = buff.read( 1 ) + elif self.value_type == VALUE_NULL : + self.value = None + elif self.value_type == VALUE_BOOLEAN : + if self.value_arg: + self.value = True + else: + self.value = False + else : + bytecode.Exit( "Unknown value 0x%x" % self.value_type ) + + def get_value(self) : + """ + Return the bytes representing the value, variable in length and interpreted differently for different value_type bytes, + though always little-endian + + :rtype: an object representing the value + """ + return self.value + + def get_value_type(self) : + return self.value_type + + def get_value_arg(self) : + return self.value_arg + + def _getintvalue(self, buf): + ret = 0 + shift = 0 + for b in buf: + ret |= ord(b) << shift + shift += 8 + + return ret, buf + + def show(self) : + bytecode._PrintSubBanner("Encoded Value") + bytecode._PrintDefault("val=%x value_arg=%x value_type=%x\n" % (self.val, self.value_arg, self.value_type)) + + def get_obj(self) : + if isinstance(self.value, str) == False : + return [ self.value ] + return [] + + def get_raw(self) : + if self.raw_value == None : + return pack("=B", self.val) + bytecode.object_to_str( self.value ) + else : + return pack("=B", self.val) + bytecode.object_to_str( self.raw_value ) + + def get_length(self) : + if self.raw_value == None : + return len(pack("=B", self.val)) + len(bytecode.object_to_str( self.value )) + else : + return len(pack("=B", self.val)) + len(bytecode.object_to_str( self.raw_value )) + +class AnnotationElement : + """ + This class can parse an annotation_element of a dex file + + :param buff: a string which represents a Buff object of the annotation_element + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.name_idx = readuleb128( buff ) + self.value = EncodedValue( buff, cm ) + + def get_name_idx(self) : + """ + Return the element name, represented as an index into the string_ids section + + :rtype: int + """ + return self.name_idx + + def get_value(self) : + """ + Return the element value (EncodedValue) + + :rtype: a :class:`EncodedValue` object + """ + return self.value + + def show(self) : + bytecode._PrintSubBanner("Annotation Element") + bytecode._PrintDefault("name_idx=%d\n" % self.name_idx) + self.value.show() + + def get_obj(self) : + return writeuleb128(self.name_idx) + + def get_raw(self) : + return self.get_obj() + self.value.get_raw() + + def get_length(self) : + return len(self.get_obj()) + self.value.get_length() + +class EncodedAnnotation : + """ + This class can parse an encoded_annotation of a dex file + + :param buff: a string which represents a Buff object of the encoded_annotation + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.type_idx = readuleb128( buff ) + self.size = readuleb128( buff ) + + self.elements = [] + for i in xrange(0, self.size) : + self.elements.append( AnnotationElement( buff, cm ) ) + + def get_type_idx(self) : + """ + Return the type of the annotation. This must be a class (not array or primitive) type + + :rtype: int + """ + return self.type_idx + + def get_size(self) : + """ + Return the number of name-value mappings in this annotation + + :rtype:int + """ + return self.size + + def get_elements(self) : + """ + Return the elements of the annotation, represented directly in-line (not as offsets) + + :rtype: a list of :class:`AnnotationElement` objects + """ + return self.elements + + def show(self) : + bytecode._PrintSubBanner("Encoded Annotation") + bytecode._PrintDefault("type_idx=%d size=%d\n" % (self.type_idx, self.size)) + + for i in self.elements : + i.show() + + def get_obj(self) : + return [ i for i in self.elements ] + + def get_raw(self) : + return writeuleb128(self.type_idx) + writeuleb128(self.size) + ''.join(i.get_raw() for i in self.elements) + + def get_length(self) : + length = len(writeuleb128(self.type_idx) + writeuleb128(self.size)) + + for i in self.elements : + length += i.get_length() + + return length + +class AnnotationItem : + """ + This class can parse an annotation_item of a dex file + + :param buff: a string which represents a Buff object of the annotation_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.visibility = unpack("=B", buff.read(1))[0] + self.annotation = EncodedAnnotation(buff, cm) + + def get_visibility(self) : + """ + Return the intended visibility of this annotation + + :rtype: int + """ + return self.visibility + + def get_annotation(self) : + """ + Return the encoded annotation contents + + :rtype: a :class:`EncodedAnnotation` object + """ + return self.annotation + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def reload(self) : + pass + + def show(self) : + bytecode._PrintSubBanner("Annotation Item") + bytecode._PrintDefault("visibility=%d\n" % self.visibility) + self.annotation.show() + + def get_obj(self) : + return [ self.annotation ] + + def get_raw(self) : + return pack("=B", self.visibility) + self.annotation.get_raw() + + def get_length(self) : + length = len(pack("=B", self.visibility)) + + length += self.annotation.get_length() + + return length + +class EncodedArrayItem : + """ + This class can parse an encoded_array_item of a dex file + + :param buff: a string which represents a Buff object of the encoded_array_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + self.value = EncodedArray( buff, cm ) + + def get_value(self) : + """ + Return the bytes representing the encoded array value + + :rtype: a :class:`EncodedArray` object + """ + return self.value + + def set_off(self, off) : + self.offset = off + + def reload(self) : + pass + + def get_value(self) : + return self.value + + def show(self) : + bytecode._PrintSubBanner("Encoded Array Item") + self.value.show() + + def get_obj(self) : + return [ self.value ] + + def get_raw(self) : + return self.value.get_raw() + + def get_length(self) : + return self.value.get_length() + + def get_off(self) : + return self.offset + +class StringDataItem : + """ + This class can parse a string_data_item of a dex file + + :param buff: a string which represents a Buff object of the string_data_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.utf16_size = readuleb128( buff ) + self.data = buff.read( self.utf16_size + 1 ) + + if self.data[-1] != '\x00' : + i = buff.read( 1 ) + self.utf16_size += 1 + self.data += i + while i != '\x00' : + i = buff.read( 1 ) + self.utf16_size += 1 + self.data += i + + def get_utf16_size(self) : + """ + Return the size of this string, in UTF-16 code units + + :rtype:int + """ + return self.utf16_size + + def get_data(self) : + """ + Return a series of MUTF-8 code units (a.k.a. octets, a.k.a. bytes) followed by a byte of value 0 + + :rtype: string + """ + return self.data + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def reload(self) : + pass + + def get(self) : + return self.data[:-1] + + def show(self) : + bytecode._PrintSubBanner("String Data Item") + bytecode._PrintDefault("utf16_size=%d data=%s\n" % (self.utf16_size, repr( self.data ))) + + def get_obj(self) : + return [] + + def get_raw(self) : + return writeuleb128( self.utf16_size ) + self.data + + def get_length(self) : + return len(writeuleb128( self.utf16_size )) + len(self.data) + +class StringIdItem : + """ + This class can parse a string_id_item of a dex file + + :param buff: a string which represents a Buff object of the string_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + self.offset = buff.get_idx() + + self.string_data_off = unpack("=I", buff.read(4))[0] + + def get_string_data_off(self) : + """ + Return the offset from the start of the file to the string data for this item + + :rtype: int + """ + return self.string_data_off + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def reload(self) : + pass + + def show(self) : + bytecode._PrintSubBanner("String Id Item") + bytecode._PrintDefault("string_data_off=%x\n" % self.string_data_off) + + def get_obj(self) : + if self.string_data_off != 0 : + self.string_data_off = self.__CM.get_string_by_offset( self.string_data_off ).get_off() + + return pack("=I", self.string_data_off) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_obj()) + +class TypeIdItem : + """ + This class can parse a type_id_item of a dex file + + :param buff: a string which represents a Buff object of the type_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.descriptor_idx = unpack("=I", buff.read( 4 ) )[0] + self.descriptor_idx_value = None + + def get_descriptor_idx(self) : + """ + Return the index into the string_ids list for the descriptor string of this type + + :rtype: int + """ + return self.descriptor_idx + + def get_descriptor_idx_value(self) : + """ + Return the string associated to the descriptor + + :rtype: string + """ + return self.descriptor_idx_value + + def reload(self) : + self.descriptor_idx_value = self.__CM.get_string( self.descriptor_idx ) + + def show(self) : + bytecode._PrintSubBanner("Type Id Item") + bytecode._PrintDefault("descriptor_idx=%d descriptor_idx_value=%s\n" % (self.descriptor_idx, self.descriptor_idx_value)) + + def get_obj(self) : + return pack("=I", self.descriptor_idx) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_obj()) + +class TypeHIdItem : + """ + This class can parse a list of type_id_item of a dex file + + :param buff: a string which represents a Buff object of the list of type_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, size, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.type = [] + for i in xrange(0, size) : + self.type.append( TypeIdItem( buff, cm ) ) + + def get_type(self) : + """ + Return the list of type_id_item + + :rtype: a list of :class:`TypeIdItem` objects + """ + return self.type + + def get(self, idx) : + try : + return self.type[ idx ].get_descriptor_idx() + except IndexError : + return -1 + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def reload(self) : + for i in self.type : + i.reload() + + def show(self) : + bytecode._PrintSubBanner("Type List Item") + for i in self.type : + i.show() + + def get_obj(self) : + return [ i for i in self.type ] + + def get_raw(self) : + return ''.join(i.get_raw() for i in self.type) + + def get_length(self) : + length = 0 + for i in self.type : + length += i.get_length() + return length + +class ProtoIdItem : + """ + This class can parse a proto_id_item of a dex file + + :param buff: a string which represents a Buff object of the proto_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.shorty_idx = unpack("=I", buff.read(4))[0] + self.return_type_idx = unpack("=I", buff.read(4))[0] + self.parameters_off = unpack("=I", buff.read(4))[0] + + + self.shorty_idx_value = None + self.return_type_idx_value = None + self.parameters_off_value = None + + def reload(self) : + self.shorty_idx_value = self.__CM.get_string( self.shorty_idx ) + self.return_type_idx_value = self.__CM.get_type( self.return_type_idx ) + self.parameters_off_value = self.__CM.get_type_list( self.parameters_off ) + + def get_shorty_idx(self) : + """ + Return the index into the string_ids list for the short-form descriptor string of this prototype + + :rtype: int + """ + return self.shorty_idx + + def get_return_type_idx(self) : + """ + Return the index into the type_ids list for the return type of this prototype + + :rtype: int + """ + return self.return_type_idx + + def get_parameters_off(self) : + """ + Return the offset from the start of the file to the list of parameter types for this prototype, or 0 if this prototype has no parameters + + :rtype: int + """ + return self.parameters_off + + def get_shorty_idx_value(self) : + """ + Return the string associated to the shorty_idx + + :rtype: string + """ + return self.shorty_idx_value + + def get_return_type_idx_value(self) : + """ + Return the string associated to the return_type_idx + + :rtype: string + """ + return self.return_type_idx_value + + def get_parameters_off_value(self) : + """ + Return the string associated to the parameters_off + + :rtype: string + """ + return self.parameters_off_value + + def show(self) : + bytecode._PrintSubBanner("Proto Item") + bytecode._PrintDefault("shorty_idx=%d return_type_idx=%d parameters_off=%d\n" % (self.shorty_idx, self.return_type_idx, self.parameters_off)) + bytecode._PrintDefault("shorty_idx_value=%s return_type_idx_value=%s parameters_off_value=%s\n" % + (self.shorty_idx_value, self.return_type_idx_value, self.parameters_off_value)) + + + def get_obj(self) : + if self.parameters_off != 0 : + self.parameters_off = self.__CM.get_obj_by_offset( self.parameters_off ).get_off() + + return pack("=I", self.shorty_idx) + pack("=I", self.return_type_idx) + pack("=I", self.parameters_off) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_obj()) + +class ProtoHIdItem : + """ + This class can parse a list of proto_id_item of a dex file + + :param buff: a string which represents a Buff object of the list of proto_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, size, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.proto = [] + + for i in xrange(0, size) : + self.proto.append( ProtoIdItem(buff, cm) ) + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def get(self, idx) : + try : + return self.proto[ idx ] + except IndexError : + return ProtoIdItemInvalid() + + def reload(self) : + for i in self.proto : + i.reload() + + def show(self) : + bytecode._PrintSubBanner("Proto List Item") + for i in self.proto : + i.show() + + def get_obj(self) : + return [ i for i in self.proto ] + + def get_raw(self) : + return ''.join(i.get_raw() for i in self.proto) + + def get_length(self) : + length = 0 + for i in self.proto : + length += i.get_length() + return length + +class FieldIdItem : + """ + This class can parse a field_id_item of a dex file + + :param buff: a string which represents a Buff object of the field_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.class_idx = unpack("=H", buff.read(2))[0] + self.type_idx = unpack("=H", buff.read(2))[0] + self.name_idx = unpack("=I", buff.read(4))[0] + + self.class_idx_value = None + self.type_idx_value = None + self.name_idx_value = None + + def reload(self) : + self.class_idx_value = self.__CM.get_type( self.class_idx ) + self.type_idx_value = self.__CM.get_type( self.type_idx ) + self.name_idx_value = self.__CM.get_string( self.name_idx ) + + def get_class_idx(self) : + """ + Return the index into the type_ids list for the definer of this field + + :rtype: int + """ + return self.class_idx + + def get_type_idx(self) : + """ + Return the index into the type_ids list for the type of this field + + :rtype: int + """ + return self.type_idx + + def get_name_idx(self) : + """ + Return the index into the string_ids list for the name of this field + + :rtype: int + """ + return self.name_idx + + def get_class_name(self) : + """ + Return the class name of the field + + :rtype: string + """ + return self.class_idx_value + + def get_type(self) : + """ + Return the type of the field + + :rtype: string + """ + return self.type_idx_value + + def get_descriptor(self) : + """ + Return the descriptor of the field + + :rtype: string + """ + return self.type_idx_value + + def get_name(self) : + """ + Return the name of the field + + :rtype: string + """ + return self.name_idx_value + + def get_list(self) : + return [ self.get_class_name(), self.get_type(), self.get_name() ] + + def show(self) : + bytecode._PrintSubBanner("Field Id Item") + bytecode._PrintDefault("class_idx=%d type_idx=%d name_idx=%d\n" % (self.class_idx, self.type_idx, self.name_idx)) + bytecode._PrintDefault("class_idx_value=%s type_idx_value=%s name_idx_value=%s\n" % (self.class_idx_value, self.type_idx_value, self.name_idx_value)) + + def get_obj(self) : + return pack("=H", self.class_idx) + \ + pack("=H", self.type_idx) + \ + pack("=I", self.name_idx) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_obj()) + +class FieldHIdItem : + """ + This class can parse a list of field_id_item of a dex file + + :param buff: a string which represents a Buff object of the list of field_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, size, buff, cm) : + self.offset = buff.get_idx() + + self.elem = [] + for i in xrange(0, size) : + self.elem.append( FieldIdItem(buff, cm) ) + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def gets(self) : + return self.elem + + def get(self, idx) : + try : + return self.elem[ idx ] + except IndexError : + return FieldIdItemInvalid() + + def reload(self) : + for i in self.elem : + i.reload() + + def show(self) : + nb = 0 + for i in self.elem : + print nb, + i.show() + nb = nb + 1 + + def get_obj(self) : + return [ i for i in self.elem ] + + def get_raw(self) : + return ''.join(i.get_raw() for i in self.elem) + + def get_length(self) : + length = 0 + for i in self.elem : + length += i.get_length() + return length + + +class MethodIdItem : + """ + This class can parse a method_id_item of a dex file + + :param buff: a string which represents a Buff object of the method_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.class_idx = unpack("=H", buff.read(2))[0] + self.proto_idx = unpack("=H", buff.read(2))[0] + self.name_idx = unpack("=I", buff.read(4))[0] + + self.class_idx_value = None + self.proto_idx_value = None + self.name_idx_value = None + + def reload(self) : + self.class_idx_value = self.__CM.get_type( self.class_idx ) + self.proto_idx_value = self.__CM.get_proto( self.proto_idx ) + self.name_idx_value = self.__CM.get_string( self.name_idx ) + + def get_class_idx(self) : + """ + Return the index into the type_ids list for the definer of this method + + :rtype: int + """ + return self.class_idx + + def get_proto_idx(self) : + """ + Return the index into the proto_ids list for the prototype of this method + + :rtype: int + """ + return self.proto_idx + + def get_name_idx(self) : + """ + Return the index into the string_ids list for the name of this method + + :rtype: int + """ + return self.name_idx + + def get_class_name(self) : + """ + Return the class name of the method + + :rtype: string + """ + return self.class_idx_value + + def get_proto(self) : + """ + Return the prototype of the method + + :rtype: string + """ + return self.proto_idx_value + + def get_descriptor(self) : + """ + Return the descriptor + + :rtype: string + """ + proto = self.get_proto() + return proto[0] + proto[1] + + def get_name(self) : + """ + Return the name of the method + + :rtype: string + """ + return self.name_idx_value + + def get_list(self) : + return [ self.get_class_name(), self.get_name(), self.get_proto() ] + + def show(self) : + bytecode._PrintSubBanner("Method Id Item") + bytecode._PrintDefault("class_idx=%d proto_idx=%d name_idx=%d\n" % (self.class_idx, self.proto_idx, self.name_idx)) + bytecode._PrintDefault("class_idx_value=%s proto_idx_value=%s name_idx_value=%s\n" % (self.class_idx_value, self.proto_idx_value, self.name_idx_value)) + + def get_obj(self) : + return pack("H", self.class_idx) + pack("H", self.proto_idx) + pack("I", self.name_idx) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_obj()) + +class MethodHIdItem : + """ + This class can parse a list of method_id_item of a dex file + + :param buff: a string which represents a Buff object of the list of method_id_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, size, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.methods = [] + for i in xrange(0, size) : + self.methods.append( MethodIdItem(buff, cm) ) + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def get(self, idx) : + try : + return self.methods[ idx ] + except IndexError : + return MethodIdItemInvalid() + + def reload(self) : + for i in self.methods : + i.reload() + + def show(self) : + print "METHOD_ID_ITEM" + nb = 0 + for i in self.methods : + print nb, + i.show() + nb = nb + 1 + + def get_obj(self) : + return [ i for i in self.methods ] + + def get_raw(self) : + return ''.join(i.get_raw() for i in self.methods) + + def get_length(self) : + length = 0 + for i in self.methods : + length += i.get_length() + return length + +class ProtoIdItemInvalid : + def get_params(self) : + return "AG:IPI:invalid_params;" + + def get_shorty(self) : + return "(AG:IPI:invalid_shorty)" + + def get_return_type(self) : + return "(AG:IPI:invalid_return_type)" + + def show(self) : + print "AG:IPI:invalid_proto_item", self.get_shorty(), self.get_return_type(), self.get_params() + +class FieldIdItemInvalid : + def get_class_name(self) : + return "AG:IFI:invalid_class_name;" + + def get_type(self) : + return "(AG:IFI:invalid_type)" + + def get_descriptor(self) : + return "(AG:IFI:invalid_descriptor)" + + def get_name(self) : + return "AG:IFI:invalid_name" + + def get_list(self) : + return [ self.get_class_name(), self.get_type(), self.get_name() ] + + def show(self) : + print "AG:IFI:invalid_field_item" + +class MethodIdItemInvalid : + def get_class_name(self) : + return "AG:IMI:invalid_class_name;" + + def get_descriptor(self) : + return "(AG:IMI:invalid_descriptor)" + + def get_proto(self) : + return "()AG:IMI:invalid_proto" + + def get_name(self) : + return "AG:IMI:invalid_name" + + def get_list(self) : + return [ self.get_class_name(), self.get_name(), self.get_proto() ] + + def show(self) : + print "AG:IMI:invalid_method_item" + +class EncodedField : + """ + This class can parse an encoded_field of a dex file + + :param buff: a string which represents a Buff object of the encoded field + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.CM = cm + + self.field_idx_diff = readuleb128( buff ) + self.access_flags = readuleb128( buff ) + + self.field_idx = 0 + + self.name = None + self.proto = None + self.class_name = None + + self.init_value = None + self.access_flags_string = None + + def reload(self) : + name = self.CM.get_field( self.field_idx ) + self.class_name = name[0] + self.name = name[2] + self.proto = ''.join(i for i in name[1]) + + def set_init_value(self, value) : + """ + Setup the init value object of the field + + :param value: the init value + :type value: :class:`EncodedValue` + """ + self.init_value = value + + def get_init_value(self) : + """ + Return the init value object of the field + + :rtype: :class:`EncodedValue` + """ + return self.init_value + + def adjust_idx(self, val) : + self.field_idx = self.field_idx_diff + val + + + def get_field_idx_diff(self) : + """ + Return the index into the field_ids list for the identity of this field (includes the name and descriptor), + represented as a difference from the index of previous element in the list + + :rtype: int + """ + return self.field_idx_diff + + def get_field_idx(self) : + """ + Return the real index of the method + + :rtype: int + """ + return self.field_idx + + def get_access_flags(self) : + """ + Return the access flags of the field + + :rtype: int + """ + return self.access_flags + + def get_class_name(self) : + """ + Return the class name of the field + + :rtype: string + """ + return self.class_name + + def get_descriptor(self) : + """ + Return the descriptor of the field + + :rtype: string + """ + return self.proto + + def get_name(self) : + """ + Return the name of the field + + :rtype: string + """ + return self.name + + def get_access_flags_string(self) : + """ + Return the access flags string of the field + + :rtype: string + """ + if self.access_flags_string == None : + self.access_flags_string = get_access_flags_string( self.get_access_flags() ) + + if self.access_flags_string == "" : + self.access_flags_string = "0x%x" % self.get_access_flags() + return self.access_flags_string + + def set_name(self, value) : + self.CM.set_hook_field_name( self, value ) + self.reload() + + def get_obj(self) : + return [] + + def get_raw(self) : + return writeuleb128( self.field_idx_diff ) + writeuleb128( self.access_flags ) + + def get_size(self) : + return len(self.get_raw()) + + def show(self) : + """ + Display the information about the field + """ + colors = bytecode.disable_print_colors() + self.pretty_show() + bytecode.enable_print_colors(colors) + + def pretty_show(self) : + """ + Display the information (with a pretty print) about the field + """ + bytecode._PrintSubBanner("Field Information") + bytecode._PrintDefault("%s->%s %s [access_flags=%s]\n" % ( self.get_class_name(), self.get_name(), self.get_descriptor(), self.get_access_flags_string() )) + + init_value = self.get_init_value() + if init_value != None : + bytecode._PrintDefault( "\tinit value: %s\n" % str( init_value.get_value() ) ) + + self.show_dref() + + def show_dref(self) : + """ + Display where this field is read or written + """ + try : + bytecode._PrintSubBanner("DREF") + bytecode._PrintDRef("R", self.DREFr.items) + bytecode._PrintDRef("W", self.DREFw.items) + bytecode._PrintSubBanner() + except AttributeError: + pass + +class EncodedMethod : + """ + This class can parse an encoded_method of a dex file + + :param buff: a string which represents a Buff object of the encoded_method + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.CM = cm + + self.method_idx_diff = readuleb128( buff ) #: method index diff in the corresponding section + self.access_flags = readuleb128( buff ) #: access flags of the method + self.code_off = readuleb128( buff ) #: offset of the code section + + self.method_idx = 0 + + self.name = None + self.proto = None + self.class_name = None + + self.code = None + + self.access_flags_string = None + + self.notes = [] + + def adjust_idx(self, val) : + self.method_idx = self.method_idx_diff + val + + def get_method_idx(self) : + """ + Return the real index of the method + + :rtype: int + """ + return self.method_idx + + def get_method_idx_diff(self) : + """ + Return index into the method_ids list for the identity of this method (includes the name and descriptor), + represented as a difference from the index of previous element in the lis + + :rtype: int + """ + return self.method_idx_diff + + def get_access_flags(self) : + """ + Return the access flags of the method + + :rtype: int + """ + return self.access_flags + + def get_code_off(self) : + """ + Return the offset from the start of the file to the code structure for this method, + or 0 if this method is either abstract or native + + :rtype: int + """ + return self.code_off + + def get_access_flags_string(self) : + """ + Return the access flags string of the method + + :rtype: string + """ + if self.access_flags_string == None : + self.access_flags_string = get_access_flags_string( self.get_access_flags() ) + + if self.access_flags_string == "" : + self.access_flags_string = "0x%x" % self.get_access_flags() + return self.access_flags_string + + def reload(self) : + v = self.CM.get_method( self.method_idx ) + + self.class_name = v[0] + self.name = v[1] + self.proto = ''.join(i for i in v[2]) + + self.code = self.CM.get_code( self.code_off ) + + def get_locals(self) : + ret = self.proto.split(')') + params = ret[0][1:].split() + + return self.code.get_registers_size() - len(params) - 1 + + def each_params_by_register(self, nb, proto) : + bytecode._PrintSubBanner("Params") + + ret = proto.split(')') + params = ret[0][1:].split() + if params : + bytecode._PrintDefault("- local registers: v%d...v%d\n" % (0, nb - len(params) - 1)) + j = 0 + for i in xrange(nb - len(params), nb) : + bytecode._PrintDefault("- v%d:%s\n" % (i, get_type(params[j]))) + j += 1 + else : + bytecode._PrintDefault("local registers: v%d...v%d\n" % (0, nb-1)) + + bytecode._PrintDefault("- return:%s\n" % get_type(ret[1])) + bytecode._PrintSubBanner() + + def show_info(self) : + """ + Display the basic information about the method + """ + bytecode._PrintSubBanner("Method Information") + bytecode._PrintDefault("%s->%s%s [access_flags=%s]\n" % ( self.get_class_name(), self.get_name(), self.get_descriptor(), self.get_access_flags_string() )) + + def show(self) : + """ + Display the information about the method + """ + colors = bytecode.disable_print_colors() + self.pretty_show() + bytecode.enable_print_colors(colors) + + def pretty_show(self) : + """ + Display the information (with a pretty print) about the method + """ + self.show_info() + self.show_notes() + if self.code != None : + self.each_params_by_register( self.code.get_registers_size(), self.get_descriptor() ) + if self.CM.get_vmanalysis() == None : + self.code.show() + else : + self.code.pretty_show( self.CM.get_vmanalysis().get_method( self ) ) + self.show_xref() + + def show_xref(self) : + """ + Display where the method is called or which method is called + """ + try : + bytecode._PrintSubBanner("XREF") + bytecode._PrintXRef("F", self.XREFfrom.items) + bytecode._PrintXRef("T", self.XREFto.items) + bytecode._PrintSubBanner() + except AttributeError: + pass + + def show_notes(self) : + """ + Display the notes about the method + """ + if self.notes != [] : + bytecode._PrintSubBanner("Notes") + for i in self.notes : + bytecode._PrintNote(i) + bytecode._PrintSubBanner() + + def source(self) : + """ + Return the source code of this method + + :rtype: string + """ + self.CM.decompiler_ob.display_source( self ) + + def get_length(self) : + """ + Return the length of the associated code of the method + + :rtype: int + """ + if self.code != None : + return self.code.get_length() + return 0 + + def get_code(self) : + """ + Return the code object associated to the method + + :rtype: :class:`DalvikCode` object + """ + return self.code + + def get_instructions(self) : + """ + Get the instructions + + :rtype: a generator of each :class:`Instruction` (or a cached list of instructions if you have setup instructions) + """ + if self.code == None : + return [] + return self.code.get_bc().get_instructions() + + def set_instructions(self, instructions) : + """ + Set the instructions + + :param instructions: the list of instructions + :type instructions: a list of :class:`Instruction` + """ + if self.code == None : + return [] + return self.code.get_bc().set_instructions(instructions) + + def get_instruction(self, idx, off=None) : + """ + Get a particular instruction by using (default) the index of the address if specified + + :param idx: index of the instruction (the position in the list of the instruction) + :type idx: int + :param off: address of the instruction + :type off: int + + :rtype: an :class:`Instruction` object + """ + if self._code != None : + return self.code.get_bc().get_instruction(idx, off) + return None + + def get_debug(self) : + """ + Return the debug object associated to this method + + :rtype: :class:`DebugInfoItem` + """ + if self.code == None : + return None + return self.code.get_debug() + + def get_descriptor(self) : + """ + Return the descriptor of the method + + :rtype: string + """ + return self.proto + + def get_class_name(self) : + """ + Return the class name of the method + + :rtype: string + """ + return self.class_name + + def get_name(self) : + """ + Return the name of the method + + :rtype: string + """ + return self.name + + def add_inote(self, msg, idx, off=None) : + """ + Add a message to a specific instruction by using (default) the index of the address if specified + + :param msg: the message + :type msg: string + :param idx: index of the instruction (the position in the list of the instruction) + :type idx: int + :param off: address of the instruction + :type off: int + """ + if self.code != None : + self.code.add_inote(msg, idx, off) + + def add_note(self, msg) : + """ + Add a message to this method + + :param msg: the message + :type msg: string + """ + self.notes.append( msg ) + + def set_code_idx(self, idx) : + """ + Set the start address of the buffer to disassemble + + :param idx: the index + :type idx: int + """ + if self.code != None : + self.code.set_idx( idx ) + + def set_name(self, value) : + self.CM.set_hook_method_name( self, value ) + self.reload() + + def get_raw(self) : + if self.code != None : + self.code_off = self.code.get_off() + + return writeuleb128( self.method_idx_diff ) + writeuleb128( self.access_flags ) + writeuleb128( self.code_off ) + + def get_size(self) : + return len(self.get_raw()) + +class ClassDataItem : + """ + This class can parse a class_data_item of a dex file + + :param buff: a string which represents a Buff object of the class_data_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.static_fields_size = readuleb128( buff ) + self.instance_fields_size = readuleb128( buff ) + self.direct_methods_size = readuleb128( buff ) + self.virtual_methods_size = readuleb128( buff ) + + self.static_fields = [] + self.instance_fields = [] + self.direct_methods = [] + self.virtual_methods = [] + + self._load_elements( self.static_fields_size, self.static_fields, EncodedField, buff, cm ) + self._load_elements( self.instance_fields_size, self.instance_fields, EncodedField, buff, cm ) + self._load_elements( self.direct_methods_size, self.direct_methods, EncodedMethod, buff, cm ) + self._load_elements( self.virtual_methods_size, self.virtual_methods, EncodedMethod, buff, cm ) + + def get_static_fields_size(self) : + """ + Return the number of static fields defined in this item + + :rtype: int + """ + return self.static_fields_size + + def get_instance_fields_size(self) : + """ + Return the number of instance fields defined in this item + + :rtype: int + """ + return self.instance_fields_size + + def get_direct_methods_size(self) : + """ + Return the number of direct methods defined in this item + + :rtype: int + """ + return self.direct_methods_size + + def get_virtual_methods_size(self) : + """ + Return the number of virtual methods defined in this item + + :rtype: int + """ + return self.virtual_methods_size + + def get_static_fields(self) : + """ + Return the defined static fields, represented as a sequence of encoded elements + + :rtype: a list of :class:`EncodedField` objects + """ + return self.static_fields + + def get_instance_fields(self) : + """ + Return the defined instance fields, represented as a sequence of encoded elements + + :rtype: a list of :class:`EncodedField` objects + """ + return self.instance_fields + + def get_direct_methods(self) : + """ + Return the defined direct (any of static, private, or constructor) methods, represented as a sequence of encoded elements + + :rtype: a list of :class:`EncodedMethod` objects + """ + return self.direct_methods + + def get_virtual_methods(self) : + """ + Return the defined virtual (none of static, private, or constructor) methods, represented as a sequence of encoded elements + + :rtype: a list of :class:`EncodedMethod` objects + """ + return self.virtual_methods + + def get_methods(self) : + """ + Return direct and virtual methods + + :rtype: a list of :class:`EncodedMethod` objects + """ + return [ x for x in self.direct_methods ] + [ x for x in self.virtual_methods ] + + def get_fields(self) : + """ + Return static and instance fields + + :rtype: a list of :class:`EncodedField` objects + """ + return [ x for x in self.static_fields ] + [ x for x in self.instance_fields ] + + + def set_off(self, off) : + self.offset = off + + def set_static_fields(self, value) : + if value != None : + values = value.get_values() + if len(values) <= len(self.static_fields) : + for i in xrange(0, len(values)) : + self.static_fields[i].set_init_value( values[i] ) + + def _load_elements(self, size, l, Type, buff, cm) : + prev = 0 + for i in xrange(0, size) : + el = Type(buff, cm) + el.adjust_idx( prev ) + + if isinstance(el, EncodedField) : + prev = el.get_field_idx() + else : + prev = el.get_method_idx() + + l.append( el ) + + def reload(self) : + for i in self.static_fields : + i.reload() + + for i in self.instance_fields : + i.reload() + + for i in self.direct_methods : + i.reload() + + for i in self.virtual_methods : + i.reload() + + def show(self) : + self.pretty_show() + + def pretty_show(self) : + bytecode._PrintSubBanner("Class Data Item") + bytecode._PrintDefault("static_fields_size=%d instance_fields_size=%d direct_methods_size=%d virtual_methods_size=%d\n" % \ + (self.static_fields_size, self.instance_fields_size, self.direct_methods_size, self.virtual_methods_size)) + + bytecode._PrintSubBanner("Static Fields") + for i in self.static_fields : + i.show() + + bytecode._PrintSubBanner("Instance Fields") + for i in self.instance_fields : + i.show() + + bytecode._PrintSubBanner("Direct Methods") + for i in self.direct_methods : + i.pretty_show() + + bytecode._PrintSubBanner("Virtual Methods") + for i in self.virtual_methods : + i.pretty_show() + + def get_obj(self) : + return [ i for i in self.static_fields ] + \ + [ i for i in self.instance_fields ] + \ + [ i for i in self.direct_methods ] + \ + [ i for i in self.virtual_methods ] + + def get_raw(self) : + buff = writeuleb128( self.static_fields_size ) + \ + writeuleb128( self.instance_fields_size ) + \ + writeuleb128( self.direct_methods_size ) + \ + writeuleb128( self.virtual_methods_size ) + \ + ''.join(i.get_raw() for i in self.static_fields) + \ + ''.join(i.get_raw() for i in self.instance_fields) + \ + ''.join(i.get_raw() for i in self.direct_methods) + \ + ''.join(i.get_raw() for i in self.virtual_methods) + + return buff + + def get_length(self) : + length = len(writeuleb128( self.static_fields_size )) + \ + len(writeuleb128( self.instance_fields_size )) + \ + len(writeuleb128( self.direct_methods_size )) + \ + len(writeuleb128( self.virtual_methods_size )) + + for i in self.static_fields : + length += i.get_size() + + for i in self.instance_fields : + length += i.get_size() + + for i in self.direct_methods : + length += i.get_size() + + for i in self.virtual_methods : + length += i.get_size() + + return length + + def get_off(self) : + return self.offset + +class ClassDefItem : + """ + This class can parse a class_def_item of a dex file + + :param buff: a string which represents a Buff object of the class_def_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.class_idx = unpack("=I", buff.read(4))[0] + self.access_flags = unpack("=I", buff.read(4))[0] + self.superclass_idx = unpack("=I", buff.read(4))[0] + self.interfaces_off = unpack("=I", buff.read(4))[0] + self.source_file_idx = unpack("=I", buff.read(4))[0] + self.annotations_off = unpack("=I", buff.read(4))[0] + self.class_data_off = unpack("=I", buff.read(4))[0] + self.static_values_off = unpack("=I", buff.read(4))[0] + + self.interfaces = None + self.class_data_item = None + self.static_values = None + + self.name = None + self.sname = None + self.access_flags_string = None + + def reload(self) : + self.name = self.__CM.get_type( self.class_idx ) + self.sname = self.__CM.get_type( self.superclass_idx ) + + if self.interfaces_off != 0 : + self.interfaces = self.__CM.get_type_list( self.interfaces_off ) + + if self.class_data_off != 0 : + self.class_data_item = self.__CM.get_class_data_item( self.class_data_off ) + self.class_data_item.reload() + + if self.static_values_off != 0 : + self.static_values = self.__CM.get_encoded_array_item ( self.static_values_off ) + + if self.class_data_item != None : + self.class_data_item.set_static_fields( self.static_values.get_value() ) + + def get_methods(self) : + """ + Return all methods of this class + + :rtype: a list of :class:`EncodedMethod` objects + """ + if self.class_data_item != None : + return self.class_data_item.get_methods() + return [] + + def get_fields(self) : + """ + Return all fields of this class + + :rtype: a list of :class:`EncodedField` objects + """ + if self.class_data_item != None : + return self.class_data_item.get_fields() + return [] + + def get_class_idx(self) : + """ + Return the index into the type_ids list for this class + + :rtype: int + """ + return self.class_idx + + def get_access_flags(self) : + """ + Return the access flags for the class (public, final, etc.) + + :rtype: int + """ + return self.access_flags + + def get_superclass_idx(self) : + """ + Return the index into the type_ids list for the superclass + + :rtype: int + """ + return self.superclass_idx + + def get_interfaces_off(self) : + """ + Return the offset from the start of the file to the list of interfaces, or 0 if there are none + + :rtype: int + """ + return self.interfaces_off + + def get_source_file_idx(self) : + """ + Return the index into the string_ids list for the name of the file containing the original + source for (at least most of) this class, or the special value NO_INDEX to represent a lack of this information + + :rtype: int + """ + return self.source_file_idx + + def get_annotations_off(self) : + """ + Return the offset from the start of the file to the annotations structure for this class, + or 0 if there are no annotations on this class. + + :rtype: int + """ + return self.annotations_off + + def get_class_data_off(self) : + """ + Return the offset from the start of the file to the associated class data for this item, + or 0 if there is no class data for this class + + :rtype: int + """ + return self.class_data_off + + def get_static_values_off(self) : + """ + Return the offset from the start of the file to the list of initial values for static fields, + or 0 if there are none (and all static fields are to be initialized with 0 or null) + + :rtype: int + """ + return self.static_values_off + + + def get_class_data(self) : + """ + Return the associated class_data_item + + :rtype: a :class:`ClassDataItem` object + """ + return self.class_data_item + + def get_name(self) : + """ + Return the name of this class + + :rtype: int + """ + return self.name + + def get_superclassname(self) : + """ + Return the name of the super class + + :rtype: string + """ + return self.sname + + def get_interfaces(self) : + """ + Return the name of the interface + + :rtype: string + """ + return self.interfaces + + def get_access_flags_string(self) : + """ + Return the access flags string of the class + + :rtype: string + """ + if self.access_flags_string == None : + self.access_flags_string = get_access_flags_string( self.get_access_flags() ) + + if self.access_flags_string == "" : + self.access_flags_string = "0x%x" % self.get_access_flags() + return self.access_flags_string + + def show(self) : + bytecode._PrintSubBanner("Class Def Item") + bytecode._PrintDefault("name=%s, sname=%s, interfaces=%s, access_flags=%s\n" % + ( self.name, + self.sname, + self.interfaces, + self.get_access_flags_string())) + bytecode._PrintDefault("class_idx=%d, superclass_idx=%d, interfaces_off=%x, source_file_idx=%d, annotations_off=%x, class_data_off=%x, static_values_off=%x\n" % + ( self.class_idx, + self.superclass_idx, + self.interfaces_off, + self.source_file_idx, + self.annotations_off, + self.class_data_off, + self.static_values_off)) + + def source(self) : + """ + Return the source code of the entire class + + :rtype: string + """ + self.__CM.decompiler_ob.display_all( self ) + + def set_name(self, value) : + self.__CM.set_hook_class_name( self, value ) + + def get_obj(self) : + if self.interfaces_off != 0 : + self.interfaces_off = self.__CM.get_obj_by_offset( self.interfaces_off ).get_off() + + if self.annotations_off != 0 : + self.annotations_off = self.__CM.get_obj_by_offset( self.annotations_off ).get_off() + + if self.class_data_off != 0 : + self.class_data_off = self.__CM.get_obj_by_offset( self.class_data_off ).get_off() + + if self.static_values_off != 0 : + self.static_values_off = self.__CM.get_obj_by_offset( self.static_values_off ).get_off() + + return pack("=I", self.class_idx) + \ + pack("=I", self.access_flags) + \ + pack("=I", self.superclass_idx) + \ + pack("=I", self.interfaces_off) + \ + pack("=I", self.source_file_idx) + \ + pack("=I", self.annotations_off) + \ + pack("=I", self.class_data_off) + \ + pack("=I", self.static_values_off) + + def get_raw(self) : + return self.get_obj() + + def get_length(self) : + return len(self.get_obj()) + +class ClassHDefItem : + """ + This class can parse a list of class_def_item of a dex file + + :param buff: a string which represents a Buff object of the list of class_def_item + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, size, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.class_def = [] + + for i in xrange(0, size) : + idx = buff.get_idx() + + class_def = ClassDefItem( buff, cm ) + self.class_def.append( class_def ) + + buff.set_idx( idx + calcsize("=IIIIIIII") ) + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def get_class_idx(self, idx) : + for i in self.class_def : + if i.get_class_idx() == idx : + return i + return None + + def get_method(self, name_class, name_method) : + l = [] + + for i in self.class_def : + if i.get_name() == name_class : + for j in i.get_methods() : + if j.get_name() == name_method : + l.append(j) + + return l + + def get_names(self) : + return [ x.get_name() for x in self.class_def ] + + def reload(self) : + for i in self.class_def : + i.reload() + + def show(self) : + for i in self.class_def : + i.show() + + def get_obj(self) : + return [ i for i in self.class_def ] + + def get_raw(self) : + return ''.join(i.get_raw() for i in self.class_def) + + def get_length(self) : + length = 0 + for i in self.class_def : + length += i.get_length() + return length + +class EncodedTypeAddrPair : + """ + This class can parse an encoded_type_addr_pair of a dex file + + :param buff: a string which represents a Buff object of the encoded_type_addr_pair + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff) : + self.type_idx = readuleb128( buff ) + self.addr = readuleb128( buff ) + + def get_type_idx(self) : + """ + Return the index into the type_ids list for the type of the exception to catch + + :rtype: int + """ + return self.type_idx + + def get_addr(self) : + """ + Return the bytecode address of the associated exception handler + + :rtype: int + """ + return self.addr + + def get_obj(self) : + return [] + + def show(self) : + bytecode._PrintSubBanner("Encoded Type Addr Pair") + bytecode._PrintDefault("type_idx=%d addr=%x\n" % (self.type_idx, self.addr)) + + def get_raw(self) : + return writeuleb128( self.type_idx ) + writeuleb128( self.addr ) + + def get_length(self) : + return len(self.get_raw()) + +class EncodedCatchHandler : + """ + This class can parse an encoded_catch_handler of a dex file + + :param buff: a string which represents a Buff object of the encoded_catch_handler + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.offset = buff.get_idx() + + self.size = readsleb128( buff ) + + self.handlers = [] + + for i in xrange(0, abs(self.size)) : + self.handlers.append( EncodedTypeAddrPair(buff) ) + + if self.size <= 0 : + self.catch_all_addr = readuleb128( buff ) + + def get_size(self) : + """ + Return the number of catch types in this list + + :rtype: int + """ + return self.size + + def get_handlers(self) : + """ + Return the stream of abs(size) encoded items, one for each caught type, in the order that the types should be tested. + + :rtype: a list of :class:`EncodedTypeAddrPair` objects + """ + return self.handlers + + def get_catch_all_addr(self) : + """ + Return the bytecode address of the catch-all handler. This element is only present if size is non-positive. + + :rtype: int + """ + return self.catch_all_addr + + def get_off(self) : + return self.offset + + def set_off(self, off) : + self.offset = off + + def show(self) : + bytecode._PrintSubBanner("Encoded Catch Handler") + bytecode._PrintDefault("size=%d\n" % self.size) + + for i in self.handlers : + i.show() + + if self.size <= 0 : + bytecode._PrintDefault("catch_all_addr=%x\n" % self.catch_all_addr) + + def get_raw(self) : + buff = writesleb128( self.size ) + ''.join(i.get_raw() for i in self.handlers) + + if self.size <= 0 : + buff += writeuleb128( self.catch_all_addr ) + + return buff + + def get_length(self) : + length = len(writesleb128( self.size )) + + for i in self.handlers : + length += i.get_length() + + if self.size <= 0 : + length += len(writeuleb128( self.catch_all_addr )) + + return length + +class EncodedCatchHandlerList : + """ + This class can parse an encoded_catch_handler_list of a dex file + + :param buff: a string which represents a Buff object of the encoded_catch_handler_list + :type buff: Buff object + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + """ + def __init__(self, buff, cm) : + self.offset = buff.get_idx() + + self.size = readuleb128( buff ) + self.list = [] + + for i in xrange(0, self.size) : + self.list.append( EncodedCatchHandler(buff, cm) ) + + + def get_size(self) : + """ + Return the size of this list, in entries + + :rtype: int + """ + return self.size + + def get_list(self) : + """ + Return the actual list of handler lists, represented directly (not as offsets), and concatenated sequentially + + :rtype: a list of :class:`EncodedCatchHandler` objects + """ + return self.list + + def show(self) : + bytecode._PrintSubBanner("Encoded Catch Handler List") + bytecode._PrintDefault("size=%d\n" % self.size) + + for i in self.list : + i.show() + + def get_off(self) : + return self.offset + + def set_off(self, off) : + self.offset = off + + def get_obj(self) : + return writeuleb128( self.size ) + + def get_raw(self) : + return self.get_obj() + ''.join(i.get_raw() for i in self.list) + + def get_length(self) : + length = len(self.get_obj()) + + for i in self.list : + length += i.get_length() + return length + + +KIND_METH = 0 +KIND_STRING = 1 +KIND_FIELD = 2 +KIND_TYPE = 3 +VARIES = 4 +INLINE_METHOD = 5 +VTABLE_OFFSET = 6 +FIELD_OFFSET = 7 + +def get_kind(cm, kind, value) : + """ + Return the value of the 'kind' argument + + :param cm: a ClassManager object + :type cm: :class:`ClassManager` + :param kind: the type of the 'kind' argument + :type kind: int + :param value: the value of the 'kind' argument + :type value: int + + :rtype: string + """ + if kind == KIND_METH : + method = cm.get_method_ref(value) + class_name = method.get_class_name() + name = method.get_name() + descriptor = method.get_descriptor() + + return "%s->%s%s" % (class_name, name, descriptor) + + elif kind == KIND_STRING : + return repr(cm.get_string(value)) + + elif kind == KIND_FIELD : + class_name, proto, field_name = cm.get_field(value) + return "%s->%s %s" % (class_name, field_name, proto) + + elif kind == KIND_TYPE : + return cm.get_type(value) + + elif kind == VTABLE_OFFSET : + return "vtable[0x%x]" % value + + elif kind == FIELD_OFFSET : + return "field[0x%x]" % value + + elif kind == INLINE_METHOD : + + buff = "inline[0x%x]" % value + + # FIXME: depends of the android version ... + if len(INLINE_METHODS) > value : + elem = INLINE_METHODS[value] + buff += " %s->%s%s" % (elem[0], elem[1], elem[2]) + + return buff + + return None + +class Instruction(object) : + """ + This class represents a dalvik instruction + """ + def get_kind(self) : + """ + Return the 'kind' argument of the instruction + + :rtype: int + """ + if self.OP > 0xff : + if self.OP >= 0xf2ff : + return DALVIK_OPCODES_OPTIMIZED[ self.OP ][1][1] + return DALVIK_OPCODES_EXTENDED_WIDTH[ self.OP ][1][1] + return DALVIK_OPCODES_FORMAT[ self.OP ][1][1] + + def get_name(self) : + """ + Return the name of the instruction + + :rtype: string + """ + if self.OP > 0xff : + if self.OP >= 0xf2ff : + return DALVIK_OPCODES_OPTIMIZED[ self.OP ][1][0] + return DALVIK_OPCODES_EXTENDED_WIDTH[ self.OP ][1][0] + return DALVIK_OPCODES_FORMAT[ self.OP ][1][0] + + def get_op_value(self) : + """ + Return the value of the opcode + + :rtype: int + """ + return self.OP + + def get_literals(self) : + """ + Return the associated literals + + :rtype: list of int + """ + return [] + + def show(self, idx) : + """ + Print the instruction + """ + print self.get_name() + " " + self.get_output(idx), + + def show_buff(self, idx) : + """ + Return the display of the instruction + + :rtype: string + """ + return self.get_output(idx) + + def get_translated_kind(self) : + """ + Return the translated value of the 'kind' argument + + :rtype: string + """ + return get_kind(self.cm, self.get_kind(), self.get_ref_kind()) + + def get_output(self, idx=-1) : + """ + Return an additional output of the instruction + + :rtype: string + """ + raise("not implemented") + + def get_length(self) : + """ + Return the length of the instruction + + :rtype: int + """ + raise("not implemented") + + def get_raw(self) : + """ + Return the object in a raw format + + :rtype: string + """ + raise("not implemented") + + def get_ref_kind(self) : + """ + Return the value of the 'kind' argument + + :rtype: value + """ + raise("not implemented") + +class InstructionInvalid(Instruction) : + """ + This class represents an invalid instruction + """ + def __init__(self, cm, buff) : + super(InstructionInvalid, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + + #debug("OP:%x" % (self.OP)) + + def get_name(self) : + """ + Return the name of the instruction + + :rtype: string + """ + return "invalid" + + def get_output(self, idx=-1) : + return "(OP:%x)" % self.OP + + def get_length(self) : + return 2 + + def get_raw(self) : + return pack("=H", self.OP) + + +class FillArrayData : + """ + This class can parse a FillArrayData instruction + + :param buff: a Buff object which represents a buffer where the instruction is stored + """ + def __init__(self, buff) : + self.notes = [] + + self.format_general_size = calcsize("=HHI") + self.ident = unpack("=H", buff[0:2])[0] + self.element_width = unpack("=H", buff[2:4])[0] + self.size = unpack("=I", buff[4:8])[0] + + self.data = buff[ self.format_general_size : self.format_general_size + (self.size * self.element_width) +1 ] + + def add_note(self, msg) : + """ + Add a note to this instruction + + :param msg: the message + :type msg: objects (string) + """ + self.notes.append( msg ) + + def get_notes(self) : + """ + Get all notes from this instruction + + :rtype: a list of objects + """ + return self.notes + + def get_op_value(self) : + """ + Get the value of the opcode + + :rtype: int + """ + return self.ident + + def get_data(self) : + """ + Return the data of this instruction (the payload) + + :rtype: string + """ + return self.data + + def get_output(self, idx=-1) : + """ + Return an additional output of the instruction + + :rtype: string + """ + buff = "" + + data = self.get_data() + + buff += repr(data) + " | " + for i in xrange(0, len(data)) : + buff += "\\x%02x" % ord( data[i] ) + + return buff + + def get_name(self) : + """ + Return the name of the instruction + + :rtype: string + """ + return "fill-array-data-payload" + + def show_buff(self, pos) : + """ + Return the display of the instruction + + :rtype: string + """ + buff = self.get_name() + " " + + for i in xrange(0, len(self.data)) : + buff += "\\x%02x" % ord( self.data[i] ) + return buff + + def show(self, pos) : + """ + Print the instruction + """ + print self.show_buff(pos), + + def get_length(self) : + """ + Return the length of the instruction + + :rtype: int + """ + return ((self.size * self.element_width + 1) / 2 + 4) * 2 + + def get_raw(self) : + return pack("=H", self.ident) + pack("=H", self.element_width) + pack("=I", self.size) + self.data + +class SparseSwitch : + """ + This class can parse a SparseSwitch instruction + + :param buff: a Buff object which represents a buffer where the instruction is stored + """ + def __init__(self, buff) : + self.notes = [] + + self.format_general_size = calcsize("=HH") + self.ident = unpack("=H", buff[0:2])[0] + self.size = unpack("=H", buff[2:4])[0] + + self.keys = [] + self.targets = [] + + idx = self.format_general_size + for i in xrange(0, self.size) : + self.keys.append( unpack('=l', buff[idx:idx+4])[0] ) + idx += 4 + + for i in xrange(0, self.size) : + self.targets.append( unpack('=l', buff[idx:idx+4])[0] ) + idx += 4 + + def add_note(self, msg) : + """ + Add a note to this instruction + + :param msg: the message + :type msg: objects (string) + """ + self.notes.append( msg ) + + def get_notes(self) : + """ + Get all notes from this instruction + + :rtype: a list of objects + """ + return self.notes + + def get_op_value(self) : + """ + Get the value of the opcode + + :rtype: int + """ + return self.ident + + def get_keys(self) : + """ + Return the keys of the instruction + + :rtype: a list of long + """ + return self.keys + + def get_values(self) : + return self.get_keys() + + def get_targets(self) : + """ + Return the targets (address) of the instruction + + :rtype: a list of long + """ + return self.targets + + def get_output(self, idx=-1) : + """ + Return an additional output of the instruction + + :rtype: string + """ + return " ".join("%x" % i for i in self.keys) + + def get_name(self) : + """ + Return the name of the instruction + + :rtype: string + """ + return "sparse-switch-payload" + + def show_buff(self, pos) : + """ + Return the display of the instruction + + :rtype: string + """ + buff = self.get_name() + " " + for i in xrange(0, len(self.keys)) : + buff += "%x:%x " % (self.keys[i], self.targets[i]) + + return buff + + def show(self, pos) : + """ + Print the instruction + """ + print self.show_buff( pos ), + + def get_length(self) : + return self.format_general_size + (self.size * calcsize(' len(buff) : + max_size = len(buff) - idx - 8 + + for i in xrange(0, max_size) : + self.targets.append( unpack('=l', buff[idx:idx+4])[0] ) + idx += 4 + + def add_note(self, msg) : + """ + Add a note to this instruction + + :param msg: the message + :type msg: objects (string) + """ + self.notes.append( msg ) + + def get_notes(self) : + """ + Get all notes from this instruction + + :rtype: a list of objects + """ + return self.notes + + def get_op_value(self) : + """ + Get the value of the opcode + + :rtype: int + """ + return self.ident + + def get_keys(self) : + """ + Return the keys of the instruction + + :rtype: a list of long + """ + return [(self.first_key+i) for i in range(0, len(self.targets))] + + def get_values(self) : + return self.get_keys() + + def get_targets(self) : + """ + Return the targets (address) of the instruction + + :rtype: a list of long + """ + return self.targets + + def get_output(self, idx=-1) : + """ + Return an additional output of the instruction + + :rtype: string + """ + return " ".join("%x" % (self.first_key+i) for i in range(0, len(self.targets))) + + def get_name(self) : + """ + Return the name of the instruction + + :rtype: string + """ + return "packed-switch-payload" + + def show_buff(self, pos) : + """ + Return the display of the instruction + + :rtype: string + """ + buff = self.get_name() + " " + buff += "%x:" % self.first_key + + for i in self.targets : + buff += " %x" % i + + return buff + + def show(self, pos) : + """ + Print the instruction + """ + print self.show_buff( pos ), + + def get_length(self) : + return self.format_general_size + (self.size * calcsize('=L')) + + def get_raw(self) : + return pack("=H", self.ident) + pack("=H", self.size) + pack("=i", self.first_key) + ''.join(pack("=l", i) for i in self.targets) + + +class Instruction35c(Instruction) : + """ + This class represents all instructions which have the 35c format + """ + def __init__(self, cm, buff) : + super(Instruction35c, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.G = (i16 >> 8) & 0xf + self.A = (i16 >> 12) & 0xf + self.BBBB = unpack("=H", buff[2:4])[0] + + i16 = unpack("=H", buff[4:6])[0] + self.C = i16 & 0xf + self.D = (i16 >> 4) & 0xf + self.E = (i16 >> 8) & 0xf + self.F = (i16 >> 12) & 0xf + + #log_andro.debug("OP:%x %s G:%x A:%x BBBB:%x C:%x D:%x E:%x F:%x" % (self.OP, args[0], self.G, self.A, self.BBBB, self.C, self.D, self.E, self.F)) + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBB) + + if self.A == 0 : + buff += "%s" % (kind) + elif self.A == 1 : + buff += "v%d, %s" % (self.C, kind) + elif self.A == 2 : + buff += "v%d, v%d, %s" % (self.C, self.D, kind) + elif self.A == 3 : + buff += "v%d, v%d, v%d, %s" % (self.C, self.D, self.E, kind) + elif self.A == 4 : + buff += "v%d, v%d, v%d, v%d, %s" % (self.C, self.D, self.E, self.F, kind) + elif self.A == 5 : + buff += "v%d, v%d, v%d, v%d, v%d, %s" % (self.C, self.D, self.E, self.F, self.G, kind) + + return buff + + def get_length(self) : + return 6 + + def get_ref_kind(self) : + return self.BBBB + + def get_raw(self) : + return pack("=HHH", (self.A << 12) | (self.G << 8) | self.OP, self.BBBB, (self.F << 12) | (self.E << 8) | (self.D << 4) | self.C) + +class Instruction10x(Instruction) : + """ + This class represents all instructions which have the 10x format + """ + def __init__(self, cm, buff) : + super(Instruction10x, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + + #log_andro.debug("OP:%x %s" % (self.OP, args[0])) + + def get_output(self, idx=-1) : + buff = "" + return buff + + def get_length(self) : + return 2 + + def get_raw(self) : + return pack("=H", self.OP) + +class Instruction21h(Instruction) : + """ + This class represents all instructions which have the 21h format + """ + def __init__(self, cm, buff) : + super(Instruction21h, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=h", buff[2:4])[0] + + #log_andro.debug("OP:%x %s AA:%x BBBBB:%x" % (self.OP, args[0], self.AA, self.BBBB)) + + self.formatted_operands = [] + + if self.OP == 0x15 : + self.formatted_operands.append( unpack( '=f', '\x00\x00' + pack('=h', self.BBBB ) )[0] ) + elif self.OP == 0x19: + self.formatted_operands.append( unpack( '=d', '\x00\x00\x00\x00\x00\x00' + pack('=h', self.BBBB) )[0] ) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + + buff += "v%d, #+%d" % (self.AA, self.BBBB) + + if self.formatted_operands != [] : + buff += " // %s" % (str(self.formatted_operands)) + + return buff + + def get_literals(self) : + return [ self.BBBB ] + + def get_raw(self) : + return pack("=Hh", (self.AA << 8) | self.OP, self.BBBB) + +class Instruction11n(Instruction) : + """ + This class represents all instructions which have the 11n format + """ + def __init__(self, cm, buff) : + super(Instruction11n, self).__init__() + + i16 = unpack("=h", buff[0:2])[0] + self.OP = i16 & 0xff + self.A = (i16 >> 8) & 0xf + self.B = (i16 >> 12) & 0xf + + #log_andro.debug("OP:%x %s A:%x B:%x" % (self.OP, args[0], self.A, self.B)) + + def get_length(self) : + return 2 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, #+%d" % (self.A, self.B) + return buff + + def get_literals(self) : + return [ self.B ] + + def get_raw(self) : + return pack("=h", (self.B << 12) | (self.A << 8) | self.OP) + +class Instruction21c(Instruction) : + """ + This class represents all instructions which have the 21c format + """ + def __init__(self, cm, buff) : + super(Instruction21c, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=h", buff[2:4])[0] + #log_andro.debug("OP:%x %s AA:%x BBBBB:%x" % (self.OP, args[0], self.AA, self.BBBB)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBB) + + buff += "v%d, %s" % (self.AA, kind) + return buff + + def get_ref_kind(self) : + return self.BBBB + + def get_string(self) : + return get_kind(self.cm, self.get_kind(), self.BBBB) + + def get_raw(self) : + return pack("=Hh", (self.AA << 8) | self.OP, self.BBBB) + +class Instruction21s(Instruction) : + """ + This class represents all instructions which have the 21s format + """ + def __init__(self, cm, buff) : + super(Instruction21s, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=h", buff[2:4])[0] + + self.formatted_operands = [] + + if self.OP == 0x16 : + self.formatted_operands.append( unpack( '=d', pack('=d', self.BBBB))[0] ) + + #log_andro.debug("OP:%x %s AA:%x BBBBB:%x" % (self.OP, args[0], self.AA, self.BBBB)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, #+%d" % (self.AA, self.BBBB) + + if self.formatted_operands != [] : + buff += " // %s" % str(self.formatted_operands) + + return buff + + def get_literals(self) : + return [ self.BBBB ] + + def get_raw(self) : + return pack("=Hh", (self.AA << 8) | self.OP, self.BBBB) + +class Instruction22c(Instruction) : + """ + This class represents all instructions which have the 22c format + """ + def __init__(self, cm, buff) : + super(Instruction22c, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.A = (i16 >> 8) & 0xf + self.B = (i16 >> 12) & 0xf + self.CCCC = unpack("=H", buff[2:4])[0] + + #log_andro.debug("OP:%x %s A:%x B:%x CCCC:%x" % (self.OP, args[0], self.A, self.B, self.CCCC)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + kind = get_kind(self.cm, self.get_kind(), self.CCCC) + buff += "v%d, v%d, %s" % (self.A, self.B, kind) + return buff + + def get_ref_kind(self) : + return self.CCCC + + def get_raw(self) : + return pack("=HH", (self.B << 12) | (self.A << 8) | (self.OP), self.CCCC) + +class Instruction22cs(Instruction) : + """ + This class represents all instructions which have the 22cs format + """ + def __init__(self, cm, buff) : + super(Instruction22cs, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.A = (i16 >> 8) & 0xf + self.B = (i16 >> 12) & 0xf + self.CCCC = unpack("=H", buff[2:4])[0] + + #log_andro.debug("OP:%x %s A:%x B:%x CCCC:%x" % (self.OP, args[0], self.A, self.B, self.CCCC)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + kind = get_kind(self.cm, self.get_kind(), self.CCCC) + buff += "v%d, v%d, %s" % (self.A, self.B, kind) + return buff + + def get_ref_kind(self) : + return self.CCCC + + def get_raw(self) : + return pack("=HH", (self.B << 12) | (self.A << 8) | (self.OP), self.CCCC) + +class Instruction31t(Instruction) : + """ + This class represents all instructions which have the 31t format + """ + def __init__(self, cm, buff) : + super(Instruction31t, self).__init__() + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBBBBBB = unpack("=i", buff[2:6])[0] + #log_andro.debug("OP:%x %s AA:%x BBBBBBBBB:%x" % (self.OP, args[0], self.AA, self.BBBBBBBB)) + + def get_length(self) : + return 6 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, +%x (0x%x)" % (self.AA, self.BBBBBBBB, self.BBBBBBBB * 2 + idx) + + return buff + + def get_ref_off(self) : + return self.BBBBBBBB + + def get_raw(self) : + return pack("=Hi", (self.AA << 8) | self.OP, self.BBBBBBBB) + +class Instruction31c(Instruction) : + """ + This class represents all instructions which have the 31c format + """ + def __init__(self, cm, buff) : + super(Instruction31c, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBBBBBB = unpack("=i", buff[2:6])[0] + #log_andro.debug("OP:%x %s AA:%x BBBBBBBBB:%x" % (self.OP, args[0], self.AA, self.BBBBBBBB)) + + def get_length(self) : + return 6 + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBBBBBB) + buff += "v%d, %s" % (self.AA, kind) + return buff + + def get_ref_kind(self) : + return self.BBBBBBBB + + def get_string(self) : + """ + Return the string associated to the 'kind' argument + + :rtype: string + """ + return get_kind(self.cm, self.get_kind(), self.BBBBBBBB) + + def get_raw(self) : + return pack("=Hi", (self.AA << 8) | self.OP, self.BBBBBBBB) + +class Instruction12x(Instruction) : + """ + This class represents all instructions which have the 12x format + """ + def __init__(self, cm, buff) : + super(Instruction12x, self).__init__() + + i16 = unpack("=h", buff[0:2])[0] + self.OP = i16 & 0xff + self.A = (i16 >> 8) & 0xf + self.B = (i16 >> 12) & 0xf + + #log_andro.debug("OP:%x %s A:%x B:%x" % (self.OP, args[0], self.A, self.B)) + + def get_length(self) : + return 2 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, v%d" % (self.A, self.B) + return buff + + def get_raw(self) : + return pack("=H", (self.B << 12) | (self.A << 8) | (self.OP)) + +class Instruction11x(Instruction) : + """ + This class represents all instructions which have the 11x format + """ + def __init__(self, cm, buff) : + super(Instruction11x, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + #log_andro.debug("OP:%x %s AA:%x" % (self.OP, args[0], self.AA)) + + def get_length(self) : + return 2 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d" % (self.AA) + return buff + + def get_raw(self) : + return pack("=H", (self.AA << 8) | self.OP) + +class Instruction51l(Instruction) : + """ + This class represents all instructions which have the 51l format + """ + def __init__(self, cm, buff) : + super(Instruction51l, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBBBBBBBBBBBBBB = unpack("=q", buff[2:10])[0] + + self.formatted_operands = [] + + if self.OP == 0x18 : + self.formatted_operands.append( unpack( '=d', pack('=q', self.BBBBBBBBBBBBBBBB ) )[0] ) + + #log_andro.debug("OP:%x %s AA:%x BBBBBBBBBBBBBBBB:%x" % (self.OP, args[0], self.AA, self.BBBBBBBBBBBBBBBB)) + + def get_length(self) : + return 10 + + def get_output(self, idx=-1) : + buff = "" + + buff += "v%d, #+%d" % (self.AA, self.BBBBBBBBBBBBBBBB) + + if self.formatted_operands != [] : + buff += " // %s" % str(self.formatted_operands) + + return buff + + def get_literals(self) : + return [ self.BBBBBBBBBBBBBBBB ] + + def get_raw(self) : + return pack("=Hq", (self.AA << 8) | self.OP, self.BBBBBBBBBBBBBBBB) + +class Instruction31i(Instruction) : + """ + This class represents all instructions which have the 3li format + """ + def __init__(self, cm, buff) : + super(Instruction31i, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBBBBBB = unpack("=i", buff[2:6])[0] + + self.formatted_operands = [] + + if self.OP == 0x14 : + self.formatted_operands.append( unpack("=f", pack("=i", self.BBBBBBBB))[0] ) + + elif self.OP == 0x17 : + self.formatted_operands.append( unpack( '=d', pack('=d', self.BBBBBBBB))[0] ) + + #log_andro.debug("OP:%x %s AA:%x BBBBBBBBB:%x" % (self.OP, args[0], self.AA, self.BBBBBBBB)) + + def get_length(self) : + return 6 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, #+%d" % (self.AA, self.BBBBBBBB) + + if self.formatted_operands != [] : + buff += " // %s" % str(self.formatted_operands) + + return buff + + def get_literals(self) : + return [ self.BBBBBBBB ] + + def get_raw(self) : + return pack("=Hi", (self.AA << 8) | self.OP, self.BBBBBBBB) + +class Instruction22x(Instruction) : + """ + This class represents all instructions which have the 22x format + """ + def __init__(self, cm, buff) : + super(Instruction22x, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=H", buff[2:4])[0] + + #log_andro.debug("OP:%x %s AA:%x BBBBB:%x" % (self.OP, args[0], self.AA, self.BBBB)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, v%d" % (self.AA, self.BBBB) + return buff + + def get_raw(self) : + return pack("=HH", (self.AA << 8) | self.OP, self.BBBB) + +class Instruction23x(Instruction) : + """ + This class represents all instructions which have the 23x format + """ + def __init__(self, cm, buff) : + super(Instruction23x, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + i16 = unpack("=H", buff[2:4])[0] + self.BB = i16 & 0xff + self.CC = (i16 >> 8) & 0xff + + #log_andro.debug("OP:%x %s AA:%x BB:%x CC:%x" % (self.OP, args[0], self.AA, self.BB, self.CC)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, v%d, v%d" % (self.AA, self.BB, self.CC) + return buff + + def get_raw(self) : + return pack("=HH", (self.AA << 8) | self.OP, (self.CC << 8) | self.BB) + +class Instruction20t(Instruction) : + """ + This class represents all instructions which have the 20t format + """ + def __init__(self, cm, buff) : + super(Instruction20t, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AAAA = unpack("=h", buff[2:4])[0] + + #log_andro.debug("OP:%x %s AAAA:%x" % (self.OP, args[0], self.AAAA)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "%x" % (self.AAAA) + return buff + + def get_ref_off(self) : + return self.AAAA + + def get_raw(self) : + return pack("=Hh", self.OP, self.AAAA) + +class Instruction21t(Instruction) : + """ + This class represents all instructions which have the 21t format + """ + def __init__(self, cm, buff) : + super(Instruction21t, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=h", buff[2:4])[0] + + #log_andro.debug("OP:%x %s AA:%x BBBBB:%x" % (self.OP, args[0], self.AA, self.BBBB)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, +%d" % (self.AA, self.BBBB) + return buff + + def get_ref_off(self) : + return self.BBBB + + def get_raw(self) : + return pack("=Hh", (self.AA << 8) | self.OP, self.BBBB) + +class Instruction10t(Instruction) : + """ + This class represents all instructions which have the 10t format + """ + def __init__(self, cm, buff) : + super(Instruction10t, self).__init__() + + self.OP = unpack("=B", buff[0:1])[0] + self.AA = unpack("=b", buff[1:2])[0] + + #log_andro.debug("OP:%x %s AA:%x" % (self.OP, args[0], self.AA)) + + def get_length(self) : + return 2 + + def get_output(self, idx=-1) : + buff = "" + buff += "%x" % (self.AA) + return buff + + def get_ref_off(self) : + return self.AA + + def get_raw(self) : + return pack("=Bb", self.OP, self.AA) + +class Instruction22t(Instruction) : + """ + This class represents all instructions which have the 22t format + """ + def __init__(self, cm, buff) : + super(Instruction22t, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.A = (i16 >> 8) & 0xf + self.B = (i16 >> 12) & 0xf + self.CCCC = unpack("=h", buff[2:4])[0] + + #log_andro.debug("OP:%x %s A:%x B:%x CCCC:%x" % (self.OP, args[0], self.A, self.B, self.CCCC)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, v%d, +%d" % (self.A, self.B, self.CCCC) + return buff + + def get_ref_off(self) : + return self.CCCC + + def get_raw(self) : + return pack("=Hh", (self.B << 12) | (self.A << 8) | self.OP, self.CCCC) + +class Instruction22s(Instruction) : + """ + This class represents all instructions which have the 22s format + """ + def __init__(self, cm, buff) : + super(Instruction22s, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.A = (i16 >> 8) & 0xf + self.B = (i16 >> 12) & 0xf + self.CCCC = unpack("=h", buff[2:4])[0] + + #log_andro.debug("OP:%x %s A:%x B:%x CCCC:%x" % (self.OP, args[0], self.A, self.B, self.CCCC)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, v%d, #+%d" % (self.A, self.B, self.CCCC) + return buff + + def get_literals(self) : + return [ self.CCCC ] + + def get_raw(self) : + return pack("=Hh", (self.B << 12) | (self.A << 8) | self.OP, self.CCCC) + +class Instruction22b(Instruction) : + """ + This class represents all instructions which have the 22b format + """ + def __init__(self, cm, buff) : + super(Instruction22b, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BB = unpack("=B", buff[2:3])[0] + self.CC = unpack("=b", buff[3:4])[0] + + #log_andro.debug("OP:%x %s AA:%x BB:%x CC:%x" % (self.OP, args[0], self.AA, self.BB, self.CC)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, v%d, #+%d" % (self.AA, self.BB, self.CC) + return buff + + def get_literals(self) : + return [ self.CC ] + + def get_raw(self) : + return pack("=Hh", (self.AA << 8) | self.OP, (self.CC << 8) | self.BB) + +class Instruction30t(Instruction) : + """ + This class represents all instructions which have the 30t format + """ + def __init__(self, cm, buff) : + super(Instruction30t, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + + self.AAAAAAAA = unpack("=i", buff[2:6])[0] + + #log_andro.debug("OP:%x %s AAAAAAAA:%x" % (self.OP, args[0], self.AAAAAAAA)) + + def get_length(self) : + return 6 + + def get_output(self, idx=-1) : + buff = "" + buff += "%x" % (self.AAAAAAAA) + return buff + + def get_ref_off(self) : + return self.AAAAAAAA + + def get_raw(self) : + return pack("=Hi", self.OP, self.AAAAAAAA) + +class Instruction3rc(Instruction) : + """ + This class represents all instructions which have the 3rc format + """ + def __init__(self, cm, buff) : + super(Instruction3rc, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=H", buff[2:4])[0] + self.CCCC = unpack("=H", buff[4:6])[0] + + self.NNNN = self.CCCC + self.AA - 1 + + #log_andro.debug("OP:%x %s AA:%x BBBB:%x CCCC:%x NNNN:%d" % (self.OP, args[0], self.AA, self.BBBB, self.CCCC, self.NNNN)) + + def get_length(self) : + return 6 + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBB) + + if self.CCCC == self.NNNN : + buff += "v%d, %s" % (self.CCCC, kind) + else : + buff += "v%d ... v%d, %s" % (self.CCCC, self.NNNN, kind) + return buff + + def get_ref_kind(self) : + return self.BBBB + + def get_raw(self) : + return pack("=HHH", (self.AA << 8) | self.OP, self.BBBB, self.CCCC) + +class Instruction32x(Instruction) : + """ + This class represents all instructions which have the 32x format + """ + def __init__(self, cm, buff) : + super(Instruction32x, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AAAA = unpack("=H", buff[2:4])[0] + self.BBBB = unpack("=H", buff[4:6])[0] + + #log_andro.debug("OP:%x %s AAAAA:%x BBBBB:%x" % (self.OP, args[0], self.AAAA, self.BBBB)) + + def get_length(self) : + return 6 + + def get_output(self, idx=-1) : + buff = "" + buff += "v%d, v%d" % (self.AAAA, self.BBBB) + return buff + + def get_raw(self) : + return pack("=HHH", self.OP, self.AAAA, self.BBBB) + +class Instruction20bc(Instruction) : + """ + This class represents all instructions which have the 20bc format + """ + def __init__(self, cm, buff) : + super(Instruction20bc, self).__init__() + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=H", buff[2:4])[0] + + #log_andro.debug("OP:%x %s AA:%x BBBBB:%x" % (self.OP, args[0], self.AA, self.BBBB)) + + def get_length(self) : + return 4 + + def get_output(self, idx=-1) : + buff = "" + buff += "%d, %d" % (self.AA, self.BBBB) + return buff + + def get_raw(self) : + return pack("=HH", (self.AA << 8) | self.OP, self.BBBB) + +class Instruction35mi(Instruction) : + """ + This class represents all instructions which have the 35mi format + """ + def __init__(self, cm, buff) : + super(Instruction35mi, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.G = (i16 >> 8) & 0xf + self.A = (i16 >> 12) & 0xf + self.BBBB = unpack("=H", buff[2:4])[0] + + i16 = unpack("=H", buff[4:6])[0] + self.C = i16 & 0xf + self.D = (i16 >> 4) & 0xf + self.E = (i16 >> 8) & 0xf + self.F = (i16 >> 12) & 0xf + + #log_andro.debug("OP:%x %s G:%x A:%x BBBB:%x C:%x D:%x E:%x F:%x" % (self.OP, args[0], self.G, self.A, self.BBBB, self.C, self.D, self.E, self.F)) + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBB) + + if self.A == 1 : + buff += "v%d, %s" % (self.C, kind) + elif self.A == 2 : + buff += "v%d, v%d, %s" % (self.C, self.D, kind) + elif self.A == 3 : + buff += "v%d, v%d, v%d, %s" % (self.C, self.D, self.E, kind) + elif self.A == 4 : + buff += "v%d, v%d, v%d, v%d, %s" % (self.C, self.D, self.E, self.F, kind) + elif self.A == 5 : + buff += "v%d, v%d, v%d, v%d, v%d, %s" % (self.C, self.D, self.E, self.F, self.G, kind) + + return buff + + def get_length(self) : + return 6 + + def get_ref_kind(self) : + return self.BBBB + + def get_raw(self) : + return pack("=HHH", (self.A << 12) | (self.G << 8) | self.OP, self.BBBB, (self.F << 12) | (self.E << 8) | (self.D << 4) | self.C) + +class Instruction35ms(Instruction) : + """ + This class represents all instructions which have the 35ms format + """ + def __init__(self, cm, buff) : + super(Instruction35ms, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.G = (i16 >> 8) & 0xf + self.A = (i16 >> 12) & 0xf + self.BBBB = unpack("=H", buff[2:4])[0] + + i16 = unpack("=H", buff[4:6])[0] + self.C = i16 & 0xf + self.D = (i16 >> 4) & 0xf + self.E = (i16 >> 8) & 0xf + self.F = (i16 >> 12) & 0xf + + #log_andro.debug("OP:%x %s G:%x A:%x BBBB:%x C:%x D:%x E:%x F:%x" % (self.OP, args[0], self.G, self.A, self.BBBB, self.C, self.D, self.E, self.F)) + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBB) + + if self.A == 1 : + buff += "v%d, %s" % (self.C, kind) + elif self.A == 2 : + buff += "v%d, v%d, %s" % (self.C, self.D, kind) + elif self.A == 3 : + buff += "v%d, v%d, v%d, %s" % (self.C, self.D, self.E, kind) + elif self.A == 4 : + buff += "v%d, v%d, v%d, v%d, %s" % (self.C, self.D, self.E, self.F, kind) + elif self.A == 5 : + buff += "v%d, v%d, v%d, v%d, v%d, %s" % (self.C, self.D, self.E, self.F, self.G, kind) + + return buff + + def get_length(self) : + return 6 + + def get_ref_kind(self) : + return self.BBBB + + def get_raw(self) : + return pack("=HHH", (self.A << 12) | (self.G << 8) | self.OP, self.BBBB, (self.F << 12) | (self.E << 8) | (self.D << 4) | self.C) + +class Instruction3rmi(Instruction) : + """ + This class represents all instructions which have the 3rmi format + """ + def __init__(self, cm, buff) : + super(Instruction3rmi, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=H", buff[2:4])[0] + self.CCCC = unpack("=H", buff[4:6])[0] + + self.NNNN = self.CCCC + self.AA - 1 + + #log_andro.debug("OP:%x %s AA:%x BBBB:%x CCCC:%x NNNN:%d" % (self.OP, args[0], self.AA, self.BBBB, self.CCCC, self.NNNN)) + + def get_length(self) : + return 6 + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBB) + + if self.CCCC == self.NNNN : + buff += "v%d, %s" % (self.CCCC, kind) + else : + buff += "v%d ... v%d, %s" % (self.CCCC, self.NNNN, kind) + return buff + + def get_ref_kind(self) : + return self.BBBB + + def get_raw(self) : + return pack("=HHH", (self.AA << 8) | self.OP, self.BBBB, self.CCCC) + +class Instruction3rms(Instruction) : + """ + This class represents all instructions which have the 3rms format + """ + def __init__(self, cm, buff) : + super(Instruction3rms, self).__init__() + self.cm = cm + + i16 = unpack("=H", buff[0:2])[0] + self.OP = i16 & 0xff + self.AA = (i16 >> 8) & 0xff + + self.BBBB = unpack("=H", buff[2:4])[0] + self.CCCC = unpack("=H", buff[4:6])[0] + + self.NNNN = self.CCCC + self.AA - 1 + + #log_andro.debug("OP:%x %s AA:%x BBBB:%x CCCC:%x NNNN:%d" % (self.OP, args[0], self.AA, self.BBBB, self.CCCC, self.NNNN)) + + def get_length(self) : + return 6 + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBB) + + if self.CCCC == self.NNNN : + buff += "v%d, %s" % (self.CCCC, kind) + else : + buff += "v%d ... v%d, %s" % (self.CCCC, self.NNNN, kind) + return buff + + def get_ref_kind(self) : + return self.BBBB + + def get_raw(self) : + return pack("=HHH", (self.AA << 8) | self.OP, self.BBBB, self.CCCC) + +class Instruction41c(Instruction) : + """ + This class represents all instructions which have the 41c format + """ + def __init__(self, cm, buff) : + super(Instruction41c, self).__init__() + self.cm = cm + + self.OP = unpack("=H", buff[0:2])[0] + self.BBBBBBBB = unpack("=I", buff[2:6])[0] + self.AAAA = unpack("=H", buff[6:8])[0] + + #log_andro.debug("OP:%x %s AAAAA:%x BBBBB:%x" % (self.OP, args[0], self.AAAA, self.BBBBBBBB)) + + def get_length(self) : + return 8 + + def get_output(self, idx=-1) : + kind = get_kind(self.cm, self.get_kind(), self.BBBBBBBB) + + buff = "" + buff += "v%d, %s" % (self.AAAA, kind) + return buff + + def get_ref_kind(self) : + return self.BBBBBBBB + + def get_raw(self) : + return pack("=HIH", self.OP, self.BBBBBBBB, self.AAAA) + +class Instruction40sc(Instruction) : + """ + This class represents all instructions which have the 40sc format + """ + def __init__(self, cm, buff) : + super(Instruction40sc, self).__init__() + self.cm = cm + + self.OP = unpack("=H", buff[0:2])[0] + self.BBBBBBBB = unpack("=I", buff[2:6])[0] + self.AAAA = unpack("=H", buff[6:8])[0] + + #log_andro.debug("OP:%x %s AAAAA:%x BBBBB:%x" % (self.OP, args[0], self.AAAA, self.BBBBBBBB)) + + def get_length(self) : + return 8 + + def get_output(self, idx=-1) : + kind = get_kind(self.cm, self.get_kind(), self.BBBBBBBB) + + buff = "" + buff += "%d, %s" % (self.AAAA, kind) + return buff + + def get_ref_kind(self) : + return self.BBBBBBBB + + def get_raw(self) : + return pack("=HIH", self.OP, self.BBBBBBBB, self.AAAA) + +class Instruction52c(Instruction) : + """ + This class represents all instructions which have the 52c format + """ + def __init__(self, cm, buff) : + super(Instruction52c, self).__init__() + self.cm = cm + + self.OP = unpack("=H", buff[0:2])[0] + self.CCCCCCCC = unpack("=I", buff[2:6])[0] + self.AAAA = unpack("=H", buff[6:8])[0] + self.BBBB = unpack("=H", buff[8:10])[0] + + #log_andro.debug("OP:%x %s AAAAA:%x BBBBB:%x" % (self.OP, args[0], self.AAAA, self.BBBB)) + + def get_length(self) : + return 10 + + def get_output(self, idx=-1) : + kind = get_kind(self.cm, self.get_kind(), self.CCCCCCCC) + + buff = "" + buff += "v%d, v%d, %s" % (self.AAAA, self.BBBB, kind) + return buff + + def get_ref_kind(self) : + return self.CCCCCCCC + + def get_raw(self) : + return pack("=HIHH", self.OP, self.CCCCCCCC, self.AAAA, self.BBBB) + +class Instruction5rc(Instruction) : + """ + This class represents all instructions which have the 5rc format + """ + def __init__(self, cm, buff) : + super(Instruction5rc, self).__init__() + self.cm = cm + + self.OP = unpack("=H", buff[0:2])[0] + self.BBBBBBBB = unpack("=I", buff[2:6])[0] + self.AAAA = unpack("=H", buff[6:8])[0] + self.CCCC = unpack("=H", buff[8:10])[0] + + self.NNNN = self.CCCC + self.AAAA - 1 + + #log_andro.debug("OP:%x %s AA:%x BBBB:%x CCCC:%x NNNN:%d" % (self.OP, args[0], self.AAAA, self.BBBBBBBB, self.CCCC, self.NNNN)) + + def get_length(self) : + return 10 + + def get_output(self, idx=-1) : + buff = "" + + kind = get_kind(self.cm, self.get_kind(), self.BBBBBBBB) + + if self.CCCC == self.NNNN : + buff += "v%d, %s" % (self.CCCC, kind) + else : + buff += "v%d ... v%d, %s" % (self.CCCC, self.NNNN, kind) + return buff + + def get_ref_kind(self) : + return self.BBBBBBBB + + def get_raw(self) : + return pack("=HIHH", self.OP, self.BBBBBBBB, self.AAAA, self.CCCC) + + +DALVIK_OPCODES_FORMAT = { + 0x00 : [Instruction10x, [ "nop" ] ], + 0x01 : [Instruction12x, [ "move" ] ], + 0x02 : [Instruction22x, [ "move/from16" ] ], + 0x03 : [Instruction32x, [ "move/16" ] ], + 0x04 : [Instruction12x, [ "move-wide" ] ], + 0x05 : [Instruction22x, [ "move-wide/from16" ] ], + 0x06 : [Instruction32x, [ "move-wide/16" ] ], + 0x07 : [Instruction12x, [ "move-object" ] ], + 0x08 : [Instruction22x, [ "move-object/from16" ] ], + 0x09 : [Instruction32x, [ "move-object/16" ] ], + 0x0a : [Instruction11x, [ "move-result" ] ], + 0x0b : [Instruction11x, [ "move-result-wide" ] ], + 0x0c : [Instruction11x, [ "move-result-object" ] ], + 0x0d : [Instruction11x, [ "move-exception" ] ], + 0x0e : [Instruction10x, [ "return-void" ] ], + 0x0f : [Instruction11x, [ "return" ] ], + 0x10 : [Instruction11x, [ "return-wide" ] ], + 0x11 : [Instruction11x, [ "return-object" ] ], + 0x12 : [Instruction11n, [ "const/4" ] ], + 0x13 : [Instruction21s, [ "const/16" ] ], + 0x14 : [Instruction31i, [ "const" ] ], + 0x15 : [Instruction21h, [ "const/high16" ] ], + 0x16 : [Instruction21s, [ "const-wide/16" ] ], + 0x17 : [Instruction31i, [ "const-wide/32" ] ], + 0x18 : [Instruction51l, [ "const-wide" ] ], + 0x19 : [Instruction21h, [ "const-wide/high16" ] ], + 0x1a : [Instruction21c, [ "const-string", KIND_STRING ] ], + 0x1b : [Instruction31c, [ "const-string/jumbo", KIND_STRING ] ], + 0x1c : [Instruction21c, [ "const-class", KIND_TYPE ] ], + 0x1d : [Instruction11x, [ "monitor-enter" ] ], + 0x1e : [Instruction11x, [ "monitor-exit" ] ], + 0x1f : [Instruction21c, [ "check-cast", KIND_TYPE ] ], + 0x20 : [Instruction22c, [ "instance-of", KIND_TYPE ] ], + 0x21 : [Instruction12x, [ "array-length", KIND_TYPE ] ], + 0x22 : [Instruction21c, [ "new-instance", KIND_TYPE ] ], + 0x23 : [Instruction22c, [ "new-array", KIND_TYPE ] ], + + 0x24 : [Instruction35c, [ "filled-new-array", KIND_TYPE ] ], + 0x25 : [Instruction3rc, [ "filled-new-array/range", KIND_TYPE ] ], + 0x26 : [Instruction31t, [ "fill-array-data" ] ], + + 0x27 : [Instruction11x, [ "throw" ] ], + + 0x28 : [Instruction10t, [ "goto" ] ], + 0x29 : [Instruction20t, [ "goto/16" ] ], + 0x2a : [Instruction30t, [ "goto/32" ] ], + + 0x2b : [Instruction31t, [ "packed-switch" ] ], + 0x2c : [Instruction31t, [ "sparse-switch" ] ], + + 0x2d : [Instruction23x, [ "cmpl-float" ] ], + 0x2e : [Instruction23x, [ "cmpg-float" ] ], + 0x2f : [Instruction23x, [ "cmpl-double" ] ], + 0x30 : [Instruction23x, [ "cmpg-double" ] ], + 0x31 : [Instruction23x, [ "cmp-long" ] ], + + 0x32 : [Instruction22t, [ "if-eq" ] ], + 0x33 : [Instruction22t, [ "if-ne" ] ], + 0x34 : [Instruction22t, [ "if-lt" ] ], + 0x35 : [Instruction22t, [ "if-ge" ] ], + 0x36 : [Instruction22t, [ "if-gt" ] ], + 0x37 : [Instruction22t, [ "if-le" ] ], + + 0x38 : [Instruction21t, [ "if-eqz" ] ], + 0x39 : [Instruction21t, [ "if-nez" ] ], + 0x3a : [Instruction21t, [ "if-ltz" ] ], + 0x3b : [Instruction21t, [ "if-gez" ] ], + 0x3c : [Instruction21t, [ "if-gtz" ] ], + 0x3d : [Instruction21t, [ "if-lez" ] ], + + #unused + 0x3e : [Instruction10x, [ "nop" ] ], + 0x3f : [Instruction10x, [ "nop" ] ], + 0x40 : [Instruction10x, [ "nop" ] ], + 0x41 : [Instruction10x, [ "nop" ] ], + 0x42 : [Instruction10x, [ "nop" ] ], + 0x43 : [Instruction10x, [ "nop" ] ], + + 0x44 : [Instruction23x, [ "aget" ] ], + 0x45 : [Instruction23x, [ "aget-wide" ] ], + 0x46 : [Instruction23x, [ "aget-object" ] ], + 0x47 : [Instruction23x, [ "aget-boolean" ] ], + 0x48 : [Instruction23x, [ "aget-byte" ] ], + 0x49 : [Instruction23x, [ "aget-char" ] ], + 0x4a : [Instruction23x, [ "aget-short" ] ], + 0x4b : [Instruction23x, [ "aput" ] ], + 0x4c : [Instruction23x, [ "aput-wide" ] ], + 0x4d : [Instruction23x, [ "aput-object" ] ], + 0x4e : [Instruction23x, [ "aput-boolean" ] ], + 0x4f : [Instruction23x, [ "aput-byte" ] ], + 0x50 : [Instruction23x, [ "aput-char" ] ], + 0x51 : [Instruction23x, [ "aput-short" ] ], + + 0x52 : [Instruction22c, [ "iget", KIND_FIELD ] ], + 0x53 : [Instruction22c, [ "iget-wide", KIND_FIELD ] ], + 0x54 : [Instruction22c, [ "iget-object", KIND_FIELD ] ], + 0x55 : [Instruction22c, [ "iget-boolean", KIND_FIELD ] ], + 0x56 : [Instruction22c, [ "iget-byte", KIND_FIELD ] ], + 0x57 : [Instruction22c, [ "iget-char", KIND_FIELD ] ], + 0x58 : [Instruction22c, [ "iget-short", KIND_FIELD ] ], + 0x59 : [Instruction22c, [ "iput", KIND_FIELD ] ], + 0x5a : [Instruction22c, [ "iput-wide", KIND_FIELD ] ], + 0x5b : [Instruction22c, [ "iput-object", KIND_FIELD ] ], + 0x5c : [Instruction22c, [ "iput-boolean", KIND_FIELD ] ], + 0x5d : [Instruction22c, [ "iput-byte", KIND_FIELD ] ], + 0x5e : [Instruction22c, [ "iput-char", KIND_FIELD ] ], + 0x5f : [Instruction22c, [ "iput-short", KIND_FIELD ] ], + + + 0x60 : [Instruction21c, [ "sget", KIND_FIELD ] ], + 0x61 : [Instruction21c, [ "sget-wide", KIND_FIELD ] ], + 0x62 : [Instruction21c, [ "sget-object", KIND_FIELD ] ], + 0x63 : [Instruction21c, [ "sget-boolean", KIND_FIELD ] ], + 0x64 : [Instruction21c, [ "sget-byte", KIND_FIELD ] ], + 0x65 : [Instruction21c, [ "sget-char", KIND_FIELD ] ], + 0x66 : [Instruction21c, [ "sget-short", KIND_FIELD ] ], + 0x67 : [Instruction21c, [ "sput", KIND_FIELD ] ], + 0x68 : [Instruction21c, [ "sput-wide", KIND_FIELD ] ], + 0x69 : [Instruction21c, [ "sput-object", KIND_FIELD ] ], + 0x6a : [Instruction21c, [ "sput-boolean", KIND_FIELD ] ], + 0x6b : [Instruction21c, [ "sput-byte", KIND_FIELD ] ], + 0x6c : [Instruction21c, [ "sput-char", KIND_FIELD ] ], + 0x6d : [Instruction21c, [ "sput-short", KIND_FIELD ] ], + + + 0x6e : [Instruction35c, [ "invoke-virtual", KIND_METH ] ], + 0x6f : [Instruction35c, [ "invoke-super", KIND_METH ] ], + 0x70 : [Instruction35c, [ "invoke-direct", KIND_METH ] ], + 0x71 : [Instruction35c, [ "invoke-static", KIND_METH ] ], + 0x72 : [Instruction35c, [ "invoke-interface", KIND_METH ] ], + + # unused + 0x73 : [Instruction10x, [ "nop" ] ], + + 0x74 : [Instruction3rc, [ "invoke-virtual/range", KIND_METH ] ], + 0x75 : [Instruction3rc, [ "invoke-super/range", KIND_METH ] ], + 0x76 : [Instruction3rc, [ "invoke-direct/range", KIND_METH ] ], + 0x77 : [Instruction3rc, [ "invoke-static/range", KIND_METH ] ], + 0x78 : [Instruction3rc, [ "invoke-interface/range", KIND_METH ] ], + + # unused + 0x79 : [Instruction10x, [ "nop" ] ], + 0x7a : [Instruction10x, [ "nop" ] ], + + + 0x7b : [Instruction12x, [ "neg-int" ] ], + 0x7c : [Instruction12x, [ "not-int" ] ], + 0x7d : [Instruction12x, [ "neg-long" ] ], + 0x7e : [Instruction12x, [ "not-long" ] ], + 0x7f : [Instruction12x, [ "neg-float" ] ], + 0x80 : [Instruction12x, [ "neg-double" ] ], + 0x81 : [Instruction12x, [ "int-to-long" ] ], + 0x82 : [Instruction12x, [ "int-to-float" ] ], + 0x83 : [Instruction12x, [ "int-to-double" ] ], + 0x84 : [Instruction12x, [ "long-to-int" ] ], + 0x85 : [Instruction12x, [ "long-to-float" ] ], + 0x86 : [Instruction12x, [ "long-to-double" ] ], + 0x87 : [Instruction12x, [ "float-to-int" ] ], + 0x88 : [Instruction12x, [ "float-to-long" ] ], + 0x89 : [Instruction12x, [ "float-to-double" ] ], + 0x8a : [Instruction12x, [ "double-to-int" ] ], + 0x8b : [Instruction12x, [ "double-to-long" ] ], + 0x8c : [Instruction12x, [ "double-to-float" ] ], + 0x8d : [Instruction12x, [ "int-to-byte" ] ], + 0x8e : [Instruction12x, [ "int-to-char" ] ], + 0x8f : [Instruction12x, [ "int-to-short" ] ], + + + 0x90 : [Instruction23x, [ "add-int" ] ], + 0x91 : [Instruction23x, [ "sub-int" ] ], + 0x92 : [Instruction23x, [ "mul-int" ] ], + 0x93 : [Instruction23x, [ "div-int" ] ], + 0x94 : [Instruction23x, [ "rem-int" ] ], + 0x95 : [Instruction23x, [ "and-int" ] ], + 0x96 : [Instruction23x, [ "or-int" ] ], + 0x97 : [Instruction23x, [ "xor-int" ] ], + 0x98 : [Instruction23x, [ "shl-int" ] ], + 0x99 : [Instruction23x, [ "shr-int" ] ], + 0x9a : [Instruction23x, [ "ushr-int" ] ], + 0x9b : [Instruction23x, [ "add-long" ] ], + 0x9c : [Instruction23x, [ "sub-long" ] ], + 0x9d : [Instruction23x, [ "mul-long" ] ], + 0x9e : [Instruction23x, [ "div-long" ] ], + 0x9f : [Instruction23x, [ "rem-long" ] ], + 0xa0 : [Instruction23x, [ "and-long" ] ], + 0xa1 : [Instruction23x, [ "or-long" ] ], + 0xa2 : [Instruction23x, [ "xor-long" ] ], + 0xa3 : [Instruction23x, [ "shl-long" ] ], + 0xa4 : [Instruction23x, [ "shr-long" ] ], + 0xa5 : [Instruction23x, [ "ushr-long" ] ], + 0xa6 : [Instruction23x, [ "add-float" ] ], + 0xa7 : [Instruction23x, [ "sub-float" ] ], + 0xa8 : [Instruction23x, [ "mul-float" ] ], + 0xa9 : [Instruction23x, [ "div-float" ] ], + 0xaa : [Instruction23x, [ "rem-float" ] ], + 0xab : [Instruction23x, [ "add-double" ] ], + 0xac : [Instruction23x, [ "sub-double" ] ], + 0xad : [Instruction23x, [ "mul-double" ] ], + 0xae : [Instruction23x, [ "div-double" ] ], + 0xaf : [Instruction23x, [ "rem-double" ] ], + + + 0xb0 : [Instruction12x, [ "add-int/2addr" ] ], + 0xb1 : [Instruction12x, [ "sub-int/2addr" ] ], + 0xb2 : [Instruction12x, [ "mul-int/2addr" ] ], + 0xb3 : [Instruction12x, [ "div-int/2addr" ] ], + 0xb4 : [Instruction12x, [ "rem-int/2addr" ] ], + 0xb5 : [Instruction12x, [ "and-int/2addr" ] ], + 0xb6 : [Instruction12x, [ "or-int/2addr" ] ], + 0xb7 : [Instruction12x, [ "xor-int/2addr" ] ], + 0xb8 : [Instruction12x, [ "shl-int/2addr" ] ], + 0xb9 : [Instruction12x, [ "shr-int/2addr" ] ], + 0xba : [Instruction12x, [ "ushr-int/2addr" ] ], + 0xbb : [Instruction12x, [ "add-long/2addr" ] ], + 0xbc : [Instruction12x, [ "sub-long/2addr" ] ], + 0xbd : [Instruction12x, [ "mul-long/2addr" ] ], + 0xbe : [Instruction12x, [ "div-long/2addr" ] ], + 0xbf : [Instruction12x, [ "rem-long/2addr" ] ], + 0xc0 : [Instruction12x, [ "and-long/2addr" ] ], + 0xc1 : [Instruction12x, [ "or-long/2addr" ] ], + 0xc2 : [Instruction12x, [ "xor-long/2addr" ] ], + 0xc3 : [Instruction12x, [ "shl-long/2addr" ] ], + 0xc4 : [Instruction12x, [ "shr-long/2addr" ] ], + 0xc5 : [Instruction12x, [ "ushr-long/2addr" ] ], + 0xc6 : [Instruction12x, [ "add-float/2addr" ] ], + 0xc7 : [Instruction12x, [ "sub-float/2addr" ] ], + 0xc8 : [Instruction12x, [ "mul-float/2addr" ] ], + 0xc9 : [Instruction12x, [ "div-float/2addr" ] ], + 0xca : [Instruction12x, [ "rem-float/2addr" ] ], + 0xcb : [Instruction12x, [ "add-double/2addr" ] ], + 0xcc : [Instruction12x, [ "sub-double/2addr" ] ], + 0xcd : [Instruction12x, [ "mul-double/2addr" ] ], + 0xce : [Instruction12x, [ "div-double/2addr" ] ], + 0xcf : [Instruction12x, [ "rem-double/2addr" ] ], + + 0xd0 : [Instruction22s, [ "add-int/lit16" ] ], + 0xd1 : [Instruction22s, [ "rsub-int" ] ], + 0xd2 : [Instruction22s, [ "mul-int/lit16" ] ], + 0xd3 : [Instruction22s, [ "div-int/lit16" ] ], + 0xd4 : [Instruction22s, [ "rem-int/lit16" ] ], + 0xd5 : [Instruction22s, [ "and-int/lit16" ] ], + 0xd6 : [Instruction22s, [ "or-int/lit16" ] ], + 0xd7 : [Instruction22s, [ "xor-int/lit16" ] ], + + + 0xd8 : [Instruction22b, [ "add-int/lit8" ] ], + 0xd9 : [Instruction22b, [ "rsub-int/lit8" ] ], + 0xda : [Instruction22b, [ "mul-int/lit8" ] ], + 0xdb : [Instruction22b, [ "div-int/lit8" ] ], + 0xdc : [Instruction22b, [ "rem-int/lit8" ] ], + 0xdd : [Instruction22b, [ "and-int/lit8" ] ], + 0xde : [Instruction22b, [ "or-int/lit8" ] ], + 0xdf : [Instruction22b, [ "xor-int/lit8" ] ], + 0xe0 : [Instruction22b, [ "shl-int/lit8" ] ], + 0xe1 : [Instruction22b, [ "shr-int/lit8" ] ], + 0xe2 : [Instruction22b, [ "ushr-int/lit8" ] ], + + + # expanded opcodes + 0xe3 : [Instruction22c, [ "iget-volatile", KIND_FIELD ] ], + 0xe4 : [Instruction22c, [ "iput-volatile", KIND_FIELD ] ], + 0xe5 : [Instruction21c, [ "sget-volatile", KIND_FIELD ] ], + 0xe6 : [Instruction21c, [ "sput-volatile", KIND_FIELD ] ], + 0xe7 : [Instruction22c, [ "iget-object-volatile", KIND_FIELD ] ], + 0xe8 : [Instruction22c, [ "iget-wide-volatile", KIND_FIELD ] ], + 0xe9 : [Instruction22c, [ "iput-wide-volatile", KIND_FIELD ] ], + 0xea : [Instruction21c, [ "sget-wide-volatile", KIND_FIELD ] ], + 0xeb : [Instruction21c, [ "sput-wide-volatile", KIND_FIELD ] ], + + 0xec : [Instruction10x, [ "breakpoint" ] ], + 0xed : [Instruction20bc, [ "throw-verification-error", VARIES ] ], + 0xee : [Instruction35mi, [ "execute-inline", INLINE_METHOD ] ], + 0xef : [Instruction3rmi, [ "execute-inline/range", INLINE_METHOD ] ], + 0xf0 : [Instruction35c, [ "invoke-object-init/range", KIND_METH ] ], + 0xf1 : [Instruction10x, [ "return-void-barrier" ] ], + + 0xf2 : [Instruction22cs, [ "iget-quick", FIELD_OFFSET ] ], + 0xf3 : [Instruction22cs, [ "iget-wide-quick", FIELD_OFFSET ] ], + 0xf4 : [Instruction22cs, [ "iget-object-quick", FIELD_OFFSET ] ], + 0xf5 : [Instruction22cs, [ "iput-quick", FIELD_OFFSET ] ], + 0xf6 : [Instruction22cs, [ "iput-wide-quick", FIELD_OFFSET ] ], + 0xf7 : [Instruction22cs, [ "iput-object-quick", FIELD_OFFSET ] ], + 0xf8 : [Instruction35ms, [ "invoke-virtual-quick", VTABLE_OFFSET ] ], + 0xf9 : [Instruction3rms, [ "invoke-virtual-quick/range", VTABLE_OFFSET ] ], + 0xfa : [Instruction35ms, [ "invoke-super-quick", VTABLE_OFFSET ] ], + 0xfb : [Instruction3rms, [ "invoke-super-quick/range", VTABLE_OFFSET ] ], + 0xfc : [Instruction22c, [ "iput-object-volatile", KIND_FIELD ] ], + 0xfd : [Instruction21c, [ "sget-object-volatile", KIND_FIELD ] ], + 0xfe : [Instruction21c, [ "sput-object-volatile", KIND_FIELD ] ], +} + +DALVIK_OPCODES_PAYLOAD = { + 0x0100 : [PackedSwitch], + 0x0200 : [SparseSwitch], + 0x0300 : [FillArrayData], +} + +INLINE_METHODS = [ + [ "Lorg/apache/harmony/dalvik/NativeTestTarget;", "emptyInlineMethod", "()V" ], + + [ "Ljava/lang/String;", "charAt", "(I)C" ], + [ "Ljava/lang/String;", "compareTo", "(Ljava/lang/String;)I" ], + [ "Ljava/lang/String;", "equals", "(Ljava/lang/Object;)Z" ], + [ "Ljava/lang/String;", "fastIndexOf", "(II)I" ], + [ "Ljava/lang/String;", "isEmpty", "()Z" ], + [ "Ljava/lang/String;", "length", "()I" ], + + [ "Ljava/lang/Math;", "abs", "(I)I" ], + [ "Ljava/lang/Math;", "abs", "(J)J" ], + [ "Ljava/lang/Math;", "abs", "(F)F" ], + [ "Ljava/lang/Math;", "abs", "(D)D" ], + [ "Ljava/lang/Math;", "min", "(II)I" ], + [ "Ljava/lang/Math;", "max", "(II)I" ], + [ "Ljava/lang/Math;", "sqrt", "(D)D" ], + [ "Ljava/lang/Math;", "cos", "(D)D" ], + [ "Ljava/lang/Math;", "sin", "(D)D" ], + + [ "Ljava/lang/Float;", "floatToIntBits", "(F)I" ], + [ "Ljava/lang/Float;", "floatToRawIntBits", "(F)I" ], + [ "Ljava/lang/Float;", "intBitsToFloat", "(I)F" ], + [ "Ljava/lang/Double;", "doubleToLongBits", "(D)J" ], + [ "Ljava/lang/Double;", "doubleToRawLongBits", "(D)J" ], + [ "Ljava/lang/Double;", "longBitsToDouble", "(J)D" ], +] + +DALVIK_OPCODES_EXTENDED_WIDTH = { + 0x00ff : [ Instruction41c, ["const-class/jumbo", KIND_TYPE ] ], + 0x01ff : [ Instruction41c, ["check-cast/jumbo", KIND_TYPE ] ], + + 0x02ff : [ Instruction52c, ["instance-of/jumbo", KIND_TYPE ] ], + + 0x03ff : [ Instruction41c, ["new-instance/jumbo", KIND_TYPE ] ], + + 0x04ff : [ Instruction52c, ["new-array/jumbo", KIND_TYPE ] ], + + 0x05ff : [ Instruction5rc, ["filled-new-array/jumbo", KIND_TYPE ] ], + + 0x06ff : [ Instruction52c, ["iget/jumbo", KIND_FIELD ] ], + 0x07ff : [ Instruction52c, ["iget-wide/jumbo", KIND_FIELD ] ], + 0x08ff : [ Instruction52c, ["iget-object/jumbo", KIND_FIELD ] ], + 0x09ff : [ Instruction52c, ["iget-boolean/jumbo", KIND_FIELD ] ], + 0x0aff : [ Instruction52c, ["iget-byte/jumbo", KIND_FIELD ] ], + 0x0bff : [ Instruction52c, ["iget-char/jumbo", KIND_FIELD ] ], + 0x0cff : [ Instruction52c, ["iget-short/jumbo", KIND_FIELD ] ], + 0x0dff : [ Instruction52c, ["iput/jumbo", KIND_FIELD ] ], + 0x0eff : [ Instruction52c, ["iput-wide/jumbo", KIND_FIELD ] ], + 0x0fff : [ Instruction52c, ["iput-object/jumbo", KIND_FIELD ] ], + 0x10ff : [ Instruction52c, ["iput-boolean/jumbo", KIND_FIELD ] ], + 0x11ff : [ Instruction52c, ["iput-byte/jumbo", KIND_FIELD ] ], + 0x12ff : [ Instruction52c, ["iput-char/jumbo", KIND_FIELD ] ], + 0x13ff : [ Instruction52c, ["iput-short/jumbo", KIND_FIELD ] ], + + 0x14ff : [ Instruction41c, ["sget/jumbo", KIND_FIELD ] ], + 0x15ff : [ Instruction41c, ["sget-wide/jumbo", KIND_FIELD ] ], + 0x16ff : [ Instruction41c, ["sget-object/jumbo", KIND_FIELD ] ], + 0x17ff : [ Instruction41c, ["sget-boolean/jumbo", KIND_FIELD ] ], + 0x18ff : [ Instruction41c, ["sget-byte/jumbo", KIND_FIELD ] ], + 0x19ff : [ Instruction41c, ["sget-char/jumbo", KIND_FIELD ] ], + 0x1aff : [ Instruction41c, ["sget-short/jumbo", KIND_FIELD ] ], + 0x1bff : [ Instruction41c, ["sput/jumbo", KIND_FIELD ] ], + 0x1cff : [ Instruction41c, ["sput-wide/jumbo", KIND_FIELD ] ], + 0x1dff : [ Instruction41c, ["sput-object/jumbo", KIND_FIELD ] ], + 0x1eff : [ Instruction41c, ["sput-boolean/jumbo", KIND_FIELD ] ], + 0x1fff : [ Instruction41c, ["sput-byte/jumbo", KIND_FIELD ] ], + 0x20ff : [ Instruction41c, ["sput-char/jumbo", KIND_FIELD ] ], + 0x21ff : [ Instruction41c, ["sput-short/jumbo", KIND_FIELD ] ], + + 0x22ff : [ Instruction5rc, ["invoke-virtual/jumbo", KIND_METH ] ], + 0x23ff : [ Instruction5rc, ["invoke-super/jumbo", KIND_METH ] ], + 0x24ff : [ Instruction5rc, ["invoke-direct/jumbo", KIND_METH ] ], + 0x25ff : [ Instruction5rc, ["invoke-static/jumbo", KIND_METH ] ], + 0x26ff : [ Instruction5rc, ["invoke-interface/jumbo", KIND_METH ] ], +} + +DALVIK_OPCODES_OPTIMIZED = { + 0xf2ff : [ Instruction5rc, ["invoke-object-init/jumbo", KIND_METH ] ], + + 0xf3ff : [ Instruction52c, ["iget-volatile/jumbo", KIND_FIELD ] ], + 0xf4ff : [ Instruction52c, ["iget-wide-volatile/jumbo", KIND_FIELD ] ], + 0xf5ff : [ Instruction52c, ["iget-object-volatile/jumbo ", KIND_FIELD ] ], + 0xf6ff : [ Instruction52c, ["iput-volatile/jumbo", KIND_FIELD ] ], + 0xf7ff : [ Instruction52c, ["iput-wide-volatile/jumbo", KIND_FIELD ] ], + 0xf8ff : [ Instruction52c, ["iput-object-volatile/jumbo", KIND_FIELD ] ], + 0xf9ff : [ Instruction41c, ["sget-volatile/jumbo", KIND_FIELD ] ], + 0xfaff : [ Instruction41c, ["sget-wide-volatile/jumbo", KIND_FIELD ] ], + 0xfbff : [ Instruction41c, ["sget-object-volatile/jumbo", KIND_FIELD ] ], + 0xfcff : [ Instruction41c, ["sput-volatile/jumbo", KIND_FIELD ] ], + 0xfdff : [ Instruction41c, ["sput-wide-volatile/jumbo", KIND_FIELD ] ], + 0xfeff : [ Instruction41c, ["sput-object-volatile/jumbo", KIND_FIELD ] ], + + 0xffff : [ Instruction40sc, ["throw-verification-error/jumbo", VARIES ] ], +} + +class Unresolved(Instruction) : + def __init__(self, data) : + self.data = data + + def get_name(self) : + return "unresolved" + + def get_op_value(self) : + return ord(self.data[0]) + + def get_output(self, idx=-1) : + return repr(self.data) + + def get_length(self) : + return len(self.data) + + def get_raw(self) : + return self.buff + +def get_instruction(cm, op_value, buff, odex=False) : + try : + if not odex and (op_value >= 0xe3 and op_value <= 0xfe) : + return InstructionInvalid( cm, buff ) + + try : + return DALVIK_OPCODES_FORMAT[ op_value ][0]( cm, buff ) + except KeyError : + return InstructionInvalid( cm, buff ) + except : + return Unresolved( buff ) + +def get_extented_instruction(cm, op_value, buff) : + return DALVIK_OPCODES_EXTENDED_WIDTH[ op_value ][0]( cm, buff ) + +def get_optimize_instruction(cm, op_value, buff) : + return DALVIK_OPCODES_OPTIMIZED[ op_value ][0]( cm, buff ) + +def get_instruction_payload(op_value, buff) : + return DALVIK_OPCODES_PAYLOAD[ op_value ][0]( buff ) + +class LinearSweepAlgorithm : + """ + This class is used to disassemble a method. The algorithm used by this class is linear sweep. + """ + def get_instructions(self, cm, size, insn, idx) : + """ + :param cm: a ClassManager object + :type cm: :class:`ClassManager` object + :param size: the total size of the buffer + :type size: int + :param insn: a raw buffer where are the instructions + :type insn: string + :param idx: a start address in the buffer + :type idx: int + + :rtype: a generator of :class:`Instruction` objects + """ + self.odex = cm.get_odex_format() + + max_idx = size * calcsize( '=H' ) + # Get instructions + while idx < max_idx : + obj = None + classic_instruction = True + + op_value = unpack( '=B', insn[idx] )[0] + + #print "%x %x" % (op_value, idx) + + #payload instructions or extented/optimized instructions + if (op_value == 0x00 or op_value == 0xff) and ((idx + 2) < max_idx) : + op_value = unpack( '=H', insn[idx:idx+2] )[0] + + # payload instructions ? + if op_value in DALVIK_OPCODES_PAYLOAD : + obj = get_instruction_payload( op_value, insn[idx:] ) + classic_instruction = False + + elif op_value in DALVIK_OPCODES_EXTENDED_WIDTH : + obj = get_extented_instruction( cm, op_value, insn[idx:] ) + classic_instruction = False + + # optimized instructions ? + elif self.odex and (op_value in DALVIK_OPCODES_OPTIMIZED) : + obj = get_optimized_instruction( cm, op_value, insn[idx:] ) + classic_instruction = False + + # classical instructions + if classic_instruction : + op_value = unpack( '=B', insn[idx] )[0] + obj = get_instruction( cm, op_value, insn[idx:], self.odex) + + # emit instruction + yield obj + idx = idx + obj.get_length() + +class DCode : + """ + This class represents the instructions of a method + + :param class_manager: the ClassManager + :type class_manager: :class:`ClassManager` object + :param size: the total size of the buffer + :type size: int + :param buff: a raw buffer where are the instructions + :type buff: string + """ + def __init__(self, class_manager, size, buff) : + self.CM = class_manager + self.insn = buff + self.size = size + + self.notes = {} + self.cached_instructions = [] + self.idx = 0 + + def set_idx(self, idx) : + """ + Set the start address of the buffer + + :param idx: the index + :type idx: int + """ + self.idx = idx + + def set_instructions(self, instructions) : + """ + Set the instructions + + :param instructions: the list of instructions + :type instructions: a list of :class:`Instruction` + """ + self.cached_instructions = instructions + + def get_instructions(self) : + """ + Get the instructions + + :rtype: a generator of each :class:`Instruction` (or a cached list of instructions if you have setup instructions) + """ + # it is possible to a cache for instructions (avoid a new disasm) + if self.cached_instructions != [] : + for i in self.cached_instructions : + yield i + return + + lsa = LinearSweepAlgorithm() + for i in lsa.get_instructions( self.CM, self.size, self.insn, self.idx ) : + yield i + + def reload(self) : + pass + + def add_inote(self, msg, idx, off=None) : + """ + Add a message to a specific instruction by using (default) the index of the address if specified + + :param msg: the message + :type msg: string + :param idx: index of the instruction (the position in the list of the instruction) + :type idx: int + :param off: address of the instruction + :type off: int + """ + if off != None : + idx = self.off_to_pos(off) + + if idx not in self.notes : + self.notes[ idx ] = [] + + self.notes[ idx ].append(msg) + + def get_instruction(self, idx, off=None) : + """ + Get a particular instruction by using (default) the index of the address if specified + + :param idx: index of the instruction (the position in the list of the instruction) + :type idx: int + :param off: address of the instruction + :type off: int + + :rtype: an :class:`Instruction` object + """ + if off != None : + idx = self.off_to_pos(off) + return [ i for i in self.get_instructions()][idx] + + def off_to_pos(self, off) : + """ + Get the position of an instruction by using the address + + :param off: address of the instruction + :type off: int + + :rtype: int + """ + idx = 0 + nb = 0 + for i in self.get_instructions() : + if idx == off : + return nb + nb += 1 + idx += i.get_length() + return -1 + + def get_ins_off(self, off) : + """ + Get a particular instruction by using the address + + :param off: address of the instruction + :type off: int + + :rtype: an :class:`Instruction` object + """ + idx = 0 + for i in self.get_instructions() : + if idx == off : + return i + idx += i.get_length() + return None + + def show(self) : + """ + Display this object + """ + nb = 0 + idx = 0 + for i in self.get_instructions() : + print nb, "0x%x" % idx, + i.show(nb) + print + + idx += i.get_length() + nb += 1 + + def pretty_show(self, m_a) : + """ + Display (with a pretty print) this object + + :param m_a: :class:`MethodAnalysis` object + """ + bytecode.PrettyShow( m_a.basic_blocks.gets(), self.notes ) + bytecode.PrettyShowEx( m_a.exceptions.gets() ) + + def get_raw(self) : + """ + Return the raw buffer of this object + + :rtype: string + """ + return ''.join(i.get_raw() for i in self.get_instructions()) + + def get_length(self) : + """ + Return the length of this object + + :rtype: int + """ + return len(self.get_raw()) + +class TryItem : + """ + This class represents the try_item format + + :param buff: a raw buffer where are the try_item format + :type buff: string + :param cm: the ClassManager + :type cm: :class:`ClassManager` object + """ + def __init__(self, buff, cm) : + self.offset = buff.get_idx() + + self.__CM = cm + + self.start_addr = unpack("=I", buff.read(4))[0] + self.insn_count = unpack("=H", buff.read(2))[0] + self.handler_off = unpack("=H", buff.read(2))[0] + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def get_start_addr(self) : + """ + Get the start address of the block of code covered by this entry. The address is a count of 16-bit code units to the start of the first covered instruction. + + :rtype: int + """ + return self.start_addr + + def get_insn_count(self) : + """ + Get the number of 16-bit code units covered by this entry + + :rtype: int + """ + return self.insn_count + + def get_handler_off(self) : + """ + Get the offset in bytes from the start of the associated :class:`EncodedCatchHandlerList` to the :class:`EncodedCatchHandler` for this entry. + + :rtype: int + """ + return self.handler_off + + def get_raw(self) : + return pack("=I", self.start_addr) + pack("=H", self.insn_count) + pack("=H", self.handler_off) + + def get_length(self) : + return len(self.get_raw()) + +class DalvikCode : + """ + This class represents the instructions of a method + + :param buff: a raw buffer where are the instructions + :type buff: string + :param cm: the ClassManager + :type cm: :class:`ClassManager` object + """ + def __init__(self, buff, cm) : + self.__CM = cm + + self.padding = "" + off = buff.get_idx() + while off % 4 != 0 : + self.padding += '\00' + off += 1 + buff.set_idx( off ) + + self.__off = buff.get_idx() + + self.registers_size = unpack("=H", buff.read(2))[0] + self.ins_size = unpack("=H", buff.read(2))[0] + self.outs_size = unpack("=H", buff.read(2))[0] + self.tries_size = unpack("=H", buff.read(2))[0] + self.debug_info_off = unpack("=I", buff.read(4))[0] + self.insns_size = unpack("=I", buff.read(4))[0] + + ushort = calcsize( '=H' ) + + self.code = DCode( self.__CM, self.insns_size, buff.read( self.insns_size * ushort ) ) + + if (self.insns_size % 2 == 1) : + self.__padding = unpack("=H", buff.read(2))[0] + + self.tries = [] + self.handlers = None + if self.tries_size > 0 : + for i in xrange(0, self.tries_size) : + self.tries.append( TryItem( buff, self.__CM ) ) + + self.handlers = EncodedCatchHandlerList( buff, self.__CM ) + + def get_registers_size(self) : + """ + Get the number of registers used by this code + + :rtype: int + """ + return self.registers_size + + def get_ins_size(self) : + """ + Get the number of words of incoming arguments to the method that this code is for + + :rtype: int + """ + return self.ins_size + + def get_outs_size(self) : + """ + Get the number of words of outgoing argument space required by this code for method invocation + + :rtype: int + """ + return self.outs_size + + def get_tries_size(self) : + """ + Get the number of :class:`TryItem` for this instance + + :rtype: int + """ + return self.tries_size + + def get_debug_info_off(self) : + """ + Get the offset from the start of the file to the debug info (line numbers + local variable info) sequence for this code, or 0 if there simply is no information + + :rtype: int + """ + return self.debug_info_off + + def get_insns_size(self) : + """ + Get the size of the instructions list, in 16-bit code units + + :rtype: int + """ + return self.insns_size + + def get_handlers(self) : + """ + Get the bytes representing a list of lists of catch types and associated handler addresses. + + :rtype: :class:`EncodedCatchHandlerList` + """ + return self.handlers + + def get_tries(self) : + """ + Get the array indicating where in the code exceptions are caught and how to handle them + + :rtype: a list of :class:`TryItem` objects + """ + return self.tries + + def get_debug(self) : + """ + Return the associated debug object + + :rtype: :class:`DebugInfoItem` + """ + return self.__CM.get_debug_off( self.debug_info_off ) + + def set_idx(self, idx) : + self.code.set_idx(idx) + + def reload(self) : + self.code.reload() + + def get_length(self) : + return self.insns_size + + def get_bc(self) : + return self.code + + def _begin_show(self) : + debug("registers_size: %d" % self.registers_size) + debug("ins_size: %d" % self.ins_size) + debug("outs_size: %d" % self.outs_size) + debug("tries_size: %d" % self.tries_size) + debug("debug_info_off: %d" % self.debug_info_off) + debug("insns_size: %d" % self.insns_size) + + bytecode._PrintBanner() + + def show(self) : + self._begin_show() + self.code.show() + self._end_show() + + def _end_show(self) : + bytecode._PrintBanner() + + def pretty_show(self, m_a) : + self._begin_show() + self.code.pretty_show(m_a) + self._end_show() + + def get_obj(self) : + return [ i for i in self.handlers ] + + def get_raw(self) : + code_raw = self.code.get_raw() + self.insns_size = (len(code_raw) / 2) + (len(code_raw) % 2) + + + buff = self.padding + buff += pack("=H", self.registers_size) + \ + pack("=H", self.ins_size) + \ + pack("=H", self.outs_size) + \ + pack("=H", self.tries_size) + \ + pack("=I", self.debug_info_off) + \ + pack("=I", self.insns_size) + \ + code_raw + + if (self.insns_size % 2 == 1) : + buff += pack("=H", self.__padding) + + if self.tries_size > 0 : + buff += ''.join(i.get_raw() for i in self.tries) + buff += self.handlers.get_raw() + + return buff + + def add_inote(self, msg, idx, off=None) : + """ + Add a message to a specific instruction by using (default) the index of the address if specified + + :param msg: the message + :type msg: string + :param idx: index of the instruction (the position in the list of the instruction) + :type idx: int + :param off: address of the instruction + :type off: int + """ + if self.code : + return self.code.add_inote(msg, idx, off) + + def get_instruction(self, idx, off=None) : + if self.code : + return self.code.get_instruction(idx, off) + + def get_size(self) : + length = len(self.padding) + + length += len( pack("=H", self.registers_size) + \ + pack("=H", self.ins_size) + \ + pack("=H", self.outs_size) + \ + pack("=H", self.tries_size) + \ + pack("=I", self.debug_info_off) + \ + pack("=I", self.insns_size) ) + length += self.code.get_length() + + if (self.insns_size % 2 == 1) : + length += len(pack("=H", self.__padding)) + + if self.tries_size > 0 : + for i in self.tries : + length += i.get_length() + + length += self.handlers.get_length() + + return length + + def get_off(self) : + return self.__off + +class CodeItem : + def __init__(self, size, buff, cm) : + self.__CM = cm + + self.offset = buff.get_idx() + + self.code = [] + self.__code_off = {} + + for i in xrange(0, size) : + x = DalvikCode( buff, cm ) + self.code.append( x ) + self.__code_off[ x.get_off() ] = x + + def set_off(self, off) : + self.offset = off + + def get_off(self) : + return self.offset + + def get_code(self, off) : + try : + return self.__code_off[off] + except KeyError : + return None + + def reload(self) : + for i in self.code : + i.reload() + + def show(self) : + print "CODE_ITEM" + for i in self.code : + i.show() + + def get_obj(self) : + return [ i for i in self.code ] + + def get_raw(self) : + return ''.join(i.get_raw() for i in self.code) + + def get_length(self) : + length = 0 + for i in self.code : + length += i.get_size() + return length + +class MapItem : + def __init__(self, buff, cm) : + self.__CM = cm + + self.off = buff.get_idx() + + self.type = unpack("=H", buff.read(2))[0] + self.unused = unpack("=H", buff.read(2))[0] + self.size = unpack("=I", buff.read(4))[0] + self.offset = unpack("=I", buff.read(4))[0] + + self.item = None + + buff.set_idx( self.offset ) + + lazy_analysis = self.__CM.get_lazy_analysis() + + if lazy_analysis : + self.next_lazy(buff, cm) + else : + self.next(buff, cm) + + def get_off(self) : + return self.off + + def get_offset(self) : + return self.offset + + def get_type(self) : + return self.type + + def get_size(self) : + return self.size + + def next(self, buff, cm) : + debug("%s @ 0x%x(%d) %d %x" % (TYPE_MAP_ITEM[ self.type ], buff.get_idx(), buff.get_idx(), self.size, self.offset)) + + if TYPE_MAP_ITEM[ self.type ] == "TYPE_STRING_ID_ITEM" : + self.item = [ StringIdItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_CODE_ITEM" : + self.item = CodeItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_TYPE_ID_ITEM" : + self.item = TypeHIdItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_PROTO_ID_ITEM" : + self.item = ProtoHIdItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_FIELD_ID_ITEM" : + self.item = FieldHIdItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_METHOD_ID_ITEM" : + self.item = MethodHIdItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_CLASS_DEF_ITEM" : + self.item = ClassHDefItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_HEADER_ITEM" : + self.item = HeaderItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_ANNOTATION_ITEM" : + self.item = [ AnnotationItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_ANNOTATION_SET_ITEM" : + self.item = [ AnnotationSetItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_ANNOTATIONS_DIRECTORY_ITEM" : + self.item = [ AnnotationsDirectoryItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_ANNOTATION_SET_REF_LIST" : + self.item = [ AnnotationSetRefList( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_TYPE_LIST" : + self.item = [ TypeList( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_STRING_DATA_ITEM" : + self.item = [ StringDataItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_DEBUG_INFO_ITEM" : + self.item = DebugInfoItemEmpty( buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_ENCODED_ARRAY_ITEM" : + self.item = [ EncodedArrayItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_CLASS_DATA_ITEM" : + self.item = [ ClassDataItem(buff, cm) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_MAP_LIST" : + pass # It's me I think !!! + + else : + bytecode.Exit( "Map item %d @ 0x%x(%d) is unknown" % (self.type, buff.get_idx(), buff.get_idx()) ) + + def next_lazy(self, buff, cm) : + if TYPE_MAP_ITEM[ self.type ] == "TYPE_STRING_ID_ITEM" : + self.item = [ StringIdItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_CODE_ITEM" : + self.item = CodeItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_TYPE_ID_ITEM" : + self.item = TypeIdItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_PROTO_ID_ITEM" : + self.item = ProtoIdItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_FIELD_ID_ITEM" : + self.item = FieldIdItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_METHOD_ID_ITEM" : + self.item = MethodIdItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_CLASS_DEF_ITEM" : + self.item = ClassDefItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_HEADER_ITEM" : + self.item = HeaderItem( self.size, buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_TYPE_LIST" : + self.item = [ TypeList( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_STRING_DATA_ITEM" : + self.item = [ StringDataItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_DEBUG_INFO_ITEM" : + self.item = DebugInfoItemEmpty( buff, cm ) + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_ENCODED_ARRAY_ITEM" : + self.item = [ EncodedArrayItem( buff, cm ) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_CLASS_DATA_ITEM" : + self.item = [ ClassDataItem(buff, cm) for i in xrange(0, self.size) ] + + elif TYPE_MAP_ITEM[ self.type ] == "TYPE_MAP_LIST" : + pass # It's me I think !!! + + + def reload(self) : + if self.item != None : + if isinstance( self.item, list ): + for i in self.item : + i.reload() + else : + self.item.reload() + + def show(self) : + bytecode._Print( "\tMAP_TYPE_ITEM", TYPE_MAP_ITEM[ self.type ]) + + if self.item != None : + if isinstance( self.item, list ): + for i in self.item : + i.show() + else : + self.item.show() + + def pretty_show(self) : + bytecode._Print( "\tMAP_TYPE_ITEM", TYPE_MAP_ITEM[ self.type ]) + + if self.item != None : + if isinstance( self.item, list ): + for i in self.item : + if isinstance(i, ClassDataItem) : + i.pretty_show() + else : + i.show() + else : + self.item.show() + + def get_obj(self) : + return self.item + + def get_raw(self) : + if isinstance(self.item, list) : + self.offset = self.item[0].get_off() + else : + self.offset = self.item.get_off() + + return pack("=H", self.type) + pack("=H", self.unused) + pack("=I", self.size) + pack("=I", self.offset) + + def get_length(self) : + return calcsize( "=HHII" ) + + def get_item(self) : + return self.item + + def set_item(self, item) : + self.item = item + +class OffObj : + def __init__(self, o) : + self.off = o + +class ClassManager : + """ + This class is used to access to all elements (strings, type, proto ...) of the dex format + """ + def __init__(self, vm) : + self.vm = vm + self.buff = vm + + self.decompiler_ob = None + self.vmanalysis_ob = None + self.gvmanalysis_ob = None + + self.__manage_item = {} + self.__manage_item_off = [] + + self.__strings_off = {} + + self.__obj_offset = {} + self.__item_offset = {} + + self.__cached_type_list = {} + self.__cached_proto = {} + + self.recode_ascii_string = CONF["RECODE_ASCII_STRING"] + self.recode_ascii_string_meth = CONF["RECODE_ASCII_STRING_METH"] + + self.lazy_analysis = CONF["LAZY_ANALYSIS"] + + self.hook_strings = {} + + self.engine = [] + self.engine.append("python") + + if self.vm != None : + self.odex_format = self.vm.get_format_type() == "ODEX" + + def get_odex_format(self) : + return self.odex_format + + def get_obj_by_offset(self, offset) : + return self.__obj_offset[ offset ] + + def get_item_by_offset(self, offset) : + return self.__item_offset[ offset ] + + def get_string_by_offset(self, offset) : + return self.__strings_off[ offset ] + + def get_lazy_analysis(self) : + return self.lazy_analysis + + def get_vmanalysis(self) : + return self.vmanalysis_ob + + def set_vmanalysis(self, vmanalysis) : + self.vmanalysis_ob = vmanalysis + + def get_gvmanalysis(self) : + return self.gvmanalysis_ob + + def set_gvmanalysis(self, gvmanalysis) : + self.gvmanalysis_ob = gvmanalysis + + def set_decompiler(self, decompiler) : + self.decompiler_ob = decompiler + + def get_engine(self) : + return self.engine[0] + + def get_all_engine(self) : + return self.engine + + def add_type_item(self, type_item, c_item, item) : + self.__manage_item[ type_item ] = item + + self.__obj_offset[ c_item.get_off() ] = c_item + self.__item_offset[ c_item.get_offset() ] = item + + sdi = False + if type_item == "TYPE_STRING_DATA_ITEM" : + sdi = True + + if item != None : + if isinstance(item, list) : + for i in item : + goff = i.offset + self.__manage_item_off.append( goff ) + + self.__obj_offset[ i.get_off() ] = i + + if sdi == True : + self.__strings_off[ goff ] = i + else : + self.__manage_item_off.append( c_item.get_offset() ) + + def get_code(self, idx) : + try : + return self.__manage_item[ "TYPE_CODE_ITEM" ].get_code( idx ) + except KeyError : + return None + + def get_class_data_item(self, off) : + for i in self.__manage_item[ "TYPE_CLASS_DATA_ITEM" ] : + if i.get_off() == off : + return i + + bytecode.Exit( "unknown class data item @ 0x%x" % off ) + + def get_encoded_array_item(self, off) : + for i in self.__manage_item["TYPE_ENCODED_ARRAY_ITEM" ] : + if i.get_off() == off : + return i + + def get_string(self, idx) : + if idx in self.hook_strings : + return self.hook_strings[ idx ] + + try : + off = self.__manage_item[ "TYPE_STRING_ID_ITEM" ][idx].get_string_data_off() + except IndexError : + bytecode.Warning( "unknown string item @ %d" % (idx) ) + return "AG:IS: invalid string" + + try : + if self.recode_ascii_string : + return self.recode_ascii_string_meth( self.__strings_off[off].get() ) + return self.__strings_off[off].get() + except KeyError : + bytecode.Warning( "unknown string item @ 0x%x(%d)" % (off,idx) ) + return "AG:IS: invalid string" + + def get_raw_string(self, idx) : + try : + off = self.__manage_item[ "TYPE_STRING_ID_ITEM" ][idx].get_string_data_off() + except IndexError : + bytecode.Warning( "unknown string item @ %d" % (idx) ) + return "AG:IS: invalid string" + + try : + return self.__strings_off[off].get() + except KeyError : + bytecode.Warning( "unknown string item @ 0x%x(%d)" % (off,idx) ) + return "AG:IS: invalid string" + + def get_type_list(self, off) : + if off == 0 : + return "()" + + if off in self.__cached_type_list : + return self.__cached_type_list[ off ] + + for i in self.__manage_item[ "TYPE_TYPE_LIST" ] : + if i.get_type_list_off() == off : + ret = "(" + i.get_string() + ")" + self.__cached_type_list[ off ] = ret + return ret + + return None + + def get_type(self, idx) : + _type = self.__manage_item[ "TYPE_TYPE_ID_ITEM" ].get( idx ) + if _type == -1 : + return "AG:ITI: invalid type" + return self.get_string( _type ) + + def get_type_ref(self, idx) : + return self.__manage_item[ "TYPE_TYPE_ID_ITEM" ].get( idx ) + + def get_proto(self, idx) : + try : + proto = self.__cached_proto[ idx ] + except KeyError : + proto = self.__manage_item[ "TYPE_PROTO_ID_ITEM" ].get( idx ) + self.__cached_proto[ idx ] = proto + + return [ proto.get_parameters_off_value(), proto.get_return_type_idx_value() ] + + def get_field(self, idx) : + field = self.__manage_item[ "TYPE_FIELD_ID_ITEM" ].get( idx ) + return [ field.get_class_name(), field.get_type(), field.get_name() ] + + def get_field_ref(self, idx) : + return self.__manage_item[ "TYPE_FIELD_ID_ITEM" ].get( idx ) + + def get_method(self, idx) : + method = self.__manage_item[ "TYPE_METHOD_ID_ITEM" ].get( idx ) + return method.get_list() + + def get_method_ref(self, idx) : + return self.__manage_item[ "TYPE_METHOD_ID_ITEM" ].get( idx ) + + def set_hook_class_name(self, class_def, value) : + _type = self.__manage_item[ "TYPE_TYPE_ID_ITEM" ].get( class_def.get_class_idx() ) + self.set_hook_string( _type, value ) + + self.vm._delete_python_export_class( class_def ) + + class_def.reload() + + # FIXME + self.__manage_item[ "TYPE_METHOD_ID_ITEM" ].reload() + + for i in class_def.get_methods() : + i.reload() + + for i in class_def.get_fields() : + i.reload() + + self.vm._create_python_export_class( class_def ) + + def set_hook_method_name(self, encoded_method, value) : + method = self.__manage_item[ "TYPE_METHOD_ID_ITEM" ].get( encoded_method.get_method_idx() ) + self.set_hook_string( method.get_name_idx(), value ) + + class_def = self.__manage_item[ "TYPE_CLASS_DEF_ITEM" ].get_class_idx( method.get_class_idx() ) + if class_def != None : + try : + name = "METHOD_" + bytecode.FormatNameToPython( encoded_method.get_name() ) + delattr( class_def, name ) + except AttributeError: + name += "_" + bytecode.FormatDescriptorToPython( encoded_method.get_descriptor() ) + delattr( class_def, name ) + + name = "METHOD_" + bytecode.FormatNameToPython( value ) + setattr( class_def, name, encoded_method ) + + method.reload() + + def set_hook_field_name(self, encoded_field, value) : + field = self.__manage_item[ "TYPE_FIELD_ID_ITEM" ].get( encoded_field.get_field_idx() ) + self.set_hook_string( field.get_name_idx(), value ) + + class_def = self.__manage_item[ "TYPE_CLASS_DEF_ITEM" ].get_class_idx( field.get_class_idx() ) + if class_def != None : + try : + name = "FIELD_" + bytecode.FormatNameToPython( encoded_field.get_name() ) + delattr( class_def, name ) + except AttributeError: + name += "_" + bytecode.FormatDescriptorToPython( encoded_field.get_descriptor() ) + delattr( class_def, name ) + + name = "FIELD_" + bytecode.FormatNameToPython( value ) + setattr( class_def, name, encoded_field ) + + field.reload() + + + def set_hook_string(self, idx, value) : + self.hook_strings[ idx ] = value + + def get_next_offset_item(self, idx) : + for i in self.__manage_item_off : + if i > idx : + return i + return idx + + def get_debug_off(self, off) : + self.buff.set_idx( off ) + + return DebugInfoItem( self.buff, self ) + +class MapList : + """ + This class can parse the "map_list" of the dex format + """ + def __init__(self, cm, off, buff) : + self.CM = cm + + buff.set_idx( off ) + + self.offset = off + + self.size = unpack("=I", buff.read( 4 ) )[0] + + self.map_item = [] + for i in xrange(0, self.size) : + idx = buff.get_idx() + + mi = MapItem( buff, self.CM ) + self.map_item.append( mi ) + + buff.set_idx( idx + mi.get_length() ) + + c_item = mi.get_item() + if c_item == None : + mi.set_item( self ) + c_item = mi.get_item() + + self.CM.add_type_item( TYPE_MAP_ITEM[ mi.get_type() ], mi, c_item ) + + for i in self.map_item : + i.reload() + + def reload(self) : + pass + + def get_off(self) : + return self.offset + + def set_off(self, off) : + self.offset = off + + def get_item_type(self, ttype) : + """ + Get a particular item type + + :param ttype: a string which represents the desired type + + :rtype: None or the item object + """ + for i in self.map_item : + if TYPE_MAP_ITEM[ i.get_type() ] == ttype : + return i.get_item() + return None + + def show(self) : + """ + Print the MapList object + """ + bytecode._Print("MAP_LIST SIZE", self.size) + for i in self.map_item : + if i.item != self : + i.show() + + def pretty_show(self) : + """ + Print with a pretty display the MapList object + """ + bytecode._Print("MAP_LIST SIZE", self.size) + for i in self.map_item : + if i.item != self : + i.pretty_show() + + def get_obj(self) : + return [ x.get_obj() for x in self.map_item ] + + def get_raw(self) : + return pack("=I", self.size) + ''.join(x.get_raw() for x in self.map_item) + + def get_class_manager(self) : + return self.CM + + def get_length(self) : + return len(self.get_raw()) + +class XREF : + def __init__(self) : + self.items = [] + + def add(self, x, y): + self.items.append((x, y)) + +class DREF : + def __init__(self) : + self.items = [] + + def add(self, x, y): + self.items.append((x, y)) + +class DalvikVMFormat(bytecode._Bytecode) : + """ + This class can parse a classes.dex file of an Android application (APK). + + :param buff: a string which represents the classes.dex file + :param decompiler: associate a decompiler object to display the java source code + :type buff: string + :type decompiler: object + + :Example: + DalvikVMFormat( open("classes.dex", "rb").read() ) + """ + def __init__(self, buff, decompiler=None) : + super(DalvikVMFormat, self).__init__( buff ) + + self.CM = ClassManager(self) + self.CM.set_decompiler( decompiler ) + + + self._preload(buff) + self._load(buff) + + def _preload(self, buff) : + pass + + def _load(self, buff) : + self.__header = HeaderItem( 0, self, ClassManager(None) ) + + if self.__header.map_off == 0 : + bytecode.Warning( "no map list ..." ) + else : + self.map_list = MapList( self.CM, self.__header.map_off, self ) + + self.classes = self.map_list.get_item_type( "TYPE_CLASS_DEF_ITEM" ) + self.methods = self.map_list.get_item_type( "TYPE_METHOD_ID_ITEM" ) + self.fields = self.map_list.get_item_type( "TYPE_FIELD_ID_ITEM" ) + self.codes = self.map_list.get_item_type( "TYPE_CODE_ITEM" ) + self.strings = self.map_list.get_item_type( "TYPE_STRING_DATA_ITEM" ) + self.debug = self.map_list.get_item_type( "TYPE_DEBUG_INFO_ITEM" ) + self.header = self.map_list.get_item_type( "TYPE_HEADER_ITEM" ) + + self.classes_names = None + self.__cache_methods = None + self.__cached_methods_idx = None + + def get_classes_def_item(self) : + """ + This function returns the class def item + + :rtype: :class:`ClassDefItem` object + """ + return self.classes + + def get_methods_id_item(self) : + """ + This function returns the method id item + + :rtype: :class:`MethodIdItem` object + """ + return self.methods + + def get_fields_id_item(self) : + """ + This function returns the field id item + + :rtype: :class:`FieldIdItem` object + """ + return self.fields + + def get_codes_item(self) : + """ + This function returns the code item + + :rtype: :class:`CodeItem` object + """ + return self.codes + + def get_string_data_item(self) : + """ + This function returns the string data item + + :rtype: :class:`StringDataItem` object + """ + return self.strings + + def get_debug_info_item(self) : + """ + This function returns the debug info item + + :rtype: :class:`DebugInfoItem` object + """ + return self.debug + + def get_header_item(self) : + """ + This function returns the header item + + :rtype: :class:`HeaderItem` object + """ + return self.header + + def get_class_manager(self) : + """ + This function returns a ClassManager object which allow you to get + access to all index references (strings, methods, fields, ....) + + :rtype: :class:`ClassManager` object + """ + return self.CM + + def show(self) : + """ + Show the all information in the object + """ + self.map_list.show() + + def pretty_show(self) : + """ + Show (but pretty !) the all information in the object + """ + self.map_list.pretty_show() + + def save(self) : + """ + Return the dex (with the modifications) into raw format (fix checksums) + + :rtype: string + """ + l = [] + h = {} + s = {} + h_r = {} + + idx = 0 + for i in self.map_list.get_obj() : + length = 0 + + if isinstance(i, list) : + for j in i : + if isinstance(j, AnnotationsDirectoryItem) : + if idx % 4 != 0 : + idx = idx + (idx % 4) + + l.append( j ) + + c_length = j.get_length() + h[ j ] = idx + length + h_r[ idx + length ] = j + s[ idx + length ] = c_length + + length += c_length + + else : + if isinstance(i, MapList) : + if idx % 4 != 0 : + idx = idx + (idx % 4) + + l.append( i ) + h[ i ] = idx + h_r[ idx ] = i + + length = i.get_length() + + s[ idx ] = length + + idx += length + + self.header.file_size = idx + + last_idx = 0 + for i in l : + idx = h[ i ] + i.set_off( h[ i ] ) + +# print i, hex(h[ i ]) + + last_idx = idx + s[ idx ] + + last_idx = 0 + buff = "" + for i in l : + idx = h[ i ] + + if idx != last_idx : + debug( "Adjust alignment @%x with 00 %x" % (idx, idx - last_idx) ) + buff += "\x00" * (idx - last_idx) + + buff += i.get_raw() + last_idx = idx + s[ idx ] + + debug( "GLOBAL SIZE %d" % len(buff)) + + return self.fix_checksums(buff) + + def fix_checksums(self, buff) : + """ + Fix a dex format buffer by setting all checksums + + :rtype: string + """ + import zlib, hashlib + signature = hashlib.sha1(buff[32:]).digest() + + buff = buff[:12] + signature + buff[32:] + checksum = zlib.adler32(buff[12:]) + buff = buff[:8] + pack("=i", checksum) + buff[12:] + + + debug( "NEW SIGNATURE %s" % repr(signature) ) + debug( "NEW CHECKSUM %x" % checksum ) + + return buff + + def get_cm_field(self, idx) : + """ + Get a specific field by using an index + + :param idx: index of the field + :type idx: int + """ + return self.CM.get_field(idx) + + def get_cm_method(self, idx) : + """ + Get a specific method by using an index + + :param idx: index of the method + :type idx: int + """ + return self.CM.get_method(idx) + + def get_cm_string(self, idx) : + """ + Get a specific string by using an index + + :param idx: index of the string + :type idx: int + """ + return self.CM.get_raw_string( idx ) + + def get_cm_type(self, idx) : + """ + Get a specific type by using an index + + :param idx: index of the type + :type idx: int + """ + return self.CM.get_type( idx ) + + def get_classes_names(self) : + """ + Return the names of classes + + :rtype: a list of string + """ + if self.classes_names == None : + self.classes_names = [ i.get_name() for i in self.classes.class_def ] + return self.classes_names + + def get_classes(self) : + """ + Return all classes + + :rtype: a list of :class:`ClassDefItem` objects + """ + return self.classes.class_def + + def get_method(self, name) : + """ + Return a list all methods which corresponds to the regexp + + :param name: the name of the method (a python regexp) + + :rtype: a list with all :class:`EncodedMethod` objects + """ + prog = re.compile(name) + l = [] + for i in self.classes.class_def : + for j in i.get_methods() : + if prog.match( j.get_name() ) : + l.append( j ) + return l + + def get_field(self, name) : + """ + Return a list all fields which corresponds to the regexp + + :param name: the name of the field (a python regexp) + + :rtype: a list with all :class:`EncodedField` objects + """ + prog = re.compile(name) + l = [] + for i in self.classes.class_def : + for j in i.get_fields() : + if prog.match( j.get_name() ) : + l.append( j ) + return l + + def get_all_fields(self) : + """ + Return a list of field items + + :rtype: a list of :class:`FieldItem` objects + """ + try : + return self.fields.gets() + except AttributeError : + return [] + + def get_fields(self) : + """ + Return all field objects + + :rtype: a list of :class:`EncodedField` objects + """ + l = [] + for i in self.classes.class_def : + for j in i.get_fields() : + l.append( j ) + return l + + + def get_methods(self) : + """ + Return all method objects + + :rtype: a list of :class:`EncodedMethod` objects + """ + l = [] + for i in self.classes.class_def : + for j in i.get_methods() : + l.append( j ) + return l + + def get_len_methods(self) : + """ + Return the number of methods + + :rtype: int + """ + return len( self.get_methods() ) + + def get_method_by_idx(self, idx) : + """ + Return a specific method by using an index + :param idx: the index of the method + :type idx: int + + :rtype: None or an :class:`EncodedMethod` object + """ + if self.__cached_methods_idx == None : + self.__cached_methods_idx = {} + for i in self.classes.class_def : + for j in i.get_methods() : + self.__cached_methods_idx[ j.get_method_idx() ] = j + + try : + return self.__cached_methods_idx[ idx ] + except KeyError : + return None + + def get_method_descriptor(self, class_name, method_name, descriptor) : + """ + Return the specific method + + :param class_name: the class name of the method + :type class_name: string + :param method_name: the name of the method + :type method_name: string + :param descriptor: the descriptor of the method + :type descriptor: string + + :rtype: None or a :class:`EncodedMethod` object + """ + key = class_name + method_name + descriptor + + if self.__cache_methods == None : + self.__cache_methods = {} + for i in self.classes.class_def : + for j in i.get_methods() : + self.__cache_methods[ j.get_class_name() + j.get_name() + j.get_descriptor() ] = j + + try : + return self.__cache_methods[ key ] + except KeyError : + return None + + def get_methods_class(self, class_name) : + """ + Return all methods of a specific class + + :param class_name: the class name + :type class_name: string + + :rtype: a list with :class:`EncodedMethod` objects + """ + l = [] + for i in self.classes.class_def : + for j in i.get_methods() : + if class_name == j.get_class_name() : + l.append( j ) + + return l + + def get_fields_class(self, class_name) : + """ + Return all fields of a specific class + + :param class_name: the class name + :type class_name: string + + :rtype: a list with :class:`EncodedField` objects + """ + l = [] + for i in self.classes.class_def : + for j in i.get_fields() : + if class_name == j.get_class_name() : + l.append( j ) + + return l + + def get_field_descriptor(self, class_name, field_name, descriptor) : + """ + Return the specific field + + :param class_name: the class name of the field + :type class_name: string + :param field_name: the name of the field + :type field_name: string + :param descriptor: the descriptor of the field + :type descriptor: string + + :rtype: None or a :class:`EncodedField` object + """ + for i in self.classes.class_def : + if class_name == i.get_name() : + for j in i.get_fields() : + if field_name == j.get_name() and descriptor == j.get_descriptor() : + return j + return None + + def get_strings(self) : + """ + Return all strings + + :rtype: a list with all strings used in the format (types, names ...) + """ + return [i.get() for i in self.strings] + + def get_regex_strings(self, regular_expressions) : + """ + Return all target strings matched the regex + + :param regular_expressions: the python regex + :type regular_expressions: string + + :rtype: a list of strings matching the regex expression + """ + str_list = [] + if regular_expressions.count is None : + return None + for i in self.get_strings() : + if re.match(regular_expressions, i) : + str_list.append(i) + return str_list + + + def get_format_type(self) : + """ + Return the type + + :rtype: a string + """ + return "DEX" + + def create_xref(self, python_export=True) : + """ + Create XREF for this object + + :param python_export (boolean): export xref in each method + """ + gvm = self.CM.get_gvmanalysis() + + for _class in self.get_classes() : + for method in _class.get_methods() : + method.XREFfrom = XREF() + method.XREFto = XREF() + + key = "%s %s %s" % (method.get_class_name(), method.get_name(), method.get_descriptor()) + + if key in gvm.nodes : + for i in gvm.G.predecessors( gvm.nodes[ key ].id ) : + xref = gvm.nodes_id[ i ] + xref_meth = self.get_method_descriptor( xref.class_name, xref.method_name, xref.descriptor) + if xref_meth != None : + name = bytecode.FormatClassToPython( xref_meth.get_class_name() ) + "__" + \ + bytecode.FormatNameToPython( xref_meth.get_name() ) + "__" + \ + bytecode.FormatDescriptorToPython( xref_meth.get_descriptor() ) + + if python_export == True : + setattr( method.XREFfrom, name, xref_meth ) + method.XREFfrom.add( xref_meth, xref.edges[ gvm.nodes[ key ] ] ) + + for i in gvm.G.successors( gvm.nodes[ key ].id ) : + xref = gvm.nodes_id[ i ] + xref_meth = self.get_method_descriptor( xref.class_name, xref.method_name, xref.descriptor) + if xref_meth != None : + name = bytecode.FormatClassToPython( xref_meth.get_class_name() ) + "__" + \ + bytecode.FormatNameToPython( xref_meth.get_name() ) + "__" + \ + bytecode.FormatDescriptorToPython( xref_meth.get_descriptor() ) + + if python_export == True : + setattr( method.XREFto, name, xref_meth ) + method.XREFto.add( xref_meth, gvm.nodes[ key ].edges[ xref ] ) + + def create_dref(self, python_export=True) : + """ + Create DREF for this object + + :param python_export (boolean): export dref in each field + """ + vmx = self.CM.get_vmanalysis() + + for _class in self.get_classes() : + for field in _class.get_fields() : + field.DREFr = DREF() + field.DREFw = DREF() + + paths = vmx.tainted_variables.get_field( field.get_class_name(), field.get_name(), field.get_descriptor() ) + + if paths != None : + access = {} + access["R"] = {} + access["W"] = {} + + for path in paths.get_paths() : + access_val, idx = path[0] + m_idx = path[1] + + if access_val == 'R' : + dref_meth = self.get_method_by_idx( m_idx ) + name = bytecode.FormatClassToPython( dref_meth.get_class_name() ) + "__" + \ + bytecode.FormatNameToPython( dref_meth.get_name() ) + "__" + \ + bytecode.FormatDescriptorToPython( dref_meth.get_descriptor() ) + + if python_export == True : + setattr( field.DREFr, name, dref_meth ) + + try : + access["R"][ dref_meth ].append( idx ) + except KeyError : + access["R"][ dref_meth ] = [] + access["R"][ dref_meth ].append( idx ) + + else : + dref_meth = self.get_method_by_idx( m_idx ) + name = bytecode.FormatClassToPython( dref_meth.get_class_name() ) + "__" + \ + bytecode.FormatNameToPython( dref_meth.get_name() ) + "__" + \ + bytecode.FormatDescriptorToPython( dref_meth.get_descriptor() ) + + if python_export == True : + setattr( field.DREFw, name, dref_meth ) + + try : + access["W"][ dref_meth ].append( idx ) + except KeyError : + access["W"][ dref_meth ] = [] + access["W"][ dref_meth ].append( idx ) + + for i in access["R"] : + field.DREFr.add( i, access["R"][i] ) + for i in access["W"] : + field.DREFw.add( i, access["W"][i] ) + + def create_python_export(self) : + """ + Export classes/methods/fields' names in the python namespace + """ + for _class in self.get_classes() : + self._create_python_export_class(_class) + + def _delete_python_export_class(self, _class) : + self._create_python_export_class( _class, True) + + def _create_python_export_class(self, _class, delete=False) : + if _class != None : + ### Class + name = "CLASS_" + bytecode.FormatClassToPython( _class.get_name() ) + if delete : + delattr( self, name ) + return + else : + setattr( self, name, _class ) + + ### Methods + m = {} + for method in _class.get_methods() : + if method.get_name() not in m : + m[ method.get_name() ] = [] + m[ method.get_name() ].append( method ) + + for i in m : + if len(m[i]) == 1 : + j = m[i][0] + name = "METHOD_" + bytecode.FormatNameToPython( j.get_name() ) + setattr( _class, name, j ) + else : + for j in m[i] : + name = "METHOD_" + bytecode.FormatNameToPython( j.get_name() ) + "_" + bytecode.FormatDescriptorToPython( j.get_descriptor() ) + setattr( _class, name, j ) + + ### Fields + f = {} + for field in _class.get_fields() : + if field.get_name() not in f : + f[ field.get_name() ] = [] + f[ field.get_name() ].append( field ) + + for i in f : + if len(f[i]) == 1 : + j = f[i][0] + name = "FIELD_" + bytecode.FormatNameToPython( j.get_name() ) + setattr( _class, name, j ) + else : + for j in f[i] : + name = "FIELD_" + bytecode.FormatNameToPython( j.get_name() ) + "_" + bytecode.FormatDescriptorToPython( j.get_descriptor() ) + setattr( _class, name, j ) + + + def dotbuff(self, ins, idx) : + return dot_buff(ins, idx) + + def get_BRANCH_DVM_OPCODES(self) : + return BRANCH_DVM_OPCODES + + def get_determineNext(self) : + return determineNext + + def get_determineException(self) : + return determineException + + def get_DVM_TOSTRING(self) : + return DVM_TOSTRING() + + def set_decompiler(self, decompiler) : + self.CM.set_decompiler( decompiler ) + + def set_vmanalysis(self, vmanalysis) : + self.CM.set_vmanalysis( vmanalysis ) + + def set_gvmanalysis(self, gvmanalysis) : + self.CM.set_gvmanalysis( gvmanalysis ) + +class OdexHeaderItem : + """ + This class can parse the odex header + + :param buff: a Buff object string which represents the odex dependencies + """ + def __init__(self, buff) : + buff.set_idx(8) + + self.dex_offset = unpack("=I", buff.read(4))[0] + self.dex_length = unpack("=I", buff.read(4))[0] + self.deps_offset = unpack("=I", buff.read(4))[0] + self.deps_length = unpack("=I", buff.read(4))[0] + self.aux_offset = unpack("=I", buff.read(4))[0] + self.aux_length = unpack("=I", buff.read(4))[0] + self.flags = unpack("=I", buff.read(4))[0] + self.padding = unpack("=I", buff.read(4))[0] + + def show(self) : + print "dex_offset:%x dex_length:%x deps_offset:%x deps_length:%x aux_offset:%x aux_length:%x flags:%x" % (self.dex_offset, + self.dex_length, + self.deps_offset, + self.deps_length, + self.aux_offset, + self.aux_length, + self.flags) + +class OdexDependencies : + """ + This class can parse the odex dependencies + + :param buff: a Buff object string which represents the odex dependencies + """ + def __init__(self, buff) : + self.modification_time = unpack("=I", buff.read(4))[0] + self.crc = unpack("=I", buff.read(4))[0] + self.dalvik_build = unpack("=I", buff.read(4))[0] + self.dependency_count = unpack("=I", buff.read(4))[0] + self.dependencies = [] + self.dependency_checksums = [] + + for i in range(0, self.dependency_count) : + string_length = unpack("=I", buff.read(4))[0] + name_dependency = buff.read( string_length )[:-1] + self.dependencies.append( name_dependency ) + self.dependency_checksums.append( buff.read(20) ) + + def get_dependencies(self) : + """ + Return the list of dependencies + + :rtype: a list of strings + """ + return self.dependencies + +class DalvikOdexVMFormat(DalvikVMFormat) : + """ + This class can parse an odex file + + :param buff: a string which represents the odex file + :param decompiler: associate a decompiler object to display the java source code + :type buff: string + :type decompiler: object + + :Example: + DalvikOdexVMFormat( open("classes.odex", "rb").read() ) + """ + def _preload(self, buff) : + magic = buff[:8] + if magic == ODEX_FILE_MAGIC_35 or magic == ODEX_FILE_MAGIC_36 : + self.odex_header = OdexHeaderItem( self ) + + + self.set_idx( self.odex_header.deps_offset ) + self.dependencies = OdexDependencies( self ) + + + self.set_idx( self.odex_header.dex_offset ) + self.set_buff( self.read( self.odex_header.dex_length ) ) + self.set_idx(0) + + def get_dependencies(self) : + """ + Return the odex dependencies object + + :rtype: an OdexDependencies object + """ + return self.dependencies + + def get_format_type(self) : + """ + Return the type + + :rtype: a string + """ + return "ODEX" diff --git a/APIMonitor/androguard/core/bytecodes/dvm_permissions.py b/APIMonitor/androguard/core/bytecodes/dvm_permissions.py new file mode 100644 index 0000000..fa16e75 --- /dev/null +++ b/APIMonitor/androguard/core/bytecodes/dvm_permissions.py @@ -0,0 +1,181 @@ + +# Androguard is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Androguard 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 Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with Androguard. If not, see . + +# frameworks/base/core/res/AndroidManifest.xml +########################################## PERMISSIONS ######################################################## +DVM_PERMISSIONS = { + "MANIFEST_PERMISSION" : { + "SEND_SMS" : [ "dangerous" , "send SMS messages" , "Allows application to send SMS messages. Malicious applications may cost you money by sending messages without your confirmation." ], + "SEND_SMS_NO_CONFIRMATION" : [ "dangerous", "send SMS messages", "send SMS messages via the Messaging app with no user input or confirmation" ], + "CALL_PHONE" : [ "dangerous" , "directly call phone numbers" , "Allows the application to call phone numbers without your intervention. Malicious applications may cause unexpected calls on your phone bill. Note that this does not allow the application to call emergency numbers." ], + "RECEIVE_SMS" : [ "dangerous" , "receive SMS" , "Allows application to receive and process SMS messages. Malicious applications may monitor your messages or delete them without showing them to you." ], + "RECEIVE_MMS" : [ "dangerous" , "receive MMS" , "Allows application to receive and process MMS messages. Malicious applications may monitor your messages or delete them without showing them to you." ], + "READ_SMS" : [ "dangerous" , "read SMS or MMS" , "Allows application to read SMS messages stored on your phone or SIM card. Malicious applications may read your confidential messages." ], + "WRITE_SMS" : [ "dangerous" , "edit SMS or MMS" , "Allows application to write to SMS messages stored on your phone or SIM card. Malicious applications may delete your messages." ], + "RECEIVE_WAP_PUSH" : [ "dangerous" , "receive WAP" , "Allows application to receive and process WAP messages. Malicious applications may monitor your messages or delete them without showing them to you." ], + "READ_CONTACTS" : [ "dangerous" , "read contact data" , "Allows an application to read all of the contact (address) data stored on your phone. Malicious applications can use this to send your data to other people." ], + "WRITE_CONTACTS" : [ "dangerous" , "write contact data" , "Allows an application to modify the contact (address) data stored on your phone. Malicious applications can use this to erase or modify your contact data." ], + "READ_PROFILE" : [ "dangerous", "read the user's personal profile data", "Allows an application to read the user's personal profile data."], + "WRITE_PROFILE" : [ "dangerous", "write the user's personal profile data", "Allows an application to write (but not read) the user's personal profile data."], + "READ_SOCIAL_STREAM" : [ "dangerous", "read from the user's social stream", "Allows an application to read from the user's social stream." ], + "WRITE_SOCIAL_STREAM" : [ "dangerous", "write the user's social stream", "Allows an application to write (but not read) the user's social stream data." ], + "READ_CALENDAR" : [ "dangerous" , "read calendar events" , "Allows an application to read all of the calendar events stored on your phone. Malicious applications can use this to send your calendar events to other people." ], + + "WRITE_CALENDAR" : [ "dangerous" , "add or modify calendar events and send emails to guests" , "Allows an application to add or change the events on your calendar, which may send emails to guests. Malicious applications can use this to erase or modify your calendar events or to send emails to guests." ], + "READ_USER_DICTIONARY" : [ "dangerous" , "read user-defined dictionary" , "Allows an application to read any private words, names and phrases that the user may have stored in the user dictionary." ], + "WRITE_USER_DICTIONARY" : [ "normal" , "write to user-defined dictionary" , "Allows an application to write new words into the user dictionary." ], + "READ_HISTORY_BOOKMARKS" : [ "dangerous" , "read Browser\'s history and bookmarks" , "Allows the application to read all the URLs that the browser has visited and all of the browser\'s bookmarks." ], + "WRITE_HISTORY_BOOKMARKS" : [ "dangerous" , "write Browser\'s history and bookmarks" , "Allows an application to modify the browser\'s history or bookmarks stored on your phone. Malicious applications can use this to erase or modify your browser\'s data." ], + "SET_ALARM" : [ "normal" , "set alarm in alarm clock" , "Allows the application to set an alarm in an installed alarm clock application. Some alarm clock applications may not implement this feature." ], + "ACCESS_FINE_LOCATION" : [ "dangerous" , "fine (GPS) location" , "Access fine location sources, such as the Global Positioning System on the phone, where available. Malicious applications can use this to determine where you are and may consume additional battery power." ], + "ACCESS_COARSE_LOCATION" : [ "dangerous" , "coarse (network-based) location" , "Access coarse location sources, such as the mobile network database, to determine an approximate phone location, where available. Malicious applications can use this to determine approximately where you are." ], + "ACCESS_MOCK_LOCATION" : [ "dangerous" , "mock location sources for testing" , "Create mock location sources for testing. Malicious applications can use this to override the location and/or status returned by real-location sources such as GPS or Network providers." ], + "ACCESS_LOCATION_EXTRA_COMMANDS" : [ "normal" , "access extra location provider commands" , "Access extra location provider commands. Malicious applications could use this to interfere with the operation of the GPS or other location sources." ], + "INSTALL_LOCATION_PROVIDER" : [ "signatureOrSystem" , "permission to install a location provider" , "Create mock location sources for testing. Malicious applications can use this to override the location and/or status returned by real-location sources such as GPS or Network providers, or monitor and report your location to an external source." ], + "INTERNET" : [ "dangerous" , "full Internet access" , "Allows an application to create network sockets." ], + "ACCESS_NETWORK_STATE" : [ "normal" , "view network status" , "Allows an application to view the status of all networks." ], + "ACCESS_WIFI_STATE" : [ "normal" , "view Wi-Fi status" , "Allows an application to view the information about the status of Wi-Fi." ], + "BLUETOOTH" : [ "dangerous" , "create Bluetooth connections" , "Allows an application to view configuration of the local Bluetooth phone and to make and accept connections with paired devices." ], + "NFC" : [ "dangerous" , "control Near-Field Communication" , "Allows an application to communicate with Near-Field Communication (NFC) tags, cards and readers." ], + "USE_SIP" : [ "dangerous" , "make/receive Internet calls" , "Allows an application to use the SIP service to make/receive Internet calls." ], + "ACCOUNT_MANAGER" : [ "signature" , "act as the Account Manager Service" , "Allows an application to make calls to Account Authenticators" ], + "GET_ACCOUNTS" : [ "normal" , "discover known accounts" , "Allows an application to access the list of accounts known by the phone." ], + "AUTHENTICATE_ACCOUNTS" : [ "dangerous" , "act as an account authenticator" , "Allows an application to use the account authenticator capabilities of the Account Manager, including creating accounts as well as obtaining and setting their passwords." ], + "USE_CREDENTIALS" : [ "dangerous" , "use the authentication credentials of an account" , "Allows an application to request authentication tokens." ], + "MANAGE_ACCOUNTS" : [ "dangerous" , "manage the accounts list" , "Allows an application to perform operations like adding and removing accounts and deleting their password." ], + "MODIFY_AUDIO_SETTINGS" : [ "dangerous" , "change your audio settings" , "Allows application to modify global audio settings, such as volume and routing." ], + "RECORD_AUDIO" : [ "dangerous" , "record audio" , "Allows application to access the audio record path." ], + "CAMERA" : [ "dangerous" , "take pictures and videos" , "Allows application to take pictures and videos with the camera. This allows the application to collect images that the camera is seeing at any time." ], + "VIBRATE" : [ "normal" , "control vibrator" , "Allows the application to control the vibrator." ], + "FLASHLIGHT" : [ "normal" , "control flashlight" , "Allows the application to control the flashlight." ], + "ACCESS_USB" : [ "signatureOrSystem" , "access USB devices" , "Allows the application to access USB devices." ], + "HARDWARE_TEST" : [ "signature" , "test hardware" , "Allows the application to control various peripherals for the purpose of hardware testing." ], + "PROCESS_OUTGOING_CALLS" : [ "dangerous" , "intercept outgoing calls" , "Allows application to process outgoing calls and change the number to be dialled. Malicious applications may monitor, redirect or prevent outgoing calls." ], + "MODIFY_PHONE_STATE" : [ "signatureOrSystem" , "modify phone status" , "Allows the application to control the phone features of the device. An application with this permission can switch networks, turn the phone radio on and off and the like, without ever notifying you." ], + "READ_PHONE_STATE" : [ "dangerous" , "read phone state and identity" , "Allows the application to access the phone features of the device. An application with this permission can determine the phone number and serial number of this phone, whether a call is active, the number that call is connected to and so on." ], + "WRITE_EXTERNAL_STORAGE" : [ "dangerous" , "modify/delete SD card contents" , "Allows an application to write to the SD card." ], + "WRITE_SETTINGS" : [ "dangerous" , "modify global system settings" , "Allows an application to modify the system\'s settings data. Malicious applications can corrupt your system\'s configuration." ], + "WRITE_SECURE_SETTINGS" : [ "signatureOrSystem" , "modify secure system settings" , "Allows an application to modify the system\'s secure settings data. Not for use by normal applications." ], + "WRITE_GSERVICES" : [ "signatureOrSystem" , "modify the Google services map" , "Allows an application to modify the Google services map. Not for use by normal applications." ], + "EXPAND_STATUS_BAR" : [ "normal" , "expand/collapse status bar" , "Allows application to expand or collapse the status bar." ], + "GET_TASKS" : [ "dangerous" , "retrieve running applications" , "Allows application to retrieve information about currently and recently running tasks. May allow malicious applications to discover private information about other applications." ], + "REORDER_TASKS" : [ "dangerous" , "reorder applications running" , "Allows an application to move tasks to the foreground and background. Malicious applications can force themselves to the front without your control." ], + "CHANGE_CONFIGURATION" : [ "dangerous" , "change your UI settings" , "Allows an application to change the current configuration, such as the locale or overall font size." ], + "RESTART_PACKAGES" : [ "normal" , "kill background processes" , "Allows an application to kill background processes of other applications, even if memory is not low." ], + "KILL_BACKGROUND_PROCESSES" : [ "normal" , "kill background processes" , "Allows an application to kill background processes of other applications, even if memory is not low." ], + "FORCE_STOP_PACKAGES" : [ "signature" , "force-stop other applications" , "Allows an application to stop other applications forcibly." ], + "DUMP" : [ "signatureOrSystem" , "retrieve system internal status" , "Allows application to retrieve internal status of the system. Malicious applications may retrieve a wide variety of private and secure information that they should never normally need." ], + "SYSTEM_ALERT_WINDOW" : [ "dangerous" , "display system-level alerts" , "Allows an application to show system-alert windows. Malicious applications can take over the entire screen of the phone." ], + "SET_ANIMATION_SCALE" : [ "dangerous" , "modify global animation speed" , "Allows an application to change the global animation speed (faster or slower animations) at any time." ], + "PERSISTENT_ACTIVITY" : [ "dangerous" , "make application always run" , "Allows an application to make parts of itself persistent, so that the system can\'t use it for other applications." ], + "GET_PACKAGE_SIZE" : [ "normal" , "measure application storage space" , "Allows an application to retrieve its code, data and cache sizes" ], + "SET_PREFERRED_APPLICATIONS" : [ "signature" , "set preferred applications" , "Allows an application to modify your preferred applications. This can allow malicious applications to silently change the applications that are run, spoofing your existing applications to collect private data from you." ], + "RECEIVE_BOOT_COMPLETED" : [ "normal" , "automatically start at boot" , "Allows an application to start itself as soon as the system has finished booting. This can make it take longer to start the phone and allow the application to slow down the overall phone by always running." ], + "BROADCAST_STICKY" : [ "normal" , "send sticky broadcast" , "Allows an application to send sticky broadcasts, which remain after the broadcast ends. Malicious applications can make the phone slow or unstable by causing it to use too much memory." ], + "WAKE_LOCK" : [ "dangerous" , "prevent phone from sleeping" , "Allows an application to prevent the phone from going to sleep." ], + "SET_WALLPAPER" : [ "normal" , "set wallpaper" , "Allows the application to set the system wallpaper." ], + "SET_WALLPAPER_HINTS" : [ "normal" , "set wallpaper size hints" , "Allows the application to set the system wallpaper size hints." ], + "SET_TIME" : [ "signatureOrSystem" , "set time" , "Allows an application to change the phone\'s clock time." ], + "SET_TIME_ZONE" : [ "dangerous" , "set time zone" , "Allows an application to change the phone\'s time zone." ], + "MOUNT_UNMOUNT_FILESYSTEMS" : [ "dangerous" , "mount and unmount file systems" , "Allows the application to mount and unmount file systems for removable storage." ], + "MOUNT_FORMAT_FILESYSTEMS" : [ "dangerous" , "format external storage" , "Allows the application to format removable storage." ], + "ASEC_ACCESS" : [ "signature" , "get information on internal storage" , "Allows the application to get information on internal storage." ], + "ASEC_CREATE" : [ "signature" , "create internal storage" , "Allows the application to create internal storage." ], + "ASEC_DESTROY" : [ "signature" , "destroy internal storage" , "Allows the application to destroy internal storage." ], + "ASEC_MOUNT_UNMOUNT" : [ "signature" , "mount/unmount internal storage" , "Allows the application to mount/unmount internal storage." ], + "ASEC_RENAME" : [ "signature" , "rename internal storage" , "Allows the application to rename internal storage." ], + "DISABLE_KEYGUARD" : [ "dangerous" , "disable key lock" , "Allows an application to disable the key lock and any associated password security. A legitimate example of this is the phone disabling the key lock when receiving an incoming phone call, then re-enabling the key lock when the call is finished." ], + "READ_SYNC_SETTINGS" : [ "normal" , "read sync settings" , "Allows an application to read the sync settings, such as whether sync is enabled for Contacts." ], + "WRITE_SYNC_SETTINGS" : [ "dangerous" , "write sync settings" , "Allows an application to modify the sync settings, such as whether sync is enabled for Contacts." ], + "READ_SYNC_STATS" : [ "normal" , "read sync statistics" , "Allows an application to read the sync stats; e.g. the history of syncs that have occurred." ], + "WRITE_APN_SETTINGS" : [ "dangerous" , "write Access Point Name settings" , "Allows an application to modify the APN settings, such as Proxy and Port of any APN." ], + "SUBSCRIBED_FEEDS_READ" : [ "normal" , "read subscribed feeds" , "Allows an application to receive details about the currently synced feeds." ], + "SUBSCRIBED_FEEDS_WRITE" : [ "dangerous" , "write subscribed feeds" , "Allows an application to modify your currently synced feeds. This could allow a malicious application to change your synced feeds." ], + "CHANGE_NETWORK_STATE" : [ "dangerous" , "change network connectivity" , "Allows an application to change the state of network connectivity." ], + "CHANGE_WIFI_STATE" : [ "dangerous" , "change Wi-Fi status" , "Allows an application to connect to and disconnect from Wi-Fi access points and to make changes to configured Wi-Fi networks." ], + "CHANGE_WIFI_MULTICAST_STATE" : [ "dangerous" , "allow Wi-Fi Multicast reception" , "Allows an application to receive packets not directly addressed to your device. This can be useful when discovering services offered nearby. It uses more power than the non-multicast mode." ], + "BLUETOOTH_ADMIN" : [ "dangerous" , "bluetooth administration" , "Allows an application to configure the local Bluetooth phone and to discover and pair with remote devices." ], + "CLEAR_APP_CACHE" : [ "dangerous" , "delete all application cache data" , "Allows an application to free phone storage by deleting files in application cache directory. Access is usually very restricted to system process." ], + "READ_LOGS" : [ "dangerous" , "read sensitive log data" , "Allows an application to read from the system\'s various log files. This allows it to discover general information about what you are doing with the phone, potentially including personal or private information." ], + "SET_DEBUG_APP" : [ "dangerous" , "enable application debugging" , "Allows an application to turn on debugging for another application. Malicious applications can use this to kill other applications." ], + "SET_PROCESS_LIMIT" : [ "dangerous" , "limit number of running processes" , "Allows an application to control the maximum number of processes that will run. Never needed for normal applications." ], + "SET_ALWAYS_FINISH" : [ "dangerous" , "make all background applications close" , "Allows an application to control whether activities are always finished as soon as they go to the background. Never needed for normal applications." ], + "SIGNAL_PERSISTENT_PROCESSES" : [ "dangerous" , "send Linux signals to applications" , "Allows application to request that the supplied signal be sent to all persistent processes." ], + "DIAGNOSTIC" : [ "signature" , "read/write to resources owned by diag" , "Allows an application to read and write to any resource owned by the diag group; for example, files in /dev. This could potentially affect system stability and security. This should ONLY be used for hardware-specific diagnostics by the manufacturer or operator." ], + "STATUS_BAR" : [ "signatureOrSystem" , "disable or modify status bar" , "Allows application to disable the status bar or add and remove system icons." ], + "STATUS_BAR_SERVICE" : [ "signature" , "status bar" , "Allows the application to be the status bar." ], + "FORCE_BACK" : [ "signature" , "force application to close" , "Allows an application to force any activity that is in the foreground to close and go back. Should never be needed for normal applications." ], + "UPDATE_DEVICE_STATS" : [ "signatureOrSystem" , "modify battery statistics" , "Allows the modification of collected battery statistics. Not for use by normal applications." ], + "INTERNAL_SYSTEM_WINDOW" : [ "signature" , "display unauthorised windows" , "Allows the creation of windows that are intended to be used by the internal system user interface. Not for use by normal applications." ], + "MANAGE_APP_TOKENS" : [ "signature" , "manage application tokens" , "Allows applications to create and manage their own tokens, bypassing their normal Z-ordering. Should never be needed for normal applications." ], + "INJECT_EVENTS" : [ "signature" , "press keys and control buttons" , "Allows an application to deliver its own input events (key presses, etc.) to other applications. Malicious applications can use this to take over the phone." ], + "SET_ACTIVITY_WATCHER" : [ "signature" , "monitor and control all application launching" , "Allows an application to monitor and control how the system launches activities. Malicious applications may compromise the system completely. This permission is needed only for development, never for normal phone usage." ], + "SHUTDOWN" : [ "signature" , "partial shutdown" , "Puts the activity manager into a shut-down state. Does not perform a complete shut down." ], + "STOP_APP_SWITCHES" : [ "signature" , "prevent app switches" , "Prevents the user from switching to another application." ], + "READ_INPUT_STATE" : [ "signature" , "record what you type and actions that you take" , "Allows applications to watch the keys that you press even when interacting with another application (such as entering a password). Should never be needed for normal applications." ], + "BIND_INPUT_METHOD" : [ "signature" , "bind to an input method" , "Allows the holder to bind to the top-level interface of an input method. Should never be needed for normal applications." ], + "BIND_WALLPAPER" : [ "signatureOrSystem" , "bind to wallpaper" , "Allows the holder to bind to the top-level interface of wallpaper. Should never be needed for normal applications." ], + "BIND_DEVICE_ADMIN" : [ "signature" , "interact with device admin" , "Allows the holder to send intents to a device administrator. Should never be needed for normal applications." ], + "SET_ORIENTATION" : [ "signature" , "change screen orientation" , "Allows an application to change the rotation of the screen at any time. Should never be needed for normal applications." ], + "INSTALL_PACKAGES" : [ "signatureOrSystem" , "directly install applications" , "Allows an application to install new or updated Android packages. Malicious applications can use this to add new applications with arbitrarily powerful permissions." ], + "CLEAR_APP_USER_DATA" : [ "signature" , "delete other applications\' data" , "Allows an application to clear user data." ], + "DELETE_CACHE_FILES" : [ "signatureOrSystem" , "delete other applications\' caches" , "Allows an application to delete cache files." ], + "DELETE_PACKAGES" : [ "signatureOrSystem" , "delete applications" , "Allows an application to delete Android packages. Malicious applications can use this to delete important applications." ], + "MOVE_PACKAGE" : [ "signatureOrSystem" , "Move application resources" , "Allows an application to move application resources from internal to external media and vice versa." ], + "CHANGE_COMPONENT_ENABLED_STATE" : [ "signatureOrSystem" , "enable or disable application components" , "Allows an application to change whether or not a component of another application is enabled. Malicious applications can use this to disable important phone capabilities. It is important to be careful with permission, as it is possible to bring application components into an unusable, inconsistent or unstable state." ], + "ACCESS_SURFACE_FLINGER" : [ "signature" , "access SurfaceFlinger" , "Allows application to use SurfaceFlinger low-level features." ], + "READ_FRAME_BUFFER" : [ "signature" , "read frame buffer" , "Allows application to read the content of the frame buffer." ], + "BRICK" : [ "signature" , "permanently disable phone" , "Allows the application to disable the entire phone permanently. This is very dangerous." ], + "REBOOT" : [ "signatureOrSystem" , "force phone reboot" , "Allows the application to force the phone to reboot." ], + "DEVICE_POWER" : [ "signature" , "turn phone on or off" , "Allows the application to turn the phone on or off." ], + "FACTORY_TEST" : [ "signature" , "run in factory test mode" , "Run as a low-level manufacturer test, allowing complete access to the phone hardware. Only available when a phone is running in manufacturer test mode." ], + "BROADCAST_PACKAGE_REMOVED" : [ "signature" , "send package removed broadcast" , "Allows an application to broadcast a notification that an application package has been removed. Malicious applications may use this to kill any other application running." ], + "BROADCAST_SMS" : [ "signature" , "send SMS-received broadcast" , "Allows an application to broadcast a notification that an SMS message has been received. Malicious applications may use this to forge incoming SMS messages." ], + "BROADCAST_WAP_PUSH" : [ "signature" , "send WAP-PUSH-received broadcast" , "Allows an application to broadcast a notification that a WAP-PUSH message has been received. Malicious applications may use this to forge MMS message receipt or to replace the content of any web page silently with malicious variants." ], + "MASTER_CLEAR" : [ "signatureOrSystem" , "reset system to factory defaults" , "Allows an application to completely reset the system to its factory settings, erasing all data, configuration and installed applications." ], + "CALL_PRIVILEGED" : [ "signatureOrSystem" , "directly call any phone numbers" , "Allows the application to call any phone number, including emergency numbers, without your intervention. Malicious applications may place unnecessary and illegal calls to emergency services." ], + "PERFORM_CDMA_PROVISIONING" : [ "signatureOrSystem" , "directly start CDMA phone setup" , "Allows the application to start CDMA provisioning. Malicious applications may start CDMA provisioning unnecessarily" ], + "CONTROL_LOCATION_UPDATES" : [ "signatureOrSystem" , "control location update notifications" , "Allows enabling/disabling location update notifications from the radio. Not for use by normal applications." ], + "ACCESS_CHECKIN_PROPERTIES" : [ "signatureOrSystem" , "access check-in properties" , "Allows read/write access to properties uploaded by the check-in service. Not for use by normal applications." ], + "PACKAGE_USAGE_STATS" : [ "signature" , "update component usage statistics" , "Allows the modification of collected component usage statistics. Not for use by normal applications." ], + "BATTERY_STATS" : [ "normal" , "modify battery statistics" , "Allows the modification of collected battery statistics. Not for use by normal applications." ], + "BACKUP" : [ "signatureOrSystem" , "control system back up and restore" , "Allows the application to control the system\'s back-up and restore mechanism. Not for use by normal applications." ], + "BIND_APPWIDGET" : [ "signatureOrSystem" , "choose widgets" , "Allows the application to tell the system which widgets can be used by which application. With this permission, applications can give access to personal data to other applications. Not for use by normal applications." ], + "CHANGE_BACKGROUND_DATA_SETTING" : [ "signature" , "change background data usage setting" , "Allows an application to change the background data usage setting." ], + "GLOBAL_SEARCH" : [ "signatureOrSystem" , "" , "" ], + "GLOBAL_SEARCH_CONTROL" : [ "signature" , "" , "" ], + "SET_WALLPAPER_COMPONENT" : [ "signatureOrSystem" , "" , "" ], + "ACCESS_CACHE_FILESYSTEM" : [ "signatureOrSystem" , "access the cache file system" , "Allows an application to read and write the cache file system." ], + "COPY_PROTECTED_DATA" : [ "signature" , "Allows to invoke default container service to copy content. Not for use by normal applications." , "Allows to invoke default container service to copy content. Not for use by normal applications." ], + "C2D_MESSAGE" : [ "signature" , "" , "" ], + + "ADD_VOICEMAIL" : [ "dangerous", "add voicemails into the system", "Allows an application to add voicemails into the system." ], + }, + + "MANIFEST_PERMISSION_GROUP" : + { + + "ACCOUNTS" : "Permissions for direct access to the accounts managed by the Account Manager.", + "COST_MONEY" : "Used for permissions that can be used to make the user spend money without their direct involvement.", + "DEVELOPMENT_TOOLS" : "Group of permissions that are related to development features.", + "HARDWARE_CONTROLS" : "Used for permissions that provide direct access to the hardware on the device.", + "LOCATION" : "Used for permissions that allow access to the user's current location.", + "MESSAGES" : "Used for permissions that allow an application to send messages on behalf of the user or intercept messages being received by the user.", + "NETWORK" : "Used for permissions that provide access to networking services.", + "PERSONAL_INFO" : "Used for permissions that provide access to the user's private data, such as contacts, calendar events, e-mail messages, etc.", + "PHONE_CALLS" : "Used for permissions that are associated with accessing and modifyign telephony state: intercepting outgoing calls, reading and modifying the phone state.", + "STORAGE" : "Group of permissions that are related to SD card access.", + "SYSTEM_TOOLS" : "Group of permissions that are related to system APIs.", + }, +} diff --git a/APIMonitor/api_example.py b/APIMonitor/api_example.py new file mode 100644 index 0000000..ed0f5ea --- /dev/null +++ b/APIMonitor/api_example.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import sys +import os +import time +from androguard.core.bytecodes import apk +from apkil import smali, monitor, logger +from subprocess import call + +working_dir = sys.path[0] + +APK = "examples/APKILTests.apk" +DEX = "examples/APKILTests.dex" +SMALI_DIR = "examples/APKILTests" + +NEW_OUT = "examples/new" +NEW_DEX = "examples/classes.dex" +NEW_APK = "examples/new.apk" + +a = apk.APK(APK) +min_version = int(a.get_min_sdk_version()) +target_version = int(a.get_target_sdk_version()) + +dex_file = open(DEX, 'w') +dex_file.write(a.get_dex()) +dex_file.close() + +call(args=['java', '-jar', 'smali/baksmali.jar', '-b', '-o', SMALI_DIR, DEX]) +s = smali.SmaliTree(min_version, SMALI_DIR) + +db_path = os.path.join(working_dir, "androidlib") + +API_LIST = [ \ +"Landroid/net/Uri;->parse(Ljava/lang/String;)", \ +"Landroid/content/Intent;->(Ljava/lang/String;)", \ +"Landroid/content/ContextWrapper;->openFileOutput(Ljava/lang/String;I)", \ +"Ljava/io/OutputStreamWriter;->write(Ljava/lang/String;)", \ +"Lapkil/tests/APKIL;->openFileInput(Ljava/lang/String;)", +"Ljava/io/BufferedReader;->readLine()Ljava/lang/String;", \ +"Landroid/telephony/SmsManager;->sendTextMessage(\ +Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;\ +Landroid/app/PendingIntent;Landroid/app/PendingIntent;)", \ +"Landroid/content/pm/PackageManager;->getInstalledApplications(I)", +] +mo = monitor.APIMonitor(db_path, API_LIST) + +API_CONFIG = "config/default_api_collection" +mo = monitor.APIMonitor(db_path, config=API_CONFIG) + +s = mo.inject(s, min_version) +s.save(NEW_OUT) + +call(args=['java', '-jar', 'smali/smali.jar', '-a', str(min_version), '-o', NEW_DEX, NEW_OUT]) + +new_dex = open(NEW_DEX).read(); +a.new_zip(filename=NEW_APK, + deleted_files="(META-INF/.)", new_files = { + "classes.dex" : new_dex } ) +apk.sign_apk( NEW_APK, \ +"config/apkil.cert", "apkil", "apkilapkil" ) + diff --git a/APIMonitor/apimonitor.py b/APIMonitor/apimonitor.py new file mode 100755 index 0000000..5f7fb72 --- /dev/null +++ b/APIMonitor/apimonitor.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2012, The Honeynet Project. All rights reserved. +# Author: Kun Yang +# +# APKIL is free software: you can redistribute it and/or modify it under +# the terms of version 3 of the GNU Lesser General Public License as +# published by the Free Software Foundation. +# +# APKIL 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 Lesser General Public License for +# more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with APKIL. If not, see . + +import sys +import os +import shutil +import time +import argparse +from androguard.core.bytecodes import apk +from apkil import smali, monitor, logger +from subprocess import call + +working_dir = sys.path[0] +default_api = os.path.join(working_dir, "config", "default_api_collection") + +parser = argparse.ArgumentParser(description=\ +'Repackage apk to monitor arbitrary APIs.') +parser.add_argument('-o, --output', metavar='dirpath', type=str, nargs=1, + help='output directory', + dest='output') +parser.add_argument('-l, --level', metavar='level', type=int, nargs=1, + help='target API level for instrumentation', + dest='level') +parser.add_argument('-a, --api', metavar='apilist', type=str, + default=default_api, + help='config file of API list', + dest='api') +parser.add_argument('-v, --version', action='version', + version='DroidBoxAPIMonitor v0.1beta') +parser.add_argument('filename', type=str, + help='path of APK file') + +args = parser.parse_args() +apk_name = os.path.basename(args.filename) +root_name, ext = os.path.splitext(apk_name) +if ext != ".apk": + print "error: not an APK file" + sys.exit(2) + +a = apk.APK(args.filename) + +if args.output: + outdir = args.output[0] +else: + outdir = os.path.dirname(args.filename) + +api_config = args.api + +db_path = os.path.join(working_dir, "androidlib") +mo = monitor.APIMonitor(db_path, config=api_config) + +new_apk = os.path.join(outdir, root_name + "_new.apk") +outdir = os.path.join(outdir, "apimonitor_out") + +if os.path.exists(outdir): + shutil.rmtree(outdir) +os.makedirs(outdir) + +dexpath = os.path.join(outdir, "origin.dex") +smalidir = os.path.join(outdir, "origin_smali") +new_dexpath = os.path.join(outdir, "new.dex") +new_smalidir = os.path.join(outdir, "new_smali") + +min_version = int(a.get_min_sdk_version()) +if a.get_target_sdk_version(): + target_version = int(a.get_target_sdk_version()) +else: + target_version = min_version +print "min_sdk_version=%d" % min_version +print "target_sdk_version=%d" % target_version + +if (not args.level) or args.level[0] < min_version: + level = min_version +else: + level = args.level[0] + +dex_file = open(dexpath, 'w') +dex_file.write(a.get_dex()) +dex_file.close() + +smali_jar = os.path.join(working_dir, "smali", "smali.jar") +baksmali_jar = os.path.join(working_dir, "smali", "baksmali.jar") +cert_path = os.path.join(working_dir, "config", "apkil.cert") + +call(args=['java', '-jar', baksmali_jar, + '-b', '-o', smalidir, dexpath]) +s = smali.SmaliTree(level, smalidir) + +s = mo.inject(s, level) +s.save(new_smalidir) + +call(args=['java', '-jar', smali_jar, + '-a', str(level), '-o', new_dexpath, new_smalidir]) + +new_dex = open(new_dexpath).read(); +a.new_zip(filename=new_apk, + deleted_files="(META-INF/.)", new_files = { + "classes.dex" : new_dex } ) +apk.sign_apk(new_apk, cert_path, "apkil", "apkilapkil" ) +print "NEW APK: %s" % new_apk + diff --git a/APIMonitor/apkil/__init__.py b/APIMonitor/apkil/__init__.py new file mode 100644 index 0000000..b57ebbc --- /dev/null +++ b/APIMonitor/apkil/__init__.py @@ -0,0 +1,9 @@ +""" +APLIL is an apk(Android Application) instrumentation library. +""" +__author__ = 'Kun Yang' +__email__ = 'kelwya@gmail.com', +__copyright__ = 'Copyright 2012, The Honeynet Project' +__credits__ = ['Kun Yang'] +__license__ = '' +__version__ = '0.1' diff --git a/APIMonitor/apkil/api.py b/APIMonitor/apkil/api.py new file mode 100644 index 0000000..b75298c --- /dev/null +++ b/APIMonitor/apkil/api.py @@ -0,0 +1,203 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2012, The Honeynet Project. All rights reserved. +# Author: Kun Yang +# +# APKIL is free software: you can redistribute it and/or modify it under +# the terms of version 3 of the GNU Lesser General Public License as +# published by the Free Software Foundation. +# +# APKIL 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 Lesser General Public License for +# more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with APKIL. If not, see . + +import sys +import os +import cPickle + +from subprocess import check_output + +class AndroidAPI(object): + + def __init__(self, level=None, jar_path=None): + self.level = 0 + self.classes = {} + + if level and jar_path: + self.read_jar(level, jar_path) + + def __repr__(self): + return '\n'.join([repr(c) for c in self.classes]) + + def show_classes(self): + for c in self.classes.values(): + print "%s %s" % (" ".join(c.access), c.name) + + def show_not_API(self): + for c in self.classes.values(): + if not c.isAPI: + print "%s %s" % (" ".join(c.access), c.name) + for m in c.methods.values(): + print " %s %s" % (" ".join(m.access), m.desc) + + def add_class(self, class_): + if self.classes.has_key(class_.desc): + return + self.classes[class_.desc] = class_ + + def read_jar(self, level, jar_path): + self.level = level + result = check_output(["jar", "-tf", jar_path]) + lines = result.split('\n') + for line in lines: + class_slash, ext = os.path.splitext(line) + + if ext != ".class": + continue + + class_name = class_slash.replace('/', '.') + result = check_output(["javap", "-bootclasspath", jar_path, "-s", class_name]) + class_lines = result.split('\n') + segs = class_lines[1].replace('{', '').replace(", ", ',').split() + c = AndroidClass() + if "implements" in segs: + k = segs.index("implements") + c.implements = segs[-1].split(',') + c.implements = ['L' + i.replace('.', '/') + ';' \ + for i in c.implements] + segs = segs[:k] + """ + if len(c.implements) > 1: + print "*****"+class_lines[1] + sys.exit(0) + """ + if "extends" in segs: + c.name = segs[-3] + c.supers = segs[-1].split(',') + c.supers = ['L' + s.replace('.', '/') + ';' for s in c.supers] + """ + if len(c.supers) > 1: + print "*****"+class_lines[1] + sys.exit(0) + """ + c.access = segs[:-3] + else: + c.name = segs[-1] + c.access = segs[:-1] + print "[read] %s" % c.name + c.desc = 'L' + c.name.replace('.', '/') + ';' + + i = 2 + while True: + method_line = class_lines[i] + method_line = method_line.replace(';', '') + method_line = method_line.replace(', ', ',') + if method_line[0] == '}': break + m = AndroidMethod() + segs = method_line.split() + if "throws" in segs: + k = segs.index("throws") + m.throws = segs[-1].split(',') + """ + if len(m.throws) > 1: + print class_lines[i] + sys.exit(0) + """ + segs = segs[:k] + segs[-1] = segs[-1][:segs[-1].find('(')] + if segs[-1] == c.name: + m.name = "" + m.access = segs[:-1] + else: + m.name = segs[-1] + m.access = segs[:-2] + + i += 1 + method_line = class_lines[i] + segs = method_line.split() + m.desc = "%s->%s%s" % (c.desc, m.name, segs[-1]) + m.sdesc = m.desc[:m.desc.rfind(')') + 1] + c.methods[m.sdesc]=m + if not c.methods_by_name.has_key(m.name): + c.methods_by_name[m.name] = [] + c.methods_by_name[m.name].append(m.sdesc) + i += 1 + + self.classes[c.desc] = c + self.build_connections() + + def build_connections(self, isAPI=True): + for c in self.classes.values(): + if c.isAPI != isAPI: + continue + c.ancestors = [] + q = [] + q.extend(c.supers) + while q: + s = q.pop(0) + if not s in c.ancestors: + c.ancestors.append(s) + if (not c.isAPI) and (not self.classes.has_key(s)): + continue + q.extend(self.classes[s].supers) + #print "%s << %s " % (c.desc, \ + # ",".join(c.ancestors)) + + def save(self, data_path): + f = open(data_path, 'w') + #cPickle.dump(self, f) + cPickle.dump((self.level, self.classes), f) + f.close() + + def load(self, data_path): + f = open(data_path, 'r') + #self = cPickle.load(f) + self.level, self.classes = cPickle.load(f) + f.close + +class AndroidClass(object): + + def __init__(self): + self.name= "" + self.supers = [] + self.ancestors = [] + self.access = [] + self.methods = {} + self.methods_by_name = {} + self.desc = "" + self.implements = [] + self.isAPI = True + + def __repr__(self): + """ + supers = "" + if self.supers: + supers = " extends " + " ".join(self.supers) + implements = "" + if self.implements: + implements = " implements " + " ".join(self.implements) + """ + return "%s %s%s%s" % (" ".join(self.access), self.desc, supers, + implements) + #return '\n'.join([repr(m) for m in self.methods]) + +class AndroidMethod(object): + + def __init__(self): + self.name = "" + self.class_ = None + self.desc = "" + self.sdesc = "" + self.access = [] + self.throws = [] + self.type_ = "" + self.isAPI = True + + def __repr__(self): + return "%s %s" % (" ".join(self.access), self.desc) + diff --git a/APIMonitor/apkil/apk.py b/APIMonitor/apkil/apk.py new file mode 100644 index 0000000..64d3ffa --- /dev/null +++ b/APIMonitor/apkil/apk.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2012, The Honeynet Project. All rights reserved. +# Author: Kun Yang +# +# APKIL is free software: you can redistribute it and/or modify it under +# the terms of version 3 of the GNU Lesser General Public License as +# published by the Free Software Foundation. +# +# APKIL 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 Lesser General Public License for +# more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with APKIL. If not, see . + diff --git a/APIMonitor/apkil/logger.py b/APIMonitor/apkil/logger.py new file mode 100644 index 0000000..2bfb678 --- /dev/null +++ b/APIMonitor/apkil/logger.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2012, The Honeynet Project. All rights reserved. +# Author: Kun Yang +# +# APKIL is free software: you can redistribute it and/or modify it under +# the terms of version 3 of the GNU Lesser General Public License as +# published by the Free Software Foundation. +# +# APKIL 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 Lesser General Public License for +# more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with APKIL. If not, see . + +import logging + +debug = 'TERM' +debug = "" +log = None + +def Pass(*args): + pass + +if debug == "TERM": + logging.basicConfig(level=logging.DEBUG, + format='%(filename)s Line:%(lineno)d Fun:%(funcName)s %(message)s',) + log = logging.debug +elif debug == "FILE": + logging.basicConfig(level=logging.DEBUG, + format='%(asctime)s Line:%(lineno)d Fun:%(funcName)s %(message)s', + filename='./apkil.log', + filemode='w') + log = logging.debug +else: + log = Pass + diff --git a/APIMonitor/apkil/monitor.py b/APIMonitor/apkil/monitor.py new file mode 100644 index 0000000..5e3d3a1 --- /dev/null +++ b/APIMonitor/apkil/monitor.py @@ -0,0 +1,1028 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2012, The Honeynet Project. All rights reserved. +# Author: Kun Yang +# +# APKIL is free software: you can redistribute it and/or modify it under +# the terms of version 3 of the GNU Lesser General Public License as +# published by the Free Software Foundation. +# +# APKIL 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 Lesser General Public License for +# more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with APKIL. If not, see . + +import sys +import os +import copy + +from logger import log +from smali import ClassNode, MethodNode, FieldNode, InsnNode, \ + TypeNode, LabelNode, TryNode, SmaliTree +from api import AndroidAPI, AndroidClass, AndroidMethod + +PKG_PREFIX = "droidbox" +DEFAULT_HELPER = \ +r''' +.class public Ldroidbox/apimonitor/Helper; +.super Ljava/lang/Object; +.method public constructor ()V +.registers 1 +invoke-direct {p0}, Ljava/lang/Object;->()V +return-void +.end method +.method public static log(Ljava/lang/String;)V +.registers 3 +const-string v0, "\n" +const-string v1, "\\\\n" +invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +move-result-object p0 +const-string v0, "\r" +const-string v1, "\\\\r" +invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; +move-result-object p0 +const-string v0, "DroidBox" +invoke-static {v0, p0}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I +return-void +.end method +.method public static toString(Ljava/lang/Object;)Ljava/lang/String; +.registers 5 +if-nez p0, :cond_5 +const-string v3, "null" +:goto_4 +return-object v3 +:cond_5 +invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; +move-result-object v3 +invoke-virtual {v3}, Ljava/lang/Class;->isArray()Z +move-result v3 +if-eqz v3, :cond_3e +new-instance v2, Ljava/lang/StringBuilder; +const-string v3, "{" +invoke-direct {v2, v3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V +invoke-static {p0}, Ljava/lang/reflect/Array;->getLength(Ljava/lang/Object;)I +move-result v1 +const/4 v0, 0x0 +:goto_1b +if-lt v0, v1, :cond_27 +const-string v3, "}" +invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; +invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; +move-result-object v3 +goto :goto_4 +:cond_27 +invoke-static {p0, v0}, Ljava/lang/reflect/Array;->get(Ljava/lang/Object;I)Ljava/lang/Object; +move-result-object v3 +invoke-static {v3}, Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String; +move-result-object v3 +invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; +add-int/lit8 v3, v1, -0x1 +if-ge v0, v3, :cond_3b +const-string v3, ", " +invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; +:cond_3b +add-int/lit8 v0, v0, 0x1 +goto :goto_1b +:cond_3e +invoke-virtual {p0}, Ljava/lang/Object;->toString()Ljava/lang/String; +move-result-object v3 +goto :goto_4 +.end method +''' + +METHOD_TYPE_BY_OPCODE = { + "invoke-virtual": "instance", + "invoke-super": "instance", + "invoke-direct": "constructor", + "invoke-static": "static", + "invoke-interface": "instance", + "invoke-virtual/range": "instance", + "invoke-super/range": "instance", + "invoke-direct/range": "constructor", + "invoke-static/range": "static", + "invoke-interface/range": "instance" + } + +OPCODE_MAP = { + "invoke-virtual": "invoke-static", + "invoke-super": "invoke-static", + "invoke-direct": "invoke-static", + "invoke-static": "invoke-static", + "invoke-interface": "invoke-static", + "invoke-virtual/range": "invoke-static/range", + "invoke-super/range": "invoke-static/range", + "invoke-direct/range": "invoke-static/range", + "invoke-static/range": "invoke-static/range", + "invoke-interface/range": "invoke-static/range" + } + +class APIMonitor(object): + + def __init__(self, db_dir, entries=[], config=""): + self.db_dir = "" + self.entries = [] + self.method_descs = [] + self.config = "" + self.stub_classes = {} + self.method_map = {} + self.api_dict = {} + self.api_name_dict = {} + self.class_map = {} + self.helper = ClassNode(buf=DEFAULT_HELPER) + self.android_api = None + + self.db_dir = db_dir + self.entries = entries + if (not entries) and config: + if os.path.isfile(config): + f = open(config, 'r') + line = f.readline() + while line: + if line.isspace(): + line = f.readline() + continue + line = line.strip() + segs = line.split(None, 1) + if segs[0][0] == '#': + line = f.readline() + continue + if not line in self.entries: + self.entries.append(line) + line = f.readline() + f.close() + else: + print "[error] Config file not found: %s" % config + sys.exit(1) + + def __repr__(self): + return '\n'.join(self.method_descs) + + def load_api(self, level): + if level > 16: + level = 16 + elif level < 3: + level = 3 + self.android_api = AndroidAPI() + data_path = os.path.join(self.db_dir, "android-%d.db" % level) + while not os.path.exists(data_path): + level += 1 + data_path = os.path.join(self.db_dir, "android-%d.db" % level) + self.android_api.load(data_path) + return level + + def inject(self, smali_tree, level): + # get a copy of smali tree + st = copy.deepcopy(smali_tree) + + # load api database + print "Loading and processing API database..." + level = self.load_api(level) + print "Target API Level: %d" % level + # check and fix apis in API_LIST + method_descs = [] + for m in self.entries: + c = "" + api_name = "" + method_name = "" + + ia = m.find("->") + ilb = m.find('(') + + if ia >= 0: + c = m[:ia] + if ilb >= 0: + method_name = m[ia + 2:ilb] + api_name = m[ia + 2:] + else: + method_name = m[ia + 2:] + else: + c = m + + if not self.android_api.classes.has_key(c): + print "[Warn] Class not found in API-%d db: %s" % (level, m) + continue + # just class name + if not method_name: + ms = self.android_api.classes[c].methods.keys() + method_descs.extend(ms) + # full signature + elif api_name: + if not self.android_api.classes[c].methods.has_key(m): + if method_name == "": + print "[Warn] Method not found in API-%d db: %s" % (level, m) + continue + c_obj = self.android_api.classes[c] + existed = False + q = c_obj.supers + while q: + cn = q.pop(0) + c_obj = self.android_api.classes[cn] + nm = c_obj.desc + "->" + api_name + if c_obj.methods.has_key(nm): + existed = True + if not nm in self.entries: + print "[Warn] Inferred API: %s" % (nm, ) + method_descs.append(nm) + else: + q.extend(self.android_api.classes[cn].supers) + + if not existed: + print "[Warn] Method not found in API-%d db: %s" % (level, m) + else: + method_descs.append(m) + # signature without parameters + else: + own = False + if self.android_api.classes[c].methods_by_name.has_key(method_name): + ms = self.android_api.classes[c].methods_by_name[method_name] + method_descs.extend(ms) + own = True + + if method_name == "": + continue + c_obj = self.android_api.classes[c] + existed = False + q = c_obj.supers + while q: + cn = q.pop(0) + c_obj = self.android_api.classes[cn] + if c_obj.methods_by_name.has_key(method_name): + existed = True + inferred = "%s->%s" % (c_obj.desc, method_name) + if not inferred in self.entries: + print "[Warn] Inferred API: %s" % inferred + method_descs.extend(c_obj.methods_by_name[method_name]) + else: + q.extend(self.android_api.classes[cn].supers) + + if (not own) and (not existed): + print "[Warn] Method not found in API-%d db: %s" % (level, m) + + self.method_descs = list(set(method_descs)) + + """ + print "**************************" + self.method_descs.sort() + print "\n".join(self.method_descs) + print "**************************" + """ + for m in self.method_descs: + self.api_dict[m] = "" + ia = m.find("->") + ilb = m.find('(') + if m[ia + 2:ilb] != "": + self.api_name_dict[m[ia + 2:]] = m[:ia] + print "Done!" + + print "Injecting..." + for c in st.classes: + class_ = AndroidClass() + class_.isAPI = False + + class_.desc = c.name + class_.name= c.name[1:-1].replace('/', '.') + class_.access = c.access + if "interface" in c.access: + class_.supers.extend(c.implements) + else: + class_.implements = c.implements + class_.supers.append(c.super_name) + + for m in c.methods: + method = AndroidMethod() + method.isAPI = False + method.desc = "%s->%s" % (c.name, m.descriptor) + method.name = m.descriptor.split('(', 1)[0] + #print method.desc + method.sdesc = method.desc[:method.desc.rfind(')') + 1] + method.access = m.access + class_.methods[method.sdesc] = method + self.android_api.add_class(class_) + self.android_api.build_connections(False) + #self.android_api.show_not_API() + + for c in st.classes: + for m in c.methods: + i = 0 + while i < len(m.insns): + insn = m.insns[i] + if insn.fmt == "35c": + md = insn.obj.method_desc + on = insn.opcode_name + irb = md.find(')') + smd = md[:irb + 1] + if self.api_dict.has_key(smd): + method_type = METHOD_TYPE_BY_OPCODE[on] + new_on = OPCODE_MAP[on] + if not self.method_map.has_key(md): + self.add_stub_method(on, md) + if method_type == "constructor": + insn_m = copy.deepcopy(insn) + insn_m.obj.replace(new_on, \ + self.method_map[md]) + r = insn_m.obj.registers.pop(0) + m.insert_insn(insn_m, i , 0) + i += 1 + """ + insn.obj.replace(new_on, \ + self.method_map[md]) + r = insn.obj.registers.pop(0) + m.insert_insn(InsnNode(\ +"move-result-object %s" % r), i + 1, 0) + i += 1 + """ + else: + insn.obj.replace(new_on, \ + self.method_map[md]) + else: + ia = md.find("->") + cn = md[:ia] + api_name = smd[ia + 2:] + if self.api_name_dict.has_key(api_name): + if self.android_api.classes.has_key(cn): + if not self.android_api.classes[cn].methods.has_key(smd): + api_cn = self.api_name_dict[api_name] + if api_cn in self.android_api.classes[cn].ancestors: + self.api_dict[smd] = "" + i -= 1 + + elif insn.fmt == "3rc": + md = insn.obj.method_desc + on = insn.opcode_name + smd = md[:md.rfind(')') + 1] + if self.api_dict.has_key(smd): + method_type = METHOD_TYPE_BY_OPCODE[on] + new_on = OPCODE_MAP[on] + if not self.method_map.has_key(md): + self.add_stub_method(on, md) + if method_type == "constructor": + insn_m = copy.deepcopy(insn) + insn_m.obj.replace(new_on, \ + self.method_map[md]) + r = insn_m.obj.reg_start + nr = r[0] + str(int(r[1:]) + 1) + insn_m.obj.set_reg_start(nr) + m.insert_insn(insn_m, i , 0) + i += 1 + """ + insn.obj.replace(new_on, \ + self.method_map[md]) + r = insn.obj.reg_start + nr = r[0] + str(int(r[1:]) + 1) + insn.obj.set_reg_start(nr) + m.insert_insn(InsnNode(\ +"move-result-object %s" % r), i + 1, 0) + i += 1 + """ + else: + insn.obj.replace(new_on, \ + self.method_map[md]) + else: + ia = md.find("->") + cn = md[:ia] + api_name = smd[ia + 2:] + if self.api_name_dict.has_key(api_name): + if self.android_api.classes.has_key(cn): + if not self.android_api.classes[cn].methods.has_key(smd): + api_cn = self.api_name_dict[api_name] + if api_cn in self.android_api.classes[cn].ancestors: + self.api_dict[smd] = "" + i -= 1 + i += 1 + + for c in self.stub_classes.values(): + st.add_class(c) + + st.add_class(self.helper) + print "Done!" + + return st + + def add_stub_method(self, on, m): + #segs = m.split(':', 1) + #method_type = segs[0] + #m = segs[1] + method_type = METHOD_TYPE_BY_OPCODE[on] + segs = m.rsplit("->", 1) + + if self.stub_classes.has_key(segs[0]): + stub_class = self.stub_classes[segs[0]] + else: + stub_class = ClassNode() + stub_class.set_name("L" + PKG_PREFIX + "/" + segs[0][1:]) + stub_class.add_access("public") + stub_class.set_super_name("Ljava/lang/Object;") + + self.stub_classes[segs[0]] = stub_class + self.class_map[segs[0]] = "L" + PKG_PREFIX + "/" + segs[0][1:] + + #.method public constructor ()V + # .registers 1 + # invoke-direct {p0}, Ljava/lang/Object;->()V + # return-void + #.end method + method = MethodNode() + method.set_desc("()V") + method.add_access(["public", "constructor"]) + method.set_registers(1) + i1 = InsnNode("invoke-direct {p0}, Ljava/lang/Object;->()V") + i2 = InsnNode("return-void") + method.add_insn([i1, i2]) + stub_class.add_method(method) + + method_name = segs[1][:segs[1].find("(")] + if method_type == "constructor": + self.__add_stub_cons2(stub_class, m) + elif method_type == "instance": + self.__add_stub_inst(stub_class, on, m) + elif method_type == "static": + self.__add_stub_static(stub_class, m) + + + def __add_stub_inst(self, stub_class, on, m): + segs = m.rsplit("->", 1) + + method = MethodNode() + method.set_desc(segs[1]) + method.add_para(TypeNode(segs[0])) + method.add_access(["public", "static"]) + + para_num = len(method.paras) + reg_num = method.get_paras_reg_num() + ri = 1 + + if reg_num <= 5: + if on.find('/') >= 0: + on = on[:on.find('/')] + i = "%s {%s}, %s" % \ + (on, \ + ", ".join(["p%d" % k for k in range(reg_num)]), m) + else: + i = "%s {p0 .. p%d}, %s" % (on, reg_num - 1, m) + + method.add_insn(InsnNode(i)) + + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("move-result v1")) + ri += 1 + else: + method.add_insn(InsnNode("move-result-wide v1")) + ri += 2 + else: + method.add_insn(InsnNode("move-result-object v1")) + ri += 1 + + method.add_insn(InsnNode("new-instance \ +v%d, Ljava/lang/StringBuilder;" % ri)) + method.add_insn(InsnNode("invoke-direct \ +{v%d}, Ljava/lang/StringBuilder;->()V" % ri)) + + method.add_insn(InsnNode("const-string v%d,\"%s(\"" % \ + (ri + 1, m.split('(', 1)[0]))) + append_i = InsnNode("invoke-virtual \ +{v%d, v%d}, Ljava/lang/StringBuilder;->\ +append(Ljava/lang/String;)Ljava/lang/StringBuilder;" % \ + (ri, ri + 1)) + method.add_insn(append_i) + + # print parameters + pi = 1 + for k in range(1, para_num): + p = method.paras[k] + method.add_insn(InsnNode("const-string v%d, \"%s=\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + + if p.basic and p.dim == 0: + if p.words == 1: + method.add_insn(InsnNode("invoke-static {p%d}, \ +Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + (pi, p.get_desc()))) + pi += 1 + else: + method.add_insn(InsnNode("invoke-static \ +{p%d, p%d}, Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + (pi, pi + 1, p.get_desc()))) + pi += 2 + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("invoke-static {p%d}, \ +Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String;" % (pi, ))) + pi += 1 + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + + if k < para_num - 1: + method.add_insn(InsnNode("const-string v%d, \" | \"" % \ + (ri + 1))) + method.add_insn(append_i) + + method.add_insn(InsnNode("const-string v%d, \")\"" % (ri + 1))) + method.add_insn(append_i) + + # print return value + p = method.ret + if p.void: + method.add_insn(InsnNode("const-string v%d, \"%s\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("const-string v%d, \"%s=\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + if p.basic and p.dim == 0: + if p.words == 1: + method.add_insn(InsnNode("invoke-static {v1}, \ +Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + p.get_desc())) + else: + method.add_insn(InsnNode("invoke-static \ +{v1, v2}, Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + p.get_desc())) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("invoke-static {v1}, \ +Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String;")) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + + method.add_insn(InsnNode("invoke-virtual {v%d}, \ +Ljava/lang/StringBuilder;->toString()Ljava/lang/String;" % ri)) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(InsnNode("invoke-static {v%d}, \ +Ldroidbox/apimonitor/Helper;->log(Ljava/lang/String;)V" % \ + (ri + 1, ))) + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("return v1")) + else: + method.add_insn(InsnNode("return-wide v1")) + else: + method.add_insn(InsnNode("return-object v1")) + else: + method.add_insn(InsnNode("return-void")) + + start = LabelNode(":droidbox_try_start", 0) + end = LabelNode(":droidbox_try_end", 1) + index = len(method.insns) + ret = LabelNode(":droidbox_return", index - 1) + handler = LabelNode(":droidbox_handler", index) + line = ".catch Ljava/lang/Exception; {:droidbox_try_start .. \ +:droidbox_try_end} :droidbox_handler" + TryNode(line, start, end, handler) + method.add_label([start, end, ret, handler]) + + method.add_insn(InsnNode("move-exception v0")) + method.add_insn(InsnNode("invoke-virtual {v0}, \ +Ljava/lang/Exception;->printStackTrace()V")) + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("const/4 v1, 0x0")) + else: + method.add_insn(InsnNode("const-wide/16 v1, 0x0")) + else: + method.add_insn(InsnNode("const/4 v1, 0x0")) + method.add_insn(InsnNode("goto :droidbox_return")) + + method.set_registers(reg_num + ri + 2) + stub_class.add_method(method) + + i = m.find('(') + self.method_map[m] = "L" + PKG_PREFIX + "/" + segs[0][1:] + "->" + \ + method.get_desc() + + + def __add_stub_cons2(self, stub_class, m): + segs = m.rsplit("->", 1) + desc = segs[1].replace("", "droidbox_cons") + i = desc.find(')') + desc = desc[:i + 1] + 'V' + method = MethodNode() + method.set_desc(desc) + method.add_access(["public", "static"]) + + para_num = len(method.paras) + reg_num = method.get_paras_reg_num() + ri = 0 + + method.add_insn(InsnNode("new-instance \ +v%d, Ljava/lang/StringBuilder;" % ri)) + method.add_insn(InsnNode("invoke-direct \ +{v%d}, Ljava/lang/StringBuilder;->()V" % ri)) + + method.add_insn(InsnNode("const-string v%d,\"%s(\"" % \ + (ri + 1, m.split('(', 1)[0]))) + append_i = InsnNode("invoke-virtual \ +{v%d, v%d}, Ljava/lang/StringBuilder;->\ +append(Ljava/lang/String;)Ljava/lang/StringBuilder;" % \ + (ri, ri + 1)) + method.add_insn(append_i) + + # print parameters + pi = 0 + for k in range(0, para_num): + p = method.paras[k] + method.add_insn(InsnNode("const-string v%d, \"%s=\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + + if p.basic and p.dim == 0: + if p.words == 1: + method.add_insn(InsnNode("invoke-static {p%d}, \ +Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + (pi, p.get_desc()))) + pi += 1 + else: + method.add_insn(InsnNode("invoke-static \ +{p%d, p%d}, Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + (pi, pi + 1, p.get_desc()))) + pi += 2 + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("invoke-static {p%d}, \ +Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String;" % (pi, ))) + pi += 1 + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + + if k < para_num - 1: + method.add_insn(InsnNode("const-string v%d, \" | \"" % \ + (ri + 1))) + method.add_insn(append_i) + + method.add_insn(InsnNode("const-string v%d, \")\"" % (ri + 1))) + method.add_insn(append_i) + + # print return value + p = method.ret + if p.void: + method.add_insn(InsnNode("const-string v%d, \"%s\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("const-string v%d, \"%s=\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + if p.basic and p.dim == 0: + if p.words == 1: + method.add_insn(InsnNode("invoke-static {v1}, \ +Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + p.get_desc())) + else: + method.add_insn(InsnNode("invoke-static \ +{v1, v2}, Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + p.get_desc())) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("invoke-static {v1}, \ +Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String;")) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + + method.add_insn(InsnNode("invoke-virtual {v%d}, \ +Ljava/lang/StringBuilder;->toString()Ljava/lang/String;" % ri)) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(InsnNode("invoke-static {v%d}, \ +Ldroidbox/apimonitor/Helper;->log(Ljava/lang/String;)V" % \ + (ri + 1, ))) + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("return v1")) + else: + method.add_insn(InsnNode("return-wide v1")) + else: + method.add_insn(InsnNode("return-object v1")) + else: + method.add_insn(InsnNode("return-void")) + + method.set_registers(reg_num + ri + 2) + stub_class.add_method(method) + + i = m.find('(') + self.method_map[m] = "L" + PKG_PREFIX + "/" + segs[0][1:] + "->" + \ + method.get_desc() + + def __add_stub_cons(self, stub_class, m): + segs = m.rsplit("->", 1) + desc = segs[1].replace("", "droidbox_cons") + i = desc.find(')') + desc = desc[:i + 1] + segs[0] + method = MethodNode() + method.set_desc(desc) + method.add_access(["public", "static"]) + + para_num = len(method.paras) + reg_num = method.get_paras_reg_num() + ri = 1 + + method.add_insn(InsnNode("new-instance v1, %s" % segs[0])) + + reg_v = 1 + if reg_num <= 4: + i = "invoke-direct {v1, %s}, %s" % \ + (", ".join(["p%d" % k for k in range(reg_num)]), \ + m) + method.add_insn(InsnNode(i)) + else: + for k in range(reg_num): + method.add_insn(InsnNode("move-object v%d, p%d" % (k + 2, k))) + i = "invoke-direct/range {v1 .. v%d}, %s" % \ + (reg_num + 1, m) + method.add_insn(InsnNode(i)) + reg_v = reg_num + 1 + + ri += 1 + + method.add_insn(InsnNode("new-instance \ +v%d, Ljava/lang/StringBuilder;" % ri)) + method.add_insn(InsnNode("invoke-direct \ +{v%d}, Ljava/lang/StringBuilder;->()V" % ri)) + + method.add_insn(InsnNode("const-string v%d,\"%s(\"" % \ + (ri + 1, m.split('(', 1)[0]))) + append_i = InsnNode("invoke-virtual \ +{v%d, v%d}, Ljava/lang/StringBuilder;->\ +append(Ljava/lang/String;)Ljava/lang/StringBuilder;" % \ + (ri, ri + 1)) + method.add_insn(append_i) + + # print parameters + pi = 0 + for k in range(0, para_num): + p = method.paras[k] + method.add_insn(InsnNode("const-string v%d, \"%s=\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + + if p.basic and p.dim == 0: + if p.words == 1: + method.add_insn(InsnNode("invoke-static {p%d}, \ +Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + (pi, p.get_desc()))) + pi += 1 + else: + method.add_insn(InsnNode("invoke-static \ +{p%d, p%d}, Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + (pi, pi + 1, p.get_desc()))) + pi += 2 + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("invoke-static {p%d}, \ +Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String;" % (pi, ))) + pi += 1 + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + + if k < para_num - 1: + method.add_insn(InsnNode("const-string v%d, \" | \"" % \ + (ri + 1))) + method.add_insn(append_i) + + method.add_insn(InsnNode("const-string v%d, \")\"" % (ri + 1))) + method.add_insn(append_i) + + # print return value + p = method.ret + if p.void: + method.add_insn(InsnNode("const-string v%d, \"%s\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("const-string v%d, \"%s=\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + if p.basic and p.dim == 0: + if p.words == 1: + method.add_insn(InsnNode("invoke-static {v1}, \ +Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + p.get_desc())) + else: + method.add_insn(InsnNode("invoke-static \ +{v1, v2}, Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + p.get_desc())) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("invoke-static {v1}, \ +Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String;")) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + + method.add_insn(InsnNode("invoke-virtual {v%d}, \ +Ljava/lang/StringBuilder;->toString()Ljava/lang/String;" % ri)) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(InsnNode("invoke-static {v%d}, \ +Ldroidbox/apimonitor/Helper;->log(Ljava/lang/String;)V" % \ + (ri + 1, ))) + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("return v1")) + else: + method.add_insn(InsnNode("return-wide v1")) + else: + method.add_insn(InsnNode("return-object v1")) + else: + method.add_insn(InsnNode("return-void")) + + start = LabelNode(":droidbox_try_start", 0) + end = LabelNode(":droidbox_try_end", 2) + index = len(method.insns) + ret = LabelNode(":droidbox_return", index - 1) + handler = LabelNode(":droidbox_handler", index) + line = ".catch Ljava/lang/Exception; {:droidbox_try_start .. \ +:droidbox_try_end} :droidbox_handler" + TryNode(line, start, end, handler) + method.add_label([start, end, ret, handler]) + + method.add_insn(InsnNode("move-exception v0")) + method.add_insn(InsnNode("invoke-virtual {v0}, \ +Ljava/lang/Exception;->printStackTrace()V")) + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("const/4 v1, 0x0")) + else: + method.add_insn(InsnNode("const-wide/16 v1, 0x0")) + else: + method.add_insn(InsnNode("const/4 v1, 0x0")) + method.add_insn(InsnNode("goto :droidbox_return")) + + method.set_registers(reg_num + max(ri + 1, reg_v) + 1) + stub_class.add_method(method) + + i = m.find('(') + self.method_map[m] = "L" + PKG_PREFIX + "/" + segs[0][1:] + "->" + \ + method.get_desc() + +#invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; + def __add_stub_static(self, stub_class, m): + segs = m.rsplit("->", 1) + + method = MethodNode() + method.set_desc(segs[1]) + method.add_access(["public", "static"]) + + para_num = len(method.paras) + reg_num = method.get_paras_reg_num() + ri = 1 + + if reg_num <= 5: + i = "invoke-static {%s}, %s" % \ + (", ".join(["p%d" % k for k in range(reg_num)]), m) + else: + i = "invoke-static/range {p0 .. p%d}, %s" % (reg_num - 1, m) + + method.add_insn(InsnNode(i)) + + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("move-result v1")) + ri += 1 + else: + method.add_insn(InsnNode("move-result-wide v1")) + ri += 2 + else: + method.add_insn(InsnNode("move-result-object v1")) + ri += 1 + + method.add_insn(InsnNode("new-instance \ +v%d, Ljava/lang/StringBuilder;" % ri)) + method.add_insn(InsnNode("invoke-direct \ +{v%d}, Ljava/lang/StringBuilder;->()V" % ri)) + + method.add_insn(InsnNode("const-string v%d,\"%s(\"" % \ + (ri + 1, m.split('(', 1)[0]))) + append_i = InsnNode("invoke-virtual \ +{v%d, v%d}, Ljava/lang/StringBuilder;->\ +append(Ljava/lang/String;)Ljava/lang/StringBuilder;" % \ + (ri, ri + 1)) + method.add_insn(append_i) + + # print parameters + pi = 0 + for k in range(0, para_num): + p = method.paras[k] + method.add_insn(InsnNode("const-string v%d, \"%s=\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + + if p.basic and p.dim == 0: + if p.words == 1: + method.add_insn(InsnNode("invoke-static {p%d}, \ +Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + (pi, p.get_desc()))) + pi += 1 + else: + method.add_insn(InsnNode("invoke-static \ +{p%d, p%d}, Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + (pi, pi + 1, p.get_desc()))) + pi += 2 + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("invoke-static {p%d}, \ +Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String;" % (pi, ))) + pi += 1 + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + + if k < para_num - 1: + method.add_insn(InsnNode("const-string v%d, \" | \"" % \ + (ri + 1))) + method.add_insn(append_i) + + method.add_insn(InsnNode("const-string v%d, \")\"" % (ri + 1))) + method.add_insn(append_i) + + # print return value + p = method.ret + if p.void: + method.add_insn(InsnNode("const-string v%d, \"%s\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("const-string v%d, \"%s=\"" % (ri + 1, + p.get_desc()))) + method.add_insn(append_i) + if p.basic and p.dim == 0: + if p.words == 1: + method.add_insn(InsnNode("invoke-static {v1}, \ +Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + p.get_desc())) + else: + method.add_insn(InsnNode("invoke-static \ +{v1, v2}, Ljava/lang/String;->valueOf(%s)Ljava/lang/String;" % \ + p.get_desc())) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + else: + method.add_insn(InsnNode("invoke-static {v1}, \ +Ldroidbox/apimonitor/Helper;->toString(Ljava/lang/Object;)Ljava/lang/String;")) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(append_i) + + method.add_insn(InsnNode("invoke-virtual {v%d}, \ +Ljava/lang/StringBuilder;->toString()Ljava/lang/String;" % ri)) + method.add_insn(InsnNode("move-result-object v%d" % (ri + 1))) + method.add_insn(InsnNode("invoke-static {v%d}, \ +Ldroidbox/apimonitor/Helper;->log(Ljava/lang/String;)V" % \ + (ri + 1, ))) + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("return v1")) + else: + method.add_insn(InsnNode("return-wide v1")) + else: + method.add_insn(InsnNode("return-object v1")) + else: + method.add_insn(InsnNode("return-void")) + + start = LabelNode(":droidbox_try_start", 0) + end = LabelNode(":droidbox_try_end", 1) + index = len(method.insns) + ret = LabelNode(":droidbox_return", index - 1) + handler = LabelNode(":droidbox_handler", index) + line = ".catch Ljava/lang/Exception; {:droidbox_try_start .. \ +:droidbox_try_end} :droidbox_handler" + TryNode(line, start, end, handler) + method.add_label([start, end, ret, handler]) + + method.add_insn(InsnNode("move-exception v0")) + method.add_insn(InsnNode("invoke-virtual {v0}, \ +Ljava/lang/Exception;->printStackTrace()V")) + if not method.ret.void: + if method.ret.basic and method.ret.dim == 0: + if method.ret.words == 1: + method.add_insn(InsnNode("const/4 v1, 0x0")) + else: + method.add_insn(InsnNode("const-wide/16 v1, 0x0")) + else: + method.add_insn(InsnNode("const/4 v1, 0x0")) + method.add_insn(InsnNode("goto :droidbox_return")) + + method.set_registers(reg_num + ri + 2) + stub_class.add_method(method) + + i = m.find('(') + self.method_map[m] = "L" + PKG_PREFIX + "/" + segs[0][1:] + "->" + \ + method.get_desc() + + + diff --git a/APIMonitor/apkil/smali.py b/APIMonitor/apkil/smali.py new file mode 100644 index 0000000..333f44c --- /dev/null +++ b/APIMonitor/apkil/smali.py @@ -0,0 +1,865 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright 2012, The Honeynet Project. All rights reserved. +# Author: Kun Yang +# +# APKIL is free software: you can redistribute it and/or modify it under +# the terms of version 3 of the GNU Lesser General Public License as +# published by the Free Software Foundation. +# +# APKIL 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 Lesser General Public License for +# more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with APKIL. If not, see . + +import os +import copy +import sys +import shutil +import StringIO + +from logger import log + +INSN_FMT = { + "invoke-virtual": "35c", + "invoke-super": "35c", + "invoke-direct": "35c", + "invoke-static": "35c", + "invoke-interface": "35c", + "invoke-virtual/range": "3rc", + "invoke-super/range": "3rc", + "invoke-direct/range": "3rc", + "invoke-static/range": "3rc", + "invoke-interface/range": "3rc" + } + +BASIC_TYPES = { + 'V': "void", + 'Z': "boolean", + 'B': "byte", + 'S': 'short', + 'C': "char", + 'I': "int", + 'J': "long", + 'F': "float", + 'D': "double" + } + +BASIC_TYPES_BY_JAVA = { + "void": 'V', + "boolean": 'Z', + "byte": 'B', + 'short': 'S', + "char": 'C', + "int": 'I', + "long": 'J', + "float": 'F', + "double": 'D' + } + +class SmaliTree(object): + + def __init__(self, level, foldername): + self.foldername = "" + self.smali_files = [] + self.classes = [] + self.level = level + + self.__parse(foldername) + + def __repr__(self): + return "Foldername: %s\n%s" % \ + (self.foldername, \ + "".join([repr(class_) for class_ in self.classes])) + + def __parse(self, foldername): + print "Parsing %s..." % foldername + self.foldername = foldername + for (path, dirs, files) in os.walk(self.foldername): + for f in files: + name = os.path.join(path, f) + rel = os.path.relpath(name, self.foldername) + if rel.find("annotation") == 0: + continue + ext = os.path.splitext(name)[1] + if ext != '.smali': continue + self.smali_files.append(name) + self.classes.append(ClassNode(name)) + # print repr(self.smali_files) + log("SmaliTree parsed!") + print "Done!" + + def get_class(self, class_name): + result = [c for c in self.classes if c.name == class_name] + if result: + return result[0] + else: + return None + + def add_class(self, class_node): + if [c for c in self.classes if c.name == class_node.name]: + print "Class %s alreasy exsits!" % class_node.name + return False + else: + self.classes.append(copy.deepcopy(class_node)) + return True + + def remove_class(self, class_node): + # self.classes.del() + pass + + def save(self, new_foldername): + print "Saving %s..." % new_foldername + if os.path.exists(new_foldername): + shutil.rmtree(new_foldername) + os.makedirs(new_foldername) + for c in self.classes: + c.save(new_foldername) + print "Done" + + def export_apk(self): + self.save("./out") + + +class ClassNode(object): + + def __init__(self, filename=None, buf=None): + self.buf = [] + self.filename = "" + self.name = '' + self.super_name= '' + self.source = '' + self.implements = [] + self.access = [] + self.interfaces = [] + self.fields = [] + self.methods = [] + self.inner_classes = [] + self.annotations = [] + self.debugs = [] + + if filename or buf: + self.__parse(filename, buf) + + def __repr__(self): + return "Class: %s %s << %s\n%s%s" % \ + (' '.join(self.access), self.name, self.super_name, \ + ''.join([repr(f) for f in self.fields]), \ + ''.join([repr(m) for m in self.methods])) + + def __parse(self, filename, buf): + if filename: + self.filename = filename + f = open(self.filename, 'r') + elif buf: + f = StringIO.StringIO(buf) + else: + return + + line = f.readline() + while line: + if line.isspace(): + line = f.readline() + continue + line = line.strip() + segs = line.split() + # .source + if segs[0] == ".source": + self.source = segs[1] + # .class + elif segs[0] == ".class": + self.name = segs[-1] + # : public, final, super, interface, abstract + self.access = segs[1:-1] + # .super + elif segs[0] == ".super": + self.super_name = segs[1] + elif segs[0] == ".interface": + print "can't parse .interface" + sys.exit(1) + elif segs[0] == ".implements": + self.implements.append(segs[1]) + elif segs[0] == ".field": + self.fields.append(FieldNode(line)) + elif segs[0] == ".method": + lines = [line] + line = f.readline() + while line: + if line.isspace(): + line = f.readline() + continue + line = line.strip() + lines.append(line) + segs = line.split(None, 2) + if segs[0] == ".end" and segs[1] == "method": + break + line = f.readline() + self.methods.append(MethodNode(lines)) + elif segs[0] == ".annotation": + # there may be subannotations + lines = [line] + line = f.readline() + while line: + if line.isspace(): + line = f.readline() + continue + line = line.strip() + lines.append(line) + segs = line.split(None, 2) + if segs[0] == ".end" and segs[1] == "annotation": + break + line = f.readline() + #self.annotations + elif segs[0] == '#': + pass + line = f.readline() + f.close() + log("ClassNode: " + self.name + " parsed!") + + def reload(self): + self.buf = [] + # .class + self.buf.append(".class %s %s" % (' '.join(self.access), self.name)) + # .super + self.buf.append(".super %s" % (self.super_name, )) + # .source + if self.source: + self.buf.append(".source %s" % (self.source, )) + # .implements + if self.implements: + for imp in self.implements: + self.buf.append(".implements %s" % (imp, )) + # .interfaces + # .field + for f in self.fields: + f.reload() + self.buf.append(f.buf) + # .method + for m in self.methods: + m.reload() + self.buf.extend(m.buf) + + def set_name(self, name): + self.name = name + + def add_access(self, access): + if type(access) == list: + self.access.extend(access) + else: + self.access.append(access) + + def set_super_name(self, super_name): + self.super_name = super_name + + def add_field(self, field): + self.fields.append(field) + + def add_method(self, method): + if type(method) == list: + self.methods.extend(method) + else: + self.methods.append(method) + + def save(self, new_foldername): + self.reload() + path, filename = os.path.split(self.name[1:-1]) + filename += ".smali" + path = os.path.join(new_foldername, path) + if not os.path.exists(path): + os.makedirs(path) + filename = os.path.join(path, filename) + f = open(filename, 'w') + f.write('\n'.join(self.buf)) + f.close() + + +class FieldNode(object): + + def __init__(self, line=None): + self.buf = "" + self.name = "" + self.access = [] + self.descriptor = "" + self.value = None + + if line: + self.__parse(line) + + def __repr__(self): + return " Field: %s %s %s%s\n" % \ + (' '.join(self.access), self.descriptor, self.name, \ + self.value and "=" + self.value or "") + + # .field : [ = ] + def __parse(self, line): + #log("FieldNode: " + line + " parsing") + self.buf = line + i = self.buf.find('=') + segs = [] + if i > 0: + segs = self.buf[:i].split() + self.value = self.buf[i + 1:].strip() + else: + segs = self.buf.split() + self.access = segs[1:-1] + self.name, self.descriptor = segs[-1].split(':') + log("FieldNode: " + self.name + " parsed!") + + def set_name(self, name): + self.name = name + + def add_access(self, access): + if type(access) == list: + self.access.extend(access) + else: + self.access.append(access) + + def set_desc(self, desc): + self.descriptor = desc + + def set_value(self, value): + self.value = value + + def reload(self): + self.buf = "%s %s %s:%s" % \ + (".field", ' '.join(self.access), self.name, \ + self.descriptor) + if self.value: self.buf += " = %s" % self.value + +class MethodNode(object): + + def __init__(self, lines=None): + self.name = "" + self.buf = [] + self.access = [] + self.descriptor = "" + self.paras = [] + self.ret = "" + self.registers = 0 + self.insns = [] + self.labels = {} + self.tries = [] + self.is_constructor = False + + if lines: + self.__parse(lines) + + + def __repr__(self): + return " Method: %s %s\n registers: %d\n%s" % \ + (' '.join(self.access), self.descriptor, self.registers, \ + ''.join(["%13d %s" % \ + (self.insns.index(i), repr(i)) for i in self.insns])) + + # .method + # + # .end method + def __parse(self, lines): + self.buf = lines + segs = self.buf[0].split() + self.access = segs[1:-1] + self.descriptor = segs[-1] + self.name = self.descriptor.split('(', 1)[0] + self.__parse_desc() + + start = 1 + # .registers + segs = self.buf[1].split() + if segs[0] == ".registers": + self.registers = int(segs[1]) + start = 2 + + index = 0 + try_node_cache = [] + k = start + while k < len(self.buf) - 1: + line = self.buf[k] + segs = line.split() + # : + if segs[0][0] == ":": + label = LabelNode(line, index) + self.labels[label.name] = label + # .catch { .. } + # .catchall { .. } + elif segs[0] == ".catch" or segs[0] == ".catchall": + try_node_cache.append(line) + elif segs[0] == ".packed-switch" or segs[0] == ".sparse-switch": + lb = self.labels[self.buf[k - 1][1:]] + lines = [line] + k += 1 + line = self.buf[k] + lines.append(line) + segs = line.split() + while segs[0] != ".end": + k += 1 + line = self.buf[k] + lines.append(line) + segs = line.split() + SwitchNode(lines, lb) + elif segs[0] == ".array-data": + lb = self.labels[self.buf[k - 1][1:]] + lines = [line] + k += 1 + line = self.buf[k] + lines.append(line) + segs = line.split() + while segs[0] != ".end": + k += 1 + line = self.buf[k] + lines.append(line) + segs = line.split() + ArrayDataNode(lines, lb) + elif segs[0] == ".annotation": + k += 1 + lines = [line] + line = self.buf[k] + lines.append(line) + segs = line.split() + while (segs[0] != ".end" or segs[1] != "annotation"): + k += 1 + line = self.buf[k] + lines.append(line) + segs = line.split() + # parse lines + else: + self.insns.append(InsnNode(line)) + index += 1 + k += 1 + + for line in try_node_cache: + segs = line.split() + start = self.labels[segs[-4][2:]] + end = self.labels[segs[-2][1:-1]] + handler = self.labels[segs[-1][1:]] + self.tries.append(TryNode(line, start, end, handler)) + try_node_cache = [] + + if self.name == "": + self.is_constructor = True + log("MethodNode: " + self.name + " parsed!") + + def __parse_desc(self): + self.name = self.descriptor.split('(', 1)[0] + p1 = self.descriptor.find('(') + p2 = self.descriptor.find(')') + self.ret = TypeNode(self.descriptor[p2 + 1:]) + self.paras = [] + paras = self.descriptor[p1 + 1:p2] + index = 0 + dim = 0 + while index < len(paras): + c = paras[index] + if c == '[': + dim += 1 + index += 1 + elif BASIC_TYPES.has_key(c): + self.paras.append(TypeNode(paras[index - dim:index + 1])) + index += 1 + dim = 0 + else: + tmp = paras.find(';', index) + self.paras.append(TypeNode(paras[index - dim:tmp + 1])) + index = tmp + 1 + dim = 0 + + def reload(self): + self.__parse_desc() + + self.buf = [] + for i in self.insns: + i.reload() + self.buf.append(i.buf) + # insert labels and tries + # sort the labels by index + count = 0 + labels = self.labels.values() + from operator import attrgetter + labels = sorted(labels, key=attrgetter('index')) + for l in labels: + self.buf.insert(l.index + count, l.buf) + count += 1 + for t in l.tries: + self.buf.insert(l.index + count, t.buf) + count += 1 + if l.switch: + for sl in l.switch.buf: + self.buf.insert(l.index + count, sl) + count += 1 + if l.array_data: + for sl in l.array_data.buf: + self.buf.insert(l.index + count, sl) + count += 1 + + if self.registers > 0: + self.buf.insert(0, ".registers %d" % self.registers) + elif (not "abstract" in self.access) and \ + (not "final" in self.access) and \ + (not "native" in self.access): + self.buf.insert(0, ".registers 0") + self.buf.insert(0, ".method %s %s" % \ + (' '.join(self.access), self.descriptor)) + self.buf.append(".end method") + + def get_insn_by_index(self, index): + if index < 0 or index >= len(self.insns): return None + return self.insns[index] + + def get_insn35c(self, opcode_name, method_desc): + result = [] + for i in self.insns: + if i.fmt == "35c" and i.opcode_name == opcode_name and \ + i.obj.method_desc == method_desc: + result.append(i) + return result + + def get_desc(self): + return self.descriptor + + def get_paras_reg_num(self): + reg_num = 0 + for p in self.paras: + reg_num += p.words + return reg_num + + def set_name(self, name): + self.name = name + + def set_desc(self, desc): + self.descriptor = desc + self.__parse_desc() + + def add_para(self, para, index=0): + self.paras.insert(index, para) + self.descriptor = self.name + '(' + for p in self.paras: + self.descriptor += p.get_desc() + self.descriptor += ')' + self.descriptor += self.ret.get_desc() + + def insert_insn(self, insn, index=0, direction=0): + self.insns.insert(index, insn) + for l in self.labels.values(): + if l.index >= index + direction: + l.index += 1 + + def add_access(self, access): + if type(access) == list: + self.access.extend(access) + else: + self.access.append(access) + + def add_label(self, label): + if type(label) == list: + for l in label: + self.labels[l.name] = l + else: + self.labels[label.name] = label + + def set_registers(self, registers): + self.registers = registers + + def add_insn(self, insn): + if type(insn) == list: + self.insns.extend(insn) + else: + self.insns.append(insn) + + def replace_insn35c(self): + for i in self.insns: + i.replace() + + +class InsnNode(object): + + def __init__(self, line=None): + self.buf = "" + self.opcode_name = "" + self.fmt = "" + self.obj = None + + if line: + self.__parse(line) + + def __repr__(self, line_number=""): + return "%s\n" % \ + (self.buf, ) + + def __parse(self, line): + self.buf = line + segs = self.buf.split() + self.opcode_name = segs[0] + if INSN_FMT.has_key(self.opcode_name): + self.fmt = INSN_FMT[self.opcode_name] + + if self.fmt == "35c": + self.obj = Insn35c(line) + elif self.fmt == "3rc": + self.obj = Insn3rc(line) + + log("InsnNode: " + self.opcode_name + " parsed!") + + def reload(self): + if self.obj: + self.obj.reload() + self.buf = self.obj.buf + else: + pass + + +class TryNode(object): + + def __init__(self, line, start, end, handler): + self.buf = "" + self.exception = "" + self.start = None + self.end = None + self.handler = None + + self.__parse(line, start, end, handler) + + def __repr__(self): + return "Try: %s {%s .. %s} %s" % \ + (self.exception, start.index, end.index, handler.index) + + def __parse(self, line, start, end, handler): + self.buf = line + self.start = start + self.end = end + end.tries.append(self) + self.handler = handler + segs = self.buf.split() + self.exception = segs[1] + + def reload(self): + pass + +class SwitchNode(object): + + def __init__(self, lines, label): + self.buf = [] + self.type_ = "" + self.packed_value = "" + self.packed_labels = [] + self.sparse_dict = {} + self.label = None + + self.__parse(lines, label) + + def __repr__(self): + return "Try: %s {%s .. %s} %s" % \ + (self.exception, start.index, end.index, handler.index) + + def __parse(self, lines, label): + self.buf = lines + self.label = label + segs = self.buf[0].split() + self.type_ = segs[0] + # TODO:parse more + label.switch = self + + def reload(self): + self.buf = [] + if self.type_ == ".packed-switch": + self.buf.append("%s %s" % (self.type_, self.packed_value)) + for l in self.packed_labels: + #l.reload() + self.buf.append(l.buf) + self.buf.append(".end packed-switch") + elif self.type_ == ".sparse-switch": + self.buf.append(".sparse-switch") + for value in self.sparse_dict.keys(): + label = self.sparse_dict[value] + #label.reload() + self.buf.append("%s -> %s" % (value, label.buf)) + self.buf.append(".end sparse-switch") + + +class ArrayDataNode(object): + + def __init__(self, lines, label): + self.buf = [] + self.label = None + + self.__parse(lines, label) + + def __repr__(self): + pass + + def __parse(self, lines, label): + self.buf = lines + self.label = label + # TODO:parse more + label.array_data = self + + def reload(self): + pass + +class LabelNode(object): + + def __init__(self, line, index): + self.name = "" + self.buf = "" + self.index = -1 + self.tries = [] + self.switch = None + self.array_data = None + + self.__parse(line, index) + + def __repr__(self): + return "Lable: %s\n" % \ + (self.name, ) + + def __parse(self, line, index): + self.buf = line + self.index = index + self.name = self.buf[1:] + + log("LabelNode: " + self.name + " parsed!") + + def reload(self): + self.buf = ":%s" % self.name + +class Insn35c(object): + + def __init__(self, line): + self.buf = "" + self.opcode_name = "" + self.registers = [] + self.method_descriptor = "" + + self.__parse(line) + + def __repr__(self): + return "%s\n" % self.buf + + def __parse(self, line): + self.buf = line + tmp = self.buf + tmp = tmp.replace('{', '') + tmp = tmp.replace('}', '') + tmp = tmp.replace(',', '') + segs = tmp.split() + self.opcode_name = segs[0] + self.registers = segs[1:-1] + self.method_desc = segs[-1] + + def reload(self): + self.buf = "%s {%s}, %s" % \ + (self.opcode_name, ", ".join(self.registers), \ + self.method_desc) + + def replace(self, opcode_name, method_desc): + self.opcode_name = opcode_name + self.method_desc = method_desc + + def set_regs(self, registers): + self.registers = registers + + +class Insn3rc(object): + + def __init__(self, line): + self.buf = "" + self.opcode_name = "" + self.reg_start = "" + self.reg_end = "" + # self.reg_num = 0 + self.method_descriptor = "" + + self.__parse(line) + + def __repr__(self): + return "%s\n" % self.buf + + def __parse(self, line): + self.buf = line + tmp = self.buf + tmp = tmp.replace('{', '') + tmp = tmp.replace('}', '') + tmp = tmp.replace(',', '') + tmp = tmp.replace("..", '') + segs = tmp.split() + self.opcode_name = segs[0] + self.reg_start = segs[1] + self.reg_end = segs[2] + # self.reg_num = int(self.reg_start[1:]) - int(self.reg_end[1:]) + 1 + self.method_desc = segs[-1] + + def reload(self): + self.buf = "%s {%s .. %s}, %s" % \ + (self.opcode_name, self.reg_start, self.reg_end, \ + self.method_desc) + + def replace(self, opcode_name, method_desc): + self.opcode_name = opcode_name + self.method_desc = method_desc + + def set_reg_start(self, register): + self.reg_start = register + + def set_reg_end(self, register): + self.reg_end = register + +class TypeNode(object): + + def __init__(self, desc=None): + self.type_ = "" + self.dim = 0 + self.basic = None + self.void = None + self.words = 1 + + if desc: + self.__parse(desc) + + def __parse(self, desc): + self.dim = desc.rfind('[') + 1 + desc = desc[self.dim:] + + if BASIC_TYPES.has_key(desc[0]): + self.type_ = desc[0] + self.basic = True + if self.type_ == 'V': + self.void = True + else: + self.void = False + if (self.type_ == 'J' or self.type_ == 'D') and self.dim == 0: + self.words = 2 + elif desc[0] == 'L': + self.type_ = desc + self.basic = False + + def __repr__(self): + return self.dim * '[' + self.type_ + + def load_java(self, java): + self.dim = java.count("[]") + java = java.replace("[]", '') + if BASIC_TYPES_BY_JAVA.has_key(java): + self.type_ = BASIC_TYPES_BY_JAVA[java] + self.basic = True + if self.type_ == 'V': + self.void = True + else: + self.void = False + if self.type_ == 'J' or self.type_ == 'D': + self.words = 2 + else: + self.type_ = 'L' + java.replace('.', '/') + ';' + + def get_desc(self): + return self.dim * '[' + self.type_ + + def get_java(self): + if self.basic: + if self.void: + return "" + else: + return BASIC_TYPES[self.type_] + self.dim * "[]" + else: + return self.type_[1:-1].replace('/', '.') + self.dim * "[]" diff --git a/APIMonitor/config/apkil.cert b/APIMonitor/config/apkil.cert new file mode 100644 index 0000000000000000000000000000000000000000..2bacc3bf101f50a0aa4438b33a87ad29a0cd9a40 GIT binary patch literal 1283 zcmezO_TO6u1_mY|W&~r_#DeV193ao)jyc~$pv*3VCZ=r$d~96WY>X_7T1_aPOUdZx$H)TDpiHE5f_X<7fE0JSbHNW}$GnW%zo?Z71kvwof`HR^7%+q^H zU5uZf{t}Qod)4EAjh=q5wF)zK{hC&M?xp+8H8Z0WPp4A%fK z?=QDWnHb-6>$IMN{lTD`ABUq2Wf!d8^TZ^z`N+w>Uq^1r9JnHyWpQWM9^sSgw?En7 z`l;OJ=DWb4@ZU3k39Zm7nm9XT^CH2SS`v;d5gk|W3N$t36{l}6ERYX%e_qLWeClsT zS&njUv4=uizxQN)4$H8$y3ysZIAyiWof}V6@BgqWc~%}V+i~0eUk&rNO1s|bZZp05 z`Ohg02gey6FU}a&*sTpinI7J8#8_=s79e*V8Y)|K6dWck9r< zubXTlUfC%x%B(6)PjlzPnue0Y|V4m;mu`BY?m3|jq zg&piaO&spFW!JZz_~M$O%=WOXDSGwd8O9Id5A5@gx%v2Y(-uaCt5dJqK7W1hb5qY_ zc4o=)jhD3k-uC&LyuMyo%s%~cgXWc5j|&HV!W`bEc?ywJaE|qL)oR92!V5Vel>}4=$>||>>Nt zpZZ4oUrL5U!9W5x9ZS3H!r`3 zJndZG#m6*GUgEfMRcqNf5$k={3jF`A#WTxGoM$@BIA%Vl@x_fp%%)eW*Idi*m$qP* V{xa*M|CfXxyvj!;t_svC0RWk+9Gw6F literal 0 HcmV?d00001 diff --git a/APIMonitor/config/default_api_collection b/APIMonitor/config/default_api_collection new file mode 100644 index 0000000..ecd1fa0 --- /dev/null +++ b/APIMonitor/config/default_api_collection @@ -0,0 +1,94 @@ +# DEFAULT API LIST + +# Intent +Landroid/content/Intent;-> +Landroid/content/ContextWrapper;->sendBroadcast +Landroid/content/ContextWrapper;->sendOrderedBroadcast +Landroid/content/ContextWrapper;->sendStickyBroadcast +Landroid/content/ContextWrapper;->sendStickyOrderedBroadcast +Landroid/content/ContextWrapper;->startActivity +Landroid/content/ContextWrapper;->startActivities + +# Uri +Landroid/net/Uri;->parse(Ljava/lang/String;) + +# File IO +Landroid/content/ContextWrapper;->openFileInput +Landroid/content/ContextWrapper;->openFileOutput +Ljava/io/FileReader;-> +Ljava/io/FileWriter;-> + +# Network IO +Ljava/net/URL;-> +Ljava/net/URL;->openConnection +Ljava/net/URL;->openStream + +# IO +Ljava/io/Reader;->read +Ljava/io/Writer;->write +Ljava/io/BufferedReader;->read +Ljava/io/BufferedReader;->readLine +Ljava/io/BufferedWriter;->write +Ljava/io/BufferedWriter;->newLine +Ljava/io/InputStreamReader;->read +Ljava/io/OutputStreamWriter;->write +Ljava/io/CharArrayReader;->read +Ljava/io/CharArrayWriter;->write +Ljava/io/CharArrayWriter;->writeTo +Ljava/io/FilterReader;->read +Ljava/io/FilterWriter;->write +Ljava/io/StringReader;->read +Ljava/io/StringWriter;->write +Ljava/io/PrintWriter;->append +Ljava/io/PrintWriter;->format +Ljava/io/PrintWriter;->print +Ljava/io/PrintWriter;->printf +Ljava/io/PrintWriter;->println +Ljava/io/PrintWriter;->write + +# Database +Landroid/content/ContextWrapper;->openOrCreateDatabase +Landroid/database/sqlite/SQLiteDatabase;->openDatabase +Landroid/database/sqlite/SQLiteDatabase;->openOrCreateDatabase +Landroid/database/sqlite/SQLiteDatabase;->query +Landroid/database/sqlite/SQLiteDatabase;->rawQuery +Landroid/database/sqlite/SQLiteDatabase;->queryWithFactory +Landroid/database/sqlite/SQLiteDatabase;->rawQueryWithFactory + +# All methods of ContentResolver +Landroid/content/ContentResolver; +#Landroid.content.ContentResolver;->query +#Landroid.content.ContentResolver;->insert +#Landroid.content.ContentResolver;->openInputStream +#Landroid.content.ContentResolver;->openOutputStream +#Landroid.content.ContentProviderClient;->query +#Landroid.content.ContentProviderClient;->insert +#Landroid.content.ContentProviderClient;->bulkInsert +#Landroid.content.ContentProviderClient;->delete +#Landroid.content.ContentProviderClient;->openAssetFile + +# SMS +Landroid/telephony/SmsManager;->sendTextMessage +Landroid/telephony/SmsManager;->sendDataMessage +Landroid/telephony/SmsManager;->sendMultipartTextMessage + +# App List +Landroid/content/pm/PackageManager;->getInstalledApplications + +# TelephonyManager +Landroid/telephony/TelephonyManager;->getDeviceId +Landroid/telephony/TelephonyManager;->getSubscriberId +Landroid/telephony/TelephonyManager;->getCallState +Landroid/telephony/TelephonyManager;->getCellLocation + +# Digest +Ljava/security/MessageDigest;->getInstance +Ljava/security/MessageDigest;->update +Ljava/security/MessageDigest;->digest + +# Cipher +Ljavax/crypto/Cipher;->getInstance +Ljavax/crypto/spec/SecretKeySpec;-> +Ljavax/crypto/Cipher;->init +Ljavax/crypto/Cipher;->doFinal + diff --git a/APIMonitor/examples/APKILTests.apk b/APIMonitor/examples/APKILTests.apk new file mode 100644 index 0000000000000000000000000000000000000000..3479b20ff968d65250c9fd53a40fc15bf152f096 GIT binary patch literal 156638 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

{hpKUT`fL$Rre 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 J4eUzLe*sQoFrNSb literal 0 HcmV?d00001 diff --git a/APIMonitor/process_api.py b/APIMonitor/process_api.py new file mode 100644 index 0000000..9ac8f2e --- /dev/null +++ b/APIMonitor/process_api.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +import sys +import os +from apkil import api +import cPickle + +levels = [3, 4, 7, 8, 10, 11, 12, 13, 14, 15,16] + +for level in levels: + + jar_name = "android-%d.jar" % level + jar_path = os.path.join("androidlib", jar_name) + data_path = os.path.join("androidlib", "android-%d.db" % level) + + android_api = api.AndroidAPI(level, jar_path) + android_api.save(data_path) + + diff --git a/APIMonitor/smali/baksmali.jar b/APIMonitor/smali/baksmali.jar new file mode 100644 index 0000000000000000000000000000000000000000..dfb862609bb8c6f3f1dcfeb13a2045ba4ca8b319 GIT binary patch literal 471233 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𝔇ns;p zb3}y%sb%=mpF#L7y@=QhO?d`m9A(0dx!X)b+>l;$NpX6CyQ?0Ev}B;^7)sxe-ueIq znsWT*QW)UccJ4h5GNoGAnxn%|QHNefWtb^I@CpB$mu05Jlo2#vp|M1$TBkz8{LU)r z9Jx-LHe~Nsh#?`8q$D`qYJNkDtT4x2P?{K_)-JR|N3%F?w=E?)=m^OS(}0AY7kT|Y zc>k{cA;UC(cV(g|oLE4-%vw-*fAqCLjlicW%Z?=@lE~z&>)DG+MK)Iy!Ew~1AS)x{ zw-6^oY8#((!-DJ{xUUc>A!nC6O@AE#iK)PG5GeC2lZJe!c#e$0!Du4vPbj&S7FRjEMaY7e{?pxZuL<;*UFWK*O98Q2KiKM|{YR-m z+w78ILlnCFSEG=k5uJpTa(*uwHWaUE$s7w}wZ+(!YG}bIVE-!1?WIov=C;B@G0diutA|V;5&O);1n)jp>$4$ zQJE{*9m5?{%Q;xg=z&WZW5?$FG1_t`rF*@60(p-eGarKWj?G-=W* zR{0$(rwCmD_a}j$enua7V+<_R%{(ZC9!$syChia_+8`?%kVIg%JyQ4Fr&;$d+ec4M zT>yPy0OOdp6j?T+Zd6%)cx;t$U~*m|x=-@*i;u$3KtU|69lQuZZRU(Tr6s9TC6op)S=?t6N1;F$XkHB&T~DhQ5SrPj~a3z!wXczyzT6GS!&I{`g0J*{E)3>2|5wV?8SasO((>V3-;l%0Wk zvJ*F)V-RR;+8(47_>{$4XZagzFY#ely2AbTl!e>69?HJX0Cw!^h>@5ZW$f#{$Y@={ z!hKeTH_nVjd*vWsT14NTd5#aVe9IBD67v|d8(|Iv3>Hxiz?XY2%5AB}bU)u_s?OAt zNl1*db@llr)oo2{L}TkQNFyhW6W{xp8mn9C)S@T& zl+AQosrrXNy>_+$cjuaFr#aK&Y@s2mOQ!%U8&v>3Imuc{6G=`b%|WhFPY(Gd*fip*d? zGMnkFbqFh)FB(jUK=y50AY3?A&yrvVUB9&9t>NpJ%&?vyCp6y6Gdn9PQ=eBp+|PhU zpQ{}-79v-fwqb;T(Ce8fc3A2-KRCf?b+DDw9U3w17;1JK)1VS~kE@?doF~<9KdKmg zkVdv4a?f(!XHnY+nU^EAKPXLOFLgCB`AstD*?C431@*#CXgT;c4|qOMxDQ^5!ZBSVQ)l9rb0FjFO4wu=ApJh*_uyEoZyavwV9$~){ft#qZYaC)p3 zcfNJ|c8W4G*M!OIEc^8{VeMaDg7>+>dCo-1+~>vk#_W?#*<}m}+9hUeEiNL1vsIm&GmQZ*gE=|&8ofWD5B_ek%+z?`+LWOj7L$0e^p8SLJNRh%zX_jKIQF8BTIGjys z?)vGznL++dr3{gxi0d{OXp2DH(2`UX{sZUN_92GJ-Jt|a%q<3VWG?9b#2$!59gu^k32L$d0KRzLej4-!ug(+3c+ui@i|OzXN8*r-GM*y5!_lI=dWmH|oePT9ti z-GpWFGMlZu#(`{5C-l}p)#<1Xtz&zUC#Cr+GR==-6AAp_h?V(rgBRCl3-%Q38$`yA z-k7dBNyUb z!)OnWthZuL4kZaafm~E-2WsTXPs3?04lUe>cNX5;OvlNwUrj0CrQsj7CFKWY@~dv? zi@rYyt?I*NV-meJHw7vUyd71|PM)*7%p-!9Sep?yP5fBg%2PDd`-rE#_ z{dHKFtYtqCwwiI{u|E(`FjRje2CQSqE`Aq9&`*CLMg*EJ2p#PGW)F}JLg4dEe<6za zioT_XX6&Xoh_$8fraDNfCSMy}5)QMWnESQV;P*F#GhLO>+;)XaN0yElNC^L=M@*a zJggyB*AtWXD*f-+7Ii94L-{4nY&u<+6!}V5>aos*q^$J5^@^^l)zvqksQoV<6cz+z z@g%iir=j4C(@=#yaas0=ao}Nw+?ZIbnq5ETRjc*a+$C{T36M1eW#wUfn)OY6J9??| z)hgaXYZ|a)xaVD6zw`SZ3#8MsS+1Y&EXBIH_u7ub!hw*1y9GB(HK-#ELNj;5F zKO%*S#4prv2n0-$0c(mLE+2}Kd&1s3NX!o+ONI%W&JKG zjsQQwaPvRU#hDfX<$gPf{JF6rdX6jSn_tgCh1e8}OE>a_o(9iP3WzPp{NB19Kzob- zT>M?OM&bqm;^ZBD_SZ2jQ$@pK zH{bfTTWP=*WK|PHz>PntBEKgnHgX37B(9hS_N-cd0Oi$pcJASEsmCjx@*G;Es-4As z36E0J9yaY_*pjjkH_Vt4#&|LOq2+>#GT9>*XC-BfZ2c$(+djx!9^yh3FPV=;4U#Zz z(Wch*dV8g*#wgur0hTeqK%rAefk$)!s1+4L6Jg+!R{Oe-et21zP@HD7w>OZU6l9cI^1={h2(- z65k84&y}AF>{cHR7xdO1E*s<)FEoUo3vzEBj|VCrez+feR|-vED9BBc|J!g-C?q`M zo-`=T2{HlAfH)|BM=soR0uU%^&B{q0$?xKp)erd=QI7P}$dGjO=Q!Ec`uLNexX!-%v~#KA+-hH!nPnZ3`7u*Fb6z zvGxr^9iK<;mU~P27MO-^L9}fi+B)`X0^3?XB0ViJ##DQ_<~IZYywsW$x0?}n`6bSL zVsN-3qtek^f^nRS=5W9vmXv5ZA)y%!D7FEQTWlO`$!PU&yHH4r&UBWGJO1t}qB=13 zyg1-d%)`(Q2re|zl@!!QYfnaq#orpSXKV6C$df_=aS605fk7&(L|(QHfG(>!SeGsa z*{)W(*=C@Oi;%|^V!2BmnC_vGEWCn*hpj{1-j}bMb87U|(mm&{Y9(JYZ6@QBl50Ow z1O0>roWBMlGRmH)@LKY-P&L6Xchps9?01Ic3W~Zsh%|ctp6XaI`<0ZLBME$i$wh{V zjCnNvR9Bs0ga^G9C(k)W-%LBUi{OTlomFxDYO8c^=|rR8Uv42Ed~iFx^Df(isw?=w zxW;jr=m-lr&ms|qctgh0do=(~2M2u}{^Xa1-|>{?kAr63lKCJ(v(wqdMx9cSqf2fH zyH}ry+(FUJZm5 z3lyyvfBA)`t`lLt{6g?wexarvWr(&lNCWK|38*cyC3Geu7{KsK?VzGWprtve0HZ|5 zY*sd{eX{-t?MsGBv(k(dAy1yA@Un}9J!C;n>q17{d4lmLjiYOCQl*SJ`&V?`vHP@v z0c(4=VlMu}mn3obMCK?#|1(KZ;*V?lK)H>}(jR1)e{%Z(qQ_?;b>7eoXM1$PH>@gs!R_^?Cdb7Tg>^Bxnk6L|a;774?VAdbltCcyzJA#ri6l@q#$~UhXIw8iH zQ}eC^;E#A=jA(;I3ipY2v0acfqgd@mUZsmzch5i=!qs!`-`ggR=~q2pwD1~6+FBi{ zbG_^RS9MjqS;k(Ch+NwTmMR?>sT6}xD1ltRjE5$tIyoA7v~XkKOC?5ETKP&uI~a)! zn#c}@$d?F3;w&@Qj&otXc6L*)Gm_=tKn%D zU$^$)F(fq&<&fyoVnhrHAex$#GBz}WZlmrU`eEFNwel3 zTYZ&ek7=M347rZ%QaD|&Hn#tm95MX4yFTarE|o{L+Z5Ch6cAc1R1vC%d@DAvOu!;! z1%_u38u8Q`3JS-U5Mjvx5;=0S&yAi5a|@5EYW%yMKu|!4q+1`IfoEq=@GIWA(F=mA zsI{R$7t#d{@`wuXqbws=;8*FD-CTu4P=-tH0Ba5WhvJpBjOzoN&1zj zypK8?jM399n%2SjL#Z7oyzmRcR?>sE4pOR4Mda&GUAE0Xf*5f)BSt^TZcYSAHN3(;w^-p%M$O>I*X2A>Hu{r{LBtzm3N({Qk|ZY(^m5k+p%{%!6WFz1s5un zY1%U=PBQE@Cd+B5E{8|;=c$$Vza3Z@yM824l?z)OaQGRmcgbsf>TbpnQu&sOG0*@l~ zU9`H;3`JsDTK_M%<|H~TPE$cN!1Vl2KyNckV6QDZXGZJv9%rjTNw5hysHteNgk<#M zNL+?1CTU#z)VdLdMcJ%F<(bf(hSEH{0TXiL1(|em&Uwut9OA1uh);vFs3h;<<%PX7 z>&lJOsmGa#g-4u7shA+_&1_1(yGYtZ2xjG`m(eUmZs0T*-A3Ui&?QI9@(TXzFhO_z zIp`&aUG@Q}z;^^DgLo!E#gt<0?(@sxCmIs71qUS$95sS!up^F5!v>MQZa%ND9ey>p zDdfW)@Q*0DVf?mF3(!+ix*bDEhmexV9H@FB=P8(?7P{{xM#m6lExWp( zr{Q97a~%l}IE7A#X%^_^L}f!`(L95zc z*o#5blt(!#*h7gwwxQ}%%re`@H*b%a1Mhu4!}MM$Kz<|7VI#yqKWDoa@EVB)ocHnb zZ7@C81giGGi}QMS;bY3`qwnk7fK+Bw@g;Jw#R`;GQcfbZl}Z_IZDMY1>O~Y?8zK9c z1?u4h30-F2;1y}r_4L3G!0f_#ck}O-O)Ce|Zdg8TnodeOA@fK6GVX<8eES>1xrIH* zp?(b>xqmeK{11+A8D}f2|7PkWtSijRApt%&i;Cfd$Hax?50uRC5AkxS@r30XP)z-% zc3=Q3)cOK*5aeU|&p&lSIgCY2yuRU%*U)okake*)i^7?*98*axF z32?*gx%;LAQiIha@r_pSCYKO|m!p*nZdaHy*;DH(0&a#x0Wu7ClK`k?yf8vCCI}73 z5j~DBP#i**o_H6Xmt=+%Ka3wD!i{JbCYecu*odxYC+e%Lt3enr?>UxBa2_t7uxu^K z82*K>f~CvJu8|KqUd5MP4vYy+j~2aDX2;7ePKM;grP(qn@~_c@Mkqpl2OH$amYyxJ$gtasf8#!t)E=aliiZ-$&U}xs-Hl!-vR~VT8xd6lTc$CdHlF8qYQeU?G z{loT^s|{017H2tcxaANUAIB94daq5r$>A(~$P}SI;&k%xa>9f|T7?{-zZNciJG1)e zXQe1Xyf_kH&+gb=pjHMI7hdMQg|WG%{L`hp$VKO?8t)uXH?7SIVTl6yqimASNl+6# z?^B;b@Kc(~_@r$~&f{9T%0OJz!Bi3Iu}Y)}#JZjXBk;QBRZ{Vxvp$SN^rue)lcqGb zJ*#GBC-6x&h15XtzT*D9>u$a*ZqCo=V(Ip8Tz?#kN6<1!%#9mfMP%&WQdn>X#Dz8d z;oC5XLGakcfpj=SQ7ZITKoiKu9QS7-`?6;-xr1FPFWC9#S%WBA6#bD*h>$nRa)>2* zap5S5zz)HxpK>>)r7k>y^|c=l4hvAo*iWFIX9;k z3hAiiL0{+lun1_3(^Rq!Z2-E^t`Ix-u4Ab=|9Koa7G|<1Bw4EW_$YOIjlgF-XE{dC)6g;8%ZPc5_wH=%?!$q0cbV^TD zV)-dpG!0Mas4O}rb)^Lxp7Di2FBDG2T+tgWr}W#?o+6=ZKU1;#51fyN=r&yF?t|BX z4#P*GJR%maedtO)b1Yfk3{SXhJlfKAlO!v~nJQwUch64K(6q8iJwf8b=DfV*LR}3$!1+($OuLZ6TV#xH9SjP?&nQK8s=>e1Pjqm`l#e(+{ za}ji^R@g=~i6n>q0d0()A(blO-C2inX2SCou8G!kb_zk`$CkkEq(JY^EsyRhS>v1D zCIBn7nCZu#ZKoGrHWMS@pAI>C834Vl4>+n3;Sn*O8K0vd6dw#L(Q{h(?D9{~o=ySQ zIW2XRy3n$uOu^68@14){{rc7a0B4T}1r&X~0?L21Zu}3gK*Y*c|G%-mCn{Th-7G=# zL17^ZYSfaX#Zwq$!T0}WuqaR)6o&z=hcEOUStgEHz3uA;6RB3knn&rr?hWrVe`Xp3 zM?ag-y(oLvu@O{)B$&S2mZSUDapy(*1@GraEvz0I?=#(bKO%0|L*7pCq3|fwmGEi= zHEmPpig^&MEpr~cEjZe(ps*aDT2BrxP6y3Sn;#|+5D?(~%Q))y%kMjHN6QhZe<-dG z^vi4z&v#o$G~}Bm0DA}NP8MLgra~V^5o5_-61cy`j}yoMgQ2C8e>en#g{~4mgdWCy zV^PmQKoI`g>={8GMmJ*7a005OdY6-k$ty-2^ub?Gi(eEkWyMI7%7B3qRsA4Z|8NKi zQznJhv9|=J4FhJXCFxOmmpZp=C}YDK6lNb_d;OO^%V}6N`8?|cCd}?6E>2FgoIywBU8N;7k0_#^{nef|X}}B|###pSCEx1SLW7r}K5-DYK}V(QL?W$Hm7(m1rfd}oNAG-9julTj7&b&63Lk|vv35wa?S zU7iV!Wjf+&Vcp=EHjV1e00{#-Q#l)rIr12WfyYL*T_RdjIZ1U*v(t%OHU6hIi?XhT zOzN!W<*Exbd+Z#fFzBTNHQ_^)O(gUt76x{aZBk4Z@i&;b=VqC5uvfTAd>K;Q*(xzk z*ww3#;}(oFm1WA4t^Pu@&&H%JQQoWE2UoN1IdAMF@byp_=up|eXi!wZue^94_pN~H z8;F6JAFwq7@Ino?bh2BM_ojql9%K9DCL1Tdi1k?&tDn$oI2u_^_g7cDzpY9Fva;b| zN`3q4H&i~cth;v;A=@ZgR*K+)o))dXh)}1m{hh3X*4$YLkpsD*9rfTI8Wm)<`K};f zORgng`DgiQY$kf~2FXm=leu%qRPhO;d-Ct>q{N4@KYKqC4{tzK$lpw;2&1OOOOazn znl+}m&jhhoA8DN53*)LPKE2?Y_*qD34mpXnxqqqd=*89mt9$K)(;$e}XbAfDCd1X? zlW%&FohAplpB=pusW1wSOc+{|6K;;O_L_3P0P5nqPSz z79yh7P6deICO%5#0tkN{jan5TB?bNfax(~d3C*@q?KsJJPsT6L{AZ6UuD7$-0J`&9 zgQ6)`_Ip0o^cK;tu$~>ksjHWVOxx+zi}$zeW?!I|C=Ex=VzkQF#=ku2HqsRa)guw!SgYgwC2gK1YtOam^uRC ziEYT}tM+-IiLXw@4AqAPHx_Hd$+0b;#lmEryrR^xxAhc6ad6M!TJjA=OF_Mg3{mHy zyJE=%Rhg0uT9Bd&U0-lmB{pc#&gU901Oo6SOopk^+BpH_kCG}=Y7KYM5ak0sdxZ-FOsw3?2dR&>J7| zdl04s9!u!!i9sBTjZ-%;=82IB+NI*KSFd3ojcHb(AbFajE0Dku^e2d(kZ$Si!L8(g zEA{cF1Fn~oo%c~-^0o18h5J%o*bxEzfkT6}x&?pyJ zmhR^4kAnCS(W!BH9Rqhrjy-UnxQs?E?o$v9ky)lb(5f=&IL;3XtFy+gM)J%BZ%Kd@BZ97x`Co)Lk{3PNz+7M!gc&pNo zZOiWG*OeF|hMwYk?bKehSoa`yu3j$r&TWzRRrrVE9ktt%;}Tt%vnMhU;g=AgY1o)w z?W0g!W`e!&ko_d?C;0)@B`(0k+d{4IpHRCE1Q^BJvf$4@HOHpGpJCghCCzmD7@Tbe zDH-=3x~eNDnx6xV{77yytim4&H!M(;%JWW&AOEcJdrtPxcX~&-&@P!5MQP=yV#+OW zOlO!&noJr2Xgf=S|7Dl3S)R|k{VME0{oicmf@b;-|IJpeqUngF4EHgm!;n5|H!9Fa zEFUPeVia%H6DlEKgov<;#s?lIpv17sy^6guK~-Ome;ba9R86)QsPtl>eh38{&?2XR z?ET29p0sI7iYgc*)xqX@$|8@P%8>ffI3zgp%B!tk7IKUF#D_>uwKLfzZ z+)=n|4U^2=QN0TcgKP0D)}LsB7Fv5!H6${ijQy4Zv5KM<}ss|lQ-+qn{#T*#bZh{X7 z7_5kXgkW&b82HO$-E$a7AcJ;ex6#9S!gxcj!*Ih6fbsIr2kSCgS7jSF*ywSNM1MvR z1oAKH1ky~KG>~u0I$RkfRGH0~7?1SJiPx(jCaz&#V({9^pht9{pCS?ATCS_#1fpl) zv|+LLp@@yGceiAq*DKD9oQO<)iIXC8_o%{aN1jTFGX=#ke249SNUZP@X*<9OFJv>t zE?tacsWSPrWip10$GE<8?&kBRdZ0t&1Q-ZXkJ*a7G!LuTYm#bjT6}=4qiDvY9;Vya zJl-Z=TAAcWo*+$CANcLFJM ze+bC62b7eaPp4k}4(DhgG$_iZIuJOt#%Qu~?_lC4-<;>d0-Dt)wLTh_THfolwbHFV zPE-%=a4t3tzRnWOY{;}^B%i7I83FVfs^~E9FtcZJUwd$K($o5pKdLAM6lLvqOxV+p zL~p%*D;3jGhMFX7utbGaAkCX`bCAIh+Ta)KQUp~*sT`)nC*rV~?=m~K#t>h}o$8z_ z=B$w&D?FZGiM2Ld`UBe)Mm10ibu~}M!GvD5_1MoC z%1RgGXb=NTYuWx3v({-q)x3yXd`Wt|!u>TAe1S$?$>wpbX$UqHFu_vn{)PXhQ`0CU zWOIhQ^TqE3?AInV!;FTg+@dw5qop;Co#P78%vFv$ z#!9S5RypP2Hq}SZy3J4ISy^D09Ja`GI&CTX?S4~Y^2!rL+nR)7TF8#7-J(&Bk=9=H z=!$c4u@<6zk7koI%;cxxBkniJ!K-F83zzr95(KDv-X_C^f6lq`sivHH3oVVz@X4FY z=i${hbW7#iv6zjL%;mv`f2EjSfQ$4P%8)5t?`N4E1bVUyO3|ZY3O~_ zQhTUQYYb`h;JDkFC(>T-kD0GZ&8M3EpG^t3M(9zqcwtR1az&8<1{})#)cmXbk7w+K zt%0M*7hJi!Z_1`uxmPi6>m35%@B)L@oPyv8m%UXCE+W7U6+HvwgW6WcCnFb!439(W zV=MIw$2hN)-%m)~Lvdbou<+(Q?9oVL3yxpG<=OeBZ*$JNl^^bg3_h1{Ac&kbrPlz$ zp`8N>fp-In)Kz=J*vj@q4?N=R3ls_?x5f{u~;P3 zUXnD-OoM~^3SU|y*MKynA0zxq5fx~=D$wmOjS)gL}j!O zne@8RwwWLuJ}NmPzO)8uD9{0g8gfv|PCxQNAjov1beqkqq{|{yIk@X^R;7hq;p_}~ z_Y$_E$jImpw&?wIMjj5H=e1NZ(Ebp!I#6G+YgczAZp>8sN4>Fk`^OV2?Tj$dbLX_jzy$HL2pep#Grv0~1Z3BL*< zb_S7~Q;@7@GeiQtOcwf3SfX6x28L*&%mw9p%qe9iNUKF_kaJeua-oeyE1IfB5*aAn zRy0t`Fc(y|kQK6+$=}tnQQ{Lb1m{4^$P_CDzMkULR@!f|0M-hQHukabDDMf5-6-az z0mv`XrX^jfwB{U;=`!|;dU3|2PKwNE8WBj9^GwvD&Q9fcIYR~K9XU;lJ(ko1>KEq6Mq(HI=9}OC&j4vH)@nfb-C1p zI)ZW32=0tM*(Y3&97LRb+@x-YWjMug8~lI?oj#;CZ&jGB&sXn8w^`~M zjYTCfVRToeA}oQQVPfbu3Ar2QDkGlhxUKUOXEoq6L^qQ`#%_r0)kAFxFn8rkf{^eJ z`r1S1`)}NMHBC z3U+6>&W>$zEZCG-V?+dO{8`}2kV^c2spjD2A_IYfyMuWAl6$cG)lU+@jJ_ge=MH9r ze=^Kt4t_#}QBZkDb%&SUvaaLJ*ma>a77(U{Sv?F!t?#U^%R0VnYer^VNfg&HO2IgMl7uViG`YQU6CTL`_pqJ-3 zoysD#X5ut$MwDF!d5S}kMuJ>Zkj}PeCOwbRaNG0wH+Jyh+ z#^=El`K&TZGhh`NTvwbK^tkwY;xqey|B?JP@rPjkiPvZS=ZXJck`e!j-2YoA(+){0 z3L=xs0VfLpdIb8K{IpsHhk1)K?m12(x^&j_7$iiQzwo@mKX)Rc=ci60ad$-7ui{aR zAdQJ&&o8_mdEP2I<1)8>ef|Lb>e1vC@aaIQq1Y+(gZWPW{S@aJ?%;+m=!YPd2>S-= z?jT)={ZCk733Nn!y`X;XpNI&3DZ6x(`siPO0uE2;MMPY~4MEIO5-WX#5S$wx!6iY^ zIFfFGq|k!7c8_xG@Y1UyHbwibQ2*}COX_1E=-*j8cK%G zZC+*Z(8ki`6u2q}bslAw!tRpXo3l>Nh1Q^U`QI457asFXi}myj;a;A9RaKC?R+p8;?X zQs=2xU{|sB*lm_KnkH|92MkmO8>M{UqN9s&o(W}ljmlS?N{Cx4Kdj+0EA-i>Ps*UT z$)?3_9g&(UE;7em#uu(yyhcj0ovhjTpBfqCcVWqrn0>UHN51UmCW@dyJ02L1Jk3xD zUK@F6G)3yW%|Nil;)jXCpOZ?}LLPK$uIPeBtPDNc@lzF`i_o5#wP!%Q_>5|82QsT-Oz<~o<)7FsKGovpC}z9 ztzijLT66X2SMaX|A|&85hRsYEMV5AZ*SR9MoSj}`3JQ%`5C6e2WAUb7i^@DaVc|hw zSfrbtz_Jn~+567a)y>fhBh9t#>&d6+&-ACx>rU3U!xc$btnW1<6L$u45t%w0dxP+_ zT}Ok0I$RfntetLalw3OUSICJ7S+O^i5Zy^P6+zqL&z(WMV$b420NjInv z(~{5SLEYld?LnwS8NY7wV4-d~NRk=cf#X>j6L2aHli z!Q&%RtnLhPXzmPo=6tAnzQr#yjy}u7B#O_)VCXE~Q213!A^14p>I;MqN?E`gB0L#F zfW51Q)AJ_bj~zJhp1CRin2b5J>cHasqvn6uB5L|=1yAv$9`{M2{A-Fpv!7UKT;_eO`EWwtru(&K1ECdKH zf!ojT_s><`)wiy$?vJZ_uV&`WOuv3T-8210y2Egme%#3hP23@Ga_p+~KL|9HfH57P za18`Y9RA{1aP8)Gn~x9qcBH*zen#@jj0b;iWgj_k(3AfYpZA3Inj!A>86ys|9-l6m z2ObVLZs*OJZV)Fe7K_B9Kz&umo@w42u4IFwmJHg9jC{$QpPldGGAFVd4}qL3Un^kM zCF*DRC&%I|johuL+Uy0IAIiCMmF+(%dkYq()U@bIHtel)^9b6F{rH2Glg*Wq?Nq&; zAK%C&XyagIndTfglsm_RIyo*HYsIKbhwJY~HaEf}*1^q}(LRNinK$;$M<9bVHAeIv zenXo*&KqIi|8s2f6z2Rnb30d!hsa>wGJ|{-#f&mQMnJ^NBTiAWuU)yu!aI0HcTJ+0 zxz*Ex4L_AGuvSN-I-&Jj4KAB&*?0m6%&<2>Ygf%9ZA7lCeQsP|&r8%YfTZUK?9$@e zAp0scfJffDB!8igrjWrXIj}0TSF(b-2)K<+Tf9Iyg;4_GKt3CHQP6OEaEhKxUo0P| zdvxO^=iKu;)<#}&o0rwn8g+5|S-IyUSW}6YR7hm{vxx;3J#lgB7NWFLLa+Iyd(`FS@cRbwgd>N}An3*P4WPcCarg=4VDS0Mg|ARp}!TyF1yQdF`RKQ4h#w+%NGf9 z;t?`pozK%9ug>{ZWWfyijq&g%l(g-SYv16y;7E0t6rqXzE@Mq_adgh)Xj~yE;ab`M z-$!$Q&_c(!lo3%YhJv+@>?dvr z6UQ6bJg=x|S@~y8j}e}=m5iojmUePCa^-Va_&4s8sMEd+)oM%aUZbg$F+0g0dt%R< zn%Gw=<4-kpEFJ3qdat2pACcg??xwELr>|u$P$1H;rKVX+7UHL%r82_|Bb>dst}bu^ z7JVr*`RMCkVDm8QzDtZ1SPXr0u`GHzS54^1!?!JDp-VBdsJB4Ej7w*5#M9ybRPu!Y z>2tW_Pgh$2Pm{U2{dY3! z2U$gzK`YV4dk3S6Q|jFOueDz{MT{{NCil|94IRy0;my%<_9u1kS&5U0zZ+Q=71T{= z3yFOCyl!`YaX95uRDh|UHPK}e0nItdbC-6$UU+|O*f`T4!a1~_Q%UKHM#rCLk$SS@ zF17To@oVO_W?*@=SEaCAnZ_s;COzCl#%C|W# z=8Bn%#*&Fj33(gK#J`+j1F5^cg@Ua@*d#hmQmXWN_ub#l0o?d*xb zhr__^vXdid1nT0>+bcM0nto>^81vkCU9*m0m+WCE&o5Z&M)#Mu$X^5R-(iuma!YWI zb;b9{jl+@W=piEtPdFy#W^&&rL&jQ zV^Hld{}8((e#r!wZWy^LeRXL@7%oWukh7h?DZ3lJu((LBx*%BBP&SEuy~AUS*Yr#7 z@n_o;lJV9F`!-Vo`HJa*dN;<_NOnA)URQJD;*Wv7dXuU?OwT`0@85mUO@+|eMI0Y! zE#MT{K}tdv77ZA;3`pMx?BR6C0I-Q+`kcC zx--KI|3duKkF%T@38lEDfa`I}HzuGb5>a?cCE%Jz~$8e5VxY7I66Fa12zekcXjjlOlEF05h4$t`|97Xcww5caQi`nVh)HxQ@ z>6K7w#=Wt6f5DI0-KdN8%gFy`xf)J#eX|g2nZXqQ(?1XO|3$$waI_C__4fMTCpbQv z;FuULkv{YKZ{v>`eX5GOAhkvRs$3S&c8~XAO?;lpjmh7z{>h#Zj&bH-);_#bIXSu=fU(?@T zdLDVBXzxM^b0Z_NU)}A-$!i*9qc1=KVdZ5PzCn4?*J@k2Lu`kT_d#N330R*H#^#gmAwm?Y`60 zZL{N@FMJ_jfw#(v_f1PJlzX3fhl-QB!2ufN_(}SZxnVA!7DfmVyLPF@7P~HKE$Ldd zGY%{Fw7DY5k<4wwG-xC)rSEf!{;Vz0(pi#y3ap8nN>5>-9?;fLTlgg)m6#xT6Ik8$ zf#abaLuQ>R!_c37FWJMOQ+)mFsN1m2eMT~v&Wm|Hxzk|RQ}5AZn$lCMHY`o2!hm)v zC}Y{UU5ZF&#o0jpoxAwUUJS&L{FMXl2U7S})x@GtbnstOOsF=un?_|NX#0U`=r~D4EDEQ8onjO)S@0`AEvzF*E|=# zupU8ecscnX`wqW@+|S3l3IZp-8f7&pfW~^B4qhkBYCx6{4Bw=sfLN(47 zb17i4p`duJvlA_9O&q-R}?Y4w`$;Qr9r&^IS0Gp;n}IOed@Pd3SHaQFwL zO|bj?b6*eAP3ybF`oo9b9B^Hkm-68&GOV%$1^K*s(yr;54iX%eIz_LT#=OY|mH3hX z$eJLth2AHIla><6Bh_RBtR}j3o$sILUDuX)biT6@>p5Fk5?g6a&UT}X>X!R1-9b+K zy3SV1ynj*G#x)JUGMo^?pc^^=LySpOcx;)w+EKS_AWM z_34yhFfGq41i{7ecg=9O(Z(;#x`Q*4+m3$BEJUO~^V&GxE9a<>SkZuI#ktCF z-ae)LMb0Uv@{@kAmeKVtKGf(h)%83`(Ztx=4d2j(QhJi%OM(Oiu174nu@MF}SBk3O za=WQ&O)y7Db<;k6kb9Ws+4deW74|{R%B%rKAFxPh`PW+h;H@n_-5NlUUi%|6Af2Nf zE=*VU{Zw_E9hwimwD`Pzz+Dy^q36Zx;O~zdIl4r-i~RfhY(Xreo0n-eHGw$!)4Jg{ zYVj4rKUtO(30YoW5r^|H1koEI9h*M1q^+PS^8~)*`m-VPR^-#Pc8Bw%FGCd~v8O%3 zo#$)>fK7UxCP$d4@A{K~#6ebk@Wr$|-@AHOhN&>}se+|=YI0o%YnsvV z&lhiA_Lc7R^K?hDt$x1L&Ci!K^Di2?D{a!JTkHg4vtLd7h!|8?-#+|$pE&(xu%Paj ztwfs{=g+XOEbp50_9+9S5sOYAdS^6t@sEA;@+N8M7#aP@H55gs(y>Xy-j-)14*j;~ zmZ+IBtKmXi*?)_5p!e=(2STzz+DUDfhab|eW*C&!?~_SnhEm82zO$>1#kX#@sQ%7L9#L;q9KXTc9lPi5}~)~;h$?h^jp@$#(n6>s!q z4m@Q|Z&=&hCrR|Tj}jc5)94#NPZ+!eT07#mT9em{*3ib(*lA&$G!6f(D#P5Azt*bw zsHiJmv?IKxIPU#K{-5#y)(v#M!bCz^CH$Y1hu8lX|GeF zb7|1QT7%6zV>y%@TKRiUP(2DM`r{j~<#yq?{}mZN{8CX-5qdUoSmG4W)gEv*aJw1W z)Gyf@*7O;)b$k1``*?GCbg6pK!eW-2k>SN%a(B@92w;e1z$`9+Poq@f7K@AT!>2Kv z@x}eW6<|Wbe8{5O2#b~BGysS^oEzi7#)lJZhN8_PuJNq~#hFrk>YEv|wum^_H#2l? zJn_13HRx6N#Uk)}^eVbyG;ut*a7-J1@ip87$(cz!G0LA^JTcl|T)YS@fl|!$Z3P!H z2lqfepzz5+cjglR9_=qJ&KBj*D9#q`FDPCW<Rk^UrxO5+k2#9%x^2G5Jk8&E`$j#jSaDfOXEX`;nG+T1GqFELnBrmtpM;0Yp7PrAfq9&+ET1K-Wj@Cjk26zZIbAT&RxKKp#mIG{r zqH+*hl0}J^xosT5JK)La84OX(Wec0js2R*oq-6!0)F@iOZ+aU{)HZ-#UXQWtX43&aj%q;eBr}z1Mr+2fNe3??n-h4THm8H}k%QQqN1|x) zJ&2o`qG+)^gqpub(c*dFG}}kf;&^a1??%xQ{6@23Ly^K-o&akj2XQvfM}5ZsjcenK zB89WO0)`+5@it#ZeJ1#gVndGFhqhb+=0y#XXy%Ht#QM!?vleBE_nXRQ38fEzIUVeU z5+u}Y9<_n}ThxZG`4k+4w1(wD-nq+=Evw$j2on8%xD?3 z-?la%kU~k8?ZI@IH)zdOQ8Jjn-`nt^gkmjEfvu2lIGdNE2JnC5*?6Ob;w-O$H<536 zn{T5A2!5m5yheGXSY`vuqTf(9&qjwM|JJavMt-DP76T8W-_SOnMgK$ktzt8T^hmnw z4UWLPVQU_W`iEDH(iOD^mheF;!H}j6#yHo6n}OS+50J>gmhc`h%eg3c4aFO?U*;Si zEQNB0)-QC<3+_WX!|0bfrvrzgoT2xNoy&qBQO+>K_~8Gd36M%K!@S{-NVAxOeCN?% zOyt+NVSw{8a3b<+{4lihPhb_~ErPpeunOvH)G+RIUoZiZEL|}2ITn}=r4+57@Xi5l z5T%1|g%(D2egsa9o<*`k=_k3mP<4>Jkv0KgwCC4gF{CZP6CpeiMGp6F8!Uz_hjRA`EQTtFeK!a0 zLXyL{YXNtm$l>2%fpyR#UY%z}m!dow!mE(wXzvQZvnUaw=c!TFxKFR(c_>4;cl+Qj z|0CLWlFAL}J}dfvu6BInS4( zhVY;8;NB>aICpE{E#zn3^V_H)f+tk?Ym^tj-FL7Y@-xTzY*Zxv6As)Oy+vLg=rQ4Pmk}sf$3*}_ z8Lm_)qCO@ziw(;H?g5XCxJndp{1mo;Vcj@ezzES>`ZOhq_~zHc&#sHnH(3B3hW@B? z#$gQrA5(wKIp?rDpoytJ`kZyx9N^8=AA8O_911vN3X3{t7*+wiW(tcr=NNVdlrn`y zpR){`0IZq9V$XSo-vPFmo}$i~hIIgPOiwZAT*KagA*QG3bGBh?KqS*s>`xH=TSE4j zcpIisLK?ILFcA_19s?}{Dg!YC4g)mcqzv1Za@a496aWKo5g9Wq(AU4MR<2ew zjcq0?qhpBv8TB)%8Q)fB7$YtnkVsFH;zKdK4Jabacq9JGR%locpu*%KFOIQo8rJ~$ z&Or0Q2W2=Jz{XIV=7T+41E^vs&hWt)E&w<)6sP;(5BC5L7>YmmAP>g_$Qdlse6WTq z0C@}+89wO4IRFy|55;b(ZK^nTqDIATx^0X&Y9cR%Zpv-4ICCN|#dE?=rr&Rtlbdn2 zgW{wJ|0s3iYG+BEhRr zs%^?RXQC3tU^-+=4cz}68xFDC9crb*3!?Kg3;gk(%KX}ZzPXl1W# zITT2T1>^PsT!ghm#*Fm})$*q4x~aN}%^0>ki0LPkGUPHMTiW4}I6MF~5x%@Q$u@u7 z2$3iQO|%d5uv6SuqE336SRd|T9(YZKb#@LhZNW=-Y;I^Mu+e;;7r2aczW< zx8j)F7IBw^5a$h{&p3p_!=Na zzn+jLE<^i>{>cB2%ohA=nAK23%FO@0(Vk?ku5hGB;|4uAns3SlLKrb>RaZj5e9lx$iVf&JkK z#RGrB{~Yb*OZbyo_GouFNb&!Dls5kVIU@fzm>w`$MEM8|vjFlKEfRbrhDiY?j27|D zc-wAq?u3oX-T2$+&O@3vpM*rS{(%ikA}>zjIQxufgQo|vr zDXoSj(!eI;Up{o<|K0)`JYUXt_AAQ$I$lIrxG{IH$TQ-pt8J=nsOQ}3uB?S|u`a=y z8eRB>sZQ$t$<^z~*=)Qx#{1T{n7`abMo{8BypT%;Z%5YoY!szFyH}hvo@~CzX#x9D z#tjz@myE^O$w$WXl|sIO)Kb}UASJpMs>!O3WCVIgg6hzp!ad#XUy3t}9VB%nfGO(P zxsLkLnbYLtIRtd_YEJBO>LTcEV-+k0>=XEz-x^wCIO6w%6U)bl)iqLaaMYU_B&CM> z`Bim_fnORSKaZeT^Vn>;ySp~LvK{U9(%l|jb07r|SGCp(mKh)rT3^93mzxVh#QH0Q zoKJE&vAYbNwKN21+ezkYa_x9m^r!E5X1Lk8xbla(yPF-fJuY1Hr5}l>*TB#}resOM-5QBBxBZXg2;zVs$`oDV?B; znxj6&D^8am@Q>l=DY}wG>WPi7TbZ*PHI4W|f&n8ReI&#DYXcP%Dxr#scvMtwKYxCM zl?5CY>PjdkR#6EA+#MhLu)rP&HHY6qvL)he?F70pq$Oh|72d9jmQ5Vgz{S_=F27Fye`6+?Go z{xXIwYBv;og%zSarTK0!=3wzcpp}Lbf|(y=tIp8;GmqZjnQ1okaA?#X;`5}}K=dNo zzBt%z??5M(iE1nkv1OY6i4pBRmCOqEfDHKWZCnM+wph^0k6s0y6+@5WQ`ty!j>wsq z?#JSVoN{NqZACoYobbX*TWUkFr&!4~4J(6YwA8ki6!_x<_+#FWDYGa~0L`dpnL5WqY(My{_x1e}Es!c!@aqz_eWw6~gOjV&Qa84V3Hvv+-IKG6Ujf5mlV19nMu>U4Vc8+ z*T0l;(16^2v+5TtgsB(=4<=sD9pL^7{ir>23u2Mj%E~N4qso?rvPct22oKw`3FoFm+5rEg@NF~p^tx#giK`%BJ)ZM>$z)XRNHNOfy@ zS=Um?$4%L8EGqV7slK*%5B` zKMVfsHbsf>cV5ec16B3>vebDy>$<#V9|6?=T5>D3oV-72o&c3NsTV%U+6TE!(d!pD zXr@=vS87*g35Wons^>tN0)Zb1?2dKm?A@jdgT)b&R+&dqDJt%oFL3Rzd9sRRz$%S5 z_FaMpWmmHuO{461#7DGyoR{Nsa(rGcW_(??wYb5V`I_KArJtkp?sU9NIYzVNMvx(y zDNxLs;1feP9|Wxe!ksT}iGF&~qr6Y-dthQL&UDSGU$9sA#^9VY^9T{9zHn-C-gCx; zopUO@4w)Ok@eJ8?{=tBbO#o};EFnfJc7l3Q0teJ6> zu|6qrBqf*`@dTG^b<~`I0Vt$Wr#g6>tEbp+wm|4D;+B+Ho)COl%^qBEreT;Os2--9UUu7|NP#gm@3)u_~JYJ5xVNc(~#cT zE((LLx@eTyX$AVidTXgXt_t67xF~PGJ*jsUu8e(aF9~y*W}!}}9GYuMd3caDbqNn2 z8-FUSUERmyTA0Zp?I1pJqpo$QhKZaSHdc4`mi3lbK76coFs!Dkiu+4?9e84dp2Jnk zX|iu(%xs9xm_ymEKeiO;1~RFwf_Bwg*_VhYvgEO0zU_q+*hcAVDb->zSG6{Zmhs6$ znnvXsI6jb0q8m9qbjD>&<$MJ=$GStqziyG6)l9$nC*{H36q$&(Z(_)29laFQc{J5i zN<+3#++Vo?tyKyPhe2cD1O*ou`?!X6^LfTi8Z&8ztP(;$Nv6{rBoX1x2eB;mj4t}u zX->IEuf^iUffkXt(U+UwSls0`bOS2$O@5$;_U89v{-HN?Jx3KS?u_4kduTs!Cp%j;7l$QQk&%D+h*rQ%%4+&V{ffZ*Zm1Omx{d3aYfS zaSJ_S3qAYBYOKa;5tD@-(iXR^BO{e!D=%^CD@S19B=Ijq#|?WYBry^2#mO*npn`gG zzsa+{(V}8pWw{f37>&Nm=y_AYT8zwLh%ojyW2{f#1_RBS~aT<%&)_Rw`lj6 z=jCbt8_T{R#xi-=npcck+Sl2CUy)8`{aWG~Vbk1KFgd(997?7?xDCslV8Lvgz~o(U z_*X`gR2jK2aB^&Hw9jYcg|(HLws%=)+~m5vyiV0#QvlNxw5_i#seN!H?UrnJ_fm%} zki~F-Vu_|Hz(cbbx9zM2eKCo8153J=1^?#(ZCu3Y`YuLs1>W$^#TD1@qGm{mUYX6;z1CMCZvm#m;bj*G%)=C^-lP8SZSn{J$=O!2r1v4K<1)Y>|+ zseUC<)s6pcad-JlJvX@^NpV_`t{PnpQVF*&a?U>KMHO z+R39a2{8{-W9u&9i&I7VwNdh03srx`9tU|wkE=wjLecx9X$RmEqyEYl{EW)ziPg-T zD_D9>lnF?1LYGiWo;_caO;Nu6P9RN$sRQ>4cbk5nGFonqHZ1T*mfSmgYGr z(0P9Q!fyf%T+%F+k={5sRV2Pbc)73IProc-ttm}I5$4I-Tobl-F16dX=K%8j zf;x58qn5bW{A}gO{^cD}5=7Yf#5^d!l-O;w+X4B++fhAQ<=60T5r4lH&GuI`Y{M5m z<&M(DE@T93!1P4onqYCUIpEbAG~WV`n5TS8iTz^Txx-0&;MO<>q$JL(-kz5FYG$Wgsm@oAk(7L&6_^?Wq%t@gP$tO+D9dx- z$+Ob3IYZ?t1l3;RD#3Cr^EG0n#rxlw2_ghX!p>{81bZq)>Z^_ajJuvkb{v0^h_o~c zzivIA#KxulTlZAW@wKe6+bi7Y-)IV&WKKe_;BK!S-fCZ`r$t+Pd71jy8?1d8PUa9) z-ri5uNlcVF%Pf6PzF;w*Dn}xHCb6OoVqMbxOTRydxBeEib0=Zqtl;p1QJ3zw*^obPl;R48Pj=d2?|c(0xAd`76X?gwyhMQ_q!;GT&-ec4XL z-SWQk9r-{N0Y0Z2A)prh_dx|!sv4lKoE6?DZZPJ7~ye44_`#Y== zZ_0>o=UEA*qEGePOSobM&;EG+BcsiZ;!fgI&F^`oPrk0S6MP_YZ4|a}TyD=Q@Qugx z74{bK7^f^bpX(nxPpd`OGiCAJPZJfM=DMVw^T5%4H^{lUcT`RBPxf}D_r*QCh)_BSC8 zU3%B}5b$?X(KdCEcdc3Fo;_o^s1otCHHN!wQ53;GXS z#0Ix&Tt1ISWKPVA+&i+$ZJY-tq`x?fzieOd{RdX)j9LfB?XiVbZfXxtX!qKTs6-qra&bNCZHItWrqAld{JJ`_Z^7dCR*n80Jj&_8P zQf9tcxY+4x2=~SF&SYe$-~@_C9XY8vB zD`$TvG164zm%nW>Vv|qRi6@oNhF26AQxKS55EzYqNgrJL?M~zb3unCS$eV1Msjaci z<{AAGHjOF0Uw2PFVomitcP^GNB=l6deTzF}H%XkZMg`&b*gg==WH~y?Wx?Xv46mEiThwEi2YLs}ykjjmNhH=V z7Xk&^Y|`F@_cfq;!*UY5Y&J-ojsvEJ1@S&a6*4ZqGI#$fg(W`9qE*C8Z&rdhi@o>J zT*mzp9b`{m^TNkM`Oe(`*Ou2-_>l9KOQX7Rfrede&-YKbA=0iII?S<0YGucXmzROo zpQBXNw61Tfk6|((Ztv%-$MI$RzJS3P&6yKH&}f_Y)Ryg5?^J|M-oPXNVwOTruP&0CE&045ERp8+8lM~btIiiax>G%|UbCY@$i zC>z7Jqu)w?y&QIVWWBlpX-k0eoAkYP$4(unoH-qdSUj(JlY}-SU!5pk(;TbS zXGwh{RT}-%fnV$$dgFK@_4~WgONHiQ>>$S}wxG2G)!M_N{v7H>#L1AWRN5}O|0fCE{y^<$dmY=UX8zCVkdX>)Mm8y7! zohhv{eN~Lteyd#iXUgn;GEydbjm}+q%rbp-<)S46>U!q0UWN;hHWMzlvy~~5!1Ldv zDUu;K>dK#`LmSE=CE+pUyd~ke<&7obndM$3;c4Z6N(PMd2xeui^mJxrweb$n9j+TY*^|II^XKG zH#xu47yj8soPzQGCPX<_rcZm0a8_1vPIp#TWsZMV7U3fx_;l#|fsRi4g`3FuL0;VV zHsM`L|9dx0f(8F34VUSz{D_*VtTyy2^=IDDSqm8~h=x`SgWIcDAws@~Jj{8UZzXj< zTvbT@*bHD>(L7@|KeF884k74?+H~Ll$yT3rXi!!YD!TS{BR~EHoUBmXYlP-w_o=vl zpfBK*;^eSeWH0FPlVQ%0TO;8E_C#eN=Y_>7C#Fv?S0uKPb}lwQYX0Wa-msyEnvr>fNf?entW0<-o$UW^#1&{+=1SzhCaw1smsw193?s+{Zs7F}Y^DMY0wk>uV>rD)u&y@WIuEUU!}_uXH|y z0Ww7L*U>$`xyqa`?nMLPi+nXRG&4R;Fy6tQ0p+B{6 zhe(e7Sz`@}J8N~y7rqMN4xqYnYxX})4hho~jSP)$=hp|7PM zgJvc3xt#kpc%e5Zb^>bF3peU>Z*krOyXSnF!%c7k-~Lz{zD`qn$RMLiZ|)-N^yfV) zs;ssJQdGu&M#>!YO!*s61YBk?Z00#KujIF;YOE+iBd_hwW8zse(dYsY)`Cr#JgGqy zMaqS$Sywr#Cm3!=#-DhhEa6%j8fn6&8YMpnDKiIcnTIG9I|7P+kQ8JN()G9}<$4jC zF={~b7@@Mj5EX}157+3ejjlBU?=EupZJtj|exR|Z&~~3MWShjta;_DLao9ZlJQmyP zsfls1?fh@{QY_TS-O7fWHhZl!{>78%L(zdiThK{+d!7r^s;Z=h1{RZLT}8N(`J6FS z83^w{QQN|%jf6Dtn^ZG3MmOJ~v z24Wc{0=3ztV@^Y!hKMTIpYp0h4%bhVgAs~+^H8SpyhE0wcQtmN2s7v9utX*AIdiDD z{@8dsuo{L{{^5}6$gQD~*sOP123W}akTRIL=<53QhhGuRMoD4^ko_S!B6IQZM%V?@ zMkXc&v@vRB$LFebEk$1`1=kNZ_;kqkpi%g9(vBu{krhnQ+`S_4H7)tn!=XuYQ)X~5+^ozxH17#JJ0 zvsTk!gc<>lnJ`kKGjrd9Jb}k77|HUPkR(+Tx0+H4ZVU||&8NmW{T2$w1l3+`jgE*d znT8w*yJ`x~qffT`Mh)4iws!fTqT$IYAP3RNn2(xRT#j>xpg|fT6SE9+y>wHKpn!f_ z_EmH9-*RK8Bt5%q&`F2>Dc7uvW8<>UZ?>af&3_Axol^geJ!jGp8C%V%*HG}h)#w$d zm#)e&vrD63Ix4f>M{gJ%GZip~j*Lud04E4{N14?Ui+HaOz-mChG30Vx=-gWbw+ppr zGmWQCWd0%VIT7Y@OhFM)h7u7SIq*0pW7*Y$n3$j(z)3P<l zqX3>j!g#x05OJ7VANomHLjZA>atp{{Bt_1;H;Kb80hBc|IR-ppuS|KR#+HzS(+*W5 zN!C|mi_gL7fSPF%3$gIva*?}M)aCO!sY$ZbTa@R#FE`Cr3(0mq6W)wW<1mMF zb2z!TB$CaNwT&sLooS><06nV43`S{MRH0It=y7nnY7$kf41!%3%RM3mWE2In;zSd77<5f#kF09DbvyZ;NJLC;JsJ_ zEr)S(N2b;5o^-b(T|K5_mJPDp`l0rKOj8~z=8X!Lfx=s8!!-2RSdWW}Wq_yRW|7kc zv8cqhs1}mbRJ+)%6@HcWU@)bUEMhkR607w3Q|H~;5z=kSC8`>trG8p<_D`jbASJ}N z8f2|p{x=yIV!=FWoB2%fsnQkUvW_rO;~~(&onK8uC+TgA8nl!V8o(n%znIL#{7+CH zj>dCJb^^09gz_yCe-+w|NQe0kyPx7hP#}}42L+BsLPNq2Q*v@m2| z2`y;!r|PNc9qn2i3%}lW)_9{eYnn5COL(Rb^FMaRjKv*Q7&@XgSjC^$>rAN0uP48+hYi9X?EdTu#A!Lcz>B2gGuIbg1QJ{oFg8ZI+A-Gu>Zk)z8FxNK z^b8>CI25%zDH%p~+0@DUOu#aKscd$eIZIY+`%H*H3ki?Hkv7CnY4^!wV*_|N_EU!Mj7 zfLG?#K$5tAs^WimI;jz)W%ntj@>L^V%9Hs_+9TAcT-gg|=~9U>AIQlQq1sY*&TpE?MG-B)CqjS|tt|yLAjT}O>&pOx90g-P%+4uiQ z6`si}R4%7;2HPpBCARPzYA;4K5Y#U8KU8^KUGlP4|45KHHeQ01;NA^>3(gg8zSDs;JUB8Ff+KSf*>4SuCbcZ_3a-4M3cT(f`&6S zJyEH_o{R%ewhE3i6uPqpdyEe?34v)`0u$}!|LNzR+6}J z>SGPB&qQjbG1XjY)jQV<5rnY3R|6WGwja2+q#q;a^>ZI}tHweWcjjv`E&ir}hTa}? zUp#vA{a4Ni*v44H0O6jAKewZ9@aF>f^ajzkR(ZxwrtMrE)#E=edEYBSb(nU< zdHyu@f?2%Pdl!cVdmW;@|_jp`aZ0D@LjCKBpaVH241*4T3cKHE`ith6sJn|bx=%|`9nX(jB;h_8Fk-Zk)VmoBeo6D(xNs_fw# zOR1{+(3_jc`O8R?8bjLcOdS>(0pNuS(6T{tn59%LBLn$8?BJ-;sXpHiyGf1LIe&g-0w@K?x@{~vfg0jJi4kr#zb*9l4Mu>-DxOp9BPj;^s zWhNcD(H893FAwNtPzkD1hRwEzn<}2>9zJPAu!bE`sKPp_kva+wX zt5=Qcth=essS$HBE_-V1bIxLsZx%)V!vJpx}l%w-^KfkUx#6ZmTlsf1CVC^fT z;>xzIlMoz&yE`GcySux)ySqbhcb7on7CgASyAy)DyMIM@-~0N0@4fE+@qREyjYCzP zG0vDZ=Uj8Gy|(3{8Uh6LZ?rv;mHlPg|gvY0KdKF#S`_Gsr=Reb>yswFt1wI zHVF^tI&w~U6b`d<@Z=kWc8SuOeXr%)aY(9{jj6T`AY`BgeR6cZ_u6PK$vk~7cb?=p ze40OKa-=y=uDyX%T&v1nFSXKI(kW8XvsC2jSE!FQr#f|vQ&$2%Pn z>YMf`&WTs{>aJJz3;buNJg3$d_NgXm9~?8S()OrY>nR-(^&k7+iKt|NmsU%Fm+B9{ z6P2f5&&SSDJsbkd^w-0I7vQ&nTmi3azg^*Y`*P)sa z5$B=C(`)Ir0WL@)CJohK3w@U6za-c}e*MarJJz3y!AW z1J(OR?Ux$am$YAMh2&{_YK0VOTWW=0D6YybQKW7tJu5$FIaTErXF2)h5{@^?PBM-+ ziB39>HwnsBnY31z2AOyj7xmQqR8c%ovmsC0SF`z?wykzbPH|Z#gHmits1duQcq_}e zT(kT+ZF7+=Y{$L6)HKUPLg!k_oV?_+j0dIs+)`swef&X0uGK_FG2!gUEDV#=BQ95XJgdSq z(?mwL_Gb+=vej9c4zkr%SvCsJh8oXj_L-VndB+r!TLs4klUt?Q!5Ulz#{d&9-0agh z;8T{{8qIRzxsc1M!@4&eZ-R3RH+lB;j4*i)@hmfW4r`gMi4syi?++a4_qZ|LLgGC9 zWLPJb8txfqk{Mb?_)Xss#aSoPv&6)PR~cbweZZW>iR}U-%jv^KYL*vWbyyD^FZXiI z37@jJGr>h;mJ@Y#*pM+{_UYn0QR&{9>=rcFqv%#R=Oe{dIF|+V1xc0{_eFkIE8c}s zRvq-c{diWSXP^mAU|ABn){9aW7ouCb$uY0;un6`&=J--rnQ}yU%&f2>%*Az<6Ir!- zzz)IMo|*~4+SVdNj1sFiY;{-*3t?%XHPVGumKSLCt{NF(sqZVIAE#i0%&fJ6&(>;|6GyeW z#11~so|*_zsaFK`E5SH!;8Uf^v7qwflKqwl*CFdxKc@#|_0m#=kat(j3BNM*yysRS z=b@z`ibWDW&*tJhAfX=c-Ir!oybS4BnVn<%ZA5b(zTb*Ihxgl%xl-9Se=Kg-SHY5cTGBb+&ANuXK+C#j zx=7BtCb&?^TE)1x7(WSoiZpTIRpy9=**fLqKvFx_K)-;?8jbat>4%vymdIw1ZKmKf z{dR}u6~}v=aHaO4j%=zBa^^%Nn@si*+bfs%*z_v(L!HZHFw_jSP&S3^BZ5~M?=k09 zXcNKEiZkD3(2DM~@n~dYTex+;={tLM@Cxld z1o(w@Un78^*c~!}QPj@`!zdz`%U~3_s^Kxn##V8geACzUn&1U(e#r9+GryJtL1{av z0i%$f4Te?ZEs?=08c@JvktHbLw)y5S=Jks=F!G_t4+{P|76b+AfB~FhZ#wvsqHAF^ zR*|T5Hj6A@I=Ah&4F<0b-a!3_0l%=Ot5gsa-F*RYilnK+Pl^k9(KtmAV%Z$BRWaPI z-*R!iE_i!cT(5MSo$?OkP=HF=il1{+552o)&C{^jcKqovbjB=z>4DK7Q)+o&x3usC+<@o<3x<&s{-c_};EOUOhLuu0-5e_YTvI|s z%?Tm6>i4+wIk>zIR73wv5z?jj0b&ox&$ZFS@yF1E$dA(Wv)+lwi##!AbbJN<7ov7$ zF(V;3g5vszVrEB-^bF2isVE*P3B5mw&KI)tR?I|r61vzhIWGT*TE17Cba=tVkZm0Qiz|=( zDD;4MTTIzTWL{9Vxbo$pDAk(4!QHYU>}z6KV0|8LP~686LReW5%yq-+PuBQ{>vq-e zxe2hQE$v0s;p|P9RP9xlKG?f1xmSNarnDDK6N!@ah_aM^48l{r@^C(@WIj5C-@ zjy0J65mUae60A3M$99M3@i zlfcCINoZ{7NOEj!B|0OXEjc4yO=fJEGc_aIjj9pf0j`nu631R{2XAYm%y}!Wj9_c3 z4AEX~PTbyYu4*f+?8`u++HGuU^-uieYHt!1lOF{0hH#|w#>p{<)he-vHPJ*YhBibj z#yq0dL*CIV8P6<@B!x(gOeVyQRD~I?Y!-tz8480@8CZj38U2G588U;%gu*BAtpk}G z@9dLR1y4}12Dvt{?Y}QbpCFCLKlZX1{z&J;wFQp>UmY}zZcgCbvL=OVPL2^-X&wZe zSZvYVqFuOF5X)?RB9z$~!V zp`4FX*(%;rawBq+;^xy%&W>YQ>KRD4a*zA56hUP3LrwIjSxs!q@(%Web~?`1Gc!#L z+>)mRw`IBzw|Tk3wg=alp3``TmU3$1N|@e8fy@~uZ_l~}wbE?#fTTk8AbRh_Nf8=OI!W04r0<^DmNBhy?HsCG*`K(`_i3Z1K7|*}uEU$Vux9tMuSjQpqEVPz7a8K9KwGkdmpWzr zYV4>f#=v2nuZHtu@+iu~RJz}#c<&C)iNh(cF;iG}@w4=@qq@MdGka?Np(B^o+P>UU z&a_Cafr&Wqutn)+M_h?!XKle|7w&+YJx|=@MK`qL*?W?u=1aI*88p5}=f&ikLwU*D zgX*}OQ+sTjiEZ<=`E7zGmt?p-ZY{{s)1}ChWhWS%1*i8oGfp5lE7#cUd553aYY(9v zRp(Fl&a4+51%G($4Oma_637kQ zgl@umR>EF~`rw9cE5$m!q;|Dz=XLTZq^L+8JTnBkLE6W#DVV0#wOzpX-V&{U z6un;k4e^a|j<jzvySxe4_vIX{yG=~28u>ou=zW(!dm>}93rNRc=)0>=I> zvui*%M8^-RfMEe0BLxE;gV#3}bdMAa6+b-G4@K0T&UY&XePNLmgS8{q^0#A~_`E_n z27xQ`)!zTr)1v&J*X;l42?2L@wATYZqu(D$EvI_F6R*F%Qk>E!J6|H89p^Xyg zUO1?b?HYZ#qVQi~<)1jv&{d81M#?Db>uw$yq%hYkovu0K{}2c&@78 zysY@+mmEwG>YJdMsUUY(9Ckf_UN*aokNZ4dz2oKLrum558LrZTo~So$Ye;OQ8B0e* zM6xM`VKdl3x@m(ZdCCBv|^=FrWnLzEZb#;0L;! zd!SQ`1OzEtHIU#?G^a`}>b$Rab?&CxBTh}{+IXn9mgPX69VT2rZ zsxn9gz*V7pBO1975&QEY!2C8rk(XBBDH%uNHiQrm} zkKL4it~8fQ>^Oq69bi0K5;X<sbNy}N$s4<4dFye#Q3_eP+xFhBGPl71W zu1LGe7Zx`1(Zs1}*i{N`)=Qh3dpy|+;mnH31B|HRNm3)5V2RcYRtAx0xjBkRK~HI1Rdq12GpOo^poHlnrbc@WKm0-y@-%F zr9-VWR@u`TvAx1f_EomsAUP%t@|CpZ~bX&MdNzY5QYd5BBx#WG7}7K|-N z6J&00F}n0gMOM<)*$;l&ZHKl>${%wsiCVI`%rkx=O8w=o5`v$mLo%%7r4^RL)^6U8 znZ2d%DD1Ma>1MCi&CXt~&a5--zPp4Ln)9N=^AYAT>)4sT_IbD8w=?_Jn_-4?Gn$}v zbF4wS;fCE9EYy)E{`zBmsuIajE}v+@U|8aPPac0MKP_Da{4rUvA1l$xB2P4qi>aLN zrJz@jA0}qHVvlKlgE%60pG8kNT|hF!r-f5SB@~1;%>_&dp1Y{TAQ0H}v%RIr1-a0> zALLXf>%NYS>kp9t`TSa6+4!C`PVapJe=}DDGvxju=-sOLBh*TdPn~Q>X(GClG^@RH zr*sFH@ioh~uVW_YiSIwI#v-uty%tU{z!Qbr>f+8yWoej702oR0TKUaI4FF$`k*0n! ziffuh$CNxxaowHj4STmEe_HAHhD+mgk#j;a@*WpR$Rp_8sj@ovU30)&|M2lC%a@EU z81u7JY{f{v^bl{1xvr{4MXRm^qrt8yOqf8(A9|5!3xn z|B3P%GDv*rTnhE8&RRyT_$W3I(6xjWDSP34f(UV>38YC2;92#{W*nom0>&!qq`Pjj71?fI?5B zQmZ#?A$&xoer)h}!*j767BSU>WZ*t^Fvd{szQKwm={EL+H)ntld9LhV6Q6`- zaf}9TDw&N{f!OwV;>#d8dk{(2W~^E=ds{z9jCl=Uh#yE3Y)|3TBj=IIlO^=%`?UZ9 zGo4Nm%Z_3`v9&0Bi~bZOzhXJSD&;n0Taz<2vL!}Zdk|uIH@*EV=ZPNw)hg#sx@~RS znB_#=zVVDE)zvC9J-`OiLT&*d9_H0a(wkl5O@vX(R|{BnqhG0hOz$)8hL`lNZz9Sv zgvo!#3vFJy3IMJbyJEV=Nt+xE6$(UK9a=iqu(_<^CivaW$5uQ z!GUPz$57HFX%jx+D$vbN*7=p4<(e(~V5)P=FveC6XUlG&Myi$}8f|Ds_=R|NPHs0u zUx|E(^1ebJVYuguYluis^f@+7$iDk$^-y$E`6D)clZZq*m8m&B;H#ph4pf&XI_$I-FejN|KTB6qCm2Hr0`Bi0|K#&M0myjXX$ zbk^?2T6cH9+wi<&)Wuk!J?r6J?N9(2mxLc8WlSN3B3F^^Z9#+%@UQa{oG4F{Pgf=j zlR4&FI~fe`a5;W1B0K&XjazE`W7|*+uY#;K5zUGxW^}P`dAdtFCGUJd;+fnMQT+S! zgv=T(4hk{4)q1|%Q!4MLoQ;5-h+B|YVtN8fnVA#jF>Tl$GQJ`y*H=Xq4sY_c$e@Y{ zxIipg`*I{VLRQ48??)?*9Fck)VZnrTuhz=rIjNUR5yg9kHXb2MISI* zIlP!j?!BMAx3(8NRdO}s@C4j2Wj}L}IS38de7+qUX&rai{h9js(#>=FPIBE2eqni9 zZsr^imF<||xH4&{((fN7gu^3(An1dPIVMJj-}?<2EjL7$Jm}q6ziDa+K>!0?fE{xX zI<+{RrS6C1JW(+^b9kLGUQ`{dyZ4)5)&_GOi1c7dcHJE%$nCm49Uu|39~A&XL5AkF zTMcz1)7O%THuL57#$&}7BQ2ZOXP=DpN0dBp}W*EYJ znlx%14+4rQw7heoxq8KULU)B~CDRZYR*9YNNt%^5E*0duYzidyp#zSRN9i|_9VLuVJo4R|06sVxu7R{F? zcGEgz*v-D6lgb>VS(4DYdY+;eytp`EAZA-qb?+gV4AW%1nm0#toDYid0y<*l9o(qa z6faytVZ+m~+^y%Z1W~-!)&0@5p{kLFtYx0e-OLN*$HpcU@Z`xCC$=I@|>zoPh#hZ%dx{IL~jfGohOrV@g}k)+l9$6a>#rDyFcdl zmgG9;Mf(yhqJWcVd&HFvcc13X$jWb;EB$TWZA%FxK=@j3opY7@;Ud#YnO(1Q_jz78 zvFFG|UmEPI+-;yVt^G=16hx|&ZCvCTX?jMzAzZdA{u*V zwq<60M2=b;KwB1_09ifiHV`WEC}KJ&Y|4-K;) z1|HraxHYnJAh)}+wrLb(+-#y1e(rldw9TSYA4xun~c`@aACTls^vn zMc;NY8DA39^NN}S-l=u<0%{;)bP=l;kZYpI@F5{o*oKl{Qcn|BWS>s7;>+uYx8Hmy zI;?&Q@b}&i+zjr27mNR;1pgnzf>z()Kh+{rUdm>g7v5{L!Fe;NKuQA&S=^5oscq#0 z8gdVTP%Nd;v0n+q^*aj_1#E1rava4Mlne^L9=Km31brG`bIBD0heyUn#?o({cl*b` zuf4Yf=oxhPQDHe@{jgfG<0a>y{l!Y2qsfQj(3nb=fH?}{zi7I9q6A1UB668<@wi}x z^12P=JPC-kl*)67%W}Ns{&=JwZ1tV3{HWKgK$s7e)Gqw&>NSSx%b^;2@S=lpstTmD z$VatYZiE3M#TM2ib23CT3WctVg%uGE?=xF`ZYX{$%ICt?C0K(-4$KGnV`v`zJ#`jH zK}USWlzyR$bH=DlL0F+3X~|Nwg)-M;7^8sMc24k4x6}wl{L2ts?0U6!o`c(b!jVke zmX!264EI8=fIv+ER_NWp>Lob+fa;QLOR~WhI>}@WX{FfESb5x>`x zO6p=WZ7-?~%`3aH>##)2SW6!^mF?C6C#}Qn$2l}^^oD`CsX-Q1BaKNDr1XX!Zv+w>g<7WkRR&=#hUz2mEc6A8DHCJ7*3`evurMR*kI= zxfN|2@@yVD4{qxp{G#`=Ws?%aRw5KQZC@II=Q2aW5SBi`EFNp#y{lj#e)XV)S#SRo zNT6+EV<%wy(#!>39sJ79`{02Sn)d5Z0YzLTUrquOEg9fps?dqb4-1|bs9?toz_&&+*g%Z}lEU3|(k zkJ73kn0iF_9fp$F_o>4QWqaJ3h6;-JvmBC8REiGYlYLTDPs~pBT1pSVXMU7TF|;m( zX+xiE_@kv0+BBLBxNDqUjxGy)h_?8ss-#;|!K=XKSLg&f9!V2329K`Y? zV`N?&(xv2{X^o!t2;QKXgHid8agxiT$zxOmqtacCX$>!T<#vF;1U2-E@`Co_RqM%X zDx-8k)=d&74gaGg{1<=&J1>lp7z9j>K-k9+(-~{r&G2Zu^t#PDhv4-QBVPHLvBI1)BXf_bJ40g$fm zzY=^=?yJFvs@@%;|Bg6Pe^$eKFN&WmYX=Y|UCt3zNJT^y-mzwS>i0V5gEuEyTw9%$ zh96As_9Kf|>4L^+oD20rI0+>l*d)9+#O`&@fDznzVk^_;t@*hP*#sfs;|AkjhXseE zvxC6LVOiyFvv4>VKFF48Wx*Gw9RawBK zxW|;R{BlrcfTOZFZUCDcw)2A)W$Q@A6dVqhTYW~Nkd`M?zzrZG^G;IQQKN*?V(Y9UD=FFDr8;K1X3J9a8<{ql4e zo%}9L7gL#OW$r96hza%(^Tc#v;w(StJENs}L%MI+>_$6GQkW|JKZ9fg z41ZZ@GM`aZVBLM12BVbxfbUP~$OXi^W~sB#Z|#xZJplLo+uk2L~kw^At%f79kH7Evua zLwcV^f&r+Ix-cx;b~U8h*zqfn!<>Bl*&HjP>vC4==Gm2EdLOMy3F|M~qvn>XZA4=^ z_D{r;yHR%Tt%UYj$2%+QiEQdrLYW*vM}Rr$q|hQJ(1*17D~qzD5Q)!MgoGL-giT9j z^Qqsz{irK$_{b|clh!t_NgYSISU>(@gISLuwtNHe+QbT#mAfYS#SLJwvLUrzJL-D4 zu_gHEG)#t}Up9C6o~ZkqY4~F0id7A)ZTBr#3E)&G-jX75Z%~3l73RBYT^pQpS&#ws z;v97qlB3=O>ER(@Wx*>`<&x#HVh`xdA7QpS7`;WJ3?0#jXN6bg#4=?0O>a(Q#Z&?)wWaV`-&l*;H%PellJvRgVw z)@#mZHBDhe71|KcRCmP>c}vBQRe?sSn0E=DM0t&3p!JB-(-f8m3h3?iRh#lEajwGX z%Uy^4RFXke#^_i`b-vGk@FlSQ{Tq9{??p4(05S*kUmlw+@RuQjf~}stgOP%Z znWKTJpq`_itb>u0q0OH%tAC}N0C3bAN#*`Wuy6c0%hn&VCRx0F{J< zyx4H$s0}xoKe9&f2FFCglk(i;L!=N!^6}*vay2eqcozz16whU1JjS+`aXEUlsMFs5 z`jIy59v>H+4xz^oUV%?C_?N&Bc$I)Xqz!WjZ%x!(78pnzJy!&jT!oMdS`2nWm~T3L z=+?sxG(8}i@#hc%^nG>$eMod^y;>M%bnX;A*e7CVeZe(|O&i^fQuU)VPz>S+@_O+W z(&GH%YuhCNm6@_`s+|<&p-6S7Z3)Pl^9-}ZnNirf0T&8)zR?t+3hId{gm28)F#rCID%M)?oqtHeF*iSQ{iu&b#_zmPf+mv&*x^_QCD+{ZGj z)e`VylQWoLtc@r}>Kmn`*;apr&z67qp{$z2ug78H#v1HDXnYaLhZY zidkAlFM(D(bD3&pUMT0U)wZWeBFW^WiOBEPYDimXF6X!2qE^S)_AT5z_yvoL@YB}@ z_H;BpI;qWi94sl)SE;_9yvU<|ZHyZ87>ml0BcV0{BC+I&^5)&4>~k#+E97XdeRo0W zHPEHIBcpF{>r89;;U*2f#iR`c=IQL#kl|<^3s+idp2I5zHK9wpsvI~jG1RD3gdS!F z-KeGI(nRyzg=I*o?{oCUh>Pe_-bt704CY% zIN&N;jqJ4P(T679pH_omz=qxYuR zG@bdz(|@Jq@pUAs1%a9QoeL-M5`*Ek)itZ!?AR)Lr{$eG(ZhL(QTu&pl{>m9ki)qdGAaqIW!{)vT86k1)~VplZYKoMw?T z+jyQ77XWm7ae(MQ+v)&9j8zzBB6>F?H*^<%wdywe1#y2774$adFqhZJo`U9pzaFEO zf!JGog`=3dop3&C0ibo&keJkMDSoin-!$5*ZQV@ux856bn~H44fqTpYWQ36+Rt;{a zE^OEnr$$gx$&Bk{q$J|Y6l3()G85M-k9qYBiN*|Qcz7D?-SAtoamR;|6cSFVqS*H^ zjYv!O=YFp4S5TUMt}vrU5$gpg9fMRj6J$w_iXbZ0A+o@XhM_7h&sp|i)*B?!M_FSc z_lOmQe)P$#M?L5aur_7L*H^ERH*ey7ykyC3GC(<=N!zuKhsXZYw6D`*PGhP z5sp7JzCKy`ki&jzcY}z#5=fgc(nr#`s>LO-$GJ;ygJhd01=S@0I@5= znOXVJD_*IN(&?)fvLulSxa5}@CJ9INp0F&;+=E)?>^j6WY8m*|>HI{L(YVU?sZgv0 zFnN=U5)`|T<#-UU7wTWVBO6_)bVKv4v)Sanq)IY}8B-X}% z&Dc>K%N~k&IQf7x)0(GlE(gFSUey#FjpLg}u0O9+4ZVbijmPXQz`&r=fHZ2K*w*C5 zirm4TwJ(XH_=em`#>8Q;Un+=GVydMZ{gcEq?w7k2`Cr#V9C*#4SyNkZ9MMQT@oRY6U$_=YvEDCdHlC!e zY%2BlZjwqmE^Ur^@U4sN(k|^=8#Dj0-h1vkn#RP$(c#QqEvc=E71S_%4<=i#Su8qh zrec$jyFhnd5wv#ge7!$MVC&yxvbZyf1o1TE z1Iy@&$gw`{%=$fgfAfY{^N8eE`X2D@NE z=3}v$h1&@dC#nBV>^#mjHe3<{3^j>0V3|g1tvb?qos>^4BZq24{!S;aoaC?zX12?+ zYhD&n4;SgZLkf;7#=KBUrfcAbn+Y{9Uz$d}HhzZ%XL?5nmmzc*P#eG@v%65TKEhdA|mH|zDi;5sJtfD^TK8M`VJpWrjAAyH5c(VE2_Smn68PUaT%;AHc=Q^uZK z#tsYEGwv7l;$Qj9OP^1#uYXZ-IwI`~y!ONb8!d>VM%Wh3PxZsgs5@2z-A!gwO78Ke z4RcE%I4(;S2~)) zESmz!lem^m5!Rhlou)Kd0z+EGDyn;V+`XM7O(gtyISvXLi>r0gvDu|F55-)fje~LE zJXJXhQ(>@G=IiZm9=J2M8%hZnz2w9Fm0qo$#rs5V%9m95k3sF&lf3t~@7R3%8rSS9k`cT8Baa~E^p_ylgP zBb__pavR^~2*>@gY^fhdhOCu4{Yq21Nso9r+`?ryu$6Uq+AbzoY=u-YE66T|$AFze zw6ckCApQ!;kCT5i+#vNtgmBnUST(!Ys*W@|Xaj)HXx!pca@b0nMAJ{CQ}8_ikIo*D z{E?6y(X8mG>)sW&+d3{v@Z@E+OpTXew;WUfiTU+h@#7;cMxmb~YA5T-+0~0HZOmsq zH}`XWYGC#vV*ycWF35s-9_sN6&M4;6kmy`{%+?@5@RpQy7bmFlw%q}#9?gd|r;as; z?KFGjNh?J!S|z~;+emvG@s#qELZj5OaS1NrG&}bqkOqvps?2m3+OoQAzd6*SVZO1^?>_PDPr=2ob*;QQP$Sj|l5zE2glfkW+479((~UCfxY zjUrkZh8i~XFEV1W%V;_|66Rg zYz^$yaQ)G%0peyGwPSk+)s>HrGmktjzsTzyN={p)Gjnfe)#MW2_7`}c4>F0o8z6V& zJ+2nAMf{4csf($LYz|{5p0DTISiVvX%+$*b#sIU;rbw($5K7=+*x)FN7DWaXw3h*4 z&2192tIq4%4XcXB9$(w$cRo%ZFi`nd24OG<4-^`OGJ`)eml8*ow z%@A;(@v4oDxT507eYz;aDLPL=Xk}(SKHLYSWfRL=_5Ow(%=Aazz+145Onk<^>h|Wt zRr1(nfFAy=142*4%3eWEh)ZBtScBxxY{9DdlAM87o?s>k)467LAvC>hnrJ@Ttb8Jr zAwoiQ4=ZK7hzGA?2nP{xo^?|1fS+=3dO0zBy@ZRm&i;Nd4$92PHe2W{!eZB!{vPsl z0g*nlQmW}~5CNn6Xld~;gCja37|gB?_x*I;Sla7KJ19G*enc|6eyJM4mE4z|9T@dV z(%v0V%W2%{4WTthXm+55Lpv&!Oj}PX=rlHKjm?(IpY(j#gD&I%oHHzPxo5nZU2a-G zY*BU_Kq8zG&{FVadoeL--9)v2Gtpe~unHvwy}qz8dhs$U;EYfs*|b>lFPx>of(X16jvft-}UN|=yw z4DuW6*aKN->y34AMRHD0NWJz?ydYHT;5f3R-M!fNQ#nt9VlBtNuV$g#Y*5Pd^Wl=( zrOUb@_UXMO>=)s89)#h`Ov!w_fMBADGHSvKrHseWb1J!!`{GH9j0c)SxBaZ3bsAXZ z$&GtY??v(y5{uPJ3_s~7Dqw^*7F>hw9PdbMe|u^?`XPEaDgV?4pY9#bw_>59!c071OZ3Tk4l_AOb7CFEslVw%~N@(U> zeBXe&1VOC~1(Q6Hn?LqpV1g=uHqkTJO*Hyihv^o`H;k=Os#ui+*!B4>vPlOXg8lb% zA^#XS^z@E@2b{qA_nIFYA{#*MMCFJj5V(B9WZ_JYEyEQ0g)P7neLxGv@y|i-+26#a7r)t{J z<$$3Y+D|pRk|N-c$|`>}h-ZKe;sgBO8pH>RR;7tt7-7-=6Db!j#TB<*s%_ZOp2gb0 z{_vJC4X{5t5H}b=+!We}VF8HUfVf%IgYftlZf7euUM^FQ`l(tRE?OmA+Dpy7tlTKVMiB0J=@K7zJR; zYRsyKu`1}bBUN?cC|GV+2Q+VlBfcuW@b_}X^_NlKpF+L2`9*OjD}9@P4>A4`Q^d&u zLq7QaSB(mnD|NmqUnq)iaHf;t;{F9af{apQic$$3AT&p-R{I;*Nt!>v+T&@s^*ql& z?s6h(hVzT-E`DiMbJRR$uZNP4SH4-cq?KdRq6{0?GXC{q*PI} zbwo^rRjSx?MkgHwn6QO~-rW2>{+ztgqr8g_oO`T04Lc#48YM37rA&riJr%=wlCxmj zFd%_{cZp(WA9pqyQ-FcO5lo8J#o-6p;ZshjR$99XLvxi zY2qyzSyUH7nvUGQSZ86? z32M|FUc}sg*UdRXpE`?a9C{>lsPzK-1}yq)u+9^pl5PEE2kM^_5}m`}5z_DenZlY6 zTON5(UQmuts0h6F-#$pEvlvnI>76&S{u~{-A_0X*%HqBIrLl|m)6)YEFLV@8$E-C> z)f)`fD`5F&gWfL-L(XCzsLtqz%G%e%K^9C;nh)=j94z2`T5019;HPF%b52O&W#9G(3Sg!EYW8zD)&5fbQ}+T6wO{u%TS z|BPwB|C@iVNd4VEV{hR{UkW1QKdf}jikVohL#gaN9X9km`GQ*JzK{2qxx8sl#RQ!W zyrgBS9IEbAk8bJuW)xMfRI)GtK>JiK#+FIXoRsQa zc;Zuk%wb-C(a=5yi}mEdbeC^M(;k?pvpxzx6D{IhZglWL?UgPIB6KQfnsu-=ZlyD^ z25K2@xNdv6$WSs+%L=Ws*08Q0fm+s&#DN&8wnQ{99d1DAa74tLG+P+2L(L_Bj=6-{GD-@; z7R&~3;5Y$l**Z|m@NR$8vKgS3na{nzDG-@7+2Ry{Syz`;%@KX4HH|f}$fswn-aD{) zqa0XKAGJ5+{Q5tl9NNG2K)+Fr^p}584&1j~ia#hP_W0Yy_g{*T#NO|Cpy-b=zSjAMJ zJkUNLakZpzz;)`prCpzpD;=_jSn(S!OO0uhV57=A8MY|s#O#^dFi zd8Yigd8SH9tGs_R&)?(3elySB!G*VE-8qtw!_(nt4hTG5y6OU|N<>YuAu=lhKEz)$ z$gsk1?Sp_OsEMVsagR1&?sZIRLHj8+ptTor)a})9=d=rkN?Y#5F2OBPqNS##)Uv#K z+nh(%+cjtitqr}Qt2#Hcf5A{~+64*DHt`zs~!)({JNe>AR5Nu9IaLpgaXJRC05z&fCY^D&Vq1$ z7!^+I6Z9Ky(vDQC|K0=rW2vH}{fnpvY^osPLm)qaFP|?`4^_u+)0J26DEJd&=Ee$G zS((-UBkExX3#16B4o=Pd&SK-d`xs5L_O5nawZV8jD6rs7uom$Zt--@ofC8vi_c6$*47yLrGy=IR=-loS>5arD7ib4nN%n>)z!dBY2OrHd5C=a`| zVzHP&u@wSE++e#DE+b}k(Mos10mSQAUR>Z_-BpSnv2Rm0%sb}G<@;Y_@9-fa*-lRn z+<79lF9#Qr5Ax55gsrdQc?H4w1DB{X;LzxfNX#keZ^wTxxoChT*LCt+$rTq0l~)hZ zrNpOL1%0*QQ&Q{A z4~I@i8h3w9BpXNC;h;70@9K0K6@ZuN zg2Se)lWz^H5wdOsuevcvUs8Y>bUygd!vZDMsB{xuWE*K-a zpD?E7fCdMFFDow_Vhh1s8++K12T_fbq3b~Lc(e5!;CDw3Jhc2Y`@o$gVmo|tB6txQrBpAQfZQht=R*YZ~#lL(XYY4k_&lmmjOTcPYI!8AL@T4 zgdL=RP6#uA38B(&2_ecGaLVO-gZ`Be)_()J`+I})&s)KCmj9Z~(ojHBgMS&@qEBTl zT`#EA6lAV=o5*bAj< zW=TE0`$ODd>yRUpJe+g^Iyn&l`m7PZyUy~bl&=(woK19-EX9gN6WZX=Q|c+<@!{|s zId>w-j~<@o{bP3D*WCf1{-O8lT=lv~&oai#rP&d$=}+zev4z~nam~Wzb<6kc8Ij^H zfXwC6`r$i@i+UfCBp#^-Jv5F;q}W0@6;E-x4~3aUt((y{u29=@Cu!PX_e9~?4T1J! z#4^E0{RjZhvzqu1gzKr&-F-P8md^q79|2z84^XFe6CYta9C1E`tjH|!KIeTss<61| zCzg*o{fa$8m5*S7{NNm$aNy9xp=hvJ-?wvK^;M;72}d7y!e}UZU-Lz7o6T8WpZ)Eg z-JZ|syJC=Gvxhl$ETl9k+}o7UhKMu%`>twN&U zU5x+TczJy9vR47RIuQOcWA(R-4(5NpKK>g42ri~%WXWW0^q&Oa+kPzkAv+JKY(1Nm ziLsy3xst3`h?jB9Ijd?c!@8IJSuT^c7ruuZH@k<67jNzju{{k9M?nN&OP~Zfv>7Un zEGk42O_{NNB!qC!3K!9lx=guTCF;PT`xgt3eacI{XTopN&zHf26<#aO4Mm?d67`3b zRuN5I+|MSO>QKq8cyE;jU^7Ez-~?`GQ)ML}V8nGit1pAmv8-)6 zI`JZSHB2UL@K~^oF{*sP+e)f;;{U4 zF8sg2K)(h|Gy$WjxLZL%oS*@dk|<&x@f_U0W`Ts!3wq7WEzA$ceL8M_45m7~(RQ@c zZE+eGp9Q+%a^N9Vyocv}PhGa4I4Ep{0fX-0l4{tV-P`5tQ@-*L_O6xzafk9UXC&Aj zZS=nW)_o;)W8(Rfo=@$rgFMZ%R7#~&nuOI1Iq#Ez>G+5@9+}c>h!%!g&^o$NPDLE} zH4K}8RMASTSjsSVr1ue(Br?T!9%wO3@>IO1L z1!B22E@5k#YZ)bE@VvMY$JV()Z!tv3iMnRjYwU%kh1=zRxh%6U0MMY9{Yzjq5$2a( zPrv7hb+txk=;v9cq#SXtGKT`u?ZDQMn|Awc>Io+(tTSSIMxneY1XjcAPwhEBqbrn@ zvjt$(-qG0Np2CffrXA*!t5;JmxZT|<{3=<$E@iqc{@dvi!{2T8vas2?{84(usM)FD zs-b;kCtW733I(qyMwdor0w>)swuG>O`NS@rp8_WK)Jv|_E8GyBDJMOc{>{MgiQ|P( zTY7Nf7V5~qA;-l7hNvoOc+BOz?Sc33Ea&vc^X8WgFf5=w>g9PhV30XyNHaBmWN2h) zcxZIW)OLt6WLrW3>#eTQV^V(HHcJ?%h=53tQNZ>MBQX}>Yq$cIH%Zgt2O%UqAQ|hxvkDjsiudjhml8Eedppvb6?>&g^3w6n6xmF5sb)PUB0wtH<1UqX1Cn-_ zn8w;@Pp^DzKRB)~*SH}aS=Mdmpg4Hvnq`ye$-tiQz()BJYOfsQ#A{jAlxa;FZo6Ob zJ^6ZQe|e(;jI;Lma><>na6gsPt#-LAM!za^SiaV*ShMbeWhI|Ul3is&quZ=uVLn}R zg>=Nc-J);v*l`%U0hJls2}o70oVApdt`a?3QQUZLf1g#n{jL;?tw?mCP=CSAyo+L% zY@t}i`{Q*}_wrnY*thipt$Jr|?ZXORo4F0cmWKL#EtHIGF(4sxGm%C;?RXv6S5p`E~Z`;*Xdvcf7%cshYv3$gH(tiryt0lC=*vJkk8GuMEZ*{2-!G%_~$n=%>;nD!USYD@gK+BL#B#we^H70`Xg&q@S9 z;(nBoM+C%uSr-0Qv*vC#olK^IQ&UvSDHW=IODNdOQS?Iu@l&oTJ(FXAOk|Jz&!;0B z-=;Wqi!ScvmFt&9zot*r1m#K+=qXIv;jytRcxrgfv)pyBIGFmUyDvGC#Bxg#p>N<+ z7ak&Z@Y|22q_3kx$f)hoKhg~CytR*46E6A;hKeodnI{pQ0F}K-M!>IKosf&xT>8Px zcOT94EP0Vul=zv9=@>oMu7h*NVc&clZVlas{@NmiN^q+{7UlxtQ2lVA1 zRdj218Kmv7-P@#oT>~F&2r<76DaUjMRpRfZh+nr*d=I4HT9IVu8?MaR(g8wzCK$V+MNY!`R{u`9U9FA*${$U4*AA>a=FCDDCZ+i%^PI(0f z_1_8Ta~wIZ=V`17IS9{xa1}rw3C8aw71z7yGX6&SiVLoh`QGtL!MBcrnJa2a;nXUD zDM4stpWF*tscP8}>xOt?%>UQ#T&Ut@Pc-{$tu~u1;@}yb^=@3|TwS}!3Tc8@^m&H07sl2THMT@07RgOQPC|gpzk{mF{LO6mE8E_+N4?RLJV1P&Xfeh|Q5=3Y(t{67~{ox2XWC~dbOAlEW z2!&(ZTDvVm8iIvJOx9nAWQ9YNy5| z?d!*!K?>81DbsvYZSpULc}6oDLBz>mZX1-2t6nvPphfN8X*7xv*mM?JW9d{d=eop9 z7Hw-+ut8$i*eI#$NY(Y~ENt`{7(QEP2kDK}L*$>uIt-H*5C+kFHkVwGcXkgsyJ8}; z8ZEdMJ@0bFWt0{tw;yk<=-Nc*qJoB^&bT1h9in8+G;$f&DKS1Aw6}M4oiW#7!jCqz z8A$j7+0)ZGj3d*DG61pyRFxe*4mnx z%QHj^g)wv^ot8%4mr542e)<(m*f54~D>`=D6F0b0LQno4IO7?OPqGP*>fi2v+77B% zu#HR34r4Tg=H3B=^CK>k#rul8M`kyTy_+st}s}rw8vCkN$JOdU?CD^ZE z=>&FWkil@xbiGg&+`$Pf{3TSmMR#kF_&E9blGON#m&Grj6*s&y9zI}62#_D~MDm!% zjB*D*!afl4$Lz=nQU=ib0`Sb+9r_MesTk10(K~g! zt}s<}eKz^3mCY&hsXCqh3TH6{r}z%boMIY$jm!&iJgrA=45bbN%rBRg3q~VVY_QVN zVOQo_wWwRNgFDJsFts88uRtve!eFawv%(Fh$WH5E_GL-B+nm>rBxh!SxmSd`xYcR1?>?<2*H(e~`oX#RFQ>obO|+|mo^A$YntOo~v{01b5d zqyPLbrxt#HIkmXo2|4KWXTI?;3d5-V-G3e-+tAujYf)czZYH1<;1$`2Gl17M(wd$S z`6Flu)jHyh;Ne*QpFzVyi8zk28SJXbL%~?qA(sE$)Iw^aCjS3$YQe_*PeH@~!3R_R z;)4Y*d&V9a#}dflcr6J{8U6(yy!}sn@b8Ff9n5OK9_oYKoE$IX)f8C1tx&L8eh6qz zI<{w?qS&zb0MoucwjQ`1n@Cc+>C%2p3eS7k%xeXaZ>uYL(XV%W>UX)!#x3XJr@I_8 zLyP^Sg(QK{8~sy6y$X;jgl1ZsW~NV;Mz?L@bR8*3pT8p>FY7KGUjphE1IGNi_XSR( zi#1O_u<#o;AJOs9Q{gF*|!^u)T7c)c0OEBD4gD&<3tq=&>SrA(o+*i#>`lNCiMeE}mSbxte74*D#`^3{~bjev!FF?G=0Sti;%SCPnS{ zH*U0Ns{Pnx&5-2C%d(nkM=@OZSRGrHTnhUtCC2)HPs@$l&Etny@-cnUYE6Z& zCI}A9uwE}(;Oz_&R#}^8+NOQaVL2{k_K(8Q+wqQ=@Qf|`jsPL6MV{q>-v(%cFo|`R z$f}YLScrSe_TI+UX#h_`20Y4;927^*kI(Y0!pwFbUlnPWLU8J+( zhyjgEjI4u5qR}YT(oF+HQ&okydffKg6|qFRQ%*XO9Y^y{h^elC?XXyw=4@5s;7sn4 zsZk`^TQlqx6u&mM?w%Nw&v3xCkqkz&jQrhACoOF<5}MG_;@y%TWn>2YCTWs;c%Kcc zs&TyPwHnj`fJ96nV7JD_YRu&(d5EF2zDO%;Ct=d3Aj_kng<`#dif&MzCU2OVC}$SE z33;?-4@*Q6f`wIX)qMDhw&PNBs36h8aIe_HPNy{;<$-rQUS*NoA zq3H1RE&Mb@rJ;+Kdt}a1kczt;lL=Lg@fv99`W<|UGJMP)k4amOFX;wzR>}HDUm(>g zI0}`sgSzbuW+T=L-Iw|x-!3VhFBei5Bp)A{6s05#-gR-UhD$FB!PRSPlwzAJv`o6r zFAm~?R-<{aN1Ul2=gJ=3(8u$CZvRH*QdniiMH-DUT}Cx8A_wDesjNjP_AVwuB0yY2 zP>vKQ^etPpFQ3{xYh!??AOg)wxTV`Jtk~VuB92`5n`706FF}^hh~CU?(MKGtYEz%! z)$`OIN@*g<{E0g|!#yG5KM-&UH3U1q(}~#muyTo?{U|s@5MQK{-SB4d66r@#rV~_Z zrB^tW_HqWaUg7*D#P*cC~iR8?br;EdL;=R!sz7 zrLG4>XRgoDL$j~@di}x-#|b~0iqU_>suVQ^!r~+=sfdFRM11LHwZtej8~EwsWOx+5 z#pB8W2PGuPf{*X!81{E>r~OlB-u-dT`g)bF9zbVo~^;pW6oMR20($z~ZAq(<_S%a62% z%*tk27$-$CVW-9?T-$O@bp)to7E zVd)iN-AbeKgO~?96)l!W!;hbet*?+rCn)88zqTY7&qfu>?y+h#qnJxbv6HHxmH++xm zDj6w58sB*A91npQ-kVSuD=I-Nedrj(m2pXH2N^&XtQ*kn=Z4=!qHiDiIFFqF+O-> z3kqITSWL*d^R_&+D6P){*JPC&8K|U!TRCF2sRq)NZL|F_lO;Z@3%#xWx$k=VQ8bc6 zo90A@!p7D&D2lzjRBph@ZiiYfj0>2AQUT9m5zyCYNz>dE!lq zoVFIt?fR$v4D?(L*ZFiz#nSXKiEL%~)VuYTrUUp|r?M$DKkHE(U_dvlSV72?uksf; zElWxRq<%S>#x3_`H%u7qNz1-yDmop>(+Rm6+_!h=DaBcZX5hEz(b=l@d(5gKj{y~? z$ACTcjuPSrOje5xtK+t50jEydxL$Hp?I&KQN>d&lgVs$ zEH)~d#WY1&3*$G*U*Q=Ly>$FTv=zfX|ma*OF zJ)B20$g?D|j8urWC^D~)&QU%kdN(&E(8c)(!2iH1eal&p3I*ONXi&OM1gA*w16>ZW ztC3$MYyE6=;&qI#Ch>MwIuEsx)Z?-lj6WFco`OVT$#s7g^~f0cisAZlrcCt0XpmXk zB)@O=hd`b^#OtxR5w^lBGMtx%)Zx$avMQqyOWM6mzksfXdOi#ktCmuM_HaqN+@E}o z1akF?eugPdw`fU-NbNcWo)HmmD2|;xqBfi+mA2kl=1<)#rP*N-UBloFa?RunLI9L0 zF+DkzW{SgfHR=z93d&H2Xi^#(Wwz@SaxJe0*<){ZF zvN4))q#rV~Nv?(MRz* zohYmxlihLaj{VVuyUI7lWG&qRSGY%Ypk|ZNX@*m)C^4_{Y;Xs4Oo;Y6<9ku=4=UiGpmojUT;75%854xRD(L=p zhY}PX`ZEKfs`u-1S?5SMO<+WaR*k^`#~~w?e5^3YUkPEiqYc6lq~qt5qBpWlGa6r` z?7mgFb-2xMQrC5-1KBhx?$2kR!s9~)K3urHG)oHVb2@%uG>H zIwNBYE@ZquOI?K2yG;^{E>H#T0Y73^xF-XM|Ijp>;w3Cs{dKE_=RbR~DV!4ur}C zJy&a99oIEGl}Gy0phfH^)%<n4D<&;(_3%FO|L@w;x0xk5|=OCgL@5QxK`gbIslp5^L>Dgr` zck%lKhwnpHt6)d#sm#BXe;+fA@W^Umxue%&H?X(YXzj38$LU8gaIP>nS$Cytdq5nN zSKhs45`scky43x=6P#nFutQwdp*!qO~$@=Z^LJbJ9T$pEKF7%gq^!R0v`*mTtO7S2VD;w z19&y6^*Ysyw3&Igc6xScZPEFQ0Mb%+in(}(R)!%C0=KkSBNI_LPRvXIp6N(x@}iX( zOI$%ilM76KJb}E$JyTi^9xR_%%&WoAUMlUA*LDwu?b=TxxWU$kidgK#2$s%NB>HiH~ zUS?C~H8^Be^u6@5NaQo+z7`szu#3(JmeTM|sDE^k0>7C4hLwNb z;e-2Y9XCydZ&;k&{>h-ni-k462_^1=~IP4G|hA^K3O}|@^%UAwQ^2MLzma;W2P{8Pv zii`jY2*X#Jflo+=Gb%I6=GEZWVNX$MzK91!JtqFrIJC8J@yY-6RvXP&;~CDU#6R@ zz}$|tU*GtnwO@>5iQtI*aGvnXYJ6z3*mQgKy;>!B`0-58V4G1 z>bckucbt3sln}I{qjwe)CD1qNDz%rp){c$;pk9xH=Uikk?8p-|*GDddo^*#=zoFyl zSiXJ8e2ofjhMk{GkWI7WE7m4!Fi#+ zUMCTiGq92;xKg5rFUj+c-4gOsQ>k@>KUMq@ZurheQdB+<2w2|+e|x0G!>(yUR+uXe zc&!;w7b8e_Ph^dB;KNY&+;QQnS;&s-P#vbzpot!RLH$PmNSi+hH?voywdafALLQbU z@_yWj>n)d?i1QZJB(h|!%fQ=Vqm12&ZOWLb+=;Od#7%>@!=+f>u`147SdXZaSK1uUZ17v}04Q!jO9_73Mp@R4aohMc)b3l{Tq1k=gWm&g zh`TzYUjTu*D@#mn?jqaRLiTVDSOnYSgdUO8*Yrd-ctC^AA5##Dr*EcK-VhL@zo7+x z!}PuN!vAz+gENBrn&vI zNT3dGuvZT5Gc7A9E9^K3nQ#4zW(l!IaQjWOaPdHa&mLPgpWULko&G|4b3{Q%FBu5w z_5Y3Z>gU`Z*v`0k%^;90=NNRbfO5iCCBR?)UJ%lY12nn^93TBgdS&J)z`Q~-Fb9>- z#E9k0q&2faT;~Y>`+o$X3}SzQP@(@J5i!r|E;q4N@hc6=jkC^a}UoqjhUom0#hadUy%sIBCf5e3Mx?m=}!ik#x z1BCjIn6M9KiRHf{GkyLGgqrQ+9@YNH;e?s0Rci=`8MQ+)G5ee7?fPj5B6@qDd?EM5 z-d~d{fJ6e5Ad!G8kR22gp7=u~@JCFT&*2X$ffG^XT_uQ0xErGRMI~q#N5$}ZU;Xxf z5`Jbo`S<<(zkO@4u>EO_O4f+>M;%0deLu>tg-4i`Ch^84AQ1=q^v!{tq?rz6V10Qm zIw=#yF>Q9d>%_6BZ3c?8WyTCUg4GPG)ruhDZE{PXp@_)M5sj79%)^)25*D9u+TjM7 zqD=>L4|j9-gVpq|j@6%jhkS1`FE3!X8YeraIwQQ9wg=$!JC6o(yB?zf2E&idfX}9# zbi3^UDQp#H`=M5_(}>|h{>RHth&RaQGyB0o!TipS0mG@jmnOA{4_nc) zLHrFz<}-&PbWeVoK_dLL14aZX`Gev6M<87|JPTKeA)XbviEM+cGi=UR4>Vu&O?5}u zL$s`eX#tyPxER#<(0-a0}`sI0Wx8)0{Pg)1=CT*YQ6 z<9;n>rYId`bBRk$DC31B<4r;%5$vBcox0j)n`Sc3n3Z+Z^s6ms#Q_VcW15Jo-tAS} zMx#yRj%#|QTaXZZ#67c9z$<24Qw;shbHUP|C)mMu6)96j z_36Mwd(O=C_FR{{Lg$Azs~FW>63wR!dX|!6NVZW!G7Xor^;;Rk_r*JmQeHA#`(V{i z=~SQQqquMzY?Hd4BJ7XT(>4T{fYLG+<+SZ|BOWftIiYu=rK=P@ixvk}X%qIOtPiti zrnCCivZJQ5Ix*iWQt}fTnqcPflvK>aqDGtMTGL5vkKs?QF$(rz@3g3mHk7D4DlF|o znBy5Yu|vK)lRD9sYYAma)2Gat404%s_i0WPWZ6LyV#Vorr?hBcEMk}b5GUsPG>j7o zz`tNG*zw$NeFxTti+m_{j?%t<9NWd}{#i$|@13eh$-DNDeNxUUEp6>m;ISKS+4`8- zko-1V_xCJTj9FHH94CsI@4_jRjIFyQn!IO}Ibl(y*#onF6Xw1M~c>01mD2F#E#rzi8 zjc(c^os8&gqwTFD#W+4sHB&DHd9? z{%8MwE^N)GADpxW25*as%LLh^W&?ry8@NjiGd|dG_C1*8@eYQ4&y_E)i}mdbeYRS5 zWQ_yOYGc054V(Vc^LKUhT$)~}h>+?zx&7Y+t9c{azg9?<1!_-{E`VFpP}H+4>aaz+ zX^3%d61K-Ezim_uHAKcXiOb zfnRoXwhVZ__^D_UcEw$ip1pyGVLWnyj)UgpWsQOnq_#4JmaMRxqxqU>h1Q#UiPu>q zMS$>L@)6Oh@l_=dh=6NDwVd*XX|kS95O4 zPuRTFgf_@lSz{vXhyuMH5T;yj@kQ7JQZN19E+c&uWb{5NJjvzUUXURR?6*nfte`qA zi>EhXbo@|RQg>#?8d*m}y(#8a6jZz@6L{7Qzj`!ThOU@S2w(lH7tY_C#UCe3q?s#?3bDQx;G*1jcG zSCb<+wRCJB+d-d3acXJU_%(n_gPS+@S5L>f-%TeWYVu!U@7X^F?5iw&IIc+R75_QC zxYkmM0&!%t{5FBBFc$9Inygm8_zbr;Kk!KGF?$$fVegaZzW5S!x94M3WCP1nT34BD zYT)@!&4SEoV1%c`Gc?y1vZLwX8q^shfg^#jLOg~>9$-In7a~vH+1ioEz@QO4rwR67;GJ8uW)GA@Fcn2bE zd%(R)4j|Zm#HFc)B`rnXko-7-Qj7eGF-Y75_Bgh$vN7U@lCMbGm`NTmN9d0el9*n4f$$zdHR*T-hL-1vOV&d9AA?#iO#Z)Hc7E2FRE>A3|0Dm;jPeToi?5(9;X=(NWM}U zg}$#Y`opvCNFxWKxAtqv6B|CcdN-~6_Hxu6N*QD%0&qKJQl78=Ls7|B#1TQKWQ}8$ z;Ei-IwDSBYLu9IJlnKN3lryR&A;tA=F=0Pl3HhNxn=YO^I#ytazk9RZnqG^05`n;o zdWPP2@!(#%q_~NcExV?a%!iXkcVHQJHS*J9n%_rFkg9%oCOtC8L9aMP&-)bWE0Bk@ z-2~%0p$Z5;bcWY`k^$l0ciDUngg*eu2m_ILyFkkN47oZ6ny|Vbwe2uAvzUQ(EI)+( zW(1CxI|v8Z9q4~@ntS%ibdGfP{@Qd=#>;qf2@ka3w`>J2C`v`5x1hT%)JLA2V%7)J zh~4OPfzc{m00e6{@S6b%DrR+SH# z9j-e6VxZa_^zGEF%v#e}$0XNAzn>OyzTP&ezM?|I|M#AhVWKy}OaC_BPX3qEyFb>Y z{LxIUPWA9b8$=)Ucj2}YFMWp*c%+8nh$6O@4ZdUuU(&w>_BOl@!oGA?3NK6k(Y1in z$(t;4Hq&HK-pLzJGsx+5iO8u!C0iI}*5_i~DXWu%Cr?gxCsg5f@PXsGgTukR)Y`!J zEdB6p$N+fgI4lE=tDu_l~FRCj#q8F=2<10F% z5{pFZDmtPQBcOVco>qu@Rfhj$oQD=%ghe}mL=`5jL@kz%wyzAIXxxfMQUoofL?l*> zMpBGLHeg8wlvE-c(4^{B7KKIbJ;aVMW+5l=` zEZu#c30HbRZ6J5pxaQ;|zR9~?Dxf%U7I49mW5hcOTHwS5ya5m}von3{e`MN)04iV! zn7kAqp})W;1L6TnfN1~|fEuVNo`!5Biaig&0dfL8f#5&{04_Evb|MxB6FG~$xvY__ z*;;QJFl{2OCvDghbypoo%ZvZj@r5-2*)!zo=8fBn5)d=!u^1Zs%Hk#V$_FSTWQ);F z_)2{pg}tIu$AG8f;`5#VRpsvnv@1YAmY_ z)mK@_Q8h4a&ayIttE&|408RSLktSK!&nzUf)6#dq&>D<`{2qOca?WTU-_`k#t=d4X z^n2YFl6aYBvk|@h^efRCx{eho_vfE9%fu7x{H|R;(j4{J+zPFgiL*zFoD(5n$i4C!W?ESJz5hacAg6*Wr(HSjJJsLb}{D2If3+d<*C`YU9rWqhT}05 zDP)<(G%9WVC>Hw|KxMjg&l(aLIw)hi56hy?=20C+11W=zXHp)vn@_Ur%Nr^B@wOF( z?s{@l0rV)8H?AZ56f<_%8?@u8P;Dn);wbG(Wjm9J!#b7N1E>5Eo!k^0cx&@3dBd+; z?r^^G(Ky7wD&$Y3Z_(NHKO-HX4%i%_T;!i^h;%(9E3nk&!%V)boD{CLswKL`*%-YE znm(-iJXQ7}hIH2reM@w~Hs=G?85htk)Hz<|(&HI>$J_kmeVxYcgP=F$eIeZZfIX{G zI5-vYP{j)w{Q3YgnROpTN1q4Z&%JXccyy6bX2o+B<6V!hvMKpF;2L>xj(+eyMk#N$ zk;>=^1zTvd8(rn;8VX9Vec(vFa1~(B(cX6?U)TXSXKx=o(l2}loO5`8JrXJm2jH`N z_a7-04g&BwynBzN3QGYw?B2j5t-?b<4u^Nokyv3WpxfBBvGB#NPz^_|>S)5iqUt5P zFuB|LO(lW<#Iy@P>;UHr4w!#_sj~7b+)|kzZ0<(Lw#~8B7MpS4s~zRQ;?`&KZXEtI z$S9Fyh26$Xq#e&(9(~5(_AH9_Z@2uf0i@1h%V?G!srI#8Hg*x;xoR{|=2^C5@ej+e(SD0$=O*5={RPP+3c3 zQTB2}*rvUKI!QdIcsklR9sdP6S0|3!ZtuHYl_Q{S%i8XU;zM>y&)8SdKwrAfs<9x6T z53=nXbUL4xN386KdElP#TRFBuU-isY%d2i}k*>mL-*BiBx4UcbUU>|tM_Ku1m%OBD zQblfeSMR<2m{*^$^3CS1<%-CJ&89MUeh?TQGha~ss&0Ubh;0+u0;&1K*0*1i$_}CF zY4x$JKE>MR6WdqdAfQ=RC%8J0o!_3yuDF@4AIEeTRb5c0dIiTCq2)@-#H>lp8lnD* z%B0y!MpGnoQsLQ>&)lYPjJnH~c2T@d&3(Dm0JpEod3$tLd;#YkPpgUd#2BH8{1Av^ zNi-47HYJ@wV3RkG3i=eKg=Diepr#nBD2!9-eW`t{n8=S;C6+@pesZxZF{umLV6cIIC zhH;}vlEEln)$dskiP~S-DpWNPvjZWEmdPZA*DJT9CVTJJH{Pu*do^!ZaiPApqXV$& zW-WQf?}y(MNjvrd$nWrWRv=0Rt~%kqDk)mN&+(4}tM-5X-TVXhbB^@@mBG{)|3_u; zUpkQf%RWo;pDG*G{ldR%&-(iRmP-u$mP??3R5tS|vodq_Jb0~sUMRmp;kU)VL*e}2 zJiTT{8>J@qq&NVkJ|EBStLiXI({Z4*eyePxK>OZQN(zI2scdMK{*+6|G-F1xCR2et zkS+87%AN()8;8|4Edz%90T$i5!?DGj>6F}>l=+`EkO}p_og_*ilg(goplZm#@NXwc zzCbwBAaPfwP3v%6O{vK9Kqv^dgeJDE2Cly~y@XlD!D`+MwvC zUWSDjNIxcr7|3|C0LbA(^0%lU!?3Ynb{XYIpbIp_NxDfzddmPv%FMm|SjL93VE_xP z#{yYvgA}JXe$4NQsS2@wFyr?SzEfbiM2E~VGt}(?UqGYX!h3g!?HL;w4L?Su8CbJL z?F_3sMtR9txdlm2*&6Bv@fq6_+X`Y6m=r`%n78Et-x*^Caj}&Y3XRnDigEWGEI5qD3u(;L5!{S%*^c^_Nczfx@t+@N^DM>QES`0N=2o|0CM0gZ9g>Kow4bu7lySr zLn@Q^uG^81Bx+9lqH9WqB%fEqjjgZ1@-{i}!77MszrLN_9F9x-k!a8zPS=<$=WZ?N z@coS{8xWJiQ`#?tGCy8-gAu_4U`awIY8nP1X)%Y_3~YZB$ePq-_3hp?$E|=QuNl}C zwPv}}S#y9uXYEv4uY>E5`-D!Pmsx6Xk?v4l>h=PURS@C$MNgv9}1(sPKy8g&GC#G0)suZEJxIuY&Dn zY^k#!C>AysHP*9CaU-eQj3>0_Oe(CjYrZ9{W}7wLKVgmBBOWwRK$Szx3kz`^+oP(j z#!mB}&@r5}1dtO*WhT+A)WgTxWXOdpadJ(zxXor)k%h5k!xYQGp4G(}Fn@5CTx70H zk(*3cVXu-}Bn7Vhp&KjqL1_P#|(c<-sfoS`e6D(iC^Vdm?i1`lZj*}x z-Z2C!Mh=<-3X22nDDStOyi3@E&GFx|)|H}m5#TPJz*wd%R|4+kER7gw653@uR7kP& zn%gXlo*7fR(Hg*4BOq74Kp>o!ZsB^y--Gd;<~-2B63sxP zT)0pA;Vt(jMot8V)^j)+;^v2{8^P)2l5-D`6+mp#BjfrSJ06?h5u6-9RlXpv{3s@2 zBo*(kL4d#Yjku3UJ4#9+Hm;LQh?_(y@1t--E*9=4fxYf<>evkbfiUh!o$OpkGkoC28IFVM z9fIjL?ME5SfCZv8BH5zSOGx_U24?AJ@dST1BD)+rv#l@ zr`sa&ovNbkJlH=O+h{o7@~@odcO_nk(zOMa*nwlVTppF`Zp#N4|Ab;`W^7~`NnC6T zlynf4eGh>ePl#%C{M~|$4|R_5D?02YnfDQclDDcWVK`-|H`u5rY^5h8WbqX>**=a` z4a#Cs9i4CVLPwoflzx!_JYlwT)cFp+6&&7Aa)oIa_$>)MnH{T~f;Y=&!tpCCf+=x3 z6j?Si-#7PRI;CzmkuZu>^%+VNsvx~afhc@vH>k!=xZ9x%Uor4cUa&;D7N}8{L|sv@ zth1OM^bi#kjncm;*%#*T)GA(mZr*c%8}MjxHBaE+BHWPJo9qzZW&d27WPEqlyoD~C z;`%Jz9@E+10d1zPy1rtfp>73dIs_+N1CyFPqiR2_Gul0afbu(0n z3n7%vaI8nTl@_N@)~}(6t@_QqPTvmgduxzBW_ceGF6)y$KR^N2` zRqm8Wv7xs|RYhe*b;9Nw>xl^sh@%PJiX!)#h0(xkVDpN7%Nnw&RQoy`()=ENe zG8=0!(QuA6O1EWgD!({_-C;cDPEtkdvv^{XK;UqsCWp+B`3(Fb1I|S(ya1{c*mYWG-Bct#ia_RGY$nB z`_@|_33@Twq&tsnqBQ9Mnhxz7z)+Wq`em29_2AQepaquh!o~UwzZN>Z4g6v~j7G-|UN-TRrGx2tCM zHRkavmpx~W#SPW2ad#lD2Hpy;>bNsc;I3rxNEy=}Wkd3<2A!C5@_{ z=aALs*8xlC7dOUk{Gq?$6|ld`FdUkWWhu4sSan9Q9P&`afpYnPhdHmi?aj)(e1+FE zVeRzaxLnT|-6iA2tu7Sl7YQIwRNKYptv2kD868n(c>moV^f1|T4hB?~8~&89@Rt$2 zfJd4?9Z!EDda2^15rC6W{xP0rDHeeN;Lhc~db#z!!#{lFh@&1pzL52n=}9B~6K($S zWCiv^tFdyE!B&KSi+?MMqdD9#Gt?q81eua_Uk-|xA8)RUFfFDlvAx7(r4#(y7+(RF#gt!W~%9TmalWjXpp}ekb5eCZBb- z`l$auA$mjpK=cCGhyN3zmlgEyh~C}5BYOP-h~BsV6Vb~k{4?p_AbQuo3jIR#0!qun zX;#(aH8E=vt33(;PeHht%ca}zttOo|m!H;SlxaOr^dMK%pIlM^^r|T%$c2IQ>Toml z>}#v-&%Zqd7ywVf*z&uM>8>~`b@yziK?2jf>n;F(Xlq_B-!F)w@y9mYqH!_vJm8Jy z&l$acd8>*3zt9|ih-s<7&1)#H6sqb#Q1Tf4BH?_#fl%Orh=_^piIL~55q+YRaAa$Z z70tY<{OOGv$(6D5TTMI2cDMFbw4FhP4?-9o#>w#fb&cak^ZhxL*W2wg?uYFvz9iT! z?~n<3_X=H!zLpRgdGn$N**+zTj3QcvJo&sHX&Z(xI90zxI06EGB{YQ~Q?M)rKDb84 zxLgT75O$^-&n$c>KHmUG=!PD=URx=kviV=DUpy-M`p9tZFwjIkpM`k_r zhQxZ=Y7^2P-P(v$hUTwfqCZRGB9Va!<#gf0i25esk~iowldH>2tojm~%$C%0c{dQ) zXwJJWQ$B+mw}Mr16Z=ElT29948O#k@tOe!Bdo=+ z#p0KJ5<6sh6cUkC7@j%d1C7Kbbu9auDsmor@ib?X6`SIZ7!0Ge>Ium&_mHaFBol~~ zZGF!8ufREvHAgWwxs<~D5EU8j7=0fYDo)^Hj}c?dsX!Ja8ADxC)!3M86AfFt10^>H z*~!qZOQYyBUD+7S`bZe|sgWl+3ejqPNu0GHFt(F+K^k0zCJ&PmFKk{t=svP9UR274mMIzXg)G9q!!X{RceIR79Xhl z#a+vu^A$g6vop~OZ-mr6N+>og(D17VeXN_x&GJ6ScBM_}m5{oSPHtNC#*k=(tgFC- z<^uM^$enY#DFHTVLpUS<=_a$N626vl~d@1C+a{ zIe_f}Nyt5bS_d=9stjJ9XyFbu!$MTk_tu?;Few8Y}|eyBF$SDzZ^U?0V|dI$rC z|1Hp%TW3Y`5s2jQGM%5wrY#tKn@diaxhD6h0E07Lh)>OJ$Ui zw-s)9H;Q}ku~vwig78{SSmASrzjM8EJhvV_2grtP*X@Dacq#F?Xjk*+xLuu%M|fi8 zyst=S=O)~|GhO8G<1zF_eLZno#aaO$YCO?>28ZbV$dF$>Z{U-GHw85g;liJ#eZS(P zIs2#R`7HnmHQhnfgT^E;%Ea2R2X9iPNKCdx2wr|2V|`VK@hBk>KSF+%di(UN1|ZRr z@0$tuYBGTTuVlJRbmo5v^kE5?_8Z)nAEfwqMT@T<;R?^*e;E-R^?rGw?r3YTZ}-Q} zUmhNBIliM{K`v0O)&YRQBi$DN1{e(Y3r`Nnbf*b_D_U3~Je*jL#GEdEDOwf*O#71= zK&ET+Uzx6v3p>o!Z$(QiEzEV{FXAIW(c%*0Nf0Ge#wnsDVdXLw*YV- z^=MVkm*KAw^p&>3P6BbN|=`hQ{W4|4n>^ zf79ss&zUagpJuxMb1V5D9%lJJJj?}ankxBtInE#ZDDnjw$OxqQv+GplWPH2uXe?K< zHO!sH&J*x75jI|txv%j=zWiOotXB2CL!Kqs%5Xf{?v?pqV4`y4W7t*)tdo1vHU3eL z4{Y%VqBJCH(N4CH2Ou|~n>>}@XLx7IU2 z^~J%HP@+1&hoOILw3g|&z!!rY++_FVpik2|42CjVn1fazFLjl1Nm4s-;pm!dC9POi zRT)}bmAB{-XH^`50rdVu^r35u$|}i0I#lLuMW@NEi7k?l=M?wF(YN|Ia*tBDMreOJ#mdNl`kuB4$GiBSF#8g1)7cl? zxGz;Pwm*DdA&}u4++(n#gy6>WjNDMOP zo}s4bOo>AZGyBQiVYkH0Y<2VyDLk$XUkXDZd$pB&4#F|`fx?!ML&7phe8XR(L$@k~o&9n5pqKP)bcgmrb5v-xyT#D-4BK`5CU^z;#R3^Or_g0WX!H;C1(rFmxcBQG_b>>>3O25(YXjy*lLm^M8|DIwZg zU$t>vz^0M?{8nho$xlcy{vTbn1V~!eZP~DAIi)Zc5r{f*Rf(J*)xb8HTz`J{a1Qls z%fY{$zS+-yQ?S`7c(v^G@pX*d1Nn}oXJYn8|DQA2 zXlhh+$_#8nA|eDAMmF)1YcN8VP=uSbcpWwakv^E?IFG+weV@Q{R4)K^fB!$N`~UUJ zD4p>iVNJY(g%YL!k|)WMer(khf^obo8D2b`F5ibz=4uPx(1HNj)P&`2$kbD~2I|(d zvAl-g)hxTbhRrFvmyd5n$LTs_B7Audd+Qtw_uLa6OLq5_Ns;gY)p2X!w1;`KJ3VCFg;Ef=!5*EI9<_@Bi3zamX86D;C{5xS*_K;1ZWa?A$H(5 zI)WjgpA%?l`krOg>8;ThpxuK?KMxP0H~H6jJCva{`Q~_6R+(>Ny1byEeN}=#A!r_q*5*s-Rod712XemTi1hgfZHw;^hM&Is zf54*%eZD-XIIQ29@{M7{-tjgt(H!qzj`lUsGpiTm#N++-{9cR?aISfZjLS1_D zdpviv@iy)zt^sFbsbNg>rU&amhStX8c>5opU`7DA+gN)B0PfcNr1o#X-6X%j-OvDV zx6$9h-ELohfxEl)<~U8*RHj=?MJo4-&OmF}S{;p47r|p0aa@aW{Uvyh@^PPzzWlPx z;DJ1TbtF|;6?H8;BLL&;BL1Ww1!+~JlW?9 z!&|Hrw#qSpW#$QBnMo3wqP+v~+LlE^3!MVnGs3{HcR~?u;lJ`asq-nz6E1s$O`P&I z(zM5sVg}j$3%Hvb0PYT70>3qR&nv|J3*hd~-{9`*@D%{K8w>#MmirsH+v}gf-B$!+ z{4hD=pH{J*`ahrlGQ&o?jlw4Nu$xXc3o)4i3S9{d>8&tw&?A&)0L_dTlv zDpUmF0{@exkqkm+sb_S2A(f@|`g)-e_k-h972xuZ4e0>sM73JWL$*Szy+W3y&VwAP zN(m1UzK`E!URS?tX|Lz74fP}`mErGwa5}(sgysHIr9NWCGQplP{f0Ng!AH7be}UP^ ze~nCJZcxgX)f8TI!iP*alK~r>NEv&pu=+_DFHzbiSGeR=`WN)Q6tUh-DsU**n-v*A zeSfxcsmJ8M+A}^Bxm9(>=UZq2EI0FI16dr5x2qs=RAYq9CLb$KR43o|r!|A0ygO6+ zyi(whYncK@fJPTjtJw=N0c9+$)u7M^bk`k>?wX7#Z~^;mEay*0g`CUMZHb7xXvE{L zh$*NU0aec%v53qEUWewB!G2F=mGm=CJU#<$1urLLSL~?HRxVmgs)i#&0P1@eo2b^K z?j{6)`u^hQkPv@rxy@Yxm;o%*heH9<5P+utRy81Ul>ERJT-XaYEj5>@8^@H7qrh{))eD)zT5zlKKFAYhsXaxr>6!`Q3EKEW?LEm zOo^QTMTxw7`rRTux!K>A>L2o z4&m(#^>4SQZS|Actfy|O+oN^A{atM}{|6+p)=4MCkdrA6G(ZLwazws*5zhv<#JiB+3dvuhGgTaXV{Pp(v8TJEP8T4j#NFfD^ z!XbsC{H{Ew+@*ToG2Z9s5PUy=C> zMkAyzVJFa**hj4ujODp)kw3-~EL`$3XKz!CnMO-Gh*bq@@vpqPQXM4@Rfj zew;fE*{UC*SD2`|1Q^fX6NVhNm?WQn?m7KJ{`iRE^cX?dma?|<;}lh>@5u#imViZF zErX#7fv-(ph1Zg~X$LG2e-6>{D3L5RVeu|S0sr2)o`+4=U}ZDhgIeN!6@;bYORMn+ ziPP;{pFs=b?CdPGo(|dxgV=JPqd_2kgPGej9C!au+Y4o5N4SzXi((tG6D^G@+ENE$^cW?`N_i>2EqZZH9xKifrqpeR5x7F`Ph(X> z8^Jh|IfrorRj#SkbY*L%%WMI+?<$BrqhpD&_)fKa`z>FXr<|_st=9Brx**#7;LtuF z5(f_D2#FMmupi~29}V(i@@Wl$=_Kege%Rn6M29s8q51j!hAhFl64PDK*ze|Mo28dq z?*VAb7s-t9?HXvfOIFoH?_tDX96skW_qRTw;VbgNc8uQK)RlLXpR}6*2pE=t&ti=; zLT`i~&Wv{;LHxfM*Zzj1j91uDLIhyFnV0m3YLLOS1w6sxM8V?VvgRT3KQl5@g)jvP zEDw`#fQO1DFtk=bO@H-EPZQ>V0y{g5`u=uV$Fwp+I06nVP)rmlj z-V`3^jjRui^t0KUpo6~Cj~w4Z`;!UC8DGHx-T8`TU#p>;VV6#VkF_pQp*9&^&Eb`; zX>DB1qTT>?9*TNsehu{o{i}9T^d_>&#TRMBYu#)TTiru3M)n_d8hJW`A3jS0m5qtT zblq#`^*{>oIC-pyP$|5gm3$>M$pP<5RGMT|vp)?vo0w``(#{!`8}(80PGAb{7|A3H z!d|teKSTV!OKTesV4Oz4jS}wJB2OI5`Je zGY53Y(F}u>_wJM}?PV-aBD?QY)cRJNf)vKIII(S!NDx6maqZDHd<7N1LlQe0AwYot93jW3eaPXv-7_@n7G zM*S&TN^zGHz!+}DD}1BICOZP6>M&JpLKQVzSUjPXJy&VZn|~>2YmcijVQmPSuGcP? zOEdWfnWDv`vL-Zeva4L#!hMTi!5Ccj?p;d*pSb9J1+vW%*r{?tKT?=Cd1Qi)@j(-&DJ@z5qP7o)pi;DnB7CAfHHR& zL%43yxt&#aB8IK*i8A5SxHiptu){!%3c;xEbP4*IU#_n&guv#H!QwD@Is~I2(u8{V zB5*vdU#v@|9oSjjQ_pd;tI65e=UXFTog&k4D@Obkk4awP$LJw40c!`9g?@<1oY^{*lC(nY0!$hm}CSO5$e0 znh7KK1?*kx?RPxO_@dp*0XUMD{&XPx%R4{xw7P#IHKYSbkpQd88wogijHDWvQ`MQU zZ-6y8i%EDJ>d3YqE4vNXPRb?9aZv+F6X2Q`M*QNQ8T~WD+{{ zkczT;qlpYFtqCXFaV@X+H_-1o?gyVEA^=w0g<9D_|^jrLcS`Wb-lpYk4#%pZWmc7 zOtIKkohzrb`g+d3mU)nIC7r2;@+n|3?tT8< z4weFB56r-Q1CHwB4uxx61PQ80rtGUGaOB)f+& z8)jfhWu`)?adfAp#^Ym^zLd{|e-(WWY>8L@c}dwq^x6xUfN^O&V#5_n=1E%XNgA)d zwq^#e8DF9irXUlSQ^i&(%~v%rWgDVU?C@_-Gk>TQ?~bo?7szTUscPZIc)D zYm&d<02PXKLRmmm1n zcs{G7=vgNqv^?PFS>e16dI)y<%@T=VS=b<)AAp}2C}jyI{e5BFT|w8ra`!>B`<^40 z2Fc|y*IZ~PTaQ(d>lRl*cmJe3dsU*?D+^ zJ{z9o=(EPnidU4&ufEd>?tcRVHw{EB2-%g}OVArc%#lCEU^>nboN?YDXWnL19hjMS zY*CymmWNpEB;`C}t%Nslrh8k+GvO)UcZw@davrP5z!NRsvbfd}81?eE))0S-GKPl+bR&3L?pto&x zLGh7sHfb+CKI{v+Yiv-VEj^UgR}36bxry1W#vyGYepC}`6dNGxO%xq>91?-R@S;$n74J#b{h7b&lW!s~Ie<4|#x_uMj}~|J zg&3g~IO|@Cp`duB7NlHxHWZ2qz4mZ1KTS`WL??i`9y>g{dHW`)Sf`8jwr^Tdu~Ex- z38n6A&^x8CIE;+s=}Hew*ue^`1Ba~-v*<2N4@ zs0jJ$LLt{ta^0V~T~p zI^zzRHUeW+5R(MHurTQGW()p^2hT(ao<`Uy#u}&OrHPM~CgmqEi~5+7eb16=ZuF;F zoUHRNDbB^R6^i0HDCBi;3`(c)Mh-$D6#H}}NZze^JNW5D6|L-iagXUY;KKuinwhMr zDDEXIYWrpc`7n)6ag#5STXr@a-16|F3UF2QJcNUb+=-j$$#Ol=LHv5@fkhjY#}}1V z(iK(KUGU@45d$M<;0%*+v4BHRFe)EeHQd z;Jpl4%-kiY+gzlsDr%NIn&wwM1Z8HJ^RRs^=JieKT@Y9F%eLvl73hu7+_@cnKbr2Y z!N&O8-MY~QgWKEd#RcjILz&x8G+M(=q?e!JUy)U_fYF z`f0J?lGJuFL3lo}xj(lMNcCiDG{OjiAZ7e$vHH;6dxwxgu9LR)17gE`q@t95l3S8B zh1dC1Mk`c>r9zzNWNm`Fmu+&BwyqZFs(J^QfWPUN5aCCQQ>i&JU1!BiE%A(z8KF?6 z8-yfiC}~7efgMnRd+XyX7}ICRvtmj(LRK|Y!mDk+K$ zF|ED^wBmL9#c<+id`X)z4KQh17)rPX4o)235seBh*;l>O1E1PQu2mVshvlUpp3%S4 zm2kikEXa;IYI5YWgC5zHWPqIwEb;4Nw)>*^UZYbpC)hrE3SF863NZVA>=!A(hd|9Fp(8)13 z)4QVmX4K+eEwD&vgpP zXEd*qlOxZIaH089{5Bcgm-36SyNEuMPQy9(*h{O$H3l+|pV_Kr(j|k0E7mGo)nc~l zgJ<`xiW%t(!%Hr%<=dlfVjaGvX`{9=`M20v*e85w?kD|^g8BL9JFRj*pK%JyMLES0 zs5FI}1ea<2z~C}7#Bq0ghl-;+&sQBSv)+d)h0u&kCT#A&=wf_ZC+Kcg;GbXs)|sG; zTxi%;yp#br2(%u80~Qu?QJ^k4pt11^An+r|Jeu>oWB8Vh)`I9m2M3o&vevW_YMSoX8;7bn3iBmqkDp#-jyqTu(0Ii!_tNYx z){HXk?vtCnULNn9KCp4p{ml2SghGN|WwsvpHq@!{=^m;q6%LIVz6->JT9kocjMzj_ z0u4=!o;{Nv>4Fr#rq8C>HAPCVY@c1JWfLWw*0eWSm4XPVcG*(= zBrFW@Xn*|GBmGDDE(*m`$*SX}`V=`tGzvvC9qCHH3N2#8yX4nt6g2ZC3;Nr{)e^hP zx3*JYHOD2r_^ueO>UL}n>pfK~$qd1Dan#An2(XL`U`w8SNym}0XlnLMP7CBDUJD2! zmRDD4n|XDY;z2o6OqzxJyR>gvjqpgN;sp@#u5he#(kRMHYtU&J4ovsyRW`Wvbkxn+ zh>JM42f95=PG;(rSX#rEE|yKhq8-O_+AkWa5P4Fid7Y~!*~R;l11(}SQO_H-@J-A3 zLXh@hZVz8c$!O=c%unLqBNNt~RSm~**AkggSf9T@lNQ2x?$`!!(O6WD%kGzcA47)W z?eC$mY~KvGwak_sr};_f!bK_}nZlXb38qy6wk)E<53Vl``VB+SNGH2I5@g-MB;Pan8N$;~^l?4(od+yj zTbA5GYHdW^j}*RA#A4nSREU^5_R))M9gRlSzT|6yov~ydrtH_BFWS43wQLjvJeKdx ztfm^BWWUiU()p#LZ6Q}y<(%rPUxqVtH2XcDsuVpy&PQs0_>wexYjm`ya!N|%Wqvg< zrzvx(!rs`$(iyVD?v!EdVmRyx`g5UiqY-}90v}GoClwp~i36VVP*}Rtk0faZ*rs^W z>1&;VRpu!7Cr==gbdOAiSauTn8HQXTG*t-WUG48ouWaPwkAD$?JL#jhRRECOr2rlvcLCWO(ZX*iq`0 z3F6YuKKUHk*Dc$+2D3W`erlwV%9(U>itVt!=LRlY7Q&{HV&_Z+yn5UB2sa!oSWZB= z*`yTPMEQ%XlE`QH+az%rv9k+TwGa#<+y;Nc$=>g)mT!#~mP9O_!lE-H1hUyHARNAJ%&W4?ia#aE>H0|vZ6w!s-rc#t4&7HfxTbhV~#WcGLV z3c9b_A5)DxcX4jpUablQyX?0(#i7e;%&X=JD`}0B^~~Zan6D1|euL9VJ}FcE=f}&x z9tkiw|FuW}^1sxGkB5Kz-RN_Wy#UnQK*6}3k-Vdp{~n#}0LelHKquE&ulzGQnWCDX z3?O0xo-z4Szh@tNvxt4OmVqS%Kqr%O9pShG(8&?Y8IrCp>_^2|PTj(QZHeE%n}ot# zJlNPKfg(DMCpf0@qN6oq4gfk z8E*`pcpu;iSz1K!a`>VHhN;usYSA2H?8$8Z1%ojWD}y0y03VjiEOin2f7mi8U|*`R7wC0#v0;p3~AR^=a_pA45Rk6?iW+XuSk4Qj54v`1WBi6h|U&Z@- z4m?k1(PJki91;>gxR0O=%!ABvpG3{3s?I{nDTVqA$lJ$u=bI8^o_NKhHQf9=aa{xu zLQPjgSIzqqm-dy74zDL5ZKx3n>e3`Ry2|a45D?^0ii(n^0s>qfxN0yYETsJ)S`YZT zt)$NZd>BBiCHQ`t&^lQ2a6CUEKBg^1cV^M{boV;s(Pk5d+hEtCO-J{r01QI2Hi)EX zuG@zBx;7Jz>BGpax+uen!T1@%)XnZ=&NZfSW#Kg%wEJr@29z!CYd5ANjC{1wZC}nl zeI|}Z1SO6}9r>nP`LI_gpjrT;U4*=;BT2&cM!Fwilo)QX;dbmcgD}M`N4XMlHb(Df zWQr-EuPco@mUD0=5g=T@UOff+eO8JZg=Q3_FF>K*VpnRTs zG=bbt65@Xe4mG6@KEn!uM-l)snIFug)9c2Sk+g&J zlA7dwY`?--|? zy0q;C{YVMNK#Qpj`pz=h$nSyv2H{ieF0w*i-VYf8sd5OJBSz{$jM${?LA;zMf4TbM z^C^j_d1Lllc+jE*i<>-OeT+D4geU=y;5h*ikhQEEkYjuHik-B)Pt*t^--W5SoWqF- z_dWnPmKVn^J<}}2*GKh>rX9>_Bmt(Uar!_J4qsLdU7;0RAc-G%j1gOKS9xwe*~@$} zGnGs`<`ijVkgfVKloR#MLOOT`Oo*(o2>%-K*9`zvaS(_Ja05vC)4br%eUtwYOGEU} zfAQ~plMBg?brB5>+@9a~HPFDyveGLOF9`0ia@Wq2ZZ;|Gp__CPKhDty>h6f}Azh^G!t7~jQXyi6LAKIRRJY@WO0~s^gxR!O|wBR zM@2XqmoVl;W%C{%;T8Way`BS(T5(O!1-4#=QFjA)ee|#cWlPQA*C(c3^RA2L)N>=0 zY?)c*;aYS|en@zZkyd0WzdPIllGT@sRB$S_m{Ovt?xZezQ;3B|JCjusuEww0V>*bK z5%714q{w0pP3K5on55Y}{NH6Y7wwg)#*F-6dSadz2NYE**(kXK51e}hEE6qXe?M+E zirR;>0QS!K0DBkz^UlRz4tf}DE&dVoXsBT-z>0)n*C~Kc4NgbW+XRhaEu>#E*pEhAV&@!|R?UlOuvp&ns>+xK$7U8@=$8sRkqAvN^ztu2csS z5~IPtiKh2n*v$ER9gvr4O%Yylih4u3>fM%Q!!XXmn5g4aMa^l<8KeDqvCEOVBAhU? zY6;n_af#CIaR-m7CTm#cew9WP9-`G{G&qd|hlOozhK9w}D@kS|ZFXE|?z7*u;98xy zXYBaZIxo5O7?6^8OCIK`V+L7J!#VQ-qxw~raJjL{s7l#M#mJ#?k#X~?3C3z2)fVHc z^w&w`UXF+r<=2sdzH>%Q0(K%<1dc`Ef(JQqkGgm^FK-2K^AV$A;qeY*9O>L^g;g)zBP)uG!DIN35gU1YNxK z$Fzy;9Lfd+GX;AoOrZ*5ZVf%i{H9@z6(V?bnnv{kttL~J-yMl7IJO7vn+I(pB8JuN z=fsd|3~nK=G|!M~veE@tZ2aJbZU+$Snf*v#sZvD`5EAV?-gBYlz?o=H}S z!!pK=ttMy4m8|nox9W7}avZe3>Ke>!NwinsUG^vPNYw_OX-UpIl=i!89t=iC45@5^lZx?Ha9DZf(#JAT)Uvr|Pw#V4 zZS0)zj)KvN?a+U#oeiYzwU-DQ60ut$Ey$l`q|NW3aY#~R)aJ>=IP=U2`fzk)zYm5w zEl22`-dyeuH6Z2X>Fv1;>h#vRS&JGprFuL6DG=d8E(X;&?$bt8oBwrFxDCeaLY0pT zyM)*-xO?El2Xr33v@4**OJWogSfWd0%gG;lU|+SDONa17wHE1*4p{H8E)$)VD4)5o z-GcA^aPZbNhA>{m&UN8V&;*08%m+pLiPnW%V?vt(Y4nLZ5%%u!1)Z9X_fQ?c)HYd+ ze>7b3U7cq1&a^F}XhI37U+UWJQkl!hR2uKpYPG;MaKObecb7AFmj%M1u!Mb)YTd!T z3H!0ez&%g6&WipO@9k=#?SV;`ifo5Lj!+1V{WRpqa##6s*IC3sId02<#Rude3$%sk ztI60H@ZooeE~#g`&%RP6$Tf8 zk3ia=20Z^aXURX{C>m;rN`IUsR59NhkO0>*d>(?RWms7?Ua?dR5b!KvwWU*>Zqu5P z+SY8>9fOPK2NqWu)p+h(mzR&PGWm9r4JJ@#yN3It$;nO~u3c4&pVrHAa*TZ@|m3~Y0g1CPBa@Rw}X`q|}}#T{Fh zis;=m%IC=?Ys^hdJ>=@4sofG|3y|Fm zKGS6kHD+f8Zwphayyew3g9g8j`E30dhI$^eWo8Bq9Br8ei+yP$P=|g(i=+q{hGfm9 zT5~1dvi?=YWCQ^1oZcj2wC5-{lu1#oCWWLJRJf$6WULZu09hwo@;ZpvG+O#6MR7@F zT7W8xZD>o2l!UcAyK88(TY{#oN-o#JrPG*L_iS+?vCiFWL$M=-Ui-lb?DF$R;ig>{ zPlO~*de}0dvN<>K9xD%$8%YoQ_c1*QCbQFU%D|1MJmW^?G{Lhw_uL2;^(XT+F5e9C zhi~O9>_ufm#Yy{;(|(+1WijRz-5(SS`Rf{xckiRz;7y z&Ga(NPcCxSa?!34AE6`uXXKmw=o;uNa(E^iVy9;;-$6Uxh_&85alOv+-aot#Y2CgknV9Nq zWv1hBbx-OfzQ;!_4P)1?T^eHg9gi{ll_XgpEkxZ-%IP8?y(4$4brGh$e!9R85r2z} zBDshRCJhb*Czb-EKjIGWl}4)Oe*E2|;7m*HJq8>jsegKm{Pk4eKc`8*g-WaPtAFcJ z;}nHR!_F-)A%PAEHvBVufo||@#@>oz~HHT|0(T46` zmeW;qXvVMXv37M38o}cabg=emk|H1w$|}IFh+g^eBBigll?$Gu2kDdH0ddm3>f_9R z>rt2f>QQI^Bowr~iTTDaL;xMH!FvA-j(H@!`!8{l7U>RS)Gz_s0CvVYF6?J|;{Rq; z3jbwPa)5owhO+&KQR#3U_@Jf-&hg#JvU~q!f~ao)zfys#f0GL2+Wk%im;kB34S+pT za6y8z&3=Mxz9lN--t7WmdxRO*7@1j?oNuR`N%Q@NX^`P}jhds0?I_G*brVpd#%%nT z8g&!Yzt*VRpMGCuXK?CH|8tte^QWuu|7^7X6UTG;-yF}MNs@`ekfVx(CyU}f696Ms zQ=$6fA?y|4rO2w03=u*3CEFYNbZMUUtzX>F6;{k8cHCsQm|DkEKb>zJ>TNuIT0Un0 z$M zFifgm#2X4pkYT$8Ue_WW$}G5y&ek_L6UIrX3-l>0O;6u1`kJ6ZN3j%QXaWxDlFgOhy^FF#ch?Ncrs$^Lk9GD@RS-4LfIKR0 zmS1~#7MW?PN9Q7d)q-N^+hCl-(5$^`5>4wQN6AreCod;lEQ1I!0+=Zs8*SNZIOQ(pKlQ zsv(~_+UOWBR9b3)?cw4T)F<@ij$xE#cZ1y(eqR$}^jHd1 z{2b-2&S-x$Sp^kX65^gHXqb9|E##Xg-s74$d0ovhh+#|>Is+^9nf91Qq+AvQZ*w{3 zHR%NA({TH|v#(E!TqQ+U&aUJHCo{4{BCMuD^+j=M(f0mh*WHAXaObX)7|QCMkmqP+2=b&_n>5+){G6tG_?@#AZ;(P5Bl zeZwYQ+$vq<5mN=#Xa#^cV}z6P&N?P zqQ@(Ycb!oc(&9viOv5N7r*BD8gr+Z>%Iu1U>G0!a`4|$ayp_cZ$G{XB%TH=dKZp8{ zCymDOQt+(C?$DHe2H}4=U`o%6Xv)Fd2T2~T3!$e|PhwjdWtRiud5N?2CGhfTQXltG zO>uER2Cl;{lukejSu9spDiqHM`^cmyU9{9DOh&@i^$mM5PJSi40B4#OSmzcelv(M;`S0sY0gNZcA~-(14oiv5)EXP45fH z;r?re=|I}%{z3A5FIC3#W#(5))Etil>raJ8udLsML8~!&W_KuIbkHPN10BDMsCjxQnY3yIkt}v*I{B#2B)@+=~p1 z)1RQ$ux?k5<_t|Rba!h_^rR(Pj%lOkW?7DvVEFC zT7ybIL+*A!euggqGqi!2$c^mBzyTC;>hcA(kCS z6=cFKvK&Qo%@H91eC7%`H4E+rjJ&DLjoP*UhqbeeigVqvb@1Ts?oM!*1Ss6y-JKvo z6SQ!55AN<7pm2A0cPBs~a4Y+q)1!Oz?R`&=aqBOm{uJwbzxA#)=QGQg{eA=riKM9Q z1?(%1?T$Q^_qdh$W!g(_EI90UHe}CJ*j5?Y<5WO-+7b#>sF-$EIKx_w;I+%{8nD>D zuzN{I;OBfts^vN)DC?~(=T$q|vWSDy-S9U%zEc;7{dnY@cV!>8LpT~1_-o5`W63s) zaCm`i2H)FJ*DK>EbAvEo7rhKOPT`3{`!dft`oxvzeyd?!`gh7RprX_8<*$YZd#0&M z20S-&mruGT6n=1)u?KpY1=$O;>PHMXpjE|(p zZdQ{kZ>cnq=&uMDV7MqtMfBg6dJp0H-dQhn0!_^|c$lB5ua=d-i4F+>Hfs?`;H`^h zPEEzkiuQ3)v6UI4Q4&<;OM<9O2po3ufH0Z!HKDQu7rT+b5MIy}+T}P~-%jUjw60tg z3oWA0I{WP~d~tU|LUenPch?9jQ3c|trw=owG7f&CM^oNsQT1RPAW+?}IHJ#3ps+9$f*Y$XY8+k6*{ zK&Abi9=ftu|ZPHiK!ofjvEaTIB&yej{EudvUw;!4(z91or2W#3<}`s zH^QYs4nDcM=4>Y^Rmaz7j4@{@){7f^KEhmfdm+GM{6}F(gbGxII1Cf1P)_^Jca`$t z7|-ezQY%9cwdm4t!+GP<8xZ`12h1vfsos_2rdGzxo zt@(y|-fI`NUW;3X7_GJyh0GelN_ppdw=TS6o{C(Gtul2}V63Fk$-x0mLUO$Br zq*(|EXwLB=U0MR7RU7lDfiChH+GT~?5pva+kaxn&n&EwU_cg<%QSWc?kx>bo(0ozt z#oX`9H9l-3Nt^UjLEfpP56y;d8->#0sLzW0rFzB-q!jc6UuLHMKdr{OO#kbOGfQO^ zoR@+owAA#5rowz7EYlZe)K0E_CM{$$@&-t!COw$t$eiI%1^ln z%G>4^mKKL&eC@Zt2U8s1ac{4*SnY;K6-AYESMial5#u=#sVPX-0)m^NSIr5dp#m=f@ft?kY_;kL8W z%}%q%p0vIoG^N|QUT3&Wjw_&QUXl`L$8oJ|(Z@b5$ptN$HjJB|JWobo> zg6-vVO-JI!8Z2s8{4dBv{VfKN`wK#e)YysRUXkt44-WeI-8qQC!Yu-srOdD*2%ph3c zTAR5_1FjNqbFN8~2h?KadFZA)ThkQqC5U1qShHp-%(`<%;VBfM50-Myq{dt5NTM7T zq{Y#cn?eAHVf1F4kuQ%~YfEY}A7fMJ%MaHZ_J;u|9^i z9k;C+I#);p^56mGn#o_jGuTZQrrx4fgy4XTR;>|Bf7rFZSk&llzY>@4pp6-9hP0=s}hzj97E#@t$0Yu4L9Z|eEDYOBSfP@n|vgWEPN zrL|`1=SQ(o_)wbrPQ~CP5=5PtGPmbl7PXs*`H^0V-=o{a5CD>K*@P4ee+%2h17m1{ zy>6nU*%%rJaTI}l>zBAiD*z}C);ilAB5E4%sr2j&0$A^|Tk9QMx%2Mzb-TFusMz;q z!v#sOzt$JVIqvMcOpBCS3Tpth9L9KvYrOg)?G<0vC%|k8HNh5@j8>7569S`}I2Py; z!^Ie0z!j7Fn-}*pw4+eZwIyEM=<5`zHxM)HOmixv9FJm-tvC5B0l~DOUpTV8rDDlH zCX6EhqGHEx$TPd6BjPu(%TRX--pyTp``Fk4)A3!-P8MtPM{vYAwQXY7uU4pTJ18S& zKgC#hhyyXdAfL6EAFgKA#1q0ODt6psT>#|J1VszW!vR#*md&_tRq{xc@{!e|Y7=L_BGm!FF;liN?4`Ly9JBq3)^6sRwoHYCNQouZGg-zEfw5YyfrO|4;>fTularA{pCZ=EC~-0eBVbjQ zgvhf?H-jlw>(cf=9wT1JR&ZjncTuk-OTWjV#2Ne!r%N-nmAlbkq}3T-=vJOT9ZkVs0IN}0Sk|m}ph9S3Rd_28N`Jf!IWm7n zm9bQS_xe>mlPb@>7z4D)TjG6;$u$m>Hd2Dk=q!7u#CzR@hP7+Ysz|WNjdN;R}efu zz5C2LS~dFHZ4d#Hgf%j0{o~_!S&dK%Ys6oVzty09hPB76`;*3PN$+o=@*SnbY58g! zzUO2xvdV+cC0p3?*)MxCv^&^f3q|dhUDKXhts-c$%iTSlpm8*I=|25ylH*cc$q>Xn zw}JJ->6#^;9hg{^S&BGc1SVDuy|V>B{!l07%De0;%Y{vZ$SgXI%Fn|a+sFcFYlfyR z9|wg-Y4N=r7Ed8)_109=*s(x@j0+Dvar;ZHjp=T3)UZM;ZW$5J29->Y%HCG99|&Q^ z4m$FUwD>=8t}7Uoy`ACRR150;%J7cTaJ%3;nM3^X4j4@0*xt12^!RP}SaSZlb!z6S zV9sabdsuXs!R}n2Z$?-6lGv!ViqkIKCQiqlR&17vyJi0(<5QB2xo7a}%~cd0MND$R zkZi3SA*+l4J0$Vvu%bPQ0%oE(T_tOspaQo#E905Z`gsYm!pBNJ#Kk^-gTq#3;dXgh z1HA6nxiXZ1P)JYOYx-Q>9$aZKo(dP~b?qR!ygdU<1m+g)qT;^NIAUzw%OFpX-^n5U zc0#dqLS|$iFu4NV%IYD9vvl6!vfwFxkb#_asq~v|25R{!cvv+u+w}>IrUG2zjeO!w zr0aqQr|0Q%B|>yWm6LnxxW(!U9|bq+kB zFzvkk@JC!RTio(o0Dk_V{&pbF_qT&hb%)R9E{=BY=4Og!<{r`xF0P;5OkJ%V9sZ%A z&iW@D5*DGeMoE`t#21j*WR)U7^*xLnBZHG0g8aHC9 z3)M-lb8j8T#Tr1)e1Y!~>I@abYEA|>+l`4tkP3nV9_w`x4W+wXO?-X|qb*yo*!pbC z7#q@LQ|1QLs!II8hIB9j_p{dCv&pdDJrV1xz0i+h(-4m;U~+2PUzH-LoblG5$_|7-DZFO{+Jg3BSqAC_NTma+N9cZ6MGifo!&Qz zGF6q{*ne7yMt7Q~z%2&mx~!@WqN$gtnqr4!D#x^;Bw+eq+q+HD=wT)p{{sPk3NPd7uP6zwCK9>6T0Oo;AA+f6`mK^^s-440x*32Or3UfMKNWo? z2Q!!iBu@?jzzaH?S{Q8Hl5X}QN&!~FT#LIOMPa`<8PKJ06yorHBkYStYt=fFqYM)~s2A1PLcvZ(!QGg7Jy_ z;+O;cE2A&PbRX$f4Esh}Rgtw#;H}f;TD8k$R;$Q2-)9ITRAe|*;xpb70gt_{T0~$S zB4SkpA_iP$3AmO zi9D_!O?-@JgVse7#xw~n{YqZcrfHot{QN^(t{$n>Cmc|>_zYi(5Z%zOIkD+MU>bcF z!N?)h*B*Qu%!?oU^Hq`ktJAD#Cqk$c0ab1Zv67N{(qO38Z!lCVjNoQ0;}29T>G&DPxr^;Asfx`P1N(|6Bggj?HXVe}w^Bh3M z$}z~jOJc!sh-1RHBt4~KJaE{BcStbk!ExB@C#6#qWAP1fy8-iOS@e3I*kL|9d^AWG z-y{1a*uCy-X}61_e)RI(BKhJ6W0wb;;iV@3EFxE#dED!ks?#D}C!rJ5A^IHp+qBrottb^H9c|aZia;Sx7w=I$ypT}%1@md!Da-@ZNSF?~#%#nU% z8ngu+NQ)Plk_Wkt^b3#3_(~d<9Ci>tl8yHmL?d_rvbf{mJpkbZ`BHt4=uw6RAyEiF zUYDS*qM3c1LqKB3yWTd4{G}8ILE5zIOzLhl6v80xyA(!?FIZ?q0vkvLmC!SbFtG&# zV|fjL$>}}B_DPR9#LKk2!iU}LZ3xgbrhh~sg4yh^2w2Qz@PJ~2alE;BPF1;rIznK% zzGkPvenEqW(e(HNGfDr5AMxwm2Zl#31;$4q1C1+M*lz=o0Y8i+MEe6v{fr0hg8kwU zc$2ZE%G~uF6Q`6@(eR{?A!u{qp!xQftjF1yRL|VFBqIB{8p+{xZEZlaCmkz^YU3WN zeYMCOU!_F3a+w7-IECiL^AZNkRGYD9Gk!67Yq+fiSDiEY*gGlY2OnXVACXJuFc0yX z=|*FRx4N=BsCCm)dDyf)Zk58%yIbP$+m~zGbMK;Jb;lg$!qOJIjq|BZ9Ve%|Wzz4# zG1~oZk?VbFx^JP#ZA?5j9A3!(aECvv9)438^(A<%`$eRJ;_jhxkJvfVY}RNcO;!N^ zn~aSX@_a(Gsw_d#wxDQ>!WT+6T2ZL!jqNU@FOJFkm@LLM_Ynk#8WbHW$6LopOXUw(A)X6nt7Xm;e*09yXU*FL*BrBbN7eoF| z?P?Dc0~F>L+9NcAoKXi%xR<4{31<0(C@n@pGrXAMYwS!COw(!-3h0%|spzW&d@nX+ zy)|boR(`6^>!fkYmQeM@+LYJx11y)KRGO2x!xW7PCJ!Rv_Fc#JMUvS*=Xdw(1KIfj zMDy--0qk;mj6z;A^-+9fg6tHzMalTvY(X`3N%cCtKLtvRRgA|@IuX-_2i-c(z7}mu z#Y<-^;W24`F4nbAIFYl_kSCDuNga_WKxmj@TbI`At=3C{d)3UBDQR8hPO7+Bg*RC$byJgv68p}Xn5nZ5eH9+jdDVm`EPR;LF z4M|5dl1}xd<*FgKy6uihK0wXgYdrkDlH1;+rea;Pd%EdH;%d|!zCy3mHHF;Cl4B&;phjN#~ecS;24v%Nc8Sk=vJd zb~i6n#JXR`u(2T-!`xj!m9HH*`HeQg@FK&DMYvt$gVNAWLu)&`#O|L>r%K&U_-%E zn}SJRh2yPZ;8uE%k7dm_w))(kuG|_ViPxC1AYgDw{*A8;0gz$f@_q-J#tCEA1A{v| z&vF?$8$^#D?02>0!-8;lMbgET_s%CnkR=b{HwowBu7pn7L2J0a`%IcWdKO0s z1HKHEt%cwjQo^IY1wh;;PTi z5#2PeyUoMbLP~T*54Bo6;E~ODtJ^ELvDqG2t8$#u^d|{f)GbaZv_FcHP(0F%u!qm?2^jSGFBj~x${#o*&nlI%nPKF6t55<_DtI!MPqE*pjj*tD zM{fG1+52(_@NL=A?|N?fQLjWAWY$V%7(}{b>dw45fM~2+vL7C@XV;s(i@yDSeZ~BU zV2e>D+d@vxxLp*ai}4vFnQARL7S(Ut;~fi<6Z*~$G;Sb-6fZtixyXASufVJCA41;& z%_7Oi06`HP>^rG(&Lp$!?4iS2eE|F~t!}6(=4*p=fdc%=n4iJ7O5)KB4ZhmiY`Rk2 zHVrAJbZV|Ru1d@B^OA;l)odPlY3U=*Ttq^ltuGx?4C4^Rx)3Cm;;~occyUez_zgC; zUM8(JBGoI_=mR3Ub6jHehj>2q(LL;H45))-=1F<>Iv?;M8)*wwU?EBnKToi#*(z%? zU^n(ofknYh>dY(Y)@T+cVxGCIt~{9wlx}-mVx79a8cLNRGM|c>);;S>j%>pVoj3WA zNDDh_alUtAqkEi?IYBYh{m?N%ZaTVsT^)c`&DX#SV6>QLDASG-8M#mOI%QN_TvU(9 zt+d!fqEN*RS07bD&Y;zzOJZsi^+irpZ~sXWF79qnuP!@X`nD&iG^!K)0+XInwJg{` zk6_B{rge*#CuvVCc2hDXb!p6+$>+E0YNmKLB_cV1CbH!K;23H9)tpr+ z$~Bhq)geJPrZD*l`mC4$dF)wqx;&Al##-4pErolT+?Yq$p(r+;1&5~iIATfWbKH(e zd{brwcOs(jqqTnUqe|ZT;ZB6qQREbcc0;|@VN^o1G!p9Z^wJ|ro9Q+AWJ0NAeHL-` zrZ3>xP}2*L-N76n7k`G6Sbk+f(%AxJ#bE`|vN>;rnCrcRPRAjqhWy1A!THqv?wY2g zgGI2LulRki56^MW^%5@8b3nA?(RLA&eVpAlu?vSAcZkkt?zL`sGr*4OPDOFH)&Q{{ zMwmaJ%weAEZBSWZ2HE(fU=G@gR?I1;B_Fz?drPB-{#}Q0NQP63fx*%<%}o|8dwD{& zaUVG?{P?BMi@l==XYJ*s<(B{nw*}+P{0lGXXVcy5Tw+%Tp6f}jv5z*XJ>eWsJS6-a zS4Qe%-7$0u0@IXv!HI8hYcXpAN53MQ?3ITdfONH(Ca)}_?MG0zssNG#9|%44*7$z_ zjF>N`ei?wrFwTFw%9H-vG0gu{U-n_YM_6T0bm6(nBb|POEQEhufg{@kx9gR z1X%;ExSL1OMysH0cy(=VD64eWs!q+1)7?AK9ycvyqjeWExH=hDlC`H7#l1ld;@hMT zWvbY}7IHt8)%;Ky)4yxC@}9Xzw&r*DC(lOS38i=)X^?M~D}+`?8iD00*zK}30szgX zn}XYIoF_3!#M%(|m{`==?Q4&l8G6^Zu_IV#s0X(eSiX#JtvOd2s?7m+n_A|YTb;?u z_P-Qy64>h9*egD&7e_G78t0GDR<#I#hNzMAfsPLL9AkR2jc6UvfjaI!i)f$NK{pCw zRtiJ8^F*4vD~+r=qYnid=sHq_%Z9lcnlC!?El9q_64ON#rMvU91o*I%Ax7mhSU@v8 zkuROs_SQ{(UaM#!5KwMi{ix!&w91({!%8iHdVGV;gVGzM^0)0${GzIC6X44{L|R0V z+u6)Gcvcm+vt zOg^@2K>HNhAyhzn*d_Km;1yH+Vde~P*pN2#d>nN!diw1i$;Ge4KSt>)Oi4IoN!D1H zf2oHjB7~e21X)Cn*_Yg(!1@J?PmYWmPwPuN3)-=s(H0GEs8ReLFT}twkAl$gvC@Nz z^}{Z_AWA;_x4-raFDTyGCg2GR<=;+N{_R&1JNrK^KuKz+8h`N(o27fzAp3P>azCnO zAX1~%7{oWxSlQY5HR)kZkC=UauS&~NFSw~mhq(k(U4+(@olvb| zawy8TgoRbE-T`0?w~1k5T9&pg864=QoWue|;+POU6-5Q(Dzw~%ZasKZP2qqB<4oFI z$@JRpVs3&-m^~R7kYOfuM-1CZt?5#CGBs`0aU<7$rC%Xd0dZ!(xY+Wxk}kd@OY*Rn zGh6=H-xE()3OLkFK%1}yI-E?{^N)H1`@lgr)I-$jE=0<`$ za~28H(@%BFu4l;yN6FG`^)d6bWkK7~v+hMb;SP048u=q-rY5 zcurAu(nje43w8Du{2d>2HR`n!4!mjyJPO;rd>uh{CvFMz8h2%QQ-0o!O_s|j*Q%D$ z&rS@|?tm|;l?38ge5l&`j`4=P$Dgy2*R}JKnXbv;Jumsx?=vjKxbEa~i!NrV(uIoJ z#xjM8S*7NB;=AH*-F-(Ki3;)O02 za&+EQraveS=H$VcI^)-9cWyB#>VN)t0hQJG8S5=gO7= zzi4(Qo<+I>`B)BGhi3AA&dS_>k_fug?D}Z!`}|mj^((H}IxHR~0pOkNej|U=MJw)i zC&%C$iCCI;-96E(AW9^w2 zmMccsuhxesVfA%G#U5Hbn`jzN>mUn3yI7tlRa}o&D5l1qa-p7DhpWKsEpsZtDqjI9)*0<@2ISYxtFthykXmFUKTHSlp*?$r^IF>#AXYEU`Q}Y8pIg_J4oxh z2amVjSkB3te|Pd5p5rU*zLM)rnP|Wi>3bC4M3CYpj~vgZJu!5X_{EXmf0=*W5djIu z;J0J^-!3Ws7l+8dmXzxMgrqi;gS5!3(ZPp^vgk)hh*|^ zB@MH$^AoPme!rxlPi)i2M%(3wSGttvOgS+>DfES3KZRX>p8J5QZ9H!;_dI^eE$rOp zf{E9ik)&pJ;O~P!=11(Qk(rS`co28N=;F8`ghVDpu)KYINWfepDgU5T1fL_#twA^< zVKu8}%}?*w5zOxBl&;Z3jIrUF${&fOQAk}LgFy1whC5B+SU74GCVKq@H0l+ma{XUg z@_W0Pu~&&mwyVN1;4m>6+*!%VSBm*i>h(eFS=yj!c0iHr)gbH)#xE17h~z9qyF(2A zRc3;;zR1G*z7F#g&PB|GUJv~(D0u&+yKYxNg-hH)9;3#Gu^WZtJ}RCgzDXk&9q41< zkSHmS-wo60wpf^>=3k1>6vA0^@nV`Oa*Y{uIpsi|fXyO7z)s<93&x%&^Qq2HRru|Z zPYKc~NTJwV_UU8U^q)6~C|K?JtMn&6!wy?`=z3R3htBy_O4#Ud$~CF6n5TA*gwfOk z7|XF2xmLGqFHJ82QZYHEu5}dbB;}TRrt@E#bZ$;~L$2!E8|5&S`)cY;lFpejcph`9 z2v9a@t_epH!Q50?s|q^n1V}W@wng5o05f2t!M@qaU+ihR9{%R?;O_z0h_807Fa*_yzrWa)Sx zcHb0t*k78a)K3sd z+jen0{urR~ZH5q&tQDP9P;`((Zv~W;J5k$%+w#IlVEAc;w>N3=I(MRbVQE0kWmfSA z(f7hSpRfm1G;*O9F!LEM6yZ|p1t!mXu7$t5u8sHx zwcXRQt_13|r=F5HRlC?3^A3aaTm-eUc=LO=N*!@H1T%7Y-(Z#JsQ||#^y&fIA-z)2D@`O^c)Nh^9wj<;af#Kj@E& zVZ{SNtkwgG9+4s5T=cwxr+{zoHFNT<4b=uX7$_7(u<-Jp*Tr#`;1ABY;; zFina)|Fv|zl6om~1>;Kn{x;3=-#*XS*#84Dv8(|`Omt?+;bBN4KI%~6q&`!S-+ zD{+SV)s+n5(n@1WfRHS4`f+1^Y<+tqbMUw$0$;S{9v3bfuSg``!oIGmyIaw2M)SxJqk_rnNh@fLPs?thfXOQQRur%>?>Z{ z2&5NE3CQdv{DwV(q`Az)D({ORrrAt-4WwBoTKshOuG~-+q>}~%SLSDGu@bewpuj(NFwt&r$||D#f>ud9Kd1A&PK>)+dZRy=ED@ujuhCh3L+9RI!e z@IeA^=XpQS*z8ActqxSDH|9|6t0NFU@7sO~`SjN64&v#9U9+*|+b;|&Of69c?hlsb zGEC54=E;C!llS4YM?S`cER&tC!_hMBUDvn4cOJE@{0fRzrsAOuXkb@+V8h%IDGf2U zZX~zGM?03%!$OVWJZed0u|3ZQc2UXjtuOzQ|FN)@sPhDz0$zv55v*xXIq(oY*Ea1oA=`yQ?Zp>(S&FD=%ju3 z>;x+4=h+vcxU_N0*jrAlD1K_4_aYub7vaHe9z@&O{R3d?C zo_c~{&ZtWed2dPQEj~l~o#2y~{`ehr&~y>2&^!O6f5fE#i71S`z+Fng-`?T>?WdZH z{a-6V4P7wp081YZGNE7=2Qu-qE#(Y1)yEbwLOU3p6*ZQTN(yxWX_P-*3N0qf2jQo^ z@*f{_e9-_WmOm81=_otGmPO=L5Ys8XRkoL0-jz;|r=?^uHZb++~jaFDJ{w0m$7 z4Ctq@sIaK83$UDEbP;9{*b!V|R)yzwt56XxLeX%@DMWKn8Gik~`o0>&zjixo5c9tC ztIY3gQsIsdkmvehLoug#XygpN-@_&GFpWino+$*C*rH<8#>lF6V1$*f@qub~CgS}m zshV-1K?WprckxGrU4|QqB|OU#p&VoJ@&%e{ zi?TDb!>yj2g|_8YkVPgr3ov==rKzbLP@f(bUA2_#P+)5EjZ>|1Zbl&F0-R z2rYohsg2?__HcM-2lJhC@gTC`+uPeGb2x_-(?vTWLVboM0T=tCh3RWJG|KeN-h=*)0eLc!+bcP}}``=d)m5yCcG)awXO-Xh66Q#$Gf7gT1zuH&QG zTfR>`!{N}+Sw!yA8lrA#ETgVdqh@uaX*_GQI5s(Va5o$PD??ba%*9hA%k)`V=T(Q3 zm56aUGji{Vg7MPJR~rQNOPS`Dv0>lBwQJ(_3XG3*$FIKk&w6bfXiUZGBOV}l3Z!oJ zFijo?x=U~bwC|dlQr@YSEoYLWV+L0;JFw|F(>Mp(D5oUAjP3xLg^l==>fXz>6}CLa zb5T|oBWLRjrzXqS6=zP8EzhpG|B@EYZOtf;D;mxG>_R!Lx-&b3{&~`v-`8EbU`6p; z=qL| zIWmaVW4T-i0Ew9r&@pvB<`O@{)D*kD(7$1Z_iOUN+)7}v4XIOoLgQiVOMF%-aY@5x zzzqiFEUBq#pRGn3KyYu*+LBDx<1A7Er($)!4#v1qNVfTD%wPVNoA1N#j_bZDD|R+P z8E)6f5>x)Nod+-kSH6cUBB{k!*SZ=9NA|0IGGAN7SCx(6sDf46F3Dn9lEy zJf~Jf$dW69j#Jb4B~K)po4xhuCBA`#-`tZbL0Ox>!;747`wzs@?&Zj-@xZZ2? z`H_o6F}UtjQ2iqq?+eh{s^r@}p$;`i?M+)b1`uKdYGgORs$mA?8)B2m-lpAqq{<{E z(HNg$GzSE`93+UfC^O;4YmOp_BsOQlcrzk7clPj_DYhx0qo*i}2dxAo7TFvmdkGOG ztq^LeW6)i3#wT_XO$B~GLyjrq=3s1E&h_y2_SpuwV(A6eDHz7tLRZ&PwL+fOc}Fdg z!4MfhafWkDPFg*dYULYTFpv0@MY!E??NC1r_Mpt#J0BnmWPW1;eMs5TMt}2E_i@2~ z@uKefRD$Vp{XrUg8u3ja$&n=4{C!HvA)|7&lA7b9`edMxW~bMg?0tualvJ@wj37CS zxPBh9~B(WmwpD<9jM+2%dM;hJvQsPMaO=>%WBu}D-E+S;bIs#|c-$9KH zznW|3QSP$@h+2HF@uW5zpVsP?Vp^QPIa=IW;=&;Xm$NPiIn&sWs6C|8JzX1-af)5b zUSVN>r|H)mi#p5j28L7b!|JWK;=U@~g-*X3{xY_D&43juYE41swz7*nNRyaXh@=9- zs2x?TY*X{2e~PP-TVYn&Lrf(6FvRUXFvNLcDkqpgA5373jNcnNMHYicEohX^bSkX{ z!IXtS^U9Xr+mX`iqq+h0cq6nExLB&%c>%f;;Rp*k0iBxAdQX`*q0qAI>w4 zWiYS<>rEbm9Ze$mJ6$+I(n{>RIDmNWN>D$rP76|JPJ=c95g!SYpX1X}*JZo!P44es zGhlZ#OVsa?hxwn4-_*`qdBl*6>Fr4-)+cV-4__P(UhW?pe?VCc@;GcwQ}R%K$0(H< z8_`O1Rvn0sG{>(V@=zbJWj9E<21fFjcTn%zgS9XongibK8`S}*#OfsysS)lh6He2* z!33_Krw_$obbPMzR^jmNg~R9e#jq8ANnJwY3JKF$-5bME=uKsl7W=~*T| zJ1g|eN-?H(li?n=;vJX-MJU50cqsQ^RWVFC$$x^Kq+@mZ^a)1{K~5Z73r{IlOs;2C zZ=aGCCdcWTeg{GLa0juEdXB3!xnE9ql3>Blp>!BYR@w;H zuswP890bfy(}p}I42G6Fd)s-2KuXRG&kd0dM?bY!PF-k7E>r^q3vApM^pcgpKb~eg z%_j;jk3XPf_%`7gY^RiD9)pvWq*W zVZ%pSZ(EJqrPE6-LH^E^^+Z!1Wl%I3#xxw97BHOi@2RxOENj)aiX4ie+|yx@-0Rhg zZA%I;((a^GE((qZu0g$(RqX!Ngk$KD3;k8S? zH)fVR%d?a&`eEqO@vZoxIRHIulfp+>>gYN$kUz=v4i@k@TP$ zOXOskf_j?Lh2qr03?^*---l95Wm%MNeCkqE=#I(D!QmLH))(UCg~xq1>?(q-ebTj> zEs71_*;_lhVN(m!enHNw_I3?^gX>QXEE8lCG%G)hr;#AEsA{B{=Sz38opj8k}R87W+iAr@gobGk>+C0OCI z&~9`$$>vB-I)p(jfo^FEkJ`L?5t5$Jpxo!BFQjmNiCYKGf-wh9R$hC;1TQnEo7ut@7h?JTFWpCjoB;wLH`> z^wIV`hRk;2#H%PX2bM{>kbOBLXT`E-g#o_E@Ap$pza=?r@6+otFUAR&ljz9A>#N6~ zeaJFvzfMZ9L+x^pKksLbJChk1{*GBHnfWg2^+XV519=3wk?H=AxH6{n=XWNMAmFQGY4S+7a6VI{xqgC;6ERzl{ zIyG_zJqvdW_l=Hbfz59|Pq5!%76;r2o9#I5*P5IMA#zW;{dT_x*dV(xVOhi}IrBWc zFIuHvvu#c(fZK4|y5CnOg4uBKoQpD97Eaob{x!2IgtXlFAnkc09grGF*hz(Toh_A5!IH2#OXr^8O7;12(s&#r{l02)3ZV5oYKoSbGR%wo z$Hn*?r5tr2&|eN7krvL-8SG+wD+sAk1G^Y=Q99O*=s=lCQGMQja*;8FGPbhSk&I6b z-7vW=K0xMjJ&U@mh@?HW(}8dtS>AXLJV1;cBOSd&%+7nqf~;RI@fIwF@mjhUW~76; znz($qopEuOKkULzB#k>7+Ya?tvu>$*xw89inAIf2eyg$t|o;jqR6e%wp5_=uw7WuNW+M7?W)sJ1w? zY4!L?pz@Co*v1z}TeNF^F;fC3kHvo!kJF#xaXCf%Q#`z&g_&VgEo0qTOH3Z;Y*Xk@TRLS=cYPjRYth`#tuv+O`(LYHZY zLD8U=o<993A)uaLPEg{i>1*ogn(7GECb2PDE;CWrRD6T}Q$2Kf5wE#9O~QyR2g57^AodZ;wB}60a;L0F*q5T3G*+V=@)SBgZJvhJOTlh@ zox$Ab35iuZZ8^^<$UiQ?-Kn6YoK81f&BXq>%c+{rnjpPqLMN0^JC=<}Ol;=FFF1yA zALsvsge?*syb|M)9-e6ImgjzXtRzfur8=RM;q=B_?QYIw5DoNKs`f-fcdg6_66D{L zu@U%kF`l<1Jr`@aq1NmbEnmTNFg9NE8Z&6(WJpbkjbP8FHE5qMf_MKc%ElD^;j0|r z4yn@_83fMNj_~l=A%=!Rx8Pif{eg?Q_nw-q6aP=Hw(-LcTFa%(x7_+qv=}G#T_Y14 z!&oua^2dwH1#T=;8#7(;jdIDB|IF1sHrYlPj(7gr%Re06x(d!mF3<$$Bj4;aCl-^Z zbb-8Xoh-*$GC^Pqz|FFsAY0hbr@Q6e`#%-{0WX$12vrOL3UU^FK$hC%gB}5i#B}4y!BL{qD9EB{ zy#&Jk$SF%l|Ng|ym;>oPGF}>>GHBaLfG+{o>=dtHwT-g6p>*DWGgTtSt62Dj!J3`% z%}@w%R5CVLv-1h8+1c0wYj*nIuI7;HH5J*!UTs3g0JHp_$9Gc*Et0@MY@HP}yu5}R zWl*HP+JyV+OqN&vMa9eO|lxgqn;3vPwlYlTT?gC@rqhhnQUx1I^NI4Wf zu_m-qFM`3YHHpaztS|dahwqi4NOQL^&7X+&43KxGC(pkjwvb-2F_}hFe6rIPL@=R^ z1#uQAZ?*|J`76CaQoeomN3)PpP!>(Ap+Au>P$Vv#xfo$HgRBnuhZfDb;F#L@|EFZ< zUvq3t-7lDbB1z>rr14hJzBdH-Y9SQRbKaRi=yt=>LCY`}Fem4+N*4_$niVO~6v6=1 zuA;*i_w!juebIt@;|sfW4B0z$uU!Tw;lsX)gQzrmPJ z-n0G)11ky~08>~C!wxd~BA|nQ2N>Ec-od;>jLrjC!?>;reGu=s3`9jIeL1o)5yAYx z%6241`IF7rFN|D7@aRTNJciWZ>^@k zKhdB_hf)so(bEj1;-#>{0DAfK62I>T1$jowu(C0c$K+!$5hXam3{vZfC5CBIbwmdR zp~fX%vC&YiS?s75Q2PKAFoXxCA>;*a>WYfz0NSIY$;Lz4{c`2&kgztSLkXVhP3&c3 zF}KOuQab6mx1D7LL$xe(_?R{1bA0^8OmuM-dBv2@qjPt6-~CWj2rc;8c?ff-w3*TQ zObX_PLX8iwMzx13{tspE99&tv?2k@t+Y{TiZQHhO+qSJ8JDJ$Y#I}=(t;x$d=hl7o z>fUpH?^m@~)n04wf4aZD+WqO;*0mR(By=wODz11<}7GSXiTrI?Bt!-_0L>XbaCezRpCn;%!(Mx zhrSLby4q^z-RI{U6K{i9^#S0XF4qc7)n{3*5&`C8YmhacG&w&UMI^PtI!Jz*?>O1p zC&5NgD#@&<-b<*BpDc9;JT{=ICCaj2v;`PMwqjN~sw^xu2+CuF9{6UUaJPuU}cJA9&na2RrO;?+KkM(Cv9zYB_nNr zy@bqKsKPJJZRdSCtroGIp7bZVL-6%H5}mLu4xkGOMH}U)R9T(_uCA!PJNbdl1jRd3 zLg3UU`T|!`*VY1UEjixS43(3$(6qIUDdO`BsklP+oCIOH4U~x^AGvX>#Jv!vI>R3IDO++AR=zxSY!r&?PlIcBC&?34vZl?zH; z{H9GpDs_fTj>8@U!Hq^iOHInDeI`z)^>O`&T1`Br!J7TT?6LEJ9zec0b@3eLB0a?# zu;zPRMpmgO!#0X(hM z$v`~;x+mz}3)^0=GoH8w67sVPl*XEJR@5siM}C3#G=W|3mv!L4Yrqo{&w`+m-79hT z5g%LV##QkvUA#-633ZQW0HpWB?}JhVTTB7&Cqs;<168iG6UR2?FzFx9Meb0hV6BcK zbnC7TG7kd5I0S;EXGZb(5F4~nzl{DsyI*cMB?j0aEbR9#vh$)^bo+%1Hue!1Sz|T- z1Oo;?yLC%gcYx$}YzI}ch9Uu>gs+SXHcntWU^?a~VKcd95?v4A<~R^|i=HqwZyT6Q zNN=E~_z0-H;boyU9&I~4#;dOWf_q$WmGMTXom|DrciSMtd;X2=AHlY)WOweQp2bzJ z+iG>sBxJKeLzlGa670X8nLgK{tVbeXSSbGSqoMR~`iSbFjTb}t~L|d4D`;xGy zIr}fbsBV z*BvK08yoyzf6vr^$iA#2==5L@c1ci~2b!ECRpTQMkw=ta=%?}<5V4_*T3yXSV5;lh+ zjo8XOg^d@*j{jw#nnM;tb7LgbV|`*ggCq``VOZXMVz6=$$Fz1#kklC@l(FK76eJUt ziDSYtbkY$7FvXCNAF-&Y8bqyu;?}2ZYTs)a-U@4LXKgYIW2s*m8<75i3Dk**UpTXCo(f9-Z3J zm7BwQ%TQQQPuefWa|pRF2&Eg1w%n6(r+6EdV57YhZyZ1`i?luGvdv&N#3bTHlj>|t z#I;aYkh;y_N9W?lCSJs(#<(6S5iMsojl!*HOI*I)S%ILC(URzQN#MH=dvw9_(VQ`Y z1zM2%gBIOh>JEqYS`|ebGJY*HeH@V11Rh!%c3zq$TgB0VwBpLauQui=8c|mB!qj#S zo7AUjqLwYL-OjY9?|m_*ntKciZ4lR`M#3F#MRsq{^*}slVNqLmyrZi8d1R9!$K&o& zE_lK&%Wf)14T%!9vtyDB#1@SNrNI2lbI zz~46`YjIkNd^nOJX0};Hr}oU!t}lhTNK?#0NKVn7piH+|qLT}(VWZtRHdTa=QZ$UN zp$sb{)3Dq^HZ8@X;U|VMPFqeopWAVMFzM!JT%6lkDmK^=U}G-L*1_M(i~Mt1mbjEG zG|Np?n%}b7+>PA0Zv(Oe0$zE_nF+eYQTQ`w?8sJ`fre{|P^o1&Llh&d*4*^-;kNsr zaWJNU!!D~k-*S6NY?)=W_h3;RZTy2mR2|UR9(lhcV#92^ibtoqHnkBleMEdNQEGE1 zydomSkw&Y8$Na1}z`Dr;wWxBNFxFpDL;iS_;o#lloA9I;pxVqUg6RyR$G0?;K`R&) zpE4tJ7lq}Ds@l%6HNa?V9V8{|Hy`$0`Frb7%MD#I-l*yFk|Q}05?mUHmgpbhTsGjl z&^jnGpGQUcW0vRV2ycPdG{SMht&H)x11=!=ptYgjKVz+0n~S$YJ2@L2RQAQA0DYd` z#wk_HrOg9|lZM-ScfxG{fcl4`IH_Q8CL+@;BVFF)mPH9?%DnNQeMR;AFUoH)>Bd@? zvk=V_dcQM(vY4&L0H;g^=! zb;MkpTZFEYC#WG~MbvagmUqtS4e!$}dP5!;B3M2Gvn*@6gQ5~AfBRd%;IV?Syuqxh zEj=fiqZw3pPGk7}DvM_F$~v8XFag0ngKA6Owvg2bSF`D-Yc7D(U5y>I5C{I=%GG>M zlIQ0W0{ddl%U=XZ%OH?>I8HqF2ErpS=KCRY&y+a={RZ~5xO8n%L5R8GF7d}p7l@rc zHbn)bTtXR4?`Y`xfUtS0~#&@{NWH0j5H1`U04L8sNc83uY@HO z`K&Lf&t4o~MbLmhxCc}Pghf7ad!5$}4FPZNa}K{S75&0cE#?nCC$i#s~&~q0k z{6%RE(yICfg;nIW^o@2DKSwrXooK^o3{G@fwUJ1?$X(?KO#L#PdZTv+QZA8JF-M3w zsF+tst=!q1A+8g365qusqzQVO3Cgk2nruo^O#`Jho-b``pvSq%J}vWX=k!_g%2q`; z(C5uGBMj9K&O7YUIoj)o0+n18z<_-RoE?IqRQgFXEkm>E=xz{cDa|TMGV;BL9}ZyZ zGk|=~(3*ht$Bn=#{}y0a#;5$qCe{LCmlKBb2@Uw-uIUS!K>9M>yu)MDNugM16!l?p zLu2hg2zo-&qVE5)0ByjoW>7;Kz=||^AoxcLCos;fQsx`r(gyB7B>?};VgOlJ8y8D? zGc#vXm;V7|*NlKZtdWmxUf+Kosk%Y<<*6*qsmUWbgp} zqSA%(3ep-)(!#E2@L1-b&2{S>$i73hGc@6QByqU zVo1XT5fZ_0V149fbSM|#<(_k3SNu41>qM=8Vr6X`sg+_c)ZpI19q>iAys z*XJSx&KDoRow0WtpwQ0f72>}I=Qeu zw;uW}?t-{HLC`|#L65+nJmHk3AeSn<*)RyZg+pfpp$gkX-6RQzpPs!xY>=R*K!F1} z4ZEX^gc369#$PL_$!O@^oy|(MCuMcoTF;!SWqT+Ww51@?Hu5{av4=xM?UPiss68j7 zW@rsrKZH?7pdx8QXIB;Cf-6rRS|7$BnbTXD(SKtS*;pFU3)`ER(o5R8*;||b5Ao-Iv|r%^2L~4h zmvaMma|4GL12=<{l@|kNob7J>_@gr0y`NMxf0#7&!P8SS)F>hbUbp)(Uv#L_HkG3y z27dLhm{hRna`G|XjVuNZlmPviGt}+k`&Cl2Xi|_M<)_%`rWhE+SmelL)CsoB4 zHf|FGD+3z?`}5b>z}T;mU$91u0ANWnaP;p}g@9!9>~Ml zGV<>7^~baR{{Ha0kiDkuGX=~tOfrm93?^8xVYtEL45NTwy9_=<3Pu#nDwtPHJ_9$D zgXT=oOjS&2rat&W81RmmhYl%&jPRqJ-P3!Z;mNpijvUj3!+WsdO}KO+4R~h^T#gxo z9Sm+i#|W$ZHy5>EE-CL9xj^+=*vJgDTG;sXYp^B7?Hwnhbbw9P zl(5Zvm6~+DrmQm45+cP;$6-jn9uD|8&2%2Db{sl5&Pd5=lX`En#YXA6h)b0kS>9bG zrS4yh8f9zlVBuNwSGbzLGhlv*Rw;QwgE^o7pXR?X%Q6XeI!5x{b8vazRQ>by}%HiBoC~7VQFhv`~Kd z^sWOHM@my=ppkC{wo|m~ux&=spd>a}ZMxLTx>K5^lEf#!-yXs`%XYedrP=tayDE2td1#?PvfuJP#3~o%DKmL;LMZE44R67afy;>Z zEhbm&++)-4)kuwL=4HrZ%iu=yytn8{m9s160mEcp8#bd2cVWpDxyBJ`RmCTsaLZ?x z)(=G#V_bbpb@nwa4(s~Yq)>Qp>T;f3Y0{1_x=8HK(bioX78-R~p;{)cPd=Ag>nndm zubqnQwRGR2wX4)lr=MvXBh(E$I#wi0N1`(NQ=Kb&|1gE*guosF_YF@5l1Lsg;!R-a?^FJT^yaVoT+%P^5yg`yMy+%z zpyjb8?A>wgO=KJpiOab{CwJ$))+fvz)qXmhLo!_qHRM0|SD!7!yOmC7+<7xlRL82Z z!{4}WP?jxx*Jx_vV{s$r;;-hAH%yCu#387p6zH$dAH^i<5@ZrCNmxm1s(-XKhv|}d zNqkAXB|9a(B#20QNV?QZ)Dz*9cs3U#JDXTMxy4)hB=G5#`(lz;+$;6T7^PjiB+ z8qCF3=q~wHLe1q?sIFsqBN=NHw>E(GVgdHzI@kg+W+-UR9x;KL5VZ60^j}^}{TKyN z_0q$9=j(pBBYvHcASz42Dz_9;5qm)UFYq8Qk-eFHmc#s*DX6%qUJ}oH?d_=?j}Ov! z#`pH>Nnj`cGUvCzAi|p}w1`lk>NZXJ-AEa<5ghRYws= z^$QF6LsA17O%K^S6ovU48?m%jLHn>Y7My~_qPWFPa>T^33CE3{ay6YGDF3anT>stZ zs5!^#y@kK3+}#Z>GSmsWoZxt7%K2ow!}&V7=k>l`U;hW@$O`TXrx^#|p@ie+e*5$- z(kQTa81ZDokYoA*N*n|(0%scM9WGd$IId_M^e9#M;BCkO3|LuEBd~N}?Jw0`$_lCq z$`_q}E!6T`H&lBAiKsTC(|!loo_6#>$(SJrDn#{C5AraMx*-SjL0gV+MKoiN0wZkp zl8l7?GHAT(YD5otQK$ndwVTSQ(f0Cv>h8%OVRd|4uAv85tw(ZLb-gxGz`_)a2}T@A zm=g7;th|=zYK)n;xPw%2uM^z8-J=dniR+%nW=jk(1BJzBB39+$!Gw1+#gSXLN<_BY z!-o^aCW1AYBTi29bPWwfDM0|PWJ$qXQ5ixyQ0Ld_bi@+o$HZu!_FD)gqRTJ-El2Fds7FFvk72(@zj5 zvJ!gbj?RZ%dJ^Qb)F?m%Rw9q7!+>$b@uicfyT~%xWH&90E@ItY#DK_Wde*H=y;PK( zVx7lDJu?lFT6L%7gxiEyfs~{XLo?QNm#|oJ=7n|kz`31+!TYl1Xak;+n(&cwVqtk8 zjT-GNMf6!qcLiu(+}GqvAQ5Y*>Vwq7L}M>mso-ex`yr(8mp?W1;22QVC_}S8Fw@l6 zY>p{MU-YQw`k2b%pHU(}IejY%rhI**&(cPiaGi|ps;+BEs zGp&Mga3Gf<6M8}t5x5|1=y8M!b($i$M)M&Ec1KS@@hAI`b0IBqZB~`5r3`m-Bs+5l zAVf$jd%3X1ik5FtE1b)+`Awk&9&gS_s|$hB^_1cjTJH9juL`$JFK`9%{IB*A5E)AY zLt0z|*;YbYRD(G#H=XFk&*Agc2JmIIQ8^ZyC9X17fUs*#SKMdJUxE)Ex+I%&Sl|_; z5lrsjjdo#f)nmlk7i7*X?uNMWpM5WBztOXp`S(A-J4 zCQJPVlL*=WqFP<=GC%aafcI!~WNr*p=9JkO0iHSO_(n@*VY^e_wyAgQ!xw`g$30z) z1OM{V>;pHpN0F8|t{~7~h4Z{q@$7=~4UVE30D~|%M62N{yGkLBd?@FxuboKP2tfIV zJDif|q;nel4MqAIqtNA-ZxVCHH9zgFnC;|ra^FF)d$RwBlX}v%a%S`0$L;VRr`QDl z59&_X#?aYW!O+Em}Dy5J<`BRD{y;L{IKFI@`j?LyKG!`%FP2TiYD)dXz@mpNYH7e=>qvK5`DyBTbk z^H?4t?Vl0Sk1`e%{Cem7>YU^thGsgHSFMunB`Z=gHd976r7y3eVbdVQoh6))cNKw( zV1-ERkRP%0OTVe?L#V0=Vb?A4E${!?buvZB<2muo7T*6Dvi=*))&I5=BBtK~jfbj> zrOp4xI{b@axhns{oy1tT>(YfzK@da))uz#&P(uV`BmoziFDZbM*gt5+n@Dn#cEbSS zAMxJ}CSyS+@L|0b$GVoW?l+JyOzzQVcE0LxCwpGGzUKeIGuRo{9d?4P#?t-!hAE5z zyc9FZNFxe~QmoXYAozEEF@z)@AuOgx2qTE547P^A`Y$4UY*;RP1If zPv$F#5Th~${sw_z8G->8DS3H-{9Zg zrlIdA_}f#apf8_ zM9>PTgwVudj3g4Hh{KFx;AIsElu`z9&$bjdmfZu&WAt@nQu`oLbtKG1kk5^*g%shd zS&Ai|F$4P+(N%*QPPFEF0`HM2nOm<4-2#WmzFljfI#0lge_j6`q)UuRdF-UaABD&W z2LGmrgoUH_DvtW)6Rro#X~Ln4kOxRN!8=ZA!o4>2j%umA!T*< z{rlX-ze&~nx7`2BGy3PPm#Gs8<9|iA%Krtls=L~%!UwGa%C8XJil!MAg+NLo!mpO??4CxGN}1rND+>-Ibn!gypGzOIkv|(f+-eVr=%lB z1iM(JV7GOGFI=VKX4HkYVGG`Lc-l`}8`@}j-P_9Rw;SF0IY$0bh0`H7^c)o*EOzR6 zO&RYdRNv~$lWz1RwfknDs?dt^LbQ9i2v;ZMpFf$k?eIB-uiMT>l-ElvQm;d*ce&UhVv*}{RN*8(_Zn-&Y9=6td>b#q0=o{Ecqg=505NSs43@5PSH#l zP|_7X;QnDI%T!%H)4rv?{69*)(Epv8l(Tmcvv;*K5%n-Ob@+dwwo4T^z9*d!dDryR zR;*gq{Q~#lV)(S7m1rPKA(!5AS{<{K$QmU}{nF%v5dN{LTn?Qwf)CQnfGN}2Np7s$ zzq=QRLzq~McEl|v7ZfaoDnik$g21JGU(tb9X5yVsnT(eommwv4f?~(WqPfMP&fIr& zX8Og6F$qCWa}baSvN9kq7X&QaU^|*r=wuo*<)pwBW~Gj`mOUHB)P*E08?r7x`n#F9 z5Q0cK@L|}-)i&+!jF(_CR81Hk_9YbQZJcs6{cl$vf1*lqZ>~A2&s7rk%@dbPlr*gRE1oK-y%5b8P~0Z3~S9tH?CWENNF|Kp6Jj9Cj;TOv2M!)+1vM~b38BGj$xLO&{b)}d?L5Z?WCtqIg>dbE0aYTMeV+>d?q-PjGS zfi?*Ga+%F%ayY*``Z6=`f$Due_Wgb+pA!12sj8;(UD*5zuJ-^e1nc5IcmOtn+jw7+ zA+9}d%n|;M2KRa01VZ@V{}y0p?X+yjrgK_AW~X&s7`C%=T3}+QbzdO0>s*x0cU&;v zY95dUVrT85JTG%&*S#u(XCK}~byqIW?%Z?{B@;6gClfok&%_L-2CczxNDg=hEfb{7kX-oy}b*^CgO&D0PQANi(~=H;e? z1~xU&u$>BK(6Klm8*GzsR}Sdew4a{F&+zsD9B9^zP~YOUUFnw?ki1!;f<3EperyNq{l=wFUweTF$c*m8qgQv z?kKR|aVZkVZmG}5m^7Hjk~Hxx9uWV-JcZAebnz`5eeCeNURFS#w=s=OZmZxUR6I5&<^?yFMTd$((H&I{WSV<$Ld8XS7WyepD7gPd8t<+>uyFm z9ik!z^iF6EGwp!1o)uwyy4G!D`ua_0y4pUwo>u5eH|hY69`u1QeQkfVUMKR-^Smn2 zIrg3BnOCM;@o6`H-}Aif>Pabgi8ndC*BPCn6EVE^nVrv)^z(S<^MZkpp5jk6)Tq%Y zquk5>xHN~K=)^h7i|CgWRedzS(JCMzh^VR2+4RwEBJ(x%nmtqjV^^qH+eK*tB*?KC zwck_W(ZIeThm4GBsF6>E@N7dI(omxN{c)`V(trqsi~_Nu#Kyyj9?)6rNm~Fhew3Jz zvrvP8GsmhFfK0B67&epR%tQ1&8Rr16a7>B};hNNaM0hW1ZO$QMO_K%z?vhz$lnZo! z4j#YaFwkOjB5HD-N-NlUu+S`T1-m8#4Ju@1Sg0Xtt>_3W@TIB&JR8O4Kr&g*1^Hg> z6J?t;(4m6$r`3$^2C|L&!_g%@qXU+pd=9f^9E)qR*@kScO$FT&xU0=_s^D5e{k6b= z+2<)#@icO0v4OLJs}0nn zjwQ}q!h34Y-yQIG`OPS0s^xuWUT2d-%cBd^4Y`SCyCM`{7FT!jt>y#wtMKF3FE4n{&F) zQw$ifH_M_#{qV%RV)G{EZ&a)AMa6Mbtw!;NMr4 z<w#MsP)9O3Q;cx=Qj&c&nc_atOA zl_T(7JH`+Vvfg;@1=EgR##9t_WaG*IEt(i-K!be+-AV?6;h0;P=4^tK!&Z>@NLgG7 zd4d*3BTvms{d*ocW_Uy{kB4)uQsz>n)U8UHyIgt{y7|s{7A1lqa^+wZ*TNn_ETaqr z56`&6627_SxQrAN`rcx)N?^2xW7a|v^XH`C#z8gYS{XAv?kTciCaq-k`iqhA*c3WS zPf&C*5hZpcgivCJjN9+~;ENYbt>6X)ae%AZ^+hw|O!=ryuvX?Ka+~e2Bj3Q=Vaa?3 zIkAVQ`Om2c_I9?J_sHqi{IR-L1%|1vNk&`UkS$xml=n=z9Sf_QuwU5AEE~Hp8|y~> z9@h~);WeOilbLaXQ<)P&c#4WsT9hbFSY*0n_St)j_J$ zs>)fHl}}{0dS~oqKEPu~f0Go%bJ*>h8s@2sZ#n1WP*^vsfg8YEA(@$$S(tXFIFT~qc%m6n;r$&H$?>y3||%=0B( zB1!u6Y)G37@JVy7#nzYoKG)Rs9+aGQtA(#iz9|^&hxC>g_8M#;v2$ly=7`I(B|d&?d|&N(vv6@Gzm^t{@ki1Belbxzp$_CIHjpOd=@Q8v zxe}o)srIXs#|AzII2tt1lyrtA{rHJxB$B652Bn1^;hBBro#cr5Ij@~xtl~$6m~5q> z^~M8RdX#Z#(L0lLiPM9n#eMXwYGw?Tcovh!AVFj)?KN_87=I}!6^W~zk1pnzjA9xZ zSnY&d0!c=p#2BlCu8+z=$svH3%V$rVH?p_PHlf6cJ7n8t6!;q154ayx3nAki%x#Y` zFyO~R3{+}accD}Mk-=42M*+Ni4&3%i3)O5&;AoHGj5B2X0aV+65GVN66>Vw6E;+zAD4hegL?my<4zH8i~0 zexec0g^Iv5p^sCM+)0vX`;wMl)&3oNa+Bg_Aiu{5i#Gr+*8P1B?XjqZTIq^eUMCXT z3C((LHKo2{(9nr4d+ya-g@dTdzAx2+zfzgqptlvYu~fTSVK)kMF85FYw_1KRAlQOL zU)^;Z)d{hq{JbxI&iA3i8=zkaaU14^Nl+y#V#RD)P0ONUTk7)&8LJ*YkNSwYRCUQB z%`14nnC#MfPKI%zVKU>-w`J9h__F#!%IF3WYdotwqVIR|GUvD%FAw~Xi7ZV{#y0_Kh-7@y_Oh$%z`PCaBt zr5Hhfh2GT`hrS6^J@xp-iuX-sSs3xn_26n*H_az<7@MZwRy%}iSHqpanVgE980&1! zW=NE8hC%(Gy;RQ%of1<93TKCEb*HhZ&5)+am;mMp8+Q*TQ8BkDSa&Zh(|x`_7~%=G zIrTUlarr4{X!|6?q+N3~ajK0FwSTCMIy3hqX-waKpn*71vjr>rgE4K9k z`^P*{HmkvF?njkd?E$*KvotNjT8Z;FsQO{3VV-w$@M*L%1kIVRw)Fj|_d*w5bY>CqO%$u7 zpCfq$R;|u;Nn4k_U&7a_c$y!!BA`{)FAeaDRI37M*261_JxAmnv2AzUt&L_c-~RmDeSAd#%9m8+PsqQv6H%<^O!iiX@!MTp|X==H%6T{o+>(VXpJ>Q zoc_hP;i}kQ+ujoGuKCx;h!{&qWrsc50}g~UI^l!YDr;Q%UH-4*`gqG~wwcpfoL{nk zp4(mMi&oZn>L+<$nwt~Y--XQXK^^^q)~`pBoek*9IwG z7{-hF3Psz(sc%hlwW~G!Tu6Flb8s<8hH-nFA*o?<=y<819l=bZBVtf`5DmL0?sj*oei`Jor@LU#Hrownt z!ynNIW}LYz+{BI=U%v4#s^l*`lku6Hb4e?b2sj**V4lBchvpro;;p`@{y0c$|KcN|Iv=qD%I$QnZb z25GKFC9YwLX`YxKVD`-R>8Z%Nn;Lj^;eumKx233Moq<99&4ps6Q!_K|5xs;NB-0tW zS$1VLcritq$sD|5jE%MiPy5}{G+zkkSb`{f)r?j4WR9tkB;;6?0yf}*S?ZQmdD?#$ z*4VQfen|#v9s)BTjHz5K{i!9@`2Dh+TjYwn|L}o4wc%MEpp{KA?jZggX=%c>0U{5wm7?_=BB2fbta`4NYU|5{q@Zv2xvLRSwSm zwIYooI6rl`b(jl={r+_o1aHKk)PQ>MPp8(6t?wDzzm?in zIbPR4N&LLA88zwS?rS6~ma!}AF%r9u!tzy1d4IEdZWxt*E{eWE4qIujIfvB`+uDKW zzsOTOKUm9+TEX3J=M$Dv>Z3m6)1@$Z(DSH);P}BG)4xmx|0|nuYduJFS*`afyJ5%+ z73o6KMN59qsu~ADQ@-h)C)m7(-T>kGSzCW#a{1n4(hKNXQ@>26I{dC?E5-hjkZz!I zf=ht8Hdw_TuSmMxwzb!A^GY09&w&F8xXw{1AUtiZX9&S zf<^9Zzg#!eaROFusC0yKD`RF{D5(m9eP1U0+Dyj%#qQvI^w=AcuXFU~6OlS*vh#+m z-X;jVeE-a>E}OF~vjgAnRDI1b%(eN%%%KtAo)5a6V|Klz9?yY9f4xf~QrCy%Oy@6a zKAw|KI^aQu6I`z;5bru>uw69klipBeA?Q>8G2-Oig|ZL3Na)#e93GuJY^RjkdefBe z(w%+Db0%mvUY+c zTCPMlI{sQ#?L_Wx(;7EJkv!#zb9m$LEp+6eZ8^L*dxvg@>Bw_a4`6iSU}e>}tc}y; zPcB_K^GBT(Rcwbbc~?KpjEv3bZ2YOcMfX{^nYM0y;zGeSBen`lyrCdlb&fWv+fLi2 zspqaEFwbnKbK*{j9Xn8GtS68`Tld-xx+tScI5b1mR5JzNdX~e|hl9#XA)ipLy=W zu}^M@$j_U`C}kn&5xn`43?o#$RkS+Oj-Pi2huPtEBo=+l#8F zs(fzNg|(+pzP$Ji)=PZ0pzk#E!QB_$x5S*f_M{^4P3LIAwMv3sfwWUlb_r%Fbdzo= zT19|f4eyP}wMDPUZb^Dcw^MSfIKBG)vGm-qN62;#=&{{SP5z=_y>eqwuSW@QzIt)i zMdDMbUafCl(N(3b+Wqn9+}}mU_tyu(86ArL&ORvoQcgrYPVP(9;*KoVG`;d8yRw!x z#cngp?9d8RoM9@Nom@XrRT4+|!fPylEF*iXG71`2FS#XDZhr=hctczrTLb-2=sId- zJ*sG2ux|*1F14fbYsP_FW_8p}=c`4PDks^RqcRvr??m-*X`NxOPZN8~I*>I?>`d_$tY zUSB-q+x7uJ(cw%{KX!FwCtswExCC$-K|}YgEh@8((k} z{l^cP@6z4B&z|%ApR(t!&Mx-0|68Nef0eY=-~CaB(ZB2(FT*a0Y=5RAT7k3;m(-69 zM%h*hXtN{)uz~47pR#3=MW5Mi*+})D^z`m{?F6M?z+Cvg>>5I=3Hbje_~8EFUS!T@ z31NF8Cdr@8%yd4^d7bf`n)>^4zoHIgGlYf!?{!lF5e5Y-|0U$f#^e3qy2tnN-JjQEtcAO6jE@veGNDiEHjec;FRgG|D8~{rY z#^EV3av3q95zEU2e45^XzHtsf=H~PaNKWKpF>DJ0@sR8Xg?GGzB*!MVlw*R{6IANA z=9qv|z5yRW>yA_evp>iP;y(Zc^$DoosPok9+DlNraK}-+kn5>AK+{vaAYgnD%u>C; z8h>Mlb*2|ky=1}k22vTAMyE|OPAv0aJ;&x9>^OOD>3SbpZGu7%pz?v^OYC(N1uAx(a zrc9lf`E8IE9Hxi|Q8bd0wxmp2(T_SwO6xn%Mq9VjE+ECR#)453kvQJ-8p&uD>+lO$ zEj`-A+|MURlSY*aor`p$NH?T<>M3^2^l0{DIilx{NZ|)-00Vg(!p@^p*l!jak3F)~rAgkH*nB3BwYy1KFSF@O| zqYgA&EY%NoHF;4W+0@APm1g%$Ph!;>-ih$xNGZ9>q_ULjmE_uP|8mqy4k|kEUd@T^ z&~VJ9OV?$GZNMXxnqjw}AsI~jCp-M7r;nW9HGt+4v>wdqDt4IB-r%-YMO29jG0HFv z%aU8z9Q~OUEQGx|Kdi>GB)X7dHkIu7GS!PmV%WJDb$d)UEk0m*$2A=Cw6mit?EG-K zO6gbFj=J6hUwbGQs>6zs))JEH{Tv^*gSuR1d_xiXmcWNo1m~7&skN0w7U{j4XIRF9 z{N2dRDJploEjkL^#i?$08vedr`wMlFm-Wj%Qbqc!@=_w?N1&7ovV-ja)0;4+W%e+y zbHdV-X7i9a;At0Et-{$tp=Y0FeFNr{robBAT`xOWJy+D^8kfgvlxBI98~Q~!{uIMs zAX%TL;1V`PuFnHYTbDy4W%}c80XEBfsBt{&g6z|T&!x8Zp2-VTM{t)KbZe_f-li*J zcL~8UwT-V~K^*+rbx*rfXT})s%uek9%!ViQ#*-yqXbTrrXvwR#TjVmff*W#8mzNcf zwY&1N;wW~JP!Z*MrJdd|di~%Qx<%a~`}}EzOl6LqbTKP#h%^MIUHkH>eOtW1X0zuv zDbUi%?aGVwCvry#_iZ=D)W^JkoYBwu6A50=c8GWbSl7c(6x3kDxAh;L64->V=vfVs zeBx}xF?Meu>rzeL4R{+2A$~)S1fq82XV*k9!4gQ%mOKIks9lr;-XR=rFi=^K;-hup zMw!2G^B}%7Juu`IOVX2%+;2el)+lO5za(~Kt(*5&~6UjG*0%Z*19w*dxKxC|#X$=O2J`8%b zeZQs3BMu;3f5K>nqCzxrtN?wrv&z-f^9RC_6GS%u*-2lpcF`FkivhU8g#t4-TwBxT z9zJ1sEUUOKWfKUvLtR*UNVHITF9KP7L;FVsTUXP;2KyU$8U*1#+2H?EPuYLB;E|}9 z+B*F6PSVcI{=W>chNS}T3ew*&Uj{%-LWtnchDI8!aR7{7pz9F21QG6&7EEIcB!t60 z?BoyOG~GsKiZq`g$wT59!=s1X)d@m|0!=F_63b#2?C#u~A`+%tHN{%9; zQX{QlMYK^BTy;mGVQDJ4Dh^d(v|3V%kro-Zv;x!>#*#nu~75v zK5=0Oj4XesUXCdquJTysC!H@nGuzzJC{FpnQe6wDD%ucYaTMVJm3DM#-AFjZ^91i! zb=erop9Z}TI?jy6-D(#nZP>WDV}07neqC6Ip0-h1Q|*@aY6@hj_Vbqw)ta(_7V@w- z(9JU*DP)7XWk@(`fM2FvaNab6-9kNz$meI5n{!Lc+mh#n9-9(U`eCI8hO03+yviuT zVvXtqQHgzbK8iG18zQuvMQN{2O4(S4Wz#0xZ+cUB3iG{tL{C_kW9LVEA}aC!4`JUF zURe-k+i}vdZR5mta$?)IZFX$iHafO#+qSLlzL}Z(&3&4=Pg@WBVgFV2uU!kz=aNZ^ z9SUhCu;T-|clz8I5CQJU?SaRbT%JAeTESWj?itxon+IMtt>25QOVrW}4r)>&?65eB ziF%STWl$d9G*^{e)A_OKBmT3_W_FOD=*)v0y@occm4=$S3}JKIFlo1KcYzzkj)V~n zHd}{GZGRvg^wJpEPx?u3k)M#36(s)@pWz;i)@@U3HqDm$MQ!yfXT=1yMOmT*&B-zo zT)6oYO?6Bp7&-ann6VMEBs=OC?AS;@>C75d=mebECmTGJsPG)&_=-YhCq*`y50@n3 zZ_?maU~G}=@wx8fCG2*JE#Gj~k5z&XlM^GeJ%aYV7 zS6zIq$xLhUcDtm*3`LVpigP4rsN76bSzG~{jk7Wv%3gH%twswNW^xvK zETpwci&9~dbI$(229fjpMtiso?$o(3XC<|nhOO#ku7UOI5;eOeQB*r!>l3bnpBMDc zc8UuA;~cQ~3$VMmKh^XXYJ_^jZui|3>z)GLC$sCA?Nhm;GVI|XmN7eAPS#BIxSn3p z{|yun%1v$!0~0;Kk<`{HP#(YU04f-#f0Q zC}o9?KOiWpWeUgkcdTU!hlqGU;Ll0Vr!ocK@a-kW3ZsT>$!FroiXTZLP<7x)v%=x0 z3M6`hAs)yej!4$S#MP)_^CYqPKs-?mywT|caJR@bMj|;9sjRrDMTy9?dhzUj`~&nY zQoZ5s12$f&nFC@+gwC;lW?t_>JBPpbWuXc_XTSHfIcBWive+`u*`P(Y=~ExRaET4CSjB9J~Zl zA$|OI9jj^cWigaUNWEc`!Tx;$_wt?Mbv#W_zM9~N5EZCqlu`V`neR!L!U>I=-(YZt zaV<*fb-&PZ4$M)OxM^5a)j{{3bd(1R%&CuYIfl$-CeVS+CSRbOm8$~@nBd3UPv zgXW_r`-4*H0!&D-hkWdD0td zrXQnF*@JD%amx&u{7CImMOl~tQm#dHCm$GT#RUATQ3#Hkd!w!}{rjJC_)BQ0yMpgN zpakiE>jU`yKUiGZ)6T`h)Wyc%E%9b#173~vc1i2 z+8+}>uRqgZe_WP#YB<$j84V9tMzJ9xfFdro+3kmhVCNAvIk5Brco7^BVL?s+Tdhcj z?1J#_Sh*rOt%VYw-s6_VE(|z$;@JL_q8uAa*l}7?dEc9YOft(CJjOnQbxKu)*NNl= zc%!J&Hh_Dw*F-%=6}?iWqe742y*2RAjBDPMiSVx0(WssYtS(8nqJ+QE9GSgCnFj`x zv+X;H5lmYO3Azc7fA%HQE`y3`E3OuLvqx^r3*q`kj~9Aos5(HrehLG zYx58i6$cc!3omCjIa4KfqFz4I27Dl>oFGFkj*zzo5cUvyEGWM&BB?J>XKpQ?Ap0WU1Bl zc@`-A>W`hEe3Sd+%O0$Ml91DvOfzZs_4AN3i<6pGtfxt>m+A_IWDmzCP+DhZauD=X zH8Ss72mA2NB&@0n6fc(6`1()%ygk06;K(=i@$-MBKJx#63g-Vcj;eM}|0P;8`Oka* zO@ho()pp(#LHn!bMyH*MI_fC%Q}$9Av?qCuwYvl+gjKSCsav5ebdFMUXJ}$fNi31) zTz?!^9$(KRzmF`(E&uk9BK{1`L&y?7-j{>h>(zVD<26^+b5<+EKgc_Xmclo!5qxY_ zYwRFlH-ecH?j&Tp$`Y1PZ?b(tsv}@tZ`tW{8`B3ejOS<0*P159JgD1k+Uc z8&I!UA_^RGfhvwDEe!C@qxI{2qRlrJH0#aV9S>4 z;4%({J#(Q>>L4=0S3&%^5jM_s*rG&(e9Snsr${t!CE8 z3hTBKwj?S-3q9+ZyqZT_&|`53#j6AVp%u183oGG=k)D~?A(Qo0o!4u5xP2Y+-Vw$e zZ}nbioC`_~v+!P$AJRZ}0>ri(4!8Cj03u-3=%#5IMX8Xs!%`#EJ&CvhMW%2YI`p2v zMyR+L6;=(h*+_Hio}+z|QIU<#@AsmegSm23DlwakQKi*orsgUh5F8@mc#-3MBs^X` zbx?QHXCMpApv24_FK3tCC*wAhk+CwW@SNLyyS?g|Syjy5a;9?BK@C%A-IJrrI@Q#B z9dg#~9(HM!!W}-0L%mbI`@~W&?4szwH%?o2bymn{vt@B5oS}ZOo9H%owXp5R>+zgG zV5ipgrLBnYFcC0agB!a#Kh?Qqz5WCti+#6@gwy^#O16NgCS{iu+Xj0&8&KoE~iO`JXpBmQ>l- zTLrP*Z(M%hnl-jcv5GnLr_C-`aFpIG6<@;-X_^DW5=}V6`?|n=<{E;Z2y9+7UyNxG=;1xjgnS_G514d#DPoU`&y;CNeOQ6Bd zB0aYc^yX4I6QC-ASe_pUW+ZhpkKRK|5Aj6Udw&@Ly5)5|e}z6<{E`v``j>)C=LnvN z6nF$L^?yF;im7x22D{k);#?t3z3c0RR7_5Q4S)1AEvKj$BSwLWAM7Q<`vAK??J4b9 zLF@lLCl#&uP=i!2b4ZSp=KC=GU!IT)Pr3CS-xkZ!|7!x{|KL3GKS($J3sqiqLwTSN zV{rPJnZMlZbY}?@^^uE!f(rkHmgt)c{(&MPB+O(${2enJ3a(7$2Eo%}4uNKabg8Te z7H$w`eyf}JQFqz+I`S`jz1{nDXDb+d_x97T_xAIV$=tkbmg}1to#Fg)QqfDW2J-{> zw8_QzL-})MsfVTcR`wc7`E!2BkGVNd_8L?9bMc5ciGkHKX53n~XXuDBvuoz)nZlmY zvuHdm(M^!*SgN#Fe8nPS)A;Zn9| z{79CfclhXATDW+GnDJ$pBw+S1D*HEh+@JaVcPXQcVJ68iT8`}eFj__FnN=j1%={!8 zTj`qhMMSAz0r3acfk5b*aX2FUeF8B*`w(U5+Y(Y9_JK3d$1t1${$3v_&;BGAnrn2H z1K%B0P=@2B4!kux+lJ?}IOBuko1XK=@#-ibG&t*q;~Sjw#`Piu3e3%Y;&=%FZ|%>Z zus?nP2`$btLUT>e)k0^M&VX>fWFiXdt2GSs0F2Zb2OL z(|joZ$lNH-2PaTqYHk$w0~|QZ@e~otKR!o^`>`L&KRgEu=UZ7Izu5n79!fgCFY)R? zHi(G6K?J%8V{;EIVGruF1-GNT0}t2+*Lwk`v@9czHp;_%1qe!$I{XOG180VQqKKCz z3hVO#MTJgANtfM20A)b-7(`sYA_XNxeH%igv{HuYx(VZc;Rz6cxf0C>0TB}vI#(skD6>G~Gz>dkbTqL{zu> z1A})I=6b~dz7c>iWtOMOD4u26pKt{WJJF;L-6ggMfIU&V;kCsH-~vCFIt6-RAL>O%mP*K~+>0}lv;=9Sq)2948V)bHF3lzL$Uy*2U<(^i1puMpDC4CKzylJ%5y<1k4bTGS!AFp=qz&)_ z2BBq07&8Qk14uxJ!DGo4MDr8+EW!VZ?rDO~qI!h&b%Otu-QxqjMSc6#=MQ~Fd`BD* z2kj%XhYFg9@)q593f@C>M;`DG_qg5o}WOv;MFlWsHQHl1ubOQR~l3!p0cF&&OLH*}0^Ohd;pE@uDe&A&q zq!Y7x9Y4`PpMm>;(@ntd^@YfaCf0!@O!YR1Qi5(%10?dH0$4%$Dzvx*K)&p>;Y6|{ zW&FYc4R02p#x@DlVe1D5{4*HeRZY$qy@0SEwr<23pi{{d7}q>3!9R`>rlduHjxCB^ zR57B_Gl_9n9yjR0019Ty6hdel1xi+)J|S(x6yx3^N*rK>v*EHcjUj$VqMiJ3-jY7f zV#5Rl!!YrN*^)j9wN?nqB^>-#)uJJ>T=`zsqA{i4BnmiYf3UZyk0!K>N_sN@4Ub9k zLNBmpMsAq8YI}vT2SzGNbK~Xz0hol!wkmzk01JVFl z@Jy;h4A54TwwS)_t~m_%J1|>E%Grit0nc{8O(D~+?4O;%&P^khDey5S(727sH=2Jq>FahPBqy~RW3sd4yFB!ki;7VuZJ*dy`7 zBed5(3NsvA?|66f06_DA5a15u)7K8@DRkPsr*3)6MQk2M?CQf1creob8v0y2F#p>O z_&WgU(uc!6SWo1!wZb-IqdVHsA&L#MlO`wt`aRW}T*9xB=_nJcwx9tdjZ zjXK-%1z(lt{jw=lN7a}zU-N<|w7+cbYOP_|C$;?}QmH5pPj|?${_*o~a!ua&qD_tl z1jxwD@$a>dk}q5BUN~&Ie^7`UAID?WAF6E_Pu~*?&;UN58GHq~E%kK$!xenx&}f0< z4ru$wi+^jyeh=05k67e(@T6341~a>o4eD?vl^g7^-7%`oA9g>gpaAS+wiImDXKYnA z^ya9vWDXU4b^HkpwdFdhB11*0qORInA5pQvNb&+W$S7u-32Q4WT;^EV@hJ#Z*JpT* z`ksQ?`oeFW9%p(e3TU}lqnjk37y>#Xfrx`j4SprERHaA#ni$EsxVhZ5T=T% z`sq?|>M>`I$A;k?ZRPqyXmsR;6rQZ9scv}>|KZ*-oDGi4b>Q8a*p0tFlsW6t#5-NB zF3toD;5RftF)0Ekp!KnuA0cuJ1Il!&5^-F;QdLhGIdK_yoDx(h9o9&SPD1J=6?dZ@ zSwf3}p2Bdht=(F8dk_1e7MiNAj=#!5=s4%@BkTDb`BC}N!y*h@RVTMCBOp;`1nx3FDUdgQuXC}kRT6I{#f?rEUf2O z$p|Q~R6a~xs;I8~{aZ^%RacJ^Ml~-$HGKbL8F3=LovLY|V8gLF9N(r8kCp*?IRx4_ zv9?)aIGWsbO&GYmpfFNbfIX_pHby6cM#$(87z}|TXF6xv*EeuDnU;!JOaEJwv+bzu z5Qq+6WRxV0dr@hHVdS*x;A9L`ecl7bbMge*;+qwVn4%rnFghwl4b6vy*Y}SyU|kv5 zFdEu8r1Q!h6)Ttu1xJa+47)ki<)nKphi^q3!yj`75BpLsBTdjo9gz$?0JT%&F2q-I z^>*sYe=o{efT-cL#7Q+yR#nkVTFN91T*WqjjQl>ni}W(6=f98gq?{mHE1Vmedl*+; zCJuQ!K2QZhdF0(ITs8misHI2DbU1OZB7yfA867!v)5Uv6pGj1f$ zo)m<`;zV4(5%jsj#jHtAJj&H<6=q|AM1z}hCx8ep0%cglSlatQKz1$_GjEe2NV;+I zL?~$;hSlRL3}xE%oJtwASjRp_9F2}`5Lm`-it|z|DnQ0tN%)zI&RtMhz`8_~HHOXD z45Y&1?_)WYWQ&OsAMWuM1tC|ECnI@L{q1`_b>YBsZOzdt+WEMl&g3eHM-d-xJMIX` za1b_DbuIa}g>{^C*XW43c3@!wmy22LyHZdS=r*>?qM|OZsI7$I5;YILu&zoYiGYR)YdSODg~f$fDg0BuViprY?4!#M%T@o| zy}IbdKKPTXzFi5&r71HxKkQb#oAUuyoBRH@8BK2#UyEe)Mn3Nv^XfA!&m(Cd_2jR- zmQ~5U@?XrD)*70Te*(r)D^#*6EJzv0|&{OGILX*nMxRjZt5 z&2RbxKXl#%Zdmv)734pO<6es>BgTyXBD#^EGJpCn3Oxy#35+wf{xM<=q=0<>oLAli zZRWd5?Ii4;DUrP`Z=oGgoaAomguC>3$qIB_UVwhjqAUcMv9PVJ zYk60w5GA^DUJdzR87y~tZ4wtdo->F1wxQ|mFx6p^kpAG$V`L@|MFz`_q zR=Ak-PSp^9>R!$qguA&oMdRIxDGf~qQbGA+7l!5euDx2O4M^wXl0FL2@zq=W5-*S7*1zIWyYdX}L*nI$A|%WQ0KjiMI8V-0B)zEfnaY@Amh@69_LVRlA8(nN;E%w}NUdUa zdJy>$&?5*V@Yzf;8oAg-Ee$0PT&IQak8Y72iov1Ap>nLE20&O|GOl>II13OPyR8u! zi=$rQk*n`e02=Gc7R#t*Ge0-SxJu;Kxh{($*&XCA9K!KNsu=DpVu9-F90{3=axCnu3?NtRIteFfcg}ESQoT}bm^lR3 zE-1)(Z3TWP1YI?ySXsrzRA8>#PDgw*cvRZw2ecq_Qmz^Dp602)8<%C`Y;WOYQAVZ6 zWOw1drw1B3wmDbOh&@$mX{JaJ0%l48qAKe|L(`dJiEVjh|F)kb7tJ8+*TsWH9wQ`Q zQ59W*B%r)XmoAEBj&)Qw&8tsgPo^Cep@(6M6OQ^DU z^^bcc1>R1RjbdX;jH&cw0n~exXTPf@O;J=St>PIheV?~tiS31qLvxHHaVf6beI++e z*Oezp4?oHKp3q6M%As`#7PA=~{jq#$7vW;S?7n)>O7I1l`l9E!LJu*V6|7ZiqOrV* zB&XKvI2j!jd?AEWWzpn;CrBJmf|JC}#Y0C(u^OE)3YW`}I~lpvQ1hg4F1sQm{WLzm z&zi#mvepxp8PNt}TJmZNDTlF@fGh8~O=Fikx$(Z_{(zD~XNGjVISZsgf(;FagMwK4 z)AK|I9T}ol;&EzX9#&SQbPp1;##Y-KCvRKgkN%>v(H?q7$yoh+o12QyydkP8eab|@yqEljn$!>GOChHrOVSa|HNITO}n zs|>%$CV~dM!uUFawwjqZefS22g^&19TcgFbQrdFPywHZ$~7B%zZ+xnHO?E1E+yWGBywDV z_V|#*?WAGjt>lm?P~FC(ImZp{wUVzU9xy`P=uInnK*Yb%v_`%I@SS|&{aeGg$qxNu zp)1u|jeFRR!=sp}5HvbjwKTqb40~8#N2e6Y|ycd&!@V zeMv5wVJbAH7;Bi(|?QRWb8(gl%QklBTEs~625Kqa8<*U(yr5^x}H9UB^#@9}9BFtt+ zouwmvP6Ll#NZU)4auv9JzoHi;>3e()0b1(e&uMCaYU;8<41{)-9nSDVKQ3kCfBoT|-qW!I5ke$QZo;sYM~FkIdE zD!T_HEKpe^#*NidT7P@w7D5xd#;_1DNr9XR*e-spB-Jsd=F8a%%AIhC>D0~+74j8Y zZDW(SIaKv^ZW$c5XW85xCkean2ESvL;WHG?h) zG3IJPs1FE#@jQRw*9j8q5=U+j9ucKa>%fw(hw{AYa;ukMYq3$_G+H6Ozq6c3F zkr6|TJxx}HyhxrO72kqWNefW#O}%u>nMEKZ)Lf$EsBEjDPuJ29J!KQjmq>~$t3*it zEcY)<`vZ~VgcOF0?_5Ri-$DvPR~~+DjM1ieZmZ^6pVL)17o%H&(O3(s%6e``76e}; zl6%m^NR=j|r6}!n3&M0nn9OHrh%!_6y4@e7dNx*F;NVPF#aUEWa)O9PPtaDAyldm1 zlk;X{C6`nloyWk3h2fa3svUAu&VSpinulDv)7wjKNmT8qhjw@<=O3AX7MBv2GqVmDMj$e>gwU&U|2}R77&?n^;i9JyuGY0f_Tw{ zi^Hm_ZEwygxY=UoVG^ZIUYi3P0<$P!E;qNC%MnSwU;#)7k| z^<2f<+*=y!;*Ja0oN!oNsFL~WL?BbR_|*u-@hUsYqD!RgDEoqTv21MOZy38CmY^Hr z3ZTdH!5vg_%b~AA-mM49*~0=ZQyq~L&OkqdLPv9u!<&NAPorzyN8@5m1n~irKg;DmKYy7guYY) z21yUXF3_3f98Q&jDnb1B&)FPC0-o8MbPQU-<=}G5Q(-B9DrJA8m{JkymKcwCS=EK) ze8tc4{l;1r*AN=>t$oq>qmjYtq`gwKBEL%jvKZLBo0rC?t9q4@pFP2|?rqaq>Ha6k zlb-f1zQfajTp6fqf!d>OhW@6)rG`Yg{3~mz8FIWO>~i^1)&bb&BRl_xtMC&oK~iG( zZ#nB76x1SpO3_}qSU10V2U-t7$IrS2PSqhv7nFbTqp)2attOATD8FA4jQy0+! z)&!oRVxhyIwdGY>B(rs;Qbp4UMU5n=Sylq&tXMYFf(@fJTA?l%!~o- z5A1hVbWYDvqO~@oLmx&J3Y5k&)WQ4D!<7zT6~ZM|&dUenvC!oV(B42|rQ(!&ll~?o zJLiblS@}0798;bPFeiYx=BrZWK?H=nk;&oJg=|crjVdhi!gvze4qS(7a|?KJE^=aGU1BOD!)s&Mj+?8aCFR6&N+%R2Dz~hYZ;+FctD0phtBR_Nu^KUg z_;Y8+s;YpnlU1Xu02`ev)m@}rKo6UE!;oJxP70b{%eL104u{T~F%hi$AzLspRCALB zaq8iEV?1?{tom3oWw2WO4qYXXZERJ{RYPNaIky{YUSC(+Tlg?>Jk~4mpi6X9m4_#S zNm@)FuaeY>Y|LEb>21KyKVTTy7Xzw|Q>?QYQ~cVzvgzO|(`Q!6Y6Sj?;b`iSwQ+5=T|jSBe%V2K+6t z05f!3!Pd+MI1z<*+8QHi?hv8m6w@M8bZKBwOiCV3#CfP*wnA>tu`&jbNTh3#)6-EN z=#b$yyQY)}5*rsc8^)S2)@_eSK?d=7{Oixx?}Uqm3%w2#O6t##&0xWPvd?33COot} z2HHYqT(^ockKO#*ca|89L^Nfr2OHkJ<5-U~J7_PB{=gN}gCyOoyuPA|1<(w5in^Qz zszNor8YT3{BWQ=d))O6A0q-@6(SZy>K&{sC4tKl7OJGb&v*I%Iiz$9=Tw3bN4)N2X z{5362clw5Aa(1H8uw0es<>n^cgS~eaKD&>jD%3=aKeX#Lp|CDgsKV-BV!Q=EZi&-6 zH;j^q;iQPlvud2 zd^EZ3){>Go55!0c-|Bd>*zV02<;cxju~MvGdTi7xFKRhSoh!^;r7jpAGS)@G!b2;MqI&wO|z&o|T8R&S1P>b0<9uoS(PvrQ%c<(4ToNr}Xs->KKq-&1cx|Y+(A}+#$^-_! zqVv42iq36!%lW}z&{%rL*IJta88Nt-NNtH{AUmSo93$(yFGde599%iDaIFiyBi zdeP%!R#K(u7qZ5)gj|{v(z8H|hCQXcXmxf@pp9BF7dJ;2>_n@`izSOMEO>Nu68n;! zJq$;r#NWGBIKh-gZPmGLi*|^qH22LYxw@`wM+`L%kIrf>tZAtUT{i#J`mMU*RimU? z)tH2C+#~-~sw9j^Y1r`fx16(SiYt#++Bb5d_&5HU5r;q1N?ne~sMl?(quwAok0yEwk_v3zWCC`9N5h`3HZZ~ImPm%IFp^;!XOzo#kz$Q*8LSo>2N zA5n;(2CgynllSJ^(pgznKm>T?BjKGdUaxj(+;Qibq=5goTJ%l&?MkRu|0eYxW>48@ z*K4#VCev+Cx;x)Vj(G2)e7pEg65!+ABRcNK2`y~))M9Vt);gOE3nh+CrqkdCnNlvmKWA8;8^5)T_7K^==%PvH+aUbu zt9HOt8)3^fY1uv1!1x@@J}cgf#@!&eM6j?#0Ld8)IU{uGphP-|u>nPNm?k5P*&r_` zN-B{}@Vf&DT}YH6mkuKBTjQEkY4#WT$N3lh`>B>(l86}=E-ekRF3yNqc-fnEUqKSq zlrmn^xql#{%n!XD>>E8;YR&~Hcc1~!6#XV>FFzToGBxt)vE*nn)JjmB_%RyytafCB z!%b0R)_Tyi&FNax(}d2x%%5}HD^o~MFNNI^J%c*P4#g``NJOBiX0H4eVk`UgpD|0* zMYFe(jB9RNKyo#TcRjLVMpdV#fbt3s8AR!o%reKI_1gAI4V^Kqc3TKKyAUGBX-PSr zxe8*+@p-3#hJyU=#LovGADP*F`_q^?%Ck!@R{7BxubEl4Y>epq*kv`#YRlWstbO#* z>9L;`2V!R=Q3l%%5e!A+IwI?@{Q_B(4Q36iJS>q3Y8ZQU8`vfcvWwb^BlI$&Ye zHKu=UcBVj!7FYTi)-9)}hJ-io&h=q$l{};Q<+13*+i8YF|+b%X6 zV|(Vl*V>uSkj=H;MtxJgV`|S1?1EOs&L{u?dfoW&xGyQ;iUZ)ZM$L!sQ8vp1p4>kwSme7(i)Oi53g~z z;napa*MZy!6W@_-!QBqp-cfHM{0rgP6K_NP8|cpr;$Ht_Yr3O9hYtV7_|Lu{J9OrH z!5bdbrUn!5SZW`F+fUvpwL#-66puh%h|aa=x-8pZ|N72-$rmEtL4ttOHRn4NZx}sO z`+n;yUyq#Y0FL$1JB&{h{-O1*!JZKJ_1Qc77tF4*^Sho@5JHRgJHl(|wW8_ZxMt&h zmg)m(8_jq6*N|^=o#=iGH$i#Lwr@V5ev5x0{4IVD=52(PFSr}x+zxZz z4*K{ovb-sn-8<6tQPzR;N02{i-a+M!cHF(wr3?|xT>n5b6Q^e4g#3DL9SZrgL`q z6p()U;k2a;-;x=#GCQi1qdSl|bWc?W?*{myxnynuvqNDp=8EOy*P-j*)*woSiXdfL zEdwZB!wl6f=E`^CD&=%+EIL#~V{e4jDewlhN52LJxhl_eCHa|p(4Mu!as>Vm+z2Au z{#{gaztNC4A%kHbY zu~zMpEWLhCwz=@3oOM2vnc_q<8>X}rHc2zP1{asOC&J|3+4!qKJfbmJlj7G}q+uuJ z)k82Q-#$KEp5YseI{)aej*!?Y1p&xGm?WJBESHF)$wrKBu9JfJrmb2s1>5RN=pZV!DEqc*7@x zIn7wY9}K{PG~`4Bd&%-45G=c%dE>rTn#ElHR*rm$@bx<9QuE}PpE@r+GCy~z@ntPJ zH+tPTTs0iws`67^L8@y zIgo@ZGiFEaJHg?q?ATs-_ImMG=gyX&;?i6x?$g5cf`Ti;z)~2V1r+4{gsNivIcNeW zF-x?-6wV5_V#tXOcEID|2{i!!3GMDV5X-rL&bdF05G?=zwOz$^M|TJnrKU1QI?W`gI>!- zntFEH=h38{*ZM%LmDD!!l43Lbr9t^QzfNkH)vPg<0kP)`F#bnE%qAB%YDV4 zO886yzWv1GHJ(PZv06zf?WuRrfI&NDTG9{>{bx3ak0k1819UHx8*ac zXJm~!cIJ-K84d_v?R6&EoYiLb?deZ8T@oK!Ur1vlCNcyPBXjro$-F@_fA037!qPBN zWj#_cmt~Np5l4!i>$)~N3mZdp?e*%?WN+h09jf|hZf@B(UC2k}HF!oP1e@$yNQ%dE z6=jOR`4G_(?yE5&V|BKMDyjA5Xi%ZP4mtYrT86s_^I#b;XGfZ~cW! z!{BP!5k6?{1&<`b$l$h_2kDeo*a)7cX%Rvd$H{pG20jfgdmpr>N98_s^jI1x^`O$j zHsz$(hNV>QL4q8@wxjO6Wn-9@;JDDDw7c>=zFK*?^sCNr1jT%(OfgQbpNVu%#mFI3 z3|}rYjHm<4W$%in05$2rG}SrMqLT80s;p!hPs7(Xz{XE`foo>6_jvMWGwrmURHb4k ziWu#|SPUPWR*s2AUDL=Ps*|IuEX@I&GZFjH#}4dHVr@++NjC_LjTtQ(j zjm08z+XLHssGFZ%79eZM9!l2U)7^4^w^klh|L_j1FKTNlDjyg`@)H;NQg=v;1)*&N ziXzZ_HN`xO*P{le|5BQz6E+3dr&aWXGp01E%CY=8|e6s8gf~`g0|-3@h??JTCrZGt;l)4NNuJMF>4wd79;LixXZfY zJ{&_lUeGl0n7@W?yt9P+i@cKZ8yAZ2Gj}#6FdbE~TMV!1Sa$tSW=cT-9b6&WE@{(= z4ydzxH|ljIEQr!S{<}Ky>4q;>ue{L_k;#i$(Li)+CT@uYlp-h^C8MTJ5^^!r7dBt_ z)}0H!+^=3it=)LH*%$;L6%uBy-pp(PGbg{y>}4Y-wW_2>t&D8+(&lvnE$!S0(W5!C zWvdk}JSc$O^Nv7tNv_w^fIU|%1z$eaX*dNw+9BRNnV(8@(EKd=p}`a1FejETdEl0> z6PO$`ueSNstX=TF6^?uhpW~vmqT|)>xeFmx>_x=C@;c_C2>;r;!1-4+HO7y~fuCY| zDjNM~Gb=8O7*(Tiw{1*7j^jD_;SWC}Uw?0n-EbT~JMCAt>ohAT=XLo6G)>YZi~G>^ zB~AMKbyg=GC2|s*O4S7z$?pJ+%qHf@3uY}DMWEOtb!Il*A*sn$@;#kueYNDI0y zC5_S2PjxzLBmWRuqc0v;I9hw7ymDhKvE7K`9xTaibjfXkh#mY0yXa(H+z36Ch}y_x zUF3)rkwWx@25~W^D3W=YgfnRD6nmDeH9<{fwUJiV=aVCH59t9td&xKUMD-1DZxYY9 z7pr1)pG|yKCvBDS&GQ{=JJhY>+{>j$r{^vOKK07e@kByWOmhdH++6IXaWMk4*aRK- z=p(N+2|36bEZTO0RjJxmL-N_#(v$HQ+3Dte=Do=WtntQ$l6h~N#jrSO()TcT^NWRv zsl5YMzG*n^w0*LM@P-?MIwBV%KH@QiUj)@0a3;P6WS3CR8vf-5VEZ1aFz|G+YIQc8 zNymM|HWHaL4+}EvtkXt=3yJH*mfwl6O?q@3wrIEsZs52XYSRd^Ri;IYsg3oPt96c+ z9F0>=oom5OW~q5CIkE|{)Y8SWj!_L`2r``#UH$I+RN|#MrTRiI3S(h#mc3*=)yBPO zb!4{LOa(hBH_xc?q%CI>WxPwrG%5ZpEZhHl)u0-2MrkHtezoV0}v3 zaD`2TYnPJhU$A=al{x^!)hNx}d?Mz>wJTibu6VI~0J03%6Lj ztP=z@>?$S~M1ESGJ>Hd2FPVHp3W*r3gKKA67n!89l=6Ft#j??(^S-8;WLm|Ra=+Ti zKWFplvZ{fupSZ^!o0_mP(`{_68wfW~6@{;x>^D-MfMhY5mk82{PJjo+T6l{CTTHu4 zm_WZ~oI7r^kG;P{*5q@}TnDipcciH@M|usdXnLw?W~8ASL&>cwySOBxrBZTrdP(S^ z?J$Ny#FSq??wDQ9dg)nddacJ3uUQA*_BQ)&1L`!H{8@Mh@$$;Nv#%&Qgfclk^^h`R7vQ56iX-brD!2V zX;2=XQ%PtEakVp(pBU++^^Y`H3K5qpRu+=k=Jda!>Cb%O-+OUV&)qB1B#`pgf0@B& zghl77hh=}zVOe(JtEx@hvJB;$%Z_23W%x5b0{N^vmvb}8f!gNo_aVDC3aQS7vE)AZ z)|B5zd`}hgl(e8Sh|rG%nhlB;{a!Bt#mnwW_c%P}5wkKbK5EEyS{Y-vZlNkS|IcaYnYAxjy~c?`>_U(SZ|R-j$nerErS}tSqs~!C-0D z53Vr_8x?LQ40v44uRL(SA`}(kjr!|O3V!zfOp#98{jZ@!)1=23Gy!6kmUd%g$4o)3 zY0)s|36~i5oL9n2;YLDwS=Dl&G;hgyy{PzKm8}1t{U%Pa)a!~!udtP;)vSb&C(P)< zkSDa_hB8M&56I?-Q=+`?AB*dgj6vO?;`QnUvE7iE^{e|hKKipe|ADLb5nc$khIhiI zufY188LvzT2O6(PJ)(T!yw@o2us`v7jP(2RuB5j({!Maz#*)|HYGS^CNt+8a@V>C% zPWqW9eP=yX&NICGj-6OjXxF~4O9A>;tk^phr43rGBChBG8Mdq3^^{F$FVQO@-6bUr zc}+JstASd9E6UP~3(bGE>}|tW#3vU&tdyJmv_jYgc|>u`YgQVXtr>gtaI3fT@vFB3 zOEQ}cH%PT=U)tD(KeC>G<%Y+Oru1RKz&;rt{Y{;H7+Nf3_!*7u(34KdmZ4eRdzGkX z)+*H4BlR@8hVPK)*HZ0>xkVa#oL6+V2KNt5Jc6INqzCbAl&ZppTQM47R5-^4wg0?aA~RZ;)Khy=AyI33QqE!!Un@(_IV zxZ=9_@B-a+N=iBtcjG05uC05kP$;G6W(N^B4_m)_7>W+JlX`8eYjP=nN@rLV!xS z_;MGBreYXv0YifbVYMUtQz~7-Aon?4gcavj;1g#89(Mf++W#T!oSHR>x;0z1ZJV`i z+qG@mwr$(CZQHhOyxX>U>hy`|=$rmdL}vbibun{2&m6<2iSQj=Erh%sVg7T_`*wSV z0ma>U*Wo3<1`EnwqfljV`q(l-^-f{Kl(W1tp(+Y6 z-+7+1!-cHBfIPA4{cn2Ec#*Nw=*j{0#f-6|P~Ilv z*t42f9xmWYY)(~=orp9mSig{r+aK_hcAJju)dAJ5%q|z~fO^i5bp;}*3Luwd2NM*Q zf+&~6CCggr_j_QV?Xv?7dHOf9)?qd?6xIEdunvfzUMuKlLdBNfRzcN@f>T-Z33fn% zm(vRc%Tr1zwdDc`QEB__G^qe^s4k;HWXf*p!LAHm0l#OBS8mAD;z#_6Q3ELd z$bvW|v7NiYEYeR6*ina2!aRLIl)4YR;X_m$>qH{+h9UPn z2IU@rYd(OWT)V)-fHxDtjQD*T|3Jq1F%kga{f7FhL5iIBBQbV{{0<~Or;vM;@p`Y| z_G6~13I?o3i{!Ji4>;Yzs;oHEWD-FqpyY8DS;;92V?n3?Rf-YeYiXiPMXx%0#*Q

bHq&wQQ_NKdgId0`w!Lp(Ra^wDey(!$js7q^o4KCD#f!S( z%?!D=BbPD@4WYS&A$tx)UpW|dZm&&JqTyW%C)^}w>yUGG-)^i5uie%OrnCN&u;?@$ z84&Gb?FmZ)cR^t9IoA#b(7B&K#U&g821qe-&n0up6mp#u8w4^(9IY32F4J3_|}jl!nmdzwM`NaYLjAKGmhKE%8kdQ zwF+TCGaS4;? zM+8i;89q+1g>(>S4R$-GPqNunkZ!g?(MK4YklE99iVf}-Tp3#E_qr!X`m9iZ7Yw>y z8^U1wkYVZZ*}Bum$+oIy=H%H`_T(~d_GG99Eq-OY7oIC^DTibGu>**u*=_15W|sym z8T#TDqNLih6O5?=JM^FgOeKAmKY%&Ir_y5Be0Yf{23Ar>Tw5m?0CnE9Oi4B`7C&})%lfrNI`@Vf#N5vH4?PEQv~P0+pMcJg7OEW}oFvI55n}R;(Gt?J`k|># zE^8HvYRvD?lkJ7+?20K~hB~~|Y-)s~?##>^?BS5Vv%Cn{8-r2VFH+qvdeLKI(`!Q< ze9~MCNpWMn{I&aLthzuXDN z7jG=T^EI)&cW-EX`B-;U2w5)puGq}`F5A2~uUy|2Te!Y~S-O6N zn7zD*m{0d;SV!InUH#ro-*DNLunxU(ur9rkxI!#!d@hTx;L*pay<)6rE{(#v!YtJB zoHtw2VUStSVUd~NVO6ob!9cgn#Z0x(#aK1d#jCOH4;%Ync4I_JXeGvLd>`MF*&e``( zFMZ!V*8aM=&-)?T8T^5~F@`>UXTR_X=XkIZ+4oN@9tQZI*ar zw?xa;!<~MpHhe>|gr%!nxg)B+c;&VP=G)kqh^@!lBe>x28S_Y1Rj+-(x{&rMc=}!2 z_kDwlAFGF3xE)IL5Elkzn4@}juD=6*p3s}wZ3+T#iC@|Z-C=lDjwm;WfFOciq z36SR7gFpByw*TmBra#$hr~k=oFEHKhEU@i89gyvVEinH54G{i=E|BhnF7WPsxBo5( z$Tz~kO0W&~Kue-+H!+rXAsJE4Xvre>**O~_m#;*qV_tdJ|lHHYG$jq0g$mU~P zLAc@<99-I8B_oqY*3rEE!n;}bW015~S=%R=^p(p@dQ2B0rhx*SKxn)`s@49q>N|_N z`p8D?9WpCKbt9f=b~4bx>+1Tm#mp4Il38CwlMn8{^1~&Wj|d9-T0voURmSdlAPT*? z^7~#8sGqL_L{JLJ-g1JNyk-0Oyk-RwZ#dc}UkJJP{^dUR-RJd~CY|V^jar%~+Xe`P zs(}pjLUf6$&t!t=cf3Dz$2ve-x_!F|=s(-p7`|`=F~5`^bj6THQT0(q?qBJhTfJFY z1Y0`*_`7B%uBhXh7xn9aZ0C?IyhuV&JJly0PSu539+>2Bb0^%)7*PoX7E#C^hifo$ZrkyT3+H*k zabf^3%|N;$0jT^p7>Jjx0NL(l+_@*X$JGs{VI#Pc6V>m(4Eo#e>4VNHND^-h;y+w1hskbmCoG zv7X&{FJFFJEr&{sdIC7e*;Ha9v4N+EAdWhc8@8SCtBP$gT);Gq8snb|%=NH4xy5tvx6GJBVsYy}` z4np(1smrS}V?+Y6nb0K>jBPjaZd>FfMIHxzE#PiKvdhAwcok#gn&1LYr5(vky)L%e z9}Nt`PAZ3cMuMK z$+oaM0~3Q~pAOwJ;!=m#M|X>`<)u4$o#)qJCyuKR8@3A%8}(~o9Ko4F!G*#p`YyQH z(R0%5VR_6W7xmQ3s2h zYM;}?11-%EC3=hTznFp|)+PCOp|Yp%NWg7QYcN%1lG3i0VDIlV-#9>t*Z64ob|IDn z0wEzVKaxsia;HkqiZ9OU-y2nFj<`imDw)3VOEo+^VXRc}FU}19=vFknRD+)%S3HeO zUT!D(*lizuKol!lz8L4O+xxepXqWr#{`;^+`zSr6ZWf zOksJJSsWZoF(vj-H6N4({ZBN6C%(cod|qoiIN}R|QATbb`2$m$u}}Ee$A;nZv;(MI z0@7c|J>-~Geah2)_VICVyG4rB_QL#7UR8IPoe8os@dVnx$CtwDc=k*yTnAe5$u+zm z368R;^NDmjpy3=bmU7P`r$pkGDK?298U}T5$T}qw9gB1FL%q9*JUv{p=pGar3T;Ok3+YBSt*VAe+$~%px$do; zg>^2yo=%%qEqAYu*awh6OSgF9OWrJ%uO7WuW8`nXLJ6M8{;K{6onGaF41R_VV*H@6 zZ|VMO{w7pAq6?w=B)QG&MbWvN4RZZ#1PK1%n0%bn+k6+Q!w-RVB2||X zliN!->}TvyOG_mzT>N9eN-!G$DhCf&jyWV#wO2XYv+0<#xgLvf;GG)|>3+g-HY5=y zfr)wFhx$chOdWrIFi&sj=NQUh0)C*4@_q<`y`y0sVHxLI<4%6y?!R^i34iG1ZhlZ_ zo`2v{Uw`~qzWD%%k^Pn_VECF@BpP5Bw&_-J#`RiMeKGY3YRSvtENT>&8kL$tDh*89 zB^CDR=WX_5HMk<_2QmLMhD%)Rh(6gcn$$W&iXX<1^p{tqpY%G&a!Fxxx8E0J1P>KG>75XjZ4d2=4P64h*b6E8unG8-Y}JL~DlLV7h9$eX=X5 z)YI=G3JzfA3{jm)pQI8|TuEMH3JL$JWaG`H{Ni}=OTqcLYM%Z8Jy4M* z&#P+Z%$@R;9fqrXY+Rjh(sTGf02B;Z|2~W{h^Sy6|G__G^uI;G?g6KLfE?Y=?85@b zG6B=Re>H$H6|;s%=W9Z>s^j}EPL@gG+nw+FZf2-2+4OH;KW=w>L^BYkIv7sy6ry_> z|E<0=dR99$DVVCDfj&xh20Pv?q_$tQ&{`0xptJ!`{*rqueZ{w0dr+~Y+n0ndCFJD~ zhy_hdNtAHeVdiw=H9W(@U(2-TEdRFXwd&^ygWs>uON}C#8r^2Y*1yKmIzRfD*h5Y8 zHTO8+`@d)>HE1U{_NCoZ82V!iJwu;~zeZL(x)D54d5E4r(Ykv=x_e@}d*<_X_>#B) z5HDLldG8SCU(~Ucvh^L2_FEmSB3Cl1^5Nha>qHbTOooSg*);G+_oe)rrqily0tLvP z)`g#Sl-aaEMV*M=K&URXC6+lHk5Z_D+Tf+qYi-=Op^9Y;N0*Nqq^Gz`jcnt((7jCF zW;r_`B672fO!W~Di*tujT?`_YkX}J+A0S9TxrDpkVCnvJdvkrMapev^Kg+kw1vKC zS#+H!7$)h2k9tk>96MsbUpNcqJi&!pF2T8z;uL-+XXeH7isBvSf?R(F&~*LcMO}Qv zeiaH$82MX7|4g|9qo}}nBCOS*fxuLT%u>Fz!i`_LJLCXC^|Uy@I(X}J(8Myv+%A&X z0V@rMU4AyW#u%&VGb9zQshg9YV`VTccxIVh)m$gHBK_2?(kfLN5TDCSf5cPaNU+h~ z-Mrv@dB^h7km@6+rBegH1{*q-qVPPw;Fp%0g7G)JEi^W@xf8>B>3QDUE}d?n{lsU@ z9IEol%mjF~qTcDMPc7@F+Cze^()v<4$(qem9OJv)iI4J^mlX1A`QYei5gA!-%gWuh z>N0Ct?lEQ5b!TZB9bKlg^3+9}{7|;b>C4~|7QW!@DrU`G&WG9s<@eK;X+irqI@V6&8C zkpt(%rYgqPUcbjX>vIB_KE9N2mDc-&j)eFdlQndsLN-1`o-U*PSR2~HQ68MDUCMQx zfE$bqm2taCh3u4SuT%yjf9(4e&j~ofAm6|*f9m)9p5|Q90`Wqm1R`wCsgt+*amM)T zhWu-SDax4voYluw+Zvj*=wPI+)s6u37e8VySgft>8+D5YatLvbb z9GyYl`uP1mb&~6~&r;8+JetTZ>1cH)7U9qH8gslNnFgw6idPcVb8zOx&p_5W-Ex(6 zl}(f%ZdXPhAXiA8BAo*@%Pnh98$>RFEt57&yp5@ryPH%^x|fM=WFJnvLptM*SIS-i z-mJNXxr4F|bo;8CsrRB+m9I7*7T;Cgu)aGwgS$pQi~o zcgRUMTf+=KSQ$opw5eNvC}di0kf^Sv_bESk?Yq5u-6nQubDHr{YB#usu%87TBHxo* z_;c`g3Wl%&G!fmD-&da`P(BSxxa>z0){#B=(utcXaNrLjZ;Dr(Fs6n>bf4HtL?RZw zk*#N<^8jjItOOkcroDyF-=Uu{(tk@LrUkE7$18 z)zRimZ%Y}TxgRb>=hWmT-NkZcGIMVQ3%iJ)!g=LN&wT2?Dp za^gqh=W*F%)?x#U`Fds##t5Bp+O2zW{#qsNJ}1r%`&6KU$4MIC{vERONjpDv&jQwV zM=!4Rzf+$;WS=~Mkh=Q`vYo-9DnfzMzNI1i45)k#FK|q1I#`R95FhCi`!S(!2Pn!O#&-GLiH;ZdYKU-R9W zTUNRTaaX(*cGnW!^w{mXIXm2Vw0*VZ<&OxTK$H&*<}(={3CD8aawM_JS;&Wh`3dv3 zzWIJ!%dKbq&le`72g&{m)zA%F*zOHtFCT%Aui)o*eeUa5k@Ba`CYBFf z%Io$)|4r!KUFI)6QnNV{e?gIeQv@Hr_*b5#;TtNo*dAaSkx!Z1eYOBa^hoclPsby4 ze9`FJw^}t|71dnl;f)nUYH4{$(l8LdHOSwmDRB_q$O(F40*q0Tryy^T+WF-9o#5lh z+QhOB@!TA62`ns`Hh-2#4(XEwc5g+CXg*0-?^Pt2Moig)4+o~GZ)!6}AOeG!g{(Q9 zq}lr(xG;TI_b;3#ZlhdTXH`$yWV3U1^;9Cc8mHqeN9h-W@av5eG8|ktH0oFf7Z)?K zUd*+H(c9i4obya~x-s!wY?>{X!Q-*}--xK4S}^kkXhN9iwSx3%LN4gH5a8C_I9c2d zP%pyS>9(ZlR{uHVrt3az$V_pME*%_8tV2?7WHf=_lIrk~?+4l+6Oe6;cv{l<=@v9! zL2)h|T}3+!OhkH^cwjvUWbBhk9)+`>LxGXO{+bN@#mI^S9z+7;*BR&^0~^$n7_dvr zphr?6iwclL78%S4VzAR5U|&nJ!`MoRgMT5F3Zj8b1OS2t0e3+HZVdSlI@0Vw-`VuQ z---0tJz{CVx@1#39tH%;-$kx&&LH^&dV_NRZ~;sYi+1&-26D%QefyV$z=XrGaN@`Ex#j-~7QoAhGwV4QfTog= z_P-Cw*a;dyZ6&5bO^0g(s)urJZ-$&++3V50a?*b9l0N(6BY!YZ-Tg_4WA`g2HEGZ@ zK${es()UJ&H&H|iZQLKyVr8-~I;>IsgW8@)Ox?8Rq-y3(vZLs$a%o+@VxL40=CI}2 zmhUVAdEeP(eEM69QkN5l*zqU2-l|Rf2+q-Qw0~WJWl`SxUA)4Vmt55b3d{?J$7m9# zX8;S*3;y|o=u{?3eQXl?^+T^t34{D&kD5m-=E-?d8ZuQ-1|RiXCA0hTlkqpSQG075 zz*5X1l1|0+w3-?vhP6?1^>48Q&{!l+L+?6_txdr7roOv6TsG~Fp`H3OS_{tlp~?7> z`A&hY?W2#MorzNNMcqWWMQ6nIUbS=_|Mgn~^L26R{DWZW3RD$Kg|X<3kh7D@R>ei+ z=_rgwLn-rb;+T-3A^SNNd+tZ^ESNxK_|W)pMLh|F-#FRqure~#L6Jz2fQ2C>wL~|N ztqgWx7m}F(cx2N--S7ttS?-88W~j7E zh*E$FLQJ)PyFwSF+m!SNG~~q)wLJ)(!!~+WZZs!36ZBDB8xgW=v9#X&2^V%gat}}Q z*$>r~hfX0_!ELLQ%a-;e25OTH0?oN`tEW8wqf$K^e^QeeoIw4WOJU1p1ffKISOl7c zwQS1sacv?vvbFFX<#$opDL#Q4n#X-+sukPo#Xiox3F%-L8&moe+xR59lM+dysdDF? z0E&@FJe#4KVaA$1tzK$-nmPv?N9f@Uq?L3od}@|`GoA7$&oJK!5+{T$9&Y%cx=APv zuc@!wnbt#Clt*WKt&d+fi|q4ix6ZHw`}pq6M5u2maHA<9b-msdIwc4b+^iOVYI+}@ zBkIRA%VXLFPCs^6`j${{d$2xJcu4xhtu2naw!-;5Wu@@Dh?U=B6B!DNoV< zsa9rtZ!5miPXxepV^%m#JKzJNmZWFsoX9KT6*=5D`LF{cGU0P!!rqX(xh3g)G^LNG zp<$>Vtk2Y^cjm%NuCa88`5qdc+Ah^~qi8TvBZg`L(2U?SM{=mUxA4 zkZ21?1hGPNUme#04lV3QptKAcV@TXNwwZNa&XGrxKGNKjX^|;S<%J^DUSe7iPCiC% zg`prvF-HW+rg2N#K#S<$^MLHXRUWX@O#nFMU%#d|{u9ER^?xBU|Nli=)k?myi*hJD zv8YhS1AqVOM<|2Y{6WFUGa4ECMJicBoJTx_vDh3dub{EelK?2aBihqN2!HRzpK#M< z)1MfqT|4Yv_1tYg>2me-^!hle-fdE{dQ)Wui1uK2)A6Pg|V};Dv>J zG?SaF%tviyaS~G$ltnUsoII03I%vxrVuGP3ZfJ)M@wZ}7-C%f;9%Si`kbeZJz0K>J z%eA(vjqJOl1jVdd8~W+#Z`RlWq>vxZ6k@bAlJJ#baA}52SJo)9rg&vy)A20wKxEfF z--mAs)1mMiL5{wJofL!_%a}Z6+igkBJL1On9vf`7ik}Y-E13ER?++tIcUf{jZhx`! zSkL0lBGO@?K$_|ahZqs1=+~*ACP_gL+BJ5^G7EG#`Fu0>2~Z#3>5a1t#)ZOclL+*N zyG(MsS*B=n%G-{&O1Tcg;FzywtIj|TUP><%RDa0p-KoZ)U^f8SK<&Uth0_Trp;K=2WHi-ZoDdj)_rp=kRzhtz^r+c;$!A@8sY^ z*j#{TnQ@U=6^0mKbZS&!+_RC(hn!uMr0PF)5Ts8|T=Fp~Xg`CpoJb^V&gaI;_J*&y zlu0dnFGjzfr`#i4E!7+*=J6&EBVb&|D+fz-!=y=;itrXbfZ%3|p7KhSGS(NzCv$T9 zH>^)4*@{__E{vXP@rkS=+I;1;p+(Jc|Aj>u+6ckvC_8!54_G6M4}Z}x*v1jLxM03c z>>%tk`a*Hnz^tx55Eb*`C|=&5!wi@iQ5wf6+M^gT(^u=$i}DtFK+u*dl$?lknVT~& zbIQ|iz#AIJmGFNXeS(H z%x{~9ahsOKE@Uz2s}@+}#!M%IV$h8_*4U5|Y5d3d1hn|^YvOblCS(&+^T<3ur~-(9 zFxLC~d6hf^h&Yr2G$9Rs;oqoUgbnxZ-!FH)KU|Hm zJ&r%Fzq6<(yk3*wbDsehyqEU?7yJ-!x2Z_guGdiXT93O7^qf-y2Udac^pygtwVNU41!T?$! z@Jv~wd5lgBLYM|HSb}VV@c$NvXX=9WsRXn7_1cDHv*=9Q2H^Q-o(+*^UIYO-0Y&(U z^Jk(2?_cEmI*9KWyZ})KI*O3#TYEkUyWfK@d=mN$#276MT2r?SeCAEz0D+L$*YLMt zm{dlsV^L6i-EdqObc!}4S@N~ON=z^e8~IyUFWG);7*EWeVfr!pAv?N3pAc{iJQMal zyEp(iOf3Cp9Dodl&)6*saPnFZpu1-Zm2(WByW;@u9btj;3H;}sqp?xCg{e`!_0%ff zQ}+_@cYLi1;M*ewojqWJ(&?Lq`VPv5(m4!IO?!6r((Iq~n$UDp=;vZ40Fj2kw~-q% z!b98V7e+bI2>IRbFQ-yXij-k|Q4()9k8Gi;6$u%Z_t&PbB>Fgzqu1jZyQ&YdgxS$*F+uP|*aOsjcREqd@p7m?bn3gmOevOdy*T z?u$IO3L3BG4j^JCaejv(PBq7P{Z5qr7t1x;;zearCvru4lse;Me`VK}Y^(B*;DXR!r+S^FfA%+?VBs zzGV{JbcKGJ%b)Z)AeY)4h(~jmT1;rCOqD+R=niWSDQGp?KtE|5G?3HNq=(b2W1VG# zhzq=uI42=N)Uz|2PKrI<4xWmq$qL%IRV+5;%%WnCnkLK;lW|4njQbYMA^yTd z=*=kTr8YcCCiF?rhz(~!&E(4q!s<5*1oD}hNuc6`rlqfw5BIFqx6hZ?eb@2 zWxlKpyT=&z_vFYTH4~+1*RqtE^ES?-)=Uw2Y&n-TFEZ&ai79V<3JQb_u_0;qo4H~; zwdAPLvwLmpIFTI|lL1I>{HK+t47B!Mz3P=}^$bK32l3;1$F*-1(sJjEM?AsiM6~LM zTBbx5CClY?8OPNZ3x7DwKmKJFAW}pNgn1SW==)1bK3M2%gN!DMIvyWjCdK|-a};Twd(Swk__^SWUQIufpF9l ze>gNN8_26mmS@Dv75*sU@t#<5+I&Ki#gQ|bWsK5j5L%plwTMIE3NqhkRV(_p$we9u z$@`hGDqL|6`1j~cn3t*~Unp5q2g;5q6&i3eW=hN2xi@qun<%GHa$8p}4o81_n{gnq zyHs5l;kGR`s6`i4p{qAIxEvJ_V-r=AG+uaXfVJ*l7KpUC$EyBqIQ-|m_QH4lT+AOy zEK=0THF>hj7+;BA6W|DoUiL9%J;sC%QV@gO*6f!+jX9zfne^K>SENocEHHBtFQB4{tN?RB7^j6M0-~ zKzg%cI+BT1Z2EK=VQ}AMZyD=oI6_LG^F%Y5D=iklU&50D%+kH*ydy?C+~U477t?W_ zr{1!m%Uzz(NnxQcP3S;(w|^07R)3~G8J zEYAo9Gs%x3cbe`0B8?u{

D=5CnKKFe!P`Roo;9ToP3!>3%wj^+9OZL2b~(SJLBu z{!8T=bZAkyiGNVdk_i`82~@=L9sj&m&Z9b0W%oNq7m}Y-Ph;{Mp5jg6jBMyL%h$gD z@hUceuQ+TPO|QWlfy%%WVbV9RS;UosPNjp_`V%Z~)H{M&B9yfE&=i5GD`XAVOcop& zILOYEWzy-#f%DhBt!<^4>k};~(lU(RB*^?0iI&hOa-2@mjv6a`B?yaA97K}jM`D~P zj#We~X`eUYjP^_$3en^AV2fphrbdcN5U@S=a0!e5SKkaHa^Ue&K<9er7WlDYFd^hD z9z|8nW;-f8Q%Hz*$0 z_AhXz)AiYA%r9$o$JF~Bc_pV5579cG9|ReMk2(*#FqnfT$L(jKR@hGKG3$%1mJ#a< z!4Er9S5by`#Ss_Y(H7(hBDF3)>jn>XND*?Ko53TD;bkRIn?9c{sfkO{#O?4k>y`Zt0I+pu=v-4sR?IC94eBwsO)wiRX8{^M0-5Tsx#hy@Abc=$S!( zQ^)$z0RANRVwSccnXL;kh_rF9@HWmYzA%w(IZ%c0vY#cIlu zcU{=Ra4+WU zh!+^jTz>fwMIq1(A(D+@1~rn3Ihv9@RU9%FDDiU71!XJX;$N#ZXGZ^SWl1OUFPdS0 ziXX>GymJfQ_f9>NHD@(K?EXRh99;?bPyc$%K$UtZ%M5FC(3gDBrzj3jPgk@P`bjVZ zM)XT1c%h|){Sn8X2a!$`e-UfGbKvSjME7^*ui zq1yLz(qXD~JaT8nON3H_tOBEtMzWyLp}@HbUl13{Y_pAl1p{v~&WG<~Pf0ms?nIUq zlWy?4LRc`Q`C)4nDJ8^xF%zzW{2VU<3k_haK!%T6RjKVRlf3XtQF1b5p8i*DC|zVH zgCWW=3OtRgAsV_hLGbP5FquLfc)2V5lVmwfX=@QzijsUU$S$$5FLkibqwjzJH)@1^ zK0HJH`t^zNpC)Rm|7D{7zb2pm8K;jl+`X2Tn}2eqjC^|2KmF(tjMi}CNYWue0ze?b z1c0z0^FoFZTk*$Zjr16iO-SR^G}*Q;dID4sQ_Y&8$_Oxox9mKoMEW_jMUpX7L6x9|RYncNR5O`n0%MCdMF{bO340{-o& za3YEd9+1yJQ|G6U+&_I$pX6ku7r0EKxeo89jfdmL0QLu2zcd zq>-oCEc3zKp;2hb+@VrvYw46NvTErRD8gpplqkYx=@co_YT=YA(rW1xD&lIw1GXKKtp;bu6ypcaI6YXODSR^8A{@8>)d}?QiRfFsh8+Rp;gM42S z=WB0BdX0MThuvsj2|l_{O5h6Zt~R!a_j*?WZfM^Peqh%NesC87j$FinxQlq77Z)1j zr8@Q?@C@m$J%)`Zg#-|9lONL-=(*t!zm>Qxi(BP}kYEb?2;!zRszta?3lI&ue9nW} z4C=bNhEL zy8kB3XB-+v5rBuF7v(-ZZWrRMI*tzZet|kL;#L=oW+)d%BZv>niSgTDj^eeEpXGHR zkK}bNkMnaX@94Fizmh_4&Rxl1?(KEx4{|SKnSTjZlZsGA5mA&bc9RU}%A!zU!9qMj z!q5p=^FC1^>wYbm^}r3R#b7Lq#b_s(wqGyiBW#!LT=2jLsgKoM>un4_I>0)R7R@32 zQHQdE7M-ZJ?{{EL(y{WZYhcTQQ{eT0EKCRXkNF%=!I94AV4n5sQr^ccSK#$%C>W0) zJd6jzkI9^ky*T>!V4kVa1Ji3T|LlTMU``=aU`{H9ZXZ6xpTp=(0Sv|+DdH+OMx02} zia|(6=^=|h>=BX{5Q34C7OUyl(+y#m*3_CUCfUllS&OOKsZpVY(NlOSCat7{@eLV8 zsBDS#?5=K}&PyT41x9vsCfOuiNXNtb(Z&}mDJ*K%@wXWb6>5RXtb7(C8^{15b>$#y zo@pu8`pdRJqf~o!>t?liFe(lF79?us^FR4VS2QZpz}TzYqSX$?1*V8u!z?7qL4>pp zG_<{KB_djkQWIK0f)R>ac2!pL>;}^u7u54S-RzPr72{E>>ew3V+?F!W=Laf<%PK8H zQY&og`*q>N;GH}tGAKt#hr?47{d`!-&*w&fM8`XL0~#|}QLH5_IHKHUlO3rM@uZ_l z$B7qc*aPM24GmB72UWa)*&L|DJyUzMmSs&E2iBwn@lf=c3>yvFao))KXce_2hGJd5 zk_`*RJ*2x}j-gpjsMzV5eA6dDf5PuC%yq+5wqe6eVxPl%ar{md2oS~@ZB!Xn<>3PH zN@;|#y{lcql-Qc#6!Eij6ylbp%xjwd+}GJCH%XxjKaFB zW1^fR-+uiskv)gXcHw4=0!zblrIlyg3}*mNFo`5w;k6l@r~TdecSs$!L-@1hBSFAQ zyc$(=@SPjAPXwlQ*ljQ&n)OYo@K31-(uvXxg~_A`#Y(!p3~otX0;{++k(4)%mx|k5lXwt=J${NK2jND;k?=c z-Nt|kv6uhREXJ9wO*HW!4dP@j44Wq80Ei|#QYBkrim!Ckg$0^#WLT}S>?>Ja)^3U= z!vW;vZk$Zb#uxUqn5D#_kY-UbsKsUbG<4O}R^)!Y$@tV~Ci~cjv@bJSHud-ICZ4J3 zBXtSAw)E0n_8=QDnN~zIbBY#g@5j13T2nII=V?yoAIA+EEpED*NN9ePva6 z#QnZ%{LAC+$)i(fRTGwHq>4jncRq9JLn3{3)USswIPk-R(ZZG{_j*i%2`{C(@x^ut z&>%OkMAWMw^I9rEsy`yn5t4Z4!-pEnAyh>cb+)KD2&kU6s0)OLe(n8^=GeERn<^+~ z`1pHQq~32ykDp?~8;M50Fx6@5sN)12yS=rd3ILEWofTg1Z-Aw@L1nKw*F$f> zK&%jPEQ;OmOQCOohZb{gQ6ba3Xp`avKHj9NJw1DF!(e!MqzFve)O~8RQhT^Oi8?AB zC{Rd3a(8Xy+Q??YKd_zjL0L2W-K~v;;!N4ckb7kUvUR~eNDoRa$M+qH08VV+%f%X))4F>RJ zMj7`n&>?dPS;=CZn#VCA%9007A6Vlr!?r(#3D%|k>Ue})jNNzqGmu0y=>y>ytM@mC zZ7R!`(3x=Ra`zOcT!gQCk?bUGxmUh@-$Q-|CQ6r$?HwW2B35Ep(9)gv$j+?Ah7)XAx~P%1H59 zaXQ@!ib+*=WFg;lhLj2KNTaxy_h~=oZehtYJ~#Av&@RGPnH}kFk_RWIWnz=DMQ4qB zz2uVRuvr?F5!R3a7Wr4(UOZh`+i`O3;9ut03wM+t#hyTgCsT8W5I#_%Ln_9+IilTh z23z_qW;EUUA%biHC1L&o_M+ZX3T+h{l!i`^b%Dj}3x?k@&;vUCnyvo}NO$sXV; zcDbVB(`&(?ylBv&l-t>Aov6Gl>wiuh(-0h9A3JEP;=;XcOv$i}FY`gPtip9#)eB>Q z=WV2*uSVYI64fwn+XIRdy=S(=u9RjlW}RR|n0S&?yVJDmQAYJJxn5wTh8(1Zp{DvJ zlmJrH{9&4vZ!iCfo$X?K+*%OGnd*ZoYHKrF;PYWNRfCb#Z&(?3Xa#QgG|bVaX8gYw zThFvA0zN;3SnZ*D#c7tn>R7ar7(-o$fP(`X=G8G|NA6bj+PG}J-}e?G{S22 zF)}vL*I}1}cgPQ@WPdOpzo;?FnYSmfXa)1PX{hU!F}yXYX8Uo!A+Z+I-OzAgMx7|C zsm3{{%NBMx@sXy4q+C|d;h=iN>l9g!)-4crcP-#Tyl-{RH>jHqd2yx>llpe2(fRU0 z0a1hw1Iy-jAj5jv(ddhx;b{r41vqQ9XVk^UhKeM2$X*PDNO+^mY(xm;ep5nqFr-Lp zzI%a7P;K+B`oKK5du7aagYUZJ0gt|J>D0p7NcU|AQ{}#x?;vKY^?+Xc$@*d`>l%}jiN5oNI z4`}F2c;#}fg+Hj42lt@=dESy52%0l$O58#vJNOtG}JztZOR*VQBA9Y|z` zl)dBSlXh(H`K9f|_*~}w6NsZx(eQ!`K>K&#%)xkoV`ED3~9; z>vmCrr6BC?1J}7K#4&1XiY0sXu!za6>eEn6!^TGBdMHZET7#M7md3U`Gg$OoO&nVNFk>Kwa^tHbc2CCKUIM$=V~AhKGDg*b?C^!&Z?_a zUcax5i-BB$I=rLbS>KVA?D3$GafD(;t7nwKYt0t}O)kwFEenuo+2$fH?q&AYW92G8 zsDxJ@!cJQz>5rYi6T}Le zbsLE-N64MCe`UFOw?!Fgb?gF7Hlmj?k5UXC(7?lCme&u{bz;`hAM0PktfW6Q%H%6_ zRHMzM(Uq~!=rhCjpIwHWa|_05Ccgwzn>9a2D(|y&u_nP&$=LStz*oxP@w&2B&48}M zBSA6bK=(Z3{hW!}!*|q_Q87GIWG_Zez3yjGudk!Ug)XJN8kv%_ySMRbT%gcjJn@2x zImX|C!GA zM7Qz(pqqhgx9MI{(qffnuLQ2&=q6MQ{><0&nnV2h;BMRPL%$ZRCZCi(oGN z-TSg+xb}YK`gG(GK{pcHQu*Xl51qCAcI&rq*@|XT?bcwA=FmxcWa1(%)b(Ea=xxi) z%&S?15dkv>E!IE^%&;BhKC~Bx?ivw&xJW?&n;UDi07>+SL`cHgjVixWopo=>;-%lA zAV>Bzp8x&W%@qr-o_V}4y)kv|VVAenPlBqwr617(W^iRI!08%#iB^RTkf*mIT*fZk zpS0D@^J$Y58qgUJL31Xc@Frwau2=4s?=(6_Q#Q6>7F&D8;*%2fvyyPB-&ELSI*8)- z8U<4no+Xans3=hv(|AgLGV@~3>C7iR>mah_0#=uE{$@hh^V?R@W?XUR)piq;$;u6- z4x1L9W+pg3-J4#){Nv%KB?4J3SZ|1i5{Cn2N**eNBEJc!yhh%|{cv~FN|^wxR!q9? zpxO0NZ(s~eW{9H>3`4p6HDhz8qRKpCN#V%!7meZ2t)uw2;f#+!*EpjLzwe({gnM8v zpf3G>+^%UY)5{j?{<&WVFW8zv)p82WL~;Azz!W}z27P}YY0lv(33J!MAMt-TvUSLj zj$JZTiuL$G`80wkHq+cbn%NqgT(JI22G4E;n3bqLX@wZSwArm~EXKr!uZKX%>Wa~) zuvy-J!x)u64`)8WIpMq-Jd)cyggtLe!#300zBbF zcOT^cl5*Ag$EE}mG{pcT&;83*!1(As!SAalILD4Wn#!}9u%OK zOB;PtI_K&3i#H{-GR4|5^JP=Ki08|cn%pXy3(lj;U7x`sBs~uRB3b|5pOXBBxKN*R z)t8thCxK^QU*$@2NK)y8pFV5aENVaI% z8g1LQZM%Cnt8Lr1-Mekuwr$(C?cR;u#@=6_bMF1#ix>Bv6Y;7lW>n2s>rcj-l_N)H zjs$p@xf*S#SxaTj6?QSYSq7IwxZ& zbDpR(oj!CDNJH0|J!#CAMob%X<_Xhz@(xwd9%t^#woK-fproI9YEqUwX0MB3^ENf%<*iqA~S55KTDs8WEj0`I;2{W9l_3x^MC|E4pv$H7wfQ^iz4X&*W2k^ruNT z<&iHTg)uv27Wc-bh=9PzL`HV@jAR+&k^zlFkx&4nHQIRhnOG4Bp_)@;YEl!|0#^jJ z!gtEqOs*5n?I> zts)b66;}k+opDcKg@vjEoiGdt6m2?!?f_gfb$Wywy5qH~BYP+Jg<=CCX4U!FnF?ON zC(W;sGgZ7nOx5kMEYvdh>g68b`il3sI>m>sy|4I66Ii|Z zjdVJNES$X+EQrtsEDS0cagQt^j1xkPL(Je>e6?Ar$WfzdIF2>!g<;r@Fj1G-rDz!J zHmj}Q${_TcdcB)0F&5tJLm)O+VYXJK&uqG|S7t2=?P~K+aJ7T)g**^H*ex%!v^lSctGuv&SgO&V@zQ9u z(BI3^8zrxWwlL6|jZUSFP0P*D)Wwa`vmzh<;ChQ8U_IWuN zxuJ+{^qs8-%}biID8mbKO*xwvW{gj8fmipf zCePuREt^zqSV|F&m)!<8O4EtK1)k&bhjFO-VJ9B9aJ`YQC+@NxR8zxm(gi_eQFlrW|JS z(Q;9oN~yAEcL&h9VW1o)ZC}jxn$E8LTEF7IJfc*V1ERsO%0-(CS+WgIY|6BR`iu63XQ2wqUz;j5pYgas~hCS zvTfFG#axT6^}7Ia0$WURaZm9OlXS0kx4Vs=&Bbak*>OYOev@ch&>p%LDB1Qcu3%=9 zsMd}e`r0H@&715>(JP3XLYjPHc{=(@{*o2&6xgSb8rZY8L}Ioy9vJU#o`sSu;;nie zoH}-ysAL4;z^> z_wMQbo$7w88A(%sK7?RmoQ`z{3pzLZ`Or;f#z%GuyI7+NMRDqUIn6cfkzp%+TgIaB zn&2cwwl7>sP{}%T(=Auz_))@xoyv@hB!=l|9~s|9G_F+}A1y$Fu9bYDWm{mkyE!3e zIar6oo=Smt`ms{_mmF=`@!%s#p~m{O$_3e42_{^~fSH*I*ipnD_j%D$5$Zi$?j>1Q zQfJ`uEU}vzuSl+pO3-t81PfV53gUIk>}m>MkVIJB(gasz7cEUIRYP-d?Hg75jKg3% zQo7;paD1lWuUCgmKOMjDJPj9D8MLhn_k-|pxjW{|r3e@sm+7)geE9pY3B1JoC2{c& zLzX2}xA$`ic}o(cF^0KplfB&EOI)>U07zqIED`-QCh6)7qfO_j&L;&Uq!sEl*_}oq zjvu?otTg~i&YVKGk(l2WvzYSDqxj*Dn)nbUHEWSIa!$cOBT~Od#volF(@kn+%1|-G z$z9bQSn`s`v*Sbtw6JPjz9T$6!l!z>!CJE<9TCi8t5Vug4RVXG}@x|g0X%CAF6X=bS$7Uv3 zP8aRd?uH#v1G#o3!SER^Q461|G=!6fbl!tLF8C1m#Y)>MPK%V@1+6QyG!as^u@Qu1 z-7qjv+gjOBZH2|Dc7)GXI-&B{MjUeS?hAx3X;p5EJ1`Tb;*0u9FClA`#DvAmCgklY zolxJ51-h1qGez;R1FQdt^iGifB98&~uC?E9@h>Bc(m9Yy+jHfo0VViBul-8&fYYJU z8wYF02hxX?=GZdzx~|*VHO4;Ac}KRDgS=dF{K3MLccP%k_{oUznO*!h$pL8(<38bz z$tz+q865FIo20w$kcE;$C^9)qO}F3pL6VZfn<;F%($4a7jM7Vyjc*G<$Z}$i$KSKL zx|$Vd-pp&H~_HsV(^0L`pVFq2at@OtL&FDKP;mkFC zL;B?xca`mTH(ZnWu^!#HZDpq{DP5wz8G#po%MgG&>tt`$v8R1;F@&olTymWjBA>2w znl@3k4bOXUm7uxTpT%LE=1;pd_Vj2g`{7pH!priyWBEC4f2HB<*Ri-2*0D{@eKFra z9X5KPmH7dznQhdMPh^;K<;7Qh`(>qe0$Gy)T zj!v(tH$YR7Xj`ki53jPHt%!1`bV_$->^@;9&=V|;?V+gRnOYun2AvatFv$+ey)FZ_ z9bp-+D3|$7oLn@v1AVn4g*hSg9a}>&LIct(K|8SIf642N3nxM|1`qW1yc0lH|nx*tg5f8PyvE66=q_zGmhV zLcb}{SgyCZE}i`5W2s1bf`M=2<7l2t9=bPA6Bu2nj|e=9ZA@4(_lReN$&>DMJtp2g zJ%Vf!O2nG~db3RxmlS_|&u{$Zk1#5iH{b08c-NwQUlX0hY+aaCh(&2(+e3*meZ^HR`VSG3(?{oT(I_q`HzZ#QR8y)RahV( z1H6A1FMOAp1KB&7Gg_H3e#ZqimPU*s-vI)nke#88r?aIqbsdbIa}J> zv2y$?u&7bDbVpUi@+*~PZL`e3QFx9N(p+o|F3E3%ZWap)kiwn!k6b!#&0xu(W=&F3 zP|*;E0G1r9j!8S&5i2&ONp|vmM>H$T>?9ZEku>(1sZO~V zEys!x@hbE~G!ZVir(Aq8Q5I=>&=d0XNGR0dd3gQ^X-=Sv7!%k&43~)q~LmL};hVdd391Pa1 zv~`|ZkQw?lZ_}cF#tpr4pIRJT>LG0xz@6KzZRV@E z8XhvtTk(ezS$i2lz~hVo_F-g=U7m`}hO3s-9(T z)a5Q`3FCYO1gD@(w(Js|8fUU)vzftstNUijOikrSo!G6+5$CHwd)c@m9x)@f-~^Xnsw|p~ghap!WvVzhWvY1FZXM{@WTr1* zmP04q(LW(bIF3a&wdzcZh6_Qn#lf|IJ)_B|d+VS} z3YUV*!S8Vo+SHRyG_UYZHwu*#t6IfsMV{@VOoZk1iUwK69<4&fT%t4t-Se2x?qTI= z#Xh&YZb|=qj{`UU#4CDusxN_Kiqh4v^#Jh>i) zVC3@3qN?A7Q2Ww|c(633o}9cx99`1VrQxIoKFJTg++c<3X%fwd9jS^E6{eUnzKjO5 z5;~v4YmfmAA-`ghYt2j^km|(}og0e62mtWkLu@#ssiOV;3~pdit6KKbu*I%YwBn;v z8WolrAG!p&cKjhXSP1;AfsKo4&@|O~1Zrc1U4>Y$X<9unbeVkNg0ZJ(?9ZOYOx|y% zVDl$~(nCWuL-hG`Jrl&n2|EkRfR!4ucJE5#8T3gQovo0S2z7>7w2K-mf65%#+E5`5 zPU@!;XU1?$B*TE3PN?iHz$YepO-KpRs=Unq)^GR_Sti>ZKFUwr2rRjqJ42DrQJbib zI6?9&x{TaJEf3J#@r0AQ)9HV~i9EM0Dh)6!(pc~TrM3UILT={{U7q+AUqNH4irPvx zBxy=()zZ+e)r4w6g-TcBHG-zT(Z$LIv3*Oou-dDwo>L2&7iVTTK}mfaF(8NqlX5;Z zN#X!4W(unHh|TQ~j{J;nBCn`8yNvi9=7Sm-(h)h#F`}6yajd9%^+2BG4+2vG+IP6{~Z-7(bhJbG~D z&p{(ap$T}>>&R;&W8YuH>Wc7Z#8Fx=v;z~{@wiUE{>gGJ&U5y&LI44=!2dh1#r_|> z)<4~sm#K-QowJLRtFgy0U=%76Lr_A6S zIUn%>CW;^Jfjf#HNiP4o@pgFq#CuhtUW)Oxdp~UV zeH?7}$O~PMv}i|WeloByCvxs`Xj^Z@}soZ`e@3Kp0axR(JA3O7=%d=)%d<63T%6*3tW%3=)aK*e}hv{*J+zT zeEbWnVo{&}(lT!akH^)tpx%fD275uTB9jDqP*m30k3%d|_pRe9 zhYc1}D@*q`pW^eJWv)x^2t!#BAguS`*eb&?bEzWTM}yO?B~PVDn~D-(?>cd_Mmy(r(P!fKI~kF1Xg?1<<-rbr2{f$gNZnFG&Lg5n6$Wf`PI z%G(YAD0!e*L~nqU9}N{HSO>hU%~>_H1~|ys`%3j~d&yO%>>7b4lqT>9%;TU~mO0xO zhkgPnTZR#A_g(I;i~a%^ekrK<_fGMI?5bkUosG3Csy-?C*Cmsy@OHk#+xt^H@@bU{ za#v+QLCa2-cNe7Ei>ocd!knNxBfWlIgqt>{)Q))^WNU@W&Z5^1jBKA&(ITaR^#)sp zhetA$?x}J_ExSi>m?vE+?(&b}^SH32rOo=n5Q`tG5tUusIsUjhuu%ZGGMok`yc3uj zdT4FmK}eU&aVYh1AKTzD6_#&ty0~-B30odd)o&3HD7DuVM{=pd!J0~BR>?hl&hu@u zaVSpgX|rIqNMMnQeI7^ibm1mFJG&)P>ttj*?OWF6?>@L0mQ{(s7B9Lb1G7ggoMDh4 zd8)d`lZkq_OUIaQ>Z#MjJoI5n@D;DH`Z<|ZJp7GZ%~oElN!C&Z+Rkg)MnqB?}jc{1#`7(@QcKuQx zCnOFSQvx=LDFMZgD2ZmSmkU&Fv&oy3kO1mq&vo$=j=>m1MWR(!{8A}vf(Zn3X4jQj z0eYzv{Zet~V6jecOgP&lFrm&+`3v+QJvho2n!$OW%5uSVeoHJ0G`9uKl3x-b%w0`# z2!miol=}5T>}{s`^N-NLTRV%Q4zhLC3{@W$$A!QAR8Ea~pTc|GG0i-B}8 ziwo7TMr^PHlQG>2a?FjuR#r}SePIdEq}D?`LE847zQ-nV^2?)Of3DsFE7N1Z)|UBX3H^PGi=anAUur4XeW~$oz$NExQg%g!I7-yzN5U z)y4@%1GC^3fzc#LmHA+L_xuR?T0V(OO@cn|Nj81#fB5b%oO#&^i}c^Q+E)7x`Se>K zd)gt}Ku-kj-N7^05@!i?-wylM(O-3mvBm3*tgyN11uoSz;lC z%pk7D7O-sE2~CfnxaLZ`n9}e^6A9)T-$Q-VF}fjTpXk3Hq2`Y^LEQF-qujN`yA#e) zWXLz=wHW}|GiLiF)5BiV14O5Wpcscn*>S`!2Bd1nsP7KYk{l>KaQZ|uCujuwC=fo# zhx$qAWSNIDv@+nrkv|v5ML0gA56lwXjCgvjC21YdLXW&~`9sWzb6V~VF2ltzlp9); zYM7l{tNKN#PsC!Kn5pNa3><3(+*kf$95&O)|7F_zHNK#(`*0{A_!_*b#CR?6G1 z>=$?A)E!uvR|#p6X6HCJ)_|>Vq&n9Rbv&CJ%q6)8B&=NCA`GO64R%u+n(KbJh~O=SUrNkaS>zw?9HtXVd1 zGqqtG*(k^98}w%F7d&_5jsBBG^dUz2!$F!SI<>s|$pc_ear6}xn(CpAYC(9J^Q&it zTR*9<YBOfRnM+uEF>mM;$hHPHMzony?uFk~2_nnVdJE%tO!_P*PK(h3;7p=Nu zU$|=HxVhHZHP=9o-!oT>r&{f)=WvLTeKYyIL;1W@`MhKIZ#*Alksqsj!YYkIr$s%lHc9>- zmUXog)pO{ASYX6h8JJoTNqTOk;U>6_v})ryqoKxOp&Qeq?Rte=ZFDT|)kNw6iG8=G zJ%jR?cZIJdBBphuOO{P^&Sm_=bPXq`V{g)Y6eYn>v3US&w&{a0z*)H!h3h9Hx=hc@ z!#1EBZi!0HRHX!czZ%6+Er!1ug0oQz&t%DgGb>HzP1NfG3@95 z6kBJOpY5)3dPtwvlPkyxLR`dOb_v7EvC(Chk{H8D#n&(zScHP92)7&LYBPxsYeO2| zynR#X(gss(SCus3R&ix-ItQtSajTYXnrnxV5y*Qv@vfZ?1F|l7XM+@1c?acafgbVx!5H9~sD4Ci7EKP0x-#A>>(80mf z>A%o;nx_xy82Z>A(L`bh9AGqf$p3nHc+@}0xPCyVm6=Gpwcj`kD(t&93m03{i9ADa zi%oWmt-#i+n6hV!%{5C8S`rGL{83=>qxbgv!*TPud%2#{I(wG%<8h^%^S8IXo7tYk z@AacNJ}J?x5yiMW&ta6f^#hEqZKF2rYsaW~?Z>VWf9>F%!+P!QeT)PrEr~pE0ew02 zWROKch;(o{U{2t&0M`B`|1!`yAUlX$=xq=_*miUejyt^lj(*$z-~L+xy#7u7zXLFV z7{Pvl>49})c|hMO?KA9~_D=<<1J!})fp_C@L3TrU(BJXwKlS7KbAs4|?80?}x8r)y zIw0P07$A7?-XZMk?dSA&`MZPO0`J0ZLvABxLlOWHfDwQ&03m{62D|{r0j2rBfTjhA z2hjFI`Xho6f(XF*fW1=PG4CJspLHLXGI~{H=U$RC`hvU`r};3^o-^+&_m>6C0qNf@ zw4GZEyw{dLF1+~Pg8l&VgZhMeWxhk*FYBN4&jalP@`L__d1b%D-EZr^_1^>i3G@f* z6Z)0)4s*Y*f6u=U^e@mK=ug;J&O5?=$NfH-Kp32&{}XDe}Do1JeUm-2S}E`**=c} z>pX}KVl#-ge~lpSJc12qE2!?HYTml|-dzOfqiG%#NRJ?)gM`cbaK6Sds)z-Cz%AfC zl1Nu~EbX!nwEY zXMu@Tqo-A&r_K-jxEOYK%CV=@I~f&USGL(DN{cMndc`DKK8_M`R{WTfA}~)k(W3@Y zx+ZCbjaZwZh`URC=t?t(pL6jzHM`&ucMGod9ZHLe4NepUR|IeoD+=11?bYTD zpipAOU`W-~$-o3$oq<~6W11*i-`Syoo;OuN-Zkq7lcsmrT;cPRl35)v^SgZ}`|x)b z`|t@mnUI_f_=%R9o{sMomKIe0Tdf?8qu2nQWB7RL`vUV_B-}Q3+wa|DPBMEm4lst_ zq3O0)&Zit?YYa9LyGeWT-DBOvOI78p4F>IRs0}BAXgIDXDw4XkP^;Dp7G36<83a;eSYgF4GusIWevzP=-*tR z#8Jdh{forIY9-q!9;%oM_#SzF~sq@p;z2y6+t&8SKMY4XUJ*dUNN~ClPC{0 z4!q(ij>R&)(&cnEE_H6(1slfI)_Q2JbT5}m1d1-50ls#sc}<#sZ8vUpc+dKljv4=K z^U3egHCxSUFY9ntaof>l6#-uGR=iKkTN~*(EyI{Etk%Rbr{yxg|(nQ}nHiD7jQhE5|8t!n(d})G<&AH7Gwu3M?=pL;@qLyGM>laTYM7ki}Le zL?w#}qbjLX^1D`8uYX^4)2P2w2sr0GCaSRW8>;+<*q3NUl_x0dD&(ChMgi-B2o35j zcv3A~S64+mLuI=K_KRuJ?jxS5OvX-fRb@0$T$2n*w1*0|=EI5?y)x*?W1dgznxofCNM{p^Xrhf{s8iWS6fvJDWQ>fEQ zlFTWM6o!#$cnYyvs0OytiI9kAf1(YiG>_)uRH9w#wb6t>@doAFf{l7p3TU&FzZ$~) zB(N5@U>LGN6S+C4^lFm{tTadcu~w=LE7^=&)yC)~hgxexV@!%|^|m3EcCJa|;R@gE zZEb>&lbiq_n6^kWq#TrGHIsYlhU zhszpDADWHH|yaHjK#Hi*)l8jE9zJ#-g_ zlI!u;X&p8ti0iY!o7{rDkQQe^H+TkR$opQ>vw&2#1`}Fojz$wy=~mptt7`%UHDlO~;*sdk$PHprJ0BoknLmE%J~_0PC=9wfq+Kd-$0)(P z#)$PEd?`IZ)7N(GSk1ps4lF|!sx6~ie&bF^9;3l|2GVE&w+eOguL|<$fO5J&jTN!{X6Iqd%h~Km{c&HP*!iJ6_<04Q66-qr}>A^M71U zVt+i(9(1!yi==Nm?+gzYB(qIG4xSG%4rbfqOa*tJs=S6s2kQplwnFjtw2rQL@mPB@ z1b>b&zQwA8%=whNeiYN{ZJ3q9>Nosi9HY4013;zyr6l~@Ql%#=vsQ}(0*cf*&f*v) z17wJ}+W*6x1I=5Y``^Y=`!=b9G$pcYtoOk&)AmV=v2CcxX^N5*${(RCMgVg`T zHLomUwYut%mH>&tkT9Fu^`3p3<$lR_wzuo;^nBv+-|^T8^5$Q^8pwwfu}inpuq)o? zIs%G?N#^(eE`%nqjAdXl(48-ULHoxutE6mWwwdlmf3tvqgD6V21wUB9f>h3M0!N5J5rXqca5iATK{hDb@xV zV}@qNOU^&=gFfP-CuT@aI!`bNUnt(^kCKCC%-0=^^6)PZi?xET&C*ih%sMW>N<)>> zk}gJR%$16E5Rr>LwH(i+4%6Pkiae2=iJX8-X^FIS8bVnlm{9>7@=fkn+lMn%SJ|KA zs?Smvv=_#OK+uaUjcsBN4$I*f7u+u>B$pj+N|f_rpA^XHM#yJmVqeB4O^`;SSG9=q z`y>m((}K5b?Z$0Aq6Jk6EY8m;h}8)#5 z{<)4*P$j>To8mReT~Mo_9urwj%po6!v*t3xBluB5%1Wi%XtX#1Uv+aJxX6<%bFpBf zh&9=`nk6b!Q4!)CTGJDnz;-;5j&as#tJdm2$Ro!+u+XgwCdx6?fHE=iI45ORk7nn4IQ(WbS}`0HeUQ5|dCYF< zW=U!W)*@uABek;!51NP#*Q^(m!_!VX&>4~lusEy87MTP~6Jco?I;I&Ye7Mo_!o=V3 z9gF57ZMZRwiKz4teckd{tAEFkrLd6`1yJw^u+OaYvU$~(VO@x-3)ZkQ)z&QG@T-8( z))!rA`9iU~&8&u}i))s3HnkXNOBDn8)ts0c$dleQ#5*(WI1crIxsZ|4Kybi^b%F0b zhQWhQ3EGFjK_6K`>RCFc+QUBp#`D}!^tXkde3gN-*ww%D{9wt~6xjHp`n#Qf){ma* z`oEwvFKCZE>Z_9hhnnL^8vQpW~G!Q&FTZ&|>HHmOQiOuhykzoyCD2(vI= zYsi}sG0h{I5C|I(2$>KVs=9{lp6wlGGQ_<>?+rb3ggN|;SI8wvU@|$Ml#C0hSvQC} z>|6-K!-L@zgw%uG6NOWke~6Dm7pz2=er>(gY(iTfeE}n5GVo<0GtPm!e%lEYXDf=7 zg`6`~nmxgy1n~hu@JuhY;qF-qs<{Nctxm-7_p!0Pmk|q77oHWojzawy?qYxJE@v!t zACE&{Xk&}YNp|V=7w3U(vC}sDO*Vobn10?Ja`72R1;UH+>(Ey#M#Zg;!L(qm-g0Mn z&G!sQZihuq+*`%!A`d_RtgmpGXH=Svx%FYcg2g|Pw$~7s>-JDhdkt}40YTUDE)9M2 zbALu9pAl#4v#?Ctkes;;xU%c<#JJ8Jwyf<7QXwE3Pj=4I01+R09}Dk(=f40YVLi6i z^4=ndSIw+B7cynbLg^K($?|TcKZXAW_}TqHJLw@mYKnb3^(r_T#v+h--w-Wt;zMIR9D=tD zqxi95wJB-V2 z1ldu6pyez2Q*f#k?#8ID)A##vMmqG%mLO7D0Ca>XKS7$I9fSvxuoUjlywJ#y)EqD} z0}c6#_bnf(Js^O==L*CIz+I?32x`9d_#D9*56c7797G4Mpr}1W42mq&@4)4#Us1-; zbOxBAQ*vjWJJGKZ%SCeAk?-Mx`H63QRBnH>jfiBHk=wyls$G%~T+qKruV2&Klh)Z2 zT{n69$||m~WvNO(X>S_z1TVtHE)RxAhtwVr&k#z{EB|yy$xW=^(e~rnfzy3>GcGkH z3rr=5Q#7hs>q{puFbiw5738maFSMdNg6vIlR);g7K+O5v9UntUA z1pfJMB-r$RRIqHbS?4X(IN{*8Zhd`?8ZkB4wv7vzUuqftf+m$TV|xu(?T;vBo&+V0ED&2OEZA5`&P@S-A~%%Ye2`SkbUW87 zv>GOhs%mQMsd|z~>yzB~A}iH`4q7?-6-^nPPthG;Z#mJf9+jB3&o$G!(HT9_E}YXe zTdJ~@*+|6IcfB4l;Au)x!1PA#hkogHyJ9uioJ}Ybq8o_USOj3-94uvky=qWsvUA|u zEFL|`kZ=?YHun=J!7)TOe6LoJ$g+jXGA;ds8#cmZ1Pi0ZXI7ET*&yMRk`y%T`N3(s zfIwf3{ip!D;dhp_S_42`ZWPWtD%JE2urYiuFYAns5UCjO6zjhkNdlj`8;*&e1sKVi zTDn4?OcCJ1T`!6V4d(J*n#B6^;*ztYWZsS<8EtJ_#Y@~VxJTD}HgbYPy1IoD>|Ey2 zV?$r1W=ryY3-%|FsqD=1P1ZBppPCf&)#tBsnC5X_Hxz&ssT)nV_Jiz{I6sDXMZxi^ z7i4TJrWjeJZWM^QETKr!qUG^>No0|pXnb`}47n2^j_zBwYhw<8EPdDOHvYk?~8OyR+BSWVteog~cyvn%}S`@AiZJ$^j^T!1Ek$vq#tl6h}Q8I?JzMiPcWCbb&XS z^|*oX0u&95dBqi|(2mK_eWF0_6S4|qakAh~#car{k5){6h`0-G|EPzCUk??z%SS%3 zFiOwD{#CRdq~`Rd7zbp?8_Qaqb8h6}?b*c@A}upy$`^^u7h87^)@x4U=O21S7a;j) z48vphK=K=RYTteM4)T`u=TQF-I+TQdCVR>LyryrWxlS>#kN$BoUjUM$sh-ZtJwGr# zVl4c|^l)yeGN{+W16*Vn(EiSCn)8~`$Ve)&DSJI^{x~T4iEPD4N|A&Z^448;;z)S7 zdM3)b7c}uY{O6x(jRh1xtIKbfB7^YnT*`l{EmAYIu{1IKM@f;Ghq0-{|5IC(k}x9$ z%8V8w&-1n5X4CRV)feak6yCK8O-d1|61SyxNiMrInl(|fq&Epy2wCS9NFdpRwS4(< zbY^B^f`1QwyX_@S9f;oMtUh7rlmx5MvpC){VXQDpwH;2b#cevimSF82?rLRMV;hDb zeE!TFP&L2T=JzZZGTB^FhwGUbpjf=DT)>y3gIFwp8RWnHa9ht_Q~>oZOuO~Cv2iK3 zd3HqmYr--gVq3|R5^X@Y+GrOu;2~I1(Sr+r5|UiM)6Wfs@Eyww(?4KXY+R*MDSmu+Z;r&!kNOJ5+2=Ru&q3oOItUQ>7tH zS|Ev1v_vQIr7;Th^EI-)zH_U%a}qz|r3@pi1RSr%^8-*SVvchMFj51Gt>MLts`CRw z^s93yxqequl)S-3&D3Ad(OKhn$YYcxZA3hYbG_`9+Zg>K$KqVj$HHyXJwf~jKA^2N zowfQ786&@Cg#Y)j@juZt|DPxvVDDsW=)%fw{6B}|H7eHfs6uG`OKZ;!HlDOJB#|(% zjWqd2$RWZBV8n_dfqsr#v8Iw6>|NS{e;|Ga?0uRg4_k;HlD_W{ns&R>hdfA-HB97o zl)0Zycd&ZDtlifA0MZ#K4#b7AqZy~dQg)yXV9LanW6G8h&Zm}C6o*l4W@=_>W^QK1 zGv=x-#4S^WD-<6wb*XHRRHg~V3dIIs)iOsHNsrj(xz|7g4QEsqK#Qh*=(2vwP~N(#@s)s=j%%E7{kM%{g#wV4iCIbPRx!M?W9u{#AK_ z7=vc@ojLLyLq}@P;<4UZoJp0POUnJ0(Q7>MF=c1m2{Y@J0hw`@8=zy%tR3loH~&SX zjoPZ|_e(R^QT}~Ojya#Pc+0swD7wF2@etfLQ$=bp%AhDmwa2vuxwfaH13U##U>N5FzKuWeABut`!0;A z&BOc5tOYB6%i0idz1#bH_0uz8u@DD=_HiV1v_bCSi$Ia{xDjR~lcyj5I3-3lIinJ3 zHPM}EPF2%sFjO>XYAebs%PY#OG@=i^&^QY{C?j8rUWr2W_+}r#rjqF78~A3N!cUl{ zSn0$ya!t7>ouW^;rm&`*=_obi8u{iPK&GfuF*Ws!Jh@}(vEqzr5gM~&mG{2O4EDW1 z>JD^3Fcsv8=9CONhMh7_V5U@4B~wwR=%(z;;Jz zp}V6>!0bpcgiP2+Yk=g~v{8!} z)qFyg>ZIC*0@FQoRj=R+f1akL1}hk14bu{}UXqu`B%SujW&#pPSP$T_-8Kub03*cR ztHNqAf0I#eZqur9AZRHP9=EX?t(jYiy~K9O-6dd&! z#aWqrlq{x|~O>N~21>eUiINFM~xc75piCWJ{EE8)8PBbo+VOCPUhLHnZ*es@WGZ(_4oVU9Zf% zb$)y10Az1Ra!ZGS9!qVe%3&+n(pixQw=H!ZGg|86S%6B-F+liK2sNz!=Sp;P$?2+P zgT-nLt4eQpbEWvpQb2PG!e))Q_gg&>m0Azi*@!2j-ks5IR4Hbir{h2rIHR1`eI=%O zkH*6xI-}mR(M*&pqZZ1M4;4y5wjRm_A850!Ph_Gx(vUb;6cR(CwDNIYdyuWZ@!z@i z2l5W2QVG(BHjtRU2x$9HV4K8Uk4DZ9dV&w^9zH+ip;zpQ$s4BKAmX28Ls^f7KB6HP znBivbFF%9C`#Q&NkbS76Jw-;lVbISc!A+)=!&zQV^?Swb1vF8+bs90mB zp>NHvUM(gb0*0xz;<$9TK1tu| zgM2%>4-MQI_D&7V83-NgY186(&ZkaPA-_7h0lGtI<&4q+JgjI&2oO~BqzR?-zrO$4 z4-CSE!-9lhauD1U&YkLW0#6MPL+l{Esmbu870w;=&+H6wmux1&{)#Jr?Jr#;%%2Mv z!NxGKbxId?{o93csrikKHw1vVTxw6>;^~knXiFk6Qwt=!x9MJ4u_@}C*~@F8rIG~{ zbGh^gY4ILXs&DZg#P$WxrkO_3W5>4npau`=5DIRt;Sj2=foJPk*9e?ly>9|eNz0{) zN!c~9qPbfw14K#6g*`9<=E#Dplan6Diqwydlnp%ay);L$?jIKGW(T;AMSO5w0Lf`N zECwba92Vm`EYjMldC_y-2*}a+C!u5~?-zr8cdZrcWG6=@IXNm_spka8v7+^Bh9QO* zKx7v{4qx0kLabqqRm~cRxI)~9EnOU4ua93|d-Pwrym4)5E9Bg~3@!L%^Wz3KO^SDH zjcsf>W%sxrlKEyQ0L@C!R-t-qEO`0gef8~CYkLGc5*)Uj5GMO@@g=CATNTj?t0yz0 zFvP@+%Aw*KM>I7zk!kQ~@Mv~wu%+6il1a;Z2B*FnO0)qPOWkDyM#?Z zziQ4YF7k_ZN^2EGd*`oIlIEf8r+BS^w6}C4*{Vw?l^@1Qt|rf_Unun-t>iA#3!4e8 zPOV0a8uT)OK9^=9X(!O8S3-u*$od28j*x}A&s$x_DbDG%d7&EH_CQ0O5nwb&xFjxF zQU)U&XC?klcpGZxg0G8h3-8`naJ%d9;jaO9reMS{w7z`0fwC^~xX886M&M*@; zT)9<`FM2KR*-O7(u83seU$KFya01`(ci(~RzwMU${|6_X{x>+OJo67Y`B%2D)h5k$ zDvc;mzq}qQYH(yZJ>4pa0vwfz%Hp$*FIs_OXxVsbF-QC^YU4lCkEVx^6 z3-0c20fIY(K?1>o1Pl7k^X#6p`|h57&h=j3_s87R-P7II)ZN|H)zwwMGXI-E*`)E| zh5lQ&I~#Nyi6Ftqa43o3eIMSoqk#IO&|a1kU!E z3#@emKP9j}W5CJ-k4=B9$W4BJE2AG33sM6TW)8N4PVm@SYldN@frG_88+bM!m1nRd zI!L~h0g)G|O%_jUY`oIWm$w>o@2WP9zjN^<8dmcg$Km#fMoUX|_GV~AMRnC4e(?vg zVNbGZUyQU;;!1s|tC8)a3>@e$&r!P;WWMsGedE)g$lO6`R)^-ei( z3%$0{AUnLtXX`HKA*LVY)QXws+1|Ey-~6}^_#Wsk#5K;k8Yk5E{gfA&wa|0q5G0}L zGoaI6;u%+qWYZfmN~pqgCGwzj3*QlD}2`CmT7ED%>eQdJAbNcI5u@aG0G^frt z^O(KBO`v~?{Eg4{3-e)$1&p90p9?NUu3 zLw&;Vs4<~Hq2NK=+sQY@yG+%L)`&e(iD>>*9w&&UW87HZ+h$G3Nj73gLXVqaSV&t1@ z1CQn@3ihM-w=MyH8pPnf*E=D!ne(1=0q?`9pHn#<_<7HdFOk?%YbF7XAC)3}Cf}ap z?HWmR+kCu3xdf35d(e0Cqn5)}8b)j6qBcXjgC;@Si0dT%WTtQGd059v@s6?k)B3gg zm-@MwM>MNIaH_CGs8k@VM1Vc$vLCJhHS-M-v?5GATs%xX;22~P0x)G~g|~(K6k-9Y z5QW&PDZ<9X>Vv#Y0j`3x&{J^yAiaLX{-}OOQ&d+BS9Vt@rL$>tqNJ{CopAlMXN_`$Nd5G6ZYrd4FpL5B+w-AB(Nk1 zc~Hx+DljV0DzJnhHX$~k!;nJ|ZU`) zI1mgAmH<0LmX476fC;T8~!G!iu$uwn~ZzAcDezL4X+o zg@#a=!nv}tV&K6O!NdYk;Zb3uL2ROksz}2j>;**SP`mxQrbMcUn$SNC3HUQ2zLplc z+x`ESR6uH$x8&peY%gas3(A>-#6ObR$OVyhKgbQ5V4u!*_}y@|L9zll-}qYdjIxmi^M{}W_{u!-yeeFuF9 ziw1=Tg9eQTn*fynlK`Cns{(Zbq6L+Ol!0ti_xNJ-5R9RW;f!I70mjhA@W!y*FmmQ1TGLRXfJRtcrMVy=t7WeL!dnRp?RTUS)p;k0KpL4 z3+Ny+C^*pDw*U%JtX1eAu%~bKp#wodqQR!LrZ%RyraGoPrrxG#rYdBlcu=SCKsclj zv3}D(7ViJU%%IP;L?0>#(jhQ_7zzkvp}6{YL@{Kc?Fw-4&=jGLL!$c8`>DXPU^=jE z0SPa_7K#Q|BSadkYsxSSY=&A0*$dG&<(~yK!*Yb|T?+BDenRwsX$rv%!33>kvLh6y zu=3;c!ry9wIl&%aAXw3q`F~yJP)te%rHIX(pmdtqc{u$~q6(O{b};{63LQdPp#Gox zF^5&|Z^A3AL%ik!_0r6)z&(5tHNpJh028QG@ZW{Q8|&hA_p%0XhCoK`G_~IqmFBu@vbuY^}Gp_<8xwpG#wsR22mZu5HdiivZO^S%YQSNb^hevF4|Wmhw*We9Sx z4b)^|PAI)ZOnzXClC-LBCqSS$8}^tY$k4=Ea7-Yg9gU4kE4lOpt7Au5u7BbtHzpWL z(msrD?i@?fzJpxI|CG_6meJq(CF@}SJt=uLL38~y$=s2cel(!OwSzKzf~ca6H;XY( z*95H90FchEfLd?51OX4n3*vZt<5K z{A_vJy;a{;=bD6e4zq*D$JOz5ui*ZAL#3k{3YzU+KRI^^1j%pSKj-g#db`*5nO!88 zzvmJjGP_V^#n1?RG2%>bVY?GiO({+DYEwaVovFLQ5%k`Yi4`ZE`m)tzrJ*cs0z=*Qi21KQGA> z$IqqSD+Xn)yqVW1R`NyBBV^g-WSTl_`<+eGil&}}z_P)U;#4WUOgk&lW#hx@PUUW@pCnEHr9i2^7(Zc2lbDs4bSYOcyFl^$ zC$-#MwK#k~!G+x2txgTds~}y(K1|0RkLz-oZjKOj&gr7IG~b$c^M`~*$l)qB@bYo$ zwj?s5x^)aFYUCvz^FC|qY4=|{MP;YiDEi=7Jt2&LnMb)5aCe^7(FWVm(6W?nSrx&z zV{~|f`g^R-pC(_g=o1A52Dy!b`Amh%;=qLYIzbXrBrvrvoZtGx-htvDv zcHKZbL3$O%lI*$!t)&v$TluE3Mat=Kb_0&`p5_ycyBN_A*Rk*09O_Wka`&xxELGgP z`SYqedz98x^h_dxdOW(r&{+5UNxZnHgO(jiTeupiz7|aD=bw^T&v+W2&#v3t{a%~R zM;RMSIa=S9H{9ETsnVU{HK^UbHFww+5=n`>@j1XJJ->}b+h8&|dIF>Ek8ZW;-*s^v z5TeQb{LoT|CC)u|*Tposb>2D^)aOF`)0o@4ZzG*bj60x@vT^&|Yx~*%&-#x-8T&u) z49)wt{lhzMq`GTrDvC>5%nqh#{K)Vwx&5wr<|wyW@*7+I*KFXIryYHNe?-!3ZRXON z`6Qf$vyPHtVAtT<|LUOCI~LqTb^cm+;%1`t;pebqqi}?OR~~n^w`zHr}1r!goCnE@=-TJf9A`Ls<-$&g*!2~6&DCi<(Oo| zHl8eR>S`l4w%E5<+56t$Tc#Mqk~iX5bhtUQMNl=hkH^1{VVg9FVapyf2Xc2MHbyMV zP-cZE3r^5-d7cW??1TaMXOHpf3XE9SirHDy$4t#r*D5Ak+mWvIwS1Fw(WoD+&Xzw> zR$_9k`cgQZ)R9@{C*E?oP&6CqzjS8lCrk z+D&$A1}i9iEK|5BlU911n%c&riBq3GBi3!8w$KWgU)@(Gpg1Y{KH8BILFGQ*SiC9M z)a^O%NJ5Lk?LQA$m})lc>9tDQlYyp*UE)G|BEsk_rS1;yHx@rihTUBB+}Uw!vJ{u% z8&FvVrbs|}Ul^~|w{ZO`&X}&%Tf>bjSHxMY41SdQL9(}y?1nhYl7Attl2fqSA9EkE zs;;UC7s(2cZ1pmwpweb5MSx(1k`1$vyoBtjN*{ zBr9^Eu|;xU@eS?C*8UOg?rdaBVgIZD`Jr#+*e}7BtwY~0w}L7+0eO)c8~%QGsJ}CR z&`h>qa(8%r7`LbGV9USQ+_K-QUSp!^_KawfaL69Ax2m|+Bi8uzMgOASyX0MR6rxA9 z`pMW>@@1os99v%5O@k#nC~*0pmL=FJ0eMPi;~B|)>53Ys{LD8F-&6bbcFEHP%;(ZF z(CN&ySv`5<8f=t6Q>zrc03SlTJPV0iRv}Tfq0#i2GoyvGg?p5rf89xOyRqlKE*?aMjs;X?i{{Og&xyw>fjNL`1fRoko6NGU_$>z-ds z9w{wn^H=*%_?s$o*h*?x=u<?%E1ANyi)T|L^Duu|c6f;S;7wmfi4->BSrGC=^jb8%=4jB=diew6arxGvjq`jrpz zZrFx8w|-^pj(q-gVSGC?@VF|1cy7~&BHaIidr$Vby(4iN9FErXiXuGN3n%;~2>670 z8ng3Q&l0+w^sIX?c)JIFY)lxsvoJy2&JW~!Qa*hL_O>=b>O+3Sd#XJp4c(4=-n-~( z62S{XyQSQ@vkWE)5Ptl%gHTTj-G}>#wu8|4`ldJJ`4IwY77Qhl`J8kiu}X^4$MaYW zzB4mH>vQ>9C3PX;`-pY_yvj3pKGTaBg!fnnMgu?JM6&FkMGlgVzr4NQIh7eA9S*_@ zKz|$p%hZeDyqMl{fMpt8LP`Pnx%F zLp)7=u)X2WLKh3Gb)h2h&w&>;r{|IRUtgH-xo^FP+L~UGg8M4x&@0(BDL-l%c

(57<^t1QUE_f1 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 literal 0 HcmV?d00001 diff --git a/APIMonitor/smali/smali.jar b/APIMonitor/smali/smali.jar new file mode 100644 index 0000000000000000000000000000000000000000..da7d0c996a418eca8263fe5d41ed1d450dbdea95 GIT binary patch literal 653002 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%0A_#3_Wkx@`fR>ag z@*WL#=TM3hVswaW{yQ7EBQ*LNVU}c)6k#_EYnda_0S-N_Ev8+D;l?}krSrinoTU$cTyB~CzHX0YZ^2-f15@7tc%+^Mn>VI5>jH{y=DcX8j#wT{{ z8J*T~Jig|p-FBKe=~H1?JI7n;Pa2S4%4&Xvv2%Zn)LAUZyKoxh|5&V3)2gl9gF%9x z8B#iQ))TdftNpn)C*#3hMNF4*q63WIM<}9n+^9~~+%Y0Jhd8Pcv-AMFTOv#T;LlV; z_LSOP3=@i5C;v0{_w_pV zaREeC`i<0K>|mdl@KB7MJxomoA4*c||$unRAr<1F*6VD2<-R`x*J>vakJDjQg zcW}c2)0fmuJ#B*S;y=VNyXyFKlSyu+=r-4+5*|qn@fVGF=C)iZP_p>9mGI>wfXh7M zg&v0P>uJsHs?#W$yJ|$Xw2fYPvXPucZzZ+s$j+3q)vLo~@(asa^*maw`}>~|Pf8ly znYh;dcr9A_#d>jM!NS8fUu`96DYdfP&zLbAhhH8$>5KwEEG0A$5JnuW$0o};;Vi0! zoEGV2o#uS=>8o=Jv`Ip}vP5d)HMIHz#mzhx+Pa!agI%!rw_k0_dtYlfW5rBsyBk#4 zV^{S`TyMcXpUkMch`stN2$k~mHKo8OyqpU^7#&({i%Ja<-+ej!r2oNNw2ya%RQX^U z^D{{u%sY;itcAAZw#MzSE}Ddi{o`?%iU<*m!4?g}7TgD;cU42S3Kx(V5vx$6pwM_o zO_qf#LkTO#Ir47+6DLaPIBVrDZj13oshrf>%#!@(@nCmxZ<%s(C5f+?|J0tZ+~NyS zz(*UcqS3;mtWdtx#a0MxNZ256Mam7^<$GEuA~wN;CJt$}B%}Hv8k+ zyL0<~kyiA9Jt)I4S)z=bxzw7=-(!Q+g(g?^gH|bTZQcdeGVvH3eU%}G1>cJEYtLhn zF&)*vTlRUE;i({*8dWYn4v~nxV2PA7N|u$x!@L1Rij8T!^iWF`=dVNAmO^CRI0>P< zp4VC6_bHl43SZiM;s$^H8fg0t8{Q8`vG;MPdGk9BkCX(PI%VHj&se;n1Y4$80Rv<7 zcl@j+HXmA zuF%zO{N99RtkHz!xZVO)RjmT5GOE3b$eaX4spNw1islZy#pD`fdQW#j6S(SMO3GWF zL@s@58$pP4MCyaz*nnFw1qY0<7 z<|bd?E9f98q_(i&sAhYIGq;P(P;w3TB+mT`O~hbSAbX8 zH515nweMQPXBhCboc0S9VhFHHP3+rzD95F^`SvoUa`-7j!|#L2q6rlDPDV8MZ(nce zI0C-YpL&U!fk=}NG+!yPYve{d5g78WcH<(8MdS-t;vs5;@00O|&Lv8AxAytMK=h@u zQljy=8Qr5FptxFS75dD1nq_3Rj%O%XC6S-whoy?D^*AI7nEuH!#Me@5cMEy(*LRcT&#bx-{k^>W zbNHifk`Lm&YTox9_vXTM;o^bOIDzoLiCY3j_M)#P25sNEg^LKy#{~K3gO#)rA(_QA z{-)Sc&TE>7G=CxV0^vg%;yREk;#k^xW{?A&RrZUySiDcDgVm@QXBf_s&|_a-{Z;oV zuF0r^a962+L(eU)Panaa9CzX+6OMgCPbTu)?6CMYdAGmtM_Z#Brq39cYj zXLW0e1I^<;f|%$Sjy%(>F&VVO`LVkRG2EhsR@8xTmO1PIa z_){tgb$tDyot_szu8Wa1`h1LY`F**sd41#w<_+3f<;OzX)!m#@PpV(g!Rm^OU^|cf zt(P>Vv*YUGF{i|Z`y0#0F(+qBXZ@S0q+a6Y7)G3zQb%QjEqCXcD+a!fbBo=+Bir+t zv1^Ro`L&DF3^+k26t~G5giN+|5bc5btNVPPSrVzEvDMkkfe{7OWx$ZBuB46%#Krj} zOfk^zDeN4r>JfT@dZkQrxzj`)EOyU9bqMQ~Z$wd8(zh@C+ov!x$N4Q)$A9Da7yVc) z(>L~KZd_R^BUv2Qa}`^bVf=4H4SAw%K32XIVh`lcM)wKNRjoz-AGRjG1Qx@2DUm%i z*)r;B0yH{Kb~w*_rcpb~z!GH-EZAw*WQ#HlnSfHNi*wWcH$LfnJ*(x=(>Tr<>oa zXb^VW__u%bTl92k9ZnRy`9>m!`jz}h7@oLK7LXs#BO<)N^R!v^_1j3l58PrtZo8?= z|4f3|*5-fn>UtMYYOgstz;S&texJn~n7+=Q@CR(rPT@~VaZ4*BUUfn8y|D8TbfHN> z{%KqD$^0OHZ729pyTOa{e7d?B9&!EW%SP*@R1C)5Uf2d;XfJzUDt7U|ag*m-RXoTypAKR6O8mSgg5TPX|Vd(f;m- zX!$7~h#5sEz`1uWic_xq#Fy74lq2;n?+~Xwz5|l)>z7mzrJri7TSwn$0A7CHy|nRV)*fa9t?s zCy>d1zz7Ralb&5GyKTp+EVF7kaf0~%Wt4l|P%NM;zGWtV&1B*# zd;2spmo!;abWPl9gb72IYAVGo(=8Lh0@)3=PA;Q^450(oHQ zgh{lBKD}HU1=kI=Dc8Q^aq4@LPNz}ydxSJ64hp=-mTI&4t?gx8R`}cb0 z?VH5+t}RyN+B@nJnT=u~L3%4|XMQuvJ3$_zS^M^3ml3#Z&6{pNC5xRgAy08b${C%# zo#iWHaYtJd_V9v{?eW6erDeTOczZFsw5L6yRh zknjngRZH&=Ob3i!zRkV#-w;V?GEWLlgw9$$XLNF%D^BR@1TRbNF32~_rJRSq**$4= zE1@zxdu>7|~o1hf&Z&ACtP^#88-d>+3qjBdy zB!VHxKVtcNcEX{QAC@&0m{a&E8n%L3DH;xfhde88CgM^KEs6l@15OnJp<+>QoUnV? zvurs+6^W1~_pqiX8>2~%XEQxa`mkJbCSNS6p~Gj1>)uJ1Txzy!xh&jPk^8OgtQ!#r z0^W+YSiEa#i-VNa^@V{9a-1tt+hCbnxHOw&l5GBkDI!s)+EmF|?CGhMrjP@7Nnbt< zyCxa*qAv}1Z0npLTGTcFeuA#H1KfB<695aW3cxen7p8iLBM7(b+qzDc-L-LLez`Yf z&G@>(#Ob?-ua|5xd(Nr~5O#tDr0HK3>H2OkkTB7X#ibj+3Y8RHOBf&&P*cipH{Lma zulrR)(zNnXF&LhQCNkh|@8k$CxeK{RBT6HAxvda&!7FtG{S6@nb3OguDU z3u}v;6G7&v=V?#|dzB-sMAqV(^$LG&r=GFg)0`!_UmRa9j)%w-mx2;VPY+FlYyVpF0w+q!u(*`C{l%SYKhyG>{H*2LHrkk9DIlmzof+9?sB&od{oW3nq7s{#6w zP7{zmqt8cu>(n*g^rz^c?R$8$`W@76N6W|rEaINyc8}E9jndw;2F+3>O8v^MyN~ET z&&DYYMp>{KEtfWmKWuF)p*+k54P7Jh-L=K5J0C@NUWlCfpE!+$mxq!@P*;M>6pI|K z&TYr-xh^76XH56;4@oJl=~9J1MG!V0DAHCk>Gs#8qq!Xe6qr`HUJR4W!DsE%tDmhj zYK)(I5z?byo5=n~kNT!YNe?i&;r#n_E=MMfO@D!{@N`UTaGB7Mb(l3hMuv1j{oUPG7E7#B5y8#4&~hvZ8ye=d-O)Xfgh z(8IZ_#jl||b8vs|Gh+EJ&sm14)n(kCA6!F22SwJmxkfGWLsig#KC3}{PbB%6q)1OC ztv7v~%_N!Qe*0e))^HQSNQwqHX2bn)I*|M@(yGyLg(`-YuCP(H#tj zpK~vDb?A(T3AJ0i*&04Ns+NfWs02RPZ!{B?H;bZBtP9@!49_$_SE5~0cxt&*z^ra$ znD1CHt}cBcRbC>?RvGR;BohOkE9{R=~M-^v7Gl2l<1Yao6~O7_r7J^3dP2#A}X@aEIDPX|V`&?7QJs zz%q9~DLCD0nGT_A1=AsPPtu4&>hH;|RyuUTMvaYOEM7UAboa_(*=D2}J zH?}*M*1RGF&rFDQiETifH#Y$#7LfTPyTVNCz9bj0)U@h&2?lJ%;-Z%eU55U{lfKxR z)w?#H#B zJB=TPm)pzRm~0(whl@fy^&cI^JS;7^i(^M0VYT&}>XoQs8gXtP!#%efX zEjI*pAGpTL$@57cs1;ubS1QGxkP2S_rhdEu)xH2MmQY^xMdp?#{vccJk{4GzTf?@t zZ*LkLusbWL(XAQmF|;}(+3xF^=%e}bm2AyhQXAB*|Z8UnnJ03)~e-$)q9ogi>;NK|4aj(*oTpoLJH?(i(CDCM6Z0Yi}tfm7i~CDJ3+R>Q$FePvkyY8uU}tZ=djRKuJQtgb&V0?QP}1!MlO_w#K(g>u@zRjL zDuPL^x5x@hHdS~Lq>_cFikHU)yXg+ErR@VurDAg=`rf%(Q-VWjE8 zD>hwt#hS0W6-ruo1`02MbVcEL?Jttpmz&W;Uxr6iBfJ6Y?~4*u6kD4ATq%OsQ>6!N-=7~Vv_x{-ToYdd*^ zH3`(p8+bOCK`X8$vy~5(x;k8=wh0~r-(K|G(B=SN3dt#-0$&Nq8Jt7E5Rz+V1-uS2 z6tQoWD4N(eyA_>f@6^}K0%&u2o*zj))O1bybG$G@$-@8B>ms=xt?-vcC`ldot0I(C zea;s}h7!uW*F=VTrl6NZC^_o?`ih9Z)%uc{gB=3Bp4siOeQu-8bz&@64x#6*bJZ4p z7JFW#`c~hb}*EpVQWM9zq$C!Xna}MmF;0S*A zQ2{a7`qbx}hac?(c$IyzCmgf#xijE-mE=5lXG1p)VP~~1VR_AkHqE@Y*Vt6kCl=C} z=`nZMSsbtfC>dd1+ZAqpmeYD1S749Wi#O66oV6C(thod^*+NOYuNND}`<#8% zTA#baOt@A6q`txIW~9QMWxaSY0PI-hj^X_VrQh1C#KkRCPjI0LjZ0#)Lqs$V+&VZk z8n3}b#BzBo9a?)8J0#-qC9X(nEoZUiEa8RKpWEAIU)H*=7rU-GxzX?4E>UdztrIU? z1oq|w?+4NGdW%1Z7saSxWm@djmy`_meGeV`)APd0^TJZtgq|0MV`M`Vvh&E;UKpT% zU7W5^98EbsN?U9FnLb#aP?Ba*xsJi-vS^W6V?CLBwjor`a!JHqX5AEgXQ6UT@Oj`| zV1px)*s>lLhpoq zA5xx2gT1ld5In4uH8=c>^7m3$2IsYu`_>dH$J`NwQ1hb2+V|@^1RM31^I`cV>z+{X z_H3aCrE|FoKSZ5t)BFR|xrF8irm(y{%S<{k(An#68gVOYq>VSmjTc$F7Tw?ztn_A@Gi;61j9H%X05YSP~(6 z4aJe0Vd5&cdqm=;+XrWJ7mtq(^n$$CoDAXuFwkpnInV}rSNHL|E@{VNx;o(6fH#VF z^6lN$K-y(f77bWCr{@mz@0e@8pHRAitKKa`Z(COe`o%^Z$+8~Q0oQn%4G5zOkK;EH zhWkSBB9T7~)mSuOSztwjS@ZGYrt&WmTa*>kZQ95+&Nh3u_BPkv@zL9YXACDq8RwK7 z8u<}Z=*!6kS@#EpoNv#SO-M}A+!nK~tAAk7t|{}GoHaNyiJnVSgwQL=xZ(=!X2LJ^ zv^Ldr57Uy|Rf~%?!*mVPm5dTisON9G~2>-80XQJ@GD%@Lz`!hj*t?>U|_+JtJUkd+f;hrqQe3wOJ4cM11-!LJJc7lnJfa4#3`dBQzSxQ_|)>N4W0__b0K@T`Szzg!?by zt`Y8cMf&3Y?6=}RO!$8-=$;V%-w6M4!rdssMY$zJc`{Kxi7w&3DZ<|q=?@qF|B3jm z!WH*tB43HKgnPCK|DNz~5UyRXb~~}#lW1?uE{_i3+U?tZF7Z4})E~3u;2*;Ocah(N zMR>mm|D*6fCERC)dzElM5$->QdyPnEnBW)Xk=Q5PO(Ohv!rv&|&$Uc8YMj{+ornMTCpzN}MA6KNbFr@c&2LXMzat7U3TW|D(cPC)}yRwe{cEg=?q# zq~N#9p-K2{Ib0>&V@3Gg!oO3v4+{505iiP>eN}{u@?xI~_g>+CCR{t6>EgL!!cRo} z*MxtDaH$BtPxxmFcb0GkKf7O~C;AU{vWSn1_y>gF?gu2{ihL$!3->F+EfRe8^Ue|J z9whv-h`0N{xxy9ol~6>y=f9BoqB}V!3dI{ge>;i`n{eg>dcmEc6Z&_CcavxVH%R z5E1{P@E28Y@g)P5z3m_XpU!a zUmcN1jJw8+nfvM7b^9c?Px``RJRqiiz)?jcHHc1&wPNlcV-XjZX)6f+4E-K$454O{ zV?>h2kvRWH$cPy;XYG^J8T;w9b^GEU?}^`ao^Hj9^r(KR^01$GBpvPN9TUJCGoEG& ziJ822k|O?(ka;tuz45<15&w0iG&8<8{-=_@JBc=7V&`b-I}0k<{3r&D$Z-FtavfMlGydgIid6%p6{nvLgf1{k?;8;-+v6w_wX3; zWL(Z={91p;=kScrw{FfNVdh zd?aM-VonWtp1Ui4`^>#keC4dY61j;SGE3Sk(byei#H=FgLLL!&ctrf+5z@mmpNRkN zVJEYP5ymrHPZ&L#45JNXEL}+^(MDd*tH@N^LT1o4u4XgW$@E;k*UU5{Q}y>Woo6Fv zJfVCjvUQorR%%!LHdnSL+1VOpXG{^LX2@*1*_E@Dle3gwA#yfDx9}EIrBMs&P{~z+$oQmDn!e* zQA=-h6NPT&I;q!nn~~0KM(PW+k!G!pG^bc_n~T{9ahnVZguBW8bP`uf@66aM-LyCU zkCC*5D)XiZa&=jOnJkS;P?cR;QvT0 zMjPl#+DPX~Ga#hH$(6fe%l1k;*P7lUYF_S&PueSegXijIPPRLK$GY9IxYW5P7UwZX zSuqbb_#-qc;+mDdh}a*kh%+0#5xAdh-jB{JqVr@rPnr2LQD^RsKev-e^c8Zr@IG&O z$IRm1S-ay8SYBoJ%OuIuxOuia+?|4({Rv5*S0o4@LBNyJ-zd4694W#cbcM|njL*8l z4iaH6I$<}F1-QFAO?O)EG~B#TNTcQ{U>qmCOtf**?)YN}c6^U=U)=HS@x<-&_#QWX zMdK84+lQ^>$IX*>l0)Vd&9L>*xT1a1X?rDpcQ%i4gYhx0C=&Gd^lf^u>3+=R=xzFe z>3&Q;8LG+ zcp5h=FIa6RHk;Ex%Z%PnFXC3o&l_f`*!~HpvvHW?r!i$k(-Jc<(8bk4TB}Dp#54nMVuJVbn1G%7ufHvE&ndidMr# zXFU0+c!rkbVlk1tuivSq%rf|Iaa=1SMIIrVtUPN85jRfaNS6%mr{{Aa`iWPFzDifd z7jg0V#HzcC^OWZgtcWiz@wI_b>%!zwYc@w!LjFX&7l0+pHjVrP$X*^j&*6~ci z?J@hfEvDN;`b^iVq((B*lz0}KL&n6)$kjx8edVn>oAW3{9q zwv-$jt0QY-tH`?8F=TzLfwad~k}cfd6Kf*b*s+c&vtAUfgd(tumTcukTVodOi8=}t zMY~?R8%B-07>lPXPl;lbco+<$lhJ>PuIs8@u^aQdE)ranx$b6G!%i~3amH-B$YzTY zlg3F_iAiKBSBGS*2BiDk&)v5jO# zY%{5fZ6S+eTglSccCtK{B`abBWMyoSm)dq-YNwHtVmr)I;^rG!L5j^%f)R1Dt-Huc z#q)UCaNR{t(5Ir5JR){iWZ7K3D|T#N*~C8m|Fvw+=4Ep(FPlqv*<8lU=5k&(SMajA zikHo`ylk%LWpgJln_GC<+{(-5HeNP&^0K*um(5)VP&U)@%H|H`X;C&;h~{?>%4R=3 zf}2|(H5OG$KDEqkC`O5}XrSI#lr+xR^%;>HKu+xQp+Zrm*24ZP)$*nPZwAK>Nt zIMHMK$gtQGWL9iHnHzhKm+MR9nApo?RqR!AV(c}NiM>HK$G*#3==XUG{Si4W_G5Bx z?5E`X*jwbH*l)-su{XJT{Vlnf`)`Z=p4=V#gIWHIc-ajjCupx>kU=hSwdH%9nz&oP zohw4r#GU%xW?RhdQBrV!WCKPcvXg{63ZbXqB2j4zPHl=mq1E!&E@uBv{iR%n)5N+g|U9qlw z{c*Kb!{7C_5!iZ9NX-qd#OzU8}Y9kc0W< zJG?gk!E5tBM2`KJ*W~+TPV7UHjD5m&?`NbkPRa7PM2?Otq%*FOjd7g}#*4{W@nPh` zcnP^IK7!m7A4Tqtk0B4m$B{?lQ_17;!^rOVWb$Nu3VELUUy2_=UW-q2YIZq^8_{r1Sw7ZlCL_Ka7n&{#90^YGL5aoRB zuGj*zaGh!`x|8&~Nm5p==ef1IlhR@i7zH)@g<}ozKk@+8_3D=RpiuoGdUx^hMXN=N6w3{=QVW_xhCF4 zu8((;8{!#qOMD}_hx>QNHF$Hrl8C zI+W*y1&fIy7&SNUrx$YL<7Zyu;~~0orcjA{;*aDmALN&l`Q^X%#2*$_c>S)}N`Dp7 z=}}eaSh_cu8r7=9KY8kKS6s2$+7;fmCJfV^Fj)6WV{RgKeDw5)JJiy)JoMrH^vHE0 z=4-Aom`Sxy8gHxRah&$S{1imUeF%A(9K(qoc!d<_O5%b2w0xbLZFj85&9hH3=1Jfh zCwV%6Pyaon8bIj=;`rS=$Y~7=~?j? z==t#%=@s06b^K*|L;O`+kI)l{uCLJ!;?L4SHSI0PEgvm9a!YS?OzNw+-8Ub0A3aN7 ztvqM~<_YVnLiEi|IekM* ze6l*$5%CScU>4t0y*i}?{EWS=F1ko4y~BKX{XTCvW}wmT-fdG<-g zrU*V~i=c>nA}7<&dlGzpKdlT&@ChryVP=BQ`(^s|!ex36y^-F+>lE%oya;ch_nYoR z^bxp1rf(-xxlI3<%k)pUO#h6_^sl%~|C-D6TV!GUZE{Tfk6fnzN{);FjSR&9LAJ&J zOD>9kK(35`$mRNDa##E_@;Em}UYBCzcalW@DHW0TC7H%0MyEGxxfAzmq2Gh{-%Z`c)E_vo?*7vrjETOCJ5)rp?9@s z+IS~#O>;HRW3zd{?A`H~5il5T;dn38>fzz_DQ4n#CMJ>dYMe) zV!f01C^wVQ_Uzb*-`kV)=A;MjL)c8p-Es2EBr$WGya$SY;yh)>IK?sA6(R20IL#9G z$@FG=8?RWnyZCe6#>E`&F1j185clVKw@#!Q!lZd*jI@A^l@^lm(vf7MR7*;wC1kR6 zG)YMfWTCW@G)awQjnqU=kd7r?QVZEGttRJ6Yse+iT5_edj@&ApKz2$el82>}$ZqLm z@|@H`UX(h?o6;uod#Rf@gFf<^bSf>9vUG%WI-Mw;K~vJ1^eE|UdaQH~Jy|-BW~B3J zuXF)DTe_GxhfC>|(iQYN=}LODbPK&rx`EyyeVKk$x{*G@{kx=_xnj80Y!YAK0{bHQ zvGz6>e}$&VX8j{>95Q+oIbL7S2LK6rEUDMmX|sq*?+`-<1tRV=j>mZ8m}fSQyR_{v zU&wfRhcR9|5;H6GR_!b1aHEvoq@SqG;0 zFmMvT>HK#i|4k8sIUU1@i5NzVwT2NTEPouq|Jqzbi3#GmO|+#Ocf}g>+fv#R>w6*x z+e42a9w&Rv5ya!DZNuSlF4Ar=@;ZB?tfMK6?sGYjWc>!Kl5!W?8G>(*MG* zyt?qub~P$z@RayCTv|gL;tLatc%@F~8FXGToi~imE1~m- z(|IFGN-9TsYMkoOE27$AyU*o6^g3nc2#k<4|2=71+JrpAe--@qL;kDezhCfQHUGWA zfAje7W&ZmT|NV~t&JgaI!aYm4U*W%Z`R^Y7`yc;(mH$5Fzk7LJibNj%%zy9j-(6DW z$erX%MZnW!;He653j=0K%%GD>%&@g3X5gxl1f2R370%)k4bJ=$9Zq?P0cUneF`Oex zhQT=$MUs=}gd@+R#*KPr^vL^BDL)gU3@fLR|FWW4pgi6-m)i*~H&@sQy_o;@@ZW3y zA9LRw=S0;teC}jQGA(5?ZTr$$SUL-Yjv&1^7mzMx5k#sYh!hn?Kv0n;AQnUrA;2!u z6$I%`ii#j2MNkk$6dT{YlSxRjS@n6o_x*m~AIZ(!xtW}P&OP_s8~nP7ze{ot1MzDn zer>>lUN$7?i|fV+`ermdH>H4X+G;s97!Rry8uWIfxIvHRW){%R@Sw(c(4^3yJvmI= zs8P8pQ$V-C!&0%s_%SqWN)8)0Y;dm17SIh_El0QU)BK@fb8B*O!yd`ixdQrrJnS$Y z<_HaYzLqm?*pOVqSwP>1hrNS;^taHkXLIVK=v-^r zN5Hc1}P^VTRJr1%?VNqh~)@UJnr=2pL-?r zfa3uv?&rqjnof$GsTv#650UuIVYDo8Vz>@US|eVJiaOxM3r5 zO>Y6+91kmvhcTgHF9dvX!-nRXz5=?jm0eS^OeNx|72BGsrW&%Q*>nv$fUOQ`+hR)- zpj%mOTe>}IL)Mfk1z6(g%h;NJi>>K3Y)!uh7kvXn`X;#PpKvVmGpO`0*n!`HWcqhV zqyL0V`Yx1U5R_&dki{^N&G1l}5#S6X!#TzSUo#3^WK_7q7;ueAg6m8w++@<>7E=s< zVM@SnOlkOwDT@$O9x+S>y-N@eatnM@N@f@y}zFfC9y zrZuX_v_(~z4k(A|glaKeQC%h%HDG$6#!OGtlH}sQwS(DC?Pfltjx#%{Z}2Uv&W7|S@$v7F;umUn!|%8s8{x8n}$rCC;?J*-A6 zY!aQsCes;gDxJ-y(>2&~bbu{I*I`T3jo31DD}3FS&7wQ8q4~i+@S|MY6Z)Yt%?ekr zCsc5F7Yck7;?KgKknR-rgmee-eXE#*rQ3-=^52owNV>IjM;Jlo19S^fboM2=SGuV< z(m5B0Pd>V_Sj#yPoLKT2iiUFp@L2xp$;J3TLBLX2TXYC>abT84*OcqwAWXs%SzY)` zSO_wdpsUCwh5Nw`rRj=dFC3V8Ad4<9IR)&0u`ZMq+u=T6j8`7Y9S(VA+GXW{fl5y3 zl^r<(_EKV8$VEJ+)AqpaY!BSU_P{-C58T)Gz=LcLJjV98kJz5F1)U=Ll;k9;>UA$LdS>Se;>y$45M#WJ=prk$61R$o6<)xQMrmNF zc+?B{K}upLrgIzVNAM8hTB*bi%)s-YVR*>>__yvPc3vvKksgeP6vsop3%jCN$E9M2 zHOMlpVwNdJOsi;{R@sz8rqw`ypu1Rfa7+0y8SheF(o%j(BW=jE;@Ltg0Ja)XY!1+D zO<>soxY#-%vh~2tHUJ;n2voK)7;JM$VOzj(wl$1o+rk*O13b=lg7Iuun8@bBWVQ!9 z&Gv+8Y#*4;_Jf)10GPuLf>+ofFrOU?i`e0?lpO(Yu%loDI~F#wHzH&8eB zEi{l_j)t@EqLJ)sG>&~AJ;km?GuUAO zLA%+#=s3F{ea0R_XV_!t0(%^N%bq~D*;D8b_5!-go~00bj^fy_C@*_~^0Qx4Ci{(L zW~O3=-e8*<2~yBk!VYXcL<-qvMkERvDS9yF`-FMK%uu?xCS+zPRs1PrW+SH55qw0stvIJC0ws@em!W zTq)Z?#4gLHKHXqB{D^Po*yf=|Z0bd$@%>}?{*z(r5UctsOCGQmE8~r@ZHU!+l_LXQ z#82>r%|fis>&}gi^JL7!cnk{L1y`(HaBXy)!$X?m-}yCc7vhzkJfjRAaINS7mE&== z=W0MqgOp`T5z`>qronBxx2L~{1;#|T5h)YFEk(*h?oa}0DVg$6a-3=S4x5JS*fjhA z9Qz~i>@ASk+u&h;1%>?$H1-cLIRvR31;aT8MsggC;dpqQ6Jb2(hKZaPCUbsxn$ut! zXTo$Y8D?^6Fo(;4SGeLZpDPKAxH7Pm%Yrw!^00xc2phR7aD~f(8(a;z#nnQHtBq)` z9^$x0NapTCey$11=0!rZ)6*3Jnq@vG+ z53$NiC|uMc5!H;C21ULPn*m}Pyy9AG&dyP?cnkN@z*B~}W37bhtP|4it6}Yq zwGgTcYd1~m!s-z1=Ce#bqTRf$-J&UmR!&v)0osE3PTHfGbX(9Nt38U2lh)R5A2h}! zeG@3|ZJ@b#faTr=7j_{cw;J5s8t`#JP`LuE-5a4lw;2X^EHGL1( z^nF;<4`59{j5Ylz*7Q%|8SW%J$9)DfxG&&E?n_w4eFblE7vKnY8BTFm;0$*azU97y zYupXE&iw>GbGP6(?l#u$U$J)oj=bDmWHGYsB zP6f4h>gWNdfqFWV&=6+|deoVYMmdY4C!8hFBxfl!(^&@1c9uggJ1e4v&PwQYXBD*C zSq**QY=E{nYol$>I%t=(E;@v-k2>q4lg@^bWa=_odx<_R6+XgR$)jzy_VPq~!rF^Y zhSz=3r(!VV*wHcZ=a6GZhowJ4jvXBk-66-0_KIUdjveh5ld;ZX$BuT2EY?|9%o_gh zm!r!@n7-n6Vau!xa-Nf>gsoEBWvL?J}^HT?)I@R<=&JvUR$Zt<$Y+SKrFk z?N+vKx3YD+mA!sk9b(tyJR$jgB{s!cF0LA9=)Wohu+yz4;Ix%)JpotokDP|fR(ln` zv)WMk%>YtN;%ttMTuY#x9kBW92+7XQP}bQ6syVwsjA4Iermhh5I`um=-+pK}tNaJ~SiozKE&&S`Mg`5auv*H@j>;f8ZYq#PgzW(zwl zWBplFg7s!3!Foe(BG6WX^?Pv`j{K-d;Z5is59l7Vg{R4Pu)2ArzncOhH2_C~Hx%6x6oNXiclF4Rx(Hl(epZ1s*V5l=D?g#n(V{ zE{0OhcQ6&-fGp>mP|^7o)Wp}doy(ztb48>eEGvozjUqH?AeXmGBI@z0<4Yo>71$(% zmX-;0E)vO+%FBCY@T-DUufi$(J|X#99~b83Fe1GmsO(AX6 z;#cP=5hev?JwiY6eq23od6k{YBHXno-|^=T^!$3qrby-Y9%7k$C--j~7Vz;g0-hRR zvP>pouo;^>r1rZ!k#P=A!RMGNq`iTm_#DeNX>Y(ys||5y9He3Hti@DYhqIOi73 zp>2@q+zw@&J0RQn5d@qcLtW=?Xyn`jO`Hdyne!k#>^usOI8VV;=NB;Dc?M=X&%$Eo zdD!W^2)mtEV6XEk9B_UQr<}jQ=guGDjPob>+Ib7U!`C;Qx8aua*GR#4GngdoBCAYT zZWdVlWuOVnkt%%*QPaKT7X}LLImvRT3J+7JSRD zztw^@L2B6lx)zX~87>T|%L$sx1*KdHly%9F<#Izsmj`O%>)I|KG;sO<11;DduLUv} z)&lgoB?kaM5G_cyWI3z}?+2-e3)%Qp(Kg-+SYnNQ)2P6$v2ElV+eW^zZR8u<2E4It z+#B1*y)jMnDRH@_9MX=L>cuGsJ(WhO5&0h;C;tgcELoEc$v+K8;Zut*N3CUK&O7dYzb1E0Ejz)9DGaK_aWF5&BMUA^JDt8ci_0NeQ) z!pD}B3$R=K(pm*Q8C7)oLqy7du=z~Eb@7ZX<==^Ug$k$z?%ODi6E}Rx+O&|eg>QqS zahv69gVfMMEPp+QXwCK5#99Ev_Z7$Mr7kbG-!zTyMiMY%0#+ z>vOIZ@QrI_WamK*m@MqJY?ug}Eo;WWfhcQsDZ=MVwlyPt<*k5^f^RIl=D;J*OO@lT znfM2{E5vbZJ6xnpn0cR2cQblEw}3vA@3`A_GkOkx{35o}6BOW3z=;B`P=?o$ zBRZ@Mj?JXas05A*Z*OpHiSBy}Kehh`$M$=Djt!1Y(IcM3BOch`*qq==TNCtcv&D0M zkm?pLYl(5sbwe`sZu}-0>O|twm+XK`rE^483{p})-Sx@vEGI`YUHNpIe7aqZph^pX zohl$EM=rv%FS0%RYa!1rt8z%{5ee0R{Z}kuL z7X+N~cY5A?-rD%5T@2Ut#7v|%3zdfHGNODH&DR~Df9q^D(Zt}?+J&MTAf_%Df zz~{*EJ91RQOCiKd7oFo@4nEQ&hI&{!MigK|xAD!}df$zJNv;A`^xj$3hq?tm{qss@i-kcW<*@+(4f~^1P2-rZ2j^xFFmQX=0{kQVzj-|m>Z z{+PQcpe#qpgb+~#N{Uc>;%!C!wC}6f|_5hQ_YXpsDLC=n~K(br<#E9jF)YM5A~SJ;6(867NPcc^_KHD`+jRq7V5r^a-Di4)B@i zGrlLd>QmBUl#qrm!n*KHs#?fP)U3xsx)7Ps=!yJs_@mR`g{%Qe!eEv ziVsk^d>yJcUzZxh*QZAF4XN>bBWg0=n3}~mr55nbsa1RnDxYsj?ciHeC;9f&XM6|h z4Bv^m!gr>w^IfRl_^#BSd^d-}cXy=nJsg$z-j3>gA4grjpQ8~!z|n;t=;+4}a!lv* z9P9XDj@|qtjsYbWNxWr21hR|E5*YSC)B3;)M!0 zOexPy5#F>y*^10l(j}oW4qU1*6J$+jf&-xH%sAnWkb;BXn#@>fgOG~DquR_U3E}U$ zpdRz6b?5;P4Vhuqp$7sqW`+n$$>JB*jzQvX43%W1J2Jpw=2)_ zNI5b~7}xe+@#;b7ZSm?sYpJt0<_l>@!&s{gO;=ig5A*6azWNpO>JG31fFU4A7bqx! zDNq?pdVMVSEilHd1pyuuH0UjOp|9YBL70*w@bze{q2mNS!h`ydCONPLq4Codi6Wbs zp*5yFp)w17qj)er!h>;^h7uk;CXBN*o`o@zh`$j-XR%Ktul%SrWx-){)K1J+(fQ(c zL#c#f5UL+}%F^l3HEA>K9B>1O%>mzMm#oLe6mhhy|8YT%3z*M0lJS}vB=Y`Jj626`*bcKaNZY1X`!*JmfD{J+1RHo;(2m=<% z4eXrnd?_9OPIS(f+;b(!`L4wbnG_NH7wt^wvU^8@1RVoI)ZCH4Mp;U+|DICRvy~!# zMjtB6-)CtBnfer}+-FVNJ_Ca>IbzB}>QQ9Y(&CB>roc0(g4HerayZ32t6hkL-h~nM z=tc^Ng+7=X{V-ShWAzvSE@3Emgkhix!=ack0;&lkp|&sz8VX~ejqo`15XQly!V_36 z#={ihS$Ia64AX=uFjJTc^YHaT;Tc#eOp9bCdte7ij>%=dgjdHmztMw?HIY(A}y=F@tc8&UF7!KJiB4< zNcep-nw?ufUx-b%9Cy?$=h)ylR(Q3nWK@nJ+0HR!6xyMnB;29U6bkQ9sA@~Zq9E0u zL>S~}k1hw@?tU#ub+)=`+#MUxj1Ni8?%3t+aw!<>f4>jRfOGIQDGI~wEg;qMH?8&- z+_u_~06YolSO9i{Q`iNXfFmE_AfyV1u}?b!jfLZIzijF<{pVj46P zGogi88hVK3pr2SC28tD6lvoAEiq&D9SOX@A0hlH>f$3rcctLCkv&BZR0AIf*Hio6* z{gG3&vY?%?-^zKuV3VF8`Fe=-F=YNKLgp2=wp}9@(oxSQ_L3mgF+tieVj>TOZnnw_ zQlE$DH@;qBYg#x_wZ%Hm$+naEj$h_OjreSX?nkob|Q8y%PO9e0Xe z$sp>r)`}Pp;#o@ttG!4fWUODLy$F}BHpH+FWOu9B1}G6rqu35uu`3v2E)*BLL3Ob^ z)De3?L$N2c5&J-{*bg2P`(x8L2o8!P;fOd4j){-JX>mB#o{?}-906CwQIR0!SX69y zEn+yo6((SFNet&@ez9#hFA5*TFHT5r7pW(!gH(_IR!`ph8$Ib2;&br-nVvj_^<*;E zlPOqFp2d1H4eQBttS7Uvp1gwfWG>c|d00;tVLe%b_2hM|CvRdsc^~V^yI4Q0VGd{KeTb?D2O&N%3P$|2%j`egDry{{|NQn^^RJ#G-#2ll~Vh`oBR7 z2?t~n4gDkr21*=^k^~ql$#_2LfeDfV)1)+*E}8IxlmxS-WLSW&Uz1XC0G%Eq`Un4w z=*!ICiheLi4Jj=8=Zg~k&i}3GZ%Zut+x}NXUn&ihR2FEd5}wOf!87}+P*SP}SyB$v zkZM9bsTMSrYD0Ue9_B*>=qWXX{!$~%i^lMz)C69YI$)Z&hJ{iaO!Ky|0$;C^+QV9@ z<9{Ifnjm^XJerpHBG9_y4szoq=1miKJ%i_&&%t787Oat8f&%Gf*euP3 zPoxE~UwRD=NlW0Uv<%Kj@4-3g9r#LG0T-or;X1y)DXoHA((0&+lXk)(i?I`-t#H`- z^i`As{+u92^MsjA)wZe{05L=X9rZ#>%{JpV1gR#474f94i1Fta1RV{-Gg>D8P8(}E z5(i3a3aM|~$gR5Zx7tN+6&V0VmSjUyVKzC3OUZGjT7|RsmM~3L-d*gAkM)`>1)WB zzJcA+Mc6A{f&S#qKQpf5L$J%wQNUj{JV}-kNL(8VP;16Mo zwO$~?9Vrt}vSW`{^hWH*H+Ev=WJIKFdCCt`_Z60>Q$@;C`=X_$L(x*x@t>t8IfqHf zVNH8;<5x;vJ91E57d=?&{$TWrL4jOvJSmu0|v-RFj7u|adIk5lG95*)il)(n;Ep_I_% z)~?8o6s~>{r1}(cn#=y7Tu-+>*+$E2-YdU*Fv`o35|(};mB}x3=1~?o9Oyd)shG#6 zwe*2D(q22ye)pnD+a=gI5&(5TioXgw#c|Qrl(v_)%KiOw!fPtNqLYoJtk23dx#3Sl z&VwhdN>D&Pt5uOsT03q3JXueWyI~&oz&z}Yb)^ru<$>6S4Tkb^9@LPBK|p>4>&FP_ zEA@AV?Wl|(TNpcmTvoyOx;jOYw*L&g)(f59U3D;A;Ou?YQ! z-RB<>kr`m8Dj6Ied@LNb+~xQ8k}-&j2oHlJxD-ox9C8Xdx)BQx5^j?Nuww+I26x5Y zw8ex>D_UoZ#^xZ^z0h%LPeuuf$5|+kO%C29^}yu7PO{N^3x3^)Ut2Bs0k%PCV;4DY zqyv8Kum$8p;!a4uJA>rAlUe+xarn*a#BZX9T(cgoUMg8D{0?F_YLR;4J`g&lWuYCu zAH@PzDI_9q#D(gs@vUmslrANoek<V$X!z#GaW_fs{GreJ3XiD+d;(xV=#hO&uXRpEEp1pPnY5};N;CAzn>K34k+YRO1 z9(c^Hz&N)G6Wj(&bSJ@NcPdPEr^B=EV(^^11iaub4Kv+kVYa(GyzH(3uevM40(TAA z<*p6;-F4uwyB?fzH-dBS`{9ziDSYQ{4tLzG;SYCvwXGNbx%dl zx}QbQyPrcd+%KSc?pM)5_Z+my{StcJ{W5wNU%%&`i-PWXkvVHQ)Jr&4=)AUd;X+&d zDJN8Di`H3nCb4tYOOcqfrX6=oi^?Nx2~wR3SA>)cv2#g$+(>Pqf;}Fx6_KPWW~&1XN7m$5T5P&cAQS|9`)>5k-jV7lQ&|7j` zWIkCthS7LV;IbE7?V+TqP%t@r&Y4elBtg%E%OU4K{a!xZgE&EFmg$T*L1)}_R7Sl} zU(6iRj>UNQMWd{CEP9-@wh&q2lN&38`w%eh!{Bru1;KqBWcTOTjGVz{`hTFn%Yub4OhD)E3X(#G$ z`$F>f4HF_tJ|Uvy6GBRk{o@ltPaJ$ZaPak*Fb033!HGu8sn}C8AfOS#I%_H;qemni zPer*HF>VtUWAu={pJt&|L~o1awjkBADCu1kmfj$Bx`=t{-wF^DD+9EOMI-lbgXFcA z<(dFbSz96|072v_a_TXV(~e)Y+Nc^MPdZSZ3}8H^!S5*x>7Fd8w3G>il+gTZgHhQSu;-du2DWTV5v zFl%68m^Cn8=oMlO%oWzh&jqD#|DO2UgVeyHh`;+D@z4EF5x@8UDDj(P; zl7j#`K|iY<00XTyM9X^Q;3CgROv`cL^^AuU&jcv$c@oNao`UM0DbT?4G_?1;2%S9B zF+E>^Zk`#?4_^=P%)+#t9a(VbY`ZuzWyy=UxIscbp<0YZX#Y2K`7lVeDomHp{!_Yi z`=6rAd`y?6m@dmOUEaWSc@xv+ZA_OHm@X?ZUGgzq)?&H@F|tmm7544^iK z11LEy{>Xh<CVjPy=`G2X{utoLyk?;QtEtWYj4Sb;Yy%@0eU;qb$O#h((wop0h2& zbYX0vgmH;TYW$9EVLL{M>1h8t#IoE{aAlJ}wrrEVkskTa1gQZ5iy$@Z zb2^$^Z7XabTg4IN8BCCAm>@Gj^}YzjytARacMeqXz6>?IOE7U3KyB|rXy9E0&GB_B z?_w;yOCtm+2C7sVn?48Bjv`3M2tnFQWo&}96*?3mNEPmkEnT~?bdd`GPwZ8qL>cii zaBn*^DV`+TnTuglVr4d&dzsC&NM@6$ZphGdfx?;1TG-sQ4*99oai>Ql_pZAfGVuKh zq5H4L86uUg`?s5$Q&w5=?h06C9pbRUN}8>LZC3jsHqal&+6(VHm<#V>F02C1yB2tF z5Gr{$Kvi!67ST;m%ew{Yc(*|t?}wQByWnB(CscP_Tj*5Y`fJa)+_ zUYjXN6e@a&;!Cp9E z{iEAnIFEn-0Gzej^KijxL%bhDHY|H@g46pWHb=L>@ZN?b@9&W6{R3;$s z&3!Di@;RZWPk=r?8OHm3FvX|9G@lBu_;gs{OM=&YY4D~m9ai`UUV_WCNq0bdpz z@|A;6edXaSzCQ1(0GE7~BL1RhBt@MHtAtZliuzDgz2KEdHSJf}OEj>mX^%*yEdD3K zA@M??dcn`Ri+0c>hcp`bHltaX>*r&Go`a!GQnqu8bA#gmiFx+hKIK}FdMJ`4ie4~# z@9z&g2v?bqwLm56kb}W70Y-Rwxzqj$21f?_olD98Q`tLRX`dSLJ?k-OIMUePjqW|0 zKxkJOL`^g|cM7kaJrWm76#2J|RxD8leuCSWVz@;DkfUy#q(uUftm`P-;Hv{pUtQ3A z^}+NtfE3?-P~6uT%J^D9ZC@)a8?B*}uRV12b%0U6&M?;39bWMDg2lc*@V2inZ1VMo zbG||FwQmSq^bLh8zTxnb?+Li=8w0=k#=>8|$B@(a1QLAXkjFPZVjH@`OyRVZSot-o zJ|Ob9+xSyBmheSl2_8#HBN9u%9e#tAs7Zm_LLdAoranMA%U!aiWV2;^08QGAUc^%J zb*z*e4oS(q|JAq}qz2fWV`GFP_VAPV1Ap$VrV{D!M;-MuG@*3t3JYM7xk&Py=v-vU zgwOdnEM+n4s(Zjg1pY`iwZU;{Ipk$$#pVXB1O~ouGJ8PI#zJ_+8kd}%K>qN!LwE#v z9qCW^CWzrM_ntJfJ|is6MgB*I%XEc=G9C3r4`Bw8b{t9Cps`jv4vi;m^xqu$reUFc z4h!XUER-)`p_~EfzL%hi?-gj^n+q*{^Pr7yK0NGO1dsS$hpE1|V6JaD%=f(m>wPPs zz_$h)r}fw91!0*1jNb&7MhHpPA?mLKT`;MSyzN4s(?-=UqJBJ?f zeU1kDzCc5LXV6%DJ7E1;J8{1Lk zsU*W^N;;fTiovf+NmO1bgDNUnsESe%RaYvbno3pFLdij`l>lm|)Ioif`sg9$J~T*a zg2pM$&;+F=ny0iyZ!7K5W~DRQrsSfJm2POC(gU4RdZ9B)KXgtRh%PCE&^09w{i+N_ ze=6fBP)1XfGKO+0V<{iLR+Y!8B;|>S)^3Z0At%G1P>aZ?zL8Jk?u9GpE8zl^4*59TiT%l-joKT*GD-D-1nh9zBM-EUws51^OwRW z384V_2Nx7b@DDC1prC*s1ymH!P(Vik0|iVJNJ4>R6i7jVR1`=awt$91+r0~0t!?_fl4S)83n4KKvfi|h62@5AO{6% zpg>I&sO88Bpg?UDsDlD^QJ@|Q)JK5^j+};$oJJ^cpChL+3N%51`yDw=QJ@(LG)I9J zj+~Y#&s^gw|JQJ|+I zrxyzJcI5OyfxeEMekjl%1s?L0&KVGwUqc0OFTqCa+gki0eOv8*vS**v{gK^0r||16 zgvua(!mr=(_lct+aj_e}aLkJE3;{Az$-P4TM@es#vL9{AM{zw)d- z+T=ex0bw(Wp24pf`1LZWA;7O?)2Z4bat+(U_odl+aA+^!D5+)O)Uy9ZJ; zwZh7A0h)uA3Dck2WBr#S(3$v!$1<}4SnNL79|5@e*v8;7E<8Ksu`3oZ??lW~@iPD! z8xc7lz>UXy@IB8bI8em;<_lP69F%Q1h9|yKe+Y zo(Yh003h|)z4fx4LF&t&6Dlxc^WF6@@NgwJuSRaExfbdf;P6|rcwF;Qxfu3Gky zZaIUpH=~BR=0J5&0i9wO`=u_j0ofI#MkEBJNsvmi0pX*6jwjFNqkj%Rz7c+W0i7Ct zczyff9|x(C2_N1xNG0137a}3{Yj%%_@g8IEhs_BTiMK!i5uyRfGDXrSMo;Q;2C0FZ z!Rp|rH_{JdK<~5Ypbnm0K&RQzrp&gX-5sPxC4{zFkV>&(lOoVAwtM7gm?ZN1QY=g| z>64>i+GKI0vCWb6Fc`cI#-1QGIw2S>f>f&gqwWY8OJe3Fq-SYlRuu(U=r4m}0V_NM z&KZ zJ`EJP#zc8wl-CXnGV74;I_pW0hFu^5^nMJeImpC-X4-%zt+4^!8>Gf21hiF< zO1A+eo42}#m9EIGN95Qq!Su#}QY77s{dVnLvYn)P~G zzYe9MF5A2T(10H>2{oC}bBI%PvL);&mG}@&{JB9R~-B-g*%# zXNeURAL;YO%CK3_qIWY3NkZ@9HkxJw8_fej>hXm1ZX2XBY@qJVu$S3AehlXHaQ#pH zBEeJ$NJ=c2e$wZU1(VDP%=+Yjg~ZSrb8Kk$1*vffp=}qWGHuw@2()k5JsO5~kbOEt zph1z)ssu7M7Fvz;X>mktKsp;*aqo zhwZ6@?UVP|xFxvFsHIJSmkQ`oHU-pKHU*9ZsV5Uspi_`4Y2%w3p}_J&uIHVI>j^p@ z53{auku*sqsHXmdQ`(f!DQ&`(X`GX%=3&2{hp}p9W2NR{&tBTb%U@vQbu>s#{MYuj zbF97X@*msV6@}>XZWLXNumx`NA6ejk@2t%x0YZ`1Hbu<50=kS%5an%~Ajg8#QwbT} zHAt1RflZ5mzp@ZQtD+EU60ZHczet4A2$*UAHA453&ilig0gFP;x7SAQc#xWu5V>wa zsT3b}D%DQ;RMa_I!R^#2w)wP_APs7*wE3+S>oLf&6(ggy;YlM^D; zJxG64I(ikSc4_Au~dmwS{OEOcXt55|lFkD?_!#@;dDz zUZ-3b;A9)%lR;`~LVzC(Qdu@I#UkLXD+KWR7=TI72D`@@jY2U3Sh4@s)@G4&Rs~YU z9MwzYwtbY`hW`h|9ghD_1*xYKqSiA=m9v2?j%Bi2SSFhnDU-#?&liu0x0{o$=F#zX z2Rq)*wgHjD_WyK{dL|(ty@FJE8;}wa`sLd_B{66(gagqQMS@m>z)>QWvL#7h$pnFD zi*O*?F%s2P2t(_#q5UjKJ)02PK0zwmhOJZt+5)?W{Aa6ZpWmO;vPfu45y(o#LR*^j zm5vLST3UkJDI&NPZ7`+2Hkh9Wsc8wp>>H#i*g%zufVt7`DT~4E9_DweBEc*}Kq?ap zW?9l#HZELhMLJtW!lkU}^?h}4@6Z7egAqoha|D%2HY(z)HY#5Pspk@+(l1C=v;ohG zpz=W>9o&@2Xk-z{vi?Eiw)~CJ=n?_AvJJ3s$p-jLka|8L!2N?%B^#J>n9_OSeN!I> z;_EscDfWs-pvVJK&2j{=axq%hnsl{Z?>J!j;z5z?{o!ymhc??-KDsLbf3P{oQPmto z;}?TpEPioSiPx?YMoFD>-a{#T9gR{u($_9J1o?O9@zref&IYL$5~4RaNL8`X%f=`?97gY>K>K*~Qo|hU zP$YWU1kUUj^xBiI_Uj!-LUuB8eJG5cI*2ScV@Hkg><}1&aeIK^miH32PeTgmsx~UF z!8R)Ag4B$Js0;~GRc%x%U~q@tL#1OpDow+j>Qp2u6$qRaVo>Qwx;oxNC48L_l}_Yl zr!dQkM9UeT|9=&vW+g;xSdgl2qg64Y@|*3RN*I~J;rV~(B9W;`fT`Xd4N6-IrBc7s~4Kf#=|DO+1GZTXRNRX;#16Vl%@)o&qBHs336ouN#$6O ztB}4baUgdo3e52Q|LY+2VnQ$<4N^HaP*o#fZnb-=VKChxFki0GwMa0l5|FCKf?199 zRg3i$TGtu`%x)H#8V0kv4JI3&|6d4Fa}t6%B1qM=fvO$>b6X)VustfwZWfmB+#&(5 zPJpcb-}(nLmvrVvTcqw$lcF3OIcB|$+&4jLc0%Mv2B{i0;5iXgb`(PH!zkpE!ot(7 zNaS(|bUFVua@~qVh`wMWbTLT1ln|lOL8_JwYz++TuzOahd%P7&3meoPMIuszfL9~N z3Uw!4-S1hU@O45f)WfnoJuJ%;GCVcHn3y&umx9#G2{9QPqyjc3H8Hf0+{5I-cubmy z<*jFtnA9X-){MdALDKc$Jxs#a2{GwOZuX3}r-`s~+-GBTIYjHdMePn$U)HoAc_7;Tgy{Hii@mIWyNegpvk5JwO7tSvv*(+M%oqm_89q7uu8r%rL27PcT&IO_J($xkUJIVJ&Isz4Pag>MkG=PQjr_KMhx~I9 z@Rjn}kr2_-9B59HV1@zc(bqcbpQ-+ztwyX3itcS%j z4`v=g$yR#Rzqp!eaKSQK(?|LDk(vzs;q+?Wj)kVHb5OEAL=Uw&`8+` zO_UFynX(C5Dx0B=vIW{JTcMM(4Z14Zp_{S;9#lSr-pWVNPuU3rlwB}b`4}EncEcme z9vGo~0;83^@R+g>o>2C~lga^@q#T5)${~1GISkJ$M_`6>6kb%0!Ar_FJYx}4puAYVXblj)+-mGK)DQ?ly70Hat(GU-@{Jj2JBXD z!d~SkIH3Fthm~L8m~sbBD8IvL!>__!zm6!si5Pz}a{5z|;7>=gKNETV#gX4%66yZZD9K+IrTWXE41YE% z?yrJM`>Uce{v349UlV=puZ=GH>!K_E2I!i<5xVYgf^PboqFeqJ=of!0^qape`pe&* zLjFz^Jt@WCo6`LKs3iYGRH}avmFdr;O8AFTW&Dp&<@_V4ivCel z75`W&$NxB0%Rio~>wl7J;GaY__D`Xj`k$d%`lnHC{L`rp{uxwf|BFnbzknL(Uqt2kmr%p}uTziu-=s$S-=-e(ub{^JS5g!GtEnmeHPkcyb=33z4b%+( zMryWy6ZNuxD>cu*om%Msh+5*`MJ@C1q2BiIrB?V4Q1AHVW?ub;N&}I_|$po$`N2eeSuI`?I~(0qiI>j~%NHW1mrn zv$NGl**DY??7Qknc8xlk-Kvgdcd3uD`_yslDRlz-wK|dgS)Ih*Q73aQbt;#tPUAAv z7r2V*OfI0#;##RMavjy#T(0^OH$a`sJ*v**rm73Lm(@kw+v-woh59D9QGJ`+sV?V^ zsqb(bp)_eb4DrS36a8t+TWmbXHK;IjgA~oDJ2D&Q|IsXD@ZLbF{kE`MA2> zIYZs)d{N!wT%zuEzN_wYZc+C;52**7C)9(^FVw@%E9x=lPwJ;GRz2ZLQBS!_tDm`Q zt6#e6spnm-)eEi%)NfpQ>P6Rh^^$9fdfD}y`mJlO`km`_^}1`ldc(C(z3KW~{mFG* z{l#@t{hbH(PhL>};#1YTd_@iT91ZbxGzZ^YWBE>+lOL$L_z9Z8Ptqj*70t`f(^P)B zrt?9~;CE>ze^N{0ztocX3tB4wgOXGEaYlc zgdtj0VS-jon5tD5p4Vy!uWA8dnN~;Gpw$)jYxRXMw1&bpt&vz(Ya-Uunu`s!)?z!Y zt=L^_Cl1xxixagD;%u#>I8W;&F4nq;E45rPU+XUJ)q05Mvnmy6 z0Lj$yq%zvWQdMoJ)JPj9_0}Gd25ZBmQQAmpvNlS3S{p09sy!yH&>ol8Xyc@OZM?Ko znkfz&sFW57ikx~w07C6 zXy1C%w5#4q+BI(@?K^KL?Yg&@_JenXcGEje`_a2tyX6gPzj`-le|UFke|ZmUcfIFz z@cyJDAEQ$~U8jA;bk~Fh@{QF6-wfUDdr?<>OLW!uuCDpE=(=yGZus`< zNxqYMs_(p>?z^RDDzsi)(e%=ash3mA=-EnDy@Jw2uc&m@D=9to%1VE|s`99wqm0*U zDzo%j%3FGEWsP1}*`+sB_UKKNlX_F-yxvUtNpJ3F^cH?mZ|V2xt^MhGJAanm!CzPJ z=?|1`a?e}Uf5ze?}#U#CCh|3Dw;->v8QkLnNmztM;J zf76Gny#A<~u8&ZQ>7&&g{c*LHK0$4!PgFbVPpJ>-lhm>LWc4|Hs`|42jJjNZR^6&k zQ;+MQ#M?dPjd*qxDxbO`of!>aS`g_4!&AeW6xMU!>L77i+Eb*R`(t8(N*u05~6qs`Rc)#m7{v`zXNZL7XsJD}%lr}P5tTYaPUgZ_c`tG-!h^sTz6Z_|DH z4n1Apsb}dQ>vi={^w#=b{Xu=7-bX*6KdK+n=j+GxMfyp7rG8q^*FVD}KGzTHU+Aaw zFZFNqbNV&?EB&Vawf>iW(QxUPjTHTgQC|PnsH0yqn&{sd&GqX>YyAhKzkbUYsQ+q= z(SI{0>AxE<>3y0wzJ|oNg+$e8e zH!7JojcQ3?Q6?R#J`;NUCGhNosD?PwHeeOd4o3N}6CaPMT!gpY)2+ zB59t{CTY3RE-7fVPugX4NIGeBO#0I3lyt%9lJtX-oAkTUJy|w-B$qIHCYLdKC)Y9h zC)YOyCATs1l5>qA$wQ2XlP4HMlV=&jlII$aBrh@^O_v@M#?kBiz%~>IVo=% zFQsfUUQRh;%uV^!n3rDA#Z>5$omZw%XR;1Q3-c4;} ztV(Tbyr0_5SerW32&PUj)}_ucHl)rq@>3TW8&ek>n^M;s+foaRk5YFVyHbxDAE#b0 zcBfu7_N4x3>`lFE>`!Bj18JghD9tpErj;;`r`0e%O>1hLNb72xO6zT$PU~-co;J!j zllHvvRoV>Wo3us7rL^V7<+Oa`+q4gjt7)GY*U}Cd-=}?H{E&9ZxS967@nhOg#;tTP zen}UMJL##$Z|N0`-_si!f2B7u?xr_4QF<$rN*`i6(#M!=`goH|pJ+PM7n`p1l_sB_ zZ%XN(nBMgLrkeh_si$8wjr3b)Qu&@yJ8_k@IEoRM(LuQ?fqh^DQugpdn*UbAe zel#0r{A%8x$(YSDMYDOP-)xzgX|~C%YPQX6Y_`knYIevRZ+6U_WOmAY*6f-&(|jOv zq1i3-9rMA=b!M;30<(AKX0vbRLG#hfBW7OaG4tWf3+B+w@9^~vb9m-0a|9_hcRdU@ zso(61`+>9@ib**_ar`MAe8M(93kK0of+y6+a8TX;lnUw6QD#6~xv61T zxR=AQIDHsWzu<*|&R$Rt;R9ednaC}oek4w{8qo_kjKdG5Eu&vS1MKhM1#KhJ`|(;Hq7jq{9w z>7j9+7hrT~oM#a{WMP!&9TDcQcN*a@!N|Lq@R#80s}2u@?)q9nqtIPnA1EKf*Ebe4 z={Wf{->opG6*|mmWmcGjcs^=#5YIMk4*Khcx!~^@=7PT~;R5+x|2JW3_V518N_TMwNo8ywXBz|A7&+GR`p7-oCGtcbv%rmpIo115#lU6RODKyc_MRms3 zJmsQ>LUGOF(GoP!%0-uk%0XeQwdiV4+}@P67F`#0W4qS+M>mBikK_T-KSFE0#xoWq znALEap@LS!83LuW8qPR~^0YC)>Gfx)$Dchly#6eD{aN(*Gs_hxawY zNz+Y!3lcTm?8=Bj}`X}^p@50tX*}b^;0`Z&z-cKC^Ewx;AC+f@2g72&D$;}lK z-D_;$V~yVG84&H6)<4(=cJ*2A{zOda`xDh?`u;>r+1In96v3!Iajf!e+YV44InH_Z zCkCqb9pAG3iC|an*jHo948iJ8j`NtZ08wvSlQ9(t5$X+V3Z|?OtzNa3$CM3R>i4$p zn6d*^FIp>N$^okSt*r;9f*?-)###we!H}qaZB4^e2$WP$TB~6y6q3~Aww{P*`J zOeMk)b-I;pV=fNE)G4-sm?{Ay)rnSSmy$3_&9*WvOTp{v7%RKy(lAaPZDr+>V1oLJ zbqJ=CVX`{h%Hr3RfobZ?wn3Omfj87a*5Q~c3va3YZG$mY4(6zRtfMeh9_Fh(ZLDqu zSg5{aWk>c@gvDwXD?83H72Z=jTC*`#3Eo%RTPI?wGOSeFI7-@TK^0i7wsJhcQJV(q z)aF4=@TpW4K2n2qwp8a(kgEe5Ani1r-{tY!@r&`PLrL8v9 zg57F$$3v7-8}_Mbjz^eEhtJeXj?!2+1HMozIDSQ59XPC(wU0q5b>Wzr?1;A2gnDp7 zE#-KOx%J_cTHKL@H5$MfHQteosfKV)jR{h*wMKA3RqTDyiyOlwRdSTU+$L~EbviED z(xE9_S0n9{aKtx*TWXl&d*n5TAJq_t6WeG3zo-t!Ra*wMgnO#hJ{ilkf`_WvaSeHy z@K`lDTv)C({H6+y6R1%e_}%@FeJtK-TlmZUr+pyKX6@i#_j8AY<+22W`>A~#=5`Q@ zxqo$BM=2czi~E6n3QF!I*xYv=H;~s^2y*}Ikg-M=A=LeY;|XfnRS0+AwEczSvYQa) zzGm--8oeZl?#qr3ah!J-WcPPLR^;^%-0t&17UcC5V%=wh?3n76dpxc_<5;1uKFR~Y zsLQoNH}15^`w;4gG#}OjZKUe)%ogqu-ptx*x{`P2@geh0NCB8pjZCZMN?$+5uK3iuG7Zm!;voSIf#z3}^?7_L7y}+|PI2Y!5&?okpb1Yb# z;~>&G8R|HvKvU;bXz!c>y_|30(`*)uaV~~z=K>h-d>f`X7s4#Op6h%E7C4u9H%j&b zgJ-p5fbl+2&=z`wTFi3X!5+*L1<4aToANLK0(kl^Q}hntwHl`fQrtIP{X+i8alT?TW1cMaR&@?9)Opfdts<^AH3rH z6is;mCOSVuQ-1C>Ut6#FhWeOqn%8{UXujI{g6k!i_v#yJ&*>X#>%Q1fo1J5b*x?Nq zmG3Oe)z*X% zB`D|o9;)JX4d)fea9;B&o8+^pwyt+mZHDIn4YsMawq;cQO|?PQbCng==%?EqXUh6H zFt;SUI50OJw8L^4#&hRJ#``@tvJ3F%MruEl2pN}SIHUioZb_J6(+tUeFxS}cp}W3k z?iOHi@6nJZ*aTZV7T@IA+PVck^WYb7$b*{2d$XPO&Y#fYzo5k*K!Echq&Od=rJthf z{Q;Gne?gk_A7~;9&|EaZK+yuPiGeUhw8L~U1ZIn&us{rh6=DQz5>?nDN{}PUuv4V) z8D4)Oy5Xo8<2?ehiT4P|09a?c>SlgItGN!T+$Hr8%C4cx2z~>Bj+?t&TR387z=urh&B!kADE#Bxq_;(Ngs+dwO zYayi=qa_0vjWaV!EsW;&c!IabSs;!Gi{>&X_1Zo1-c8ebcTL`{ zIPP7hLGJ1EtF46@Sf->_W*HZ}Y6=#MFtK9YvDied*pbw{ag!s8Rr7>FF#M_IPsTr^3Qw6l1HjD1(Mbm_lt;2Yr7`DE)t$eZ?(`|9R5QAJF-GG87^P-LbKO1B z>+b9Xod`2?_oceCGubj|=ZAM=(0^6)(aZ@iHtDufTia zHCQj+gpJ}Y_*nc2wu*OQw|Ecd%m;8%d<0*MPtb**!*}BEa83LZ?umcHLl?kfmkIuG z6%)W^796fXA;c9Sgtka=S0*f$hlyN0PWxTHHN`YFgazz~-lxqj5VV%r{<9J}+ zplf>8^Be=H6Ie?>=p`gM$FNvaw3%;Q>s_W1wF*6NR@s;@^hkAJp-0j@SRJ2I)${3^ zhPqZmUDF}Ll>zatrcm6~0CjB$DXvD4hS$|yO(5OX%tzN3!Qtw7bxlWI?|O8tWqraT zQs;Tj{+9ckeGy~jMbyhOIff&CJ9T8yo%)|+thjI`>uQgRc0onEqN4p!(Vp0`y&&1u z8!F*-nyW9=boDPX#)>}gLUr2+u2TbXmMc)vlpI5tUqy%gFBKhzijF`&9)gBs+H(+W9;D1Dsf2|&Now5vg(12u7TK4oiolr8Xe#)al)uHec+Ww)ZT z`%u|kP|EcQly&V!MfX7s*IvkQed<-Vl+Qr*eVxg$Wb3aplkyK#d!%_?fzxkDT8<&y zkN=u>7=QX-PQQmy)1#>ASE%VJ)bt{1dKSC&9Cqus*sT{)+Y8vO-~ESf9j15dE8L5l z%e+a~^op)&qZeP_Wjz`vdyZ5p3$;9$fv*M` zUX9Cv9W}mz8s9>Ve?g7!LX7Jk4%O$_ulNGxdV)jtDQf#1`}P?$aQ*Jpx}1;Jjl5bn zz=`;8kJj~U6FFx#n7=A`eyW&bApYhjVZDL8ufFy+8X=|(-*+2^ab!LeF4m{yp9!gtf*tEj+J#x({Zeh<8;i{alDSXe;??$ zTE{gyuGNt(yjPi0OgBW*?gx3l1tgW;VSL;!H-KrF&ks$Lb{L=R69zU( zLYIG9z+qM|J`)Jlg<8x35L>b6RYG$Qwh~%1)KB#r%ub_|WOM)p9UuYhQX;sd64?1A zp@Ni*onHoSNp;{ysS*4oH4}_dbHO6D6e6Td!6mg7sFWqBQb!?9>LQepUJ@!v-G%DX zAfcAjSEw!Z6Y5F*h30tON*XA%lLmV~7gT~@Y}d83N`6zEqZX>Dn%+ zuI*jV(zT8Kjt$>6z326LYNG$;~CkT;UKWH%MW<)ARP9fZ^yoZ z9Xkp;HXA#3Ja+6v?AS@zvD2_)r$cLLCbX00!a(V57%nY@QPMjwMOp$grKK=SS`Kri zm9Ris4ev|qV2!jMHcQ(fNBS7HN?Tx;gze(>L1`NtlXm!YYzNy7{Sew!w)?DOVXMz< z@uhdRIA(jGov#N+Y zeR7QRwB9*g;8w}Jq3`eRGKHm?_6WVQJd25K#`BD?r!V-VFKUa78lH2mmN-q$V!KQs zP5#RfiYsBY=Lp4>u-h}4?DXJn*y}-UqHe`v+)AHfcYcQ5c>n^Wqc~X~2enK4})%f2H`Z*sZo3SFre>D+^r!>LJ3X z!VFJ{@Tss2Z+r&4>%nEP+=IT|@c=B+Lx_}qg=pz9h|(W8y8gn^^*7X${(+{_ztBn+ zpsQ?x{&E0Jkj*evCNM*Gz)U#^=E}kFE?zH_Lt&L1<_+FI)5r9yy`S}$I_}sidqRD` zWgG1=y$CbycWwDXeFw#wkLyp_p~zz&sH*G{=A-Fv=QaIz%=F$PadQ*7dsbHE7#4B6 zH4Oi1rk|15^nRj#djmVK1W#aRZ`kk5d{gBOP2#w`Q>D|Se-B@wjlsw5oW*p`%3MzF zL^|2G=dp{=m%=_}kIC1z8!tFbrErk4hh-^eG40{G-FVSi47nGzM`!`=z#@X{;b28U z_Jo5KJ#ipqp^OL12^ARXldUKCvg`(ntU{z53(;~sh;nI&m6M>foD5av6sRYcg{E>j zbcqV+5>=qPoCf3N>M%*pfOq8j@V?vtK9C#17P%>WAvc3_ax1tXw}DG?JGdfufS=_~ za9{2Wf5=?~liXDZk-G_^JV21;-hv|c5#r^(LK(a+C-)aB$pgI+!@I+1+f7fz@K|_e zuZa_~2};9#dpf3y35w6rr&V&DO(=`bR*yNGpxPdz+o7`wioJxbEEqkLbR=>-(riMm zG<*){J#D;;d6zy1nDljRH}7gb6h6o?G~~AfMfwfx>pM3Wy~eKt^*s;AI*GE`_BhQEW@+@c|&&Ix+ z18wm-OP&W^V@$q>V{Cq)kYBq)kZ{(q^Os z(&nTi(iWr>(w3w%(pIDk(oE77X=~CAX&dqq(zc{K(srZ=()Oe$(k#*&X$R5^X-Cor zX(!SbX=l<8X&2HTX;(4;X*V(m=}TlF((Yt1(jH_8(w^jHq`k;cq`k>7q7-qi1bx53F#=3h;%ebK>8YqLHaszBOOCZARSA7M>;M{a3Expl+3J97*Avd6UZ|L z6UlE3CXs&`OeXgkOd*vROeK`TG*XwrbW(xA3{sK78{}68Gf6oHZ<5Ch-Xi50%nB2N z8O|ni7|bCz7|bQ_GMGoUGMG=MGFU)XGI*Q3!(bs<#9$Fw!r&dUn89MQg2589iov_& z0|xJr%?y^3(EXUA8<-(BKf< z-Q7L7ySsC6cPF^Jy9IX*?i$?PC1`NB@8q4iRWtLO``)S#3JUoH>h!aE_3GVwZ#K;y z1Nih|1G@Av13Zt!UQg!4-cS>~z}S&cIQFz?y4Qey3O=?3cO>0wWjca2&rnZ%@*#qB5 zLwn6kPy)eBhytfZDd4&Yy)bb}y|8eJUodgWbD24X?pZjcz8c#{;TqUy;hJ2MJ!SPm zUqb{Y?jr@(j2J?ej37hmClS ziaKWWy6wXSO7G)9ZY4Ir(I+~=Rma(3>5%=x(jmdX(xJe>TqoROYLVWgGGNtej5!3hLhFn*y&3z2Ne#ppqIraQN59VAu!3T&^m%l(8nAGkco&=kxUn#9 zS{#b?m9kr`f4@#_QbcL&kzW+oQj3zuxv;7n1^!}Y^)Zvi<}rk0fM?wY$Dd&#Vd*!4 z-I$EG?b<0Da$QH5ueY$%lhT5>#uTgCXZ`Xr`L&8pn~VAH8Bf>euPIxF$u&Py?G$TO zW1mK!MaHx^@jp+YCw5O|^?b=copo$!>S6ymZ5>L#ji+WzHGq1kvE`^nnUP&rO7YTUcGrY@moer5wrSoc8-8D-p}4D2 zPhk&_dG@3d^Ga{ieEp^A_84)+TR}X9JvP=hl?rnp&9|r7eJPyJZk*1x22ZBGn z{nF{gX4CfELk*pOf_`69ji2sf4m@iYuhX=v#I&XMvz12EI2?b$t=co{`p;Bv8a5d8 zc^>%`yPJ@`jy&!TRnO~6_72sd%Ob5OpG&;ypQ(pqX3vVd=u)O=y|eFY3<^?qeq_eYlQ{TN--Iz;JC=V%%)>8Ndc z`fXNM@~TC5vnFJ_sL@_KZW;`D)+A}#zMw5+l+I?5@g3`9*1n21yKeAsdH22M|H3-< zUKxJWn|h&l3C@=Ja7f_(3C{9jrXUg=RoCQ; zUFaf&9PE%%2NA;+=qfrV7xveOGdG-Z{}AK$yplhK00_N zn01cv&u3g$n&d15nUP(&t&D}2T$b5 z`QlrTMPd$ZHIAfW|L&hnF@sE%H`}~vxM!n1Sn~@`Jh{{x`WI~KJIh&i;`Kebw& zo2*SpWlK!G!)B1Cdwf^BVt%=1*8c?V7;Hs|O z)bE$RyQyZ5NyVOOSVS-C@BS6Eu83HM&`bV?mIcQ1CTwW zN!i!b_E==sdv(=&P3mhrP2n*j)my~T6TR_m;i>|ZpuT=To!Y7x7|Ydcd94qQ zGTj5|3ikAdwL_ooqoQlq>BWZIKN#zH{Q;Az-^BOFM1CO>Z!OVvet4+_z&~ zvtt|vVr+eE%=w!6*Cn%ZBsRs1`)F^+zDLLYPu|nHzT)>cZ(;byki%;wnybnwnCAIU zU0D3myHCL{GRXlxj*JYs*Vh=R^!!zfxww5lrsM2(06EE%>fYJLSiZY7T@wwDv5jI- zQzw(^I%&hst6qm5RkzOknix%$79G}Gk}7^R*u4#6jXqXS5jT}r9hKs|71UE&;|(#FwC@ClA?7(~gAI=#oY-B5nn7-1&tF-lNn&fd zPmiA%d_ESGVrm|CGg~i~N`V-TmGKOJGp9pN{?UOK6Q!tuFE;5Gr;Zc!TOs@~O*t?-M15-I5`N!US9|YYmw%t* z6?-4+(0E_#5PTo*(0^a@4heW-M;o6i>-{1aow7S`QYIa#xjF|jW^dU%UVuIZgKfSd zR+Tb0Z`vw)o?_T~lS|OD!OKMSsT6>PNiM=SI3CBe{RC$3rc}N3ePU933+iXLAugc6k;Er9k z@oUMT4ZBvKn1!Uarq)lj(3Iw;LdoWL))n@Yl)8z0s%F*3N*gFTGaj+AwXPC0YeaL= zcK_m4V+%4b>MCnHiHhZyS=JX;t%a^2wFbNI3+MVX*!QQ6#bD-i;+R$E62-?cA*}r~ ziHi;{cMOLLPtGx~5jljC8x#UQ})iG+sg<&g+oOveuh=@VVuswT*Z$Fn=L9!u+! z)XXi7@;Jjig~gDC9&zf;h*u?@tb`@7IYRAfqr%s zVQXV7;L=5%$?ig7N}!KPlS>upklu=37Tk*D6iXHJmQNLZmEDSk%O4{#K8_esX=AP@ z(nVVd_eJ6gs*cH$SQ6=yT@tG7tj z%axpCPhU)tjdP?v`F5Lh!}Hv9gU?3?%1071V>bYETd9$ogTgayHz;`9!5OKCq&^+F z%l@409;ElhZsuap?6!VPs;0%nb0Jx%rd4b9v^wWDTRb0PzCw8b z&6{k>F$-7l*Ho6H3rFqe(Dm4Ns@QzL(T3x#YpLhhj_h|D0#$*os?XO>g90`Y@k)at zW7LD@cx2z2mB$;qjq+KN1=?ilX6YiL@m0=l+jjHhlL!YZ!D$M<6p&KoOVI^Wrc0$U z%RsAdDiJ3gNPVwY4Og0^ocRehc+5^&z$4_)N<*2@-b&owPBYJ^q__@?`ok--pbe3l z>GzFPo+AH*Q^A59`(_%H-R#gcI7f0FP$N77X=F>GZpM1#Ue!= zv?2!`lp;wT^&*RP#v;vi)FO{{9;wKd*rXJPTW$&*(!$@Eui$<_lRc|| zllIod%Hfp8if<9Zf`&ZB^ESnWDq+-5Lrntl?=vw>IEUV)HB8t;-OUVR3WH_rM&8Bk z=nCh=xnkbc4nsr!W$25#tJCq0>;P$mw2KqgYk*MsSBOnU`DJfR_JGkugg$aU?!;J-Ua>KC=1~C zaeKY_08x;J`s}2j`*b-B0zwG}3j7`n92Mj<@I9}7UI64@-q?X(+c}ysSei08*%(?| z{NuBNp`#PPk<`h~#nBj`Z(`vHFm|?Z1?W2hoLwAk>5Z)oot%=DWTpEBkbJE8jjS4* z)U-R%AhZ$1I;r(w0+3WzXRTI>tu_*@O%iY2s6Gck`F-OTc}3f`J`t?sb6;NJV7Zup z<9WG%x`x@t1YRdat3qdu9_OzLF1#s*41u#o$)u7==hj!Ue$|T2v(z7cxvLx^)388s zn6AS7)oi4>Ki;60A^A(&`3>b4WZ}_dDIKz2g(G}|XOYsD{NcB+OS6w#y}BIp#-SC< zOEGdPv|u{}TAxesAO%Z3!OQj}e`c(6EB5$sHE`&N3tfmB7Vt4)O3L<+mSLJBQ)tDP zF3T!o%-+@w5wj0s-v7dxlydo^@2upo1bY##sXw2zbJTsqnB-TBFj2ugkDkzQl^r!M zN>V5|X4uH+WX@oc`gty6q&n``w2fnHpxHkD+%5G=2Q>R;o!D{?vVu4lol5U@)+6*v zsQzv&|A6#9*kO&y=Oy!qJJz;4h(F*BvN>vMegXke2L<^X@Cg1BJQ)jTfTN+cik+Rc z(?3w^O!Kl=S->0arf7G2_-*PhI}#E~N?Twk{EgCp7*tRQj(i9MT3)balzvo}z1_hL zMW7%E#?q=HBxsdT$UE8clj15;@Jv^BopK376JoYSQ??vWcHP{&VhKxz@6<+n?0~L8 zF(Px8*W|^k?=LU>+?#d|kJE-FJt%uRy{6kMixm!b_TpVvG`G?gZZ zX%v;|bdm^}q2bckxnXFI^6Zg*Y>I1#L=jmr?5&Ie@b%`dJGkthfk&U3=PPg?Zj=pocv7O@TW%im)d?Kt7;w&0 zGm;3)OW4^WFk5nQ{A++~&j(E|BzSc}R z&1jwyv8q?r%Sh`krx~@mzi2GMvpCLep`8bB?J1>%={}qU0}?UdL6xy@6}FpyPaX<< zmt=_>v6?pa4@0+x2@RYPRnjHopG!I92-0rchNLSP6JXJ@XPO+ccl%DJP=OOd{z+e1 zy9bADw}Wm+L1s>PhEtYLOX0!m&65U8`zSkgkZor;j#a(aXCyvyDn4zcvASAdgduKi zJe(uA!h@zoFSG;CYPC^9<-XRoI!1d5_hH1w(C%k<5#98xqKyvKLg|v^zEkvx&0&=T zcGb`$pJEghw9IvA`@vUIv5XA!nmJdtOJcQCCN0%TrZ&acCg>Jd$bK!_<6JZLW4Y0m zAJbU9JZAJgqn3{E_3>Y%vtw@;w2nx(XxyUD&HoCeF~` zn$Q#jo%x-|yJDW%#e#lW!?GqvBAhYjiWR-zu{W_lP?AP@s%XdJRuH(BT_4mI7-cWg zo>_R9axm2AxV#V_)*R{-5sagZcRK235{-Tkkc8igk=Bn9P4Vs-2u6VU+~XqGyAYN(X;AWuQPFnrmS@jnKf^Oi;g@vtCr0qp_;A@UhT_!Jg_@NPbUVxQhUO1~a=}eKO z(zGqe3(~8|zQfvA>u?73)H(~_4i1gDqxY;9sWew3Hr~&%k{Q^vOPysh5#Y%LHD%1N z?u&WB{8a`nc84O%0+YHR>IZZEH}kF$v>`=4>w;Aeu2Sxgt7fK zZK<{QUlM$Rnqohno84l3J_S4D63{@b_l~RmDxyI^^f`8ylixk}*TZiMt;y@e2RyB< zVf8EIZg2knxRF6*#ehO1S~w`_2%6&=;tUJtcqs|l=SzMPrJmVtHX($2m@x@#!p{3-rxkig9&rU z!bryRf29eFD@LfN^XnUT@y1H&5Q5twO|7g8Zfp-Q!_RYQHh?Td^;vr#ePL`mEaMkk8scU1(r;IT@xVd;?U`#OOz4 z1D9xK-&3dPSsR7H1E`klS?yE zkg+{#rCHP}`wAF%-!`3GxN|b%X!#GJ-=d@5v!mVvquvuouTjXy{Njh@(`osQ>v4@e zKP^K0-w{J)N-QB53P;uoV^DJkfq6Z}bmf*^fRuU3$n+7#hxQkM42u#eZ?a~g&pD`# z_wek(BydHN0*}NSN4MQU1MEuGiHxI-iG-Ja`C6xzbp50CX;ZwRl^+Hp^Cda$ z=S9kKB}ODp)SWvQ3Qw`&bXuZytP(-i7@B(;Lq6^ae=i);65@=w=S01}!sy#LkqliX zTSK=+vG%#Ht-+PUiU{xw_`zuV>mm7_A4;E2S)Q<^%-34_1dYu&shirPUF10$pRgD{ z9E~kGX6ZYNspsh%6q?4VU7lnl568}tIh5=15gcHzMFNRbF%gRdYKR!gsO&$l$@&j^ zCoq<(#}s&@jwu(ee%D<$jM|TQvHy;li_n$)gKW zPqbgEEF2HW%@DlFs4&ks) z(p*&c{xBdQ8t8wgX8He9&Hgoz{Bsm>1egLG0k*(t#M#3hIFbOIj2$iPo$Va|Z6?W9 znveoxLdvot4TkqE>Dk$4|Lz9w<5 zcp_DN#%E4X_ud*O)!*FI*ZZ{nxfxf(CGVt13x9SS^_yVzXNVCDLlh~v^1BcoWR8Fr zq3EXrgMb_hW{D*nKA{{5vI(j{85&&Tz};4*QthrV;wa1{ow7?}1jy2MqivMD-H@D1 zFCl3hKXSJXh1gbwp(UN+pCcfxGhrQQz@emVUuoDhAS22h^|SuuS@JaU312kHd@1i) z<{H&~D5i&&oNVa}wrnL@9c(t^B7TnK+B8;SohtB>4Y!;H>*24>D2~IhB|(*Mi`l(b z-B8B0ZyeuWi+1yq19H}M#zt(Np_hp^FfA-FB*oZ8zfwuK#uLl6^Nr#23g0tv=@Dl( zj9%l>ChBK>%7Z-kt^k34I3geC@hH~y;h$B2+2dQt`gF=VD3!4B_}6H8R8K)_44h6J z|8_bd{ZBlV0XBxV&KAa^?#2LnXA8Uk86;J;mFE zCsm?Z91LP*E5wp5lgedqe|@&{z7{mA`~fv==9jeh+ae0D6hfcf>;CNb!?~^L)Rg{K z7Z_)(3%nca`hvZFKNx%kHom3CX-J45y0~UkEhfMrV=$c*T#g*MzmAmKo;sWpp@B0& zgd#)(?m`%JSTk#yDcS)Yh1;9 zwiq$;+4=kM4Jg#?9*y=Q%~+*|?Fub;*Lg|<=OlJ3cm329dqlgleRDoIlAn{_6$gJ|P{&*sC zf7Ot8_!S}nqUJDlKVd=zN~V zKvEsmJ$FtZ=V6RZyiG7Uq_JVjFcOD%$aS-3G(p`})kn58^n*#pe@9nbQoH7juq?n} zj=U{AFP>!*i%~|JMQ$x+sAny<5qxu6EQ@%|gPX62?&m}2(16)3PNK5@w6^#I6!V~c zyh#KuNMIkiMD75YixLs#Hgz8BYI0H>8)P`uIevA;vPFdDH?-prx-z6Q6eYS^nZ67$ zL{Y{?1rp*uDNzlo^&U7;M=sN_%a{(7+X<}Px~;TQV}e4s`I-JLFc(tzJrd8Z-8ca} zPj}9dPj(M5>vr_++c@2$?0ZvZ())r3A|Hie+2~&T#cBuPyYqf1vt3u7L zz`&|3(ri##5D7iG`BrO|Z82%1l2kJn_=A5CZTlUe8sZhA#&JM}~oxq-$OHbK1P=4a;v^Z)9POO2lx$HZiG3D(pPVcrJ zC7CnB{?O-sg}b6JsgkV7o+A`QpIrD6+&Oo(im%iir(*Bs_kM<~&V|=Af5}-8a_{7f zFk&N3wLLSPKU-u$Mm$*8bFvBA{3S>jg%vuxT!+p+6Y=l?YHW}yo$9V&m}+c}5H*_?#0RXL_|HZodmo}+uQ>ALv8%VkA$r$FY z)PV|asAwTwLuNCaQJ+b-V*NkZ1wRt*nw$z&dS1poy>+Dp;I`vP z%DyncnM4?dy}Z~qlIO3Ve(G@|`Kp^+yiIM#V4NUh{Cvzf)xg3cUN#--tj>i)aIz2?c-h*+8e*N~wYEi#r z5s^&VcJ=8GhUU_t)w)0o4gMCx|6X<~jsSqVp|usze+6P_ZfD~3Z)KOQtSgTqh{|Vd zmAZ%yqarE@K`UkDycZe%NfORHKr<{K9Dl;uEvR=zlbJ{Q*6hh-H;}*QF%!7w;vGX3f44Mwvma48| z?iy`OuDhg@J^oc_3y`vI?a)iZRSFHJ*vyvNlq=WW{HfqbgA7nL?4Div`m6S%)Myi7v3UOk7~z$Eo}R zD#c4)CF?cbmn7LKcXrRCjDg*2Qw(9C>n0` zLo!uTJ|5pc)a(02+u88&pGPUL{l@YP_$c{<|Nmz2f7BPuG)F*AMWhB0g8w1#W``=O(PC@%ufQL;Uw-n2yiy!knGam{ysW)>@nPv7 z@AB#D0OcG?iB`pN!LcIKs2ww)J&GD=E^aa0N<5KW9#<5{oDdI^VJU%P_a12k779F{qKGO5;(h z7b!u-+c$mbvl&)I9m7wbzhV@Qw%Z`xHDpX)(jgN%CwD0KW|AQ9BcRMzCWF@hZ8~$) z(^xAml*tX})zDe2%56c(jn#TOj3UJTell!-8LNm{&JQAPn%WrZ(bCZc`=!ua!FrAj zQ+I@y8+;UZ#Tg?Za=-PvY<2BNRG)E*9UHGoUBm2cq!Wr0^IhF?&xnDv zL^#Y>yILk@MkYq)Zy+SFBw!R^uyKO}J&>fW-*(3Z*lA!Xz@Rje@ctSc3U0STfJ;&! zbikMAe_xYg`_Gr=U*(9kow1?y|I*ihOH%TnOh`TlRuJlfA|mpS@t^UnIjuV4($bLF z1X>b6(WG75i`&O8W(NiafV4;e$fC!O+U^xDVVQd{)iZs*db&r*3-*CRgW^Fb_xQep z+7subD6lz*9|4yv*1&?|)XSG&^6JW(xObFAv|*0$*(1L(f*yLJudBr7y zbK{=Q>p9}g>AFLZ-7N8rn|;&`17u!73MRR(S;SZH@EGIC9)e4h$$(!fr`bB!@m6$yzSKUMa6kivwT+{97N^hq+o)$Ny51B-RUc zO2d|TR`85b!==Un`OWQa{frI;jn_6IrN+O>guSbq8nb0MDe(Gr3K}~ouX7rg3Q`q? zS+K$=dSPprb0~jl!wq*UQH0m|&^J!e{s_LOPF>fg@)+K4omm3cw%Mg4B}ZF{uBDcU zy+xF|-u7?TF)6QC@8h;`lk$GZWA^x^#F9kHw4mxk=WQ6ia+J|md@Tckkt*J2-oQI^jsXb1@dIx!{AW9bCQZ{N{=bAtkaLlyB@jlXzlHJtncV-i07b+E zSy=wTOwp<~%G#<(zH$kfarV+A5VS=MpYqB5NvG!mK+&lfY*>w8C8{*8z91Y2@9T9y zqpn@0J`NsZ@E<|Bke?egRoU&yxMW=cvSzTv{lfQt%fgMLn&0fK@B!!f6(3ip-~E34 z-B5Xm9H*DwAWtALpEN!#f2xGY&kx+e3Xuz;4@rcZVipO!B$=F^nC_1=I5OrOB*c2g zg2c>$?G2Rptk)Q7o^B$s&>xB^%+PNU!ooeoIDT0WBiT{5$J-AP!g}b^F>uMuz|vB_ zN31t}#m)dPbF5)PH&z>@hzBFgox)Vwzi&(fcVVCw+V7TRuQm+H(;Z2}ZM$7AAkT^( zyKm!VGc!^xc6K1qeMXQJ7=JWj!u+%;F;Gj}ZjvOk7BR33x@k^JH;oz%P>X^mN#>~3 zu`J$CQ?nh}$U?akojdCfP&=P-9&&Z0>Zd-)PHM1C9uJTzs``?xBxV?;N3{G-+)y{JKDHLdeIc;nTmA{B(QIz6UlmmHynCbgGGXqOEGX69O(1vGBy(I8tg zTXcs&OFcbTh$<_WkH11yQo%REq1#5_CKXyc)W`^#obgft!v0~%XK(~l8EM%n4D@7{ zF`dt>re~G$xh%M;ndNnRR{&VtwIA@H^6Oy!DD5qis}(=XAtKLK3gl8z9l7e=Fv3f) zyf#M5B@@SP#$%brr*$S-o-t&sY_fs(-V*+N{rFK~81BxX6oS?_vUZ-ebe>*}J4~)E zESEf_%5<7$l^kPU-1NOPo=9EIW2qd&eFNWX2n^mO+)1!2S2A<+Y^)^%H zIa+S7pY`UR4k z!kHbh2u~nPPiUS8OPFz6+m)~ADAzpW)9L6ObCTA(Ev4&S!@xtM+s7cxoVx+(Dr@%DUlae$rd+Lm;6}N#)~AU0+%$k5 z1AY4*mlXe15tvuW*MLCe z$+g>rV|lsyE3LAIaDuRiXPp!mstnm55Xme>->hI*%Ax%pwB;o4z;|B_iGoZ@0rzBD zArG8*0ggio=HkLY!@`_SM*E5rok@5wRZFLMM<5NKfD&~6m2$g$D!TFA&3-9%e0h&s zafqc%&V;gK;PXyXA!C$tEO6wF%O@vcKxj=+_Lz{R9p99IVe4QbmW(DhX~iibNBT9J z(B2>kX-4}+TEhEAw!}GGC0q{j0&)hA2*;1jbopaR25upJK3b28|Wz6HSa9DI~Ze&HiZh3~Gg@^9}4DoalF+&*g#rg#B;(3CDlM>0bt2M}Qg7UIO|R|F6rW$R`gf zh~(411dU%1Mi3kw9;{?fv}!?1%EUy3E>K%b2wUCKa+co7_mP?$9{iW4(m>xUz!wtmd3{nHJ7CBGvQ$8lKKzJNKFZLHHv!9f1a(S>q`6yeGLhgX5Mm)L% z5%M4{bu5qU$>CXq0Sza?P8|6le3%OFS6O^FW1eW!2SsKKEjoLHq7LL|#Z@qx5^9Ip z7}m`AWcsGVB!%PQvg{G*12V@S9U^mMpZ6N0tu3=M#zyL7_M1G*QaUS}_``Esj4x`^ zgYLW4iB(daDGslKhAsdHWD^*cuL`yk0}b0wZBWSu1Rh=7amMRH(R_X6YRuB_XiE0j!zlep(*h*gh z=r{74W)3*wJIEDB_`-Q*Ef=kqhw4I2g&u$T)>l2fPq;=6Ap~r%l{@Nqpo#GFjARNc zE1gJb+-hP^DE=oFUkN|Wpqn>F6M2;vIqidI-~o=@;_pW9P4sVyisW*ne2A)GTs)Rf z_FdD~^(eqRr^|DlJ5^1W@f-O7;-II-&KC|MTl?<7>&t#VC2W2Ox64@G1@lQeQ{CaM zoZ}>b)vKp?8^Y_?xZU&>I~Vsgm;y2qoXoTkR>owob%L)zo&4^g$1AMAQ<3cHPNOfw zme0D|plD;(FiY`PkPAL{OgrP_v|Hd8H@)8tI4*v0A!%UkA=(~vn&{I%pTtlCD5^29 zgbEVNyA=_%OD{eBC5HgxPD7b}GEq2y&Ir?})3iv%pza>d3DqxFzqh=^?!ptH$C)9q zck$pSaf$?BVdHC9Likm8yn~C-_l{R7{(u^~85`sV1l03yOO52eg8J8NNeWbMZ0!F~ zZox@wN+^OzAs>>AOf5npJz&(xGqRvW+tA=5OqkJP3IcW=wJD52`3bs~u7y-%uu~=1 zRNkOXmSfZm-XH`&>%9WOBZTa_y4!!vZ!|P?`+ht^8-U+S08#G@m%~y`Y!M zKP9Vy7UF(tl@Zj(B$*S@U!y;H@+a_^uo|tq;wo$ZH~2N(R5E}n_%8g`T*^6h zwX^{0QBr`7basVCHI1(SeL?+!byXYbT|tvdzB6}(+-Ny(ZKIJN$@0U8*O#M>^OToB z74xBZ-EJ`dMTnAOY37>8j_H0}WB;za(D9M2>P9+c4|>(Pk@TTJ$l$=m#^fRnl8pql z)98SH!PGuMzcyDj0iXi&&oy7B>L=G3N}D={WXz*e4+%(+qt;AkcaQ6kOYt5rjGv&UXkFO6q&$= zl!*XJ;{G`-@$AYluJM^uqJBzzY02P2dVuH*Z2VVPI>WSSmq^JI4Bw&EZMt0?^On)F zcc|hGU-39%i>>bfXVozR^Mo-%qJY6n4dDn!?7UbPmXaX$ZzO$o#7O&*S5#{w)({SM zXv3&wsXFusz-SIkf!q6EgKJ`jjKCqVWbh#Vjtl?075mS%XA4^=XGa%c0@lv<-^lP! z0v5Oe;&U8ob!urYa+f=LkM1OBVLM!CpJUX zc`}9q8xu$3u*}!5TbrM7jn{h11KFTXxxVl0_cHz>j?IdsL&f^p!a#*G^o5f^;JriwUAPf1UENMFW+i+bN77Sh4fasU|;NRE20^gNru05vr zv{qkOHEcvZw;ceW=f@&gSTIxOL>*$NA@L^((lz)onuXd72p)tK?t?D0x78|jGvRh7 z-+|6SuFfh&mOo=NB2^k0%h?1>TB9w6zj>@A9)DZO^-q0bOoaFR*kbfC z@e}peA)fk%;wY@2%h#)|RcLFAY>0xp!Mdni-m!@}h#P!s4-px5VJRiut=0 zmA^`@yu9jvVBA*01muN&6(FF_;PVQj4ZwGOfA{@khIV#$fc8M2an}A8Sn!YL{oYFj z5~za=6UQI~|5t8+R1aeTiNZ|)*?4R5K zZ~i6qpWJ{qA+*AkQ0^H1Qr~lKuMfk#aViZ-Q-v`=M*P!4!1FDGj(A9;N(rl zxrPxBk=v`i*vP8g23FR)7bD~W!=-V%*=kXG*hsla-$u7(5B^5<4BdHQV!TYeECy+- zOpf&GVZHcNoR7>b4XG2m21>1zs{_I}I!cOQ>e@yD-vD5`?fM*XAN2|39;aw@vzTfT zxEloOPYc5w<22F-V)^&E0lxp*!v0x{c8)+v0x$svK#W|>{udiC`+t(@3(MFxRr(8o z#4yeHa5*BV3=o2p)K%_unWmN63DMRG@AUsumJMZ4btk>Tre>yFnI5BKYcFFo-@qz) zG#qQs42r@)v%Y{A>n15U*M-#gD0R+YkL2G9mAz~h@#pDz(khg4*kXDVG)l=skY_pw zfc|b>G|9-9`631WldkBPIMSPWX%-Pn!Df&TYg3}o`fX+1cCh$DGCO35C0$NcM9(s; z!xUGvuIn&~1OK43w<=YHS*6gOOjgL0g8dT~Oxvd?&2AjZe(Z&~wvgFz^TQNw2UAby z;xq0N`Lb-P+A9u412>&za{v!)S#}_I=VOlef-ee%{iFN_XfngLj}@rj(XAZW{WeAq zIuH4>=u538E(NFA1?QyW!Ii~D@qG@{U7G%sLss*IEXGY%I|+zo>3(2&8Wst^;q?xV z$2-(D_|msGf0!(W`iS6;_UFHhBz$jE3IiaN)_+@;|A!i3;rgc=&g-QV1jiBy2Or$nT+)vS68Y02d@EhntkXb0c`( zRQXkPHau{f_q3TDX1Q;^ zHqK^%DYq;QAUiY0p}fQ~qe}hGv%(Pj!W@d=($o+@#F85io2<^&q@g_KHE5|;rCQ$P zC^$L7#Fe^1w!dxyLTTRxl!~ zUB(v0Hk@LS&0)+NO6;;5KRMXe7H#}LEim3?-^>Ybtj-~1CQat8mRn8uOfWBZ!^ypM z$Acy=MH{Y42fIe;@=*G3ZY;K{E=faf{o)y6akUtL8tpN&nRO4)>w^sfdixQ&tKT<&WHGt}ZVTb6re)Er9{A5t}*aU@u+z z#6D;7T+4zwa_j4TD%P64(asOpBCMXO9GfQR-46;0m*Nm2=MR-kb#n`r1t#~8OtbU)1Dlwx+E35<#fUCiUbAn3UO)@ zo!g(>DF?Vt<9e)>ZM&QfIrg}IW!{aixqWnfVvIiMc+#WJgditkf|MWNJ8>vKa#BTF}I{dS5@U$3*f z!;$vGKCpqBURz`PjC_nv&oQ&eUlTTRyleOex^GWM4^jKFJ8kYrJ;{cv2ia}YS`M1T z+8`9DlWYIY+QIPYK^_U-#!|=$l^=UfobAygp!+nWt?(y@NnVQToK^d?xRxN!_Z;1< z^lBM(n7hH`g@c!ch3DDb!qwU9&ZmXrbiI6~TG+k%g^X!ijhy@e0tQ~XD5wp#KxNB#nhP#G#NyJoyZQArtFSle1A1>z^h%g$FK6xByg1f$D^BI^>^PCrfH2{C2oBB=AV(}3U^L8k)ZUHad0y%)yx$Dr)hWg_uP6V z@_)ok{~`SA78ZcXr*6K_1>3{DgNb2(oWw{eZ7;fGc3|}ByGaAYNAjPgbEwC{fzidl zN0-aE(eeGxbV)tEtsH$2T!V@JfKX9HX=TbD8h^t+acJeQYKo>B%Pa6N-Xno&6?*n7 z$B`rWEU2!o+CjYWQme`#MzU@YfqvCVj7@2O@)tkzRd$J`x%*f>D98oa=8plq<7){srZ&jDCZMy*ez$w>-H*GV#K0^!?676=o;`quY#oMjW~*M2~29fG7ML`3ofV7ZE5$QB!5A3>elhdB&z$qV?)xn|GQ6vLIb*9)RzV^!!+fFGvS?+s z@oe@-r~H1SLCOskE=iy+Ze#|_kCh_Zv+0PuS zToWPGS2Sp>4V3*+LxB5Sv9wX>#*w23-e>A$sNGCdi=({!nccHy@53~GZQlFf zGN8??2wpfj+w)mIJ?8#%`m(dt9?^$50mF@L5>iTazVDBEtUW6)WAfs+g9_b;d40WJ zJ=oU2QC*@{2qCUF?o8pIz2*HMl$dbwu+wrU;0Fl z_`j~iDeTq?+b8M+IlYkyjn6bSb-t@cl|E9HA}AfcQP)Gx_|5SV`T>MjTGCs{YqsI= z_V1-t??0AShxx=&yrr@Wa_f7AyX`rfdn#?=xIp+>z$*wHx{{b_k3hJ8wYGXfx1k_K=ibSjTtaLUp0`+(rRMYb@R2e*$C-dkK8PA7?`Vx2bjih z8F0HbTz1F(k!e{+dg!ek@pd)Ixz`0Bw<_J-dyb|1(~gW91S<~`f`@K!$v$WPLgBL9 znHSr6rf}BzeY;N=5)dxm0FtPFN0(?^@g+#6Fo6<8zgao4#p2|4>#EU^VqVtFsoptj zqGEoe-rdr)Do^B4qrvG$*!}t!(k}gV*G%z0>xCh9_w_h|q2Zo_=ikU{ z1gYGOe?Xr13x#o-b^?Qp&@Qp9wmBDb8vPQ!> ztM(Yg=(?UBd@t0Z&t` zGh!`_7A~Uslh*px0F8Iy>El{f&ku?13$BQNpCS+6mb)j|6O{SaCDwmvEG4D?ecH;- zR*(EMZKW1QW=HoJBIsU^5$Q5}Hg3ewJkCv*(19{_zdRuRmIs%#!#X9>wEb%Es>-70 zL$Bqxw_C@jr#J@ZBW?hn);PoOJb*7k@KQ>NzTd>2mxAHJ#ttU%ESxJwEv~Pzlj$Lu zq!tqi_rP6Xx(HFRISMpF!wWSi)gU&8yH?+A?9YXqQuxrAP4zmMp>A4l!7o}?a5Oqg zW5|=0I&6sz(r7nyE5B*%G-cPgI!jyo2&1b-N$@hN*kG&WRt>MG(9zXls*^u(jU&A&D9JI6AeC(pZLD9 zvB_XuDQ|f$RFiXA&T+5zX>`mlBYip=pTx{x-gRb^xp#Z=;Q6_H5yvU90)lcaj=6F5 z!c@Hzr~a_Y59*%5TB?Wdt4#&ZYq_aTY+J+kU(6+NxV|Kx0pd@G&M1!y#hKA2oc(jw zD#%XYDln45&RP>vzh^B9?5vfPQKmFEJ&t*7qW{wB-J=g|*jY=3lHxJ~4v5aNMJ1S% z)NC{#KgYAuJ)wP5%1EXxhIrwUxe*nZw`6bZy6_U?{-f(%-r;;?)cm9AH=pV&XXw9z zFf0_o#w5WFIa`S5p+G?zVmg(e5jfzlumSMc;C*C`vvWhh(P_pCh~l zQa4ZVHqsI;;MW0l0IK6;t*6X~c4-_uBIVk)eiaKPd`fGjl58vi!`b1_5}r|{Bc27M zzj`Lb(=Ymv=e{UUIs>D*j+L!n`vIni&v}T1zlh3Ixy<$~N_17|Jj;v8sExZKAEJH+ zn*t$N87)!>5vmKvL0Jrlr?-*y8x_GP45{+(0`pB$2^2cFo}p2!iSaG>c~rvMbZ+>5 zW=M?X&%PZp^-TF6M?&Dm(i0T+NVNQQ))M*mU6O$#7PE8I`Cl8|e>0;b8F^swTB`7m zA|3*KlZlIZX?I|D&oHI-;^9MgqpEIprtW)(G_dOJVxBiEp$A7aIfp-UET%{d*lpo0(V&8DmCn-6Fy<9?Z_o?RO-;OVhLmT2wZpt`|N1qY&=GLzzN|TbCEP^c5zdpZ1 z_@;4fk=;{%qxj2y)EhWye}-ydPoz*mp44fQu3r%ckKAeO_|v5-I!oSV2v5@@tT+6L znqdzm{cR?Ox!pyJ7DhWBzm1(dlTGN0lI?&~X7CfD;(n>(<3Rf)~fJmg9x_cMcC z-zFtiG`t}{C{Jkc_^O>_JTP2V`op0j3%k~Mf+gF8$uhIw9R~4_21c1Zd{oe&>6ZGF zYnrjDuAJC+)hH~^GfhSLxXwbeH^i3p$?0HHQPEEyM;vc+u>s7EB3V)^k3m>dS+$=j zT+4`%j=bWDK>fWKx&p)COqRG+(%s&ndskVI$^7~6HOCpLyT_+YWChnY@yTw4JDdhp{#} zUG>BKqmh!matCFK*hcX%P)XWoyvJJ zM$<9dAHPk5HZzCA68U*|&a-VEOOKM+W=wMy2rjr@8kDO7xz??Tw|`|yx_;B){^7X4 zJ2Wfqvm>ShAiOpgdT! zQLe2RqTr-+nwddPRR4yBhFr)aW?z*agWT|+TAr8ch2L5CRd~C-V@-vf#>Oar-;wZ0 zClL#5^=$uNbejL17q9}U)IaXXB-1%#7E`+GIi43{W;aW~u<!}eTAki-H$UNgOvZ_*d)ku zn0e5*&_rnZxQ6dUx0to5=De+(nSJgPm82}upsCP^WC6HjON|3V(MIE!eF_csuk!Ow zK`A--v!mXm6MmsxdbqywW|l${)exh2RBp0A{0C6ZJp)4cOrBL4jrL~?+5UAS(4Td& z5UKiFtU!1MgL!Q@t2@2*r9()g3|;o+8${;CyhVf*(Te zH$$}Ex?5DtMy=8z4`-F9~A3LeV%+R<99OYn)K&C zasT*>6vgi!@q;NxF64`p+1JN)+x^>&V>0HuAqL-CWG8$*JNaKow>W{``gA3K@kK+& zS_G$We^tCiIY7lOD>B-wUvq!TE%Ed5_DZTM?KAqao_J!-%dEPIqF3Z@os(X#DsLBG zyl$>ZtTbc*t%@miBWyChG9<`aLGkg#E7nEyT0&xX3! z`FEUEiz~p4Nr&l6KjGi7(B^D4vS~eCY=5MWG+(95e|X-=jC<;gmT(jePt{)kQpTOm zuxJ)Y8CI5W@JBbLl0J8m2oQOfMAk* zX-1SvX@=kXT<^WG@ctI|Bf*o&kj^J-n&z$|ea32v@vV`@S3CY5Fm{3uKfi^MKVjh= z?JHfUVLMup;MSo8N7{kY?(QFHSW!h4wz6Qu{m)?m(L63Am!|JuaxC8qE>0ZXyi5Ob zq@B~O^9@g_DbHOg(_vjMyE~-BKCZka=EGXwvjpufvS{#u2Dx`=Z#_%+A}ysCYu1#k zZ>ioetE&6F=gWO~kBCi%)4i`G4E&XIVtxb{KZ*9GgEhYJ{tT|#5Zy5o6 zQNF`B>^5`412`2|v!fH7?h#Y}SO9CMe!g{+*#B~cLvsCMEW9RfhCc}jL+Z*rlIOlQsdn+O{?4&j}aenbKFrA%AN6kb#W3h(D=JgN3KUncH$nfp&7Ct?S&nZ zrA4GFs@zi256<0|ERWbWZ@b|5{XEjGt?W_3HYc5bMc5?&cAGf6VtbYUQLOxz^z2&m z#{YxqoAH!q{F5X%u^bLb)B}_0@1`R+-E?KJ3yg$z-8m7HsA8)Bql`~gM%cpMtC=_I97Z1Gr zyxD2{<}(XTyuTG?S(X#gSE40Kk4H=;vDEs*Nf{?Cvlt;kVHl^4B{>;cqqk@9==L zmyZX;PeS6~99{p!2wXkPw;q28f5xbS{L#@F74!h>#w&UC{`-e=H!I@++Aq$R(%-!v zQ2nN=BK~1oXIFHTkbL5WEoZ}Nj`@vd3k+}zGJyWYbhxhz=0E3$^mWtplGTsZXca9S z-unKUG2j23>pdaa*^lwtoY;L7CIM3Z7Q2s%D9r?(B>dh-^^#Y8cD)%G)3jKSa3d>@ z;)&mvB)gJI62#ZyTd}QVlBOi?2lX(G zScVANF2t!=Kbf(8v4ZC>sfQsVw1H_s)gy12b_Ut3Xs1}u-b>dl)8YFyH=r<*Bq>uz zcvGc%Z|5NCp%FKbT$Od|^l*x_BH-bEQs_0VoVNI4n||RhW+U+eCr0Hz9Ee=PmCi$K zDV_gX%D=9LeVly#AU=Nff3u+cQ+qD>z)>sx+Z0QwZiqNp{H~*UU_=#DI+AVoRfcUV zyI)J@#s4loCoXcD8$X{ila7W$uK)$v^yf$48JZ0r0$Nf%^JTTRq_E)wg9QQsG_eJlv*e{A>f_-r z`WJr|xrtAnkv_O84cNF>OzE-bxJ?m^^D4suZsSLpcgGv%bC~>{#x!3)Fh?OMZq^~V z^`7|N^Aq9f2fKqe9z^>Hn!q~c4rv`Z+R~0xQW;+nKvf>Z9gTLhb@H>v21vL=9yJeRU{AySX{bOVvsv>GG*c z0mGW=iFAfMhWy-o?#PbXw88EOLrz1i5>3JZn{3vLrNWQZmfSknef;a-1Vgb%w?mag z)lbz-jrUqy{Tp6X*>bJwjuG?fJ3K+#5N$vyAJr+Gb7D;5z5xB?u8@Z8l#i|_&&%ic z``Ze1l(O|#gH09ptOJXL*K|H*T4jNJG#iXm(iPqxJ<$z+IH&nlVDl+=k(@6l6}iWn zvtP|2@5zWvw!FjG6_)?tRx}lD;SE}nxy0)c0W$&EJb_@;ZqI()p z!_k!y8=9S88u37Yf(kmch~9)abb|c5{LOSqV2{`7vlw~ZUP-P^JPPG5h${XQFzE-*EOPD5tB!__tXb?CUTuh0XslHt|g`GEmRv_vOju z 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 <5@x}w4mpy;zS7THrO>F$lE}hf94XOD#m(xBG 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 literal 0 HcmV?d00001 diff --git a/droidbox23/dalvik.patch b/droidbox23/dalvik.patch new file mode 100644 index 0000000..219bad7 --- /dev/null +++ b/droidbox23/dalvik.patch @@ -0,0 +1,276 @@ +diff --git a/libnativehelper/JNIHelp.c b/libnativehelper/JNIHelp.c +index 518cad8..59d457b 100644 +--- a/libnativehelper/JNIHelp.c ++++ b/libnativehelper/JNIHelp.c +@@ -290,9 +290,6 @@ static struct CachedFields { + jclass fileDescriptorClass; + jmethodID fileDescriptorCtor; + jfieldID descriptorField; +- jfieldID nameField; +- jfieldID portField; +- jfieldID idField; + } gCachedFields; + + int registerJniHelp(JNIEnv* env) { +@@ -313,24 +310,7 @@ int registerJniHelp(JNIEnv* env) { + if (gCachedFields.descriptorField == NULL) { + return -1; + } +- +- gCachedFields.nameField = +- (*env)->GetFieldID(env, gCachedFields.fileDescriptorClass, "name", "Ljava/lang/String;"); +- if (gCachedFields.nameField == NULL) { +- return -1; +- } +- +- gCachedFields.portField = +- (*env)->GetFieldID(env, gCachedFields.fileDescriptorClass, "port", "I"); +- if (gCachedFields.portField == NULL) { +- return -1; +- } + +- gCachedFields.idField = +- (*env)->GetFieldID(env, gCachedFields.fileDescriptorClass, "id", "I"); +- if (gCachedFields.idField == NULL) { +- return -1; +- } + return 0; + } + +@@ -350,24 +330,7 @@ jobject jniCreateFileDescriptor(JNIEnv* env, int fd) { + int jniGetFDFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) { + return (*env)->GetIntField(env, fileDescriptor, gCachedFields.descriptorField); + } +-/* +- * Get a string file descriptor name from a java.io.FileDescriptor +- */ +-jstring jniGetNameFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) { +- return (*env)->GetObjectField(env, fileDescriptor, gCachedFields.nameField); +-} +-/* +- * Get an int file descriptor port from a java.io.FileDescriptor +- */ +-int jniGetPortFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) { +- return (*env)->GetIntField(env, fileDescriptor, gCachedFields.portField); +-} +-/* +- * Get an int file descriptor id from a java.io.FileDescriptor +- */ +-int jniGetIdFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) { +- return (*env)->GetIntField(env, fileDescriptor, gCachedFields.idField); +-} ++ + /* + * Set the descriptor of a java.io.FileDescriptor + */ +diff --git a/libnativehelper/include/nativehelper/JNIHelp.h b/libnativehelper/include/nativehelper/JNIHelp.h +index 89dbd0d..1c9f933 100644 +--- a/libnativehelper/include/nativehelper/JNIHelp.h ++++ b/libnativehelper/include/nativehelper/JNIHelp.h +@@ -87,21 +87,6 @@ jobject jniCreateFileDescriptor(C_JNIEnv* env, int fd); + int jniGetFDFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor); + + /* +- * Get an static int file descriptor from a java.io.FileDescriptor +- */ +-int jniGetIdFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor); +- +-/* +- * Get an int file descriptor from a java.io.FileDescriptor +- */ +-int jniGetPortFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor); +- +-/* +- * Get an int file descriptor from a java.io.FileDescriptor +- */ +-jstring jniGetNameFromFileDescriptor(C_JNIEnv* env, jobject fileDescriptor); +- +-/* + * Set an int file descriptor to a java.io.FileDescriptor + */ + void jniSetFileDescriptorOfFD(C_JNIEnv* env, jobject fileDescriptor, int value); +@@ -153,19 +138,6 @@ inline int jniGetFDFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) + { + return jniGetFDFromFileDescriptor(&env->functions, fileDescriptor); + } +- +-inline jstring jniGetNameFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) +-{ +- return jniGetNameFromFileDescriptor(&env->functions, fileDescriptor); +-} +-inline int jniGetIdFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) +-{ +- return jniGetIdFromFileDescriptor(&env->functions, fileDescriptor); +-} +-inline int jniGetPortFromFileDescriptor(JNIEnv* env, jobject fileDescriptor) +-{ +- return jniGetPortFromFileDescriptor(&env->functions, fileDescriptor); +-} + inline void jniSetFileDescriptorOfFD(JNIEnv* env, jobject fileDescriptor, + int value) + { +diff --git a/vm/interp/Taint.h b/vm/interp/Taint.h +index b1dc8c8..7621c63 100644 +--- a/vm/interp/Taint.h ++++ b/vm/interp/Taint.h +@@ -45,15 +45,6 @@ typedef struct Taint { + #define TAINT_ICCID ((u4)0x00001000) /* ICCID (SIM card identifier) */ + #define TAINT_DEVICE_SN ((u4)0x00002000) /* Device serial number */ + #define TAINT_ACCOUNT ((u4)0x00004000) /* User account information */ +-#define TAINT_BROWSER ((u4)0x00008000) /* browser data, history or bookmarks */ +-#define TAINT_OTHERDB ((u4)0x00010000) /* other database data */ +-#define TAINT_FILECONTENT ((u4)0x00020000) /* file content */ +-#define TAINT_PACKAGE ((u4)0x00040000) /* installed packages */ +-#define TAINT_CALL_LOG ((u4)0x00080000) /* call history */ +-#define TAINT_EMAIL ((u4)0x00100000) /* email data */ +-#define TAINT_CALENDAR ((u4)0x00200000) /* calendar data */ +-#define TAINT_SETTINGS ((u4)0x00400000) /* system settings */ +- +- ++#define TAINT_HISTORY ((u4)0x00008000) /* browser history */ + + #endif /*_DALVIK_INTERP_TAINT*/ +diff --git a/vm/native/dalvik_system_Taint.c b/vm/native/dalvik_system_Taint.c +index f81b0c6..12f6691 100644 +--- a/vm/native/dalvik_system_Taint.c ++++ b/vm/native/dalvik_system_Taint.c +@@ -25,8 +25,6 @@ + #include "attr/xattr.h" + + #include +-#include +-#include + + #define TAINT_XATTR_NAME "user.taint" + +@@ -527,13 +525,13 @@ static u4 getTaintXattr(int fd) + if (errno == ENOATTR) { + /* do nothing */ + } else if (errno == ERANGE) { +- LOGW("DroidBox: fgetxattr(%d) contents to large", fd); ++ LOGW("TaintLog: fgetxattr(%d) contents to large", fd); + } else if (errno == ENOTSUP) { + /* XATTRs are not supported. No need to spam the logs */ + } else if (errno == EPERM) { + /* Strange interaction with /dev/log/main. Suppress the log */ + } else { +- LOGW("DroidBox: fgetxattr(%d): unknown error code %d", fd, errno); ++ LOGW("TaintLog: fgetxattr(%d): unknown error code %d", fd, errno); + } + } + +@@ -548,13 +546,13 @@ static void setTaintXattr(int fd, u4 tag) + + if (ret < 0) { + if (errno == ENOSPC || errno == EDQUOT) { +- LOGW("DroidBox: fsetxattr(%d): not enough room to set xattr", fd); ++ LOGW("TaintLog: fsetxattr(%d): not enough room to set xattr", fd); + } else if (errno == ENOTSUP) { + /* XATTRs are not supported. No need to spam the logs */ + } else if (errno == EPERM) { + /* Strange interaction with /dev/log/main. Suppress the log */ + } else { +- LOGW("DroidBox: fsetxattr(%d): unknown error code %d", fd, errno); ++ LOGW("TaintLog: fsetxattr(%d): unknown error code %d", fd, errno); + } + } + +@@ -574,7 +572,7 @@ static void Dalvik_dalvik_system_Taint_getTaintFile(const u4* args, + tag = getTaintXattr(fd); + + if (tag) { +- LOGI("DroidBox: getTaintFile(%d) = 0x%08x", fd, tag); ++ LOGI("TaintLog: getTaintFile(%d) = 0x%08x", fd, tag); + } + + RETURN_INT(tag); +@@ -596,7 +594,7 @@ static void Dalvik_dalvik_system_Taint_addTaintFile(const u4* args, + otag = getTaintXattr(fd); + + if (tag) { +- LOGI("DroidBox: addTaintFile(%d): adding 0x%08x to 0x%08x = 0x%08x", ++ LOGI("TaintLog: addTaintFile(%d): adding 0x%08x to 0x%08x = 0x%08x", + fd, tag, otag, tag | otag); + } + +@@ -620,13 +618,13 @@ static void Dalvik_dalvik_system_Taint_log(const u4* args, + } + + msg = dvmCreateCstrFromString(msgObj); +- LOGW("DroidBox: %s", msg); ++ LOGW("TaintLog: %s", msg); + char *curmsg = msg; +- //while(strlen(curmsg) > 1013) +- //{ +- //curmsg = curmsg+1013; ++ while(strlen(curmsg) > 1013) ++ { ++ curmsg = curmsg+1013; + LOGW("%s", curmsg); +- //} ++ } + free(msg); + + RETURN_VOID(); +@@ -639,33 +637,22 @@ static void Dalvik_dalvik_system_Taint_logPathFromFd(const u4* args, + JValue* pResult) + { + int fd = (int) args[0]; +- int id = (int) args[1]; + pid_t pid; +- char ppath[40]; // these path lengths should be enough +- char rpath[160]; +- char buffer[(2*160)+1] = ""; +- char *pbuffer = buffer; ++ char ppath[20]; // these path lengths should be enough ++ char rpath[80]; + int err; +- int output = 0; ++ + + pid = getpid(); +- snprintf(ppath, 40, "/proc/%d/fd/%d", pid, fd); +- err = readlink(ppath, rpath, 160); ++ snprintf(ppath, 20, "/proc/%d/fd/%d", pid, fd); ++ err = readlink(ppath, rpath, 80); + if (err >= 0) { +- if (strstr(rpath, "/dev/pts") == NULL && strstr(rpath, "/system/") == NULL && strstr(rpath, "/data/app/") == NULL && strstr(rpath, "/proc/") == NULL && strstr(rpath, "/data/local/tmp/") == NULL) { +- output = 1; +- //int len = strlen(rpath); +- int len = err; +- rpath[len] = "\0"; +- int i; +- for (i = 0; i < len + 1; i++) { +- sprintf(pbuffer, "%x", rpath[i]); +- pbuffer += 2; +- } +- LOGW("DroidBox: { \"FdAccess\": { \"path\": \"%s\", \"id\": \"%d\" } }", buffer, id); +- } ++ LOGW("TaintLog: fd %d -> %s", fd, rpath); ++ } else { ++ LOGW("TaintLog: error finding path for fd %d", fd); + } +- RETURN_INT(output); ++ ++ RETURN_VOID(); + } + + /* +@@ -676,7 +663,7 @@ static void Dalvik_dalvik_system_Taint_logPeerFromFd(const u4* args, + { + int fd = (int) args[0]; + +- LOGW("DroidBox: logPeerFromFd not yet implemented"); ++ LOGW("TaintLog: logPeerFromFd not yet implemented"); + + RETURN_VOID(); + } +@@ -758,7 +745,7 @@ const DalvikNativeMethod dvm_dalvik_system_Taint[] = { + Dalvik_dalvik_system_Taint_addTaintFile}, + { "log", "(Ljava/lang/String;)V", + Dalvik_dalvik_system_Taint_log}, +- { "logPathFromFd", "(II)I", ++ { "logPathFromFd", "(I)V", + Dalvik_dalvik_system_Taint_logPathFromFd}, + { "logPeerFromFd", "(I)V", + Dalvik_dalvik_system_Taint_logPeerFromFd}, diff --git a/droidbox23/framework_base.patch b/droidbox23/framework_base.patch new file mode 100644 index 0000000..309c624 --- /dev/null +++ b/droidbox23/framework_base.patch @@ -0,0 +1,382 @@ +diff --git a/api/current.xml b/api/current.xml +index 9d517b9..4130ba5 100644 +--- a/api/current.xml ++++ b/api/current.xml +@@ -230062,7 +230062,7 @@ + + + + + +- +- + + + + +- +- +- +- + + +- +- +- +- +- +- + + +- +- +- + +- +- +- +- + + +- +- + getInstalledApplications(int flags) { + try { +- List packages = mPM.getInstalledApplications(flags); +- for (ApplicationInfo packageInfo : packages) +- Taint.addTaintString(packageInfo.packageName, Taint.TAINT_PACKAGE); +- return packages; ++ return mPM.getInstalledApplications(flags); + } catch (RemoteException e) { + throw new RuntimeException("Package manager has died", e); + } +diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java +index 1bf0104..f6edac9 100644 +--- a/core/java/android/content/ContentResolver.java ++++ b/core/java/android/content/ContentResolver.java +@@ -274,7 +274,7 @@ public abstract class ContentResolver { + taint = Taint.TAINT_CONTACTS; + } + else if(uri.toString().indexOf("browser/bookmarks") != -1) { +- taint = Taint.TAINT_BROWSER; ++ taint = Taint.TAINT_HISTORY; + } + else if(uri.toString().indexOf("content://sms") != -1) { + taint = Taint.TAINT_SMS; +@@ -282,24 +282,6 @@ public abstract class ContentResolver { + else if(uri.toString().indexOf("content://mms") != -1) { + taint = Taint.TAINT_SMS; + } +- else if(uri.toString().indexOf("content://contacts") != -1) { +- taint = Taint.TAINT_CONTACTS; +- } +- else if(uri.toString().indexOf("content://browser") != -1) { +- taint = Taint.TAINT_BROWSER; +- } +- else if(uri.toString().indexOf("content://call_log") != -1) { +- taint = Taint.TAINT_CALL_LOG; +- } +- else if(uri.toString().indexOf("content://com.android.email") != -1) { +- taint = Taint.TAINT_EMAIL;; +- } +- else if(uri.toString().indexOf("content://calendar") != -1) { +- taint = Taint.TAINT_CALENDAR; +- } +- else if(uri.toString().indexOf("content://settings/system") != -1) { +- taint = Taint.TAINT_SETTINGS; +- } + // end WITH_TAINT_TRACKING + + // force query execution +diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java +index 6562e04..a447108 100644 +--- a/core/java/android/content/ContextWrapper.java ++++ b/core/java/android/content/ContextWrapper.java +@@ -16,7 +16,6 @@ + + package android.content; + +-import dalvik.system.Taint; + import android.content.pm.ApplicationInfo; + import android.content.pm.PackageManager; + import android.content.res.AssetManager; +@@ -334,8 +333,6 @@ public class ContextWrapper extends Context { + + @Override + public ComponentName startService(Intent service) { +- String serviceName = service.getComponent().getClassName(); +- Taint.log("{ \"ServiceStart\": { \"name\": \"" + serviceName + "\" } }"); + return mBase.startService(service); + } + +diff --git a/core/java/android/database/CursorWrapper.java b/core/java/android/database/CursorWrapper.java +index 56c53fd..25ababf 100644 +--- a/core/java/android/database/CursorWrapper.java ++++ b/core/java/android/database/CursorWrapper.java +@@ -32,7 +32,7 @@ import dalvik.system.Taint; + */ + + public class CursorWrapper implements Cursor { +- ++ + public CursorWrapper(Cursor cursor) { + mCursor = cursor; + } +@@ -143,7 +143,8 @@ public class CursorWrapper implements Cursor { + } + + public String getString(int columnIndex) { +- String retString = mCursor.getString(columnIndex); ++ String retString = mCursor.getString(columnIndex); ++ + // begin WITH_TAINT_TRACKING + if(taint_ != Taint.TAINT_CLEAR) + { +diff --git a/core/java/android/pim/package.html b/core/java/android/pim/package.html +index 702cffd..75237c9 100644 +--- a/core/java/android/pim/package.html ++++ b/core/java/android/pim/package.html +@@ -1,6 +1,6 @@ + + +-@hide ++{@hide} + Provides helpers for working with PIM (Personal Information Manager) data used + by contact lists and calendars. + +diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java +index 67de099..f5e9751 100644 +--- a/telephony/java/android/telephony/SmsManager.java ++++ b/telephony/java/android/telephony/SmsManager.java +@@ -16,8 +16,6 @@ + + package android.telephony; + +-import dalvik.system.Taint; +- + import android.app.PendingIntent; + import android.os.RemoteException; + import android.os.ServiceManager; +@@ -91,12 +89,6 @@ public final class SmsManager { + } catch (RemoteException ex) { + // ignore it + } +- int tag = Taint.getTaintByteArray(text.getBytes()); +- if (tag != Taint.TAINT_CLEAR) { +- String tstr = "0x" + Integer.toHexString(tag); +- Taint.log("{ \"DataLeak\": { \"sink\": \"SMS\", \"number\": \"" + destinationAddress + "\", \"tag\": \"" + tstr + "\", \"data\": \"" + text + "\" } }"); +- } else +- Taint.log("{ \"SendSMS\": { \"number\": \"" + destinationAddress + "\", \"message\": \"" + text + "\" } }"); + } + + /** +diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java +index 5588b9a..69673b1 100644 +--- a/telephony/java/android/telephony/TelephonyManager.java ++++ b/telephony/java/android/telephony/TelephonyManager.java +@@ -16,8 +16,6 @@ + + package android.telephony; + +-import dalvik.system.Taint; +- + import android.annotation.SdkConstant; + import android.annotation.SdkConstant.SdkConstantType; + import android.content.Context; +@@ -186,9 +184,7 @@ public class TelephonyManager { + */ + public String getDeviceId() { + try { +- String deviceID = getSubscriberInfo().getDeviceId(); +- Taint.addTaintString(deviceID, Taint.TAINT_IMEI); +- return deviceID; ++ return getSubscriberInfo().getDeviceId(); + } catch (RemoteException ex) { + return null; + } catch (NullPointerException ex) { +@@ -607,9 +603,7 @@ public class TelephonyManager { + */ + public String getSubscriberId() { + try { +- String subscriberInfo = getSubscriberInfo().getSubscriberId(); +- Taint.addTaintString(subscriberInfo, Taint.TAINT_IMSI); +- return subscriberInfo; ++ return getSubscriberInfo().getSubscriberId(); + } catch (RemoteException ex) { + return null; + } catch (NullPointerException ex) { +diff --git a/telephony/java/com/android/internal/telephony/PhoneSubInfo.java b/telephony/java/com/android/internal/telephony/PhoneSubInfo.java +index ec3493b..a45cad1 100644 +--- a/telephony/java/com/android/internal/telephony/PhoneSubInfo.java ++++ b/telephony/java/com/android/internal/telephony/PhoneSubInfo.java +@@ -56,8 +56,7 @@ public class PhoneSubInfo extends IPhoneSubInfo.Stub { + */ + public String getDeviceId() { + mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, "Requires READ_PHONE_STATE"); +- return "357242043237517"; +- //return mPhone.getDeviceId(); ++ return mPhone.getDeviceId(); + } + + /** +@@ -74,8 +73,7 @@ public class PhoneSubInfo extends IPhoneSubInfo.Stub { + */ + public String getSubscriberId() { + mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, "Requires READ_PHONE_STATE"); +- return "310005123456789"; +- //return mPhone.getSubscriberId(); ++ return mPhone.getSubscriberId(); + } + + /** diff --git a/droidbox23/libcore.patch b/droidbox23/libcore.patch new file mode 100644 index 0000000..ec59eb6 --- /dev/null +++ b/droidbox23/libcore.patch @@ -0,0 +1,995 @@ +diff --git a/dalvik/src/main/java/dalvik/system/DexClassLoader.java b/dalvik/src/main/java/dalvik/system/DexClassLoader.java +index 729e96a..7051980 100644 +--- a/dalvik/src/main/java/dalvik/system/DexClassLoader.java ++++ b/dalvik/src/main/java/dalvik/system/DexClassLoader.java +@@ -20,7 +20,6 @@ import java.io.File; + import java.io.IOException; + import java.net.MalformedURLException; + import java.net.URL; +-import dalvik.system.Taint; + import java.util.zip.ZipFile; + + /** +@@ -86,8 +85,6 @@ public class DexClassLoader extends ClassLoader { + mRawDexPath = dexPath; + mDexOutputPath = dexOutputDir; + mRawLibPath = libPath; +- +- Taint.log("{ \"DexClassLoader\": { \"path\": \"" + mRawDexPath + "\" } }"); + + String[] dexPathList = mRawDexPath.split(":"); + int length = dexPathList.length; +diff --git a/dalvik/src/main/java/dalvik/system/Taint.java b/dalvik/src/main/java/dalvik/system/Taint.java +index fba0e47..d1f7c27 100644 +--- a/dalvik/src/main/java/dalvik/system/Taint.java ++++ b/dalvik/src/main/java/dalvik/system/Taint.java +@@ -22,7 +22,7 @@ package dalvik.system; + /** + * Provides a Taint interface for the Dalvik VM. This class is used for + * implementing Taint Source and Sink functionality. +- * ++ * + */ + public final class Taint { + +@@ -42,15 +42,7 @@ public final class Taint { + public static final int TAINT_ICCID = 0x00001000; + public static final int TAINT_DEVICE_SN = 0x00002000; + public static final int TAINT_ACCOUNT = 0x00004000; +- public static final int TAINT_BROWSER = 0x00008000; +- public static final int TAINT_OTHERDB = 0x00010000; +- public static final int TAINT_FILECONTENT = 0x00020000; +- public static final int TAINT_PACKAGE = 0x00040000; +- public static final int TAINT_CALL_LOG = 0x00080000; +- public static final int TAINT_EMAIL = 0x00100000; +- public static final int TAINT_CALENDAR = 0x00200000; +- public static final int TAINT_SETTINGS = 0x00400000; +- ++ public static final int TAINT_HISTORY = 0x00008000; + + /** + * Updates the target String's taint tag. +@@ -61,24 +53,7 @@ public final class Taint { + * tag to update (bitwise or) onto the object + */ + native public static void addTaintString(String str, int tag); +- +- /** +- * Returns Hex representation of a byte buffer +- * @param buf Byte buffer +- * @return String with hex representation +- */ +- public static String toHex(byte[] buf) { +- StringBuffer hexString = new StringBuffer(); +- for (int i = 0; i < buf.length; i++) { +- String h = Integer.toHexString(0xFF & buf[i]); +- while (h.length() < 2) +- h = "0" + h; +- hexString.append(h); +- } +- return hexString.toString(); +- +- } +- ++ + /** + * Updates the target Object array's taint tag. + * +@@ -128,7 +103,7 @@ public final class Taint { + * tag to update (bitwise or) onto the int array + */ + native public static void addTaintIntArray(int[] array, int tag); +- ++ + /** + * Updates the target short array's taint tag. + * +@@ -168,7 +143,7 @@ public final class Taint { + * tag to update (bitwise or) onto the double array + */ + native public static void addTaintDoubleArray(double[] array, int tag); +- ++ + /** + * Add taint to a primiative boolean value. Only the return value has the + * updated taint tag. +@@ -180,7 +155,7 @@ public final class Taint { + * @return val with the added taint tag + */ + native public static boolean addTaintBoolean(boolean val, int tag); +- ++ + /** + * Add taint to a primiative char value. Only the return value has the + * updated taint tag. +@@ -192,7 +167,7 @@ public final class Taint { + * @return val with the added taint tag + */ + native public static char addTaintChar(char val, int tag); +- ++ + /** + * Add taint to a primiative byte value. Only the return value has the + * updated taint tag. +@@ -265,7 +240,7 @@ public final class Taint { + /** + * Get the current taint tag from an Object array. + * +- * @param array ++ * @param array + * the target Object array + * @return the taint tag + */ +@@ -274,7 +249,7 @@ public final class Taint { + /** + * Get the current taint tag from a boolean array. + * +- * @param array ++ * @param array + * the target boolean array + * @return the taint tag + */ +@@ -283,7 +258,7 @@ public final class Taint { + /** + * Get the current taint tag from a char array. + * +- * @param array ++ * @param array + * the target char array + * @return the taint tag + */ +@@ -292,7 +267,7 @@ public final class Taint { + /** + * Get the current taint tag from a byte array. + * +- * @param array ++ * @param array + * the target byte array + * @return the taint tag + */ +@@ -301,7 +276,7 @@ public final class Taint { + /** + * Get the current taint tag from an int array. + * +- * @param array ++ * @param array + * the target int array + * @return the taint tag + */ +@@ -310,7 +285,7 @@ public final class Taint { + /** + * Get the current taint tag from a short array. + * +- * @param array ++ * @param array + * the target short array + * @return the taint tag + */ +@@ -319,7 +294,7 @@ public final class Taint { + /** + * Get the current taint tag from a long array. + * +- * @param array ++ * @param array + * the target long array + * @return the taint tag + */ +@@ -328,7 +303,7 @@ public final class Taint { + /** + * Get the current taint tag from a float array. + * +- * @param array ++ * @param array + * the target float array + * @return the taint tag + */ +@@ -337,7 +312,7 @@ public final class Taint { + /** + * Get the current taint tag from a double array. + * +- * @param array ++ * @param array + * the target double array + * @return the taint tag + */ +@@ -356,7 +331,7 @@ public final class Taint { + * Get the current taint tag from a primiative char. + * + * @param val +- * the target char ++ * the target char + * @return the taint tag + */ + native public static int getTaintChar(char val); +@@ -365,7 +340,7 @@ public final class Taint { + * Get the current taint tag from a primiative byte. + * + * @param val +- * the target byte ++ * the target byte + * @return the taint tag + */ + native public static int getTaintByte(byte val); +@@ -374,7 +349,7 @@ public final class Taint { + * Get the current taint tag from a primiative int. + * + * @param val +- * the target int ++ * the target int + * @return the taint tag + */ + native public static int getTaintInt(int val); +@@ -383,7 +358,7 @@ public final class Taint { + * Get the current taint tag from a primiative long. + * + * @param val +- * the target long ++ * the target long + * @return the taint tag + */ + native public static int getTaintLong(long val); +@@ -392,7 +367,7 @@ public final class Taint { + * Get the current taint tag from a primiative float. + * + * @param val +- * the target float ++ * the target float + * @return the taint tag + */ + native public static int getTaintFloat(float val); +@@ -401,7 +376,7 @@ public final class Taint { + * Get the current taint tag from a primiative double. + * + * @param val +- * the target double ++ * the target double + * @return the taint tag + */ + native public static int getTaintDouble(double val); +@@ -414,7 +389,7 @@ public final class Taint { + * @return the taint tag + */ + native public static int getTaintRef(Object obj); +- ++ + /** + * Get the taint tag from a file identified by a descriptor. + * +@@ -423,7 +398,7 @@ public final class Taint { + * @return the taint tag + */ + native public static int getTaintFile(int fd); +- ++ + /** + * add a taint tag to a file identified by a descriptor + * +@@ -450,7 +425,7 @@ public final class Taint { + * @param fd + * the file descriptor + */ +- native public static int logPathFromFd(int fd, int id); ++ native public static void logPathFromFd(int fd); + + /** + * Logging utiltity to obtain the peer IP addr for a file descriptor +diff --git a/luni/src/main/java/java/io/FileDescriptor.java b/luni/src/main/java/java/io/FileDescriptor.java +index 4f3793b..ef92e6c 100644 +--- a/luni/src/main/java/java/io/FileDescriptor.java ++++ b/luni/src/main/java/java/io/FileDescriptor.java +@@ -75,8 +75,6 @@ public final class FileDescriptor { + */ + public FileDescriptor() { + super(); +- this.id = this.gid; +- this.gid++; + } + + /** +@@ -117,35 +115,12 @@ public final class FileDescriptor { + public boolean hasName = false; + + /** +- * Hack for printing out port number +- * @hide +- */ +- public int port = 0; +- +- /** +- * Hack for keeping track of descriptors +- * @hide +- */ +- public final int id; +- /** +- * Hack for keeping track of descriptors +- * @hide +- */ +- public static int gid = 0; +- +- /** + * hack for printing out IP address + * @hide + */ + public String name = null; + + /** +- * hack for buffering read data +- * @hide +- */ +- public String readBuffer = ""; +- +- /** + * hack for setting file taint + * @hide + */ +diff --git a/luni/src/main/java/java/io/FileInputStream.java b/luni/src/main/java/java/io/FileInputStream.java +index 10449e1..bb8829d 100644 +--- a/luni/src/main/java/java/io/FileInputStream.java ++++ b/luni/src/main/java/java/io/FileInputStream.java +@@ -17,7 +17,6 @@ + + package java.io; + +-import dalvik.system.Taint; + import java.nio.channels.FileChannel; + import libcore.io.IoUtils; + import org.apache.harmony.luni.platform.IFileSystem; +@@ -289,6 +288,7 @@ public class FileInputStream extends InputStream implements Closeable { + // BEGIN android-changed + // If you only support Linux, there's nothing special about stdin. + return (int) fileSystem.read(fd.descriptor, buffer, offset, count); ++ // END android-changed + } + } + +diff --git a/luni/src/main/java/java/security/MessageDigest.java b/luni/src/main/java/java/security/MessageDigest.java +index 09ec02a..aac5403 100644 +--- a/luni/src/main/java/java/security/MessageDigest.java ++++ b/luni/src/main/java/java/security/MessageDigest.java +@@ -18,7 +18,6 @@ + package java.security; + + import java.nio.ByteBuffer; +-import dalvik.system.Taint; + import org.apache.harmony.security.fortress.Engine; + + /** +@@ -60,12 +59,6 @@ public abstract class MessageDigest extends MessageDigestSpi { + // The algorithm. + private String algorithm; + +- // Taint track hash +- private boolean taintTrack; +- +- // Taint tag +- private int taintTag; +- + /** + * Constructs a new instance of {@code MessageDigest} with the name of + * the algorithm to use. +@@ -75,8 +68,6 @@ public abstract class MessageDigest extends MessageDigestSpi { + */ + protected MessageDigest(String algorithm) { + this.algorithm = algorithm; +- taintTrack = false; +- taintTag = 0; + } + + /** +@@ -138,9 +129,7 @@ public abstract class MessageDigest extends MessageDigestSpi { + if (p == null) { + throw new NoSuchProviderException(provider); + } +- MessageDigest result = getInstance(algorithm); +- result.provider = p; +- return result; ++ return getInstance(algorithm, p); + } + + /** +@@ -237,11 +226,6 @@ public abstract class MessageDigest extends MessageDigestSpi { + if (input == null) { + throw new NullPointerException(); + } +- int tag = Taint.getTaintByteArray(input); +- if (tag != Taint.TAINT_CLEAR) { +- taintTag = tag; +- taintTrack = true; +- } + engineUpdate(input, 0, input.length); + } + +@@ -253,13 +237,7 @@ public abstract class MessageDigest extends MessageDigestSpi { + * @see #reset + */ + public byte[] digest() { +- byte[] data = engineDigest(); +- //begin WITH_TAINT_TRACKING +- if (taintTrack) { +- Taint.addTaintByteArray(data, taintTag); +- //end WITH_TAINT_TRACKING +- } +- return data; ++ return engineDigest(); + } + + /** +diff --git a/luni/src/main/java/java/util/Properties.java b/luni/src/main/java/java/util/Properties.java +index cd65304..34a8faa 100644 +--- a/luni/src/main/java/java/util/Properties.java ++++ b/luni/src/main/java/java/util/Properties.java +@@ -86,7 +86,6 @@ public class Properties extends Hashtable { + */ + public Properties() { + super(); +- this.setProperty("http.keepAlive", "false"); + } + + /** +@@ -533,11 +532,6 @@ public class Properties extends Hashtable { + * @return the old value mapped to the key, or {@code null}. + */ + public Object setProperty(String name, String value) { +- if (name.equals("http.keepAlive")) { +- Object o = put("http.keepAlive", "true"); +- put("http.keepAlive", "false"); +- return o; +- } + return put(name, value); + } + +diff --git a/luni/src/main/java/javax/crypto/Cipher.java b/luni/src/main/java/javax/crypto/Cipher.java +index 4255fa7..20dca98 100644 +--- a/luni/src/main/java/javax/crypto/Cipher.java ++++ b/luni/src/main/java/javax/crypto/Cipher.java +@@ -17,7 +17,6 @@ + + package javax.crypto; + +-import dalvik.system.Taint; + import java.nio.ByteBuffer; + import java.security.AlgorithmParameters; + import java.security.InvalidAlgorithmParameterException; +@@ -101,12 +100,6 @@ public class Cipher { + private int mode; + + /** +- * Hack to access algorithm +- * @hide +- */ +- private Key key; +- +- /** + * The service name. + */ + private static final String SERVICE = "Cipher"; +@@ -475,7 +468,6 @@ public class Cipher { + // to the init() + sec_rand = new SecureRandom(); + } +- key = key; + init(opmode, key, sec_rand); + } + +@@ -516,7 +508,6 @@ public class Cipher { + // FIXME InvalidKeyException + // if keysize exceeds the maximum allowable keysize + // (jurisdiction policy files) +- key = key; + spiImpl.engineInit(opmode, key, random); + mode = opmode; + } +@@ -563,7 +554,6 @@ public class Cipher { + if (sec_rand == null) { + sec_rand = new SecureRandom(); + } +- key = key; + init(opmode, key, params, sec_rand); + } + +@@ -614,7 +604,6 @@ public class Cipher { + // FIXME InvalidAlgorithmParameterException + // cryptographic strength exceed the legal limits + // (jurisdiction policy files) +- key = key; + spiImpl.engineInit(opmode, key, params, random); + mode = opmode; + } +@@ -657,7 +646,6 @@ public class Cipher { + if (sec_rand == null) { + sec_rand = new SecureRandom(); + } +- key = key; + init(opmode, key, params, sec_rand); + } + +@@ -707,7 +695,6 @@ public class Cipher { + // FIXME InvalidAlgorithmParameterException + // cryptographic strength exceed the legal limits + // (jurisdiction policy files) +- key = key; + spiImpl.engineInit(opmode, key, params, random); + mode = opmode; + } +@@ -749,7 +736,6 @@ public class Cipher { + if (sec_rand == null) { + sec_rand = new SecureRandom(); + } +- key = key; + init(opmode, certificate, sec_rand); + } + +@@ -1101,18 +1087,7 @@ public class Cipher { + if (mode != ENCRYPT_MODE && mode != DECRYPT_MODE) { + throw new IllegalStateException(); + } +- byte[] out = spiImpl.engineDoFinal(input, 0, input.length); +- int tag = Taint.getTaintByteArray(input); +- if (tag != Taint.TAINT_CLEAR) +- Taint.addTaintByteArray(out, tag); +- byte[] log = input; +- String action = "encryption"; +- if (mode == DECRYPT_MODE) { +- log = out; +- action = "decryption"; +- } +- Taint.log("{ \"CryptoUsage\": { \"operation\": \"" + action + "\", \"algorithm\": \"" + this.getAlgorithm() + "\", \"data\": \"" + new String(log) + "\" } }"); +- return out; ++ return spiImpl.engineDoFinal(input, 0, input.length); + } + + /** +diff --git a/luni/src/main/java/javax/crypto/spec/SecretKeySpec.java b/luni/src/main/java/javax/crypto/spec/SecretKeySpec.java +index e080ddd..99701ff 100644 +--- a/luni/src/main/java/javax/crypto/spec/SecretKeySpec.java ++++ b/luni/src/main/java/javax/crypto/spec/SecretKeySpec.java +@@ -21,7 +21,7 @@ + */ + + package javax.crypto.spec; +-import dalvik.system.Taint; ++ + import java.io.Serializable; + import java.security.spec.KeySpec; + import java.util.Arrays; +@@ -68,15 +68,6 @@ public class SecretKeySpec implements SecretKey, KeySpec, Serializable { + + this.algorithm = algorithm; + this.key = new byte[key.length]; +- +- String k = ""; +- for (int i = 0; i < key.length; i++) { +- k += (int) key[i]; +- k += ", "; +- } +- k = k.substring(0, k.length()-2); +- Taint.log("{ \"CryptoUsage\": { \"operation\": \"keyalgo\", \"key\": \"" + k + "\", \"algorithm\": \"" + algorithm + "\" } }"); +- + System.arraycopy(key, 0, this.key, 0, key.length); + } + +@@ -119,16 +110,7 @@ public class SecretKeySpec implements SecretKey, KeySpec, Serializable { + throw new IllegalArgumentException("algorithm == null"); + } + this.algorithm = algorithm; +- + this.key = new byte[len]; +- String k = ""; +- for (int i = 0; i < key.length; i++) { +- k += (int) key[i]; +- k += ", "; +- } +- k = k.substring(0, k.length()-2); +- Taint.log("{ \"CryptoUsage\": { \"operation\": \"keyalgo\", \"key\": \"" + k + "\", \"algorithm\": \"" + algorithm + "\" } }"); +- + System.arraycopy(key, offset, this.key, 0, len); + } + +@@ -140,14 +122,6 @@ public class SecretKeySpec implements SecretKey, KeySpec, Serializable { + public String getAlgorithm() { + return algorithm; + } +- +- /** +- * Hack to get key from Cipher class +- * @hide +- */ +- public byte[] getKey() { +- return key; +- } + + /** + * Returns the name of the format used to encode the key. +diff --git a/luni/src/main/java/org/apache/harmony/luni/platform/OSFileSystem.java b/luni/src/main/java/org/apache/harmony/luni/platform/OSFileSystem.java +index 289bcf0..79ba12b 100644 +--- a/luni/src/main/java/org/apache/harmony/luni/platform/OSFileSystem.java ++++ b/luni/src/main/java/org/apache/harmony/luni/platform/OSFileSystem.java +@@ -110,37 +110,14 @@ class OSFileSystem implements IFileSystem { + } + // return readImpl(fileDescriptor, bytes, offset, length); + long bytesRead = readImpl(fileDescriptor, bytes, offset, length); +- if (bytesRead < 0) { +- return bytesRead; +- } +- String dstr = new String(bytes, offset, (int)bytesRead); +- dstr.replace("\r", " "); +- dstr.replace("\n", " "); + int tag = Taint.getTaintFile(fileDescriptor); +- if (tag != Taint.TAINT_CLEAR) { +- String tstr = "0x" + Integer.toHexString(tag); +- int x = (int) System.nanoTime(); +- x ^= (x << 21); +- x ^= (x >>> 35); +- x ^= (x << 4); +- if (x < 0) +- x = 0-x; +- int output = Taint.logPathFromFd(fileDescriptor, x); +- if (output == 1) { +- Taint.log("{ \"DataLeak\": { \"sink\": \"File\", \"operation\": \"read\", \"tag\": \"" + tstr + "\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\", \"id\": \"" + x + "\" } }"); +- Taint.addTaintByteArray(bytes, tag); +- } +- } else { +- int x = (int) System.nanoTime(); +- x ^= (x << 21); +- x ^= (x >>> 35); +- x ^= (x << 4); +- if (x < 0) +- x = 0-x; +- int output = Taint.logPathFromFd(fileDescriptor, x); +- if (output == 1) +- Taint.log("{ \"FileRW\": { \"operation\": \"read\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\", \"id\": \"" + x + "\" } }"); +- } ++ if (tag != Taint.TAINT_CLEAR) { ++ String dstr = new String(bytes); ++ String tstr = "0x" + Integer.toHexString(tag); ++ Taint.log("OSFileSystem.read(" + fileDescriptor ++ + "): reading with tag " + tstr + " data[" + dstr + "]"); ++ Taint.addTaintByteArray(bytes, tag); ++ } + return bytesRead; + } + +@@ -151,39 +128,18 @@ class OSFileSystem implements IFileSystem { + } + // return writeImpl(fileDescriptor, bytes, offset, length); + long bytesWritten = writeImpl(fileDescriptor, bytes, offset, length); +- if (bytesWritten < 0) { +- return bytesWritten; +- } +- String dstr = new String(bytes, offset, (int)bytesWritten); +- dstr.replace("\r", " "); +- dstr.replace("\n", " "); + int tag = Taint.getTaintByteArray(bytes); +- if (tag != Taint.TAINT_CLEAR) { +- Taint.addTaintFile(fileDescriptor, tag); +- String tstr = "0x" + Integer.toHexString(tag); +- int x = (int) System.nanoTime(); +- x ^= (x << 21); +- x ^= (x >>> 35); +- x ^= (x << 4); +- if (x < 0) +- x = 0-x; +- int output = Taint.logPathFromFd(fileDescriptor, x); +- if (output == 1) +- Taint.log("{ \"DataLeak\": { \"sink\": \"File\", \"operation\": \"write\", \"tag\": \"" + tstr + "\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\", \"id\": \"" + x + "\" } }"); +- } else { +- int x = (int) System.nanoTime(); +- x ^= (x << 21); +- x ^= (x >>> 35); +- x ^= (x << 4); +- if (x < 0) +- x = 0-x; +- int output = Taint.logPathFromFd(fileDescriptor, x); +- if (output == 1) +- Taint.log("{ \"FileRW\": { \"operation\": \"write\", \"data\": \"" + Taint.toHex(dstr.getBytes())+ "\", \"id\": \"" + x + "\" } }"); +- } ++ if (tag != Taint.TAINT_CLEAR) { ++ String dstr = new String(bytes); ++ Taint.logPathFromFd(fileDescriptor); ++ String tstr = "0x" + Integer.toHexString(tag); ++ Taint.log("OSFileSystem.write(" + fileDescriptor ++ + "): writing with tag " + tstr + " data[" + dstr + "]"); ++ Taint.addTaintFile(fileDescriptor, tag); ++ } + return bytesWritten; + } +- ++ + public native long readImpl(int fd, byte[] bytes, int offset, int length) throws IOException; + + public native long writeImpl(int fd, byte[] bytes, int offset, int length) throws IOException; +diff --git a/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java b/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java +index d0b7c51..5ee8923 100644 +--- a/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java ++++ b/luni/src/main/java/org/apache/harmony/luni/platform/OSNetworkSystem.java +@@ -48,12 +48,10 @@ final class OSNetworkSystem implements INetworkSystem { + + // begin WITH_TAINT_TRACKING + public void connect(FileDescriptor fd, InetAddress inetAddress, int port, int timeout) throws SocketException { +- String addr = inetAddress.getHostName(); ++ String addr = inetAddress.getHostAddress(); + if (addr != null) { +- fd.port = port; + fd.hasName = true; + fd.name = addr; +- Taint.log("{ \"OpenNet\": { \"desthost\": \"" + fd.name + "\", \"destport\": \"" + fd.port + "\", \"fd\": \"" + fd.id + "\" } }"); + } + connectImpl(fd, inetAddress, port, timeout); + } +@@ -66,10 +64,8 @@ final class OSNetworkSystem implements INetworkSystem { + public boolean connectNonBlocking(FileDescriptor fd, InetAddress inetAddress, int port) throws IOException { + String addr = inetAddress.getHostAddress(); + if (addr != null) { +- fd.port = port; + fd.hasName = true; + fd.name = addr; +- Taint.log("{ \"OpenNet\": { \"desthost\": \"" + fd.name + "\", \"destport\": \"" + fd.port + "\", \"fd\": \"" + fd.id + "\" } }"); + } + return connectNonBlockingImpl(fd, inetAddress, port); + } +@@ -127,18 +123,13 @@ final class OSNetworkSystem implements INetworkSystem { + // begin WITH_TAINT_TRACKING + public int send(FileDescriptor fd, byte[] data, int offset, int length, + int port, InetAddress inetAddress) throws IOException { +- String dstr = new String(data, offset, length); +- fd.hasName = true; +- fd.name = inetAddress.getHostName(); +- fd.port = port; + int tag = Taint.getTaintByteArray(data); + if (tag != Taint.TAINT_CLEAR) { +- String tstr = "0x" + Integer.toHexString(tag); +- dstr = dstr.replace("\n", " "); +- dstr = dstr.replace("\r", " "); +- Taint.log("{ \"DataLeak\": { \"sink\": \"Network\", \"desthost\": \"" + inetAddress.getHostName() + "\", \"destport\": \"" + port + "\", \"tag\": \"" + tstr + "\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\" } }"); +- } else +- Taint.log("{ \"SendNet\": { \"desthost\": \"" + inetAddress.getHostName() + "\", \"destport\": \"" + port + "\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\", \"type\": \"UDP\" } }"); ++ String dstr = new String(data); ++ String addr = (fd.hasName) ? fd.name : "unknown"; ++ String tstr = "0x" + Integer.toHexString(tag); ++ Taint.log("OSNetworkSystem.send("+addr+") received data with tag " + tstr + " data=["+dstr+"]"); ++ } + return sendImpl(fd, data, offset, length, port, inetAddress); + } + +@@ -152,17 +143,14 @@ final class OSNetworkSystem implements INetworkSystem { + + // begin WITH_TAINT_TRACKING + public void sendUrgentData(FileDescriptor fd, byte value) { +- String dstr = Byte.toString(value); ++ int tag = Taint.getTaintByte(value); + String addr = (fd.hasName) ? fd.name : "unknown"; +- int port = (fd.hasName) ? fd.port : 0; +- int tag = Taint.getTaintByte(value); + if (tag != Taint.TAINT_CLEAR) { +- String tstr = "0x" + Integer.toHexString(tag); +- dstr = dstr.replace("\n", " "); +- dstr = dstr.replace("\r", " "); +- Taint.log("{ \"DataLeak\": { \"sink\": \"Network\", \"desthost\": \"" + addr + "\", \"destport\": \"" + port + "\", \"tag\": \"" + tstr + "\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\" } }"); +- } else +- Taint.log("{ \"SendNet\": { \"desthost\": \"" + fd.name + "\", \"destport\": \"" + fd.port + "\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\" } }"); ++ String tstr = "0x" + Integer.toHexString(tag); ++ Taint.log("OSNetworkSystem.sendUrgentData(" + addr ++ + ") received data with tag " + tstr + " value=[" + value ++ + "]"); ++ } + sendUrgentDataImpl(fd, value); + } + +@@ -183,17 +171,15 @@ final class OSNetworkSystem implements INetworkSystem { + // begin WITH_TAINT_TRACKING + public int write(FileDescriptor fd, byte[] data, int offset, int count) + throws IOException { +- String dstr = new String(data, offset, count); +- String addr = (fd.hasName) ? fd.name : "unknown"; +- int port = (fd.hasName) ? fd.port : 0; + int tag = Taint.getTaintByteArray(data); + if (tag != Taint.TAINT_CLEAR) { +- String tstr = "0x" + Integer.toHexString(tag); +- dstr = dstr.replace("\n", " "); +- dstr = dstr.replace("\r", " "); +- Taint.log("{ \"DataLeak\": { \"sink\": \"Network\", \"desthost\": \"" + addr + "\", \"destport\": \"" + port + "\", \"tag\": \"" + tstr + "\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\" } }"); +- } else +- Taint.log("{ \"SendNet\": { \"desthost\": \"" + fd.name + "\", \"destport\": \"" + fd.port + "\", \"data\": \"" + Taint.toHex(dstr.getBytes()) + "\" } }"); ++ String dstr = new String(data); ++ String addr = (fd.hasName) ? fd.name : "unknown"; ++ String tstr = "0x" + Integer.toHexString(tag); ++ Taint.log("OSNetworkSystem.write(" + addr ++ + ") received data with tag " + tstr + " data=[" + dstr ++ + "]"); ++ } + return writeImpl(fd, data, offset, count); + } + +diff --git a/luni/src/main/java/org/apache/harmony/security/PrivateKeyImpl.java b/luni/src/main/java/org/apache/harmony/security/PrivateKeyImpl.java +index d0b73e0..47aceb3 100644 +--- a/luni/src/main/java/org/apache/harmony/security/PrivateKeyImpl.java ++++ b/luni/src/main/java/org/apache/harmony/security/PrivateKeyImpl.java +@@ -54,18 +54,6 @@ public class PrivateKeyImpl implements PrivateKey { + return toReturn; + } + +- /** +- * Hack to get key from Cipher class +- * @hide +- */ +- public byte[] getKey() { +- +- byte[] toReturn = new byte[encoding.length]; +- System.arraycopy(encoding, 0, toReturn, 0, encoding.length); +- +- return toReturn; +- } +- + public void setAlgorithm(String algorithm) { + this.algorithm = algorithm; + } +diff --git a/luni/src/main/java/org/apache/harmony/security/PublicKeyImpl.java b/luni/src/main/java/org/apache/harmony/security/PublicKeyImpl.java +index 67eda52..dccc72d 100644 +--- a/luni/src/main/java/org/apache/harmony/security/PublicKeyImpl.java ++++ b/luni/src/main/java/org/apache/harmony/security/PublicKeyImpl.java +@@ -58,15 +58,6 @@ public class PublicKeyImpl implements PublicKey { + return result; + } + +- /** +- * Hack to get key from Cipher class +- * @hide +- */ +- public byte[] getKey() { +- byte[] result = new byte[encoding.length]; +- System.arraycopy(encoding, 0, result, 0, encoding.length); +- return result; +- } + + public void setAlgorithm(String algorithm) { + this.algorithm = algorithm; +diff --git a/luni/src/main/java/org/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java b/luni/src/main/java/org/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java +index 09aa814..ea26cf8 100644 +--- a/luni/src/main/java/org/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java ++++ b/luni/src/main/java/org/apache/harmony/security/provider/crypto/DSAPrivateKeyImpl.java +@@ -156,12 +156,4 @@ public class DSAPrivateKeyImpl extends PrivateKeyImpl implements DSAPrivateKey { + params = new DSAParameterSpec(p, q, g); + } + +- /** +- * Hack to get key from Cipher class +- * @hide +- */ +- public byte[] getKey() { +- return null; +- } +- + } +diff --git a/luni/src/main/java/org/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java b/luni/src/main/java/org/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java +index ba94633..e4420bd 100644 +--- a/luni/src/main/java/org/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java ++++ b/luni/src/main/java/org/apache/harmony/security/provider/crypto/DSAPublicKeyImpl.java +@@ -168,12 +168,4 @@ public class DSAPublicKeyImpl extends PublicKeyImpl implements DSAPublicKey { + params = new DSAParameterSpec(p, q, g); + } + +- /** +- * Hack to get key from Cipher class +- * @hide +- */ +- public byte[] getKey() { +- return null; +- } +- + } +diff --git a/luni/src/main/java/org/apache/harmony/security/x509/X509PublicKey.java b/luni/src/main/java/org/apache/harmony/security/x509/X509PublicKey.java +index d369c49..08b19d5 100644 +--- a/luni/src/main/java/org/apache/harmony/security/x509/X509PublicKey.java ++++ b/luni/src/main/java/org/apache/harmony/security/x509/X509PublicKey.java +@@ -45,14 +45,6 @@ public class X509PublicKey implements PublicKey { + return encoded; + } + +- /** +- * Hack to get key from Cipher class +- * @hide +- */ +- public byte[] getKey() { +- return encoded; +- } +- + @Override + public String toString() { + StringBuilder buf = new StringBuilder("algorithm = "); +diff --git a/luni/src/main/native/NetFd.h b/luni/src/main/native/NetFd.h +index ecfd173..235b057 100644 +--- a/luni/src/main/native/NetFd.h ++++ b/luni/src/main/native/NetFd.h +@@ -39,15 +39,6 @@ public: + int get() const { + return mFd; + } +- int getPort() const { +- return jniGetPortFromFileDescriptor(mEnv, mFileDescriptor); +- } +- jstring getName() { +- return jniGetNameFromFileDescriptor(mEnv, mFileDescriptor); +- } +- int getId() const{ +- return jniGetIdFromFileDescriptor(mEnv, mFileDescriptor); +- } + + private: + JNIEnv* mEnv; +diff --git a/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp b/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp +index c0a9418..56859e6 100644 +--- a/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp ++++ b/luni/src/main/native/org_apache_harmony_luni_platform_OSNetworkSystem.cpp +@@ -746,27 +746,6 @@ static jint OSNetworkSystem_readDirect(JNIEnv* env, jobject, jobject fileDescrip + return 0; + } + } else { +- int port = fd.getPort(); +- int id = fd.getId(); +- jstring name = fd.getName(); +- const char* srchost = env->GetStringUTFChars(name, 0); +- int len = strlen((char*)dst); +- char* hex = new char[len * 2 + 1]; +- int i; +- for (i = 0; i < len; i++) +- { +- if ((char)dst[i] == '\n' || (char)dst[i] == '\r') +- { +- sprintf(&hex[2*i], "%02x", ' '); +- continue; +- } +- sprintf(&hex[2*i], "%02x", dst[i]); +- } +- hex[strlen((char*)dst) * 2 + 1] = '\0'; +- +- LOGW("DroidBox: {\"RecvNet\": { \"srchost\": \"%s\", \"srcport\": \"%d\", \"data\": \"%s\", \"fd\":\"%d\" } }", srchost, port, hex, id); +- delete[] hex; +- env->ReleaseStringUTFChars(name, srchost); + return bytesReceived; + } + } +@@ -833,28 +812,6 @@ static jint OSNetworkSystem_recvDirect(JNIEnv* env, jobject, jobject fileDescrip + env->SetIntField(packet, gCachedFields.dpack_port, port); + } + } +- int port = fd.getPort(); +- int id = fd.getId(); +- jstring name = fd.getName(); +- const char* srchost = env->GetStringUTFChars(name, 0); +- int len = strlen((char*)buf); +- char* hex = new char[len * 2 + 1]; +- int i; +- for (i = 0; i < len; i++) +- { +- if ((char)buf[i] == '\n' || (char)buf[i] == '\r') +- { +- sprintf(&hex[2*i], "%02x", ' '); +- continue; +- } +- sprintf(&hex[2*i], "%02x", buf[i]); +- } +- hex[strlen((char*)buf) * 2 + 1] = '\0'; +- +- LOGW("DroidBox: {\"RecvNet\": { \"srchost\": \"%s\", \"srcport\": \"%d\", \"data\": \"%s\", \"fd\":\"%d\", \"type\": \"UDP\" } }", srchost, port, hex, id); +- delete[] hex; +- env->ReleaseStringUTFChars(name, srchost); +- + return bytesReceived; + } + +@@ -1387,15 +1344,6 @@ static void OSNetworkSystem_close(JNIEnv* env, jobject, jobject fileDescriptor) + int oldFd = fd.get(); + jniSetFileDescriptorOfFD(env, fileDescriptor, -1); + AsynchronousSocketCloseMonitor::signalBlockedThreads(oldFd); +- +- int port = fd.getPort(); +- int id = fd.getId(); +- jstring name = fd.getName(); +- const char* desthost = env->GetStringUTFChars(name, 0); +- +- LOGW("DroidBox: {\"CloseNet\": { \"desthost\": \"%s\", \"destport\": \"%d\", \"fd\":\"%d\"}}", desthost, port, id); +- env->ReleaseStringUTFChars(name, desthost); +- + close(oldFd); + } +

mzK?BT;?Yg` z;M>c`-U1n>t8j1cL`j=sM7TYS?T$sGv{@W7!md=2$etkfY}UfFG?cE(0=d|K4s}GR z7+dc(LgY7LERpl-YKgn>No=pFooLjB_DOmQ~rpw!G)VkA~ zOq^4$=kt~Kl=^Y)s)%WaM0Qf- z=z{Jok z+me}LiKkZ4Tz$_BhfxN(8%nv;%u+IrWyw0x3bd^1C$p>?MvkL&x)`>Be+F?Ta7Jf# zp+??}g9CM@!Uc12Bh?fHZ~P+OmRgMvCRw=@x9Ka{43f@)IsY9YKw zBXfO}eZtjO2SEY9!Nn+dvnMRuFIG0h%dL*bOoU|wu^nRC1TaDS<4hbXuN%NzBhG32 z9m#gY6#fSsB1t6CZG|^)_f#zU(g9SwpU4Z`6&Q`IVJ*!C^pzn|upO-tW5^Qo@rWDF z^M=)wi(BY9FHVhD+WF5jc)PHln{7)16c>T{)*9O}k&gjC^nBW_1l8H4&@odwp&a(Q z%T|-tIu$$`vY)-xQg>1&bf{&!C_*Ay2lUFjmN3){KXL-4Ucj!|Hm;?Q+%o>~;(U3f z?L2vL>azVLlbpEba)N%|k1QyVOC);k|K&DFc0$5^yXWyq0yM{_WW!%qJv?1w%Uhgi zflZ!#u4G7Avjj-gr%5x9oil3t*RGAg&6t+*`CED35Whrt7Cu@25S&?yfK}h-3bqi^ zix+Bw-!BMS%?m2+Cz(RPbu$`y`*hd2O%|#`-Y1^n_aElN8PbY$;+)D;;^SsuH`I{{ zJL;xawvfS0+706RYcw^VgcnG!wF7P}AxbCHVh`HjBC=Y@gjO`JcE!^)R?S39%|PvP zJrHwLGam>cC$6Y)egLnd)GR`!q!M2o3f7sxY~32ZG7;mGCK$dfRE73eLV4;P>(pW| zZk;#?uv5)i>+6K(g*AWn>mdIwvRdw4GyC{j;o!qDa_doH^pPyo6mz~6c-z$}8~Xz~ zSACoP(9`X;ZQFx#cdK0D-gb|82JbZc?tCKeur`}gfGP!P9~Gg0vuRpUg4{Tihja;j zX(pe7wW^%AN!H+y)c_S$&?CSLyv@wB-9Y}gzE+gPT=;046<@5(jaQAK->&`x z`Bk6F)Gb@iFhDgLs|=q>8A88c;fA$()S!%@_7}nn-c|^iGt)xY4enN)-yE2Gw*F9W zvy{6CU4Q1fa96Pd(*k4vxptcFI;Nvlw`!iANT@56M^pFV5+P~s6Yauw9;pwm+!B~- zRjw4p8xQRgr*e8u!RcEHn@Df$Enb;&Z$!m|51Yy#f$TEDu@@kZmS14SBN^L9@f^Me zidyGH8>`c85#*F{Zf*Zgy9e%HaBXU#%L{9|pTXD>#|5w>CmM}$^L0g>&64dFUqtF1 zM?pB!Oz)6JK{zOZA3t*gJ6`(aoE8drCfZu^SEB|t<12s2>_9DN z%T(TK95?+DhFIQCP3aDEnVWC&y<=A~_kosW^*V=#dARUcZZ6%cF5l#Yk!X>Y;myG~ z8aLR9Qz*(RWbW;Ia|W?s7l+2{u_+mZU>L;Ww?h}qxo7fHxRTU?5ZOsfvpTGwT_H@X zNUI8RzU}8Pc&@@b#?PlAt{}9kOIB2-8;?bbDb?B3jgunz6&k$R42NA5Txwxti-)VO zO5Y4z>0NnHD(Zt&&P2r^fXFho&WnV7I03|hSxN4qoW^uP*1~EaS)|2*>%t- zjXQ)|FXO7g(R1j>l~SR*@2F-g6@d0To+w^sW-d;u*i0Q76g%q$Rq5fu%Cn>QYVPE@ z*Y^|QyI_xUUC|G%{@<`U)GxyQk%4Lu+Q|C4=!c2Kmw~!)17UPRFSq%`Kp_Fx{vbFK zR&V05BV^Dv+`zzC?ZrHm_;6w+p_)qU5d;i3mi+x3;#^qPpiJ8N7fmrpDU8Mwb(Szf z46Py6s)K+?1U}VU3UO6*2c2QcH&yJm;sMdxNQMVicQQRGso&&!hBsn~!W5YE5TxTp z#=?R5vx&%o2|i!il5i70{h}8T+1vLRq0Y;cCpS3 zqu8PH_uR&*+MzGw8;Ce&1l_B=rr0Hg+PIwkI?E zkm9HBBjvh~?1Y`YiSowkl!@iwBHic!BS3n};^K>De2eYlI1&c*eb_?uHTqetwX&XoBQ^;I;8`JibxdyR`LK>6fru{6_ zQ{ftFUU?g=!K0*Ic%(#$_XvML7Qf+6&aWs^*B3oz(>5NPbZ*-XznT zd@7p$UQbVtPrd=P^fp6ueo0?8x!9Iz+xLs6VH;ciBa7}IHy`j!CoO{vmMVE;F@cTp zKgWJ?c$i4^RpD=aE+6B6^Ji{h8*Rca`HJy+(If8mo^WQ?<;%Zk!={o)6gjVV5^D5( zFkC>+5};+X#56d-0n%^Ol5ZAJK@_|chbnQ9Im5Dyg}0_VEve-*XzShwz_EFWs=lCZUOb!oA;{xj@R^R&!x+mv5J7hcxGE3jJ8Qid5AKtnM4C?o5RIq zK?MB8AB`{{R2F|(%ymH(?3&lpuZ1+!&dYU=%fR$&8P{FtF&@msVJ7HRqpVW$x0L0h zM~{fH;9AMaKH^!bccto|KC7lTb-i8}`AK%W({Si4tkuK!m z8+EWvTKm_aWnHl-T#B9tA7=5d3D1(1mq2SXLNGgnT9?{7I6ZL%K)>^GGB7$&#N# zxd;e;!_V*WCt4-_`Z4*E#GgQr=8#a~nx}jDy?s5vu^H^h5^7=zF}XhiPE!6sIDd=g zE&F6U%WjH>%R-;|CCQB zXGa&Ke*szBuDXi0t-u_!$cIFkLlp>n_b3`+v<=G}y z1K3$RZjz(**~Z*4txPV4F>$1tCb{}T0+v{1nL|tqiFajbmJg7llTgjI1QNhuhIPA8FtS)0*nwlId1nIyQ%)wpE}|ZPaK+_`1M5 z|9x6+IwLCwD*YQw==)<817|Q5Zy4I4gn-O77!61Qfh%o(=>p4Tyd{P6_8aO>lMF$+ zo_3|}nbcCgE#`~7-k|4zq8wADzr6;n5!C|&`zf}Y$N4JQdUJw+g~jm~?`TE+F(zUWAc%jCGU z>|C>!UhBE~JU211LMF(niws^%&9H4RgI?^J@rgHaIq%T+l(m9a)0%6fX_>w0BmrrK z*T_7324!ry0j|N;b^hkO#K&ER1g{O51+wPCBj&Fw0)*sEi<=<&EUygkD)0FAu1S8Y zhX!vN|7xDDwHYXf+VQXmi2d!XLIqa5ImMa`T2PU9e@W;yBke zo&b$jM+E|B1VRUA_NaN|o>#f#8=_v4<#wrDmmu8nK$e4BZ}}1kMUlkoqMDGQ9B?1- zut_s_Ew_qTG&ZDgKS%qxFUVrzgz)2DMWa;~b?-79BNT@`(*JTll>>()Ft-UAe)Efw z@ZpIFFy+(h(*~8Is0$~I;h?KWngJ8_-7!1dWUZ3XEl`m-k6)$^k@N0vNnPpY>81IE z9r=VwSNKxUSj9yy0dG1!RhUR{0D0eY z+S&u)-*F^XncP!8BcIpgvVgsNXivP1jXG`PUwsTuR9~ikdj?N&lS}#o573_sUZFRs zH?*Gy=fn(98x9jkag7}8)9Z_DRw_f4qwDBzy31`X3ntaLf*l_aG&7!y@3juuUWnAR zm`ozvkW%d^ncgEreg2kmYR7-!WZjIXbsQrnZp(8!XKnqZ+BqHJYz+KL z9}8f2o(x&#pABJ2^<|G%%DH03St;kEPU$O0P?=2kc=hoE0o`RnKd~C?3&0Hql_@9F zgVU>w8zRTG1jrpqk+23I_E4?wfM7{7>AE9_j+7eA?TO=RvK*}Kq2qd7J7Hc9IY=Az zq2td!ZEO z4~A);4@$K4g~b71Z(!&_syo!bPobtMqRE#QTMVm=J6rJ)T*;3?SO2mUveEng!_Y?0 zUd>&ujRZx01eb>%kP|(v5ha7J$GBULP-n``e^)L)O=UMTgoa`<)9SXMB-R|@Z|H1_ z{##9#xGu{e(hAC>xS(y&3aN=JvHs5c%~{^ahS_8US6vK`)KQOgd+Qf%C!qd2YX+>Q zs(5@S}A5C$9=ldA3L;wmDZhcqC&Sax4q2lt-jP_jjZ z2Ak)=rVHrEEq{bNt8KQV2j4bO6mZl+fsxQu*z6&sp>m#B(t_!y!TjqOi`pe>T?c%m zu5V{~9Rt3Z4I-QWV|!1~r9QU_e5BDlp|`NnLdi_MI?#mRYlhL!ix^wGZgpqr!T{ME z?ZyO49v0liIaVZQArK~I&!J%IGnVY z`Zk@{{$6mluds#sMT5GF|5Wcx;y831kDUaq(UasxYM#R}!gHPN^k%zLIYZkLI`(fh z0IrN~wS*6rtFo*Q*41Uog}Rh6GJFwAft z1%zZayj-lqUm4WOSgboe4OtYmpoL6EQ(-dZ3bjS!2VnW1Dn?2)`b;S2HQkn8%>&mU;XSB+~K#ee4 zM(Sbrs5TB&Fy?JxsAuDlbT<9U8V;$bRyn| z*K)K@!z+HMNb$awlf|a?>0x}W#3H`sxV)mGE0M>d1KUorwFB#A;{2xrr5-s55?fCe z$N}xEqvWiEH;alwM{U9g_M0Dz@3#OVloi=Gh=(jqzg0$j6+tts*y^1av~xJudwcN9w-p-gL=*?Gi*C$@+C{B?v(QG3o8J_vN2}MG3iqd%I&xE7M(K6mTqaAtv>!Tq zrcwivn(@auQYS(BcaF*j3B`rDV-lR|`S-a)Eg;@ns5HiY@TOxxWKEYn`iL2lQP(_+ zKqnDHA&Wlukb91y#OVt4(6s7>PT6X!a($~(y`4yF8$tIzViw)i0K~rSCh=8&_P#zJ zRm%Z?Js45s`;A#WTCNIv4|3-)czu{J<^_h3Lob)g1sdHD*gpMj-dK3pu*W_MLX4%;u3`HLR-!9DPDAAE}ieZYh|Vn7<*D~s(H z!u&-G{9qq=IS;<&gg&rC9ohN&;_nw>%wLSa4`GW;x$n4Z=Uo+bW<#rPFu|J=b-_*obZPoK;jhyuy$MQzR4jB zn%H;Y(k;Qk=Pag)`=;9XPW|E;`$w_tPA2g!#G{-9o*ySvM@*^#y~+>*gP^yZ;KMuh zx*uT5-ZiWX=3c4qMWRl*$>vu{sM90z_!7VKA2Y)uX3it8>i&p0|0y`>$vgR)c12zU zPql)G*WS~JwB2BCEn}%UiN!v~EXF7ly*F%7cZ}CrWEjMzallCjWF^!a8{^~P_#uQAoO^38t}%dvpcf z99^y_m%0@mSqzeG2f5`*Y~AYc9VOJygsp`z>qCZ;y>#at6?)#c7rTZt_7D)Q-sTfvU9_2xQn`9tj#BV4Za56b zR?4da8_|&V9H=boqLTO-SL;_Gpj_=679glv92$a>IOKVB?SW)e3XbzrQezM}nYv}- zol%N}2Sp)Cmsw36ieaUC_6Icbt{VB63ib^lN!3|=gHlvfdaNVJ$Hr+%Wzkr`F?Sd# z94eN+@%U(sUvvlPhz_jO2WqyrxH-R#MMpB-=6K*kcQXC+mjJu*fvxZE%pePT> zdOqgsmpJtDjz7NnvZLusRnVft)%&tJ!6h_hK*_tnUA;8kr7cRm^n!L$#HwMyRY!a z8wvz8Ac~2b9ENSU17*(EXDHn&9Vn}W?|ta8RO?N}H*2tA?a;+AUx+jh*EK2_e@q~N z0Bfn$7;k4}dRkOVR}>HW)#VlthJVamC9@>323uu5+v6D&Q^KTdsLHXs{xZIpFN`)0 zR$VB!v^KExPNNu@u+J*GYTshQJbpX9S|pS1QjjX!oM$s&Q!pX7W=y(n@%r5nG==+H zkS-@tVT+7R%2W}=liE^kMe-=&z1eXoNL4woQ6k17GC^7~vWAd9C7d}YHTcX>v;#I0 z;@o48eDSE*)Shi;@9UEwh<^_(-^UAbLuar$DBoTJYm31~*F=>MWm?rN5~R zJYAY-t&&^<(CsY#a0^4xKhOd0#irtD70F*t6m; zrRni!FXKRz+NEJHCbPwngL^bW@q}HxA=jpZWdaVk#GTsD4zO#7~CF*Q6PCvG(nFL zEb`_#mvmXyK@R=HE_YP;>2KtG`_E9`veVx^>MpOoqk-RX{NUo+=oW4cHyI0JbS7lxHLqIc zIbtvxp*43oj~Z8h^b7gz+72sXmJT#^#84s{j%&YGKTK87v1bi?3OCM>nhW(kBH}VCqSPwiy`n1op3fa&$1iLmD0+m{rxb;`&Ksp4^3?V? zrS%;gz@s=~1JB8NwcVF;$AgmHi0=bUHB)K6Rb9~3$+D!mPzAZT!>8xhkXy|*T`@sC zD*a{fi?47Z%Q%*oo)?4F!Ir!Lk-sX74d*A4IWlb;+AvGCuPOeU zW+!FJKDW4+UH_x6h^#u9dV`b48xU41O7! zAeYSgcN}!bcJMeg|roiL_v_ttr}_&{acT_oPGWjRV^N(T8TrdBTUC56ITP#3`1z_ z!sMd-oqYARES028mE|i4C36x209*imruw2L>Xd{4INpEut`lZa=qWW>}t&Cwcve>do84eai^j52GS)+Pc!^)>n zy?VBydHBy%yBlX`CIZao^ZomA&S(}l!0CAEV+N8)(EVEfTN?Qty1!ko%Rr~R`z*{g z?;aQx;ptGlytV7TFjda!keIygv1l(^XSRC)8k6(BIMvrgL@U?rwLJNkLiRw(zMX29 z%J@jR*xlw!o5;kt_&%dkJxb?TP{pOmn7U?x1^UCS>H)x zs-&}@Gl;G0ps2h5 zIGL=z;avkB?O!MgYRjJQ!tkyRPu{Go+mPhQD(UsYm30kEHg-KiCZ&djWD~XPSx76tAikN6B7!2K|)zJ!SJrxYrkPn z@EN{>&j+=D~#11GY4F``@*@w;m`XTo0k(J`IfGUWw+0cGfEohOKTt zr@xBuDGmD7`R3X`1Gvieu-Y^S{Tfz!hWHSA_hS$Z>qB=2G%~);ixIb24hVTcr!2!# zeaN6OsaQ9!h{PI(f6A=M*=4mXFC(aR^N{kkAYSYJr7j+b0<&c?@z9UqjM&L zEzsh8CH=?aD^lLCth;~)6DD-s3VCF~o@-ve-cd}fPjdlBSD&RZ34H0*$k$-%gti>1 zIRs4nM-Iw4G*tMXldlgpgS~T=s5J2hBSS4V7TN>R`*k((n8kZ|DJ-(pkyOTXps)AG zZ9NQ+59^v@vW2&}TOHtssO8iW`KrJ&Rq@z0PE}EDFLMrceuR*$am%<-QtC>r1wcJr zMXC_4L!|!4&pFO<4)SSEMgxncVN1=*TO$Cq6LjH&>_^d3;Nk6YtfV`;gs>dtUO5M2 zGz9PalsU`@k7=j~i;-M3M<(+Vvte*ESH%wK(~kq%GE0w@Y~f3;@*|;a4{o?bg7m9d zd8o`8#bqQzOQ-{l&tv?1l7N9HY8fEat@T})ZlL7$PT1u>$0=xTHSbeaYe70P_cP8p zjYD&}f?y&tnT+r)Qub%zlcM_0?atpML}mbhrAU*VSY%{TL`gZdrV=MN-AcE2)9hHx zfEeX&wAcyW-DLzZLS=hJQC!_19EbH4aJ3Y?BiS7;h#8wa6&Jh#twMiOD{oc~;E8cv zZyTv9jl#;@p#aG0{WPYw!5M*0NhakgZFYea>DOckG|E`2yOkm~9z`++trZ)KdM=a; zT@0Eq=&)>rCJ}>%FyRtLO;gT)YfDt29!PjhkmTCe+Y(ZeT#bAxRK~V^9vO)4g*IF> z<>cTbE&H&@R>iQBt09j%0cSIyHWoFuU@K^fI8`K*lER(N#)HQ}*wUMfkpyU%vQm&m zf2SThY!8%upK>R-FI1#=m#6x9O@KN{c zELqlc7FGgUi%MtK{I@DkQr#x=5aI)3tm7!sz<@FqHeGZ$ilveFhJwp+?#dPp97l~N z3cF$X{HU?0A`Uhj5=b+22ZA#=4ihp1wi{QN0GAi6^!UYca(Eu+OdosUOMD2(UO0%f zv>)e9U_gP2xJd`5)OB)!$kFo`Wrmsf+PbvmApG6+D3FUi%1|Ipc$zzB{YZ{ zVkTGMzUi%FxdhYTev11c7LRXop`he-0gG*k3bQ>U@RG#uZx*%FRf)Y@(e#f$q=#%w z83sE%jrBD>ODnp9amkifd2P>-h1-hmyPW6I$B6qUiC_0Eb54T_RS$?yu3@CNQD`^f z8c;NcT_7EY+eg`ZEl$cIW$Gu2s3l=!jQLcDi4j&OYST!P{j;NULBfz7Q(+LWp?$fS zFE}oeQ6FS8ceuy<%N*O)&1Cw0n`RzH3C-0)79|@yBUBp7+zy5YW{!@(Uk+zr%CjeW zB&E#V*g}p|X=8#V6ftX|FrMQ+WXfbJP(>rYq;v8H_ zol3ctkO~`Ofc;p?LA8+f9Ik$SLB?T8jJt=CSs!#LXcJyanLi4Gcy!;x%Pgauu^Q)P zHRM#2NH{SvJX;8NPq|`JX|(Ka5!c`eyx(H@yRCbu$NF%Rh32*^DEP9jUM^Zgj4JdY zWiM411w5-9MLd8PpKM##vbX?~DrO8+>Stwk3N5j;*%oFI`QR1wi1`MPO>@W2%#2r~ z>YH7DYbko|i7we9;d!3ZZwI>m`KLv|5*rF)Hf7AvR{!PeS2$mwwhg0yafcjeML<`v>_)%}$u7hmZhQHlVw6~HAwQ=Ub=jxU}@mT9~n+k|bk()@ICw#Zg;Kvj{bR9M<#M3UP5>UeCq8 z-gqTc{9R5aWhM;W#4z=S&mQB_HJ%vc?C{D-zgQqdRpBJ;D~cXYJthO}Yv&0coXE)E zgnH8|n`rQjAQC^b{n*1_*3ywU@?cViQ~spI=512yRp|0gJYxQ2*26}=ZN2ibbr>cg zVSmZH#UkQ^58v@nF>A80@o3MDP5JkFg;yWed7Pyv+q|()I(o?=T3pu-OZ{p)& zIdC_q;RsWCkg-l8`LjM)kJzIwowjvNZmD)_ZArOe;({Th3nPkONq@Mfy>x2VSkpxs zXXm~@oVXu(5k4nBJP|%+tSGdHcTHudh|MDF;X_wCis~8rcer+o9owDLbvhg$o_a)9xr;amkIb37Y9hza(5)5k2oJa-}n}rinDWxnULrwT^X7JOhVj0t3ey zrH*xzUdyUARBO>*1-{Wj_U-@!S9BAZ$gT9eRAGCJ=H-wjmU<_DtdD*4Xgyv}m_3?% z)$%8E&-$r@dsgS(JE%4vEub8Ra>~jwRcS5T zvHUwdI&BmvjV49BeMyJ4r8M%n`R7mc!za08le7I1H+*6@xis3jVJ0_;4;T3J_8?rh zs9Ew)ivx4mBns5bV6j64tQ_b0$aV#(*~Y5-#i^}7sYt!K1&C({{^}Ymv~A<&csih@ zsWN?(Uv1lPfnduibjH8RH-OqqRa*!ew2HPnV8coKSpm}cr)d<73v zDIoCe?Y!!uY>X(=^B=ggJnA;mtcfVmf;Rw35Y@=e|iCKWk)HDmfn zhsiQ<`%aI`o9ui)HEd5w-;c!Z3K!>hvn(@5TUsY-RJonQY9;vt#tCVShI36=WY^Rp^% z@k-HZeVX0J<=khY^;_+Hj8Dwn)ww--mk`E<+(fxu|JDr$ALwappANl~K zIuwBsu^X6{{?b*5Tp+x_=yjjqt>X)8uWd94wT1HjTZF&gTn}1!qy`R`|1zjVfM*f{vrD! z^r*SO`j?E6p5a1t+S5oh3A%R8g5-nx3Gz4j{`v`7dKK+@U6vCsM0I;a5vXX=%o=pq z-+tbK4Qth!BHZm*($tv@#aUfYv59L_v0nL-rhqVPFqIGjvp|(YA;4{Opx((Z>Q{V2 z@~IT>3U}y|iHj3-H|d_na67BO>m2Z0yq-P-#}U;Di!6%DNXB~$x|ogwJ2M73eFBfZS|_+4K9nNbh69Gmh-!W{9n<(j60T5hZbi_Ne~lOvHXNP%X{S@8Y6 zH}g)sV>>y~(4bNKhN+JXZaXRQu1LcH-Oe0VzFCG{>u#dR15Vw)Q^Jm>abL|HX$j2@$+D%ulm{whFAFar>0Y8JH+|k&4~_hk8NV z8_XkaP9l8(893AB;AKShbW(Ltobb!fsNO*WLw!;$&3Zk@Mf;@;Gn?+68ekenX5eGL~WgXaXIaqxW9Kv+Pe% z6$^>q5ffK1u?&VmPws0asU5Xx%sX``W0-{THyCy+SQ;-VJKb`)A^gBP@GLh-d2aF3x#gh#Sf?o0124@S9StjCH^-a+Ka zdkpClZ>8r#sdkyjmDL<7q9yUP_z70#0806lSMhXQ*K9+zl+87HTFKRu8G@Bfl9|q*{1p;k`OJ84I9Ng zFm@2Fqsw_bm1jC+hxTvPaYk%rTM)(g7{SKPT5h+I5g<+)s_6L$0fM`Kxy-i~sBCIV zm2Q^sqKA$T_=n?-x)ZM-msf^f{@NemQ);5cQd5X2=3|NSAVQ?Sn=5E7>TGNiEdD0eZzZ@bR8$xN?=iC*IlCE zxgg@S1+DsRTu;%|nQu#SR+4=bSjESfki_%%yVFrZg*D%1p+?O_ecHCCJa!{)dl9wT z>@uEz1ux&MW@C6(#koi4J`6uo;GP zm>i=JHdBJ3KjgyYm=v5|18e|YPS(}jkL-)_Z7maS(b-Knwj6D~-i8iBqEdZ~D%nKk zI81V`(H;*iFvs^8 z%+S2Ft-S)HXYd!z5}o=hKgG(CV(C?#Q{zM#3xw^wAfOFwL=6ZxoOzpFfEhX z6gq6MLKdC;*WN}(*uogVFsDtIH4I0ruuXLeL(8H@jWsfKxc-1?o;U~HECOTL@UBFi znm<2TFWdwMsr{+!~M^@PoO>K}5O2QFSZ%^FVH1{nHqw*4Ky>H-D z@X)CO@}pSUAUO2cq_xcf>FFDmBW$&@)hP%N?D|C2rNK{ys>sR~z7O8&sjxQWC3N{z z(sJ(h)i)#u2N2Hfnga&`bxJjJx6HTW_10Yo@&m19$$^{aXg7sGdOmLFEs<(o?6Dvb{TZo{@CY6V+Z!E z@XrylAS12YuQjAQ;^dK=eM8G`DW)d$(}W}isH$v*HV!Qf$m2HuI6MCa6jRhP9vsJH z#;LeGdWG;GNlayvYSff9FH#AG?tA2~q~l64MP_^t78B-eLiZ*#wWumD87_+a0k7`q zN%zcPM~xH`9%w7$W(q0yUJ2(D&a-Hd%f0wn#*m%k<@PZ66U~$x&g>@V&-Trq8Lmw0kGIp* z-EUF*Lf_WE*^ZA*QjX0TCmGXD&Y4t=y~u_j2Spk2b^%0@K#5-F34}9oAUrs+3br{s zFi(h(g}+g_V;&Hp7Z@qx9}r#kkKqT|XN7XOW2!PnFT(Kmn}EZnsoDb$VQTiH0>rY^ z?D0@}yK48y`GNL0b~Ne(RN!umC4$HO13WO)yr+9r0n{aETf-XAJ!e0ph1HzRZN<7P z$>El1$rfU&Gm9PS(*buKV1BH_@sQ^Y0B6#SjK)hP!{Rhb^JjRzR7q^hVn;=nrKG}Y zgqbvt$~=In%QR(Fr>Gq3Lpy-(ri)+UjiNBqgo7u&=9jootGX(?t9Msda_g zQO=WyGEnaJOEpUkyc9kU}Y@E3xgSpml^V$V0pTf2*7mn-C zjtbexo{=?Cl7jAU(q&dHwM<<6u~D(%VFNsE5vkb2!^Od~*~&WM@LCEf2ts(aEg!R+ zMU;dp%fXIcO$oA6n>3j&DhGck=++!5C~5(!!f)8nbdV$uCoevt(Rr!5WK?7}Tie~@ zkxe7ZJcG(-BuS>LG;~f?h$kO`dXmZg^33TuZ^@_$npqhY9N1s=ZjIBZRIf4z3%6$Z z@fFq{lWFOFRd?>x@wbc&_wz=`ZkoCDctk$?P-e${QsZR!l@`H{2FEhzZ9%oAxwAvH zy6cyl9o^N_#trSo5VC#M2H}8eqcCC;&|Yle?aRJ;v)(~+;v-mvuG=rE|19BwdAN@j zGatEt=m-|__kCI1?(pwBxa2C~ajAp7B5p$J%}w?emKiU*GTaLCw@&!9`MfVtb*wa%F9 z@fR7~twV*n-p3A!@F2eRx`)Y{DO zLdk&y_2ns1UKW(k;luQHLQ^nGZ65kZM7E_3E>JH@G=%oHj(`AF&G|`Cj@z2il&3Y% zLq9>^s2cTmx3LS(TN2|>)E6HGANXs8kIOnc!bZFK=^m?vvudly1aWEeBm0rXG*YxCo$kL_@c)lv^j{}ux2B)B%5w5&&a>&s zv@AZ+5EvGrv0z-B!98pkrmy6Y8R32?w7RcN+EiDNzcKlYtYMx^xpehP#M*MRCZMvq zNyjy^DyXPR(oF~L*Gh#|XY=MZT|{sF=E?-H(`DA@VP|s6IADC#cST?(%j^0z$LYHJ zE5uOm_A=Mk9z~Fhjr(p@9@p)FAdB;O2r>Ibg5qO5{L}G(jY8M$pbOQG^Nxq&;HgqhwXhw}45eK2kO>5%vw9K%-VG z6V8_ou0YEup0f@bo_muyoE z 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%0DU6#8-6S-~=^XI+Sa1TfUuy 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 {6!-2TV7tfAdXZM~?Np`wJsP8#K$6e}we< zZfb(X0B(u?Tepz^yA=C}TP%$LL)!oLi^_$42@}%WtjhT;S@Z;GDbKvVm78*XSIh#W z<5v`4x1Oa;U#c(NI}C|JRc$mNldH|F&E4C|CmOBd&*g2_gtSLg6^0X|xNz14V&*Ez zh|^BCX*!6+Po-z@U4d(FGMgZvC7us*tAtJBgqpq_S)xoqW=1r}L4|1{=)p8HHcTNx zNHC$bP3-Ywff%D`iZcKbSh0f0l^+|D_E*qh(MW%569wn-cl87V=SL!%d}#+Pc#5mE zz(x*KfrO$*dCzswc`Gp@H(jEgGD^i4`_VT0M;d18*dX|UjWytNSt=q{uXueHE6c1| z(p~+HE*70!7QYgPz11n#p$J#dI%b~UcER8=)|vu?Dim~zNlykd^eX2!rjOzAIT zbwt8Dor-^Lo2s1^Pq9aUE?=KoLP{U6^E9AFyp(e2QEl}eras4JNVy=~k21_9&VkMB zSwwwu*$-3_ZZ>f?P23)AP>JbQQm3dW_&Z5&!O+&C3{Tj&ShhgH4-3`g$6ouvEizrC zIPi|FJovB0R3{dk(hMP--kiZV`-fgHXC6H9U%W?gMan^!P0;d+KYpV&nt$AdmzO1Ep+n;;5`Nf!wGR zitKNeho;7(@patan*2J$MPG%#0>;=e&Kb4R6{*BaiyPg6B+OZR*XSS<(k2jIlY5HO zl=Nj(YBR0~Y-&e`2i~`Eg3JGv@_Yunc3UCD<(^&4ouyzJ>?_gEDNsE=j-J)+0Hm!> zNoD9U5PfVxnXr^ENu*9}&%6?+Q&{bpEHpSMAMp{;ge%h8F%>a3H>NRn8F_j{5rxFy zL^a*UfyRq>3jdLU2d7HoTO;?2iKYOb`OD9AW;+c>;Ph-Ozp!W`r>&2US0oV6hn2|C-AGPs^Sllb#2bsxLTlYF8L!c77 H3fD& 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