From 79b00af8f0c34f55edc93a6e49cd2a2a1604f2a4 Mon Sep 17 00:00:00 2001 From: Enrico Deiana Date: Thu, 7 Mar 2024 23:01:17 -0800 Subject: [PATCH 1/7] i#6690 dcontext_t standalone: update doc (#6692) Documents the fact that standalone dcontext_t is not fully thread-safe, hence parallel analysis tools should be aware that when different threads set DR ISA mode at the same time a race condition happens. Issue #6690 #1595 --- core/lib/dr_tools.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/lib/dr_tools.h b/core/lib/dr_tools.h index 164ef552943..57563a4f383 100644 --- a/core/lib/dr_tools.h +++ b/core/lib/dr_tools.h @@ -48,9 +48,21 @@ DR_API * \warning This context cannot be used as the drcontext for a thread * running under DR control! It is only for standalone programs that * wish to use DR as a library of disassembly, etc. routines. + * \warning This context is not fully thread-safe as it stores some state + * (such as #dr_isa_mode_t and other fields related to AArch32 encoding + * and decoding) that is global and may be prone to data races. + * For example, having different threads use dr_set_isa_mode() to set + * different ISA modes at the same time can result in a data race. + * Furthermore, encoding and decoding of AArch32 instructions in parallel + * may also result in a data race. + * Code that uses a standalone DR context across multiple threads should + * implement its own lock/unlock mechanism to avoid such data races + * when using dr_set_isa_mode() or encoding/decoding AArch32 instructions. * \return NULL on failure, such as running on an unsupported operating * system version. */ +/* TODO i#6690: Add better multi-thread standalone decoding support. + */ void * dr_standalone_init(void); @@ -66,6 +78,9 @@ dr_standalone_exit(void); /** * Use this dcontext for use with the standalone static decoder library. * Pass it whenever a decoding-related API routine asks for a context. + * Note that this GLOBAL_DCONTEXT is returned by dr_standalone_init(); + * beware of its limitations (especially about thread-safety) described + * there. */ # define GLOBAL_DCONTEXT ((void *)-1) #endif From 6befc0b2293e252fcc9aac6d5c574852a8e81090 Mon Sep 17 00:00:00 2001 From: Derek Bruening Date: Fri, 8 Mar 2024 11:24:06 -0500 Subject: [PATCH 2/7] i#6635 core filter, part 3: record_scheduler_t switch boundaries (#6695) For record_scheduler_t, context switch on encoding boundaries instead of instruction boundaries to avoid splitting up encodings from their instructions. We end up not supporting unread_last_record() for record_scheduler_t as we do not have the pre-prev record to identify a first encoding in a sequence. Adds a unit test. Inserting synthetic tid,pid records so the switches are actually visible will be added separately. Issue: #6635 --- .../drcachesim/reader/record_file_reader.h | 4 +- clients/drcachesim/scheduler/scheduler.cpp | 59 +++++++- clients/drcachesim/scheduler/scheduler.h | 6 + clients/drcachesim/tests/mock_reader.h | 60 +++++++- .../drcachesim/tests/scheduler_unit_tests.cpp | 131 ++++++++++++++++++ 5 files changed, 253 insertions(+), 7 deletions(-) diff --git a/clients/drcachesim/reader/record_file_reader.h b/clients/drcachesim/reader/record_file_reader.h index 33cf2df4001..a80cdeba581 100644 --- a/clients/drcachesim/reader/record_file_reader.h +++ b/clients/drcachesim/reader/record_file_reader.h @@ -1,5 +1,5 @@ /* ********************************************************** - * Copyright (c) 2022-2023 Google, Inc. All rights reserved. + * Copyright (c) 2022-2024 Google, Inc. All rights reserved. * **********************************************************/ /* @@ -126,7 +126,7 @@ class record_reader_t : public std::iterator::record_type_is_instr(memref_t record) return type_is_instr(record.instr.type); } +template <> +bool +scheduler_tmpl_t::record_type_is_encoding(memref_t record) +{ + // There are no separate memref_t encoding records: encoding info is + // inside instruction records. + return false; +} + +template <> +bool +scheduler_tmpl_t::record_type_is_instr_boundary(memref_t record, + memref_t prev_record) +{ + return record_type_is_instr(record); +} + template <> bool scheduler_tmpl_t::record_type_is_marker(memref_t record, @@ -361,6 +378,34 @@ scheduler_tmpl_t::record_type_is_instr( return type_is_instr(static_cast(record.type)); } +template <> +bool +scheduler_tmpl_t::record_type_is_encoding( + trace_entry_t record) +{ + return static_cast(record.type) == TRACE_TYPE_ENCODING; +} + +template <> +bool +scheduler_tmpl_t::record_type_is_instr_boundary( + trace_entry_t record, trace_entry_t prev_record) +{ + // Don't advance past encodings and split them from their associated instr. + return (record_type_is_instr(record) || record_type_is_encoding(record)) && + !record_type_is_encoding(prev_record); +} + +template <> +typename scheduler_tmpl_t::stream_status_t +scheduler_tmpl_t::unread_last_record( + output_ordinal_t output, trace_entry_t &record, input_info_t *&input) +{ + // See the general unread_last_record() below: we don't support this as + // we can't provide the prev-prev record for record_type_is_instr_boundary(). + return STATUS_NOT_IMPLEMENTED; +} + template <> bool scheduler_tmpl_t::record_type_is_marker( @@ -2583,7 +2628,8 @@ scheduler_tmpl_t::next_record(output_ordinal_t output, } else { input->switch_to_input = it->second; } - } else if (record_type_is_instr(record)) { + } else if (record_type_is_instr_boundary(record, + outputs_[output].last_record)) { if (syscall_incurs_switch(input, blocked_time)) { // Model as blocking and should switch to a different input. need_new_input = true; @@ -2641,7 +2687,8 @@ scheduler_tmpl_t::next_record(output_ordinal_t output, } } if (options_.quantum_unit == QUANTUM_INSTRUCTIONS && - record_type_is_instr(record) && !outputs_[output].in_kernel_code) { + record_type_is_instr_boundary(record, outputs_[output].last_record) && + !outputs_[output].in_kernel_code) { ++input->instrs_in_quantum; if (input->instrs_in_quantum > options_.quantum_duration) { // We again prefer to switch to another input even if the current @@ -2669,7 +2716,7 @@ scheduler_tmpl_t::next_record(output_ordinal_t output, // We only switch on instruction boundaries. We could possibly switch // in between (e.g., scatter/gather long sequence of reads/writes) by // setting input->switching_pre_instruction. - record_type_is_instr(record)) { + record_type_is_instr_boundary(record, outputs_[output].last_record)) { VPRINT(this, 4, "next_record[%d]: hit end of time quantum after %" PRIu64 "\n", output, input->time_spent_in_quantum); @@ -2715,7 +2762,8 @@ scheduler_tmpl_t::next_record(output_ordinal_t output, prev_input, outputs_[output].cur_input); if (!preempt) { if (options_.quantum_unit == QUANTUM_INSTRUCTIONS && - record_type_is_instr(record)) { + record_type_is_instr_boundary(record, + outputs_[output].last_record)) { --inputs_[prev_input].instrs_in_quantum; } else if (options_.quantum_unit == QUANTUM_TIME) { inputs_[prev_input].time_spent_in_quantum -= @@ -2784,6 +2832,9 @@ scheduler_tmpl_t::unread_last_record(output_ordinal_t ou VPRINT(this, 4, "next_record[%d]: unreading last record, from %d\n", output, input->index); input->queue.push_back(outinfo.last_record); + // XXX: This should be record_type_is_instr_boundary() but we don't have the pre-prev + // record. For now we don't support unread_last_record() for record_reader_t, + // enforced in a specialization of unread_last_record(). if (options_.quantum_unit == QUANTUM_INSTRUCTIONS && record_type_is_instr(record)) --input->instrs_in_quantum; outinfo.last_record = create_invalid_record(); diff --git a/clients/drcachesim/scheduler/scheduler.h b/clients/drcachesim/scheduler/scheduler.h index 4e6ea8271c2..63418390a66 100644 --- a/clients/drcachesim/scheduler/scheduler.h +++ b/clients/drcachesim/scheduler/scheduler.h @@ -1456,6 +1456,12 @@ template class scheduler_tmpl_t { bool record_type_is_invalid(RecordType record); + bool + record_type_is_encoding(RecordType record); + + bool + record_type_is_instr_boundary(RecordType record, RecordType prev_record); + // Creates the marker we insert between regions of interest. RecordType create_region_separator_marker(memref_tid_t tid, uintptr_t value); diff --git a/clients/drcachesim/tests/mock_reader.h b/clients/drcachesim/tests/mock_reader.h index e17b2831a0f..e08d77b7e03 100644 --- a/clients/drcachesim/tests/mock_reader.h +++ b/clients/drcachesim/tests/mock_reader.h @@ -1,5 +1,5 @@ /* ********************************************************** - * Copyright (c) 2016-2023 Google, Inc. All rights reserved. + * Copyright (c) 2016-2024 Google, Inc. All rights reserved. * **********************************************************/ /* @@ -83,6 +83,54 @@ class mock_reader_t : public reader_t { int index_ = -1; }; +// A mock record reader that iterates over a vector of records. +class mock_record_reader_t : public record_reader_t { +public: + mock_record_reader_t() = default; + explicit mock_record_reader_t(const std::vector &trace) + : trace_(trace) + { + verbosity_ = 3; + } + bool + init() override + { + eof_ = false; + ++*this; + return true; + } + bool + read_next_entry() override + { + ++index_; + if (index_ >= static_cast(trace_.size())) { + eof_ = true; + return false; + } + cur_entry_ = trace_[index_]; + return true; + } + std::string + get_stream_name() const override + { + return ""; + } + bool + open_single_file(const std::string &input_path) override + { + return false; + } + bool + open_input_file() override + { + return false; + } + +private: + std::vector trace_; + int index_ = -1; +}; + static inline trace_entry_t make_memref(addr_t addr, trace_type_t type = TRACE_TYPE_READ, unsigned short size = 1) { @@ -177,6 +225,16 @@ make_marker(trace_marker_type_t type, uintptr_t value) return entry; } +static inline trace_entry_t +make_encoding(unsigned short size, addr_t encoding) +{ + trace_entry_t entry; + entry.type = TRACE_TYPE_ENCODING; + entry.size = size; + entry.addr = encoding; + return entry; +} + } // namespace drmemtrace } // namespace dynamorio diff --git a/clients/drcachesim/tests/scheduler_unit_tests.cpp b/clients/drcachesim/tests/scheduler_unit_tests.cpp index d18bcd0253a..97b55e9d4d6 100644 --- a/clients/drcachesim/tests/scheduler_unit_tests.cpp +++ b/clients/drcachesim/tests/scheduler_unit_tests.cpp @@ -3911,6 +3911,136 @@ test_random_schedule() } } +static void +test_record_scheduler() +{ + // Test record_scheduler_t switches, which operate differently: + // they have to deal with encoding records preceding instructions, + // and they have to insert tid,pid records. + std::cerr << "\n----------------\nTesting record_scheduler_t\n"; + static constexpr memref_tid_t TID_A = 42; + static constexpr memref_tid_t TID_B = TID_A + 1; + static constexpr memref_tid_t PID_A = 142; + static constexpr memref_tid_t PID_B = PID_A + 1; + static constexpr int NUM_OUTPUTS = 1; + static constexpr addr_t ENCODING_SIZE = 2; + static constexpr addr_t ENCODING_IGNORE = 0xfeed; + std::vector refs_A = { + /* clang-format off */ + make_thread(TID_A), + make_pid(PID_A), + make_version(TRACE_ENTRY_VERSION), + make_timestamp(10), + make_encoding(ENCODING_SIZE, ENCODING_IGNORE), + make_instr(10), + make_timestamp(20), + make_marker(TRACE_MARKER_TYPE_SYSCALL, 42), + make_marker(TRACE_MARKER_TYPE_MAYBE_BLOCKING_SYSCALL, 0), + make_timestamp(120), + make_encoding(ENCODING_SIZE, ENCODING_IGNORE), + make_instr(30), + make_encoding(ENCODING_SIZE, ENCODING_IGNORE), + make_instr(50), + make_exit(TID_A), + /* clang-format on */ + }; + std::vector refs_B = { + /* clang-format off */ + make_thread(TID_B), + make_pid(PID_B), + make_version(TRACE_ENTRY_VERSION), + make_timestamp(20), + make_encoding(ENCODING_SIZE, ENCODING_IGNORE), + make_instr(20), + make_encoding(ENCODING_SIZE, ENCODING_IGNORE), + make_instr(40), + make_encoding(ENCODING_SIZE, ENCODING_IGNORE), + make_instr(60), + // No encoding for repeated instr. + make_instr(20), + make_exit(TID_B), + /* clang-format on */ + }; + std::vector readers; + readers.emplace_back( + std::unique_ptr(new mock_record_reader_t(refs_A)), + std::unique_ptr(new mock_record_reader_t()), TID_A); + readers.emplace_back( + std::unique_ptr(new mock_record_reader_t(refs_B)), + std::unique_ptr(new mock_record_reader_t()), TID_B); + record_scheduler_t scheduler; + std::vector sched_inputs; + sched_inputs.emplace_back(std::move(readers)); + record_scheduler_t::scheduler_options_t sched_ops( + record_scheduler_t::MAP_TO_ANY_OUTPUT, record_scheduler_t::DEPENDENCY_IGNORE, + record_scheduler_t::SCHEDULER_DEFAULTS, + /*verbosity=*/4); + sched_ops.quantum_duration = 2; + sched_ops.block_time_scale = 0.001; // Do not stay blocked. + if (scheduler.init(sched_inputs, NUM_OUTPUTS, std::move(sched_ops)) != + record_scheduler_t::STATUS_SUCCESS) + assert(false); + auto *stream0 = scheduler.get_stream(0); + auto check_next = [](record_scheduler_t::stream_t *stream, + record_scheduler_t::stream_status_t expect_status, + trace_type_t expect_type = TRACE_TYPE_MARKER, + addr_t expect_addr = 0) { + trace_entry_t record; + record_scheduler_t::stream_status_t status = stream->next_record(record); + assert(status == expect_status); + if (status == record_scheduler_t::STATUS_OK) { + if (record.type != expect_type) { + std::cerr << "Expected type " << expect_type << " != " << record.type + << "\n"; + assert(false); + } + if (expect_addr != 0 && record.addr != expect_addr) { + std::cerr << "Expected addr " << expect_addr << " != " << record.addr + << "\n"; + assert(false); + } + } + }; + // Advance cpu0 on TID_A to its 1st context switch. + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_THREAD, TID_A); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_PID, PID_A); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_MARKER); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_MARKER); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_ENCODING); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_INSTR); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_MARKER); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_MARKER); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_MARKER); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_MARKER); + // Ensure the context switch is *before* the encoding. + // Advance cpu0 on TID_B to its 1st context switch. + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_THREAD, TID_B); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_PID, PID_B); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_MARKER); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_MARKER); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_ENCODING); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_INSTR); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_ENCODING); + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_INSTR); + // Ensure the switch is *before* the encoding. + // TODO i#6635: Insert a tid,pid pair as otherwise the switch is invisible + // at the trace_entry_t record level. + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_ENCODING); // A + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_INSTR); // A + // TODO i#6635: Insert a tid,pid pair as otherwise the switch is invisible + // at the trace_entry_t record level. + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_ENCODING); // B + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_INSTR); // B + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_INSTR); // B + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_THREAD_EXIT); // B + // TODO i#6635: Insert a tid,pid pair as otherwise the switch is invisible + // at the trace_entry_t record level. + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_ENCODING); // A + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_INSTR); // A + check_next(stream0, record_scheduler_t::STATUS_OK, TRACE_TYPE_THREAD_EXIT); // A + check_next(stream0, record_scheduler_t::STATUS_EOF); +} + int test_main(int argc, const char *argv[]) { @@ -3947,6 +4077,7 @@ test_main(int argc, const char *argv[]) test_direct_switch(); test_kernel_switch_sequences(); test_random_schedule(); + test_record_scheduler(); dr_standalone_exit(); return 0; From 4c4510dee8629c0729307f721c97209a57b19abd Mon Sep 17 00:00:00 2001 From: Derek Bruening Date: Fri, 8 Mar 2024 16:55:51 -0500 Subject: [PATCH 3/7] i#6635 core filter, part 4: record_scheduler_t inserted tid,pid (#6700) For record_scheduler_t, context switches cannot be observed as each record has limited information and does not include the source. We insert a synthetic pair of tid and pid records on each switch to solve this. Updates the unit test to test this. Updates the checked-in drmemtrace.threadsig-core-sharded.x64.tracedir/ trace files to include these records. The files are also reduced to 4 cores to increase the switch count and renamed to avoid the tid in the name. Issue: #6635 --- clients/drcachesim/common/utils.h | 2 + clients/drcachesim/scheduler/scheduler.cpp | 55 ++++++++++++++++++ clients/drcachesim/scheduler/scheduler.h | 11 ++++ .../drcachesim/tests/core_on_disk.templatex | 18 ++---- .../drmemtrace.core.0.trace.zip | Bin 0 -> 154482 bytes .../drmemtrace.core.1.trace.zip | Bin 0 -> 78112 bytes .../drmemtrace.core.2.trace.zip | Bin 0 -> 80714 bytes .../drmemtrace.core.3.trace.zip | Bin 0 -> 78042 bytes ...rmemtrace.threadsig.1257596.5136.trace.zip | Bin 119898 -> 0 bytes ...rmemtrace.threadsig.1257598.2655.trace.zip | Bin 75040 -> 0 bytes ...rmemtrace.threadsig.1257599.2824.trace.zip | Bin 75445 -> 0 bytes ...rmemtrace.threadsig.1257600.9375.trace.zip | Bin 45226 -> 0 bytes ...rmemtrace.threadsig.1257601.8161.trace.zip | Bin 46470 -> 0 bytes ...rmemtrace.threadsig.1257604.1983.trace.zip | Bin 47463 -> 0 bytes .../drcachesim/tests/scheduler_unit_tests.cpp | 30 +++++----- 15 files changed, 88 insertions(+), 28 deletions(-) create mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.0.trace.zip create mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.1.trace.zip create mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.2.trace.zip create mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.3.trace.zip delete mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257596.5136.trace.zip delete mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257598.2655.trace.zip delete mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257599.2824.trace.zip delete mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257600.9375.trace.zip delete mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257601.8161.trace.zip delete mode 100644 clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257604.1983.trace.zip diff --git a/clients/drcachesim/common/utils.h b/clients/drcachesim/common/utils.h index 21a25efbb17..87b5ce6f11f 100644 --- a/clients/drcachesim/common/utils.h +++ b/clients/drcachesim/common/utils.h @@ -57,6 +57,8 @@ namespace drmemtrace { // XXX: DR should export this #define INVALID_THREAD_ID 0 +// We avoid collisions with DR's INVALID_PROCESS_ID by using our own name. +#define INVALID_PID -1 // XXX: perhaps we should use a C++-ish stream approach instead // This cannot be named ERROR as that conflicts with Windows headers. diff --git a/clients/drcachesim/scheduler/scheduler.cpp b/clients/drcachesim/scheduler/scheduler.cpp index e826d2a1738..b95f0331603 100644 --- a/clients/drcachesim/scheduler/scheduler.cpp +++ b/clients/drcachesim/scheduler/scheduler.cpp @@ -207,6 +207,17 @@ scheduler_tmpl_t::record_type_has_tid(memref_t record, return true; } +template <> +bool +scheduler_tmpl_t::record_type_has_pid(memref_t record, + memref_pid_t &pid) +{ + if (record.marker.pid == INVALID_PID) + return false; + pid = record.marker.pid; + return true; +} + template <> void scheduler_tmpl_t::record_type_set_tid(memref_t &record, @@ -319,6 +330,13 @@ scheduler_tmpl_t::print_record(const memref_t &record) fprintf(stderr, "\n"); } +template <> +void +scheduler_tmpl_t::insert_switch_tid_pid(input_info_t &info) +{ + // We do nothing, as every record has a tid from the separate inputs. +} + /****************************************************************************** * Specializations for scheduler_tmpl_t, aka record_scheduler_t. */ @@ -360,6 +378,17 @@ scheduler_tmpl_t::record_type_has_tid( return true; } +template <> +bool +scheduler_tmpl_t::record_type_has_pid( + trace_entry_t record, memref_pid_t &pid) +{ + if (record.type != TRACE_TYPE_PID) + return false; + pid = static_cast(record.addr); + return true; +} + template <> void scheduler_tmpl_t::record_type_set_tid( @@ -482,6 +511,27 @@ scheduler_tmpl_t::print_record( record.addr); } +template <> +void +scheduler_tmpl_t::insert_switch_tid_pid( + input_info_t &input) +{ + // We need explicit tid,pid records so reader_t will see the new context. + // We insert at the front, so we have reverse order. + trace_entry_t pid; + pid.type = TRACE_TYPE_PID; + pid.size = 0; + pid.addr = static_cast(input.pid); + + trace_entry_t tid; + tid.type = TRACE_TYPE_THREAD; + tid.size = 0; + tid.addr = static_cast(input.tid); + + input.queue.push_front(pid); + input.queue.push_front(tid); +} + /*************************************************************************** * Scheduled stream. */ @@ -2080,6 +2130,10 @@ scheduler_tmpl_t::set_cur_input(output_ordinal_t output, outputs_[output].stream->filetype_ = inputs_[input].reader->get_filetype(); } + if (inputs_[input].pid != INVALID_PID) { + insert_switch_tid_pid(inputs_[input]); + } + if (!switch_sequence_.empty() && outputs_[output].stream->get_instruction_ordinal() > 0) { sched_type_t::switch_type_t switch_type = SWITCH_INVALID; @@ -2812,6 +2866,7 @@ scheduler_tmpl_t::next_record(output_ordinal_t output, outputs_[output].last_record = record; record_type_has_tid(record, input->last_record_tid); + record_type_has_pid(record, input->pid); return sched_type_t::STATUS_OK; } diff --git a/clients/drcachesim/scheduler/scheduler.h b/clients/drcachesim/scheduler/scheduler.h index 63418390a66..f668b09cc3a 100644 --- a/clients/drcachesim/scheduler/scheduler.h +++ b/clients/drcachesim/scheduler/scheduler.h @@ -1152,6 +1152,8 @@ template class scheduler_tmpl_t { int workload = -1; // If left invalid, this is a combined stream (online analysis mode). memref_tid_t tid = INVALID_THREAD_ID; + memref_pid_t pid = INVALID_PID; + // Used for combined streams. memref_tid_t last_record_tid = INVALID_THREAD_ID; // If non-empty these records should be returned before incrementing the reader. // This is used for read-ahead and inserting synthetic records. @@ -1437,6 +1439,10 @@ template class scheduler_tmpl_t { bool record_type_has_tid(RecordType record, memref_tid_t &tid); + // If the given record has a process id field, returns true and the value. + bool + record_type_has_pid(RecordType record, memref_pid_t &pid); + // For trace_entry_t, only sets the tid for record types that have it. void record_type_set_tid(RecordType &record, memref_tid_t tid); @@ -1473,6 +1479,11 @@ template class scheduler_tmpl_t { RecordType create_invalid_record(); + // If necessary, inserts context switch info on the incoming pid+tid. + // The lock for 'input' is held by the caller. + void + insert_switch_tid_pid(input_info_t &input); + // Used for diagnostics: prints record fields to stderr. void print_record(const RecordType &record); diff --git a/clients/drcachesim/tests/core_on_disk.templatex b/clients/drcachesim/tests/core_on_disk.templatex index 3b9203f203d..9d45ae880df 100644 --- a/clients/drcachesim/tests/core_on_disk.templatex +++ b/clients/drcachesim/tests/core_on_disk.templatex @@ -3,27 +3,19 @@ Total counts: .* 8 total threads .* -Core [0-5] counts: +Core [0-3] counts: .* 2 threads .* -Core [0-5] counts: +Core [0-3] counts: .* 2 threads .* -Core [0-5] counts: +Core [0-3] counts: .* 2 threads .* -Core [0-5] counts: +Core [0-3] counts: .* - 1 threads -.* -Core [0-5] counts: -.* - 1 threads -.* -Core [0-5] counts: -.* - 1 threads + 2 threads .* diff --git a/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.0.trace.zip b/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.0.trace.zip new file mode 100644 index 0000000000000000000000000000000000000000..690c07dca853010cdb40d36313307afec6e0a3be GIT binary patch literal 154482 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

