From 535e2c2ee22887144119ed4c00ef880edd6995ad Mon Sep 17 00:00:00 2001 From: Bjoern Kerler Date: Sat, 25 Dec 2021 23:01:25 +0100 Subject: [PATCH] Say welcome to the first gui attempt --- MANIFEST.in | 1 + README.md | 14 +- mtk | 690 +---------------------- mtk_gui | 333 +++++++++++ mtkclient/Library/Port.py | 5 +- mtkclient/Library/daconfig.py | 2 +- mtkclient/Library/hwcrypto.py | 8 +- mtkclient/Library/hwcrypto_dxcc.py | 4 +- mtkclient/Library/hwcrypto_gcpu.py | 4 +- mtkclient/Library/kamakiri.py | 3 +- mtkclient/Library/legacy_ext.py | 4 +- mtkclient/Library/meta.py | 2 +- mtkclient/Library/mtk.py | 150 +++++ mtkclient/Library/mtk_da_cmd.py | 18 +- mtkclient/Library/mtk_dalegacy.py | 2 +- mtkclient/Library/mtk_daloader.py | 2 +- mtkclient/Library/mtk_daxflash.py | 2 +- mtkclient/Library/mtk_main.py | 544 ++++++++++++++++++ mtkclient/Library/mtk_preloader.py | 2 +- mtkclient/Library/partition.py | 2 +- mtkclient/Library/pltools.py | 4 +- mtkclient/Library/utils.py | 18 +- mtkclient/Library/xflash_ext.py | 5 +- mtkclient/config/brom_config.py | 4 +- mtkclient/config/payloads.py | 6 + mtkclient/gui/__init__.py | 0 mtkclient/gui/images/logo_256.png | Bin 0 -> 34688 bytes mtkclient/gui/images/logo_32.png | Bin 0 -> 4335 bytes mtkclient/gui/images/logo_512.png | Bin 0 -> 124754 bytes mtkclient/gui/images/logo_64.png | Bin 0 -> 6682 bytes mtkclient/gui/images/phone_connected.png | Bin 0 -> 4435 bytes mtkclient/gui/images/phone_loading.png | Bin 0 -> 2560 bytes mtkclient/gui/images/phone_notfound.png | Bin 0 -> 4215 bytes mtkclient/gui/images/phone_success.png | Bin 0 -> 6857 bytes mtkclient/gui/readFlashPartitions.py | 180 ++++++ mtkclient/gui/toolkit.py | 26 + mtkclient/gui/toolsMenu.py | 102 ++++ pyproject.toml | 4 +- requirements.txt | 4 +- setup.py | 6 +- 40 files changed, 1418 insertions(+), 733 deletions(-) create mode 100755 mtk_gui create mode 100644 mtkclient/Library/mtk.py create mode 100644 mtkclient/Library/mtk_main.py create mode 100644 mtkclient/gui/__init__.py create mode 100644 mtkclient/gui/images/logo_256.png create mode 100644 mtkclient/gui/images/logo_32.png create mode 100644 mtkclient/gui/images/logo_512.png create mode 100644 mtkclient/gui/images/logo_64.png create mode 100644 mtkclient/gui/images/phone_connected.png create mode 100644 mtkclient/gui/images/phone_loading.png create mode 100644 mtkclient/gui/images/phone_notfound.png create mode 100644 mtkclient/gui/images/phone_success.png create mode 100644 mtkclient/gui/readFlashPartitions.py create mode 100644 mtkclient/gui/toolkit.py create mode 100644 mtkclient/gui/toolsMenu.py diff --git a/MANIFEST.in b/MANIFEST.in index 49e5af1..e624abe 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -4,4 +4,5 @@ include mtkclient/Loader/*.bin include mtkclient/Loader/Preloader/*.bin include mtkclient/payloads/*.bin include mtkclient/Windows/*.dll +include mtkclient/gui/images/*.png diff --git a/README.md b/README.md index f98a58d..7a83465 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ -# mtkclient +# MTKClient +![Logo](gui/images/logo_256.png) + Just some mtk tool for exploitation, reading/writing flash and doing crazy stuff. For windows, you need to install the stock mtk port and the usbdk driver (see instructions below). For linux, a patched kernel is only needed when using old kamakiri (see Setup folder) (except for read/write flash). @@ -11,7 +13,7 @@ release the buttons. - kamakiri [xyzz] - linecode exploit [chimera] - Chaosmaster -- cygnusx (GUI) +- Geert-Jan Kreileman (GUI, design & fixes) - All contributors ## Installation @@ -23,7 +25,7 @@ User: user, Password:user (based on Ubuntu 22.04 LTS) ## Install -### Linux - (Ubuntu recommended, no patched kernel needed except for kamakiri) +### Linux / Mac OS - (Ubuntu recommended, no patched kernel needed except for kamakiri) #### Install python >=3.8, git and other deps @@ -115,6 +117,12 @@ sudo reboot ## Usage +### Using MTKTools via the graphical user interface: +For the 'basics' you can use the GUI interface. This supports dumping partitions for now. Run the following command: +``` +python mtk_gui.py +``` + ### Root the phone (Tested with android 9 - 12) 1. Dump boot and vbmeta diff --git a/mtk b/mtk index 8c90cdc..cf0be16 100755 --- a/mtk +++ b/mtk @@ -1,696 +1,10 @@ #!/usr/bin/env python3 # MTK Flash Client (c) B.Kerler 2018-2021. # Licensed under GPLv3 License -import shutil -import os -import json -import sys -import logging -import time import argparse -from binascii import hexlify -from struct import unpack, pack -from mtkclient.config.usb_ids import default_ids -from mtkclient.config.payloads import pathconfig -from mtkclient.Library.pltools import PLTools -from mtkclient.Library.mtk_preloader import Preloader -from mtkclient.Library.meta import META -from mtkclient.Library.mtk_daloader import DAloader -from mtkclient.Library.Port import Port -from mtkclient.Library.utils import LogBase, logsetup, getint -from mtkclient.config.brom_config import Mtk_Config -from mtkclient.Library.utils import print_progress -from mtkclient.Library.error import ErrorHandler -from mtkclient.Library.mtk_da_cmd import DA_handler -from mtkclient.Library.gpt import gpt_settings +from mtkclient.Library.mtk_main import Main, metamodes -metamodes = "[FASTBOOT, FACTFACT, METAMETA, FACTORYM, ADVEMETA]" - - -def split_by_n(seq, unit_count): - """A generator to divide a sequence into chunks of n units.""" - while seq: - yield seq[:unit_count] - seq = seq[unit_count:] - - -class ArgHandler(metaclass=LogBase): - def __init__(self, args, config): - try: - if args.vid is not None: - config.vid = getint(args.vid) - except AttributeError: - pass - try: - if args.pid is not None: - config.pid = getint(args.pid) - except AttributeError: - pass - try: - if args.payload is not None: - config.payloadfile = args.payload - except: - pass - try: - if args.loader is not None: - config.loader = args.loader - except AttributeError: - pass - try: - if args.da_address is not None: - config.chipconfig.da_payload_addr = getint(args.da_address) - self.info("O:DA offset:\t\t\t" + args.da_address) - except AttributeError: - pass - try: - if args.brom_address is not None: - config.chipconfig.brom_payload_addr = getint(args.brom_address) - self.info("O:Payload offset:\t\t" + args.brom_address) - except AttributeError: - pass - try: - if args.watchdog_address is not None: - config.chipconfig.watchdog = getint(args.wdt) - self.info("O:Watchdog addr:\t\t" + args.wdt) - except AttributeError: - pass - try: - if args.skipwdt is not None: - config.skipwdt = args.skipwdt - except AttributeError: - pass - try: - if args.uart_address is not None: - config.chipconfig.uart = getint(args.uart_address) - self.info("O:Uart addr:\t\t" + args.uart_address) - except AttributeError: - pass - try: - if args.preloader is not None: - config.chipconfig.var1 = getint(args.var1) - self.info("O:Var1:\t\t" + args.var1) - except AttributeError: - pass - try: - if args.preloader is not None: - if os.path.exists(args.preloader): - config.preloader_filename = args.preloader - config.preloader = open(config.preloader_filename,"rb").read() - except AttributeError: - pass - try: - if args.generatekeys is not None: - config.generatekeys = args.generatekeys - except AttributeError: - pass - try: - if args.ptype is not None: - config.ptype = args.ptype - except AttributeError: - pass - try: - if args.socid is not None: - config.readsocid = args.socid - except AttributeError: - pass - try: - if args.crash is not None: - config.enforcecrash = args.crash - except AttributeError: - pass - - gpt_num_part_entries = 0 - try: - if args.gpt_num_part_entries is not None: - gpt_num_part_entries = args.gpt_num_part_entries - except: - pass - - gpt_part_entry_size = 0 - try: - if args.gpt_part_entry_size is not None: - gpt_part_entry_size = args.gpt_part_entry_size - except: - pass - - gpt_part_entry_start_lba = 0 - try: - if args.gpt_part_entry_start_lba is not None: - gpt_part_entry_start_lba = args.gpt_part_entry_start_lba - except: - pass - - config.gpt_settings = gpt_settings(gpt_num_part_entries,gpt_part_entry_size, - gpt_part_entry_start_lba) - - -class Mtk(metaclass=LogBase): - def __init__(self, config, loglevel=logging.INFO, preinit=True): - self.config = config - self.loader = config.loader - self.vid = config.vid - self.pid = config.pid - self.interface = config.interface - self.pathconfig = pathconfig() - self.__logger = logsetup(self, self.__logger, loglevel) - self.eh = ErrorHandler() - if preinit: - self.init() - - def patch_preloader_security(self, data): - patched = False - data = bytearray(data) - patches = [ - ("A3687BB12846", "0123A3602846"), # oppo security - ("B3F5807F01D1", "B3F5807F01D14FF000004FF000007047"), # confirmed : mt6739 c30, mt6833 - ("B3F5807F04BF4FF4807305F011B84FF0FF307047", "B3F5807F04BF4FF480734FF000004FF000007047"), - ] - - i = 0 - for patchval in patches: - pattern = bytes.fromhex(patchval[0]) - idx = data.find(pattern) - if idx != -1: - patch = bytes.fromhex(patchval[1]) - data[idx:idx + len(patch)] = patch - patched = True - # break - i += 1 - if patched: - # with open(sys.argv[1]+".patched","wb") as wf: - # wf.write(data) - # print("Patched !") - self.info(f"Patched preloader security: {hex(i)}") - else: - self.warning(f"Failed to patch preloader security") - return data - - def parse_preloader(self, preloader): - if isinstance(preloader, str): - if os.path.exists(preloader): - with open(preloader, "rb") as rf: - data = rf.read() - else: - data = preloader - data = bytearray(data) - magic = unpack("I", 0xf00dd00d)) - # cmd write - mtk.port.usbwrite(pack(">I", 0x4000)) - # address - mtk.port.usbwrite(pack(">I", stage2addr)) - # length - mtk.port.usbwrite(pack(">I", len(stage2data))) - bytestowrite = len(stage2data) - pos = 0 - while bytestowrite > 0: - size = min(bytestowrite, 1) - if mtk.port.usbwrite(stage2data[pos:pos + size]): - bytestowrite -= size - pos += size - # mtk.port.usbwrite(b"") - time.sleep(0.1) - flag = mtk.port.rdword() - if flag != 0xD0D0D0D0: - self.error(f"Error on sending stage2, size {hex(len(stage2data))}.") - self.info(f"Done sending stage2, size {hex(len(stage2data))}.") - - if verifystage2: - self.info("Verifying stage2 data") - rdata = b"" - mtk.port.usbwrite(pack(">I", 0xf00dd00d)) - mtk.port.usbwrite(pack(">I", 0x4002)) - mtk.port.usbwrite(pack(">I", stage2addr)) - mtk.port.usbwrite(pack(">I", len(stage2data))) - bytestoread = len(stage2data) - while bytestoread > 0: - size = min(bytestoread, 1) - rdata += mtk.port.usbread(size) - bytestoread -= size - flag = mtk.port.rdword() - if flag != 0xD0D0D0D0: - self.error("Error on reading stage2 data") - if rdata != stage2data: - self.error("Stage2 data doesn't match") - with open("rdata", "wb") as wf: - wf.write(rdata) - else: - self.info("Stage2 verification passed.") - - # ####### Kick Watchdog - # magic - # mtk.port.usbwrite(pack("I", 0xf00dd00d)) - # cmd jump - mtk.port.usbwrite(pack(">I", 0x4001)) - # address - mtk.port.usbwrite(pack(">I", stage2addr)) - self.info("Done jumping stage2 at %08X" % stage2addr) - ack = unpack(">I", mtk.port.usbread(4))[0] - if ack == 0xB1B2B3B4: - self.info("Successfully loaded stage2") - - def cmd_peek(self, mtk, addr, length, preloader, filename): - if preloader is not None: - if os.path.exists(preloader): - daaddr, dadata = mtk.parse_preloader(preloader) - if mtk.preloader.init(): - if mtk.config.target_config["daa"]: - mtk = mtk.bypass_security() - if mtk is not None: - if preloader is not None: - if os.path.exists(preloader): - daaddr, dadata = mtk.parse_preloader(preloader) - if mtk.preloader.send_da(daaddr, len(dadata), 0x100, dadata): - self.info(f"Sent preloader to {hex(daaddr)}, length {hex(len(dadata))}") - if mtk.preloader.jump_da(daaddr): - self.info(f"Jumped to pl {hex(daaddr)}.") - time.sleep(2) - config = Mtk_Config(loglevel=self.__logger.level) - mtk = Mtk(loglevel=self.__logger.level, config=config) - res = mtk.preloader.init() - if not res: - self.error("Error on loading preloader") - return - else: - self.info("Successfully connected to pl.") - # mtk.preloader.get_hw_sw_ver() - # status=mtk.preloader.jump_to_partition(b"") # Do not remove ! - else: - self.error("Error on jumping to pl") - return - self.info("Starting to read ...") - dwords = length // 4 - if length % 4: - dwords += 1 - if filename != None: - wf = open(filename, "wb") - sdata = b"" - print_progress(0, 100, prefix='Progress:', - suffix='Starting, addr 0x%08X' % addr, bar_length=50) - length = dwords * 4 - old = 0 - pos = 0 - while dwords: - size = min(512 // 4, dwords) - data = b"".join(int.to_bytes(val, 4, 'little') for val in mtk.preloader.read32(addr + pos, size)) - sdata += data - if filename != "": - wf.write(data) - pos += len(data) - prog = pos / length * 100 - if round(prog, 1) > old: - print_progress(prog, 100, prefix='Progress:', - suffix='Complete, addr 0x%08X' % (addr + pos), bar_length=50) - old = round(prog, 1) - dwords = (length - pos) // 4 - print_progress(100, 100, prefix='Progress:', - suffix='Finished', bar_length=50) - if filename == "": - print(hexlify(sdata).decode('utf-8')) - else: - wf.close() - self.info(f"Data from {hex(addr)} with size of {hex(length)} was written to " + filename) - - def run(self): - try: - if self.args.debugmode: - loglevel = logging.DEBUG - self.__logger.setLevel(logging.DEBUG) - else: - loglevel = logging.INFO - self.__logger.setLevel(logging.INFO) - except: - loglevel = logging.INFO - self.__logger.setLevel(logging.INFO) - pass - config = Mtk_Config(loglevel=loglevel) - ArgHandler(self.args, config) - self.eh = ErrorHandler() - mtk = Mtk(config=config, loglevel=loglevel) - if mtk.config.debugmode: - logfilename = os.path.join("logs", "log.txt") - if os.path.exists(logfilename): - os.remove(logfilename) - fh = logging.FileHandler(logfilename, encoding='utf-8') - self.__logger.addHandler(fh) - - self.debug(" ".join(sys.argv)) - - cmd = self.args.cmd - if cmd == "dumpbrom": - if mtk.preloader.init(): - rmtk = mtk.crasher() - if rmtk is None: - sys.exit(0) - if rmtk.port.cdc.vid != 0xE8D and rmtk.port.cdc.pid != 0x0003: - self.warning("We couldn't enter preloader.") - filename = self.args.filename - if filename is None: - cpu = "" - if rmtk.config.cpu != "": - cpu = "_" + rmtk.config.cpu - filename = "brom" + cpu + "_" + hex(rmtk.config.hwcode)[2:] + ".bin" - plt = PLTools(rmtk, self.__logger.level) - plt.run_dump_brom(filename, self.args.ptype) - rmtk.port.close() - self.close() - elif cmd == "dumppreloader": - if mtk.preloader.init(): - rmtk = mtk.crasher() - if rmtk is None: - sys.exit(0) - if rmtk.port.cdc.vid != 0xE8D and rmtk.port.cdc.pid != 0x0003: - self.warning("We couldn't enter preloader.") - plt = PLTools(rmtk, self.__logger.level) - data, filename = plt.run_dump_preloader(self.args.ptype) - if data is not None: - if filename == "": - if self.args.filename is not None: - filename = self.args.filename - else: - filename = "preloader.bin" - with open(filename, 'wb') as wf: - print_progress(0, 100, prefix='Progress:', suffix='Complete', bar_length=50) - wf.write(data) - print_progress(100, 100, prefix='Progress:', suffix='Complete', bar_length=50) - self.info("Preloader dumped as: " + filename) - rmtk.port.close() - self.close() - elif cmd == "brute": - self.info("Kamakiri / DA Bruteforce run") - rmtk = Mtk(config=mtk.config, loglevel=self.__logger.level) - plt = PLTools(rmtk, self.__logger.level) - plt.runbrute(self.args) - self.close() - elif cmd == "crash": - if mtk.preloader.init(): - mtk = mtk.crasher(mode=getint(self.args.mode)) - mtk.port.close() - self.close() - elif cmd == "plstage": - if mtk.config.chipconfig.pl_payload_addr is not None: - plstageaddr = mtk.config.chipconfig.pl_payload_addr - else: - plstageaddr = 0x40200000 # 0x40001000 - if self.args.pl is None: - plstage = os.path.join(mtk.pathconfig.get_payloads_path(), "pl.bin") - else: - plstage = self.args.pl - if os.path.exists(plstage): - with open(plstage, "rb") as rf: - rf.seek(0) - pldata = rf.read() - if mtk.preloader.init(): - if mtk.config.target_config["daa"]: - mtk = mtk.bypass_security() - if mtk is None: - self.error("Error on bypassing security, aborting") - return - self.info("Connected to device, loading") - else: - self.error("Couldn't connect to device, aborting.") - if mtk.config.is_brom and mtk.config.preloader is None: - self.warning("PL stage needs preloader, please use --preloader option. " + - "Trying to dump preloader from ram.") - plt = PLTools(mtk=mtk, loglevel=self.__logger.level) - dadata, filename = plt.run_dump_preloader(self.args.ptype) - mtk.config.preloader = mtk.patch_preloader_security(dadata) - if mtk.config.preloader_filename is not None: - self.info("Using custom preloader : " + mtk.config.preloader_filename) - daaddr, dadata = mtk.parse_preloader(mtk.config.preloader) - mtk.config.preloader = mtk.patch_preloader_security(dadata) - if mtk.preloader.send_da(daaddr, len(dadata), 0x100, dadata): - self.info(f"Sent preloader to {hex(daaddr)}, length {hex(len(dadata))}") - if mtk.preloader.jump_da(daaddr): - self.info(f"PL Jumped to daaddr {hex(daaddr)}.") - time.sleep(2) - """ - mtk = Mtk(config=mtk.config, loglevel=self.__logger.level) - res = mtk.preloader.init() - if not res: - self.error("Error on loading preloader") - return - else: - self.info("Successfully connected to pl") - - if self.args.startpartition is not None: - partition = self.args.startpartition - self.info("Booting to : " + partition) - # if data[0:4]!=b"\x88\x16\x88\x58": - # data=0x200*b"\x00"+data - mtk.preloader.send_partition_data(partition, pldata) - status = mtk.preloader.jump_to_partition(partition) # Do not remove ! - res = mtk.preloader.read32(0x10C180, 10) - for val in res: - print(hex(val)) - if status != 0x0: - self.error("Error on jumping to partition: " + self.eh.status(status)) - else: - self.info("Jumping to partition ....") - return - """ - sys.exit(0) - if mtk.preloader.send_da(plstageaddr, len(pldata), 0x100, pldata): - self.info(f"Sent stage2 to {hex(plstageaddr)}, length {hex(len(pldata))}") - mtk.preloader.get_hw_sw_ver() - if mtk.preloader.jump_da(plstageaddr): - self.info(f"Jumped to stage2 at {hex(plstageaddr)}.") - ack = unpack(">I", mtk.port.usbread(4))[0] - if ack == 0xB1B2B3B4: - self.info("Successfully loaded stage2") - return - else: - self.error("Error on jumping to pl") - return - else: - self.error("Error on sending pl") - return - self.close() - elif cmd == "peek": - addr = getint(self.args.address) - length = getint(self.args.length) - preloader = self.args.preloader - filename = self.args.filename - self.cmd_peek(mtk=mtk, addr=addr, length=length, preloader=preloader, filename=filename) - self.close() - elif cmd == "stage": - filename = self.args.filename - stage2addr = self.args.stage2addr - if self.args.stage2addr is not None: - stage2addr = getint(self.args.stage2addr) - stage2file = self.args.stage2 - verifystage2 = self.args.verifystage2 - - self.cmd_stage(mtk=mtk, filename=filename, stage2addr=stage2addr, stage2file=stage2file, - verifystage2=verifystage2) - self.close() - elif cmd == "payload": - payloadfile = self.args.payload - self.cmd_payload(mtk=mtk, payloadfile=payloadfile) - self.close() - elif cmd == "gettargetconfig": - if mtk.preloader.init(): - self.info("Getting target info...") - mtk.preloader.get_target_config() - mtk.port.close() - self.close() - elif cmd == "logs": - if args.filename is None: - filename = "log.txt" - else: - filename = args.filename - self.cmd_log(mtk=mtk, filename=filename) - mtk.port.close() - self.close() - elif cmd == "meta": - meta = META(mtk, loglevel) - if args.metamode is None: - self.error("You need to give a metamode as argument ex: " + metamodes) - else: - if meta.init(metamode=args.metamode, display=True): - self.info(f"Successfully set meta mode : {args.metamode}") - mtk.port.close() - self.close() - else: - # DA / FLash commands start here - try: - preloader = args.preloader - except: - preloader = None - da_handler = DA_handler(mtk, loglevel) - mtk = da_handler.configure_da(mtk, preloader) - da_handler.handle_da_cmds(mtk, cmd, args) - - - def cmd_log(self, mtk, filename): - if mtk.preloader.init(): - self.info("Getting target logs...") - try: - logs = mtk.preloader.get_brom_log_new() - except: - logs = mtk.preloader.get_brom_log() - if logs != b"": - with open(filename, "wb") as wf: - wf.write(logs) - self.info(f"Successfully wrote logs to \"{filename}\"") - else: - self.info("No logs found.") - - def cmd_payload(self, mtk, payloadfile): - if mtk.preloader.init(): - mtk = mtk.crasher() - plt = PLTools(mtk, self.__logger.level) - if payloadfile is None: - if mtk.config.chipconfig.loader is None: - payloadfile = os.path.join(mtk.pathconfig.get_payloads_path(), "generic_patcher_payload.bin") - else: - payloadfile = os.path.join(mtk.pathconfig.get_payloads_path(), mtk.config.chipconfig.loader) - plt.runpayload(filename=payloadfile) - if args.metamode: - mtk.port.run_handshake() - mtk.preloader.jump_bl() - mtk.port.close(reset=True) - meta = META(mtk, self.__logger.level) - if meta.init(metamode=args.metamode, display=True): - self.info(f"Successfully set meta mode : {args.metamode}") - mtk.port.close(reset=True) - - -info = "MTK Flash/Exploit Client V1.53 (c) B.Kerler 2018-2021" +info = "MTK Flash/Exploit Client V1.54 (c) B.Kerler 2018-2021" cmds = { "printgpt": "Print GPT Table information", diff --git a/mtk_gui b/mtk_gui new file mode 100755 index 0000000..b6833ad --- /dev/null +++ b/mtk_gui @@ -0,0 +1,333 @@ +#!/usr/bin/env python3 +# MTK Flash Client (c) G.Kreileman, B.Kerler 2021. +# Licensed under GPLv3 License +import sys +import time +import mock +import traceback +import math +import logging +import ctypes +from PySide2.QtCore import Qt, QVariantAnimation +from PySide2.QtGui import QTextOption, QPixmap, QTransform, QIcon +from PySide2.QtWidgets import * + +from mtkclient.Library.mtk import Mtk +from mtkclient.Library.gpt import gpt_settings +from mtkclient.Library.mtk_main import Main, Mtk_Config +from mtkclient.Library.mtk_da_cmd import DA_handler +from mtkclient.gui.readFlashPartitions import * +from mtkclient.gui.toolsMenu import * +from mtkclient.gui.toolkit import * +from mtkclient.config.payloads import pathconfig +# TO do Move all GUI modifications to signals! + +class guiLogger: + global guiState + + def info(text): + sendToLog(text) + # grab useful stuff from this log + # if ("\tCPU:" in text): + # phoneInfo['chipset'] = text.replace("\t","").replace("CPU:","").replace("()","") + # elif ("BROM mode detected" in text): + # phoneInfo['bootMode'] = "In Bootrom" + # if (guiState == "welcome") and (phoneInfo['chipset'] is not ""): + # phoneInfoTextbox.setText("Phone detected:\n" + phoneInfo['chipset']+"\n"+phoneInfo['bootMode']) + + def debug(text): + sendToLog(text) + + def error(text): + sendToLog(text) + + def setLevel(logLevel): + return True + + +# install exception hook: without this, uncaught exception would cause application to exit +sys.excepthook = trap_exc_during_debug + +# Initiate MTK classes +variables = mock.Mock() +variables.cmd = "stage" +variables.debugmode = True +path=pathconfig() +config = Mtk_Config(loglevel=logging.INFO, gui=None) +config.gpt_settings = gpt_settings(gpt_num_part_entries='0', gpt_part_entry_size='0', + gpt_part_entry_start_lba='0') # This actually sets the right GPT settings.. +# if sys.platform.startswith('darwin'): +# config.ptype = "kamakiri" #Temp for Mac testing +MtkTool = Main(variables) +mtkClass = Mtk(config=config, loglevel=logging.INFO) +loglevel = logging.INFO +da_handler = DA_handler(mtkClass, loglevel) + +guiState = "welcome" +phoneInfo = {"chipset": "", "bootMode": "", "daInit": False, "cdcInit": False} + + +def getDevInfo(self, parameters): + print(parameters) + mtkClass = parameters[0] + da_handler = parameters[1] + phoneInfo = parameters[2] + self.sendToLogSignal.emit("CONNECTING!") + mtkClass.config.gui = self.sendToLogSignal + mtkClass = da_handler.configure_da(mtkClass, preloader=None) + if mtkClass: + phoneInfo['daInit'] = True + phoneInfo['chipset'] = str(mtkClass.config.chipconfig.name) + \ + " (" + str(mtkClass.config.chipconfig.description) + ")" + if mtkClass.config.is_brom: + phoneInfo['bootMode'] = "Bootrom mode" + elif mtkClass.config.chipconfig.damode: + phoneInfo['bootMode'] = "DA mode" + else: + phoneInfo['bootMode'] = "Preloader mode" + self.sendUpdateSignal.emit() + # try: + # print(mtkClass.daloader.get_partition_data(parttype="user")) + # except Exception: + # print(traceback.format_exc()) + # MtkTool.cmd_stage(mtkClass, None, None, None, False) + + +def sendToLog(info): + t = time.localtime() + logBox.appendPlainText(time.strftime("[%H:%M:%S", t) + "]: " + info) + logBox.verticalScrollBar().setValue(logBox.verticalScrollBar().maximum()) + + +def updateGui(): + global phoneInfo + phoneInfoTextbox.setText("Phone detected:\n" + phoneInfo['chipset'] + "\n" + phoneInfo['bootMode']) + status.setText("Device detected, please wait.\nThis can take a while...") + if phoneInfo['daInit']: + status.setText("Device connected :)") + menuBar.setEnabled(True) + pixmap = QPixmap(path.get_images_path("phone_connected.png")).scaled(128, 128, + Qt.KeepAspectRatio, Qt.SmoothTransformation) + pixmap.setDevicePixelRatio(2.0) + pic.setPixmap(pixmap) + spinnerAnim.stop() + spinner_pic.setHidden(True) + else: + if not phoneInfo['cdcInit']: + status.setText("Error initialising. Did you install the drivers?") + spinnerAnim.start() + spinner_pic.setHidden(False) + + +def openReadflashWindow(q): + # status.setText("OH YEAH"+str(q.text())) + readFlashWindowVal = ReadFlashWindow(w, mtkClass, da_handler, sendToLog) + # w.close() + + +def openToolsMenu(q): + # status.setText("OH YEAH"+str(q.text())) + if q.text() == "Generate RPMB keys": + readFlashWindowVal = generateKeysMenu(w, mtkClass, da_handler, sendToLog) + # w.close() + + +if __name__ == '__main__': + # Init the app window + app = QApplication(sys.argv) + win = QMainWindow() + icon = QIcon() + icon.addFile(path.get_images_path('logo_32.png'), QSize(32, 32)) + icon.addFile(path.get_images_path('logo_64.png'), QSize(64, 64)) + icon.addFile(path.get_images_path('logo_256.png'), QSize(256, 256)) + icon.addFile(path.get_images_path('logo_512.png'), QSize(512, 512)) + app.setWindowIcon(icon) + win.setWindowIcon(icon) + if sys.platform.startswith('win'): + ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID('MTKTools.Gui') + dpiMultiplier = win.logicalDpiX() + if dpiMultiplier == 72: + dpiMultiplier = 2 + else: + dpiMultiplier = 1 + addTopMargin = 20 + if sys.platform.startswith('darwin'): # MacOS has the toolbar in the top bar insted of in the app... + addTopMargin = 0 + win.setFixedSize(600, 400 + addTopMargin) + w = QWidget(win) + w.move(0,addTopMargin) + + w.setFixedSize(600, 400) + win.setWindowTitle("MTKClient - Version 2.0 beta") + # lay = QVBoxLayout(self) + + # Menubar + menuBar = QMenuBar() + menuBar.setEnabled(False) + win.setMenuBar(menuBar) + readFlashMenu = menuBar.addMenu("&Read Flash") + readFlashMenu.addAction("Read partition(s)") + # readPartitions = QAction("Read partition(s)", w) + # readFlashMenu.addAction(readPartitions) + readFlashMenu.triggered[QAction].connect(openReadflashWindow) + readFlashMenu.addAction("Read full flash") + readFlashMenu.addAction("Read offset") + + writeFlashMenu = menuBar.addMenu("&Write Flash") + writeFlashMenu.addAction("Write partition(s)") + writeFlashMenu.addAction("Write full flash") + writeFlashMenu.addAction("Write offset") + + eraseFlashMenu = menuBar.addMenu("&Erase Flash") + eraseFlashMenu.addAction("Erase partition(s)") + eraseFlashMenu.addAction("Erase bootsectors") + + toolsFlashMenu = menuBar.addMenu("&Tools") + toolsFlashMenu.addAction("Read RPMB") + toolsFlashMenu.triggered[QAction].connect(openToolsMenu) + toolsFlashMenu.addAction("Generate RPMB keys") + menuBar.show() + + # titles + title = QLabel(w) + title.setText("MTKClient v2.0") + title.setGeometry(10, 0, 480, 40) + title.setStyleSheet("font-size: 17px") + title.show() + + # status info + status = QLabel(w) + status.setAlignment(Qt.AlignLeft | Qt.AlignTop) + status.setText("Please connect a Mediatek phone to continue.\n\nHint: Power off the phone before connecting.\n" + \ + "For brom mode, press and hold vol up, vol dwn, or all hw buttons " + \ + "and connect usb.\n" + + "For preloader mode, don't press any hw button and connect usb.") + status.setGeometry(10, 30, 465, 256) + status.setWordWrap(True) + status.setStyleSheet("font-size: 12px vertical-align: top") + status.show() + + # Device info + # phone icon + pic = QLabel(w) + pixmap = QPixmap(path.get_images_path('phone_notfound.png')).scaled(128, 128, Qt.AspectRatioMode.KeepAspectRatio, + Qt.TransformationMode.SmoothTransformation) + pixmap.setDevicePixelRatio(2.0) + pic.setPixmap(pixmap) + pic.resize(pixmap.width() // 2, pixmap.height() // 2) + pic.move(545, 10) + pic.show() + + # phone spinner + spinner_pic = QLabel(w) + pixmap = QPixmap(path.get_images_path("phone_loading.png")).scaled(64, 64, Qt.AspectRatioMode.KeepAspectRatio, + Qt.TransformationMode.SmoothTransformation) + pixmap.setDevicePixelRatio(2.0) + # trans = QTransform() + # trans.rotate(90) + spinner_pic.setPixmap(pixmap) + spinner_pic.resize(pixmap.width() // 2, pixmap.height() // 2) + spinner_pic.move(551, 25) + spinner_pic.show() + + + def spinnerAnimRot(angle): + # print(angle) + trans = QTransform() + # trans.translate(pixmap.width()+angle / 2, pixmap.height() / 2) + + # trans.translate(spinner_pic.width()/2.0 , spinner_pic.height()/2.0) + trans.rotate(angle) + newPixmap = pixmap.transformed(QTransform().rotate(angle)) + xoffset = (newPixmap.width() - pixmap.width()) // 2 + yoffset = (newPixmap.height() - pixmap.height()) // 2 + rotated = newPixmap.copy(ax=xoffset, ay=yoffset, awidth=pixmap.width(), aheight=pixmap.height()) + spinner_pic.setPixmap(rotated) + + + spinnerAnim = QVariantAnimation() + spinnerAnim.setDuration(3000) + spinnerAnim.setStartValue(0) + spinnerAnim.setEndValue(360) + spinnerAnim.setLoopCount(-1) + spinnerAnim.valueChanged.connect(spinnerAnimRot) + spinner_pic.setHidden(True) + + # phone info + phoneInfoTextbox = QLabel(w) + phoneInfoTextbox.setText("No phone found") + phoneInfoTextbox.setGeometry(10, 10, 520, 100) + phoneInfoTextbox.setAlignment(Qt.AlignRight | Qt.AlignTop) + phoneInfoTextbox.setStyleSheet("font-size: 12px") + phoneInfoTextbox.show() + + # Line + line = QFrame(w) + line.setGeometry(10, 108, 580, 20) + line.setFrameShape(QFrame.HLine) + line.setFrameShadow(QFrame.Sunken) + + # logo + logoPic = QLabel(w) + logoPixmap = QPixmap(path.get_images_path("logo_512.png")).scaled(int(128 * dpiMultiplier), int(128 * dpiMultiplier), + Qt.AspectRatioMode.KeepAspectRatio, + Qt.TransformationMode.SmoothTransformation) + logoPixmap.setDevicePixelRatio(dpiMultiplier) + logoPic.setPixmap(logoPixmap) + logoPic.resize(logoPixmap.width() // dpiMultiplier, logoPixmap.height() // dpiMultiplier) + logoPic.move(10, 130) + logoPic.show() + + # Copyright info + copyrightInfo = QLabel(w) + copyrightInfo.setAlignment(Qt.AlignLeft | Qt.AlignTop) + copyrightInfo.setText("Made by: Bjoern Kerler\n" + \ + "Gui by: Geert-Jan Kreileman\n\n" + \ + "Credits: \n" + \ + "kamakiri [xyzz]\n" + + "linecode exploit [chimera]\n" + + "Chaosmaster\n" + + "and all contributers") + copyrightInfo.setGeometry(150,135,405,256) + copyrightInfo.setWordWrap(True) + copyrightInfo.setStyleSheet("font-size: 12px color: #333 vertical-align: top") + copyrightInfo.show() + + + def showDebugInfo(): + logBox.show() + if w.frameGeometry().height() < 500: + win.setFixedSize(600, 700 + addTopMargin) + w.setFixedSize(600, 700) + debugBtn.setText("Hide debug info") + else: + w.setFixedSize(600, 400) + win.setFixedSize(600, 400 + addTopMargin) + debugBtn.setText("Show debug info") + + + # debug + debugBtn = QPushButton(w) + debugBtn.setText("Show debug info") + debugBtn.clicked.connect(showDebugInfo) + debugBtn.setGeometry((600 - 150 - 10), (400 - 30 - 10), 150, 30) + debugBtn.show() + + logBox = QPlainTextEdit(w) + logBox.setGeometry(11, (700 - 280 - 10), 578, 280) + logBox.setWordWrapMode(QTextOption.NoWrap) + logBox.setReadOnly(True) + + win.show() + + # Get the device info + thread = asyncThread(app, 0, getDevInfo, [mtkClass, da_handler, phoneInfo]) + thread.sendToLogSignal.connect(sendToLog) + thread.sendUpdateSignal.connect(updateGui) + thread.start() + + # Run loop the app + app.exec_() + # Prevent thread from not being closed and call error end codes + thread.terminate() + thread.wait() diff --git a/mtkclient/Library/Port.py b/mtkclient/Library/Port.py index 00fd4cb..aa884f4 100755 --- a/mtkclient/Library/Port.py +++ b/mtkclient/Library/Port.py @@ -21,7 +21,10 @@ class Port(metaclass=LogBase): self.pid = pid def __init__(self, mtk, portconfig, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) + self.info = self.__logger.info + self.debug = self.__logger.debug + self.error = self.__logger.error self.config = mtk.config self.mtk = mtk self.cdc = usb_class(portconfig=portconfig, loglevel=loglevel, devclass=10) diff --git a/mtkclient/Library/daconfig.py b/mtkclient/Library/daconfig.py index d9cdbdb..72c6655 100755 --- a/mtkclient/Library/daconfig.py +++ b/mtkclient/Library/daconfig.py @@ -112,7 +112,7 @@ class DA: class DAconfig(metaclass=LogBase): def __init__(self, mtk, loader=None, preloader=None, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) self.mtk = mtk self.pathconfig = pathconfig() self.config = self.mtk.config diff --git a/mtkclient/Library/hwcrypto.py b/mtkclient/Library/hwcrypto.py index 8250602..3e40681 100755 --- a/mtkclient/Library/hwcrypto.py +++ b/mtkclient/Library/hwcrypto.py @@ -27,11 +27,11 @@ class crypto_setup: prov_addr = None class hwcrypto(metaclass=LogBase): - def __init__(self, setup, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + def __init__(self, setup, loglevel=logging.INFO, gui:bool=False): + self.__logger = logsetup(self, self.__logger, loglevel, gui) - self.dxcc = dxcc(setup, loglevel) - self.gcpu = GCpu(setup, loglevel) + self.dxcc = dxcc(setup, loglevel, gui) + self.gcpu = GCpu(setup, loglevel, gui) self.sej = sej(setup, loglevel) self.cqdma = cqdma(setup, loglevel) self.hwcode = setup.hwcode diff --git a/mtkclient/Library/hwcrypto_dxcc.py b/mtkclient/Library/hwcrypto_dxcc.py index 125d898..738eea6 100755 --- a/mtkclient/Library/hwcrypto_dxcc.py +++ b/mtkclient/Library/hwcrypto_dxcc.py @@ -1067,8 +1067,8 @@ class dxcc(metaclass=LogBase): self.write32(self.dxcc_base + self.DX_DSCRPTR_QUEUE0_WORD4, data[4]) self.write32(self.dxcc_base + self.DX_DSCRPTR_QUEUE0_WORD5, data[5]) - def __init__(self, setup, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + def __init__(self, setup, loglevel=logging.INFO, gui:bool = False): + self.__logger = logsetup(self, self.__logger, loglevel, gui) self.hwcode = setup.hwcode self.dxcc_base = setup.dxcc_base self.read32 = setup.read32 diff --git a/mtkclient/Library/hwcrypto_gcpu.py b/mtkclient/Library/hwcrypto_gcpu.py index dab69fb..c54ce9c 100755 --- a/mtkclient/Library/hwcrypto_gcpu.py +++ b/mtkclient/Library/hwcrypto_gcpu.py @@ -186,8 +186,8 @@ def xor_data(a: bytearray, b: bytearray, length=None): class GCpu(metaclass=LogBase): - def __init__(self, setup, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + def __init__(self, setup, loglevel=logging.INFO, gui:bool=False): + self.__logger = logsetup(self, self.__logger, loglevel, gui) self.read32 = setup.read32 self.write32 = setup.write32 self.reg = GCpuReg(setup) diff --git a/mtkclient/Library/kamakiri.py b/mtkclient/Library/kamakiri.py index b924aa2..a0ae728 100755 --- a/mtkclient/Library/kamakiri.py +++ b/mtkclient/Library/kamakiri.py @@ -12,7 +12,7 @@ from mtkclient.config.payloads import pathconfig class Kamakiri(metaclass=LogBase): def __init__(self, mtk, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) self.lasterror = "" self.mtk = mtk self.chipconfig = self.mtk.config.chipconfig @@ -114,6 +114,7 @@ class Kamakiri(metaclass=LogBase): self.da_write(payloadaddr, len(payload), payload) self.da_write(ptr_send, 4, pack(" length): #done reading - break; + break except Exception as err: self.error(str(err)) - break; + break data = bytes(data) preloader = data[:length] idx = data.find(b"MTK_BLOADER_INFO") @@ -70,6 +71,7 @@ class DA_handler(metaclass=LogBase): return None def configure_da(self, mtk, preloader): + mtk.port.cdc.connected = mtk.port.cdc.connect() if mtk.port.cdc.connected is None or not mtk.port.cdc.connected: mtk.preloader.init() else: diff --git a/mtkclient/Library/mtk_dalegacy.py b/mtkclient/Library/mtk_dalegacy.py index 9459d69..353b095 100755 --- a/mtkclient/Library/mtk_dalegacy.py +++ b/mtkclient/Library/mtk_dalegacy.py @@ -654,7 +654,7 @@ class DALegacy(metaclass=LogBase): ENTER_RELAY_MODE_CMD = b"\xFF" def __init__(self, mtk, daconfig, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) self.debug = self.debug self.error = self.error self.info = self.info diff --git a/mtkclient/Library/mtk_daloader.py b/mtkclient/Library/mtk_daloader.py index 457e8cb..967f75d 100755 --- a/mtkclient/Library/mtk_daloader.py +++ b/mtkclient/Library/mtk_daloader.py @@ -17,7 +17,7 @@ from mtkclient.Library.settings import hwparam class DAloader(metaclass=LogBase): def __init__(self, mtk, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) self.mtk = mtk self.config = mtk.config self.loglevel = loglevel diff --git a/mtkclient/Library/mtk_daxflash.py b/mtkclient/Library/mtk_daxflash.py index f36636d..50ad768 100755 --- a/mtkclient/Library/mtk_daxflash.py +++ b/mtkclient/Library/mtk_daxflash.py @@ -124,7 +124,7 @@ class DAXFlash(metaclass=LogBase): DT_MESSAGE = 2 def __init__(self, mtk, daconfig, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) self.info = self.__logger.info self.debug = self.__logger.debug self.error = self.__logger.error diff --git a/mtkclient/Library/mtk_main.py b/mtkclient/Library/mtk_main.py new file mode 100644 index 0000000..eff07d1 --- /dev/null +++ b/mtkclient/Library/mtk_main.py @@ -0,0 +1,544 @@ +#!/usr/bin/env python3 +# MTK Flash Client (c) B.Kerler 2018-2021. +# Licensed under GPLv3 License +import os +import sys +import logging +import time +from binascii import hexlify +from struct import unpack, pack +from mtkclient.Library.mtk import Mtk +from mtkclient.config.payloads import pathconfig +from mtkclient.Library.pltools import PLTools +from mtkclient.Library.meta import META +from mtkclient.Library.utils import LogBase, getint +from mtkclient.config.brom_config import Mtk_Config +from mtkclient.Library.utils import print_progress +from mtkclient.Library.error import ErrorHandler +from mtkclient.Library.mtk_da_cmd import DA_handler +from mtkclient.Library.gpt import gpt_settings + +metamodes = "[FASTBOOT, FACTFACT, METAMETA, FACTORYM, ADVEMETA]" + +class ArgHandler(metaclass=LogBase): + def __init__(self, args, config): + try: + if args.vid is not None: + config.vid = getint(args.vid) + except AttributeError: + pass + try: + if args.pid is not None: + config.pid = getint(args.pid) + except AttributeError: + pass + try: + if args.payload is not None: + config.payloadfile = args.payload + except: + pass + try: + if args.loader is not None: + config.loader = args.loader + except AttributeError: + pass + try: + if args.da_address is not None: + config.chipconfig.da_payload_addr = getint(args.da_address) + self.info("O:DA offset:\t\t\t" + args.da_address) + except AttributeError: + pass + try: + if args.brom_address is not None: + config.chipconfig.brom_payload_addr = getint(args.brom_address) + self.info("O:Payload offset:\t\t" + args.brom_address) + except AttributeError: + pass + try: + if args.watchdog_address is not None: + config.chipconfig.watchdog = getint(args.wdt) + self.info("O:Watchdog addr:\t\t" + args.wdt) + except AttributeError: + pass + try: + if args.skipwdt is not None: + config.skipwdt = args.skipwdt + except AttributeError: + pass + try: + if args.uart_address is not None: + config.chipconfig.uart = getint(args.uart_address) + self.info("O:Uart addr:\t\t" + args.uart_address) + except AttributeError: + pass + try: + if args.preloader is not None: + config.chipconfig.var1 = getint(args.var1) + self.info("O:Var1:\t\t" + args.var1) + except AttributeError: + pass + try: + if args.preloader is not None: + if os.path.exists(args.preloader): + config.preloader_filename = args.preloader + config.preloader = open(config.preloader_filename,"rb").read() + except AttributeError: + pass + try: + if args.generatekeys is not None: + config.generatekeys = args.generatekeys + except AttributeError: + pass + try: + if args.ptype is not None: + config.ptype = args.ptype + except AttributeError: + pass + try: + if args.socid is not None: + config.readsocid = args.socid + except AttributeError: + pass + try: + if args.crash is not None: + config.enforcecrash = args.crash + except AttributeError: + pass + + gpt_num_part_entries = 0 + try: + if args.gpt_num_part_entries is not None: + gpt_num_part_entries = args.gpt_num_part_entries + except: + pass + + gpt_part_entry_size = 0 + try: + if args.gpt_part_entry_size is not None: + gpt_part_entry_size = args.gpt_part_entry_size + except: + pass + + gpt_part_entry_start_lba = 0 + try: + if args.gpt_part_entry_start_lba is not None: + gpt_part_entry_start_lba = args.gpt_part_entry_start_lba + except: + pass + + config.gpt_settings = gpt_settings(gpt_num_part_entries,gpt_part_entry_size, + gpt_part_entry_start_lba) + +class Main(metaclass=LogBase): + def __init__(self, args): + self.__logger = self.__logger + self.info = self.__logger.info + self.debug = self.__logger.debug + self.error = self.__logger.error + self.warning = self.__logger.warning + self.args = args + if not os.path.exists("logs"): + os.mkdir("logs") + + def close(self): + sys.exit(0) + + def cmd_stage(self, mtk, filename, stage2addr, stage2file, verifystage2): + if filename is None: + pc = pathconfig() + stage1file = os.path.join(pc.get_payloads_path(), "generic_stage1_payload.bin") + else: + stage1file = filename + if not os.path.exists(stage1file): + self.error(f"Error: {stage1file} doesn't exist !") + return False + if stage2file is not None: + if not os.path.exists(stage2file): + self.error(f"Error: {stage2file} doesn't exist !") + return False + else: + stage2file = os.path.join(mtk.pathconfig.get_payloads_path(), "stage2.bin") + if mtk.preloader.init(): + mtk = mtk.crasher() + if mtk.port.cdc.pid == 0x0003: + plt = PLTools(mtk, self.__logger.level) + self.info("Uploading stage 1") + if plt.runpayload(filename=stage1file): + self.info("Successfully uploaded stage 1, sending stage 2") + with open(stage2file, "rb") as rr: + stage2data = rr.read() + while len(stage2data) % 0x200: + stage2data += b"\x00" + if stage2addr is None: + stage2addr = mtk.config.chipconfig.da_payload_addr + if stage2addr is None: + stage2addr = 0x201000 + + # ###### Send stage2 + # magic + mtk.port.usbwrite(pack(">I", 0xf00dd00d)) + # cmd write + mtk.port.usbwrite(pack(">I", 0x4000)) + # address + mtk.port.usbwrite(pack(">I", stage2addr)) + # length + mtk.port.usbwrite(pack(">I", len(stage2data))) + bytestowrite = len(stage2data) + pos = 0 + while bytestowrite > 0: + size = min(bytestowrite, 1) + if mtk.port.usbwrite(stage2data[pos:pos + size]): + bytestowrite -= size + pos += size + # mtk.port.usbwrite(b"") + time.sleep(0.1) + flag = mtk.port.rdword() + if flag != 0xD0D0D0D0: + self.error(f"Error on sending stage2, size {hex(len(stage2data))}.") + self.info(f"Done sending stage2, size {hex(len(stage2data))}.") + + if verifystage2: + self.info("Verifying stage2 data") + rdata = b"" + mtk.port.usbwrite(pack(">I", 0xf00dd00d)) + mtk.port.usbwrite(pack(">I", 0x4002)) + mtk.port.usbwrite(pack(">I", stage2addr)) + mtk.port.usbwrite(pack(">I", len(stage2data))) + bytestoread = len(stage2data) + while bytestoread > 0: + size = min(bytestoread, 1) + rdata += mtk.port.usbread(size) + bytestoread -= size + flag = mtk.port.rdword() + if flag != 0xD0D0D0D0: + self.error("Error on reading stage2 data") + if rdata != stage2data: + self.error("Stage2 data doesn't match") + with open("rdata", "wb") as wf: + wf.write(rdata) + else: + self.info("Stage2 verification passed.") + + # ####### Kick Watchdog + # magic + # mtk.port.usbwrite(pack("I", 0xf00dd00d)) + # cmd jump + mtk.port.usbwrite(pack(">I", 0x4001)) + # address + mtk.port.usbwrite(pack(">I", stage2addr)) + self.info("Done jumping stage2 at %08X" % stage2addr) + ack = unpack(">I", mtk.port.usbread(4))[0] + if ack == 0xB1B2B3B4: + self.info("Successfully loaded stage2") + + def cmd_peek(self, mtk, addr, length, preloader, filename): + if preloader is not None: + if os.path.exists(preloader): + daaddr, dadata = mtk.parse_preloader(preloader) + if mtk.preloader.init(): + if mtk.config.target_config["daa"]: + mtk = mtk.bypass_security() + if mtk is not None: + if preloader is not None: + if os.path.exists(preloader): + daaddr, dadata = mtk.parse_preloader(preloader) + if mtk.preloader.send_da(daaddr, len(dadata), 0x100, dadata): + self.info(f"Sent preloader to {hex(daaddr)}, length {hex(len(dadata))}") + if mtk.preloader.jump_da(daaddr): + self.info(f"Jumped to pl {hex(daaddr)}.") + time.sleep(2) + config = Mtk_Config(loglevel=self.__logger.level) + mtk = Mtk(loglevel=self.__logger.level, config=config) + res = mtk.preloader.init() + if not res: + self.error("Error on loading preloader") + return + else: + self.info("Successfully connected to pl.") + # mtk.preloader.get_hw_sw_ver() + # status=mtk.preloader.jump_to_partition(b"") # Do not remove ! + else: + self.error("Error on jumping to pl") + return + self.info("Starting to read ...") + dwords = length // 4 + if length % 4: + dwords += 1 + if filename != None: + wf = open(filename, "wb") + sdata = b"" + print_progress(0, 100, prefix='Progress:', + suffix='Starting, addr 0x%08X' % addr, bar_length=50) + length = dwords * 4 + old = 0 + pos = 0 + while dwords: + size = min(512 // 4, dwords) + data = b"".join(int.to_bytes(val, 4, 'little') for val in mtk.preloader.read32(addr + pos, size)) + sdata += data + if filename != "": + wf.write(data) + pos += len(data) + prog = pos / length * 100 + if round(prog, 1) > old: + print_progress(prog, 100, prefix='Progress:', + suffix='Complete, addr 0x%08X' % (addr + pos), bar_length=50) + old = round(prog, 1) + dwords = (length - pos) // 4 + print_progress(100, 100, prefix='Progress:', + suffix='Finished', bar_length=50) + if filename == "": + print(hexlify(sdata).decode('utf-8')) + else: + wf.close() + self.info(f"Data from {hex(addr)} with size of {hex(length)} was written to " + filename) + + def run(self): + try: + if self.args.debugmode: + loglevel = logging.DEBUG + self.__logger.setLevel(logging.DEBUG) + else: + loglevel = logging.INFO + self.__logger.setLevel(logging.INFO) + except: + loglevel = logging.INFO + self.__logger.setLevel(logging.INFO) + pass + config = Mtk_Config(loglevel=loglevel) + ArgHandler(self.args, config) + self.eh = ErrorHandler() + mtk = Mtk(config=config, loglevel=loglevel) + if mtk.config.debugmode: + logfilename = os.path.join("logs", "log.txt") + if os.path.exists(logfilename): + os.remove(logfilename) + fh = logging.FileHandler(logfilename, encoding='utf-8') + self.__logger.addHandler(fh) + + self.debug(" ".join(sys.argv)) + + cmd = self.args.cmd + if cmd == "dumpbrom": + if mtk.preloader.init(): + rmtk = mtk.crasher() + if rmtk is None: + sys.exit(0) + if rmtk.port.cdc.vid != 0xE8D and rmtk.port.cdc.pid != 0x0003: + self.warning("We couldn't enter preloader.") + filename = self.args.filename + if filename is None: + cpu = "" + if rmtk.config.cpu != "": + cpu = "_" + rmtk.config.cpu + filename = "brom" + cpu + "_" + hex(rmtk.config.hwcode)[2:] + ".bin" + plt = PLTools(rmtk, self.__logger.level) + plt.run_dump_brom(filename, self.args.ptype) + rmtk.port.close() + self.close() + elif cmd == "dumppreloader": + if mtk.preloader.init(): + rmtk = mtk.crasher() + if rmtk is None: + sys.exit(0) + if rmtk.port.cdc.vid != 0xE8D and rmtk.port.cdc.pid != 0x0003: + self.warning("We couldn't enter preloader.") + plt = PLTools(rmtk, self.__logger.level) + data, filename = plt.run_dump_preloader(self.args.ptype) + if data is not None: + if filename == "": + if self.args.filename is not None: + filename = self.args.filename + else: + filename = "preloader.bin" + with open(filename, 'wb') as wf: + print_progress(0, 100, prefix='Progress:', suffix='Complete', bar_length=50) + wf.write(data) + print_progress(100, 100, prefix='Progress:', suffix='Complete', bar_length=50) + self.info("Preloader dumped as: " + filename) + rmtk.port.close() + self.close() + elif cmd == "brute": + self.info("Kamakiri / DA Bruteforce run") + rmtk = Mtk(config=mtk.config, loglevel=self.__logger.level) + plt = PLTools(rmtk, self.__logger.level) + plt.runbrute(self.args) + self.close() + elif cmd == "crash": + if mtk.preloader.init(): + mtk = mtk.crasher(mode=getint(self.args.mode)) + mtk.port.close() + self.close() + elif cmd == "plstage": + if mtk.config.chipconfig.pl_payload_addr is not None: + plstageaddr = mtk.config.chipconfig.pl_payload_addr + else: + plstageaddr = 0x40200000 # 0x40001000 + if self.args.pl is None: + plstage = os.path.join(mtk.pathconfig.get_payloads_path(), "pl.bin") + else: + plstage = self.args.pl + if os.path.exists(plstage): + with open(plstage, "rb") as rf: + rf.seek(0) + pldata = rf.read() + if mtk.preloader.init(): + if mtk.config.target_config["daa"]: + mtk = mtk.bypass_security() + if mtk is None: + self.error("Error on bypassing security, aborting") + return + self.info("Connected to device, loading") + else: + self.error("Couldn't connect to device, aborting.") + if mtk.config.is_brom and mtk.config.preloader is None: + self.warning("PL stage needs preloader, please use --preloader option. " + + "Trying to dump preloader from ram.") + plt = PLTools(mtk=mtk, loglevel=self.__logger.level) + dadata, filename = plt.run_dump_preloader(self.args.ptype) + mtk.config.preloader = mtk.patch_preloader_security(dadata) + if mtk.config.preloader_filename is not None: + self.info("Using custom preloader : " + mtk.config.preloader_filename) + daaddr, dadata = mtk.parse_preloader(mtk.config.preloader) + mtk.config.preloader = mtk.patch_preloader_security(dadata) + if mtk.preloader.send_da(daaddr, len(dadata), 0x100, dadata): + self.info(f"Sent preloader to {hex(daaddr)}, length {hex(len(dadata))}") + if mtk.preloader.jump_da(daaddr): + self.info(f"PL Jumped to daaddr {hex(daaddr)}.") + time.sleep(2) + """ + mtk = Mtk(config=mtk.config, loglevel=self.__logger.level) + res = mtk.preloader.init() + if not res: + self.error("Error on loading preloader") + return + else: + self.info("Successfully connected to pl") + + if self.args.startpartition is not None: + partition = self.args.startpartition + self.info("Booting to : " + partition) + # if data[0:4]!=b"\x88\x16\x88\x58": + # data=0x200*b"\x00"+data + mtk.preloader.send_partition_data(partition, pldata) + status = mtk.preloader.jump_to_partition(partition) # Do not remove ! + res = mtk.preloader.read32(0x10C180, 10) + for val in res: + print(hex(val)) + if status != 0x0: + self.error("Error on jumping to partition: " + self.eh.status(status)) + else: + self.info("Jumping to partition ....") + return + """ + sys.exit(0) + if mtk.preloader.send_da(plstageaddr, len(pldata), 0x100, pldata): + self.info(f"Sent stage2 to {hex(plstageaddr)}, length {hex(len(pldata))}") + mtk.preloader.get_hw_sw_ver() + if mtk.preloader.jump_da(plstageaddr): + self.info(f"Jumped to stage2 at {hex(plstageaddr)}.") + ack = unpack(">I", mtk.port.usbread(4))[0] + if ack == 0xB1B2B3B4: + self.info("Successfully loaded stage2") + return + else: + self.error("Error on jumping to pl") + return + else: + self.error("Error on sending pl") + return + self.close() + elif cmd == "peek": + addr = getint(self.args.address) + length = getint(self.args.length) + preloader = self.args.preloader + filename = self.args.filename + self.cmd_peek(mtk=mtk, addr=addr, length=length, preloader=preloader, filename=filename) + self.close() + elif cmd == "stage": + filename = self.args.filename + stage2addr = self.args.stage2addr + if self.args.stage2addr is not None: + stage2addr = getint(self.args.stage2addr) + stage2file = self.args.stage2 + verifystage2 = self.args.verifystage2 + + self.cmd_stage(mtk=mtk, filename=filename, stage2addr=stage2addr, stage2file=stage2file, + verifystage2=verifystage2) + self.close() + elif cmd == "payload": + payloadfile = self.args.payload + self.cmd_payload(mtk=mtk, payloadfile=payloadfile) + self.close() + elif cmd == "gettargetconfig": + if mtk.preloader.init(): + self.info("Getting target info...") + mtk.preloader.get_target_config() + mtk.port.close() + self.close() + elif cmd == "logs": + if self.args.filename is None: + filename = "log.txt" + else: + filename = self.args.filename + self.cmd_log(mtk=mtk, filename=filename) + mtk.port.close() + self.close() + elif cmd == "meta": + meta = META(mtk, loglevel) + if self.args.metamode is None: + self.error("You need to give a metamode as argument ex: " + metamodes) + else: + if meta.init(metamode=self.args.metamode, display=True): + self.info(f"Successfully set meta mode : {self.args.metamode}") + mtk.port.close() + self.close() + else: + # DA / FLash commands start here + try: + preloader = self.args.preloader + except: + preloader = None + da_handler = DA_handler(mtk, loglevel) + mtk = da_handler.configure_da(mtk, preloader) + da_handler.handle_da_cmds(mtk, cmd, self.args) + + + def cmd_log(self, mtk, filename): + if mtk.preloader.init(): + self.info("Getting target logs...") + try: + logs = mtk.preloader.get_brom_log_new() + except: + logs = mtk.preloader.get_brom_log() + if logs != b"": + with open(filename, "wb") as wf: + wf.write(logs) + self.info(f"Successfully wrote logs to \"{filename}\"") + else: + self.info("No logs found.") + + def cmd_payload(self, mtk, payloadfile): + if mtk.preloader.init(): + mtk = mtk.crasher() + plt = PLTools(mtk, self.__logger.level) + if payloadfile is None: + if mtk.config.chipconfig.loader is None: + payloadfile = os.path.join(mtk.pathconfig.get_payloads_path(), "generic_patcher_payload.bin") + else: + payloadfile = os.path.join(mtk.pathconfig.get_payloads_path(), mtk.config.chipconfig.loader) + plt.runpayload(filename=payloadfile) + if self.args.metamode: + mtk.port.run_handshake() + mtk.preloader.jump_bl() + mtk.port.close(reset=True) + meta = META(mtk, self.__logger.level) + if meta.init(metamode=self.args.metamode, display=True): + self.info(f"Successfully set meta mode : {self.args.metamode}") + mtk.port.close(reset=True) diff --git a/mtkclient/Library/mtk_preloader.py b/mtkclient/Library/mtk_preloader.py index 67bae2f..2e359a6 100755 --- a/mtkclient/Library/mtk_preloader.py +++ b/mtkclient/Library/mtk_preloader.py @@ -109,7 +109,7 @@ class Preloader(metaclass=LogBase): def __init__(self, mtk, loglevel=logging.INFO): self.mtk = mtk - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) self.info = self.__logger.info self.debug = self.__logger.debug self.error = self.__logger.error diff --git a/mtkclient/Library/partition.py b/mtkclient/Library/partition.py index 9f579d2..e3d349d 100755 --- a/mtkclient/Library/partition.py +++ b/mtkclient/Library/partition.py @@ -9,7 +9,7 @@ from mtkclient.Library.gpt import gpt class Partition(metaclass=LogBase): def __init__(self, mtk, readflash, read_pmt, loglevel=logging.INFO): self.mtk = mtk - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) self.config = self.mtk.config self.readflash = readflash self.read_pmt = read_pmt diff --git a/mtkclient/Library/pltools.py b/mtkclient/Library/pltools.py index cd40f9d..9f16461 100755 --- a/mtkclient/Library/pltools.py +++ b/mtkclient/Library/pltools.py @@ -14,7 +14,7 @@ from mtkclient.Library.Port import Port class PLTools(metaclass=LogBase): def __init__(self, mtk, loglevel=logging.INFO): - self.__logger = logsetup(self, self.__logger, loglevel) + self.__logger = logsetup(self, self.__logger, loglevel, mtk.config.gui) self.mtk = mtk self.chipconfig = self.mtk.config.chipconfig self.config = self.mtk.config @@ -42,7 +42,7 @@ class PLTools(metaclass=LogBase): setup.ap_dma_mem = self.mtk.config.chipconfig.ap_dma_mem setup.meid_addr = self.mtk.config.chipconfig.meid_addr setup.prov_addr = self.mtk.config.chipconfig.prov_addr - self.hwcrypto=hwcrypto(setup,loglevel) + self.hwcrypto=hwcrypto(setup,loglevel,self.mtk.config.gui) self.pathconfig = pathconfig() if loglevel == logging.DEBUG: diff --git a/mtkclient/Library/utils.py b/mtkclient/Library/utils.py index 5c90f2c..c02f500 100755 --- a/mtkclient/Library/utils.py +++ b/mtkclient/Library/utils.py @@ -14,7 +14,7 @@ import copy import time import io import datetime as dt - +from PySide2.QtCore import Signal sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8') sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8') @@ -367,11 +367,17 @@ def revdword(value): return unpack(">I", pack("F$&mL`oV2q(e|rLO_~9NJibn@ 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 OUYIfM%HI^NBK{A}A)~GU literal 0 HcmV?d00001 diff --git a/mtkclient/gui/images/logo_32.png b/mtkclient/gui/images/logo_32.png new file mode 100644 index 0000000000000000000000000000000000000000..cdb5bf8b20d651f7bedac01e1028043b90627175 GIT binary patch literal 4335 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%0Af%P*Vssovy+4cy^lxpl z0&tUK)BcYXh<@>AStkYQiP+H~gt+~LpUgxfOQUDCYFoK$T!zz>&!|SqUXZ;Jr!u7m zk&mguvqp$n5qKZ>`A5vV0%2yp$zji1&OF~Uo^6Ea;Rs4uB~+>h^&XabO+6v|QA@noljf*D)sOqPEn5g!>O#l){i|DA%(mEWb!6_5aW&YGT1=6J1B zdt_IvdZUS4&gRiJ{oM?ezP0I)?$FKXu4hQ=2Zd_0F^OUyLgk?lXMQHb)(o2VKrXtNyo{5U@MN11>YX{$hVMa^Ru%6d)yY zZn-hRS(Tw|yo>2l{)kVBS`nDq#V=VA{Kn`>IQdk3ElaX=a=^DAbp)qy^m zfBZq+bG(z!`GhDK1!D~IWaDsyKV5i>*c6YGr{pR9VPZ4V4>3Ml!v$#{Ceq{zq)>U z_L3cze$YnPa}$fv&}eRc{;R*mP5$l0gU&p&t+s=HSn${KBt3Xm5vA*j3^5&7{^OG_ z?_9O6uua{vtEAE#^_jjmZ@%IA=DxndjXT;5*(KqQK@*8egw?$XVRvyxfG!Q{-_ss+ z9y%%QZ+MR{qeYPg1R$;sbpxexvM7VrpCICB?rGxJbaz0{giQMHokVMIGK@7o&yX z_@?P@|Dpc5ICP=e5J#09lyv=8{2Cc7*%U9HIY7bMqZdft7MFhEI`Q!n&1hMS)33C= zaS??eIJM;hte9lTO7mdVKHunD^8|Hyj6*n3cF||YJ?Az@@+KH7^oYE0BsalfXs^-a z=$_v=x$8jskA1bHFHxLP#6V!9?Z5>0(}1X!$lCfhTUiv}ILWBe+XVXWZrd{7J2x|` zXX7Mo>!%>S?0M5qG*LK3y48!AK!=_rzJ5I(C~A@s|Bdk{T(fk5gdbKNwyXt&1;T;P zP@&FCtAa0hM=^2$8*o^JUzalE3fXm5>k*l z30oK86!q^z)XUCkYX=VUFq%87Ok-kWGleH2v}U-kk3vdQNfv~-GBxxcn;g%0+zF&H zV!>4Mb<`TSn1j_OMhOIecd`iSjW&KX^PNATsMK9&i|tq41d6R4#zuE_SvG$cJK=t? ze2wResVj2bl#83JQ(uX;mYST5aivW&nXqU0&Vpa1UB3TXUh2-ut>4fqnI6H-*TW07 z-O7z*Cv7aWi%k@Jh>l&{-=8g)6*{MP038{(IziEX-zhKcT7W5^#R3jgA>-P9fiN{o z2TuEaVqfSMjyHWOMQ@Vvz$67wrtvAuKQsnQI{R%*83xS?p_^~!+f}D7Q$OUZf=Boi ziSQZ<(1=A{h7J1Ff^KnftgjbI!PWna5C2DWL<3rUDnx$snBK^fPQl8kfQvT~QVEW( z!Ui|`d_Y(8;#twT4jTYy?sa)`aCP|fOzEYkIQ2AZZdK_tqH4k6?#S;lZdl8+@L{wA zA?RNUten1@*mN`jS8s@LhH%i2Xe{EuZIj%X!05USB0r`Ew@QvNpziam+~*%$-H$lg zAB?_6Ti_>uw=4Rd*5>kDJuwRV#eu;`mYR;fe{q=~dOr;4%IUMj#C+u=8RLGifd2kU z+-v;7NKlg4qZbsZqr=b#!T*(j0453RLGnaN5 z_Uyk({fMXzTUuCRhgveTGUZxFLGcq_*x!qg7-R9VCQ@|4{lP3VH7t?|;_7Or&YKre z9slI8<~L~p zizApB7HFhIE?v-}{2GvZ?T^KflyAU&VLkc_@GdGdZ~d}Jt*l2ij$`kJ%d7-Y@=P%pu=#R1Xr{8$Uk#u~Mt!{EDQ`>q+l^ zS>M-?#(V{UYHgu-pH`*C&gQ^*#l?lQm4J;(10iBVg~{NGdX#x|VZjwoPx; z@CC-VJv_x7-s3*B1K&IR-tDiN^|x9|`EU5BD-=pF>rq1?mM{;F=bH3BMA05tt#kz} z#RS56+Qh8a6-iu{v+!?Pg2b>5xgOA({{HE&h_vk+Hrh{vp;|apW^cp0;7Hqfd5F+- z=3D`nB48d{rAvlO_&{Kfnh9yFG41N$d$;>_WQ6S(A8COu4i1zOo0M@YL`j1a=)c&$ zDz#<5KrEGM6IMQD+6qIb<3T;;Y2kBrEbB*@7`=_aKI>#&@o0x`YUO(Vh_>U_nB(#y!iS^y4WQ2Y#hVimWPE$ zw!(F4JOnCR;MNO>S3LPL>Q}~ zOXc{@cl65iT6thbN0C?9w0lEYCs7#WQzr%x*5n~XG%jS*deo% zN4-=t3C3m;EvfK@Y2GQd#_xBR$n`7Wz*v2sX~_k`-O}^MiHqHexRa9fHuNxN_hlKV zmlUgf34{s{m-H~bqhl;p6B^T!c`mI2tAGmd-u#K#-b6Vy25e={$cEm@z*1hI?yF1bpB2)>=CB zX^icOM^p1bfH-}uEm~RNLCgH|1m}QpY1a5vkah1QKziAws!~V%$E*FHa!M0`l7dUG z*8n*2Ja*l&X1j%Q^IWWS=+TNc=n-lJkm&Oa5q|1J?!EHuW4^x>ECmnXk-~QuNwyLu z+7ZofTB+u~f1!7QcEudBel>d-$-l)aEF4;_CeOCTH-FqZ_{oHKccSBVCJ0STHyg(k zi$ni*YI5ESeu1OB6(CrYG`$zfeXOM|G0g5ctSX?*-iHqLY5L)k^q7Fy>UmferBj={ z(X(uP#rm!pPkh?RhsR^pSDAd&Uli^rJpLla`X_aij#VI{#jXTjV)qx8x(6}lUbJfs zx`rk1Z)7h;>|po5`ujasj6aXY63$a`I&evkJUqh*>Mov&2H=2*@*kfY$Y=ShPCJT= z@nfXtS5qicq%^RxqL4JLsw_Sq-@(KqILl+*E?*OqNa&v87ne0slf|D7U4KJ8-Sq_&Q5RNXgB7Rf1 zpo0|PYrk)ooFlQ2T|*bp@JD!SxVw#@KKoYw{KP0X@bVM}DPMH?_7{mjo8LD(%Z+m# z{DfyOJzvAn>ibLuli=w`atqvb$nxI2ScjX@VDsr~MfJxA@At_qQRY7j9LWFO&AfFf z3{ZV2sDIHB__bHbw$`IYu#f8PWx41?vIh~3wh6d+uFd=M1l3kI*P}hODqTgFxAUBP z_K==E9MhoQ8{ePD{DUpo@`>DD4Mdj7!H}xV^@>*5X1ULM^x#)m{_ul+kIzVo&42&~Du;Rw`Bjk|RdWQ;_j*=q@je@S z)01Q?@9z3E(jxE&wUKgA>hOk=1-kc%8^MWWNQZadRCVVs%6g~gwB}N-5#v}A1y`e2 z^E`QQds?5HGkXL;Jkc^^-%LaUC|7!O0kVT)4Rh`Q+>=Lj66=>#_hu;9TI z)rU2Oji5Ot`e&o%ec$f*)hqPP`BqD6N7{vDUa6Q&N!e9DwClo<5dQ(w4c5#=JTclU zJ`ny~^F3ucszFnT+wG2^CkD5DeBzqy7^P&JdgXT!VZ}9zR!##_J@JfJVFz|QlgD#! zzi`U*=CYC!QW$INJuZw8UZ)zS}bW7MbV>@}sh$Nl0xDRF_0W{R5ii_IL5<`CZS08obTrc5lPI! zTTc-wu%jf+(W*x?9y1tEFN6%q>}gRCuse!4PMrB*^wCh(WOHn*(&Nv6@0@=p^b3kN zhVj!t4Z-u53^&uz_`8oD|DRT~A@wcPKLFn61wTM!3OuC~b4(vl3V>X4;hV!h!rPb( zK-4S8SIyXNi6s-|a&urXLnbS1FcVY?>|K|xF}hY*P?X8{a8gD6T4MY<7bH@ZP2q(P7p2|>C=38h;a=^j0D?|%1tKhN>}0oRUe-#D)`K5@N3 z1sM7qX0oXz&bXx%Z}e(j`1{t|X@A+MwjEdt-r3(LJY+7hlg230U)t605jE+ zvVguD!)zk}zK1g^JS72cy(G*DY>5GWjI6VqFLX}G5i^B3a(}n>U{K(1q zt{5dy01*Vtxd7yeQcVSDQ_m4b#DjQ>_4%!x&9nsL_g{Fd;}^r8-S4x(3i4=O4B^4y zm>Y`GSMG_L6iuJedc{krT0LnI#VEj{v8AVFo7-Ac|3l*Mp~Z_N6tO&9sI}^K=4`C) zi=Rwj^A3%pJv$*!?HNZib1YrgsyxP!SC_ok;mEUNELp4uI>D5(F zgY^X?eVcu04JKoA-=kWYn*h$T8f$c0e2LzC-JhZfNuQQ#y%X@d{TBtYTr>Y~9>_LF2JgvMLk z*rC9Gje(v}pP`-f#~ew+@tSBOK0qEGJ^&}DSDXoX_DIw+4CuAJ)Cnx$&||_rKG6a* zV*_XXF;r$~h{xmb;bcbZ`SWAv zhv?0OMpurdf?;R!CC_^V)HlB?++YQ_FZmEV0kEyxx3ed61Q&+zvOQ~@D>MSYFE$0l zG5THj2m0;{4HpU|Tb7<)5xt#m41gqHI5=xc2=KFG@slGbq|n6NjrotH0nAD>&;W)A zJlI`3l!1+wnZV)26v@Ql(if3CPv!1BAS^5_UA;v@xZ}HnO$^M$z$18dz5UQXtj z>`3fAp#{NEjgVuruU@bYa}D2l5UOqX?R=v5S@}a~pd4|dTXv=1>kTVVB5x=R{M|ZP ze%tb*s`O;j_=9Zej@Wz9W;x|Qyp@h0Q;gWQ%#}%?1fq^8bQ3c9Ut*caFBxbW9Or2xvaqa}ueE1tM; zwCfl6uM;$8o=3d#01xJURF5o&!-*Mmu>iObH2~qjp00x!fx^gwUDY8+lbb40?O;t#acFAW?-#{QEn2CFtY%U5F#OmL`*-}-NVKn_Kbr- zuDDh(fncF+`f%putj~tbu}Kt1j$PQ5ws!`A@IP23{or)?FSt7}isb#eefD>U4@?u^ zwbEAnGiC3C^egNi@Bj!1%IKwvof3}XR=E6813O`bSvVi)fSgHzSaOhz65CAd%#FdMo(82~<@-(xpIRuLMjLr5Y0;)9)@2RJ4miT8R3GI6t{b8indQeb0i(NupyNL8*VRc-6_ea1@S? zXtZ$XC_-%wXf9Bf0xRpMa|haiR=V~xP5+k+&r1Lhlbk8%Tem|o^Y6{c7Ab=$i@@K9 ztMe-85K>^wptQ^2!VcV=8# zJBhOq{o_Z z65Vtfsw2qAxs__DWj|gwV5Gg-r`$Q+HbQw`jj>e z=o%mHlSFFoZv!UdWXh4WR%xow9I-_gBypAKrHD(%|7p)?-h6O5RaPR-!VjTl1SO}= z*S>HwEVe?gz%<0X0s=UQEG;cx8vW|nJ@M9u_WqcRd|0`571&N0mLK&uHj`>xS`$#6 zk*2ZZT_jeXs2^2&)a>G=SY|P5_Z}&2_kx)o;`TMV0+x>JRWvBT$ooAZpZ=`p=JB&J z7=y)a+h6S1#uf<~0;V9(f+AzWJ5ZCeYx3(F>;)4B!LR#MsaKWuYYxXE%#R!Y;^sSs*?R`>%x#VJoj`CwpP)%huZ=c~I|1OM< z+d%W(E@Lq1?tKl4WB~C+&sO!~JQmgqhZ;hJ8R&m9fC&&G{_TD|MqU}|lrj6vk_*tk zxS0W5b_5SjpU47MastF)Z4eM~1}yN819o+6EPUiy0R8OUF3Cy_4n3=t%ZE^E(9fn# zje-H|$uaWm^PV72Nda}= z)Jj_m8X_;8H3WQ|Bc3)G;P#6jf7Vs2^!T|CZa;8Q2ZWK*nC{a=1sjl_eZz|Bj97E5km=ts=sMkz>pE3e39O`4`{kk2Pddcx zDZAc@IrU)i3Xs4=t|PxSYT&h9_9@liw4|Roe9{Z*GM|_GYDOq{uk!CYj(`j&8-PA4 zX^Hx+U~Q%)U6C2+_#HLh<}$^^U6~f*S(sm$$mrZf0U%E|<9$=sxj@mxruJpH?e&;C zrtMXZsQl-w*(wk)K|ZlHfb^ndlaq_Nlaqh|4xzC`d>0`?zU#1 z?(-rE{txS@C73M4(?(d+*=rxYJkPL2zh6!_(;UTBcA}4@O$K~OVxK?PPj@<~_!SHH#~wS2$8WSefyscqmX>6}GvdGUZx|8(EI@UR zWO+$?)3ewD^2Ws=kE5nw1-YI*WmBrJ!4oDP*(vG5om`XdC0IF>;qbyUG|>i{ks4qF zk#hojZ-W>*JWr`5xY1MLfCIyR00=Qh4l*zkpK6Us`XTM^Wl&~FiE!3P6+`>6A>bvM7!WBya(x^_w z4yO!!gbyZI5#J*zLGb(Zz=AqQZrwv+uM;k}ehjkYE7E_VjB#F!<@xjOF7Pu}CYkCW z4j7jsFu!NS1U!*^zV{#_>@k@eRX8+H3L*nDdEei9b=jc*$X`oA@%Y{I9)zrL6(t|tWs{r%FI&Fr{ zTXVnJX;!G^lOIV94;RxcV*3WJ_&&OsKs_lN}i zKE}h0Ee%Hyv;22lL|n$!8AGW4I28Ys$}8k08@-+}c-`l`R-Z8qY+wBm|I%*a>xA_IF|9-q{?GPX1Np`A8s{rcn_Ju#!Y$h#sx&?hH= zcZsX!y(IMK-moEy-9jzJ+*|(YBzdesf1W2p%8#j~`WISPdgsQlBT|+7BBF^lR#YP6 z^zBQTtoaj)L`6CbxKewju%E<}R0pmwGv`7T{_$N7kYu0ad9l9>1Lig|1&prR(4EahsvwF`+cSc6mCa(=C6D4bh-JeAoQsrZn z*c83m@{*}E&#QUy82nhVJEg129>y07W5lz1rpeOme~AAKx5hh<95vQ@vy+@+TV~uN z>3d$LsvTG0p=z+!bwoDcMV0ZF^_L4r0d!<*^e4C92C96egleq*?w8X& z(POj|tV`uytOp%&f=&Pfh9Ghf6k{8J%&Zu8HUYyF0H{I?f;4FD=VjMqVjK=d4JFHe z<~MJ-U89CU84Fez%gSUtm=4x+^^h(W9JY;46(dB@@pq`xJh^V?E3xl(|H0lKC~w$4 zKv0x5-BvoD>2dZeSaD@$QLAxSp!$1?vg|n!I{|BtPAPo~GqCY~;~UF{G2D&53sWa+ zuL6H)2pUWK>LVq-=%czObYHNW?Ee$E47({MeJ9C@k*l>3=w7;}&7jR8s5QZ;8kp$M z9(&OL6`|+A^}_J6sX?->Y97`Y&(ip48ljJH9{AdO_T(x7nz2 zv>f7aoUgJ9X9NmFyOObi4D|B8j67pN2eEbQu@{{TPFEI2W&IRz2|_rqbjgwC;Ajr_ zhy(cKhOUILdk7}!RmY&>u)fYRC4+fW@C>yX3V2xyLMfFm+RvVmVK1~9y~pxz64|a> z%8A@ee>P2>C`E1LuVn_+y&A=6C!rlh7mHB1ZIC3Xq5m`3+NpVG)j{Gh+L zd)N9)Zsr}_LMB>RVO)*FCI+$rt_km38FE63O{!#Z7#J5gcFncsnc|0UL4=19A9{-+ znsfO=VP6XoVG`yWAx?zUi}(YB*=u{BAG7~C%c?gC50K1Z+wH=M{K54>|2?kJTE%x+ za@6W(e@h@$d7%`(v#6b)c7XZXdy!2H#<1}<(cyzEQiNK;XApaXcH0w z@=i1^5drz%?90k@mZmi9=WF87)Z?UoVB~c7RT~GQgEox7NMQh_2^QdC#idDzVHx&BeC-7T4woRPHO2__ouHgJ zaFz3j1G3Opg6$%0$4{*1#?Lfo;N@jq2#s6jJz^!Cx&O#`ABCARpj@hsF1T$D)uoSO zrNp)Fl};{=K~O$N#Htp~gO#Y#cZ{-GOL$KdfKjs&7C>8U>D!O!PX9U&p=Y?!pWxU8 zGNzr{XZLd1I(R^`5hB_F`i&P+LPTzZvXs)r7U#gzW4wm_Hx8;*GP7zNFqh6UpZnTu z%`t7{z)EZWJ0YD_82X}Y_+e-7cH zWInpJ+iW~u5WdaVEmk4+G%up>5Kalfs9`wLrtClEed8>KkSvPnOa8QNJNmMruI|Za zE?d;?Zr6t`9UXltYEnJ?Ax6U)zx6kO1LbiWYTV<6r*FCc=imKU*o~ zPhp`V|Ndm`V3V$&G!xsl$^1~J%(bs5Os}09#MhTc>@|#%12dgK{eNo`cGzN7 zKUtiRJXSpBAN5O4{)erM12(V!_G2W&)kV)BO`7z}8=+!)RmLOeZvuNx$Z0J|n!U(w z@6h2-&nd1{EFyEfkgx^cxDaF2oggwEf&KAK9S}LI~TW<_S(MnWp8ouy;M= zpb5LnTV)m3Dh&wdlxxP3WKyK?V&3`jpu>3b&gCFDH+sfp3_y(cptq6oQR9d6f(?n) zYgE8RuGPEsrW{xE&PlX&`*|3$UCu2mxdJUj1jIieLu{er_CSOA3xxSH{|Fqk8@l85 zE52BElhDc&AGz-c9Gs@K{o3%U;F$+Z4Z}!TTwDx^ z(mjnZR%{ZA^_Z2k8i17upcFU&X#NBUQB;{A1I~A0y^s*UWie=8k)PtixYXKXjl@ae z#$uSkAD$O;eNZ-wrlO2_m_g5Q7LP_KX;Ny?e+Api(Z21v2tPgT3s|24h6XH9 zI*5hWoO=ORaN!Ebgo7wP1^4kg=LU5w4f*khk#v>$6~ZKjP7pSJFgZSUNFHH9=V>~B zXpTbcXiF6frNY#@zVZ|9;U;La!N7ST(WlERN@Q#3DPu>wCvgh9y?;z)Q` z>NBnCGD|mua37I|7s{_IWNVDRMVn+=XiUIMN03(7*owOEz)z!)dn@^URngldR0s}b z9#TLz7|VYNLqaO}oSNpBSm`n`J&;t$d|R(#Nj#RD0}QTvuhgNOY2I4*^8{0(N4{Z#XtkmqMY@Yigv!8 zFBk6%n*LdrFDc;x2JM9$EydTNbOh3{#yKn?6-|AG-q%C!R18PXrJ<)p(bl3s84p=O zi+Go5q8!%Sy=(X66e)tB4KMIB*OaeA_wnMfu1nx>71e&C6&bWK0JUZ4(!doj0+`5~ zE;P%6talybB%@>=jQdw72D%vZEo(@ zx?Ht+v6$$BdQh}Pm-7$a$u0)108r9v?(OMHyq(ns}?{Z)L$464tQY7foo)6= zAj!P?XAM2)5_4iwP+~IAg4Mx*vIZ?q$w}CGBqcS?K&QqZ!2i~#tp<>k&#~*8j8`^vx@bw z&=O28^&dQ=&exIVPQ;k8wVE>SFSJtC=JK^3CyL(dmlwaY%UFh!+#ccKc4!~5RRthgyr}dMoPreoj zgkP#c0f;_CnFa#yNj(9~W47OUwGTjm{S-z;#uNm+Obm2CAK5`1M&!PCHi+yw+Mq+1 z^(xwi7q#7~sRhGjmXy#p!_>9ijO`6G4>D`(Uwqw?1RlO>d9;1Us!;v*BIG9=x300P zwEB8fI1;Uc16Bt?75sp69ju@o4E!$1voloEJvn21Ng61iF+ynN0_MfgkV%ByK6}fZ z2V|D6U*$9s@@|oDs_t-h!NLn4yxLFw72P9drOpK_&mL?n=i^$ zU%~v{qRT5?SQrgPAFzbt$7S&+qi~J7BS1>nWO`Oj#?QJZeabOAy z(av4pg`+9|PcPE5W?tG|T`Qg(pBE2+#DIbAaHtqHfb#`hXpF^v0{gz@UJdP{mgf0k z|JXgjWl0)aZyuL@DkaRMdaK^HZAR=w%Glm0D>i<*_NJhRkElBnYakxO`QvWg+9dOP5&gj}$}>KY{gp=+OZ>Zc z?Wd`ysys0?YYHBsrSBzr#|=k>x3b$#9ko@a#ZYw9tPIQR^taso^~G<}gFjic(GzGr z=Ky}G+;Q)*KKuk1C20buc!7B}7mdzT0h_z+G)MvHvM z8A7h(i30}7@S&}4kjw_^*^@Z=%^|EM5#MZ%U)2^x*h6o(@8f+JhCE!n8PD7TWuzau z%Je+SerhzmM)Mm!UU*=66z{{hD&4kJx!dHI>lUIOx#V23b`jXO7?$v@`SoqLN;j*L zS^fN+}{Lv7wNUBm3>Et%kzS1j5f zaS)S2r{r6kR_mK(xi>Nv9z!3Mg$^p}$K2@v;S)zhomCwj>EBbk)w@>^n8|05HV%l( z2^;c({1G>=NwhaiPZeN^8Z~Ne3FI`9u~#*3wsh}v@Mq-H#eiA55jp&Wh?!UxAr zgOV7_sbhq|_ZgsP) z&34HSXz~1?yvzLKi@WVOo~|R-Ah++~XlDX||1lOs^d4Bm|ACdS)uAv5`E1eJl?qwzBth%%0#;*y%7v{i$B@5sZ(IN1mTe?`;ZlK)@j4hc4PU8=Z;;CZxZs1$8+*#wvqbD;(wux1Zvv zkUIoy^@9<$g+OFTqdKT5M5^b=NMl~`-(nO1O@0$bpfTuO3!<%22hB>K+rvic8CQ$& zzIQ{H8TwzprC~99)&HUVk%L<{LFc<#GOGt8tFlqq9o(EqRK`{T8E4 zWBQ*z)%fYKl7txlWw28Yz^nw12cS=WYVU^o(!7>0LILt%@{P=olsLl6abLECW>8oV z?tA5*&RRJB4hd&JbpCQTV70xobN!5Xd_^_@?+jR}N1h2N6!G0!J7dVw;?Qygv>5-9 z;?jl4* zb7M2tt(5-Dm?$Q6O#KuE#%1kVQfz#FxX8yIRNZd%Ai?m<@z$1W?fsSWuQs@F7Kp&{ z5fbwtA$ z34l~W!Uf7JpcsKLe9lVP$i8`l{pa3AW0{5`y2b8ZX2d(I-bo>7Q{sRHcuq|KEQH3L zyPyVC+iTuloYl6eVYB4-u3c1CjcTR(FC9JznGu8ES$e%EX}}Yt|2stev)5F^q^g!${wQw|^5GmuCpOMbs5B-YRC==$F*L z|Hu`8>kQmTM#2rgGQ3_zYXPHLjsTELjL&|QuXwZe1P&71c@oOF)Nh3FG6roR5M{Lr z=Fv+0f-oF#dbAq5%Bx9Oi#UX`YI2+SE4R2f9%T8 zfgJchNJS%4iR%BuPc6K_Rf!=4Oql)fj(1$eAV>orD@8jN5Dv+;yb$!ocRdiq>kHK;dt~ z=Ho0~j!`p6~0+^Vk{(>*8u%QOZLlEE- zGQ8znw|*E56T639v8d6(c_~R8Ab@bH>Uh2dUVgxaE$aNvK;r$SwG?0&Ck_pchm+$- zA9y+FGr#clhc*5rGx2?kgXtCKX8!EqFe>Ow%6y`zrfN`nuH@fAeb)eFw6a zly2Lcpm|?X?y9=$WdhOGFZ52t)4&7nc8Nwc&Q(xS9H}#HU*%7&=(VLaq1j@Fm{mp0 z!Ln&>^hRd5KRn3z1OYUd=Qe-%q9@iy)=C^+If$h<2nX1vvi%lF(juG150zgZxwNc2 zu9iGgS^yBX@F=g#F8itgDHF}x3hpE8r>M?Z!zq3e!-vdMMz(~hNvD>F)$qnFSyeJ^5<${?FH^HuvxdF=X+*Oet3?gL90 z_ph%0Vvy~}E+y3`y9p|^z!T7U7I~T)2vgNG$Og;^vLrT6Bh881(rGY#N1}++yNI9f z3ZWo)wJ8`;%@RYj<<+0s;?V+;%>^o#eq0U71=_sM)Oac6-hKZ&`CxRpQALgA_g{Y5 zLoFsTMYmTA=B3XkL7*=AqYPp|8pjKd%YPVW{f+9U;Cp(`g%MDwUQ6Tq3rsgVic$+c zMTZW+0xaOdmrC!IkI+^lH}Dx@zk44dG=^gPTMr9za=%A~gW6^!jSMbDo8KlnA{t7r z^`niK9!9ZS6XFXi<@+Aw`7UvcIfvpiV!CNPZ}Vulx>TT1AVf0@fVv)I9$oGvu2r4? z{o~npk9T($EYC%JlWOCCE>H{om`UuN?C}yjF*M6)3jN=Rde%;o>O6rjyV--L>RYf> zvg3OIy>G^zudCD@J)0z=e`j8$^m~5BDk)Ym)$x{770tPS_i7gIoo~^Tx9EX;`)^4z za^Oa)8>;sMU5^VSVBY@Nu`^qGdJo6wL@m=_Pb35U4xuPZqRrXR@{ z-R6Hw8OQ{Q-3cVxYJ0u6V$L&&=)Rxgiqdy9&5(0-%fzzoxT1b8QmxDR?N%K%eZ1s} z_bg3KakA$p_5Xg;*biO5#R9r=;*EomLW}Fn-W~A4GNA}!`|xfu|7-H@CMoq$moX6U zLgfe_*STRAN|m5mBK9&V7<=?a6TAYuph4|Vu`(1d!3ThXNpVbv9$IhP1uUmy46{+Y z5y)Ky_n-E}y^Y{_XL^hk>}&o4GjhX+41kgGPx3^!ZM&Y&6+7iQL;CKzcksGLM+1(UHYDQ9|4-!caW8TS z7?-na@yE459`)V6lGOZK^4f2R{b=dmfhIVdvhCgsb8N!z_eg-6dDgdgst4UsGr7P= zg|^Sy)tyW0ogb{c`I*L@`Vl>t)xYPX4J12mRWI!tU_KWhdh-Vbm0$z9US_ao(E>Py zAa*uGTO}CZo>+HCGrE6==LvB7u`0~E?I!pAh>xmbevI(#MYrCAEVkr*MAF@cyVvT& zdIFOqiyHXxp|4-x!EvIT$^Ua}{oR>+nz$$(k1}$XM9^gEF|QS3?nzJ{W)o|~mebkKH84qfq-kL%As54ay`WSO{K~TXWU?VJa zjaD~g;-X_d+k_eX!oVq_)< zMqpJkkLe>g{vVpdatf%-7P77X*}+RV0z;voeV;UYAW`cITL7k zbv7FtKNmpm+7t%@y=!aZ>LfF?8tQc2y&&lhE#6y66%^_TO?P>*q~xlDH{r4Pc@gHA z>HiPsk9By;ann#{teel@|33+Loegx>0Hu?DUNMv348jI>Jerm_ujWsP^e3I|+Tr12 zf-*l@j}R{KWbl1b1NboY!~3*?7uu#VAnMg66<52}*^5T-OjoIC+f z$c`g_y>bh&eOaXi(sir0&PQkfAfrz~f;nUtvcadp^PYNS%YrKnv;oyhM1fU7I9BKr z9pMS)$)p5^`39Sf%OUfJ(_C4r_ls|%e0V>ZX^fy0Oe<;o7R8jxhKHoNXA@uScorqT z*!6S{uH^Jt2uSqgTryvqO+1**Q?}Ye^)38SvJ;^!c(UIf{r+9*H@#VH{Gufx$O&s$ zFY6KOTl$|6=%Y?>hxfc^%_p8GYwyv~{{KZCPI{c^`$2nBCE`u}>o`<<1r97oXRR1a z7y_7Uv#nd2l9P=7zzo|_>d0{nUTA49^3V{shFv5d`*Md`*W4g!~b4>-Z=4qxo%l* z(@uUfb@<=#WA>-=c-m4O+;BD{wVYC>>dw)3zeVp!$gh_bff{dUm6Je28{VVl8zt)S zYk~9oqWh}Jn`(@);UO<@f78vU6fu29A4)D=rECnE3Pl(ffi?gTW6TIHZsD+km$q4A zQmh%B731&S0;90A79`l+uxE`NBtI@$X6R17Q$LYN&9cjDbz64pj^1jOR`ou}k zJ(=DFKX)SL8;L;v9`o%Cqr93YT}>JcFL|=mo+qvfP3^G`_2#Rf<*vDotA$Q|F}IQy zdO!f@+`YqSm!vY_@IHW;RILh;5+-Iz(J$2=xh{og^D?-xu@8fbPYeNL8?Mw9yEJM5h*!H! zu;qpzR8n&Vv#%-Rno6JI+jssq1ixOmMoz`tyOgs8JdW(duI|j4VH`reVkiwXyziOZ z){#@hU2eZ)Xo!8PimEU{mYN)OS{NEi05$r}gx%0)Xu)l2SCamnf_P~nRkI{E@O<}4 zQjCc^Ir-}v0nBb`+@RD^Z6GjYu#7IDmsM);hI5DP1)A=<^P+ieb+b6T!0R8YIO5V;45QeC zNxs`LlYagcZ_Qlnz(jNcs-njLM?AsSv0x+Ym)DMDQhP>-AU5`Pgo@Ao2Jj*Dqv^Vt z`wOS#BTu5;%ax>`BEI!&hfc374!`Asg`{7r5o!;7oBxd~AaQHRR%rNP)t!7T$se7^ zP7msO>NwO;w-V*ML|9L7C-wOfb1V#9AqB=g)(pI;CCt|?58bL>P8JHJ-Z2>|LNmt@ zUI}$m1+*Zn?!DKcDKBR%9!hwe8sF3~S@+@GY(__1qhuLlEO(k(=jcvf$x$=S^Qm4p zKsYO&f*>N-zb>pPldB`GFdrXa^KJlTAF*)6x>~r`0iKGub?!!0S6o`}yeGAX6l5G% z6B9qo8OLP}?(xYR%jao>yU@ocBYtY_V5NeSal9j6zVAbKSqdw^@`6Ijp5?M$)|hu%sGet? z#z=em+uNlSo2$)xS-LwF!FN%MH`P)=nJEO|Kf6D_R6_0k@<6hf`ghh7DgvHhjZ_HT zafERpXbK2XfdK`6mhkeeC%@mmnhdqnOgbnj?tu?l9{jfgw6Yg5)S*c)%Mr$JurQq# zClYx1ShR-7z1nq;m(uN)ijw@rza5XiJtL|<&G%;Ow|j?oGYr6_D4}8OarNNM))9PX zwz21Im^H3*6jem08CZls5Msg4V#eBC8aT8DLP~WkE5DeF1NG|piQ0~FZuaW9 zfroj|I-ALT7N}^aW`q-ddiq8<`)Fg=ZCbqLf1a0XtZ1e(04vw%+vS zmvXcXCAP217yHtdsv2_E@=WZDq$&Fr)2iy{UVY?mwhNr#V~;hg9IGx}WhGrxT2bi3 zqR+hS3qb20+Mre~kHSCtk}CTM20QEBR$$KNf#D1%p<(~_M+Oq!d@_&Q&~lHHf6nZy zgXA2_u8KSb&0|m~rqnbRHvHY({F>qRrCiY5>FtawM!YBB(X5aQ_VfDsP@b-AMX^4t zhk0f%!pbq8Nm;;(-Udr6agW8|Y}B(w2D&>l`ukPkd#y9oo+JuHeAy)&rz-Fs(&WFR zQKoogJ-8=?iyJw0gK?%PgJ4hUJSYYEa)%l#wT>aZ`S=|+!%K$z!Hq~W z=f62zCq(R8%~C`ydRYnJsMfu= zJ+Fk?sUHQdUop_%X|UasFamT{yih?X)Nv=op#9h|LvF`l$=#6xM~i2V3>>@oXwX1m zFRZ+EQmaQy7n-oTqxfqfVtL9MFXz|GxeDEkXwj?x zym+!_%yzyxkCiO&dBW>s+2V0~MiP_)?zZm&1q8m%1#sV@4&@4Nh0z`YcT>M^s(FAi z3H&llMd6{gBGA`9a{8rHP%#3m%%{ZlUVj??A*+$p*@V?f;B=(eC1nn<5_>WuR`x8T zGRK|#PYl1XLz9j8%m>F#-}-V$qv1B;~Q?&DM!w!9=^ z^0+;h42_j0qdv954aJGR>3UoWMD(kClhtnm=i@prcB1CD$v&?3CB(mzETuzd2XtaD zw`~|mAW@8bXG;4(!L$FOKiW7RUQQ9>z=o`(5(=$KPkKzgBDh^f7tI$^VuK6PiZ`#T zY&#ms+NK|Nte4n)Y9RJ%*&q#edwH7BNz~J-&`AM1r&&aG+R=1{KfCjuzXn*$D#8#l zDFBTgvkcZ)KPF+}b`$Fzuy@hPx3yc#_;(tq_D7+;d2~v&rK*1Rn+^`EJ~P3ary-FH zn*6&5SFie6sqa4z3hmyZ!5u+szYHxc;ex;K_}TBL2LC5k`alX6@Sz(NA#X%M%hIci zqf2L?V?rk^m_xAiIOzMq8TTIi*)A@90tExAocZJ^L4gH2%W$E#-1KoZre#Wxwoyf3 zKYiQAxff$3eRCjro2TUJ>;Gy=u0Q_z=eBXzmZTpnq?nleAxnoT6Q~AUL6SxxNI-rl z)*h7jOG^`Q3f_-3G0$Px?~Ei{^H7|DT=a?aD^4`AoRi+scLYq(vWH!FN*tpYxz3a@ zALs>MOr2Ih$5vLN0;sTI%HjLbQ?;c>#6pyZNc;8*EQdfETHPM1;6;}>o;fmPmlHGg z;D!8Ha7mhyCjWVZ4i3IS`pVUj^@DxuqiA3{;q+V3xi0m!l+*)T#WwxBgq=b!@l9VY zz)%oB!{M>J#7X@>M=M&-{S@aQmr|Da8zZMPy|ttfuWEFil6S<`6@2>TtGc9{h?dC1gX3<4u zSzmnes`)9r;Cjub%(s)CbL$EZcMXSmwCycT*Sh45eRB5kiWx3IxxqI`@-f6Ab&Zg` z=G%!=++S)Wj>d_ZfI`EQwWzN0YpkL^2wmQmvF@RVQjwPKqG>i0n|Fi1-r>Sp5oi4ilzgx52^j+atv`a_h0e*hv zU#fPQ!_vn04lx$-g*%nF9n-6_4Np$V5*3RK7(d)a){5>MP$0VZ4={s2d-L#j1=_-f z{P<-Nm)72E7(`@&6B@l@(ZLsL z)<0~WJEsT4fDjC8BsPT`&l%Uek}T^aY_T8KOaLR5gGV|gN+VZATj-QlB_qx?GDCD5 zx(o-Xj|XG8W)W?7#w747Hedo|ExU=AH-nZuCN04dUeDGon}iBVnG+U})4Oia&`B`r z%_uMqqShiqb$lzw^ZD8uwQ$#8BPt%Q|LOVj5UWj+LoG-fqndirp6jA!TJy5jNqM zn8SmG@KT0;;)Sx48|sM{AeU=pSF-cE;hla_7$G4|P^ekJV{QWEIfd2uUF1h`vxe0Z z=|78xMKIUQjgMti2&Txfm6)VA*ed~?E$3M;B4X0XGUemci`L9E19JKbze!1nqNMXv z`^h>kcu>1~){jDvro+p{0e2DcaG7L;F>%}fSJJh|Grj-+&n`w7i{w@|=^_%6ONFf) zT^zTHlFN{C4avcVZN)0g>O|?(VaT;uI>)Wdmdkcd2t}k^mr!A2GluQ=>HGWq`FVUE zuh-}OdcEK8$LsoheGaW3tQceY2q9EOc=BvR_hIjjq=~J6Ah}f!w4l>>Mxu7Zo*P>eqG$ylt6qj)#3=3 zoyQ9>{YdKPvh&X{3@XT{vPda7(5L$zJAdoH*#JqZTZS<}0U%1@Z7PY}f1Mw`G{g-i zNCggQd$YQbi?_SA?&3>zYj|mIBl;4~0jO<0n@>hp>7^g*7Qmr*SGxV;_sMdP0Y&~1O7rZIhS&yANT~x>z_4j@sg43m%%K6eO$sin+=q`hwe8Mx-G0UTomgoWV^j|RA* zFeL0%*(ST#adXUH$$ur5q>GW9e{sZDgjjXo{gzv3Nu;;Lz#+&AaQ>7x&7aWJ4gyRd zH8sozBF*OyDP5C1b|h3=BY@gZJ!2Auz*Jo+S}?$InKNt%n{fs`CjCPDrBrJ!nql*l zZ5-_HJuw;sP8%na!&d+?09lgktScG6(aMHz?LuoXWBh@WN@e$jty`kO3jld$cX?4m zNuS6o-ID`a6T=sGmU%`uh^;U^R*AdUzUD_Kxq2YpcJK$@FKbILbdJ%>g=jUv{ija9 z0HUW3A7f``A4Fchp5i8eT4<4b0p*S}?PSecGyEuRMF0-XH!KRF|p+jrfq?FqgLllPbPJ}qlo39QR}>H7hl-!KeO zH%oplbBr-8H};u z(T$0Y-iZKmqc%;{C#^TG?Mqynq`#S@H@j2snM>kmp=-`&zpTcb4#jdsrE)mx-_a?T zNJ^al>haKMDP#Gu_l7Yi(k@LQ3=Jdu=>vTSE8V>&UD7MkK}?ZUqo4pAUJ>wSbgxLw zPmN8S{`?~7G&U!oEP%PteCl?pk%1I_6_nHYk~&R;FqFHa-EyZsUDT9^CaQE^3S6r( zArs}xwodSg=bY+VEoC>O53Fa|<1;mpd1=2pJu=B240&NNq-zNnM``}KuKVA@ln426 zfv_OKwsmM$n?s*(W;r=E_ktOGSb%M9t`h{Pg+s)f)lB4);BUWCHMRYJ>aJ=+=g~-P zx`C#nMW}0g=9@gpwPZ?R?Puq`_6}aiGiQ?wOE;D-?7eAiY@P+dMcM3MSf;nEzl>*Q zKvgeCr|UoTRjM}|^-T|C*1vFbpvm(Os%07BJ-Z<7C<%1+kooR*ee5tQBbK46R6 z43_fT1LZ~c@irSRBBieXj9SlhxY)w#EP-%Mnj zG;})MhY3NX{TEl?DxG7#0XM;gl8xxy{D7aVjUY||1aPuaDnEV<(0(e6k&XmV>q_Ms z%)(w?4qz*_MCm-%r{iW6KO$gv2_T>1~h?< z(fg%eKA&C*Nvp^+w)<|Y?6znYI`{S2Xw*-nZ9+@cM^I?8>k9=uN_Z$V~=HHFE^ldWf65L$W%hNgSAL>+EVcPsSr&A@OC&{Bc8Ef49!sd zOF~U(eOlK|;a|Tq@ZJ$M<^yT4vtHdu$=hRhu--}8jR#=B`3sGNGc+a^0W7(*f9T6x zI7_25U8|?Zu1I7X>pZce87zs9{yITN?q>kTg_Yf-QSO!F%x~7bMZr$O2=7WEYi4*_ z;tYlC*Za-!f&~Iv9PwL9IGJk^H^CT-C9yGt-#-;Z5%g)_@ci>fl7Jb6X%>!X$ezvMg7JcTtFXy<=pWvaQvZLtF6#RJ3F9wk@m&4FXd08>rHcqh5 z2Z4ymWS^-rUS(j$#D&lhvV-R?#)y5Up8_yuQB+2cU$yU~>t|awSF2*7l+XB?QuLd7 z0|FxaXwS2cgAc=}c~6AVU}E(PhH=-D+4h6k`R~JpM{)i{OlQHuh3*FQ#-{uw8f#{y zSm?Hb$7sbV=v|H2PL-awaq0HL!1q6MJ%S64f70tx=%LMZU=mk1ZP0lubjQk4wD){o z3tsMm(Y?njynoC*wLPE%-ays8%#m{Mg}?4^cD-ra>8Nt>@rdSGJ{2CHTGHX6l@dh2oW%q)I34oN=RC5L1Y8Fd>ji{B)r&LZkGeD9xHGr;{v7=0G7 z7&?qQo5S#;j;6ZC?W*NmTyjtbFams;1P?-YcJ!UultRd+YWg;P~zM z;iZ;>qv~3B!eXx;L;&Y>3EuAxj1R9GILfjX=2o0IWZaE?7uRoeu^T0N%L7&koD4IV z^+HQW;1BPYqyN7^PYlDiIN--Lu7uYYaM7YsYoux3GG8&NQW23Y@(=5`mu-i^CUtaf zQNRiVwQ08IiI~BJ3A3hIox2CZe_kBLZs(yw3VMGydr2D}_=^Xcw zCvf1hsC6>glz}BGMt*P9tR^fSKF^AJ0f+g}JgVypncGLPmud1)0O-F#4ljbZBK=Ks z?a!M5#z@t%-?`01j^l@H@>1yl?##lu{P6-^y_&S*_rM)H1(beiqJAwu(g|+77TqD4 zT8IcVmKclF9N^to8&s;3zqM=7LK=6(PwFk7k_1!<&HDxPQ+%usfCEE|gkvxh2qO1} z=IWK~$5;imFYDG8)sv`D*E#iywr$-#2~KLo2qm2QI=G}ki}s7_+(uAT@~;T&+iwk5 z>!-wQ;AUePp2sl)Z!|iGcG@NB-h)GGGZ1H0;3g1- z5?QsJ=5gbb=H{c`9os^GGhe{HaXE32n8;1`Y^tPFy84V5NHJm}Dw6j1kE_BanYKeP zd$ZKaob!&NjThHVJxU1Z96To_R;@t93(|xOeC!awi6N7Hbo+hMW}m4`9x4JE^zMm@ zs2IThLFV z`Ihs-u9F24B6qbBd2MAjzifWJjkFSV_rIu{BZUtG&&(f86t&knUQj=^UjW80YxmF9 zD$NdVyBXMa3D2zJosQyLE0$U3QSm`-o#%!UH?xWnRC#3*=2`;-~@~k?s&1o71d_U9T0Qw8|-zuH8iJA3I2-GCu`J`Se;ReNre4C(8s;5d!5CBpQ z`h6?Xcz`kRVS1p2pYVHcqjt3Lqwz*qJ%Z^SB!~zpk2wDA+5RSWhpxQlAEg14O@2&p zRWkoOZ@t6TUYQlB1?6~AAm*D5rCp1KDGS29|$X}S*vv~e&a zK}Q2dQ~E0P7#~4Aa-@83^cwH`kwbsNj+gVj$0vu4;KVPhO1aF2E z#OTTff6%pusF{eqw{c8Go$|IGb>~eO1n4@!$kIglWRt&oaezuInz#=7G&8mR+w|N| zW89yez?IxnE#vaFx<4gm($)lXufIql{C1uEWtPA25r%5emZ1&hYTy>F`Ht#EE;~cPOXybI2EU~8Q`;aqKsZT@o?8FMsP!8&)cjFG7 zcR4sSB%xSW2HGCH%vr&4Sh$c-h4ro)Ko3ZH7n`hiT7+)8hOaGnCKCS=^EfpN(f3^( z{sspo7@kYe;AR-)Fbs|y?$=v%vR(rXJ-YT37Y-FeVf_SgERX$*kM7oTC!oyVPB zl!7Zx6ua81|DyVlk5)4pI#H5TGfvkYv9v4|FT8So`ygFNwF+r_3?J$#|Zg_W9KI)t;=_8pC5b$jX@$Z0SWp7WY{Px%9n3R=U$yrX<4 zt%;;9(KUw+h*Nfdj1VG4{B$dWRliGUP#8j+m)vW6W{pNB(uogWs~4MPp}T)6V%#?M zDs0ZwMhXg{-s4gmzfm(Vn71?tzsVR9&zmng}C$8`0>DodLcyy8tVDN`MCi zM+NKaDHHth0D%{cLsItl@?^5{{<`2LUOaHU_!tUSUV?Bubisy;29=$NHp)gUUz##n z3j?9RQD|jtoE98|MB#ATl@TyF77D{c;YbJ^gGa&e2!!(YA249em+FSMH8%Zj3%Jt- z(>WY(JQT{~@w9kIEtao46pq8;pfCg!fq(!A2%FF3ko+M`w#p9%V;Y;{%kbtfSWM+b zMiQCD<>-O|PrrrW<-JVHWPeW+kT9q}$r}pSf-Q!$1f)`yao${C&n4qj3Y6wa^P(|1 zYyb;i#sXO)5|`nBO6%pdjAnC8`~Z)>$M&aawmsjQ2DPQJSzKQV&BPC|sPe-xHpiCs zdusm1asa-(*qhGcu-J6gUnF7q^>Qk_@kYKh5{Kn$&tiH0*kzj^EXqbki@S23(#{aiaDh2Px^7SGCd1iQ#+-Xp6ru&jLA`x%SWOGPN3eDVD7Yw+n#b8kJ z2r`a_K#^e(5`spCpxj^x2o{IJLbNd$1PO^nqhZ?GKh_(wDBML2EUy1n4pbHe;8;!` zo&rackW?fLf~6s}A#NBHaD}5$AP6*-L?O`-I1&Z(gU#BP0aPT(^JmsYuc!c{8ypU! zVo(?e41vKyP*e&HLPjEB5E`69b%W#JSTq(1R{q_t5zCY1OJq@jod4muxsj2LFUyVL z3A`|7u)RG={Kaxvk}ZBGgAHsi|9b)2(R{vNc`}rjl!_-&7K=$2Oj#5HjSBw$nDHlR z{Cf_6qvg?Q0O`Nb#y1$7<;LNWd})U6K+6A~0HJ>s0h{Faul=V`u-aG(i3CAXu?PqX zOT|G*FcOe@8VXK>A*nbx0`(*QzwjT8_@V9p*#GYdrqD@DcN);6q2T{KB5ewsL_<*! z5Hbmi1LD8|5n-q#2#iLdk*IKOHyjf2ml6GQ0senPL}4-gXudz`%$wv(0uCFRFIyMv z=F9R@CV6{%GAN`)Q9}Kg)bBlfxeAmyEal&8{x35}rTH>`Qp3+ymR(T(U$pmcwfFa0 z&|lQf|M5;i7f;e}tpWPaUE|xm@warEE^g4$35EZ&{_uCz2pm~>ps6mm+5cWc{AQo^ zKW(gw(pgp&-k#>qu_W;U8Gi3BJ4o)o_nF^uOBgFavASTQy~WSndFjm}&9^s;^h(wvWNM>bQRgoOffWm-;}t3FvGP#3_{_^Uy6y=#78b_G0zQgtc_8s1{kYl* zeFD-Sdt5Mg+6F_3_){$i^P7QJ;O&BzdCQx9&MbMp$Hj zKJj_HsM&e*K#CvMIdbGmtiz>kUy3am;imMjk*Lz4{UmYC_0ZmOUCQbs)n5*rc!MLi z2L~L#hMO9Y3#czQ>8Nb$uPZwErueFc?OBtZKDq_(xcCca(j4J6T*cz*>L)2e(^&!4 zlYRwwkrc2f6z$X_~(rkx4Iy)>N#d zDRQy|U74E+S)`Yb72_TIB>eXg>RL6TK3qJaAEhLks&piO4SfCEn3zTbYPR9q=r8$C zd}!;2EWBV(rl5jp%*|i!EAFxOZyrlki;yx&=JDp-dLJl6c7~k8R_}+jauuCqJA8Vp zjB74-_;5p_EE9gc<~nE*0vab6RczO4&X?-f$~ZwiffV0d+HU#` zYWwWQq)K#&N!UpH@oUA+6M2lz`3bCS`|S~z(t@dC2*!i^dX*y7UAtS&)c?|0p|+lB zkhw)ebxkut-S$}oXvCDK5y^YIrC*}I*)guM>%kW|z=Y1bF>eM5znLlElCiosV}nZx z(=qJ@mlc#7tZws*OVQq2frLWi!X`y$<9XqS3(PPVSLVHfS|zs$kK2v039h6E@$y4s zHICA}nf)5CuEtzc2rSF}!Iha5Xma`nbnrmK?W+M*6Fz!`{NBh$<;WMz%t#pcH<@^k zY*T3SnSnSN+mtlbng&aa829>jQ_y;c9jF{+Ug|Sm_Q^6leT|pz(-sgU!EKvYi%4Ee zP-$Ub#1o~55b^9L+hCW~W@Cp>Cj|;k*4JgRaeE_khHX2tuk3jVA|47H$nMs4?u^&3 zI=(+Hv3ab_Hm4fjp;{^?*0O@wA{5;+7r#YhW;1Ty=&(`1iS_O`tk|W7TU4Yic<=ka zGzD#XDIqh_(`T1$?Rw{A62hp~I&FA^!5WlqnOYLM$btUrw9YiYYD7Hku^W1g?7|E` z`axokRKW}Qfy<(#^yrUf`$v2F8W5U{JH^M;8Zs)KWU!c8mC()fBN+N1Nua5vnY|-( z@=$p3x%U`Di-!e4;rT_{u2uU(GDlRq3scfHYFh1wQxi0+t8?nF3$!Y(E;dvtE*g>x zP~UE!cCvEv$+LcS5blt}%43wL1siTd)sJ*_l*UHePAg`AC^BBNQ=umON zT89^@WumnW3W11vmSS{qwMzTB?o8ZU8&M+>o59pjeUAHP$L}H|mjO_W01YX7?+v z)HM&I6VAmE;vLR|Yo?uKbhi*=WE5Vv8UU`l(IbTYTNR@#b$Ak-4NbVK#i0TB3BAmr z*t1gCjuO~5^#h+n>R0d9=-8QMCK$a(X-!YDb)ldCLFfnS)~B&6LbVo}2<|ZczQ?a4 zP)are$0HLp&0-@z&@(m&V9UD{K@*j(`}jwBV`B#%bBEZ;1Q*5`dQRUSbY9-x3$&vU z^Oy^!1R45Kht9R5A3)H2!hM~B1ZfoqSRh%ZYI@_|rY0wMiP!a~F|k6jnek{N9l{60 zhGTV;@}b+ggyJLB_n&z3GmC;njz-5OsF)oMM73Ow02NmY2DVnf3|H){E=$Dii@bd? zg`ch(E3a<{+EGV5qhflLk7}Wdg7^oarYs$G&;gqQtl6cVdb=(}IlXM}_v8*fXg>66 zrOZac?z#Ec86XxHXCy#+_tu2S_&_7)iAnAYsizhtvW2fHC&LAm44tdke`-^ z$+J|f1;1z4@KbW5;>-Q0_Ow}tiWRGD)^~M15m&0+vR)cyI5!(ZnV68O&)dsGe2in7&Bs>q&Q- zRWF3rT0R%iaGOnDu^y&sJ2&?$?0o6_Q>Dz1W_x=FowhvbN9Z&xWO8CiXG~|s)Jg7c zYki~&a<6OI;qdm4CjwK2qjNx~gr_g)%7*cL@OEBOc?V}J@jV869|^9u&5g~9{*|~+ zNwLwhx7g_Ut=XjTlxMRsgr+QWjU2>Ov>Hx~i+-cE&u>t!{Ud=QH#eJ^d3}O2>0COx zGJav&U)%4$O140A7VDR1_<=keI^(gf(c zpem!b#eUGT%CeJcU<$ulvEjiSuDuQ={MlAY4$s+c=Wx?JO{X6$uArwW7ppxv)k;y5 zpPipk8Ys>gVyEOk8VM3>J0+aUzay5Be(C9I(c~BQiUt=M>y*XcZ++aK)R-w5`fB)U z6#YZO(;UX3*$mo!>Cl&wq`sEk5;bAm%yzP&=)2{(blB`kx^asSB=bwGo3#rV4A-2xrr`O zGQnM=v&Vj>4y`KQcm@q5*Szc+n$#9puRi=5{j2kB-_+b|tTSbPjuXK{#rrC>5g}EG zW+NGjvkG3^X_6xcdK??MDz?YH(5mXR5ZUhh4M<&0EG*EZm0@3gV)q#7yp8;hdiCewRzrbND*pl zbJuCxUF*`BytGB{CQlB_X~&-*F}SD!TH*?(+Q}P%V%o5`PrYtbL-7wD!xBtV(;T7` z1n0yP!i8d~=Yk7e6mzk){dcU`!Vhn4yY?-Sw(V}W^GXW~yHBrMEPJ5yzNm>e^Oq_? zSv5cQ9$HIOtYe(P8b?Hqa`c=wY0gh6s0#0v64cOe_HAg}gV4X%a(ZapSszD-H%qY| zji^hSFpZWSuSa$s`<}OK$x}t%?tnOBerc6X8nZ+a6{D}@Y-uSiEtSW%^j{1!ZC|e} zPDZcFLN)fN+>J{9<%!8vbr)y7QOip^a{|w=XesMjj|;6$R1;h(_Uq4c2rgl~-O&qo zjfdD@?bo+V3AkA|o)KnPmmjk_zHJA!fG5=On_!Tx>~hKVCT#GRifH(>cJAi3fjy;N zDOnA#q=_4a2cE$B{Nq8TZ$LfisxsC;x^rbz>v^H){0jykZy}iP{q>+PrZyYFfqvs^ z^HY-_mpbW^bbA}mAJ#gqj91xn4X}w@z z)zM43hhFTrS8Z_%6HU3GuAn^GQ!yfO!`wI};#n@}a4#|8)8M+9`U*>3d%E9|y6+>anppyQdAG9MY#y{EimH z^;pFsTx4K_+`@=?v_EhJ)$7VG>A_?kv10rg5%wG{^L*rno(We;vKJr5vn$}f(+Dir zHm>M;`bZ@Vm^@OIP)dd30{*QPCo9XkC1$os8E9*)J2Mcj%-wIcTW3eB&dy^GDgMx} zk57N)pPT9c8OWg~DwLLtY^}DKZL6G2yVZZRTQT^6yoE#GN{Tzb@J_x3Gu@D9oyA4l z>XoS5RP^RWyr1?{nq?ML$@^G?7Kh6;O;KuIu1xPs0oS(jvrsX@_;H2=Ieb(yR>HVJ z1hf9~$-cJ3fza-Qan_q+;-T|1@dXvF#ER*Wy@~?G1`@#V<8cg_AR;K!P$_!ITNyde zrXv*}$-6fdfXRcG%Z2URjWj6JNn&VNmX9HR8h)$kLtt;D`2Rs-LFu540GFy9(pdXb(b74N1==Y zy^1_oW%T1&d@;v`{T17DP2`JWrBo6PTlcItAAD7n=)8e+63!_ZZM8&?ZVv0lgk8xQ zMSAo4;}Kf#-uk^CEfS)KsnRKvt9K!bmCSvokA303oL`ul+dHJq?ORtxNJvWWXbA5e7jTg9aB-ixS9-G3E{@(g@^B3ye_ft-1>&M>vgrHg zshy88J_pa#e2_%j-TZbJ=;XmG^C~MqP>(u&NrutB3hZpwRuSmx{;vLw z+m5{R=l4imQax8^5^|#!B|UsO#`Rs^aO#tG106z;v@P^Vz^!0z=hsK={EAjGZD*8| zQvNx4LLs>*_-3&2=GNaSG~zwxU~enh0QqXAex?kS8pLiA9%`^h&Y#-1_$mBq11qHKRLJmL+1o?0u(2v0~M+{d~Bj60WIl>K3K~p$Zpg&{J z5iWS}h=U95NFa?wN9?kIn+eGf0Tbi{a3M2@#Ul&N5p%p`$d)am5b!w&KhPXuDGLa9 zryPJ=vAG}|Z$v=SFgQG%NHW3@jBzB=PB<2gF+rhCP#9w*hCs%l$yh9W;e&vpap}Hf zXKUMqSkRq0!k^FQkWnasKwu;=Hez%AP#6-4ghFFcSS%7kAbDXdJ|IN0cv}}4tU(@) z%i!=CY!+O`2>7r=_~r;m>3j-Ij+~aoTPPD$Fq9DBpfE;gSxR$2I!%t_gm8oAg41az zFbHIVEItpyV&qtkKbz0y`Lq86wfym40zjpuP~gB$W~ks;Ip|dYdtRV5 zzz59{STq)c#9)zVtP2K1#$w2L%nme$j7HBxDQr5!H|&E@92rOa3ly3gI=}}$3Z~P@ zzHBZNfU;&V0Y4DMVfi88@>-Iu*gWUp?S|XiSP?KJ z0s)CN!pzB~P{{Ty9v@)QKznO*1XLj-27^upFc<ag?Q*bND>Zhf}~@JI2?gy;^TuS z%4UCVoXC3^JgCuO3%ltc7`$KwG2n9(L(RplNz5w8YmVQv}{@y5}{!<1#AoRcM|9kzM7xqE@?~m^Pt$(3FG=G5Q2SNuf z3L(n~B|Dnt+k;x#xw&WW9b=1d=xmgk@&ihxW1kI`Ik$DwFosmM+4! z!I#lN=X(@uMy_uv;V+kk`;eD586$G=Ys#8YgE?-0pH}^dexg zRowVR0=L&9&%k|?uZHq}|8iq-)(z%rwY|#Bf-g+>dS3bIQ+=e;?sXZJj;}O!8xFn| z3nnD(6ZTajj`$5ClTP*O<=t5VH_?}^% zp3SAVS06|(ZysHf6yJ2W-N(u4+5@AvXK#~B);TrL719VQ_P_eQU$mOZX9qd7lTR2To;F|dVn>iExDAuBBW_S z-S~Ul&WTUre=fxvC+uLUYt+IDGN_XU9G9ji$18kh_7}YDP_dTU0(Ma4T4j3Cu7va1aAxBzIqa!Ht2C8+}rZvp%E?yog8OL7_H~L0vI31|$i^5bNN*NAH z&dkvHeq;aGiWlQCZdrBxM9)(bQw~}KDUQO9^QB<7=R|pnWd=t2CHLmY#nO_7qOHpS z8(4rFn<&KRzAQAqDYP0J8a}ty$eZ@W{`+YjP5blKOE+?M{j!gGnUkmGVvwzqmHrmO1vgay-{F+tlf7EUd4hXZUEV^)qdo^(SC`sW!z^ zqFqI|2Q|g-tjhPD@UL<0Aq*@R#YGL|o>HM+7~inFz07;2F#Fd>9@#&a(L($?&qSuG zmDKg08zz?8sEWQ^){&AQrk*-Db4+6`L}) z3oI3xA7S3!-2JjwEjH3L2oa+FCRrfXQW&=08`4nDthkyaxKZJ$e=V$OR(nl+XxxtK zysrYd&VgxH)rigU!}#L@r5S0<7tOC?FI8sm?*0DxnKs62tSPDQvt!=UT*sq!J7!l) zf-hZk#ZGnB7ztaFO%l^eMgyLs{X@CqT73no)RwqeoeOI>v6Y53+A+}=f&x1NVP)IL z&fJ?m{cRaaB|Y;iGHb+R#g0B*@=o1xmeMeu;&}jGT0Bs&$;-8INUf3$gRy_pD@x`y z_;RdNGtIW^PE@aEuDaLh9@mEa$n=tvYb5pqw#_j0sd|CMnbR)K z4Hcs?!N-V(kIauayz*>pZ3J6}p9c^X#lXOHj^gAKyBQ$wdheB&&m`+hl5|Yg9XwDA zvr0FW=#G}vtf4BQgtcp^(wNOxI#(>3VwtI^B3qp^=K&u#m;cox6{4S`&|5+z#~u4C zzZ|!ENvuWOz9kyvxT8yzZd=G|36W6lu^{QA%<}roGszWfSQ20nCr^5znsS^x>3PRL zaZ9ECTP_Q2`O{;5;iJs*axU~wu3$0grS18ji}P<%m*%qA_>VA4g8R%v-K)xrZQil0 zjz0MOPoj;di5fzZql%Ob#U-lIm}lINGkv{$-HK?K`zSXH+M_Gc-ri zo#3`NWBPu4KYjMtvQEn9;_D|*H`s0OyL*zbK`6qtJAJ-(sDC;8YUfO1f%PiWm#bd6 zw$G+=rTR*eTi&yApS)bvq(TU?y3@D{o4yMiNSG#hvEq7eNzcT z+k7XLD{n;PQPMR5=uhkT+?8$9VwHQ}jQ8sd>8H*-q7op{$Hk;5KwYLmm` zYZ~{$1OE6{{G)cl4spX9ov^PCyEWBn4-Gy!a`%Qb18+*Icl^D+yG1Zs$;1*KN z*$<(8Wet-GM(sclN_{=mVKw(&~t)M4U1oFv<&G-7CM>f6ZjLr&H0 z(;b<=R{48{MSA-hTra=1^}DsbT3gI^_Ez6sDgW(AQ&(l{CarX#S_V%evQRZda5^gH+xuxA)9e#O@7}C} zraxXQZ5JB65XBSwkeOO~J-c_lK-(z~?{pk|J?VZsMsPKUS=s%`X&s4;UdQIFAKnZ< zQxw;fy;0mDG-zv0In-DCNb0rD?c}q=SHk_gr$vWqVkT0|sqR_TzZBlSGBztrRj#@f z@5Y>3rXenk?SERIHa1~U=NJ2|y7g2grTA+TV>1P+luC)LcL>i}7eIYS3jTpJb?{c( zWjA8*HPbKEqhQDS@FG|-^cweRI@`Z5?w`T6*4xf?WbgU<(+eBp)6@); z6Nr_H!p>rEN0H{IB&{>s-x@qjVp~ne9)^9R1~tmLUQ=80 zG)=cK?)L-AZM?|5GR@-?-?@2=seS`fJNJUQb2QSmd*#!F)%-2}zmz7<4iPocWL1et z^&97EdREjrx@GMdclT!O6tbiDp{}ZO(X1k_ZOe^3y}Ak6-yZfh4%Yd*zl!-6&98o0 literal 0 HcmV?d00001 diff --git a/mtkclient/gui/images/phone_loading.png b/mtkclient/gui/images/phone_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..c57f55f51b4a45f364cc11b458d77733ee7344db GIT binary patch literal 2560 zcmV+b3jg(qP)IDn94~;028F0TTr(mVy|e5e+F%7Sw1#6N?X`qGF>b;03`}D7K32 z`FvQNoUh-RZ)UGGYi{4{UotQ4*=yF`>p%OO*_XAU8_WPbrUY5FQ~t zK({Jvl`Vipz~57B`~mnh@Ir;H&a)o45ja40fDRJguw@J2y*aiH0e1keQrPSii-7k5 z526dwmO%Su3t+dx?w+HzPf*w&c}@bJK_8^Y2z!w&QvhcfZ1<2Jp>~?`74RHzr=i^G zz&XyoXt}~z?siu%j5I|60AE9%3@z3GcyKcE`>*9O;D^q>m}rs!ehd86Q0_cnwX-jw zT#Sf7i&gCIG)VveHyO%I0GD|?5{PBE_#h4W{fFiW;2z+whH@VU7CZZr$D4sO4CTHJ z?05FXOw$DLKVX}o+%)iZXJ7KT+*s}wS1$@urT~@$A2gKP3LG|+vj)V%X~6l0at{Fy zJNr_IvIH;<+z)&c_>8jbQ6YlUKnEaGar>1JC zd!7S9lfV-Odrtw!>zbi`qy^t1f-&HCL+oT-2arjmK|BTU4uh>8aJ{1btt2b>77=X8 zu{G?vGR2ms03I;dIs&Xw)V(si=BuZXhB-6fZ$FF7o#$~1($$`*^kp~jhJk-uhJLVU z7I=E#-_{`mR@!#E4;io;NkX1{Yfo^i!e%ndw#1=M!&nTw6W#1z4|rRNKGljP_!<$s zGRMY$kd;E4yegz%Bl1oE?;IcZ(!B8&7m5U5BZ8l&l=~yH(q@@kZR|`TJ*}2QT*Ul~)Gnk8p75=T3*$&nv;!H@OnRv4I-M$$abP<>BFO3qjz?D8 zYG2~&WHs2qKIlOPoAJ@QI3jk2vAc6C9+TPr8T`MMMyTKO$H} z5Q9HrXhaZ$Kca+)AO^p|oPez8IlF+3ED^-uH=IkE57wi=Rmc`DEomZ%!EXV-VBu5y zEHVQYGVk9{zX)RRTfpnce|g&jTuAuh$Z| zs&+i$Pw4KK!Rr9BVIndj$^BH=^$2CH1;9vP>a4my*>y z|E0bo^8k1;vNdd$W0x8IvMz^4oU6#r#b8b4t7ao`2k?A`L$9gAk&Y3vGy552JO3Hp zH$NF!Jsf&at2^;=q~TV|Dnu0nDe{NH#-8nv``atn;+pDj|DI1gI&Q* z&J`F3KICk(D@@^=xEtVZ;GbE4Foqlu<)yeobl?c}5*Zw3FB*@a0lKUq$I$Bu=#?pNlm&*{U$S9~muNQ>0cA z6QQYm_W>tr3~$IW*h7wun^72^0JZ^d(KymE)&iFq%Dn*j>E26vtiEh8bvTq68xln ziijX#4f4`>r`5n>>=F!-J#sFkeXM-d3ag5P=(gap6qBFGDVYek?5 zepf{h8vNFYz!Lnfi9j3t)`*};@Vg=cYw#N{f(hU|6bpV*!BIYK?5p^+(Z{QHJPVH} zztQS;WaQeastPq`8CqGHqsBD- zRuO~-KV(|EN3|=EPDLih{uJn2-u{RpBB(X^30e_oez$H>*zF!V;w~j{>hadas0Kz-pzPSr#6DvmV){ zt8KS?f%9|zW&+rbyz}I-AJ_~$tn{N)@_GX88>@A3>PJ&-%^2(qJ4@-u23v;-+aD3q z6EvdRAI2~dSUy*Nonj~N8g^{GrvTnCmN zLw=gH_WnWmvASs@XhrZ75)oJjDy&=7hOJff6ac_=M*rTUXoG$cv?}-srveul%31fr zXB}JbEdZ;JKM8Dugh`}V+n_AhYOclhbY&e|?=1k3LozLXo)yprmC>{W4wJy8hH_6K zX;iAjx{5j05v>wz~J%H0S2+1Hg|wj=xUv|NebC~P5`B!DZhHHvpq3l0B5mcnVVirt+i z3E&iDidVy4;0Go6qCqRb!^jKk{t|p?Ju8rD-6skAq{>Wq)JGYgf&Kg}z+RHDah1Yu zXX#H?Ijli7*+|P4z=auh_8k5HLMdCj%&>H|!`9oSQMLdUb8N5mEV7p2Oofd|4of*U zVYMbBdD#L0_!6=fp|Z5?U1bb-y|PRd0tlVyYZOiT3J9f#ymU2lLli@Tw;-xY=AVf2)02sSy~e;k^&-RAqi68hB!2h2sVwl zu-NXl;E)*=fe;i#Q9%$z8xh0|C<+RM#TCV=AkymC%b6eZYjRFb-Fol7@B8k3_uZ;f z>3+UTObo3JQ7Dv&kGDqva+RY{S}6T#h;>13{}QPfl0nW+@u&TgNJopgmH$M2!H^Rff!g2E0i)}7wiNs6R|bJcr0eZMHb_Nb<+@H zLRo$ocaa3bI66=PE|KDhp)nkYR5FFZScoAJh;%%Gjwg}tG7tuYQoDBu9*~qP z;frN_kr1On1S3T8G8ZhO^lbY?nvG##=CMF7U#N*={(Gw+ z4^RfVU`YfL5g?KP0x5_{WRi$XM#QQecavsB%(-uEHWVtSh5)76Wz`2%?+w<&BIUm;@s9cnqWDV@I?JYu&+>0`XxYq6K- zdN(Z-gZ)9e^DVG)>qIj@PUg*)k!1sp-2~MYmuH<7(g&5#QwuM-{LC0Bc;HO7$j!~Q z5FR~pq(_}@Hh1H-^oO#(j+U_Iwr2nPKZPzlQdCq_zaZQDUTV|HXo}(&X|Y0~m~Xp% zQ+F!4b$nJ;X!yhP@sSM%^WYJ$*FV=eA0o~)(cx6p+BRp%mPMH#R{^Nu(_X9O#Iui_ zI=e4!A1rG=(U8)rGbDYztuNr%jg8^zKF=4+j!rL7#p9CnHXiu-=Ci$BH=)IcIXeWa zQ(7|~1{`RNS6cTwB@xGUX2Tn9r5=rE#9gvbUgiz|Sl4dkrGBXo1Gd{|QqSdk&+cr^ z5Tk!k0p~zrp!WEsFF5lpZpGECd~6fydU3kpx%{PvpZa&F(B?Uc-QXu%-k7XcnfO^9 zn1fda&)l_k2CQxIdg0l2GkLtUPFDxkPR!2UV79C3k*&53tgRgTwdZ_{Nn1IyxcSzt zUywB1xOHoHUVeVy^1aUf?d|O)5Ra#$oK_+04M<{j)L*%>&Dz#BxV3~G$YQas4-7|G zcBxF2!U08NV`JaIoys*aF%2t@w`E)D!i7gGE8ABn+rq-a{H^eu9cAlj33nB%VD?ur zk9&Ll(P;GE1EnJmui2@sdC}3A0+nkmEiJF3^Hz56kpHW6+T~2kqSL3TuL-ZdiHX{< zfjuY3N6p-}Z&+JiIP&0XW$Bph ztk&;*MOw6oBU3gsGE?$1vUHo_oxaJ6!ejik}k~L zoB&p&<}~b(RO1>qRk)m7;#afs989kKA}1%OuctA;_d+g}HA7u*ijx`w08k{C@{p(t(o%%q(cx6j;V9;Dvs$Ll$GBW|;mQb(!M#ltm5oa7X%ccyy6 zoTnLmYfd=)x%uTsE>qZ_eTcIwd6Mee>JJ&F01Q6jo&wPNP|9xrAFKV3a3&W{aZfVO znG9b&#XTAI|HV&a?0=W}LEA76CwR-2Eq%lH8y4g)t;lORx*V7DARqVS$&;e0D)ybT zn`SESZw*;{p|g{-V&%$5OoG!tL$5@~b($x}Ed+qgWd-UIxx5(ZPgk2?riT3FJ^RM1 zSI%&Qu6&0+r}l}F{LudWTFU#$36YU?R^=PJa*d6RlWC7(Ij72csS;_ODibFTo{4g+ zMrV4}pw}wrF5hcBhhqS{XN8#3!1L&Ik7{Ie{<5xw82a?ZRwXKqaCcFCMWjSiKV;x zfcEFl%aQYs<10^eKOG(2@woqXp;N-L@uyZP30Hc%wq<7Kj*6T5`ic}AUn`<)^yO;9 z+dVyzjzpsWb$14v&9=X)+N0{1Dd@uuwFJwG($d40R#rDhM`embVw}6XJJJlUmX1Dq zR($Q6f9Z)6Uv7=_Zlf4GK$be9+(4y7ot+w`E&xXt+evQ>n|7It;^Uv}Q@KPA|4Mgu zHV#r-78qGM%*ge%7H#lku^K@$WxzV0F@xi(Mw+CV))o&a!-Io@gX;&J1fP{xR-%y! zr=z}wB$t0IvMQr??(V((o$1_U-NAgxKnH_n|4?}LT=BPQS6M?#TV__Po>-U6w#;~~ zHk6l+jdy#A0+;HCQPe4|S?lYXP6b_>_tj~^$vyCP#m$0U?gg@0^;Ma{1Mp!Rd$w*% zZP>4F{r60j3K@NMlDOff-p-6|>z)l%S%0l1g6&Qk1~BXM8g&1bAKkwt&*3Z6f$Et4 zGp;Wj9YRfq#&XQT?Va&vdpO~>ng?}nTBnJ#dKz#oTDD@W<1CI-y#9HR>vKT8nYOxe zpsX!8K~-9x7G9&*iK-Da-KWgu7>RMH8g#M*l+X@Vc9klohkT>oi9N?o_rRtZ*5Q2Y zbJ9k!9iL(03{-;qgW9U~1L-tv@$?xrj~--=*_S8&EBAc&P}#A~HII--9`Z8La1r9b zWYaj;zF3r*(l*}Ww&76d=Nu#T+?Rw_BVV;5%>G_qw<3$yZ9nisleu?I45=6sa;A+I zwYRJEpw$B)#x_C+c?IGf_jk>|ePtH2KwuM?8q$to>uHI z9?BgLd-IC@=5e#@o11%D!t_KBv(Nm9*U27S(LARne0cs{*m*qHs%cy=qXVDacU#L& Q^J&1x)7PV9@#>U+1N(RU=l}o! literal 0 HcmV?d00001 diff --git a/mtkclient/gui/images/phone_success.png b/mtkclient/gui/images/phone_success.png new file mode 100644 index 0000000000000000000000000000000000000000..da0cbf22359c3aa6c01d443bccc98b06f18a5a43 GIT binary patch literal 6857 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