From 5aeb82e00164e57d68282d17dc39df75a4af4369 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 18:05:51 +0200 Subject: [PATCH 1/6] fix(deps): update github.com/open-telemetry/sig-profiling/profcheck digest to 5939a84 (#1363) Signed-off-by: Florian Lehner Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Florian Lehner --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b7a4ee7a6..7302a4dc0 100644 --- a/go.mod +++ b/go.mod @@ -21,7 +21,7 @@ require ( github.com/klauspost/compress v1.18.5 github.com/mdlayher/kobject v0.0.0-20200520190114-19ca17470d7d github.com/minio/sha256-simd v1.0.1 - github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260416173450-2addcd15bcf9 + github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260420183608-5939a84a5ae2 github.com/peterbourgon/ff/v3 v3.4.0 github.com/stretchr/testify v1.11.1 github.com/zeebo/xxh3 v1.1.0 diff --git a/go.sum b/go.sum index 05baee339..2de138a0a 100644 --- a/go.sum +++ b/go.sum @@ -113,8 +113,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260416173450-2addcd15bcf9 h1:5Vkt+7PW6q8F/k1PmDdDBNbImEev923/owavI/YhLQE= -github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260416173450-2addcd15bcf9/go.mod h1:WPdgk1BinVdvYdkbt1KIkgDw6qUiK8CnGq+ftaJ41Ns= +github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260420183608-5939a84a5ae2 h1:ttf1nLpRdVK+fQE+jJjczdfyl1YLjyOI79PddHU3HOI= +github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260420183608-5939a84a5ae2/go.mod h1:WPdgk1BinVdvYdkbt1KIkgDw6qUiK8CnGq+ftaJ41Ns= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= From 5c75fdc9098deb88e911a2ba503c9af7e7c9a0ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 09:21:19 +0300 Subject: [PATCH 2/6] chore(deps): update rust crate object to v0.39.1 (#1364) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 700b96325..b4923717e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -372,9 +372,9 @@ checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "object" -version = "0.39.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63944c133d03f44e75866bbd160b95af0ec3f6a13d936d69d31c81078cbc5baf" +checksum = "2e5a6c098c7a3b6547378093f5cc30bc54fd361ce711e05293a5cc589562739b" dependencies = [ "memchr", ] From 967c3a7a6f2c9be922364ba00f9b4ad2b9cd2c53 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 09:21:45 +0300 Subject: [PATCH 3/6] chore(deps): lock file maintenance (#1365) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> From f5146df23bdd13cf993bbc19d057fd13dbb236c1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 15:51:10 +0200 Subject: [PATCH 4/6] fix(deps): update go dependencies (#1366) Signed-off-by: Florian Lehner Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Florian Lehner --- go.mod | 4 ++-- go.sum | 8 ++++---- tools/probe-ctrl/go.mod | 5 +++-- tools/probe-ctrl/go.sum | 12 ++++++------ 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/go.mod b/go.mod index 7302a4dc0..9e69c27ac 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ go 1.25.0 require ( github.com/aws/aws-sdk-go-v2 v1.41.6 github.com/aws/aws-sdk-go-v2/config v1.32.16 - github.com/aws/aws-sdk-go-v2/service/s3 v1.99.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.100.0 github.com/cilium/ebpf v0.21.0 github.com/elastic/go-freelru v0.16.0 github.com/elastic/go-perf v0.0.0-20260224073651-af0ee0c731b7 @@ -21,7 +21,7 @@ require ( github.com/klauspost/compress v1.18.5 github.com/mdlayher/kobject v0.0.0-20200520190114-19ca17470d7d github.com/minio/sha256-simd v1.0.1 - github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260420183608-5939a84a5ae2 + github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260422152846-dd95db7b8093 github.com/peterbourgon/ff/v3 v3.4.0 github.com/stretchr/testify v1.11.1 github.com/zeebo/xxh3 v1.1.0 diff --git a/go.sum b/go.sum index 2de138a0a..bf95d3f7e 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22 h1:PUmZeJU6 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.22/go.mod h1:nO6egFBoAaoXze24a2C0NjQCvdpk8OueRoYimvEB9jo= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22 h1:SE+aQ4DEqG53RRCAIHlCf//B2ycxGH7jFkpnAh/kKPM= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.22/go.mod h1:ES3ynECd7fYeJIL6+oax+uIEljmfps0S70BaQzbMd/o= -github.com/aws/aws-sdk-go-v2/service/s3 v1.99.1 h1:kU/eBN5+MWNo/LcbNa4hWDdN76hdcd7hocU5kvu7IsU= -github.com/aws/aws-sdk-go-v2/service/s3 v1.99.1/go.mod h1:Fw9aqhJicIVee1VytBBjH+l+5ov6/PhbtIK/u3rt/ls= +github.com/aws/aws-sdk-go-v2/service/s3 v1.100.0 h1:7G26Sae6PMKn4kMcU5JzNfrm1YrKwyOhowXPYR2WiWY= +github.com/aws/aws-sdk-go-v2/service/s3 v1.100.0/go.mod h1:Fw9aqhJicIVee1VytBBjH+l+5ov6/PhbtIK/u3rt/ls= github.com/aws/aws-sdk-go-v2/service/signin v1.0.10 h1:a1Fq/KXn75wSzoJaPQTgZO0wHGqE9mjFnylnqEPTchA= github.com/aws/aws-sdk-go-v2/service/signin v1.0.10/go.mod h1:p6+MXNxW7IA6dMgHfTAzljuwSKD0NCm/4lbS4t6+7vI= github.com/aws/aws-sdk-go-v2/service/sso v1.30.16 h1:x6bKbmDhsgSZwv6q19wY/u3rLk/3FGjJWyqKcIRufpE= @@ -113,8 +113,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260420183608-5939a84a5ae2 h1:ttf1nLpRdVK+fQE+jJjczdfyl1YLjyOI79PddHU3HOI= -github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260420183608-5939a84a5ae2/go.mod h1:WPdgk1BinVdvYdkbt1KIkgDw6qUiK8CnGq+ftaJ41Ns= +github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260422152846-dd95db7b8093 h1:NWkokqNTFElJQUa1VLnW/8RVL0JTGyNdGtfiRpUBBcs= +github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260422152846-dd95db7b8093/go.mod h1:WPdgk1BinVdvYdkbt1KIkgDw6qUiK8CnGq+ftaJ41Ns= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= diff --git a/tools/probe-ctrl/go.mod b/tools/probe-ctrl/go.mod index 4b5131862..52ecb1622 100644 --- a/tools/probe-ctrl/go.mod +++ b/tools/probe-ctrl/go.mod @@ -39,6 +39,7 @@ require ( go.opentelemetry.io/collector/pdata/pprofile v0.150.0 // indirect go.opentelemetry.io/otel v1.43.0 // indirect go.opentelemetry.io/otel/metric v1.43.0 // indirect + go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/arch v0.26.0 // indirect golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect @@ -47,10 +48,10 @@ require ( golang.org/x/net v0.53.0 // indirect golang.org/x/sync v0.20.0 // indirect golang.org/x/sys v0.43.0 // indirect - golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa // indirect + golang.org/x/telemetry v0.0.0-20260421165255-392afab6f40e // indirect golang.org/x/text v0.36.0 // indirect golang.org/x/tools v0.44.0 // indirect - golang.org/x/vuln v1.2.0 // indirect + golang.org/x/vuln v1.3.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect google.golang.org/grpc v1.80.0 // indirect google.golang.org/protobuf v1.36.11 // indirect diff --git a/tools/probe-ctrl/go.sum b/tools/probe-ctrl/go.sum index a19e2da75..3be97d45d 100644 --- a/tools/probe-ctrl/go.sum +++ b/tools/probe-ctrl/go.sum @@ -67,8 +67,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260413132240-ba91c553bcdc h1:figYiVfUynFciIW2HwPIm2DVfN43QoGJOAQ6dQRzuUI= -github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260413132240-ba91c553bcdc/go.mod h1:WPdgk1BinVdvYdkbt1KIkgDw6qUiK8CnGq+ftaJ41Ns= +github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260422152846-dd95db7b8093 h1:NWkokqNTFElJQUa1VLnW/8RVL0JTGyNdGtfiRpUBBcs= +github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260422152846-dd95db7b8093/go.mod h1:WPdgk1BinVdvYdkbt1KIkgDw6qUiK8CnGq+ftaJ41Ns= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -145,8 +145,8 @@ golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa h1:efT73AJZfAAUV7SOip6pWGkwJDzIGiKBZGVzHYa+ve4= -golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa/go.mod h1:kHjTxDEnAu6/Nl9lDkzjWpR+bmKfxeiRuSDlsMb70gE= +golang.org/x/telemetry v0.0.0-20260421165255-392afab6f40e h1:OXgN37M6hqjaAvb7CJK9vJ+7Z/6lvIm5bXho5poo/Wk= +golang.org/x/telemetry v0.0.0-20260421165255-392afab6f40e/go.mod h1:kHjTxDEnAu6/Nl9lDkzjWpR+bmKfxeiRuSDlsMb70gE= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= @@ -156,8 +156,8 @@ golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnps golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8= -golang.org/x/vuln v1.2.0 h1:8cnjhNXE0ajbr/gbiSgCMb13OKly1Hhcqxl73/IkMio= -golang.org/x/vuln v1.2.0/go.mod h1:Mfm3gwCvkLid5h4weUCDsz6/vRiYfSpj3bXt06bErUg= +golang.org/x/vuln v1.3.0 h1:hZYzR8uRhYhDSX88d+40TWbKAVw7BIvRWm26rtEn8jw= +golang.org/x/vuln v1.3.0/go.mod h1:MIY2PaR1y52stzZM3uHBboUAdVJvSVMl5nP3OQrwQaE= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= From 63660c34ab4d3e570c5ccfe4f9e04db7accb9c2b Mon Sep 17 00:00:00 2001 From: Brennan Vincent Date: Sun, 1 Mar 2026 16:47:02 -0700 Subject: [PATCH 5/6] Add LuaJIT interpreter This PR contains an interpreter for LuaJIT code, which is primarily useful in practice due to OpenResty. It has been used in Parca/Polar Signals since Nov. 2024. A thorough explanation of the approach used as well as an introduction to Lua internals can be found at the accompanying blog post: https://www.polarsignals.com/blog/posts/2024/11/13/lua-unwinding . --- go.mod | 40 +- go.sum | 90 +++ interpreter/go/go_test.go | 2 +- interpreter/instancestubs.go | 34 + interpreter/loaderinfo.go | 12 +- interpreter/luajit/bc.go | 196 ++++++ interpreter/luajit/extractor_aarch64.go | 359 ++++++++++ interpreter/luajit/extractor_x86.go | 520 ++++++++++++++ interpreter/luajit/log.go | 36 + interpreter/luajit/luajit.go | 494 ++++++++++++++ interpreter/luajit/luajit_test.go | 263 ++++++++ interpreter/luajit/mappings_test.go | 83 +++ interpreter/luajit/offsets.go | 407 +++++++++++ interpreter/luajit/offsets_arm64.go | 24 + interpreter/luajit/offsets_test.go | 328 +++++++++ interpreter/luajit/offsets_x86.go | 25 + interpreter/luajit/proto.go | 371 ++++++++++ interpreter/luajit/proto_test.go | 60 ++ interpreter/luajit/testdata/lua/comp.lua | 18 + interpreter/luajit/testdata/lua/fib.lua | 24 + .../luajit/testdata/lua/input-text.lua | 19 + interpreter/luajit/testdata/lua/lualzw.lua | 176 +++++ .../luajit/testdata/lua/nested-pcall.lua | 9 + interpreter/luajit/testdata/lua/sort.lua | 37 + interpreter/luajit/testdata/lua/util.lua | 9 + interpreter/luajit/testdata/nginx.conf | 61 ++ interpreter/luajit/trace.go | 105 +++ interpreter/types.go | 7 + libpf/frametype.go | 2 + libpf/frametype_test.go | 2 +- libpf/interpretertype.go | 3 + libpf/trace.go | 4 + metrics/ids.go | 8 +- metrics/metrics.json | 14 + processmanager/ebpf/ebpf.go | 7 + processmanager/execinfomanager/manager.go | 7 +- support/ebpf/errors.h | 17 +- support/ebpf/extmaps.h | 1 + support/ebpf/frametypes.h | 2 + support/ebpf/luajit.h | 11 + support/ebpf/luajit_tracer.ebpf.c | 632 ++++++++++++++++++ support/ebpf/native_stack_trace.ebpf.c | 1 + support/ebpf/tracemgmt.h | 7 + support/ebpf/tracer.ebpf.amd64 | Bin 819504 -> 904600 bytes support/ebpf/tracer.ebpf.arm64 | Bin 811032 -> 895760 bytes support/ebpf/types.h | 80 ++- support/types.go | 32 +- support/types_def.go | 13 + testutils/helpers.go | 162 +++++ tools/coredump/coredump.go | 1 - tools/coredump/ebpfcode.h | 2 + tools/coredump/ebpfhelpers.go | 3 +- tools/coredump/ebpfmaps.go | 8 + tools/dis2go.py | 66 ++ tools/errors-codegen/errors.json | 25 + tracer/tracer.go | 5 + tracer/types/parse.go | 2 + x86helpers/x86_helpers.go | 33 + 58 files changed, 4938 insertions(+), 21 deletions(-) create mode 100644 interpreter/luajit/bc.go create mode 100644 interpreter/luajit/extractor_aarch64.go create mode 100644 interpreter/luajit/extractor_x86.go create mode 100644 interpreter/luajit/log.go create mode 100644 interpreter/luajit/luajit.go create mode 100644 interpreter/luajit/luajit_test.go create mode 100644 interpreter/luajit/mappings_test.go create mode 100644 interpreter/luajit/offsets.go create mode 100644 interpreter/luajit/offsets_arm64.go create mode 100644 interpreter/luajit/offsets_test.go create mode 100644 interpreter/luajit/offsets_x86.go create mode 100644 interpreter/luajit/proto.go create mode 100644 interpreter/luajit/proto_test.go create mode 100644 interpreter/luajit/testdata/lua/comp.lua create mode 100644 interpreter/luajit/testdata/lua/fib.lua create mode 100644 interpreter/luajit/testdata/lua/input-text.lua create mode 100644 interpreter/luajit/testdata/lua/lualzw.lua create mode 100644 interpreter/luajit/testdata/lua/nested-pcall.lua create mode 100644 interpreter/luajit/testdata/lua/sort.lua create mode 100644 interpreter/luajit/testdata/lua/util.lua create mode 100644 interpreter/luajit/testdata/nginx.conf create mode 100644 interpreter/luajit/trace.go create mode 100644 support/ebpf/luajit.h create mode 100644 support/ebpf/luajit_tracer.ebpf.c create mode 100644 testutils/helpers.go create mode 100755 tools/dis2go.py create mode 100644 x86helpers/x86_helpers.go diff --git a/go.mod b/go.mod index 9e69c27ac..bd06e3e8f 100644 --- a/go.mod +++ b/go.mod @@ -21,13 +21,14 @@ require ( github.com/klauspost/compress v1.18.5 github.com/mdlayher/kobject v0.0.0-20200520190114-19ca17470d7d github.com/minio/sha256-simd v1.0.1 + github.com/moby/moby/api v1.54.1 github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260422152846-dd95db7b8093 github.com/peterbourgon/ff/v3 v3.4.0 github.com/stretchr/testify v1.11.1 + github.com/testcontainers/testcontainers-go v0.42.0 github.com/zeebo/xxh3 v1.1.0 go.opentelemetry.io/collector/component v1.56.0 go.opentelemetry.io/collector/component/componenttest v0.150.0 - go.opentelemetry.io/collector/confmap v1.56.0 go.opentelemetry.io/collector/confmap/xconfmap v0.150.0 go.opentelemetry.io/collector/consumer/consumertest v0.150.0 go.opentelemetry.io/collector/consumer/xconsumer v0.150.0 @@ -40,7 +41,6 @@ require ( go.opentelemetry.io/otel/metric v1.43.0 go.opentelemetry.io/proto/otlp v1.10.0 go.opentelemetry.io/proto/otlp/profiles/v1development v0.3.0 - go.uber.org/goleak v1.3.0 go.uber.org/zap/exp v0.3.0 golang.org/x/arch v0.26.0 golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f @@ -52,6 +52,9 @@ require ( ) require ( + dario.cat/mergo v1.0.2 // indirect + github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.19.15 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.22 // indirect @@ -67,10 +70,22 @@ require ( github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.20 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 // indirect github.com/aws/smithy-go v1.25.0 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/containerd/errdefs v1.0.0 // indirect + github.com/containerd/errdefs/pkg v0.3.0 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/containerd/platforms v0.2.1 // indirect + github.com/cpuguy83/dockercfg v0.3.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/distribution/reference v0.6.0 // indirect + github.com/docker/go-connections v0.7.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/ebitengine/purego v0.10.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-viper/mapstructure/v2 v2.5.0 // indirect github.com/gobwas/glob v0.2.3 // indirect github.com/google/go-cmp v0.7.0 // indirect @@ -82,25 +97,46 @@ require ( github.com/knadh/koanf/maps v0.1.2 // indirect github.com/knadh/koanf/providers/confmap v1.0.0 // indirect github.com/knadh/koanf/v2 v2.3.4 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.10 // indirect github.com/mdlayher/netlink v1.7.2 // indirect github.com/mdlayher/socket v0.5.1 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/moby/docker-image-spec v1.3.1 // indirect + github.com/moby/go-archive v0.2.0 // indirect + github.com/moby/moby/client v0.4.0 // indirect + github.com/moby/patternmatcher v0.6.1 // indirect + github.com/moby/sys/sequential v0.6.0 // indirect + github.com/moby/sys/user v0.4.0 // indirect + github.com/moby/sys/userns v0.1.0 // indirect + github.com/moby/term v0.5.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect + github.com/shirou/gopsutil/v4 v4.26.3 // indirect + github.com/sirupsen/logrus v1.9.4 // indirect + github.com/tklauser/go-sysconf v0.3.16 // indirect + github.com/tklauser/numcpus v0.11.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/collector/confmap v1.56.0 // indirect go.opentelemetry.io/collector/consumer v1.56.0 // indirect go.opentelemetry.io/collector/consumer/consumererror v0.150.0 // indirect go.opentelemetry.io/collector/featuregate v1.56.0 // indirect go.opentelemetry.io/collector/internal/componentalias v0.150.0 // indirect go.opentelemetry.io/collector/pipeline v1.56.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect go.opentelemetry.io/otel/sdk v1.43.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.43.0 // indirect go.opentelemetry.io/otel/trace v1.43.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.1 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/crypto v0.49.0 // indirect golang.org/x/net v0.52.0 // indirect golang.org/x/text v0.35.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171 // indirect diff --git a/go.sum b/go.sum index bf95d3f7e..023c5a646 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,11 @@ +dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= +dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/aws/aws-sdk-go-v2 v1.41.6 h1:1AX0AthnBQzMx1vbmir3Y4WsnJgiydmnJjiLu+LvXOg= github.com/aws/aws-sdk-go-v2 v1.41.6/go.mod h1:dy0UzBIfwSeot4grGvY1AqFWN5zgziMmWGzysDnHFcQ= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.9 h1:adBsCIIpLbLmYnkQU+nAChU5yhVTvu5PerROm+/Kq2A= @@ -34,23 +42,49 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.42.0 h1:ks8KBcZPh3PYISr5dAiXCM5/Thcu github.com/aws/aws-sdk-go-v2/service/sts v1.42.0/go.mod h1:pFw33T0WLvXU3rw1WBkpMlkgIn54eCB5FYLhjDc9Foo= github.com/aws/smithy-go v1.25.0 h1:Sz/XJ64rwuiKtB6j98nDIPyYrV1nVNJ4YU74gttcl5U= github.com/aws/smithy-go v1.25.0/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cilium/ebpf v0.21.0 h1:4dpx1J/B/1apeTmWBH5BkVLayHTkFrMovVPnHEk+l3k= github.com/cilium/ebpf v0.21.0/go.mod h1:1kHKv6Kvh5a6TePP5vvvoMa1bclRyzUXELSs272fmIQ= +github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= +github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= +github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= +github.com/containerd/errdefs/pkg v0.3.0/go.mod h1:NJw6s9HwNuRhnjJhM7pylWwMyAkmCQvQ4GpJHEqRLVk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= +github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= +github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= +github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= +github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/go-connections v0.7.0 h1:6SsRfJddP22WMrCkj19x9WKjEDTB+ahsdiGYf0mN39c= +github.com/docker/go-connections v0.7.0/go.mod h1:no1qkHdjq7kLMGUXYAduOhYPSJxxvgWBh7ogVvptn3Q= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/ebitengine/purego v0.10.0 h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU= +github.com/ebitengine/purego v0.10.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/elastic/go-freelru v0.16.0 h1:gG2HJ1WXN2tNl5/p40JS/l59HjvjRhjyAa+oFTRArYs= github.com/elastic/go-freelru v0.16.0/go.mod h1:bSdWT4M0lW79K8QbX6XY2heQYSCqD7THoYf82pT/H3I= github.com/elastic/go-perf v0.0.0-20260224073651-af0ee0c731b7 h1:fGi5uudj7m5O1RgQl+bSZmwlqvuUMEi97X7TzWBOMGk= github.com/elastic/go-perf v0.0.0-20260224073651-af0ee0c731b7/go.mod h1:ucTo2u8JvFyIPQOaRlX7aVF0d3wwmF1dy/PVp5GUHZI= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-quicktest/qt v1.101.1-0.20240301121107-c6c8733fa1e6 h1:teYtXy9B7y5lHTp8V9KPxpYRAVA7dozigQcMiBust1s= github.com/go-quicktest/qt v1.101.1-0.20240301121107-c6c8733fa1e6/go.mod h1:p4lGIVX+8Wa6ZPNDvqcxq36XpUDLh42FLetFU7odllI= github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= @@ -63,6 +97,7 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -92,6 +127,10 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= +github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mdlayher/kobject v0.0.0-20200520190114-19ca17470d7d h1:JmrZTpS0GAyMV4ZQVVH/AS0Y6r2PbnYNSRUuRX+HOLA= github.com/mdlayher/kobject v0.0.0-20200520190114-19ca17470d7d/go.mod h1:+SexPO1ZvdbbWUdUnyXEWv3+4NwHZjKhxOmQqHY4Pqc= github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA= @@ -107,6 +146,24 @@ github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa1 github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= +github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= +github.com/moby/go-archive v0.2.0 h1:zg5QDUM2mi0JIM9fdQZWC7U8+2ZfixfTYoHL7rWUcP8= +github.com/moby/go-archive v0.2.0/go.mod h1:mNeivT14o8xU+5q1YnNrkQVpK+dnNe/K6fHqnTg4qPU= +github.com/moby/moby/api v1.54.1 h1:TqVzuJkOLsgLDDwNLmYqACUuTehOHRGKiPhvH8V3Nn4= +github.com/moby/moby/api v1.54.1/go.mod h1:+RQ6wluLwtYaTd1WnPLykIDPekkuyD/ROWQClE83pzs= +github.com/moby/moby/client v0.4.0 h1:S+2XegzHQrrvTCvF6s5HFzcrywWQmuVnhOXe2kiWjIw= +github.com/moby/moby/client v0.4.0/go.mod h1:QWPbvWchQbxBNdaLSpoKpCdf5E+WxFAgNHogCWDoa7g= +github.com/moby/patternmatcher v0.6.1 h1:qlhtafmr6kgMIJjKJMDmMWq7WLkKIo23hsrpR3x084U= +github.com/moby/patternmatcher v0.6.1/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= +github.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko= +github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs= +github.com/moby/sys/user v0.4.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= +github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= +github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -115,17 +172,37 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260422152846-dd95db7b8093 h1:NWkokqNTFElJQUa1VLnW/8RVL0JTGyNdGtfiRpUBBcs= github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260422152846-dd95db7b8093/go.mod h1:WPdgk1BinVdvYdkbt1KIkgDw6qUiK8CnGq+ftaJ41Ns= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= +github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= +github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/shirou/gopsutil/v4 v4.26.3 h1:2ESdQt90yU3oXF/CdOlRCJxrP+Am1aBYubTMTfxJ1qc= +github.com/shirou/gopsutil/v4 v4.26.3/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ= +github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= +github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/testcontainers/testcontainers-go v0.42.0 h1:He3IhTzTZOygSXLJPMX7n44XtK+qhjat1nI9cneBbUY= +github.com/testcontainers/testcontainers-go v0.42.0/go.mod h1:vZjdY1YmUA1qEForxOIOazfsrdyORJAbhi0bp8plN30= +github.com/tklauser/go-sysconf v0.3.16 h1:frioLaCQSsF5Cy1jgRBrzr6t502KIIwQ0MArYICU0nA= +github.com/tklauser/go-sysconf v0.3.16/go.mod h1:/qNL9xxDhc7tx3HSRsLWNnuzbVfh3e7gh/BmM179nYI= +github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9RXw= +github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs= @@ -168,6 +245,8 @@ go.opentelemetry.io/collector/receiver/receivertest v0.150.0 h1:D34dL/NxP+MTMWZs go.opentelemetry.io/collector/receiver/receivertest v0.150.0/go.mod h1:/MWpPrRvljhZpbSTOHijr69Kg1A/MhUoKX0tLZpkhgE= go.opentelemetry.io/collector/receiver/xreceiver v0.150.0 h1:UpgWq1saq6QWGawJzKpJfLmcv52qBLBRjsv3vcy5fLM= go.opentelemetry.io/collector/receiver/xreceiver v0.150.0/go.mod h1:ltPXHfF5wjxmIti1GfGfAzOeBpovRMePdFj96kefsT0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ= go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= @@ -201,6 +280,8 @@ go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/arch v0.26.0 h1:jZ6dpec5haP/fUv1kLCbuJy6dnRrfX6iVK08lZBFpk4= golang.org/x/arch v0.26.0/go.mod h1:0X+GdSIP+kL5wPmpK7sdkEVTt2XoYP0cSjQSbZBwOi8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4= +golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA= golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= @@ -217,10 +298,15 @@ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU= +golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8= golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA= @@ -238,3 +324,7 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntN gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= +gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= +pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= +pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= diff --git a/interpreter/go/go_test.go b/interpreter/go/go_test.go index e6d4cdc94..7744d96d0 100644 --- a/interpreter/go/go_test.go +++ b/interpreter/go/go_test.go @@ -33,7 +33,7 @@ func BenchmarkGolang(b *testing.B) { if err != nil { b.Fatalf("Failed to create hostID: %v", err) } - loaderInfo := interpreter.NewLoaderInfo(hostFileID, elfRef) + loaderInfo := interpreter.NewLoaderInfo(hostFileID, elfRef, nil) rm := remotememory.NewProcessVirtualMemory(libpfPID) b.ReportAllocs() diff --git a/interpreter/instancestubs.go b/interpreter/instancestubs.go index 1eca53dea..00e28279a 100644 --- a/interpreter/instancestubs.go +++ b/interpreter/instancestubs.go @@ -4,11 +4,16 @@ package interpreter // import "go.opentelemetry.io/ebpf-profiler/interpreter" import ( + "unsafe" + + "go.opentelemetry.io/ebpf-profiler/host" "go.opentelemetry.io/ebpf-profiler/libc" "go.opentelemetry.io/ebpf-profiler/libpf" + "go.opentelemetry.io/ebpf-profiler/lpm" "go.opentelemetry.io/ebpf-profiler/metrics" "go.opentelemetry.io/ebpf-profiler/process" "go.opentelemetry.io/ebpf-profiler/reporter" + "go.opentelemetry.io/ebpf-profiler/util" ) // InstanceStubs provides empty implementations of Instance hooks that are @@ -36,3 +41,32 @@ func (is *InstanceStubs) GetAndResetMetrics() ([]metrics.Metric, error) { func (is *InstanceStubs) ReleaseResources() error { return nil } + +type EbpfHandlerStubs struct{} + +func (m *EbpfHandlerStubs) UpdatePidInterpreterMapping(_ libpf.PID, + pfx lpm.Prefix, _ uint8, _ host.FileID, _ uint64) error { + return nil +} + +func (m *EbpfHandlerStubs) DeletePidInterpreterMapping(_ libpf.PID, _ lpm.Prefix) error { + return nil +} + +func (m *EbpfHandlerStubs) CoredumpTest() bool { + return false +} + +func (m *EbpfHandlerStubs) UpdateProcData(libpf.InterpreterType, libpf.PID, + unsafe.Pointer) error { + return nil +} + +func (m *EbpfHandlerStubs) DeleteProcData(libpf.InterpreterType, libpf.PID) error { + return nil +} + +func (m *EbpfHandlerStubs) UpdateInterpreterOffsets(ebpfProgIndex uint16, fileID host.FileID, + offsetRanges []util.Range) error { + return nil +} diff --git a/interpreter/loaderinfo.go b/interpreter/loaderinfo.go index b7d9513ad..b0fe697df 100644 --- a/interpreter/loaderinfo.go +++ b/interpreter/loaderinfo.go @@ -9,6 +9,7 @@ import ( "go.opentelemetry.io/ebpf-profiler/host" "go.opentelemetry.io/ebpf-profiler/libpf" "go.opentelemetry.io/ebpf-profiler/libpf/pfelf" + sdtypes "go.opentelemetry.io/ebpf-profiler/nativeunwind/stackdeltatypes" "go.opentelemetry.io/ebpf-profiler/util" ) @@ -19,13 +20,17 @@ type LoaderInfo struct { fileID host.FileID // elfRef provides a cached access to the ELF file. elfRef *pfelf.Reference + // deltas contains the stack deltas for the executable. + deltas sdtypes.StackDeltaArray } // NewLoaderInfo returns a populated LoaderInfo struct. -func NewLoaderInfo(fileID host.FileID, elfRef *pfelf.Reference) *LoaderInfo { +func NewLoaderInfo(fileID host.FileID, elfRef *pfelf.Reference, + deltas sdtypes.StackDeltaArray) *LoaderInfo { return &LoaderInfo{ fileID: fileID, elfRef: elfRef, + deltas: deltas, } } @@ -60,3 +65,8 @@ func (i *LoaderInfo) FileID() host.FileID { func (i *LoaderInfo) FileName() string { return i.elfRef.FileName() } + +// Deltas returns the stack deltas for the executable of this LoaderInfo. +func (i *LoaderInfo) Deltas() sdtypes.StackDeltaArray { + return i.deltas +} diff --git a/interpreter/luajit/bc.go b/interpreter/luajit/bc.go new file mode 100644 index 000000000..e572c2399 --- /dev/null +++ b/interpreter/luajit/bc.go @@ -0,0 +1,196 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +// See https://github.com/openresty/luajit2/blob/7952882d/src/lj_bc.h#L34 + +var bcMode = []uint16{ + 0x3183, 0x3183, 0x3983, 0x3983, 0x2183, 0x2183, 0x2503, 0x2503, + 0x2483, 0x2483, 0x2403, 0x2403, 0xb181, 0xb181, 0xb180, 0xb180, + 0xb303, 0xb303, 0xb181, 0xb181, 0x8181, 0x2981, 0x5499, 0x5c99, + 0x6499, 0x6c99, 0x7499, 0x5499, 0x5c99, 0x6499, 0x6c99, 0x7499, + 0x5199, 0x5999, 0x6199, 0x6999, 0x7199, 0x7999, 0x4221, 0xb501, + 0xb701, 0xb381, 0xb481, 0xb401, 0xb102, 0xb281, 0xb185, 0xb505, + 0xb485, 0xb405, 0xb684, 0x1601, 0x1301, 0x1581, 0x0501, 0x0d03, + 0x0199, 0x0519, 0x0319, 0x0199, 0x099b, 0x0d1b, 0x0b1b, 0x0c82, + 0x099b, 0x4b32, 0x4b32, 0x4b02, 0x4b02, 0x4b32, 0x4b32, 0xb332, + 0xb682, 0xb302, 0xb304, 0xb304, 0xb304, 0xb682, 0xb682, 0xb682, + 0xb682, 0xb302, 0xb682, 0xb682, 0xb302, 0xb684, 0xb684, 0xb304, + 0xb684, 0xb004, 0xb004, 0xb304, 0xb004, 0xb004, 0xb304, 0xb004, + 0xb004} + +func bcOp(ins uint32) uint32 { + return ins & 0xff +} + +func bcModeMM(op uint32) uint32 { + return uint32(bcMode[op] >> 11) +} + +func bcModeA(op uint32) uint32 { + return uint32(bcMode[op] & 7) +} + +func bcA(ins uint32) uint32 { + return (ins >> 8) & 0xff +} + +func bcB(ins uint32) uint32 { + return ins >> 24 +} + +func bcC(ins uint32) uint32 { + return (ins >> 16) & 0xff +} + +func bcD(ins uint32) uint32 { + return ins >> 16 +} + +// Return the register used to store the function called at pc or metaname if it's a metamethod +func getSlotOrMetaname(ins uint32) (slot uint32, metaname string) { + op := bcOp(ins) + mm := bcModeMM(op) + if mm == MMcall { + slot := bcA(ins) + if bcOp(ins) == BC_ITERC { + slot -= 3 + } + return slot, "" + } else if mm != MMMax { + return 0, ljMetaNames[mm] + } + return 0, "" +} +func bcModeAIsBase(op uint32) bool { + return bcModeA(op) == BCMbase +} +func bcModeAIsDst(op uint32) bool { + return bcModeA(op) == BCMdst +} + +var ljMetaNames = []string{ + "index", "newindex", "gc", + "mode", "eq", "len", "lt", "le", "concat", + "call", "add", "sub", "mul", "div", "mod", "pow", "unm", + "metatable", "tostring", "new", "pairs", + "ipairs", +} + +const ( + BCMdst = 1 + BCMbase = 2 + MMcall = 9 + MMMax = 0x16 +) + +//nolint:stylecheck +const ( + BC_ISLT = iota + BC_ISGE + BC_ISLE + BC_ISGT + BC_ISEQV + BC_ISNEV + BC_ISEQS + BC_ISNES + BC_ISEQN + BC_ISNEN + BC_ISEQP + BC_ISNEP + BC_ISTC + BC_ISFC + BC_IST + BC_ISF + BC_ISTYPE + BC_ISNUM + BC_MOV + BC_NOT + BC_UNM + BC_LEN + BC_ADDVN + BC_SUBVN + BC_MULVN + BC_DIVVN + BC_MODVN + BC_ADDNV + BC_SUBNV + BC_MULNV + BC_DIVNV + BC_MODNV + BC_ADDVV + BC_SUBVV + BC_MULVV + BC_DIVVV + BC_MODVV + BC_POW + BC_CAT + BC_KSTR + BC_KCDATA + BC_KSHORT + BC_KNUM + BC_KPRI + BC_KNIL + BC_UGET + BC_USETV + BC_USETS + BC_USETN + BC_USETP + BC_UCLO + BC_FNEW + BC_TNEW + BC_TDUP + BC_GGET + BC_GSET + BC_TGETV + BC_TGETS + BC_TGETB + BC_TGETR + BC_TSETV + BC_TSETS + BC_TSETB + BC_TSETM + BC_TSETR + BC_CALLM + BC_CALL + BC_CALLMT + BC_CALLT + BC_ITERC + BC_ITERN + BC_VARG + BC_ISNEXT + BC_RETM + BC_RET + BC_RET0 + BC_RET1 + BC_FORI + BC_JFORI + BC_FORL + BC_IFORL + BC_JFORL + BC_ITERL + BC_IITERL + BC_JITERL + BC_LOOP + BC_ILOOP + BC_JLOOP + BC_JMP + BC_FUNCF + BC_IFUNCF + BC_JFUNCF + BC_FUNCV + BC_IFUNCV + BC_JFUNCV + BC_FUNCC + BC_FUNCCW + BC__MAX +) diff --git a/interpreter/luajit/extractor_aarch64.go b/interpreter/luajit/extractor_aarch64.go new file mode 100644 index 000000000..818734827 --- /dev/null +++ b/interpreter/luajit/extractor_aarch64.go @@ -0,0 +1,359 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +import ( + "errors" + "reflect" + + "go.opentelemetry.io/ebpf-profiler/libpf/pfelf" + "golang.org/x/arch/arm64/arm64asm" +) + +type armExtractor struct { + ef *pfelf.File +} + +var _ extractor = &armExtractor{} + +// Return true if the code in b calls targetCall. +func (a *armExtractor) callExists(b []byte, baseAddr, targetCall int64) (bool, error) { + var ip int64 + for ; len(b) > 0; b = b[4:] { + ip += 4 + i, err := arm64asm.Decode(b) + if err != nil { + return false, err + } + if i.Op == arm64asm.BL { + a0, ok := i.Args[0].(arm64asm.PCRel) + if ok { + result := baseAddr + ip + int64(a0) + if result == targetCall { + return true, nil + } + } + } + } + return false, nil +} + +// This function gets the glref offset from the first load and the +// the cur_L offset from the last store instruction. Its not resilient +// to arbitrary register movement/spilling but seems to work. +// +// (lldb) dis -n lua_close +// libluajit-5.1.so`lua_close: +// libluajit-5.1.so[0x15c20] <+0>: stp x19, x20, [sp, #-0x30]! +// libluajit-5.1.so[0x15c24] <+4>: ldr x20, [x0, #0x10] ; 0x10 is glrefOffset +// libluajit-5.1.so[0x15c28] <+8>: stp x21, x22, [sp, #0x10] +// libluajit-5.1.so[0x15c2c] <+12>: adrp x21, 0 +// libluajit-5.1.so[0x15c30] <+16>: mov w22, #0xa ; =10 +// libluajit-5.1.so[0x15c34] <+20>: add x21, x21, #0x7d4 +// libluajit-5.1.so[0x15c38] <+24>: ldr x19, [x20, #0xc0] +// libluajit-5.1.so[0x15c3c] <+28>: str x30, [sp, #0x20] +// libluajit-5.1.so[0x15c40] <+32>: mov x0, x19 +// libluajit-5.1.so[0x15c44] <+36>: bl 0x8040 ; symbol stub for: luaJIT_profile_start +// libluajit-5.1.so[0x15c48] <+40>: ldr x1, [x19, #0x38] +// libluajit-5.1.so[0x15c4c] <+44>: str xzr, [x20, #0x170] ; 0x170 is curLOffset +func (a *armExtractor) findOffsetsFromLuaClose(b []byte) (glref, curL uint64, err error) { + var greg arm64asm.Reg + for ; len(b) > 0; b = b[4:] { + i, err := arm64asm.Decode(b) + if err != nil { + return 0, 0, err + } + // ldr x20, [x0, #0x10] ; 0x10 is glrefOffset + if i.Op == arm64asm.LDR && greg == 0 { + a1, ok := i.Args[1].(arm64asm.MemImmediate) + if ok { + glref = getImm(a1) + greg = i.Args[0].(arm64asm.Reg) + } + } + if i.Op == arm64asm.STR { + a1, ok := i.Args[1].(arm64asm.MemImmediate) + if ok && arm64asm.Reg(a1.Base) == greg && i.Args[0] == arm64asm.XZR { + curL = getImm(a1) + break + } + } + } + return glref, curL, nil +} + +// libluajit-5.1.so[0x145e4] <+4>: mov x19, x0 +// ... +// libluajit-5.1.so[0x14660] <+128>: add x3, x19, #0xf38 +func (a *armExtractor) findG2DispatchOffsetFromLjDispatchUpdate(b []byte) (uint64, error) { + greg := arm64asm.X0 + for ; len(b) > 0; b = b[4:] { + i, err := arm64asm.Decode(b) + if err != nil { + return 0, err + } + // Update greg if it moves + if i.Op == arm64asm.MOV { + a0, ok0 := i.Args[0].(arm64asm.Reg) + a1, ok1 := i.Args[1].(arm64asm.Reg) + if ok0 && ok1 && a1 == arm64asm.X0 { + greg = a0 + } + } + if i.Op == arm64asm.ADD && greg != 0 { + a1, ok := i.Args[1].(arm64asm.RegSP) + if ok && arm64asm.Reg(a1) == greg { + a2, ok := i.Args[2].(arm64asm.ImmShift) + if ok { + return getImmU(a2), nil + } + } + } + } + return 0, errors.New("g to dispatch offset not found") +} + +func (a *armExtractor) findLjDispatchUpdateAddr(b []byte, addr uint64) (uint64, error) { + var ip int64 + for len(b) > 0 { + i, err := arm64asm.Decode(b) + if err != nil { + return 0, err + } + if i.Op == arm64asm.BL { + a0, ok := i.Args[0].(arm64asm.PCRel) + if ok { + offset := int64(a0) + result := int64(addr) + ip + offset + return uint64(result), nil + } + } + ip += 4 + b = b[4:] + } + return 0, errors.New("no calls in code") +} + +// libluajit-5.1.so`lj_cf_jit_util_traceinfo: +// libluajit-5.1.so[0x67a44] <+0>: stp x19, x20, [sp, #-0x40]! +// libluajit-5.1.so[0x67a48] <+4>: mov w1, #0x1 ; =1 +// libluajit-5.1.so[0x67a4c] <+8>: mov x19, x0 +// libluajit-5.1.so[0x67a50] <+12>: str x30, [sp, #0x30] +// libluajit-5.1.so[0x67a54] <+16>: bl 0x5adf0 ; lj_lib_checkint at lj_lib.c:242:1 +// libluajit-5.1.so[0x67a58] <+20>: cbz w0, 0x67be8 ; <+420> at lib_jit.c:381:10 +// libluajit-5.1.so[0x67a5c] <+24>: ldr x2, [x19, #0x10] ;; This loads global +// libluajit-5.1.so[0x67a60] <+28>: mov w1, w0 +// libluajit-5.1.so[0x67a64] <+32>: mov w0, #0x0 ; =0 +// libluajit-5.1.so[0x67a68] <+36>: add x2, x2, #0x2e0 ;; This is global to J offset +// libluajit-5.1.so[0x67a6c] <+40>: ldr w3, [x2, #0x174] ;; This is checking J->sztraces != 0 +// libluajit-5.1.so[0x67a70] <+44>: cmp w1, w3 +// libluajit-5.1.so[0x67a74] <+48>: b.hs 0x67bdc ; <+408> at lib_jit.c:382:1 +// libluajit-5.1.so[0x67a78] <+52>: ldr x2, [x2, #0x168] ;; This is J->trace +// So for this version we want 0x2e0 + 0x168 +func (a *armExtractor) findG2TracesOffsetFromChecktrace(b []byte) (uint64, error) { + var reg arm64asm.Reg + var G2JOffset uint64 + sawSZTraceLoad := false + for len(b) > 0 { + i, err := arm64asm.Decode(b) + if err != nil { + return 0, err + } + if i.Op == arm64asm.LDR { + a1, ok := i.Args[1].(arm64asm.MemImmediate) + if ok { + imm := getImm(a1) + if imm == 0x10 { + reg = i.Args[0].(arm64asm.Reg) + } else if arm64asm.Reg(a1.Base) == reg { + // Skip over load of sztraces + if sawSZTraceLoad { + return G2JOffset + imm, nil + } + sawSZTraceLoad = true + } + } + } + if i.Op == arm64asm.ADD { + a1, ok := i.Args[1].(arm64asm.RegSP) + if ok && arm64asm.Reg(a1) == reg { + a2, ok := i.Args[2].(arm64asm.ImmShift) + if ok { + G2JOffset = getImmU(a2) + } + } + } + b = b[4:] + } + return 0, errors.New("offset not found") +} + +// luaopen_jit looks like this. ___lldb_unnamed_symbol1372 is lj_lib_prereg, the 2nd call to it +// is for luaopen_jit_util, so we want to get the address that is constructed in the x2 register +// and return it. +// +// Source: +// https://github.com/openresty/luajit2/blob/7952882d9/src/lib_jit.c#L803 +// +// libluajit-5.1.so[0x64d88] <+168>: add x2, x20, #0xd0 +// libluajit-5.1.so[0x64d8c] <+172>: add x3, x21, #0xb8 +// libluajit-5.1.so[0x64d90] <+176>: mov x0, x19 +// libluajit-5.1.so[0x64d94] <+180>: adrp x1, 8 +// libluajit-5.1.so[0x64d98] <+184>: add x1, x1, #0xa28 +// libluajit-5.1.so[0x64d9c] <+188>: bl 0x57e50 ; ___lldb_unnamed_symbol1370 +// libluajit-5.1.so[0x64da0] <+192>: ldr x3, [x19, #0x48] +// libluajit-5.1.so[0x64da4] <+196>: mov x0, x19 +// libluajit-5.1.so[0x64da8] <+200>: adrp x2, -1 +// libluajit-5.1.so[0x64dac] <+204>: adrp x1, 8 +// libluajit-5.1.so[0x64db0] <+208>: add x2, x2, #0x338 +// libluajit-5.1.so[0x64db4] <+212>: add x1, x1, #0xa30 +// libluajit-5.1.so[0x64db8] <+216>: bl 0x58320 ; ___lldb_unnamed_symbol1372 +// libluajit-5.1.so[0x64dbc] <+220>: ldr x3, [x19, #0x48] +// libluajit-5.1.so[0x64dc0] <+224>: mov x0, x19 +// libluajit-5.1.so[0x64dc4] <+228>: adrp x2, -1 +// libluajit-5.1.so[0x64dc8] <+232>: adrp x1, 8 +// libluajit-5.1.so[0x64dcc] <+236>: add x2, x2, #0x310 +// libluajit-5.1.so[0x64dd0] <+240>: add x1, x1, #0xa40 +// libluajit-5.1.so[0x64dd4] <+244>: bl 0x58320 ; ___lldb_unnamed_symbol1372 +// libluajit-5.1.so[0x64dd8] <+248>: add x3, x21, #0xf0 +// libluajit-5.1.so[0x64ddc] <+252>: add x2, x20, #0x130 +// libluajit-5.1.so[0x64de0] <+256>: mov x0, x19 +// libluajit-5.1.so[0x64de4] <+260>: adrp x1, 8 +// libluajit-5.1.so[0x64de8] <+264>: add x1, x1, #0xa50 +// libluajit-5.1.so[0x64dec] <+268>: bl 0x57e50 ; ___lldb_unnamed_symbol1370 +// +// So we track adrp and add instructions touching x2 and return that value when we see the +// a repeat BL call. In this case: +// [0x64dc4] <+228>: adrp x2, -1 --> x2 becomes 0x63000 +// [0x64dcc] <+236>: add x2, x2, #0x310 --> x2 becomes 0x63310 +func (a *armExtractor) find3rdArgToLibPreregCall(b []byte, addr int64) (uint64, error) { + var ip, x2, prevCall int64 + for ; len(b) > 0; b = b[4:] { + i, err := arm64asm.Decode(b) + if err != nil { + return 0, err + } + if i.Op == arm64asm.BL { + a0, ok := i.Args[0].(arm64asm.PCRel) + if ok { + result := addr + ip + int64(a0) + // There's also two back to back calls to lua_copy ignore those + // by requiring x2 to have been set. + if result == prevCall && x2 != 0 { + return uint64(x2), nil + } + prevCall = result + } + } + if i.Op == arm64asm.ADRP { + a0, ok1 := i.Args[0].(arm64asm.Reg) + a1, ok2 := i.Args[1].(arm64asm.PCRel) + if ok1 && ok2 && a0 == arm64asm.X2 { + // zero lower 12 bits of addr+ip + x2 = (addr + ip) & ^0xfff + x2 += int64(a1) + } + } + if i.Op == arm64asm.ADD { + a0, ok1 := i.Args[0].(arm64asm.RegSP) + a1, ok2 := i.Args[1].(arm64asm.RegSP) + if ok1 && ok2 && arm64asm.Reg(a1) == arm64asm.X2 && a0 == a1 { + a2, ok := i.Args[2].(arm64asm.ImmShift) + if ok { + x2 += int64(getImmU(a2)) + } + } + } + ip += 4 + } + return 0, errors.New("failed to find 3rd arg to lib prereg call") +} + +// The 4th arg to lj_lib_register is lj_lib_cf_jit_util which is a function array. +// Track the adrp/add combo the x3 register to get it. +// +// Source: +// https://github.com/openresty/luajit2/blob/7952882/src/lib_jit.c#L486 +// +// libluajit-5.1.so`___lldb_unnamed_symbol1577: +// libluajit-5.1.so[0x63310] <+0>: str x30, [sp, #-0x10]! +// libluajit-5.1.so[0x63314] <+4>: mov x1, #0x0 ; =0 +// libluajit-5.1.so[0x63318] <+8>: adrp x3, 43 +// libluajit-5.1.so[0x6331c] <+12>: adrp x2, 9 +// libluajit-5.1.so[0x63320] <+16>: add x3, x3, #0xfc8 +// libluajit-5.1.so[0x63324] <+20>: add x2, x2, #0x740 +// libluajit-5.1.so[0x63328] <+24>: bl 0x57e50 ; ___lldb_unnamed_symbol1370 +// libluajit-5.1.so[0x6332c] <+28>: mov w0, #0x1 ; =1 +// libluajit-5.1.so[0x63330] <+32>: ldr x30, [sp], #0x10 +// libluajit-5.1.so[0x63334] <+36>: ret +func (a *armExtractor) find4thArgToLibRegCall(b []byte, addr int64) (int64, error) { + var ip, x3 int64 + for ; len(b) > 0; b = b[4:] { + i, err := arm64asm.Decode(b) + if err != nil { + return 0, err + } + if i.Op == arm64asm.ADRP { + a0, ok1 := i.Args[0].(arm64asm.Reg) + a1, ok2 := i.Args[1].(arm64asm.PCRel) + if ok1 && ok2 && a0 == arm64asm.X3 { + // zero lower 12 bits of addr+ip + x3 = (addr + ip) & ^0xfff + x3 += int64(a1) + } + } + if i.Op == arm64asm.ADD { + a0, ok1 := i.Args[0].(arm64asm.RegSP) + a1, ok2 := i.Args[1].(arm64asm.RegSP) + if ok1 && ok2 && arm64asm.Reg(a1) == arm64asm.X3 && a0 == a1 { + a2, ok := i.Args[2].(arm64asm.ImmShift) + if ok { + x3 += int64(getImmU(a2)) + return x3, nil + } + } + } + ip += 4 + } + return 0, errors.New("failed to find 4th arg to lj_lib_register call") +} + +func (a *armExtractor) findFirstCall(b []byte, addr int64) (uint64, error) { + var ip int64 + for ; len(b) > 0; b = b[4:] { + i, err := arm64asm.Decode(b) + if err != nil { + return 0, err + } + if i.Op == arm64asm.BL { + a0, ok := i.Args[0].(arm64asm.PCRel) + if ok { + result := addr + ip + int64(a0) + return uint64(result), nil + } + } + ip += 4 + } + return 0, errors.New("no calls found") +} + +func getImm(m any) uint64 { + //https://github.com/golang/go/issues/57684 + imm := reflect.ValueOf(m).FieldByName("imm") + return uint64(imm.Int()) +} + +func getImmU(m any) uint64 { + //https://github.com/golang/go/issues/57684 + imm := reflect.ValueOf(m).FieldByName("imm") + return imm.Uint() +} diff --git a/interpreter/luajit/extractor_x86.go b/interpreter/luajit/extractor_x86.go new file mode 100644 index 000000000..b8f846096 --- /dev/null +++ b/interpreter/luajit/extractor_x86.go @@ -0,0 +1,520 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +import ( + "errors" + + "go.opentelemetry.io/ebpf-profiler/libpf/pfelf" + xh "go.opentelemetry.io/ebpf-profiler/x86helpers" + "golang.org/x/arch/x86/x86asm" +) + +type x86Extractor struct { + ef *pfelf.File +} + +var _ extractor = &x86Extractor{} + +/* +* +Dump of assembler code for function lua_close: + +Get the offset global_State pointer in lua_State (glref) and the offset +of the lua_State pointer in global_State (cur_L) from the disassembly of lua_close +which is a dynamic public symbol that should be in all binaries of LuaJIT including stripped. + + 0x0000000000016d80 <+0>: push %r13 + 0x0000000000016d82 <+2>: push %r12 + 0x0000000000016d84 <+4>: lea -0x33b(%rip),%r12 # 0x16a50 + 0x0000000000016d8b <+11>: push %rbp + 0x0000000000016d8c <+12>: push %rbx + 0x0000000000016d8d <+13>: mov $0xa,%r13d + 0x0000000000016d93 <+19>: sub $0x8,%rsp + 0x0000000000016d97 <+23>: mov 0x10(%rdi),%rbp ; 0x10 is the glrefOffset + 0x0000000000016d9b <+27>: mov 0xc0(%rbp),%rbx + 0x0000000000016da2 <+34>: mov %rbx,%rdi + 0x0000000000016da5 <+37>: call 0x1f6f0 + 0x0000000000016daa <+42>: mov 0x38(%rbx),%rsi + 0x0000000000016dae <+46>: mov %rbx,%rdi + 0x0000000000016db1 <+49>: movq $0x0,0x170(%rbp) ; 0x170 is curLOffset +*/ +//nolint:nonamedreturns +func (x *x86Extractor) findOffsetsFromLuaClose(b []byte) (glref, curL uint64, err error) { + b, _ = xh.SkipEndBranch(b) //nolint:errcheck + var greg x86asm.Reg + var zeroReg x86asm.Reg + for len(b) > 0 { + var i x86asm.Inst + i, err = x86asm.Decode(b, 64) + if err != nil { + return 0, 0, err + } + if i.Op == x86asm.XOR { + a0, ok1 := i.Args[0].(x86asm.Reg) + a1, ok2 := i.Args[1].(x86asm.Reg) + if ok1 && ok2 && a0 == a1 { + zeroReg = a0 + } + } + if i.Op == x86asm.MOV { + if greg == 0 { + a0, ok1 := i.Args[0].(x86asm.Reg) + a1, ok2 := i.Args[1].(x86asm.Mem) + if ok1 && ok2 && a1.Base == x86asm.RDI { + greg = a0 + glref = uint64(a1.Disp) + } + } else { + a0, ok1 := i.Args[0].(x86asm.Mem) + if ok1 && sameReg(a0.Base, greg) { + imm, ok2 := i.Args[1].(x86asm.Imm) + if ok2 && imm == 0 { + curL = uint64(a0.Disp) + return glref, curL, nil + } + r1, ok2 := i.Args[1].(x86asm.Reg) + if ok2 && sameReg(r1, zeroReg) { + curL = uint64(a0.Disp) + return glref, curL, nil + } + } + // If Greg is dest error + if r0, ok := i.Args[0].(x86asm.Reg); ok && sameReg(r0, greg) { + err = errors.New("parse error, register holding G was clobbered") + return 0, 0, err + } + } + } + b = b[i.Len:] + } + return 0, 0, errors.New("find offsets from lua_close failed") +} + +// This is different in most builds and we need to get it from stripped binaries. +// The public symbol luaopen_jit gives is the best way in. The first or second +// thing it calls is lj_dispatch_update. We can determine which because the first +// arg is G which will come from the glref offset from L. Ie: +// +// 0x000000000006a737 <+119>: mov 0x10(%rbx),%rdi +// 0x000000000006a73b <+123>: call 0x16cf0 +// +// Then we load the function 0x16cf0 and look where the rdi register is stashed, +// usually rdx and then look for the first lea of rdx, ie: +// +// libluajit-5.1.so[0x16d4e] <+94>: leaq 0xfa8(%rdx), %r10 +// +// 0xfa8 is the g to dispatch offset. +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_dispatch.c#L122 +func (x *x86Extractor) findG2DispatchOffsetFromLjDispatchUpdate(b []byte) (uint64, error) { + b, _ = xh.SkipEndBranch(b) //nolint:errcheck + var greg x86asm.Reg + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return 0, err + } + // Early on we stash rdi (g) in a register + if i.Op == x86asm.MOV { + a0, ok1 := i.Args[0].(x86asm.Reg) + a1, ok2 := i.Args[1].(x86asm.Reg) + if ok1 && ok2 && a1 == x86asm.RDI { + greg = a0 + } + } + // Then load dispatch address relative to g + if i.Op == x86asm.LEA { + a1, ok := i.Args[1].(x86asm.Mem) + if ok && a1.Base == greg { + return uint64(a1.Disp), nil + } + } + b = b[i.Len:] + } + return 0, nil +} + +// Find first or second call address, the one whose first argument is 0x10 off of +// sym's first argument. +// libluajit-5.1.so`luaopen_jit: +// libluajit-5.1.so[0x64dd0] <+0>: pushq %rbp +// libluajit-5.1.so[0x64dd1] <+1>: pushq %rbx +// libluajit-5.1.so[0x64dd2] <+2>: movq %rdi, %rbx +// libluajit-5.1.so[0x64dd5] <+5>: xorl %edi, %edi +// libluajit-5.1.so[0x64dd7] <+7>: subq $0x38, %rsp +// libluajit-5.1.so[0x64ddb] <+11>: movq %rsp, %rsi +// libluajit-5.1.so[0x64dde] <+14>: callq 0xd3b6 ; lj_vm_cpuid +// libluajit-5.1.so[0x64de3] <+19>: testl %eax, %eax +// libluajit-5.1.so[0x64de5] <+21>: jne 0x64f18 ; <+328> [inlined] jit_cpudetect at lib_jit.c:677:33 +// libluajit-5.1.so[0x64deb] <+27>: movl $0x3ff0001, %eax ; imm = 0x3FF0001 +// libluajit-5.1.so[0x64df0] <+32>: movq 0x10(%rbx), %rdx +// libluajit-5.1.so[0x64df4] <+36>: movdqa 0x7e24(%rip), %xmm0 ; jit_param_default +// libluajit-5.1.so[0x64dfc] <+44>: movdqa 0x7e2c(%rip), %xmm1 ; jit_param_default + 16 +// libluajit-5.1.so[0x64e04] <+52>: movdqa 0x7e34(%rip), %xmm2 ; jit_param_default + 32 +// libluajit-5.1.so[0x64e0c] <+60>: movups %xmm0, 0x910(%rdx) +// libluajit-5.1.so[0x64e13] <+67>: movups %xmm1, 0x920(%rdx) +// libluajit-5.1.so[0x64e1a] <+74>: movups %xmm2, 0x930(%rdx) +// libluajit-5.1.so[0x64e21] <+81>: movl %eax, 0x350(%rdx) +// libluajit-5.1.so[0x64e27] <+87>: leaq 0x910(%rdx), %rax +// libluajit-5.1.so[0x64e2e] <+94>: movq 0x7e1b(%rip), %rdx ; jit_param_default + 48 +// libluajit-5.1.so[0x64e35] <+101>: movq %rdx, 0x30(%rax) +// libluajit-5.1.so[0x64e39] <+105>: movl 0x7e19(%rip), %edx ; jit_param_default + 56 +// libluajit-5.1.so[0x64e3f] <+111>: movl %edx, 0x38(%rax) +// libluajit-5.1.so[0x64e42] <+114>: movq 0x10(%rbx), %rdi +// libluajit-5.1.so[0x64e46] <+118>: callq 0x15c90 ; lj_dispatch_update at lj_dispatch.c:109:53 +// +//nolint:lll +func (x *x86Extractor) findLjDispatchUpdateAddr(b []byte, addr uint64) (uint64, error) { + b, ip := xh.SkipEndBranch(b) + var Lreg x86asm.Reg + rdiHasG := false + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return 0, err + } + if i.Op == x86asm.MOV { + if a1, ok1 := i.Args[1].(x86asm.Reg); ok1 && a1 == x86asm.RDI { + if a0, ok0 := i.Args[0].(x86asm.Reg); ok0 { + Lreg = a0 + } + } + if a0, ok := i.Args[0].(x86asm.Reg); ok && a0 == x86asm.RDI { + if a1, ok1 := i.Args[1].(x86asm.Mem); ok1 { + // Look for: movq 0x10(%rbx), %rdi + if a1.Base == Lreg && a1.Disp == 0x10 { + rdiHasG = true + } + } + } + } + + if i.Op == x86asm.CALL && rdiHasG { + offset := int64(i.Args[0].(x86asm.Rel)) + callAddr := int64(addr) + ip + offset + int64(i.Len) + // TODO: make sure callAddr is within .text bounds? + if callAddr < 0 { + return 0, errors.New("invalid call address") + } + return uint64(callAddr), nil + } + ip += int64(i.Len) + b = b[i.Len:] + } + return 0, errors.New("lj_dispatch_update addr not found") +} + +// libluajit-5.1.so`jit_checktrace: +// libluajit-5.1.so[0x63780] <+0>: pushq %rbx +// libluajit-5.1.so[0x63781] <+1>: movl $0x1, %esi +// libluajit-5.1.so[0x63786] <+6>: movq %rdi, %rbx +// libluajit-5.1.so[0x63789] <+9>: callq 0x58550 ; lj_lib_checkint at lj_lib.c:239:1 +// libluajit-5.1.so[0x6378e] <+14>: xorl %r8d, %r8d +// libluajit-5.1.so[0x63791] <+17>: testl %eax, %eax +// libluajit-5.1.so[0x63793] <+19>: je 0x637ae ; <+46> at lib_jit.c:304:1 +// libluajit-5.1.so[0x63795] <+21>: movq 0x10(%rbx), %rdx +// libluajit-5.1.so[0x63799] <+25>: cmpl %eax, 0x43c(%rdx) +// libluajit-5.1.so[0x6379f] <+31>: jbe 0x637ae ; <+46> at lib_jit.c:304:1 +// ----------- 0x430 is the G to J->traces offset +// libluajit-5.1.so[0x637a1] <+33>: movq 0x430(%rdx), %rdx +func (x *x86Extractor) findG2TracesOffsetFromChecktrace(b []byte) (uint64, error) { + b, _ = xh.SkipEndBranch(b) //nolint:errcheck + var Greg x86asm.Reg + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return 0, err + } + if i.Op == x86asm.MOV { + a1, ok := i.Args[1].(x86asm.Mem) + if ok { + // glref offset is 0x10 + if a1.Disp == 0x10 { + Greg = i.Args[0].(x86asm.Reg) + } else if a1.Base == Greg { + return uint64(a1.Disp), nil + } + } + } + b = b[i.Len:] + } + return 0, errors.New("offset not found") +} + +func (x *x86Extractor) findFirstCall(b []byte, baseAddr int64) (uint64, error) { + b, ip := xh.SkipEndBranch(b) + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return 0, err + } + if i.Op == x86asm.CALL { + a0, ok := i.Args[0].(x86asm.Rel) + if ok { + // RIP relative calls are relative to next instruction. + callAddr := baseAddr + ip + int64(i.Len) + int64(a0) + return uint64(callAddr), nil + } + } + ip += int64(i.Len) + b = b[i.Len:] + } + return 0, errors.New("no call found") +} + +// Return true if the code in b calls targetCall. +func (x *x86Extractor) callExists(b []byte, baseAddr, targetCall int64) (bool, error) { + b, ip := xh.SkipEndBranch(b) + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return false, err + } + if i.Op == x86asm.CALL { + a0, ok := i.Args[0].(x86asm.Rel) + if ok { + // RIP relative calls are relative to next instruction. + callAddr := baseAddr + ip + int64(i.Len) + int64(a0) + if callAddr == targetCall { + return true, nil + } + } + } + ip += int64(i.Len) + b = b[i.Len:] + } + return false, nil +} + +// luaopen_jit_util will have two of these when lj_lib_prereg is inlined. +// Return the address stored in rsi for the 2nd one. +// 15457: 48 8d 35 12 67 ff ff lea -0x98ee(%rip),%rsi # bb70 +// 1545e: e8 cd 1e 09 00 call a7330 +// +//nolint:lll +func findRipRelativeLea2ndArgTo2ndCall(b []byte, baseAddr, targetCall int64) (uint64, error) { + var leaRsi int64 + calls := 2 + b, ip := xh.SkipEndBranch(b) + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return 0, err + } + if i.Op == x86asm.LEA { + a0, ok1 := i.Args[0].(x86asm.Reg) + a1, ok2 := i.Args[1].(x86asm.Mem) + if ok1 && ok2 { + if a0 == x86asm.RSI && a1.Base == x86asm.RIP { + leaRsi = calcRipRelativeAddr(a1, baseAddr, ip+int64(i.Len)) + } + } + } + if i.Op == x86asm.CALL { + a0, ok := i.Args[0].(x86asm.Rel) + if ok { + callAddr := baseAddr + ip + int64(i.Len) + int64(a0) + if callAddr == targetCall { + calls-- + if calls == 0 { + return uint64(leaRsi), nil + } + } + } + } + ip += int64(i.Len) + b = b[i.Len:] + } + return 0, errors.New("failed to find rip relative lea instruction stored in rsi") +} + +//nolint:gocritic +func skipCallsAABA(b []byte, ip, baseAddr int64) ([]byte, int64, error) { + var lastCall int64 + var acall int64 + // 3 Step process, 1 is find AA, 2 is find B and 3 is find A. + step := 0 + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return nil, 0, err + } + if i.Op == x86asm.CALL { + a0, ok := i.Args[0].(x86asm.Rel) + if ok { + callAddr := baseAddr + ip + int64(i.Len) + int64(a0) + if step == 0 && callAddr == lastCall { + // Found potential AA + step = 1 + acall = callAddr + } else if step == 1 && callAddr != lastCall { + // Found AAB + step = 2 + } else if step == 2 && callAddr == acall { + // Found AABA + step = 3 + } else { + // Found different pattern, reset + step = 0 + acall = 0 + } + lastCall = callAddr + } + } + ip += int64(i.Len) + b = b[i.Len:] + if step == 3 { + return b, ip, nil + } + } + return nil, 0, errors.New("failed to find AABA call pattern") +} + +// This function finds the IP relative value passed to lj_lib_prereg as arg 3 (rdx). +// There are 4 of these, we want the 3rd one. +// lj_lib_prereg(L, LUA_JITLIBNAME ".util", luaopen_jit_util, tabref(L->env)); +// 6d965: 48 8b 4b 48 mov 0x48(%rbx),%rcx +// 6d969: 48 89 df mov %rbx,%rdi +// 6d96c: 48 8d 15 ed e2 ff ff lea -0x1d13(%rip),%rdx # 6bc60 +// 6d973: 48 8d 35 1c a2 00 00 lea 0xa21c(%rip),%rsi # 77b96 +// 6d97a: e8 a1 28 ff ff call 60220 +func (x *x86Extractor) find3rdArgToLibPreregCall(b []byte, baseAddr int64) (uint64, error) { + var rdxAddr int64 + calls := 3 + b, ip := xh.SkipEndBranch(b) + // Skip the lua_push* call sequence (and all the preceding calls which varies depending on + // inlining). + // libluajit-5.1.so[0x700a5] <+133>: movq %rbx, %rdi + // libluajit-5.1.so[0x700a8] <+136>: movl $0x5, %edx + // libluajit-5.1.so[0x700ad] <+141>: leaq 0x9b35(%rip), %rsi + // libluajit-5.1.so[0x700b4] <+148>: callq 0x9af0 ; symbol stub for: lua_pushlstring + // libluajit-5.1.so[0x700b9] <+153>: movl $0x3, %edx + // libluajit-5.1.so[0x700be] <+158>: movq %rbx, %rdi + // libluajit-5.1.so[0x700c1] <+161>: leaq 0x9b27(%rip), %rsi + // libluajit-5.1.so[0x700c8] <+168>: callq 0x9af0 ; symbol stub for: lua_pushlstring + // libluajit-5.1.so[0x700cd] <+173>: movq %rbx, %rdi + // libluajit-5.1.so[0x700d0] <+176>: movl $0x4ee7, %esi ; imm = 0x4EE7 + // libluajit-5.1.so[0x700d5] <+181>: callq 0x9360 ; symbol stub for: lua_pushinteger + // libluajit-5.1.so[0x700da] <+186>: movq %rbx, %rdi + // libluajit-5.1.so[0x700dd] <+189>: movl $0x12, %edx + // libluajit-5.1.so[0x700e2] <+194>: leaq 0x9b0a(%rip), %rsi + // libluajit-5.1.so[0x700e9] <+201>: callq 0x9af0 ; symbol stub for: lua_pushlstring + var err error + b, ip, err = skipCallsAABA(b, ip, baseAddr) + if err != nil { + return 0, err + } + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return 0, err + } + // Some compilers will use MOV instead of LEA + if i.Op == x86asm.MOV { + a0, ok1 := i.Args[0].(x86asm.Reg) + if ok1 && a0 == x86asm.EDX { + rdxAddr = int64(i.Args[1].(x86asm.Imm)) + } + } + if i.Op == x86asm.LEA { + a0, ok1 := i.Args[0].(x86asm.Reg) + a1, ok2 := i.Args[1].(x86asm.Mem) + if ok1 && ok2 { + if a0 == x86asm.RDX && a1.Base == x86asm.RIP { + rdxAddr = calcRipRelativeAddr(a1, baseAddr, ip+int64(i.Len)) + } + } + } + if i.Op == x86asm.CALL { + calls-- + if calls == 0 { + return uint64(rdxAddr), nil + } + } + ip += int64(i.Len) + b = b[i.Len:] + } + return 0, errors.New("failed to find 3rd arg to lj_lib_prereg call") +} + +// The 4th arg is pointer to function array lj_lib_cf_jit_util +// https://github.com/openresty/luajit2/blob/7952882d/src/lib_jit.c#L486 +// bba0: 48 83 ec 08 sub $0x8,%rsp +// bba4: 48 8d 0d 55 66 0c 00 lea 0xc6655(%rip),%rcx # d2200 <_fini@@Base+0x195aa> +// bbab: 48 8d 15 4e dc 0a 00 lea 0xadc4e(%rip),%rdx # b9800 <_fini@@Base+0xbaa> +// bbb2: 31 f6 xor %esi,%esi +// bbb4: e8 47 55 02 00 call 31100 +// bbb9: b8 01 00 00 00 mov $0x1,%eax +// bbbe: 48 83 c4 08 add $0x8,%rsp +// bbc2: c3 ret +func (x *x86Extractor) find4thArgToLibRegCall(b []byte, baseAddr int64) (int64, error) { + var ip int64 + b, ip = xh.SkipEndBranch(b) + for len(b) > 0 { + i, err := x86asm.Decode(b, 64) + if err != nil { + return 0, err + } + if i.Op == x86asm.LEA { + a0, ok1 := i.Args[0].(x86asm.Reg) + a1, ok2 := i.Args[1].(x86asm.Mem) + if ok1 && ok2 { + // RCX is 4th arg + if a0 == x86asm.RCX && a1.Base == x86asm.RIP { + return calcRipRelativeAddr(a1, baseAddr, ip+int64(i.Len)), nil + } + } + } + if i.Op == x86asm.MOV { + a0, ok1 := i.Args[0].(x86asm.Reg) + a1, ok2 := i.Args[1].(x86asm.Imm) + if ok1 && ok2 && a0 == x86asm.ECX { + return int64(a1), nil + } + } + ip += int64(i.Len) + b = b[i.Len:] + } + return 0, errors.New("failed to find 4th arg to lj_reg call") +} + +func calcRipRelativeAddr(a1 x86asm.Mem, baseAddr, ip int64) int64 { + // Disp is an int64 but its not set properly and negative numbers + // are 32 bit. TODO: This is a bug that should be created/looked up. + disp := int32(a1.Disp) + return baseAddr + ip + int64(disp) +} + +// If we're dealing with 32bit values compilers will use R or E prefix +// interchangeably (E refs are just zero padded). +func sameReg(r1, r2 x86asm.Reg) bool { + if r1 == r2 { + return true + } + f := func(r1, r2 x86asm.Reg) bool { + switch r1 { + case x86asm.EAX: + return r2 == x86asm.RAX + case x86asm.ECX: + return r2 == x86asm.RCX + case x86asm.EDX: + return r2 == x86asm.RDX + case x86asm.EBX: + return r2 == x86asm.RBX + case x86asm.ESI: + return r2 == x86asm.RSI + default: + return false + } + } + return f(r1, r2) || f(r2, r1) +} diff --git a/interpreter/luajit/log.go b/interpreter/luajit/log.go new file mode 100644 index 000000000..6f04a33b7 --- /dev/null +++ b/interpreter/luajit/log.go @@ -0,0 +1,36 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +import ( + "os" + + "go.opentelemetry.io/ebpf-profiler/internal/log" +) + +// Set this to true when LUA_DEBUG env var is set. +var development bool + +func init() { + _, dbgEnv := os.LookupEnv("LUA_DEBUG") + development = dbgEnv +} + +// logf logs luajit debugging as higher level so they stick out w/o +// enabling debug firehose if LUA_DEBUG env var is set. +func logf(format string, args ...interface{}) { + if development { + log.Infof(format, args...) + } else { + log.Debugf(format, args...) + } +} diff --git a/interpreter/luajit/luajit.go b/interpreter/luajit/luajit.go new file mode 100644 index 000000000..69ca81d5e --- /dev/null +++ b/interpreter/luajit/luajit.go @@ -0,0 +1,494 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +import ( + "errors" + "fmt" + "path" + "strings" + "sync" + "unsafe" + + "go.opentelemetry.io/ebpf-profiler/host" + "go.opentelemetry.io/ebpf-profiler/internal/log" + "go.opentelemetry.io/ebpf-profiler/interpreter" + "go.opentelemetry.io/ebpf-profiler/libc" + "go.opentelemetry.io/ebpf-profiler/libpf" + "go.opentelemetry.io/ebpf-profiler/lpm" + "go.opentelemetry.io/ebpf-profiler/metrics" + sdtypes "go.opentelemetry.io/ebpf-profiler/nativeunwind/stackdeltatypes" + "go.opentelemetry.io/ebpf-profiler/process" + "go.opentelemetry.io/ebpf-profiler/remotememory" + "go.opentelemetry.io/ebpf-profiler/reporter" + "go.opentelemetry.io/ebpf-profiler/support" + "go.opentelemetry.io/ebpf-profiler/util" +) + +// Records all the "global" pointers we've seen. +type vmMap map[libpf.Address]struct{} + +// Records all the JIT regions we've seen, value is SynchronizeMappings +// generation. +type regionMap map[process.RawMapping]int + +type regionKey struct { + start, end uint64 +} + +type luajitData struct { + // The distance from the "g" pointer in the GG_State struct to the start of the dispatch table. + g2Dispatch uint16 + // The distance from the "g" pointer in the GG_State struct to the start of the trace array + // in the jit_State struct. + g2Traces uint16 + // Offset of cur_L field in the global_State struct. + currentLOffset uint16 +} + +type luajitInstance struct { + rm remotememory.RemoteMemory + protos map[libpf.Address]*proto + jitRegions regionMap + pid libpf.PID + ebpf interpreter.EbpfHandler + // Map of g's we've seen, populated by the symbolizer goroutine and + // consumed in SynchronizeMappings so needs to be protected by a mutex. + mu sync.Mutex + vms vmMap + + // Currently mapped prefixes for each vms traces + prefixesByG map[libpf.Address][]lpm.Prefix + + // Currently mapped prefixes for entire memory regions + prefixes map[regionKey][]lpm.Prefix + + // Hash of the traces for each vm + traceHashes map[libpf.Address]uint64 + cycle int + + g2Traces uint16 +} + +var ( + _ interpreter.Data = &luajitData{} + _ interpreter.Instance = &luajitInstance{} +) + +func (d *luajitData) Attach(ebpf interpreter.EbpfHandler, pid libpf.PID, _ libpf.Address, + rm remotememory.RemoteMemory) (interpreter.Instance, error) { + cdata := support.LuaJITProcInfo{ + G2dispatch: d.g2Dispatch, + Cur_L_offset: d.currentLOffset, + Cframe_size_jit: uint16(cframeSizeJIT), + } + if err := ebpf.UpdateProcData(libpf.LuaJIT, pid, unsafe.Pointer(&cdata)); err != nil { + return nil, err + } + + return &luajitInstance{rm: rm, + pid: pid, + ebpf: ebpf, + protos: make(map[libpf.Address]*proto), + jitRegions: make(regionMap), + prefixes: make(map[regionKey][]lpm.Prefix), + prefixesByG: make(map[libpf.Address][]lpm.Prefix), + vms: make(vmMap), + traceHashes: make(map[libpf.Address]uint64), + g2Traces: d.g2Traces, + }, nil +} + +func (d *luajitData) Unload(_ interpreter.EbpfHandler) {} + +func (l *luajitInstance) Detach(ebpf interpreter.EbpfHandler, pid libpf.PID) error { + // Clear memory ranges + for _, prefixes := range l.prefixes { + for _, prefix := range prefixes { + _ = ebpf.DeletePidInterpreterMapping(pid, prefix) + } + } + // Clear trace ranges + for _, prefixes := range l.prefixesByG { + for _, prefix := range prefixes { + _ = ebpf.DeletePidInterpreterMapping(pid, prefix) + } + } + return ebpf.DeleteProcData(libpf.LuaJIT, pid) +} + +func Loader(ebpf interpreter.EbpfHandler, info *interpreter.LoaderInfo) (interpreter.Data, error) { + base := path.Base(info.FileName()) + if !strings.HasPrefix(base, "libluajit-5.1.so") && + base != "luajit" && base != "nginx" && base != "openresty" { + return nil, nil + } + + ef, err := info.GetELF() + if err != nil { + return nil, err + } + + luaInterp, err := extractInterpreterBounds(info.Deltas(), cframeSize) + if err != nil { + return nil, err + } + logf("lj: interp range %v", luaInterp) + + ljd := &luajitData{} + + if err = extractOffsets(ef, ljd, luaInterp); err != nil { + return nil, err + } + + logf("lj: offsets %+v", ljd) + + if err = ebpf.UpdateInterpreterOffsets(support.ProgUnwindLuaJIT, info.FileID(), + []util.Range{luaInterp}); err != nil { + return nil, err + } + + return ljd, nil +} + +// LuaJIT's interpreter isn't a function, its a raw chunk of assembly code with direct threaded +// jumps at end of each opcode. The public entrypoints (lua_pcall/lua_resume) call the lj_vm_pcall +// function at the end of this blob which set up the interpreter and starts executing. +// Even though its not a normal function an eh_frame entry is created for it, its really +// big and has a somewhat unique FDE we can pick out. We could tighten this up by looking for +// direct jumps to the start of the interpreter (one can be found lj_dispatch_update) but we'd +// still need to consult the stack deltas to get the end of the interpreter. +func extractInterpreterBounds(deltas sdtypes.StackDeltaArray, param int32) (util.Range, + error) { + for i := 0; i < len(deltas)-1; i++ { + d, next := &deltas[i], &deltas[i+1] + if next.Address-d.Address > 10_000 { + // The first case covers x86 w/ dwarf and old versions of luajit ARM that used dwarf and + // the second covers more recent arm versions that use frame pointers. + if d.Info.BaseReg == support.UnwindRegSp && d.Info.Param == param || + d.Info.BaseReg == support.UnwindRegFp && d.Info.Param == 16 { + return util.Range{Start: d.Address, End: next.Address}, nil + } + } + } + + return util.Range{}, errors.New("failed to find interpreter range") +} + +func (l *luajitInstance) getVMList() []libpf.Address { + l.mu.Lock() + defer l.mu.Unlock() + gs := make([]libpf.Address, 0, len(l.vms)) + for g := range l.vms { + gs = append(gs, g) + } + return gs +} + +func (l *luajitInstance) addJITRegion(ebpf interpreter.EbpfHandler, pid libpf.PID, + start, end uint64) error { + prefixes, err := lpm.CalculatePrefixList(start, end) + if err != nil { + logf("lj: failed to calculate lpm: %v", err) + return err + } + logf("lj: add JIT region pid(%v) %#x:%#x", pid, start, end) + for _, prefix := range prefixes { + // TODO: fix these: WARN[0267] Failed to lookup file ID 0x2a00000000 + fileID := support.LJFileId << 32 + if err := ebpf.UpdatePidInterpreterMapping(pid, prefix, support.ProgUnwindLuaJIT, + host.FileID(fileID), 0); err != nil { + return err + } + } + k := regionKey{start: start, end: end} + l.prefixes[k] = prefixes + return nil +} + +func (l *luajitInstance) addTrace(ebpf interpreter.EbpfHandler, pid libpf.PID, t trace, g, + spadjust uint64) ([]lpm.Prefix, error) { + start, end := t.mcode, t.mcode+uint64(t.szmcode) + prefixes, err := lpm.CalculatePrefixList(start, end) + if err != nil { + logf("lj: failed to calculate lpm: %v", err) + return nil, err + } + logf("lj: add trace mapping for pid(%v) %x:%x", pid, start, end) + for _, prefix := range prefixes { + fileID := support.LJFileId<<32 | spadjust + if err := ebpf.UpdatePidInterpreterMapping(pid, prefix, support.ProgUnwindLuaJIT, + host.FileID(fileID), g); err != nil { + return nil, err + } + } + return prefixes, nil +} + +func (l *luajitInstance) SynchronizeMappings(ebpf interpreter.EbpfHandler, + _ reporter.ExecutableReporter, pr process.Process, mappings []process.RawMapping) error { + return l.synchronizeMappings(ebpf, pr.PID(), mappings) +} + +func (l *luajitInstance) synchronizeMappings(ebpf interpreter.EbpfHandler, pid libpf.PID, + mappings []process.RawMapping) error { + cycle := l.cycle + l.cycle++ + for i := range mappings { + m := &mappings[i] + if !m.IsAnonymous() || !m.IsExecutable() { + continue + } + l.jitRegions[*m] = cycle + } + + // Remove old ones + for m, c := range l.jitRegions { + k := regionKey{start: m.Vaddr, end: m.Vaddr + m.Length} + if c != cycle { + for _, prefix := range l.prefixes[k] { + if err := ebpf.DeletePidInterpreterMapping(pid, prefix); err != nil { + return errors.Join(err, fmt.Errorf("failed to delete prefix %v", prefix)) + } + } + delete(l.jitRegions, m) + delete(l.prefixes, k) + } + } + + // Add new ones + for m := range l.jitRegions { + k := regionKey{start: m.Vaddr, end: m.Vaddr + m.Length} + if _, ok := l.prefixes[k]; !ok { + if err := l.addJITRegion(ebpf, pid, m.Vaddr, m.Vaddr+m.Length); err != nil { + return errors.Join(err, fmt.Errorf("failed to add JIT region %v", m)) + } + } + } + + return l.processVMs(ebpf, pid) +} + +func (l *luajitInstance) processVMs(ebpf interpreter.EbpfHandler, pid libpf.PID) error { + var badVMs []libpf.Address + for _, g := range l.getVMList() { + hash, traces, err := loadTraces(g+libpf.Address(l.g2Traces), l.rm) + if err != nil { + // if g is bad remove it + log.Warnf("LuaJIT instance (%v) deleted: %v", g, err) + badVMs = append(badVMs, g) + continue + } + // Don't do anything if nothing changed. + if hash == l.traceHashes[g] { + continue + } + + // We don't bother trying to keep things in sync, just delete them all and re-add them. + prefixes := l.prefixesByG[g] + l.prefixesByG[g] = nil + for _, prefix := range prefixes { + _ = ebpf.DeletePidInterpreterMapping(pid, prefix) + } + + newPrefixes := []lpm.Prefix{} + traceLoop: + for i := range traces { + t := traces[i] + // Validate the trace + foundRegion := false + for reg := range l.jitRegions { + if t.mcode >= reg.Vaddr && t.mcode < reg.Vaddr+reg.Length { + foundRegion = true + end := t.mcode + uint64(t.szmcode) + if end > reg.Vaddr+reg.Length { + log.Errorf("trace %v end goes beyond JIT region, bad szmcode", t) + continue traceLoop + } + break + } + } + + if !foundRegion { + log.Errorf("trace %v not in a JIT region", t) + continue + } + + stackDelta := uint64(t.spadjust) + uint64(cframeSizeJIT) + // If this is a side trace, we need to add the spadjust of the root trace but + // only if they are different. + //https://github.com/openresty/luajit2/blob/7952882d/src/lj_gdbjit.c#L597 + if t.root != 0 && traces[t.root].spadjust != t.spadjust { + stackDelta += uint64(traces[t.root].spadjust) + uint64(cframeSizeJIT) + } + p, err := l.addTrace(ebpf, pid, t, uint64(g), stackDelta) + if err != nil { + log.Errorf("Error adding trace(%d): %v", t.traceno, err) + continue + } + newPrefixes = append(newPrefixes, p...) + } + + log.Infof("LuaJIT traces for pid(%v) added: %d with %d prefixes and removed %d prefixes", + pid, len(traces), len(newPrefixes), len(prefixes)) + + l.prefixesByG[g] = newPrefixes + l.traceHashes[g] = hash + } + l.removeVMs(badVMs) + return nil +} + +func (l *luajitInstance) removeVMs(gs []libpf.Address) { + l.mu.Lock() + defer l.mu.Unlock() + for _, g := range gs { + delete(l.vms, g) + } +} + +func (l *luajitInstance) getGCproto(pt libpf.Address) (*proto, error) { + if pt == 0 { + return nil, nil + } + if gc, ok := l.protos[pt]; ok { + return gc, nil + } + gc, err := newProto(l.rm, pt) + if err != nil { + return nil, err + } + l.protos[pt] = gc + return gc, nil +} + +// symbolizeFrame symbolizes the previous (up the stack) +func (l *luajitInstance) symbolizeFrame(funcName string, ptAddr libpf.Address, + pc uint32, frames *libpf.Frames) error { + pt, err := l.getGCproto(ptAddr) + if err != nil { + return err + } + line := pt.getLine(pc) + fileName := pt.getName() + logf("lj: [%x] %v+%v at %v:%v", ptAddr, funcName, pc, fileName, line) + frames.Append(&libpf.Frame{ + Type: libpf.LuaJITFrame, + FunctionOffset: pc, + FunctionName: libpf.Intern(funcName), + SourceFile: libpf.Intern(fileName), + SourceLine: libpf.SourceLineno(line), + }) + return nil +} + +func (l *luajitInstance) addVM(g libpf.Address) bool { + l.mu.Lock() + defer l.mu.Unlock() + _, ok := l.vms[g] + if !ok { + l.vms[g] = struct{}{} + } + return !ok +} + +func (l *luajitInstance) Symbolize(frame libpf.EbpfFrame, frames *libpf.Frames, fm libpf.FrameMapping) error { + if !frame.Type().IsInterpType(libpf.LuaJIT) { + return interpreter.ErrMismatchInterpreterType + } + + var funcName string + ljkind := frame.Data() + switch ljkind { + case support.LJNormalFrame: + if frame.NumVariables() < 3 { + return errors.New("LuaJIT normal frame not large enough") + } + callerPT := libpf.Address(frame.Variable(1)) + + pt, err := l.getGCproto(callerPT) + if err != nil { + return err + } + + var2 := frame.Variable(2) + callerPC := uint32(var2 & 0xFFFFFFFF) + calleePC := uint32(var2 >> 32) + funcName = pt.getFunctionName(callerPC) + calleePT := libpf.Address(frame.Variable(0)) + if err := l.symbolizeFrame(funcName, calleePT, + calleePC, frames); err != nil { + return err + } + + return nil + case support.LJFFIFunc: + if frame.NumVariables() < 1 { + return errors.New("LuaJIT FFI frame not large enough") + } + funcId := libpf.Address(frame.Variable(0)) & 7 + switch funcId { + case 0: + funcName = "lua-frame" + case 1: + funcName = "c-frame" + case 2: + funcName = "cont-frame" + case 3: + return errors.New("unexpected frame type 3") + case 4: + funcName = "lua-pframe" + case 5: + funcName = "cpcall" + case 6: + funcName = "ff-pcall" + case 7: + funcName = "ff-pcall-hook" + } + frames.Append(&libpf.Frame{ + Type: libpf.LuaJITFrame, + FunctionName: libpf.Intern(funcName), + }) + return nil + case support.LJGReport: + if frame.NumVariables() < 1 { + return errors.New("LuaJIT G report frame not large enough") + } + g := libpf.Address(frame.Variable(0)) + if g != 0 { + unseen := l.addVM(g) + if unseen { + log.Infof("New LuaJIT instance detected: %v", g) + if l.ebpf.CoredumpTest() { + return interpreter.ErrLJRestart + } + } + } + return nil + default: + return fmt.Errorf("Unrecognized LuaJIT frame kind: %d", ljkind) + } + + return nil +} + +func (l *luajitInstance) GetAndResetMetrics() ([]metrics.Metric, error) { + return nil, nil +} + +func (l *luajitInstance) ReleaseResources() error { + return nil +} + +func (l *luajitInstance) UpdateLibcInfo(ebpf interpreter.EbpfHandler, pid libpf.PID, info libc.LibcInfo) error { + return nil +} diff --git a/interpreter/luajit/luajit_test.go b/interpreter/luajit/luajit_test.go new file mode 100644 index 000000000..924cf97d7 --- /dev/null +++ b/interpreter/luajit/luajit_test.go @@ -0,0 +1,263 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit_test + +import ( + "context" + "io" + "net" + "net/http" + "runtime" + "strconv" + "sync" + "testing" + "time" + + "github.com/moby/moby/api/types/network" + "github.com/stretchr/testify/require" + testcontainers "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" + "go.opentelemetry.io/ebpf-profiler/libpf" + "go.opentelemetry.io/ebpf-profiler/testutils" + "go.opentelemetry.io/ebpf-profiler/tracer" + tracertypes "go.opentelemetry.io/ebpf-profiler/tracer/types" +) + +// Run +func TestIntegration(t *testing.T) { + if !testutils.IsRoot() { + t.Skip("root privileges required") + } + // TODO: + // can we make sure the native function above main is the right openresty function? + // can we make sure the native function at the leaf are right (ie for pcre)? + // repeat tests with jit on/off + for _, tc := range []struct { + resource string + structure []string + }{ + {"fib", []string{ + "main", + "u:run_duration", + "f", + "fib:calc", + "Fibonacci:naive", + "inner", + }}, + {"comp", []string{ + "main", + "u:run_duration", + "f", + "c:comp", + "lzw:compress", + }}, + // TODO: Do we want to checkin the cjson.so or can we load it dynamically? + // {"json", []string{ + // "main", + // "u:run_duration", + // "f", + // "n:call", + // "pcall", + + // // "cjson:decode", + // }}, + // TODO: get the unwinding working across ffi callbacks. + // {"ffi", []string{ + // "main", + // "u:run_duration", + // "f", + // "q:sort", + // "ffi:C:qsort", + // }}, + } { + t.Run(tc.resource, func(t *testing.T) { + for _, tag := range []string{ + "1.17.8.2-alpine", + "1.19.9.1-alpine", + "1.21.4.3-buster", + "1.25.3.2-bullseye", + "jammy", + "alpine", + } { + t.Run(tag, func(t *testing.T) { + image := "openresty/openresty:" + tag + ctx, cancel := context.WithCancel(t.Context()) + defer cancel() + + cont := startContainer(ctx, t, image) + + h, err := cont.Host(ctx) + require.NoError(t, err) + + port, err := cont.MappedPort(ctx, "8080") + require.NoError(t, err) + + enabledTracers, err := tracertypes.Parse("luajit") + require.NoError(t, err) + enabledTracers.Enable(tracertypes.LuaJITTracer) + traceCh, trc := testutils.StartTracer(ctx, t, enabledTracers, false) + + var waitGroup sync.WaitGroup + defer waitGroup.Wait() + makeRequests(ctx, t, &waitGroup, tc.resource, h, port) + + st, err := cont.State(ctx) + require.NoError(t, err) + + passes, fails, traces := 0, 0, 0 + tick := time.NewTicker(5 * time.Second) + done: + for { + select { + case <-tick.C: + t.Log("passes", passes, "fails", fails, "total", traces) + case <-ctx.Done(): + break done + case traceEvent := <-traceCh: + // See if PID is openresty + trace := traceEvent.Trace + meta := traceEvent.Meta + if trace == nil || int(meta.PID) != st.Pid { + continue + } + traces++ + if validateTrace(t, trc, trace, tc.structure) { + passes++ + } else { + fails++ + } + if passes > 1 { + break done + } + } + } + + t.Log("passes", passes, "fails", fails, "total", traces) + cancel() + }) + } + }) + } +} + +// Find lua traces and test that they are good +func validateTrace(t *testing.T, trc *tracer.Tracer, trace *libpf.Trace, + st []string) bool { + + return validateFrames(t, trace.Frames, st) +} + +func validateFrames(t *testing.T, frames libpf.Frames, st []string) bool { + j := len(frames) - 1 +outer: + for _, s := range st { + if s[0] == '@' { + a, err := strconv.ParseInt(s[1:], 16, 64) + require.NoError(t, err) + addr := libpf.AddressOrLineno(uint64(a)) + for ; j >= 0; j-- { + if frames[j].Value().Type == libpf.NativeFrame { + if frames[j].Value().AddressOrLineno == addr { + continue outer + } + } + } + } else { + for ; j >= 0; j-- { + sym := frames[j].Value().FunctionName.String() + if sym == s { + continue outer + } + } + } + return false + } + return true +} + +func startContainer(ctx context.Context, t *testing.T, image string) testcontainers.Container { + t.Log("starting", image) + // The offset tests load both platform images so docker gets confused if we don't specify + var platform string + switch runtime.GOARCH { + case "arm64": + platform = "linux/arm64" + case "amd64": + platform = "linux/amd64" + default: + panic("bad architecture") + } + cont, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Image: image, + ExposedPorts: []string{"8080"}, + Files: []testcontainers.ContainerFile{ + { + HostFilePath: "./testdata/nginx.conf", + ContainerFilePath: "/usr/local/openresty/nginx/conf/nginx.conf", + }, + { + HostFilePath: "./testdata/lua", + ContainerFilePath: "/usr/local/openresty/nginx/lua", + }, + }, + ImagePlatform: platform, + WaitingFor: wait.ForHTTP("/"), + }, + Started: true, + }) + require.NoError(t, err) + return cont +} + +func makeRequests(ctx context.Context, t *testing.T, wg *sync.WaitGroup, + res, h string, p network.Port) { + wg.Add(1) + numRequests := 0 + tick := time.NewTicker(5 * time.Second) + go func() { + defer wg.Done() + for { + select { + case <-tick.C: + t.Log("requests: ", numRequests) + case <-ctx.Done(): + return + default: + } + url := "http://" + net.JoinHostPort(h, p.Port()) + "/" + res + req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, http.NoBody) + if err != nil { + t.Log(err) + } + res, err := http.DefaultClient.Do(req) + if err != nil { + time.Sleep(100 * time.Millisecond) + t.Log(err) + continue + } + body, err := io.ReadAll(res.Body) + if err != nil { + t.Log(err) + } + err = res.Body.Close() + if err != nil { + t.Log(err) + } + showContents := false + if showContents { + t.Log(string(body)) + } + numRequests++ + } + }() +} diff --git a/interpreter/luajit/mappings_test.go b/interpreter/luajit/mappings_test.go new file mode 100644 index 000000000..0e921bc73 --- /dev/null +++ b/interpreter/luajit/mappings_test.go @@ -0,0 +1,83 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +package luajit + +import ( + "debug/elf" + "testing" + + "github.com/stretchr/testify/require" + "go.opentelemetry.io/ebpf-profiler/host" + "go.opentelemetry.io/ebpf-profiler/interpreter" + "go.opentelemetry.io/ebpf-profiler/libpf" + "go.opentelemetry.io/ebpf-profiler/lpm" + "go.opentelemetry.io/ebpf-profiler/process" +) + +type prefixKey struct { + pid libpf.PID + pfx lpm.Prefix +} + +// ebpfMapsMockup implements the ebpf interface as test mockup +type ebpfMapsMockup struct { + interpreter.EbpfHandlerStubs + prefixes map[prefixKey]lpm.Prefix +} + +var _ interpreter.EbpfHandler = &ebpfMapsMockup{} + +func (m *ebpfMapsMockup) UpdatePidInterpreterMapping(pid libpf.PID, + pfx lpm.Prefix, _ uint8, _ host.FileID, _ uint64) error { + m.prefixes[prefixKey{pid: pid, pfx: pfx}] = pfx + return nil +} + +func (m *ebpfMapsMockup) DeletePidInterpreterMapping(pid libpf.PID, pfx lpm.Prefix) error { + delete(m.prefixes, prefixKey{pid: pid, pfx: pfx}) + return nil +} + +// TestSynchronizeMappings tests that if a mapping is realloc'd we do the right thing. +func TestSynchronizeMappings(t *testing.T) { + for _, tc := range []struct { + calls []process.RawMapping + }{ + {[]process.RawMapping{ + {Vaddr: 0x2000, Length: 0x1000, Flags: elf.PF_X}, + {Vaddr: 0x1000, Length: 0x2000, Flags: elf.PF_X}, + }}, + {[]process.RawMapping{ + {Vaddr: 0x2000, Length: 0x1000, Flags: elf.PF_X}, + {Vaddr: 0x2000, Length: 0x2000, Flags: elf.PF_X}, + }}, + } { + ebpf := &ebpfMapsMockup{prefixes: make(map[prefixKey]lpm.Prefix)} + lj := &luajitInstance{ + jitRegions: make(regionMap), + prefixes: make(map[regionKey][]lpm.Prefix), + prefixesByG: make(map[libpf.Address][]lpm.Prefix), + } + for _, call := range tc.calls { + err := lj.synchronizeMappings(ebpf, 0, []process.RawMapping{call}) + require.NoError(t, err) + } + initial := tc.calls[0] + require.Empty(t, lj.jitRegions[initial]) + require.Empty(t, lj.prefixes[regionKey{initial.Vaddr, initial.Vaddr + initial.Length}]) + final := tc.calls[len(tc.calls)-1] + require.NotEmpty(t, lj.jitRegions[final]) + require.NotEmpty(t, lj.prefixes[regionKey{final.Vaddr, final.Vaddr + final.Length}]) + err := lj.Detach(ebpf, 0) + require.NoError(t, err) + require.Empty(t, ebpf.prefixes) + } +} diff --git a/interpreter/luajit/offsets.go b/interpreter/luajit/offsets.go new file mode 100644 index 000000000..ebb92d82a --- /dev/null +++ b/interpreter/luajit/offsets.go @@ -0,0 +1,407 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +import ( + "debug/elf" + "fmt" + "slices" + + "go.opentelemetry.io/ebpf-profiler/internal/log" + "go.opentelemetry.io/ebpf-profiler/libpf" + "go.opentelemetry.io/ebpf-profiler/libpf/pfelf" + "go.opentelemetry.io/ebpf-profiler/libpf/pfunsafe" + "go.opentelemetry.io/ebpf-profiler/util" +) + +func scanSymbols(ef *pfelf.File) map[libpf.SymbolName]libpf.Symbol { + interestingSymbols := map[libpf.SymbolName]struct{}{ + "lj_vm_asm_begin": {}, + "jit_checktrace": {}, + "lj_cf_jit_util_traceinfo": {}, + "lua_pushcclosure": {}, + "luaopen_jit": {}, + "lua_close": {}, + } + + foundSymbols := map[libpf.SymbolName]libpf.Symbol{} + + visitor := func(sym libpf.Symbol) bool { + if _, ok := interestingSymbols[sym.Name]; ok { + foundSymbols[sym.Name] = sym + delete(interestingSymbols, sym.Name) + } + return len(interestingSymbols) > 0 + } + if err := ef.VisitSymbols(visitor); err != nil { + log.Warnf("failed to read symbols: %v", err) + } + + if err := ef.VisitDynamicSymbols(visitor); err != nil { + log.Warnf("failed to read dynamic symbols: %v", err) + } + + return foundSymbols +} + +// This is the main "global" struct in luajit. +// +// type = struct GG_State { +// lua_State L; +// global_State g; +// jit_State J; +// HotCount hotcount[64]; +// ASMFunction dispatch[243]; +// BCIns bcff[57]; +// } +// +// All the code here is to enable us navigate around it. We need: +// +// 1. The distance from g to dispatch +// 2. The distance from g to J.trace +// 3. The offset of cur_L in global_State +// +// Some versions of openresty have a stripped luajit which makes things a little more +// complicated because we have to start from a public symbol and work our way around. +func extractOffsets(ef *pfelf.File, ljd *luajitData, ir util.Range) error { + oft := offsetData{} + if err := oft.init(ef); err != nil { + return err + } + + curLOffset, err := oft.findCurLOffset() + if err != nil { + return err + } + if curLOffset > 0x7fff { + return fmt.Errorf("lj: curL offset %v is too large", curLOffset) + } + ljd.currentLOffset = curLOffset + + g2Traces, err := oft.findG2TracesOffset() + if err != nil { + return fmt.Errorf("lj: failed to find g2traces offset: %v", err) + } + if g2Traces > 0xffff { + return fmt.Errorf("lj: g to traces offset %v is too large", g2Traces) + } + ljd.g2Traces = uint16(g2Traces) + + g2dispatch, err := oft.findG2DispatchOffset() + if err != nil { + return err + } + if g2dispatch > 0xffff { + return fmt.Errorf("lj: dispatch_L offset %v is too large", g2dispatch) + } + ljd.g2Dispatch = uint16(g2dispatch) + + // If we have symbols we can check that the start address is correct. + if s, e := oft.lookupSymbol("lj_vm_asm_begin"); e == nil && ir.Start != uint64(s.Address) { + return fmt.Errorf("lj: unexpected start address %x, expected %x", s.Address, ir.Start) + } + + return nil +} + +type extractor interface { + // LUA_API void lua_close(lua_State *L) + // { + // global_State *g = G(L); + // int i; + // L = mainthread(g); /* Only the main thread can be closed. */ + // + // #if LJ_HASPROFILE + // luaJIT_profile_stop(L); + // #endif + // + // setgcrefnull(g->cur_L); <---- DING DING DING + findOffsetsFromLuaClose(b []byte) (uint64, uint64, error) + + // Find call to lj_dispatch_update in luaopen_jit by looking for + // first call being passed G loaded from L->glref. + findLjDispatchUpdateAddr(b []byte, addr uint64) (uint64, error) + + // luaopen_jit calls jit_init which calls lj_dispatch_update. lj_dispatch_update + // has this line near the beginning: + // ASMFunction *disp = G2GG(g)->dispatch; + // Use this line to find the g2dispatch offset. + findG2DispatchOffsetFromLjDispatchUpdate(b []byte) (uint64, error) + + // jit_checktrace does this: + // + // jit_State *J = L2J(L); + // if (tr > 0 && tr < J->sizetrace) + // return traceref(J, tr); + // + // L2J will find J relative to G and traceref will find traces + // relative to J so we find both offsets and add them to get + // g2traces offset. + findG2TracesOffsetFromChecktrace([]byte) (uint64, error) + + // Return true if the code in b calls targetCall. + callExists(b []byte, baseAddr, targetCall int64) (bool, error) + + findFirstCall(b []byte, baseAddr int64) (uint64, error) + + find3rdArgToLibPreregCall(b []byte, baseAddr int64) (uint64, error) + + find4thArgToLibRegCall(b []byte, baseAddr int64) (int64, error) +} + +func newExtractor(ef *pfelf.File) extractor { + switch ef.Machine { + case elf.EM_X86_64: + return &x86Extractor{ef: ef} + case elf.EM_AARCH64: + return &armExtractor{ef: ef} + default: + panic("unexpected architecture") + } +} + +type offsetData struct { + f *pfelf.File + luajitOpen []byte + luajitOpenAddr uint64 + e extractor + foundSymbols map[libpf.SymbolName]libpf.Symbol +} + +func (o *offsetData) init(ef *pfelf.File) error { + o.f = ef + o.e = newExtractor(ef) + + var err error + o.foundSymbols = scanSymbols(ef) + // Two extractors use luaopen_jit so cache it. + b, addr, err := o.readSymByName("luaopen_jit") + if err != nil { + return err + } + o.luajitOpen = b + o.luajitOpenAddr = uint64(addr) + return nil +} + +func (o *offsetData) findCurLOffset() (uint16, error) { + b, _, err := o.readSymByName("lua_close") + if err != nil { + return 0, err + } + glref, curL, err := o.e.findOffsetsFromLuaClose(b) + if err != nil { + return 0, err + } + + // openresty 1.15 was compiled w/o LJ_GC64 which we don't support. + if glref != 0x10 { + //nolint: lll + return 0, fmt.Errorf("unexpected glref offset %x, only luajit with LJ_GC64 is supported", glref) + } + return uint16(curL), nil +} + +func (o *offsetData) findG2DispatchOffset() (uint64, error) { + luaDispatchUpdateAddr, err := o.e.findLjDispatchUpdateAddr(o.luajitOpen, o.luajitOpenAddr) + if err != nil { + return 0, err + } + b := make([]byte, 300) + _, err = o.f.ReadAt(b, int64(luaDispatchUpdateAddr)) + if err != nil { + return 0, err + } + return o.e.findG2DispatchOffsetFromLjDispatchUpdate(b) +} + +func (o *offsetData) findG2TracesOffset() (uint64, error) { + if sym, err := o.lookupSymbol("jit_checktrace"); err == nil { + // easiest case + b, err := o.readSym(sym) + if err != nil { + return 0, err + } + return o.e.findG2TracesOffsetFromChecktrace(b) + } + + // jit_checktrace could be inlined or we could be dealing with a stripped binary + if sym, err := o.lookupSymbol("lj_cf_jit_util_traceinfo"); err == nil { + // Inline case + b, er := o.readSym(sym) + if er != nil { + return 0, er + } + return o.e.findG2TracesOffsetFromChecktrace(b) + } + + // Binary must be stripped, find traceinfo the hard way. + sym, err := o.findTraceInfoFromLuaOpen() + if err != nil { + return 0, err + } + + b, err := o.readSym(sym) + if err != nil { + return 0, err + } + + // jit_checktrace will be first call in lj_cf_jit_util_traceinfo or it will be inlined, + // first try the inline approach by running find on a small subset of the instructions. + if len(b) > 200 { + b = b[:200] + } + + addr, err := o.e.findG2TracesOffsetFromChecktrace(b) + if err != nil { + callAddr, err := o.e.findFirstCall(b, int64(sym.Address)) + if err != nil { + return 0, err + } + b := make([]byte, 100) + _, err = o.f.ReadAt(b, int64(callAddr)) + if err != nil { + return 0, err + } + addr, err = o.e.findG2TracesOffsetFromChecktrace(b) + if err != nil { + return 0, err + } + } + + return addr, nil +} + +// Get address of lj_cf_jit_util_traceinfo by looking at the lj_lib_prereg call in luaopen_jit: +// https://github.com/openresty/luajit2/blob/7952882d/src/lib_jit.c#L803 +// The lj_lib_prereg call may or may not be inlined which we can detect by looking for a call to the +// public lua_pushcclosure method. In either case we need to get the address of "luaopen_jit_util" +// which will be an argument to lj_lib_prereg, or lj_pushclosure. +// Then we can read that function to find the address of the function array "lj_lib_cf_jit_util" +// which will be an argument to lj_lib_register. Finally the lj_cf_jit_util_traceinfo function +// will be the 4th element of that array. +func (o *offsetData) findTraceInfoFromLuaOpen() (*libpf.Symbol, error) { + pushCClosure, err := o.lookupSymbol("lua_pushcclosure") + if err != nil { + return nil, err + } + pushClosureAddr := int64(pushCClosure.Address) + baseAddr := int64(o.luajitOpenAddr) + var luaopenJitUtilAddr uint64 + inlined, err := o.e.callExists(o.luajitOpen, baseAddr, pushClosureAddr) + if err != nil { + return nil, err + } + + if inlined { + luaopenJitUtilAddr, err = findRipRelativeLea2ndArgTo2ndCall(o.luajitOpen, baseAddr, + pushClosureAddr) + if err != nil { + return nil, err + } + } else { + luaopenJitUtilAddr, err = o.e.find3rdArgToLibPreregCall(o.luajitOpen, baseAddr) + if err != nil { + return nil, err + } + } + logf("lj: luaopen_jit_util address %x", luaopenJitUtilAddr) + // luaopen_jit_util is tiny: + // https://github.com/openresty/luajit2/blob/7952882d9c/src/lib_jit.c#L484 + b := make([]byte, 100) + _, err = o.f.ReadAt(b, int64(luaopenJitUtilAddr)) + if err != nil { + return nil, err + } + libJitFunctionAddresses, err := o.e.find4thArgToLibRegCall(b, int64(luaopenJitUtilAddr)) + if err != nil { + return nil, err + } + + // libJitFunctionAddresses should be this static array: + // No permalinks for generated code, its in lj_libdef.h + // static const lua_CFunction lj_lib_cf_jit_util[] = { + // lj_cf_jit_util_funcinfo, + // lj_cf_jit_util_funcbc, + // lj_cf_jit_util_funck, + // lj_cf_jit_util_funcuvname, + // lj_cf_jit_util_traceinfo, + // lj_cf_jit_util_traceir, + // lj_cf_jit_util_tracek, + // lj_cf_jit_util_tracesnap, + // lj_cf_jit_util_tracemc, + // lj_cf_jit_util_traceexitstub, + // lj_cf_jit_util_ircalladdr + // }; + const traceInfoIndex = 4 + funcAddrs := make([]uint64, 12) + _, err = o.f.ReadAt(pfunsafe.FromSlice(funcAddrs), libJitFunctionAddresses) + if err != nil { + return nil, err + } + + traceInfoAddr := funcAddrs[traceInfoIndex] + + // Derive size by sorting and seeing offset to next function, swag if its last (it won't be). + slices.Sort(funcAddrs) + + // Its a tiny function, give it reasonable default. + traceInfoSize := uint64(100) + for i, addr := range funcAddrs { + if addr == traceInfoAddr && i != len(funcAddrs)-1 { + traceInfoSize = funcAddrs[i+1] - funcAddrs[i] + break + } + } + + return &libpf.Symbol{ + Name: "lj_cf_jit_util_traceinfo", + Address: libpf.SymbolValue(traceInfoAddr), + Size: traceInfoSize}, nil +} + +func (o *offsetData) readSym(sym *libpf.Symbol) ([]byte, error) { + b := make([]byte, sym.Size) + n, err := o.f.ReadAt(b, int64(sym.Address)) + if err != nil { + return nil, err + } + if n != len(b) { + return nil, fmt.Errorf("failed to read %s fully", sym.Name) + } + return b, nil +} + +func (o *offsetData) lookupSymbol(name libpf.SymbolName) (s *libpf.Symbol, err error) { + s, err = o.f.LookupSymbol(name) + if err == libpf.ErrSymbolNotFound && o.foundSymbols != nil { + if sym, ok := o.foundSymbols[name]; ok { + s = &sym + err = nil + } + } + return s, err +} + +//nolint:gocritic +func (o *offsetData) readSymByName(name string) ([]byte, int64, error) { + sym, err := o.lookupSymbol(libpf.SymbolName(name)) + if err != nil { + return nil, 0, err + } + b := make([]byte, sym.Size) + _, err = o.f.ReadAt(b, int64(sym.Address)) + if err != nil { + return nil, 0, err + } + return b, int64(sym.Address), nil +} diff --git a/interpreter/luajit/offsets_arm64.go b/interpreter/luajit/offsets_arm64.go new file mode 100644 index 000000000..63c8c23ac --- /dev/null +++ b/interpreter/luajit/offsets_arm64.go @@ -0,0 +1,24 @@ +//go:build arm64 + +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +// This is CFRAME_SIZE in src/lj_frame.h +// We could dynamically get this from lj_vm_ffi_callback disassembly and look for the +// add to sp register instruction but that is not available in stripped binaries. +const ( + cframeSize int32 = 208 + cframeSizeJIT int32 = cframeSize +) diff --git a/interpreter/luajit/offsets_test.go b/interpreter/luajit/offsets_test.go new file mode 100644 index 000000000..e7a781dad --- /dev/null +++ b/interpreter/luajit/offsets_test.go @@ -0,0 +1,328 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit + +import ( + "context" + "debug/dwarf" + "debug/elf" + "io" + "os" + "reflect" + "strings" + "testing" + + "github.com/stretchr/testify/require" + testcontainers "github.com/testcontainers/testcontainers-go" + "go.opentelemetry.io/ebpf-profiler/libpf/pfelf" + "go.opentelemetry.io/ebpf-profiler/nativeunwind/elfunwindinfo" + sdtypes "go.opentelemetry.io/ebpf-profiler/nativeunwind/stackdeltatypes" +) + +const ( + openrestyBase = "openresty/openresty" +) + +func TestOffsets(t *testing.T) { + for _, tc := range []struct { + tag string + suf string + fail bool + }{ + {"1.13.6.2-alpine", "0", true}, + {"1.15.8.3-alpine", "0", false}, + {"1.17.8.2-alpine", "0", false}, + {"1.19.9.1-focal", "0", false}, + {"1.21.4.3-buster-fat", "0", false}, + {"1.21.4.3-alpine", "0", false}, + {"1.25.3.2-bullseye-fat", "ROLLING", false}, + {"1.25.3.2-alpine", "ROLLING", false}, + {"jammy", "ROLLING", false}, + {"alpine", "ROLLING", false}, + } { + for _, platform := range []string{"linux/amd64", "linux/arm64"} { + tag, suffix := tc.tag, tc.suf + libFile := "libluajit-5.1.so.2.1." + suffix + t.Run(tag+"-"+platform, func(t *testing.T) { + target, noarm := cacheLibrary(t, tag, platform, libFile) + if noarm { + t.Skip("old openresty doesn't have arm") + } + + ef, err := pfelf.Open(target) + require.NoError(t, err) + + // create stacktrace deltas to make sure we can find interp bounds + // some ugliness so we can run arm and x86 unit tests on both platforms. + intervals, param, err := extractStackDeltas(target, ef) + require.NoError(t, err) + + interp, err := extractInterpreterBounds(intervals.Deltas, param) + require.NoError(t, err) + + ljd := luajitData{} + err = extractOffsets(ef, &ljd, interp) + + if tc.fail { + //nolint:lll + require.Error(t, err, "unexpected glref offset 8, only luajit with LJ_GC64 is supported") + return + } + + require.NoError(t, err) + require.NotZero(t, ljd.currentLOffset) + require.NotZero(t, ljd.g2Traces) + require.NotZero(t, ljd.g2Dispatch) + + od := offsetData{} + err = od.init(ef) + require.NoError(t, err) + + // Test that our chicanery for finding traceinfo checks out on symbolized builds. + if ti, err1 := od.lookupSymbol("lj_cf_jit_util_traceinfo"); err1 == nil { + ti2, err2 := od.findTraceInfoFromLuaOpen() + require.NoError(t, err2) + require.Equal(t, ti.Address, ti2.Address) + } + + // Ditto for lj_dispatch_update + if du, err1 := od.lookupSymbol("lj_dispatch_update"); err1 == nil { + du2, err2 := od.e.findLjDispatchUpdateAddr(od.luajitOpen, od.luajitOpenAddr) + require.NoError(t, err2) + require.Equal(t, uint64(du.Address), du2) + } + + // TODO: strip binary and do it again. + }) + } + } +} + +func cacheLibrary(t *testing.T, tag, platform, libFile string) (string, bool) { + baseDir := "/tmp/offsets_artifacts/" + tag + "/" + platform + target := baseDir + "/libluajit-5.1.so" + + if strings.HasPrefix(tag, "1.13") || strings.HasPrefix(tag, "1.15") { + if platform == "linux/arm64" { + return "", true + } + } + + if _, err := os.Stat(target); os.IsNotExist(err) { + err = os.MkdirAll(baseDir, 0o755) + require.NoError(t, err) + getLibFromImage(t, openrestyBase+":"+tag, platform, libFile, target) + } + return target, false +} + +func extractStackDeltas(target string, ef *pfelf.File) (sdtypes.IntervalData, int32, error) { + var intervals sdtypes.IntervalData + if err := elfunwindinfo.Extract(target, &intervals); err != nil { + return intervals, 0, err + } + + var param int32 + switch ef.Machine { + case elf.EM_AARCH64: + param = 208 + case elf.EM_X86_64: + param = 80 + } + return intervals, param, nil +} + +func getLibFromImage(t *testing.T, name, platform, fullPath, target string) { + ctx, cancel := context.WithCancel(t.Context()) + t.Cleanup(cancel) + + image, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Image: name, + ImagePlatform: platform, + }, + Started: false, + }) + require.NoError(t, err) + + rc, err := image.CopyFileFromContainer(ctx, "/usr/local/openresty/luajit/lib/"+fullPath) + require.NoError(t, err) + defer rc.Close() + f, err := os.Create(target) + require.NoError(t, err) + + _, err = io.Copy(f, rc) + require.NoError(t, err) +} + +func TestX86LuaClose(t *testing.T) { + testdata := []struct { + name string + glRefExpected uint64 + curLExpected uint64 + code []byte + }{ + { + name: "size-optimized-register-zero", + glRefExpected: 0x10, + curLExpected: 0x158, + code: []byte{ + 0x41, 0x55, // pushq %r13 + 0x4c, 0x8d, 0x2d, 0x3f, 0xd4, 0xff, 0xff, // leaq -0x2bc1(%rip), %r13 + 0x41, 0x54, // pushq %r12 + 0x41, 0xbc, 0x0a, 0x00, 0x00, 0x00, // movl $0xa, %r12d + 0x55, // pushq %rbp + 0x53, // pushq %rbx + 0x51, // pushq %rcx + 0x48, 0x8b, 0x5f, 0x10, // movq 0x10(%rdi), %rbx + 0x48, 0x8b, 0xab, 0xc8, 0x00, 0x00, 0x00, // movq 0xc8(%rbx), %rbp + 0x48, 0x89, 0xef, // movq %rbp, %rdi + 0xe8, 0x6e, 0x17, 0x00, 0x00, // callq 0x175f0 + 0x31, 0xf6, // xorl %esi, %esi + 0x48, 0x89, 0xef, // movq %rbp, %rdi + 0x48, 0x89, 0xb3, 0x58, 0x01, 0x00, 0x00, // movq %rsi, 0x158(%rbx) + }, + }, + } + + for _, test := range testdata { + x := x86Extractor{} + glref, curL, err := x.findOffsetsFromLuaClose(test.code) + require.NoError(t, err) + require.Equal(t, test.glRefExpected, glref) + require.Equal(t, test.curLExpected, curL) + } +} + +// spot testing +func TestFiles(t *testing.T) { + files, err := os.ReadDir("./testdata") + require.NoError(t, err) + for _, de := range files { + target := "./testdata/" + de.Name() + fi, err := os.Stat(target) + if err != nil || fi.IsDir() { + continue + } + ef, err := pfelf.Open(target) + // Skip non-elf files + if err != nil { + continue + } + ljd := luajitData{} + + // create stacktrace deltas to make sure we can find interp bounds + // some ugliness so we can run arm and x86 unit tests on both platforms. + intervals, param, err := extractStackDeltas(target, ef) + require.NoError(t, err) + + interp, err := extractInterpreterBounds(intervals.Deltas, param) + require.NoError(t, err) + + err = extractOffsets(ef, &ljd, interp) + require.NoError(t, err, de) + require.NotZero(t, ljd.currentLOffset) + require.NotZero(t, ljd.g2Traces) + require.NotZero(t, ljd.g2Dispatch) + + od := offsetData{} + err = od.init(ef) + require.NoError(t, err) + + // Test that our chicanery for finding traceinfo checks out on symbolized builds. + if ti, err1 := od.lookupSymbol("lj_cf_jit_util_traceinfo"); err1 == nil { + ti2, err2 := od.findTraceInfoFromLuaOpen() + require.NoError(t, err2) + require.Equal(t, ti.Address, ti2.Address) + } + + // Ditto for lj_dispatch_update + if du, err1 := od.lookupSymbol("lj_dispatch_update"); err1 == nil { + du2, err2 := od.e.findLjDispatchUpdateAddr(od.luajitOpen, od.luajitOpenAddr) + require.NoError(t, err2) + require.Equal(t, uint64(du.Address), du2) + } + + t.Logf("%s: %+v, interp: %+v", target, ljd, interp) + } +} + +func TestStructure(t *testing.T) { + for _, tc := range []struct { + tag string + suf string + }{ + // Seems like alpine and ubuntu always have symbols, debian doesn't + {"1.15.8.3-alpine", "0"}, + {"1.17.8.2-alpine", "0"}, + {"1.19.9.1-focal", "0"}, + {"1.21.4.3-alpine", "0"}, + {"1.25.3.2-alpine", "ROLLING"}, + {"jammy", "ROLLING"}, + {"alpine", "ROLLING"}, + } { + for _, platform := range []string{"linux/amd64", "linux/arm64"} { + tag, suffix := tc.tag, tc.suf + libFile := "libluajit-5.1.so.2.1." + suffix + t.Run(tag+"-"+platform, func(t *testing.T) { + target, noarm := cacheLibrary(t, tag, platform, libFile) + if noarm { + t.Skip("old openresty doesn't have arm") + } + + ef, err := elf.Open(target) + require.NoError(t, err) + + dwarfData, err := ef.DWARF() + require.NoError(t, err) + entryReader := dwarfData.Reader() + + for { + entry, err := entryReader.Next() + require.NoError(t, err) + if entry == nil { + break + } + if entry.Tag == dwarf.TagStructType { + ty, err := dwarfData.Type(entry.Offset) + require.NoError(t, err) + if s, ok := ty.(*dwarf.StructType); ok { + switch s.StructName { + case "GCtrace": + checkStruct(t, trace{}, s, tracePartOffset) + case "GCproto": + checkStruct(t, protoRaw{}, s, 8) + case "jit_State": + // TODO: we don't have offset as we rely on g2traces so not sure + // how to test... + } + } + } + } + }) + } + } +} + +func checkStruct(t *testing.T, typ any, s *dwarf.StructType, base uintptr) { + rtyp := reflect.TypeOf(typ) + did := 0 + for i := 0; i < rtyp.NumField(); i++ { + f := rtyp.Field(i) + if f.Name != "_" { + for s.Field[did].Name != f.Name { + did++ + } + require.Equal(t, s.Field[did].ByteOffset, int64(f.Offset+base)) + } + } +} diff --git a/interpreter/luajit/offsets_x86.go b/interpreter/luajit/offsets_x86.go new file mode 100644 index 000000000..09a812311 --- /dev/null +++ b/interpreter/luajit/offsets_x86.go @@ -0,0 +1,25 @@ +//go:build amd64 + +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +// This is CFRAME_SIZE in src/lj_frame.h +// We could dynamically get this from lj_vm_ffi_callback disassembly and look for: +// lea rax, [rsp+CFRAME_SIZE] +// https://github.com/openresty/luajit2/blob/7952882d/src/vm_x64.dasc#L2725 +const ( + cframeSize int32 = 80 + cframeSizeJIT int32 = cframeSize + 16 +) diff --git a/interpreter/luajit/proto.go b/interpreter/luajit/proto.go new file mode 100644 index 000000000..4ab8de5c5 --- /dev/null +++ b/interpreter/luajit/proto.go @@ -0,0 +1,371 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +import ( + "errors" + "unicode/utf8" + + "go.opentelemetry.io/ebpf-profiler/libpf" + "go.opentelemetry.io/ebpf-profiler/libpf/pfunsafe" + "go.opentelemetry.io/ebpf-profiler/remotememory" +) + +const ( + sizeofGCstr = 24 + sizeofGCproto = 104 + stringGCType = 4 + //https://github.com/openresty/luajit2/blob/7952882d/src/lj_def.h#L66 + byteCodeMax = 1 << 26 +) + +type GCobj struct { + _ uint64 // nextgc + _ byte // marked + gct byte +} + +// GCproto minus first 8 bytes +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_obj.h#L372 +// All the pointers (except chunkname) are pointers to extra space at the end of the GCproto object +// so we could try to be clever and read the whole thing at once if we needed to reduce remotememory +// traffic. +type protoRaw struct { + // nextgc uint64 /* 0 | 8 */ + _ byte /* 8 | 1 */ + _ byte /* 9 | 1 */ + _ byte /* 10 | 1 */ + _ byte /* 11 | 1 */ + sizebc uint32 /* 12 | 4 */ + _ uint32 /* 16 | 4 */ + /* XXX 4-byte hole */ + _ uint64 /* 24 | 8 */ + k libpf.Address /* 32 | 8 */ + _ uint64 /* 40 | 8 */ + sizekgc uint32 /* 48 | 4 */ + _ uint32 /* 52 | 4 */ + sizept uint32 /* 56 | 4 */ + sizeuv uint8 /* 60 | 1 */ + _ uint8 /* 61 | 1 */ + _ uint16 /* 62 | 2 */ + chunkname libpf.Address /* 64 | 8 */ + firstline uint32 /* 72 | 4 */ + numline uint32 /* 76 | 4 */ + lineinfo libpf.Address /* 80 | 8 */ + uvinfo libpf.Address /* 88 | 8 */ + varinfo libpf.Address /* 96 | 8 */ +} + +// proto is a userland cached version of LuaJIT's GCproto object which is +// contains all the static data for a function. A function on the stack +// will be a GCfunc which is basically a GCproto pointer and any captured +// upvalues. +type proto struct { + protoRaw + ptAddr libpf.Address + name string + bc []uint32 + lineinfo8 []uint8 + lineinfo16 []uint16 + lineinfo32 []uint32 + upvalueNames []string + varinforaw []byte + constants []string +} + +// newProto creates a proto from a GCproto* by reading memory remotely. +func newProto(rm remotememory.RemoteMemory, pt libpf.Address) (*proto, error) { + p := &proto{ptAddr: pt} + if err := rm.Read(pt+8, pfunsafe.FromPointer(&p.protoRaw)); err != nil { + return nil, err + } + + // reading memory from a remote process is always dicey, validate + // we're looking at a GCproto object by checking that the debugging + // info pointers are valid internal pointers or NULL. + end := pt + libpf.Address(p.sizept) + bad := func(addr libpf.Address) bool { + return addr != 0 && (addr < pt || addr >= end) + } + if bad(p.lineinfo) || bad(p.uvinfo) || bad(p.varinfo) { + return nil, errors.New("invalid GCproto object") + } + + // string data is stored after the GCstr object + p.name = rm.String(p.chunkname + sizeofGCstr) + if !utf8.ValidString(p.name) { + return nil, errors.New("invalid chunkname string") + } + + // This should never be empty string. + if p.name == "" { + return nil, errors.New("invalid chunkname string") + } + + if p.sizebc == 0 || p.sizebc > byteCodeMax { + return nil, errors.New("invalid bytecode size") + } + + p.bc = make([]uint32, p.sizebc) + // bytecode starts at end of GCproto object + // https://github.com/openresty/luajit2/blob/7952882d/src/lj_obj.h#L420 + if err := rm.Read(p.ptAddr+sizeofGCproto, pfunsafe.FromSlice(p.bc)); err != nil { + return nil, err + } + if p.lineinfo != 0 { + if p.numline < 256 { + p.lineinfo8 = make([]uint8, p.sizebc) + if err := rm.Read(p.lineinfo, pfunsafe.FromSlice(p.lineinfo8)); err != nil { + return nil, err + } + } else if p.numline < 65536 { + p.lineinfo16 = make([]uint16, p.sizebc) + if err := rm.Read(p.lineinfo, pfunsafe.FromSlice(p.lineinfo16)); err != nil { + return nil, err + } + } else { + p.lineinfo32 = make([]uint32, p.sizebc) + if err := rm.Read(p.lineinfo, pfunsafe.FromSlice(p.lineinfo32)); err != nil { + return nil, err + } + } + } + + if p.sizekgc > 0 { + objs := make([]libpf.Address, p.sizekgc) + p.constants = make([]string, p.sizekgc) + if err := rm.Read(p.k-libpf.Address(p.sizekgc*8), pfunsafe.FromSlice(objs)); err != nil { + return nil, err + } + for i, c := range objs { + var gco GCobj + if err := rm.Read(c, pfunsafe.FromPointer(&gco)); err != nil { + return nil, err + } + if gco.gct == stringGCType { + str := rm.String(objs[i] + sizeofGCstr) + p.constants[len(objs)-i-1] = str + } + } + } + + //https://github.com/openresty/luajit2/blob/7952882d/src/lj_debug.c#L225 + if p.uvinfo != 0 { + // lineinfo/uvinfo/varinfo are all either null or set so we can calculate lengths from them + lenuv := p.varinfo - p.uvinfo + b := make([]byte, lenuv) + if err := rm.Read(p.uvinfo, pfunsafe.FromSlice(b)); err != nil { + return nil, err + } + p.upvalueNames = []string{} + for len(b) > 0 { + var name string + b, name = parseString(b) + b = b[1:] // skip null terminator + p.upvalueNames = append(p.upvalueNames, name) + } + if p.sizeuv != uint8(len(p.upvalueNames)) { + return nil, errors.New("invalid upvalue count") + } + } + + // varinfo is a pointer to data colocated with GCproto, its at the end + // and its length isn't stored, but it can be derived by subtracting the + // end of the object from the varinfo pointer. + if p.varinfo != 0 { + varinfolen := (p.ptAddr + libpf.Address(p.sizept)) - p.varinfo + p.varinforaw = make([]byte, varinfolen) + if err := rm.Read(p.varinfo, pfunsafe.FromSlice(p.varinforaw)); err != nil { + return nil, err + } + } + + return p, nil +} + +func (p *proto) getName() string { + if p == nil { + return "" + } + return p.name +} + +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_debug.c#L123 +func (p *proto) getLine(pc uint32) uint32 { + if p == nil || p.lineinfo == 0 || pc > p.sizebc || pc == 0 { + return 0 + } + first := p.firstline + if pc == p.sizebc { + return first + p.numline + } + pc-- + if pc == 0 { + return first + } + if p.numline < 256 { + return first + uint32(p.lineinfo8[pc]) + } else if p.numline < 65536 { + return first + uint32(p.lineinfo16[pc]) + } + return first + p.lineinfo32[pc] +} + +func (p *proto) getVarname(slot, pc uint32) string { + return parseVarinfo(p.varinforaw, pc, slot) +} + +func (p *proto) getUpvalueName(slot uint32) string { + return p.upvalueNames[slot] +} + +func (p *proto) getConstant(idx uint32) string { + return p.constants[idx] +} + +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_debug.c#L259 +func (p *proto) getSlotName(pc, slot uint32) string { +restart: + if pc == 0 || pc >= p.sizebc { + return "" + } + name := p.getVarname(slot, pc) + if name != "" { + return name + } + // Walk the lua instructions backwards to find the name used to put the function in the slot + pc-- + for ; pc > 0; pc-- { + ins := p.bc[pc] + op := bcOp(ins) + ra := bcA(ins) + if bcModeAIsBase(op) { + if slot >= ra && (op != BC_KNIL || slot <= bcD(ins)) { + return "" + } + } else if bcModeAIsDst(op) && ra == slot { + switch op { + case BC_MOV: + if ra == slot { + slot = bcD(ins) + goto restart + } + case BC_GGET: + return p.getConstant(bcD(ins)) + case BC_TGETS: + method := p.getConstant(bcC(ins)) + table := p.getSlotName(pc, bcB(ins)) + if table != "" { + return table + ":" + method + } + return method + case BC_UGET: + return p.getUpvalueName(bcD(ins)) + default: + return "" + } + } + } + + return "" +} + +func (p *proto) getFunctionName(pc uint32) string { + if p == nil { + return "main" + } + if pc >= p.sizebc { + // TODO: can we get a better pc for JIT frames? + pc = 0 + } + slot, metaname := getSlotOrMetaname(p.bc[pc]) + if metaname != "" { + return metaname + } + return p.getSlotName(pc, slot) +} + +// Parse a ULEB128 encoded number from a byte slice and return +// remaining bytes and the number. +// +//nolint:gocritic +func parseULEB128(b []byte) ([]byte, uint32) { + v := uint32(b[0]) + b = b[1:] + if v >= 0x80 { + shift := 0 + v &= 0x7f + for { + shift += 7 + v |= uint32(b[0]&0x7f) << shift + b = b[1:] + if b[0] < 0x80 { + break + } + } + } + return b, v +} + +//nolint:gocritic +func parseString(b []byte) ([]byte, string) { + for i, c := range b { + if c == 0 { + // FIXME: allocation + return b[i:], string(b[:i]) + } + } + panic("no null terminator") +} + +var varnames = []string{ + "(for index)", + "(for limit)", + "(for step)", + "(for generator)", + "(for state)", + "(for control)"} + +func parseVarinfo(b []byte, pc, slot uint32) string { + var lastpc uint32 + for { + var name string + vn := int(b[0]) + if vn <= len(varnames) { + if vn == 0 { + break + } + } else { + b, name = parseString(b) + } + b = b[1:] + var pcdelta uint32 + b, pcdelta = parseULEB128(b) + startpc := lastpc + pcdelta + lastpc = startpc + if startpc > pc { + break + } + b, pcdelta = parseULEB128(b) + endpc := startpc + pcdelta + if pc < endpc { + if slot == 0 { + if vn <= len(varnames) { + return varnames[vn-1] + } + return name + } + slot-- + } + } + return "" +} diff --git a/interpreter/luajit/proto_test.go b/interpreter/luajit/proto_test.go new file mode 100644 index 000000000..0b8c8123c --- /dev/null +++ b/interpreter/luajit/proto_test.go @@ -0,0 +1,60 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestParseVarinfo(t *testing.T) { + // Lifted from bcline function in bc.lua: + // https://github.com/openresty/luajit2/blob/098183d/src/jit/bc.lua#L65 + b := []byte{0x66, 0x75, 0x6e, 0x63, 0x0, 0x0, 0xdc, 0x1, 0x70, 0x63, 0x0, 0x0, 0xdc, 0x1, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x0, 0x0, 0xdc, 0x1, 0x6c, 0x69, 0x6e, 0x65, 0x69, 0x6e, + 0x66, 0x6f, 0x0, 0x0, 0xdc, 0x1, 0x69, 0x6e, 0x73, 0x0, 0xa, 0xd2, 0x1, 0x6d, 0x0, 0x0, + 0xd2, 0x1, 0x6c, 0x0, 0x0, 0xd2, 0x1, 0x6d, 0x61, 0x0, 0xf, 0xc3, 0x1, 0x6d, 0x62, 0x0, + 0x0, 0xc3, 0x1, 0x6d, 0x63, 0x0, 0x0, 0xc3, 0x1, 0x61, 0x0, 0x7, 0xbc, 0x1, 0x6f, 0x69, + 0x64, 0x78, 0x0, 0x5, 0xb7, 0x1, 0x6f, 0x70, 0x0, 0x5, 0xb2, 0x1, 0x73, 0x0, 0x1, 0xb1, + 0x1, 0x64, 0x0, 0x27, 0x8a, 0x1, 0x6b, 0x63, 0x0, 0x17, 0x73, 0x66, 0x69, 0x0, 0x2c, 0x9, + 0x6b, 0x61, 0x0, 0x17, 0x8, 0x62, 0x0, 0xe, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, + 0xf5, 0x0} + for _, tc := range []struct { + name string + startpc, endp uint32 + slot uint32 + }{ + {"func", 0, 220, 0}, + {"pc", 0, 220, 1}, + {"prefix", 0, 220, 2}, + {"lineinfo", 0, 220, 3}, + {"ins", 10, 220, 4}, + {"m", 10, 220, 5}, + {"l", 10, 220, 6}, + {"ma", 25, 220, 7}, + {"mb", 25, 220, 8}, + {"mc", 25, 220, 9}, + {"a", 32, 220, 10}, + {"oidx", 37, 220, 11}, + {"op", 42, 220, 12}, + {"s", 43, 220, 13}, + {"d", 82, 220, 14}, + {"kc", 105, 220, 15}, + {"fi", 149, 158, 16}, + {"ka", 172, 180, 16}, + {"b", 186, 201, 16}, + } { + s := parseVarinfo(b, tc.startpc, tc.slot) + require.Equal(t, s, tc.name) + } +} diff --git a/interpreter/luajit/testdata/lua/comp.lua b/interpreter/luajit/testdata/lua/comp.lua new file mode 100644 index 000000000..24ec1e182 --- /dev/null +++ b/interpreter/luajit/testdata/lua/comp.lua @@ -0,0 +1,18 @@ +local _M = {} +local lzw = require("lualzw") + +function _M.comp(input) + local comp_data = lzw.compress(input) + decomp_data = lzw.decompress(comp_data) + if input ~= decomp_data then + error("Error: input != decomp_data") + end + return comp_data +end + +-- run if outside nginx +if not package.loaded["ngx"] then + print(_M.comp("asdfqwerasdfzcvxpoiulkhasdfasdfkajeofiwjdajfj")) +end + +return _M diff --git a/interpreter/luajit/testdata/lua/fib.lua b/interpreter/luajit/testdata/lua/fib.lua new file mode 100644 index 000000000..b6573bbc5 --- /dev/null +++ b/interpreter/luajit/testdata/lua/fib.lua @@ -0,0 +1,24 @@ +local _M = {} + +local Fibonacci = {} +function Fibonacci.naive(n) + local function inner(m) + if m < 2 then + return m + end + return inner(m-1) + + inner(m-2) + end + return inner(n) +end + +function _M.calc(range) + return "Fib(" .. tostring(range) .. ") = " .. tostring(Fibonacci.naive(range)) +end + +-- run if outside nginx +if not package.loaded["ngx"] then + print(_M.calc(20)) +end + +return _M diff --git a/interpreter/luajit/testdata/lua/input-text.lua b/interpreter/luajit/testdata/lua/input-text.lua new file mode 100644 index 000000000..ef3bb70cc --- /dev/null +++ b/interpreter/luajit/testdata/lua/input-text.lua @@ -0,0 +1,19 @@ +local ffi = require("ffi") +local _M = {} +ffi.cdef[[ + long random(); +]] + +local text = "" + +function _M.gen() + if #text > 0 then + return text + end + for i=0,2000 do + text = text .. tostring(ffi.C.random()) + end + return text +end + +return _M \ No newline at end of file diff --git a/interpreter/luajit/testdata/lua/lualzw.lua b/interpreter/luajit/testdata/lua/lualzw.lua new file mode 100644 index 000000000..936049adf --- /dev/null +++ b/interpreter/luajit/testdata/lua/lualzw.lua @@ -0,0 +1,176 @@ +--[[ +MIT License + +Copyright (c) 2016 Rochet2 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +]] + +local char = string.char +local type = type +local select = select +local sub = string.sub +local tconcat = table.concat + +local basedictcompress = {} +local basedictdecompress = {} +for i = 0, 255 do + local ic, iic = char(i), char(i, 0) + basedictcompress[ic] = iic + basedictdecompress[iic] = ic +end + +local function dictAddA(str, dict, a, b) + if a >= 256 then + a, b = 0, b+1 + if b >= 256 then + dict = {} + b = 1 + end + end + dict[str] = char(a,b) + a = a+1 + return dict, a, b +end + +local trace1 = true +local trace2 = true + +local function compress(input) + if type(input) ~= "string" then + return nil, "string expected, got "..type(input) + end + local len = #input + if len <= 1 then + return "u"..input + end + + local dict = {} + local a, b = 0, 1 + + local result = {"c"} + local resultlen = 1 + local n = 2 + local word = "" + for i = 1, len do + local c = sub(input, i, i) + local wc = word..c + if not (basedictcompress[wc] or dict[wc]) then + local write = basedictcompress[word] or dict[word] + if not write then + return nil, "algorithm error, could not fetch word" + end + result[n] = write + resultlen = resultlen + #write + n = n+1 + if len <= resultlen then + return "u"..input + end + dict, a, b = dictAddA(wc, dict, a, b) + word = c + else + word = wc + end + end + result[n] = basedictcompress[word] or dict[word] + resultlen = resultlen+#result[n] + n = n+1 + if len <= resultlen then + return "u"..input + end + if trace1 then + ngx.say(debug.traceback()) + trace1 = false + end + return tconcat(result) +end + +local function dictAddB(str, dict, a, b) + if a >= 256 then + a, b = 0, b+1 + if b >= 256 then + dict = {} + b = 1 + end + end + dict[char(a,b)] = str + a = a+1 + return dict, a, b +end + +local function decompress(input) + if type(input) ~= "string" then + return nil, "string expected, got "..type(input) + end + + if #input < 1 then + return nil, "invalid input - not a compressed string" + end + + local control = sub(input, 1, 1) + if control == "u" then + return sub(input, 2) + elseif control ~= "c" then + return nil, "invalid input - not a compressed string" + end + input = sub(input, 2) + local len = #input + + if len < 2 then + return nil, "invalid input - not a compressed string" + end + + local dict = {} + local a, b = 0, 1 + + local result = {} + local n = 1 + local last = sub(input, 1, 2) + result[n] = basedictdecompress[last] or dict[last] + n = n+1 + for i = 3, len, 2 do + local code = sub(input, i, i+1) + local lastStr = basedictdecompress[last] or dict[last] + if not lastStr then + return nil, "could not find last from dict. Invalid input?" + end + local toAdd = basedictdecompress[code] or dict[code] + if toAdd then + result[n] = toAdd + n = n+1 + dict, a, b = dictAddB(lastStr..sub(toAdd, 1, 1), dict, a, b) + else + local tmp = lastStr..sub(lastStr, 1, 1) + result[n] = tmp + n = n+1 + dict, a, b = dictAddB(tmp, dict, a, b) + end + last = code + end + if trace2 then + ngx.say(debug.traceback()) + trace2 = false + end + return tconcat(result) +end + +return { + compress = compress, + decompress = decompress, +} diff --git a/interpreter/luajit/testdata/lua/nested-pcall.lua b/interpreter/luajit/testdata/lua/nested-pcall.lua new file mode 100644 index 000000000..eb0d67ff3 --- /dev/null +++ b/interpreter/luajit/testdata/lua/nested-pcall.lua @@ -0,0 +1,9 @@ +local cjson = require 'cjson.safe' +local d = require '512KB' + +local function call() + local ok,res,err = pcall(cjson.decode,d.data) + pcall(cjson.encode, res) +end + +return {call = call} \ No newline at end of file diff --git a/interpreter/luajit/testdata/lua/sort.lua b/interpreter/luajit/testdata/lua/sort.lua new file mode 100644 index 000000000..91abd3cea --- /dev/null +++ b/interpreter/luajit/testdata/lua/sort.lua @@ -0,0 +1,37 @@ +local _M = {} +local ffi = require "ffi" + +ffi.cdef[[ + long random(); + void qsort(void *base, size_t nel, size_t width, int (*compar)(const long *, const long *)); + int tolower(int); +]] + +function compare(a, b) + -- consume some cpu to get make sure compare gets sampled + for i=0,1000000 do + local x = i * i + end + ngx.say(debug.traceback()) + return a[0] - b[0] +end + +local callback = ffi.cast("int (*)(const long *, const long *)", compare) + +function _M.sort(n) + local arr = ffi.new("long[?]", n) + for i=0,n-1 do + arr[i] = ffi.C.random() + end + ffi.C.qsort(arr, n, ffi.sizeof("long"), callback) + for i=0,n-1 do + print(arr[i]) + end +end + + +if not package.loaded["ngx"] then + _M.sort(20) +end + +return _M diff --git a/interpreter/luajit/testdata/lua/util.lua b/interpreter/luajit/testdata/lua/util.lua new file mode 100644 index 000000000..9f2395756 --- /dev/null +++ b/interpreter/luajit/testdata/lua/util.lua @@ -0,0 +1,9 @@ +local _M = {} +function _M.run_duration(d, f) + local start = ngx.now() + while ngx.now() < start + d do + f() + ngx.update_time() + end +end +return _M diff --git a/interpreter/luajit/testdata/nginx.conf b/interpreter/luajit/testdata/nginx.conf new file mode 100644 index 000000000..83393b444 --- /dev/null +++ b/interpreter/luajit/testdata/nginx.conf @@ -0,0 +1,61 @@ +worker_processes 1; +master_process off; +#daemon off; +events { + worker_connections 1024; +} +http { + lua_package_path "$prefix/lua/?.lua;;"; + server { + listen 8080 reuseport; + location /fib { + default_type text/plain; + content_by_lua_block { + local fib = require "fib" + local u = require "util" + local function f() + ngx.say(fib.calc(32)) + end + u.run_duration(.1, f) + } + } + location /comp { + default_type text/plain; + content_by_lua_block { + local t = require "input-text" + local c = require "comp" + local u = require "util" + local function f() + local text = t.gen() + res = c.comp(text) + ngx.say("Comp: " .. #text .. "->" .. #res) + end + u.run_duration(.1, f) + } + } + location /ffi { + default_type text/plain; + content_by_lua_block { + local q = require "qsort" + local u = require "util" + local function f() + local text = q.sort(100) + c.comp(text) + end + u.run_duration(.1, f) + } + } + location /pcall { + default_type text/plain; + content_by_lua_block { + local u = require "util" + local n = require "nested-pcall" + local function f() + n.call() + end + u.run_duration(.1, f) + ngx.say("pcall") + } + } + } +} \ No newline at end of file diff --git a/interpreter/luajit/trace.go b/interpreter/luajit/trace.go new file mode 100644 index 000000000..084448ca1 --- /dev/null +++ b/interpreter/luajit/trace.go @@ -0,0 +1,105 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +package luajit // import "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" + +import ( + "encoding/binary" + "errors" + "fmt" + "hash/fnv" + + "go.opentelemetry.io/ebpf-profiler/libpf" + "go.opentelemetry.io/ebpf-profiler/libpf/pfunsafe" + "go.opentelemetry.io/ebpf-profiler/remotememory" +) + +// This offset is the same in arm64/x86_64 for all known versions of luajit. +// (gdb) p &((GCtrace*)0)->startins +// $7 = (uint16_t *) 0x50 +const tracePartOffset = 0x50 + +// Definition: +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_jit.h#L423 +type jitStatePart struct { + trace libpf.Address + _ uint32 // freetrace + sizetrace uint32 +} + +// Definition: +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_jit.h#L259 +type trace struct { + _ uint32 /* startins Original bytecode of starting instruction. */ + szmcode uint32 /* Size of machine code. */ + mcode uint64 /* Start of machine code. */ + _ uint32 /* mcloop */ + // For arm is LJ_ABI_PAUTH defined? + // For docker images at least LJ_ABI_PAUTH is not defined. + // ASMFunction mcauth; /* Start of machine code, with ptr auth applied. */ + _ uint16 /* Number of child traces (root trace only). */ + spadjust uint16 /* Stack pointer adjustment (offset in bytes). */ + traceno uint16 /* Trace number. */ + _ uint16 /* Linked trace (or self for loops). */ + root uint16 /* Root trace of side trace (or 0 for root traces). */ +} + +// key == traceId +type traceMap map[uint16]trace + +func getAndHashTraceAddrs(tracesAddr libpf.Address, rm remotememory.RemoteMemory) ( + hash uint64, sizetrace int, traceAddrs []libpf.Address, err error) { + j := jitStatePart{} + if err := rm.Read(tracesAddr, pfunsafe.FromPointer(&j)); err != nil { + return 0, 0, nil, err + } + if j.sizetrace > 65535 { + return 0, 0, nil, fmt.Errorf("invalid sizetrace %d (traces:%x)", j.sizetrace, tracesAddr) + } + traceAddrs = []libpf.Address{} + b := make([]byte, 8) + h := fnv.New64() + binary.LittleEndian.PutUint32(b, j.sizetrace) + _, _ = h.Write(b[:4]) + addrs := make([]libpf.Address, j.sizetrace) + if err := rm.Read(j.trace, pfunsafe.FromSlice(addrs)); err != nil { + return 0, 0, nil, err + } + for _, addr := range addrs { + if addr == 0 { + continue + } + binary.LittleEndian.PutUint64(b, uint64(addr)) + _, _ = h.Write(b) + traceAddrs = append(traceAddrs, addr) + } + return h.Sum64(), int(j.sizetrace), traceAddrs, nil +} + +func loadTraces(tracesAddr libpf.Address, rm remotememory.RemoteMemory) (uint64, traceMap, error) { + h, sztrace, traceAddrs, err := getAndHashTraceAddrs(tracesAddr, rm) + if err != nil { + return 0, nil, err + } + traces := traceMap{} + for _, addr := range traceAddrs { + t := trace{} + if err := rm.Read(addr+tracePartOffset, pfunsafe.FromPointer(&t)); err != nil { + return 0, nil, err + } + if t.traceno > uint16(sztrace) { + return 0, nil, errors.New("invalid traceno") + } + logf("lj: added trace(%d) from %x", t.traceno, tracesAddr) + traces[t.traceno] = t + } + return h, traces, nil +} diff --git a/interpreter/types.go b/interpreter/types.go index 4b2e219c2..ae7d1e4dc 100644 --- a/interpreter/types.go +++ b/interpreter/types.go @@ -39,6 +39,9 @@ var ( UnknownFunctionName = libpf.Intern("") ErrMismatchInterpreterType = errors.New("mismatched interpreter type") + + // Special coredump-only error used to restart ConvertTrace processing + ErrLJRestart = errors.New("lj_restart") ) // The following function Loader and interfaces Data and Instance work together @@ -107,6 +110,10 @@ type EbpfHandler interface { // DeletePidInterpreterMapping removes the element specified by pid, prefix // rom the eBPF map pid_page_to_mapping_info. DeletePidInterpreterMapping(libpf.PID, lpm.Prefix) error + + // CoredumpTest returns whether the unwinder needs special behavior for + // coredump mode to work. + CoredumpTest() bool } // Loader is a function to detect and load data from given interpreter ELF file. diff --git a/libpf/frametype.go b/libpf/frametype.go index 53337a22f..af47bf6cc 100644 --- a/libpf/frametype.go +++ b/libpf/frametype.go @@ -53,6 +53,8 @@ const ( GoFrame FrameType = support.FrameMarkerGo // BEAMFrame identifies the BEAM interpreter frames. BEAMFrame FrameType = support.FrameMarkerBEAM + // LuaJITFrame identifies the LuaJIT interpreter frames. + LuaJITFrame FrameType = support.FrameMarkerLuaJIT ) const ( diff --git a/libpf/frametype_test.go b/libpf/frametype_test.go index 730e56aa6..ef27447b1 100644 --- a/libpf/frametype_test.go +++ b/libpf/frametype_test.go @@ -13,7 +13,7 @@ func TestFrameTypeFromString(t *testing.T) { // Simple check whether all FrameType values can be converted to string and back. for _, ft := range []FrameType{ UnknownFrame, PHPFrame, PythonFrame, NativeFrame, KernelFrame, HotSpotFrame, RubyFrame, - PerlFrame, V8Frame, DotnetFrame} { + PerlFrame, V8Frame, DotnetFrame, LuaJITFrame} { t.Run(ft.String(), func(t *testing.T) { name := ft.String() result := FrameTypeFromString(name) diff --git a/libpf/interpretertype.go b/libpf/interpretertype.go index ff581e117..7ee09a75f 100644 --- a/libpf/interpretertype.go +++ b/libpf/interpretertype.go @@ -31,6 +31,8 @@ const ( V8 InterpreterType = support.FrameMarkerV8 // Dotnet identifies the Dotnet interpreter. Dotnet InterpreterType = support.FrameMarkerDotnet + // LuaJIT identifies the LuaJIT interpreter. + LuaJIT InterpreterType = support.FrameMarkerLuaJIT // Go identifies Go code. Go InterpreterType = support.FrameMarkerGo // BEAM identifies the BEAM interpreter. @@ -73,6 +75,7 @@ var interpreterTypeToString = map[InterpreterType]string{ Dotnet: "dotnet", BEAM: "beam", APMInt: "apm-integration", + LuaJIT: "luajit", Go: "go", GoLabels: "go-labels", } diff --git a/libpf/trace.go b/libpf/trace.go index 9e79e08db..a86980bbf 100644 --- a/libpf/trace.go +++ b/libpf/trace.go @@ -156,6 +156,10 @@ func (f EbpfFrame) Data() uint64 { return uint64(f[0]) & 0xfffffffffffff } +func (f EbpfFrame) NumVariables() uint8 { + return f.Length() - 1 +} + func (f EbpfFrame) Variable(ndx int) uint64 { return f[ndx+1] } diff --git a/metrics/ids.go b/metrics/ids.go index 76ed4dabe..c59cd49f4 100644 --- a/metrics/ids.go +++ b/metrics/ids.go @@ -650,6 +650,12 @@ const ( // Number of failures to read TLS variables via the DTV IDUnwindErrBadDTVRead = 286 + // Number of attempted LuaJIT unwinds + IDUnwindLuaJITAttempts = 287 + + // Number of times we didn't find an entry for this process in the LuaJIT process info array + IDUnwindLuaJITErrNoProcInfo = 288 + // max number of ID values, keep this as *last entry* - IDMax = 287 + IDMax = 289 ) diff --git a/metrics/metrics.json b/metrics/metrics.json index 1021d7414..b5998f372 100644 --- a/metrics/metrics.json +++ b/metrics/metrics.json @@ -2096,5 +2096,19 @@ "name": "UnwindErrBadDTVRead", "field": "bpf.errors.bad_dtv_read", "id": 286 + }, + { + "description": "Number of attempted LuaJIT unwinds", + "type": "counter", + "name": "UnwindLuaJITAttempts", + "field": "bpf.luajit.attempts", + "id": 287 + }, + { + "description": "Number of times we didn't find an entry for this process in the LuaJIT process info array", + "type": "counter", + "name": "UnwindLuaJITErrNoProcInfo", + "field": "bpf.luajit.errors.no_proc_info", + "id": 288 } ] diff --git a/processmanager/ebpf/ebpf.go b/processmanager/ebpf/ebpf.go index 5bbfbfaab..eb24bc51c 100644 --- a/processmanager/ebpf/ebpf.go +++ b/processmanager/ebpf/ebpf.go @@ -52,6 +52,7 @@ type ebpfMapsImpl struct { BeamProcs *cebpf.Map `name:"beam_procs"` ApmIntProcs *cebpf.Map `name:"apm_int_procs"` GoLabelsProcs *cebpf.Map `name:"go_labels_procs"` + LuajitProcs *cebpf.Map `name:"luajit_procs"` // Stackdelta and process related eBPF maps ExeIDToStackDeltaMaps []*cebpf.Map @@ -127,6 +128,10 @@ func LoadMaps(ctx context.Context, includeTracers types.IncludedTracers, return impl, nil } +func (impl *ebpfMapsImpl) CoredumpTest() bool { + return false +} + // UpdateInterpreterOffsets adds the given moduleRanges to the eBPF map interpreterOffsets. func (impl *ebpfMapsImpl) UpdateInterpreterOffsets(ebpfProgIndex uint16, fileID host.FileID, offsetRanges []util.Range, @@ -168,6 +173,8 @@ func (impl *ebpfMapsImpl) getInterpreterTypeMap(typ libpf.InterpreterType) (*ceb return impl.ApmIntProcs, nil case libpf.GoLabels: return impl.GoLabelsProcs, nil + case libpf.LuaJIT: + return impl.LuajitProcs, nil default: return nil, fmt.Errorf("type %d is not (yet) supported", typ) } diff --git a/processmanager/execinfomanager/manager.go b/processmanager/execinfomanager/manager.go index cf6c5364d..0127c53da 100644 --- a/processmanager/execinfomanager/manager.go +++ b/processmanager/execinfomanager/manager.go @@ -20,6 +20,7 @@ import ( golang "go.opentelemetry.io/ebpf-profiler/interpreter/go" "go.opentelemetry.io/ebpf-profiler/interpreter/golabels" "go.opentelemetry.io/ebpf-profiler/interpreter/hotspot" + "go.opentelemetry.io/ebpf-profiler/interpreter/luajit" "go.opentelemetry.io/ebpf-profiler/interpreter/nodev8" "go.opentelemetry.io/ebpf-profiler/interpreter/perl" "go.opentelemetry.io/ebpf-profiler/interpreter/php" @@ -124,7 +125,9 @@ func NewExecutableInfoManager( if includeTracers.Has(types.BEAMTracer) { interpreterLoaders = append(interpreterLoaders, beam.Loader) } - + if includeTracers.Has(types.LuaJITTracer) { + interpreterLoaders = append(interpreterLoaders, luajit.Loader) + } interpreterLoaders = append(interpreterLoaders, apmint.Loader) if includeTracers.Has(types.Labels) { interpreterLoaders = append(interpreterLoaders, golabels.Loader) @@ -225,7 +228,7 @@ func (mgr *ExecutableInfoManager) AddOrIncRef(fileID host.FileID, } // Create the LoaderInfo for interpreter detection - loaderInfo := interpreter.NewLoaderInfo(fileID, elfRef) + loaderInfo := interpreter.NewLoaderInfo(fileID, elfRef, intervalData.Deltas) // Insert a corresponding record into our map. info = &entry{ diff --git a/support/ebpf/errors.h b/support/ebpf/errors.h index 0da717277..b798f5990 100644 --- a/support/ebpf/errors.h +++ b/support/ebpf/errors.h @@ -222,7 +222,22 @@ typedef enum ErrorCode { ERR_BEAM_MODULES_READ_FAILURE = 7005, // BEAM: Ran out of iterations searching for the current code header - ERR_BEAM_RANGE_SEARCH_EXHAUSTED = 7006 + ERR_BEAM_RANGE_SEARCH_EXHAUSTED = 7006, + + // LuaJIT: No entry for this process exists in the LuaJIT process info array + ERR_LUAJIT_NO_PROC_INFO = 7007, + + // LuaJIT: Unable to read the Lua context + ERR_LUAJIT_READ_LUA_CONTEXT = 7008, + + // LuaJIT: Unable to read the Lua frame + ERR_LUAJIT_FRAME_READ = 7009, + + // LuaJIT: context pointer validity check failed + ERR_LUAJIT_L_MISMATCH = 7010, + + // LuaJIT: PC exceeds 24 bits + ERR_LUAJIT_INVALID_PC = 7011 } ErrorCode; #endif // OPTI_ERRORS_H diff --git a/support/ebpf/extmaps.h b/support/ebpf/extmaps.h index 8b3676476..9e0472e53 100644 --- a/support/ebpf/extmaps.h +++ b/support/ebpf/extmaps.h @@ -48,6 +48,7 @@ extern struct ruby_procs_t ruby_procs; extern struct stack_delta_page_to_info_t stack_delta_page_to_info; extern struct unwind_info_array_t unwind_info_array; extern struct v8_procs_t v8_procs; +extern struct luajit_procs_t luajit_procs; #endif // TESTING_COREDUMP #endif // OPTI_EXTMAPS_H diff --git a/support/ebpf/frametypes.h b/support/ebpf/frametypes.h index aae841d98..3d7f90cfc 100644 --- a/support/ebpf/frametypes.h +++ b/support/ebpf/frametypes.h @@ -33,6 +33,8 @@ #define FRAME_MARKER_GO 0xB // Indicates a BEAM frame #define FRAME_MARKER_BEAM 0xC +// Indicates a LuaJIT frame +#define FRAME_MARKER_LUAJIT 0xD // Frame flags // Indicates that this frame is an error frame. diff --git a/support/ebpf/luajit.h b/support/ebpf/luajit.h new file mode 100644 index 000000000..366b05183 --- /dev/null +++ b/support/ebpf/luajit.h @@ -0,0 +1,11 @@ +// Assigned in HA to anonymous executable virtual memory ranges in the nginx process. +#define LUAJIT_JIT_FILE_ID 42 + +// Special value for FFI functions +#define LUAJIT_FFI_FUNC 0xff1 + +// A normal LuaJIT frame +#define LUAJIT_NORMAL_FRAME 0 + +// A fake "frame" that just reports the G pointer. +#define LUAJIT_G_REPORT 0xff2 diff --git a/support/ebpf/luajit_tracer.ebpf.c b/support/ebpf/luajit_tracer.ebpf.c new file mode 100644 index 000000000..690b5ff1a --- /dev/null +++ b/support/ebpf/luajit_tracer.ebpf.c @@ -0,0 +1,632 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +// This file contains the code and map definitions for the Luajit tracer + +#include "bpfdefs.h" +#include "errors.h" +#include "luajit.h" +#include "tracemgmt.h" +#include "types.h" + +struct luajit_procs_t { + __uint(type, BPF_MAP_TYPE_HASH); + __type(key, pid_t); + __type(value, LuaJITProcInfo); + __uint(max_entries, 1024); +} luajit_procs SEC(".maps"); + +// The number of LuaJIT frames to unwind per frame-unwinding eBPF program. +#define FRAMES_PER_WALK_LUAJIT_STACK 15 + +#if defined(__x86_64__) + #define DISPATCH r14 +#elif defined(__aarch64__) + #define DISPATCH r7 +#endif + +// Non error checking bpf read, used sparingly for reading sections of the stack after +// we've established we can read neighboring memory. +#define deref(o) \ + ({ \ + void *__val; \ + bpf_probe_read_user(&__val, sizeof(void *), o); \ + __val; \ + }) + +#define L_PART_OFFSET 0x10 +#define CFRAME_SIZE_JIT 0x60 +// (gdb) p/x sizeof(GCproto) +// $4 = 0x68 +#define GCPROTO_SIZE 0x68 + +// This is L offset into interpreter stack frames. +#define L_STACK_OFFSET 0x10 + +///////// BEGIN code copied from luajit2 sources. + +#define LJ_FR2 1 +#define LJ_GCVMASK (((u64)1 << 47) - 1) +enum { + FRAME_LUA, + FRAME_C, + FRAME_CONT, + FRAME_VARG, + FRAME_LUAP, + FRAME_CP, + FRAME_PCALL, + FRAME_PCALLH +}; +#define FRAME_TYPE 3 +#define FRAME_P 4 +#define FRAME_TYPEP (FRAME_TYPE | FRAME_P) + +enum { LJ_CONT_TAILCALL, LJ_CONT_FFI_CALLBACK }; /* Special continuations. */ + +// Use luajit2 style macros in case we come back and want to implement +// support for luajit's compressed 32 bit pointer/value scheme, idea +// being we'd implement all the macros for both systems and build +// two unwinders. Also the macros should make the code look familiar to +// those familiar w/ luajit. +#define bc_a(i) ((u32)(((i) >> 8) & 0xff)) +#define gcval(o) ((void *)((u64)(deref(o)) & LJ_GCVMASK)) +#define frame_gc(f) (gcval((f)-1)) +#define obj2gco(v) ((void *)(v)) +#define frame_type(f) (f & FRAME_TYPE) +#define frame_typep(f) (f & FRAME_TYPEP) +#define frame_islua(f) (frame_type(f) == FRAME_LUA) +#define frame_isvarg(f) (frame_typep(f) == FRAME_VARG) +#define frame_isc(f) (frame_type(f) == FRAME_C) +#define frame_sized(fval) (((s32)fval) & ~FRAME_TYPEP) +#define frame_prevd(f, fval) ((TValue *)((char *)(f)-frame_sized(fval))) +#define frame_func(f) (frame_gc(f)) +#define frame_pc(f) (const u32 *)(f) +#define frame_iscont(f) (frame_typep(f) == FRAME_CONT) +#define frame_contv(f) ((u64)(deref((f)-3))) +#define frame_iscont_fficb(f) (frame_contv(f) == LJ_CONT_FFI_CALLBACK) + +#define restorestack(L, n) ((TValue *)((char *)L.stack + (n))) + +#if defined(__x86_64__) + #define CFRAME_OFS_PREV (4 * 8) + #define CFRAME_OFS_PC (3 * 8) + #define CFRAME_OFS_NRES (2 * 4) + #define CFRAME_OFS_L (2 * 8) +#elif defined(__aarch64__) + #define CFRAME_OFS_PREV 0 + #define CFRAME_OFS_NRES 40 + #define CFRAME_OFS_L 16 + #define CFRAME_OFS_PC 8 +#endif + +#define CFRAME_RESUME 1 +#define CFRAME_UNWIND_FF 2 /* Only used in unwinder. */ +#define CFRAME_RAWMASK (~(s64)(CFRAME_RESUME | CFRAME_UNWIND_FF)) +#define cframe_nres_addr(cf) (s32 *)(((char *)(cf)) + CFRAME_OFS_NRES) +#define cframe_raw(cf) ((void *)((s64)(cf) & CFRAME_RAWMASK)) +#define cframe_pc_addr(cf) (void *)(((char *)(cf)) + CFRAME_OFS_PC) +#define cframe_L_addr(cf) (void *)(((char *)(cf)) + CFRAME_OFS_L) +#define cframe_prev(cf) deref((void **)(((char *)(cf)) + CFRAME_OFS_PREV)) + +/* Invalid bytecode position. */ +#define NO_BCPOS (~(u32)0) +#define FF_LUA 0 + +///////// END code copied from luajit2 sources. + +static inline __attribute__((__always_inline__)) TValue *frame_prevl(TValue *f, TValue frame_val) +{ + // This is the EBPF version of the frame_prevl macro. + // #define frame_prevl(f) ((f) - (1+LJ_FR2+bc_a(frame_pc(f)[-1]))) + int delta = 1 + LJ_FR2; + u32 prevIns; + bpf_probe_read_user(&prevIns, sizeof(u32), (u32 *)(frame_val)-1); + delta += bc_a(prevIns); + return f - delta; +} + +// lj_debug_framepc for a function. There's no easy way to look at this, basically +// there's a bunch of places the return address is stored depending on the frame +// type. +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_debug.c#L53 +static inline __attribute__((__always_inline__)) ErrorCode +lj_debug_framepc(PerCPURecord *record, void *fn, u32 *startpc, TValue *prevframe, u32 *pc) +{ + LJFuncPart *func = &record->luajitUnwindScratch.f; + if (bpf_probe_read_user(func, sizeof(LJFuncPart), (void **)fn + 1)) { + return ERR_LUAJIT_FRAME_READ; + } + if (func->ffid != FF_LUA) { /* Cannot derive a PC for non-Lua functions. */ + DEBUG_PRINT("lj: non-lua function %lx", (unsigned long)func->ffid); + *pc = NO_BCPOS; + return ERR_OK; + } + const u32 *ins = NULL; + if (prevframe == NULL) { /* Lua function on top. */ + void *cf = cframe_raw(record->luajitUnwindScratch.L.cframe); + if (cf == NULL) { + DEBUG_PRINT("lj: cframe null"); + *pc = NO_BCPOS; + return ERR_OK; + } + void *pc_addr = cframe_pc_addr(cf); + void *L_addr = cframe_L_addr(cf); + void *L_ptr; + if (bpf_probe_read_user(&ins, sizeof(void *), pc_addr)) { + DEBUG_PRINT("lj: pc_addr read failed"); + return ERR_LUAJIT_FRAME_READ; + } + if (bpf_probe_read_user(&L_ptr, sizeof(void *), L_addr)) { + DEBUG_PRINT("lj: L_addr read failed"); + return ERR_LUAJIT_FRAME_READ; + } + if (ins == (void *)record->luajitUnwindState.L_ptr || ins == NULL) { + DEBUG_PRINT("lj: ins == L or NULL"); + *pc = NO_BCPOS; + return ERR_OK; + } + } else { + TValue frame_val; + if (bpf_probe_read_user(&frame_val, sizeof(void *), prevframe)) { + DEBUG_PRINT("lj: frame_val 1 read failed"); + return ERR_LUAJIT_FRAME_READ; + } + if (frame_islua(frame_val)) { + ins = frame_pc(frame_val); + } else if (frame_iscont(frame_val)) { + // ins = frame_contpc(nextframe); + if (bpf_probe_read_user(&frame_val, sizeof(void *), prevframe - 2)) { + DEBUG_PRINT("lj: frame_val 3 read failed"); + return ERR_LUAJIT_FRAME_READ; + } + ins = frame_pc(frame_val); + } else { + /* Lua function below errfunc/gc/hook: find cframe to get the PC. */ + DEBUG_PRINT("lj: lua function below errfunc/gc/hook"); + // This code is commented out because we haven't figured out how to test it. + // void *cf = cframe_raw(record->luajitUnwindScratch.L.cframe); + // TValue *f = record->luajitUnwindScratch.L.base-1; + // #define CFRAME_SEARCH_LOOPS 5 + // #define CFRAME_SEARCH_LOOPS2 5 + + // #pragma unroll + // for (int i = 0; i < CFRAME_SEARCH_LOOPS; i++) { + // if (cf == NULL) { + // *pc = NO_BCPOS; + // return ERR_OK; + // } + // #pragma unroll + // for (int j = 0; j < CFRAME_SEARCH_LOOPS2; j++) { + // s32 *nresp = cframe_nres_addr(cf); + // s32 nres; + // bpf_probe_read_user(&nres, sizeof(s32), nresp); + // if (f >= restorestack(record->luajitUnwindScratch.L, -nres)) + // break; + // cf = cframe_raw(cframe_prev(cf)); + // if (cf == NULL) { + // *pc = NO_BCPOS; + // return ERR_OK; + // } + // } + // if (f < prevframe) + // break; + // if (bpf_probe_read_user(&frame_val, sizeof(void*), prevframe)) { + // DEBUG_PRINT("lj: frame_val 4 read failed"); + // return ERR_LUAJIT_FRAME_READ; + // } + // if (frame_islua(frame_val)) { + // f = frame_prevl(f, frame_val); + // } else { + // if (frame_isc(frame_val) || (frame_iscont(frame_val) && frame_iscont_fficb(f))) + // cf = cframe_raw(cframe_prev(cf)); + // f = frame_prevd(f,frame_val); + // } + // } + // const u32 **insp = cframe_pc_addr(cf); + // if (bpf_probe_read_user(&ins, sizeof(void*), insp)) { + // DEBUG_PRINT("lj: ins read failed"); + // return ERR_LUAJIT_FRAME_READ; + // } + if (!ins) { + *pc = NO_BCPOS; + return ERR_OK; + } + } + } + // startpc can be for a different function if we land on instructions where things aren't synced. + // For instance the PC is up to date on the stack but jit_base wasn't updated yet. + if (ins < startpc) { + *pc = NO_BCPOS; + return ERR_OK; + } + *pc = ins - startpc - 1; + return ERR_OK; +} + +// For Lua we need the caller and callee to process a frame. +// The callee_pt is a pointer to the GCproto of the function being called, the +// callee_pc is an index into its bytecode. The caller_pt is the +// GCproto of the calling function and the caller_pc is the index into its +// bytecode which we will walk backwards in userland to figure out a name for the +// callee. The callee_pc is for information purposes only, so the user can see where +// execution was. +static inline __attribute__((__always_inline__)) ErrorCode lj_push_frame( + UnwindState *state, Trace *trace, u64 callee_pt, u64 caller_pt, u32 callee_pc, u32 caller_pc) +{ + u64 *data = + push_frame(state, trace, FRAME_MARKER_LUAJIT, FRAME_FLAG_PID_SPECIFIC, LUAJIT_NORMAL_FRAME, 3); + if (!data) + return ERR_STACK_LENGTH_EXCEEDED; + data[0] = callee_pt; + data[1] = caller_pt; + data[2] = ((u64)callee_pc << 32) | caller_pc; + return ERR_OK; +} + +static inline __attribute__((__always_inline__)) ErrorCode +lj_record_frame(PerCPURecord *record, TValue *frame, TValue frame_value, TValue *prevframe) +{ + LJScratchSpace *scr = &record->luajitUnwindScratch; + if (frame_isvarg(frame_value)) { + DEBUG_PRINT("lj: vararg frame"); + return ERR_OK; /* Skip vararg frames. */ + } + if (frame_gc(frame) == obj2gco(record->luajitUnwindState.L_ptr)) { + DEBUG_PRINT("lj: skip dummy frame"); + return ERR_OK; /* Skip dummy frames. See lj_err_optype_call(). */ + } + void *fn = frame_func(frame); + LJFuncPart *f = &scr->f; + // +1 to skip the 8 byte GCHeader + if (bpf_probe_read_user(f, sizeof(LJFuncPart), (void **)fn + 1)) { + return ERR_LUAJIT_FRAME_READ; + } + + if (f->ffid != FF_LUA) { + DEBUG_PRINT("lj: lj_record_frame: ffi function %lx", (unsigned long)f->ffid); + // We can't derive a name for this function, so we'll just emit a pseudo frame. + // XXX[btv] where does this get read? + u64 *data = push_frame( + &record->state, + &record->trace, + FRAME_MARKER_LUAJIT, + FRAME_FLAG_PID_SPECIFIC, + LUAJIT_FFI_FUNC, + 1); + if (!data) + return ERR_STACK_LENGTH_EXCEEDED; + data[0] = frame_value; + } + + u32 *start_ip = (u32 *)f->pc; + // The bytecode is allocated after the GCproto. + void *proto = (char *)f->pc - GCPROTO_SIZE; + + u32 pc; + ErrorCode err = lj_debug_framepc(record, fn, start_ip, prevframe, &pc); + if (err) { + DEBUG_PRINT("lj: lj_debug_framepc err %u", err); + return err; + } + if (pc == NO_BCPOS) { + DEBUG_PRINT("lj: no bcpos"); + pc = 0xffffff; + } + // Top frame, we can't emit anything yet because we don't know the caller PC but stash callee_pc + // for next time. + if (record->luajitUnwindState.prevframe == NULL) { + goto exit; + } + + DEBUG_PRINT("lj: record frame callee %lx:%u", (unsigned long)scr->prev_proto, scr->prev_pc); + DEBUG_PRINT("lj: record frame caller %lx:%u", (unsigned long)proto, pc); + err = lj_push_frame( + &record->state, &record->trace, (u64)scr->prev_proto, (u64)proto, scr->prev_pc, pc); +exit: + scr->prev_proto = proto; + scr->prev_pc = pc; + return err; +} + +// See: +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_frame.h#L33 +static inline __attribute__((__always_inline__)) ErrorCode +lj_prev_frame(PerCPURecord *record, TValue frame_val) +{ + TValue *frame = record->luajitUnwindState.frame; + if (frame_islua(frame_val)) { + frame = frame_prevl(frame, frame_val); + } else { + frame = frame_prevd(frame, frame_val); + } + if (bpf_probe_read_user(&frame_val, sizeof(TValue), frame)) { + return ERR_LUAJIT_FRAME_READ; + } + if (frame_isvarg(frame_val)) { + frame = frame_prevd(frame, frame_val); + } + record->luajitUnwindState.frame = frame; + return ERR_OK; +} + +static inline __attribute__((__always_inline__)) ErrorCode +unwind_jit_frame(const LuaJITProcInfo *info, UnwindState *state) +{ + // Interpreter frames unwind naturally, we need to poke sp/pc for JIT frames + // so we need to call this for the native unwinder to continue over them. + // https://github.com/openresty/luajit2/blob/7952882d/src/lj_frame.h#L178 + u32 spadjust = (u32)state->text_section_id; + if (spadjust == 0) { + // Guess the default. + spadjust = info->cframe_size_jit; + } + state->sp += spadjust; + u64 frame[2]; + if (bpf_probe_read_user(frame, sizeof(frame), (void *)(state->sp - sizeof(frame)))) { + DEBUG_PRINT("lj: failed to read frame"); + increment_metric(metricID_UnwindLuaJITErrNoContext); + return ERR_LUAJIT_READ_LUA_CONTEXT; + } + + state->fp = frame[0]; + u64 pc = state->pc; + (void)pc; // appease non-debug builds + state->pc = frame[1]; + state->return_address = true; + DEBUG_PRINT( + "lj: unwound JIT frame old pc:(%lx) to new pc:%lx, sp:%lx", + (unsigned long)pc, + (unsigned long)state->pc, + (unsigned long)state->sp); + + return ERR_OK; +} + +// walk_luajit_stack walks the luajit stack by inspecting the frame values +// and finding ones that indicate a function call frame. Code inspired by +// lj_debug_frame. +// https://github.com/openresty/luajit2/blob/7952882d/src/lj_debug.c#L25 +static inline __attribute__((__always_inline__)) ErrorCode +walk_luajit_stack(PerCPURecord *record, const LuaJITProcInfo *info, int *next_unwinder) +{ + bool exitToNative = false; + ErrorCode err; + LJState *L = &record->luajitUnwindScratch.L; + TValue *prevframe = record->luajitUnwindState.prevframe; + TValue *bot = L->stack + 1; + + for (int i = 0; i < FRAMES_PER_WALK_LUAJIT_STACK; i++) { + TValue *frame = (TValue *)(record->luajitUnwindState.frame); + if (frame <= bot) { + // Need to clear 'frame' if we have more than one LuaJIT call on the stack, + // ie two different instances of LuaJIT, not sure if this happens in practice. + // While conceptually this makes sense its kind of an edge case and + // if we clear it we run into a situation where if we clear it and + // encounter another luajit interpreter frame we'll walk the same stack + // twice. This occurs in currently unsupported unhandled FFI callback use + // cases where we need to jump back to the native unwinder, the code below + // that does this is probably correct but its untested because we don't + // properly unwind LuaJIT FFI frames (which is a different kind of JIT). + // When that's fixed we can uncomment this and be more correct. + // record->luajitUnwindState.frame = NULL; + + // We have processed all frames, send final frame which will just have + // a callee proto/pc and no caller proto/pc. This is fine, we'll make one + // up, e.g. "main". + LJScratchSpace *scr = &record->luajitUnwindScratch; + if ((err = lj_push_frame( + &record->state, &record->trace, (u64)scr->prev_proto, (u64)0, scr->prev_pc, 0))) { + return err; + } + if (record->luajitUnwindState.is_jit) { + unwind_jit_frame(info, &record->state); + + if ((err = resolve_unwind_mapping(record, next_unwinder)) != ERR_OK) { + DEBUG_PRINT("lj: failed to walk over jit frame"); + *next_unwinder = PROG_UNWIND_STOP; + return err; + } + } + DEBUG_PRINT("lj: end lua frame"); + return ERR_OK; + } + TValue frame_val; + if (bpf_probe_read_user(&frame_val, sizeof(TValue), frame)) { + return ERR_LUAJIT_FRAME_READ; + } + // If we have a frame with its own C stack frame we need to exit to native unwinder if + // there's a parent cframe. + if (frame_typep(frame_val) == FRAME_CP) { + void *cf = record->luajitUnwindState.cframe; + if (cf == NULL) { + cf = record->luajitUnwindState.cframe = record->luajitUnwindScratch.L.cframe; + } + if (cf != NULL) { + void *prev = cframe_prev(cframe_raw(cf)); + if (prev != NULL) { + DEBUG_PRINT( + "lj: walk_lua_stack: cframe encountered, leaving unwinder, %lx prev: %lx", + (unsigned long)cf, + (unsigned long)prev); + record->luajitUnwindState.cframe = prev; + *next_unwinder = PROG_UNWIND_NATIVE; + return ERR_OK; + } + // If there's no prev we're at the root cframe and finish normally. + } + } + if ((err = lj_record_frame(record, frame, frame_val, prevframe))) { + DEBUG_PRINT("lj: walk_lua_stack: lj_record_frame=%d", err); + return err; + } + if ((frame_iscont(frame_val) && frame_iscont_fficb(frame))) { + // If we have a callback from C into Lua switch to native unwinder. + // TODO: should we do the same for cpcall frames? + DEBUG_PRINT("lj: walk_lua_stack: continuation callback frame %lx", (unsigned long)frame_val); + // We want to record next Lua frame then exit to native. + exitToNative = true; + } + record->luajitUnwindState.prevframe = prevframe = frame; + if ((err = lj_prev_frame(record, frame_val))) { + return err; + } + if (exitToNative) { + // Let the native walker kick in now when we called into lua from C. + *next_unwinder = PROG_UNWIND_NATIVE; + return ERR_OK; + } + } + + // We exhausted loops, come back for more! + *next_unwinder = PROG_UNWIND_LUAJIT; + + return ERR_OK; +} + +static inline __attribute__((__always_inline__)) ErrorCode +find_context(struct pt_regs *ctx, PerCPURecord *record, const LuaJITProcInfo *info) +{ + bool reportG = false; + void *G_ptr = NULL; + void *L_ptr; + UnwindState *state = &record->state; + u32 high = (u32)(state->text_section_id >> 32); + + // The initial state is for the entire anonymous/executable memory range to be mapped to + // our unwinder with a token file ID. Then we fire a pid event which will call SynchronizeMappings + // in the HA which will overlay the big anonymous/executable memory range with the actual mappings + // for each trace with a stack adjustment stored in the low bits. + if (high == LUAJIT_JIT_FILE_ID) { + record->luajitUnwindState.is_jit = true; + + // Once the HA fills in text_section_bias with G we'll stop sending these report_pids. + if (state->text_section_bias == 0) { + DEBUG_PRINT("lj: unwinding unmapped JIT frame"); + report_pid(ctx, record->trace.pid, RATELIMIT_ACTION_DEFAULT); + + // If top frame isn't luajit we can't rely on the register still holding the DISPATCH table, + // but once we propagate G to the HA text_section_bias will be set to the G pointer and we can + // pull cur_L from that. So this is just a bootstrap crutch that just has to work once (or + // never because G also gets picked up from interpreter hits). + G_ptr = (char *)state->DISPATCH - info->g2dispatch; + reportG = true; + } else { + G_ptr = (void *)state->text_section_bias; + DEBUG_PRINT("lj: unwinding trace mapped JIT frame %lx", (unsigned long)G_ptr); + } + if (bpf_probe_read_user(&L_ptr, sizeof(void *), (void *)(G_ptr + info->cur_L_offset))) { + DEBUG_PRINT( + "lj: failed to read G->cur_L %lx", (unsigned long)((void *)(G_ptr + info->cur_L_offset))); + increment_metric(metricID_UnwindLuaJITErrNoContext); + return ERR_LUAJIT_READ_LUA_CONTEXT; + } + } else { + // Interpreter, L is always [rsp+0x10]. + if (bpf_probe_read_user(&L_ptr, sizeof(void *), (void *)(state->sp + L_STACK_OFFSET))) { + DEBUG_PRINT("lj: failed to read stack"); + increment_metric(metricID_UnwindLuaJITErrNoContext); + return ERR_LUAJIT_READ_LUA_CONTEXT; + } + reportG = true; + } + + LJScratchSpace *scr = &record->luajitUnwindScratch; + if (bpf_probe_read_user(&scr->L, sizeof(LJState), (char *)L_ptr + L_PART_OFFSET)) { + DEBUG_PRINT("lj: bad L: failed to read L from: %lx", (unsigned long)L_ptr); + increment_metric(metricID_UnwindLuaJITErrNoContext); + return ERR_LUAJIT_READ_LUA_CONTEXT; + } + + // If we came through interpreter we won't have G yet. + if (G_ptr == NULL) { + G_ptr = (void *)scr->L.glref; + } + + if (bpf_probe_read_user( + &scr->G, sizeof(LJGlobalPart), (void *)((char *)G_ptr + info->cur_L_offset))) { + DEBUG_PRINT( + "lj: bad G picked up from L: failed to read G->cur_L: %lx, %lx", + (unsigned long)G_ptr, + (unsigned long)info->cur_L_offset); + increment_metric(metricID_UnwindLuaJITErrNoContext); + return ERR_LUAJIT_READ_LUA_CONTEXT; + } + + if (L_ptr != scr->G.cur_L) { + DEBUG_PRINT( + "lj: L context check failed: %lx != %lx", (unsigned long)L_ptr, (unsigned long)scr->G.cur_L); + increment_metric(metricID_UnwindLuaJITErrLMismatch); + return ERR_LUAJIT_L_MISMATCH; + } + + DEBUG_PRINT("lj: L context: %lx", (unsigned long)L_ptr); + record->luajitUnwindState.L_ptr = L_ptr; + + // If we have valid context let's report it if we haven't mapped its traces yet. + if (reportG) { + u64 *data = push_frame( + &record->state, + &record->trace, + FRAME_MARKER_LUAJIT, + FRAME_FLAG_PID_SPECIFIC, + LUAJIT_G_REPORT, + 1); + if (!data) + return ERR_STACK_LENGTH_EXCEEDED; + data[0] = (u64)G_ptr; + } + + // The JIT doesn't update base as it goes but it does update G.jit_base. + if (high == LUAJIT_JIT_FILE_ID) { + record->luajitUnwindState.frame = scr->G.jit_base - 1; + } else { + record->luajitUnwindState.frame = scr->L.base - 1; + } + + return ERR_OK; +} + +static inline __attribute__((__always_inline__)) int unwind_luajit(struct pt_regs *ctx) +{ + PerCPURecord *record = get_per_cpu_record(); + if (!record) + return -1; + + UnwindState *state = &record->state; + int unwinder = get_next_unwinder_after_interpreter(); + ErrorCode error = ERR_OK; + u32 pid = record->trace.pid; + LuaJITProcInfo *info = bpf_map_lookup_elem(&luajit_procs, &pid); + + if (!info) { + DEBUG_PRINT("lj: no LuaJIT introspection data"); + error = ERR_LUAJIT_NO_PROC_INFO; + increment_metric(metricID_UnwindLuaJITErrNoProcInfo); + goto exit; + } + increment_metric(metricID_UnwindLuaJITAttempts); + + if (record->luajitUnwindState.frame == 0) { + if ((error = find_context(ctx, record, info))) { + goto exit; + } + } + + if ((error = walk_luajit_stack(record, info, &unwinder))) { + goto exit; + } + +exit: + state->unwind_error = error; + tail_call(ctx, unwinder); + return -1; +} +MULTI_USE_FUNC(unwind_luajit) diff --git a/support/ebpf/native_stack_trace.ebpf.c b/support/ebpf/native_stack_trace.ebpf.c index dde9ec8af..17e549799 100644 --- a/support/ebpf/native_stack_trace.ebpf.c +++ b/support/ebpf/native_stack_trace.ebpf.c @@ -457,6 +457,7 @@ static EBPF_INLINE ErrorCode unwind_one_frame(PerCPURecord *record, bool *stop) state->fp = rt_regs[29]; state->lr = normalize_pac_ptr(rt_regs[30]); state->r20 = rt_regs[20]; + state->r7 = rt_regs[7]; state->r22 = rt_regs[22]; state->r28 = rt_regs[28]; diff --git a/support/ebpf/tracemgmt.h b/support/ebpf/tracemgmt.h index a9645622e..6f8dad80f 100644 --- a/support/ebpf/tracemgmt.h +++ b/support/ebpf/tracemgmt.h @@ -238,6 +238,11 @@ static inline EBPF_INLINE PerCPURecord *get_pristine_per_cpu_record() record->rubyUnwindState.stack_ptr = 0; record->rubyUnwindState.last_stack_frame = 0; record->rubyUnwindState.cfunc_saved_frame = 0; + record->luajitUnwindState.frame = 0; + record->luajitUnwindState.prevframe = 0; + record->luajitUnwindState.L_ptr = 0; + record->luajitUnwindState.cframe = 0; + record->luajitUnwindState.is_jit = false; record->unwindersDone = 0; record->tailCalls = 0; record->ratelimitAction = RATELIMIT_ACTION_DEFAULT; @@ -613,6 +618,7 @@ copy_state_regs(UnwindState *state, struct pt_regs *regs, bool interrupted_kerne state->r9 = regs->r9; state->r11 = regs->r11; state->r13 = regs->r13; + state->r14 = regs->r14; state->r15 = regs->r15; // Treat syscalls as return addresses, but not IRQ handling, page faults, etc.. @@ -630,6 +636,7 @@ copy_state_regs(UnwindState *state, struct pt_regs *regs, bool interrupted_kerne state->fp = regs->regs[29]; state->lr = normalize_pac_ptr(regs->regs[30]); state->r20 = regs->regs[20]; + state->r7 = regs->regs[7]; state->r22 = regs->regs[22]; state->r28 = regs->regs[28]; diff --git a/support/ebpf/tracer.ebpf.amd64 b/support/ebpf/tracer.ebpf.amd64 index 668d35c0f39ec020a26731526f3bcef8da6f54c7..d3750db712683645b141b590329fb085bb2fc8ce 100644 GIT binary patch literal 904600 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

I{)m}l;!?$f<;&%$ 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 z

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

pcenQ|~zvTkkm$yL{_8UH@&_U4QF4 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 KWnKTOTK_*YTiMwF diff --git a/support/ebpf/tracer.ebpf.arm64 b/support/ebpf/tracer.ebpf.arm64 index de6cda7a6a6d1054aaecbb5259cd16e7920434cf..cc787d6a1abe76b27bff1a2a8a47580fec6aa0b9 100644 GIT binary patch literal 895760 zcmeFa4VYZTc_w;VQcK|25kGDuPfT$ewLb6UmHr{=dC)q?d*SV`W z_J&=9x$paZRj2Bl>C-cVu|4vh^GI|0)TvWd-*0{ORn=Fwz59muEGrZOdliCz3*3`U z4T5_=_Nw^dD*1I)@B!rPoTtf8n2#!bqc1Y0b4b%yEenFt7himFZK}`@;x&^xt2E!h zs#nX8biVT0`o2{756k(B^-NC;2bI44QV;W2EAtUkrXh>Mu{>0avB(({tebbT2s1 z(C@O~YwzAE z^%J|8UQgrYns;B#^!IIV0RG;1X+Ct1!kNNPG1$){f>J>lz|z0j_Yuj@=PkG@UOU50 zGyVK#e0(PK+Zpx`Z)AEnS=sETrEd8R^i6N%dnx7LqbyDpm zJz2S>XLQF|%pUmp9yN4dVe(DlUJA}_)%$lr3JG4}G*N{fLj(qil2>od^iN0S;VezhVSszM;b@GFJ z0ki-wN2Gi{hyCN@mA;4NnRp#+lqZ;Zq}l{OJQ$~M49gX!w}7a&hu4W=Vw&>YpTKK% zuu^CGaCNZe<8`z;D6OiXARn)62lLNt3|rmt+CY0$Uqp8(+&=$Uz41n`jyJ!nwSOzUIBz_htE>?FO2s zD_;Ac4^;jqHiMsC`-Z2-MP8a9Y`d>p`}RP8Y5StXhAu}`9=f%Yl5E>)^ZWT`3_PR@ z^Qru=#V?hApAOmb{}%#3-#1&K^gkd6__Yf?cGVg_yo;lU(%o;rrN?@-*TPv0{y^Fj z9ag-Ipci9DwgZ1o0p4g<@wQsY6?7gUwCD%HcX#7`r>xJ^7fHOlMqZ@(GaE0zCG8Nt z#g{(c4v){nw|i=kYsVLh!BaQ+M)bAv zAKQ&b(ZAtk;U>S`)n>Cwc$(<={dSMnhFNt`9v%k&ca!VAvEGRe&q%$|5$zv*{9As% z2xVC~I>tVu9Y>3x-FH>oZr0iE+n~>)Me%&=b@E&cep}$*a^WlGO|9{i+>b6>5xnq2 zD*sHVjEq)TPW0F&^W6^lu5%$%AvfR?<{P_0zqj@X)0uJX3bjwzk0L4PK!@{MZN8ss zOjh`8?V0wu&q_OpXRw>p`QnSKgF$7dfaUxc@^5<`zY2mR|Aoi5nSAZ7&qz5_2SR2G z1`5W`gndc5E{c__aQ+nfn^j0>eVzLxdoY6fL;T!l?xn&%;uqT4JVV+`_}C-1uh8dc z*5DnrGM)6HK8^OOoo4k4v4>C5o>NK}JaafQwnp(#3|8YU>p3;VdpG*~dTAhdv%ncm zX@2qn-?!JCl<%Y2$EBY38hsxB37$3Mk%5)kFO&+elKPl$YiR7! zO_zYro|Sr-UK^j5exMp|*xvT~>xq3ev2!qP0l&NcVR%~gVXGca`*IV)-X#uTK8C*B z+}NrUwZUYK{l3E24Nsep$I3}D_#bE)`)P%P?d%^8#jd7#?YDn(xJ&!7Jyq2EObi#A zQ)3yhzaYo1{jEfPr?>0ld#lVJPE?@}oZQFu{7+P&-?aT!Zsvo-@>7aVg=6PAxLBvX zEd5G_uL}I6JFlh(R|v(#v<4KI4_7%HllC_zs^bZ|^c($$0hkZh_O0PwmQx;|M*p8p zm-Wcg5h?QN^R%?Af90A0;+~Rg$A_iDAEn@Mc2)!Ykg&60*s?vf5srHuUBbO(v3tRG z2|KH~N7KhKFzeNR+EsJg|2xtyJ6@*!uoL+zm!1^<>4-E2!B>%f71G<6o|1G@C1k$7 zuW7zRc)&$J!b#|(6rF{iSXg+Qau-(H}80$=2>WA@wkQVkF$f^m-$N zoI3e!M4|W#%9E2AM>zfm+Ct{vQ>7j1_TPU^6&}0z?T@7UE<>t!~YFTr~dHqiFCnR69X|HpSwU1=7&6iKRtZb z>Y_hG*b~0o-Bg{C@pRa%_T<|)p-hX<^mr{BUSs!yU&usbeP0zE6Mi%s<5CJ9%MlGdZ)HHOSWr>gPUMDR?vfqC7s}x~vRF#1$2kKev>X(V_x- zWxl^m?vd$-j+N<^=*4fwjyC1{Gwt!Buw_LN)T1CMX2jX|c@K_DNWwTYJM z_sK@AuWQRgX6G^XQw;{wL&OA%8gSa{BfI+vmHPOn?A5ihP*+?d~fBa z()YaZlaKf3d+5DVpz>$&O**suwxTzv)j~W0|DU{0`P9@`I`e%2%v#v9<09uzD0za) zJx2c=lFvl%l5f)TKzLb?_1{L1?3D6LtNu_voSOQEz}JNRt>R2`;YO!=dH*zoBrF_P3TlxPR%Zz!I@_vE)|c7r^} zd}_vHBcMZw_xsG9`h@vQgtQnc{M0745_qgy&t+#@9R}S+I^?YvzBM|rKMB5Z@au_ zyC{O~-8akgKC}m*f%iAdhtVM|=h%gBmuLE0_`bbczmFc#?>Zln*FlG!FfLnOG^_d6 znfVu6{%Z4V`?Znf#-EY)^UP{_qyyz_u78Kz>ik|=d}{SdsnDg6 z?|A%OZNPqfCQirjRa%4LF2>(a$LZD%#qc%dM-MA3zdSykutS|6y%qbjy5Z?9_|~5X z0Lui_ZV*eU8$Saxogn^na+2lC${O`YQU4voIMM3EVz5HKCEtkNHT}Pz|JM`wzx{32 z!~C?1yOsZ$ME>XE{G>~_{GU$b|GMT!JAWGTkWI%=#O=oL33PP$FM}YcDwwR-68$p9 zVKt`1j{?2%WK1uIf98K&(!1e5InS%}m-)OlF{~Ui;oy&hmL} z)tfXK@_B8wd;R{5gOGe)+l{mGd2Q|gUH|N_Gf+FMTR*)XeB{QJ`MfsJk?`wXkibtq zuT49;807QX$f+S&6v;@R=-j(lDl(_{(%Y(B58 za+J?&=kwb6ymmgXO?#Vu!hBwvn9$43yQ@E+_~Etm=Cks7ZPF#5*S=213HiMCNx?%t zukF^)<@4Hh|75zs{#}-c0A`S#Px!_VaseN7&Ntdo(WB?gt*Ow=kct>$jLc-amka zd3L{OxBUZlzZRAs#PbL~+z<4CJKmoiY!J}W_;GNi_d|a!hEw-#KjogWU%TS1SKvNv z7S8?LcD(}YX)48A9$HzoHq=^{-9ayjG@Im}Az1re_N<-gSrs#Zu#lyvTw(}{Z z!_VM(@#`?(!D8d}zII)YU4P1QC$W{)uFoq5x2<4)rgN!JbImtpohYAw3eStLAB#+I zWvv7C_k%rKrCp=_x}SauKAv{p%|aJHUH6ZTD!ruD$am|EJQstjq~2^kI2F^G8Jm4y zh@W-+rkfA+)?;G*=97|-%LxFu-;DEA4R(FBHC;AQ*1t=d1k zJCME~{mww){9r%IkD7L$;;4QHej`7!9umJ4ybXVQ;jt9sk@=c^zZ2KbRqbPapN*ff zjILGj@D?^(g3rnrg{^>EWKJP zte5hrM|d^8^}elgL)V>)o_t2iWjWZ7C3>MeIf(xB={S9Gs4V-juq`sN9}AB}DdLTA zU!>DVarv^}!s(;o(8eJN6a958SG%}Ab@6g_HQHd;`A0{#OS{v0+Ul8ofRlXJG5aUD zF951V_N%Y>wyyujV<2?74SHDBIG&dWFY+0gaSQBzLGEMX^XfbJmG+M;FPgpiMLw@y z&%gQ|E3)!DAUixTZkYL6mG86Z$lX;AKE|uyJ}5_5x6d^S`)B-h!VLu8;J4UjkeH`( zblZh>;NL&Gy_ImKOZk8Cn&z5nEWh?lf@xuJcV-tTGGD>9D3 zbHwW`GT|a#h-dPDvLC(+Z+h|X*?cYb4DU^^-z{T*S)$*?0$S#&hK%#n1# z*-q`Ro)tYpzH7oEz?WM@4?DfR5&Duqf3*ur$mdt!eZ0zol-6mhkD{$sgJ zM?Vnn7iPWH!KU(Gqt%`NK)3n$&%(dXY~b+u%8s|LLEV=BEWPY^wqJDdND2~sj#m;LIU)Fdsc}n2pnr;}XSHxL?3=9`x5UDo+>eg< zCH>N@U|UJ=?He^d3F-gSNLoCfq5-(F`~bz^Cc#${Kj?>4OtH^!yS(qF$Ck!;{du8J zH~vYE*RK#b$}=ac#0TY&9SZjsQjcZBuXeVRKi9t^{z1RrzgFr9z=$hE2kXn1>tCDD zV@|(+uk9j^kZeC_`$sERPbixNodbk`acBDEz82|s0zdMAKhe|)!QViEyQhpD!}P<~ zNgnzKC|MCVOX2DmejX{B{?pw1i_3#|;Jxiv7{`JHDi!`s%3;64=e5wXs6MX$vNs7C z#qPrEpkw;~edvTjJlpp+eckJr3-zE~KaacLzi+_vmrz`Y`ZwR&W%`om`K7H%jfA6YKzoc;vXAUfVsh@rp&x`LL-i)uZ`v;D98lImz z8_sP1em?*o>w8M&8ttsLMnm7fkL{;oXJ8*a<|*9x@a3>Gy7dcb|32X>t^8-It-#rB zD+1bW#4BI;`$L(p7@ZFm|!peYJ+hGqZYa>|zt&44Ht^paY*1uhr&z z;xYG_uz+AsgM@&)8>9pJF`metd#ea|o2@w3=XI>kZo zU$l1NW$QmKa-7YloaIuwQW=kV@i*xQ_51U&+NAiE5iSaL?r~`+%SE_eYZt?B;q*I( zFM}+5vc-MVj*sJgfH1Iq{a%~cTV{U7{d+0;UHbE_Ea5xX1J<4{1%C_(v-N?KkAlcY zG58h1%gZSTlt;bJnr)w>_HPzFqeG)of5grl*T5NS5R?jAMV|RxGX9*SV>14nqhq}P zUEgan2?rSv_71HcGo~d;_*W8Gp{TKe5n4XM3=lDMvf6noLGX9*yb29#%!*g<-zQePfAD))@bJ=*l68M^n=g$jV(Mnp$ zcwd&A#PNW=D6sK1C;ptlzx5|)#-9T-vfgYtx+{O94*#&MGPa}J-$b@~pUNS8Pg z8h_5=)5iVK_;VgU6Y=L9K9h0Tvhm5Gqs3>3oir}1AG6_gaZYBCf6QA~06l>Ca}LgA z{5c0_GX9){GZ}xb3!D;vt~Z>$;?LQBAQ69V<>r74G$;OCbaRFH@Ym<`iU-zF_LFrc zEU$FN8~HinM9D3<>^@Pqc-D+t?&Bzs?>YLyc=|pG5fjIiI(8qe=U#lL2Cd^er}s1t zox^J~4xNYBL>xMY*LeO~;?ODo)b0qSJ>Bel-_Kh+p!u@n&Rr_y*mm1EIX<3GKw#7S zN4^xi24WIs`q^rCY5lhR=*WK20i~5+`4%xB$9*&Os@!AbQHd}wjoOx2CC(`p@1BLsaC#>Y>LEIPbcesV0XUYrx4jd12eH`Vh7@T^6`Lp@y zevv0DUrTR1d_vmSjW3ga>RTmWHk_Z0@lJd!JvbLS?*A2mBOA`kWgNeB>A6riUo($C z;?NT3+l9jU;d%IWE!ox6qt1W6H0F^`E=WG-i`N&;?o>ReStT&@kF{sn|Ij0x&G*hf zrT${)=YyLR^9)bNcy5Fn`dRkyB_ZZ{kH_hrKO!;TGy?|!^TW-Bbl2aG$Lp)PUfSz# zjbApbaQ%VnZx^~Q(4TLz{VurxW{k9zZ86io!WZlj7H@Z5$zrnm5p*6?rXOLxV({m& zUSYoy`*rakaRNEW$5jmeIL^nJEPb8a?j?sSDAeD-l%+jXZ2nvlG6U(O{$oz5k@K={OoD1y-blv;hIFT=PJac}LsIva5AN>6^qrwLR`FUPC2kq8@*r%s1evY4@o;;HUTA zS2HQ}pMM|CzbtWmu`qk87(6R*Wb1!tCzAe4Z@jZmIDcK~g?^rV!g*oZL7nx43hRWy zry=h9%)M0jEJncSE1SBOFN$^hN=3dpi zwG-p>%?>FX$LtCV6?rds75~I9uSLQ8J=sUI(eOvsKAK;Yc5_`5J^JmD)c%r<*YEP6mutl8D(Q#X;;QR(mZ}xp&z9*g3PklV5 zQ!C-8cJv#c*&Om)9KVWnEzUnMhz$o!ZF<>NJ`cy~&Oh*`O}+M6 zzaHOOeB1q=Y5fAsz-*@7VWB+@|+*{4B!kNMa$*!>~t?@PMf zF6a#LYu&#p-{H?HJll0!zrTJpNTW9Qb^B7I{b5eFw5lnVc+j> z@sH^(oWK0t$3JJhEdD$1VT{Z1^nG~dJ$gj@FMIA%79Fg9DHT49uhjpjdcckQ8nDxSySdeda0KWdjHf>Q( zt#B{)F*^N;^8}?Yt`GAZ$!`4@_dPDY|9S)3VD)D)kR}COFU}4;jc4vZ0GeL3@@wfa zuzV{)2|BNno9t8If^xfmf%_j4^iX%VtH;%3x3Buz&Vzpc*X`fq$>|T$y8XJqm9N`( z(|>h&p7CVKOk_9&jaT#i99)b%=rbE#=7AXD(|x*HWC-h_6x~%{d*-}Hs8{F^uNRU z=uyQ3oeAD${nYG7={L;AlN#YMe=KkOK3=Dc ze986EVVp0qJ{tLw>!W`p&X-spjeN=V(dWhaNPoZH0W{3<=YRCpRYlFu$S9Ea-JkPzIOU6KVO4-F+X2p zX^fXnsy>)i4(9ri?&GEWd<|k~1mmO-_kHG`pRaMZ@K1iehK=jFqDVf;&(|Opux{7W zC+qO+?5X^G4Vc3D`5O888bN-(MlV0W`BWqEx=yZx? z=KnJ6Te~m7_DlABgZb7eGQX}*%+J@Le7g0C`S}`dzm+@J(#Au!=S=wPU+sA78tS?G ziA`rG+3#!|k-7U(^7Az;zF=x%egzA(ab@|P^Yb_!p;uM&(~0YbAG-?Sf;*1JO-?f()E90m*IdO(StarBf&TJ9FhEd4R4&BpRYk) z;XE(?1#Jd}z?Gk`p?GlX!Is88o&0=_KqA-L`LXUXKWBK_S(`R; z74q{ntX{kTtZdiy*?8*dbCmP*HSGQwJ>MZeUn6_na&jNdJ7guBFOT{88n8Ps_@XO1 zKVL)pQN}0Wm7lNir1W33NA39z`S}`Zr_=7t&({z!@zw?B=WB$OI?hRdIF_4k`y1>& zn*4kX`upb%&GaGUB0pb4&oA-E zgZcRy^rs%Ad7HT}(CuH%&)0ytS0%0nN2_Ij{YPzLZ<*=iwPBpwG><(v%bdC{%=*E2 zlBqoh#?BLPz3@wmFL>($>6xFeK|0W02&X6Z@plaiK7IP#*s4p=?aA82h+V(q>kmu6 zP59Q*tr+~Z;6FcKgBWEzK<8J;&(|>a>7Md9aWgLGk!Jfd8R5f^H_UYtMWe6t^EKT1 zyYJ4r{rr55Fx8*s=WD=D%Fow`{aw{oGlWVC_LN%{-yXuYnn9-5ckRMDS!WOB=WArI z_vq;Hi$Q5se!d2Ir<eR@7_iYxaFw^7FY;Zwy!Z9*w^r3Ab)%-hr@zbL1b6(-8)x z%Jf#NHUYn|q$kEJ-_~>6OUPr#D^Hm5UFBAj-`fZ9Ao8c%%kS944i9g{wHD4lf4@|8 zSm7?6IivWwUGsH5uJ`udonle6_ug#o+s*wtbHB>muQc~f=Dxw)Lvvqi?q`|%8Rj0C z`*TCAvAy?{xt}!m6XyP`xj!R!!8-sOJ5TLE!tKM=KF^%nj`Zayw{qSWmTCFVn);qG z_ovPMxVb-S?hl*$27ZQig>tX#JtcN$bMFcB{z-Fx+}s~D_x0pN*OR(a83mBZENO17Z1yeL1ql^+5?TW%>h zU+_o#{{+6M^qmqvgpdDIJ@Nm0QcqSKR_ckzfS4zY+*kIRb6e^B$5q+ANd1BGc$HSY zTJCl{X7$9;!s>a>ZPoc3AHLrFCF(G9KH2Jf+m5;8Lgl+ThOow>G?o+y!4;%c=@{L))VeGth zcrFHiB^;aG{&xxfUHkt&epbJpj+gnp7iZ-9cHgs-Pt$!n{uwXbk4y4&oSs}~dOS`~ z#wB@D(#wZUKjy(lJx@7I?q7R-T#g{Z{IUIXsqk+x9rz080mje9e<{y%;dJtu8n1NA z&-g2GdJ;~jSCepBIx4)~nd6=yQ8cX+xQvQW%#<6K7vZ)&|toIkZ*Mbf*$xd~;)`UvgCKiJu$ zqF-r$@ci6ja7w<9W_A8q`Q!MZApGL^{&eMslLDvp&y&v34?^cH zAh%EF&EYPgb9qk{{fOghEHkPRJrl!>JLv3%RwBQnbA5bomHESo>Wr_SP@nRb#^aQB z)heG8{WBlEE#I>J-c>lZM)^3E?!{kFMeXS5;7YCQiTR-%j!F9)6II5`i__5`YyVqo z0zXb(w{H!_&MJ>j$9lILJnPZ$PE%X&^Rb-o?C~+rcgA`dsdoq9Jqw=<6dsTd({RT2 z(4hx~Uo-8XBgT(m?VzLkC4bx6L5J>^=Q(!J?3J3&+Cj6=NW0qB4w}8ryf=2x?2LI< zyT{_4`k16!i~ms1l7|45Kl!-)zJ&%gE^9wE&zlmtZW=oZ{gl+(ziK+bc8tvNQK_IE zx2?D7^{)-Ahx7Z_@tKVw>#U7TB>LBIuiCp%V+p&dnOy%Q?deA6^HF9uI?MUo9-VnU zH_pFSI>UYaF}01h6yYPW|Id97xp zxH_-VdzycozH@dcjYHoqnQU$8_whEoQR7UuT2gD9?R!i=c}SmWf6`v;95&CuOSf^L?;pS? zLAGB{`;Tlq>HvlOhjA9{W2Y}e7-(z-(qX?lyw%~SWBO#B=N&t|b+-ea6M5-|r`Mv4 z4w(U$#TVN_4Y~O9zW-Iq$sF$+JG-+}vbi`&W;|C6zWoBWVKy9+s~L38)l=HQe59$zlLhUYZ?7A_Zmh+2B- zWk!?1xa)}8>rOtNj`48Q_3zruJSra!|DN0=?2-wyj%#17HR|I(oaBkjSnpoli~iV` zvuPO*50_g=?=5HD@c$N+iT#k$-cFG?QQ8jxH@5hgjEb#^t2eZ7SYp zSweCg%P!8!MLPbcgHJm^!bjmB^Tv1TXL0<7<$t1&TZo(N%R9`4GV3<+mE(3clkt_~ z^cXIUuNcE9eS2m=fip*IOF{iustd(z0q#vr%^3;p?*;M zd4MA9uenzAht>a=9e|?76%~{}w;WJLiwd+_V0Rq2+T>p=&&Lk@xICxzNjH0gANY3K zC>YJ}H&g31V?3tTYsTrR^_r4iTOLZgy2Ur?`N};=L$I|m-JTL7l3MWHf z?$+n#Ze!OR5-_E|=eeM1{vmyoKeazezjyql^QC-0S{o95M0c96cP3%qv$o-o^P#Rk zcsC4LrnkaY)T=)xr(3(*@(uC+<49k8Kkyz_iGJYEgkODmB_8~Kx|{!#{WS5yc2H7B z@IS==FPZxn1MUCWzH5-S`1XzBE6Tsz=EMhQxqKCud&J~JyJ&CQ`Ly)>$lB$upW_!# z6azW&k8n_9r{Smu{|Tkd(^k0ho~Z`HX5+soc@RVROd}5 zS_yjt;gIXhAIkW~*?ZN7+Kre7N!S|`!-Fm6Z`4NMXLtMsvqbr8u!;QH_8xm=%U@}` zz8L(Lz?see|6brOn)4I0^W7EWhizSY`ofGCX4$%Azn}Db?h!b$;oS2)zb7A5aUb*S z_1L}{u0s!ab_oc}Z|MK>>DR4)>DI4s#6doW2@biwMe5IP-@z2$p057JpPz>>)jl8{ zcr87Cn>(Mt`74fJeSWLO{qY4t*N(c;UGQDNt)*227^ej{#p zl~(ozWas#m!vk5?Ao4V*#i2k+DM7XC`=b#!_(rfWUa{&b?;K>zq~oIV_u z#k(1n!+75*>#bJmRO7)!?N;bJ^+PfperVByI7SeDW%WNYJ+{A_8=-&q$K_YXRbNlk zdA^C_w|w|1dGE^~@l1MgT;SyI_XVC(VLh7?(+Tr&@;%|CcNc!I__=|3Q`n(#{f$WL z-!nJ~KaImjI8qN;=1^^d^W$;;TdTv8UT%g+e=tsmyGO=k^^pna6^D=d^u#dB*@%9s zJ3hi)-SC0xV|+v{UGLKiFF%etEMCgij&JIBc3p{&&!-JO$x8f=gXmJ={3&>hFV_$6 z6MQ@Vad>GpE_)|Gs7yB!e8P2pOb>xzA1~!$-@oqo1n8CimHxACc-bZE5{w+qvSjT) zEPq^rXN!koP?q+V52(OIho2UDb;HN;uJ~9lA<3VO&(}*me2;lagD=ioIzFq8H>J|%cn$mfy5MWP zJoIwo%ZJb6XA>YP2I~bL|GkBu7@iCNk4pY*_@xKKd6nE!N9zv+kpOK=(03ho2FC>L!oRb(Kdbb6nZ@`#X70{85RF zCHY41RDnYNe&UIfKu)gySlSys_N?IHD2|DL1ybm*;oah=qhJTCz*MKu%h+|0Bj^u{ z$YqN+ei|Z?Iz}=1~Sbk{Iui_mLcX8Gy(F{Sz34}4UG;xjACFaAgM62%kB6o! z#o&E{Z@WLUvgS&D5?Hw?2FgEHzgfGa7aTV3GBp?Rpm5yCVte!}YveuokXN(sP|OD{ zP%GKb42qF6T^XYvNb-@tVmtVIWS_hq?X+~Z_+tCXjFrA;q+R|vmUc^84){GmE(Pi! z&+-%2rgfeD(IRrAYp1`D_YvHeG^m+vUBTH{?76?SyvURg%tm4gP3fdYwE+W_?d|NWVM( z95o1{S$)13-=Bs5(czPl-|BsxT{=Nra@0f=kM0| zl=fdS_=vz|@nh$OV*Pexr@UVUKReJXcHddJ51dg9_Tz5pWWQ_oDcwqit3)FggXDQP z#CM4A_L+PC%C`qF{er1$@CR3E+1I7M&a^(SCc<$=H$Eq}Q)&7CC-2+u)po^nJ7Dsi z69|QAkA_IvXYO zm>f^3Lob_u{!aLd_)CwQ;r|}w%gk}}_h@{X`!Pw!-t%SF4$J+RlOq46Lhi?eyD0Z# z0tXA3-?e_cZsVgjqYRD%=|?EaZiw8ESqg3hHhTF-az7^Vllw8@N7&=<)4n^l&vHLz z?#HBz%(u=a_hUkj+G%npMLqXWS&Xa z+571_|8zpvp#zRfP(R1Bybwo3(%bhuBX_JnSd--Slvg=f`$H&i0Ni2{10{!)z zc0XEcl>59Kof`GZ^{iuJR~_^156ASruFe@;_$BHs><@MGe<06hriWOVYU$M6{aN|W z$BU&?Kk`~S6@!z~zG%wCqw9N4;Oyvf0@$m!vS``o%#5WomA}f5T`A=sJ#*u-vw$uftGI(kyt6Fsc^7osD&Um==3CF#fBFU?0gODqQSfZG05 zpbgh$b%UR*X5k|qCh?!^iwIdXt9;IR-xn|LJccApZ2kCOp1)q}i5}DTl!D}Q*~BSW zO(DRQ;)hLkU4Kz#KOoO0f9EGO|7tT&%6-PfqlItF`u`TwUvtXexV%(7UfhY-N=DM< z68u73Cn-nxuzwtU_+(rz<83f=Q`Sd69;Z)WgB#Ps4ZE zpV3jRXSLyH>mMb5oJ#Qr`BdhKO?~8xX!d4-59OK>DPFa89_lw^` zAdso%WQ7e)u6x*YQ)#(~X*&G_Hr@yEiGRV^6}rB{_7hB}q>Npm{l*9$n9uH)we$7u z<+99&l~@fZp4c6Wz**=(7-qV@t zeZI=V>U|T!v83$J~ z&QUg<)}wx_=N-K+mGrO4d& zuaWlKaRB?Noyb?Y^emARyAH|4Gg&L?E}qG&HQyn8go}2@Sv~Bsfnc5FOYuRhKTCyI zNPGA`8PDXn)Wh^-Jd-Em^kh7f$K&*5JQIiKWIPjx=VUw+hiAKvP2-tl8Mwc9Jq!F5fnHyf{4 zNI{POJbWhNU^sjx<6t;^CgWf@eA;n`#=-FLnTUho@R^Jkk&RETptbl+_fy&Ms=-Wn zDfB5jmGMVo{)qSGNn8vEXEH8^gEJWyqYIo87o#_vQOm@|=yHCUZ>L&4Gl2DK040c~ zl-}*Wv!wme%-lE_z2wivFX#A@<(1ClswtFvpWG1dLd+XHE1$;kFz%!E%Xk>H`k8;N z+>af&Snk<$P{wt9=k%V&!*F;_#>4RNnmE7A;WfEmS^1}Se<C@GtuV!AsK{U+TJLC%2ye{(8jYiRC#Nuhj9Emmhu+ z$6rZ*zvC~f?{(d>;=O!$yVTQ-zmn^gbsUtYi?eHvOF6`Q74Z7|+>-nDT{|&s4v8Dx zx9{57O%A%XkCw9K|6-u{;y8-&vAX4_gfl+}Ap^l*zkpl3e~0!dmbWYY_M83-Ls8p* zDP7}!?Y7nH`8CE@;B$@>wt4=H7ur`n#&<6+5AL(+(ILgRjT3SHM^PazKJ&sjRPhIS z;hXaxFz@lqt9(@7bNzkD=OelV;qk;_D>nV)Ib3W8<&m$ zddq#E6neyd1LMzHZN{^9oSw~pXG?ijzcu@YVt!m#x%x{845?Y^7i z^w^J3W&F6gahzrSrvhV~nqqKd)5y zpy0{D>HJlvlRmNdviPv@7K56=mrdu(W4aQ5r>{PJ%@T*>ENNdiJ(}znjNCy8s2`%) zXQiKu?E^C}Fn9d_?Qc`n#N)COO0QzVa}1c)cDOC>VIip zs(zqSp0JgQj1cIuN3Ew8xwmbeoOC0y~iXZqb~lGG+X)9Wy@U z_!~tAJ8);AN0(hFe74Sf&;8A;&+eC=%V+;5zJ$K6@Gtf<->-L{udQBZJ;amR2Ycna zY(4Z(0weh&?4O2R>Fl!p@#&4MC2W-$PfGH!oMv@o57TihKn8t7q^q4Ub!2Y;W9iBn z3k#2<>$6hNKw(hYZS8Q2_qxGXG^PBq+B{Dk_z^ZKu+Q1>s+{xvczr13H*`Pwd<{Q? zU>WR$d>lWKA8TeGZ-3$O zWzQj@cDo8j|FX|47$3W9vlC3^}7inN>Kpa{xc#p)m-WN{ z^RU3na(Lb&Gb3zbBK}M_d5aEf{m~I^Z#O{rthf^CgRO>!%z9>CaI@t`Aq!U_-FinvZ3n-87HybHyPu1sOrbb9*xt>`^ph3N4Q1ccW0d5s@FrN?xk4M`N)4nVQLjoxAFoAWA11pAt3E;>2m7+sxXL6j%%J!N2fVzc( zsRoohE~`gNh~HtKd5;bm{cy*6NiQv@_R?{0h`TLswW1s2ZPiECp0e}Ec3%CK3$K+5 z%Ckl<-N@3Qw>VhD)eTOVE}p(2L8)JiJQ}~uv2(Qn(Vsz|v=Pa~O^*oe3xC%O!foZr!f*WqY4|N1macZ4Rq4z_-(nkWIkB7?`WJ)4@}7Re$2o48Wp4FnTRz)~ zXV%ZosU#<%WaGJ1_!FUn$Px07^|fMtVSiNd^k@SL7Fh!NJ?%bu(htYHg-oa4)7PUo z=1&^u3>bjgnA$K`qIc3mH3 z-wS9BpSa{^9uP-3fy-6Pc(bNJe%>hiHGIm`)=T$<5XV{mIAe3v-rAHcvu?9 z_Z73=eH7-7-(P*N@w@?eK>P>A^MUgfFGubc_&e9gV_?^a_tUf)~0APa7* z&r1cR2g~93%a50|F&q-PoeZ~tzhl*SLN?1Ol1f0s?)0M0T2(EPtcV zk9NKR*-?HMeiZ$k-LJm|W!iI8J5sZ!&#fLecsshXfN?$gZ#XS@Ut460;w$8OCWtWb zeuK!f#S7u>-}ELimdD3$246hs@KBrB#S-dbZ#sQ9npoG{Mc?7ziiG|69qKz0!_NQ4 z`pK-%`yk!{2CGDJFVW5-{mWfw@2{l3}vCxT}_4_`t(_~rPyIr)0TXMH-R!weQm z@?(vYbv#Z-IERqwo4}|(-JJcw@wubhchmkTA2D{^EL)W9AATIqF`ZKOT1Pk!=X@Bw z*xsymzolPHPiw!J?`wyy59e#phwhXQeB`FUC2$wYl` ziR zI8=7tpZt%1L353s_a4m#iiecm>fAxD&~oT+&c@S^NIr+B&&T|r<0PlAaLi7~%(}12 z^)uWb!gQE<8+?65dr;ER-}rVl;#tbRlIjfo!VkxE9LM}5^N){btP{t9&emVt4R3G8 zx4wUo{R+K(P#01Me#Ym4W#c0~uj(>A~4J zA3cbEKAs=x@_i!C_oh@noryuUfWUdKz~RdQ_2S~s3seT~)vx|P2|2ia9zOb?Dg6Fi{H*=wj69PM?f9Wlt6cAo z*X;Zd=V$zJh?gJhn|8+KB-c0H9H%GOH|aQ}eE4~J@9W3yX58ubD@B}EN#5xgyUptV zikXk|*Nd@VO3M}L0ua6RY59J{d_SVv8To!hZ#n!vAh)ZJ~#KP7G6oY&}V!j^{{;qsK zVr<9d`w{c~h+G#M!VYnMseC^o?XrA7qVk1ZciQe-8|w|?$6j`R(yn98_akC`U%np^ z`ww-YWxgLV-;Zc@1@CEn5s$0#{fIFs z&L*5^UwytGG2f3E`@i%3h!mOlvg`Uw0XFvF>a}ko-;e0~m-79H!Y}!L#K5kP%l9Ly zd~lyoDaiLDQa-Gopj62BBQA}3R^2z}@2{}(o7^v#??)v6a{c`GVm~77kRQhX4uj?3 z;{L=|wb`olJs11yM;aQ(630_uANi>`J*-WH{6@!_C*yP+vnT2OB8*5A}t3_W9w2**_`koxOea+*w+A$n2v$ga=%V-^%>yeFoO9a`F79B!By$#wTqb z)cCgTgXVmQgV$Av$X)h>0_S5U&OrO%v!8L|KW^@in)}1%&QUqrAIiOQP|s;-9z0>* zKWXldoBM<2zTezu%zaYs#3#@yw3Kqq{`2<1lk$G-;BjD{^>K6ux*WVx?t}yXuy6be z@}AG1`n@j~Dr>lVO8IITa#Ysn`DB$3A|29r*jDM8F>tlKgIvPGs;AfIOpVQwL{rCdpJRN_cwCXaU zls&Jh(x>qy{Bl3tt6ZZGOK03hvXr(Q@mHll%3v;p2{23m@wx!`QfIKA-IG!6&7l&L(7!-%;)dUQ)RSdX}4}gR^%p zL5+$>-kW{@S?Ejn>WBt2=J6T!&rrOD4}CsE+?cDGPCoSc>|Nndnd!|c?qM{XSPeI1`nj}M2;i@350J_#pVA|GLM zwC=a>Y5>Umm3jmFh?GyFJD37`&Z_;>EzYWykM+oB+r5zQPI>ac?W%J43%Xh>tku%o!)tFCc&s97=nclUl%FK;$68LlaXx!;9#4&et09q@| z541wB`Fs+~EA-dm<@F6H)8e}re3@0u(ML`W?v3GLzNQDCj)$DSO|Bny@Fn*nIQYE$ z34NQi*L%ZPKD<9u?3=hR zRr;2&m>-~{?oQ)%zvS#x3AbBKc)`-s+3RsDSrNgJUjgT zn!dN~pM6-LEq)AMVtgDrlq~P?td@7V);o3haI(B38qb;M7f8Dqq!iaSgFkzI^0rrN zdi&Z?eozj662BHNkL2ELJ0y#bO9e$7>*eL!3zy%Vv=>I2n?vS798H`%<@6-tp>AY) zxN98!uG5p(zf1EoZmQo8G|LsSOVyv?^rY>NTa7Z}*gY=zjG7^f20z~^&)w|Qr2TNF zAR&a!h z{K&R2c{6%q+1dJ?)e{9`!N<2EKCY*r3N{GMG z_<;hsA21ty%LD${e#*C_Bc%KGKhJk&{_37djGvr5k5ZS~=@!RZ z&aP|KCqt%J%HxUny6!yf!Jgwxo^wdKAw{W&NSVdk!MEY7Z2i~SE3bo9sDvkXmYaHh z=fHC18~S(1k(IY;KC2(HzAG)C5ARB6(#4+lgKg7@AM5PSdRT3+wgv`VKK^lT^Dxt= ztHiU@r{1{$7?(Nxhr6bwoYpAgA$a<9sIKX?3HT9=KAL688h6-^V<^EE|CX=%F&=;M zhv2u$@IR%`(Hgs0{acg^;;|zf8L(KEdx}Xe^3xVoQ)sr>-%2zb4S&e;GLSz zo>MS_atTpsVDY^J?KlB^*mxl8E}Z+G8eII8fBVg1{dM|&%hpNxk*z0G zPdPil#ocbAxAx<1*KtsT@1Lo)^jwb3IIzX%%e^>|jFpDtJeR}q<@W2}6*9eln0_zi z%kp6}{+Q*PB!8~Mv*pj|F{MZJh|;GRd{**j!?j=OMPlJPeaC?#F&qS?Y0l5^`HlXz z&S3#FSOvLZoWwLt;{VeqevV_E^57TwIOk#rI1Mfu|V!467EuKP`-H2jo%DANYEaU7*yr`X){9uo1Yn zY=siW)p@ntf*nu}WCXSksv_VyM!fh;y+Qgi<+2M+IumiNzDDo1T&u^j@vIdR?qPiD z%l~9+OCs+6@J5Zd(rQ&9=Z+4s{5Pu!I`oqN=!oi93uia_aD{`V%MKuc_}BrnnR;>C zhZW9f)|7+x^SwPUx&6?7kt3g$ZPU4q#fv-

+hbdH|F(s_tK~Id)xEzEFRg8El9U=>*J@Fyjp!+GM?Hje^7Z!`}4)i z&(9GRnf`Tauk0Y5LD_-AD&hZfSw4dvE6NX<&%&=XJ*Jcl`0gJipPMf-{m~&UXBDKl zXMav%#5Hh+uD?mwY?hhiE;z_=~>}ZmNSe4ESNVehl%+hoL?a} z%>)j{^6fYaXOBjME^a1fBYttVfm&Q{5Fe> z{q*fVl`ovvBkgCt3-LdVkC!@clrAU6YoLmA>C7XYnxkiW$x$h|i)hT`^Gvu4cgS~+ zpPV0m5c3|sA0O->^v8S|^z<_^e>JOb4_Qd1JaMtlM;PV_-(lF7m`}ktu*LlKa0Gle zmyh(^0_CG_`a9|09%E5+_#>ukLH(-T;5)ti_`3z)rGk$49Xw9XA)bQQ%~1S4eR$3@ zaWoRvG4JNagP7)${Fn~w_vIX9W0xHaV&1eHeHu7WA(nGPm*Xe**UGw%`|yBk zq3b%>4p~nlU%B-hrNY0&@bgvE>&ME?>ISCa{I5%V{%&kkeKOu0Ow1!fPf7nqJo^0Y z^bhA3d+Q&|S3aE|H+1&-x)`{5aw6`#J-)JbQ}pOgqZe+LeS2B-EERr)sKfbPDyQTx zwHr^!_x$cAINX^>?MA0pJbNR#a2@oznx7AL}Rndb>Q zyf1XU#amEjN4u-QUl(Nke(%Kl#oLFZ7RRZ2u3$F)enaqE489=weLH~(O;2ulo}DkZ z4KN_{3^%Y2&4b(8O?x2FR-bm8f3^HZ&oJeN@J6$0ACw9@FV+7=Huk(^VOy@cypC7n>i0NEs z6tVjJn|k^EikHnQaHW1K(PF5H2El@$^5;CIp?2%PrG>dIIA^UX_PTdpx_I z^hx8L?ILH{b+M&0Ud_+t++WVXOdZg3p^m~&%Jr&je-Zb}TJ>}C`CWWA_OL&m>NdW# z^_2{NW{smP9Jc;dsE6%ruGRL~^@?ddZvBOJy&dc0Oi(d+d(208j4x+@T_Y853n*?5pF27qj^V^-ptD=I z*g%KkuUmv$f<@yTvIfSBPOre7yI0aDc;47EF<)W0P-l85ejv|&#d+XN$Fb0fer95L zQ0&@9Z3N?8*Uz9kQvcmx6Zy0C%3D#U_1~ra9L3-+fio@d4iEp7!h;)6onGUOKNC2t zUd)E~XM|2mSHAa4`?}e0mx0cdTlS~LU~9~8c#JPcS6wf2`okH`1E=cq(;veKDUnV^>9e|>-gMy-5K-?PXBv$b;7@d>FSWU zQoGvee`{|i{TIv$J8f3)w1=#{eKC@(ez5+4V(?-Lj?-1Y-?_y3DtkURskeXk2Lz6D zza@M~;|rJ7zxjTad_PORpM~@K2ShHi#$)erCb z^?W~z;w|6LGS~k>`w%RX?`O&Pv&eWRUYC97ZheMRkTag~`t5u_%L3QehrpWJ!9R(6 zzMnEB|moto{4xIH>dQ_x^7v zZEiaqp3~>zDPPF?dD-uMQrbs2ll#40e2L_KZ+{=Szu)_rxSVQYzqg}ja=*8uXL7%H zHa+crZ{l_Ces7J()A9J2^sV$gsQ5p`C#)aB#}9VFm*ra*2cl0F>e)C#mA<>@lyi5l za!eeG_U@hXUHhK>avwPJb<&PBUpac6Bk$e3h~k6!8AqKj5tjw~D0Q7F(_4+Y#OIi- zRuG@#QK^UN)8+SG&-^z@e9VXA^zq%guOD&XZfINl%rd90uOfaZKkM-v%MHpa|T6EV=DW|lOsrsJxcHfNBedVY5 z7_@J->$9$l=^-!7pM~(j^*3oeg+_T#93O%0-&3BH^*)H3^j@D2CWdPgPhkXsrQ3aT z`GE1e7s>}#9&Fq{8xOg1&%FYV&lmUh;0t?hANdO`5ZE}$HttDj)o%+%A};>KW#eP) z0GuaKZf8i-*QvN9-mk_h>iytv5f}Mf&9~+9Psk6S&P;IlHgR8+eAvJJI|2{+P}h-t zHh$K)$WH!}agm+;#c@$3F0#XWGA^p>r}ANgzgcZB*Ew1_T!$nphtZ>|N214+f1*z+ zKNW+&mJhSx)B2rWaq-J^Tyk9C6Id30-cE zeNSH`IuiPf&yN2oHBN6ez5WI9*`$Bba{?TFlkwRceQp1;3jtqx>6O=@KFil^H${5! z`kqm4sY4FSJ)18Oya1Quf5-3CqkI=)g3sr7>QSas-}?P+xl#?8PJQe1yVJ9b`!^RK z^XXZ}sq08D;_yu?aPVPBR`5Pmfv-$nc0~wQ#VZK9N96r7He~2gT@R^J!?eN)M58s=qhbd`kyPNIUg7iw? z1NxnZuLppyG+e|#Ija<`69&s#H&iomDxNdr@C>^aH#ay)umty#4 zrMa@d#OjNSko2A7|4J#i82qWgH(`71G=HwvDgk!QpACa!4myv-!vACL1V`QFhh1OZs7_WzDv2rH`TLPsY* z*CG%p^H;{Ii2vG~UbP2|{CA-j*I`&Ze&=-4j-d!EoNdd-??HKA491x)GhZZ;?jVOo zp3dL;pyV$VR1uIqyqbNVlk)fs^^=f`^;<%m$Kdc>HSzhNr@+q+&(+FU$g&jw4$nC5 zlPnOl!V2QR&c*W$VFhvi6y9!n>0*5AT_D(O6t_Iylks{TUAy(~-RSxjv|q-{xM#=fJvj&O-RvLo2kBG_ehGhRmoAU-APMG=(@$@d z_w&WME)_17d`?bI*YWGw^Wfvew~3;q3#Zz7#X#fv&yBDAshCcxzZ{>&`Uf5SOVK~H z(5(KkdbEAzGh!b`volif4lp12FFHIa&!xg=h|ZvPz{E!{{95n=j@qH!!=9vavz}Mt z{Ez=A`765>&gSlWr5s=1^tNl?C*No5iz7l`zE7TOy-wYKTZy}$8_VX)7Niug}{-G|JD+hFQaE?l|a59FzE;TX@Minm;U&)oBwsb z`K#!Wor1qF2HRphU4y19zMsEI0LU8OQNK}6<8qG}cvl1g`<0h(e(Y`EMsah-p^on_ zkKtqsntfl6M9 z#C7`WLyd=Q{S6kMB^~B_^KQm3h#TX@M~AdOWj4xBXT6{yAU}loxzF6&4=J7p?70=Q z`vq^6_nY|m@E7o^+-mstkUq0qj8WC{P2P8mpD>zL{<-Wm3RrYR;jLY5?TZgA`<8EC+?2L2 z{zlr@zEtt++vC39%Es|0KIl)Oy;8Z&s6zfDKFlJx$OJ2yy$kdOK&+x{oz?~M~`VcN`-q< z@PAs`M?UBLM8)$rhQrf)Sj(P>^AdCM(HyH`ULqSG^t=%c#m51ucfoKQx(}-RB3K2c zAYVkYs(?c|_%As`6gp#~2Uup0}*{Bwpyu@co7pDZe4k zOO|=>N~;#1cSkw^o$BY>wF~p!j?Zw;UIRr2!-KoJ&fkph9z=RJUN6G87O#p$BK*DwD|mwq`K*{S$m zAiX-HTK+(AowRf64y9LVx$)nEiJ&er{a&TQKS%+j7cYNa5o8hifNYp|b95M=E{Dtu z^5I;Wx%@p*pSY|S9sGI4V(^D7D%LA)bDmE0$f(HIz)Ce}tX|~25cS`{%8l|}mfV&K zzZbvXQ`K`Ar^m-(U(9W9Wmj+gWc|6Q8v5yRDc6@r+Ch{n%2`?um4Z!@-^y2Zd-rQT z&_T}?dR*XVe#TknOC0x{l!w8+Wu}jZZ-RenE?fW${`hQp;Czvl2iv~V@&{NX;QY35 zgoTIm2?F1&ycYe;oR%s9A zZSiz|b65;MFL1DZKyfbQMC>*MzEN3-uUQXkt3@<5-vevkfZzuyD7L_dRF zyYk}=IKQhGKXOUeTzF%g8Dw5i|+Iu^&Rt5FLskR>O~8m)2BLL;M2+4YZs#|A6}MSTK+oT zz_-6B@J6#I1^=ajsP`bYTh{-%|g*%IEsLc)5ZE4^wH%`WgL z{ky^A+by6W)IMKl?BacRO9<`yQ1Um#@5S_ZW}rZ>2OsGB9(({J zpZTO#^6`eq9vXJGRsnZ>hy1AY;(x;N_`@+UV0D;mg$2{ zuCJbJ59}+Ck6C`V^AFwl#bFQNR9`EjRxxlX(9M1Swo)7oja-jcKy zbV8-<@7?@K=LHlC{xNz^&Fg^n5c$aJ+b^NLA)X00>;Dk$yjUKu(z3^1AU>Wj=|!At z$Mj=UHwb-;!MkEQGu>X!pFr!(eSf<8@9g?&>;GB>d=Mqg^UOJr9}+Nu@12Sdk$O$z zU#quBw^!mnu>y2UUi=I`#y_~`=&je8@#i(E@#pJOCf*(Xz>$-i*Pvn2r*SVH&DMyNkX!bgRwRSe8 z2H!PxJ*{15)4sy3uT9(IR^Dh4IKF>M%E{JW&K_b$f4mE`br;ig-M;IelIv*Z>K)p_ zR_}DvH~x5+_#HwWl`i|WC}-(*6D}gO6zGD_EI(+p_XLYg>+Qm^^KN5uI^A1W%voDs z4xN4uao#iEHL6Xl8+ZD-9FA2beWD7u9iHeXU^hIw-x_h7-S-@l<76g*8->R6BH@E7-Q;&*WPTTK7fjnA$_ zn=Sr2cM<~E&qc=X-#(yzWvj=n{1$`fpJ)Cw|5<(Ac`M(74-5Y+`N+p13|HSy-BX>c zFi(gBNqxSk4o#0R9d5g>{Wkn|J;#Nw#kU>P|4|;u7Zy(2Z_crk&^b}VRIXIMnIEn{ zkKw{+&PWBzJbPw3O>iQ$mx@5KfOU!U4}73isWd>2h?KiN$${20oxcr6B-rJZFn z?xz24C*D^sReaj<&R3Cs71G<6Dqg<|q=wAb_ci%`q4ReG!Oi%p7ytFe@3-Q-NX`r7B;7B)gLf4%K@PL_LFMg~s`{Sw)mK$t4J7b1>9!v5Mdjlug@<;#)kjw#$;r#N1deD4N6pH| z);_11Zr4X_HRGuErMl15u8LOu&3HE)CV`FDuUXy2gr@g5XQ{#mwI^Vwf3pOq3v ztG<2a$p!2azQaC~)xKO{x$!Ed>wYFD7f2WWZ^7MfY>rZ99yo&wy#eRFTf<4F4`nihz z_Lz?|aTjLW2f70Iv+`E#x2K)Eqw0?niv9L==^sZMwPL@$=LfR(H0@H`pH-*LxMPaF zQ?h?e+F?H1^*$HB`!N(XYFB*pNjqVz;{M}d;<1Z!hxDO&=Be?OP#{w5KtKxCqYgUF^5_?RV!lonLX(iv9Lu#eRF4 zpDy;>`|-S;-TZ_3O^W^Y>^rz#v)FIXxu;^kJ=YHv`|WiFU5X)#uJ+RI#9cRs@QK|?6;>R zW%W_`?J>Vm?6>EB+G4*w`rKl_eX-x3 z{))MsA6x9Vr@czN?I`x!2mgBZ+v_?$KVHhgF8fnDh_Aq_a>l#LytnVXL-sxTcF7TZ z-|o3l)9+_4-N*7gB1_nFHtc!a+~0B>8)e!(+a$l8ceLw%+7IoO^s+?%gTEG&YWM{G z{fMN;`(wWA_;~9@O}EKE8-=&KDvKV(f=vd)V$;kH)w0>BBg4 zX?Q+`y!Zt3iy?mV*T0^tci2+pvEJ~!W++p zA^f^-PB*;e!P!^3lxPYX4`_VCM;4r~arF`3gbRymk%{BR$y;1`Gn6CaNg+B{U?woaS-Y4}pAJiC6$##Zo zDhmlsy8Yo*ot2U-{$S=9c%S0I@+H@y5SC=ld|l#`}m2ecS6!%D3%x%J-K3oon>_EkZr&7wxZ; zaQpLIjJl}sW4VHy*PwBm9G?!3RYT@sf9KPQe9rWNupj#a9i47Q04An$UzC;SEINhA zW9f9Na@#Td*0)3v%s96PF;&Mn(tMQ<=apr=j^muRdQQZ0I8xnN=R4geeLPOT2^%n& z&Uk5lyf9=BnZBbj2)Lb`0}aBTKo`yhargroBz}#a>;6PsellK_!=GIzuJNjr&!cHW z=fg_REPOIPSUEUH;B0(?QVv;J@J2buslMQ>fbkdW3*H*AYf9s(vfu{6Uu8i_-j{>F z6a|saR}Pd>>kHlzFydr=K~HcN?v({^lQ{PLp3mjr|H}DZSPb7?5WHEwyHw((@;g44 zgKy`2_fEWJeaoP`S>MXwT)CIzxf~qN`R;OlhWuf`6L?q;@lX!_C@23V%#M5)2JG>e zpKz9gujS+q@s{~|g15-MB={}|U(Ly{andT#r{|gcoOv$?Pv+z&lr!m77A$9_vlUtC zggPr-1!^Xpg^gzLNm;c2%yNABJqf+`Dbz(3)PCcA!tZ@Sh$qM&vIX`WtV(HUA>Z5cVU{lAQ#ZUVm-oaQ zuU5|=OSydRUrl@E8}T#sn;-YPcW^x9H>-fJgkHl7ro&u;9&~yQ=PQIvPoEdw3e`>- z9v?(JP^Z^!LV#7~A4On4+b`JjL>m>=S2o`1PM{$~-aY1?h2MAJy}xdZCD`-omR9kA zYZ>}w9!#iDh+Vou|Jnn5;2-)`)vrGP($0*gly5B`6MxL#zH^t9RSEtIC8K=sGqT6! zmjgWj%;DeRTle!lBYDa9;qExT%uNY==kTkSKVdH>$L|i`wjc5BrK;&ivhbOV)AGx4 z+&_Q_Jk5+3`PYCuEx#6D6=*bGdHZ3jCT@8-P|dK7cE6m|tzA$26ZN+JK0QB<^qnxSLfoG=_y1$H@;ArZjF|AW zxpREZp0{2qiT>a-*TXKAk)Ohg*YRcLq4OC{vhjY27l2)5>Usn?_VH5NrSYm4(SSg-U%fW;?JkeeQ8tEEkCs{II*26&Fu^1g&m*qTm`8IcT#XE7pdTi zZq$3VMl7Qpcp2hu&tq6hV&LjqLaP(^1q;OgK|S++JkMQ@dRcw0zJuK?@B0?~lxW80 z1I-%q+jFZ}??>@G_j+%crQSRBy^-VSK^KRAE$Z~o6Fd{oq$iD~zTl)FI<0>q8uz%U z-*^qI)^T<8!0~=Qw^uI{xS|K1GtXLI^uP)8Y~nmWaG!ZzV)Cyt&w+V9Xr9kB&(F(q zN7X^FbtP*6@AX|*JlmiJ*e2{$U>)QzbGQSPitVX~0jPx%| zZw!u0|6UJQCE|?ZI0%tr91ntc!Oni@N5FfQgW*l$d;_rhV$a_J8D;aQh+9uwo6GQXa0;ouodUmZ_VNpnv65?{7r$&#+A4J2kLKhZ_-xY>^P}?!8WmHEdH0DEogIb&?gOd!+!!e;z&)apfI8lX2x8K9h0f9X^xu+#Wvdxxx}x-tlcBuDtcHOevhS zYwY;pN+el)rsK-z!^>5n+FwxUeSa4FG2fq+j5F`xOvagaa3jE-RbidNOZRRnfFDM`Q{(x@sXZ-nuY5i$9NYAK7IR)a^%$?Ms*VDCj(l0Xs>M$De$veei^?4MtYc>$gu3>FVM2k?WdPez4k2hu}4 z?=g4E0rNew`2XfHUhzD1IZ(fFGQX$vyZYG|N+ysD3@p19&{P3U}H(|O(~%d_#U zJNq@=t`|y=GpxOl#?R5S|4jME;M?N4ue4kW%$FbMcm4o!`s-lEN5(>a++XGSuE(T& zmNU|NyQFU%=DBjN-yI6Cd=K-7tuf5oIepNoSB0vzU135Wc=H-K=h^7dDVC6w6Mwyn zJr9O{gfoz@w!*Am0ez-Hka)fg{jrpTOi;(K)E;_R+VA%d4ysh#!yTR&$I@TU^lI3M&p~h0mCqVdGu}-b_%rZJ=epIm(X`=T_)mm?t1KDk;~IaR zo#(UtLr2~I!D12voLoJm^&HjXF$4R)QPuX?^)Hpu(U(hmfnVVH5rb#?-70k2AiW%X z^JP53uen#~X6bDG$X2hEgEz-~$^7=R?W>d=UHImN={uUdP<+6&fRvFF-GQ+FsH z6wMY5@xEZvmwvu{J&=zlEboFJ)$w!ef7v>e&4o?l zYVqS7iRrj~WXD#PGbZP_=IaIapS~ZFemp`!dB;tz&zU>rlKscr?Wa{zLOJ-p@T1lL zwF{iyIZFODdbb?>UOeB*l^T9No|EeG{dSy><0n5K&sB8!el5;N`uX|%^XtmNmoy*b ziI@BS@i-kQ@X{ZZ^gMpBa@JS+w3df*|3ji(U+nsQMXXrL@f+m(yn0?w^7$C>lMm-{ z;YsojuU5|=#?QB0!+zJr3x<0y^v_x2dJTSqbAQo)IJt`B#$bV&-%pH${o~AE$A`ZC zeM4iS!F2d%AfNeibt&?cgEq5vfhS*IoE~=fsq57v3BKMK%gYqgp;X@46%We=PoyiA z+(6H>FA+haN_oQ|H=$ee2mgU$EuUZ&;<> z?Cikg{DddpjUicAT^(#-9^cXP2bFL3He<1L33Aos=Ytt=Rs}1`uAGFHnQ6wp#6zS|r(G{{ro6 zdQ{0Lyp!I%6FDLNKW*;O5tWxZRwEN%#3PrkSih-1-h2}8^Z2L|yoG4Z_0!Q$z?}qk zUc&kTIM4ke{(o7)kaliFIbX*r8WzZjPrMEW&QQDzoS}H?TYM2x@tu+5+C#67?< zBK7&}!O#t0eb1eek>9Pv|1=%#cylS41Xq^6A;)z{3|uUyiT{1Fiao!)XjzI+^rvFF>ie_HijZGYN7{_6P3%2j32 zxzY|x=jbu5=aJIV*OiE6AEzhB=||%9GoIZcdtdCjnygaAZn?bhjY=ownf(PX zyPmFn!7|C8hQsQMN=f;fbe-gPJx>Xq_^k7wj&AXO!W|>)e7a%%P{=x4STKa~UQD0X zx^RT)H9gNHPQRsI1vZ#_1D~Z|*eQsah#sq|KQ;B<_UOC zt>mvx8#^KczT~{xiMV{W#a@n1m#7{B-g&ipz8gO)oG0a(c=Fl}I8S)#KAdhG=;a5T z&VQPO(~Sd@a4LLR`#fkzQqLse?CuATzF^klE&hPOSt)VXn%W)7^>>c0$@O=RuCf1D z{I;(DNUpzgbWM(L9bJ>_@06}tcGDWPlk!XzMEN19Vm~PQ5Bgur!QTj-BePy~ru`*E>JeGt1E^u0ZEBQIOPSMdlxlYm1J-JTN(LK3N(a}A*PSMdl zxlU2(p0!TV>MNiAmXA|S?xSa z2kK|)sb%;NbuD@DXHb1q{dhmSh;O0KjNQ??K=+Zf%sz~A@HN{T6>$ z<`lo+Yw1S*g|*XHK>%(_)mLvlkwYZf%0HEn;Luz`}`rb8`Ac2XIkGg-bI!l%J(0UB|FNVvhORz^Bz3& z9*@gQx8bRqzCBCc6TcX5Vw~Xc83I9kiFAx(96otIHPc6iM`7nVd?xK8<->0FE%!6z zp9B7~$fA#*mx0f;o}s-#6jaRmxV-gqc6?C|ep~$Kc05}So|WgB>$VMjWQB*nZu^+D z%Z;C&n$gZIy4iO21wVt_a$+~=nuWjJzwhrII z_ja^14UZk)^_4IGK1t@*<*WY9T9@BVzuI{|`ny?PWzh=dM}xQ7*X94X$*=f5+PpxX z)BTR~OQgpu&R?YK@*Q52>+(IkCf4OUc~7p(SACncF5lw!LJz+d{zf%KD)=UMeg1!v z_f}r!KL7Cd@_n9OXw*Y_Uk;v^by@j%+!O0tesKEvv5Y-3CEz6d=1Kp~&j}p0J2ijn z&KKqR)a{t}Nd@_M(s_5jPo4W5_a7s1JV04z8mE5{hA;~s3&$espUdh$$obZ8xAIE< z_yE%9-f#4?O7!#Jh}$6v=EupAp0{lI@bsg2R}8 zNczxN!XAV9G|co+#)F=I9@YKaSk4N&%jsu?(G;iTXk#b$AIIg_tvqdI{43SZS@J}S z#L828yi*Q7D>zH@fy2YMVz}An(^W3Y!OzSB#~P6b@>d;j40z+r*e;X(Ne=H=9v2d3 z-Jj&}p4BgA;hiI?Sbu>Z$=Bsz`7Hg=FAE&=T@RImPtQURXFn3hrypPG_$!O9et+xi zi|@WfIIKU((l0OGSX$o5C*+SJjxffZMI2%A4-|2Pb$nUG5r!Y4h$9@w5eT6tZNKW< zw_W$kt2+qszgFUF@YUj=h$9U9m-8kZ@fC4|g)QQra&Wo)UBnSC;s_UUggIXNMm#Pl z;t10}aZvE#_df@rPt*Ivtv{oPBdn^G>pQdN&+Pc8h$Ea{uUEtoCg)U(IKndT$oVRo zvPB$W)h9OYN)boc_^S>nUZ`igjfW~h5l5JqD&h#6{gFi+VMq-4p@<_K`|XQ3!n#f? zxsO5TVd=k5?qksPx=c^*V{q|mlKU9U_+g4%myBcOuVXI~9 z`&m}881Q2eN4SV1ob(H(<+F$*tm{MPlf6p4TEr2qV?T`Ar$roL6R!w-@vk$E@I5kq zqyL%xrHyA1$C11DK6!8VeeLA@3i9nS_e$yOGH++kL)n9P7kpni;}0aA<(Bc^#uN6} zYu(o^UN7jutFriaq@1W}o=X~u z+R}3%$8b=JzfY{u+O?I1j8$6${ywodj?#|qagP1{yKbNNo26Z?yM9FRl?~o&cbWZc zhot&h<0})dz8zKxKB0W^pne}6-m83cjd?z#^sxK=?Y`~ygvJACPndoG6PtDa|HO^v zzQNqrn)@1aUuEv0xoe!C_Jqd&X-{Z;$o52F-kZ3~6DIERgo(R6Vd5@Nn7GRmChjt! z0nZOy^1@C+;GZ|h=k_JLq+D_*v(_##ahE4fnEH;J`!nW#%-oNd`$2P8`?Ea}ve=+D zVd5@NoHXyBH1{XW{eZdeHTOw#A2Ijm$$oK z>7VBAO{A|I5xUjhBad;s8SWcpTp+^ByNy3idFL~c6ypEW=Kh1nUH&oDn7?n8=Rz^= zvW-h=&!^(P%TtQGyvW2|UZi-k@26=69Uo&fSEC6)P>u3_Q2GhBcN^Mk;|)J+>_MFCrv3jR0c%!!qA$=m?lzu6`(9mN8BLk~ zsApzejjVVIlruKb@1JOoT6@FJS5y{XB#=ZzHs9~lJNfP;3>zEAKaM->y+;_UjJU(v zU**&HXQe*ki`VHFclbLZf%)yfMtp9r{qr>*@2Yq{O(~(jPVc@D^R?2+#aWtP@s!DKXs3-kyg?8!@8b@iw@dUZ`)Q3k{MQ1%U0*sg?(iJ~x8-MRzu11h9Q`Rjn4ecF$gKeD*I%GR^S<+XZ%ad&CI zZQ7*}Y=J$>4u8`DeQw`t;(B>@DeXue_h7m_4JCy;eAH% zPrpA!{)Zoj_vCzm|M#`$^n`&I5|j zIL_`R+r%Eujk9~+9rC_?{bspy9%n6zSf<6tB&zPyKTo?jyMR9tXSYi{zC@f|qlj#O z;o#E_koL$VK>nACuS>dS!4>r@y`q|->y*-kW|6gr{q^d09MgVC{b_w?+^q3-t4eQs zUUAgWa{c+Wtp1PqLRD_Q5D$E|ru>O9XUx@b6iou@y z``4NL%jEg!{cGhpUq7EM`K-O@pQrFciMxAuDD`EHJ1)c<%Rh~Mny&(Du|y4Op4%fX+>IKY=vo{!+$ty%ui+2hM<{C)DpwWukM1A9oS6~ApaeNeII z!;#r>*?EyujW28G-O}?WbB{0kO?HPf>~?2g{Ab}W$Nw6in9r}T__Dt)aOU&>F9;u% zC0cK{@!n@7pTpPbrZ3DmVaoBH?FapJd*xtA;K;{^#%(5?brkiZj#FC>J~m5y+ApN| zcD~Z#=V#%|^m%`$8=N{Hm1Pek`OTd7hyLHc>^VrZ8#oXAW%JUGizGi#_-|#Q#e0HvFnRf}wS;|K^G_FNyP&@mKqe1|Cn(v;Xk>ldO0qX+OwL zlojIt)8<|eE|77F-+sLE{H+x}%6Wki?gKr~#e9KdG(*0_9p~bnjMH(Bii}ZqA-;Fw ze8*Nzygc>(t=RW;JkD>=E8@BI{`rn}|FG_RIwtvjdL9G(^h5B_E7F55j5M7(#!qJT zVy$OV%kl6ynb8liJkrt5OI8+thGYn;W}REDXH47AO1;baM=B+a3&?s`I+X0Jn}{9h|mrN(*KG%=QsZ@|%Uzw=2fFwcm^nZM*uGnDe@jj-rD~ z=|ch+>EFV^BCK_2$1uhT2jcb(4ePmG{r#heqkdnU9=67+%wHS0JZ$&e6Q?%@`$ML0 zu8$64yb-5wtPWku^s#XJcsDp#A&-T#9K1)`S1F~(6B?JD_*^sDJ6ZGERjmz#tcT~o z`0WbOAf^wZ;eNZW9d8UWy}vPp`0fMSspWiGU{P9FbBG|)@0v}9*>!T)riPwd^ z1?_ux3H)}SUpcr2lvH`*ymW1j^W>G_dVZcezG&`Kzi*}VbCQpET#5f_`L^>6S?8=D zH~dBnq|aHe1pk|qn=a4UZG=kU8yv3#KF2R3+p8_UtA`U+pDtGZt8#9V3))Tr?C-s<_h(3|aO0os8c$ETDZA0O9++pF?TJxt+a zXPxO|;cd72e0r+*SdMQkKFWcZD>LZt==D2sd!;QshvR3RKR+nXgx}k@ihZt5KP1m5 zcJ%i0L*G07klg3mo!(jJ(^)x8_T$>l=x#y*xm$NKZnviBuY=q1srrw8A%+|J1m`ok z_KuF|d3rqWz^4cG8%w=ui06Ri^CvZ~rAIWa?P}~(eYRAmGjSgH2C2Uz907iUmZ1Fc zyAk~F3*hj>)iC}TTaNwS*F#)snpaLG_zNi~pP$ou*3lW@i~Nqsxo3{f0AKVf&;-5e z@aD;N!^hjH^6?6^)Z&fu#FounuGyR9%Qe>*p=hjuZ-~Ro@{h0gM~psX21}1hu#Uxc zk*i;n_iQ(>mM1U6yTdh11Dj3y{b{TJ!*!-d;SShSnRra}TUmI_YQL2iAD`ub)?9x3 z`$`kia-478HD9IFmiG?M`Kmv*3mjGstB;O|JVu9)%e}FWqX5|RzzT`?w7DN4_*q```_+w_ZuzM%xI_}7!?qmtd)aku?@+M}c0wD>S9^W#80l60JVy~CI5(R#I?`ER@R zI_Sws)n^|3mJcsNo^)I#3%8Fi&I?;T*h%555+ z;q>&^Z9bftayPAX^V@IXeJjfL_1Ho@<9sB=&mq>VaY~*6ylMLJJCF?H#-C@lT>FG@ za;AFj`mx--+*m(;oz3oo@9zmb^IZ?P{@}4$;MI=X!RzE{te&mk>!zRNxXI_U5CMr1q+YRnwgTyv&!Q={Cn6p01;23;WMqD!m9ci()wu(13ebnz<|}q zrzf|tJNF7-vfeDY&63wF{Zwu0e9;Xkhjv-*e0?VU)h^L~!XKA&9F>OG$+OxIdFwIC z0X;_D}HPd9tX@NowG$?=vN9%=q|@@)J}pck)J&%-glPD=bFr!Qd!U(P&XZ4%=IN7u>N zU$6#tva^Q=An?pTe0hlYa8ABIQr{CY9qJY7maZ>Kz173{{75E=={lwP+vndSnzs1~ zdV634P3!mXSSgRePV^2T{(RcpmvYepuJ-x&$#<6Cwm*rg=DmscR4M&eXh`Jmxl!6@ z?auZ?n-xzO?$P43>p|!TyJ)1zEZqq>Dwe<{fW$r zF9!TjpRaW87qG7=%A`fGB} z!V~Q~%cspLlh2F`wt$;B^60E&O|U0{oPPuyk1V`c_PbUVe56EvvTyoa^nAvS8PKA9N*X4*$nMn1Ir zNQ}R1|Ks~_%fZ{EeLL~H7Ii#r?q4shlJqF%8(pW6#!D8RXdgKI{1cll{K^6&v!1$A zlHy}NcJNv2<>Q2ulf?&=3!e`z4|fbQb9HAc(Vvfn)sX3%Z{K*k zFGm}1*LjOpI0QRzGFN^`cdW}3L^-^$^-gZG@RDU0_XQ8hcdncj`fSF5S>^Ctmznrg z1y?<+>pD8uNHGEN8tf%rRUY&4dQ?7ecy;}(;`M;wgWm(4#_u%w4!@rbH{P!O?~cL5 zxCHZVA7SCw{L}}p^YPs`RHum^jMQt8N5yx{7gKzr>q@M=_2Sv;t#a@MdGGK>Yn%4e zi_*?4y!n0rCs(@v(Ar^@g}bDjd^|b*tmBJ&V!R~B7fwH4KRhmar$4*_{FcvGRKXTL z+a3p>%3T&*&t~$&CV`_m{j9XF9tJ<$!1UX%*pu+*X7NLoUL+rs1GA4a)~g|ljP2#obt(ALa!CNVjxp?m@ogwdSKWY2dcF!95zR}e9 z1-+%A1utQ0*zRv*d|GtX!N8^ZzA>u%rZ7ZC{u&t_-p>5>t(<3ea(FE!2ARHnWCzO6mqRKs z@(0IfY$rXQwVoGLjt=1g7xDT6=$pigeuq!sXZsDwmp3j?f0sYrIVklq|7fK1=VM_n z=JyZ8>DGS{VgZGZpJ7a>uo07EVQSt?=b?a(#JJ~F{Ti!LrnO&uJkeB|yWgMX~t`hZx*^lhqlRm{fdPw2JOE?(~Tdkvgn&k4wmV3oczt7s&?bh&reC3>yN)E z-*a3th>mCAUZ;=gpTItRc~3sU@`I2c@2)Zqk&~B!@Cr#E8E@_Kq^g~lhAnGa0$5$Z9@$EZPaNHX|i~jKZ3b(^>WogtSzC1a* z^@BH9dCHO>>iuYXt(0%;_w&(Sa(0a7tCW^Y{#Y-b#TL*nwMNqOK zFa9X?j1RA+2la}@OLSP_viKA&oI zJHHqmG4}DkWkRQD`bMEsH~aVv$VqtB@AW46t~#amaHaG{>0g`sv_tGx-VRL6dt$z;!7P+DZl(i=P8^$ zVC_Sl-*Wxy<>64B`P24c!}R;aOD6nSXlnIAG;ZvkG4&%y(@Kvlyu1r_S-jYN2&4xo zSv%jv@gR|L#eBF}pKEs+e0%mc!4lKe*C(aD4x_lGpM5e6>&hEarcO zSbrUy?1fZbcyD>@CF?Rzf&t$vEkJbJsz)^Yw@$HCTa&eEggyP1A+WvEk`Kezr4Uk_IT9p~ipi^HS(x11hH z`nMcDllsNs^IvBE{NxPzr5`2@uhkP3SzVAXzvbXVv+&*Zr@4F?d`v0d<=cx_%mU}> zHV=DT>6`&qFF>{ZOq4qhtKXmMJZw2QBc`+8U!AgFBGs?idByc-tG^8A0e+tpD)yNu zpBDQ}Fdjq4Lu?fLOrW2Q9bfD-QTw(Md{G1?&+bh3cg{{K_L&s>Op1Lb6rN(AiSHlz zMbRg2oapTSVxLLvCV#%|^w1yMgoDEl zM_BALnYo^>65K^Jb@8h@e9lilnem@^es1~;)8hu`Cli-xuAjTuXX5yQd{gW*arWa6 z*Ivr^119IgFD6;K$n)vu-+bl=^l$3-r|RD<_L*S4pu`Qa^E)r*;y=k(#Xb|tRn|Nh zO%LmbFZP)PL9x$7`GM;}ihU-q5sG~#u#?<+Ei7Nb{vBsG6#GncJ%f%f+`M{n9^S1_ za_jYqeI^{o6#Go_?cHLZNwLp_cAN9}9~66+a#QRx!TPMTihU-sp1Rm)QtUGs7{@wE z&(5f7oYPk~UM}{TQ14bs#Xb|_f&GoMTZ?@rzMN(4XUp=l6#Gn^U!hN;-Cz#5*k`hn z^2PlJ5V0{1c&qU9w2Tx!+P{su0k7Az*vA}*iJop>iY4m)Uds>b@of2laC3#pTC zTlo>`=;Iy7<*Z^l>FDD<+qY3K}h?dZSvf{YnR;9cuVfLUh~;LgU3|*#qG=Pknb&j*LuFC&)A<%(TN`4E6-&_ zz~Z$S=};T5*tn}R;|BFf`E5`~#!dU}?6_$w zP29ArQgPE(rsAfta$GiUn&k%@MwYr`TIFEzB=DS&5}hB7h*Nyt2p_tU2(PScaKJ>ZylYJ^mlYl z(m#{Vv+GqupDZ~iGg^8QKbPRS_K?!kw z=KW{$GsJ6A{gFk76Pa=-sO=(uH?djXJlh`&f0A!N4(MCgPcp8D-%mo!s{D4W8X~@( zliP`{8aET&9PArM&zNr5*yPhQNjFE&*FxJMMfl_d)a8vJys zN4E%;7N8%yBi0|1!TdP8?|YJB<*wE9yD>gB{*S|lwKEt8$j66gXTUyi_!!$2O57KO z2ZlU2{smK6Y^a`xq`}Z1p@9 zKkIo~4o>fUEbLQqa-3Xu>)`bAqumb9-R24+sZ+x_`BcsZzttB3s27(JQ2T? zL$w>I^`MWSUpa4(&wrbxT)t2CAIIYKs|PhsQXL07`g-VU;E8nrpI7*J^z3z{XW;QQ zu-BVs&5jq#r)$whr=PAec-0QL8~=SP6R)Srf4x$V<3EQ_#H9&|H|0Mk->tWg$tZ55 zz7_h%$#=|`x9viD20q13I~dc;v&UxT%Pc*{_)X>DxWp~1KB{tDJ)-(MpO4g@bNbrF zAHw+!<9_^C3=;%?_Jh8jP0oYeC-7K1FRPv8fOH(k=f{oe=xq#=nd0#Mmx8 zDR|Du>l@^~!|QzQAO7n5#E>1oMN=a}r!CMs_y>F72|-|VfTJI0M@5e*JzM9G)R^A> z%*pM%r|?xex@;qp)9GGZIF)yYM<-t)Hj?sNgdIjd>Ex>#4%8)ms181L@)dFd4OiG; z+&I^NZr&J9FujU{Ol^GAEWTZVJXY^my~K8bO(A!`$Rc!}4)?kH8Gcf}&$Elmq6xd< z$@vLb(0sK=ET7?gc)>^Sl6MEM;J}L%-+26?;{wMYUlRW0^C$w%`f>RfcaMcOcJllH zk1r;w(jSgvg2?BK)^1H73`a0NR=t+R7wlQG_~J^WBR&tZM?_U`P!b2u^a69EJ;6N65qr#wJN|C+_K!y@dsBL4{ltTj^{XE zpp?SLC}9)@-t`Fk1s zu>MtT>Qklkh~V7mMb8fJ*SK2<8@bw-+rdfoZzKF^LT-`XV5uz_0KVMv+<2y=|A*dp z{XslG)#!I}3%l<&I3AckY{7s2P`=z!6I!|Lh$Z62F%G`{F?>``1D^i?&4i!HjW2fW zXh|t!FkJlc1-i2;+kE{8W@s!!97EabMNRh z9FB~$tk$k@+`_|pcO=%o=F^ERT9(rzv^~=Pb7yNmj1gRpFI_v6?ayo{+OK$@OFJ(> zeHP!;Z)H4}gN=gsPBBj`cpyHDd1CbYI$SE|iH%)V%oC#@DCUW&vTPPUjQj`dJ6Pt18O z#yfr@_IsQj>xhbZV!LjIe#P{-hW^50o|th8oc}YcA3fD|YqbA?QuslOdE)uC-msV_ z#<9=EJn`aUo|xkaH;+`z6B8fBJh9HJ7W2f#JTc|rHJc~qBr-0mZ|wR4f8WlNSlGe( z{EPk{CUtZfNKjca$?4~yx{tqHzw@w;L%0~gyX^UJJV%%p%Zp8ey zgL#Jfx57Tubr1eJJGP7K$vC56{ZW3qAMVm_+m1fj{mJ#Jy8fJaU}FY)PR8RXt|MhT zLL9`~?l}>s;~ZXTH`klCdydEH!$YCu=l+v+&ogm)W3WGDIhz5n59h|}kTCUFxE<>i z^5NuuN((33`9VC-eVvpnVawlVwJ-?&PprN9GXA3q*wH;@+=BKS)t}|#iRrB#T@S?e zjAA`q&BFtZTb8vw1K|#=LveTrfdGEH3yAXZkla_Qcwo7`SO_y<_H8y6>ikg_A1p_i z7C+HJZLdA2m-{*opf%B_`HOuki@w5T9m4md{M_+a<>$G0WII;ke_C$3oribC@H0iK zvk*VHSPqvyrOS!el?6)A3eHF7MSNkoGT?FiII_Je{8$esu)fF9!P{4W{b)|^lH;#@ ze*6j4XYtK?xuk3Eczm4A&c$Oc+@(k5JJ!p~=R-=X&QA#(m6Fc8I=Vd@!^i#DHIF{^ z=o;CF&=1Av_Yc+aF`>h4H{beUpFYWR;2nK#yY;$|xVyI6!umIr$7o9RTcpD!?0-EX z?a0!Lz4+G3Y4oV(iw^7ejcatFW~H=~RRrAcz6STF&Ar<>*9Sd)#qvk+zY^SxFT3%* z*>8nhM9x6ZbJA||&oCA=^4t0t*IhdPue){H=r0`q-->|R%nxw}pF930Y!fAMbsoFUoti=f+pn9yR2;wdX{lJ?C_7Po?xvvD~oT^H(n@pSJJ1L*R)v5*qa1 zQ+nt6gx@rBLWH!}-J^0!roiRo=2Cgi*Q3rpWyV%dzTSz#9iz;{^B;Y=fZDl@={Mgx z06p@Ile;k9_lo|oyIlBi+5Uj~C7M>atezpCU61s+^ZiaXG1ngWGWh=62|oKnq+r}J z{hI<$qp1opt;d#{^|0+bpO<{irs{D!4vFdF(T)2|?0#jd2Q9t&f>o?Gh#uAQqQ_L9 zT0AtHT49Gu0oOZJjRZSkb%uC;+T533!nfcH)2@8_D_q2@t_yd15W|y@W$6A(rw2#D z08H0&6&<|?>XD@P_JJt*S@gaLd1ma>G2f0f|Vtg4HB zqzH5Hnz${1pK$v29Gbg>Wf9&SzQ(zV4$e${pAp}}^7mU&w$ImOxLVK4D#wRdv+jd= z8T^u_AHPGB(J!uMwtT)uCaQ$F%Zu(0#QL~co~0u56OR*02jo5R$!q@V+mFuzryGx+ zo^TqznG!O{`ZddENxS+hv%vX^>?1DAsH>YCeJ{1&c)r@-e=cxDkC}dU`k>&aZ(%5i zOv|0)`?tt@$M-I73(U$je%zK@$JCyz%YGWCFE&TF?P4L+kKOblduU%zEW`8M<@p`b zpLMgd{xs45X*|2=QSE=4Ro3doBQpD@Y(HlEuS&q^Cf)c(9fQOh_ea(|dwe&>&HQ!@ z2=wi7ps&vKx9=E*9pU;Rpl_7vKp)1{t{?L3@y)a9XEWYuo~7_bhW=UcGpsyajyipM z5Td!$qx=4A+9Q9KpvP~bXNS+G+RGdKiks!$tSUYu8R47?eQuKP^7-2BVIZCNhM(K<5&gX^6l}TM=c6#Z;%cVTFWgPPE=L~AC)Is! z|MHnguPxJO$|El~F1}XiY{zHqhc?G_1p%K*#o}+x_MT8#Cp~u{b_Umdg=G2{OE|vot0DCGkcM5=D5=Ji+CMh z&K|r+%5!?{zr^~0QD6o<|KgqXn)(+du9#=fTyOi;P1}9_HWz!wA17OTWhGkc!?Os_ zh9XTS!; z^QQOlEx(iMB%hRXv8Hd@sP|^CsMBC4s*`dqMuE8KAC+>%!-VqQrTI6h8GyJ8$`^Lu zSMyV*9+V^X+->r|Tkp-irXD;>J$IXWaFcrUG3bnFe!>yr&rNDJ1)FZw^yViGUeG?N z=TinRrk%}C8N66{?lE{lW~t{6Eoak>dbe?>Hm%j?XaP%wowq>Yxo{OJ06Z>K{*DeC zzP*;Iu=}pkdvl>8wz6=SBs3Q)|1ULoYi>08-tboW!}ezvZq$0Ld^IoDXX2kNX|B}o zEdFQEYo#KNd?4@{JjL|AIE62DD+ik_zIs#my2#)QcTD>iqkT|6fBR)LhkEFdg$sl4vJD*5^;*M%Jwa+aw{cUyUA9IA+ef=lg%5wn7$K#lXO~@1u>w{Y^bNezg9z*_*j1LYnJ**A)w=a8A z@>@Uc(sTI+behupV&K>IJB-_r?srH(YOuM}@AuSCgYS8<9{w5c&jkJ%PnqW%@hS%! zt7YdtkhU%FE7 z&8yg2@CEQG`qb#-P1lK*q(y7CfS2nU)K!0_)g@eAAjH?`~t7V&&B%P(rfgdmQ%tX z;+3@@HyM7k`YliY%{;fq#bF*Cr@iL-+P#&Wf$UuoLsiMo!R&Z)`tPDQ%Yu zSq}6AA0E$uQL96 z``VMjSnW?}Jk2Ct)|?y1)dakpNt?SKdQ(?DWXI=QV7^fC^etW^@L4)=9|-dxSRd}ILaK(5B4uIkq z|9xi|yd6?`^W)c1FWLBYod!$cIQ9X?r@8`re)oleS~5 zexuyeA4aaCy{%upnz(lJ)laJa%{0B8-{APm#0lk|*L;>|ZkM!smKZ>PGu};5Or(dko*L64D;sIC8JWZax#eQ!k{-^a}u}+^_$JslT;Bk4* z!($qMuHSrAzO#C(Sf}sCam70QAI5%!Vx2w(&iC^jq`wX084h)*??&*ySf>vp;37W6 z-vPV+2K@ah#`7{F$kU4)-xllit7N$V+W_IO`j^sw>W8=MK%$LoQBqEdb^5@E=l|$# zSBbl$s~_vz@J-O4Mgb`Y#X9|Boqn-SzgVX)Y8UH<+ z8jvpgQA>^c3r*GD67VGrE4cu>3tkWkR{CSUJoj&4;6zlZGPhYIlFV^XY&<}fHSMgq~ z(+3i8+4U@(&*Ej*#TV=Jk7H$lj;D%s`ox4@mS2i>`l&b#=A8LroxaYC7wh!rI=@t` z)2D{1l!|rw!~^|5r$-!QvreC#ATGP!wbpZo_^JGLHFtE|S7hvq%HlUkziQ8WsP(*m zMmg{AR*u=%)V^z#eAm7+lzZQjmD0X^|L|Ff_P2UQ7k$2yq$>UZ$iv*(XfAaGfIe)%oL7hIFv| zAALL??*e}%ctHxzU6+SNe@}9s<{5T<((j<0qyVobBGp^7Y!AG=D2~;WV zknadDDU+s4w{_@*->&OS$BVB7x{xbfp0i7qO1-43#*24!O~#9NboJt!AWoB`YcdX4 zK3x<0OHnWV*fn$RmrvINUFrJsg2`@lJqEhw!~Gv(xcNt`=iZpV$FWLrpy!^LU$+kr zhRicKJdAT3_QvT5D=kqo!d8ShR+Di$!cflRfo^UAR}oZ|JX3( z!Qpch0>bol;SR`EK0e=xJXTK1!DsnNH@IUsnXlFJ$@p34K|J_&*T zFS(B0!8aWG>$@F%S^QF+J}&L?*DYIpkeuK8yyUCy3)w{UgEhG~_i=YUpR00zHS%<< zt2{j*<>vF%=^{@Ck1GBF_px@@lS{kGQ$D>#g5k-nuSa z!Ps})f_0`{L z9D)oycjGgQr@lbANB0lQ_s#vPU*91;6W4Va`FT)YC-$4L|F(9CE64K90clq>rR~jX$CH`g zuakCESXtbbVw(FzB++m5$@k5D?~?ST8Xi6Y zm+g-z7oC=5i{*p${2A%`$6s16{w5wfEBPG<-G18+ag;dny%dWu-qIB3@1 zNz&sg&1dW%&WFl4=dSxCoq7%K4sV>}`t7m7)>f9ybH1|r?ZL^*(cid!dn+SaB zNqKIsTO)UCcUDTjA#@!u@kR;%?X!;au1nYzS>wENuu=KN=pSddUM%%T#?FeaIZ|VL z+dUg3y;2f25JVq*Lel%npW$oRqZ)Y7+O1jkUzR;u3EnKkVR)WjqJGS$~_-pR%Trb~uYv=DuJ6B0N)9^Zb z>o0^3r?1{UChePD?`mAd=018E(O;SIP;;N+$&NRh`!>k?cF&p0myaLN`=iHa)UyG6 zV#kG+zLc*K{P*d1GoI&8Kkcu((eL+!e$R`5$u5xfpzR%~A-+G=0Zz|wH<7ky7w&U!&l|NqY1Pd5#)#V~ z@0(MKzb(kenE~oOeq!VOR!Uj`(|L8Ydkz{88o$ZHWl6tDL;WUcJh^_SPfBun>;H}E zitw@ULq8|a{C;G-MbI%%#dDfY#_7rN{fRi;*(aQjnyJ^V-QdsL!hVtVbkq$NEH0b# zB@S!OD?Z zccq+T!0&AQOB?sNeU0jaXj=7S`%2XlTTl<{YkyS7W6SU{*hp|8`bW)^fa&hS_{^lY zSGe_X^xV~qJo)@ic}dgpQ^-sBtzN1G=&W$%@x2|7TKyG0BFzr2cz3AZ8UIK7qiP4X zuT(p+9Q>r{>va8&k6sX1TX*XIck+|Y556er{LY*2!+F%td+C0h7sqd2e%Spd5fN=XvnNcSomdBtADWw}$oDqhH2n+DgOB`nSi6`r0BDyMURlInedawnbVTs61$Zn4uY8>6ZctAe1{K6zV^B$a_?KX zQOaxId8Ve{wM_1||0kck5#L$ABjxcM5Jg+gV!Wq5sGRYbG^p|hVjFxkCAY+RjxtYh zy{22gkE4t0hwem{x$22ZaF^7dryp?syuN=-`F0QZoi%R3o&AxGUtU@KF_DXC%HR`U z0i{7-=^Fe3ZnJ-X3+Tb~O;4TgP6%G}`A!|nHto zvXjQ;+6e*2MZSD>atTF*s~r4-;47L%{w)7nJFo(WKKrS1@Kx3OQ>wSNpi~xIDcvjS z%uhO0@5T?V&NX^}WZ{?pIastHXy0VUIRJ;>rR{{Ty!$07C*4ol{;?eVqt=6ue+u8v zonESd^XNsr`jm{vr5eHatE-355nq2N_|Dfi|5M&uy`G=%uO*+QOUs<|%;))K2YquE zeB76ck3B!^y>jsHrQP}T)BbqA(~t7;`yw9?34i}X>E=lM8N!R4Mr0(O(YR3F>w%io^CP)u! zcNY65f`IEg^7_w8Q0$u^zqon#y;*YmBh*wRhjgQS6%#e0k$5yKbP^HvxT9?3*xgp86R6yA9GaF_9NpNa2Pozm~@KGgPQ>Mws5MoEZzYCTU$xtx#LCeKgK zsOQNp^;CkZ@fGI(9y9Gr#a-BBp4%oaYVEEsX?@saOuMLc?~xhxJ%Rc<(^71}ed$Ls z>i;qq%j4pD)CKt8VPUu!_b9}DkGWS$movFbJX(6`7zf~q7!Mkk*4Zhy-E^HSwnO?l zKR!aZ`KIgmEz%Kx?u2~LdB35tR><@{jj>%eu8OQH7-{q~eQSLJaTcD5^ACqSp&$tQ zt7Ax4`Y?ZT-Ls*~6mzQonsgyu--TxzcdJvD*Mb)=4J2Jjp_f7zy_n$vcNo@tZ z;Co)!zAW^L@bFHKKhj$g>2FXhhQX&37ZSG$; z_#yn)B5m$`ya``*;bWA``r~pBOLmEaK>6rY^*I@r415Saz-yreb1;q(KoP!RM71;= z_274zeTKX_JMOn*y0W}h&tJ#Sqfjt4FU}LxP{=&>(NUbka8mM-@B70#BD)}ch;cQY zKI+FoBuo!mb@08e2V?&FsK(E(!g1uw$x#1R3F0x@*tye}6R0hfldUb}&zBR1hO%IC3OJ%VPC4=fDqot{ROO3t<|3m!$ z*}W_9i*dzHeIK>tF^)^g@iaX<><{D0Wqp2Pk1kRS8Bn6@{*@XpDp`QwYEKSK3&4A+!2L;M6MOh3OI zN!IS~Y}5DFUl5tN)vuZkiq@dAvC(m#E*`yb zey8h4ll0Pl)VJrYUz!;5;iF$8O)qQTTRyAV@!uh~NcYv#zDx5d@dc0rCpXh&=6C1c zJ}ms2{?76DS zp*?mS+i02i#8Z5e^sg~Qe$2-nybpJQw|(cNw6ibhmGbi8(|KWw*H(}2!{Rf&g#$g` zis5av!V!CZEz29mgenUk4e4ie_R!kRdhTHDrlB1^+!JfnZ!k0*;#{aFrCgsMtbM-R zgO}~N4bQcngPPxi|6mvRE5TYeE#H3#Cc77)yLdrE;wfmq@xB<|_r9un)nA_Lw*)-Y z1ooT~8z-3hcn$C!pCe-Y)=YoC#`JrnUFF~!g4M;J{P%JDneX)TUl=-0v2{s4Px>$Z zi@=f3w@<%L;QUpE197X^1w>PO<(YH`d%t4&WG9|Oyx(K)mC`cd*Qj-JJCcKF@_D^S z&&fR>Z|Q!($@jXD{eU;#>17Wd1eb?9Mtu23vP^1(tr5&eIK5`&d!)7w{=av5G;!a07yi~lYX0Ue%ICccenX!>s)68oOTQ-1(Lu$l^$#z77h8;SZ_<0` zLA^6RHS6nJ$X*!z1(i3hJ*bcA`TVEnH4yK;gFI)_$<^-q6#=c4ByW()`z{5zWhNiiyjW&zaISJ_~`oap&Ij#H7Ku+kA{ZF zLZ(;458XPO{5ATt-CNKq!jol>k;IOlMy37Dk1k~uLHpiq(*9RX?;}QE?vvsINAG_t z^tN=M9Px^#mA;Lul-`yO7p_qG&X>pO81Gc#zFj*6JJpxZejt{0)qvO}Uc+0NzN)z@_?X^TQof?z3GwWIhsVH;SJLBgH-D?+amPPf z`|F~o$EqBkIR4oljn!FZ4FmMq_$P~Bs0pkdvgi9)xb67>HvoFV)wz*1QLfkVF=&5i zv+z^%O7%}i)5>4nz0~l z{jl1z$h7AyX;1s14N4C~C)*D;KdK#nZ|R-|KZABRZ&Ck2?}AV3^R4PHY2J1w!3rvG zSS9!9pwf4Sy>*?u1|BYvKl0`3LU}*;c*f4&Jw4W|92C4}=}mHYEO)Vdd_mxj4l6xk zJJsS-s0Dj$rDO}NeO5K&sphTAmo*N~9K0QqQ zH!v~OQOK{-2vg)pO=Pq)<|`(z2{K7Qor6M@AK$q^&0#slArwxJKuqxX9Z3^ zt6#*?b$E9u^c$%aTDS!>2LdT0XXXJ*D!$Rn6q!<3>M3N480OXz$P!@Lf+9n^4+HG_~AX2ThKB3t2v?kkca|lVX&8A|2!9`55pnDZ|kF56Xy=DM*&R7@z3yIIr@!m-Cbq+=s+EGIv$r3#`f^m zgxwGS{SL_wKZsAi&E~wr#t_HxPf9sHAKP&*jWcV{bUw+FoSrWS92Io4=be73uO?r* z{*3-6-<}*B9@)*ZhFi(?cf;F5>4Z5hOu!4h%>4CmdqNL|!{dU_RwK{;cl_FV=r42O zrt-IX2j>n+KFbe{ra6zY^oHPN#_b0`ft4^{spnBzJE$DAg){8=mdSOHYd%?7$ghAu zy~*G3q<^}jW{IrdCf^Rc*PIJ!=2@tBSn$Amb>4;gjQQ+5lpSxhA3P}~x9`?-8`~@O z9LA`n{?;sd)AF%;s}jsMF8x(0-|@d2uhAPf;PK~fI3Q7UKz>i?m+e)dW4_wz~jrxj5kPcj`a^HTh`ltJr zpa5KbXDk%F(~o-)&+YTIypE|SUr)GsIMvVpGJb1|C(>&z+CTSk(fjdb{Bk6GqK(u9-OGNoN%a~7(d7Jw71l;-b?wt+dQog zm!(&Vo~5JbIk;G-y`2B%1A-5y4;)-!wO{0XwBAB{T)$Nf2c-R@L-nK{H-3Z=6SqE{ zHg60kSZ{T39Q~QXm8BO}Adl6%j$Ut*_Vq40KftlsUHnj*&%xp3brk&J``a*`6tX>y zokNL!H=L+S{|z?8IKlB*YqzEk!m#Sr{tGkPuRVpG|F`~z+GPi|AKT8B1i`a_as%$| z%Z^C8+plz3^BrO?=tbnCy_%x4@Hbc&cI$GcN?O@;t#0qBGQBwexqxKF}pF@Mh0lZ=b)d#{8Y_{Dqx)w%#M{HiGu0 zcgXwp4V&doKPc}Vkc35`1nM+;H@R&HHXg~APCEW zJSE1l^v5$jY$WyLZJ2M9^j5tq-(HDK7N4EZ@e8Lf^Wk-NBALjy6VYtU>pH&Kv7;sW zVhoDGhZAC0WnEC~3BG9|AJbV*f^RIG+Z*UNoP1`%8I39ZqL!ia6iZCb|Gyp2R?qaE zu`VD3MNOr5+pPbHCbb-Yy<9i>>%gw$MSGIvRTha$B8UXiAh=?mh##JnPuK5LhKs7S zcKCj^+@tC;xgXtksoeAFpp5JI&gs2fvX92`Pu=X(+g%+4Ke+w~;<=TT41-WUUODf~ z^wAN{Kd3x5Y9W&{=WVF}EIu365KqwgqtEZ;{o_Wywg7zMrEkIYOpez%#ru&CNwVm< zZtD^&!7Y+8Z{16y5z2eJ-mY@SpTETQ4z-pRcXhv)0~Jm+;qza$0c!C4M|P2OAjC&wkg|3&gTs4V#U zKl3kteqcWNCvje;v_D@C{y=m*@j#~a$1$|a2z%I{oVNtuhfG)f>-0$$-)Gq?w2Upk zmxEuA`$?8*FW2uLjoZg}rym`3pFkFzSD?KP&d&-Q@q9Ri8CT^8oe!Th-dZWW?m&JZSokj^d8#G_+w>)?6_n8tM zJScdI^PdUD$Mo30*_M3y{QRiACqHZd>ghCpkHg#7h0NcA z1JSq7=qG3T58{u>;+LyXW_n*X&XJx4UhVI!9y|TyL+P0XuP-0AU$OlH{SIX1)_K}b zL{pPW7i9;cUoPthqMW@6|MU66*wfajO&U+wR2JsHy<kaa<85~H%NK; z^(F1Y`Kk}f0kwnLgRhQ0GDOT@*8qF;o^y1(!FtNUwAe|c4<(^?zVUA(-%kkG<^5_R-)G}|)L(wSFD3H*uW`Ot$3JW>`cW10nQ=M*=l%pf z_DOyDeD-bO=W_7#vA&cF%#X9*UNHI8j>|94`Hfjbt0&*TUK^Ojzm5(&OV7?Wf9Lzx z$p^}J#=i5$Io-!sY6x}1Gx@F@^v#0b@5TB;@$udG`ScinoSNOsaiqfgUV*pRAEfbM ze80%U=*ZJ@L3@UxTI>&6OZM-ow~GBi@i|5}`F83LcYpk;+4be1*dIhYz1SbLP~_Oo zFK~PpgvI_K>UmDaR)U|vZ?|z*u|J4CL9^H&Bz$7mkrw-dbUl)lqhf!M?t{qkBXNd| zc!Eie@kg;gsMsIWeSas%!|{5^>+yig@=vip$oYwj{Xx_xFA0A{#r`1O?}~K{yo&un ziU;QpyigK~{XvSCc)yhnkBa?4#r`1Kr%~(=x>5YyM~nSIf`_QsA5`oQD)t8z`-8fy z@Al^}%fZ94Ql{7+q;?kl&32#PTajePv7G0nUvcj1F^c^`{yv&we~|K-8|M`JgNPB% zYZv>26c5GzAgpI7_6LdoJ-yz;>5U6Sk+5Hy#9zh!AYBJj><`j;n__IC#PFGBvqBvqv@t;x{9QdR4U!6 zBqXWoZkqOTliVb?>gL|deWX)%gYm(LGAiOQFurI&1w|BbR6x|It@g|xu@ywb83h!@ zLHwiRgTLeG{C;b#z0W@9o_mv`vH#!4SLe&gS$99zUVH7e*M6WrG%cX=N@q5Im8I#cdR;>!qfKx7eACG+?X&Ey!kVwOw)1j>J`o z-_DP}R&KyPt3=NauvuPRt(1C&s1!3Pz~UQhjln!1O#_yij#|S8SU$7|L7Nd3p*f5l z(jX#@Cn~{VeP<9B(O?9Ugw4lorQK-odiN0ha#gd}v~Wj|+#^I|kTe8oiN`c1NkfuS zw~`0V$_>JH8fqMdDy8OOXpzPkX^1h48;v~@R~m!FL!)cRmZkw|o~;=dVFZx|5FHgF zS_!0uz$Dm_m=*?UeNd)0nLkb6(d->f;}LC|&ZF5pn%1LPJua=$>>f??(JUWLo8cOJ z-V9Quc{lSk9E3#&JvC_$JQV?U(r8P~n6XGZYqZ5iJ8a?xi<-az*1c!}Oud@GqqRcI zVWDSIV=$pqlG12XU|~>}%~GpTUSZt2ps2s6dB9r9R=i6l#lCa`Dd2UG1yQD~=JH3lu*@ng59;|n2k z>5v~35_Kz!lM9)p^A=V@O?0rrtnj@;8x1=H2i2bx30+*N)ndm2^$10$eiSX&*9w6& zRl&l(1(La3jjKh`Yg&!s3OWWM?v=^>1!_o*(mE6ym2(iDO%ZPZRL-HOiG*&~SBouJ z8!xXGN?XXU8H<#gmmVZunx24&T;&^?lZ1*Z<;`-d1P>L|xXmKv-7Hn9Xti3U%{pp) zHOR10s@EV=HMk@^$$aA$??w_LY?POob|g6!m{b9M-1<7S78Ati%jp~|F2t|YXb26j zia~PHVl)?O zc$2-R^wSbO;Q$#6sA99D_^0NK!N-PP#5l#GX6nyno}`OR*t-PX6kLwDF-d|# z47s|#NpXBb1$pz@(i_@IGT=@2`yhqOLOM=gsMS)f-a^m7rZ0F?O%-{73v<9II^5h} za3lfgA!D(4P#RRTewd=oM{hS}&?aL=*N-D4hmK0FiVIz;mn*e(j38H_k7)vHbw9=^ z-dDWLGA)-tBR?wB0$52cTJP>-a5Q1G)3%PVzL?0p>L_pMeD zid>SEIrB~0}3N1C|V_`U|R7QX4L93`GY33+=gbgfd(N1WlTO$A-f!nEkg&B z*3)jlyJ51FE;f6k3YAK!)o6+ODCaJy972#lamJ(`W}uYg#^%pS({b38s$|hn>s!a% z!_wje2JILSQ5I&RMEnf}8A1|cfb2CTIFUMbUP(y+H6*iqxXnf==8O^ih&vt1cyx4lVH8NB@;z_Qj@pe_raK zjC8tl))cy$K(zq>8f&GsHL_Q$3624Ky#TyleGb)7jD$oh6vaiWt%=EIvY_!5`oMMT z1!X9bPF13;7dY99zOd4isEJ-iZ?+i8Lqhpvd+a@Wh)Ue2C>*P5JC{EnEGAW zC}C<*k(EI4bu#lNnfPFu?-y^IPFL7{#mc2vG=qy}o3$5ma4cSF7Xxl!$O4===e2U_ z)_6trvQkwB9k@La(*u=KaZ4GBi$Eo`G1LM&meN*Io7r?K7YjO(Qji2WwLlcJ!B~mq zYFoPou7ik@qd2&#&hTN1levf$d;X4V=!~HMNYkgLSS@kN>{g^ClgLc*i*k{Iq}?hu ziVdud$TT$_ICBjxVRI7-y?4yi3tH(~Ip!^{(yuy_BNT>3?RBj@3=N=VaDc&NF>-^> zTWiV>tz%7JRT-H^z16~Ydh3*{PpUdB?3m5pxUkyBZIR3q)07nM+Epk&i2F>wGj46g zP&1y1p})+YpP7-cLW2Snf%tewI*H$n9eybUmt__f)F8=@uCE;3!0JwPbpr9~1R`bP z7wu}M%;ngqMQ6S_hbXf-ym6JCgDkYlKgeB(hq4Nkb_{i0Rf9y1*Ad5N&`mT^N^26G zbKrZ-#HY}TnpjUp6IX#ZRn~rsVo(;A-CCc5CYD10)q6Ya?@oFfKk zKtElQ&dIi1t@el=O>;^H;G3>Eugeg<9oLr$?>wlyx~ef(yWtW()3buNR~jVWn$!qNq{@JB*6t3M2Dc`tkY=@`Q_&k znT28yv}$H2;zjr2ScD`)8UJ&Z%{J-~f85JAJ~yu!ba-{7a7FV$IztgoEYXGdbCm@h zqm;@~PD__TmVtw^XM9D#Yv-iXYTMB)Ml#+R)6m;8J7T0-*)HRvtJP={gQ415%v#mJ z@o>z(mQ}V{gossKlG(dqk_j788l8^@RLAM5N+zhFsDw@Qw~qfr_$DFlVQBmU}S11m}6ZoVZ2*h zEwr1Z#^4aUQtR&vD_e!q`c~xhBq52YCz!#gpESa)Y$+7Y*5diI^N8PLCP*k$+AgiM zTeU`E9jjO9bw_L;U_m`f(s{;%lKxQ8a*?>web53H*vq;F4&N`M2fgw(kwHOH9zMm1 z0*94m=CE3-)rV_q!-CHdouL-K3NbUfWLijmP8^i^BCmN>K-A54^-{HVUp208aHj|xDScAvFUt83*PUHP%dKWRG;vg>@71LR!IDlb<`VF{dI{HH zp9J=(ZeXKmdfnuT8cS{mneG3IXx&RQi|7K!IQ1bl8_i!{+FiUir`2=FPAejN&7d=6 zVqd_{bpEmwaBle`u~Rb6Vq!^_#%t=z0as2q3!Q1qAQ?6dSbCnYz7;C7a6E+(Pe(fp zSc$TJp}owpXNRzFz&)HnPjL*fC6$|(H{%~C5mvFY~bRvNyv0XjX`oq@fBT&l5XLbF`sAvZXYe{kV9Rr^yn5PsVEyPyWt=B zi$vn)K_-?kn6z%6b}n_cHnD!S)!`)_i8PR)9qoU0@C&+f^k}FptHlXHg2HHJ$Z)vT zXrsLZp~6X^ty`$)%2=6KTcQWMa7+G19(w;9?&D$dDze;p}u&(>fy; zShi|N5Zhu?S@nLZf!@A&#^$auqq7~~hLtD#9|VjSdHuku3pvf9l*?lIatnJna5%=M znZU&Ky4Vz5CfHT(cIZlA(My<@1Wtlt`+XDh`4SDV)U*8X`C)2YDi*8ga-?Q^WQ3xM zr%WtN?v8y$7hX_|n`LaGm!!FI3hNBAWr2GcROnIgDPp!oSmt7|O$9Ae*hwPj(oy$x z<3UmwsczPAvPLQ)gJG)f1o`e;Uz~IX-)b}=cL5sNX0d@&D%k8SlV^HBp@8naKpKnl z)vc1(2AS@^Gq2?xGUdoqk9>C^W(eC^jY2LQ+ZXGE`vMpNm| zFtjs;$A!~h2*UeQ)Jj{_A6!S=*AMq+Yp8yj|0j&F2Y3_d5xif5mk;j)B|M6k)*%S* z;GH&j7vC4-<$a(;PmHjpBV6?-TLv;QavJr{dkk z`%%1j4t^>Axp)Bkz8wEPi5E}*Gw_cv{0|_X=cobpo z1RUeLgSTSvYXHB(;0FP}4lwKbop|43@Vf#3yurJGf6HLf`;QHN1n}P&{1L!pWTx{m zyiYgyQ-EWGKMVMX!Jh;Ce1loYDTB#xF9D3F|2q78slwOr^HjVw0Q;dUZ+zIn8}h_A zX<7%bhdZ)yPu~p=%G4wBaZjH{m7jf%NARnU_Z!)h<^ecmc4;ylP1~I(P_hh^ty4fnx?&yZVFfeU1+ZAH%;NSLFLC0|*l>^7StOpdBAR zyMS-TcL(pofbsNGP7uc5<4OAu0(dTc@caSbn-p~arTnb_19%yp4}u*a{Ko(sULQAj z6z+cp7*GH6493sL_XB2Lx6lU<^Kx<3McbRpi{b6*<2}Xpr0ZieivAku0Jj4%0#Ke% zKJs}8?+D&eysVF-cz5u!K6oGRF5Z7ZTs#L~fPZ0qoWk#GC8wzWg$Bd_0CD;%xM%S0 z8-u$&Dg1WeH~^OrKbH^jdpzDzyu|M$-W|NeZxrt?-kTMNgQo$zcmVq*@oz%?`p*~) zd3k_0|1H7Y@$$U}$8cXZcocBi;Fkh!8N37d)doKZnB|IVVur#usg zu!EQ7aWe3yG@XNI;TD$X4*dRQ%VWl1X7dEVzYQS9m(NEGChvXH;27}VGcf)L_v%w_ zhyM=V5GUy*zys&t9^y2Q-}WGN;d$l}u}`$8Z^1#CcIz7oqAgjN5Wn;0Mm$)SQM?b~ zbuxqea3|hfy!P~6a8M?%zQn!nF2GMClBlbf%18bQ{)+(B3w;p)@SdmFoP{M0BX~#g z5(kG5@q7{9UA)gj+`I85u}*1%2dQI(w7Zx7c;M~x2+RBp@EgU;{9GP+WiG(qo>Uz~ zC^XB7k5u2CfMW|-Fqm|;N8-K&Kj04rdJh-esC2jocD;Wgu-14(M zjN*L=Z;$c|-m3_s*+kI~19&ueuOThs{a#J*;JW^#E1$lL`t4e8m*78&_aVGJ@b0U? z-=1{6^*d*k^=15YW&6;hEZZiNM%g}VWvl8>y7K9JnSQ&Ljr=`|caO43dFlw~@ct51 z$fK!~2GSzl14snV!KVI{ANbd|Wf1Z^5Cf)s3)|9t_&thu54`)f5yqZ$oy5*r>!gjJ zu56=^vTT=`G|Ki8E892fPrCByd%1qQ*2(kXKZ!InEBr_C?typTw^=&)r0ZnIdx-lt`By^=|zY!6%6{=NRB zE1$ma&~MkWeJA`!@$OZ&S6e#xq|3(4^%3`10d{5k#G@?Re_*;u{$H$Y-=#n4%BSx& z`t4e_?}h&;-o489T1y9?OxgOJkGOviez~$e>j{rePJACzM%kW=bnqPfkNQ)7;9uYC z4MKhgV!&BB@dmh!;@zuk{~2NI$&}5NM9ci25XiaAKFYFvKQlzxE?U_*=is>nW&2_J zrcA!>HAUrb}ieF z!G9F*US)f$rGrnVY+e%*_a8w3SGM;)%CfzUd7^9|wzB=W{-i6PzMs@@*Rs6>{-b#J zD%($4I{0MD7CRqte>;A;vVHbZmhGpRGRk)C6D5m-@6@021ONJd)*$4U+ur^Q{73Qb zRkokAbnwZPjj`ns_jdtwWg7ra5OF@=E7jkBp2?zYr>$(ipg-x#r|-S`?OJcY2>(&M zdzI~dmJU9dvh6q@aeohfxw5_FQI_qOm@>+?ZDspq{Yh6oeZPu-uT{VPUo#l2a^PCP zKLq!K`0{y+!ITVdH<&Hy=M8=q;9mngg>Q`aVS`5j|1MyZ$JdY3*BreV=3%_Mcz5t} zd_`Sn7w;z#7tg_8$3GOqJ$=6k=pWUu|F;b8LmtHGNkG!gNj%lyQMlXF_g?{gISYbu z;eRt2gqQh@LAXCtyfB9hI0nr3q`}7k+tc@c2W9GW^arD89O1({9d@bI{iERW*v>*0*S#Q7x#e++QV;7fgN z)Biv4??Vc^dFE?Air)wD7sHSG5wenpb@+I^qj*{FKft?#mv#6Rcz5ysg{F1zj{&=Q z0Q)|Ue}8Lve!}2>oBFJn2pz`)Y$@z#|3^0(QLjmk4*Iymt!e?593H ziL`g{hV?OxxOfi!Py7QK?&WZvr5VUIqAf41NvZ|6%YO0Ds)z2Lb<;!EXcn z4}fFDeJ9|)r&xUhewx7#10FQ^5x|EH{s`b>27e6jjRt=T@VvpF1$^G%&jDUFIO>a{ z24LpjHjRc@y!ambj>QVJcKvwKSuC-2QSn5PQ1H#f6>zVd%#S~o<5K}`mdREoj=oMTBCT`&i)ba z4&E@`4_mryKaBVB9%+R*hG|i^*~R;}mexN3W?I)AOw;b`;l_t}4d5NcOT5DVauC0F z@jeZ4@f`eT{Bz|2*!Qpa_iXsFKcIXW0ZiWJb2DJ__9)(486Oc}ijO^rqWpLO-yOU! zL>R!nFJL+N5Wldj|AOB;ct3!bxa{J65z|L+{#&%r0a&&9*ly!P~QTgFE;e*d)wqir1c+&c7WxO3f} z&!+)X_U}C7anauZem3A;bXeCsHHyBD@K--BdOF|%hX0z!Mb`r!1Uw4(1mHt-|Juhz z6M#qP{%k=hItF+L@CCS&2X|ihxM&qHsw8?4aMj?q0e%HwJpBg|hcKJmBg+Z@((~Kk z&U9kDuL4XSAI1CKfS-%+4&Ltrd^5fz){g-`0dN%X&jS8;`0nEURlqUaKL(}p5raPq z_>T;Zo)JZ#0sQ3%8w373z>*i>e+K+axbFad;?s}_aDFO&6Gj~z_%{6e3c$}2FI`{! zGNyyyUt{6F6u${G{3zVX2gIMx5Zrks`;PpQf2lTlEaUz(gk`-GzhO)N8E_*E_b1Tr z`RX1`;R~zXFj6_rr_)&*v+d5S|C%&Nz(p9}FG^ z{Gh=*fZqjp3PE-O{|ex*LEMi4em`K!YBqvDGPs`&0uS(e{0_c<4)?FJyy$NGMF{c{ z^c~Kq8hP;hz&xN&Bd*{E_-_mz1fxE{9(^so@QOz8Wj&n5mj$^CUyvo*!k1+D4tzfa zk2m4_m-xO9-~Wm42l4$hzMsYSukd|3gz0DSJ%aBePmH1&d^y%$#rOB{eI>ph#P_H0 z{Sdy7;QRadeg@wUv@ZG}qH}L&leBY1n zPvHC8`2I4!)K&io-#@_j@9_NyzE4J*`$K#O@qG|-Y6{;s;akJ^&G^0^-?!lV>-bU@ z{}H}Fitj(+`(yY%1H$92_zvOwHhk~E_s8+Qgzrz_`)YjOj_*71{YiX(2j6$#`w4u1 z3g3Ug_owlFCK~rU@x2Y-pTYNDd|w4xUc&b~@O=fo--+*Q@vS4yPvHA9eBXy}1K$tg z+r;-X_}=wZpcjPw-S|Ee-xuS16TbK0yM*sc@O=Q^d-45#e7^zT_u^Z?_xJF9DZYP= zZxP=EUkQ1G?^oixg6}bW@$|=FHp1Yo12G&%0bfT3#B;mBqkv}(-T{2x;9bD>^j&Xp z@LQVIJqUxR|LfsS7$2EC*#vw;5|&}e=Fygge-8WzyYR0B?C^QLh2efL!eDC|GrkqD zOY>(89z~kJ2H3Ub4*|y0e;9EIqYdf!4Db=S@%fa&qk#VwFw@)t{5gYn0skvtkxLc_ zPJP3Gp8%TT>1TdVG59Fl3F9MWe>Px;rvxS%Ap9WQk6U`T0lwMb7XjveHa@JwlLof| zj~e_PfX^Dt{VH!XF>=IzdOD{Hf6akBX$T*t!XgJdl|6sIpA+Kco(qa z`3QJ^JKXW~Pr{urX~q8ZKU#Qtem`L5I|}$M7Jdr92~#(S;r>&ASvP!s&S3aO?=hHZ z{<6Ukf6>E$NrxD(!)+As2jDI^17?3sco*>R!yQjQ_k9uu`3_M3`Z(Y_@a6NDfM)@Z z0_MIPf${xoxHFwmAoP!b@o=a@+}$H}e>)rzT-^T|;T$a<|20u`juG%s$74Gf^uHVvr2=D;jQM?c1{SvtE;QIl*46=*& zs}L8@!56{7qVad%Qu0IcL%F1!ReTTk$d5cbikJC~;N8K?{1%bkF1|Nee&;j!-PI*O zbm8vldojYC)cF1P7!2fu_a@;^-r&P=>`UMu1Lj=*y?{pn&skiCyI?TsXir}O;qEo} zml}+6OZs)VyRh2^k0Ro00K2|}wCBEJKBWEKmM>}X4S;v>B`w~FcNg#55m$oa-_HTY zbFc_l+~jA}w~8MhP{00?!7jg#!rkHYDT7B5?;i}_0es+VHOwyHF9jUq8)VS8o@AD) zXNHRr{s8_6vurLX%f`AL#mlm-z+(qrmTe92F1|M-E}nxM_|15?XVUthcq^Sko*}%0 zmub!6-Nk#SrFGHLf)k&W`@V>>hN?rJR9jngeT3|u3u*G4&cjx zr{KN|_*(&!M?MDFo>ZHAwmBlJr+`1AS0j7{KfVWFJlEC?hphiM-K_pEGk^T*YXN>N z$`Inx#E-WcE^Wgl>;H|X71#T^_?Jm6l=X5K|JRxS{pOFbeXjugSeNzX$n!UV3qIF= zQ-I62{QrQK7!&qMV8i&gc1rTLR?uLAs7)9u@l=aWl{%Xb(q_;_6D zKX0fz7{oiB$#PxlEA8TBH5qZAWaQP*}1s{(q z{h$6PitDeKKXLsvz>hVqzluCxXt?~k;ewCHmHrR^FU9pY%%8YE4EVEfr*6)1%Mq2ry(9b*Zwz46G8fZ8}Q}7 z*F0l5FwYN|zsqwM?k>-d0k$WVC&!t55Y^}Te*Abn(#Gf7-?219f41A_|AYGfuK6R0 zz7GLD@Hug3aiXsV{QHSNog{DSqY{8Fco4+r{XzV=PSd#d!%5t}KLq?(^TS7w=Xd^p zg5tFwHC*uVxYGYt4l+Tf|BlZ$D14CfW8x}NwamA}fo0~~uyB6@H-@`E6Ysn2H+6FQ zKbZObuFUV>wBMvF!~a3%_a`&q{}I0rW61|Wqo?y9o*1tV`xX8=I^v1(BCI?y{@G{1h96an*O^3 zcaHt|#CRVffG5VwF&dv3@9z=76XX3b0X#8Y6(0)!86EM&ct1@5PmC8$Rh}6C(TwDY z@n2a@!~Ab`mhk^4fcvh|A2B{p4B&+Tz7W961`i^9IdH!e!2bvQfT5r8!ylVFKOYa^ zPZ&)8{nG&cvjG02!AL9m^8o&fAk34Vd`*O(lGn!q_Xsv;qC#P8VPWj#$kemMhrGrDhN=nn+!k8NmWY6J{@>_Khc!v`GiO(vDW#B=PWPl)0oRqTP#?B8-aa zC4s?j*jA6KdOHk^dEkB>vrXe2d0P;ylj2HU7YrAlt{43MkdhWnY80w8PsW_&7Xg^e zXyEFo(24nZ2cf#Vjws{IJ9Z*mY*|NYE3k9QpN1z4o-|tuM|QJ~`r|H}f}JlBqYKnS+f=xIV@Exmfs_#V9DBc$pn=p;miYm2eqf9@>o}SPYn}wCuc46zd z%fbC-xaq3DhAK*|3Pr{GCe!n1r+!CMwHdjaY)&qWZAP1}!g+C7WcPb*z~Zf4;3Xig zH#%YWbcN3D=B_4qbG=s3$UfhUOEe?bML2sq(fWziG6(_-w-K@~%y>MsEwaK3xCbDD zC3Adys^L%AIDsk03EDA^VAu|%EwpNdTl7`{wN1lzC(W(dHAF<4moUwX>gP=XQe{bM z&(EgT%_~U%__6MhGJavK<2_=f{lZu$dc;cmg|Tkz5i9K%#(Hj#SZTj7)=fQPrTxNK zH}{B@_6uV@uScx3Ul^-{Ws*uhp7sl4^@e5<6>mN*=V0a?!7y6{@ zKOHOW7sg80e>zs$4>m}BlaULJA{x+JD6L1u_BPGp5)_N%b9GAnsE+F%Ht9JpfLTDK zVaS45G)HC~Zb2)bhnaAg7L3$%I8s|LWqhUe%8jln7OL${0U+pTBs>x;PAVD-j81_e z*`t%7Fv;ttr9IFMlc~PI6^`@ z!@mW{KUh_zb`v@YKE#cfwa}HoydW&a7gn~#hal~as#AHJU(qnk9$5OvGA>NPJtNG< z`O~S{UWNr&*sJPrUD@(Z6va?~np*{}V*thKW&Caz*6YzWOvS1@A=r#vuZ!teU@HYx zTX)fByV5Gd+$ip_hL9Dbi%}DOu6DJwFY85o@*{$EP*1}=>!}gD1{9#(sLG`pF!~&Q zBXo?E<<C2clpBYtgDf^;WJ`>(a*~rveP7qm5VUmd&FgWO)&(J`o+IuXl;clswO9-2GlqQ*V ztQ4EAawe!6GQ@rM%c#C|1oc7}OH9zjEyoo$=ykmVH0yEczFM_%xvRG_Q#O*cX(MCG z&$v_2E}%YGsCL!s^mGx8BC20bXm4OdOO~Gaj)J9?f?9Sg1X|TmKs5>jA2ui9pUovm*|2w2PuQKLSiVf zApFZ9_G;LU{u9QS{(=o_X+GobCDOMS! zKoXY~NwbJ#eRn+}qY$4k0C^5$ntU(RdE%q(Z>?@d1|vXDs1f$IACVMpAQwzvP94`( z$l!`N%g;^N<4ioM7qIoh;-P032ePZg9p(#qg}IEDw9AXw6R3)@D7NwIVu&{7vQZCz zk^{rvI$8)_^u9kG18Jgd(P1#mo`AHCX!Ua(S9)Rc0G+N}L_VgShYZ=G7P#pWdw-N| z6RHdbTfo@e@yNz+P8bb}B;d`(HZ-zn2AVD}R7%wd%853}rhu^MSS?u-ZAKhsm#eH6 z$xTN^a=YHRTv@0^7~?%K5fcksIpWbvHRm*urG>Ha$-?>BJ7(wZoQ?F?;@G+Qnd#Xn z`#E>!OaYZ(zvdU_PEVS4r&Qv-E4VFPNWp@oej6*K+++eq?)jv6X_Qx-W+!fF%BfDf z(g3ppZKTZW8QsM3fU&x;x-j^RCl_m*gqcd|>Xn_O5Z%-s?3bAEPV za%}wU*y))``MtO_HhxE8W^#6F>1<*0uJOsqiOC7^nLIbYgh?d&%kP=FxjW9!7v?7y zNQT0h1z6%Q%uFvXiSN0wy9!HV(=&zfv6-1gaXLGo}QUIopPU^ zU7B2&Uzo)I!kPJu*M+f}>50O^Sgvz!ax*O4ozt@usItO2M3!1i#Rn#+xADUC?3p?7 zn7@1J?A&bO^w@-;SeQF~`{ejiVQgYzA@uJRPwCJlq9m*##?LP-OwKMD-Lg5LQh@MT z`GDk0lN~s`cyeJb6(U5C`J`fNp4nU&Z0!6J(wSK-+%b7~M<$BK;shwNsQj^T{`B3f z!8F~()gcT1nO{! zroB~6Oia!!jTPq3v&Ehp(`xG;ZhCgMGn^AKpfc04+^3Nu(3zW6ilx(B7@M8a@|b&w zj8$ida_GIdG?zkie!M`o4TJZP8qi>bo0jX`M5k4=$B=I7b*P+(gc(){PgL#M@a5VeK0 z8(X+aK@oEJH!*ov7-?*5Vf^gP&n?_|;`HdgLV?AV$m^nX&J5M`{WA4I+fPn#e&bzeVH9tk&v$na;pdSR6ERCO) zLYk|SfZ!bHl_~WRDzM)C1KkZX9&#HIJ{YZG@XAX#LPZh7MIAR{4kC2#m|l=UWEeuS zkwF}X2R0$8X{}I`E;Nf<7#XR{%rNF`ARZ2fQ5$73Gt;1#Y!9ZLQ{+-gVEn-TAHn;T}hAyYuxC9v^J5InrW1En5t5kYe z$iR4)qaC~$KAzPDm7FjfHE`JoBd{D_j5;uqPS=rQqB+dmzL@%nO{;6s6sPudfEdYS zPQ6iU)eKyT5J!d->y<`nEs_goZo0D49Nx`UAFIC%hYNWhiVdnNJxxEN; zm>B+W?LwxZIK+Y98Pu@&h>iBuXdMG>TvvQL z0RWb=)+$(+kd?%#8YY4;6bD8Pj*AK_^)`x!OYLQRopIq(8B}f#uMLVIemQ+g0<4v{ zXE0(Y6qZX^x#0(uWB#bvIr<5%>+)?GDscd}&Usvp+}$K9YMAk$#bYiP zxngLm1IccIqB$8qE)=Uk3dKZ`bQp0wYS&pD_bc?n8ff5m0)-Jwkn3t`J2io-u}Oe% zTGd=hK)C=*rfriS5!OG2nd_*1+{GqKow%z8^8_mx6IN>&!(i2L^+ZH|wCP?W%5n)5 zQKzG!)5uZ!aFDoCYK)X{^VY~pbng7j(sbcG`c-xRu&B1{TBOHkb7;}ix%4_l9b;>eB@%?a!V~ktQ zPeJ=dpD=hm@swLJ=7aG#?j6Bx)z?b`Sc8sHos8(7ld+(R`?AWb%!6Hon^21nkr{wA zZyW1CRH%abTWJDE#7>J$tq5vb;(^=^1qds1s|G3^8e&0k9T%3}ix@X=m1J&G zd38t&$STRZiw%^_t(@fk6ut8#FKMf*o1Yt7uDXi>^`Q7P;=}P^E>iI!7le(nY5N|e z^dU)sTsOQ2G_MinPjdfi7RGG z2cJql!mRwT9M$+}d}0VSZyf9^OVQg;`8LbAcQ`+KP}d%>D=8h4#+7A{s(8ck@kduY zDslf-B44a@>nLt+>NFs-km1*RSz4GaIlMd6oa(}Okj$hDp&p8)8WEN&U+mPF)otN ziN}plnhcpJ9*%X^Fy)l|xYu;<{Hd5BHWDVYQ9n}%=I#Xm~_Z+*|NdTSu zr-wa*lG{K$IC%X0%uIaSZShTz0cevhLxlI%ko50WtkzsN&GlNiv54!|nM^a2UlO=9(w96Iq0r^b|dY3@Fn;TM; zvalxDi)uAf%ZLZiq>tS=1dSvHmG1}XT%6QgIm(3PyAo0A)(umK^&*QuI`LSmTX$=D zH0ucquhr2@SWzT4^RjU8Lq~`tQKx}3&^PDfzQtP%difG%I`>74csOi`RReZ6-rFx; zd&Ya{2XXzUB$3n8i+YEf&*heSxrbGF!xAht+(m0Q=*4domojLAUPg^?BvJUJTG$qW zaQOI^U0-oD$4J~3Yq)m|i;RO%5*_oTWcXeemjWMX|G}QpAyYS5wLs)H@Wkck7$?DSATa+7{h@PKL$jlaiZ+b=?SclU<8PI4}N2^jwO~D7&r`X!4a^7aX_i9AcFk%o3X%YK_aW4QJ)nMbx2Oz}c0g*j&ri)-J>3K_okTs*5L3 zwr0|?cy`3|u$1T!QwaDHw8-mB}WWEJO-Ld=pJ! zt|QVgxG!xU&DE2r%q24u@gY%?x^ZI8+yZOVFOzy+)KsqXa?p3NF07#j4M~FHj^%Jl zWGEg$Z=DH?dmAlmI4OcY9LgL@VGnv3L#JmJ=>PYf#R*jtw9Ym;y@t=z$Uj}VuoBhh%$GH`cIuH?V_KNj)=2JSUkBAJ%l3sy>EQUXe8r z%PVRxwRVRbQ45<4bwtg>m|X)FG~!8BvY8%Ja|H0aAE>IIc)r8Yc}q$onS{8ElU^Tp zMM?F9K?Nr`v!b+9&#*%>(XscnykL(MiMy(QqWCS!8b2w8CH|Dw7ZO5C3ZV!=q$;P( zR|RKAls1eb-L%wJlR~h8As3=IT5e3G%nLt18uKHnjq>^iE8SW$!Z5RuDk+#AiKoY9 zK?Dqu8JY}f<2rakcyORE$q)0_5Qq6%FE5Wvl_sv?R?Jb)>EWOs@ewbk;{zbYh?r;|qs2g+2N!&2&5 zS+*;m1q*y`DXhyt!?RDS6v{rzV6N#UEfeDrsfJYRQk<{o%3?GdCp%1%nxNQoME&AY zqc%UTtgx>*vqesSVk~}#Y;oddRw&I^oWLUW-On%MI~zEvwS+xPi`p4#-nkWT`;c^0 ziqWeGF4nlL6PWNLz12bXF{Wnx)9V7d7?)WYFvpRj3hZljK!Xmkt%vjQ*%|m0TZEI} z8sFW3joR;++7LFFNS!}}9?n5@t{QH*=g#48m0jPF!bhXXB10yh&RKlN`I&uqzy_Ns zCTFJ4Vc^0=YwU13Gq$+I8qI5wG91L-NN5J8Jp@9ZXZLJ5#qA$Q`o`1R4?B0JPl+aD z-xK#j(gY*sW*w6i!S6NvX6NCON`{UIbsM9i=LQJr3;1w6p?e6}jq2=#ZduEtp`jro z4((=QK0d3I3hb13A}&)n5?24^#|U~8j%jqZ#^%41Qs{J$j!i{x6o&y<4iSJd<25rm zcE+oGlyT{P#k7VxJ z&z0;g%me zWFf?tE6DQ`utB6{!uBHj#i`9B?Lqz+BK};cL@(ULfYT>CREQAz=6vGQ5Xz*kE;yt{HfVT9j0@r>?Oq1uZ89K$#%YJ;TG8 z)0Anh?(DaQC27nO|!R|%dzgYPNBo-v1X`xq8o9^+`jgJnaTaZ3^Fo( zK7@XOLO^Bx?8V6@ z<;|pxbbFuW4u`Z5`&&*AoD1;Jx;?B8+iKLqHv?{iv z)nMrwo!LDn?hWKzwztb6+VNwzdiJu8EW?yty2xY|2yE^eO^*zGReqj*q{;+kX3%RI z{hV%erJV4B+ch~KZhmg@#NyfMGfU%h=dlIK(cT&h`!j9Ou0Qh;wJtF4wRlG&-z+fZ zQ4PWjt$!fCNGdKbE=@deJw zfSSx4ZI(4yL!cwK3+jU-pLPCl!9O)C5 zX3e;GT#I)LXsmrv2$&w!7xs9JBTLeLDi`A!%}h=Q0?AgP+SE)^^@O$RQme%^Z=5r; z#b{Ltn1|b+i7ZpSAkrQ@FFRTmx!Ggr{vbdyHK@ht{BMgEHsPZu3)zGfV)n^M&KeqcqYJ?*Oeo+316zf9Yt`6Wy*op8Xj{P!QloM z(!P5{K)0voB7C$=gpNbABkrt$i*YiZ#ZDp;DwtJF9cXoQF@NC_**C^rVob*JOjo;{ zqO}Si*(i60Q`GE$?Ff@fr-Sa6=V##xNcSt?XMm_QSIJ&-E{J81R&lc)gmDrAbFDf* zW=KL@5F;cGh~e3Usf&dIhv$R`2L>$)e?bScVP)tzM73G_Z<#mYL2D;dn4Z+qAcUNs zxlL$zB*tXP8CiyN=fmcg&L+D$F(^W&$u@9J`;^NMh(o?sCB1NuffP-{9(5=)DHhe& zbb>`vla^E}9CzAeIU)#0(qSEP9cy5^`yM^t{34bXd0L8kmMp${m&uu9EhUzSO>EFb zRIdGEe|`gtOC?guD}L5hv~VUJbd+x65PzWNTsM;P8_HH9eXYkp_aaqclcKT}PSV0~ zUDHQvveOG8Pe^};;|0Z4Bf}uKejq5PJ(RSV4!)4z7;B}Y?j}~@`M3v2B3z0m3WZr zAD+fSpzNlxW2{Tt*+919;4^)2rT3;TBJH{uWqyR`N-~T%(f|hSI5u0@h=-FT%2S*O zI@GFNDpfNY3}qMSm5W8nP6_sIFgaq*#Gv7IdAccnMAT!TSXoj;ORz{VWH#!%T1HnT z`lL*fYZ4HLufSfwHFUEke~FVAs3_0~SM5HHGKlSh5d7RUh=-v$n^DYq<0Y#*i3Ok_N#hK6)L)T(c3 zdV(bkO9{p92uVI$lj6kK_zNsbj-1olOdofxt0b*h>>s z7HB|Ko3QYPQ2ktovz3aop5D{VbYv!vy?@8X53-eesDtn*u-ny+W<^?NjJ?K(bn?-S zDmwaLpBX1#IuB-AY$s(?f@Gy4yE-h$5%v|FDJEL$RVZw$F?KH(F9IV1+?g+jAZUI~W@ zGKj&ca5`hCV2Da6;*u{8dQwG`h$V@55YvQ1sHDv5bVoMQWcNUwdl60Y?r6~&y{7IH$bO%MDnD(4GH9O0eyT`0=+Gr9U}en!h;cxcf$-um97LcNE%Gu zOTBi_DZ!4VG@=@pgUx$MSqMCE+p^!f2SV020rCzF$_PNpwQKN&AW#XWxW3*zPQWGk)7VB9W-W(0Gb znRZnM^-(?UDa%xoBd-h2ffpx~E}`&lLdMA{^Z@Q0qw5D!DMMN}kt{`jA|!fNh{$(V z2-79UpGxj@Np&e zq>(-dIi*M=%_Sj@jCs5&9R=wjDx<_`JXA<4zE@}F=% zXH5ci=B!!h+~e3!s?wzl)mogzkLjn4%z)p^a%|ggo2@ih-DGLBm(3b>d7`N}>^F*4 zSh6UTaG6SNy^Yn0(TGe_EMurcL5y_EwibcxWK@rI~js+D3XYKE|Y>0qv zA}54dZ{%lgIJBltIA4=V&-XY`uJ5_o^;z9o;s7UUX+7L)oz4NW+>hCqnVuj8#oa;)<@r28W5#=#XSh>{Y{7IWY$VQb_qSjZx|)9zGSfn_M~<^7tJdYD_>n5$yI@ zm0^qQHXbx;3>!7vxy1|)XpPnZktEn7rOmb{&ekJ~{eM~0k@2G7jlVHjHyMzd~IqZW##73?-ox*Ma7%T5rr?fB(HH|{jz;;87Gho~q1=qzIoho!ECxo2I{!|_lCV_1}QEf@!A_Cp;o;ERo zoieos?(u;Ihug5xQ_M`Dj)pkc#;Ma4Ss{|7kJH)(kl9ThTds&l~zP%N$`FvJhzV)3b}S9DcaQq-Y)D$|I~y z4QRl7xChFX9YG7MmBG|W1={ERpmnE=bAl*d!Rn)F$mJ186EDuzWaX?~9uZ<0L6u%` z>^$AVOO~KWARwlZWnEPk?o#Jb(3N0YEKb6dF_jrE0}gaJyUlfWdsBj0 zDoLGjVzL)0@qh$oJk=PvR=Eh|;<`+=$krW$x7XI3sBt-9A8D(&&S<^*6QE73dmQP@ ztN#I{>}wxzSoJB=K|X6ClIrfPz8Ea4p&;?vXpbn=4K!_KuEE635Hn+$93hhFbMED( z*~KoT<NNrqC>4`}z7jBbgC=oLE%L0XW! zz0%UcNqI>j69q)_WbCBXUAlRIPtE}m8OQ6Nm|lj$|zV8leDl2 z@X*lSm`PMt569(V6G+OcDU$X{ikNKJcZ!TzDPdC|+1RKj^$6RWNs7I3?BIYTu}p35 zqrfh)bj&10Wmwf{Wy{2#mFrRrSzXd&7bdmK+XHp}{7PztO?DutAw5iE%`4*` zwpX&QM<-Cs!!`?T&)*&B+O$=jXMEFjofv~4&4%DE(=~gP9OV(}Fz8+FA}Z5sEIq}$wF&D=GX>DQRuWqaS8a zJAz0{jYbaZ`Oy5COi}0&Tz3#O;^KY9%j^}FVVNMg2TK)wr?aXe2CS1F!G^jpBVkt4 zbiVZn#NrW-1v!z*^6()qc+GWyV=o38&;b~1NE9#QF0Wwdc3pREmTa4D1yRB$Qj*x$zeuI}?xM(*44HOn8_nnnBZV@a^&J!j?%JV$~t zy%jG{3(L&$cWG_p$9(>`s%HR^h`~jxiG0W_&VXIk>WgH*!&1SJ%SMgr3zOC#PzYdc zOkr0pwm%E1+wWY_L5~|{N{`YAZHZ4N1ebYS%LD;CLwH{_oK9cl;6~=1%+rImR@j7t za62vMcFf&rL00C3rC5-R01>QEEEkoBAUz*xs@kt;eRQH3v@qduIV-55RGS#=ogF)V zbER?@MigvJzK`wFvd)g-k_5RjhhsU-R!@o_I+={?ccggZzw&xj@bN<}k#$u} z6nRWhl($-ylYruG|Y8Vs7+`m;C=Z#XEfqCc$b(6mhi4k*J z&k`3~V<19lhRVSSKm>%HA>H~nHh&JH%=08pJ<1*LYzSg;zqu;5_OXh@LuIMc0J6LP z%1;XDMj^XO5;K-4?BJj*za7GyO!JZ)@UL_C|GrKO;O5x$Q31aZDaj(g+drcl_fbKz z4@!fp(NOJk)|{~<-Gwi0aL?R`ZNJzv8ybQ2ZF9Drg6)~2kix?3n4|Z5afNZx(JbG zU6DyA;-WFitL}7F1-o=9MSaB102D`F!dV)@)rZN!yfBT<0C~w|4|;Lr#$xnF*h1|S zEx)UV>Z6EuR$})a1Gmdmmnc=HWrND?+&vuRok|S zp`fdbjdIX6^s24==#^S$^v-%fWovX?Oj}JdXH@c*A+I_O7g^+d7fJ58DaE;_FR&xQ zqC$l>D6n~2&Z=vV0MX1d2$!AAVIFRbZINY!?^5@xGNC7MrrC<%`bLMYjaI_IE~ONn zW6Rh%EQ^Tk1`g6UY{{A~tJu8`DXH@eRF!mRZ(hnS*L)(~hS`MBsJ%nPLMMyiZl^~_ zGWpi@4-6Lx*9{quP5TtR#!yl2#nc!m9glUI3M~%TbmC$bBa$O;so9=XzOtGgYEL<&(Hf@UYgcWh9O$H1 zL5PkVe)4^;L(kXUkur=h>49npdSK^K>EXg!KX)b+j z`u@xK5E4VNlT#z@BJK^f7NmA8wV)}PNxCnii=XK@H#GzPt6^(rF3|-q-;|UBU~(SS zcG{&m`rU$B))BdR)72JM=frs`AVG4=W;noi1lb?4m2BAYqN$Har6^(@rJupj7ZXI= ztv!qC8eFG5(EK1v$cro-Yh2swl%q$o6;2dwDF}n=#jczfv+G|`iQRMZp~9%kIC7^C zP{3{|nTf-Khr>k2a^>b$v9WGfFkyPY*roiO7 zn|OJV#uPL#7s%@Y>DUkH%E$P;%g?FZD{DP#P_Ok>awDRJ>U|~CEhla7BQr2m z#C6zAZfF=`OJ#1Vnv%Paq(2qw%yl8jTW>)D1 zCwI@6)PrYh*PkS$&$4a1`q_e)F^*2Of*Oo7ySYN62;4qbNu5LSW zqM=bt9Bgi4S(_BrZcVAUCWejJ2PyOL_Gio6waC0N$(m=!&2rn%XDoyVqqZW1u0tctEK@e5I zum=jU6SLvDg+=C9TwcVk^4VwhNO520%F|N#QE}}N5o`&sB79-sYcA#vbX0RJdTDEH_ zs6%P(T48k)?$juRIUP#4@qvO7H{^-Feu$gABqnz6s0VkIxGq7rfX&VoPLIPZsAH@S zoUn@-TS#inr15kwu5X-y1cLPINK;eL-byF&dOqi>*EnfG`F^oE> zIj(&quSW6nlD9X(i~^^ zniC0_4aG{vGLm>uM6_cR92$x6jQE-w7HEV{4Rm7x#jw}F$Y&#(kzk!KtaC*#ahVP} z4o)MHS=h4=1yX$2ZrbIhCGK8YMyDZKFd_@1*lgz-T6VCr$)PV_Dfp@;8W!0Jf?NbO zrs&ExW!+`WLUAgO=lm;g3CGf{nkFOzCL@7eD+6mKlMEtab!tq-7s-c3#?_0Ma%CGP zRRtTYd}6>|a90#2n>druevtr6SxFK)bz?dK2~j}yB%CFyd&*pdUKACA`hHA)CCav+ zLPUCgtEGlXDA6J3GSgiWKIt-8DPa^K?Vj$`G%bySqO_%rC`{vePT!y@VRu)1T?bi^ zjcj2eTd7uQq;%F2Eh`!_V+1v9=29^7V&i1`;Gnr9)9`U&Y{w;+8BGrQ@D43T>nKq| zNFo`_8AjA|IMT|E$Fm}$Ik*v7IHj+wnzPl-JknF}YUDCA1#gZcN6iE#N&`clI{#{$ z*)n#VbV?KF3V0J5=i&3FO7xmj-AUQ~p28HB!W+Ic@jcI8cTg;$GFO$&tY?$p10D0QcYV|49-1r+5W z=_~y0#*}hUT~HPwv8uH&U4V6I%!#A?+`JM-gsbd+my3_EfI&pu1_1cEB@IoeT!jgC zONf090;IO#`HX;qQe4ub*uT!l&DBrOV8>a<4a>-k$Nz-$Sz$P<*kjru$gqvmRIC_x zAZ?E-=~^S~h03eju4X|#?M38DCaEcsOOg6pz3oFYHha~i&jWQ0;ol-SF;f?r^)Hu@2s{v1CSy4l}Nd-tWMT{5+ZDk-1DKI{F z?%deyM1j|_X>eT$*qb3uWU-h9u^a^?l57N%gt-zAnz-zZK$BF$1l^{u0r{0CKK5R$ zm*(o+h2zMd5`1GAqEEn3D#RV{e?{O`RkY$8zV6rwE)Q`K&k(wWoyQ516q%P+wF@P7 z7PLx(fGo_p$%U!Oxp}#jVs>(BY-#$!WS|9UNuUC{hL>c6*twCh!({jtSRIuO5kw?a zvU6c!uW_}MeU3eVrv7Zz6Eo3Yef*$Y7Hv=3g%qbVH6j3>>wgI2GZhjAHzZk zXNClGNx_s=2{wF+M@{arP`E{G(Dcl}H?V^gxQYd&d%3HVl`HK5vbwQ9tcvaJ(+)Ak z6E5>iDB<}=(Xm3(NRxOR+n%4ja~jOPfRp7j3rXwn30f9if;yhaQ@k;+NxFDN(e+^F zp06?M+>XukKHQ0vb`(MS%JH1NOCol5ckJlqn* zS5wzPd^29{(su?Re0;NBZT@PyIu-pyn7rDq4*aR<W!jq)i=Vb<%6&%SgRD*X}j0hORlz* zRiC70bu^pDIZWTP4S$5Zg4Qt{-;yk+bWdhL@I0PeWN3H?sre$Yc~E1wtysQXs1S># zMMv)Tn1?b^!eG9ug>YdM^FiI_R;?qcG*3!Y^xT+aW1kre<5cxU3dgYiXEv(J&PElZ zhMheUk*;p|6eaZxud==$i11<1>z4JRHE2OtmkayL3N@#VGR2%%9fFpaVh`#o+^=ev zw&C;u5NC>5Cm6>TZdg^9?I|xzMsY?7P#I@*acT>9*`P!Uz_!JC*|0Jz>i%Q{c-Jnq z>(h|MGUFn5A43%x9wt#2y{5Q-Z2*x~E@HR0&}U8$>q|G(8Vbq`{sLWELuo29U#TVN zL$`J4K}zF8Nk4<4S^UJ!CDGx*$__Pv=~>uLbE;>G?rbi>fhVm6vd0Z_JjePn9oL{o z*WV>KmIdu?K!sU9xmn>>lqw?{rpjBgpN5Ncvb&d~9n(#*TfSDoGSR}AtJf5E9Z}uY z(29ppEf&oP;A&}`iHHD5?DTP7FjD+&pO)T}5RN|cyis9!*DIhSm*Xipxg_@=i4K}Q zxFpSrLngF3nM5pCIEpCKD3yp!Q*y&_phWl0~LTyMZwlMYnx`1TH zl9=+TIJ$*SBS-18uU(T2$hn$S#RX{%4yoLjN4R;vOOmmuaDoRMMN)^`Bzsg-YM&(O zcb$vry0}!nSlPxl?B#YD2dbDM`(m19!#WUqMjmuyu8L7A=4r;E5KN-UAl$Z5yIhA) z@%9xOqjQqoZX?604)Qx6Y{8VQnVVv&tKT}Q(B$~oDaT#oF$d+dBzGj*!aNDio4N8c zOsXUaJ8+A-KbdCb*P=_pfe8uph_)P<$!ZK#Q#?|6%%iN+L3|!t%h_!R30<;7mO?LP zn^-Xqd^sL6ju<`_xbsH3fQ}ESIiGwZ50NB(<>})put4Pr7R88BSfL2$rsh(_NC+;= zwE_C73I-%M0RYB^84ZS(tC$AS&UqgVOf}mu(tZbOYeF7j0oF?j>s}ZkwL55)6FU^U zZ9~sXUh7>skO&dq!GRVy>1zwf|FpcPuK7=2g2&Zt#upH6qRl6w^*i5Ju!ZAk`9G{!l zq=E`mHuiEAXXl1*+ z-6bh_IN8~Yre5s0W4Sr)9L zm>_3p#xo^Eg0g&WwSo?qaT&jB>F)VSz5nliN5Zb0O&vL#(uE6k3an}l|aNr2!N zn^i_1I1jrsJeGwyF^PiUAw7;}hyr{Zw!P`Ip77N=`6|B{@ZxyOzmM3-KsPx{`K1%U;d_7=dv^NtVZ6E;ML5==ck#qZcpK;WIT4PQ*TJ@tMB>JX1cs zX+3pen8r(>BMnc@hXhBr=5pPmXo;j)ujdt~U4VPSA-UQH8mnhIz)XfFDEQbwUpeS)?YJG2)X=(0leKu9`llr%-6(>QaL zR|`WJ&1WQN&d@%iET{V`SORHWW;?l|j&iK%gmEwZhgtw^ASV^=I&#%KlUj0WA2~g= zgiS>xVXm&E*zQy}uy&5AGt>Zxq{}l_`#BYx;K3f;clar?PC`i3*0gp--NiIGd5cxP zSp;dNqC2aXDJJP(7ch1Y!U@)L-X8i3reCG6r*_O{dB5FBllRXNQBIi6?i61sJ<5i3TlCghhP_bL) z!{ee*YICBVOMx6=x^ak)32tbX)27PE5E1^_RXFZMwm7G^ZsDr=>;xcOF#oqv-{17# zhM2^fKRZ94Ozv&eIs5=#Y_uKo%}g2^bI#PB#&g`7qS$OLMjmMI`KO`fYE9iu$qqRg zB!Egd0hihPBnlp9_#JI?LiwY}tOs_J$wc2qJ(Qx~h>di(S+}&pTQIqn;qZsF#^Wc} zv~Y5xUW4Y>Q&AFu;0xiBN#lqG?QG$6DHdV~`$kQ*46q4;gYZ2O_a#lCCbENrDRQM; zCyXSe+2#$ivL_i)X?g_u1#vLYB4GxEaPC}{Z-zDxiOV;`LZD}L^y{E^!KD#&w%4T+ zccheT8Cvcb^;vos2!K>P%7Rq3E+>g^*=72wOm7pG0>`oBM3gl2K@qMw*9WFB2;{7- zpQ1O(ETDqKXV^FUEm$lj=6Lo^KiOLz2KOZsz7KsUWd}FQ+gvcBu7L%AXm|-{48$*< z#NHBEuAC_>%|XvgNS|uXOSSrNZEaX&*by~8C*m;7tDANah7tOZIjLP>mftv&c>7vq zYZt7}FHSBL&YYheUz(m{#~{boq$+)oN#0<^T}%nyq^0s|FvR>kxU`08MQA`S;jWsu zmc%nB3g_4oU1*jeYuJq_CHLtPUDzLUZ8eilNV|^2LQkw+K@$07EP3i5nqL7cUWqs8 zu4hgTB{957B#l7fl41d;TvDt{ThMLTnK`diYtSoHs_yz>)q^+cJ=Ngc1k%`J(^r#Q zj2gXNjOYPUaHpat5U+LZtrxJUXfCPMZr)tw*Zekg~MwX1sCoz#%|TD z%AtVUtcq-r2%A}yK zs^XQcO$HHDtCNy%ueC{u7$QZ)mGAk>OIYJBt}ar|8mtQ*Iz6ou z)n5BC42$hnZE0o^Gu&Lk;&y|}T!@gBa;%1l9wsuKtxuB+Oo3yR^Lc z^8(vVqEq@AQlXtH(RR9}%uVJ#MZgfuRv`RffxHw>)qO%vA{IpHxoDF~nN6B_5q~Cw zl{klf=Q^C=8PdTJV*=OZk=zD|DYR2{%Za~Z+sB-YpcIn{0Z$H3;GEcFgYadsm#aEP*dWvvgqIvAivUL8UUZy1}DLAHFu*FtFii3 zrNh1y;JcU3&duiNz^<(Gmj$P}<%^h1EMT(_Z7TZPXzEQ|ldWhbhpUX%Zfx5vB{{D6 z1xcw=Y_`gKAO+pPUzU)Mk<7JVAK>OPPC4|(tBviRJ)2@e7teu-6WXPdZ?Ij#m1D<2 zDF)B9%Tz^loBPP5%T{?P?M9ov=#CGW=);M~fdsRA@+q^1b-k5Kda0gPF480;DEe2P z9OH(`!C*saQTD}AOd-9jU`_{c!Y1uXT|a{tcesWrCza+3Dy$<-87Q@@Wxt9K!VSVA z<-X_>at?0%g+lL=PgR=k88;hZ+yA9YyzD z&{m1M#H`3r7~D?KIBB0Sl4}OJIIZvq3+%k`4*7KJWCFnz&CIS-_5`IvN|)}dRV$aj zaOvqn)1yX9jxp(gWbZO2%$zg%T;M8%nC8c&CD=7GD2<$yN(&^Roya3XS0s)SiuPE@ zL7y2&3f&~H;|W~(tbGc$v|`k*12p5BA+rf!^9w0NQx6T(b7C!Gw8$b_$|&)nUGFULa9F% z0)7&isU*;Fisu!hDv?tq4>Gy(k_VAB(Nq`c2jQydU>6@O8}N?A%rKlQI@k!^;ck-; zEPH04l^Jd7$Syt5qY2+wB`x>S)VBR2=^um+OMo{}`>DFelsfb2I;XCRh*Onmww>GEfO2TJ$>k8tYh!j*Z)`}$RjF}XhEbS8XiqUU z^BPGqN9s~qu*0&l%-0{u&Pt*c3ae}a8J^74q4Qs zosb*5BEur#&ZOW9bng;SbF$Bf!AcrmyO)%`k%` zjl850cCVCO`F#4$AP)@9F8Osp{$Oq2@0&FhC7630fbKYUW+mojLXm)H-v6TeOiLSZ&$f4VAzV?P|j$CuK2CRSL zjpDU#8Z$9shxf;tJ1Rf5@QWE?#61_;;YqmLKNaP3dNaQsi$mUAj$wTo-sRT4$L{_C z|9<=@2W=GKyBf5^?B}wgcRj-%6P#F>HzAxIVJ|gUt(Z1TJsoP*pysw+fHt0c|10RP zyi2^+<{nHcRu21Rxt>R*`xieQo|}yhdLO?tzimS`SqDyZ@Hp4Xb;T;Afcrm+q%}k0uQF zh50O+fO{3~D=ckR+@Wr8;<5QuXHBu6p|kRH|Y2h2?Ra zj|n$V++oBJe^Uwwu5ahi8e7@b0%u@oA$+pj-z{bA^;4;`U3`H^dHIee3P zch6@7?`%9@_lt?XO~Sa!>Vzf=4UIEtc(;NBXrJ^AH{Q@)UuWo7^?SIc?skz-hS%zj zuZjx4Gs)n@D!*3rZZ7^t;D1rZYO1v`*edkuNAE<>Gox~v)qN>2dFzY(`vX`UyVqWm z@!#ol{0NT0xhD$$n!TeZ<8J?W;Lc=(;Z`EeE9v6|KDaRMse4AN*ER+0Nfzg6vo0EG z@Aj65;dOFOZ@{}7YA?){wP)k@YUgKB0Udwb}S*I#+fwO5<{dw2@szh6yr5pVuScMiCPey9%JJ0xYz z7D|7C{~KEZg8_UVgnQW=gv(F3#SFxIyW1C3Pg)f1HDmb!^6thF?DEAKlI&K+E*&gh ze`W2+;p&mAD~GRs>n$|8l1y1J(qus-Pawbx_7qwm-x1xAieknc<22`v1222 zv+w>s*h0;B=z85zv0J+CU*giObvg_oSUyyL?|Bw6zH5xt1NfR9%1Xwn^gN@XsB3Qm zDN?XMfAZq7OV{)$Y}?m*^SpZY1*;#wHqD7euhNoPoj_&j{~Y%EQ~8H|sF-lwjnU=! zq&o(W`wpl1-hToI2XWv?92^{&n}ayag%4f~gW!f_JY^FuH1#_kiE6^9cby!=}J`o?FM_D-vjUy zhMoH`yoJNBVa6K`L4FWHkggRQem}vHLE&^gcC`~%5Y@T+(u*#Qn)!&inTQ+d z)uFz_&A7;M+2cF6x+VCX8{Y!iJ@B*ka1b$<=EedV| zyTwCr0mL(C-+Rx!?~1#{tJ5ppb^|Oh51EZJ?yB_SuvQtss$UI~X)4;_Q$ z$+^e|Ax?PTtps;iSloH0x7Jx8UmKGEzAy1x$NS=-5tH5m>?p_mS=f9b!R|7|>&CGe z9J^q$AQ;-Me|y&>0bu%jm{?@6cYRff*p`0h^sevW@cnLK=iaa^TEuD`1s z0(DvQaRO`$32epq2C!Igpn@47o6VYt>BY(ioHMfJ=d{?(2YP9coH++I! z=QQEl_Q-?fWFZNExZuJE%iq-^(t~9_Dm`5!_G$ZInGOlOQykj@=KXSp&+p)P_V#kM zyFKHvS+eX#5gr;F0#bkrYij>jiVz5N80gB0DI*!Jt&%O~7? z-F0d9zW35U9ky=VcRzL?`CSh9SfR_tW7w|eT`3#i1NOevjKe2NPvfwVjl292Rd^B` z_RBrt7c6czc$$h&wmVE92b@6Apn40xVoe0UpI1bwIiC(+1lJwD;hI}3npV6jL;v>H z8Q3_dk0El;N-vn0;Z6e;hsy*mjuF-+05V zhikVUx#imLIUIe`p|t0pAjI1I=T!xzVcXj3EXRW|^XQhH^E{|!!p+2KM_55XQQmXM z0~qFDHSy}=tXZb@+{Uhvh^0Vj31RJH~rl4>1G)uQ1mDUo(S4a8CE$_Ma);r#Hy+6vHpO^ZJx{-Gb$4^CTUOX{t zDc~*Cjd07vz4v(M?I(C3c}I^Of8U+qK4J{G<6Y=(bo7uU?~B=6H{{m6FaNI^K(W`F z;5~Od1ot*}8azL~%10`9-_f|yTcdPa18?9|5E{i#@%$j_XW;L{NCJ(;k>lPm@@2&b z%ijK#%MUb|gs8;8c1P%XYb`Uh>UVzD_Vtvt``YgLYxL@l-W4`uMQJeqzxN(kgx`;X z;_>Z`t2fkcl!Svz@}}|+{0X-?cE3g$G4wXp?Rxm1rm5E*@4f48>euv~v(di)m{;lY z?jQ8slL3yr<(4(8rWtmz|@$Dl{keZujvJIwf) zHg+ee_zn+Kyl~&UTT0MIw`0KO>8M`YdDYu*J7+WoqW)xzo#XP43MwjrwMkB<&PL!j_~FYZ3;C+g1Kp^_7+8tN>`Y?DRAKIyQx^{Ac%zpIG8S7FZW zV@fZHqTo;eR3Ut5pD|WQeEfIA-xeAW)9fg@eZFt;4-{iuJ@#(zs$Grb|B9{S;T^?{ zePn;%LbH4qW$`ww(H#%P>b9p(k;hiRr4a8+XmfZK@_-(~W_VR^=a`5XVGgWg%`nk{hRf+LU8_?}2s*Eov$9qQrJHz=v#;Kr*!Y^vP5&rJRIwN-D& zj>C7NY2)#G^wgFxJ??7mDbjn0k6uU+fBoKj-}&k)+TWvU+BkKBdsjRk?TvP#77edi zd>(kaCsgOIcl)OIllg9&`nL4l7gMdCp2^)vv{ejsP6l#x0^W@CqkDm2go)Np2T2;dO#eiB^Jv%&~isIoqHJQ=B`CB|7Rs4|vc0*ck4=PRtdjw_5P$ zb0rPI9M;St(t?KkPn`Rm=|{xcyEjdSI_RDkqH{MN%av!5o#VaSVuqTX7BA7wr^ z6#h5AJ$#mNukm5rh%0Z0VjfQIZ#i<+;Wyt%-%(Zgx5s%S*WS#PaXfqX-{al%AJI6= z$1vP0Oo_Ax&DUt`uH$xC|9$}N60Q^1{#9-N#;|_L*7pMs#|QkNx3c$NO#kHg*ZV2Q zzvi+1RcS|FpYe_D_eY11%x+mZ=GeC!($=5-^YER@%e&>DA$3OHt#~&lloPM^9)Ul? z44A4v-)N>@aM*x+*WK?ucDIC)yJW`~Fq{{!Il^_OMBy?dgvaha?tDQwjfXx*e}fZg zxY5Hm#2v82!K=oZZKOrJ_?k6-Kln2d zKMel;h@0Rq)z-p40{+{hYy1=7-FL6?hrxG!V2wWt{$#{I1>X9DYx184KlI@>eiZzP zh<_IRcM<n;?*_&L+~&B-5P%beC@`8ZvXjXaNhb9vh~*&(7(QhANTB_mwgkz z|1Ey9^+8v}pDEW>!Y`C>IK#P(M+aR6O!;Nt?4fn8YJ3AYQ(5OG5}r(W#rTI1{*3xM zhpPDW$XRd><&E>t8-D`w!o)f^mdGo{ON`$@{>Fa=&KzIo_&hK@vBP6V-dA*PaB7{) zCp>5T0mu)|taA&-3*hWy>)cYptHyr`dFBbEHyF|v7ZYAEK6kfsEO;s5RpbAJ@EJ6IJ{$5E zmlAFp@7aUrXz!q#jra}VPQ<5z=Of+&UNC+i;_oS;JP~KXs|n|Gp*+tad}crDpKv+h zdE<3^QND5H7x5dwixHm+UW%CV<%suySB!5(dV3C`GYy6Ekh9>tvF=wXk&hcciSU`q zpsOXkXuJgZ;5(3i!V4QiewUr)T=BjEw+QBV@_z97=v+(2zXs0MGj7Fr<38th9?iJi za0vfa^6`u-8b1KuhR#?vW_sI@UKPye`$LeQhH<@S{QKaycATplpM5sQd5qf=7JnR^ z-KIt6iE}viT zCXIE!n~^*V`E&gbySa!*!5!nDru>EVZr)hs zU5w%p0^ ztZOISNqA~=DF4qQ{Mm;P-}oQE=Rdl^%|^TxJZF5_`52$B%er~v4}j0AWZgm}KOOSL zNParxOU7-4KfkrXEgSpyUp0$|DwIc@OL#Hnqgl6-@M^-Hts%W{AiwN8(4UOgUx5CD zm&HQFS@5Fq>nMLN>z0kx{wv1!Kwfx0i!msq{{?V%G3yG(Uj?5vlXb<24}eP%-vl0u z_zrN{c>jfn|3ub}M|=QWiTEaP)%Yh7e&_}CALFlrvrAdmNO&^g!uC-9Eo08@e-Y(1 zz7f3j;Cfez_!4kA3O|hSbz`;9gz<+EKmUw#P2=ANXFC|5jlT}gJnP(y@t=TCektqb zzaqj#U2NyXfekt4BNto-qDi$WNXabdwS90Z&If1fDVe7{Z_OigU9O7r~3h&q01VCi~0A zFM-e9HQ-7+LwQblopXD);r(ZP6&W7`;}Pe<732FL-+o}gHH_8XP2(Sj{8W5AOhtSq zcsk;(;Fj@c5&l4Rz_lYj6FeL7x!{hm@|!naMf{;#F&{{H+4$B2xSzEFmpdiYS6oPV z*7zq8e*0duSHy$hRb$S#PQiRDcWOxQcM*P9X~5+p9s-w)H9xC>`TkLVsVCe>cx+b) z|JN+f%Q;suR{a}bK7S*Z;Qjmbpqom#m2mB}5T4(s1J4e+CYa@U2jcHMkaM%f)8xes zZprxTWQXw+VHtktQijL)hu@k1_26s^^P`083C|m={M5aC+kolxzngI%``^uOEED=w z|GU|_{&%x;{qN@RJn*}_|J}Ua^}n0Ld$|AI-2ZMKJeqa=@8@YWP0KKm0zIzO86-{NpbyTX?zjZ51%%dwttu z8~l1RdBf}ReLuUw)l5##g6qb6z=Kb3aFYp7C0sxmnVznq@m+{tcy@y;8$ZGHu^s@G zkPrWPaOOGWmvAHDv30%am%*&R^nF!h>HBKN()UeU{Fjj5sV_obp2X++G}BZ3#U%cU z#XqBr_E11?KuQ!#}he^}+hkbi(a~>l;G&FCzVume;$c@!x#7;&4?_P6{cj`UEV!BQl=1xtKMMUV*JGL9 zG5a^s~pIzc#+@GVtVpUoT~P?*eaX4!8xA zKL*}BvCb_U{~CDcKG>@m|1S8n2JBNdh5X5{2aiQu0+)?q_h-pi_s4Aw`RRRFNVu3V*KgULuV?um9dKN~CEpI-^iiz8 z7=M^Njqzbyko)&d3-%oeb3K>wCC_aSJcszBPh-6%;vsO!Sp9L#_&J2nE@J#iyoja-&JEhzgXn+;r0BMz)bHSkzb~h z@$11cR}#59C4|4?O7x$3*q4EszsAqJvBuA$g?Dz9O|J2#YOL{a!dT;B(^%tG%UI(L z*K?V_crM|oQ$u;*gYxd&w!uwDd@gvw*pD9t*uNyalJL^5-u7NLR(t183v#u0-niS| z#%ixIW3|_~vD%00xvZbsrxC@cz220u+GoaC?LB8qd#_Ef_nMEG_FoIevj196cp7;# zf7ySv60V*Rs?gr^g(of*m}`>(pO?7x~3)BbD9 zSoU8nW7&VrL~`1HwIez0zh;eP|21d)5Xv%zB7ZYyp3FYfnu(b9Uu|RAf6W=I{X538|5`Sd{nv`I?7vncru~;YE0l+F+JEIDru|pmSoU9q zh-v>-jF|RcC1crtjTuXCT}il_@RG6Yzm|<<|Fse^?Z4c; z@u_00@u_Ys`>#nb-v?i~65~DWC!5CK1fRYi_K6l=`luO`EC061rH`67mi^a)vGmwW z5!3!_#aQ-V`LjcPm43lk^&2x*{mRCwU(HzdUyXz(6J7Pr|M>e!os9+)B873!p(#$=l6!MC)`MQ49_Xc)3ui}R{J%;Z0{28*C6bd zrV?%?JaJ(NPyOlu^s6m!d_QK4bwB2ebw4`Bx*w~?vbQSYxnz2>x2hO_{gPmB)i9R5 zRohtgnKf4a3&zTS$yoPuHR0k#z4a*>E4_-b(yJP)K22k#-%7Zh@WjO-KZS25Je@H2 z-o14o)Ry$jC$?uD;wN+#MEn7 zjHPF(8cVN@sjh#n$<%AtBc@&(s#q`g^APB@n+dlPhN{GemtMPJ?8kNJwWktJ_1rX# zXMdGm8$*X@>9r?}rPrpOo9!jNcGKk2YqyN0*XGoO>659~o=do6EWP$(!pjLy_hUre1r-30A!GlL(m!HThN&K4ePb2*3M`0Ik{5hsKJ?I+7&ww*6*oh}BJ^9W< z=pT>4&fN6Y;tAu+ARnED-EhQ1VClv0gM9NG?95Hx0_UGWdl-L_a@ZZuNAe-a7mN#s zk^chr)ft}+9()=5=8S&?ylG_+g$Vsc@?65wi=VR}d$?DTp2^8s@RG6G*KG>vb?=9< z?+?)XmJ*iUTypBU`8?`7eB4;y;nH(!JfdEk;iX5NGS+u`3(V(3df%Bu-Zs{Ee8*UN zj>RZG^}b6HQ}4TMEWPhaB&Xh&3&Sj*^uE%wtGq>%OHVLvtnyckH7}?eYhEy6ta-td zvEK7D3AYn&Z0@~Z+~>sh`bG4Q>D48#Sok@# z@2OY>pNe=Vc-nZ=HE91^(H|0?O}Mcmsh_ddwOWaM#(1HK{)Tle?)zc;h`H~FtaYu$ zgqIR-LhsAxO&9gjWIaFBLzDIVP!CPk^V2cb_(MH36KMJ>X8{=;Xrxo9js zCiTLMFLtH}7IR+?<ieIggdA^>n}Yf_XUxq$6St>ddwAL=`o$@g{8;L z8B*(KNjJo`bp0&J?5gx#Y+j-_lELozBZX~Ghyke6~2B}Z~Tdb$M*HgrB_z` zY9cS3-5XwdTZQL5mhCO3-jyu9AN8(eUE^ThU+Mj72~Q*pFWf#n^-TlNH%)-!^rUyy z{g^Vj?#HyT?uYcO()+ELTzbEP=~boo8#k8TZ_-%xX&Nj4ma+0r^|l?8tG$+!^j4De za(EB0zDh4|ton=_E4^C66A72_oyPXp_gNJjw`a{*^=TL@f9Z*pf6LPQ$8o%)JJ1g# z+)22J_X6`%d0Pqdy%5VMFmA@&Ot=m1sSn1zI6QrX_3d*vI4+5>opk+6>n&F-f9e(c z_PKrg+`fHocpm%qxfl;%@7uS}4gEoSjlO+uXb6J~y9uRd(rZhPDn0h3$;Hxxilw)dUb}Cf8}6U< z+I{=n&>qrjJJWmi?Q>~Y0$=T>*OlI{Y%INB%~*QuzI|@!Ptt4l?Q=tWXngP6=l1rG z|JL@opMjpcZ=d@=UeDdP&kf&QefwOjhr!snZ=W0bL*G8PZ=Xv)IDPxvFb~i?dMdHM z?c3*u@j~;)zI|?JkG_2_?Abclch4p3D zxxvps-##}yAJSv??Q=tW^zCzPK9Sht_U&^+|BxR0zqfrZ&*;5uAk6k(#P9!rA3D3u z;UDte3jA+k&rQMjCNgZ`u^qw79|Gs`?t@vWXZ+(Y{JBStBt8Ee1S1D=9wM0bME@2% zI6v%~2~Q^s7n?r3_8sJn5zJo&W9>Vr8vilU&tl(j4b1xJsweR$j9)_dt=LDLgS{-v zH+n7nZ@z$i%f^z^o|p2=A>Z=iu#-LS+Zi7FCgHNg%Rfwh7Wo_h1{wQ=CzKv|Zyx(3 zjkmo8@nN8bv568n^mFDJLLZ`)Y) znKQnh@)vP_nepS`UD#JVZ~SF4_9-tI{~361ZoOMH9=;B8>@!_5J`cR*t9i zO;?Q@yiJ+27jI|(|;RyUmp9AP5u$^>GY3g{HtW_JLJ}G zhW`e5)7(aXzOHyX7+t{2x81<>haH;G^QGWRx1s*VKL$SI=tftL_%yKmN+>+Giu(9Z zGrjvZx(Va#jc}E?ci1(I)n2Vc-i~-D!gnGb0xu=;myOllE)()sd*_VR-f%JO%jfqM zHAcLj3$}-zZ~C<$>!M!^vYv0aO7N_GMR0xKS^J8nBj&!M8Ds4$>KH5id1IA-$ynuI zHdgu3C47E*j~9)VUd{MUwD;iTh-)NF|InbcKjF zfs4j}PWk$c4qI7$dh2h3zn~JHk4U}=@^RxEA4jvjlF%%WAK+6@n&$@Sp8w#__vVW#`b_e-o%PCZM+0NqX2)Y5$^!=7BK$sEjWL%g!8;HB#AEo z7mN=FC|QW*esvqvm=4kzVpVP zJ_r2^`<&@_gW<{C_e{SVWbJdN-;J1Q|4!Dvv{_?~*K-kbyw>@?kF$Ns!`=@Ej5XfmBj$KhFxGfejF{t1$+$b-M9lG}X3X*DO&EXb5g!KAuLtkn zSJ7W~?%(JpBRR*bDP!$}pElM$_;$kb$1QnfOGsb)CMS)*h5Ys$TIZS(4}s z@SOSe@Zpaly@VGMo-uoJ`Bi8e%ddj`JgYj`BjkL z5&2cfL8rm{Df`ocvFuOBjnzICWA(SXaksx2>-(T-EWZlV#+o0r6V^J4aH{`3}+{@0%uZhYxY4UF}JkDp99}{uQ*Rs zTtog)=FA!24$k0wlU6a*N9{YCa3|r#gqMw-UG3c=J=x!O5?)BSa%OM-vWHiB8i`zf zGbERv46*!Vi1T|x`s#0ALcKq2W&J(;{^$5{yWr0Y|M0%*JG%&`TvrLdP_FN6iYWJb zwE1HxBbtr^LjkW$yxAZB5xXB_;%<)7V(}p#y|d=!~YroA;_~Y;Jt4A5pZS+ z^NfV?=@i1FeFtB{ydY)hm6+b|BmQOYSm*Uv;{9M$p)0=xj3RkPHvU4Eo)?NJPZj6P zB#c*|m!JAQC|@1(4Cr;3zPOn1ym1ZT-*z1Ji}*?~RDC`^u*AAJ<@BhG@Ur-{RtjlY5LS)@Zf4dr6$X~-9S zFWToF7^f1RN_Y%97e-`nxBRFRyVd_;F-q#mOVCq$3rd}oHG3X)U^zkb8yu$P` zPS%WbDC^rWF4iL+2U9P@_>|uWo=oC5BY76`>4aOx??L>`evG>bcM@JP*8QPgg86?I z@pm0}u4%jizWHJ2rXt<~Zbf_wxNYqF^CbLhC%kC<)_3B0dKB~Ah_`{=P{^P1bHTZY z89s0Pe#lR4VVxl2Au#nMEdR$LFFb*D0^|P#zPjxk^&+vn8p($suO(bJ_UAY~iS|f% zI^i+s9hiRk`*5z1;(Wr?gHWz(*?8*_+^cusoS}$^z^f4# z!1PDT_zIsl4&x>CVhNXwuSfbBzPA&uCOl>Q5riLk0q3Y0{}T9`<9M$}JO=JWdEgg){#%}=cdl}|jxo!>4dq{qco@87d3@~szXthvFXH`atn})}`;Mag^JuRq{3yax z52N_xS>v}M{O~f)=}UMq;puH5{?iD5$_q%(nD^&A+@HV2-#=}IVLttNDdy4rd8zBq zOT%;1pO@mjH;Hx3Xdc?1m-gqS{ds8^ANups{=Bq5Fa2*nFWr4Nd>-TTh1cux`;GX4 z#^8kdQp$Ce@Jp;Ot$-=_`qIWGS2cbw{TYe{wf%MmFc%Oxw7%dJ$R2kw#khr;W6d+@pnQ#`1B^XVtg|=GqcItJu-iBVO zo;Cgm!f&4&_I7{_|2X)h=do^Y@+I&Hlv&FWXTiC_&|X&juAQI0mrEws_wtyrzL)D@ z=C|=(_+EN($Tf|>2VALS+_bUMhbgBIPk9#dPQui$GQIy5@+~lGfvIDcH-c%GNBJK> zKG+I&c*_4`c6pLt1|E+%3$7b~3*j@{Ho9iQQwcXSA-%&BXz#^gH*NfG z@CcMYE#nV^uUH*+v&O3bTqMsxK5zUDgx~ZE?w|2rlc79XiFgRSYJB>=XutI%F25m^ zM_fpF+PH%7`P_(WgZX^u{DWCzo!>BL;qO5BYl|ap!Q?!T<@NcDTQ-*8L6;5bY5x_L z#=GhBe1tJD+yB>*-Y`0Q+2ryoHE#0fD986~E#iy7^@!gHZbW77&^@%mo!73Aw+CuZ`ukt-u^*5Y^Xx3Qk5 z1!Fx=oL4hHJx|p4l66tPOQziv?Wm~V71NH2`rSBu$@ohM&+{ax&!t?voP=LBmfaIf zYkYVyOshQ0?x|xeyQf8C**&c!?4S>2{*vR7^(?!Z8DrVa%q2XZa1Hv;xW08`*>yCG zW!KS+*q<+9EW3{Bi2eBz#%lkzvFtiJ#^>zE^T+cgjAhrclrZ(REU)C$kCJ5vF>fq8 z2`c$&)2B=Ssc_HB{^rx)<<7ls2t0=#*%FFYtB+o)VnQ$`+zihnW z-I#wK&AArrz!+cbcJy*C;k+^DAKRYKxnjg4;4$Me(jQ#Pxk|#-gx$%#?K75eIpIPf z37>E|VYjn4JkL{NeL4R{-p zPPE4s48{%P2guKidcUA7&j-m^+?r0})6R=>r8jAIP3m9M3Aexuul#0=mEWwf^6MBY z{dwcZP@YpT*99#!1Q}6c?C?nE%K8{ ze=v`ITM5%{E0&khH_6KgpMP}3(Qb=;>U&Y%)`+9s7Wrau=CKi1PndRFv7F~ik?&!A zOg4CaRLn)={|)k?7e^fJvM484z+=Xn?}vPO#GfZcIr%V{c3b2c7G!HdSzOmAe=Ek%3)yb|$F@M^>-gIzJS*PkN(f&8e;N4yhUi1=i1 z(fGn2K=^H=ZY<)R;Bv$#gU5}3gy9RLt{U-9a4q7K!FA)WBm5ioj=G76Uk9FyxBzY% z?|cCLsf6}Vc*gi4$cGQ2{UgqTXN`XW^8MqZZZ6{2gXbgO1zw1FFL*KH?ck+|nci~5 zOm8(}#&^3z`!j#Wr{7)nCqG_RN4>v;n8y35q@w##`lC<3G+NJrl*U3UdgW@{`SJKs~hir5c%&Kb`!=o zfd}!iOh2#;FXnk)`ak>BaF>s`V4^oLNN zkK+98NWKs9it#0o5AGj!)r7~+59$3No4bDeg1Q#RD zg3HDqK>XLio~jaY7F;#<-#-%CgiBCri@%Kr=Sn-R-ieCe>KWM%G!vdqxO!3V_tZqflL?nE4&k*=x@xTY zPl8#VucN&NU*6=V6P`)9@wyP6>oWsbpP4c)egN?w#(XZ}*@Pf>eW3LbG zrS`5STm#4br(vx6Pa1dYZ>;im5?)C7F5H*?x>|o-t-r1oouUXVwcht| ze_buK$7PuR_Se<=>uUXVwcdGde_buiANuQR_|EIEtM%8_qII+Wx>|o-t-r1o-Va)5 zn<)nFudCsGfpxe3x?1QD{dKjV3GJ_|h5n#*uKv23jh9%DAMCHI_1D#G-An62{dKkQ zd}y7mzpfVA=fOYZZ4bkK;stL$=J_CaaM`)0$=?mm zFF7}DjDP&q!v7gx;b*~IACx_I$K?3OU-S4s<+8^{7M|sIf5ljS=BEdOTz>Ui#`2rr zHvaIn@Ne<#p!e^^^nZg4zxnefe+f*#`HRN#o4;f%zxmjrF+dh(mU zYI6C_ci68+x%}qmjO8~!Z>;)^8Ov{e*;sz_$BpGDzhW#u`86=x`$up;HXp^g2*!_t zx7_Nw=K^T|Q`6+nP<|YCRmR?LegpoWz%0M^JHceu^WWET|6#uX6H}kx^N7Fe3G^3Z zU)~w?3F9xn6>@Zj0+{J>{}%UGm5k*VzhW%E_*G;1#jhF5FMi!ve(@W|+8;J)%>7}* z^^Ajwn$KVR#ahN%e{UOWKNxPY53lxGFjo0jjMYBe-^coWAKHihc1p&d0@L5lSj6%qwp&QX8F1o`e`iZ zb4Nb=hhbOMg5RKoXRKcyEMP80L*-$FQ2jch)ZyzhJERMPtP;gIWH!v3ySq zx@yApgbU~=4F9tTKZtRR{Ve8r<8MM<#kjW+@fG03h%4abh#7vxnD(#P4l>V#^uTc(um_nE5@l8~u0JdheGmX8NUzS^Fk+|Fut2tbLMV zY*pxKzZo#o`x?q$ti$dz;u3f^;x~imBEA9KF+Sx-d0xtTzi(3MWguTL`8AM_jN$o; zI19#B1)snA&x-MT5q>8gewg-qIrWa&gYc_rJPY~3cVIk?crSR~_^&9hqrYwn@yUC^ zP2&rG4CCw3LGK5SjX4sK(AES5(JZ=1!ke@n@`(<2s1m%AM_bcKoxMO??=2-*&OQkMeq)6a-TE)L-79RGj1W`44C^8S^nIQWBvWf z^_X0R_}qtnJ@%pJj2V9n;kgfy;SV7EmO0qrMmz`}H@*$>*FA^(6LAsDeTj@u`Cf26 z;&Z_h#vg_JJiH7h!K~lc!1R+lW&BMtUalSEQ+~p^OYrhsG}iecZfl6I^F#8+48I5A z=~s^F>pYR7@o(RZIn6fscQ@8~BISsAo=C-5=ZVxK=6NC$#yU@=VXX5+rV?%?T-g@N zr}2XOAX#2Y0T zZF8R_(-#+v4{^Stvt>Lo4BS!t%%e6w=%M2>L@Il!wgo8mbZV{D*qPJpV!d`Wc?* zKQtma&wpq}%=BBvI{#tOSm!^;-~Ls%aXi7kM3akiJ45-zGsbG~wz1lK-dOETfBbxY zbuAnJ3i{99CA@!63F#|-(OB_I#u`t@!Ax%n@i%SDxJtyQfw`|#@-xA;i1&l*5of{N zN6PTtPxk`aE8;A;ZLIRo8hbz8*q6Cr?EP{tVmvYSez`IJtR(DC4f#pVeWT3()DL2O zDkHw}Mc|=>@aqlc{9fM^+*eB0_k`QE#{8b(K2oNqi~C69?}f2MUPVzQt|pvAUd&J9S25wSgt;%1>HGOtbsZ)( zz07@zlz#;IkG=!@S|iSaJI0@ZeES6aphr9c=DtP7|1#u!-neg(ya*n|#}@Y`lFL*0 zzMaB(E5$WF1kOi%J-8S#!|J;S8&r@+)RG$W>- zVaoXLA*bGE9?bTCGkyl3PvAa6@}3VNy^rE~O1O1qD4*Vc9b>)!xKEJ%Pw&6HvCdm5 zC9LxZbUw>?B409=d^wSGA7T7_m5lX#jT`Ivsv7J0m`IrW3R(XTp#Iz!&V7V2bKf8N zHzD8n44#*>0{z9>Sn01CtGxNMLw!`Ib01-x{=BiuyJW2LE*q=7xpP8%oflFx)_EZl z#yT&gWqf-L&-;Dw^K@>Aulh_UJOgHb&^2*hZ}?`y(+P859qXs`Cla1axO{$Z_-exS zgiF{L7pK3H@Z5!={2G6`4~+HEc$@A6t6bEZUjE`x1dqS1r`;qjbeZ6Pz zbJEv)hW)}LeZ8l1eZ6OR|Mc~qSf_pl>tUyb=R@DweZ6Ps zAJl{P^`6kdL+=>RU;BE`&>qsG_Vu2jJ*1cG>peqzNYB~Vd-jeW|6kL4egb+=n5Ova zDg6E{ezL(#xD#ndx2`gP)mEc>;)PL<8{;{Uj{RMZ!%l{5}{UyTi+Vl}Dx8TPu!QUGGVZF4@Q8YRJ z@fV9mxz;%xz1kM|YI13&#-u_Xv`SV#Yy3M1kJDWIdD<+W7^VWgykhEuDPQ-KDBt>=Kc9v5m0i*- zh3ShciF^Uf^5~)+ELr`PcCcjiSK7fcz29T{JRcdPZ}X=7m7E%E$lmX}PsrEtf{1a>1KJ(VYC%kvQl zaL%<8o=X@&dnPCKKPn;&do)91$aK< zlfa9{v}egaf$<~ZRbzjC(UUm;=cJIoxR`JWFZlR=j2Y{GRE$-hnz6>mM#4=n>#M6} zeEu~2SHrGhCSuw-v=g2+_T`0k$@9%Zfu(Mgtxn{!4#vg?Ite4O~Bi;k%`6P`06y(`ej3;IX ztNmjN~*rKuQ#+D-Hc)DUNyRkg-Vt%>`#_AukQ&s;cn_T^)24;P}f%?7i9q^BByz8e? zf7mrnT6jIbO=CU3)5dy!=PdpK#>ZrMIbqt#GQS5Ye+Bm!cB?Vxjh}#gKfYiJ#(xMN zUY~VE#AHJFJRK%x1J{>W`w~U+2?>^+0a3|sM z-66kEBmCA$>{Cg&Vf?$0U;YU8twfv!&m=r+y!B^br}-%M0Y#hz)9#h^y#Vq|3;yvF zUQT%W%+O!epJWHC{?s;kw?7$c{8=#8_`~xz*#9;DxILjfO_XPJ9(Mj<$~FEJP5ujz zpY}ZV-5LJ|I6IE-frRVEgFlP(_`MQw7CdQu6XcmH?3fd7C0y7W%J*@E--M6oqRXQ3>h-7VW++(>xA_-@9Z$G(7sX?M%`pJjT_ z;rlybp05$hYsSv58RI`@{Fktg%=la2?NC2x3o~6kHRiG;T7X5;a{EI5 z;(Wq9zk}ubA*KiA#&p6wzk~7_$n#6ED^HkqyOe(o^25up!;g3vyqNH^@s5upzn9i= z(&yuga|u_B--7Vl@qJl0{sG2+4E-lz+Uc@9vyf+JP~L>w2^UKtyza-CvF=Aj%=BP4 zT~Bx-VcOv`f5jg&KIP|8-Y3yNBQAr-BX;0Q#FW>J??U`6lv9m_Clg*VR{lKSgXQ@t z#2;Nne=zj69yk7v4F3xD^%?&iID`Kt5^f|sZ>;uRFh1oM zpzp&z9-a@v{K?$cvt)cDcyMpVpASO0*qs-`i`&M(!thW|brPOWxUqk2ygMKM9;A=g z_}MhM#>-hS%ky{0Zy%It^AT?XFGPGAcroI=;3aT8-maSboX7C~9LvCo$6ETs z2%j_lQOJjJ9!%c&$OzpI^_o zS>yBn7p9N_$08mqs~gX8|XXz~vuy|bR);FcmD1}_`WL4NvN#;q8uzPXD-eZL8L_8Isg zG5$yJj%V?GV!USt_Y?c3d0q?K=OFmd^SHmpN{{EaNS=kfp74b6qllkb%(!O4Jl}=! zB`>@#)K}>jjrDy|HrDsWxN-OU!uSr1i)VB;IGzu~_S1RMlg2s^dOBgA7sK$9mk$Ki z`7Kp2%ljqNXLwiE@qCz=n+fy$7Rnb9em~A@o-rQ&1lnT-^V@_M60Thu;%j{3`7TUP z5UEJ^A`jU!8|No$yS;W91P3>nQh5d_PsdEZ>hJ z|C3(AKGldv!8PNbhy2u4j0eX4yz^Hwu3`K|$ak#ZeG`S>iSSM1hj!!r)2o<%Cxgo;w)A>pbuUW1R=S6!F$a zF}@h{T!KC5U#rGC58PcA($l#GIb+Is9(dlE@5S?5(61Q#`&q^Jbi(5a=PnQF`|x<5 z<`XU^ya;B0-1!_e`6@L*SBuLckQA6x^;iuI`jw4Bl_#sVZ7+CTVtMrb(h(EXpjE7 zHT0;@z_01n@Vw}|ufJ{`+M~a2jpyaSfa|YYhw-AnZXL$Y{^&4y0x{(&p^-HU$=Jsb?eX{`s>zsfArU_`|H-W&fH(O#`Dl$x9+c7+d49zhyJ=X z{OR`Bt-XF<>)8Eu>o9-nuUq%mtp~A={V%<4{V>+8@5h=guaDvPU&fD{JMn&N%5}jU z)7uMZe?SFHx!-S%{a`g?g>M`G4#EsRgZ+UKzYe?-G3BeqgO79F5c|haMy4+=B-{bh zenHo~vFv}e4lO;f_D^e_+N}%ed%gJ!*bkI&F=3e8_Sj3nsHBH;#P@^%Jio z@=2J4QvM|3pWa4!jQxIp*ay!U`~Cs@;Dv;j5{3zxPw&4Vy$csmKI2P%34Iuysf=}9 z=BI1ixB~fh*bi5Ye;k~JUuo_?X84bTGw5v1gt`AXmUF)_`EL<^*Dlyo8(;n@*iRL3 zZjA9!@F+UtRK!{EwDAu@zIi{+{WA9TKY;V}67D2CHyrYxLHu1W4EX)NEDw1PnEQRj zS@5c{+JpOlDW6C9lkxC!zb|>izd?JvH~^c}-si128d&j5#(Mt8jrIIjjP?B2!AyS# z(|-Z>ebTKp}DKM^t0G#` zoUHOM8>{@>Z%et#UpOhGKaKPYOW1D~aRyv7{tD#VTd+Si{*U0%$6${baTd&TepudD zAkWNTzfr=|2^X>M$ne)=px^Zb_B%yf0+%D+0E#iroT+zKM;Qt(rX#df-hJ= zd7|)4e>P&KKOco3NBE^k&h(d!{~qaO;eTVrIQtpceJsLWZA-Y{>fZ%p^^Y-Q^^dZ# z`bQ1S@*hBYS@_SW8$bPiw09o+)gvAPYyYtFo3`|nU)xyu%^EAeMN97p^1CUI`bK;! zcsXM3e{)!;W%(GMoU?V?#T#iqKjexg|4qnG8;8B0@t=aXmC?T<-U1#sUiVqZi|B6= zZvj`0&!l`W?DHeu0k&|f3o0&W`r2<5QH#U~dZM^RMuoNWKN~dE@MpNUwtSPk1?Dor`qR zIoNN9muYQVZ-3J{Nt9>rGH6g*@6 z)0Dpedv{}R@B0|`7e?|?$mhXq-*Zvl%-)<^N_aV8`Zs0xTM&LnIp@YB9tBs7?}PlL zgE?1?cssZj@esIf{BsC@<#^6bMm!3hGX6gyAFbqE%UI7>+j!qE<9V;b|3bnY<4Yjl z{0{hIi1;M%g7FQM*WsVR_+8)~_n|$&>MwkrR*lu3xgDWB7=9Gtb?%h<7x%~e{!94; z{A+-jp006YjSn?rjSt!nuknHV-o~pLm`d#_KP@ew2B#oR9+Gxx8Pw~Qgr7f~PM8^K!-V*HQz67XUaei-3bjnzJ`7}C>tRWR0gRW#Ok zRW|+;4H&RF#+8Gq&?wExSPFC|<_c-~m!EBDW{KH}wsXV2`FPwffq z^(nkRHs3esW{sZ(Z-sJWKH>~`!C2pqs}b}2(d`ZCQO@tjys_GY``3AY^!->e*7sw> znBT|S@qOGh{xg*4w3i3`IZ%wRYdVr=AzwD$_$!#N;#^klPiJ`5kLN;>uYo+CgEPdSxz3 zE#r?d{3|%;)>!Sm437JkEA?_d;RR#u*VH*qN-vN1I?MBAvrym9|FSq2^?*J9t?3xi&-&GaQNnf!9dx4by) z{eV*bc7}fr~XcjB#$p_;NDF!M3sLGi!W5oM+*Y;YLbefi!7-iOUt zi^d-TpI*Q|apPYlZ^J%L<2%v+v)e|xep1zc(S$wy7hS@$`tO*r<~>k-dAa62;}LV- zQ#IDSr(vx2nKV}WOdG3xTE=RhS!2B?=8cu!3YgFHanx_%=^+d*p?u#!{Wn4Bor`!o zxL~~P2Daz0D;i%4zI5BLgR2Z*zaImiade{_kN7ljH3?rcewyjsx6w6>vp3>9e($j3 zIz>D_%p~&Jh<76Ve8fZGZtibz`;Xgt6}b zw6X3#w(|De|8~T@|8vH=|BJ>-AF6F1U*%slR{32v$W{KLvF<-qg+1-rFuoJ*Jvcey z@M`gLaVy~_UKqR|pGWv@FATYcoTTZxD0uI1?zwjZvw9vzYX#;UxwbtSb80YF3$2(z6tW2@rRh+D&Bt)Zvq#L z+mye8_hH1Fz$N3aQ0_K%{p^xAfy*ZUbIR9mbQRcg&) zFkacd{E`LugfMtWPfVV%-geyLX@reEqDUMb8^eyNKQ z(=T<&SbnL;jOCZQl5j0yywZI7`mUqjUFIj|I$X?)3Cpjp!n@Jl@Ev2d@1pUi&k1_E zrHHAgTQ>d@<)xq6xPJ6g z8}pKJ=3I;q(EF_>%ylV-zXNjm5t%cV-mhaUz20KN%L#KGis|XQf$L6jdAQCLb0^^@ z)>$a;j!zN$@yS@@lh$=KK51P?<3-29Q_k^e-dN+)Lc|=OxDLepH9jpx%<+lqK$L5I zS}|6BtC5`Jlf$|N!)tuXMa=OjZ>;gD5HZK6qOr!OQp6me#*8&Sl_TbOR5#{$^(Ks0 z6A>QF4lRa^Jacca!>zI993FRpbK zGWUyXT}6J*XDvRNe$G1))6e;WvHX~G-Gt>4uO>WW>j+QXiuB+&j_ViS7F-#5^cYu&-WZ@^l2PXIa`;IUSZMr=h0rdm+`T(Gqkt-PM3}4cY54dexhp$Yu!SAr?qaO@LH#k zykP4Hl2?sY|C+JxN5fe6W71gjxfx@v3(Og7T|ny|S{GO_xz+`=?xA&ojGoOS{Eos%yohBh`BCMiJ0pGRb#CS)FS4(Ks{ov3rrYmU7%sC zb%3dawT>cr31w&bwJtDbtaX8M#9SAsMB%wEFk!6rX&9^jO&P2IO&hEKwT-ndFlVg! z#6rSaN0GdltV_%oYkzjzSboK|4x;jE9YlV`weBHaviN7d4dY`8c2)`Ji=q7_pE6eZ z)5dC#wz1k{&RF$XNO&n>`swBU`W}>r`>$6ME}R+U&aR@d@-G`J|8Zm8kGiq^h)){J zk9fyee#BRdZ?Be(vnR>W?4#eBZt|^DH{kx}ewb`sWw=_Py2hp*{ZH<5>TBrElNcx9^Rf zj{|-C-oAZr=nu00EkZ9rz4-NQOj$8+D@EM5@9o?7Qm@1QLHpgleQ)2sciQwsef!?< zA=9_-jpi2zhg{#jH+-jQ9Uy0VCFzCp#?k|q5-uk!J(s?lrRS2KQhF}wDW%tvo>F=( z=_#exlAf|}-y80i^mt9vOL;!px9@ePSCSsDZ{HjGi|ia`ih*V4G8=K$L+y*=>W0oODh zc?#>}`v=^N@pa(MV*{=o@is83I0C?~^?4vjS1k<|}`w)!3NO^6*S351d6s=2OpJW`$ktzDCYOC*%~IAuRLZfdu7?TZH@WPUWuGg1FxlghX%AMm@Uq{PeXi_x zD<+ryZare!@5(+`;bosI``u{^FZj~+2^XgOB+J_ zsJ+LG)!sE@#h1OV?0Fj|*Yn;?!cQ6Nd7m}bJXiL*n&-}&oXmNy?003)D|=m)$C-Vt z>H`xQ-(OXqqOs~TZY+D=nz7QGHkSQvJK?#6XL2Dw*~`gZmrQ%P*j|_WsAZ2UdpX(T z%6?7ux3ZU${jKcf+)&7mOnbSUvFzn!e@mvlT*2hBmn#}8zfvTpz1*0w?B&W4(_U`e zSoU(2h-oiZHI}^`s_gHF?0M_PvX^TZ%ie7=lGA>!X)Jr)R>JLsD;q<8vgfTCd%Xr; zX0p%qdJEX^PMF;5Ex?n;>JLq0+4HuHWzRdGgkLb0J+ICmkv*^Mab?e&H~ZP&z8UZ5 zZ8)daSoXZK&n45I7bd8_J!Q{ZjhOblHDlTH!UWofmp$)f!cz$s6Z_n9!Z2a>>1ke> zGkaTcG2yXaO`M|R09ZOjDxw7Y7`G44Z|Mqnp0hTu*Z1}P@B2K@*{?Qdzh~B7d-m*^HEYkzo-Oe@ zpLa%B`|)aOy*}lX;Sph-&pR%x_GThrvNyC&45gRqH?P|utoFvukK*b5ff`}8H}%45 zZ&Cr1y-5qJy~zYj_9iQ=_9iE+_9h?1lfCH>R(sPKFxi`eu-cohfXUu;3#+~937F>R z_6n=L=?j?b%doJ{&m9Sv=I4$H>-^mDAfDbom=xB2*ePM{ht>JV$~xazc~Iu->ipbs zVV$2l5irfqof6jhxlYDSbbfA4z%)NMC9Lytvxf7ACxvx>uFmJx`MJ|UJk8J5`MnfR z^K)G=AD8Cm)&xxRbJM~)Ker&P^K-j|b^dLy;eNw9zgO*v&hJ%!KN+PRPxEtoC0^&}_61DybNd6P`MCqa+OIz-tn+V2 z438Ps`M^3qSLXxk{9K(6Oic50b^b5O)BN0i8E4sB-h}s-H(@PrBf|Q8FfOd~At!~^ zznL+dL|YsB2Rgr3=i?4byw1nfbyYNdV-ml2{;lCDVV!TQ<0i`WW`1tJu<9QW-h2JR zdi}Z%iq5aCN%`wh&Iqf%tg!0q5LSJi!kV8w!aBdUUs&hYP6+G#+9c{7<)_ZCof6jk zcgu?NyT)+Zu+IN=vdu`m&cCf`^7@ohh6jZ8{Im{9c)v#t)4CvGyw3O4q-9*)=x1!Bm8T`m*3{U_qw;e9d)k# zPOMQn3qshoV*f1scQ4MxyP!TFwO=76@%Z5_jlY!7+OL4*@$uZRfbWTS2+v)Mc5xEl zgAO!^y*fFYao6S{}Zp^`{u%b1eed?`{stn zgj>If^P`hy!Z7uNlD>B!z6PB(-2tb-Jpm`c)K5zC*FnDe8muP?ru@-uL|E(XxUkmS z31O|b(_qr~2=pyD2>ogSSAboabDfuCJwyCob20jng}(}J=|?|#z|G){u%;&~{Ay+V)VH6qGf6%v(KRw9LfER!r{?YkQLwq?p(drFTKV2B#FZ?;k*A8HPB9-mKxA;Yn~e$v1U#q0e{3hVu(SAXgJ*WrBIw#;?;fGfeB zh6}>ekgv$2ei`mFT!Vfm(yvfZq34_N~{9&i)5E8uEyx9~%dpO;y_Zh;2GvJmo19KUnMY=kqv!q8sn+8>aP} zDgQK{`n8DFUTeRV>hG6+BjrKE^d31KKaKO1b>n&s_ZiMC^zz5tgK^7?=Q!&3q2q~{ zfpfy|1|Qvn_Z$OW3GN8E9o!l4a&ULR%fNlYT;AY+^ao7-$bj&@IA7uhtdk`CFgP(ItY6p>@H#N9Z%g_#p4PWjru7b~pDE;i;lu7l{&Zp8F2h5@CnA2s zRTxJPcr|!jSkpTZ#8)7G%J7WvAoLxw2hQUXpPrw9kG%%p3kdiKFs;W+=~ekm5T8Ii zz2{ExbUbl~aN{W2Hd+@Z;944I3OE7o7TyN=@=^5%|*q9|q0^ zO!3rDrSb`Ir{RL|W6-zlVWcPE_28a>bKt&!Nxnbe1bEQ!kZ{}gksnWEo=U*;!J`4w zdYogzJ0V~GBId0ao-#bp;IHo%$RCx&IuZdd2M-5)D0nnrk{=5=0iFnWD|lM?Rp>9P z$2vOu`|~MNzZ~VSGWDYoulNDhE=kYkel+D{!PIZ2d<2;K$&@Lc`pJ|N;9 z^|K(X^|MP@>u0a9*3W_9_=TP2Zd6$7-x!$Ar}cHh#7|26`*A%@N0z%8;hX6CcA&qo z)gONc_~>2bj@B0@eZ=ixT3?u0SRm@5=U|yc?$VjKlasn?GK^XVxpM{k{EQ zlGklO;`E{HFyz~MP+kIV1$PMR^M7Z+ z^!!ijDN}msc#`i4;_3OkFJOB9?-$nR|ABz%`F}WIdj1~?n4bT~g!TD+ z?psw{{zil~|3`)OeohGM{hSom`{^=XpWdH(!)e1)V9GCj9(SvYxyJB_us)BE229W6 zW5W78J{~YVk52?l&*PH;)ARUD!1O#`b7*n>ss~egwLMJ-OzmlhFtvBozEzHu#$`(5 zGNo}DH`mvj(zp!l0>*7h<1)THoH$Y%mswdTjmwnAWqf^5zb#)=?3b0sWqkgqpI91~ z@%d32mq9;dXv-!K0bpF$bkvW)x!18Yg*Bv?A^#)u9?i2nZ z;y1p6dF%ln4jvNL{2CS>PeK1Q-cK+*F3jI|m~p&r4y8w#-`5Fvl*WO;y7Bul;8{P$ zoH?xXH7W7L3Gg(S?vKt#q4#5mbv}wqc-HwS^nMJ*>wFY?KSqzI`6zi|osZHDru6W9 zlpByA!b@=ejhL@C5b)t(TE~XuHGWu_^XEv+$22@9+zox@TX21b>3tm1r|~06pI*(M zQDH5w6T({mCWW=Ux(cuFF`TcW1M~fa-NTqq(~bGt0at?QeH%JI#n*!~0h2tve?#$H z|1QA%IKv&nT>mhiu*-0d<$b)q<8i)y_Mm(QyckUH&(QfOemS^5;KRYRZj8oPfCq*5 zKt3^m@0=MPGpy^h==_AiN}u1#^u7$07iD~kl+X7U(!T@i$_dYT1l)=Fi~+ZR2ZXmF zenS`L^9Fn+wcrn z?aK<-7gy_9?Nbs=`K4Q0;?-VdC4LI$JLGv>uZhnKt34|S>-^UqIbQ8ouQ1Pl9e|%M z@@nsfgtdH+8rF4jG@jm{q4aNg6!UAJ#{6aBv%sq-F<)8uM)1MUWBzmye=y>89T#1< zXBzR8U%F0D67SoDTyI#{anbzKbzIaQPK&(S!x>?pC>L?uxE6la_eptl@ECJs-Va6Y8h;YeF8w`z*w|PRh8ju9KqcoalPtQxdQ1q)Z1) z>!dimk3#x%OA6~cDfE5}#kVep{aTK7HH7uMhB?EXhEw&$`ZHiEALNfDYw&(ezzJ|( z#|+c^ zBBWo}aiRA^h;2!bL=b-foFjT)gyeM{7kXcW znEllblrOx`5pvPGEr_T0Kla970DXq(eULDo-p3%;`K$as2J$L7j`F$xEdTyRz*F?T zMZi6H-yuA{m)?Is{Lwg`-hbhK|A6^@jDTx!Zj#sSG934;0EL&H3y}w<=R#L{E-bDm zrRPGQAM_kpdM+$I7nYt2r9K>mcDwXk=t|FpzC4tk3*m>pj&*^|b6@GX(EIJB=fcu+ zVHuti|Ns76cnh8jkHT0MZTDdRXZY{X-&cbldj8b@ij>6ThqpBTQoQz8nX zYH<0Bcz@gQIGEC}+k~+8k4y_||HzE6_K##RUPtHqA*Fu~-lsH-E<%n^JcjW?ye~H$ z@G|gB!1O*{J;u|*^q|X#S<{mh*7W3rH9ehRTE9xy+bam`dV6@(<#=LRZ;!?YDgC<9 zb08hB>+KDh_)!x-Caml4O&Bga1d?C_%U_BC-^zsjY ztGh5h8gK$!Bm7&$Z@CEi0!jxU{71s6j1`H1w&Q}-T4;mi} z??;!g-Va(&F1#Ou=6G5!E0;Yq`TwZ-zZ9vr1dj~_EU zX?WT&eTRU`+y0Nk)GWt(CjlqGG=4?#>k(g`!TaEbX}l_o@0Rf;Z4YSuxG=x^g*Cqi zgth$Bcoyk9ALl!28{S6`cnx?`cszyrnn(L>*e&$O^ZW{|A3)<DBQq zt*f1nI552>wXG32>M2FA;xCH`YH0cn!EG;3L5F9Rkuv@)h6# z!-K+Xzwti*h+%q;qT@AwNXEbP`i6z|`gD9vuTRI<^!jwXOv_ijjCU#P_?YrE;_3Y4 zuPnoQH8TMxz^>lMXMc|Jl!m`zIBi(Ruk<-c$CLDY1v4H*>z{@7AtU26DxWvpVYpt# zUsOJ8IA^#X<1KW(@4)rc!CA`%Tn6qC{tDu&W?(-9&V##zrz!q**wcXX;2z=izo2!w zF~1_nPJsJ_zk>Lt39L64a1EH&wI}@)p8yXAd;)kl z;2d~Vxbl}s&oHhRc8ZQa9em84xZZ$|0QU=j9q~&>Fn>z;Iqx1$;bFtHUKQ0>-Fk%8KJ^Q$eHsu}`!oXP^gfOCu5ZS= z@WO|J=TFUYw9Y=oYyPE${ro%3Co!BioH?jCeOX~mUx%=!uTxml*AJ%iUyAgs#e6YZ zr(d}lOzZS3H-Kk^e@gNf&BjBPk0)*h*96=EE(kaM3fFrT=9dLb-_7X`cnP>i_%g_^ zy%_f|;AU`tzzyI@;UANH59X@`+zh7mxhVZ~{*BN-6YybRcd(DA;~OB~Ax!dl#219= zTLg6fx&p2Q_XJ!A?h{TugED#p=C>K9_fRN38lP|R_fO|X(t2Q2-gN#^L0HGvyTNpP z5A>H0;eHt&GMq_!eL7z$FT8g?lJMU7NMO>>^O3G`j@Abw=J`l{xIU5B`A8$eT0eBX zFfD(&KA4t2S|5zAPs^Wc_4(MPG z@!Fr16V~}Jd10OZ(h)Gte<=v-{Fh!~)vw<-*8CZic+H<7Va@+BVV(anW%Si7_vxqp zvRUXaOM@vtG(UCyFXavsU$dfEK5aN_c*bze%HrcwhG~7QFg*wVPpO}e$^x2t&KE5Q z)52N~W`wmIWMB%ZoR<3eU{?n)Z>h{b=WD-TVUEvFt!JfvKCzQ{jwyv(Gqtwq=Y@bX0eBPdv`uThdQ|jmQ^+WxWQa@jD`%>!X^Y)_D&xdbG!PzhM z^ZD|i{eGo>zGC}X>gV(2qtwsm9KA=~gMK)A-Y@m@mHPR} zetP_*IbQqy^mvDUzp%d?Luh>d<0jD`e?Q(Y6@ELo_TdDt=RxTsPJpwBr};2C9}h!r z%sL;hGhmvJ*Cnj!!;lio>wLUE!~MeA4~HQSmRBAzoI}4IU5{>gVa>mSuwFl=s1;p* zADFK1#z|b?iwQSqc-U~S^b2bL_kiIc!(HWG{}lAs@1Jzt0k?r^J|CT*;x~e6{SW1R z!8E@w%c`8^=4`8_PG`8^`6 z<#ilP*LTFT$nP~t{+@2gv|dQas6xyig!~#zKBVK8XAacp-Q?;1)2gFGA^6`J^!G-;?C^MZ)W$^+dw) z6H1n3foY?3GlFR4)L{*C;9usq>nfO9+mh4xC4#XSioDr6T(_QCWU!^ z+y%4n5oMn~<)rYv(6_B;ma7T)FmQdqIdD2)lFtO30Ot*N2rqd7=|yAO8SqAMA>b|G z?tn?YC*TCQ-|&F&rO?0ShFQFR4CNQ`D)3Mcp9PNuO!A|`oF4wH^{&+c1n|LHpbWFOT2(|lQC zwf_ZSwf{7Kmd^iYx}FPAzYPx>&Y1bBI)7H%-%b;+^JO)@5Ak$99z_0{ZFsoWr&s0eeBCLD*ZCw4^K0q)bUsPFu+AsRf+;=e-@;VR zz`hCRz%`g(M&E;`E8Kzj`I)({Pgw77zlk3Zz7+DS3;4cTz|G*1fGK`d_~qSj1$N-QM#Ix! z$}in!gg=(S{kjMLF<+MAwS3ZiTe@D|X#E-DZzDaY^vvb&Gb?We7fgJYFsJ8Y5JSnJD_u$Bj!-y4>P8pAZ7H@qJDzA|yc@6cWh&2(}V@90DE=_*C$?@Vwu{AAcD66>tKq>(gj^r0dgY zdo%-ix<0ipx;~BCm$b}pR{N3%Q+m|C6eKA&h!~YYe@?3@Xax7qKKgYpzy;{DfgtdITl#kc)odQ$(bW4N7{Lc$( z{&xs#{&$1v_}g%OOR+v#Z@?Ace&L@Ze)%r+e+e)ABe)a&Utl`lUVCGB%rK4H(D}CE z_yd+hf55fiAz`X-?Wk{K0dxHmz8c3Tw&A-O!Z#A{!hB)jZxf?4YFgOIHY5Bf#b1N@ zsLOnMl+$3k9^Ep+TAuU5nxFLjW4fLdf5IH(LChx>J{5d0<_C8PUj{yQ81tWve6R3$ z3hB8G^PdgVd~?!2f#b{X#QJ`QM-6v2dHKXkXwN2ae&O@MOCQI4>>xgc_@02*g8Krd zYSJ)OdOkO5bKr@&$U(tLVi&EMp~o;81Kgf)LNU`o#+ z(0|J7cz+|{t>ApX6i@T-NuIA~2IbLkKR8U!fUu@#SXk3T-`^&AP0u8l^nV2DNj#47 zCwwQR?`f1b_ze_KTnVl>oCSyHCp#SG2YtVrSkGS&*7MW%x=H`OFJl}I>rK;qePS-( zub})Go|NO&-b@MW^}2NN`D(zVkIVBMyk8jbGH@#3!@xP=2 z=Ys1Fn#1n{kbdGyFue~z+y`#of%gH0wY?Y$nA(eBVYTlg0h4{70*CoKEv(l|?+1kW zTO+Lb`~UTQfnGUY+ou7;^gVDopT>_G9yi>7NU=PZ!b#Y zfG7_SV_i8j&Q}@-^!|sAgZ{sb17==vF6aDq2KL{H|L#tHea8`h6aNpo$GH@OiFL#9 zGV?PCOJ3}CP(1OW;Cv8&BDfPw<7l^T$NLb2cwa!6zvqbg`&|Lof_sGd`;Y@z&l9Zr zNngLj-wS>F4B`ENAU=WkVc|pniuVhz!MxIdQ{b_H4+c+wDSbcs2>RKc#{3Q8>rcb= zy@K@*19{R{Gt0|=9q~1oZ;=;%9h{)~7{WEDqnysc_Z|&*3%?EVEe_v*H1RZ!Na@k| zw6N+c2qRg%VM-Ru>o{evus+xKfy4VZC`|Xa4EJ|L)quDjXOWr2IM^Tz=6k{vJ57rXN#iIbIo4Xp49V9NynC6Ho8!h5G1w1R;MH^&}@3 zOM0FM)3>pc_#tLH@Oa4%{2y%xaDPj7z}JiaTkXKMS7EQj4!jflAHjdO!`lJkui<}U zm$w7N-^2gZ1>SZLSH4E}%(wrDQC3GT`=##}=D`%t?-xGrzb{2R zcP+}`jQ_rraspfs`Cme&>~;TrDT-I7d+Ti&LNBN;!zd3%$96xN1SAR|Yi?s2l zvW902*UTyQCol!J$iJ8d)Ae0R`Lzc37ygfO8Mt2fTZrExO^P?4Cf6`3;!47w@u-F;eZohOwnb1 z6i=KI-WPS0zQ>(4oHtyb^v9nJ`HJLhmku}w&Io^+;^$#Lc)**$IpLpEJPK1jIKCXm zV@Uu`U+SNjo47yTUkLbMFkac@`1d1zeh%x$2Tb1spm|x8U$-HC**3gCDm)1;@4)*L zhDQwND*W+{|HAoGcs>gFU@)zRK>9z3c(Q9<0WSj6_o~A9K4C5I^nEId|2`exgXclv zaq#M^u+Ce+ZQ!whDW1M(MaS2@f#VN?|800m_(H_*kIFtROzEZcxqbZc6i>z=C44P- z-Zdz{0iOWQ27C-SA27vt1Y8a73Yfk#+bjGk^w(d6_e%nv4;~13C3rC4P2iz`6X0QC z{(eF?-e)jO>pf8ZXgqyCi}++1`1S$l4|oN5Bw&gk71sP6H%#jtkUq`dNny?3=^&o+ zw`QJ~|4*F1?FM`gBjAI;selt;TJM1LKLh#lLDUz+w7x+YKOtN*YnDqqjQ5>{wY=e@ zEiA9`v|a!muN$owK)e#imyhH8hH1TkFn(P4oseIN_lc&3zX)D4gZ_trSAuKy^~Y;` zy|CtQ+Hgi#^Ox2ipz~|~()YTEwfuGo>-Erj0~G%U$`6PBih%3EeF0NEtw%ue)w6N^ z3-P{&;bFu5)y3`CfUvfIw7vkfZ`%Ip`U2Yi(fR^(zPI6g34DKm9J7#9U^-s6w6N;W z39J5YIbQ8akFeU4-hj!T3@5iXH-jDGho}CLg@R;zs5WlK`{;7cHgQviBf7O4{^%azB<`>7O4QC9y1wOw= zalXY}c%Mml2HbXWnac#c5S$fWH)obRxCh^B4ERWJhwxR1Z|g2|odGWd)A|c^f5#Eu z)LZ6ygx>&{U4{HLJYcwYp+A0GIpq70|Aq$*)A!2gd|!h6e*LJw!aoJC%9Xo8;kk2X zxvJZ6zXGlY4+mTUru865-zvy&xD)T+1zZVsi=ueqr10gW|8acpGT>$4obb01pFn3` z!El%1++wd^%Tq!4H99_x_lpCr2X_Zd@qNNgiCJ#RHoSiv@R8u5fLp+{ega)@59Ckl z#P{`tFKvWBI*k5g!;_Zl{qeuT@d-H3Glt!g;`lLPJ)f>Opzm)_AfC#n<*RvMRct%*?*VgZ;>HFFRiP!hBdqm%|B}o-*9s;Lmp|&bR1sJl_Sp1l$*J z6`0mDp!9tJ^3@Y~A1~l4Fs)}m@z+xP(~fL#8)An);FN^UW4?m8o+u4 z!aoC7L!Q<*pm;7XH{;=G|6)!W9s<+(b))aU5o`N3CamojeGiV}wSAm2$GfFI{=aZN z`z}wqWWWh9t$z@nFD3ka$d}_`MCUyz>v{y5zG;y!KLqt*OVZ649!AUjA1nZG?;P1VWKH^$%uf+3s79Ixs0Bsw= zqrz*!<@mVpgyCt!Bd|M^p3g$QWebiM{s(x)9;_b{@B;9Z@P-w5zkXZ7(fj*!{0G3z z^l-Y&GsPc(czT~-;}1Z5jqniSR}5f17GW;W9a!(uaMp0L$?IeJ3ljW2H`1@1Hu3a+ zJH|{#`zZLQIk0+eI5C2U%egf;6 zO8i6M=0U7y8t@u$A>i#`eP5pBcZ0hne)%dKe>2KUz-z$00dEKQ34apu6;EUR2H}Um ziAk*AV0hSYuGwGz{0#c}p2zhFpA24bB>KYwJ`7w42$NT|cZ#SoL=c>-F^s>-F^u>-FjT@aj*FOT6-gVfwxto&Q!! z&ntL;+wh3tEZPy0SA89Z>HYFBJ_9>U`KA2}*?_74ARjRGFLVY>@r8h?f1xK}>R+Ju zw?qBI0n_pHKDWk`etMrMa7 z=TXCbhC5+r!~E+uZ0C*W_t|v4IDLOy%MZOTPU*i3=P&CicLRop40pk9kv#Qp&qDw9 z0GQIF+n}(P#}Q#Ik7L4GJ|+!M8y*tv8uEXGut-*S8!u`Y(XrE9IN#9S2 zUBcyrD-I`l*k@rqf3L8fe?VBzKPar{9~ajAn=(9OxaQE}{7r$Wd?fZkc^<*@q~W~b zNjYBAJ0+~?b?siirZ*|9>CFghdh>=m4IhVemBwi>ZZX^6C(ZYIa9B<=!kX_{Va@kG zVLiUz96w}^A2!F=logko(m0L3A3Bax8mIC3Q5vTyjnkBOW8ALNmxt0g4f@$Ij#C<^ z@#R6saZ2MfK0kC^WVoi7OXD;?Kh$3-jnnx2D2>z1a;0&aIrK2e&uu!6QyQo7`B56D z@fNc*PUD|fbsVQOPUG{VG){xQuF^P7X`DvJO-kc5&XvY#FfYoC%aq1xe0!n&$)#}` zpC9@>S{kSE`Jv-DnlEqmTZVbLc3X<66SITx2^o`|KAI#kkIx)1j(Hap-ii4<;YRbt zC>+X)HkzkJ;iH%j7;c}%`~{Yu8-`*o%|1SS#OS%G!-tQXODH?ahtvBZ;YRaKNI$*j z5pF+2{|<$ZnDDor?8AqUAK^AzQ2k7;{Nh+wC}fSNl&*aCp$6}@8^q)DF0l`=fgbM>M#`F z7sk9*k{>jBUc)>R3QzI~KHQfHXmI(KY(;LP7MdUk8_#o>=`80YC7d?ZR-x_XzJcS7JVlj_2+}@TW zLjD*%FP-7T)26(&VZ58<^PC^F@3;3zeb1WkE6${N$eVIldz=qX8~NX0-UZ1gjr{rN z`tU6JOTz7^`}**dk-z;!A6_u>O(`Ev-_HuSQ!)Nc=N&Wm(T5u2fWUcd_o8sMd(Uz{ zl*jDegH5Cf@9~*(wVKlbJ;q+q_q<5n+Py2-?m^zzpTDymDd+dE=}6tqV!K!Ftlj&^ z29hY}_u^ERep}e?;e9%z|HoWUpx=a_#&)lqzXu%Zc^TvXq~F@TbzGj19%J`r`2Lp1 z?A{)>d*#mBy~KfD|G2Sxzh}Ew9JTmm$Y&G&O}2YTzp;B; z*nX8eYxgc*@6T)P-d$|>aDR>6OGtXG-P^`?ubkhLA&t6yoYRNzHyXS5bG8?lhi}T; zOKkVbV|MR&wtKiPBYz0jPn_4-ylq_J(>rLo*hT? zV#4iZwpaM>J-W=p?TYzCm@jMOPv`u>yi_iy(Gkb9J;eN6G}+;H;ZC9iuS*k#FIwiq z>3!gE`;X;5JY~Y~V>^lYy~a-dTc?-rHQ|lN`tU-OrF@zK*F&V=gZwNz6A3w{w_rfBE{NnBN^k`?!zB4sSfthtqqc z;r1|>bL6wJpT}|i#Jq1~Z%>u$qW3GqZ9SKJ%)>MF^sie;3fE=q>JfbX_|B2BOPjg; zW4^JGzlrS_9&?eeP zVK({v9X>u0YmdsLoIB%xE@S(M{5Rp7xShiMb`$=cUH-gz6aL>>A3kEjhuALQy$BOd z->Ihb&v3n=eZQ^X@{0E&OnG}o?9YJ7=f_W><4_)q9UecW(zQN(#)P+Uxrcq@ z`bRQ;8{_lA9-8z1oR3HOH|61tJROJcHkx*4jP=59w25N*spj?$-ybr1mTmWX`b~Rr z^w~aq+SscvALYY44;01n^OD%rOsY8i-8+bpZ(LuaxHEVA@aa?(MtlDuUf`hH!w-7a>C=Fx}S7dRi$zL@kR*OL_9+gKS&J9oa=4f?)Vxcy%47k#HJ+|Jxa zg!^vfcS?IvZ_+a=cB8O7)Z*L^kMMf>jeL{TQ|fmMw;xG4pD^X;iQ~PVNprvYxg4V% zH+ue^{YbP^CVVyPMLWg$8l8EC*oQ6?P7-CVA`+CnD^U(-2jMl6u1|A2RpGMcdVhR0 z9as_be;#Mm6*2#3C)@3cnE&&K4PH-XjwD2W==%($-}*mi)cEizQ~uX=_;9>ZU9_FP z(}z#bE(&)0^6?eCK1vvKDc^6TvpfuS?ru46hw*dX(&_bgoA3nJ(+Y=IzKXUZxx69V zi$^UM1%Wgc!pSNJz(|bgJzmfkNx8oIV+{iz1n%CpluZ+$-af}b| z*(VC4y%w(TxW6X+Zq{4jrcC%owlhc!w=wNeOm%B)RCFcwD7{BPRY|l|XYa?0O`{6eF zi+W-5^S5lTP>-r9KH5&?`i$!`;a43`GB_{iUnE~E`QzL3D7=l+hx@|iGz!1(6xy$F zNzKZh-A~6!Qfshf_w+^mdY|i1nLoka|S#frZ=ahY=w?eE*}E4{^JR zd@%A4^L667Qjsj}-N}9)%9XL7)smhbwnNb|*B(XtxGod^TdudTpGHp$*9WAN{r5=E z6>GenjA`FL!Fns)n9*~q*o}Jj>mxm%NqId<6MnncrF!FUtY`lR`C!5yW51%p!19a*h%{SYPfAZoe1^a=s85}RoaCAb)A=|_u9g3tJsHL6Mn)LFP|}bz9e=a z%l9GDbRzq;6>iY@IS)#G?=s<^6uZ%H^lahh2i#w-_mO_uE3?KNVNc8=|DkfPp!T0s z@O`R`^`G3y{zGNVe|Uu3t;(4Ha6H$$%9#J~9QzNIvHp|YY{x5O{=ksM!k9a_URB2WPu8&=sEqZWtdr}q{y;0+<;qz9$zxoPa9%F& z(V4xUTN&#=X=J-y8Eg0Z&!S@?Z`#3cv3*DSjs6~%L%B8W`{n0*J+}YkQMNOc&i0>V zCH=Pl51SpUf*Vt;J^$=#>;^w|EBuO8>aZU4y}_D^tLZqG@^ zZwJhyU)VRUe-enFukn3_Jv8_CK0Y4h-;{?}^InhbKe_u;nx zr2cFlZu?I@#(qVmv;8OD4?ulS(Q(msj+86ge{$?@l0m&oMY6PaiIfN1e{#{W6pQm3 ze`BSTPuqX;hc+)y>rRB*wAAY^A2cEk3cJS+Fh_MdFn=F?;QPgB{#93VZ$ulO(a ztI_Tle|WCcQ`>*?eJSU*|Kumf`}ElUldHu(*#48#7J7Nxe?s4zr~765PYx3M@aFv| z#>hj%zo8t?ro|6s)Bck_Zl|hZ{U={Ongpw2{?FIg|EY@kKkZ!ps$%}nV;j64+kbLA z+n=hK|C8Z%qRLH~^1ryl>#_YOYuNv(ij5yV$NolDtpDT;zTZfv@r(Xb&TIQmwz2<% zbk3#oN88g|X}>Dgf0E+zhHz7Uew*_0v_5ONJs|mS`%kVs$IILPlj}vl?LYYy*Y~Pe z|H(JGy~cfKzcM=Wx7h!wa<>2EbuRz7zs4`}?KlBZU4#r8-2KKPv6dVrpnp=lfQG7fS#yokOKE3 zw&%F-wTyfJ{P#B6MZGZjc@Ntw)Fb0Zty%5mZU4z`whuTj=igrS?geiDkpD(cg{0H= zpWMXlbyckY9_qSv`#GL1Fg>&ZoiQFV*5{e zxc{Uo)_?NonRIlOv;8OE;`Ryo$$mj}hV!|7M7=ic*I9g>Rk8k)mk;;)ZU4ztcIJ$NKFVv6FeDXCc=Iq?7%3m3Ho; zHMC#lZ2yTrUsbIChP%fEU5i7`G9{U!V1)v@_MmvH^6b~B_d*xI>$uXclFK_GTt;__VW z#!P$hC-^5=q0vnn`D^(8R=dtbv7YasfPpEb^Cj1R<7pmQaNoVS0e_m(g|H1X8 zn%9dD&wCsD54d0Kmqjt3=k^KtVA|P7+5beo@%@S9hq=A0b_ElD8{09YpUX=mzmx5D zbM zh3f<47e&`Zd;6Z?&pX1;2T|M|tQYyo_cI7*{|EKa$bWsU*JI~%{)p3o`)JO)?r1M> z+plAf_u(mSXQK1&;roI6o{GX)vVs3PT1PhAu0F+w*K>Rn)0Fe!cK&?rN*_LBe#r$ z`A7Ni6x+W@{)6ZF@X1sZMtkRTdy0C;{z!3LnKOkS(Lb6^&v#MynB4zMxZKvdeq+)v zWV>DKhGrG(p2z2_jm>Ain(a%i8!Ic8-)}W>ts6J>{hw^dYWaI1;SnR8@3k&%?Azeb$Jth)#*OG)3h%`Y=>*zw2}V+w=cD^aqR`{AJ)1l zqvv~^kGL*lZ=YrR4E^T$&fE7|*JteBhfnh9%o;tvJ=BM1Ogr_vb0plP=NT?f$Oj|; zu2wHUW$gbV(KBSy^9{DExG$!hoVUsAvCkccvwwy1VD9_%o4vfX|3f=`_@L20!|AJa zITM~|yISiej6HuY=k-{7_{EKKUSn?`Wcyg_I-{yVf^O$7FK^qsg_6!*qvr=~Cu?~< zcvc{P&N6iKz#+BL5WJKQ0^)xd6T2J4?^>jh3o_2CQT@b6M|75$gAXZO%xjZe1 z)zb>Drwd~B^sgsViWkJ{=`CDO7sTr6D_l<(#Oi4S*V6^DdU{pC>$mmvJzP&0I9pFY z#r1SSte)=Xdb%K1Pyfc{a6zn|ev8W!uFKRf|GW+Trk*~?^li#=_6cE zalNMAO>q4}xT&X)a6MfRtEcC1Jw^IWJ>6II*m`;s*HhdVQ(w;HdW!U$`qC`rLyaarTh(*YJOKFu2ptex!5n=j*C--R*RJ(e_dH zm!M}>6h?dBUqOHC+@uL#%J~L);}^Y`lTzoVO+I+Pq0SA%eiUsYKWN(1+ZK^jof|ju z^ZEIx&J|2Me!(GLzQg2C?`b~Var;L5etTgX{nk0#AA1#-w>pPUXB2H`bN#Aw^nI~# zn`A#6`D5ho(0nlAUyytoC=azbmy+~!neeB$UevjM6TXn^5yDNrUC;Hf&JCIHm$x;H~xV+TG>|`g~le*aR*HZ_3J=QL5<9bo&lE#kxWr>%k?^}i2 zkI(Yqqb8kiW4SsvYV6hXZ2#-rfU#GT=XpI-M$Zk*b*|IctJijV`I^JR)HwH>dP$G* zH%{H|!?Q-dwbO^&@#U-Ke$n@1!tF#UKX#nAkLxGOp|OW|r|4*0uL=J$+f$ThqyN|J z2cq7wU5U>8@y%XOJzrlGK9lj`V@6L-%HbH_w@5z0cB#&FaC;Jk|NTs_CuhP>;O8I6 zua0DC?^wQnbuMG%&t?A%<%jE2bj(g}f9qn;#qU=8VB~+p=R>}k@I_*0GW;9q|0nx1 zb#B6hmx-Mztcql5Z&>OPt;-c|9W6w-USlUeve1Y3aDGHb+{W9Ub-0q-0a(#;A z{~`HbW5Ump`q;tcE|Om@dOG+%N8z89{LdZ`h0)&pV%hw%+e@N_1#)NN``jRo} zKUmsj`i?`m9WU+jkO^<({$b>s$^U}b!)$Y?1>e^dyJ7o#?>dp>P+5$ghISvGUtX-| z6uuvIE^G4P6DNE5uGV7tL&Xjcn(()Zy&dOz79G=E@OqMMQ5fyrEA3IeNl(v_Uf#}s z&Zm5MhVzg1{q~aB6I!o6+}_Le8TbA0FceSjlAmKHfBq@u+|F~DC-pIF>fKVlAFz9- z{P*VReDHG)D?aZBnNg37yl=PA?wfK|DdoA}gp<}X>l7jEIsBg;gsb0pZw?U%w|?Vm zTs{}a{Kgs1-^DS%@iXhZ9_u&W%655i%x}D%pF0-E{Kj{Py!9LFkQ7R%^&2nT;=`@q z_$rsP#m@STv$;G#8SA5C{kEO!#p0OX_|kfcUmWur@2v9S)^9w4%RTa^%o+F2-Yt&#jYqQGUhJ&j*vWPS=jHn!rFCGt*KhsC%h_*S9GjQ8joa77 z{N2Gw3+4l}okck}ep(&d1(ZW>m!cy!a65|YHQ~>){YQB=dd_0|iF(KPKhjen^~m~- zZ)N`q_t)roY?HrU>o;y=KLPd5_#e>$iU6ucZ82zp+;G-};SfcX&P4Z+wi~Dde;98!utM5#gr&dQS4+`i-|7@AX^1 z@dt8$t>5@(DG%0f>{;veSikWusn^zTJWA4I{l;gH^Lnh`c!lV(e&cc5y}b1sx3Yh* z*jc~vVQyzpZjImg7qM5?Z}j~{sHa?y>0EyMn%E`lH-2F!#iN{aeuyxBt`+-Z{l?3r zUABJXx20XSe&YpF{;l8m3-)ssJL@-oPV9#D8&48DZ~ey0+kN`2-#D+yhg-k#N%k8T zJL@-IEB4L$jZd-P2z$u&EXtp*g4b{T#zmsv`i;+u-Lrno=Y*`Dy*eT-NKce&cqjkJfLzg#AX82hI;V)^E4x=@)j4+bapg&-K!NS-)|Ggj>Hc zE#>*m{YJjHNICYBd|gXi&zz!QH^t>}iR(80%vTR5ImnyvPx1525;tVRb6k&>xEiCs zg6r=Rmp0*~z07f=LA!gm-;|So8-p@WC4Tjkb5Jr+uW;gx|(?zrp1fMzXYbQyu+9I*t5dIq#?m z-<YT4bIQ&r+vTO!FCV&O+LK9dQrd3c_+9XM}9V`2LJnSYzL4Y zBVTn2#iN{aen-bV%=QZU*^i6D+qm6Fc{A$+Z}O*>(+&ORdjIPze_lJkbP@Ye zC~sWFi$?h0)%#Z0BJ&%z6LU0*Xa=3;jmh3?JX%lKk8dg>R{)eVmu=P!#@Y zsqc1vOG504^(S|8{x-ORv6Cl?eX#!C#av#IZ~I5*q`kUM`it}!J&%YTub9Q!jRrTv{RA57+<9VW3aKcJ_I@IEVBDPd7CyegbsPB(v17wrej{DqU_T$_ z+Wie&KbOYZ{Uu!Amd4usr?}l;8f*8@+3C|`+x;iGo-U2G`yc0gS?X-N z|NVko*BttdwidQKOJnVRz38{?{vN&`OPy`^pIk#am&V%t`?y>pKaKW!#>koO6ChdVX-8m$&VH z{dOO2+x^urF|6OTze#TQq2FBZz*%12w)<5ZeYkD+e=O;=?fwMYf7lIk-j8y-k8oo@ zf5YuQ%B^Yl*K;{QIXCzHa;fjO-G4>uyKVQ+;QWOhFzqINr=If1w)=1Aa*X?8+Wksy z_mLi>=R0BtY`cF4=kL;3yPx59e`&1UKUwTdAw}tmw!6g+*mi#pxBE+D?fzD=W47HN z;&vZ)$+WWcg`aJAqwwiz0UoM z+oML8;{1*j{gB)DMmL7z!tFDBU5%_S4By1}uhC7xPYJi3Y!4gVu+h^{AgM;z%l9Wb z;u!WHkWQoLr(EBW&e@SH?cL1wu+dGhor~f=#df~Yjn9q3Xz!n#1&yxX=(&T-IU5pYPyx(BHe*|3UiM-bdlLvK?!5-6owGwyTY9h|?9x zyAx<+k*}gZ%)@^>C?OUT87jr{(c?#7tk^$l)k8=YSVI?{g;`#H!T<3Btp^|8z3=lxP2Q=EU1o{P`- z=@~Wh?^@);^ZXmhAI ze3#Uhj0rzW%Cn!pM#uW?s1*I8-f{W$Vf6Q%>~AzWyKY8B8^yxz8TlLKehr!QU%~BH zqsy+Qa#|G+4W_FjEaxDbCkO z{;;#Wo=&6Z1hLzB&ZkKJ0BJ9#jh+vRJxp=^h~yi@J|xX`ohSA!XXL-Uk57*?@;{U7 z%9!(BB<-4Aw_yWcKgvI+H%iYfQhw}v+&6dl^V)H)ZQ>_%n|_!Br2PB$JR<$Gc6&Yj zE2A*l`_RcgJY~{z!WVYK%RN#{7%`zY>Nu@9X_ep`WL(2j7s7s+p~@!@uyZcyx%Gx}F<@$x;U z9(_UVRo}WuH|-s_)yt>Nb?vV9;Ujz;?fb1KMZfSf*{=IA{afaY5kSN-v&ip_!qxA6 zh1=t%nBV)A3ewgT^LszScBd)k_qK6;Zi@N6o4B2Aiut{@1+U-wy=~mSAf4qDA8q$? zxk5T;M`5(r&*ix(=J&p57sWQk{N5)UeYo{|Z({p~^Cl@i+CE>P{ic}T`{^@$xb=JQ z=!o0{NCHyej@z~=(uQ`$L)Ai%*fV)Egu$M|sT_uj(oCem;G zuB+K@HpTqj1G(Nc#r)paxIIRBGx_1edx7Wy@I*O0BQK^sC@4Z{< zqxE~=em)(Gd@%XHW04QHe(wslcTF+B_gZexnw<4}>!dtbzxUVNel6xN`eOaw zYvg`ezxN_;cbj5minUn|X_Z}$q*ZRG+QXbN&D2=qYzub50_jZdtw0`dr zZbzG9e(zt!zNNUlMCX{dnf6hB*pG<9Kg;>p6!Uuzka}eO-Z|1PSig6fltb(H{!8-H z`n{KNd4ioce(x{2y+?UtI}xRG<*7dX*6&TR{YClbe2wHA&+_ut@7*YN+xorxh&{A^ z@7u&4TE90T_QCqSCy9Nte(&e@@#(RC@4a$e*6;0|?d?dCb$@uNV zVy~><+rWM=>M7S(m3HnEVy~>

t@P0sqgCsxz3sHc2fq~|RuAO7Zkuc<^39fChJ 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 literal 811032 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 z�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
Jm`r&LOkeay$M99lEo_$W(H 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�OeCc0qUrP z0@P6n16ZJHrh%%NBTuzJlqMrW5n|5;*j3wj{aA{(a=ZxRot!Vk0z8^h;vMZ*r2sw* z;#D0c?wsfFLtRP%9tSD$3tiXYg>6KLLWJm9mxvvd7U#kX3glPx>9v0!q5h4l>(ln{ z3mWqBe{0Y+^Ywps&@ho;)R^3Z0#W6qkb?lbD-d-kccnnoRw+?ig`&15;!GBbCPdb# zw~4s1mbkG(c(#OVp?Iu}*ehEHil0c<28y?oHO_)i90j?L8!QxeI8lUY6gOMexTT5W zp*JEQL=v8sVDkU_=hyiE_WYJ*7x^E*HPv7EbJvZ(={lW!4IbKW zZu(~9ML$u%<9}h{H(USF@4vo)aIgJ2XZ^RKY+h6O|1158P$!d92mGhNk!P)cF^v5A zl@FDj9rypY@lUO<{r?C2Ywnl%KYU64Km3mJq_NhQ`uAAB z)c=nBPj#6|`2QsT)cW%OGb{YR{^^hB|1Yobe|Ya%|G#62|5tDmo_LI}{dw{8@_%&a znmpn!^?R7MEdP`H^1prM{QpiC_544%!vFE#{CNJqeTDxQ-+I>n?_T2nYrGV~Q_p|; zujK!|_QJ0CEB}AS`epeq{-XTX>m%;}?^)vipYT##=Kq6#BmZX`{tKv{Nw+&V_E*^ zd-A{K#gTuMv|3-!-#)^!{eRK_f8cBDSG`}ZFLjso%luFG?f=UD|A8g`*}kRzr#njg z!#`Y}G*R z<^S+G@1I*M{2$u?;>!Mi?-KvtwZi{Y+|MCDXyZ`5( zk^h&T(|`XT)-SvN+dnJ+6K!MG|9F-3{r|NU{$IHN@%;blD*r$Ctp8}GyZ^sM;aisf z^k?M%gV?kye`nY{mZnOo~C|G$E^%>P$EslxF*|3AIL|M4$8 z>;L_#{D<r;N`eV!eAOG0L z^Zz;4FZKVAp7s9&OZ>k;K+E=j>kIOK7{)7qD*lo_fw0v7KbHSBPmKJ3kbi1@<^P!# z&;Qw=OU~ zbcO%ppZj?JPgeNf{EGJfs{bEe;(wj@bL8(ZE3L`tzmWge+25;wdj7xqd980{a`M72 zYyE$nUR|xZq10{t3%>u||HW@;{U5x(e4L+>f0lrj#s3}uQ|tAgHT%+UDgVpsi`V!m zum6_stw?3**ZU3DFT4MfU)26juiXEi;1ace+_wDlA^&;ZgY@6~-MrZO^P>NM=%h|2 y-T%MFu+0DT1NpE2-@kbN{v`i&|NkAqCAwVXIDMj-=l@A^#Q3|oWUc>{Xa7I?Kp@Hh diff --git a/support/ebpf/types.h b/support/ebpf/types.h index b253e92ea..2e7ed8804 100644 --- a/support/ebpf/types.h +++ b/support/ebpf/types.h @@ -301,6 +301,18 @@ enum { // number of failures to unwind code object due to its large size metricID_UnwindDotnetErrCodeTooLarge, + // number of attempts to unwind LuaJIT + metricID_UnwindLuaJITAttempts, + + // number of failures to read LuaJIT proc info + metricID_UnwindLuaJITErrNoProcInfo, + + // number of failures to read LuaJIT context pointer + metricID_UnwindLuaJITErrNoContext, + + // number of failures in context pointer validity check + metricID_UnwindLuaJITErrLMismatch, + // number of attempts to read Go custom labels metricID_UnwindGoLabelsAttempts, @@ -358,6 +370,7 @@ typedef enum TracePrograms { PROG_UNWIND_DOTNET10, PROG_GO_LABELS, PROG_UNWIND_BEAM, + PROG_UNWIND_LUAJIT, NUM_TRACER_PROGS, } TracePrograms; @@ -543,6 +556,12 @@ typedef struct BEAMProcInfo { u8 ranges_sizeof; } BEAMProcInfo; +typedef struct LuaJITProcInfo { + u16 g2dispatch; + u16 cur_L_offset; + u16 cframe_size_jit; +} LuaJITProcInfo; + // COMM_LEN defines the maximum length we will receive for the comm of a task. #define COMM_LEN 16 @@ -662,9 +681,9 @@ typedef struct UnwindState { // The per-CPU registers which are not unwound, but needed to be accessed // on leaf frames. #if defined(__x86_64__) - u64 rax, r9, r11, r13, r15; + u64 rax, r9, r11, r13, r14, r15; #elif defined(__aarch64__) - u64 r20, r22, r28; + u64 r7, r20, r22, r28; #endif }; }; @@ -735,6 +754,59 @@ typedef struct RubyUnwindState { u64 cfunc_saved_frame; } RubyUnwindState; +typedef u64 TValue; + +// This layout hasn't changed over LuaJIT versions. +typedef struct LJState { + void *glref; + void *dummy3; + TValue *base; /* Base of currently executing function. */ + TValue *top; /* First free slot in the stack. */ + TValue *maxstack; /* Last free slot in the stack. */ + TValue *stack; /* Stack base. */ + void *openupval; /* List of open upvalues in the stack. */ + void *env; /* Thread environment (table of globals). */ + void *cframe; /* End of C stack frame chain. */ +} LJState; + +// These two are always adjacent, cur_L offset comes from HA. +typedef struct LJGlobalPart { + void *cur_L; + TValue *jit_base; +} LJGlobalPart; + +// Part of a function we need access to, skips first 8 bytes. Again +// this layout (from GCfuncL type) hasn't changed in the history of openresty. +typedef struct LJFuncPart { + u8 marked; + u8 gct; + u8 ffid; + u8 nupvalues; + u32 dummy; + void *env; + void *gclist; + void *pc; // BCIns* to end of GCproto (i.e. startpc) +} LJFuncPart; + +typedef struct LJScratchSpace { + LJState L; + LJGlobalPart G; + LJFuncPart f; + void *G_to_report; + u32 *prev_proto; + u32 prev_pc; +} LJScratchSpace; + +typedef struct LJUnwindState { + TValue *frame; + TValue *prevframe; + void *L_ptr; + // If we have intertwined interpreter and native frames use cframe to track we have more + // jumps back to native unwinder to do. + void *cframe; + bool is_jit; +} LJUnwindState; + // Container for additional scratch space needed by the HotSpot unwinder. typedef struct DotnetUnwindScratchSpace { // Buffer to read nibble map to locate code start. One map entry allows seeking backwards @@ -819,6 +891,8 @@ typedef struct PerCPURecord { PHPUnwindState phpUnwindState; // The current Ruby unwinder state. RubyUnwindState rubyUnwindState; + // The current LuaJIT unwinder state. + LJUnwindState luajitUnwindState; // State for Go and Native custom labels CustomLabelsState customLabelsState; union { @@ -830,6 +904,8 @@ typedef struct PerCPURecord { V8UnwindScratchSpace v8UnwindScratch; // Scratch space for the Python unwinder PythonUnwindScratchSpace pythonUnwindScratch; + // Scratch space for the LuaJIT unwinder + LJScratchSpace luajitUnwindScratch; // Go labels scratch GoMapBucket goMapBucket; // Scratch for Go 1.24 labels diff --git a/support/types.go b/support/types.go index e9cfd7143..63a346626 100644 --- a/support/types.go +++ b/support/types.go @@ -22,6 +22,7 @@ const ( FrameMarkerPerl = 0x7 FrameMarkerV8 = 0x8 FrameMarkerDotnet = 0xa + FrameMarkerLuaJIT = 0xd FrameMarkerBEAM = 0xc FrameMarkerGo = 0xb ) @@ -45,6 +46,7 @@ const ( ProgUnwindDotnet10 = 0x9 ProgGoLabels = 0xa ProgUnwindBEAM = 0xb + ProgUnwindLuaJIT = 0xc ) const ( @@ -61,7 +63,7 @@ const ( const UnwindInfoMaxEntries = 0x4000 const ( - MetricIDBeginCumulative = 0x69 + MetricIDBeginCumulative = 0x6d ) const ( @@ -326,6 +328,11 @@ type V8ProcInfo struct { Codekind_baseline uint8 Pad_cgo_0 [2]byte } +type LuaJITProcInfo struct { + G2dispatch uint16 + Cur_L_offset uint16 + Cframe_size_jit uint16 +} const ( Sizeof_StackDelta = 0x4 @@ -397,6 +404,13 @@ const ( RubyFrameTypeGc = 0x4 ) +const ( + LJFFIFunc = 0xff1 + LJFileId = 0x2a + LJNormalFrame = 0x0 + LJGReport = 0xff2 +) + var MetricsTranslation = []metrics.MetricID{ 0x0: metrics.IDUnwindCallInterpreter, 0x1: metrics.IDUnwindErrZeroPC, @@ -486,11 +500,13 @@ var MetricsTranslation = []metrics.MetricID{ 0x5d: metrics.IDUnwindDotnetErrBadFP, 0x5e: metrics.IDUnwindDotnetErrCodeHeader, 0x5f: metrics.IDUnwindDotnetErrCodeTooLarge, - 0x62: metrics.IDUnwindRubyErrInvalidIseq, - 0x63: metrics.IDUnwindRubyErrReadMethodDef, - 0x64: metrics.IDUnwindRubyErrReadMethodType, - 0x65: metrics.IDUnwindRubyErrReadSvar, - 0x66: metrics.IDUnwindRubyErrReadRbasicFlags, - 0x67: metrics.IDUnwindRubyErrCmeMaxEp, - 0x68: metrics.IDUnwindErrBadDTVRead, + 0x66: metrics.IDUnwindRubyErrInvalidIseq, + 0x67: metrics.IDUnwindRubyErrReadMethodDef, + 0x68: metrics.IDUnwindRubyErrReadMethodType, + 0x69: metrics.IDUnwindRubyErrReadSvar, + 0x6a: metrics.IDUnwindRubyErrReadRbasicFlags, + 0x6b: metrics.IDUnwindRubyErrCmeMaxEp, + 0x6c: metrics.IDUnwindErrBadDTVRead, + 0x60: metrics.IDUnwindLuaJITAttempts, + 0x61: metrics.IDUnwindLuaJITErrNoProcInfo, } diff --git a/support/types_def.go b/support/types_def.go index 6c05aac10..972ee67a8 100644 --- a/support/types_def.go +++ b/support/types_def.go @@ -13,6 +13,7 @@ import ( #include "./ebpf/types.h" #include "./ebpf/frametypes.h" #include "./ebpf/v8_tracer.h" +#include "./ebpf/luajit.h" */ import "C" @@ -28,6 +29,7 @@ const ( FrameMarkerPerl = C.FRAME_MARKER_PERL FrameMarkerV8 = C.FRAME_MARKER_V8 FrameMarkerDotnet = C.FRAME_MARKER_DOTNET + FrameMarkerLuaJIT = C.FRAME_MARKER_LUAJIT FrameMarkerBEAM = C.FRAME_MARKER_BEAM FrameMarkerGo = C.FRAME_MARKER_GO ) @@ -51,6 +53,7 @@ const ( ProgUnwindDotnet10 = C.PROG_UNWIND_DOTNET10 ProgGoLabels = C.PROG_GO_LABELS ProgUnwindBEAM = C.PROG_UNWIND_BEAM + ProgUnwindLuaJIT = C.PROG_UNWIND_LUAJIT ) const ( @@ -130,6 +133,7 @@ type PerlProcInfo C.PerlProcInfo type PyProcInfo C.PyProcInfo type RubyProcInfo C.RubyProcInfo type V8ProcInfo C.V8ProcInfo +type LuaJITProcInfo C.LuaJITProcInfo const ( Sizeof_StackDelta = C.sizeof_StackDelta @@ -207,6 +211,13 @@ const ( RubyFrameTypeGc = C.RUBY_FRAME_TYPE_GC ) +const ( + LJFFIFunc = C.LUAJIT_FFI_FUNC + LJFileId = C.LUAJIT_JIT_FILE_ID + LJNormalFrame = C.LUAJIT_NORMAL_FRAME + LJGReport = C.LUAJIT_G_REPORT +) + var MetricsTranslation = []metrics.MetricID{ C.metricID_UnwindCallInterpreter: metrics.IDUnwindCallInterpreter, C.metricID_UnwindErrZeroPC: metrics.IDUnwindErrZeroPC, @@ -303,4 +314,6 @@ var MetricsTranslation = []metrics.MetricID{ C.metricID_UnwindRubyErrReadRbasicFlags: metrics.IDUnwindRubyErrReadRbasicFlags, C.metricID_UnwindRubyErrCmeMaxEp: metrics.IDUnwindRubyErrCmeMaxEp, C.metricID_UnwindErrBadDTVRead: metrics.IDUnwindErrBadDTVRead, + C.metricID_UnwindLuaJITAttempts: metrics.IDUnwindLuaJITAttempts, + C.metricID_UnwindLuaJITErrNoProcInfo: metrics.IDUnwindLuaJITErrNoProcInfo, } diff --git a/testutils/helpers.go b/testutils/helpers.go new file mode 100644 index 000000000..a4331d34d --- /dev/null +++ b/testutils/helpers.go @@ -0,0 +1,162 @@ +package testutils // import "go.opentelemetry.io/ebpf-profiler/testutils" + +import ( + "bufio" + "context" + "errors" + "io" + "math" + "os" + "strings" + "testing" + "time" + + "github.com/stretchr/testify/require" + "go.opentelemetry.io/ebpf-profiler/internal/log" + + "go.opentelemetry.io/ebpf-profiler/libpf" + "go.opentelemetry.io/ebpf-profiler/reporter/samples" + "go.opentelemetry.io/ebpf-profiler/tracer" + tracertypes "go.opentelemetry.io/ebpf-profiler/tracer/types" +) + +type MockIntervals struct{} + +func (f MockIntervals) MonitorInterval() time.Duration { return 1 * time.Second } +func (f MockIntervals) TracePollInterval() time.Duration { return 250 * time.Millisecond } +func (f MockIntervals) PIDCleanupInterval() time.Duration { return 1 * time.Second } +func (f MockIntervals) ExecutableUnloadDelay() time.Duration { return 1 * time.Second } + +type MockReporter struct{} + +func (f MockReporter) ExecutableKnown(_ libpf.FileID) bool { + return true +} + +type TraceEvent struct { + Trace *libpf.Trace + Meta *samples.TraceEventMeta +} + +type traceReporter struct { + traceEventChan chan<- TraceEvent +} + +func (tr *traceReporter) ReportTraceEvent(trace *libpf.Trace, meta *samples.TraceEventMeta) error { + tr.traceEventChan <- TraceEvent{ + Trace: trace, + Meta: meta, + } + return nil +} + +func StartTracer(ctx context.Context, t *testing.T, et tracertypes.IncludedTracers, + printBpfLogs bool) (<-chan TraceEvent, *tracer.Tracer) { + traceCh := make(chan TraceEvent) + tr := &traceReporter{ + traceEventChan: traceCh, + } + + trc, err := tracer.NewTracer(ctx, &tracer.Config{ + TraceReporter: tr, + Intervals: &MockIntervals{}, + IncludeTracers: et, + SamplesPerSecond: 20, + ProbabilisticInterval: 100, + ProbabilisticThreshold: 100, + OffCPUThreshold: uint32(math.MaxUint32 / 100), + VerboseMode: true, + }) + require.NoError(t, err) + + if printBpfLogs { + go readTracePipe(ctx) + } + + trc.StartPIDEventProcessor(ctx) + + err = trc.AttachTracer() + require.NoError(t, err) + log.Info("Attached tracer program") + + err = trc.EnableProfiling() + require.NoError(t, err) + log.Info("Enabled profiling") + + err = trc.AttachSchedMonitor() + require.NoError(t, err) + log.Info("Attached sched monitor") + + // Spawn monitors for the various result maps + ebpfTraceCh := make(chan *libpf.EbpfTrace) + + err = trc.StartMapMonitors(ctx, ebpfTraceCh) + require.NoError(t, err) + + go func() { + for { + select { + case trace := <-ebpfTraceCh: + if trace != nil { + trc.HandleTrace(trace) + } + case <-ctx.Done(): + return + } + } + }() + + return traceCh, trc +} + +func getTracePipe() (*os.File, error) { + for _, mnt := range []string{ + "/sys/kernel/debug/tracing", + "/sys/kernel/tracing", + "/tracing", + "/trace"} { + t, err := os.Open(mnt + "/trace_pipe") + if err == nil { + return t, nil + } + log.Errorf("Could not open trace_pipe at %s: %s", mnt, err) + } + return nil, os.ErrNotExist +} + +func readTracePipe(ctx context.Context) { + tp, err := getTracePipe() + if err != nil { + log.Warn("Could not open trace_pipe, check that debugfs is mounted") + return + } + + // When we're done kick ReadString out of blocked I/O. + go func() { + <-ctx.Done() + _ = tp.Close() + }() + + r := bufio.NewReader(tp) + for { + line, err := r.ReadString('\n') + if err != nil { + if errors.Is(err, io.EOF) { + continue + } + if errors.Is(err, os.ErrClosed) { + return + } + log.Error(err) + return + } + line = strings.TrimSpace(line) + if line != "" { + log.Infof("%s", line) + } + } +} + +func IsRoot() bool { + return os.Geteuid() == 0 +} diff --git a/tools/coredump/coredump.go b/tools/coredump/coredump.go index d653935da..3ce523fcb 100644 --- a/tools/coredump/coredump.go +++ b/tools/coredump/coredump.go @@ -177,7 +177,6 @@ func ExtractTraces(ctx context.Context, pr process.Process, debug bool, if err != nil { return nil, fmt.Errorf("failed to get Interpreter manager: %v", err) } - manager.SynchronizeProcess(pr) info := make([]ThreadInfo, 0, len(threadInfo)) diff --git a/tools/coredump/ebpfcode.h b/tools/coredump/ebpfcode.h index 7eb9cb82d..3292eb72b 100644 --- a/tools/coredump/ebpfcode.h +++ b/tools/coredump/ebpfcode.h @@ -36,6 +36,7 @@ void bpf_log(const char *fmt, ...) #include "../../support/ebpf/go_labels.ebpf.c" #include "../../support/ebpf/hotspot_tracer.ebpf.c" #include "../../support/ebpf/interpreter_dispatcher.ebpf.c" +#include "../../support/ebpf/luajit_tracer.ebpf.c" #include "../../support/ebpf/native_stack_trace.ebpf.c" #include "../../support/ebpf/perl_tracer.ebpf.c" #include "../../support/ebpf/php_tracer.ebpf.c" @@ -90,6 +91,7 @@ int bpf_tail_call(void *ctx, UNUSED void *map, int index) case PROG_UNWIND_DOTNET10: rc = unwind_dotnet10(ctx); break; case PROG_UNWIND_BEAM: rc = unwind_beam(ctx); break; case PROG_GO_LABELS: rc = go_labels(ctx); break; + case PROG_UNWIND_LUAJIT: rc = unwind_luajit(ctx); break; default: return -1; } __cgo_ctx->ret = rc; diff --git a/tools/coredump/ebpfhelpers.go b/tools/coredump/ebpfhelpers.go index 117fbef0f..b9a06ac91 100644 --- a/tools/coredump/ebpfhelpers.go +++ b/tools/coredump/ebpfhelpers.go @@ -110,7 +110,8 @@ func __bpf_map_lookup_elem(id C.u64, mapdef unsafe.Pointer, keyptr unsafe.Pointe case unsafe.Pointer(&C.dotnet_procs), unsafe.Pointer(&C.perl_procs), unsafe.Pointer(&C.php_procs), unsafe.Pointer(&C.py_procs), unsafe.Pointer(&C.hotspot_procs), unsafe.Pointer(&C.ruby_procs), - unsafe.Pointer(&C.v8_procs): + unsafe.Pointer(&C.v8_procs), + unsafe.Pointer(&C.luajit_procs): if innerMap, ok := ctx.maps[mapdef]; ok { if val, ok := innerMap[*(*C.u32)(keyptr)]; ok { return val diff --git a/tools/coredump/ebpfmaps.go b/tools/coredump/ebpfmaps.go index db9b83709..474e0292a 100644 --- a/tools/coredump/ebpfmaps.go +++ b/tools/coredump/ebpfmaps.go @@ -36,6 +36,10 @@ type ebpfMapsCoredump struct { var _ interpreter.EbpfHandler = &ebpfMapsCoredump{} +func (emc *ebpfMapsCoredump) CoredumpTest() bool { + return true +} + func (emc *ebpfMapsCoredump) RemoveReportedPID(libpf.PID) { } @@ -72,6 +76,8 @@ func (emc *ebpfMapsCoredump) UpdateProcData(t libpf.InterpreterType, pid libpf.P emc.ctx.addMap(unsafe.Pointer(&C.v8_procs), C.u32(pid), sliceBuffer(ptr, C.sizeof_V8ProcInfo)) case libpf.BEAM: emc.ctx.addMap(unsafe.Pointer(&C.beam_procs), C.u32(pid), sliceBuffer(ptr, C.sizeof_BEAMProcInfo)) + case libpf.LuaJIT: + emc.ctx.addMap(unsafe.Pointer(&C.luajit_procs), C.u32(pid), sliceBuffer(ptr, C.sizeof_LuaJITProcInfo)) } return nil } @@ -94,6 +100,8 @@ func (emc *ebpfMapsCoredump) DeleteProcData(t libpf.InterpreterType, pid libpf.P emc.ctx.delMap(unsafe.Pointer(&C.v8_procs), C.u32(pid)) case libpf.BEAM: emc.ctx.delMap(unsafe.Pointer(&C.beam_procs), C.u32(pid)) + case libpf.LuaJIT: + emc.ctx.delMap(unsafe.Pointer(&C.luajit_procs), C.u32(pid)) } return nil } diff --git a/tools/dis2go.py b/tools/dis2go.py new file mode 100755 index 000000000..4a4982342 --- /dev/null +++ b/tools/dis2go.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 + +import re +import sys + +def transform_disassembly(lines): + """ + Transform llvm-objdump disassembly to a Go byte array literal. + Written by Claude. + + This function: + 1. Removes offset prefixes (like "15e5b:") + 2. Adds "0x" prefix to each byte and comma separators + 3. Comments out the disassembly parts with "//" + + Args: + lines: A list of input lines to transform + + Returns: + A list of transformed lines + """ + result = [] + + for line in lines: + # Skip empty lines + if not line.strip(): + continue + + # Extract the parts using regex + # Match the address prefix, then bytes, then the assembly instruction + match = re.match(r'^\s*[0-9a-f]+:\s+([0-9a-f\s]+)(.+)$', line) + if match: + # Get the machine code bytes + bytes_str = match.group(1).strip() + # Get the assembly instruction + asm_instr = match.group(2).strip() + + # Split the bytes and add 0x prefix and commas + bytes_list = [f"0x{b}" for b in bytes_str.split()] + formatted_bytes = ", ".join(bytes_list) + "," + + # Pad with spaces to align comments + pad_length = max(40 - len(formatted_bytes), 1) + padding = " " * pad_length + + # Create the Go byte array line with commented assembly + result.append(f"{formatted_bytes}{padding}// {asm_instr}") + else: + # If the line doesn't match our expected format, keep it as a comment + result.append(f"// {line.strip()}") + + return result + +def main(): + # Read from stdin + lines = sys.stdin.readlines() + + # Transform the lines + transformed_lines = transform_disassembly(lines) + + # Write to stdout + sys.stdout.write("\n".join(transformed_lines)) + sys.stdout.write("\n") # Add a final newline + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/tools/errors-codegen/errors.json b/tools/errors-codegen/errors.json index e9850c747..e79663552 100644 --- a/tools/errors-codegen/errors.json +++ b/tools/errors-codegen/errors.json @@ -364,5 +364,30 @@ "id": 7006, "name": "beam_range_search_exhausted", "description": "BEAM: Ran out of iterations searching for the current code header" + }, + { + "id": 7007, + "name": "luajit_no_proc_info", + "description": "LuaJIT: No entry for this process exists in the LuaJIT process info array" + }, + { + "id": 7008, + "name": "luajit_read_lua_context", + "description": "LuaJIT: Unable to read the Lua context" + }, + { + "id": 7009, + "name": "luajit_frame_read", + "description": "LuaJIT: Unable to read the Lua frame" + }, + { + "id": 7010, + "name": "luajit_l_mismatch", + "description": "LuaJIT: context pointer validity check failed" + }, + { + "id": 7011, + "name": "luajit_invalid_pc", + "description": "LuaJIT: PC exceeds 24 bits" } ] diff --git a/tracer/tracer.go b/tracer/tracer.go index 950232114..70bb246cf 100644 --- a/tracer/tracer.go +++ b/tracer/tracer.go @@ -444,6 +444,11 @@ func initializeMapsAndPrograms(kmod *kallsyms.Module, cfg *Config) ( name: "unwind_beam", enable: cfg.IncludeTracers.Has(types.BEAMTracer), }, + { + progID: uint32(support.ProgUnwindLuaJIT), + name: "unwind_luajit", + enable: cfg.IncludeTracers.Has(types.LuaJITTracer), + }, } if err = loadPerfUnwinders(coll, ebpfProgs, ebpfMaps["perf_progs"], tailCallProgs, diff --git a/tracer/types/parse.go b/tracer/types/parse.go index 78621968a..d06cf7bd1 100644 --- a/tracer/types/parse.go +++ b/tracer/types/parse.go @@ -22,6 +22,7 @@ const ( RubyTracer V8Tracer DotnetTracer + LuaJITTracer GoTracer Labels BEAMTracer @@ -38,6 +39,7 @@ var tracerTypeToName = map[tracerType]string{ RubyTracer: "ruby", V8Tracer: "v8", DotnetTracer: "dotnet", + LuaJITTracer: "luajit", GoTracer: "go", Labels: "labels", BEAMTracer: "beam", diff --git a/x86helpers/x86_helpers.go b/x86helpers/x86_helpers.go new file mode 100644 index 000000000..a322d9566 --- /dev/null +++ b/x86helpers/x86_helpers.go @@ -0,0 +1,33 @@ +// Copyright 2024 The Parca Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + +// This package contains a series of helper functions that are useful for x86 disassembly. +package x86helpers // import "go.opentelemetry.io/ebpf-profiler/x86helpers" + +import "slices" + +var endbr64 = [4]byte{0xf3, 0x0f, 0x1e, 0xfa} + +// On some binaries the function starts like this: +// +// 0x0000000000012860 <+0>: f3 0f 1e fa endbr64 +// 0x0000000000012864 <+4>: 41 55 push %r13 +// +// This is some kind of stack smashing indirect jump protection, treat it as a nop, +// x86asm doesn't know how to handle it. +// +//nolint:gocritic +func SkipEndBranch(b []byte) ([]byte, int64) { + if slices.Equal(b[0:4], endbr64[:]) { + return b[4:], 4 + } + return b, 0 +} From fe68d2f3f932da54582d2bd01ade87b75ff38cbb Mon Sep 17 00:00:00 2001 From: umanwizard Date: Mon, 9 Mar 2026 15:26:24 -0700 Subject: [PATCH 6/6] Report correct PID from LuaJIT unwinder (#229) --- support/ebpf/luajit_tracer.ebpf.c | 3 ++- support/ebpf/tracer.ebpf.amd64 | Bin 904600 -> 904936 bytes support/ebpf/tracer.ebpf.arm64 | Bin 895760 -> 896096 bytes 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/support/ebpf/luajit_tracer.ebpf.c b/support/ebpf/luajit_tracer.ebpf.c index 690b5ff1a..fb55f338f 100644 --- a/support/ebpf/luajit_tracer.ebpf.c +++ b/support/ebpf/luajit_tracer.ebpf.c @@ -510,7 +510,8 @@ find_context(struct pt_regs *ctx, PerCPURecord *record, const LuaJITProcInfo *in // Once the HA fills in text_section_bias with G we'll stop sending these report_pids. if (state->text_section_bias == 0) { DEBUG_PRINT("lj: unwinding unmapped JIT frame"); - report_pid(ctx, record->trace.pid, RATELIMIT_ACTION_DEFAULT); + u64 pid_tgid = (u64)record->trace.pid << 32 | record->trace.tid; + report_pid(ctx, pid_tgid, RATELIMIT_ACTION_DEFAULT); // If top frame isn't luajit we can't rely on the register still holding the DISPATCH table, // but once we propagate G to the HA text_section_bias will be set to the G pointer and we can diff --git a/support/ebpf/tracer.ebpf.amd64 b/support/ebpf/tracer.ebpf.amd64 index d3750db712683645b141b590329fb085bb2fc8ce..f192c5c88dd26895e1194131dbb348f7f72261f1 100644 GIT binary patch delta 66921 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 z
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 diff --git a/support/ebpf/tracer.ebpf.arm64 b/support/ebpf/tracer.ebpf.arm64 index cc787d6a1abe76b27bff1a2a8a47580fec6aa0b9..8dac594523103b029ed71d29a20c0986444a3edc 100644 GIT binary patch delta 66938 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[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 PsxJ0-Zk8(!Rn7We#~^&K