5`_eY+u!1U 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%0D~m_79_E$3WBJ(1 z`*kI%U35OQfhS2Dg+|;J8gRtgnuMziP*CEETlO77%A3PFy@W&aqV-mIKrXuKD@Wxu zi<8-*uaBk^c&531c9k_HW#>(TJ4Pxlu&R6q+UVtE>3Yk3X$+yt zd9%*2JXqwx5I5ZXXyj2Y(d|8+I{z34%1$RQ(0{DD;HTsFHD77-1oL84$90`~{>bZ^ z5VIc}-eVukKmP#dA z#uiEl*=J0pQrU_^7^4Nrmc(ETg(%zDx4~qc7z{HQjG6hrGh=Hxr@r%T=Y0QuziE1T z_vg8u`@XO1zMlu|TIQ~pWFwG0!R?vw{cJ>U1z(J~FTu4`T;~bh@bWJa9ivMSV2ilJ z>aJYx2Ryf3wai=*a7t^PP>|jIQipxx#UJ!G=A(kjfP~$ifb5|2rUY)uXiPW``9*pwDRL{{?8M>Phi>o!PCeq z8h)>%oqaq+EYgAmp*A88w&h&{UJ$84aF5aLQSMvbl@HXU@rpej9!+u1?wHFKJ!Dd4 zz!cf3;~>o=+w=)Ncl)G~zlXs%A&H`;7>&z~dJaT+WRkmR#2w|QBK(iuFMZ&4Hx;1p ziID{p8dOs~<-En(&0>ZMqLNJ9aGfED>@F7t&}KmwD|#OLgSc-iWidTxdD$ zp6J$^$m}-jms@aH&cR~qpz?czn~|^4_XoV4Ob)GU-K_D%t@NU~|4nbt;HSE_Z_;GM z+IL4Sf*dgi#kBS|uNiQgPC?^E`$r}(7~Z%cWyYhvPYr2vDcaCaP6=V#vM0;QzW z`S5+jJI575px-W+JVWZ88&DA~P1~XyB73=#6bLsy6Dgzpb8o&G_yU=!C>p%3~6qt^y46fnEb^(hZ&DfmhvTb@M%I+ zY(G*~(DEbSMD-X&Z!e*_3eZpGPW+qblfPXRN-t zzQj{$3sH?iBaq_2w!a;x7wb+yc6=rzOO!_?@#9yNzzPPDd1%abdrHN1K{6H4!f z_Zx?rW!;f<-oF_T?BAr7;%{Ad4&Ttp-Fr*GM|pjzY2dB=Th9Bhy%DLVsNrwLG1DEI zuc{u6baUVaHhI0+C;Ti6!s6 z`C9q)p(H|-jtllGsP|27?MDE#KL|=aa+4$(=Hx95;w=?Y$w||P* zbtWA}f2+~H#^y)|>ba~e!@pcSg}aOXTUEzy7oXkd6V=}Vx7}?wbr-;)#cWcyMohYhm|vYdi)Pd!p@X7i(39#8h*A`_{lFtqGoC) z=f$FZ)GVqaTgEt|kF-sg8X(2%PhGS!%|3yATmh*IJQvA9J(Qx=u+KzwXhZ)SnV7qy z!v?D1eCtl9+HlfJTlU$upSpsoqwS7O9;-UdGh}RJ*muOxR>|HboO)gcf_-YNYb~>+ipIllXa>ia&q|y3ZUOeH8ylm z7yt2{Lw($^`=pDvYW%&PiBJlq3?yzxWR<+6wVu#bh&877p17HftBoWa@}j11qMAZn zoAwetmY{}hZz#9(7R8^HY%qKuy;e-8dyqLq)|iZdH)_B4CMzCn=+)G2Pqbe=eC$ zcHy7EoR>pz+iTu=?g!5-h5ZGox>(0l*VAo5xzt}OSL|pUDs{Q zd1_nh?^y8E6lJg3T-xNKD;a34TopDkAW)jI@{u&WgAvSOw*AC~kuz#FNBAUeTqGQ} zkt{Z?6m9&?{DbqJurdLqpWTbC)2AOM%Q^o%27PIdqaEOF0!95s>+dkqoLF|TEPLmP zOnI)$(aW+OA>*&Dy9LulJ^<@ydKvO1dN9=Zi_wNtLMRwy?Z zHiVdS#BE(HG+o>#ZgV8F5V8oDC4S+Gg2(-Vj*ca2L;bjDH4BOju#`2h*r>%ZMIcRG z-c@xvH_h*=Zo5@DsMoUGEUK z?80k{j(0;P)OFl~;1kB<)tg%s_oGGQvWamwFLF$vyVevLCoc`M`xWY|{xEnqy>eya z-I6pLRSbBkq=)q5;~}N^)B^4Y7%pa>A@UX_Y~MuGH_;2)|#kZOKp2Dev}LFUw8Dpjab}x4J+dqgx%l?huT(mX`xkknGQ^ zIa!v!QDegu?~UCYx{t-8AP41KV%wvGyr3QM$La(>nTVXEkgJIsQ_y@}_fDzpxUt+p z2BY$ZdOibazvUx?@G_1MR3m4A_@vAZz)>Zu|XRYdShsVgE)Jhc8575Guo z+EihW>(G9^cNIntbKAiwk&RoGS2HBcPf12ml^W0bP3mU41mAa7f7N4@7cp+9aAo?m zb~`F+d|m$4R%tHM)h=V(8UZ^AAvIO}ki$-jn_~A>#}rHc|SzX6o4eL|CsnyDPxNqyZUh-(i5F_gPh||HB=-ZbXPF08|B`P&y>-djmnSk$S z6ep4`cNj}WK_9KUxP*B4S04OGfV0@TT(OSQobu-=eCto${`;T>&DF;~;5hQez_I5k zngxcxv@1`!6>KOl(B~5(ok1?er@3NR_DsVIn?r-mjLd5%lk_1{iJxToo$N5=6T0h6-5<>3+*_WqMQdtV>)NIjln zdtc8??A(1-v%KrdD|-)wbD7b7lzDrV!?C6sKFZ5_rNR>hdL+U_OvTLadkORiA0!J^ zo>PK#M4gk<6|B%^KsEZ0kgL@{P~RwFLPylRKoi@0-EVj7a$9M>^Ff;_O_$Mlc!A0y*H5p)~i4}(lt-0BNr z{^0(8qH8t#w_TgMf*#Fpn$2%^%x~Ih!Q^Pwqa{a+#W!frZDJn+SAEhK6y^^)IKSz- z6F5?{R$N*T<}Wk9DLc1$`D7Z%la3HT-yJ$Fw7N3ywVR|t(e<|lWWD}C-y9x(hJy_E zv=9T?RA?}ekoa!r?f$a|tQ$9s=0CN5WXxHAicTqIG(&i7hV7@DZ0N8~xlZEHlLzO# z4{wlV;D%4Z&vc`GH-=2fb9U-(eb;OBj$#Y_$)d%Mcl< z&EPeC#ezs&b`vpFu!wIuwR79B+nB?U*kt40sN38TIu2{sEKeCeuM5fhMa{-jqa*UC zAnqR3Ly8tr=PMnpxH^9BMD@&UlM(`~}%)!f*r|&_@5z;aaj|r1s zlf@1SeSE_^x^szT;7w#eao>0&IgfYptjegQLIkw-wx>J27IaP|9H`+DQ7LjboO>t> zADy$@Q-9Mn{QbPU`&8EQXw?+eRF3A=q+dbB@jmso%Z{MRbGpYNME0w>83m}7{Py0N zQa?bwo!m^}=T?9+_CguXObbfOP?76L2VTw(5aBjllfv)r;b`=^c#qa4(gg2Oyb@HU$AhwmXOWOEFh>E8)J(c9+Hxn(p{T3xhIce zxv^FiU8WjTskcFSXp@ga@oTROU61UKS>bDUWor2s2^5U)+i^X#gdagQo-i8tjwTtILPCrwMt$ z^V*i2%iI3cPR&JhKs4JVAY@uPKbl~51$?=(o5~AR8`j`UPIg_2C~W>i8i@=uC=SheGvZqr3z&K7%W6 z+pW}uCl+bnc`VX^L3Lt@rSzV_Ic2VQwJ_%G!b;%i~n+i7JP_#PCj1^a|nhvyx&h(}|GIbL$UvJN8N zKZNrThe#NqeD~#%WvWc`+PH^qRHAO;g*2^{I}j#5X`Pqs&KDw9q@bVBp9EfUu!4wn z49V|JM4S)UnZKcUk+-U;;yaPw=-yuAuWh>{c{um<+I#0RAmNuVs;d@T*ST#8{8?8u z1-eVPK7=+!6ADc?bTvA&FC!VWw6Xovj+DjdH>%(U+lRUkS5OXFZTM_&trQeAlCadB za*=RqC2!uEQ4Zqiy8KWJ(Y)lU4H3?D#f=3`v8joY)TTx5#mZE6DWJJ<%!1vZqmv#%1K=_cv$eAEC$`+yma$T5<@Y^0W5+g9>>ll;6Q6#K-yx zSZ>QhwZjMaw=SZXwGy#3ZlKPb=4b?*2Bf@jBF@8Ehx6?s&z?NA9^__SIcOzK3rfUa||srE%uv zy8EQ-cvBHSIgf%PrF<*-lyraPEmr*4oL`d?Xf85zPbWVD-?>3C-A?UE=bekd+BY>6 zm+Mrn>Ig?hgFp5sBr@ie--ayC1Dvj&HR@dwfU~NVBD?dy)LVxd4W2c^{e&Avt0F>*H3jnbnr9!h+Tghp!!)Q@`rqj zsmA_;Fl4cG=~7(c8{HM&KV2-pXJP_wY2vlvz<}(+6fP~A7`-&KQ3J#gNIjds4&i_H za&hmXmiQ2iWprHl73gZ~4qd?-L@eAfLa75)6OT){}~3_oYHwD348dQ-$YUj>5L*# z#JtVO=S-Nza)OmmQBF3$Ohbk2Ef){GAfcfTuvAIdn0-&Cq|p^fzJcchAEcI-oDPBW zEA}D{MvR|w918>T1f_mxIr+98pKSqn!&C5d=#dVx+=sw79Wr z2d1tgGwOoD?T{S>$w0yPc4r}AGIQVlE@_j;Icr9CeMrBGC%h)xeR#N-l*>8leAQc{ z3jb{Mw~F;K21|M%RU9O+b{2MO{pr?i)R#K?pfzb?-IFV)#(>2p4PPUFp}DQahyfE} zX;onm0Tjm-{?|>Si$pNM->p&_ijNH&QTupB*|vL0plsVZdWq^J{Nuq}nydJ{H+6dF zY6{)4me_UVd|uwRVCTMHw-73ztMMrG-4H^Bqf%;z(M@t#H8X_nXtk6R?-0384y-ov zA#+u3RSNphdX>Dma)pw#z*}*D<%5pJ{!;wXnN4&~3$9{5|8)Y2J5QTJvZ}&gVEmU_ zX$_BrFE=f|zAa!WwIbZKc#(L}(yLZl&uYRiy`I@^s%WwILGg7TE3KUt*Mdr}UtsMX zMho(lhkxjjd6Xl__grrCG;pr$<_UMLXJ)LcZJIqif_=4jGgmuS=D+lm5FbyZ%p3ou z8e)7GB4r*Ou_#y}yE$CuO^LGg|}^y%Lgt?HVC(Nzzj1pVv#AQ zj8<2ub*-OJzjyjdNdX+A&u7o)dxsvQipH)?LBmi}+#;}76bDS4;)DM7*Q74A<+@|~ z)Fpc=j%|h23M&o43#cW#qLq#~h%AToREAbAemNwmy+`4>EkB27aAOE|2AtG=B3HRoB;7(6mB0EZ|KD*b+^aclc5B|G@7+2s$H* z5hax%XVbn7rN$#mhvT$#cH%oGDF^ShHvpB)zs2Nsn0TamU1`$F@)9BTAWco$in>t3 zHaxp0htUuuWa}#`77cNjc8uAI3L}PsVnbI8Z^;iMn&OpWTA})c2UgsG!Q}c_(s5)d z*Xc2wVDXL>?b?JT6eJ_EKW9?aqt)w*J(s-8WI%BHN&WZSHGN|Fc~v`bUHD4B_3m2Y z*V9~;^jFfCcLEcw={q~CA=2h2#EL>k*XA^i$^=M_MDi5ME9JX|KE7wo+wtTlY29HB zF~RN~K{qvSLSSVEuFw2k9)a-4NSbnfTPMcWSCk&*P_nzt_=@Jwd7QvPkd$A<^875i zykV7ye9nktF_S;r@Nj7VS|u`qkDAuJ%ixEhr*Yf7$#{{-#uW<354zZOz5=B#-rkV7 zj(0$CgT>x!V*_J;iq(2Sz z2c6u9nJ!G)u6r0Y5wfcn`SK;SWnC`;&HH%xun$tLTXik01S|d z4_q5Un(dz?=kkyKJh6Rytr1G|WTqZ0=-Fin^2nI_<2;u!%VB<6KPh*3ZPop2IxB%Wzwl8`qt|M? zcE5elwCmXp%BD00isNp(^A;`CJ0Z3Rb(8ii3O9y$vQbnqXGl8CaYO8QvqirFYV6*$ z)OrT~R(i2M+Sep3ooaj?GY??UL9o7Zl1y04)0RE*8Y}vfN zbMX8FTzzf=X{^`ial$2i*$)w@h@Tr<>vQ`$lNHb9SLP%>v{XfoSvdgY(a51aeqUDw zC8tKc+{tK_V6Y6%IpDVkau!!NbN6o5lq2%T(h9~A!Nm%9>0H!^LW8}d3a_gb2XAT0 zLb(ebxRmHTfL(c(+>!75k+4BrA{8uj;nF)`h!Ekx3{{ts2UV237ens~!PB`zy@cBV1Qax4Cwtcdk*)#Fjv+jzZ*OeLZakeDkH zBSx*qRYdJpqZJ_qP?^p!*~&`;N7M?_Y)|`?TIjbZ7p0^vNt0||>$*u0*yNXSjRpQs zBKsRV^fPBImDU6K9f1JNMcdA8Dmk=B6?1KRU2+%PEaQfL^sA1>>NEV>zG?RFEYuIj z9*15hkwpsZ>{0!z*F0{)h^*Fc(Y}E+5Y=ht^5nG%e!~g3D165WS}&9c%>01Eah~>D z^rw`>Cx%f`rEY@y6>HvD!@_R&6?mBb0ts_On^Gu1d9uB+63n$#^8Ec=+uOc}sM`nb^ONWckwnv3Ol?K@&` zdg!FuvT03)URUuwlaw|s66nqZe{1TxTZnG-4YMX`cSPsX0sXCIAvHIgFHR2)Z}jKS zBMe?jLrZNIPBC?OLCIQX6KvLg+od<8T=I3Lv8iujLP`S<@$HUw3e98 zJ3&W}=I)hSA9)gzZIPG`opjQ*4UXG8qv*%EJf(YO zZVC0*;jQ|(D?CnNoQYWy_G++mQLi|oa6Tm?Ia>v7E_tVN$Q|C_HIBQjnVu_m_3@CB zNtkk7%oG2vo@2;vWrIdO-OKr81;LVWgI)V-B-OeKPMnHPzG4jy)}-!m6%H;D4FRR{ zukFdbIYGVcVCCGl%H_%f$MZo@$FV1Q{(GCFIn=W*4uVfM-Uh~o^fSKqAKpbr@W+(i z)d;kx-0d6U)Mfn$ysnB8eAZT{bYfbhYSsC3;bZkZCUj+F=2}7XV@vdt4}zb|5r5I% zldQ8g=;$F2jb9>6gG=D#tfovnhqgIaIX>jcM#PQXe5ahaK3d)!)^mBeKlV8AH-;N3 z^c^u8%I{-_bp!6nC8p)S!<{1VCWQPlkZNUQvU1I-o7ziuU0f`-SlJ~;77l-JYyKfE)4#W#!VZYE1e6+RKPwYz_PV-CX zayOw~Sc8Sx3sEa2EfJ;dB;+gP^tOrn8>qEa7oN8t)V`vQk5%7br;dgSg0A8>Ln1XS zexWv6KU#^rZT%Al)fRM#fA~$d=^Y@QdKH*+R(L?g@k~ea@%x_ReygITua)n?)TwXC zH^`U!843!7FhDtZfH%M11CFWIHA#DwxM{gAssBckF5;djTzMH&O#H1;}XNLJm#-?I`x zud5fe84wa`56j|Ut{cF&#h18LZXKp@`azrD#e|^K5@TbRYcR(oBo9mQ+Fq{lZGYso z%JNsJSl0u2tr|6r#7{iw=Z27Q z7p<88S;_&+YwEfjkf#y9ZX;8dy|BjL66ll-0qRc<`Q&!4zRQQ%ivDfNOgUp@Qr;MD z_%jmv6MBu+!dsNYv*zC=`Xr5c8V~x9>)NU4=L0&$bz^g{ny_d4P~~~yqQ{eI#Xx0+~dyOD>zYyH@Noay1mYgT2a>RbK~dL z2Wh4)yJWUCY&o!G+I085Gs*jp|0-JbEO|`X00RZ-JCSTkTHYU-PS)imv{LgM+Zh?D z_$he$zM)bMRdA#3sa{5G{-x~kShpTrJ*^X*4DAzjfle_DX_!eNx&=yP=2BQ_c@uFwjTdOA^b_ zgla_~FO>&FOLW;XdV=ysXari2ed-{Q_Htxem8?BBEt_xdMdt__hjtKiA)egCN=|WT z*EFL+6FCho$&Fy(rYD4Z7&Q*C=?C(>IJiS3xKWi<&W}tbKtaR%$QpD4aJ*M5Xo8OR zrk49WLD9QZLd4s98Pj-i_c3)KyF7)cf2iN<6^A3I%D>C+!xcg*FcZ2M%6nbtxoNMd z#Gx$8i@a#W5FRx7AdFrzMNMQRz<9}ev(VG?NJrhmf$(A5m2Y+J_%@jHiMzEc}3=I(XbfuzDcu*tGcaXvB zg-OR!IwTSq)8$m}w#0b*d{`d3ceNdvYt4LS*v3{pj;7*C%m#(|~KIngjzx_`c`ZUx?fVdMaF8__3B9|cj< z$vEfyGpQX7@!PC5M)mW?hN8SBy8FaaafuMeX($OrYJy^kR?{DVZwCk|Z;&FVVTfTI zQ)h(X$;8Ssie0|XNWDV~oeF1o;>NwMFb4BRsKRdeY)q61elUmzEPV0SlWt6LKoHOr zhy1XKJSy;76%+^YNQ}KWHL-sZg(v$$%4pa|s+~Neu{|FefYV6D-Rq)Z3HeAXjWY-W z-IKmyY}z3iFP@0ce-aJLF~JfO8pq*dE#A0FTX%cBd~Oz5h?K49&FuyoB6xA<=jZdv zlTlRaF$_!>Cf+}(IR*U5bQp?Cdq_o6YLXjiS^?B*a3qKeiGZ2YlW1d8f|J#pNJK(D znk+l!1}0CBQmKU6R{A4K^ra^I6g9}vD&%OmtXusK=NzR<;^i5499-Z{V`L^$&f4W3wtD?)dUTm);JztayT~ zc(XG35ZuEOU#>|g*L16dBvnE#;>#^udeh*th-b2hCS~%Z3V9MPi|j8?hRfGWxYnyPnxPe4E}zBBU@)eV#DRcVJE^2p>y;Ttmhqjj-Q2dmV*hCI>( zno}+w%@n7Uzq^g~Rvt<2E6OzUdcoZ^WJ?$k#f=z`N#=E_=5gUp(TCfx4Q^g>)Ei2H zZA}4fnfT^_wkEqloq=L|=4Xv-;b&CE%7?t+f$FM1x|-OOiCXCIGM2w@)7K;@sg!i~0VFyI$6AE|-UZMT^}6xcri%{&MDQHF|` zS2aVHinAYL?*4<9S&#L_lK~Hu!^gbIr*~L*tH}jVYKH7*z4+`~BVS;{G4{^V?3Mto zp7`k#u$u*F4AvV0t<%HHzF9HEHPVaOZb)V;eYMfPcr>X2h2C^*D;N6;!0SI(Wxn5B zo3dM{z`h>N+yWYj{p4my83yAbvMhEVy|=`HN58S8XUcpsz1F8MJdpWuRasptBg*{T z=-UPZe$j4OJJW7ho%x=bd35%k8=v31V7@n1*?sfv?qN61-1n!D`4_%DqOI42-68-; zz85(GlLHDA)?2Z9>CLIz$AwVF?U{vLioS`2E+=T(baUUE%UUIu>l2u$*rBCA zS;+j+ET>dFj;nT(qBJwazZc-l7g>PN1%nKLakMp3hGhoWM>Q<4Agm$rH*Qy!9s0`} zf^QB5hnHd=gsB`37ts%k8qA`~qw7-SGzd;$QQP-y9PE!=3uO-r*0&VVU7u`>-;Tyorg5 zj{d1EBk*=G{;SS|X(ika#xZ;Gv$*MZ94I^boBRHb$mU1y&4=Ls#bC6u1VDt>2Tk!g zx8ddKxsz!YT(-qor~nbfDf&+1aCpG05yi>1wjHZ zf`1I(*_i$t!QCGY-~TupXA7ggRxyQJYM3 zj-zgp5oOXGHi=~00ah>$#@U)8$DoxnbYqt3%{dD8#t$mNq=o+}D)CRDjdlV%=;YzR zh>)@hO;Jqs0-1rO_V zmX}Fhz*X5tVzrp|$B+n~IdPWh|DnhF3Rwjjh5gB_Wzq44jGVpabLY#x!`%0rSnyY3 zjsH|v|B=i=1EphoNY10!=&V`d0rg;eke-!nZ6Z^7j(FfLRhYfRR-ORAp|HSDG_V73 zpp9o_DWu(IW``$Jq-Q+KH>?ATxH9FFPc^1B^M2_^H2Uw;D#k-!0YH$Yw&}Ktq@)Cu zjlCtwUiuUWfXm3lyk&7vHyw5uu|V&$L-;Y32jKGs5`eLVgwMlcMkSnc8J}u&>|r8T%rQIfj8pfhsY;whPU$8#1GNKhm@^g1 z3xOdukO>W#iPiu^oY~9D(JZk1pN-D~`*>SsFo2D=W{!yr)tN(o1f>7@G{!>5>0k)B z3PI`s-)v69vVkp2JvcfSIco980SfKBEX58S{;?2XFi?2`T3qK7i)`16YmO^z@fB5&+1LJSfvhva;3x`8;U5xhu+ONR*=C z;hdGDv7?dy=o-XARe@~~%yRm5fGz8VbaDm(UoT|%LG;;u`dNqGX#3CBGyG$5FhVv1 z+v9|oGS+RMp_IYYPt5|W4&sZLQEJ}Gf2IWhUWes)zDV}5P5xZ#EU1M6Y6H|T_Md1^ z3kyqt>wW0~{uZ?*|5#tl)aCs5L(CqL0oUwSKE}I{*=V8FLWh?bDGHMx+7I1e3)6sc zsE0Eh#}2$HOLF?b@|n<|)l&awvfH1GJ*2}kAdH|ADeAM%ql`Ad;t~LzU^0sSlT7#V zX(T!0HsZFj!WB>qOw5~aa;Y3tZXPSW-N5QU` zn<(c_{r5w3*o*RvF}H_Tu;24k_~w$1F%>IA9TY$b54^s9DO67MKn}B`#5im5*Rm zOIqZ}?qVgcKMMwDOMmC+xhuOUlJ)cpMe8plO7@ta`~F5s^6ylI%8H_ak?~m|{X6dR zFGDk2T>*AERg(`R^WwI?oxmuhen=Kk|IeIj=@fRpvn42rPFv18$ zCIZZYh)<56tAB*fh|}@r%qX6=sm^SzCAS~@V zfE{q9Aft0;OCP=1Y~s`6c|dz&r7wpn6xg-V3+mNa^p`y~cP5hjHp2jH2~b8iqaS@S z1(z9(eE00n`KXU|_y2Es=UGC&a9p!;%722^VhziHsT9<1goevZ=CX`JV;8c_$<8cZ z$z_=rQg5~ZlXMNdJ~qs1P{cO&B;9RctSmM&Z^@im(*{hu znw_M}R(fWqH_W-LxlHD_r`vwvX`}{RbF7%8anOUARWU@dme}~yLN`+NM>6dDmat%z zKmrRoInUV!M94w_%%v~``zq^LY0H^KLVj=s)`}^gs!xB<#SG9l23@l)-y!nn0!U2v zLjT}aA~K^y0x^RjDg+iZtKzZ~RzK=jS%&H}j=fO0`HBkjSM_Do#m$4Hadh9DLjW=6 zO5f&W$A4_P#1FQ>oQXa!8-qAdvXx}zl2r2)sLBrRg27nF!n9o16K-pi| zld$rZ-NT@qS$ARjlw`E@(!~EzE_-9Fsmd{9?h*7 z$}WSRT{m=gmi5ed4ru#P*Z4n%6Bccte2kQyU6R8I!(PDYvvT<7sz4nJ{2r@HA)t-U z??w5=`qU{3Y+6y)+Vr*MYsodMSO41nOX}6IMZbvBACufS@x9G8i#Q$>sve-SWJ~Q+ zv-2HNX?2HCKmGRjap0Y6Pj9<#;5u+}e>thf!o3GJuIxo?pe*y^RD1Ra3PF3K$89sl zRcuqs92o7?sAf~eftzg`-3siRxKVEjuCfDbO4AH&IGMk>+4e%% zwb1_j^c&`Z^S@Yl?t~BXAmFT)5_=74)?tOrqYn>VXYbfNvhZ3zPW_8D6CP)Zw0{fv z(0Npd%je+uRcuOZdrFPv|kBh!8$R61zq+_Am!Mj0l10P>_eJIGPjVU^c(DP@EuP&bGKz* zz<=(dz^%*P!&wi&epmJYVn2mqp?$C_s{w&4d_L;fkHsFPGlv7M_O)9{y$WiBn6U1_ z8p88k0SxdzeJVz?)xPacb_sFE`R&Vun&aJ#^m4<(7=@SFAPH;ZWa7g(LT?r^>D+HF z&$i`D>J?@q0w9|0X}}WDS$2rs761ymby!Ewbd*NDzGGBHnjxz+T*)3R8!pJaxc2Am$$pftJ>{Q0RpXi~;dHrkuSv}r0lAmDBUy3b ziuVDibQo#z2g)#Q%M56GPqH_VKR@I_-EdAbR4Se`DlZHp*nlA?wP?QaP>K`u)7cF#hIb}8JOpd4$!DS{2yS^zbj0D zZW(My4%d^)ewwz^#uCx#s4b(pmBI2pGk|%Yz;aAC`vBXaqQwHu{7CxTbh5xM<-KNR zKz+@`1IYTDTH`-96IMoU!43Fz1&5_`ti_R;KXsN*I72 z>=iBF8IR5!s6U1<;0ynMhwHlr0K0=EI-j>Nt9qyLwkx8Op-<;!hQ47TbK#7vmc$4r zI~=B0#Ibzv@4E(Om^v4~e8Z>zzZ$InqlPK8+SmTAhJVhhSE1kJg}8OVG|0t8*T1}zj3{LBD{9XigF_iylrAEyGt@Ndz=b~ZrFEaFQv znR8=J_LCqcd_MDE>{uv=`yHEIecgY3g-^|fwDa-*C#M$LKN3ORaAngmRscYggRy>h3kzRs%UNAAT@t3SW=X(+o?6OQlYReU z0GT6L0u0-;h4!)uJBt|2FrvB6|2!D~24ngvTuV!sH$t8X{FBnbEZ`Ry0K;TaCP-)8 z^C!vy`=!=ki&&ZhMSAwQ&$!)Jo|Jtipv-(ZIM};@I~wZzOGK+bxYc(KCdPTd%tYY` z(sr{djz}sA#$w^0va1Gu-YjK@p;5~k>@)HnTQj-YRyt^kRLY+l4}ccf zwUAA++{c$P8M5hzD)*U8{$COFfUxr)&;o0Hn*gbp;5rf;aAVH~>Z%~yJA{~Nai;92 z)47uQUnNV&0RZ$?0RRp5E}N0h$wV_I`iG?V|B0Co7McU8DD{^m=jKpjoAPzku$Z~( z2vmekv%ekRv%`-ctely4_|K(`78>|}`(3vt*CuC)^JXW_QgBD;Om=F{SFxFs%6s?% z74UPLGau(H%wPjFx(ARhKFJs^OkXki(huJLx7R496q}L_9f>g7%i@BVd(b;2@^8^6 z*-D^<<5H&hXC1y{T#&5-GC}mY<61-YpJNwhU&}bm3pWd^F6QIPFNevDFZ^1P>a+$c zTlUt8$yGkdiG3^UG=D=j7XnxfI|+}yFt{KqD^&rXDKu=>rhYre zHFLMG4UqWpHVw zV#e4MUIr}6e6H$S9V0vNqf_T0H)EXt06%{RVRU@OD?_BY7K$`)RRoTIVpV3iHlPu^ z0kq1VW0xp%jD0J84I~aSKk-Nl3JF*O-p#fjH7vrP*0;^un=dWxUnvp8%7qJn9P;ME z85yyeq~=UG0~i&iHf;9QaOMw246y4*QXFtGfR*{z6h{3=qud3hnqPr(IffE`OHT*Idb&jSrX0$ z2aulpyq}k$Zj7fzVz`(tt%Bv-=Q-BGBF7)6{!cX1xcCJ?#_>AFC=;HoD7NsNw?Wo` z^)btFA#lVUZB(8OlD+b^S^02gytj;LF*5C;ukHI(SoNJO1M+DsG#ep)PsQhV=g+>S zh666+3sd#a=VN}{^{eS)uY8~u&^=#uf;7j(shVsQ8BYo@2{?ZlE8TEj=LXvz%_gdT z)CMyL5EHE5thi^2`t+RUWZksN#4)(E38~@vsrT8i@}0-CE5oEs?l*XBFSPAZG0ufc z$S$jo50_Mk%5SVh44PC5hk1x!u$$z^8Dx}}+Iwy-)P~-Hn$(kH#NO&1z1gp7*nkOE zx>*=+htd@Y$@3npcfE8r+Mn^r+sFcZI4DF$xwI^CAZs-1ReRCX5-<1#)x(wQ%IZ2P zj+e@c(>Gr{omcE|0p^NRP1dv6SBwi=6*_h4Cc@AzUfgioj-E*znIvR8sbifAvnrO~ z+~r*PGVYa5b#RN7Z&Pn}4JHnKQv>zz0af`8HtFR7exfLbwpWd!S<@Ss9O`{K!}w!Q zhU?K&TT(L+?jCPUQV^NvvU5#Co-*2M>H6;-outOPtm6>a${mf4N-ru)I{0gJ96-pH znnzM&gF+z1^W^a7RlTVYF~R_{rn2a0rxE5ZX)qRnEsI7sHy$3?N6Jn|)2_AcAoTBW zkWEP}GH^RO`Sgx@eRig?W8p>`Y8+{nQqN^~^OV*9yngFHA_P9PL-l9ro>a|3U znK`)T?i=rQaiF#jIBB-GPhTZgoc73*X{A^tkJ0u`3WX?T62v>j22?>_m?1ULP_r?< z1d1$~enEV0mpbVfMF~{_2dnJM%|#Cahvf0xohpp2@aawU;1&sOX1I=@J5RRhE0i$- z4P`v7wCRI|h`?a<{C4TX;>GW+;S%`3d$yCOJ)@G44j9Z?hYW?XPI_BGX55P07&JGnXv#tmsh;DW9UhhKc9a*37gq$^QyxCW0?Xw_OUtJ zSb1FR^08Jft{p-6z!2x4VP`)Xh!HrbL(|ja90CRz&TNLZPwB-vhiHgLG~-LN?Q{+>af?ip>JF*Y3$mFx?J9s8mRcK;-kx&^ZlDZp+L#=Yf+VV+);Do5eA*LBi%f6V z*y^&mHwlUHq`q%bFc82-o0w#`r%*_xW8+?vNe0RUyXST1D-0ZJpH`~DQT?Rwja|4X zS-MIlpTt104E?RE23?A4&}fT`)%zS#_cKObdN_ZVxC`)o7Vy3k)^{3|H#TG+@7Eev z8MHfd6yvMdcP6^_;dyusWHRb>N+R|t{IGJPH>&R8mPYT^s!)6NnhZx@NW*nRv06vg zBWJF|@JvVdz*oxatfkcNHf(*HVk~8Rv_A87nPj6D71{0S+@J-od-&AC%Tff(bHe&% zgPQv9?H%mA8gA9EBU~3gVVROc#0dsnIWAt4qLPDaRchhE|MMuRal< z=x<$?Cxgi^C9JwwusRLXWoUs&jb2_dJ({D`+oI4HuZj<=tvLjCiQrIB-VO> za3avNtRy+=NuWxWFOuw((-BC#Ef>dhN^a+R65&ysC_E<-e%9vE3SlPa?}c ztsK6Sl~&s5(RKG@X|3m5dC2%(yY$8vuO6aq#_F8g!B0FF(oLuDMZ~L1qg%^D2+8Pv z&B)MHx2yhxf?|jel}N_=IuE0MIXe;2WXd%OjDJ`DS_#-0r``zs$MXrb+ZxY^FxoqW z!j8ZWPM_>=H8ft`zn$#*{Nl;CBIs`CSDod9og(m6_>Zx&lEu%D3iz(Dev1)JcYNFO zQAmSglOTJRxQE-h7L%NAfw|MDq=L_LCK=Qq&C(p=Jw1A+9!epw5ze^m!K5VUNe^7M zaesFYCi#S>bM?*8H|qUK5NVChq^#3nWhS-}^|8j2=`H*v+j`&g8jD$+rA_43_Ymx? zC8Aa%3T>$ImYHCG2@8q3`cp&Mvt&+bZ%g>&a_Qscj1&DWFeY9s(6 z#GlRE7OJZv+49t^;dv*Fm~x~)iKHSrcp_EL2w!0VPC1J2x!_n-C%H){8s^iOZIW{C zbbOUnvUV7~uCbWjdOy@HJ$ZYwiCRkLrZB~s0;#mX^B#uQZAmmW{19@Vxcvi-kFq(a z+}u%r``Q~2&HDW<*!ISD@ol}f;h4sK56P#R@g+|&lxXrnW76Tn2>!{Y z)6Es6Y&@LoY8+08Z)m~@38QjL8#|nH+PzN>(!kN_ZuC%;qT&d8GGd_OhIvyhWgFOH zrC)pbdB$MWxbWG{+84tz!7iDt`%0@f`6r!ogz`&wXs3!-qe&x%w&pEW8|bP!hD&7NhkT` z+h#}UY4YteFv;ZniuI|CrBWc*M`5rdWuWxeWuPZLv@kD^p!9R<{>B3%@nQEB2hMR6 zcw+Yu5N?keag!ID-SD~@4d%m#ie0@!22guj-FW5ul+=1?9$Nj=Ti+eP(UamdJdkCnPPht)jfWurGX8jd-wqy`hzbz7#1&$FU2fXSn_1=W!1qp6~6 z5LET%`)K|t1U!TPP8zfU!qvrid&e=lUMh+4<^D?Qa`;(nyxe^}+M5(AQf z#N`Bqn?GqnpwPM9ReMAC@egbm86O5udOJJ}Pf8?>(ccqRX*(9BUe*rXw#l|@Yu`Td zK1Y+#!4UPJGRkd&*+4CEA|q*-RHL2)EQkLhY}eGWQ`Lx0bsL-9as5}cSaI?=xR#{I zWkSyxC67*~!4=1s5=sZeKq;A+p_XpK^U9L+Qu}NvZ)>^fHzdfWL7b=IwDyNVlX%m@ zT%9*V_nkQpO{$-0*DWQYq`W1>S`JT5UxA%=Og;kN*R6VAGq!SlpKg-gIbBcqHm`n# z$!JMhQVsN2sir%w1zUupXc3d^$J0lZnj^vtjtx zW=$bnG|eg(T!KEm>m_w$F)seWVE#tD&RzAUyBbkPipdjh$dNJU;s!^W|2U~T+8f!( zhzQkh>*@hFIyvG5&NGr|=2V8%nD61h>a!!+GGSSUEgmBsPO8GIgNS3KafMesowq}W z2xT>-8rg>?UPp1}Vk9o~cwm}Cqq|2>`mOUOCg1o^YxS?8vaEUN9<*fA4U} z_3o6!JLg;tljv?xNX^vX#d!U56-Y<|_zan5@*ranD%oxgTRBx#IXpI?%%B6|Gm=W1vM*N*ZciEvez7@`!%F;g~f@8JSlW1_6nE#JgrzJK3iNg7Q_) z^hW`Q5QL>MB0OO-YJ>@;o8Zv2DQoTKN3pn@@5cgz6?7Q}YLxa;!l3Y!^D86b{=W3$ zhZZg=kxzVdAo8koh<2}yiO#gLLI3u5w?XlT;0KgP@Fx?}_Y>Z^$yq$DbV_!8sf?xD>tLYBtdgW_$Mdy`C7S_BQ_d9_WV)p&2G(Tt>1A!}N; zkNN%|Nnak<)YY~7y`Q%)ZB@`ZATpIYAj%*jGbF84QBkNkFq0~3L)X1CP|VFfkEVGikor|M;5lzO0|KZ_^1%(lQ?P^qxt+$<6(xw;uiOQ>bQ#7*IG$R+=~=8RpTRa zYLgRG12KqC?xou`69|PeDhRqN7@TAd-|Y2GnQ(12iC{cI*44Mt0VRj%EUHvlDPB-u z-QrPFVu2nHCi%xr10t80@*#NDrNQbK&|fLgeqmN?`^G0|TN4yiZTvBPF@K>^lTL-d z7+ccSbWTNnCB94VaHFAr&bY~D;sBc7Ld3zXi^PSua<2GTHJxSn{_ zA3kFBB?~Fc_zClNi-dQZBsqSKq3*A+GmDvYThuyM2eLK#%SP8{71>Ek(DhQ4vC9oz zSB|jt-EYx=;>?}c(1y5V(g`M~ks!s^=x-r9!@&AwW+p|R+20CV92*ZuoGY5yqev-x zUDz)`I1xULMn7ZjZ9VQC6k(Hc%3+u>8a)Pb`nP)F6;pIm5Q{1Hg4+Mve(rTXpiSD& zs$pc-CQ8!vqsA9P-A9==v-S15fKHbI_T43h?{%3F-fLp}}t6d<@!JZyOA2ni}|vtW2wVQzmLVl?LsA##L5FM>D*E7$k zBuvU2ZAyd+smOlo_JUi!wU{>hbs0nY!g*XL^o*6R4bM|jCPt24=}4_9=sK%%4h97c z20fE}6O4XW;3Sc}(v3>4$7c*_M*nW%-jPxA+hNu1E+?mnQwD!CLf73dk{e!1NDI8G z-Q|p0^+yHiw`K5QnXOZ9+|qYT&`J!G!>N+1zbWrNF6!V1(_Sh#9D!-A{$w!F(e6{q zW!0MOSeUjA!tu`s>o?nh{RRm|66auaa{;ahbgtB@|K(syu~#)Yuuyku(ElTmCWEor zm%xsb=YuiI`91Cll~(jQY&7R@QAt&YRaRWkbnG)k*pIT}kBRoy3dw`>pp_5~-gW^- zkTc_J)aYYL2Q$$GKNd|5`+wDkez-79A` ziJI>5aM{-N_aC|sq)cj++pQ7^Ov;_)LWf5nN8R6|cj96+(XdlCjRT(2)IpV8nxeVi`ukWc2MG1YCjt40y_ zJPUda#UWq9e@BPBko>bT0$01tdm-Xa&9IKJewPO~83duE-;@hdxA|k44t=?$t-9eF z-Eb<7#ksM#EOcxAwA&>H9Q5(2EhJyk-N|OVUvEZ7EN=)cdGgZWx&d6=iqF(V@H5KM zvsI12>17}^!a<_8z2{Lu8viydQ=uF0Z;jcyR)ik*z)sJYh9sqg&8HL2OLX=(zj z_)^y02}JH-E&q=vytP1)FR7~`6AHi%d`d0AR6;LL9jhOWTJ~{DxpKO)C0KBhaPcke z3;=0#gotU9DaiZ_*ze;YEZ4i}a0ZNXs5t-1}X zryE8OY6UI9m;g_Gw*@9x{W)q7SwkN{kwa`mT(1GrsjWCfh?wEbaf>&HmA5V>Ni?Of zu3Qy!mfcUj)iTz#dJQq0+Dg7MDD2EuvHw`TMm?_jTWNpoNdd%;zm+YM#vzD`O1c<6RS6x)F1bV_Q&jsxs6hJp zy%wI+c)1f-0549X5(*SWl9$0P>lm;dOVg(hwh}oFgjycrZ#{N}mapL*Cn{$5)4M*d z$0wV_7fL*nX;nw~3Qban?;*VGnISkH#BVFNe~uLW?|^#|5>a@5-FK1^{UUPS)w8P} zL$;>a5qs^;u$M=$%jPlG%Nt=gfD&9vkypg&$}`u1pxHgE2wF)(oF^Pv4tlXpuqmOWBS`qw>@pC!$tas9u&2or)Kf-gPKW!Du-6QBCEmZg}q}3!KT*2W$BQuz#L*VR^ST zgF#BrEfmef%hBLzf{Z|()qxV<7`5%i+N5u#*WQ8hy*5Rh#gsuBV9yOu4)?}a_=Eg} zV(3{Owpd?aKZPq!M@Xz1SURdpm=K3d8vP9@-X-I4Go#yoW8=8v`a4&fz^ON^37AI{ zVDV0X-8f)a5V}sVZhJScQ-Us%$rFz!EJmu^3Rzm&<`4|^(%!B`kA#b+{gfSa2bIHF zE&IN?X@6_w0j`+*n<4}Ni4HE6>u)CK<;`WbR`$3uWD>7(?`|vx(EqjCNPjhwh#tY} zYdfM43F5pZV)nv}%LcLs$yrA`)|Zf!>?PsNI50hNr&`6HT5sE%W$pIrwoKfh9?o9J zWT6vA!CIIRWAo}xI&CR;`&F&D(sC%mcxjF{UIF&bQ<)tz?kNM7P==OGG^9#Ly=}WyCeV|WVxEC}8% zvTQdYq?NPJ67{pA#)j9E_(^@GfF|U7!=JE5j>^9Qkn-6Y{bvklRR(9N;Vo~zlPN|d z(#>FF{w5i$ao)=M6`$RUn*MCla{s=}Wix8j^(_Qj0&b6P$I{<_r$=_)Hs{#1%%NNz z2Rtk;IUD1Us+YTXZ{PWS1-^A6bc${;5w8fe=s56ppuNxqB&eN%^(pt4BLU z?mZfph@@yf!hbe8??GJS>YJs7--YE5D@&Xo$HU$dpksF8 zdL?PJIzxO(|9XB8#H5fmen!8Dy7ZpQEwL1ylXvuUl+Xm_%D~SWXw`>#Je$jBXa02%pZYDb$ z@A{Ljsa4U7DE$fF0k}CA1$NtZ*3(D{M1S>Kk3erm#Z&&N^62C(pi$2!th*+Kz(!TK z!ii=p(tU_p(aB~t=Fpt0Yzi&*ROQ>M9`4C#bPy*!`l~dpu&MQ`L!EN3Mid_w*CcWG zgsR>7yG zH5j4stH9RXSf_2yoBQXMz`O>3TW~E+PV*)iBHd>hq#m*dsOzl8e5+^<6O&S2!M@b$ zX0^OWom!W3^U~{|hrvgysPaxg!sm6noPGKi;MUKQlwUrT{YG2H1!L%;G@W&f zb#%8zEP9uR$ytZa#XIXGwcFOAC?1pPVhBsLM6c?=SW$nU;PB=n6I#9XW|;0xOKyWL zMURI~e9E6@;5chCReQ0m7*FP4{MF>%7PP*r=;;wSYJEpUkx+YnBGoUT8jMsyJmHrf zad`^M#M_{KTsXO!FX=k@niLCCm7I$Sm6k`-{7$N3qV>*pEO_%6*Gi%M>oT@z z-Ve2&me1yOtWh!$1k@z0*yMFIR}57kaMNb*0#~)R8C?-?^MW~Nmf=N`^Ih4r4)zSK zvDt#@U`jK@nQhmn3%Cy@$- zhBR@vV)VroL#t%YI)lAO4#QOJwbGQU?kqaoQcw^kJ4oFGtk zZ*5Lv&<5F_zX{!$$bDnruky7!4c%@x`!tnkTMqI{hH>XZ)>E!s2$~id$&RLZfR>Ve zfT@|^GY3JF-1TThB4C+_)V#`>+hzvU4bK7Py9C!TW{uwj3w|Sva!#H0R+H$}H?*|F zbo$Wx*Dy-POkj~Dad160SzEc`p`y$K9|bQ=QO6~(Vm)c@-j^A=*9G|KC$RL##a(Uq zImz(8;6SHK zOTa``b1RJ0i<+G|Ag9#^Sg<#fdeLqw;&^J3;R>+u2f8ZQjutsh4xT2TnjTZBJH~+A zG3(YdSFCTZd^~^6!aIDKY#(#%>|n@XiN!wt!MGJel4UgLYJQqSwbz+DOFO~vb9GIg zhdCF$`Y0LUbxo><&WVuDff9l|H6*;sf-9i+X|l&4`eJ3+W=deL?_rtg8QpH^{Pt+PYug9e5+yKT%)GIiWs-qFZGlNUTce%i0;6*Jyc zNrDA1%FTtf|J<)4B_~u{v!7YIJzj2K1e^ zshB7U9CIO8hHE+saL?COmBpsoS=<@SYbZIwRW;1~BM1KKpfL4TzxU~Uy>)j`P9t`8 zN6g1>?SMg$b5%}(q+0PbNnGMe<{dXUYwfUC853ucGqNl&e#@8ukfME~dqZ4(gA8^t zW0o&aioFU`UX}xU?EW{`R)?KcbO430b69Aw#);c zqa(zj6N(h)G#Ug-6yXk<1A~)xP?95 zl)Z!_!l*wHVqgr8J}9_J5xCfKgO;yTm@anAbZi~9>mql&RDlje*+NHdP9QzNNRe=2`N?N4U!eXi` z+%JIa=Y#VlM;6lFSpdOR&!dm`dzDsRJQG2yGros`!+{O9(jaWT|q~WQf zPGVp58E_kCwzwch)c_*Xu~-ASxV z8z^I@+eULpVhINxl6TeLw*RXdW%@YhSo5eX-^NMU>&B`&23&v6rr6oGAIMG2om zvKOOnAjF4;kWOJ7(nkpgT%@RSMs<}?gY3nY*9PFBU9X98OC%c%{gOnZvT5c^9;`0# z2gHu^a13e5yM6={*RkPyq2IfHT2D$dJyUrh+BO#OOa!j2GAC)N#=6oP{xGy<3%@v^ zd>?suVHW2{W-O5A#Sczh%19u$G|Jv{S|mbsVLNy2T%^mz#gB=NRZo+YEZ96ZN`Gp3 zL+bTSxtFcH4&RQbF2K6wBPwk8TX*SjTu=Qex_^sKQOc?si+w^P<$FPW%6%WZ^K-9e zBMfwtS4`D7TK`2jQ`OcY8e7NM-bU^z59TY`xCuO@To5E zU0@?;p5%0o$*mN8&nZRszK%#yQuVQGA#96MTfN`X$;s z*@^V$tHdN-q=)|mGvs!LF0ud-RR0e1DVINcK&}_h>~RShTxSQ<8hh^!k>NX=o*{5= zI^O4`mGoxj^7X-ZGxN=zv5UG_zegAVp2#8F1(3v!h|4%A038DfK*=pL{$+fnwgNf$ zs8mt#Aj+PfU8DVhh`XiQ72L8Kd4NAui)VepvAl1f$s8dcCK!-8YW?gJ3sbH1e&l}o zg7Uk1aDZA`QxH@rsSO6594yw^$T1BWqAYMP$iSgIhQB#T8aM9zv zb3uh@pA*I90O)oqJ()VDsvax-F~w@bYjt(5Un%yW!!vi& ze;X90bC#sCnqnczuW>b24DImUw+d!;t7#5ZD+JnE)vKOYmm$w#z!H62-qM~3?U!(t zl8%|O2WjRl2Rk;!5chV55Bi@*{4$6gB6oQoMJE{5kNy~!vd_-?N4|Bw1bxiZ99jO2 zF!}e168PKU+DPsutzB$e*9HLN+{~2~$dLgmdGd^Z9^C6_OIK8FhDod-I~e+`!2Pu9 zsHfsbPtc|19FL<6*@fg>=tt6RT=Bnpa1z@GwXaJnAD3?>K;pOsFq#8i1|DG)oaebT z!fF_ytITet_bcnus;2WiH1Ri(@LK(-YbAXl-RZekNP6XM_J?p3Mi<<_9B$SKF=XdF z-e0{kI+Y z^Mz#yOCON&mA76ep$vLgnh|bvx$uZP7Q(4N@(pyi`iyFSJ7BZu75wgi`F&BJ#x%*U&x)fTv2cx zGS3y1ACqh4Iq|h}J@VCRO1u+m+*R;iy_|AB&vT72f{tROIK0qKB)15IU~L4Ulc9)v z+HSV^el^9{8!nT5mcK7z77EqBbU;|yBYH{g6iWs+Bi>>Q)g0}L9$)yJaBwxKKu!}2 zuIRljV_cG1o#In_il5Uv;{iUgRi~-Z?lN;n9wg~PYV#PRPHtjgszxVhq8hO~X_|^A zUFekF)pHe6zJ8}JUPBwq_;19Nz8Zd`3n=k{?I|49^MY+bU_$3j75u-nuZC2g>?LN_ z3-10cpD`ix6`s0=rVMLvu(}%P9BP$>U98I0eQ||VjFqbIq~dYKUTsx{AZ9K~|F<)r zi!7E8HArYD@GHgEulbjE35w*&8O77pzPd=Ag6H@mS%<6$Fi`)7c+tH5GQtAwC@aQm z^5~OsBa()!q&J=Sv2?uxN&B9THSs@HExu5h%KuS0t0AFAfEm0j9&GA@4;E z%0=mB7Q|I<3OIc$Ds=INC<5d}A0Qw1F&7V^th4x=YBK!o!~%X_#lp+A$X3c~kyWw$ z&pq)@c6eKr{Lglufl_Rm_cx@!aE&YU$ErSJ{j9%tORQ6(?s+&eFL>jt3CjY# zCt7qX%tX_*vLybhneJKNOM)Bh?TlUmkFQ%!-^1c^eU-!5p0>y~u`;QHB3pt@Xtmn) zjx@ABEz*1!lUYliR}l+Be83p(rVK+TLkbhKr+vYMRjPVVCkjoyaH?{_GRbxflOCz+ zmP9?^K6gFZeglGIpMUq?BJobvAJn*{$iBUkW30arBRBojCWnfu#0Uf*_Rr=Hli^kq z(=+F?QKzdMoSL_$92~GRn?81DXbqG(R0~wXzhJUeTQQEP%O?R$+)IFUX#>bT@diU# zsU9_MZ%23NqFdrZFK1Xk@cn7EeTxJ`f4lg6va7|AEaLzXS}nI1d(Bb;C4nD*iLHu+ zn*07hw~dZjN3Z`n!z;gSEvjH0Xr~d2ZGnT+j7L?d5Quq%A(u``dwL~i6O;Xcu-=Ai zvfF(??2-ex-C+7(|Ac9ON+{*vdRxy!grUoT!1{S>A^e=IP~A8P`DLf#Y{#m7%*c

