mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
tools/idf_monitor: automatically decode UART core dumps
This adds detection of UART core dumps to IDF monitor. By default, core dumps are not printed to the console, but are processed by espcoredump.py using 'info_corefile' command. The result is printed to stdout. This feature can be disabled in menuconfig. In the future this can be extended to allow running espcoredump.py with 'dbg_corefile' argument, which is similar to the current GDB Stub behavior. Related to IDF-52.
This commit is contained in:
parent
605da33c3d
commit
25041ba583
@ -28,10 +28,8 @@ menu "Core dump"
|
||||
Select the data format for core dump.
|
||||
config ESP32_COREDUMP_DATA_FORMAT_BIN
|
||||
bool "Binary format"
|
||||
select ESP32_ENABLE_COREDUMP
|
||||
config ESP32_COREDUMP_DATA_FORMAT_ELF
|
||||
bool "ELF format"
|
||||
select ESP32_ENABLE_COREDUMP
|
||||
endchoice
|
||||
|
||||
choice ESP32_COREDUMP_CHECKSUM
|
||||
@ -42,10 +40,8 @@ menu "Core dump"
|
||||
Select the integrity check for the core dump.
|
||||
config ESP32_COREDUMP_CHECKSUM_CRC32
|
||||
bool "Use CRC32 for integrity verification"
|
||||
select ESP32_ENABLE_COREDUMP
|
||||
config ESP32_COREDUMP_CHECKSUM_SHA256
|
||||
bool "Use SHA256 for integrity verification"
|
||||
select ESP32_ENABLE_COREDUMP
|
||||
depends on ESP32_COREDUMP_DATA_FORMAT_ELF
|
||||
endchoice
|
||||
|
||||
@ -80,5 +76,19 @@ menu "Core dump"
|
||||
To ensure that core dump itself will not overflow task/ISR stack set this to the value above 800.
|
||||
NOTE: It eats DRAM.
|
||||
|
||||
choice ESP32_CORE_DUMP_DECODE
|
||||
prompt "Handling of UART core dumps in IDF Monitor"
|
||||
depends on ESP32_ENABLE_COREDUMP_TO_UART
|
||||
config ESP32_CORE_DUMP_DECODE_INFO
|
||||
bool "Decode and show summary (info_corefile)"
|
||||
config ESP32_CORE_DUMP_DECODE_DISABLE
|
||||
bool "Don't decode"
|
||||
endchoice
|
||||
|
||||
config ESP32_CORE_DUMP_DECODE
|
||||
string
|
||||
default "disable" if ESP32_CORE_DUMP_DECODE_DISABLE
|
||||
default "info" if ESP32_CORE_DUMP_DECODE_INFO
|
||||
|
||||
endmenu
|
||||
|
||||
|
@ -134,7 +134,12 @@ simple_monitor: $(call prereq_if_explicit,%flash) | check_python_dependencies
|
||||
|
||||
PRINT_FILTER ?=
|
||||
|
||||
MONITOR_OPTS := --baud $(MONITORBAUD) --port $(ESPPORT) --toolchain-prefix $(CONFIG_SDK_TOOLPREFIX) --make "$(MAKE)" --print_filter "$(PRINT_FILTER)"
|
||||
MONITOR_CORE_DUMP_DECODE ?=
|
||||
ifdef CONFIG_ESP32_CORE_DUMP_DECODE
|
||||
MONITOR_CORE_DUMP_DECODE = --decode-coredumps $(CONFIG_ESP32_CORE_DUMP_DECODE)
|
||||
endif
|
||||
|
||||
MONITOR_OPTS := --baud $(MONITORBAUD) --port $(ESPPORT) --toolchain-prefix $(CONFIG_SDK_TOOLPREFIX) --make "$(MAKE)" --print_filter "$(PRINT_FILTER)" $(MONITOR_CORE_DUMP_DECODE)
|
||||
|
||||
monitor: $(call prereq_if_explicit,%flash) | check_python_dependencies
|
||||
$(summary) MONITOR
|
||||
|
@ -6,6 +6,8 @@
|
||||
# - Run flash build target to rebuild and flash entire project (Ctrl-T Ctrl-F)
|
||||
# - Run app-flash build target to rebuild and flash app only (Ctrl-T Ctrl-A)
|
||||
# - If gdbstub output is detected, gdb is automatically loaded
|
||||
# - If core dump output is detected, it is converted to a human-readable report
|
||||
# by espcoredump.py.
|
||||
#
|
||||
# Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
||||
#
|
||||
@ -54,6 +56,7 @@ import types
|
||||
from distutils.version import StrictVersion
|
||||
from io import open
|
||||
import textwrap
|
||||
import tempfile
|
||||
|
||||
key_description = miniterm.key_description
|
||||
|
||||
@ -85,17 +88,17 @@ ANSI_YELLOW = '\033[0;33m'
|
||||
ANSI_NORMAL = '\033[0m'
|
||||
|
||||
|
||||
def color_print(message, color):
|
||||
def color_print(message, color, newline='\n'):
|
||||
""" Print a message to stderr with colored highlighting """
|
||||
sys.stderr.write("%s%s%s\n" % (color, message, ANSI_NORMAL))
|
||||
sys.stderr.write("%s%s%s%s" % (color, message, ANSI_NORMAL, newline))
|
||||
|
||||
|
||||
def yellow_print(message):
|
||||
color_print(message, ANSI_YELLOW)
|
||||
def yellow_print(message, newline='\n'):
|
||||
color_print(message, ANSI_YELLOW, newline)
|
||||
|
||||
|
||||
def red_print(message):
|
||||
color_print(message, ANSI_RED)
|
||||
def red_print(message, newline='\n'):
|
||||
color_print(message, ANSI_RED, newline)
|
||||
|
||||
|
||||
__version__ = "1.1"
|
||||
@ -113,6 +116,20 @@ DEFAULT_TOOLCHAIN_PREFIX = "xtensa-esp32-elf-"
|
||||
|
||||
DEFAULT_PRINT_FILTER = ""
|
||||
|
||||
# coredump related messages
|
||||
COREDUMP_UART_START = b"================= CORE DUMP START ================="
|
||||
COREDUMP_UART_END = b"================= CORE DUMP END ================="
|
||||
COREDUMP_UART_PROMPT = b"Press Enter to print core dump to UART..."
|
||||
|
||||
# coredump states
|
||||
COREDUMP_IDLE = 0
|
||||
COREDUMP_READING = 1
|
||||
COREDUMP_DONE = 2
|
||||
|
||||
# coredump decoding options
|
||||
COREDUMP_DECODE_DISABLE = "disable"
|
||||
COREDUMP_DECODE_INFO = "info"
|
||||
|
||||
|
||||
class StoppableThread(object):
|
||||
"""
|
||||
@ -442,7 +459,8 @@ class Monitor(object):
|
||||
|
||||
Main difference is that all event processing happens in the main thread, not the worker threads.
|
||||
"""
|
||||
def __init__(self, serial_instance, elf_file, print_filter, make="make", toolchain_prefix=DEFAULT_TOOLCHAIN_PREFIX, eol="CRLF"):
|
||||
def __init__(self, serial_instance, elf_file, print_filter, make="make", toolchain_prefix=DEFAULT_TOOLCHAIN_PREFIX, eol="CRLF",
|
||||
decode_coredumps=COREDUMP_DECODE_INFO):
|
||||
super(Monitor, self).__init__()
|
||||
self.event_queue = queue.Queue()
|
||||
self.cmd_queue = queue.Queue()
|
||||
@ -484,6 +502,9 @@ class Monitor(object):
|
||||
self._output_enabled = True
|
||||
self._serial_check_exit = socket_mode
|
||||
self._log_file = None
|
||||
self._decode_coredumps = decode_coredumps
|
||||
self._reading_coredump = COREDUMP_IDLE
|
||||
self._coredump_buffer = b""
|
||||
|
||||
def invoke_processing_last_line(self):
|
||||
self.event_queue.put((TAG_SERIAL_FLUSH, b''), False)
|
||||
@ -553,9 +574,11 @@ class Monitor(object):
|
||||
if line != b"":
|
||||
if self._serial_check_exit and line == self.console_parser.exit_key.encode('latin-1'):
|
||||
raise SerialStopException()
|
||||
self.check_coredump_trigger_before_print(line)
|
||||
if self._force_line_print or self._line_matcher.match(line.decode(errors="ignore")):
|
||||
self._print(line + b'\n')
|
||||
self.handle_possible_pc_address_in_line(line)
|
||||
self.check_coredump_trigger_after_print(line)
|
||||
self.check_gdbstub_trigger(line)
|
||||
self._force_line_print = False
|
||||
# Now we have the last part (incomplete line) in _last_line_part. By
|
||||
@ -659,6 +682,83 @@ class Monitor(object):
|
||||
else:
|
||||
red_print("Malformed gdb message... calculated checksum %02x received %02x" % (chsum, calc_chsum))
|
||||
|
||||
def check_coredump_trigger_before_print(self, line):
|
||||
if self._decode_coredumps == COREDUMP_DECODE_DISABLE:
|
||||
return
|
||||
|
||||
if COREDUMP_UART_PROMPT in line:
|
||||
yellow_print("Initiating core dump!")
|
||||
self.event_queue.put((TAG_KEY, '\n'))
|
||||
return
|
||||
|
||||
if COREDUMP_UART_START in line:
|
||||
yellow_print("Core dump started (further output muted)")
|
||||
self._reading_coredump = COREDUMP_READING
|
||||
self._coredump_buffer = b""
|
||||
self._output_enabled = False
|
||||
return
|
||||
|
||||
if COREDUMP_UART_END in line:
|
||||
self._reading_coredump = COREDUMP_DONE
|
||||
yellow_print("\nCore dump finished!")
|
||||
self.process_coredump()
|
||||
return
|
||||
|
||||
if self._reading_coredump == COREDUMP_READING:
|
||||
kb = 1024
|
||||
buffer_len_kb = len(self._coredump_buffer) // kb
|
||||
self._coredump_buffer += line.replace(b'\r', b'') + b'\n'
|
||||
new_buffer_len_kb = len(self._coredump_buffer) // kb
|
||||
if new_buffer_len_kb > buffer_len_kb:
|
||||
yellow_print("Received %3d kB..." % (new_buffer_len_kb), newline='\r')
|
||||
|
||||
def check_coredump_trigger_after_print(self, line):
|
||||
if self._decode_coredumps == COREDUMP_DECODE_DISABLE:
|
||||
return
|
||||
|
||||
# Re-enable output after the last line of core dump has been consumed
|
||||
if not self._output_enabled and self._reading_coredump == COREDUMP_DONE:
|
||||
self._reading_coredump = COREDUMP_IDLE
|
||||
self._output_enabled = True
|
||||
self._coredump_buffer = b""
|
||||
|
||||
def process_coredump(self):
|
||||
if self._decode_coredumps != COREDUMP_DECODE_INFO:
|
||||
raise NotImplementedError("process_coredump: %s not implemented" % self._decode_coredumps)
|
||||
|
||||
coredump_script = os.path.join(os.path.dirname(__file__), "..", "components", "espcoredump", "espcoredump.py")
|
||||
coredump_file = None
|
||||
try:
|
||||
# On Windows, the temporary file can't be read unless it is closed.
|
||||
# Set delete=False and delete the file manually later.
|
||||
with tempfile.NamedTemporaryFile(mode="wb", delete=False) as coredump_file:
|
||||
coredump_file.write(self._coredump_buffer)
|
||||
coredump_file.flush()
|
||||
|
||||
cmd = [sys.executable,
|
||||
coredump_script,
|
||||
"info_corefile",
|
||||
"--core", coredump_file.name,
|
||||
"--core-format", "b64",
|
||||
self.elf_file
|
||||
]
|
||||
output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
|
||||
self._output_enabled = True
|
||||
self._print(output)
|
||||
self._output_enabled = False # Will be reenabled in check_coredump_trigger_after_print
|
||||
except subprocess.CalledProcessError as e:
|
||||
yellow_print("Failed to run espcoredump script: {}\n\n".format(e))
|
||||
self._output_enabled = True
|
||||
self._print(COREDUMP_UART_START + b'\n')
|
||||
self._print(self._coredump_buffer)
|
||||
# end line will be printed in handle_serial_input
|
||||
finally:
|
||||
if coredump_file is not None:
|
||||
try:
|
||||
os.unlink(coredump_file.name)
|
||||
except OSError as e:
|
||||
yellow_print("Couldn't remote temporary core dump file ({})".format(e))
|
||||
|
||||
def run_gdb(self):
|
||||
with self: # disable console control
|
||||
sys.stderr.write(ANSI_NORMAL)
|
||||
@ -822,6 +922,13 @@ def main():
|
||||
help="Filtering string",
|
||||
default=DEFAULT_PRINT_FILTER)
|
||||
|
||||
parser.add_argument(
|
||||
'--decode-coredumps',
|
||||
choices=[COREDUMP_DECODE_INFO, COREDUMP_DECODE_DISABLE],
|
||||
default=COREDUMP_DECODE_INFO,
|
||||
help="Handling of core dumps found in serial output"
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.port.startswith("/dev/tty."):
|
||||
@ -847,7 +954,8 @@ def main():
|
||||
except KeyError:
|
||||
pass # not running a make jobserver
|
||||
|
||||
monitor = Monitor(serial_instance, args.elf_file.name, args.print_filter, args.make, args.toolchain_prefix, args.eol)
|
||||
monitor = Monitor(serial_instance, args.elf_file.name, args.print_filter, args.make, args.toolchain_prefix, args.eol,
|
||||
args.decode_coredumps)
|
||||
|
||||
yellow_print('--- idf_monitor on {p.name} {p.baudrate} ---'.format(
|
||||
p=serial_instance))
|
||||
|
@ -6,7 +6,7 @@ import click
|
||||
|
||||
from idf_py_actions.errors import FatalError
|
||||
from idf_py_actions.global_options import global_options
|
||||
from idf_py_actions.tools import ensure_build_directory, run_tool, run_target
|
||||
from idf_py_actions.tools import ensure_build_directory, run_tool, run_target, get_sdkconfig_value
|
||||
|
||||
PYTHON = sys.executable
|
||||
|
||||
@ -95,6 +95,10 @@ def action_extensions(base_actions, project_path):
|
||||
monitor_args += ["-b", monitor_baud]
|
||||
monitor_args += ["--toolchain-prefix", project_desc["monitor_toolprefix"]]
|
||||
|
||||
coredump_decode = get_sdkconfig_value(project_desc["config_file"], "CONFIG_ESP32_CORE_DUMP_DECODE")
|
||||
if coredump_decode is not None:
|
||||
monitor_args += ["--decode-coredumps", coredump_decode]
|
||||
|
||||
if print_filter is not None:
|
||||
monitor_args += ["--print_filter", print_filter]
|
||||
monitor_args += [elf_file]
|
||||
|
@ -38,6 +38,7 @@ test_list = (
|
||||
('in1.txt', '*:N', 'in1f3.txt', 60),
|
||||
('in2.txt', 'boot mdf_device_handle:I mesh:E vfs:I', 'in2f1.txt', 420),
|
||||
('in2.txt', 'vfs', 'in2f2.txt', 420),
|
||||
('core1.txt', '', 'core1_out.txt', 60),
|
||||
)
|
||||
|
||||
IN_DIR = 'tests/' # tests are in this directory
|
||||
|
344
tools/test_idf_monitor/tests/core1.txt
Normal file
344
tools/test_idf_monitor/tests/core1.txt
Normal file
@ -0,0 +1,344 @@
|
||||
|
||||
I (195) boot: Loaded app from partition at offset 0x10000
|
||||
I (195) boot: Disabling RNG early entropy source...
|
||||
I (196) cpu_start: Pro cpu up.
|
||||
I (200) cpu_start: Application information:
|
||||
I (205) cpu_start: Project name: hello-world
|
||||
I (210) cpu_start: App version: v4.2-dev-172-gc9cc694dbb-dirty
|
||||
I (217) cpu_start: Compile time: Feb 6 2020 17:57:45
|
||||
I (223) cpu_start: ELF file SHA256: 83cfeb53c9c00c61...
|
||||
I (229) cpu_start: ESP-IDF: v4.2-dev-172-gc9cc694dbb-dirty
|
||||
I (236) cpu_start: Starting app cpu, entry point is 0x40081010
|
||||
I (0) cpu_start: App cpu up.
|
||||
I (246) heap_init: Initializing. RAM available for dynamic allocation:
|
||||
I (253) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
|
||||
I (259) heap_init: At 3FFB3F58 len 0002C0A8 (176 KiB): DRAM
|
||||
I (265) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
|
||||
I (272) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
|
||||
I (278) heap_init: At 40089AC8 len 00016538 (89 KiB): IRAM
|
||||
I (284) cpu_start: Pro cpu start user code
|
||||
I (303) spi_flash: detected chip: generic
|
||||
I (303) spi_flash: flash io: dio
|
||||
W (303) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
|
||||
I (314) esp_core_dump_uart: Init core dump to UART
|
||||
I (319) cpu_start: Starting scheduler on PRO CPU.
|
||||
I (0) cpu_start: Starting scheduler on APP CPU.
|
||||
Guru Meditation Error: Core 0 panic'ed (StoreProhibited). Exception was unhandled.
|
||||
Core 0 register dump:
|
||||
PC : 0x400e37f7 PS : 0x00060430 A0 : 0x800d0c31 A1 : 0x3ffb5db0
|
||||
A2 : 0x00000001 A3 : 0x00000001 A4 : 0x00000001 A5 : 0x00060023
|
||||
A6 : 0x00000001 A7 : 0x00060023 A8 : 0x00000001 A9 : 0x00000000
|
||||
A10 : 0x7fffffff A11 : 0x8001f880 A12 : 0x06ff1ff8 A13 : 0x00000000
|
||||
A14 : 0x3ffb7d80 A15 : 0x00000000 SAR : 0x00000014 EXCCAUSE: 0x0000001d
|
||||
EXCVADDR: 0x00000001 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
|
||||
|
||||
ELF file SHA256: 83cfeb53c9c00c61c4e52674e43654e4b452b7592075920977e491e06a4488d8
|
||||
|
||||
Backtrace: 0x400e37f4:0x3ffb5db0 0x400d0c2e:0x3ffb5dd0 0x40087015:0x3ffb5df0
|
||||
|
||||
I (401) esp_core_dump_uart: Press Enter to print core dump to UART...
|
||||
Core Dump detected!
|
||||
I (434) esp_core_dump_uart: Print core dump to uart...
|
||||
I (434) esp_core_dump_elf: Found tasks: 8
|
||||
================= CORE DUMP START =================
|
||||
9C0AAAABAAAIAAAAXAEAAAAAAAA=
|
||||
f0VMRgEBAQAAAAAAAAAAAAQAXgABAAAAAAAAADQAAAAAAAAAAAAAADQAIAASACgA
|
||||
AAAAAA==
|
||||
BAAAAHQCAAAAAAAAAAAAAAATAAAAEwAABgAAAAAAAAA=
|
||||
AQAAAHQVAACAXvs/gF77P1wBAABcAQAABgAAAAAAAAA=
|
||||
AQAAANAWAADwXPs/8Fz7P4gBAACIAQAABgAAAAAAAAA=
|
||||
AQAAAFgYAABIbfs/SG37P1wBAABcAQAABgAAAAAAAAA=
|
||||
AQAAALQZAAAgbPs/IGz7PyABAAAgAQAABgAAAAAAAAA=
|
||||
AQAAANQaAADkZfs/5GX7P1wBAABcAQAABgAAAAAAAAA=
|
||||
AQAAADAcAACwZPs/sGT7PywBAAAsAQAABgAAAAAAAAA=
|
||||
AQAAAFwdAACgd/s/oHf7P1wBAABcAQAABgAAAAAAAAA=
|
||||
AQAAALgeAADQdfs/0HX7P8gBAADIAQAABgAAAAAAAAA=
|
||||
AQAAAIAgAADwS/s/8Ev7P1wBAABcAQAABgAAAAAAAAA=
|
||||
AQAAANwhAABASvs/QEr7P6gBAACoAQAABgAAAAAAAAA=
|
||||
AQAAAIQjAAC0+vo/tPr6P1wBAABcAQAABgAAAAAAAAA=
|
||||
AQAAAOAkAADg+Po/4Pj6P8wBAADMAQAABgAAAAAAAAA=
|
||||
AQAAAKwmAAB8R/s/fEf7P1wBAABcAQAABgAAAAAAAAA=
|
||||
AQAAAAgoAADQRfs/0EX7P6QBAACkAQAABgAAAAAAAAA=
|
||||
AQAAAKwpAACQ/fo/kP36P1wBAABcAQAABgAAAAAAAAA=
|
||||
AQAAAAgrAACwQfs/sEH7P8ABAADAAQAABgAAAAAAAAA=
|
||||
BAAAAMgsAAAAAAAAAAAAABQBAAAUAQAABgAAAAAAAAA=
|
||||
CAAAAEwCAAABAAAA
|
||||
Q09SRQAAAAA=
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgF77PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9zcOQCAEBgAAAAAAAAAAAAAAAAAUAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEMDYCwXfs/
|
||||
AQAAAAEAAAABAAAAIwAGAAEAAAAjAAYAAQAAAAAAAAD///9/gPgBgPgf/wYAAAAA
|
||||
gH37PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
CAAAAEwCAAABAAAA
|
||||
Q09SRQAAAAA=
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASG37PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEHAIQCAABQAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgbPs/
|
||||
AAAAAAAAAAAAAAAAAAAAAMCCCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
CAAAAEwCAAABAAAA
|
||||
Q09SRQAAAAA=
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5GX7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEHAIQCAABQAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwZfs/
|
||||
AAAAAAAAAAAAAAAAAAAAAMCCCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
CAAAAEwCAAABAAAA
|
||||
Q09SRQAAAAA=
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoHf7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxBIIQCAABgAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaYCICQdvs/
|
||||
AAAAAAAAAADwbvs/AAAAAAEAAAAjDgYAxBIIgHB2+z/cAPA/AQAAAAgA+z9gS/s/
|
||||
/AwNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
CAAAAEwCAAABAAAA
|
||||
Q09SRQAAAAA=
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8Ev7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxBIIQCAABgAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADuRCIAAS/s/
|
||||
AAAAAAEAAACE/fo/AAAAAAEAAAACAAAAxBIIgOBK+z/cAPA/AQAAAAgA+z8jAAYA
|
||||
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
CAAAAEwCAAABAAAA
|
||||
Q09SRQAAAAA=
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtPr6PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxBIIQCAABgAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB+CICg+fo/
|
||||
AAAAAAAAAAAQNfs/vDf7PwIAAADQN/s/xBIIgID5+j/cAPA/AQAAAAgA+z8jAAYA
|
||||
AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
CAAAAEwCAAABAAAA
|
||||
Q09SRQAAAAA=
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfEf7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEH4IQCACBgAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsaCICQRvs/
|
||||
mP/6PwAAAADg//o/AAAAAAEAAAABAAAAEH4IgHBG+z8BAAAABAAAABQ1+z8KAAAA
|
||||
AACAABwA9D8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
CAAAAEwCAAABAAAA
|
||||
Q09SRQAAAAA=
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkP36PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxBIIQCAOBgAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB+CIBwQvs/
|
||||
AAAAAAAAAAAQNfs/oDr+PwMAAAAjBQYAxBIIgFBC+z/cAPA/AQAAAAgA+z8jAAYA
|
||||
AQAAACMFBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
UF37PxBe+z+Ly+SRODP7Pzgz+z+AXvs/MDP7PxgAAACXBQ54SQvlZoBe+z8AAAAA
|
||||
AQAAAHxO+z9tYWluANFl1b9gbhUZORAAAAAAAHhe+z8BAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAALjo+j8g6fo/iOn6PwAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgdAEAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAk5ND
|
||||
776t3vc3DkAwBAYAMQwNgLBd+z8BAAAAAQAAAAEAAAAjAAYAAQAAACMABgABAAAA
|
||||
AAAAAP///3+A+AGA+B//BgAAAACAffs/AAAAABQAAAAdAAAAAQAAAAAAAAAAAAAA
|
||||
AAAAAPgf/wYAAAAAPB4IQAgL+z8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAABhwCIDQXfs/AAAAAAAAAAAYcAiA0F37PwAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAADwXfs/zAsNQAAAAAAjAAYAODP7P4Be+z8AAAAA
|
||||
AAAAABBe+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAcXvs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAA=
|
||||
IGz7P+Bs+z8qbFI9JDP7P+xl+z9Ibfs/HDP7PxkAAACM49VXeSoll0ht+z8AAAAA
|
||||
AAAAAERn+z9JRExFMQCFkbfvDgtV1KkAAQAAAEBt+z8AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAALjo+j8g6fo/iOn6PwAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgdAEAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAvl21
|
||||
oB4IQBBwCEAwAAUAAAAAAOBs+z8AAAAAAAAAAAAAAAAAAAAAwIIIQAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAADAbPs/wIIIQAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAOBs+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAADsbPs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
sGT7P3Bl+z/HSTugUG37PyQz+z/kZfs/HDP7PxkAAAA1aB3HlRMz9ORl+z8AAAAA
|
||||
AAAAAOBf+z9JRExFMAB5I/hhScYuItcAAAAAANxl+z8AAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAALjo+j8g6fo/iOn6PwAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgdAEAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAADuXO
|
||||
oB4IQBBwCEAwAAUAAAAAAHBl+z8AAAAAAAAAAAAAAAAAAAAAwIIIQAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAGgS+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAB8Zfs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAA
|
||||
0HX7PzB3+z8AAAAAEDP7PxAz+z+gd/s/CDP7PxgAAADUbvs/1G77P6B3+z/Mbvs/
|
||||
AQAAAJxv+z9UbXIgU3ZjAA1db2P9pUIAAAAAAJh3+z8BAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAALjo+j8g6fo/iOn6PwAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgdAEAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAFysf
|
||||
oB4IQMQSCEAwAAYABpgIgJB2+z8AAAAAAAAAAPBu+z8AAAAAAQAAACMOBgDEEgiA
|
||||
cHb7P9wA8D8BAAAACAD7P2BL+z/8DA1AAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA
|
||||
AAAAAKQgCEBgS/s/mHIIQCgk+z8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAKAeCEAQcAhAMAAFAAAAAADzmAiAsHb7Pxw1+z8AAAAA
|
||||
AAAAAOSYCEAAAAAAAAAAABhwCIDgdvs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAACMABgABAAAAIwAGAAAAAAAQd/s/5JgIQAAAAAABAAAAAAAAAAAAAAAAAAAA
|
||||
IwAGADgz+z+AXvs/AAAAAAAAAAAwd/s/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPHf7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
QEr7P4BL+z9GPj4tuDL7P7gy+z/wS/s/sDL7PxQAAABM4/eNY9P4VPBL+z8AAAAA
|
||||
BQAAAOxI+z9kcG9ydADgytnG+juR2iwAAAAAAOhL+z8FAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAALjo+j8g6fo/iOn6PwAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgdAEAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAGA9Z
|
||||
oB4IQMQSCEAwAAYAO5EIgABL+z8AAAAAAQAAAIT9+j8AAAAAAQAAAAIAAADEEgiA
|
||||
4Er7P9wA8D8BAAAACAD7PyMABgABAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA
|
||||
AAAAAKQgCEAjAAYAmHIIQHj4+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAD8DA1AAAAAAAAAAABcDQ2AIEv7P/BL+z8AAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAABhwCIBAS/s/AQAAAAAAABDwS/s/IwAGAAEAAAAjAAYA
|
||||
AAAAAGBL+z/8DA1AAAAAABoAAACIM/s/8Ev7PwAAAAAAAAAAgEv7PwAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIxL+z8AAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
4Pj6P0D6+j/c8+jFhEf7P5j9+j+0+vo/mDL7PwMAAACI6vo/iOr6P7T6+j+A6vo/
|
||||
FgAAALDq+j9lc3BfdGltZXIAmI0iFV0AAAAAAKz6+j8WAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAALjo+j8g6fo/iOn6PwAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgdAEAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAOT5O
|
||||
oB4IQMQSCEAwAAYAEH4IgKD5+j8AAAAAAAAAABA1+z+8N/s/AgAAANA3+z/EEgiA
|
||||
gPn6P9wA8D8BAAAACAD7PyMABgABAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA
|
||||
AAAAAKQgCEAjAAYAmHIIQDin+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAKAeCEAQcAhAMAAFAAAAAABLHw2AwPn6P1zq+j8AAAAA
|
||||
AAAAADgfDUAAAAAAAAAAABhwCIAA+vo/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
/////wAAAAAAAAAAAAAAAKTq+j8AAAAAAQAAACMOBgAAAAAAIPr6PzgfDUAAAAAA
|
||||
IwAGANw0+z+0+vo/AAAAAAAAAABA+vo/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATPr6PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||
0EX7PxBH+z8+sA1HoDL7P7z6+j98R/s/mDL7PwEAAADE//o/xP/6P3xH+z+8//o/
|
||||
GAAAAHhD+z9pcGMxAHSb12QdtYvfmTkAAQAAAHRH+z8YAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAALjo+j8g6fo/iOn6PwAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgdAEAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAjAAz
|
||||
oB4IQBB+CEAwAgYAKxoIgJBG+z+Y//o/AAAAAOD/+j8AAAAAAQAAAAEAAAAQfgiA
|
||||
cEb7PwEAAAAEAAAAFDX7PwoAAAAAAIAAHAD0PwAAAAD//wAAAAAAAAAAAAAAAAAA
|
||||
AAAAAKQgCEAKAAAAmHIIQAj0+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAD4GQhAAQAAAAAAAAAYcAiA0Eb7PwEAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAPBG+z/4GQhAAQAAACAHBgAENfs/fEf7PwAAAAAAAAAAEEf7PwAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAFwQCICAff4/KAAAACgAAAAAAAAAAAAAABxH+z8AAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
sEH7PxBD+z8En2QMvPr6P6Ay+z+Q/fo/mDL7PwEAAABo/fo/aP36P5D9+j9g/fo/
|
||||
GAAAAHQ/+z9pcGMwAGHBu8ov8v26vbcAAAAAAHBD+z8YAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAALjo+j8g6fo/iOn6PwAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAEgdAEAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAsXYs
|
||||
oB4IQMQSCEAwDgYAEH4IgHBC+z8AAAAAAAAAABA1+z+gOv4/AwAAACMFBgDEEgiA
|
||||
UEL7P9wA8D8BAAAACAD7PyMABgABAAAAIwUGAAAAAAD//wAAAAAAAAAAAAAAAAAA
|
||||
AAAAAKQgCEAjAAYAmHIIQAjw+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAKAeCEAQcAhAMAAFAAAAAAArGgiAkEL7Pzz9+j8AAAAA
|
||||
AAAAAPgZCEAAAAAAAAAAABhwCIDQQvs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
/////wAAAAAAAAAAAAAAAIT9+j8AAAAAAQAAAAIAAAAAAAAA8EL7P/gZCEAAAAAA
|
||||
IwMGAAQ1+z+Q/fo/AQAAAAAAAAAQQ/s/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
2Q8IgGA7/j+AMvs/BQAAAAAAAAAAAAAAHEP7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAA==
|
||||
FAAAAEgAAABKIAAA
|
||||
RVNQX0NPUkVfRFVNUF9JTkZPAAA=
|
||||
AAEAADgzY2ZlYjUzYzljMDBjNjFjNGU1MjY3NGU0MzY1NGU0YjQ1MmI3NTkyMDc1
|
||||
OTIwOTc3ZTQ5MWUwNmE0NDg4ZDgAAAAA
|
||||
DAAAAJQAAAClAgAA
|
||||
RVhUUkFfSU5GTwAA
|
||||
gF77P+gAAAAdAAAA7gAAAAEAAADCAAAAAAAAAMMAAAAAAAAAxAAAAAAAAADFAAAA
|
||||
AAAAAMYAAAAAAAAAsQAAAL84DkCyAAAAAAAAALMAAAAAAAAAtAAAAAAAAAC1AAAA
|
||||
AAAAALYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAA==
|
||||
Fj6ctQ==
|
||||
================= CORE DUMP END =================
|
||||
I (1859) esp_core_dump_uart: Core dump has been written to uart.
|
||||
Rebooting...
|
||||
ets Jun 8 2016 00:22:57
|
||||
|
||||
rst:0xc (SW_CPU_RESET),boot:0x1e (SPI_FAST_FLASH_BOOT)
|
||||
configsip: 0, SPIWP:0xee
|
||||
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
|
||||
mode:DIO, clock div:2
|
||||
load:0x3fff0030,len:4
|
||||
load:0x3fff0034,len:7148
|
||||
load:0x40078000,len:14220
|
||||
ho 0 tail 12 room 4
|
||||
load:0x40080400,len:4584
|
||||
0x40080400: _init at ??:?
|
193
tools/test_idf_monitor/tests/core1_out.txt
Normal file
193
tools/test_idf_monitor/tests/core1_out.txt
Normal file
@ -0,0 +1,193 @@
|
||||
I (195) boot: Loaded app from partition at offset 0x10000
|
||||
I (195) boot: Disabling RNG early entropy source...
|
||||
I (196) cpu_start: Pro cpu up.
|
||||
I (200) cpu_start: Application information:
|
||||
I (205) cpu_start: Project name: hello-world
|
||||
I (210) cpu_start: App version: v4.2-dev-172-gc9cc694dbb-dirty
|
||||
I (217) cpu_start: Compile time: Feb 6 2020 17:57:45
|
||||
I (223) cpu_start: ELF file SHA256: 83cfeb53c9c00c61...
|
||||
I (229) cpu_start: ESP-IDF: v4.2-dev-172-gc9cc694dbb-dirty
|
||||
I (236) cpu_start: Starting app cpu, entry point is 0x40081010
|
||||
I (0) cpu_start: App cpu up.
|
||||
I (246) heap_init: Initializing. RAM available for dynamic allocation:
|
||||
I (253) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
|
||||
I (259) heap_init: At 3FFB3F58 len 0002C0A8 (176 KiB): DRAM
|
||||
I (265) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
|
||||
I (272) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
|
||||
I (278) heap_init: At 40089AC8 len 00016538 (89 KiB): IRAM
|
||||
I (284) cpu_start: Pro cpu start user code
|
||||
I (303) spi_flash: detected chip: generic
|
||||
I (303) spi_flash: flash io: dio
|
||||
W (303) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
|
||||
I (314) esp_core_dump_uart: Init core dump to UART
|
||||
I (319) cpu_start: Starting scheduler on PRO CPU.
|
||||
I (0) cpu_start: Starting scheduler on APP CPU.
|
||||
Guru Meditation Error: Core 0 panic'ed (StoreProhibited). Exception was unhandled.
|
||||
Core 0 register dump:
|
||||
PC : 0x400e37f7 PS : 0x00060430 A0 : 0x800d0c31 A1 : 0x3ffb5db0
|
||||
A2 : 0x00000001 A3 : 0x00000001 A4 : 0x00000001 A5 : 0x00060023
|
||||
A6 : 0x00000001 A7 : 0x00060023 A8 : 0x00000001 A9 : 0x00000000
|
||||
A10 : 0x7fffffff A11 : 0x8001f880 A12 : 0x06ff1ff8 A13 : 0x00000000
|
||||
A14 : 0x3ffb7d80 A15 : 0x00000000 SAR : 0x00000014 EXCCAUSE: 0x0000001d
|
||||
EXCVADDR: 0x00000001 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000
|
||||
ELF file SHA256: 83cfeb53c9c00c61c4e52674e43654e4b452b7592075920977e491e06a4488d8
|
||||
Backtrace: 0x400e37f4:0x3ffb5db0 0x400d0c2e:0x3ffb5dd0 0x40087015:0x3ffb5df0
|
||||
I (401) esp_core_dump_uart: Press Enter to print core dump to UART...
|
||||
Core Dump detected!
|
||||
I (434) esp_core_dump_uart: Print core dump to uart...
|
||||
I (434) esp_core_dump_elf: Found tasks: 8
|
||||
ERROR: GDB/MI command failed (error / msg="No symbol table is loaded. Use the \"file\" command.")!
|
||||
espcoredump.py v0.4-dev
|
||||
===============================================================
|
||||
==================== ESP32 CORE DUMP START ====================
|
||||
|
||||
Crashed task handle: 0x3ffb5e80, name: '', GDB name: 'process 1073438336'
|
||||
|
||||
================== CURRENT THREAD REGISTERS ===================
|
||||
exccause 0x1d (StoreProhibitedCause)
|
||||
excvaddr 0x1
|
||||
epc1 0x0
|
||||
epc2 0x0
|
||||
epc3 0x0
|
||||
epc4 0x0
|
||||
epc5 0x0
|
||||
epc6 0x0
|
||||
epc7 0x0
|
||||
eps2 0x0
|
||||
eps3 0x0
|
||||
eps4 0x0
|
||||
eps5 0x0
|
||||
eps6 0x0
|
||||
eps7 0x400e38bf
|
||||
pc 0x400e37f7 0x400e37f7
|
||||
lbeg 0x0 0
|
||||
lend 0x0 0
|
||||
lcount 0x0 0
|
||||
sar 0x14 20
|
||||
ps 0x60420 394272
|
||||
threadptr <unavailable>
|
||||
br <unavailable>
|
||||
scompare1 <unavailable>
|
||||
acclo <unavailable>
|
||||
acchi <unavailable>
|
||||
m0 <unavailable>
|
||||
m1 <unavailable>
|
||||
m2 <unavailable>
|
||||
m3 <unavailable>
|
||||
expstate <unavailable>
|
||||
f64r_lo <unavailable>
|
||||
f64r_hi <unavailable>
|
||||
f64s <unavailable>
|
||||
fcr <unavailable>
|
||||
fsr <unavailable>
|
||||
a0 0x800d0c31 -2146628559
|
||||
a1 0x3ffb5db0 1073438128
|
||||
a2 0x1 1
|
||||
a3 0x1 1
|
||||
a4 0x1 1
|
||||
a5 0x60023 393251
|
||||
a6 0x1 1
|
||||
a7 0x60023 393251
|
||||
a8 0x1 1
|
||||
a9 0x0 0
|
||||
a10 0x7fffffff 2147483647
|
||||
a11 0x8001f880 -2147354496
|
||||
a12 0x6ff1ff8 117383160
|
||||
a13 0x0 0
|
||||
a14 0x3ffb7d80 1073446272
|
||||
a15 0x0 0
|
||||
|
||||
==================== CURRENT THREAD STACK =====================
|
||||
#0 0x400e37f7 in ?? ()
|
||||
#1 0x400d0c31 in ?? ()
|
||||
#2 0x40087018 in ?? ()
|
||||
|
||||
======================== THREADS INFO =========================
|
||||
Id Target Id Frame
|
||||
* 1 process 1073438336 0x400e37f7 in ?? ()
|
||||
2 process 1073442120 0x40087010 in ?? ()
|
||||
3 process 1073440228 0x40087010 in ?? ()
|
||||
4 process 1073444768 0x400812c4 in ?? ()
|
||||
5 process 1073433584 0x400812c4 in ?? ()
|
||||
6 process 1073412788 0x400812c4 in ?? ()
|
||||
7 process 1073432444 0x40087e10 in ?? ()
|
||||
8 process 1073413520 0x400812c4 in ?? ()
|
||||
ERROR: GDB/MI command failed (error / msg="No symbol table is loaded. Use the \"file\" command.")!
|
||||
|
||||
==================== THREAD 2 (TCB: 0x3ffb6d48, name: '') =====================
|
||||
#0 0x40087010 in ?? ()
|
||||
ERROR: GDB/MI command failed (error / msg="No symbol table is loaded. Use the \"file\" command.")!
|
||||
|
||||
==================== THREAD 3 (TCB: 0x3ffb65e4, name: '') =====================
|
||||
#0 0x40087010 in ?? ()
|
||||
ERROR: GDB/MI command failed (error / msg="No symbol table is loaded. Use the \"file\" command.")!
|
||||
|
||||
==================== THREAD 4 (TCB: 0x3ffb77a0, name: '') =====================
|
||||
#0 0x400812c4 in ?? ()
|
||||
#1 0x40089806 in ?? ()
|
||||
#2 0x400898f3 in ?? ()
|
||||
#3 0x40087018 in ?? ()
|
||||
ERROR: GDB/MI command failed (error / msg="No symbol table is loaded. Use the \"file\" command.")!
|
||||
|
||||
==================== THREAD 5 (TCB: 0x3ffb4bf0, name: '') =====================
|
||||
#0 0x400812c4 in ?? ()
|
||||
#1 0x4008913b in ?? ()
|
||||
#2 0x400d0d5c in ?? ()
|
||||
#3 0x40087018 in ?? ()
|
||||
ERROR: GDB/MI command failed (error / msg="No symbol table is loaded. Use the \"file\" command.")!
|
||||
|
||||
==================== THREAD 6 (TCB: 0x3ffafab4, name: '') =====================
|
||||
#0 0x400812c4 in ?? ()
|
||||
#1 0x40087e10 in ?? ()
|
||||
#2 0x400d1f4b in ?? ()
|
||||
#3 0x40087018 in ?? ()
|
||||
ERROR: GDB/MI command failed (error / msg="No symbol table is loaded. Use the \"file\" command.")!
|
||||
|
||||
==================== THREAD 7 (TCB: 0x3ffb477c, name: '') =====================
|
||||
#0 0x40087e10 in ?? ()
|
||||
#1 0x40081a2b in ?? ()
|
||||
#2 0x40087018 in ?? ()
|
||||
ERROR: GDB/MI command failed (error / msg="No symbol table is loaded. Use the \"file\" command.")!
|
||||
|
||||
==================== THREAD 8 (TCB: 0x3ffafd90, name: '') =====================
|
||||
#0 0x400812c4 in ?? ()
|
||||
#1 0x40087e10 in ?? ()
|
||||
#2 0x40081a2b in ?? ()
|
||||
#3 0x40087018 in ?? ()
|
||||
|
||||
======================= ALL MEMORY REGIONS ========================
|
||||
Name Address Size Attrs
|
||||
.data 0x400054 0x4 RW A
|
||||
.coredump.tasks.data 0x3ffb5e80 0x15c RW
|
||||
.coredump.tasks.data 0x3ffb5cf0 0x188 RW
|
||||
.coredump.tasks.data 0x3ffb6d48 0x15c RW
|
||||
.coredump.tasks.data 0x3ffb6c20 0x120 RW
|
||||
.coredump.tasks.data 0x3ffb65e4 0x15c RW
|
||||
.coredump.tasks.data 0x3ffb64b0 0x12c RW
|
||||
.coredump.tasks.data 0x3ffb77a0 0x15c RW
|
||||
.coredump.tasks.data 0x3ffb75d0 0x1c8 RW
|
||||
.coredump.tasks.data 0x3ffb4bf0 0x15c RW
|
||||
.coredump.tasks.data 0x3ffb4a40 0x1a8 RW
|
||||
.coredump.tasks.data 0x3ffafab4 0x15c RW
|
||||
.coredump.tasks.data 0x3ffaf8e0 0x1cc RW
|
||||
.coredump.tasks.data 0x3ffb477c 0x15c RW
|
||||
.coredump.tasks.data 0x3ffb45d0 0x1a4 RW
|
||||
.coredump.tasks.data 0x3ffafd90 0x15c RW
|
||||
.coredump.tasks.data 0x3ffb41b0 0x1c0 RW
|
||||
|
||||
===================== ESP32 CORE DUMP END =====================
|
||||
===============================================================
|
||||
Done!
|
||||
I (1859) esp_core_dump_uart: Core dump has been written to uart.
|
||||
Rebooting...
|
||||
ets Jun 8 2016 00:22:57
|
||||
rst:0xc (SW_CPU_RESET),boot:0x1e (SPI_FAST_FLASH_BOOT)
|
||||
configsip: 0, SPIWP:0xee
|
||||
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
|
||||
mode:DIO, clock div:2
|
||||
load:0x3fff0030,len:4
|
||||
load:0x3fff0034,len:7148
|
||||
load:0x40078000,len:14220
|
||||
ho 0 tail 12 room 4
|
||||
load:0x40080400,len:4584
|
||||
0x40080400: _init at ??:?
|
Loading…
x
Reference in New Issue
Block a user