vFgZrqxx%Wa9!LD&_Cii;um&eA`JWKEUIo-HBr;+S-y0Cgg!C@|Fym_@ zY$)jwuh-r4^|6D^-WB|Sn`0sn6647sc5Zmb?aM!Kqo2uuYw9XW?^!|`;>NkjS0Rxu zjc(lKx#i$naZol5BP?zizushAwHxS{e~w*O)Iv&k1A%LA zV%NJ~)6ZwqND)7B>n+784XgV-71v{F!VP5vDd;>7KaNVj!o9r$3x*1pT8HDwWQO`9 zv68PqL!L>fvE>5-kz;(-3l(v7#e9T0N977$M>haSmBatGoJg9%x5IN%xuuAkmv#0&1;~-=V6q2j;8|!d@!av zh0qP(8-AONPMq2|TRU8&gCZ+e7htZ7Easi*=7SWc436;9)b5Dh)PBdOo_`s%STA98 zp@Y%tl}W)Yg*=f!FqXx|Go$w!RVm~~@)sVX8QOxQ2@jEd$oXWI1789K@tMc>*5u`3 zoT;2p-vlE zuC(gZ-GHnd53-`s))7L_1(O<+ zVM70U#Ua$5>BuzujXC-cI}RcZsx^EOT$Fd!TT{=nn}oQEX3cpVJ_n67XODFqtgmdU zJ#wHWmGct^;)V3C<^DmmCKNh{5zjC`B~b(EVH{sQyPdo`>A1XC+{U8>TKHMITQ+v` zT>4;DgU+S14xA%S3fK_>YQT2B1Iz1Vc@yI92)x7*`V^UW4G)t0QffogbOQLL{{GEbF!Noq=x0^e>COolzjVPZIpJa-aUIpiULs1GB+_J&nS|15pd*i@ z^qxI}&ge_3=`kaq=^s}q{>y}n@&GvgucYsTEkpHQ#cHPRoroTWLK`&GbB zPuxV&HDqzuzS3%4m58t|p2=DYiI8)qZGlrv*~S{!rc$6<)+A?L}2h^JXI7BNvxi6_4N`yQUmaVlv5|&;00_-tLNdHA~at7CB5G?{E zKYa^uTY^0*rnjttW>hCCNUs}H9ptLYk(pVZ;7V9C{e4x|o=f;gD znrrt9OuR9G_X*X$V6^y|x4nV=-xGYp==PRaDqFDxIXvIB& zl6}VrjWY3-cE#GmrUC9L_x*z}=}b76-S5TZXEvRimAx&l18r~twf{$V6bLj?;(Ji$S(Llw!# z2g*T|_BvYw^E&>6>v;`B#J}H-3*Jcd!KzQ!|IESZNr4ZG`&1({vi=0Gg>KjoAA*&L=B+ELVrRU;YgTWBA@@)DSLy=g{Ou-cdZ&A^~N~1^S&=tV0jj+KdskXUCFKj?mbiU_=*s7B;rMRRB`7; zpXlvk|GnAQKo`w0CpfR1{dqb4MdY*>rhdm07W%%=H9k$v%Vv#1#6&bX2VSv+b4{lQ6N-EM*W!Jp^G~5 zHmrDZar?U<^YGMl0mXk=tw0;V*97jv>W#g%06jJ*d^=e9s~L1P;z{l_z7tiFaXX{` z*zK^$82UhoA%e0!qcZr&drfQyVO87!-O>oQDYS0g!Rd8JZj8DM4;?7`lof(-KJ4Vk z?|Vg7=9|KfGj84alJ?4Z0n(R?@J!m5woq;1ehOb=>HaRN$kKhfKkGtWzuK=>f0SU& z`aeTai3*)L8MwfqZG{YTXj4qzi3A`O zg3~qrdsRA(sp%4@x6|Ad3bfcSV~>8^#1Uk#G|4t;OP=>ji&k97Gokq3q+?eEMRBIq z;WRx4XX3Sp(8O_AfLH^MpJzUh-NG2ESO33y@oyz*1}uuX9brBBeD@-;VsDkqy7RHEplNQcQtXe|%4Gk9+zQ1gC`F#~^gWSu zA9s4R$v(ocZ^GaI&hJ!cyVWWocY9Hjzb39QhQ?(69F4}~?;FCfs{8hn^AEF`7s0*j zo~ne#rBB{325VvP{Io_I@{6KdsYT|#+SfXeGg4nPPA(}ZIN1({xucEweqP-u9ty!T?E2#RW2}YND zAAri@O45vR;(`v46;HsmtoRU-y(_@|toV7nR#~>1A#PPss#@wg16Ui+-^cOSggZI3 zw3YgPQn+7v%hC=T{b1b(%`I!)MQEb>Vb*s+0>uZAw&)dFG%J%YX+hJ^Ui#OF6DZ;( zZA5l(Rh%#fb33uu)1d}2G3z-zdNC~yUgjU)@$PGUkIDD3i{dNe^A@zrA-;^OHjI(q zuK2l`7Yr^p%RD-O9mkzkF7J6a1%9oy-ac=iwqHAO)1UJ0IewpCMeX^dJj{)KV0xxU zc5uZa<^RyZl-a#9GSrFxsPSSI7Gx#lgf*H28l;pC^95&cqekH&o#>2V{V8#4{zxnP zag6uP$})Lz^llO1%N*GXxtzE}Iv&!i`>ri0isK=F(T;6E0R0tjO&!t9!=mACpWf0R zc$pNlkW7#B8Z5Vvm+@2YQchCfrzDWs{HJeO2Sm22OHW+t=BH6!y`|>U`ASFC;9DF@ zR+LC4tUIc#KX5b`=AtCT`txxPr%+%3n4r+`+%T(-8m*<&w|D{mmm>NFw~zxrgJz}! z2UNcEoBS&LPE@!*y0`dvjp;OiP~MKUQkz0dl6F6i0pib~!RovNH^lx5Cu-aEVR&mC z-O(69b?=>WCHqn0o&ePch%-eF1L6c4;*5$k?w^^FXF^L^c+o*4pzg(bZn4kX99y+V zayK}Ot4+}K-gWSL2;M#7gv3*du$y}lqb%|&e_-%)4yZ7qio%gQEnRINklzD4IM!ws zRNv$alO%odYxr?$SYnUSZcMfq%&=OcpVA!t)1lqmh1>q;c2Ktin0KY$P1Uh_av$Sh zyo!iWHf>5~PhOdr*y?D!H(A(+l!==Y%e(jj{q6|9Z;=$c2t!n2zx4g$l8$Z=s6{1=1Nw`+MJ8MPO5jb%| zP`cuf$eNMF!FMw0(f8uL!|T{1H|yyV@EIuDYvatm~t#zSSt^uE*li* z#5SXhuI+%%j;yl0KVXxw++N?%>!9!`0eL?L4c7yd01hGa%lIJ!oBL@N1_DRoE+Vagm4%{f%7qRZ z4h*&A&}lXEC@mvPv0itXjKd5_l^}hEp(SV$Xq5W`2H%P`N>Xv}5`u*+arIBdsC zOWJp9cX?iJ;%xmbvg0l>0=1H-b@*IgzTkED!uNz#YYqm#`dCrL>zjj{)~QE*MQI5A z;#%z-9GVGQShkdZt;cpGDw!mTJuoaTOW{~jPnxM?)=7`7NhB@1%9K+{8{WnJrQB@f z&a%;C)Joflir4zFi>YN#^UoOQ)DMy*4;a!0J}{8>vTTihF7P+ z9Jep19>YsYIFvu_ZtmV(JTML?47r;#&vE@UBeN>+*jCDW8@;GW$93=2lQxSO+}n-n zo4k0NVH;CU@Nu-z-0=9#|HwX3wyr^9ndrp5uvxRbT&_=;#o*PI6`ql6KLp(EoxzO% zw9hV4@z_iHvRO)5`}qlXJBNil)(e(CwEz^(;26-emXHvS;=ku25EtEt>7c#1O1*Ne zzm?YTQJQ$dis9j1CuNh&<1a9vpCY*0rb!ott@YL<^sW)r`O{F;C`4;f2L?O?G5xR# zeXqbnmuEOS4aeWiV>%89xW9xhO$!Qai^ECWmNzLf-IiY^#d2bjzbE+aQ0OE5DYNB! zM=adz(RIhg_rdO#Y!uC~Ct^uuN1lNA+G8}wYdnFJIrhsoY2?(S^~uko;nQ=?v+E|7 zleZL(MBCys^b((FlFx!eCo<&m8Xdm6l|X4r9rw+pp1m+rIum@y8M&(Kxgh)up6Pgn z@gN(HrdOD5p>z^#arq0_f>NdHi8m-wB5+sp!h<3%B-=!ddi&{074Icph>&h7l=Fh1 zc@Y})K`Jt8HO7jM&g|e}RgFkL-^e7ko%#5OI9-pCXaH6I<)wJ11`Lx=`}Ub#{-Pj} zt?CqTpaQMP+R4#62pfab6qAUL!x5Zy`Ac8a5_7BvsTUh;HSNtDC-wK=mQ7L4wWFiP z_N#%f1?p)0$dZVFCX+vz*2Ki=@W|{_WsrcmVS#d;0@G$kh(Qes_J>W`0rKdGDvjxA z2wx1+jdDD7o81Okq8)Z*1V@&S6u`_bJ7YcFdt)Q%;pJ=jpASZAJmWt+?)=WZu;41! zZBBR~Nj*`E&(v)EnQip?{rc~>k5tWR23|V)?wr2AxqtEf27VoJT*nv_qxL^?XSG7G zZp)Kd#Eo4xjLa+*KtECObe9ysVLdJ$UIZ}a^XD2%0L-!8rKWBtw5ef@5dL_?OR`6m zHR7DS8j+^~TAU|D?|lJou1AYjwtAIOvotwD-%D>fO`oWeAt>U3JywhVLE}G=*z(Ut zXO3~u+g-7IC-H?E}KJk_Rtr^4xe(Qe_f?+ ze4;0#sw@}(qBGuiQ&T58f&yR9DSZaEI_NbK*N znO5Fh`JC5*aY=2=Bj;fj|B9^YS)S|Az{?FbkLNu@GfxK+E(AYDiMjD-=Qo6H% zFNH!DcOe|aU)C(E`qfd9ZNhS(LHvO8V!l`)EtPcs`BNhHapJZ@fdj!t9_8+Hd}SOL z_o#$2luNxqIPfA^(ybx&OBpiaQg$A2+N4B&m9lCha3uUqc-#}==A`p4Z(G{5SoX>uG`K$KcHGAL-+3*j zLW+}WlM-mRjXfFWbmF`R*g}xW^SL`dlQ^D{Si#GczE5(5M=d7uD&og|;w#E?rL9TE zsZonjyvVo;NORf6<}&|WX^QZezo~#f9~oJJX)J>^mO&fKA{xtr8q53|%iNLu#CI2y zF)?AWm}+Rt3Og4afLvjIO3AHo zDkC=GYcu-w(T3(eo5}`alfPdD@uhXJ8}tXknfaO1;~A$bHZ6IJTaRwA3E%4kL645} zDo$-z10ls504qgw?Jw8dcekrZdos?eIwlv&-bn_eyDr0aUY7olE$=lkf z@A~jKXRGOzoUL_MzzY4bYI3o4P6^lQ=#PiszINle9&UFGJJ@ksZOPRcce;PlO-Q}n zEadgy)kkH)7=0wp$d2gp02RS#I4u5a#dyPuV=LZJS=S2>6n!aIIN}}1MgDa}$b9l2 z+1hkz2R-LW@G-M=)sn4}&O&K=-wgxIqi6#CiYwcJ_Atbvg7`JT7Y9IPHTlzvqt z`jYrI;znW>WY@?_#ply)8X{4K9f84q{TLzj(3y%`Dv|LO9JF}SRdTaJKeDGz0SZ!_ z=MJL}_d!lerJ%XVlUJ=5yThzcGll4vPF;s<^dhb-!QW+H_st?swSFPD}pf4?1)h!CXWE$n!t#Ye^O`Nh86^CeM@?#X| zmA{{)plNRf4V?6$^AwSj2?@ z;A?v{?2=*23z@01Y^~@43E+LcS;Y(T<(i|XIL}o5lWvY%lde31{t{+B*)AK}o*ptLs6M+4YwBs`v;;)u z%Gw$NuZ;JEDz2fjQ&y(N8XFLcp@iLcex`(nULfqgG}d_1>1FzO^aX;k4)`jbj*el`V)Vq zcy+#t&LzAF*%5t0c02kcMLhx-$r^5-2TwF!F#nBkDrBtj!Y)~Z?!YBNQ9{JJ#f-cb zLTHdD8)Up^knycS#`agyTQT2_Hx|}CO39pRP6Xd=Wg4o`cYQzrxg5Bfmr~GFd$Sc!i>zoF= zcGX7vPYH9IesLRT_Xql;wF@@d_@&73tm=G{CeTK&G?In`ncL8JzQynPV4JySXOnU5 zTm0@1b(w37ZJ^b^E0|_>m{$3+v`4Rdl|uxk;@@^U07Wz|c0#U1c-bL<1F(B&t}ZIyH|k==FMU=v%y{u9*1dCQ+ena|lGLA11ApFK zY547N;@LTeKC2M2X9v=9ZgSrVtGq2s?bdk0mn0kgcXo_Ft}!-dtUc@&qy;-Mch{-g zfXOk;Er-CMr0}e^53QrY%7cBL^%X`t>DU+`@enr51}J{4C2Y}TgSJbK(xUag%<8+A zrjIr27i}_r`QAD-!%Hh7|Ks#uh~_Sbl!7`9Mc?v!T$SG=c(fLhxkj|f$leCBZ8wRi z%pbZd+y*`MMB1>k4zgahtt^K5(aIncp+AG{@pRk#q z>VJrNa?T5_sE7n*2aF~~Qu2F@amOeEo zqc6BaK{I&JCSL9W#D%XRw3V5Rm8=^Gi>@M&jp9 z4oB}AfovPG-aZ1^JHi#sWH_X5N!sl+MDKjGc5+CPVrC|3JDf>#%yb_ly4{>|scE|# z=Gb^G*%-3zL&OQCb{pu&Oy=gfO@7LmyLk_7-5ITr)}$vcwiUdCHW{Z5F^hv3GHCVy z@s4SHsd)J6+~n1z$-nzL^ZjPO<+u4g0ekdvJ$oTm5*mFW(pF(iH#UhC?f8Iw9AmO2 z)^X+-W>o)A!Qwyj=jX`RX1#qXG|B~ipTSm?Y|}Fah_lF$k5X$tt1OenRse6XFT*g- zl^{lZ$dD0Cy$Mv(WAra9as*VuZg2hoR7`vIA}&AK!5ubxKEK8O;N#@9YeU-A>;W6_ z#ScXMb_p27$J|Z2@_zTGtonK%_rnYm)~)bcI~ISsM45APozQ5Vt!k%-9|k;mg|I#Qy1P7ZOSgU6})@zP%wURZqoZi#Yr2+paTp| zHAlnsA=0wG7x(T2toQtbJb@N%MgN!Ppj!GHc+0`8Fq&9E9?8JqiiS4!Hw zH21rH%WGHXfU@}0mgp4asloSSbBqFDYhzC(T#y)cX?!j%?{Z4o^aWx?jAhk}k;Ims z_&K1lCDD=tvWU2h#bOn^V=S%EH_&uxUoaMHxbaiE4z+x@Ldt#SL|g?E8#;|1CXjImx= z5UFphTkr|`R^Yw1k&!o=nh?ZFs2-Ij#%H7lLfb}RUOO&&&7z2-u-QGk)F;@lV@P7f zHt2;Xqp9gFn@Ib+c9V?6g?XzY088bTJiED~vD}&Gd%V}oQjL!BD_b3sc<`S*!}I)9 zKC-z;(2hVRKO=d~u6`ywOObi6AM4@&=$-HT`K~LzIGU_@tFrm&fG+#Y%c_jG?N#kN z4ZBiWkF6A!>_!X8&-AL7`V9NXQJk&fh~wti7G;uE`KRyZqQDGZ;2X?n>Q3zL#8emkRlIowhS0 zYHe%2#8>8Iqm8p8*LJ%aJV4QRstVI-&J7!Vke?TL^AgxXq8ch-{P7z&BAfmpg&8-f z%Lcv|Xh_c()_xrQPRVXoaYW#d$}BBhKTD?i{5kn%KRMOW3G4t&gOigmPKX(f$1e0+Z>kp=n zDDmEp*ZSr>CAn)p>YHhDly{~zJeBH{2li&ob$&jGzn2;amP0wPR4SZfI&c5|DzIde zfjBK)*=D7&5nz25(5K;1Ufx`PSTNuq4p}0ex+pLf&W&wpgBRCx1A$a2;4Ngz+2}Kj_tK+M>CmQ=fEa& zNgUbSHY-6a;F9USm=c$we{Ps=4($|{_*KUkR;>I-uo%aR_TqBFEq?gG^Eyo@5c?&XOrk2?(((h&MCIxH$mCGq+1P&d49&x}VyO4-ipCFp@R9ajrnaJLev9Ml z#~XEzp(2EhZu5yM@ZJ$xcl){j?kdi7eV_~ch?+if!VCYc&=~(6;z^9$DKojmn)U66 z#MwQAYjFd*tO!5O>qjYBY=hkk4GP=y0h+m%n7QU@qm^&7Qh1{bvdjI)mls}bGeEQ1 zgiPH{_hOOz|83{oqms<_K3=CaQ!}O3(X_(LI5lHdYUYHdB6IYVGnrUprFr8RnK`D2 z<^@4G&3LISsY%lmW%4@ah0G91g~l7E1gUw+3k;$nqM#xo_xI`i^}heV>s{+zi@g{7 zd3bn$wLUyN`?tT}-`?UNP3$lTrzuY#Sy@-|$wvwG#$@O=l zev{-%z(XCUfXJ0H-Sxzcz(VB-t^QSVKh zEjH?puI-sCm-w&o?#s3D4qg@;A$Z$Ny#4Ye$4>72=!~kBdMXqDjU>*P58ug01#ET# zP#*I3bPCF3coY7wT@m6o?=8`;4^T`K4`E>bnX)8FxG=>nZj~{#v>E}6w(0r9`r+fSsrpqrpF5x<;_*>qh+a zr(~gPX6g~G`BjcAjkQnjpcJT9s1{yJEZ&R+F-d6zr&j-lz}>rb{-JF#`>h;HepL6-|+5+ zk0EzBsk%|}mp|*WS4!>MX;|~Iu95*^mO6VSUm$bMtjRpZHBx4;l;1<{fTM?+_1Ott zElN;lAWWmi`=kx}_Ujp}%v6XPxg)i#XaEd+d5o$-r~q{?+gwrW3q_hvquTJrDSc%Q z*gl;j?o3ZxUa)f?0Nz!9>!vIm`g( zb?rl8-W9dY%KL9S(7JO!G}pOk@K2j)4La|>P?B_X^yTQVT^RaZF}g0?g4eL@FYM7w zPlQ}F-T0)ubddMx`pvkWV66X= zMOG6ZnyCx6B-}UFmIJa!k%Y8p1>zR1?N?*oA-c#}x1RTAQ#0K-!tsQayJA-`QTAv} z?=-xiCyU2l#Jzn7u(SqAiaSdNqAx-;_<`{R_K)bBZo*0iXFLJbGrsaf;i+zl^lJHZ zFkko=o)D3q@f?J@Ij)pML&3zza+Y#^K*W?`>5#YA3^V(f(3OqY6A${Y})kVlpf=zgy%1 z1BS`Jp;T(JbPS`1!Ny*<*`$4xE74}XqUfshAx{|8;{!>8QoV6fh#|}*pJJDvv?5%* zPHZZoDVrWr0coZNNgnAc(>o>Ui_tDH*Z)!BV<=TmmG(gyaM}UwlLE#r?bDA9`VTww zQh+Q>Kk4MdIDCItU4^?K8&3#cvN%cR<7n^B({JT`m!1IuLo@(I?!~GXx=KC6b4Yr<+8^ zoW+oJEh$4^))}jBmX6iJxKBG{IfZc;ugq`{UfWqt>i5ozFEo(F4&wm~N@3)+^5TUP z^~NmzU#Pywxu}yHFTyS(A;$_w9_2J#x!j@uRr*0$3)waI;%gikGsdXWKK2_vWqi07 zhA)Q;#&I5V7@DAhz=@q2Xz=LS#9x`d!}t*x4(_6@L^*UQkf~OG%R(7k{dBSQ-f=AqQ^u%Afm9XjE>$7Y)cu2zC0c- z?oAeS}tB9$M#;+9BG&J#cRp_w5mtY5f*< zPRpya?Ac|uFqV&Y&tRajI@5C(ZK0C^*7?rj4km?b5n^XWi&-fo#+tbHM0gJ~4^Dk2 zJehK>5m@&Q@U0I&rdF@udH}~p!+fMHJFszsE&K;l2pGSpY^IyttebDPTbwhyEso4D^N1;xNw58a$=Bov^e}q?=44+T^(TBg!ihiF3BF(0$Tw?cbqBsO%g!yy|7UsR)`RM z>gUYFopF8mD&Eh_bQ`-k=qub(|8Dxs0;4+lVU165u8ln-LXg^zGVgKYzqZ^zb8MGD zfofLhx{tOjHPrbon>EI?Mo4!t9n&f`>7~18SolxdeKV|`B9B z)L%Wff)i0c&pgR|aBrKB^#ODprOV2e!>mqRs5K#TBNvLJa3iqTG7N_TYF>WyKs~bv z2#!Tlu6L4R$FebYqmKc@7i~SCectA>F%3Q7JPo~EV#kQ735!3w)C!8 zjOX>1g2K0tY&EQmM0a1xoa!SgNcseU65?QSr{k>jVjNQ&vOn4^TWt+x6(4sX6m^UM}%VfjQRn>XW5;Xxp^(kEr% z3$pxOZ&rH`{bS}3{o}u9GHkISckm%UGX6-3h%VRw7Iy>W&DI+6FYg1?H>N3IVeyde zQmP((SpsD^+%LHPo&3)f`{l|x&> zbD%4mGV#`y4X6;^meFVLG#{Ql)!0=AWOz01V`^(_JKS%nBYTP!J#e3r7hmTUG9JrZ z5`@*O^S(B91lR3S;^fnb@fK&!@oU2O^GwtX9$7e1?%+-A!PlT>o(oaL)iZ=fE5qveQRg1^%J`u%sQYI|R#!SoLuo5%*%er$MfmobB=C9MY3cwM7mAdn8<3%eO{rPIknM zs$SU`ubPxnkoWX&&qF=B#+AQ|7%=sAFRLNX=A%3U$wV<04iOZO)M4g1L9UCefqU%p zP+1xSO;oR**VpyZ3c(|M=DjmkbgXbHuP5p0?q0VC8do7r?bUJh0z`Yer#<1Ob#5}8 zsZR7riaVTB3uVt8hqjnBHx>fv zTx53ilp=8R-xDtJgx+NMfkoN-j5U||8}-{PN{Neaw)rQgr9bb2Iy7`ql(M{wOr4A8 z_9QFN#id-!_f%tWWd72Hzf6tTXr~+G;lN}W)bAMzLw7WYc)La z=`kbW371)=qHXrX)7||keV218QGW*7nk1$6&w;Nsi$vOAF4>np>-pDs z7;!+PjTh?rAL5v-oIq7*&dP{@u>1u%<5$JVv-&goBjgcBW5k12NAP0m!9e2a$ofHN z8An8ofD?v?IXsaZ!l&SL5&ZG$RamgP{$*_s4o-qqV1SYj>~`l>bTwVEEV~ z5z+I}+U-D|L2TCJt|nPATkIlZ#ftzy&ua>qSnN|no z9VR14#%Qk_@=3e((Wb3ELT~Pbk5$Q@#o%`H+%lHDvbo$E=h6N2@&yyU_U)slT{$QF zS3I1tqs}q@vl#h`8*dUM?CJuc0JGp$ukLM;O%1QZwTkx>_6D^)BHp2An?FPS?3TZp z%!+~CXS5CEWP@jReTk~hY)N0deMHM`|%{2wHj!uea~nH$2D+%@;5psu9I#c?bg3+X1&TfgaXYRO$z z7CJ2%*<4&V;R~+gQRxRYQIm7)2-3CY<$l#6inCuMwIl~o!!4GzjHK8i8GRX*k+!<0 zuEI_7gd?>{aGmZ^Fgd+?#k79|;!_s(;Z71f@YF0%g~E=qG~Z(m>H=n5P&I41agOgr zB1RiUC{t|pQTc#94pA_SADG5*KPz4fD#5}aTlTAYx7ul)|DE9vfX9W^AN8z2Ov=^4 zydx8h&`h^WNu2>%pISWNvRr(1yUv@KwMsMJD9%%c5Y=7Z|Zw4lQ00A}OB zSQRZJmJT;oPWL6~VP_T6NLx>?FY-t2;-Y%t&hDB;FZUDOZxt70+QeIZ_>uH(XIq%H z?{{PYBc)Jt>_)LiNWQet3g~z={z(vCOyN|S<#!p$#Yq^1rB8U;ztVkg@~Tl&j4G7s zACXJV<>k|o8)uUg`SYP&X+MvaY_Hrz?i3aI{%%|Mk$7cv0lR>h=?!*Onzxjc^_lazxJ^W=8PWhb@z@w%z56i zUGJLDXN?99H@S3C8YeIbSN_nWq<_w}&C(@%-#YY+ZmTK5OueBom(K#Zd>+u3K<8r9 z=K*&3xIOW7t80nk_I*D&U-rzgVZiI5Q`T$LpOs;*jkz+vNUcI;#to@&jrnIlS{!V? z_aU`)R&0@u#hvH*pZ3 zTQ8nNOSC17_^`s!na6TBh}v{xfKT%0Ps{mxJNOjJM6CBFtANJFLNZNa-tnnbubYxr z#R+*(%v`Y&9~H;Feo^|*UhruhCVAC_Whe#$1_A~G1_A~G1_A~G1_A~G1_A~G1_A~G z1_A~G1_A~G{}%-GglV@!TRxRFJ>}pby`dNg7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$ z7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zh{$7zq4-CqSNdtKPch-;rCsvywaA ziiUibz?T?`fq;R4fq;R){}O@6oRMwk{kHyX%N8>r?P|w=lCOMstNJw|f7@a<*1qM- k{~Y=64dO;}e5~Vfpq%&n?DJ2rYz3+tusswCe9V^r0+Sw^p8x;= literal 0 HcmV?d00001 diff --git a/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.1.trace.zip b/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.1.trace.zip new file mode 100644 index 0000000000000000000000000000000000000000..9291d0be7be665acf6e60de515853948f63f4952 GIT binary patch literal 78112 zcmeHw4M0=pxxc%;9ot-`Ti4PSA$RLq|E(3Y6p^pwZmx5?ez2{zs0gW2O*ImV0Rn_1 zx7S%_6qlvi zA%UE)_kG^y`8~hqxD|?|V2Hto~2$cr+D#p$_7D>!P-SZ@T90|`$QFTWchgu5NgY8s*5W-qlST&G3hl)O1fw;=Xw3~VcNNmZ#EqYd8@DOjt0JgmW&6rB)yKIZzS6>+ zFmco-QlNZ=aYJe5E@itiO=ZXpN#=wkD^?i)P@1__*&aFA9=TlHSR-zvD%*L3?L6>- zCvK!G+YhFx&gX{cD?{|M6~^}>jPK=!#B>%`EEh+`lgj#57(b3Mg0tYNLvY~3hY`jP zb3-JT3Q5bw+5acb21h0hw!n9Tit1E^@p4OH ztEOG)PwGn`^$Ai``y!0zS_)~G3TeAaGD)SGYVe`6kd{=ENh{4Xw-heYv>yatjwSVh zVSFS_^@u;I?085F_cb-%P?crl_7vQ$43CT&WZL@=eLTEKPb&eWaw_ zXlrzk2^LWAj( zu$RpW(<{^kZB&~*+AJ{i`B0XS4h#1(6=HRbgx#PHV_mann=(_y!br3IilWgGr8v_I z<>e~qc9y-*%vwo-`nYN9ob5hpy~7?IV{bFig=8`7DoJSLvmMQ9Hh2rYrPm!ybj~N( zXN0^r3@}O^l`}W7$}Hd~k%ZA8?~zzAeXf_tCk$ZTpQ=e(I8s-f#cEm!^6 ztX(D0hY^rNK@EqvYGs?oBx7|7p?sR!q%qZx8D#pLWP5x8+fm;paq2BKZNh#MBw0xq zZZHb_)zVh|g{mmyv9<&XJ5v_VRTGG$vZ|1LsFs*9VlN>U@No4}YT@|N0)?%`GEOdt zhXl!4yXEre{LRiKT$VJEQy;AsatJ5!&Wo(J8zsREr=&~i zC|Tu0A22qC;)GFLCf>17MIWm+8Z9dwJGfBUK%1na(AgrU6gbVBR zL(=rJ`o+*rhHo#g7qYAhV$ovwzwKbAh)%PX*4)_J%1YfXCsZG>?rRMyG%5WHO_GGs zabambblp0>S{Rp6UgB(jzk~2s68=<53+-2eqr(Av_5Uw>)hSgz{Nrlm2ma=O<}ULu ziDKF>9FC?g+JZPm$S7^TgK@Tt_LDe;|0wOzIEC*h?cd@QkDPXJ8x<|d(&UZIHhq#Q zJxkUYE!Z}^gvPCvNs|WCQ)Tu1#%t(r@d637*RgIW4&`J_=s%s|L8!b)B8l|C`}n6WYE!Z@EQYJ zJLaNm5&1ww1pU7Dm4onbc1eP7Z6eUUmP{VWrzV6(b^{r$n-7?0wmmn53N3mMXDRpn zTu!sx67f6{AC}`d_%0?1v1{x&FYw}*@NCJ7-90#tZ<~X1{+h8lbxmt(=dmMs14n|^ z#9EqCw?vdDHnb_hZ;44$gaA3Xc4UQX6$2TmLgn4F-nLAVSuT7{vVIyYPVl=PWSxKu zTH@JdsP3DIU%J*0`p3x!^Q-~%&CRvLt&GZ4iSjpgC+U#Ij;zE<;xPTCaZk#QNGQ}` z_^*gePOEjM=(WA_mhALmI=oPjk(#u$(LtNC;_il0GF|vw);WUjmPcswr8)gf?scbS zD?ImuZ-BX9<5v!J4)};{yx*0>%5u`wdM4qPw8Y$eqh{q^&G&3ZD0QVay|!_Y(9*So z)rf!D%Zem@ap!5(pwi!;P^Nm;(;NG9{pxe2r|76`z?B(=w4HSJc?LgB$JE!govo! zg5wE8S7dX$g)T(>LpCV`PwwJYKEKjAP}SkgU~JIQRxesXgaJZq{W%yY0Qb+09}^pD zBP~!0x@=rdA-8P}Jmql&p-UQoYlrnEZdnDOQvomkqmiz8^3V`72!d<a5lBG6nvokbEv5?=S5^`5$@p;f2m?9&5pgz*-B`x!lq)xDLDv`zjS) z{j=HwK)CdW*SPKSG{n-hzNJU0+_HI@Lzsx_m_&P@rF@}3b|rwd3hylYd!6O9c!%u4cmRE0-1qDW+p z!MO$-$CzzdYc6#~AFS6xK95@9k75RYn7pnQ(BMhFxSd-Cl- zo}0^iD*Y~dS8NXKI^c&5HaFYsa3bV_ygxj|ow2Y?-UEA+M|3SH+Z-e*gh^*~>zZKu zPzrEbM-qqxx=mq#Pz*4Q236DHU3gJq7(HMJmpsT>J8Tr0RWRPZzK4?9z!`TSJNjiAp0jf?R>RlW@KQ*HAOGTnEPu&UuRc?vwbzi@MKBDeBWF3aX{2Or{5 zc0qOnNo)g#Vj{QA_EIr|6_%q(zlf2;21z_Jag*TW501pSN$SIWmnCC*MRIj#<^tBZ z)8$*XDU6n_4Q_IwHFZnF1)Q6Sj(`Ym1PRhqXGM&26Yrhxci&C?)LbI$lpQVxfrB8jqKV%f& zY>W@0Z|}E+*u%wd0htJe_Ss@w$!*VMq0wtEWQjryck~)FyI7my&67U`m;#cEV*rvf zHP2}}VVU`GGoq7HJ?!?l()6qDur5XxfThqd8Fr}b^V;8r1s1UNE=S7^;b*uybgyY3 zga?JqWQ(VS@zFDQUhj%Y>L-gRv29EO)r}~h=SciuVqrbvT7np5zpsmDSSEk$l>j)n zG>Jt-eTOMH4!ysrnGIZHG<=ZwKqPR9aYkL0R5R@7a$4MX?_OoR#09Q+7dR$%>e25P z6v992m`wB{C+f9kJ-D7Srete0T;QUo2&>^lLqEsnn>eZK=a;I!hqSB zF`zm6vpSIIDiA&5b|xerdkX_5X36_AS|x+#lg?E-Vg!B~X@AgMXcNpejD(G>^>x=z z;*EfUgiS*bN;9|<+m29D>X~~YprnI@zpQlS{bLT*Nm{*KXF_+Ic;dDO$9OP7ft|RtKfFTu5 zS>Os+xGMWF8`z=C5)zIG|ZLL0KGAd zdwp+%Slrl8K=}ImVdafG=Vj+MQ@X)B(n$!DEHGsUa-+`hzyr0wNQ4VD^Po31+RAoxJ zKNY2!;a7?Xhlxvp#XjdA-h^wO)X?Djb`NhKiU|G)`f+6cSnjyu#*eR~F>FvT1NT~3 zCJ)wzFO^&IBo~y-{&cOoCkN7e#`bBnPkNj}?P7_&sd10qn9~>!n#M@vW`7EcMxVp# z^X6>WWR(T#!3?$8SzGbc)xP}q5 zoT_c1CySvR1Q=m{QoaIV7-ZY#LPIxel6Qv?&ux#sKc1HV8(1CWL1P|uz_)u+qx)$v zF^#ALuiSV5k%ENocfy^LKCgByH#+HPtrL9)pYqQmRAGG5w(PSB&n z&w9*bIO@WY;1$gh_6lk>V8c;FfC?DA{JJ4QTa)vEE+BKwrYLYIVm9*P0W%)Xuc71feb3 zHl)ByGVvr8d_D5#Nl06OV&Ze|lnRjGf_3nxr~e$Sun)8xhh*2FdI>ggZhVC*zbPXJ zj)mRacHMLY+m#Rv-XXahs0k`2Ax(`3?_Mrc*LPWS-XXY2zu3uX5h$$b@k5o;RHHG& zU?Q4ht!-LPj!URXmu)gt(-L^RdOmfxB_na*GY681TWl_vXchyKaN$&&0<;=DsgH(Q0+%plGS5>qSkTA)R~*V*`W-yLtQRKu9t66If}~ z0PG;bqKVk%TeZq?u7wu4-EZ5%x}0%at!Yo+Mju?e?=EiDwj4X3Obg@E)&=2`UsmfN zS4(Pnk*f^covGd6d&=DyAZhJHr@q+>FA)($M|^IIZexl-t76k_^+mpYRTKFZx2nIS za@`PxqA%Hu@7vH9VYR6{^j08+$@5kcJ^`SY#@WSE>hmra@R!6c}vMZhPvd~gch`wkHFoes`4 z^8G--#XHs=+KZ=TT_b_x1&h+%cr%0nflA@L0c_zgh{LYv$PI@fhxy}>DFq*(_BF-3 z%M7-z0dWo|JqZGhO5XQy{Eo*L04oowdJq@I=&w%#`C!tO`{W{R>A|*E|29d!%Z4Cr z3(;bry|BRG&rsiL=wygfS-JhdbbBW^p(MT8r-^jv z{6b8B`YFJJn~CVMfB5YWR@btQjDChmblgEYSg*|F?b}9>g4B*4c4nI_Il)L&XN?hB^ z*5iw`Zdx;a|5TB1cf@wn6SEm}w8(Fc%$fj8NbT777{9n%66!eClSD40D@G^uMPLnt zgumPs=pYD+#Md?8R+)?zvW3(I67SrM{CY#;S0kRz!K z>7!nG_a4(4*HP;77H-Ku!Qv}yq<5MyFX%M*P&vo_l8*p#$aFeldfY7b5Xlw&0?$}N zJWbTKM3Vd_Gy(e1)$EdqBnB@>5Uhg9z971XeY0zU)J@540CF=oao=Asd>ZY8Zy&0w zwGU;q9rW;(yelpi8|grR($}EfVFO6}^|08pLB<)w3?BVn_pmBh*y!CP323&w6|7de zM}bo6K7bP};bW^Y+M(22JGiPtkZ0-?Ogv`^lLm2%e3?s7Ja>wDIQtv{KJkEd7=%M# zc5AQi7A50^Bayf){n31#Ll=YF`hSj4qN&ukx~oz9I7iE=-&tfdt^9e~?(Qd(v%6m> z7=sgP6#gt~M9$IrljDw6IFX>ZkMWPM2b~+A8N5F7Y#F2F z5Zxy@K~l^dejQSs!AphI6ZJ3C1kYE77W8*lhSH71QF2B85Kb6Hd?i5fRg$lET?n+U ziompyg8~)2GUBoT!bc=hJK-aBRUWZ1xkCDRp?|WiYOz_mOQl~cq;I4^^_E_N^$RLP zF}fLgH$rf_se7?lZdhiM8p+l%=UByBH8d(?ZH<8Zx~Tjsm7f=7ZWJ6#(03;v;asiC zNoeY?wTeQXkq)krWZR>R&!?4<%B+tHoy)ojlF0JHRU=nu_#~%XxE#{8kyWG;Hs?Hd zU2DE7ZB>imsKqoezC94{+{4$q|V$r^2Sal4%OfUKw8rM&Q%{KKpff6RSdZmAgj$wR!kM`;DEVvL{%lyLuV_ z@kDi0mSyBIp*f4iqc^8g=wyn3alM7!rIM^)#WEi>t2die;W$;eUrqn`SBLX6sN340 z5y6Xb)mg@dT^7}gabl@CBy4T>?pKqK+q718iN1;E(BU?h2n!_av4d&Q8&AcvARqDn zNgAQym#rskYV%n>&uA6?wUszbl;}$<`V=->Tx*LHuXQ$2RmQINOsm6aGgoy)o6bZj zolW{vG8V1O!riHoCW%9mk5hSCcDvb9ql3OMXR0q21ZGA1sxB6cX{?`E7CI^X>W~rtzx0gUev8W7LsQFG`~0>s<9FN;(VDv3=DsTU+pI?c^y*Q8-wGG zjogKoHMnAvm8@qg+8lU?)#giQ2a4(k9L!g7k$hU-^+n~%RU?MvAiaI`YWT_Zaz9fxwl`sy>UHM9kb&yQ}-mza)OsK&FLc4|=6=m~S4dBm@)$VZbc_(W{6 zvZI$(4N!HG8nV9neK}RLWSqVsN}!$7nu7$_pY&yGv7| z*_+6eY}pavhyKY>{|*JW!qR5bJ~I|rl85V6Bp2r4+6R*>)eW2k{kkfPX;TdaCp_9U ziciSUOJX)=b$l#^t~fF~YIbsjnZ|R63iK>fv}U7`u6>VK$TByN@rce7;lBC8aqEC_ zG+Yv4?{n6XSc6y9_D^CO$9Z(M{rQ|S9G6DX?f zWLDZHDpTZ0Utbl@RV^$#xv8c>As9$%HR-we@d3hdXFOHN_!PJRaod!)0&pr zXs~oMgbXOve#K#WWNfp#t2dcb6{?o@CKEQ0bs9cz7gRJ94@F8hLxMV*+&~Q6?I@t) zb!6~ZZ*o<5tXZpO4rJ^3rf6f4)KnB)D7F8ks-7#&HZ-b;okg)RDXiL^e2nu+!mK{O#x!cO$fh37 z?`)6k>Rk;{YE@g)8E?L6zPK&(tqA6DS!OR?Gge(s%IhrR*?RCKL0vv4l%orcG!_wJ z$qR~iCaQf$hwU9ppWR={7(Kp;nien7 zeE@CUR8ttqOv9^X5{cT*r?pG%kG87F&S3otdyyhe!qY{M6Qo6t=)Wv2eUTvS_ca7& zkDJS~zoNgZuW=4_?OTka=Q{|MV}6AEzAmY0EHm50(b9K{EVN7Y3`>DSZOBZ$9vy?f z&S0F933bZP6T6X4Ls?Q*E%dCpp<`85*9rO(hLa)Iv&wu-<}c~cTbrAbp_N1W zB{9&Yl_v8w`qe)6(~8%k7|xdk+eP%NduvtYk95DHZ`O6R{eu09LS4aj9?MavL#bLu z0(pUnZ!zk0gY)ze7V$A&Ur2z0&R+#Jw-K_SG5lYoroA1ETCPgMl58;Ic8UrYZzqnb zn`OzR9Ow~pM9WGp^Gb9UsVbbvNy&6@{5b~cU^ayrS7qTAtPQe>c8EWWGJg@sr}rF% zGBgz;`e>&ykZ?6*;nTwKuKZRyJ=Gp5j-jWjF4+V1 zPL}N0AjE~vU4oJc!<))N_=jt91c%#<^&Edi{N^&=U_Jh*;E~MNaI923(|oKuIIN7G zYBBoc>#8zSHyM9nQFj#eGnncmUtFBF&3rgC!IpR7e1SvXQKaWcck7O}v>&y69Klwu zQX4IVH(R+Q=T00B#t{#z85cY*|2i$yC~Rh)kr-biSOqByI2`H?{Tqr`fMO^eT$OKD z#gSQx;XDg7qbbtbM;}SmJFdUy$Womq66iOW0a0phXE-GDbM&3!lX@c6J{4s8ZwZ?v zwu^pz{pHIVTJ{&l-mjAURQd$wQ9ZYSxV#kF8>%mb=vun*ryX=7ZIExF_V@Zlr9q*( zZQszl+F6PsOIR7-R^1kB%rB{yd`;Abn){-=7FLFaL4zeBetpBue!^otwq63$y3~)@ zuEkk2u_y3KrZYsf&iPj=MUi28|3xmevMStMMrJP~jo6t`KhWca*>4LLB(s4|KA*F5 zJ4^DlqLkS_T6%G$UYGq&R&{=Kv@qXk3>InFmo?CSpNcV@qE$GkE?2TIw-PMx4U8`` z8zh3I0YX!%d^OiG_^){O-&&KicT%1<4_2711x(FpXGn~cZra8XS+)%iX`3CS!DwE% zki;^rA?DE5sEu`-SXb!@5n5YtS@T+c!Hc%`aQ6D{J1- zj|FCC1c#Xu^sC7#LKXeWwhqG{^A~NgtvDn9T7g)xSm0>Csy`~hGcE&dRsXKec|apv z@ouRkDc3AkOAU(X8uN!4P0dPTMi!GOVeg^Wn?s(Vn@@D)uqC3LGRa6L!PXwC%%trU zt@Ocn2)7kMjYUv{q|mJSuwhX?>*5N*hYF7Q_pFxw_H4V@N2M(2H1wH8Ax6^I>PrHl z{hthIe%qQAX^!UnyzI>?_M+{zH>PZ?Wkg!F+y--Zj95PxKmUb;7nm$TVBpg;R{9NU*nKXSXpyF?q5N&@hV2DSZ z*4%*}fio9U+Vv@1L2`t%e1H~a%r95OZ&#HDXJoKM+nJxJ2<9(}g6o%d*)yu@>$`f> zH8wougk@it7{a~9tnMd?3@3DjZ6o?}V`CI4zs$K>dO`=Wk0~72oZNjzqgok!N#B<_ zs;N*gP9`Yryj8nn!{IQgT-T87Zh2@NjkdRY;i9L>sRiIuyhz9lP0 z6CBl@20nc(LtaT_+~BADRuNq#e3?iGZ-;Ak^{%E%c=WOCQugbuwh-Oo!EsU}9WUXO zXpdB zO-6f1nus_WM>{}v{ylE7Lf2b5qTM&f^IMmz;Ey{bs(l(0dvOOf8qdxk_g`JzV&xaI zS=#xrA%su2_hn}ZxV*)9OILWMq|tJ;Vu7h3xwOWrhHMs^Q1^Z&5noAMU3ksk+PkhZ zZ3TU_Mv&BBD&G{s(sRw>BU<$z%M{B+3aYNOLs-wE@~bN~wZt>mS`{^Z-}nism7%_Y zQ8{|&u}`*}hdp3unnKhF8}N}42D0tK4?Rq#e&8RP0>iK6^5jn+cq zjPq00>NHaNTSNg_|GNHK5ql$bL2@PajPr}|-gi4T7*~fv<&UU`)hws8GrW=CRZ?7S z`Fwr=KjUY9Mq}85vZif`PH4UQUHR$-k{0Lfm`q3q5o`Thi!XdG|!Kh9z5G-V9OHzd9A@aytr7o@?})g$F(;9g|@ zIe=j1=B;U!l;Iocy=hsxz{-BV8f$aT_OWlGLj4x2n+p|P0k-F3&TLp{PEgXS26hnM zy+LPXI%6ejh_hfbo9dfu8_Zc8BaROhRvWp2&IYEv%aRtqo}-EEYOMAr*3q?xDhrdV z)D6Qoh-FTOy<&kVw_k7x>d3efx~N>ikQPKoqz$l(^YmjSF-3hgsc^es5f0xO|4yBR zv`)w?u&@C>wzh6}5*eaw1-@6$!G#m}K5SEwm8@eOiy)JfIoX!KwWS=3pfF>1CEqvWeuwkx5QBTd!k zsa**Nxof1?^#NyIVA-rG_Dapd>Tr2xnt?qQRBdVHY&`fR*>r>Ke4IX->tlZB0`z(s zUfLO&DIJ7-bn--KmsM`Ih4otHJ_~vi^`*K~$)!y56)4i07tsd=nLcP>>+Ka`YpA-i zGIEHNGw>wmgmFm!0dc*QgqQ5G*a-`>L}5mAK2%{;ZgLF0r(4D%nC9oGB!9%4#l{W` z^f!mjP>F|nierVg$__eoA!?gQW39blFA%&#?kotBaHQ&H&I#*9;37h-!_K!Na-hrX zfMBL`l;6#(P|_hE01p+%exChhjXK&Y7c2<2*EI4q1~FLYRc2{v8vh^f{WFJEa~e(eIcy{ z`K*Sns8{463<>VluOi!Od=$!>W2~fCl&{e?3+p4;iW^Frz;KoxtJvpwQxs*+b!?)r zyX@;W?oOy_|9b`Dm1sTvLXCO-I;Y97m^0q^X_h&nQ!g#?_q7wd7Uw%}thezsH-62k zX*BmiS|!o&oRZIKehzHLcJ;SRn~i{0-qVP>X@by1)u?<{HBl>0gCH z&q1Q`o#N*$VM?Bn95o!KOtbHC78~N!ifHhGE4JBMO<~Hh%|6cUjd{57VnYP;N^*;) z7d{w~y1=(8Jf|eW4g_%Q%hIOzgwJpay}t=tS+IY?c%rS?Ah#I%?K_=`&h0f_z1;1h zM`~5?g^~kLg!)!*H2$S3^Bqyq{94u7qEKIHQI7OP<|kcIpKljs;Nnk9!U6=U4OQWF z+eL?JRTo0Z)zzV~oQ>4ARrT9NMVg(WG;-HwBDtDaqk6Gc^&+{e_b+71h8k7NCaSV1 zG_13zxa$OL%o?|gsALfp9Gh8{=`0H6UMh;~I+3}hD)VYlCwwa&lK=Lsw&#sEAG$@xh0>uEumx5w%v;TNJ7$i!5N5%20FFM&o~0WxgdU@*#`% zkh`MZAO~)$Q2}r8p^C$dt`Bs`5?L4scJ>qGE6xl&VZ!QK*Cy zDgn0+%vxJfXz+>9VDPmyRpB+;MFF*{JaB=>LupkTskEwkx~M2tS_BVWa#cM|R3z;x zl2&h|Rs)6JFp3*VZmCd|;vmQ=LSl@rc-=&=TX&VYrBX_ zFlZ8bEb#6&V@=W9AExB2twXm}1o%|qOeKf7AA{=6^sl7+-83p)eSO5xvil+$l7RCa zCs*Rw9!Hq2W~I8bJvH|6@i;REx+#R>C0$u7LI7X>~}jU zZ%bNkuS9qmh@3CDoJ0;+J7ab33>U!#SB8ss0S*XZJD0{E5er-0k$g{-VfLzhG)6V8 z*4V;LDUr8ei+-_@V{o47gU5GryFjLqu*xkdFEm+a|Eb$5!F)I*)%LgyM6Wgr$1iyD zB;|e3mWEKYtP|wUo=rt7JCQs|XLQi?g+{Qb&5gb1xynd!$pfS%W}Q0AQJ_OItNO+! zWTZxhCfE-mMV=E6as%lw?j)F7T!A2@DZ7XH4s*H&$pZ4gG9+7XW}xA+itb82b3(nl zT}0;dCN$H2nx``b{Tl79eoGd`lVXj&@mv{t>Zu7caC4#`v(naGy#p=ozN)&FXiphzfgVtx%Aw`hlsIhd8tO=RmkFaaopW|* zQYSD_;d4LQp@EffLkUOvSTwI#7P+V(KkRU1qjz>~rF{$9WYveZU=0^=?z)(B-W5Bb z4FuvyG2T^wL8-L4^X$Bt;&UUa4RPppV|8GK< z=*zJQ`rsKJ&P2GzuNdvOdOXr%UV-!^x>;5kP*vE?Ei(^SYpI9IF0yt3l0%R$xK`$I zRU&CbCYy~^_DKnP-({51E^%_av?XKd;HtUhbcJckcbk}hObnG2C9tl|U_}^nY zNIZbI3m2ETAAxzFIsyAo$`D;<_k;gtd%afH^@>?wn}8UfbbGgw5OF?qx5J!lQj(at zE`tF_Np9Yw&V;Lh*)Oy{$VH&vT<@Tw=y`Rwuz0xY$L=w}VQmLJ?b`cK!g;LBL$*s3RZuK(A?iz4w0s0cY|H9 zK$mM07m_7)i#sabIP~fh|M{mwsTY5<_?Le$oql6*-JhR5`@viP{?9l6ZQ1Y4^LDX9 z-um%pi~c+7-$XwFza0KkZF1*F_JY6vr&aiQc>3wF3j%u&m(dmRHq5jXYY`vvlx!69 z2-U6JZiHufino>pd*DmbBhB5~2tAU<0qaKDu0`<9`{m`>C)x8v>F~2RxtEiy$bFxZ z)k`SSOh5Fi;6U3W;hp1#mOC)3>~c~avf7&|9XRxxVn#Yo%tJcx!}@l)3~@@fatC}T zY*90%291)Y7o+UaP`a*0mez-)JRn!$eG4eHykzqIZsk(h@@iuce4eM^qffd8RNqg& z-=}z`wxRS=8hjUAcz`C|0_q9u$KEejxSq%FC9ohV5f7f|K-BAF%rT7;q|++gq9C9{ zR1VrzBsLtO)WJ3Cz9=<@8Y0g{d5_dIr||$9FbUpY-Y>@s5#L72L4G76b8++OKu_X% zbx*m87wNHuL#E3fTFx~?4Efve*tB|jW4QN2LqAX5>NunK4_+DQbR)uu&N#Sq^y;S* z56^yXshWPQxR_SU+HzJiy=+**@Acoxg?<&bH2@)4H3t<@;AX&jD$gvZ#((_MfTfP*A! zn_&>LOg;+wF6(>>^IVGxED>)riWnetVQF1@2x#Wn4Z3@Ux)vT-kl2LM$rkrE)Ezj% z9B7!lTxS6dwv=>G=XlW;jFTkmIc9SO{o`yVtOvlR)8xA!X1fZ>=hC%$q(R`!aO-m{ zfCKaT;H?M%4DW9YcN5J%5zGb%*Bg}F-U_N>zr`(}7dwh4Amg)E`%<}uTBx&^6{6As z3y8s3gh~pmCdBMEirU;h!E@!ar7o!U6p!I3o9Kb3J%vDMWUZp0z=LDFMfY2RHU<-U zq!@>Y{Afj-0%Yu5e!=vh8a;{U)$My|X*8FX0@pe9ifs)@6Sn+`#(6HE1yyk~K#i%3 z!-I=#sCESw_a=UdXAktvO#tql`9gMDkG8+>GRran9{&oAh0RKJNrCPZf*OD@1OXp{ zy*(lw{LMAfKh!~cxEx4t691(zlBFa#b8)FR+4MY@TqNX=D9za77Sxek*391x<$hc`Hfad0iA(&yi zJ?)MRtOuuKoxZ7{7R%bpaBY-evv3h)@K^=MD|b^Lc+uU6+CU*V4BO{;2?S>W=Vp>) zh;p~zcQB&@w-b=jiu2F}`Q+qYK_Nm1@_ZhIhDKBa&<>7;2np#55h3g>BD*LQxJAZ% z(w8w|r>$J026+Ax?(;1$+4sn(-iLvuyMq~lR^h^IgG~VmA&r}nbcX4?g+k0I2a!40 zgv7%^3Rh4RiRR75c~4C3U1CP&e2wqh*KocG!WIzMl+Sdy;UtvKLMTc~!#RYhMxvM? zjs@r6;m}7fxMQ;@tK-pqw-lO1S)Zv!&1Of?hzpeDqlyG*m)l~zWqPdM!Nf$-D>kJe zk7WoXc%B1*K;4+humwH8=hc(UfZo95X}V`l{_Vm*fJ1IOdBXvRF2k;~ z?N)=`P7xj&k%d6ndC2v|aX0jzi!j4#>ibsR@Tzj<&fH!c zVp?l!Oa5HeCa+|fJZK^4oEn+_^3^U55>)m0bpVAIQEvMkTDdWM29HPQJ*Zj|6EygN z!69aeJVCeIxt~aIB{$J>@o*l?ny`2{tI3s|@15H;Yf6aQ4!EHLmR36@v!ta*V#7k; zAemzxUTU&V|A9>gX2H({NWO9@%@{jP%xQ`3v5mpUu%l&sBBGX&W@W&j!;$L76C*TVP!URH4W zGY;)Lgf93WMsml)oTuOw<)|Wj08k>k7`iH*$bB6|F@eWrP@s9x9tz0=>h8Sia&ta1aFvtTGi>09`I5@oKlTxN__K-g;_E( zJ#shaOt{$t6uNx(!75|yNm(1;$JsW)H7*)Pxdj1J;?Wdq%$H&OxW=qR+X@kdBv;TG zhG|pc&Ysi;OnBP^#wOpC2WfeKxtYRNz*%)#jTHHTNuZoHgW7W*_Yk5Cq)k3okTG59 zm2nXl2tc$`oa`Z+D;%f*0EOUGDIS577NVCw>1q)&_5>;c0A90<`uE^Wc?_d`3)p&^ zu+-c{g9HWd*zWh4pUwI`a3LerdWXr)H5W7k2>{8>sp?4Av}0rdsh2Ay6v)N2>2-i$ zF3$69$`#>=$t*=o-)}(Ilye%WgJVvoM;*|cJ=GB))<8iOL33&csGo6%9#Q)}*^Pwn ziz9SbPGJcH)QJbL3XJ8LwY=4{2l{6A0M)b{I=IH~G;RFhL#NLF2iM8S2o9~AR17Yk zwusgWD(cL8JZ1q*k+&{;;5e0uvTC=uJsfeQyRZgq{-BgjZ(=!Rp2U^KsD9A7Qe6Q| zL<{MFw$O2QMZh*5Zl%Dv1Gx3Wbbxy|P6pU?*}qbM!yT`+}YIJ!gC-tcRNXx~g&ZLU=6 zJ}Q;k$|bO2i%{UydOS?q7&d));nBO7luuEonwxGMZDKp z>j2icfyv!tGe^f06Le4@WSmeB!vCI5Jpf2E!9jVe2M-RyI29l_SK6)Z#lWsrNb@}p zMw%um=6h;hhd6!TSEn>^zYi!`%6b&UEFdiuJW+BD)iS)ag@ zs86l{#wdp3neKT2K-Jt&sWFnXmihbCJt$)oAs;uvNB|AOTjVCQQ^<2X&$O z3wKf+V;YmX%Oa*QGC+0SQx0XS*2Xp;06=U~+0zVs$wLx)m?-nof@ zvKLxDUvm`q^dC2{{{Bt6zWGx1zeKp_pZocn8=m>)+JV;Jrmfu5a_IMqcm3kXqx=5w z8o_yN{Ut|VDHR_)Mt@@duWy_Z24=5N7^Brxu_K!h(@E)B%R7|5pMNmDgVIxVI_?Ak z{9*_9BE?~;m3_tva(x0nn*09D+YzRHvu8;cPFpTNT@3FrxAVg}U|gspU3PNRKh;te z&`}(`BJq4>!JCffpjS)FJ5o;t?P$1|TC}bsx|aNPs+?Xufc(0sx=dG&$V9XCsQkZR zVKH5*{v9t(Uyq6kELNwS?}TBb2Yd$+rN!E(H2JP?!N2;iDdHBlgX^^SBwZr-!F$9Z zJ8so~0?Xmt&JWChRaWri%U^c%#dArmqpJDh4I_h}5|6m#YSjr?kjP3PSvwjiF`uGh z1+83L0nc*eR%GJ+rLfjXqc1`Qr-SmTe5>Od_;;u*0XexGiM$0e1mw`Ir`(d}rRElu zta9xJYcn~j;XL96b|tGXA*T}(-6xoIR9K{G7hQ^Q40|+iU6aJK3Ue)WXE7(^ZeU^l z1T?H^9elbwUM?}U^6i5;i&MYe^8{~KdElmx^8@#pEb^aeYX-y_I$thbktN$f8Z&>s z{cw5)RQ5kvRt_YG-dR~z4#mWF3b zw>23m2bC$0MJ`G({;jpy5Zi3=dtX^G__cadf%XG3k1|};uw^(^o2QRBW~)9nJf1-L zfNcBQLg=F-lHgW8D{Td{ToBkwq^A{glbgo}4E%~#I=ywNI^R(pskG|zNU4%{#ij!- zRVm2_^m%4&jD`Mc39EboXSlDrN72Vmw>M<9I8Dqz9&5yw`5!&mnqg-3v9;!a`Z|N+ zN~Ml$Y}}DDLbrX;Z0Zy2JQb~w2G`M)x%-ot;sc3&ziQpJahG1wz5k%vQk7!wTA{9M zUc^dIF3xa}HQE&MeC4x!(F>u=wDD_aoR;DK{g9I%Kx}%_5YIj!NqE*g@}XF1zJ7H7 z!M=l`X?7=bZSnCZ%&mPdXQi(^fcqeAY!TH#3s_%Fl07?eqauG{2$Lk*~v~5#)K{thhK*Uwu_HPa}y=x<)Gv zGw{mE&hlK+7^@~WwJfWb5v>X31h)8|8$Y#75G>Bz4CWkCMg|L4FN1>rVIU_uiI;No z^_ojpqdL+wSB_c#n4M1CEa`ii@VJo`cK~-FygqBMjh}w?P|O*H!60oO7i1*ReYpny zGA8|i;+IOr0Yh}tc!M=POc1rGY4h67_!PVDjF^{b@98$t8VKT=rS00kj`3G8f333n z$j8S^g+k-FUE_R8`h+6#2_;V{$os$$z0BGEv?Ox_PDxj020Wp(ZDmq6|HF_dUI<3( z+_>?YK(OLKjPz`%mY$sOj@fo-Z@Q3sE_1|T*>pf{GZsGC$0pdvMt{l*Ue$@?8T!Yr z9#1FcB-+2IPIn$_svult_(Sg}r0QO5GO#u%On>!B-?h-0uG2;doO?_C7m3w9O{?bPe38e~ER-~@Ep3%jS-oJvM4hN)w}9F>!STSJZe19wEwC>#>_1Th*2e^^1cvRwffo$ z==mD09akh@(QYhFDYI+OkWKsaO&LsGp27ZD^yA8$tyPh%x@gWSWpw?!bq)&tYX>Dy zao#Mcb3i_enCa#CD4FRE9}bYC;lXrge)F>Vt)<^%s zAk6qk|EvV!B#LpldWYj@`gXRm)bh=+_{8xhL${DK+Ys$2*=@(8m8&W1|hJfpkUS2BVzx%oTYOen0hn#`s_avzqTK$u~UF z6#R4cLj1OBk#>KMp?2)z)2!yr^t}B>L$6wv88{SGc91QKDLNP$N-&OGjo=JLF_Xj2 z(QUGQdTo#OZJK=ql4+yL*zu(}#f!epX@Ydh#hQe;qh~l_Ig&!MK1TTF0reKy=18?^ zpL%nw-?{OoQwjVqysh8}#5z|~X;H1eI$$w{Ip050$y#@$QXRxkjNO%G`aI?{Q}W8v z_PPJ&Mqq9P=0;#{1m;FyZUp8=U~U8+`Vp|>Y=7SgIUoJY>L2~vym`NxH*elgz`uF( zz6yD}<>`tdLt;OuDf0voDN|hqzmTb3w$L)Bb9jmBZqEbz5gs5C% z2+8@ouCg7gOluVbgiPyHs|XPhBIGv8C{+lla)}s{lp;wXBoPit$nBi}JLe=J+!U>? zw#`g>43M1jo$q_U_kG^yy`0yUKlTs5oH1j@KY{;d%-G)f%!Q)4$*D~MKQczj1R-DQDa<6f2k@1kp`V#p$n%)uK+Z8R(WqaPgV(mc|z}F&TJ1Mc`luG-q zcAL9<7svKwNXmKSOs^BBI>O1uR&y+b9*(KonWewk>#WN`lTxe1=qw{bK^Anj)GeXD zV9_Z%i%@q%iOUWr={;;#hlcV3YA$LkT?S=G8tQwULWV{DZ>n3b*wK%aU8QyZ29bLh zsqY&tBY$VAj?uur)btHelmfs?P)GtC@ePr3t$EIe=A0rt8C5;tAx*;uqvdMzR z-Y!p~BrjfhLg7fd)u^pv4tYmH@O zK|^N})FVw|2pXCUZci`gyvtdo6IQ5l(xtY7O3wv*d_9=wUZ_m%U$8kYJf{HsV*OfUA#=a2A5e$t%Pdyat9*_ESP*#p+{YCWo@urEo_vf?bw8gY!UQw#k$oW^$l=UTM2X{&XOqb=V3 z)iE_s_nOjCpTxaoDMLdH)E-e+yUs&vwjgrJ025*%(dIIgNgYPITwjc&a1wj3NTUbR zRF5%JkQ~n!VPaLz%hF2HdR8ip${G65D2jwWMLJ$CB%4IbG9^7{>#7ENqnVIBm66|{ zKM=t|j)iK=L%{84YvuWN3$h0mLrrs;f-41<^8E9zk68LchIAzj3Aa$JN0vvT9nog8 zD8z0zy5=3#T{t1%X_vmpwnqw|vO~X5C|G7zC)n0Ap)1Ypv<_aEjwW+o-l?xPHb;f> zS=}ppnhk9{V?=D0O3~At)!%%;uCl1gDNODWvgJ$rtyhcKiDhDESw5Pdi1fc=xnj^P zF{9V>9*@@OST*Q}JM~T4^B+99AkLX=X*ig+Yw+M!M7LgP(B~y``vyxK21+_aBip_- z4;JSQh!;8E^Vr<)c|49A3*bLFrrW6V-tH9G6Ay5+93dorl?u@tI2lp-}PPinI|47Z1tahc=-^rk$F3cD9X zTO93biR zvDRf3q3Xq4-xb%@Q}G%dV^GU|13& z>y07pJojgr$T4A^=^{-J)EcFYw@gnvPJu(`-lFN8^~ai^Mradv6*rT;)p#)3CQ=$g zorqZH{G1UX-(awyy~Qj`iK|Akxy)fT@lvw4Uilwo{+o!#-W=m%v3qX`Q<(bLp25_oTAop|pcr_sE?VYNY3=oS1G9y@?L+@pNwMv7 zUkv=wKT-?DFV|~ zoGVirf_p$vfqHKYvB<0AQ}V0EF%4hHzQ-2bSUns}}jwAZzzFMHgq@Qh{ivzPHHJT&k>0ig#;G zOhehtOC{0yox}b0sLT;2|DA4$g@Q`89`z+kB^=^uv7~%eYH;-%`(q?F#o@?A&$7h2 zZ87lw^g6AKPU(@z5G{og2{{br^Nwd3>NiK~66-4Jjpj)7DhqW$=`7{S9*&r;g|^7P z?5Xw)r1Fxe`AGANs5J-KOFa{Z9sqib<7y>Y1zdgq%CrQD6uoHZem7B+ZZBtKV86D2*<$a`>gSC7NuZU6K$&bbo!a!6+EK_s zLOML2(kz`B;g&@!Tufz!AdynwSTEfS=aWS`wQC;SIWnwZyFy)3>8)nH)blZy5fM|( zVhD5=(;w`}P%={|R+0a`_4lL^TIBu~9lA2oD63x5&u$r5ViK=iV$!8#qlqmpU5Xub zb}|HZdCd}5zAz$NWrE#D8%tSiKFf8L#{{OfqLjttv+P%SGmXuA7SQIMiVOk2I^Pm6 z*`65&e$x^Ro+}<^MM7l%u|uk6{U4`EnVQ#M`E*@ zuJY9V%^3@5Ep5C=aO~h!FQApB(#oW}^tRY6a7jZu&j8NP<+G5hywEmY=;>0{>wMO= ztGuineb-f9QadjR{Cy>#rMSvdb?{V`r7RAg1+Ey~#)}3YUd?Bmf^dtT3DTO2ec zM7q)Rq?Pe64Dow*lFRZ7dA7ubhEgO6avS59bac@*bj~#tIb&lyPDfilM{Cd6EI;)y z{)vueevYmMKRo7P{McieLAOz1?p%4Q?g&FJz8L(~lT!}{0kx3Qu>cga44N(!I z_tlp&x}(rao`|om%}~~EQdiK|row&2ud1GL%0|pD{3=Uvn0_P$?kRpsReEFT_K?~i zsW}-5vYt3uIrkDXzmeH3zDkn0{%qA0_h~~LtLBQU)MjpOdUUQjHyry1yk?2lAZNfI zh*$EBiuxz8ANFc~2i-WJ8UI>1u-4I#IdD0%sCg6qb?hXf4CZFy2a)$o>db$~PLcu1 zy(jR04}2B8Hi`OIVejVTmb(Mab0#?lAC_-S$)lIg_#|$0h(iUV1G|{n&c{AB?h3?p z@Jn4Kd2f}tTYRjdGs(Rn#C=}Q&n;nNgTMzrZUj@z%EE!A`f7F8EaD8{@~808f!Vv` z&^Cz{3pDyPVz}V;*J|FyZscO-VTyme*qoUEPD~Op@>${o4wNnqdoFBfTLjtb$sBpL zWNz!?Fzi*4{k!AovDj-?>l)9M&8@EpH-Ww_yAcc_@sn|{BU0p{H_8qN^eG-$3y?wufupbw#NOCk} zZ;C}J2fdqSnzD*7N5H)V2qln6S7*i;4G^G1z@C|)M!xk8^R2H3e%C+`O{zbEavHnU z=j6_XJ2T9CiR}-z#H32>ezuS(aqR=lxtH zxKDw#@LG_&?9)d@E~0ar&;vj+?EP_R`DdZ*{PQW6g+L!;mZQG^jTMdAD?*P0Ym6Hb z@XNSYj$;~my1EQVeuiCySvKsQn(uwLkgx^VvG)4tFTEgw_~Up1BovST_}!am0AI$c z^1Yfz4P+b%nF9a?n`Q88iC+GV$;=0^AP4(az2Aqe=k!z?jypz|{jL!2YgxfZXLo%E z7JX7=={J<3)^yRH-pJdZjfzC7Zh}ZGS`lrg)h{l<#DctIf{Fkj@4P^B`I%9~t=8i> z+m9}%1T?{=Bs{D8cM|+dc@KJfy1S1vV<7iTzBV)O$`$0=VD~PmX!~x$c3ged?|P(S zfYS_FVxHI7vRbm`;e>qn+!)|!;vSs|eBz86e8TIbY!U^!XoMd?xB>yFG6*Thy5!#? zq`W)Y^Q5Uw8y(vr*YZ_f(AnF1t`38kslC4-ypg3U3}T4H0!(w%YObJ##6tUgeX#v; z4KS&ZAz%eK`n~)h|M0Ey57SgFE@&&TA?)G#5ivfVBGIhBoDG)#@NxoTsuiOUbLCk5 zVA78gQR-TpQSliC3{*xR!oX#%oazM^cR?0Y2viV}5~S5Pj7Uv;u4m3{V%nn9cKMtQ z-3N*T*yjIT5oRV9;p)JZjQ!J?ed0vU^_!wS&+ac99F+$f zW1>84s_$QgsfW)3)x+epL6Bb_A3XVP>Lg1NP!x6cXlkC%aJ*VQ7E0y{-^c6-_AF`c52_2RHnG=bCS zb2k5aGY~}*)&kI#W?(v)e_DY@y8_L{1g673WyBlb%m-J@@nBYL8aV9Uz|PP|n0-(} zUw#tqTGm+5WYvD~7b4=hX3=7tXUJqyyaCX~nr%zMFjVU!7&4d?+?&J&J_8Pj7K8mc zAz&Otn*ovjNz~0Z6{)&Atw5knQOFWt5kMkczTcJDCJnR*L?~--->Eq8j{k41IL0Qz z``BA7nc<#do|rHnCc>RSy^dw4faVx$Lx?N*kB=}(bN|>KySqolW|U%ngnTuX=@$n1 z&&MhT0vS}+Khe5a^V_kCfiS7lb+ZUt;ZIWti0TJv?$HdPN5RE7(z+4wPSJznL_hzS z^cF!+FBbIa)BJ=(lIC3uH|~0xzzjqx1uoq{G^Q&T4_hJPiZe)!V_16{OJ?KNs4on; zT&>|gBr&vKgqsgMdunlN4xT;*a;KP^{b6rl0x&D!-|_*;FMcRFg(;X|Y%XS&(6Q60 zHA)=+e@)9``XI&&`Z3SNH0l8m15+#B#71tignA*+T`Us8tV{sRcxoGA)xPujV5XNl z02j&dXv6#xV62~10b>h!di@x{-b%oTS=}mx{6g~z6O2l$~!vQ5Q_x|ATgHMqV zt)_|gd=eqObDv?LJ70;T)QYJ-%>vHER zd0s0H6jrSqribj*av_SA-zTL)nj!&kTm<#UT6UT#x&4HMkV%fZ{#CGj2H3UxAP}j9!$mhTGcs6 zLe>CB(_)C$uzXQ$;l>A3YeB#P|IyFOFXG{anS|9*kCIGYuTrxD=b#WSK{(u%&nM0^ zzBa>G;E4f@U2POvj{*)t3DjSy5J##%hSjGf%*QS~q9_p$EW-0WMZ z&)M}fDBHhvyGhCSWjPFGeBCN5a|{+=Bwp$XWx9TY=$D#1wnQVuWfED@7h|eA*N(?B z1FmxC4r_kt^PQLIEFgaKao>nRSGoXloDlHbNSr%&xh~;Qc$zuilO+22FF)9j4{uB_X#3^1#I~x< zvr2}~efVN*#?KDFd-e5{>ra)ogk-<{N$a7Kx&QgE|NPFUpZ$I9vY%%tR`k7avm@<8 z(#hC={_%%@2`jEz_>W0BU%qjiS3l>Ik@?k1jms5pNpG3==E>fDG8r3RUxH2N5Gy7T%a`;Nx8jGh|zF4h+XL$;{E- z#)Rs4KuMR$VYs7`UxrCyM*t|AMj6Kh^si12OuwlgRdR%!XO!WM1b~I~-q>Bd2I5&bN-0Sf)cZ{MB?^ttNwxrI;`e8Hwg%tO2BjtqGo2!`Rj_n_); zICda(1dxFkk{>=aQXj)yl!^fFFR;b=gz1^mYE~S?y+tx!%>`ubUVKJBitrWXm=*{2 zjL?iO19ADKO1zrOYJXtWTp3@DR*c=T`MMA3Ow+=Ci`Y_q;v=935)AJ~#QAJQ$))}a z**!E~<}=<@eax4s$BTJDoOBtMmt8%u6kj;+9txQ1rAiDD6E9KDXkRH}2GsF*-?0we zgX=pMge?ye;o8ohQ@5O5y)Z5Jj8r5S$7?s#9t}j0V{5wNiHh)X%HQ`e0H6i+245xD z1W^b&44{PNAv+9rf$qJ7n??LBkZakfZkXE&bOW#j#49lOZUu9mzmf;6d?0M}nnOZa z;71=hHKkp^BDs(DPABbW$32XU3;BPM*@ z)O4x0arh&k`U7mN(y@`%j%h_!gT&LQ^ZHHhy(Y&-5xxRW3EF_uYnxCc7gNd)U7 zfjOjv?*TlE(M}?F2?+L=|#@a>xmL6Ackf6M4r>+W1;HU1Q7|k6M}tDAjyl_GP3qc!Jy5_KM#@V9Ulsnol{DX6m3LQR1QL0Li$o99njBKvL$!IJ$z!q4jtkSPt#nZ?c2oqexs5aZR4>c9TCB>X+-k zt_;AzRr?M`WlTG_fiM;~E!XH%2fTHGXn~-YfSZYTxgLWS{A7n8EqF^tKol#3yU2^R zCvIS%MZO2Q0pCX|ys76>W?a*0#_DK;xw8JA&O|}b_(ijkPJ#p}-Am|~9lp@j604V_PT5?KNrfhy zIeUdjrsNUC)FQds|13s4A)K>I^|wr;s}yJBv2ypoJVt`C0!N(3Bn-|JbY(M5^e95D zQT}A|8N6!=*msbZ@&%!e=rXVh3`;F_r;nfFHh6O(VzEx9^^SOqvaX1G5)Wc&yznBJ z;tC+rBwkiJ5>69odW#`;-xeMGxsdGqs#}R1N?&nq101D;zsOU}EF8S~wxYMSG$btj zQ_Yqni8)H?{(!Q(_f$0UW%le)efK3H#rf9SOy_5dGjFD*!N-yk?7wXyCD1;lYd6@H zH(wJs*>BqnDY?6cx?C(z2*s*=&u%CVDU1rewTAM(wRqN$#9G|oh(_Hj!`B)jt|lcK zM7x?^p4r+gEVmYEo%$?8h)yXKvv%^^IY>5>B_0`hX&L5eY_KTp72v+JlrfCNfPkebF@np@$b)+8`i^0Zl}9i zSk9wnTij*&hHT`b`^LLFk&F5EY;Ig(inBouNkq&JE45CBJdq>GV?fz?47pHOKw<96 zBbiUdB&nq5xO8QzS{Hkks@uJ}+5J(U`-`Hj{Xk2nfG$W+=dFH}0D;g_vw z!v^?VJ#vDxTV|kIOC7PgB^t&uVYRM7)WOctETlwf3K&B6h_Qbj@^0VL&Uxhb1u4Rq z>@O2LisK63ytpMa?VS5>B$*acOE=foHbg~t#qR3qnF||+W>K7u@|aLbdP@PTrEYs& z_M1&K$+5G&kf-Li$%~-I{M(T?XYv%}m%ydEFp4DU|{~O{;Ucn!+0qvJvUY(kEsdg$KZg zEaKzrfiL3?NROo|nG&mXS4Y7S3}vKHNEi3Y1s2$#Mc=i+EuR=jF77vu1RC{xM@ki-uuO_riU{?Rm56TPJm zrE|4OnY*<`&vY6E#WrWMML=ot#CR6iN%k1&^RyF6*Iw3_!<{kjGZPJox3YAvYgw+r zm@}*C^YUHsXpxMCyytE$`CW*R-ELcxM9t1zb=(kpSlSBP^$ixjA>RFY7L=2JM1Hm- zew_+#&rzuIzc{sRB{d6L2EATUXE8049Xnx%_p9hFz0D@*7KL^BP>0-@ETE{Q5l`8h z_cp0=T*z*UU_HH(Z8$1FY|Qi+T4k1%aFJb|)gSpHpHeRu@>@uXe#!K$o~a;>&CMXBeUX0|!YpuG8*g%8C* z#}UWU}U8w zL&qrMbdpLsy2RaFv81C^vtxGRI^lX912XLiPqM3@P#KgQZgdwTu`-Ie{k#tO;sx}! zG~v*oHZ6)z$&-8deeP>6lchb2uh}8jtfrg6Kb{>Gbwa!OzuVcnMiBYi4KAI<6ejYV zXq2E$F#@>asVrG_M`?x2mPm$VcC%wdqAyE>+u>r;$tb41SpK}wF|$U0ptX2EyhcQ| zMkbED*ItHvm8Yol6x)Ws;#g~ovkd!Gh;2jGGN~<;bIBB!xL!Bc@~NTT#LtrFT}zVC zT{{$vmTti*o+#sdkyezJwMZ;`!N~6W@A&7zxRojHa%*06S7bO{!S`ro8@Y_c_Tp$; zv4^FwoQzs#`^spDDrzfcFYOW(bre_E6sk1HEhVQnkEGj?Tv0c?zSZ!SqtpFFPu8%f zM*pWgig*F?#ks9Nu zzc&hUn+?ts5n83Za!M_~%}V6y<9A)ze#@B2$<9M93BPhcM-N!m$wi^P;V0l_I*~fl zeQ~z^a-rZE6?Co9V3b=tu&aZe{c1(ufb$bH-}-cjxRq9^+Mc(N}6t0XwTA=B8b55yzE3=Duz&IAL~jS{)54c6W%(T)kFkexEkgymWRxOwZ-MHaNZCkn|=RnE4YjR z=*AYR{>nlTziUI9zT4$qc!JiT1rl$+ZkMuUWy|JCZ{0Gg1RnVYBZGah8fjifIT&L9 z>bgo7XS&8~g=rEOy6{9fs&kr8qPo0WHIj{a3q>T?hDBEe?y5oY{{6d_C8$E%E&rkY z+(6=kc8+K2`Qa+pP;}GNc8Pq~P!t4hfSLU@ zrJm-+@J083r7AxOZBfC69R}vmUr!fB6c(i#pY&y?o-U$X-puGTN*v)(MoL4WDr(sB z2DCXAGBZyJqR1tdQyz}dWpH&@SS)PIwpOXVY`)97rj^V2;)W+SPeD3O=Nc3!a;rNs zEDhe%%4Yu?p_{T@eG{PDU@* z>D~zATBv!gI~S3Q)aXbd^(=DG#fvD8bI@AqI2w~`Rh>uqwxY9;(i@ZY?@ECkk^wz& zD6!enP;eYxmNoQIai^U2m5$G~4aa@bndDLv>tFHGIP8UZ#A8`)nH9>`v0Y096_+7aF?Q&}D6c{dkYi zurFOmb4aLM{nbHFVNMef|;{7x_HOpK+UvS7V_}6ES4~=x{k{eI#GSMnC|2KRd zGWUX$CR{gb5;oCg0-hG)d|!yZ>aZ;k!~_;zMV)%62jk%}`AgT+r|49HNO} zdApg+S>XpHFmz5nXN^l={Xm`I7rc0xn&u?pahr-^BbV&_2l$yPc$`Sy&1aIqgaW<{^ zdGs%p@WLFSmfe#-8+9Fkqf*jTx8I+wx?O2?Hn?DEqgK$g$fIv(vq$(tt&Dl>s>5_` zyyen-A>Yyv!Rsi!N@By3h{Cpn+oz+IZ0Cu$TN=~igsfG3rBM%4*BcT$9F!zOL^-T1 zhm$0kTnf6sz9n?~`4;&)l|vC_xLS`*DE%y~ zM*mKpK%TWB>!mcX-py6fZSyoSo`KxTlkx7kQK-up+vsjkwxRh0#+xlO`?W60L1~g` zsJcc^U1e|I!pci+Q0iWUI*>J-Rp_PILy2vJ{r2C%hTi$D%FN!R<8bJ$V^#^NotB_MUs~p zoZY5IVa$5^s?2p+>nrNEHxw^;Tk+)Fjue2QyUytQH)L7&MXB0~>ELvE6)Y$Cp`(}{ zeY&o)BSo}HVXe_SXVWu3jf&pB4!*bnzBrqnmO@XHY*H+LTd^E`XIllUZ(kJcZ3Pc} ztUOATu`X*_MO}JBaU6hwb2}te9g>|5#bUZbGq!En!YNU|G>BWv`{`=Uhc#pyCAF zRc%u6YxFI%>DqO4Etqjljou8#elp6weO*>a9qGIL?Lv}dtOqFAmM$~ znlHn3vgeIXO|f}1L&o#g;7RDQTQN$`5q}>=uM_w^QDgJ>s6;aPz57cZ+B`5tuME>p zkifB}Apdfz55ARN_1BzDs3aj@!l_nlb!JbuP#nK75$FF#gLHG!@2iVQ?XT{yXUU}- zp;$Z;zdL^+{vDs(jCV*`c=`UCY%IRNrVjh7?yL6=CT61fpoXNyQ7`t@3d9^HN>j%a zr5^0Nn0=VCBJ?=y%LN>Gcy%OS<8CpL#=D=44Lwh(qn7Hc)l+UNA_O#5r`_*|ppq{E z@gS?HQlqz+;P7gY@R9lQ=+mT9dqZ#%9)xW8P~n86P&^Fr!1dV=Vd}ABp|O3iiJ}`iL-5@rW947G9c}z^h1Ic*b zXb#r*Ui;s9WhY{`Y3akE-Bs$AT~zLHr8l;_cGVUl?%)3gmLnQ^9HeC8t&*_zX@x}D z$+(8czJ&9!ebK;h17Fi>?(*F+#ox$cOvstkyNi^Ql-rM)M)@KORrk8CKZEo5z$RV1;0KUq^BseWS?AX_>SIl3$tJ zr9Bmqf$@XJfsY&*@notqXe@^A_VMvX#wR2d2eH(lOtKPhxMjYj>lsUD5FEmUhf?{4 zf_UQ-jqg{-v+tEI^c?I29Xey23mCE9M8n=U#ucZ;7x?;hn)8YFO8z$W-=}ibAj<)s zGSK)5NG%j}s^oovE-O$4-Z~ZhIYe+4Rs{{ZA0+y-3c-HIX&!~rS0FN>dKp7#(`Lk` zP$WUF0aL@%bpWw!+6UtBW|!T}pz%T|?kVgA@$d=kSP!>lWA29+CJ~;9{}|YrXR2!8 zAl(s%F~R=+Lys~g8dnIwX7k7PskFtIN7PKSsx3X}Y>a>4>_hcB@8oRUT~IwUYt$`E z?Bt;-G{>w~h4B3;;RW}AUv&)B-o3Fi-be){v2B)*IWhyw!#e(U?r#q*{>6tsbMrPF zearUb&r+7Yu%mjRd)CjB-mG|O(-Q?xmNskL?*4yS{EL^u*8j_s|FZbCmww*%A1_5N zUUK7a#&xO_#!onz|GYP*U0V33Mg3iNvBjJyph@SwAm(rdSeVbO2DKVEpSoGp7vM)< z%B&{*#oQ9SJd3bf{$ujMQV-sypVSo)cys0YT2m6IykUazejggh|5Ru1_Xr+GbR(k{ zFRQqe*&5LFdcS5Xp+S5X@tzF~(=_+%jdzOc?$@+%a>XrTJUD=@*izy$cb=2vfn0O7 zI!BAUn%JF-I`M8bbHpp5(IGF)EivJ(zpB*3cvbOcQI|yNMYC}Ppa|Ca*(Dw^ptSzkd zQg$^T$c60BL=*Wt2{2f2eE$JG6F39J*20eJXhIF+;&LZV489)tdK5O!ohS2hrcdh< z`f&3&6}>Pw&faN?wc!1p@u?WQ_otdVb)7O(#R|oy1J{&e4Hhv+6Rg|4TbcaV#R)p@ zDo+Uog7P`+Iu7@%lZE(mXG#_=PW9`9713(&j9v3AqHhz>TDVyu)_2^Z6N+M@iW~Rg z0J9864W=m2%(DZm8!o!jFmPZ>g3|Ipq{aEOT(-=!!VNNu$3X?AIZ^}A2nI%Rbt%gtp>n z@rO^il)mST_`WxV)}Ct2#M!`+lm7L_JH>UYz9nmMMxEG^sT2vUkU7*+C}c#4lpzV$ zL43stTTy)ygOZDmmtYNGIlso6^bi<+0_Fu^ePOQad_$(d63_tBKGqrZ!`IQBFJKau z76+y>+=ukR8?eeQ3I1ppyTJdjiaYyCQ(0}lz_>1t`kZ$}@xq%QLdJMA_F1c%r zde9gwTfBEIE$6B#t);s{`6QKApV6=!`sT5Jv=-~c97P4MR#S^N4J7FJv zh{R$|QDm5ygXDSXL9soceJWUv?-=X$VCK&s+ric19etB;CBiTbzae1N?zm*0^*2op zn|;LY9`X!YO}#e9M<>WK3^!yh#d|Vc%5KGI~1p3T_!81OIMY|MrC z+K#*PiiJwdhqpO6xHrP^Ju7uuem~*;6+;2b})H@nw3HFU#)ZvR}-I+-y zl+MIp-{|cz2x0}??fs2+a((yk7;MTKz%?N(q(`0~h#dgY7w7d8Rz5lTe*BXlIH zE-h0)%IojhkGT+AS7UBw>WXNOzwXENpOYDcDRk&miqEegf+Qd|MWZ3)hmBubLu)_? zTX)66b&TU5iEI{-$Kq_r_HhrY#dv&*$PU5rdNO8tiPtm}amIZ(0A~REsH2Ip0!=-h zxiqSA#^-Z2x}*E%S60LuUuelRGZ+e+PSP9^wM41tA$i_-M*@FZ9bT$I zhydqxJZ3qD0U{O?9DQ&mnBzDuyY$gFD8ut>)o{hHAxF~qz;)}hxC3z^%$EckdtA&2 zM-vX>JRgpE01gbsl`%JYtaB~8@u1_%0U+v*{1DCwPb-aNveXDQx&T0hJZlnUofJLZ zdoHv$XpL=y?;8n&!DPSfyHf)HcQs|&)C3ZvJ1)xy%g2)p_n8grV-Ea@k-=O?OqG6v z8yb(f6ZIm5*Y!0sV=IIkMTX=8)I^n1WHM-WPpL|61;=Cj%K1Z0=#qn z%-;uFhtM`+BfhtYz#OcyKk!DYf?fp%C&n^^-(oCNo%lI`jC`2l8DkmD?zH1^f&iyM zc9KAl{$ytX))j$xnF4B>T#}$$H_iSAzSzvBpQam6A`y`$1)lCq zWGeVcBtokPfCC(R0j(ZvsNm%{9^&qviZi&Ia8;1@14(e1OyY5rf;Z3*kj&=qw=fPa z2694#UBXQhQN=o?(f@XO2n3T8?uXo#UjmjwgG6xc<6=ZU!+7G_pvF+h|SmmC_89>#QDAh>B?|Alc} zL6AV27>>pl-LER|H*j?S1QG_Nr)9uheIRMYX1T8OgioH&w!iNahRC-Xr2G4CY>D170 zqIO(m%<<*kbaz}8fPO}xRO$~zWekza<*Pjm_T_x2#Nqu?3*#L+&pMF4;zB=@4^62T z2<8zSWmSB){Y9KFze|LifJFYIFaMmdg%fh$Cu=_&NK#L3c)mrJ_MRr&b_`1hfnwx( zhYi(1w{-!1EQCdB%gA!OQocze5mE%xkse1BdeL1hw-rDxOPpL!akVN1 zE&)`bGYZ`o8g)&KJS#OHHMp}pRvlV|d?c3_=6Z@?Hp+8d9#QC;sIFv+3$gUdc{ z1sPCcFVN15;;Qz&pkKROmRhj>zV;=6@+PAjyyho&LjN^j3xlz9Yh!va^17PINTQci=EZt z8y%JZ^y$e%YBKUcBw#$W#ZciaB&|Gs|aAAbEu>w(IjwRFa) z>Y!~~2WEY8x;s)x?kcU*m%8fhP$lDI&AH@r$qJI`xaM3*ZfoYvmEu>#?VYcRw?&)g znAXC}h&M|+RGFsEWnNp+1+;Xn6cpCGhIX4?Qgo4wQh@DnUwV^_RopF7x>3pvx`@? zZmWmS_2Gl?j>SLD(L4Q?NB@u}EqGZVs%7ynnp2dp*f7i_qI&%woe{6-*z5A3ON z;-7p@y^bngnNIa?7x209`!9G|ul9I^CRv?yPP0^`*X}uSu#yzJYey5i`h61#(>|$+ zXYqet(72z98dXIn$Ec!fnJ}$wRB@_zA#dRt)T^1ciQW>$#^Fl!W6j&d-#*sVR$xlH zL`cUzdW4W8>b zchQCkPU{4bTC8q+?j!iqAh# z6U4678~q!lBsaMw5Zi$dPG*5H5rTF2WPndhA}^STo z#v*M_iMkna}{I3Sd*rvHH}HW&(}+ zcx>xc5R-Y7Uadb0qyv3U0H=*$PY0@)-ayQOop&-j^a$ZYVu)iL&&f3J_XzvPkbrAt zj2oONLz;EeR^Z^^emUW5VL}wUvIzc&5ThS}QTHS69|VN?+IP!&1<*W3mmL|ekkZmt zGXE8-T~11nrVGP9s}^UshMsyi?ZzkXE`t7Q^VB)2sn)*b+5~b_Z@FC(o)jUBFsof_ zwI!sKyutO{-8r0vq!edY)*lZz(#ur?R}$MSY4Um*h174qZAv#=2uj$J`=_ULhHIj@iz39mw+}_j8f0 z9Gfmpiu{LJsM6&b@^xH!C3P)iKbx0HO4GohXvMOA4`l;;xU;<&p11JnTUj}tgLzuy z6Zwg?M$%`Usb%VfLWNT6c6wNs(qY(9+?dNHCni->Yx2kupY3HHJcom&P3K(aG0(QH=Wgx0lr>aM%gtN0=(AS} z5AbS_M8~hC)%JHO>X8+Sc6lrr>G=KQVI{QBU}lDV>tM4)R7t5W7SZe6C!>Xxl=Ujz z1{F!Dh15gNI&|Ne;W~?XR%3JBzgkWiby=mg>&T~WaPvl71q-8 z#_P;NsG77s&$OJZO5zwrrz-`OM&U_gNPDp`HI3SZ?mt4dKiBR-o%LM024$qAQS&RK zg&pgaCl9NJ#8z=gyNmS~@Ff@8SC8!09HQRrg|&G@VG$0=eibCCq`cv>{;kvDd@RRv zp`Ob~MWyw~m3FJgv8UIXWq&hA*fGS*^MqN+qza=*8;{0uPItuA)r;mjdh$G1>J3o6 zM7CQmNXe^05cE^~YRLW{sq$lF)$dc$H&dZ4sTS9cO{vgdY{vE+&qwtX@N_?;P`25+ zy(?8EuOzF4!b+jxmIl^&+O9ZYqyrqZ$;M$Aj?0k>1SL!sS2kiPGTpXpnU6{&+)Q#8 z8LF(#@eC)xPC6}ueFd%^dEE22_E2FOdTEv+tF7-?Q6*x^&+NP8qOe*&iPI`MG=tnV zk^sBpXDSQr@}u3t4QZ%ORv;@7nRbOR&JTSMX728IYUnCUCao%aXRgt?#`^PTq`MGv z9Je?B_w}MQ^kZqI(Zk=>IK)|GZb)4op;aET)@7z>3OtVdR7zF7EL^F50n#Fi*yiJW zOM|Z6+G^z@vJSc4=5U6t6;hjK_LJQ`D~l@44YQ&Z7PL4Wj*U)vQKzIEojK(>kKbBW zsIVC7H=xdR*h%3GTyN)a|Ju=KIjDSw-3OmJPbuuMB9AAesstz3+mUpbn?O}wscF<( z6eo`8O7_!+8VeN$RM0iZ47v4kqdu~|huOj(8R3JIB?)63Hy0eSziIojtn|gDf*NxE zc0`7}B`u(82NMRGDy(8rk!79ZNk`3LyJ5A}gZvH5Rs0&rcwvJfq)6LrtVO~y(dUqo z<~TFd2OU~3LAssE&>M7aZm-q-s^-u#GtZ*F{be=fb-AnUpn#KDRw=hO_h(h~cC+;^ zSVYw`7Mf8?TLL6Q%oNj5vzwj}30387wcXn8F+=7dF};zFbR|$Juc?G}>@v2HENf+L zrNI;bsGs zAYQLD+07$e=BCCYLW&*DFG}kYBp*SpuVU3|4WcmJHlcmXDWz4@Yo8|&2o^7xWADB_ z$WqXAQ?j6gZC1nEX`C}$yRIKWlT4|rnzgIbD2vg#XiI&P%CbW!%QZgby4_3Vv$l(8iGZ37C;0y$3AUFfT8JNxt!01O*fx{sG(QC_p^y3*bemP^tjDG_E&6u&h z^O@Ogu|Jye+K&&<_!<72z(e|5IhpiD&x8NHw)`jmi2db9;Qudzf8F3aGiLmMr>V9u literal 0 HcmV?d00001 diff --git a/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.3.trace.zip b/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.core.3.trace.zip new file mode 100644 index 0000000000000000000000000000000000000000..9b144143e03497859478a110cba522d0a1cf6a55 GIT binary patch literal 78042 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 R2jKrJz@P7eV;*?m{{z+D{{8>} literal 0 HcmV?d00001 diff --git a/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257596.5136.trace.zip b/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257596.5136.trace.zip deleted file mode 100644 index 1a2de7d9aa36d705a3c20e29233142685c14cd91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119898 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

^ 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 Z_}|aFr%sc8Ga2~50q}SB>&d|W{{ha&!FB)u diff --git a/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257598.2655.trace.zip b/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257598.2655.trace.zip deleted file mode 100644 index e2c996f3493b151c4199ac47488600a37819dd47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75040 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 U8T`(V!2g$mf4>3WnK9%41Ft3YDF6Tf diff --git a/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257599.2824.trace.zip b/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257599.2824.trace.zip deleted file mode 100644 index 3fda1bf3c86c023c2f48a370941805c7bc220538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75445 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 G^#1|qfOh== diff --git a/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257604.1983.trace.zip b/clients/drcachesim/tests/drmemtrace.threadsig-core-sharded.x64.tracedir/drmemtrace.threadsig.1257604.1983.trace.zip deleted file mode 100644 index ca76bc2b329080219e3df9fab72214b41116e7fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47463 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 Y!M_(*|I Date: Sun, 10 Mar 2024 18:02:18 -0400 Subject: [PATCH 4/7] i#6635 core filter, part 5: schedule_stats (#6701) Changes schedule_stats to detect switches via instead of the input ordinal, to support core-sharded-on-disk traces. Updates schedule_stats_test which no longer needs its own mock stream if we add get_input_interface to default_memtrace_stream_t and call set_tid. Adds a schedule_stats end-to-end test on the checked-in core-sharded-on-disk trace to ensure switches are detected. Issue: #6635 --- clients/drcachesim/scheduler/scheduler.cpp | 3 +- clients/drcachesim/scheduler/scheduler.h | 2 + .../tests/core_on_disk_schedule.templatex | 5 ++ .../drcachesim/tests/schedule_stats_test.cpp | 47 ++++--------------- clients/drcachesim/tools/schedule_stats.cpp | 33 +++++++++---- clients/drcachesim/tools/schedule_stats.h | 6 ++- suite/tests/CMakeLists.txt | 4 ++ 7 files changed, 50 insertions(+), 50 deletions(-) create mode 100644 clients/drcachesim/tests/core_on_disk_schedule.templatex diff --git a/clients/drcachesim/scheduler/scheduler.cpp b/clients/drcachesim/scheduler/scheduler.cpp index b95f0331603..bb5e72c9a99 100644 --- a/clients/drcachesim/scheduler/scheduler.cpp +++ b/clients/drcachesim/scheduler/scheduler.cpp @@ -1565,7 +1565,8 @@ scheduler_tmpl_t::get_tid(output_ordinal_t output) int index = outputs_[output].cur_input; if (index < 0) return -1; - if (inputs_[index].is_combined_stream()) + if (inputs_[index].is_combined_stream() || + TESTANY(OFFLINE_FILE_TYPE_CORE_SHARDED, inputs_[index].reader->get_filetype())) return inputs_[index].last_record_tid; return inputs_[index].tid; } diff --git a/clients/drcachesim/scheduler/scheduler.h b/clients/drcachesim/scheduler/scheduler.h index f668b09cc3a..049935d0e58 100644 --- a/clients/drcachesim/scheduler/scheduler.h +++ b/clients/drcachesim/scheduler/scheduler.h @@ -1132,6 +1132,8 @@ template class scheduler_tmpl_t { : lock(new std::mutex) { } + // Returns whether the stream mixes threads (online analysis mode) yet + // wants to treat them as separate shards (so not core-sharded-on-disk). bool is_combined_stream() { diff --git a/clients/drcachesim/tests/core_on_disk_schedule.templatex b/clients/drcachesim/tests/core_on_disk_schedule.templatex new file mode 100644 index 00000000000..df62b6f68ef --- /dev/null +++ b/clients/drcachesim/tests/core_on_disk_schedule.templatex @@ -0,0 +1,5 @@ +.* +Core #0 schedule: (FJ_|EK_|GI|CHC_C__) +Core #1 schedule: (FJ_|EK_|GI|CHC_C__) +Core #2 schedule: (FJ_|EK_|GI|CHC_C__) +Core #3 schedule: (FJ_|EK_|GI|CHC_C__) diff --git a/clients/drcachesim/tests/schedule_stats_test.cpp b/clients/drcachesim/tests/schedule_stats_test.cpp index 760dc7cab04..7a18fbf0c9e 100644 --- a/clients/drcachesim/tests/schedule_stats_test.cpp +++ b/clients/drcachesim/tests/schedule_stats_test.cpp @@ -1,5 +1,5 @@ /* ********************************************************** - * Copyright (c) 2021-2023 Google, LLC All rights reserved. + * Copyright (c) 2021-2024 Google, LLC All rights reserved. * **********************************************************/ /* @@ -63,36 +63,15 @@ using ::dynamorio::drmemtrace::TRACE_MARKER_TYPE_SYSCALL; // Bypasses the analyzer and scheduler for a controlled test sequence. // Alternates the per-core memref vectors in lockstep. static schedule_stats_t::counters_t -run_schedule_stats(const std::vector> &memrefs, - const std::unordered_map &tid2ord) +run_schedule_stats(const std::vector> &memrefs) { - schedule_stats_t tool(/*print_every=*/1, /*verbosity=*/2); - // schedule_stats_t uses get_input_id() to identify switches. - class mock_stream_t : public default_memtrace_stream_t { - public: - void - set_input_id(int64_t input_id) - { - input_id_ = input_id; - } - int64_t - get_input_id() const override - { - return input_id_; - } - memtrace_stream_t * - get_input_interface() const override - { - return const_cast(this); - } - - private: - int64_t input_id_ = 0; - }; + // At verbosity 2+ we'd need to subclass default_memtrace_stream_t + // and provide a non-null get_input_interface() (point at "this"). + schedule_stats_t tool(/*print_every=*/1, /*verbosity=*/1); struct per_core_t { void *worker_data; void *shard_data; - mock_stream_t stream; + default_memtrace_stream_t stream; bool finished = false; size_t memref_idx = 0; }; @@ -109,7 +88,7 @@ run_schedule_stats(const std::vector> &memrefs, if (per_core[cpu].finished) continue; memref_t memref = memrefs[cpu][per_core[cpu].memref_idx]; - per_core[cpu].stream.set_input_id(tid2ord.at(memref.instr.tid)); + per_core[cpu].stream.set_tid(memref.instr.tid); bool res = tool.parallel_shard_memref(per_core[cpu].shard_data, memref); assert(res); ++per_core[cpu].memref_idx; @@ -132,10 +111,6 @@ test_basic_stats() static constexpr int64_t TID_A = 42; static constexpr int64_t TID_B = 142; static constexpr int64_t TID_C = 242; - std::unordered_map tid2ord; - tid2ord[TID_A] = 0; - tid2ord[TID_B] = 1; - tid2ord[TID_C] = 2; std::vector> memrefs = { { gen_instr(TID_A), @@ -187,7 +162,7 @@ test_basic_stats() gen_instr(TID_B), }, }; - auto result = run_schedule_stats(memrefs, tid2ord); + auto result = run_schedule_stats(memrefs); assert(result.instrs == 16); assert(result.total_switches == 6); assert(result.voluntary_switches == 2); @@ -210,10 +185,6 @@ test_idle() static constexpr int64_t TID_A = 42; static constexpr int64_t TID_B = 142; static constexpr int64_t TID_C = 242; - std::unordered_map tid2ord; - tid2ord[TID_A] = 0; - tid2ord[TID_B] = 1; - tid2ord[TID_C] = 2; std::vector> memrefs = { { gen_instr(TID_B), @@ -248,7 +219,7 @@ test_idle() gen_instr(TID_A), }, }; - auto result = run_schedule_stats(memrefs, tid2ord); + auto result = run_schedule_stats(memrefs); assert(result.instrs == 13); assert(result.total_switches == 5); assert(result.voluntary_switches == 0); diff --git a/clients/drcachesim/tools/schedule_stats.cpp b/clients/drcachesim/tools/schedule_stats.cpp index b26fffb59b2..26afe37696c 100644 --- a/clients/drcachesim/tools/schedule_stats.cpp +++ b/clients/drcachesim/tools/schedule_stats.cpp @@ -126,6 +126,7 @@ schedule_stats_t::parallel_shard_init_stream(int shard_index, void *worker_data, std::lock_guard guard(shard_map_mutex_); per_shard->stream = stream; per_shard->core = stream->get_output_cpuid(); + per_shard->filetype = static_cast(stream->get_filetype()); shard_map_[shard_index] = per_shard; return reinterpret_cast(per_shard); } @@ -166,12 +167,13 @@ schedule_stats_t::parallel_shard_memref(void *shard_data, const memref_t &memref static constexpr char WAIT_SYMBOL = '-'; static constexpr char IDLE_SYMBOL = '_'; per_shard_t *shard = reinterpret_cast(shard_data); + int64_t input_id = shard->stream->get_input_id(); if (knob_verbose_ >= 4) { std::ostringstream line; line << "Core #" << std::setw(2) << shard->core << " @" << std::setw(9) << shard->stream->get_record_ordinal() << " refs, " << std::setw(9) << shard->stream->get_instruction_ordinal() << " instrs: input " - << std::setw(4) << shard->stream->get_input_id() << " @" << std::setw(9) + << std::setw(4) << input_id << " @" << std::setw(9) << shard->stream->get_input_interface()->get_record_ordinal() << " refs, " << std::setw(9) << shard->stream->get_input_interface()->get_instruction_ordinal() @@ -188,10 +190,12 @@ schedule_stats_t::parallel_shard_memref(void *shard_data, const memref_t &memref // Cache and reset here to ensure we reset on early return paths. bool was_wait = shard->prev_was_wait; bool was_idle = shard->prev_was_idle; - int64_t prev_input = shard->prev_input; + int64_t prev_workload_id = shard->prev_workload_id; + int64_t prev_tid = shard->prev_tid; shard->prev_was_wait = false; shard->prev_was_idle = false; - shard->prev_input = -1; + shard->prev_workload_id = -1; + shard->prev_tid = -1; if (memref.marker.type == TRACE_TYPE_MARKER && memref.marker.marker_type == TRACE_MARKER_TYPE_CORE_WAIT) { ++shard->counters.waits; @@ -228,8 +232,16 @@ schedule_stats_t::parallel_shard_memref(void *shard_data, const memref_t &memref } return true; } - int64_t input = shard->stream->get_input_id(); - if (input != prev_input) { + // We use to detect switches (instead of input_id) to handle + // core-sharded-on-disk. However, we still prefer the input_id ordinal + // for the letters. + int64_t workload_id = shard->stream->get_workload_id(); + int64_t tid = shard->stream->get_tid(); + int64_t letter_ord = + (TESTANY(OFFLINE_FILE_TYPE_CORE_SHARDED, shard->filetype) || input_id < 0) + ? tid + : input_id; + if (workload_id != prev_workload_id || tid != prev_tid) { // We convert to letters which only works well for <=26 inputs. if (!shard->thread_sequence.empty()) { ++shard->counters.total_switches; @@ -239,7 +251,7 @@ schedule_stats_t::parallel_shard_memref(void *shard_data, const memref_t &memref ++shard->counters.direct_switches; } shard->thread_sequence += - THREAD_LETTER_INITIAL_START + static_cast(input % 26); + THREAD_LETTER_INITIAL_START + static_cast(letter_ord % 26); shard->cur_segment_instrs = 0; if (!was_wait && !was_idle && shard->segment_start_microseconds > 0) { shard->counters.cpu_microseconds += @@ -251,7 +263,7 @@ schedule_stats_t::parallel_shard_memref(void *shard_data, const memref_t &memref line << "Core #" << std::setw(2) << shard->core << " @" << std::setw(9) << shard->stream->get_record_ordinal() << " refs, " << std::setw(9) << shard->stream->get_instruction_ordinal() << " instrs: input " - << std::setw(4) << input << " @" << std::setw(9) + << std::setw(4) << input_id << " @" << std::setw(9) << shard->stream->get_input_interface()->get_record_ordinal() << " refs, " << std::setw(9) << shard->stream->get_input_interface()->get_instruction_ordinal() @@ -264,14 +276,15 @@ schedule_stats_t::parallel_shard_memref(void *shard_data, const memref_t &memref std::cerr << line.str(); } } - shard->prev_input = input; + shard->prev_workload_id = workload_id; + shard->prev_tid = tid; if (type_is_instr(memref.instr.type)) { ++shard->counters.instrs; ++shard->cur_segment_instrs; shard->counters.idle_micros_at_last_instr = shard->counters.idle_microseconds; if (shard->cur_segment_instrs == knob_print_every_) { shard->thread_sequence += - THREAD_LETTER_SUBSEQUENT_START + static_cast(input % 26); + THREAD_LETTER_SUBSEQUENT_START + static_cast(letter_ord % 26); shard->cur_segment_instrs = 0; } shard->direct_switch_target = INVALID_THREAD_ID; @@ -291,6 +304,8 @@ schedule_stats_t::parallel_shard_memref(void *shard_data, const memref_t &memref } else if (memref.marker.marker_type == TRACE_MARKER_TYPE_DIRECT_THREAD_SWITCH) { ++shard->counters.direct_switch_requests; shard->direct_switch_target = memref.marker.marker_value; + } else if (memref.marker.marker_type == TRACE_MARKER_TYPE_FILETYPE) { + shard->filetype = static_cast(memref.marker.marker_value); } } else if (memref.exit.type == TRACE_TYPE_THREAD_EXIT) shard->saw_exit = true; diff --git a/clients/drcachesim/tools/schedule_stats.h b/clients/drcachesim/tools/schedule_stats.h index dcf00ab069d..0dfb4fda350 100644 --- a/clients/drcachesim/tools/schedule_stats.h +++ b/clients/drcachesim/tools/schedule_stats.h @@ -1,5 +1,5 @@ /* ********************************************************** - * Copyright (c) 2023 Google, Inc. All rights reserved. + * Copyright (c) 2023-2024 Google, Inc. All rights reserved. * **********************************************************/ /* @@ -120,7 +120,8 @@ class schedule_stats_t : public analysis_tool_t { memtrace_stream_t *stream = nullptr; int64_t core = 0; // We target core-sharded. counters_t counters; - int64_t prev_input = -1; + int64_t prev_workload_id = -1; + int64_t prev_tid = -1; // These are cleared when an instruction is seen. bool saw_syscall = false; memref_tid_t direct_switch_target = INVALID_THREAD_ID; @@ -132,6 +133,7 @@ class schedule_stats_t : public analysis_tool_t { bool prev_was_idle = false; // Computing %-idle. uint64_t segment_start_microseconds = 0; + intptr_t filetype = 0; }; void diff --git a/suite/tests/CMakeLists.txt b/suite/tests/CMakeLists.txt index 362997e98cb..b943771bf31 100644 --- a/suite/tests/CMakeLists.txt +++ b/suite/tests/CMakeLists.txt @@ -3879,6 +3879,10 @@ if (BUILD_CLIENTS) torunonly_simtool(core_on_disk ${ci_shared_app} "-indir ${core_sharded_dir} -simulator_type basic_counts" "") set(tool.core_on_disk_rawtemp ON) # no preprocessor + + torunonly_simtool(core_on_disk_schedule ${ci_shared_app} + "-indir ${core_sharded_dir} -simulator_type schedule_stats" "") + set(tool.core_on_disk_schedule_rawtemp ON) # no preprocessor endif () endif () From d21d6e30b092a286cd7c7d1b1c60043fe80f731c Mon Sep 17 00:00:00 2001 From: Junxuan Liao <70618504+MikeWalrus@users.noreply.github.com> Date: Mon, 11 Mar 2024 22:10:44 +0800 Subject: [PATCH 5/7] i#6693 SIGFPE-glibc-2-39: Update workaround offsets (#6694) Adds a check for glibc 2.39 on x64. x86 values are left unchanged. Fixes #6693 --- core/unix/loader.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/core/unix/loader.c b/core/unix/loader.c index e7e0aca2cf1..0e29bd5fca6 100644 --- a/core/unix/loader.c +++ b/core/unix/loader.c @@ -743,15 +743,21 @@ privload_os_finalize(privmod_t *privmod) SYSLOG_INTERNAL_WARNING("glibc 2.34+ i#5437 workaround failed: missed glro"); return; } + int GLRO_dl_tls_static_size_OFFS; + int GLRO_dl_tls_static_align_OFFS; # ifdef X64 - const int GLRO_dl_tls_static_size_OFFS = 0x2a8; - const int GLRO_dl_tls_static_align_OFFS = 0x2b0; + // The offsets changed between 2.38 and 2.39. + if (ver[2] == '3' && ver[3] < '9') { + GLRO_dl_tls_static_size_OFFS = 0x2a8; + GLRO_dl_tls_static_align_OFFS = 0x2b0; + } else { + GLRO_dl_tls_static_size_OFFS = 0x2c8; + GLRO_dl_tls_static_align_OFFS = 0x2d0; + } # else // The offsets changed between 2.35 and 2.36. - const int GLRO_dl_tls_static_size_OFFS = - (ver[2] == '3' && ver[3] == '5') ? 0x328 : 0x31c; - const int GLRO_dl_tls_static_align_OFFS = - (ver[2] == '3' && ver[3] == '5') ? 0x32c : 0x320; + GLRO_dl_tls_static_size_OFFS = (ver[2] == '3' && ver[3] == '5') ? 0x328 : 0x31c; + GLRO_dl_tls_static_align_OFFS = (ver[2] == '3' && ver[3] == '5') ? 0x32c : 0x320; # endif size_t val = 4096, written; if (!safe_write_ex(glro + GLRO_dl_tls_static_size_OFFS, sizeof(val), &val, From 2d2cd90ab2b0192c12e3907d77036f2385431a13 Mon Sep 17 00:00:00 2001 From: Enrico Deiana Date: Tue, 12 Mar 2024 13:56:09 -0700 Subject: [PATCH 6/7] i#6698 instr_t ISA mode: move from flags to its own field (#6699) Moves instruction-related ISA mode from instr_t flags field to a new dr_isa_mode_t field in instr_t and updates setter and getter functions for instr_t ISA mode. Fixes #6698 --- core/ir/aarch64/instr.c | 18 ++++++++++-------- core/ir/arm/instr.c | 22 +++++++++------------- core/ir/instr.h | 13 +------------ core/ir/instr_api.h | 6 ++++++ core/ir/instr_shared.c | 15 ++++++++++++--- core/ir/riscv64/instr.c | 17 ++++++++++------- core/ir/x86/instr.c | 29 +++++++++++------------------ 7 files changed, 59 insertions(+), 61 deletions(-) diff --git a/core/ir/aarch64/instr.c b/core/ir/aarch64/instr.c index 8e0d6fb7371..63a0ec57f2c 100644 --- a/core/ir/aarch64/instr.c +++ b/core/ir/aarch64/instr.c @@ -34,19 +34,21 @@ #include "../globals.h" #include "instr.h" #include "decode.h" - +#include "encode_api.h" #include "opcode_names.h" +/* XXX i#6690: currently only A64 is supported for instruction encoding. + * We want to add support for A64 decoding and synthetic ISA encoding as well. + * XXX i#1684: move this function to core/ir/instr_shared.c once we can support + * all architectures in the same build of DR. + */ bool instr_set_isa_mode(instr_t *instr, dr_isa_mode_t mode) { - return (mode == DR_ISA_ARM_A64); -} - -dr_isa_mode_t -instr_get_isa_mode(instr_t *instr) -{ - return DR_ISA_ARM_A64; + if (mode != DR_ISA_ARM_A64) + return false; + instr->isa_mode = DR_ISA_ARM_A64; + return true; } int diff --git a/core/ir/arm/instr.c b/core/ir/arm/instr.c index 7097f19045e..08c7e90014f 100644 --- a/core/ir/arm/instr.c +++ b/core/ir/arm/instr.c @@ -32,28 +32,24 @@ #include "../globals.h" #include "instr.h" +#include "encode_api.h" #include "decode.h" -/* FIXME i#1551: add A64 and Thumb support throughout */ - +/* XXX i#6690: currently only A32 and Thumb is supported for instruction encoding. + * We want to add support for A32 and Thumb decoding and synthetic ISA encoding as well. + * XXX i#1684: move this function to core/ir/instr_shared.c once we can support + * all architectures in the same build of DR. + */ bool instr_set_isa_mode(instr_t *instr, dr_isa_mode_t mode) { - if (mode == DR_ISA_ARM_THUMB) - instr->flags |= INSTR_THUMB_MODE; - else if (mode == DR_ISA_ARM_A32) - instr->flags &= ~INSTR_THUMB_MODE; - else + if (mode != DR_ISA_ARM_THUMB && mode != DR_ISA_ARM_A32) { return false; + } + instr->isa_mode = mode; return true; } -dr_isa_mode_t -instr_get_isa_mode(instr_t *instr) -{ - return TEST(INSTR_THUMB_MODE, instr->flags) ? DR_ISA_ARM_THUMB : DR_ISA_ARM_A32; -} - int instr_length_arch(dcontext_t *dcontext, instr_t *instr) { diff --git a/core/ir/instr.h b/core/ir/instr.h index b26e83017cb..76dc3a02c82 100644 --- a/core/ir/instr.h +++ b/core/ir/instr.h @@ -202,19 +202,8 @@ enum { INSTR_DO_NOT_EMIT = 0x10000000, /* PR 251479: re-relativization support: is instr->rip_rel_pos valid? */ INSTR_RIP_REL_VALID = 0x20000000, -#ifdef X86 - /* PR 278329: each instr stores its own mode */ - INSTR_X86_MODE = 0x40000000, -#elif defined(ARM) - /* We assume we don't need to distinguish A64 from A32 as you cannot swap - * between them in user mode. Thus we only need one flag. - * XXX: we might want more power for drdecode, though the global isa_mode - * should be sufficient there. - */ - INSTR_THUMB_MODE = 0x40000000, -#endif /* PR 267260: distinguish our own mangling from client-added instrs */ - INSTR_OUR_MANGLING = 0x80000000, + INSTR_OUR_MANGLING = 0x40000000, }; #define DR_TUPLE_TYPE_BITS 4 diff --git a/core/ir/instr_api.h b/core/ir/instr_api.h index 5b6017d4a88..11f05e0c6eb 100644 --- a/core/ir/instr_api.h +++ b/core/ir/instr_api.h @@ -310,6 +310,12 @@ struct _instr_t { byte num_dsts; byte num_srcs; + /* Instruction ISA mode to support multiple architectures in the same build of DR + * (xref i#6698 i#1684). + * This field holds values of type #dr_isa_mode_t. + */ + byte isa_mode; + union { struct { /* for efficiency everyone has a 1st src opnd, since we often just diff --git a/core/ir/instr_shared.c b/core/ir/instr_shared.c index 30f0f4b1aea..a3943249feb 100644 --- a/core/ir/instr_shared.c +++ b/core/ir/instr_shared.c @@ -84,16 +84,19 @@ instr_t * instr_create(void *drcontext) { + bool is_instr_isa_mode_set = false; dcontext_t *dcontext = (dcontext_t *)drcontext; instr_t *instr = (instr_t *)heap_alloc(dcontext, sizeof(instr_t) HEAPACCT(ACCT_IR)); /* everything initializes to 0, even flags, to indicate * an uninitialized instruction */ memset((void *)instr, 0, sizeof(instr_t)); #if defined(X86) && defined(X64) - instr_set_isa_mode(instr, X64_CACHE_MODE_DC(dcontext) ? DR_ISA_AMD64 : DR_ISA_IA32); -#elif defined(ARM) - instr_set_isa_mode(instr, dr_get_isa_mode(dcontext)); + is_instr_isa_mode_set = instr_set_isa_mode( + instr, X64_CACHE_MODE_DC(dcontext) ? DR_ISA_AMD64 : DR_ISA_IA32); +#else + is_instr_isa_mode_set = instr_set_isa_mode(instr, dr_get_isa_mode(dcontext)); #endif + CLIENT_ASSERT(is_instr_isa_mode_set, "setting instruction ISA mode unsuccessful"); return instr; } @@ -442,6 +445,12 @@ private_instr_encode(dcontext_t *dcontext, instr_t *instr, bool always_cache) return len; } +dr_isa_mode_t +instr_get_isa_mode(instr_t *instr) +{ + return (dr_isa_mode_t)instr->isa_mode; +} + #define inlined_instr_get_opcode(instr) \ (IF_DEBUG_(CLIENT_ASSERT(sizeof(*instr) == sizeof(instr_t), "invalid type"))( \ ((instr)->opcode == OP_UNDECODED) \ diff --git a/core/ir/riscv64/instr.c b/core/ir/riscv64/instr.c index 2a28ceece39..e35550ce62f 100644 --- a/core/ir/riscv64/instr.c +++ b/core/ir/riscv64/instr.c @@ -32,17 +32,20 @@ #include "../globals.h" #include "instr.h" +#include "encode_api.h" +/* XXX i#6690: currently only RISCV64 is supported for instruction encoding. + * We want to add support for RISCV64 decoding and synthetic ISA encoding as well. + * XXX i#1684: move this function to core/ir/instr_shared.c once we can support + * all architectures in the same build of DR. + */ bool instr_set_isa_mode(instr_t *instr, dr_isa_mode_t mode) { - return (mode == DR_ISA_RV64IMAFDC); -} - -dr_isa_mode_t -instr_get_isa_mode(instr_t *instr) -{ - return DR_ISA_RV64IMAFDC; + if (mode != DR_ISA_RV64IMAFDC) + return false; + instr->isa_mode = DR_ISA_RV64IMAFDC; + return true; } int diff --git a/core/ir/x86/instr.c b/core/ir/x86/instr.c index 9db609e7e81..b9cf49eea69 100644 --- a/core/ir/x86/instr.c +++ b/core/ir/x86/instr.c @@ -40,6 +40,7 @@ #include "instr.h" #include "decode.h" #include "decode_private.h" +#include "encode_api.h" #include "instr_create_shared.h" #ifdef X64 @@ -51,9 +52,9 @@ void instr_set_x86_mode(instr_t *instr, bool x86) { if (x86) - instr->flags |= INSTR_X86_MODE; + instr->isa_mode = DR_ISA_IA32; else - instr->flags &= ~INSTR_X86_MODE; + instr->isa_mode = DR_ISA_AMD64; } /* @@ -63,37 +64,29 @@ instr_set_x86_mode(instr_t *instr, bool x86) bool instr_get_x86_mode(instr_t *instr) { - return TEST(INSTR_X86_MODE, instr->flags); + return instr->isa_mode == DR_ISA_IA32; } #endif +/* XXX i#6690: currently only x86 and x64 are supported for instruction encoding. + * We want to add support for x86 and x64 decoding and synthetic ISA encoding as well. + * XXX i#1684: move this function to core/ir/instr_shared.c once we can support + * all architectures in the same build of DR. + */ bool instr_set_isa_mode(instr_t *instr, dr_isa_mode_t mode) { #ifdef X64 - if (mode == DR_ISA_IA32) - instr_set_x86_mode(instr, true); - else if (mode == DR_ISA_AMD64) - instr_set_x86_mode(instr, false); - else + if (mode != DR_ISA_IA32 && mode != DR_ISA_AMD64) return false; #else if (mode != DR_ISA_IA32) return false; #endif + instr->isa_mode = mode; return true; } -dr_isa_mode_t -instr_get_isa_mode(instr_t *instr) -{ -#ifdef X64 - return TEST(INSTR_X86_MODE, instr->flags) ? DR_ISA_IA32 : DR_ISA_AMD64; -#else - return DR_ISA_IA32; -#endif -} - int instr_length_arch(dcontext_t *dcontext, instr_t *instr) { From 5238a6a9365cef637fb34021de1565b0e9714eab Mon Sep 17 00:00:00 2001 From: xdje42 Date: Tue, 12 Mar 2024 16:42:31 -0700 Subject: [PATCH 7/7] i#6678 Rename aarchxx workflows, part 1: ci-aarchxx -> ci-aarchxx-cross (#6696) There are currently two workflows name "ci-aarchxx" which is confusing. The ci-aarch64-native workflow was renamed to ci-aarchxx in #6549 with the goal of being consistent with other architecture workflows. However, this introduced the ambiguous "ci-aarchxx" naming. Fix this by renaming ci-aarchxx.yml -> ci-aarchxx-cross.yml, and renaming ci-aarch64-native.yml -> ci-aarchxx.yml. Furthermore, rename the aarchxx "cross" workflow to ci-aarchxx-cross. This accomplishes three things: 1. Naming is consistent with the other workflow files: native workflows are named "ci-$ARCH" and live in file "ci-$ARCH.yml". 2. All workflows have unique names. 3. The yml file and workflow have the same name. In this part one we rename the cross ci-aarchxx to ci-aarchxx-cross, in the workflow name and yml file name. In part two to follow (#6697) we will leave the workflow name alone, but still rename the file from ci-aarch64-native.yml to ci-aarchxx.yml. The renaming is split into two to better preserve the history: Git can track file renamings, but not when the original file is also replaced with something different. Issue #6678 Co-authored-by: Joshua Warburton --- .github/workflows/{ci-aarchxx.yml => ci-aarchxx-cross.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename .github/workflows/{ci-aarchxx.yml => ci-aarchxx-cross.yml} (99%) diff --git a/.github/workflows/ci-aarchxx.yml b/.github/workflows/ci-aarchxx-cross.yml similarity index 99% rename from .github/workflows/ci-aarchxx.yml rename to .github/workflows/ci-aarchxx-cross.yml index f4c0e2abca9..3d564d17e9b 100644 --- a/.github/workflows/ci-aarchxx.yml +++ b/.github/workflows/ci-aarchxx-cross.yml @@ -30,7 +30,7 @@ # Github Actions workflow for AArchXX Continuous Integration testing. -name: ci-aarchxx +name: ci-aarchxx-cross on: # Run on pushes to master and on pull request changes, including from a # forked repo with no "push" trigger, while avoiding duplicate triggers.