From a207b538bca7c376c5da91072c081b440ca03926 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Thu, 28 May 2026 13:55:41 +1200 Subject: [PATCH 01/11] Add engineering deep-dive benchmarking post MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Companion to the operator-focused Post 1. Covers the OMB harness design, workload choices, flamegraph analysis, coefficient derivation across the full 3×3 grid, and bugs found in our own tooling. Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- ...2-benchmarking-the-proxy-under-the-hood.md | 306 ++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 _posts/2026-06-02-benchmarking-the-proxy-under-the-hood.md diff --git a/_posts/2026-06-02-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-02-benchmarking-the-proxy-under-the-hood.md new file mode 100644 index 0000000..7c016ad --- /dev/null +++ b/_posts/2026-06-02-benchmarking-the-proxy-under-the-hood.md @@ -0,0 +1,306 @@ +--- +layout: post +title: "How hard can it be??? Maxing out a Kroxylicious instance" +date: 2026-06-02 00:00:00 +0000 +author: "Sam Barker" +author_url: "https://github.com/SamBarker" +categories: benchmarking performance engineering +--- + +How hard can it be? We started with a laptop, a codebase, and a lot of confidence it was fast. We ended up with a benchmark harness, an eight-node cluster, and a much more nuanced answer. + +Harder than expected. More interesting too. + +We gave everyone [the numbers]({% post_url 2026-05-26-benchmarking-the-proxy %}) in a bland, but slide worthy way, already. This one is the engineering story: how we built the harness, what the flamegraphs actually show, the workload design choices that changed the answers, and the bugs we found in our own tooling. + +## Why not Kafka's own tools? + +Kafka ships with `kafka-producer-perf-test` and `kafka-consumer-perf-test`. We'd used them before. The problems: + +- **Too noisy**: individual runs produced widely varying results depending on JVM warm-up, scheduling jitter, and GC behaviour. Results were hard to trust and harder to compare across scenarios. +- **Producer-only view**: `kafka-producer-perf-test` gives you publish latency, but nothing about the consumer side. You can't see end-to-end latency — which is something operators actually care about. +- **Awkward to sweep**: running parametric rate sweeps requires scripting around these tools, and comparing results across scenarios requires manual work. +- **Coordinated omission**: under load, kafka-producer-perf-test only measures requests it actually sends! So when things start loading up and applying back pressure the send rate drops and the latency stays looking nice and healthy. Only it's not healthy in reality, things are queuing up in your producer. + +And critically, it's never heard of Kroxylicious... You have though, you're here! + +[OpenMessaging Benchmark (OMB)](https://github.com/openmessaging/benchmark) is a better fit. It's an industry-standard tool used by Confluent, the Pulsar team, and others for their published performance comparisons — so who am I to argue? OMB coordinates producers and consumers across separate worker pods, runs a configurable warmup phase before taking measurements, takes latency tracking seriously — correcting for coordinated omission, and outputs structured JSON that's straightforward to process programmatically. What's not to like? + +Using OMB also means our methodology is directly comparable to other published Kafka benchmarks. The numbers aren't comparable, of course — it's not the same hardware, network conditions or phase of the moon. + +## What we built on top of OMB + +So we just fire up OMB and get some numbers, right? Errr no. OMB just does the measurement part. I work really hard at being lazy, I hate clicking things with a mouse and I knew these tests needed to be repeatable. So we scripted deployment (of all the things) teardown (for isolation), diagnostic collection *(WHAT BROKE NOW??)*, and last but not least result processing (what does this wall of JSON mean?) + +So now all of that lives in [`kroxylicious-openmessaging-benchmarks`](https://github.com/kroxylicious/kroxylicious/tree/main/kroxylicious-openmessaging-benchmarks) in the main tree *(mono repo FTW)*. + +So we have a tool and we think Kroxylicious is fast — but how do we turn that into something we can actually show management? "Fast" is shorthand for "low impact", and the impact of a proxy shows up along two dimensions: + +- **Latency**: how much extra time does this additional hop add? +- **Throughput**: how much does routing traffic through the proxy cost my topic throughput? + +Two dimensions, two questions — and it turns out they need quite different experimental approaches to answer. + +**Rate sweep — where does latency start to bite?** +`scripts/rate-sweep.sh` holds the connection count fixed and steps the producer rate up in fixed increments, letting the cluster stabilise at each step. We defined saturation as the sustained throughput dropping more than 5% below the target rate. The rate sweep tells you where the cliff edge is and what latency looks like as you approach it. + +**Connection sweep — is the ceiling per-connection or per-pod?** +`scripts/connection-sweep.sh` holds the per-producer rate fixed and steps up the number of producers (1, 2, 4, 8, 16 by default) — consumers scale to match. This tells you the aggregate throughput ceiling of a single proxy pod *(need more? help out!)*: the point where adding more connections stops increasing total throughput. + +Both sweeps use `scripts/run-benchmark.sh` under the hood, which: + +1. Deploys the Helm chart for the requested scenario +2. Waits for the OMB Job to complete +3. Collects results: OMB JSON, a JFR recording, an async-profiler flamegraph, and a Prometheus metrics snapshot +4. Tears down + +The `--skip-deploy` flag lets you re-run a probe against an already-deployed cluster — both sweep scripts deploy once and probe many times. + +### Banishing click-ops + +Coming from Red Hat, my instinct is to reach for an operator — but operators are great at managing cohesive things. The stack we needed to deploy is anything but cohesive: an OMB coordinator, worker pods, a Strimzi-managed Kafka cluster, the Kroxylicious operator, the proxy itself, and HashiCorp Vault for the KMS. It's less "managed application" and more *all your ~~base~~ CRs belong to us*. + +We could have dumped some YAML in a directory and used `kustomize apply`. But I am lazy, and that's a lot of typing. Helm handles this beautifully — one chart, scenario-specific overrides, and a single command to deploy the whole thing. Scenario-specific configuration lives in `helm/kroxylicious-benchmark/scenarios/` as YAML overrides — the base chart stays stable and each scenario adds only what it needs: + +| Scenario file | What it deploys | +|---------------|-----------------| +| `baseline-values.yaml` | Direct Kafka, no proxy | +| `proxy-no-filters-values.yaml` | Proxy with no user filters | +| `encryption-values.yaml` | Proxy with AES-256-GCM encryption and Vault | +| `rate-sweep-values.yaml` | Extended run profiles for sweep experiments | + +If you have your own KMS — and you will run this on your own infrastructure, right?! — you can swap Vault out without touching the base chart. + +### JSON always comes in megabytes + +Each benchmark run produces a blob of structured JSON. Useful in principle; a wall of noise in practice. Three [JBang](https://www.jbang.dev/)-runnable Java programs *(I'm a dyed in the wool java dev, sue me)* pull out the signal: + +- **`RunMetadata`**: captures the run context — git commit, timestamp, cluster node specs (architecture, CPU, RAM), and on OpenShift, NIC speed read from the host via the MachineConfigDaemon pod. Generates `run-metadata.json` alongside each result so you can always tell what conditions produced a number. This is what makes run-to-run comparisons meaningful — and when a run takes 12 hours, trust me, you don't want to re-run it without good reason. +- **`ResultComparator`**: answers "did this change hurt?" — reads two scenario result directories and produces a markdown comparison table. Baseline vs encryption is the obvious use, but the tool is generic. Already running a proxy? proxy-no-filters vs encryption tells you the cost of the filter itself, not the proxy hop. Building your own filter? That's your comparison — measure the chain with and without it. +- **`ResultSummariser`**: answers "where does it fall over?" — reads a rate-sweep result directory and prints a summary table: target rate, achieved rate, p99, and whether the probe saturated. Where ResultComparator compares two scenarios at a fixed rate, ResultSummariser tracks one scenario across a range of rates. + +Getting NIC speed from a Kubernetes node turned out to be non-trivial — you need host filesystem access to read `/sys/class/net//speed`. On OpenShift, the MachineConfigDaemon pods mount the host at `/rootfs`, so we `kubectl exec` into the MCD pod and `chroot /rootfs` to read the speed file without creating any new privileged resources. Fiddly, but worth it — knowing your NIC speed is the difference between "the ceiling was the NIC" and "the ceiling wasn't the NIC". + +## Workload design + +Benchmarks are artificial constructs. Your traffic patterns are never stable — message sizes vary, topic counts grow, producers burst — so there's always a tension between numbers that are *representative* and numbers that are actually *repeatable*. We leaned towards repeatable. + +The primary workload makes Kafka experts wince *(I had to squirm to type it)* — **1 topic, 1 partition, 1 KB messages**. Concentrating everything onto a single TopicPartition means we hit the limits earlier, at lower absolute volumes, which makes the proxy's contribution easier to isolate. Isolating the proxy is, after all, the goal. + +But Kafka is often described as a distributed append-only log, and we can't ignore the word "distributed" when it comes to latency. With RF=1, the proxy doubles the sequential hops in the critical path: one becomes two. That's not wrong, but it's not a fair picture either — nobody runs RF=1 in production. With RF=3, the leader waits for ISR acknowledgements before confirming the produce, so there's already replication latency in the critical path. The proxy adds a real, sequential hop — we're not trying to bury that — but it lands alongside a cost that's already there. One extra hop on top of a multi-hop round trip is a different picture from doubling a single-hop one. Three brokers, hot partition replicated across all of them. + +But we didn't abandon representative entirely. The multi-topic runs (10 and 100 topics) are the reconnection point: load spread across more topics, closer to what production actually looks like, at rates well below any saturation point. You're measuring the proxy's baseline tax — the cost you always pay, not just the cost when you're pushing hard. It holds. + + +That covers the first dimension — the proxy's latency tax at normal load. For the second, throughput, the question is: how much does routing through the proxy reduce your maximum sustainable rate? That needs a different approach. We used rate sweeps: hold the connection count fixed, step the rate up incrementally, and watch what happens. Below the ceiling, achieved throughput tracks the target — the system keeps up. Above it, it can't, and falls behind. The point where achieved throughput diverges from the target rate — where we defined that as dropping below 95% — is the saturation point. That's the knee of the curve, and that's what we were hunting. + +## False summit + +The rate-sweep result was in: the encryption scenario hit a ceiling on our original cluster at around 37k msg/s. Summit reached. + +Except — the proxy had spare CPU cycles. Not a little: meaningful headroom. If the proxy isn't CPU-saturated, whatever we hit isn't the proxy's ceiling. + +**Was it the NIC?** At 37k msg/s and 1 KB messages, produce traffic alone is 37 MB/s. Add RF=3 replication: the leader ships two copies outbound, ~74 MB/s more. 111 MB/s total — fine for 10 GbE, obviously broken for 1 GbE. If the NICs had been gigabit, replication traffic would have saturated them long before we got to 37k. Network eliminated. + +**Was it the proxy pod, or just one connection?** The rate sweep runs with a single producer. We ran four at the same per-producer rate. Aggregate throughput climbed higher than one producer alone could push — the pod had headroom the single connection wasn't using. We checked proxy metrics: back pressure was minimal. The proxy wasn't the constraint. Whatever was limiting one connection, it wasn't us. + +### We tried anti-affinity + +Then a curveball: could it be node saturation? The original cluster had three worker nodes — and three Kafka brokers. Strimzi, being sensible, spreads brokers evenly: one per node. If the proxy had landed on the same node as a busy broker, that node could be the bottleneck rather than the proxy pod itself. + +We added a hard anti-affinity rule to keep the proxy off broker nodes. It wouldn't schedule. + +The penny drops: three worker nodes, three brokers, one per node — there is nowhere for the proxy to go that isn't already co-located with a broker. Obvious in hindsight. We needed a bigger cluster. + +We provisioned one: five workers, three masters, 16 vCPU per node. + +### The baseline shock + +Baseline first. Direct Kafka, no proxy. + +~17,000 msg/s. The original cluster had been sustaining ~50,000. + +The proxy wasn't in the picture. We checked the obvious suspects: disk I/O — fine, local and unsaturated. OMB worker scaling — correct. Broker CPU: ~1.2 vCPU. Nothing was at a limit. + +The answer was in the pipeline arithmetic. A Kafka producer has a maximum number of in-flight requests — batches sent but not yet acknowledged. With real round-trip times between nodes, that in-flight window bounds throughput. We measured: 0.87 ms between worker nodes, with three replication hops before the leader can confirm a produce at RF=3 — roughly 3–4 ms total. Five in-flight requests across that round trip gives a ceiling that matched ~17k msg/s almost exactly. + +On the original cluster, those nodes were almost certainly co-located on the same physical host. Inter-node RTTs at that scale are sub-millisecond — effectively free. The original cluster's 50k baseline wasn't what a 3-broker Kafka cluster does. It was what a 3-broker Kafka cluster does when the network is a memcpy. + +The new cluster was genuinely distributed. Real latency, real pipeline limits, real Kafka — and the cluster we used for everything from here. + +*(The ~37k ceiling is the only figure in this post from the original cluster. Everything that follows — the coefficient, the CPU sweep, the prediction — was measured on the new cluster. The physics are part of what makes those numbers honest.)* + +Another penny dropped. We'd had the same scheduling problem with OMB all along. The producer and consumer worker pods were landing on broker nodes — and when pods share a node, the SDN detects that traffic doesn't need to leave the node and bypasses the NIC entirely. The producers and consumers weren't paying for network transit at all. + +The proxy pod was on a different node, but on a 3-node cluster where every node already had a broker, the odds of those nodes sharing a physical host on Fyre were high. Almost certainly getting the same benefit, just one layer down. + +### Now push harder + +The new cluster had an honest baseline — but RF=3 pipeline limits meant we couldn't push a single topic past ~17k msg/s. There was no room to find the proxy's CPU ceiling when Kafka's pipeline hits the wall first. + +RF=1, 10 topics. With no replication hops, the round-trip drops to producer→leader only: 0.87 ms. Spread across 10 partitions, no single one becomes the bottleneck before the proxy does. We validated the workload with the passthrough proxy: throughput scaled well past anything encryption constrains. The ceiling we were now measuring was proxy CPU. + +### How much more? + +The RF=1 10-topic workload spread load across partitions. At 1000m, the run tells us: comfortable at ~82 MB/s (publish p99: 246 ms, E2E p99: 344 ms), with E2E latency blowing up at ~164 MB/s — the proxy's CPU budget exhausted. The coefficient comes from JFR CPU data across the non-saturated probes: + +``` +Measured: 10.0 mc per MB/s of total proxy traffic (±7.8 stdev, n=6 non-saturated probes) +→ operator formula: 10 mc per MB/s of total proxy traffic +→ for 1:1 produce:consume at 1 KB: 20 mc per MB/s of produce throughput +``` + +I was proudly showing off some early numbers — baseline vs proxy, looking good — when one of the computer science PhDs on the team asked, "is the difference real?" Best answer I could come up with at the time: "Good question." So I went and added statistical significance testing. + +`check-significance.sh` runs Mann-Whitney U at p < 0.05, comparing per-window p99 latency samples between baseline and candidate at each rate step. OMB slices the test phase into time windows and records a p99 per window — ~30 samples per 5-minute run — so MWU has enough data to distinguish real signal from noise. It's not perfect: those per-window samples aren't entirely uncorrelated — a GC pause can drag multiple adjacent windows — but it gives a principled answer to "is this overhead real, or am I chasing noise?" + +The coefficient is a different matter. It's derived from JFR CPU data across n=6 non-saturated probes; the ±7.8 stdev reflects measurement noise, not a tested confidence interval. It holds at 1, 2, and 4 cores — the linear scaling claim is consistent — but its validity across message sizes or workload shapes is untested. + +The mechanism: `cpu: 1000m → availableProcessors()=1 → one Netty event loop thread`. At 4000m that's four threads, each handling its share of connections in parallel. If the ceiling scales linearly with thread count, a 4-core pod should handle roughly four times as much. We ran it. + +| CPU limit | Comfortable ceiling | Saturation point | +|-----------|---------------------|-----------------| +| 1000m | ~82 MB/s (publish p99: 246 ms, E2E: 344 ms) | ~164 MB/s | +| 4000m | ~164 MB/s (publish p99: 259 ms, E2E: 392 ms) | ~329 MB/s | + +At 4000m: comfortable at 164 MB/s, E2E catastrophic at 329 MB/s — ceiling reached. The proxy isn't hitting a fixed architectural wall — it's hitting a CPU budget wall, and that wall moves when you give it more CPU. + +### The prediction + +One validated scaling point isn't a sizing model. The coefficient predicts that 2-core should sustain well past 82 MB/s and not saturate until well above 164 MB/s. We ran 2-core next. + +| Rate | Publish p99 | E2E p99 | Verdict | +|------|------------|---------|---------| +| ~82 MB/s | 307 ms | 396 ms | Comfortable | +| ~164 MB/s | 499 ms | 1,200 ms | Sustaining — not yet saturated | + +At 164 MB/s across 10 partitions, each partition carries 16 MB/s — within the budget of a single Netty thread. The elevated E2E latency reflects the proxy running near but not at its ceiling. The 2-core saturation point sits above 164 MB/s; the model is consistent. + +The full picture — coefficient measured across all three core counts and three topic counts: + +| | 1-core (1000m) | 2-core (2000m) | 4-core (4000m) | +|---|---|---|---| +| **1 topic** | 15.7 mc/MB/s | 24.3 mc/MB/s | 30.5 mc/MB/s† | +| **10 topics** | 10.0 mc/MB/s | 19.9 mc/MB/s | 25.1 mc/MB/s | +| **100 topics** | 4.3 mc/MB/s | 6.8 mc/MB/s | 8.0 mc/MB/s | + +*Sizing coefficient (mc per MB/s of total bidirectional proxy traffic). Post 1 uses k=25 mc/MB/s (4-core 10-topic) as the conservative upper bound.* + +*† 4-core 1-topic: at high producer counts, the Kafka partition limit caps single-partition throughput before the proxy saturates — the high stdev (±18.6) reflects this. Use the 10-topic or 100-topic rows for sizing.* + +Setting `requests` equal to `limits` makes this practical: a pod that can burst above its CPU limit introduces headroom uncertainty that breaks the model. Fix the CPU budget; fix the ceiling. + +## The flamegraph: where the CPU actually goes + +I care deeply that the proxy does as little work as possible on the hot path. Optimization is often less about swapping algorithms — if you only ever have five items, who cares how you sort them — and more about realising what work not to do, or finding a better time to do it. [Amdahl's law](https://en.wikipedia.org/wiki/Amdahl%27s_law) governs this: the maximum speedup you can get from optimizing a component is bounded by how much of total execution time that component actually owns. If the proxy accounts for 2% of CPU, you can't optimize your way to a 10% win — not there. + +That framing is exactly why flamegraphs matter to me. Not as a debugging tool, but as a way of seeing the shape of the work. I was also hoping to tell a fuller story here — profiles across the full rate sweep, watching the mix shift as the proxy approaches saturation. Getting stable, reproducible numbers turned out to be harder than expected, and the bugs described in the next section cost us more runs than I'd like. So these are two snapshots at a single rate, not the sweep-correlated picture I had in mind. Still enough to see where the CPU goes. I hope to revisit this properly in the future — but right now the proxy's performance is good enough that I'm focused on functionality, and the benchmarking harness itself still has room to mature. + +We captured CPU profiles using async-profiler attached to the proxy JVM via `jcmd JVMTI.agent_load`, during the steady-state measurement phase. These are self-time percentages — where the CPU is actually spending cycles, not inclusive call-tree time. + +The flamegraphs below are fully interactive: hover over a frame to see its name and percentage, click to zoom in, Ctrl+F to search. Scroll within the frame to explore the full stack depth. + +### No-filter proxy + +
+ +
CPU flamegraph — passthrough proxy (no filters), FIXME msg/s, 1 topic, 1 KB messages. Open full screen ↗
+
+ +| Category | CPU share | +|----------|-----------| +| Syscalls (send/recv) | 59.2% | +| Native/VM | 16.7% | +| Netty I/O | 10.5% | +| Memory operations | 4.7% | +| JDK libraries | 2.9% | +| Kroxylicious proxy | 1.4% | +| GC | 0.1% | + +The proxy is overwhelmingly I/O-bound. 59% of CPU is in `send`/`recv` syscalls — the inherent cost of maintaining two TCP connections (client→proxy, proxy→Kafka) with data flowing through the JVM. The proxy itself accounts for 1.4% — and understanding *why* that number is so small is the interesting part. + +Kroxylicious decodes Kafka RPCs selectively: each filter declares which API keys it cares about, and the proxy only deserialises messages that at least one filter needs. Even in the no-filter scenario, the default infrastructure filters are doing genuine L7 work — broker address rewriting, API version negotiation, topic name caching — which means metadata, FindCoordinator, and API version exchanges are fully decoded. But the high-volume produce and consume traffic? The decode predicate skips full deserialisation for those entirely, passing them through at close to L4 speed. + +The 1.4% is the cost of a proxy that is *selectively* L7: doing real Kafka protocol work where it matters, and treating the hot path like a TCP relay where it doesn't. That's not a side-effect — it's what the decode predicate design is for, and this flamegraph validates it. + +### Encryption proxy (same FIXME msg/s rate) + +
+ +
CPU flamegraph — encryption proxy (AES-256-GCM), FIXME msg/s, 1 topic, 1 KB messages. Open full screen ↗
+
+ +| Category | No-filters | Encryption | Delta | +|----------|-----------|------------|-------| +| Syscalls (send/recv) | 59.2% | 23.5% | −35.7%* | +| Native/VM | 16.7% | 18.9% | +2.2% | +| JCA/AES-GCM crypto | 0.0% | 11.3% | **+11.3%** | +| Memory operations | 4.7% | 10.4% | **+5.8%** | +| JDK libraries | 2.9% | 9.3% | **+6.4%** | +| GC / JVM housekeeping | 0.1% | 5.0% | **+4.9%** | +| Netty I/O | 10.5% | 5.1% | −5.4%* | +| Kafka protocol re-encoding | 0.4% | 3.5% | **+3.1%** | +| Kroxylicious encryption filter | 0.0% | 2.0% | **+2.0%** | + +*\* Send/recv and Netty I/O appear to shrink as a percentage share because encryption adds CPU work that grows the total pie. The absolute I/O cost is similar in both scenarios.* + +The direct crypto cost is 13.3% (11.3% AES-GCM + 2.0% Kroxylicious filter logic). But encryption adds indirect costs too: + +- **Buffer management (+5.8%)**: encrypted records need to be read into buffers, encrypted, and written to new buffers — more allocation, more copying +- **GC pressure (+4.9%)**: more short-lived objects from encryption buffers and crypto operations +- **JDK security infrastructure (+6.4%)**: security provider lookups, key spec handling, parameter generation +- **Kafka protocol re-encoding (+3.1%)**: encrypted records are different sizes and must be re-serialised into Kafka protocol format + +Total additional CPU: ~33%. This aligns closely with the ~26% throughput reduction. + +If you wanted to optimise this, the highest-impact areas would be: reducing buffer copies (encrypt in-place or use composite buffers), pooling encryption buffers to reduce GC pressure, and caching `Cipher` instances to reduce per-record JDK security overhead. + +There are wins inside the proxy we haven't chased yet — serialisation and deserialisation we could avoid, buffer copies imposed by how memory records are structured. Some would be straightforward; others would require rethinking how Kafka records are modelled in memory. We haven't gone after them. But to put it plainly: we can optimise all we like inside the proxy, and we're still not going to make AES faster. + +## Bugs we found in our own tooling + +During the 4-producer rate sweep, we noticed that JFR recordings and flamegraphs from probes 2 onwards all looked identical to probe 1. They were stale copies. Three bugs. + +**Bug 1 — wrong JFR settings**: When restarting JFR for a subsequent probe in `--skip-deploy` mode, the script was using `settings=default` instead of `settings=profile`. The default profile omits I/O events including `jdk.NetworkUtilization` — the event we were using to read network throughput from JFR. Fixed to always use `settings=profile`. + +**Bug 2 — async-profiler not restarted**: The restart block restarted JFR but never restarted async-profiler. All probes after the first had a flamegraph from probe 1 only. + +**Bug 3 — wrong guard variable**: The async-profiler restart was guarded by checking `AGENT_LIB` (the path to the native library). `AGENT_LIB` is always set when the library exists on the image — even when profiling was intentionally skipped on clusters where the `Unconfined` seccomp profile couldn't be applied. The correct guard is `ASYNC_PROFILER_FLAGS`, which is only set when the seccomp patch was successfully applied. + +Spotting these required noticing that two different probe flamegraphs were pixel-for-pixel identical, then working back through the restart logic. The lesson: when reusing a deployed cluster across multiple probes, validate that diagnostic collection is actually running fresh for each one. + +## Run it yourself + +We're an open source project — we share our workings. The raw OMB result JSON, JFR recordings, and flamegraph files that back this post are available [TODO: link to raw data]. If you want to verify the numbers, reproduce the analysis, or compare against your own runs, everything you need is there. + +If you want to run it against your own cluster, everything is in `kroxylicious-openmessaging-benchmarks/` in the [main Kroxylicious repository](https://github.com/kroxylicious/kroxylicious). See `QUICKSTART.md` for step-by-step instructions. You'll need a Kubernetes or OpenShift cluster, the Kroxylicious operator installed, and Helm 3. Minikube works for local runs — the quickstart covers recommended CPU and memory settings. + +I got so bored re-evaluating everything as I explored anti-affinity that I even scripted the whole exercise for this post — but brace yourself, it has about a 18 hour runtime. tmux and a control node or jump host are your friends here. The [full blog post script](https://gist.github.com/SamBarker/19fd06ac9a8614cc6be89b76a90e006a) is available as a gist if you want to reproduce the exact run. + +```bash +# Run a baseline vs encryption comparison +./scripts/run-benchmark.sh --scenario baseline +./scripts/run-benchmark.sh --scenario encryption + +# Compare results +jbang src/main/java/io/kroxylicious/benchmarks/results/ResultComparator.java \ + results/baseline results/encryption +``` + +## What's still open + +The coefficient is validated at 1, 2, and 4 cores for 1 KB messages. Known gaps: + +- **Message size variation**: larger messages should show lower overhead as a percentage; smaller messages may show higher. 1 KB is a reasonable middle ground but not the whole picture. +- **Horizontal scaling**: multiple proxy pods haven't been measured; linear scaling is expected but not confirmed. +- **Multi-pass sweeps**: each rate point was measured once. Running each probe three times and taking the median would give tighter bounds in the saturation transition zone. + +The operator-facing sizing reference and all the key tables are in `SIZING-GUIDE.md` in the benchmarks directory. From 0db96b84a8bc28946171687554ba160fc8211711 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Thu, 28 May 2026 14:15:15 +1200 Subject: [PATCH 02/11] Update publication date and replace coming-soon companion links Post 2 publication date moved to 2026-06-04 04:30 UTC (4:30 PM NZST). Post 1 brought onto this branch with all coming-soon companion references replaced by links to the published post. Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _posts/2026-05-26-benchmarking-the-proxy.md | 178 ++++++++++++++++++ ...-benchmarking-the-proxy-under-the-hood.md} | 2 +- 2 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 _posts/2026-05-26-benchmarking-the-proxy.md rename _posts/{2026-06-02-benchmarking-the-proxy-under-the-hood.md => 2026-06-04-benchmarking-the-proxy-under-the-hood.md} (99%) diff --git a/_posts/2026-05-26-benchmarking-the-proxy.md b/_posts/2026-05-26-benchmarking-the-proxy.md new file mode 100644 index 0000000..b9e8b83 --- /dev/null +++ b/_posts/2026-05-26-benchmarking-the-proxy.md @@ -0,0 +1,178 @@ +--- +layout: post +title: "Does my proxy look big in this cluster?" +date: 2026-05-26 00:00:00 +0000 +author: "Sam Barker" +author_url: "https://github.com/SamBarker" +categories: benchmarking performance +--- + +Every good benchmarking story starts with a hunch. Mine was that Kroxylicious is cheap to run — I'd stake my career on it, in fact — but it turns out that "trust me, I wrote it" is not a widely accepted unit of measurement. People want proof. Sensibly. + +There's a practical question underneath the hunch too. The most common thing operators ask us is some variation of: "How many cores does the proxy need?" Which translates, from polite engineering into plain English, as: "is this thing going to slow down my Kafka?" We'd been giving the classic answer: "it depends on your workload and traffic patterns, so you'll need to test in your environment." Which is true. And also deeply unsatisfying for everyone involved, including us. + +So we stopped saying "it depends" — we built something you can run **yourselves** on your own infrastructure with your own workload, and measured it. Here are some representative numbers from ours. + +**TL;DR**: +- A passthrough proxy adds negligible overhead: publish latency impact is below measurement noise, E2E adds ~2 ms at moderate topic rates, throughput unaffected +- Add record encryption and expect a ~25% throughput reduction and 0.2–3 ms of additional latency at comfortable rates +- The throughput ceiling scales linearly with CPU: budget ~25 mc per MB/s of total proxy traffic (conservative; the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid) +- The full benchmark harness is open source — run it on your own cluster for numbers that reflect your workload + +## What we measured + +We ran three scenarios against the same Apache Kafka® cluster on the same hardware: + +- **Baseline** — producers and consumers talking directly to Kafka, no proxy in the path +- **Passthrough proxy** — traffic routed through Kroxylicious with no filter chain configured +- **Record encryption** — traffic through Kroxylicious with AES-256-GCM record encryption enabled, using HashiCorp Vault as the KMS + +We used [OpenMessaging Benchmark (OMB)](https://github.com/openmessaging/benchmark) rather than Kafka's own `kafka-producer-perf-test`. OMB is an industry-standard tool that coordinates producers and consumers together, measures end-to-end latency (not just publish latency), and produces structured JSON that makes comparison straightforward. More on why we built a whole harness around it in the [companion engineering post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}). + +## Test environment + +No, we didn't run this on a laptop — it's a realistic deployment: an 8-node OpenShift cluster on Fyre (5 workers, 3 masters), IBM's internal cloud platform — a controlled environment. Kroxylicious ran as a single proxy pod with a 1000m CPU limit. + +| Component | Details | +|-----------|---------| +| CPU | AMD EPYC-Rome, 2 GHz | +| Cluster | 8-node OpenShift 4.21 (5 workers, 3 masters), RHCOS 9.6 | +| Kafka | 3-broker Strimzi 0.51.0 (Kafka 3.9) cluster, replication factor 3 | +| Kroxylicious | 0.20.0, single proxy pod, 1000m CPU limit | +| KMS | HashiCorp Vault 2.0.0 (in-cluster) | + +The primary workload used 1 topic, 1 partition, 1 KB messages. We chose single-partition deliberately: it concentrates all traffic on one broker, so you hit ceilings quickly and any proxy overhead is easy to isolate. We also ran 10-topic and 100-topic workloads to make sure the results hold when load is spread more realistically across brokers. + +One important caveat: this Kafka cluster is deliberately untuned. We're not trying to squeeze every message-per-second out of Kafka — we're using it as a fixed baseline to measure what the proxy adds on top. Kafka experts will find obvious headroom to improve on our baseline numbers; that's fine and expected. The deltas are what matter here, not the absolutes. + +--- + +## The passthrough proxy: negligible overhead + +Good news first. The proxy itself — with no filter chain, just routing traffic — adds almost nothing. The tables below show all three scenarios side by side. + +A quick note on percentiles for anyone not steeped in performance benchmarking: p99 latency is the value that 99% of requests complete within — meaning 1 in 100 requests takes longer. Averages flatter; the p99 is what your slowest clients actually experience, and it's usually the number that matters. + +Two latency metrics appear in the tables. **Publish latency** is measured from the record's intended send time — as dictated by the target producer rate — to when the producer receives the broker's acknowledgement. That means it captures any producer-side delay (backpressure, client queuing, batch accumulation) alongside the network round-trip and ISR replication (we run with `acks=all`). **End-to-end (E2E) latency** is measured from that same intended send time to when the consumer receives the record, adding consumer-side fetch batching on top of everything publish latency already covers. + +**10 topics, 1 KB messages (~5,000 msg/s per topic):** + +| Metric | Baseline | Proxy (no filters) | Encryption | +|--------|----------|--------------------|------------| +| Publish latency avg | 4.3 ms | 4.5 ms (+0.2 ms) | 14.3 ms (+10.0 ms) | +| Publish latency p99 | 22.4 ms | 19.6 ms (−2.7 ms) | 36.3 ms (+13.9 ms) | +| E2E latency avg | 96.9 ms | 99.0 ms (+2.1 ms) | 97.4 ms (+0.5 ms) | +| E2E latency p99 | 193 ms | 190 ms (−3 ms) | 182 ms (−11 ms) | +| Throughput | 5,000 msg/s | 5,000 msg/s | 5,000 msg/s | + +*Negative deltas for proxy-no-filters publish latency are within measurement noise — they indicate the proxy is indistinguishable from baseline, not that it improves latency.* + +The passthrough proxy is not adding measurable per-record overhead at this rate. E2E average overhead is +2.1 ms (p<0.001), but practically negligible for any sizing decision. + +Encryption adds significant publish latency (+10 ms avg, +13.9 ms p99, p<0.001), as you'd expect for per-record AES-256-GCM. The E2E result is counterintuitive: both proxy scenarios have *lower* E2E p99 than direct Kafka (−3 ms and −11 ms respectively, both p<0.001). E2E latency includes consumer behaviour — fetch timeouts, batch accumulation, scheduling jitter. At 5k msg/s per topic, the proxy's processing of each record slightly regularises delivery timing, damping the consumer-side spikes that drive tail latency in direct Kafka. + +**100 topics, 1 KB messages (~500 msg/s per topic):** + +| Metric | Baseline | Proxy (no filters) | Encryption | +|--------|----------|--------------------|------------| +| Publish latency avg | 2.9 ms | 4.1 ms (+1.2 ms) | 4.7 ms (+1.8 ms) | +| Publish latency p99 | 6.4 ms | 8.1 ms (+1.7 ms) | 12.1 ms (+5.7 ms) | +| E2E latency avg | 256.7 ms | 254.6 ms (−2.1 ms) | 256.3 ms (−0.4 ms) | +| E2E latency p99 | 502 ms | 501 ms (−1 ms) | 502 ms (≈0) | +| Throughput | 500 msg/s | 500 msg/s | 500 msg/s | + +Publish latency overhead is statistically significant at 100 topics (proxy-no-filters p99 +27%, encryption p99 +90%, both p<0.001). But publish latency at 500 msg/s per topic is a small fraction of E2E, and the E2E picture is what operators care about: average and p99 differences are within measurement noise. + +**The headline: negligible passthrough overhead — throughput unaffected across all three scenarios.** + +What did I take away from this? We replaced a hunch with data. The remarkable part: the proxy is doing this at Layer 7. Most proxies operate on Kafka at Layer 4 — they shuffle bytes without ever understanding what those bytes mean. Kroxylicious works at Layer 7, parsing every Kafka message, yet still adds only a few milliseconds at the E2E average. That's the design working. + +The overhead staying flat across 10 and 100 topics makes sense for the same reason: the proxy doesn't contend between topics. Think of the proxy as independent circuits on a distribution board — switching the breaker for lights doesn't cut power to the fridge. A Kafka broker is more like the mains supply itself — every circuit draws from the same source, so heavy load anywhere reduces what's available everywhere. Topics don't contend for shared resources: throughput scales linearly across them, and this data validates it. + +--- + +## Record encryption: now we're doing real work + +Ok, so let's make the proxy smarter — make it do something people actually care about! [Record encryption](https://kroxylicious.io/documentation/0.20.0/html/record-encryption-guide) uses AES-256-GCM to encrypt each record passing through the proxy. AES-256-GCM is going to ask the CPU to work relatively hard on its own, but it's also going to push the proxy to parse each record it receives, unpack it, copy it, encrypt it, and re-pack it before sending it on to the broker. With all that work going on we expect some impact to latency and throughput. To answer our original question we need to identify two things: the latency when everything is going smoothly, and the reduction in throughput all this work causes. Monitoring latency once we go past the throughput inflection point isn't very helpful — it's dominated by the throughput limits and their erratic impacts on the latency of individual requests (a big hello to batching and buffering effects). + +### Latency at sub-saturation rates + +So we know encryption is doing a lot of work, but to find out the real impact we need to compare it to a plain Kafka cluster (and yes, people do run Kroxylicious without filters — TLS termination, stable client endpoints, virtual clusters — but that's a different post). The table below tells us that above a certain inflection point the numbers get really, really noisy — especially in the p99 range. + +**1 topic, 1 KB messages — baseline vs encryption (selected rates from rate sweep):** + +| Rate | Metric | Baseline | Encryption | Delta | +|------|--------|----------|------------|-------| +| 14,300 msg/s | Publish avg | 5.4 ms | 7.6 ms | +2.2 ms (+41%) | +| 14,300 msg/s | Publish p99 | 16.3 ms | 19.2 ms | +2.9 ms (+18%) | +| 17,100 msg/s | Publish avg | 6.3 ms | 8.9 ms | +2.6 ms (+41%) | +| 17,100 msg/s | Publish p99 | 12.5 ms | 21.9 ms | +9.4 ms (+75%) | +| 18,500 msg/s | Publish avg | 10.5 ms | 13.7 ms | +3.2 ms (+30%) | +| 18,500 msg/s | Publish p99 | 22.0 ms | 106.0 ms | +84.0 ms (+382%) | + +The table shows encryption's p99 spiking sharply at 18,500 msg/s — but that ~18k figure is roughly where the forwarding proxy itself saturates (close to the bare Kafka baseline of ~19,400). Encryption gives out earlier. The rate sweep finds exactly where. + +### Throughput ceiling + +A rate-sweep is exactly what it sounds like: pick a starting rate, let OMB run long enough to get a stable measurement, then step up by a fixed increment and repeat until the system can't keep up. We defined "can't keep up" as the sustained throughput dropping by more than 5% below the target rate — at that point, something has saturated. + +We stepped up from 8k to 22k msg/s in 700 msg/s increments, looking for where throughput drops more than 5% below target. The results: + +- **Baseline**: sustained up to ~19,400 msg/s (the ceiling at RF=3 on our test cluster) +- **Encryption**: sustained up to **~14,600 msg/s**, then started intermittently saturating +- **Cost: approximately 25% fewer messages per second per partition** + +The transition wasn't a clean cliff edge — the proxy alternated between sustaining and saturating in a narrow band just above the ceiling. That pattern is characteristic of running right at a limit: it's not that it suddenly falls over, it's that small fluctuations (GC pauses, scheduling jitter) are enough to tip it either way. Stay below 14k and you're fine. Creep above it and you'll notice. The numbers are not absolute — they are just what we measured on our cluster; your mileage **will vary**. + +### The ceiling scales with CPU budget + +The fact the proxy is low latency didn't surprise me, but this did — and it matters when we think about scaling. We maxed out a single connection, but that didn't mean we'd maxed out the proxy. + +The single-producer ceiling at RF=3 is Kafka-limited, not proxy-limited — the ISR replication round-trip caps single-partition throughput regardless of how much CPU the proxy has. The proxy still had meaningful headroom: we ran four producers and aggregate throughput climbed higher, while proxy CPU sat at 570m/1000m. The proxy wasn't the constraint. + +To find the proxy's real ceiling, you need a workload that doesn't hit the Kafka partition limit first: RF=1, spread across multiple topics. With that workload, the ceiling is squarely in the proxy — and it scales linearly with CPU. The mechanism: CPU limit controls `availableProcessors()`, which controls how many Netty event loop threads the proxy creates. More threads, more concurrent connections handled in parallel, higher aggregate ceiling. + +**The practical implication**: the throughput ceiling is not a fixed number — it's a function of the CPU you allocate. Set `requests` equal to `limits` in your pod spec; this makes the CPU budget deterministic and the ceiling predictable. The [companion engineering post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full story of how we found this, including the workload design choices needed to isolate proxy CPU from Kafka's own limits. + +--- + +## Sizing guidance + +Numbers without guidance aren't very useful, so here's how to translate these results into pod specs. + +**Passthrough proxy**: size your Kafka cluster as you normally would. The proxy won't be the bottleneck — but if you want to verify that on your own hardware, the rate sweep — which steps the producer rate up incrementally until the system can't keep up — is exactly the tool for it. Run the baseline and passthrough scenarios back-to-back and you'll have your own numbers. + +**With filters (record encryption is the representative example here):** + +1. **Throughput budget**: record encryption — among the most CPU-intensive filters we can imagine — imposes a CPU-driven throughput ceiling. As a planning formula: + + > **`CPU (mc) = k × (P + N × C)`** + > + > where *k* = sizing coefficient (mc/MB/s), *P* = produce throughput (MB/s), *N* = number of consumer groups, *C* = consume throughput per group (MB/s) + + On our hardware (AMD EPYC-Rome 2 GHz with AES-NI), we measured *k* = 25 mc/MB/s on a 10-topic workload with record encryption — a conservative estimate: more realistic deployments with 100+ topics show *k* = 4–8 mc/MB/s, roughly 3× lower. Simpler filters will be cheaper still. *k* is measured from real workloads, so measure your throughput and validate on your own hardware. The [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid across topic counts and core allocations. + + *1:1 (100k msg/s at 1 KB, 1 consumer group)*: k=25, P=100, N=1, C=100 → 25 × (100 + 1 × 100) = 5,000m (~5 cores) + + *Fan-out (same rate, 3 consumer groups)*: k=25, P=100, N=3, C=100 → 25 × (100 + 3 × 100) = 10,000m (~10 cores) + +2. **Latency budget**: well below saturation, expect 2–3 ms additional average publish latency and up to ~15 ms additional p99. The overhead scales with how hard you're pushing — give yourself headroom and you'll barely notice it. + +3. **Scaling**: set `requests` equal to `limits` in your pod spec — this makes the CPU budget deterministic, which makes the throughput ceiling predictable. To increase throughput, raise the CPU limit. For redundancy, add proxy pods. + +4. **KMS overhead**: DEK caching means Vault isn't on the hot path for every record. Our tests triggered only 5–19 DEK generation calls per benchmark run. The KMS is not the thing to worry about. + +--- + +## Caveats and next steps + +These are real results from real hardware, but they don't tell a story for your workload. A few things worth knowing before you put these numbers in a slide deck: + +- **Message size**: all results use 1 KB messages. The coefficient is message-size-dependent — encryption overhead as a percentage is likely lower for larger messages. +- **Replication factor**: the encryption numbers assume traffic isn't already hitting Kafka's own replication limits — the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) explains why that matters. +- **Horizontal scaling**: linear scaling has been validated across CPU allocations on a single pod; multi-pod horizontal scaling hasn't been measured but is expected to follow the same coefficient. +- **Memory**: the workloads tested here are CPU-bound before they become memory-bound — we kept container memory settings consistent across all runs (2 Gi request / 4 Gi limit at the pod level) and it was never the constraint. If you're running larger messages or larger batches, revisit this assumption. + +For the engineering story — why we built a custom harness on top of OMB, what the CPU flamegraphs actually show, and the bugs we found in our own tooling along the way — that's in the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}). + +The full benchmark suite, quickstart guide, and sizing reference are in `kroxylicious-openmessaging-benchmarks/` in the [main Kroxylicious repository](https://github.com/kroxylicious/kroxylicious). diff --git a/_posts/2026-06-02-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md similarity index 99% rename from _posts/2026-06-02-benchmarking-the-proxy-under-the-hood.md rename to _posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md index 7c016ad..876e661 100644 --- a/_posts/2026-06-02-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md @@ -1,7 +1,7 @@ --- layout: post title: "How hard can it be??? Maxing out a Kroxylicious instance" -date: 2026-06-02 00:00:00 +0000 +date: 2026-06-04 04:30:00 +0000 author: "Sam Barker" author_url: "https://github.com/SamBarker" categories: benchmarking performance engineering From 41b69f64753e0e0291c4dfe1a8c332769859e755 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Thu, 28 May 2026 14:38:00 +1200 Subject: [PATCH 03/11] Fix Post 1 filename and post_url reference after publication date change Post 1 was renamed from 2026-05-26 to 2026-05-28; update the copy on this branch and the post_url link in Post 2 to match. Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _posts/2026-05-26-benchmarking-the-proxy.md | 178 ------------------ _posts/2026-05-28-benchmarking-the-proxy.md | 12 +- ...4-benchmarking-the-proxy-under-the-hood.md | 2 +- 3 files changed, 7 insertions(+), 185 deletions(-) delete mode 100644 _posts/2026-05-26-benchmarking-the-proxy.md diff --git a/_posts/2026-05-26-benchmarking-the-proxy.md b/_posts/2026-05-26-benchmarking-the-proxy.md deleted file mode 100644 index b9e8b83..0000000 --- a/_posts/2026-05-26-benchmarking-the-proxy.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -layout: post -title: "Does my proxy look big in this cluster?" -date: 2026-05-26 00:00:00 +0000 -author: "Sam Barker" -author_url: "https://github.com/SamBarker" -categories: benchmarking performance ---- - -Every good benchmarking story starts with a hunch. Mine was that Kroxylicious is cheap to run — I'd stake my career on it, in fact — but it turns out that "trust me, I wrote it" is not a widely accepted unit of measurement. People want proof. Sensibly. - -There's a practical question underneath the hunch too. The most common thing operators ask us is some variation of: "How many cores does the proxy need?" Which translates, from polite engineering into plain English, as: "is this thing going to slow down my Kafka?" We'd been giving the classic answer: "it depends on your workload and traffic patterns, so you'll need to test in your environment." Which is true. And also deeply unsatisfying for everyone involved, including us. - -So we stopped saying "it depends" — we built something you can run **yourselves** on your own infrastructure with your own workload, and measured it. Here are some representative numbers from ours. - -**TL;DR**: -- A passthrough proxy adds negligible overhead: publish latency impact is below measurement noise, E2E adds ~2 ms at moderate topic rates, throughput unaffected -- Add record encryption and expect a ~25% throughput reduction and 0.2–3 ms of additional latency at comfortable rates -- The throughput ceiling scales linearly with CPU: budget ~25 mc per MB/s of total proxy traffic (conservative; the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid) -- The full benchmark harness is open source — run it on your own cluster for numbers that reflect your workload - -## What we measured - -We ran three scenarios against the same Apache Kafka® cluster on the same hardware: - -- **Baseline** — producers and consumers talking directly to Kafka, no proxy in the path -- **Passthrough proxy** — traffic routed through Kroxylicious with no filter chain configured -- **Record encryption** — traffic through Kroxylicious with AES-256-GCM record encryption enabled, using HashiCorp Vault as the KMS - -We used [OpenMessaging Benchmark (OMB)](https://github.com/openmessaging/benchmark) rather than Kafka's own `kafka-producer-perf-test`. OMB is an industry-standard tool that coordinates producers and consumers together, measures end-to-end latency (not just publish latency), and produces structured JSON that makes comparison straightforward. More on why we built a whole harness around it in the [companion engineering post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}). - -## Test environment - -No, we didn't run this on a laptop — it's a realistic deployment: an 8-node OpenShift cluster on Fyre (5 workers, 3 masters), IBM's internal cloud platform — a controlled environment. Kroxylicious ran as a single proxy pod with a 1000m CPU limit. - -| Component | Details | -|-----------|---------| -| CPU | AMD EPYC-Rome, 2 GHz | -| Cluster | 8-node OpenShift 4.21 (5 workers, 3 masters), RHCOS 9.6 | -| Kafka | 3-broker Strimzi 0.51.0 (Kafka 3.9) cluster, replication factor 3 | -| Kroxylicious | 0.20.0, single proxy pod, 1000m CPU limit | -| KMS | HashiCorp Vault 2.0.0 (in-cluster) | - -The primary workload used 1 topic, 1 partition, 1 KB messages. We chose single-partition deliberately: it concentrates all traffic on one broker, so you hit ceilings quickly and any proxy overhead is easy to isolate. We also ran 10-topic and 100-topic workloads to make sure the results hold when load is spread more realistically across brokers. - -One important caveat: this Kafka cluster is deliberately untuned. We're not trying to squeeze every message-per-second out of Kafka — we're using it as a fixed baseline to measure what the proxy adds on top. Kafka experts will find obvious headroom to improve on our baseline numbers; that's fine and expected. The deltas are what matter here, not the absolutes. - ---- - -## The passthrough proxy: negligible overhead - -Good news first. The proxy itself — with no filter chain, just routing traffic — adds almost nothing. The tables below show all three scenarios side by side. - -A quick note on percentiles for anyone not steeped in performance benchmarking: p99 latency is the value that 99% of requests complete within — meaning 1 in 100 requests takes longer. Averages flatter; the p99 is what your slowest clients actually experience, and it's usually the number that matters. - -Two latency metrics appear in the tables. **Publish latency** is measured from the record's intended send time — as dictated by the target producer rate — to when the producer receives the broker's acknowledgement. That means it captures any producer-side delay (backpressure, client queuing, batch accumulation) alongside the network round-trip and ISR replication (we run with `acks=all`). **End-to-end (E2E) latency** is measured from that same intended send time to when the consumer receives the record, adding consumer-side fetch batching on top of everything publish latency already covers. - -**10 topics, 1 KB messages (~5,000 msg/s per topic):** - -| Metric | Baseline | Proxy (no filters) | Encryption | -|--------|----------|--------------------|------------| -| Publish latency avg | 4.3 ms | 4.5 ms (+0.2 ms) | 14.3 ms (+10.0 ms) | -| Publish latency p99 | 22.4 ms | 19.6 ms (−2.7 ms) | 36.3 ms (+13.9 ms) | -| E2E latency avg | 96.9 ms | 99.0 ms (+2.1 ms) | 97.4 ms (+0.5 ms) | -| E2E latency p99 | 193 ms | 190 ms (−3 ms) | 182 ms (−11 ms) | -| Throughput | 5,000 msg/s | 5,000 msg/s | 5,000 msg/s | - -*Negative deltas for proxy-no-filters publish latency are within measurement noise — they indicate the proxy is indistinguishable from baseline, not that it improves latency.* - -The passthrough proxy is not adding measurable per-record overhead at this rate. E2E average overhead is +2.1 ms (p<0.001), but practically negligible for any sizing decision. - -Encryption adds significant publish latency (+10 ms avg, +13.9 ms p99, p<0.001), as you'd expect for per-record AES-256-GCM. The E2E result is counterintuitive: both proxy scenarios have *lower* E2E p99 than direct Kafka (−3 ms and −11 ms respectively, both p<0.001). E2E latency includes consumer behaviour — fetch timeouts, batch accumulation, scheduling jitter. At 5k msg/s per topic, the proxy's processing of each record slightly regularises delivery timing, damping the consumer-side spikes that drive tail latency in direct Kafka. - -**100 topics, 1 KB messages (~500 msg/s per topic):** - -| Metric | Baseline | Proxy (no filters) | Encryption | -|--------|----------|--------------------|------------| -| Publish latency avg | 2.9 ms | 4.1 ms (+1.2 ms) | 4.7 ms (+1.8 ms) | -| Publish latency p99 | 6.4 ms | 8.1 ms (+1.7 ms) | 12.1 ms (+5.7 ms) | -| E2E latency avg | 256.7 ms | 254.6 ms (−2.1 ms) | 256.3 ms (−0.4 ms) | -| E2E latency p99 | 502 ms | 501 ms (−1 ms) | 502 ms (≈0) | -| Throughput | 500 msg/s | 500 msg/s | 500 msg/s | - -Publish latency overhead is statistically significant at 100 topics (proxy-no-filters p99 +27%, encryption p99 +90%, both p<0.001). But publish latency at 500 msg/s per topic is a small fraction of E2E, and the E2E picture is what operators care about: average and p99 differences are within measurement noise. - -**The headline: negligible passthrough overhead — throughput unaffected across all three scenarios.** - -What did I take away from this? We replaced a hunch with data. The remarkable part: the proxy is doing this at Layer 7. Most proxies operate on Kafka at Layer 4 — they shuffle bytes without ever understanding what those bytes mean. Kroxylicious works at Layer 7, parsing every Kafka message, yet still adds only a few milliseconds at the E2E average. That's the design working. - -The overhead staying flat across 10 and 100 topics makes sense for the same reason: the proxy doesn't contend between topics. Think of the proxy as independent circuits on a distribution board — switching the breaker for lights doesn't cut power to the fridge. A Kafka broker is more like the mains supply itself — every circuit draws from the same source, so heavy load anywhere reduces what's available everywhere. Topics don't contend for shared resources: throughput scales linearly across them, and this data validates it. - ---- - -## Record encryption: now we're doing real work - -Ok, so let's make the proxy smarter — make it do something people actually care about! [Record encryption](https://kroxylicious.io/documentation/0.20.0/html/record-encryption-guide) uses AES-256-GCM to encrypt each record passing through the proxy. AES-256-GCM is going to ask the CPU to work relatively hard on its own, but it's also going to push the proxy to parse each record it receives, unpack it, copy it, encrypt it, and re-pack it before sending it on to the broker. With all that work going on we expect some impact to latency and throughput. To answer our original question we need to identify two things: the latency when everything is going smoothly, and the reduction in throughput all this work causes. Monitoring latency once we go past the throughput inflection point isn't very helpful — it's dominated by the throughput limits and their erratic impacts on the latency of individual requests (a big hello to batching and buffering effects). - -### Latency at sub-saturation rates - -So we know encryption is doing a lot of work, but to find out the real impact we need to compare it to a plain Kafka cluster (and yes, people do run Kroxylicious without filters — TLS termination, stable client endpoints, virtual clusters — but that's a different post). The table below tells us that above a certain inflection point the numbers get really, really noisy — especially in the p99 range. - -**1 topic, 1 KB messages — baseline vs encryption (selected rates from rate sweep):** - -| Rate | Metric | Baseline | Encryption | Delta | -|------|--------|----------|------------|-------| -| 14,300 msg/s | Publish avg | 5.4 ms | 7.6 ms | +2.2 ms (+41%) | -| 14,300 msg/s | Publish p99 | 16.3 ms | 19.2 ms | +2.9 ms (+18%) | -| 17,100 msg/s | Publish avg | 6.3 ms | 8.9 ms | +2.6 ms (+41%) | -| 17,100 msg/s | Publish p99 | 12.5 ms | 21.9 ms | +9.4 ms (+75%) | -| 18,500 msg/s | Publish avg | 10.5 ms | 13.7 ms | +3.2 ms (+30%) | -| 18,500 msg/s | Publish p99 | 22.0 ms | 106.0 ms | +84.0 ms (+382%) | - -The table shows encryption's p99 spiking sharply at 18,500 msg/s — but that ~18k figure is roughly where the forwarding proxy itself saturates (close to the bare Kafka baseline of ~19,400). Encryption gives out earlier. The rate sweep finds exactly where. - -### Throughput ceiling - -A rate-sweep is exactly what it sounds like: pick a starting rate, let OMB run long enough to get a stable measurement, then step up by a fixed increment and repeat until the system can't keep up. We defined "can't keep up" as the sustained throughput dropping by more than 5% below the target rate — at that point, something has saturated. - -We stepped up from 8k to 22k msg/s in 700 msg/s increments, looking for where throughput drops more than 5% below target. The results: - -- **Baseline**: sustained up to ~19,400 msg/s (the ceiling at RF=3 on our test cluster) -- **Encryption**: sustained up to **~14,600 msg/s**, then started intermittently saturating -- **Cost: approximately 25% fewer messages per second per partition** - -The transition wasn't a clean cliff edge — the proxy alternated between sustaining and saturating in a narrow band just above the ceiling. That pattern is characteristic of running right at a limit: it's not that it suddenly falls over, it's that small fluctuations (GC pauses, scheduling jitter) are enough to tip it either way. Stay below 14k and you're fine. Creep above it and you'll notice. The numbers are not absolute — they are just what we measured on our cluster; your mileage **will vary**. - -### The ceiling scales with CPU budget - -The fact the proxy is low latency didn't surprise me, but this did — and it matters when we think about scaling. We maxed out a single connection, but that didn't mean we'd maxed out the proxy. - -The single-producer ceiling at RF=3 is Kafka-limited, not proxy-limited — the ISR replication round-trip caps single-partition throughput regardless of how much CPU the proxy has. The proxy still had meaningful headroom: we ran four producers and aggregate throughput climbed higher, while proxy CPU sat at 570m/1000m. The proxy wasn't the constraint. - -To find the proxy's real ceiling, you need a workload that doesn't hit the Kafka partition limit first: RF=1, spread across multiple topics. With that workload, the ceiling is squarely in the proxy — and it scales linearly with CPU. The mechanism: CPU limit controls `availableProcessors()`, which controls how many Netty event loop threads the proxy creates. More threads, more concurrent connections handled in parallel, higher aggregate ceiling. - -**The practical implication**: the throughput ceiling is not a fixed number — it's a function of the CPU you allocate. Set `requests` equal to `limits` in your pod spec; this makes the CPU budget deterministic and the ceiling predictable. The [companion engineering post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full story of how we found this, including the workload design choices needed to isolate proxy CPU from Kafka's own limits. - ---- - -## Sizing guidance - -Numbers without guidance aren't very useful, so here's how to translate these results into pod specs. - -**Passthrough proxy**: size your Kafka cluster as you normally would. The proxy won't be the bottleneck — but if you want to verify that on your own hardware, the rate sweep — which steps the producer rate up incrementally until the system can't keep up — is exactly the tool for it. Run the baseline and passthrough scenarios back-to-back and you'll have your own numbers. - -**With filters (record encryption is the representative example here):** - -1. **Throughput budget**: record encryption — among the most CPU-intensive filters we can imagine — imposes a CPU-driven throughput ceiling. As a planning formula: - - > **`CPU (mc) = k × (P + N × C)`** - > - > where *k* = sizing coefficient (mc/MB/s), *P* = produce throughput (MB/s), *N* = number of consumer groups, *C* = consume throughput per group (MB/s) - - On our hardware (AMD EPYC-Rome 2 GHz with AES-NI), we measured *k* = 25 mc/MB/s on a 10-topic workload with record encryption — a conservative estimate: more realistic deployments with 100+ topics show *k* = 4–8 mc/MB/s, roughly 3× lower. Simpler filters will be cheaper still. *k* is measured from real workloads, so measure your throughput and validate on your own hardware. The [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid across topic counts and core allocations. - - *1:1 (100k msg/s at 1 KB, 1 consumer group)*: k=25, P=100, N=1, C=100 → 25 × (100 + 1 × 100) = 5,000m (~5 cores) - - *Fan-out (same rate, 3 consumer groups)*: k=25, P=100, N=3, C=100 → 25 × (100 + 3 × 100) = 10,000m (~10 cores) - -2. **Latency budget**: well below saturation, expect 2–3 ms additional average publish latency and up to ~15 ms additional p99. The overhead scales with how hard you're pushing — give yourself headroom and you'll barely notice it. - -3. **Scaling**: set `requests` equal to `limits` in your pod spec — this makes the CPU budget deterministic, which makes the throughput ceiling predictable. To increase throughput, raise the CPU limit. For redundancy, add proxy pods. - -4. **KMS overhead**: DEK caching means Vault isn't on the hot path for every record. Our tests triggered only 5–19 DEK generation calls per benchmark run. The KMS is not the thing to worry about. - ---- - -## Caveats and next steps - -These are real results from real hardware, but they don't tell a story for your workload. A few things worth knowing before you put these numbers in a slide deck: - -- **Message size**: all results use 1 KB messages. The coefficient is message-size-dependent — encryption overhead as a percentage is likely lower for larger messages. -- **Replication factor**: the encryption numbers assume traffic isn't already hitting Kafka's own replication limits — the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) explains why that matters. -- **Horizontal scaling**: linear scaling has been validated across CPU allocations on a single pod; multi-pod horizontal scaling hasn't been measured but is expected to follow the same coefficient. -- **Memory**: the workloads tested here are CPU-bound before they become memory-bound — we kept container memory settings consistent across all runs (2 Gi request / 4 Gi limit at the pod level) and it was never the constraint. If you're running larger messages or larger batches, revisit this assumption. - -For the engineering story — why we built a custom harness on top of OMB, what the CPU flamegraphs actually show, and the bugs we found in our own tooling along the way — that's in the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}). - -The full benchmark suite, quickstart guide, and sizing reference are in `kroxylicious-openmessaging-benchmarks/` in the [main Kroxylicious repository](https://github.com/kroxylicious/kroxylicious). diff --git a/_posts/2026-05-28-benchmarking-the-proxy.md b/_posts/2026-05-28-benchmarking-the-proxy.md index 869babc..a8f7375 100644 --- a/_posts/2026-05-28-benchmarking-the-proxy.md +++ b/_posts/2026-05-28-benchmarking-the-proxy.md @@ -16,7 +16,7 @@ So we stopped saying "it depends" — we built something you can run **yourselve **TL;DR**: - A passthrough proxy adds negligible overhead: publish latency impact is below measurement noise, E2E adds ~2 ms at moderate topic rates, throughput unaffected - Add record encryption and expect a ~25% throughput reduction; at comfortable rates, E2E latency stays within measurement noise and publish latency adds up to ~10 ms -- The throughput ceiling scales linearly with CPU: budget ~25 mc per MB/s of total proxy traffic (conservative; a companion post, coming soon, has the full sizing formula) +- The throughput ceiling scales linearly with CPU: budget ~25 mc per MB/s of total proxy traffic (conservative; the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid) - The full benchmark harness is open source — run it on your own cluster for numbers that reflect your workload ## What we measured @@ -27,7 +27,7 @@ We ran three scenarios against the same Apache Kafka® cluster on the same hardw - **Passthrough proxy** — traffic routed through Kroxylicious with no filter chain configured - **Record encryption** — traffic through Kroxylicious with AES-256-GCM record encryption enabled, using HashiCorp Vault as the KMS -We used [OpenMessaging Benchmark (OMB)](https://github.com/openmessaging/benchmark) rather than Kafka's own `kafka-producer-perf-test`. OMB is an industry-standard tool that coordinates producers and consumers together, measures end-to-end latency (not just publish latency), and produces structured JSON that makes comparison straightforward. More on why we built a whole harness around it in a companion engineering post, coming soon. +We used [OpenMessaging Benchmark (OMB)](https://github.com/openmessaging/benchmark) rather than Kafka's own `kafka-producer-perf-test`. OMB is an industry-standard tool that coordinates producers and consumers together, measures end-to-end latency (not just publish latency), and produces structured JSON that makes comparison straightforward. More on why we built a whole harness around it in the [companion engineering post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}). ## Test environment @@ -147,7 +147,7 @@ The single-producer ceiling at RF=3 is Kafka-limited, not proxy-limited — the To find the proxy's real ceiling, you need a workload that doesn't hit the Kafka partition limit first: RF=1, spread across multiple topics. With that workload, the ceiling is squarely in the proxy — and it scales linearly with CPU. The mechanism: CPU limit controls `availableProcessors()`, which controls how many Netty event loop threads the proxy creates. More threads, more concurrent connections handled in parallel, higher aggregate ceiling. -**The practical implication**: the throughput ceiling is not a fixed number — it's a function of the CPU you allocate. Set `requests` equal to `limits` in your pod spec; this makes the CPU budget deterministic and the ceiling predictable. A companion engineering post, coming soon, has the full story of how we found this, including the workload design choices needed to isolate proxy CPU from Kafka's own limits. +**The practical implication**: the throughput ceiling is not a fixed number — it's a function of the CPU you allocate. Set `requests` equal to `limits` in your pod spec; this makes the CPU budget deterministic and the ceiling predictable. The [companion engineering post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full story of how we found this, including the workload design choices needed to isolate proxy CPU from Kafka's own limits. --- @@ -165,7 +165,7 @@ Numbers without guidance aren't very useful, so here's how to translate these re > > where *mc* = millicores (the Kubernetes CPU scheduling unit; 1,000 mc = 1 core per second), *k* = sizing coefficient (mc/MB/s), *P* = produce throughput (MB/s), *N* = number of consumer groups, *C* = consume throughput per group (MB/s) - On our hardware (AMD EPYC-Rome 2 GHz with AES-NI), we measured *k* = 25 mc/MB/s on a 10-topic workload with record encryption — a conservative estimate: more realistic deployments with 100+ topics show *k* = 4–8 mc/MB/s, roughly 3× lower. Simpler filters will be cheaper still. *k* is measured from real workloads, so measure your throughput and validate on your own hardware. The companion post (coming soon) has the full coefficient grid across topic counts and core allocations. + On our hardware (AMD EPYC-Rome 2 GHz with AES-NI), we measured *k* = 25 mc/MB/s on a 10-topic workload with record encryption — a conservative estimate: more realistic deployments with 100+ topics show *k* = 4–8 mc/MB/s, roughly 3× lower. Simpler filters will be cheaper still. *k* is measured from real workloads, so measure your throughput and validate on your own hardware. The [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid across topic counts and core allocations. *1:1 (100k msg/s at 1 KB, 1 consumer group)*: k=25, P=100, N=1, C=100 → 25 × (100 + 1 × 100) = 5,000m (~5 cores) @@ -185,11 +185,11 @@ Numbers without guidance aren't very useful, so here's how to translate these re These are real results from real hardware, but they don't tell a story for your workload. A few things worth knowing before you put these numbers in a slide deck: -- **Sub-saturation assumed**: all results assume the system is operating below its throughput ceiling — both the proxy's and Kafka's own replication limits. Above either, queueing and batching effects dominate and the numbers in this post no longer apply. A companion post, coming soon, explains how to identify where those ceilings are. +- **Sub-saturation assumed**: all results assume the system is operating below its throughput ceiling — both the proxy's and Kafka's own replication limits. Above either, queueing and batching effects dominate and the numbers in this post no longer apply. The [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) explains how to identify where those ceilings are. - **Message size**: all results use 1 KB messages. The coefficient is message-size-dependent — encryption overhead as a percentage is likely lower for larger messages. - **Horizontal scaling**: linear scaling has been validated across CPU allocations on a single pod; multi-pod horizontal scaling hasn't been measured but is expected to follow the same coefficient. - **Memory**: the workloads tested here are CPU-bound before they become memory-bound — we kept container memory settings consistent across all runs (2 Gi request / 4 Gi limit at the pod level) and it was never the constraint. If you're running larger messages or larger batches, revisit this assumption. -For the engineering story — why we built a custom harness on top of OMB, what the CPU flamegraphs actually show, and the bugs we found in our own tooling along the way — that's in a companion post, coming soon. +For the engineering story — why we built a custom harness on top of OMB, what the CPU flamegraphs actually show, and the bugs we found in our own tooling along the way — that's in the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}). The full benchmark suite, quickstart guide, and sizing reference are in `kroxylicious-openmessaging-benchmarks/` in the [main Kroxylicious repository](https://github.com/kroxylicious/kroxylicious). diff --git a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md index 876e661..1d21349 100644 --- a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md @@ -11,7 +11,7 @@ How hard can it be? We started with a laptop, a codebase, and a lot of confidenc Harder than expected. More interesting too. -We gave everyone [the numbers]({% post_url 2026-05-26-benchmarking-the-proxy %}) in a bland, but slide worthy way, already. This one is the engineering story: how we built the harness, what the flamegraphs actually show, the workload design choices that changed the answers, and the bugs we found in our own tooling. +We gave everyone [the numbers]({% post_url 2026-05-28-benchmarking-the-proxy %}) in a bland, but slide worthy way, already. This one is the engineering story: how we built the harness, what the flamegraphs actually show, the workload design choices that changed the answers, and the bugs we found in our own tooling. ## Why not Kafka's own tools? From 635c3a07e1b188a781aac0643ef3d34cc60c637a Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Wed, 3 Jun 2026 08:44:27 +1200 Subject: [PATCH 04/11] Replace flamegraphs with correct-cluster data and recompute CPU tables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The flamegraphs for both no-filter and encryption scenarios were from the original 3-node cluster (which had co-location issues and produced unrealistically high numbers). Replace with flamegraphs captured at 13,600 msg/s on the correct 11-node cluster (RF=3, 1 topic, 1 partition) from the rate-sweep-1core-rf3 suite. No-filter flamegraph: proxy-no-filters-cpu-profile.html updated in place. Encryption flamegraph: encryption-cpu-profile-36k.html removed (wrong cluster), encryption-cpu-profile-13k.html added (correct cluster, 13k rate). CPU percentage tables in Post 2 recomputed from async-profiler self-time data in the new flamegraph HTML files. Key findings change: - No-filter syscalls: 59.2% → 63.2% (distributed cluster has real network) - No-filter Kroxylicious: 1.4% → 1.7% - Encryption GC pressure: +4.9% → +10.3% (bigger indirect cost) - Encryption direct AES-GCM: 11.3% → 6.5% Also fix the record-encryption docs link in Post 1 (0.20.0 → 0.21.0). Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _posts/2026-05-28-benchmarking-the-proxy.md | 2 +- ...4-benchmarking-the-proxy-under-the-hood.md | 69 +- .../encryption-cpu-profile-13k.html | 15643 +++++++++ .../encryption-cpu-profile-36k.html | 28030 ---------------- .../proxy-no-filters-cpu-profile.html | 18514 +++------- 5 files changed, 20238 insertions(+), 42020 deletions(-) create mode 100644 assets/blog/flamegraphs/benchmarking-the-proxy/encryption-cpu-profile-13k.html delete mode 100644 assets/blog/flamegraphs/benchmarking-the-proxy/encryption-cpu-profile-36k.html diff --git a/_posts/2026-05-28-benchmarking-the-proxy.md b/_posts/2026-05-28-benchmarking-the-proxy.md index a8f7375..caa2167 100644 --- a/_posts/2026-05-28-benchmarking-the-proxy.md +++ b/_posts/2026-05-28-benchmarking-the-proxy.md @@ -108,7 +108,7 @@ The overhead staying flat across 1, 10, and 100 topics makes sense for the same ## Record encryption: now we're doing real work -Ok, so let's make the proxy smarter — make it do something people actually care about! [Record encryption](https://kroxylicious.io/documentation/0.20.0/html/record-encryption-guide) uses AES-256-GCM to encrypt each record passing through the proxy. AES-256-GCM is going to ask the CPU to work relatively hard on its own, but it's also going to push the proxy to parse each record it receives, unpack it, copy it, encrypt it, and re-pack it before sending it on to the broker. With all that work going on we expect some impact to latency and throughput. To answer our original question we need to identify two things: the latency when everything is going smoothly, and the reduction in throughput all this work causes. Monitoring latency once we go past the throughput inflection point isn't very helpful — it's dominated by the throughput limits and their erratic impacts on the latency of individual requests (a big hello to batching and buffering effects). +Ok, so let's make the proxy smarter — make it do something people actually care about! [Record encryption](https://kroxylicious.io/documentation/0.21.0/html/record-encryption-guide) uses AES-256-GCM to encrypt each record passing through the proxy. AES-256-GCM is going to ask the CPU to work relatively hard on its own, but it's also going to push the proxy to parse each record it receives, unpack it, copy it, encrypt it, and re-pack it before sending it on to the broker. With all that work going on we expect some impact to latency and throughput. To answer our original question we need to identify two things: the latency when everything is going smoothly, and the reduction in throughput all this work causes. Monitoring latency once we go past the throughput inflection point isn't very helpful — it's dominated by the throughput limits and their erratic impacts on the latency of individual requests (a big hello to batching and buffering effects). ### Latency at sub-saturation rates diff --git a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md index 1d21349..74b239a 100644 --- a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md @@ -7,7 +7,7 @@ author_url: "https://github.com/SamBarker" categories: benchmarking performance engineering --- -How hard can it be? We started with a laptop, a codebase, and a lot of confidence it was fast. We ended up with a benchmark harness, an eight-node cluster, and a much more nuanced answer. +How hard can it be? We started with a laptop, a codebase, and a lot of confidence it was fast. We ended up with a benchmark harness, an eleven-node cluster, and a much more nuanced answer. Harder than expected. More interesting too. @@ -112,17 +112,17 @@ We added a hard anti-affinity rule to keep the proxy off broker nodes. It wouldn The penny drops: three worker nodes, three brokers, one per node — there is nowhere for the proxy to go that isn't already co-located with a broker. Obvious in hindsight. We needed a bigger cluster. -We provisioned one: five workers, three masters, 16 vCPU per node. +We provisioned one: eight workers, three masters, 16 vCPU per node. ### The baseline shock Baseline first. Direct Kafka, no proxy. -~17,000 msg/s. The original cluster had been sustaining ~50,000. +~19,400 msg/s. The original cluster had been sustaining ~50,000. The proxy wasn't in the picture. We checked the obvious suspects: disk I/O — fine, local and unsaturated. OMB worker scaling — correct. Broker CPU: ~1.2 vCPU. Nothing was at a limit. -The answer was in the pipeline arithmetic. A Kafka producer has a maximum number of in-flight requests — batches sent but not yet acknowledged. With real round-trip times between nodes, that in-flight window bounds throughput. We measured: 0.87 ms between worker nodes, with three replication hops before the leader can confirm a produce at RF=3 — roughly 3–4 ms total. Five in-flight requests across that round trip gives a ceiling that matched ~17k msg/s almost exactly. +The answer was in the pipeline arithmetic. A Kafka producer has a maximum number of in-flight requests — batches sent but not yet acknowledged. With real round-trip times between nodes, that in-flight window bounds throughput. We measured: 0.87 ms between worker nodes, with three replication hops before the leader can confirm a produce at RF=3 — roughly 3–4 ms total. Five in-flight requests across that round trip gives a theoretical ceiling in the right ballpark, and the measured ~19,400 msg/s baseline confirmed it. On the original cluster, those nodes were almost certainly co-located on the same physical host. Inter-node RTTs at that scale are sub-millisecond — effectively free. The original cluster's 50k baseline wasn't what a 3-broker Kafka cluster does. It was what a 3-broker Kafka cluster does when the network is a memcpy. @@ -206,60 +206,59 @@ The flamegraphs below are fully interactive: hover over a frame to see its name -
CPU flamegraph — passthrough proxy (no filters), FIXME msg/s, 1 topic, 1 KB messages. Open full screen ↗
+
CPU flamegraph — passthrough proxy (no filters), 13,600 msg/s, 1 topic, 1 KB messages. Open full screen ↗
| Category | CPU share | |----------|-----------| -| Syscalls (send/recv) | 59.2% | -| Native/VM | 16.7% | -| Netty I/O | 10.5% | -| Memory operations | 4.7% | -| JDK libraries | 2.9% | -| Kroxylicious proxy | 1.4% | -| GC | 0.1% | +| Syscalls (send/recv) | 63.2% | +| Netty I/O | 14.6% | +| Native/VM | 10.8% | +| Memory operations | 5.2% | +| JDK libraries | 3.8% | +| Kroxylicious proxy | 1.7% | +| Kafka protocol | 0.6% | +| GC | 0.2% | -The proxy is overwhelmingly I/O-bound. 59% of CPU is in `send`/`recv` syscalls — the inherent cost of maintaining two TCP connections (client→proxy, proxy→Kafka) with data flowing through the JVM. The proxy itself accounts for 1.4% — and understanding *why* that number is so small is the interesting part. +The proxy is overwhelmingly I/O-bound. 63% of CPU is in `send`/`recv` syscalls — the inherent cost of maintaining two TCP connections (client→proxy, proxy→Kafka) with data flowing through the JVM. The proxy itself accounts for 1.7% — and understanding *why* that number is so small is the interesting part. Kroxylicious decodes Kafka RPCs selectively: each filter declares which API keys it cares about, and the proxy only deserialises messages that at least one filter needs. Even in the no-filter scenario, the default infrastructure filters are doing genuine L7 work — broker address rewriting, API version negotiation, topic name caching — which means metadata, FindCoordinator, and API version exchanges are fully decoded. But the high-volume produce and consume traffic? The decode predicate skips full deserialisation for those entirely, passing them through at close to L4 speed. -The 1.4% is the cost of a proxy that is *selectively* L7: doing real Kafka protocol work where it matters, and treating the hot path like a TCP relay where it doesn't. That's not a side-effect — it's what the decode predicate design is for, and this flamegraph validates it. +The 1.7% is the cost of a proxy that is *selectively* L7: doing real Kafka protocol work where it matters, and treating the hot path like a TCP relay where it doesn't. That's not a side-effect — it's what the decode predicate design is for, and this flamegraph validates it. -### Encryption proxy (same FIXME msg/s rate) +### Encryption proxy (same 13,600 msg/s)
- -
CPU flamegraph — encryption proxy (AES-256-GCM), FIXME msg/s, 1 topic, 1 KB messages. Open full screen ↗
+
CPU flamegraph — encryption proxy (AES-256-GCM), 13,600 msg/s, 1 topic, 1 KB messages. Open full screen ↗
| Category | No-filters | Encryption | Delta | |----------|-----------|------------|-------| -| Syscalls (send/recv) | 59.2% | 23.5% | −35.7%* | -| Native/VM | 16.7% | 18.9% | +2.2% | -| JCA/AES-GCM crypto | 0.0% | 11.3% | **+11.3%** | -| Memory operations | 4.7% | 10.4% | **+5.8%** | -| JDK libraries | 2.9% | 9.3% | **+6.4%** | -| GC / JVM housekeeping | 0.1% | 5.0% | **+4.9%** | -| Netty I/O | 10.5% | 5.1% | −5.4%* | -| Kafka protocol re-encoding | 0.4% | 3.5% | **+3.1%** | -| Kroxylicious encryption filter | 0.0% | 2.0% | **+2.0%** | +| Syscalls (send/recv) | 63.2% | 28.5% | −34.7%* | +| Netty I/O | 14.6% | 6.2% | −8.4%* | +| Native/VM | 10.8% | 17.5% | +6.7% | +| Memory operations | 5.2% | 13.7% | **+8.5%** | +| JDK libraries | 3.8% | 9.7% | **+5.9%** | +| GC / JVM housekeeping | 0.2% | 10.5% | **+10.3%** | +| JCA/AES-GCM crypto | 0.0% | 6.5% | **+6.5%** | +| Kroxylicious proxy logic | 1.7% | 4.5% | **+2.8%** | +| Kafka protocol re-encoding | 0.6% | 2.9% | **+2.3%** | *\* Send/recv and Netty I/O appear to shrink as a percentage share because encryption adds CPU work that grows the total pie. The absolute I/O cost is similar in both scenarios.* -The direct crypto cost is 13.3% (11.3% AES-GCM + 2.0% Kroxylicious filter logic). But encryption adds indirect costs too: +The direct crypto cost is 9.3%: 6.5% in the AES-GCM cipher itself, with the additional 2.8% in Kroxylicious proxy logic representing the encryption filter's dispatch and record handling on top of the baseline proxy work. But the more striking result is the indirect costs — encryption's second-order effects dwarf its first-order cost: -- **Buffer management (+5.8%)**: encrypted records need to be read into buffers, encrypted, and written to new buffers — more allocation, more copying -- **GC pressure (+4.9%)**: more short-lived objects from encryption buffers and crypto operations -- **JDK security infrastructure (+6.4%)**: security provider lookups, key spec handling, parameter generation -- **Kafka protocol re-encoding (+3.1%)**: encrypted records are different sizes and must be re-serialised into Kafka protocol format - -Total additional CPU: ~33%. This aligns closely with the ~26% throughput reduction. +- **GC pressure (+10.3%)**: encryption creates a stream of short-lived byte buffers — encrypted ciphertext, plaintext copies, re-encoded Kafka record wrappers — most of them dead before the next record arrives. The JVM's young-gen collector is working hard to keep up. +- **Buffer management (+8.5%)**: each record must be read into a buffer, decrypted or encrypted into a new buffer, then re-packed into Kafka protocol format — three buffer lifetimes per record instead of one. +- **JDK security infrastructure (+5.9%)**: cipher instance creation, security provider dispatch, key spec handling. +- **Kafka protocol re-encoding (+2.3%)**: encrypted records are a different size to their plaintext originals; they must be re-serialised into the Kafka batch format before forwarding. If you wanted to optimise this, the highest-impact areas would be: reducing buffer copies (encrypt in-place or use composite buffers), pooling encryption buffers to reduce GC pressure, and caching `Cipher` instances to reduce per-record JDK security overhead. diff --git a/assets/blog/flamegraphs/benchmarking-the-proxy/encryption-cpu-profile-13k.html b/assets/blog/flamegraphs/benchmarking-the-proxy/encryption-cpu-profile-13k.html new file mode 100644 index 0000000..eb631e8 --- /dev/null +++ b/assets/blog/flamegraphs/benchmarking-the-proxy/encryption-cpu-profile-13k.html @@ -0,0 +1,15643 @@ + + + + + + + +

encryption/1topic-1kb_2026-05-21T23:48:08Z

+
+ + + +
+
Produced by async-profiler
+
+
+
Frame types
+
Kernel
+
Native
+
C++ (VM)
+
Java compiled
+
Java compiled by C1
+
Inlined
+
Interpreted
+
+
+
Allocation profile
+
Allocated class
+
Allocation outside TLAB
+
Lock profile
+
Lock class
+
 
+
Search
+
Matches regexp
+
+
+
Click frame
Zoom into frame
+
Alt+Click
Remove stack
+
0
Reset zoom
+
I
Invert graph
+
Ctrl+F
Search
+
N
Next match
+
Shift+N
Previous match
+
Esc
Cancel search
+
+
+ +
+

+

Matched:

+ diff --git a/assets/blog/flamegraphs/benchmarking-the-proxy/encryption-cpu-profile-36k.html b/assets/blog/flamegraphs/benchmarking-the-proxy/encryption-cpu-profile-36k.html deleted file mode 100644 index 89215a7..0000000 --- a/assets/blog/flamegraphs/benchmarking-the-proxy/encryption-cpu-profile-36k.html +++ /dev/null @@ -1,28030 +0,0 @@ - - - - - - - -

encryption/1topic-1kb_2026-04-20T11:38:12Z

-
- - - -
-
Produced by async-profiler
-
-
-
Frame types
-
Kernel
-
Native
-
C++ (VM)
-
Java compiled
-
Java compiled by C1
-
Inlined
-
Interpreted
-
-
-
Allocation profile
-
Allocated class
-
Allocation outside TLAB
-
Lock profile
-
Lock class
-
 
-
Search
-
Matches regexp
-
-
-
Click frame
Zoom into frame
-
Alt+Click
Remove stack
-
0
Reset zoom
-
I
Invert graph
-
Ctrl+F
Search
-
N
Next match
-
Shift+N
Previous match
-
Esc
Cancel search
-
-
- -
-

-

Matched:

- diff --git a/assets/blog/flamegraphs/benchmarking-the-proxy/proxy-no-filters-cpu-profile.html b/assets/blog/flamegraphs/benchmarking-the-proxy/proxy-no-filters-cpu-profile.html index c921470..f8cada7 100644 --- a/assets/blog/flamegraphs/benchmarking-the-proxy/proxy-no-filters-cpu-profile.html +++ b/assets/blog/flamegraphs/benchmarking-the-proxy/proxy-no-filters-cpu-profile.html @@ -23,11 +23,11 @@ #status {left: 0} #match {right: 0} #reset {cursor: pointer} - #canvas {width: 100%; height: 1760px} + #canvas {width: 100%; height: 1584px} -

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

+

proxy-no-filters/1topic-1kb_2026-05-21T19:57:19Z

@@ -78,7 +78,7 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

let level0 = 0, left0 = 0, width0 = 0; let nav = [], navIndex, matchval; let inverted = false; - const levels = Array(110); + const levels = Array(99); for (let h = 0; h < levels.length; h++) { levels[h] = []; } @@ -349,500 +349,145 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

const cpool = [ 'all', ' AccessInternal::PostRuntimeDispatch, (AccessInternal::BarrierType)1, 2383974ul>::oop_access_barrier', -'ierSet>, (AccessInternal::BarrierType)3, 2383974ul>::oop_access_barrier', -'j4934ul, CardTableBarrierSet>, (AccessInternal::BarrierType)5, 2384934ul>::oop_access_barrier', 'h86822ul, CardTableBarrierSet>, (AccessInternal::BarrierType)1, 286822ul>::oop_access_barrier', 'erSet>, (AccessInternal::BarrierType)3, 286822ul>::oop_access_barrier', 'i7270ul, CardTableBarrierSet>, (AccessInternal::BarrierType)1, 287270ul>::oop_access_barrier', 'g397414ul, CardTableBarrierSet>, (AccessInternal::BarrierType)1, 397414ul>::oop_access_barrier', +'erSet>, (AccessInternal::BarrierType)3, 397414ul>::oop_access_barrier', 'g544868ul, CardTableBarrierSet>, (AccessInternal::BarrierType)2, 544868ul>::oop_access_barrier', 'i8964ul, CardTableBarrierSet>, (AccessInternal::BarrierType)2, 548964ul>::oop_access_barrier', 'h94020ul, CardTableBarrierSet>, (AccessInternal::BarrierType)2, 594020ul>::oop_access_barrier', -'i8116ul, CardTableBarrierSet>, (AccessInternal::BarrierType)2, 598116ul>::oop_access_barrier', -'!dapterHandlerLibrary::create_native_wrapper', -'7get_adapter', -'"dPNode::Ideal', -'/_base_and_offset', -'-ntity', -'*bottom_type', -'"justWeakRootClosure::do_oop', +'i8116ul, CardTableBarrierSet>, (AccessInternal::BarrierType)0, 598116ul>::oop_access_barrier', +'erSet>, (AccessInternal::BarrierType)2, 598116ul>::oop_access_barrier', '!llocTracer::send_allocation_in_new_tlab', '=outside_tlab', -'=requiring_gc_event', -'%ateHeap', -'(Node::compute_MemBar_redundancy', -'!rena::Arealloc', -'\'contains', -'\'grow', -'!ssembler::jcc', -'+lea', -'.q', -',ocate_operand', -'+mov', -'._literal64', -'.l', -'.q', -'+reachable', -'+testl', -' BCEscapeAnalyzer::BCEscapeAnalyzer', -'2compute_escape_info', -'!acktraceBuilder::expand', +'!ssembler::locate_operand', +' BacktraceBuilder::expand', '2push', -'"rrierSetAssembler::nmethod_entry_barrier', -'*C2::load_at', -'5_resolved', -'.store_at', -'6_resolved', -'*NMethod::nmethod_stub_entry_barrier', -'!itMap::at_put', -'(set_from', -'!lock::succ_fall_through', -',prob', -'%Begin::try_merge', -',visit', -'%List::iterate_backward', -'3forward', -')Builder::mark_loops', +'!lock::succ_prob', '%OffsetArrayContigSpace::block_start_unsafe', -'!oolNode::Ideal', -'*Value', -'#tstrapInfo::resolve_args', -'7bsm', -'!ranchData::post_initialize', -'!ufferBlob::create', -'!ytecode_loadconstant::resolve_constant', -')member_ref::klass', +'!ytecode_member_ref::signature', ' C2Compiler::compile_method', '!FGLoop::compute_freq', -'!LDScanClosure::do_cld', -'!PUPerformanceInterface::cpu_loads_process', +'!PUPerformanceInterface::context_switch_rate', +':pu_loads_process', '!SpaceCounters::UsedHelper::take_sample', -'!allGenerator::do_late_inline_helper', -'/for_inline', -'3method_handle_call', -'Ainline', -'$Info::set_resolved_method_name', -'$Node::match', -'$Relocation::fix_relocation_after_move', -'"rdTableBarrierSet::on_slowpath_allocation_exit', -'3C1::post_barrier', +'!ardTableBarrierSet::on_slowpath_allocation_exit', ')RS::is_in_young', '-younger_refs_in_space_iterate', -'"tchProjNode::Opcode', -'!groupController::read_numerical_tuple_value', -'7string', -'&Subsystem::active_processor_count', -'&Util::processor_count', -'&V2CpuController::cpu_period', -';quota', -'!hunk::next_chop', -'\'operator new', -'!lassFileParser::ClassFileParser', -'1copy_localvariable_table', -'2reate_instance_klass', -'1fill_instance_klass', -'1parse_constant_pool', -'D_entries', -'7field_attributes', -'', -'$ilation::Compilation', -'-build_hir', -'-compile_java_method', -'5method', -'-emit_code_body', -'2lir', -'-initialize', -'/stall_code', -'+Log::log_compile', -'+Policy::call_event', -'5n_be_compiled', -'4ompile', -':_if_required', -'4reate_mdo', +',~CodeBuffer', +'$Cache::find_blob', +'$Heap::find_blob', +'"llectedHeap::ensure_parsability', +'"mpilation::Compilation', +'-compile_method', +'-install_code', +'+Policy::compile', '3event', -'3method_back_branch_event', -':invocation_event', '&e::Code_Gen', '+mpile', -')Init', ')Optimize', -')alias_type', -')call_generator', -'*opy_node_notes_to', -')disconnect_useless_nodes', -')find_alias_type', -'*latten_alias_type', -')identify_useful_nodes', -'*nline_incrementally_cleanup', -'0string_calls', -')optimize_virtual_call', -')process_late_inline_calls_no_inline', -')remove_useless_node', -')update_dead_node_list', '\'Broker::compile_method', -'=_base', '6r_thread_loop', '/invoke_compiler_on_method', '\'Queue::get', -'\'Task::print', -'2_impl', -'-select_for_compilation', -'+Wrapper::~CompileTaskWrapper', -'\'dMethod::CompiledMethod', '\'r::compile_method', '(Thread::is_Compiler_thread', '$ressedReadStream::read_signed_int', -'"nNode::Opcode', -')make', -'#nectionGraph::add_field', -'5node_to_connection_graph', -'1compute_escape', -'1do_analysis', -'1is_oop_field', -'#stMethod::allocate', -'-compute_from_signature', -'-exception_table_length', -'=start', -'%ant::visit', -'(OopWriteValue::write_on', -'(Pool::allocate', -'.compare_entry_to', -'0py_bootstrap_arguments_at_impl', -'.find_matching_entry', -'.initialize_resolved_references', -'.klass_at_impl', -'4ref_at', -'8index_at', -'.resolve_constant_at_impl', -'.string_at_impl', -',Cache::adjust_method_entries', +'"nstantPool::name_and_type_ref_index_at', '%raintCastNode::Identity', '4Value', '4dominating_cast', -'4hash', -'5igher_equal_types', -'#tiguousSpace::adjust_pointers', -'1block_size', -'1par_allocate', -'2rint_on', +'#tiguousSpace::block_size', '%nuation::is_continuation_enterSpecial', '1return_barrier_entry', '"py::fill_to_memory_atomic', -'"unterOverflowStub::emit_code', -' DebugInformationRecorder::add_safepoint', -':copy_to', -';reate_scope_values', -':describe_scope', -':find_sharable_decode_offset', -'"codeNNode::Opcode', -'"fNewGeneration::adjust_desired_tenuring_threshold', -'2collect', -'4py_to_survivor_space', -'2print_on', +' DCmd::parse_and_execute', +'!efNewGeneration::collect', '2should_allocate', -'3pace_iterate', '2unsafe_max_tlab_alloc', -'#aultMethods::generate_default_methods', -'"optimization::deoptimize_all_marked', -'.Scope::deoptimize_marked', -'"pendencies::DepStream::spot_check_dependency_at', -'.assert_common_4', -'5evol_method', -'.encode_content_bytes', -'.find_unique_concrete_method', -'.initialize', -'.sort_all_deps', -')yContext::mark_dependent_nmethods', '!ict::Insert', -'&doubhash', -'$ionary::find', -'0_class', '"rectCallGenerator::generate', +'&ivesStack::getMatchingDirective', '#tyCardToOopClosure::do_MemRegion', '7walk_mem_region_with_cl', ' EpochDispatchOp::ElementDispatch >::dispatch', '!ventWriterHost, EncoderHost, MemoryWriterHost, StackObj, ExclusiveAccessAssert> >::end_event_write', -'!xceptions::debug_check_abort', ' FastUnorderedElapsedCounterSource::now', -'!ieldInfoReader::read_field_info', -'%Layout::initialize_instance_layout', -'-reconstruct_layout', -'+Builder::compute_regular_layout', -'4prologue', -'"ngerprinter::compute_fingerprint_and_return_type', -'!rameMap::FrameMap', -'*signature_type_array_for', -' GCHeapLog::log_heap', -'&SummaryEventSender::visit', -'"Id::peek', -'"MemoryManager::gc_end', -'"Tracer::send_gc_heap_summary_event', -'!enCollectedHeap::allocate_new_tlab', +' GenCollectedHeap::allocate_new_tlab', '2collect_generation', '2do_collection', -'5full_collection', +'2gc_prologue', '2heap', -'2is_in_young', '2mem_allocate_work', -'2print_on', -'4ocess_roots', +'2process_roots', '2satisfy_failed_allocation', '2unsafe_max_tlab_alloc', -'#MarkSweep::invoke_at_safepoint', -'.mark_sweep_phase1', -'>3', -'#eration::adjust_pointers', -'!lobalValueNumbering::GlobalValueNumbering', -'!raphBuilder::GraphBuilder', -'.access_field', -'/ppend_with_bci', -'.handle_exception', -'.invoke', -'/terate_all_blocks', -'6bytecodes_for_block', -'.load_constant', -'.profile_call', -'/ush_scope', -'.try_inline', -'8_full', -'%Kit::GraphKit', -'*access_load_at', -'1store_at', -'*cast_not_null', -'+lone_map', -'*gen_checkcast', -'.subtype_check', -'*insert_mem_bar', -'*kill_dead_locals', -'*load_object_klass', -'*make_load', -'/runtime_call', -'/slow_call_ex', -',ybe_cast_profiled_receiver', -'*new_instance', -'+ull_check_common', -'5oop', -'*record_profiled_arguments_for_speculation', -':return_for_speculation', -',place_in_map', -'*set_edges_for_java_call', -'.map_clone', -'.output_for_allocation', -'.predefined_output_for_runtime_call', +'!raphKit::make_slow_call_ex', +'*set_all_memory', '.results_for_java_call', -'+topped', -'-re_to_memory', -'+ubtype_check_receiver', -'*type_check_receiver', -'*uncommon_trap', -'"owableArrayWithAllocator::Node*, GrowableArray::Node*> >::grow', -';Instruction*, GrowableArray >::expand_to', -';LIR_Op*, GrowableArray >::expand_to', -';float, GrowableArray >::grow', -';int, GrowableArray >::grow', -'(BitMap::resize', -' HaltNode::Opcode', -'"ndleArea::oops_do', +' HandleArea::oops_do', ',real_allocate_handle', -'&Mark::initialize', -',pop_and_restore', -',~HandleMark', -'!ierarchyVisitor::run', -' I2C/C2I adapters(0xb)', -'4a)', -'5aba)', -'4ba)', -'5ba)', -'5e)', -'!R::IR', -'$compute_use_counts', -'$eliminate_null_checks', -'"Scope::IRScope', -'!dealLoopTree::est_loop_clone_sz', -'8flow_merge_sz', -'/iteration_split', -'>_impl', -'/loop_predication', -'/policy_unroll', -'!fNode::Ideal', -'-_common', -'(Opcode', -'(pinned', -'(up_one_dom', -'"TrueNode::Opcode', -'!mmutableOopMapBuilder::fill', -'/Set::build_from', -'4find_map_at_offset', -'!ndexSet::IndexSet', -'*alloc_block_containing', -'*initialize', -'*lrg_union', +'&Mark::~HandleMark', +' IfFalseNode::Opcode', +'!ndexSet::lrg_union', '(Iterator::advance_and_next', -'"itializeNode::can_capture_store', -'0detect_init_independence', -'"lineCacheBuffer::needs_update_inline_caches', -'&Tree::check_can_parse', -',find_subtree_from_root', -',ok_to_inline', -',should_not_inline', -',try_to_inline', -'"stanceKlass::add_to_hierarchy_impl', -'0llocate_instance', -'@_klass', +'"stanceKlass::allocate_instance', '8objArray', -'0rray_klass', -'/call_class_initializer', -'/find_field', -'4local_field', -'4method_index', -'/initialize_impl', -'0s_same_class_package', -'/link_class_impl', -'4methods', -'0ookup_osr_nmethod', -'/mark_dependent_nmethods', -'0ethod_with_orig_idnum', -'/protection_domain', -'/uncached_lookup_method', -'$ruction::as_BlockEnd', -'0Phi', -'-exact_type', -'"terpreterRuntime::_new', -'4anewarray', -'4build_method_counters', -'4exception_handler_for_exception', -'4frequency_counter_overflow', -'N_inner', -'4ldc', -'4newarray', -'4resolve_from_cache', -', &(write__klass__leakp(JfrCheckpointWriter*, void const*))>, 178u>, JfrTypeWriterHost, &(write__klass(JfrCheckpointWriter*, void const*))>, 178u> >, KlassArtifactRegistrator> >::do_artifact', -'#Buffer::move', +'#Buffer::lease', '#CheckpointManager::flush_type_set', '6write_type_set', '%unkWriter::flush_chunk', '0write_chunk_header_checkpoint', -'#Event::write_sized_event', -'.JavaMonitorWait>::write_sized_event', +'$lassLoaderStatsVMOperation::doit', +'#Event::write_sized_event', '.ObjectAllocationSample>::write_sized_event', -'(ClassTransformer::on_klass_creation', -'(Throttler::accept', -'#Flush::JfrFlush', '#GetCallTrace::find_top_frame', -'#JvmtiAgent::retransform_classes', -'#KlassUnloading::sort', -'#NativeMemoryEvent::send_type_events', -')SamplerCallback::call', +'#KlassUnloading::is_unloaded', +'#NativeSamplerCallback::call', '$etworkUtilization::send_events', '#ObjectAllocationSample::send_event', -'$ptionSet::stackdepth', +'$ptionSet::sample_protection', +'/tackdepth', '#PeriodicEventSet::requestCPULoad', -'proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z '/record', '5_async', '1solve_linenos', -'/write', +'/~JfrStackTrace', '-Repository::add', '<_trace', '9record', '?_for_leak_profiler', '9write', -'%orage::flush', -'1_regular_buffer', -',write', +'%orage::write', '#ThreadCPULoadEvent::send_events', -'7update_event', -')Local::is_excluded', -'3included', -'0stackdepth', +')Local::external_thread_id', +'0is_included', '0thread_id', ')SampleClosure::commit_events', '8do_sample_thread', @@ -871,671 +512,197 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'/r::run', '2task_stacktrace', '.ing::on_javathread_suspend', -'$imeConverter::nanos_to_countertime', '$raceIdKlassQueue::get_enqueue_buffer', '6iterate', -'*LoadBarrier::get_sampler_enqueue_buffer', +'*LoadBarrier::do_klasses', '$ypeSet::serialize', '#VframeStream::JfrVframeStream', '1next_vframe', -'!vmtiDeferredUpdates::get_and_reset_relock_count_after_wait', -'%Env::GetClassMethods', -'*RetransformClasses', -'&xport::post_class_load', -'8prepare', -'2dynamic_code_generated', -'%TagMap::set_needs_cleaning', -' Klass::check_array_allocation_length', -'\'is_cloneable', -'*subclass_of', -'\'next_sibling', -'\'subklass', -'%DepChange::initialize', -'1s_klass_change', -'%Factory::create_from_stream', -' LIRGenerator::access_store_at', -'.do_Base', -'1Goto', -'1If', -'2ntrinsic', -'1LoadField', -'1NewInstance', -'1ProfileCall', -'8Invoke', -'1StoreField', -'.increment_event_counter_impl', -'.move_to_phi', -'.new_register', -'.profile_arguments', -'6type', -'.rlock_byte', -'4result', -'#_Assembler::add_call_info', -'/call', -'0omp_op', -'/emit_call', -'5ode', -'4deopt_handler', -'4lir_list', -'4op0', -'61', -'6TypeCheck', -'4profile_call', -'4slow_case_stubs', -'4typecheck_helper', -'/leal', -'/mem2reg', -'/process_debug_info', -'/record_non_safepoint_debug_info', -'1g2reg', -'/safepoint_poll', -'0tore_parameter', -'$List::LIR_List', -'*append', -'*load', -',gical_and', -'$OpBranch::emit_code', -'&TypeCheck::emit_code', -'&VisitState::append', -'2visit', -'!abel::add_patch_at', -'!eakProfiler::is_running', -'.sample', -'!inearScan::add_def', -'0temp', -'0use', -'-llocate_registers', -'-ppend_scope_value', -'>_for_operand', -'-ssign_reg_num', -',build_intervals', -',color_lir_opr', -'.mpute_debug_info_for_scope', -'4local_live_sets', -'4oop_map', -',do_linear_scan', -',number_instructions', -'*Walker::activate_current', -'3lloc_free_reg', -'2free_collect_inactive_fixed', -'2insert_move', -'#kInfo::LinkInfo', -'$Resolver::check_klass_accessibility', -'4method_accessability', -';loader_constraints', -'.linktime_resolve_special_method', -'?virtual_method', -'M_or_null', -'/ookup_instance_method_in_klasses', -'5method_in_klasses', -'5polymorphic_method', -'.resolve_dynamic_call', -'6field', -';_access', -'6handle_call', -'6interface_call', -'@method', -'8voke', -'special_method', -'$edConcreteMethodFinder::find_witness_anywhere', -'#uxWaitBarrier::wait', -'"veRangeMap::reset_uf_map', -'!oadKlassNode::make', -'$Node::Ideal', -'-ntity', -'*Value', -'*make', -'$UBNode::Opcode', -' MHN_resolve_Mem', -'!achCallJavaNode::in_RegMask', -'$Node::adr_type', -'*cisc_RegMask', -'*ideal_reg', -'+n_RegMask', -'*oper_input_base', -'*rematerialize', -'$Oper::num_edges', -'*operator new', -'$ProjNode::bottom_type', -'$SpillCopyNode::ideal_reg', -'4mplementation', -'#roAssembler::call', -'0mov_metadata', -'"rkSweep::follow_stack', -'$ingCodeBlobClosure::do_code_blob', -'"tcher::Fixup_Save_On_Entry', -')Label_Root', +'!vmtiAgent::load', +'*List::load_agent', +'%DeferredUpdates::get_and_reset_relock_count_after_wait', +'%VMObjectAllocEventCollector::JvmtiVMObjectAllocEventCollector', +' LeakProfiler::sample', +' MachSpillCopyNode::out_RegMask', +'"rkingCodeBlobClosure::do_code_blob', +'"tcher::Label_Root', ')ReduceInst', '3_Interior', '/Oper', -')find_shared', -'4_visit', -')init_first_stack_mask', -'*s_generic_vector', -',reg2reg_move', ')match', -'._sfpt', -'/tree', -')pd_clone_node', -')specialize_generic_vector_operands', +'._tree', ')xform', -'!emAllocator::Allocation::check_out_of_memory', -':notify_allocation_jfr_sampler', -'Mvmti_sampler', +'!emAllocator::Allocation::notify_allocation_jvmti_sampler', '.allocate', '.mem_allocate_inside_tlab_slow', -'#BarNode::Ideal', -',Value', -'#Node::Ideal_common', -')adr_type', -'*ll_controls_dominate', -')can_see_stored_value', -')find_previous_store', -'#oryService::track_memory_usage', -'"rgeMemNode::MergeMemNode', -'.iteration_setup', -'.make', -'"taspace::allocate', -'+contains_non_shared', -'#hod::allocate', -'(bcp_from', -')uild_method_counters', -'.profiling_method_data', -'(ensure_jmethod_ids', -'(fast_exception_handler_bci_for', +'#Node::adr_type', +'"taspace::contains', +'3_non_shared', +')Counters::update_performance_counters', +'#hod::bcp_from', '(is_method_handle_intrinsic', -'+not_compilable', '+valid_method', -'(klass_name', '(line_number_from_bci', -'+k_method', '(validate_bci_from_bcp', -'&Counters::allocate_with_exception', -'&Data::allocate', -',bci_to_dp', -',compute_allocation_size_in_bytes', -',initialize', -',post_initialize', -'-rofile_arguments_for_invoke', -'&Handles::is_basic_type_signature', -'/lookup_basic_type_signature', -'/resolve_MemberName', -'&Liveness::BasicBlock::get_liveness_at', -'0get_liveness_at', -'!odRefBarrierSetC2::store_at_resolved', -'"nitor::wait_without_safepoint_check', +'!onitor::wait', +'-_without_safepoint_check', '\'DeflationThread::is_hidden_from_external_view', '8monitor_deflation_thread_entry', -'!ultiNode::hash', -'+is_CFG', -'"tex::lock', +'!utex::lock', '+_without_safepoint_check', '\'try_lock', -' NTarjan::DFS', -'!ativeInstruction::wrote', -'!etworkPerformanceInterface::NetworkPerformance::network_utilization', +' NetworkPerformanceInterface::NetworkPerformance::network_utilization', 'Qread_counter', -'!ode::Ideal', -'&Node', -'&add_req', -'&clone', -'&disconnect_inputs', -'\'ominates', -'&grow', -'&has_special_unique_user', -'&is_CFG', -')block_proj', -')dead_loop_safe', -'&out_grow', -'&pinned', -'&replace_by', -'&unique_ctrl_out_or_null', -'$Hash::hash_find_insert', -'"nSafepointEmitter::emit_non_safepoint', -'!ullCheckEliminator::iterate_one', -')Visitor::do_Phi', -'"mberSeq::add', +'!ode::Node', +'$Hash::grow', +'*hash_find_insert', +'!umberSeq::add', ' OSThreadSampler::do_task', '/Callback::call', -'!bjAllocator::initialize', -'$rrayAllocator::initialize', +'!bjArrayAllocator::initialize', '(Klass::allocate', '#ectMonitor::enter', '0xit', '/wait', '&Sample::set_object', ',r::add', -'/is_created', '/sample', '0cavenge', '\'ynchronizer::FastHashCode', -'4exit', '4inflate', -'5s_async_deflation_needed', '4wait', '!ldGenScanClosure::do_oop', -'!opMap::copy_and_sort_data_to', -'&Set::add_gc_map', -'\'ort::sort', -'\'tream::find_next', +'!opMapCache::lookup', '#Storage::allocate', -'!ptimizer::eliminate_null_checks', -'#oRuntime::new_array_C', +'!ptoRuntime::is_deoptimized_caller_frame', +'-new_array_C', '7nozero_C', '1instance_C', ' Parse::Parse', -'\'add_safepoint', -')just_map_after_if', -'(rray_load', '\'build_exits', -'\'call_register_finalizer', -'(reate_entry_map', '\'do_all_blocks', '*call', -'+heckcast', -'*exits', '*field_access', '*get_xxx', -'*if', -'+nstanceof', -'*new', '*one_block', -'/ytecode', -'*put_xxx', -'\'init_blocks', -'\'jump_if_false_fork', -',switch_ranges', -'\'merge', -',_common', -'\'return_current', +'\'merge_common', '%Generator::generate', -'"tchingStub::emit_code', -'#hFrequency::to', '!cDescContainer::find_pc_desc_internal', '!erfLongVariant::sample', '#iodicTask::real_time_tick', -'!hase::Phase', -'%AggressiveCoalesce::coalesce', -'9insert_copies', -'%BlockLayout::PhaseBlockLayout', -'2find_edges', +'!haseAggressiveCoalesce::insert_copies', '%CCP::analyze', -'*do_transform', -'*fetch_next_node', '*push_and', -'/loadp', '/more_uses', -'*transform', -'&FG::PhaseCFG', -'*build_cfg', -'*do_global_code_motion', +'&FG::do_global_code_motion', '*estimate_block_frequency', -'*global_code_motion', -'*hoist_to_cheaper_block', -'*insert_anti_dependences', -'*sched_call', -'/ule_early', -'3late', -'4ocal', -'3pinned_nodes', -'+elect', -'&haitin::PhaseChaitin', -'.Register_Allocate', +'&haitin::Register_Allocate', '.Select', -'/implify', '/plit', -'.add_input_to_liveout', -'.build_ifg_physical', -'8virtual', -'.cache_lrg_info', -'.de_ssa', -'.elide_copy', -'.fixup_spills', +'.build_ifg_virtual', '.gather_lrg_masks', -'/et_spillcopy_wide', -'.interfere_with_live', -'.merge_multidefs', -'.post_allocate_copy_removal', -'.remove_bound_register_from_interfering_live_ranges', -'5node_if_not_used', -'.skip_copies', -'/plit_DEF', -'/tretch_base_pointer_live_ranges', '&oalesce::coalesce_driver', -'1mbine_these_two', '\'nservativeCoalesce::coalesce', '=py_copy', -';update_ifg', '%GVN::transform_no_reclaim', '%IFG::Compute_Effective_Degree', -'*SquareUp', '*effective_degree', -'*init', -'*re_insert', -',move_node', -'&dealLoop::Dominators', -'0build_and_optimize', -'6loop_early', -';late', +'&dealLoop::build_and_optimize', +'6loop_late', '?_post_work', -';tree', -'?_impl', -'0clone_loop', -'1ompute_early_ctrl', -'1reate_slow_version_of_loop', -'0do_split_if', -'3unswitching', -'0finish_clone_loop', -'0get_ctrl', -'4early_ctrl', -'4late_ctrl_with_anti_dep', -'0has_local_phi_input', +'0ctrl_of_all_uses_out_of_loop', +'0get_late_ctrl_with_anti_dep', '0is_dominator', -'0loop_predication_follow_branches', -'Aimpl', '0optimize', -'0remix_address_expressions', '0split_if_with_blocks', 'D_post', -'Fre', -'6thru_phi', -'6up', '0try_sink_out_of_loop', -'&terGVN::PhaseIterGVN', -'.add_users_to_worklist', -'C0', -'.is_dominator', -'.optimize', -'.remove_globally_dead_node', -'.subsume_node', +'&terGVN::optimize', '.transform_old', -'%Live::add_liveout', -'+compute', -'%MacroExpand::expand_macro_nodes', -'9subtypecheck_node', -'%Output::BuildOopMaps', -'-Output', -'-Process_OopMap_Node', -'-fill_buffer', -'-init_scratch_buffer_blob', -'/stall', -'4_code', -'-scratch_emit_size', -'.horten_branches', -'%RemoveUseless::PhaseRemoveUseless', -'\'numberLive::PhaseRenumberLive', -'3update_embedded_ids', -'%Values::find_long_type', -'-intcon', -'-longcon', -'"iNode::Ideal', -',ntity', -')Opcode', -')Value', -')hash', -')in_RegMask', -'*s_data_loop', -',unsafe_data_reference', -')out_RegMask', -')unique_input', -'#Resolver::create_node', -'-move', -'!laceholderEntry::remove_seen_thread', -'+Table::find_and_remove', -'#tformEvent::park_nanos', +'%MacroExpand::expand_allocate_common', +'9macro_nodes', +'2initialize_object', +'!latformEvent::park_nanos', '(Monitor::wait', '!osixSemaphore::signal', '0timedwait', '1rywait', '&ignals::do_resume', '!redictedCallGenerator::generate', -'#serveJVMState::PreserveJVMState', +'#serveExceptionMark::~PreserveExceptionMark', '"ofiler::dlopen_hook', -'#jNode::Value', -'*is_CFG', -'-uncommon_trap_if_pattern', -';proj', -' Range::intersects_at', -'!eferenceProcessor::discover_reference', -'4process_discovered_references', -', JfrCHeapObj>::seek', -'#ingTable::do_intern', -'-get_table_statistics', -'-intern', -'!ubNode::Identity', -'#TypeCheckNode::sub', -'"spendedThreadTask::internal_do_task', +'#ingTable::get_table_statistics', +'!uspendedThreadTask::internal_do_task', '5run', -'!ymbolTable::do_add_if_needed', -'0lookup', -'-get_table_statistics', -'-lookup_only', -'4shared', +'!ymbolTable::get_table_statistics', +'-lookup_shared', '-new_symbol', -'7s', '&s::parseLibraries', -'"stemDictionary::add_loader_constraint', -'2check_constraints', -'8signature_loaders', -'2define_instance_class', -'2find_constrained_instance_or_array_klass', -'7method_handle_intrinsic', -'7or_define_helper', -'2invoke_bootstrap_method', -'2link_method_handle_constant', -'3oad_instance_class', -'E_impl', -'2resolve_class_from_stream', -':from_stream', -':instance_class_or_null', -':or_fail', ' TableStatistics ConcurrentHashTable::statistics_calculate', -'!emplateInterpreter::bytecode_should_reexecute', -'"nuredGeneration::collect', '!hread::SpinAcquire', '(call_run', '(oops_do', -'/_no_frames', -'(print_on', '&CrashProtection::call', '&InVMfromNative::ThreadInVMfromNative', +'&LocalAllocBuffer::fill', +'8print_stats', +'8retire', +'+Storage::is_initialized', '&Shadow::clear_pending_exception', '&s::oops_do', ')print_on', '\'List::find_index_of_JavaThread', '+Handle::ThreadsListHandle', -'!raceMemoryManagerStats::~TraceMemoryManagerStats', '!ype::cmp', '&hashcons', -'&uhash', -'&xmeet', '$ArrayKlass::allocate_common', -'&yPtr::add_offset', -',base_element_type', -',make', -'$Func::make', -'$InstKlassPtr::try_improve', -'(Ptr::add_offset', -'-cast_to_ptr_type', -'-hash', -'-is_meet_subtype_of_helper', -'-make', -'-xdual', -'.meet_helper', -'&t::filter_helper', -')xmeet', -'\'erfaces::TypeInterfaces', -'0intersection_with', -'0make', -'0union_with', -'$KlassPtr::exact_klass_helper', -'.make', -'$Long::singleton', +'$InstPtr::add_offset', +'-eq', +'-xmeet_helper', '$Node::bottom_type', -'*hash', '$OopPtr::TypeOopPtr', -',cleanup_speculative', ',filter_helper', -',make_from_klass_common', -'$Ptr::MeetResult TypePtr::meet_instptr', -')interfaces', -')xmeet', -'._speculative', -'$Tuple::make_domain', -'$Vect::hash', -' UTF8::unicode_length', -'!ncommonTrapCallGenerator::generate', -'"ique_Node_List::remove', -'#verse::should_fill_in_stack_trace', +'$Ptr::xmeet', +' Universe::should_fill_in_stack_trace', '"safe_AllocateInstance', '/Memory0', -'\'CopyMemory0', '\'FreeMemory0', '\'SetMemory0', -'!seCountComputer::visit', -' VM::RetransformClassesHook', -'$loadMethodIDs', -'"Error::is_error_reported', +' VMError::is_error_reported', '"Thread::evaluate_operation', -'+xecute', '*inner_execute', '*run', '*wait_for_operation', -'"_CollectForAllocation::VM_CollectForAllocation', -'-MetadataAllocation::doit', -'#GC_Operation::doit_prologue', -'$enCollectForAllocation::doit', +'"_GenCollectForAllocation::doit', '#Operation::evaluate', '#PrintThreads::doit', -'#RedefineClasses::AdjustAndCleanMetadata::do_klass', -'4append_entry', -'4doit', -'8_prologue', -'4find_or_append_indirect_entry', -'4load_new_class_versions', -'4merge_constant_pools', -';p_and_rewrite', -'!alueMap::ValueMap', -'*kill_memory', -'%NumberingEffects::kill_memory', -'.Visitor::do_ProfileCall', -'%Recorder::maybe_find_index', -'._jobject*>::add_handle', -'%Stack::ValueStack', -',copy', -',is_same', -'!erificationType::get_component', -'2is_reference_assignable_from', -'2resolve_and_check_assignability', -'&er::inference_verify', -'*verify', -'%yClassForMajorVersion', -'!irtualSpace::expand_by', ' WatcherThread::run', '/sleep', '!eakHandle::WeakHandle', '$Processor::weak_oops_do', ' [break_compiled]', -'\'interpreted]', -'\'stack_range]', '!unknown]', '!vdso]', ' _IO_fclose@@GLIBC_2.2.5', @@ -1545,18 +712,14 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'%read', '$getline_info', '$new_file_underflow', -'%o_init', -'$old_init', +'$vsscanf', '!SafeFetch32_fault', '!_GI__IO_default_uflow', -'1xsputn', ')file_open', '.xsgetn', -')padn', '&_close_nocancel', '\'libc_write', -'(ll_lock_wait', -'2ke', +'(ll_lock_wake', '\'nanosleep', '\'open', '\'pthread_disable_asynccancel', @@ -1565,456 +728,144 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'/mutex_lock', '5unlock_usercnt', '\'recv', -'\'socket', '\'writev', -'%getifaddrs', -'%mprotect', -'"__strtoul_l_internal', -'#pthread_cond_signal', +'"_pthread_cond_signal', '"clone3', '#ondvar_cancel_waiting', +'+onfirm_wakeup', '"fopen_internal', '#scanf', '#utex_abstimed_wait_common', '"libc_read', -'\'sendto', '#seek64', -'"madvise', -'#emcmp_avx2_movbe', -'%move_avx_unaligned_erms', -'%set_avx2_unaligned_erms', -'#pn_extract_double', -'"netlink_open', -'*request', -'$w_sem_wait_slow64.constprop.0', +'"memset_avx2_unaligned_erms', +'#pn_lshift', +'"new_sem_wait_slow64.constprop.0', '"printf_fp_l', '#thread_kill_implementation', '*mutex_cond_lock', '#write64', '"restore_rt', -'"setsockopt', +'"sched_getaffinity_new', '#igsetjmp', -'&uspend', +'#trstr_sse2', '"tls_get_addr', -'.@plt', '"vfprintf_internal', '$scanf_internal', -'#snprintf_chk', -',internal', +'#snprintf_internal', '!int_free', '%malloc', '!new_array_Java', '+nozero_Java', '%instance_Java', -'!rethrow_Java', ' accept4', -' bool emit_shared_stubs_to_interp', -' caller_is_deopted', -'!heckCastPPNode::rule', -'%cast_arraycopy_uninit', -'!iBytecodeStream::get_constant', -'6field', -'6method', -'2has_local_signature', -'2reset_to_bci', -'"Env::ciEnv', -'\'get_constant_by_index_impl', -'+field_by_index', -'9_impl', -'+klass_by_index_impl', -'4name_impl', -'+method_by_index_impl', -'2from_handle', -'\'is_in_vm', -'\'lookup_method', +'!lloc_perturb', +'!ttach_listener_thread_entry', +' ciEnv::ciEnv', +'\'get_method_from_handle', '\'register_method', -'"Field::ciField', -')will_link', -'"InstanceKlass::ciInstanceKlass', -'2ompute_transitive_interfaces', -'1get_canonical_holder', -'5field_by_offset', -'1is_boxed_value_offset', -'4instance_klass', -'1transitive_interfaces', -'1unique_concrete_subklass', -'"Klass::ciKlass', -')is_subtype_of', +'"InstanceKlass::compute_nonstatic_fields', +'1get_field_by_offset', '"Method::ciMethod', -'*ensure_method_data', -'*find_monomorphic_target', -'*get_bcea', -'.flow_analysis', -'.method_at_bci', -'*has_compiled_code', -'.option_value', -'*liveness_at_bci', -'*method_data', -'(Data::load_data', -'3remaining_extra_data', -'"ObjectFactory::create_new_metadata', -'1get', -'4_metadata', -'5symbol', -'5unloaded_klass', +'"ObjectFactory::ciObjectFactory', +'2reate_new_metadata', +'1get_metadata', '"Signature::ciSignature', -'"TypeFlow::Block::Block', -'3successors', -',StateVector::apply_one_bytecode', -'9do_getstatic', -'', -'Uintrospect', -'Qtext.findContextualValueDeserializer', -'ZNonContextualValueDeserializer', -'ZRootValueDeserializer', -'VhandlePrimaryContextualization', -'?ObjectMapper.', -'Minit>', -'L_findRootDeserializer', -'MreadMapAndClose', -'QTreeAndClose', -'LreadTree', -'PValue', -'?cfg/MapperConfig.typeIdResolverInstance', -'?deser/BasicDeserializerFactory._addSelectedPropertiesBasedCreator', -'_constructDefaultValueInstantiator', -'^constructCreatorProperty', -'_reateCollectionDeserializer', -'^findPropertyTypeDeserializer', -'bTypeDeserializer', -'bValueInstantiator', -'^resolveMemberAndTypeAnnotations', -'FeanDeserializer._deserializeUsingPropertyBased', -'bWithErrorWrapping', -'Vdeserialize', -'aFromObject', -'UBase.deserializeFromObjectUsingNonDefault', -'Zresolve', -'UFactory.buildBeanDeserializer', -']createBeanDeserializer', -'EDefaultDeserializationContext.readRootValue', -'GserializerCache._createAndCache2', -'fValueDeserializer', -'^Deserializer', -'j2', -'WfindValueDeserializer', -'ESettableBeanProperty.deserialize', -'EValueInstantiator.createFromObjectWith', -'Eimpl/PropertyBasedCreator.build', -'Estd/BaseNodeDeserializer._deserializeContainerNoRecursion', -'ICollectionDeserializer._deserializeFromArray', -'lNoNullChecks', -'`createContextual', -'`deserialize', -'IJsonNodeDeserializer.deserialize', -'IReferenceTypeDeserializer.createContextual', -'IStdValueInstantiator.createFromObjectWith', -'?introspect/AnnotatedClass._methods', -'YmemberMethods', -'YresolveType', -'Tonstructor.call', -'SMethod.getType', -'YCollector._addMemberMethods', -'ccollect', -'jMethods', -'QionIntrospectorPair.findPropertyTypeResolver', -'iTypeResolver', -'JBasicBeanDescription._properties', -'_findProperties', -'_getPotentialCreators', -'OClassIntrospector.collectProperties', -'aforDeserialization', -'JDefaultAccessorNamingStrategy$Provider.forRecord', -'hRecordNaming.', -'g.findNameForIsGetter', -'JJacksonAnnotationIntrospector.', -'h_constructStdTypeResolverBuilder', -'ifindTypeResolver', -'hfindPolymorphicTypeInfo', -'mropertyTypeResolver', -'lTypeResolver', -'JPOJOPropertiesCollector._addGetterMethod', -'fMethods', -'bcollectAll', -'bgetPotentialCreators', -'froperties', -'lyMap', -'?jdk14/JDK14Util$RecordAccessor$$InjectedInvoker.0x00007f81631d9800.reflect_invoke_V', -'].getRecordFieldNames', -'^recordComponents', -'N.getRecordFieldNames', -'@sontype/impl/AsDeductionTypeDeserializer.', -'ibuildFingerprints', -'MStdTypeResolverBuilder.buildTypeDeserializer', -'?module/SimpleModule.addDeserializer', -'?ser/BasicSerializerFactory.', -'Cstd/StdJdkSerializers.all', -'?type/ClassStack.', -'DTypeFactory._fromAny', -'UClass', -'UParamType', -'PresolveMemberType', -'?util/ClassUtil.getClassMethods', -'DLRUMap.', -'Kput', -'DStdDateFormat.', -'Dinternal/PrivateMaxEntriesMap$Builder.initialCapacity', -'bWeightedValue.', -'a.put', -':format/yaml/YAMLFactory._createParser', -'RcreateParser', -'JParser.', -'QgetEvent', -'QnextToken', -'$github/benmanes/caffeine/cache/BoundedLocalCache$BoundedLocalManualCache.', -'T.putAll', -'CCaffeine.build', -'CLocalManualCache.putAll', -'$lmax/disruptor/BatchEventProcessor.notifyTimeout', +'!om/lmax/disruptor/BatchEventProcessor.notifyTimeout', 'GprocessEvents', 'Grun', '3ProcessingSequenceBarrier.waitFor', -'3RingBuffer.', -'>create', -'DMultiProducer', -'=Fields.', -'Dfill', '3Sequence.get', '3TimeoutBlockingWaitStrategy.waitFor', -'3dsl/Disruptor.', '3util/Util.awaitNanos', -'"nstantPoolHandle::~constantPoolHandle', -'(Tag::non_error_value', '"unter_overflow Runtime1 stub', -'!p_index_to_class_fullinfo', -' decodeHeapOop_not_nullNode::Expand', -'!o_klasses', +' do_klasses', ' elapsedTimer::start', +'0op', '!poll_ctl', '&pwait2', -'!ventfd_write', -'!xception_handler_for_pc_helper', ' fast_new_instance Runtime1 stub', -'!ileDescriptorClose', -'"nd_class_from_class_loader', -'!lush_icache_stub', -'&type_set', -'!rame::entry_frame_is_first', -'\'frame', -'\'interpreter_frame_bci', -'9method', +'!lush_type_set', +'!rame::frame', +'\'interpreter_frame_method', '(s_interpreted_frame_valid', '\'oops_code_blob_do', -',entry_do', -'\'retrieve_receiver', +',interpreted_do', '\'safe_for_sender', '(ender', '-_for_interpreter_frame', '"ee', -' getFD', -'#_class_declared_methods_helper', -'$parameter_types', -'#delim', -'#ifaddrs_internal', -'#sockname', -'\'opt', -' handleRead', -'&_exception_from_callee Runtime1 stub', -' ic_miss_stub', -'!nflate', -'\'_fast', -'"ternal_word_Relocation::copy_into', -'!o/kroxylicious/app/BannerLogger$$Lambda.0x00007f816321f368.accept', -'@.lambda$log$0', -'Bog', -'4Kroxylicious$$Lambda.0x00007f81631aef58.build', -'@.', -'Acall', -'Amain', -'AprintBannerAndVersions', -'0proxy/KafkaProxy$$Lambda.0x00007f816329c318.apply', -'AEventGroupConfig.build', -'@.', -'AenableNettyMetrics', -'AinitVersionInfoMetric', -'Alambda$maybeStartManagementListener$9', -'AmaybeStartManagementListener', -'Astartup', -'6config/ConfigParser$PluginHandlerInstantiator.newResolver', -'dtypeIdResolverInstance', -'I.', -'JcreateBaseObjectMapper', -'PObjectMapper', -'JparseConfiguration', -'Curation$$Lambda.0x00007f816322e240.apply', -'J.lambda$virtualClusterModel$5', -'KtoVirtualClusterModel', -'KvirtualClusterModel', -'=PluginAnnotationIntrospector$2.value', -'>ortIdentifiesNodeIdentificationStrategy.', -'=ServiceBasedPluginFactoryRegistry$$Lambda.0x00007f8163203080.apply', -'v2c8.accept', -'u43e8.accept', -'v620.apply', -'_ProviderAndConfigType.hashCode', -'^.lambda$load$0', -'jProviders$1', -'t2', -'t3', -'`oad', -'cProviders', -'_pluginFactory', -'6filter/ApiVersionsResponseFilterInvoker.onResponse', -'=FetchResponseFilterInvoker.shouldHandleResponse', -'>ilterAndInvoker.build', -'CInvokers$FilterCharacteristics.describeCharacteristics', -'K.arrayInvoker', -'Lfrom', -'LinvokersForFilter', -'LmaybeSpecificInvoker', -'=MetadataResponseFilterInvoker.onResponse', -'=ProduceResponseFilterInvoker.shouldHandleResponse', -'=SafeInvoker.onRequest', -'Msponse', -'IshouldHandleRequest', -'Wsponse', -'>pecificFilterArrayInvoker.', -'Yinit>', -'XcreateHandleNothing', -'XemptyInvokerArraySizedForMessageTypes', -'XimplementsAnySpecificRequestFilterInterface', -'XonResponse', -'XshouldHandleRequest', -'fsponse', -'7rame/OpaqueFrame.', +' get_active_processor_count', +' io/kroxylicious/proxy/frame/OpaqueFrame.', 'HapiKeyId', 'KVersion', -'HcorrelationId', 'Hencode', 'IstimateEncodedSize', 'HisDecoded', 'BRequestFrame.', 'DsponseFrame.', -'6internal/ApiVersionsServiceImpl$$Lambda.0x00007f81632b7b30.apply', -'U.getMaxApiVersionFor', -'VintersectApiVersion', -'is', -'Vlambda$new$0', -'VupdateVersions', -'?DelegatingDecodePredicate.shouldDecodeRequest', +'6internal/DelegatingDecodePredicate.shouldDecodeRequest', 'gsponse', -'?FilterHandler$$Lambda.0x00007f81633e5460.apply', -'cfc00.apply', -'bf54a8.accept', -'d6e0.accept', -'MInternalFilterContext.forwardRequest', +'?FilterChainCompletionHandler.channelRead', +'EHandler$$Lambda.0x00007f533b40e250.apply', +'b13df0.accept', +'c4028.accept', 'L.channelRead', -'NonfigureRequestFilterChain', -'XsponseFilterChain', -'MdispatchDecodedRequest', -'^sponseFrame', -'MforwardRequest', -'Vsponse', -'MhandleDecodedRequest', -'aRead', -'\\sponse', +'NonfigureResponseFilterChain', +'MforwardResponse', +'MhandleDecodedResponse', 'bWrite', 'SOpaqueOrPassthroughRead', 'YResponseWrite', -'SRequestFilterResult', -'UsponseFilterResult', +'SResponseFilterResult', 'SUpstreamResponse', -'Mlambda$configureRequestFilterChain$12', -'_sponseFilterChain$5', +'Mlambda$configureResponseFilterChain$5', 'ThandleOpaqueOrPassthroughRead$11', '`ResponseWrite$2', 'Mwrite', '?KafkaProxyBackendHandler.applyBackpressure', 'XchannelRead', 'cComplete', -'_WritabilityChanged', 'XflushToServer', 'YorwardToServer', 'XrelieveBackpressure', -'IFrontendHandler.applyBackpressure', +'IFrontendHandler.admitToFilterChain', 'YbuildFilters', 'YchannelActive', -'`Inactive', '`Read', -'dComplete', '`WritabilityChanged', 'ZlientCtx', 'YflushToClient', 'ZorwardToClient', 'YinClientActive', -']osed', -'\\onnecting', -'[SelectingServer', -'[itConnection', -']iateConnect', -'YrelieveBackpressure', -'IInitializer$1$$Lambda.0x00007f8163336000.apply', +'IInitializer$1$$Lambda.0x00007f533b3578e8.apply', 'V.channelActive', 'Wlambda$channelActive$0', -'T.addHandlers', -'DSession.', -'?MeterRegistries$1$$Lambda.0x00007f816324c800.test', -'P.accept', -'Qlambda$accept$0', -'N.', -'OregisterHooks', -'OtagNames', -'?ProxyChannelStateMachine.', -'XclientReadComplete', -'YurrentState', -'XmessageFromClient', -'cServer', +'T.initChannel', +'YPlainChannel', +'?ProxyChannelStateMachine.currentState', +'XmessageFromServer', 'XonClientActive', -'`Inactive', +'`FilterChainComplete', '`Request', -'gBeforeForwarding', -'gInClientActiveState', '`Unwritable', '`Writable', -'ZInitiateConnect', -'ZServerUnwritable', -'`Writable', 'XserverReadComplete', +'Ytate', 'XtoClientActive', -'\\osed', -'[onnecting', -'ZSelectingServer', -'YransitionClientRequest', '?ResponseOrderer.channelRead', 'OdrainQueue', 'Owrite', -'?SaslV0RejectionHandler.channelRead', -'?admin/ManagementInitializer$$Lambda.0x00007f8163329050.apply', -'r290.apply', -'Z.initChannel', -'[lambda$initChannel$0', -'EPrometheusMetricsEndpoint.apply', -'ERoutingHttpServer$RoutingHttpServerBuilder.withRoute', -'V.channelRead0', +'?admin/PrometheusMetricsEndpoint.apply', +'ERoutingHttpServer.channelRead0', 'bComplete', 'WgetResponse', -'WresponseWithBody', -'cStatus', -'?codec/BodyDecoder.decodeResponse', -'FyteBufAccessorImpl.ensureWritable', +'?codec/ByteBufAccessorImpl.ensureWritable', 'YwriteBytes', -'^Int', 'ECorrelationManager.getBrokerCorrelation', 'XputBrokerRequest', 'EDecodePredicate$1.shouldDecodeRequest', @@ -2032,68 +883,44 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'[quiresResponse', 'QEncoder.encode', 'LsponseDecoder.decode', -'`Body', '`HeaderAndBody', 'ZopaqueFrame', -'?filter/ApiVersionsIntersectFilter.onApiVersionsResponse', -'FBrokerAddressFilter.doReconcileThenForwardResponse', -'ZonMetadataResponse', -'FTopicNameCacheFilter.', -'[buildCache', -'[onMetadataResponse', +'?filter/FilterAndInvoker.build', +'LInvokers.arrayInvoker', +'Ufrom', +'UinvokersForFilter', +'UmaybeSpecificInvoker', +'FSafeInvoker.shouldHandleRequest', +'`sponse', +'GpecificFilterArrayInvoker.', +'ashouldHandleRequest', +'osponse', '?metrics/MetricEmittingKafkaMessageListener.onMessage', -'?net/DefaultNetworkBindingOperationProcessor.start', -'CEndpointRegistry$$Lambda.0x00007f81633f1f68.apply', -'S.constructPossibleBindingsToCreate', -'TdoReconcile', -'Tlambda$reconcile$10', -'Treconcile', -'?util/Metrics.bindNettyAllocatorMetrics', -'LversionInfoMetric', -'6model/VirtualClusterModel.generateTlsSummary', -'RtTopicNameCacheFilter', -'PlogVirtualClusterSummary', -'6service/HostPort.', '#micrometer/core/instrument/AbstractDistributionSummary.record', 'FTimer.record', -'LtakeSnapshot', '>Clock$1.monotonicTime', 'FwallTime', -'?ounter$Builder$$Lambda.0x00007f81632b96e0.withTags', +'?ounter$Builder$$Lambda.0x00007f533b318000.withTags', 'M.lambda$withRegistry$0', 'Nregister', 'E.increment', -'>DistributionSummary$Builder$$Lambda.0x00007f816333d448.withTags', +'>DistributionSummary$Builder$$Lambda.0x00007f533b3653f8.withTags', 'Y.lambda$withRegistry$0', 'Zregister', -'>Gauge$Builder.register', -'>ImmutableTag.equals', +'>ImmutableTag.', +'Kequals', 'KgetKey', 'NValue', 'KhashCode', -'>Meter$Id.equals', -'GgetConventionName', -'JTags', +'>Meter$Id.', +'Gequals', 'GhashCode', 'DMeterProvider.withTags', -'CRegistry$$Lambda.0x00007f816324d2a8.create', -'bef90.apply', -'`3e2470.create', -'K.accept', -'Lcounter', -'Lgauge', -'MetConventionName', -'OMeters', -'OOrCreateMeter', -'LisClosed', -'NStaleId', -'Llambda$gauge$5', -'SregisterMeterIfNecessary$9', -'Ssummary$7', +'CRegistry.counter', +'LgetOrCreateMeter', +'LisStaleId', 'LregisterMeterIfNecessary', 'Lsummary', -'Ltimer', -'Arics.', '>Tag.compareTo', 'Bof', 'As.and', @@ -2105,79 +932,30 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'Cof', 'CtagsEqual', 'DoTags', -'?imer$Builder$$Lambda.0x00007f8163339970.withTags', -'K.lambda$withRegistry$0', -'Lregister', -'DSample.', -'Kstop', -'C.start', -'>binder/netty4/NettyAllocatorMetrics.bindTo', -'>composite/AbstractCompositeMeter.', -'_add', -'_getChildren', +'?imer$Sample.stop', +'>composite/AbstractCompositeMeter.getChildren', 'HCompositeCounter.increment', -'QDistributionSummary.', -'erecord', -'QGauge.registerNewMeter', -'QMeterRegistry$$Lambda.0x00007f816323fbd0.accept', -'t50308.run', -'v530.accept', -'^.lambda$new$0', -'j1', -'`ock', -'_newDistributionSummary', +'QDistributionSummary.record', 'QTimer.record', '>distribution/DistributionStatisticConfig$Builder.build', 'ovalidate', 'f.access$700', -'KTimeWindowMax.poll', -'Yrecord', +'KTimeWindowMax.record', 'Zotate', 'YupdateMax', -'>search/Search.meterStream', -'Qs', -'.prometheusmetrics/MicrometerCollector$$Lambda.0x00007f816339b8d8.accept', -'kb10.apply', -'jc050.apply', -'TFamily.addSamples', -'[toMetricSnapshot', -'S.collect', -'Tlambda$collect$0', -'c1', +'.prometheusmetrics/MicrometerCollector.collect', '@PrometheusCounter.increment', 'JDistributionSummary.recordNonNegative', -'JMeterRegistry$$Lambda.0x00007f8163252430.samples', -'m984a0.samples', -'mbaf40.samples', -'l33c228.samples', -'m99ca0.apply', -'me38c0.samples', -'W.', -'XapplyToCollector', -'XgetMetadata', -'Xlambda$addDistributionStatisticSamples$29', -'_newCounter$1', +'JMeterRegistry$$Lambda.0x00007f533b319860.samples', +'l405450.samples', +'W.getMetadata', +'Xlambda$newCounter$1', 'bDistributionSummary$6', -'bGauge$10', -'i2', -'h9', -'XnewGauge', 'Xscrape', -'JNamingConvention.name', -'JTimer.max', -'PrecordNonNegative', -'PtakeSnapshot', -'#netty/bootstrap/AbstractBootstrap.bind', -'Echannel', -'EdoBind', -'EinitAndRegister', -'3Bootstrap$1.run', -'<.connect', -'=doResolveAndConnect', -'P0', +'JTimer.recordNonNegative', +'#netty/bootstrap/Bootstrap$1.run', '3ServerBootstrap$ServerBootstrapAcceptor.channelRead', '*uffer/AbstractByteBuf.', -'@_memoryAddress', '@asReadOnly', '@checkIndex', 'J0', @@ -2189,8 +967,7 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'@ensureAccessible', 'FWritable', 'N0', -'@indexOf', -'AsOutOfBoundsTrustedCapacity', +'@isOutOfBoundsTrustedCapacity', 'BReadable', '@readInt', 'DShort', @@ -2198,20 +975,17 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'DableBytes', 'DerIndex', '@slice', -'@writeByte', -'Is', +'@writableBytes', +'DeBytes', 'EInt', +'EShort', 'ErIndex', -'?Allocator.', -'Ibuffer', -'IcalculateNewCapacity', -'IdirectBuffer', -'IheapBuffer', +'?Allocator.directBuffer', 'IioBuffer', 'ItoLeakAwareBuffer', -'8DerivedByteBuf.isAccessible', +'8DerivedByteBuf.', +'GisAccessible', 'S0', -'IReadOnly', 'Grelease', 'N0', 'Itain', @@ -2219,34 +993,24 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'8ReferenceCountedByteBuf.', 'PhandleRelease', 'PisAccessible', -'PrefCnt', -'Rlease', +'Prelease', 'RsetRefCnt', -'Rtain', '8UnpooledSlicedByteBuf.', -'NcheckSliceOutOfBounds', +'Nidx', 'NnioBuffer', -'Norder', 'Nslice', 'Nunwrap', '1daptiveByteBufAllocator$DirectChunkAllocator.allocate', -'H.', -'InewDirectBuffer', -'8PoolingAllocator$AdaptiveByteBuf._getShort', -'ZmemoryAddress', -'ZsetByte', -']Int', -'Yalloc', +'H.newDirectBuffer', +'8PoolingAllocator$AdaptiveByteBuf.alloc', 'Ycapacity', 'Ydeallocate', -'YforEachByte', 'Yidx', 'Znit', '[ternalNioBuffer', 'YmaxFastWritableBytes', 'ZemoryAddress', 'YnioBuffer', -'Yorder', 'YrootParent', 'YsetBytes', 'IChunk.', @@ -2258,118 +1022,73 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'Qtain', 'NRegistry.add', 'Wremove', -'IMagazine.', -'Raccess$2000', -'Sllocate', +'IMagazine.allocate', 'RnewBuffer', 'RtryAllocate', -'QGroup.', -'Waccess$600', +'QGroup.access$600', 'Xllocate', -'ISizeClassChunkController.access$2500', -'bcreateFreeList', -'bnewChunkAllocation', -'RedChunk.', -'ZnextAvailableSegmentOffset', +'ISizeClassedChunk.nextAvailableSegmentOffset', 'ZreadInitInto', '\\leaseSegment', -'\\mainingCapacity', -'ZupdateRemainingCapacity', -'H.', -'Iaccess$1600', +'H.access$1600', 'Jllocate', 'QFallback', -'IcreateMagazineGroupSizeClasses', 'IgetFallbackMagazine', 'Ireallocate', 'IsizeClassIndexOf', -'1llocateChunkEvent.', -'0ByteBufAllocator.', -'7Util.', -'', '8ByteBuf.', '@capacity', '@nioBuffer', -'0SimpleLeakAwareByteBuf.', -'GasReadOnly', -'GcloseLeak', -'Grelease', -'Itain', -'Gtouch', -'0Unpooled.buffer', -'9directBuffer', -'9newReadyOnlyBuffer', +'0SimpleLeakAwareByteBuf.closeLeak', +'GreadSlice', +'Ilease', +'0Unpooled.newReadyOnlyBuffer', '9unmodifiableBuffer', -'8ByteBufAllocator$InstrumentedUnpooledUnsafeDirectByteBuf.', -'qallocateDirectBuffer', -'cHeapByteBuf.', -'oallocateArray', -'ofreeArray', -'H.incrementHeap', -'InewDirectBuffer', -'LHeapBuffer', '8DirectByteBuf.', 'F_internalNioBuffer', 'FallocateDirectBuffer', 'Fdeallocate', 'FnioBuffer', -'FsetByteBuffer', -'8HeapByteBuf.', -'Ddeallocate', -'DnioBuffer', -'DsetBytes', '8SlicedByteBuf.', -'F_getShort', -'GsetInt', -'Fcapacity', +'F_setInt', 'Funwrap', '8UnsafeDirectByteBuf.', 'LgetBytes', -'LsetByteBuffer', -'>HeapByteBuf.', '2safeByteBufUtil.getBytes', 'BnewDirectByteBuf', -'0WrappedByteBuf.', +'0WrappedByteBuf.discardSomeReadBytes', '?ensureWritable', -'?hasMemoryAddress', -'?isReadable', -'?memoryAddress', -'?nioBuffer', +'?maxFastWritableBytes', '?readInt', +'CSlice', 'CableBytes', 'CerIndex', -'AfCnt', 'Alease', -'Atain', -'?writeBytes', -'DInt', -')channel/AbstractChannel$AbstractUnsafe$$Lambda.0x00007f81632b2ea8.operationComplete', +'?writableBytes', +'CeBytes', +'DrIndex', +')channel/AbstractChannel$AbstractUnsafe$$Lambda.0x00007f533b311630.operationComplete', 'P1.run', -'P5.run', 'P6.run', -'O.access$1000', -'W300', +'O.access$300', 'PbeginRead', 'Pclose', -'Pderegister', -'QoClose0', -'PfireChannelInactiveAndDeregister', -'Qlush', +'PdoClose0', +'PensureOpen', +'Pflush', 'U0', 'Plambda$register0$0', 'PoutboundBuffer', -'Pregister', -'X0', +'Pregister0', 'Pwrite', -'@.', -'AnewChannelPipeline', -'DId', -'Aunsafe', +'@.eventLoop', +'Apipeline', '@HandlerContext.alloc', 'OcallHandlerAdded', -'ZRemoved', 'Phannel', 'Plose', 'Ponnect', @@ -2386,14 +1105,13 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'OinvokeHandler', 'PsNotValidPromise', 'QRemoved', -'Opipeline', 'Oread', 'OskipContext', 'OvalidateWrite', 'Owrite', -'2daptiveRecvByteBufAllocator$HandleImpl.guess', -'YlastBytesRead', +'2daptiveRecvByteBufAllocator$HandleImpl.lastBytesRead', 'YreadComplete', +'M.newHandle', '1Channel.close', ':onnect', '9flush', @@ -2406,7 +1124,6 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'YComplete', 'UWritabilityChanged', ':itializer.handlerAdded', -'KRemoved', 'DinitChannel', '8OutboundBuffer$Entry.newInstance', 'MunguardedRecycle', @@ -2414,144 +1131,97 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'Gcurrent', 'GdecrementPendingOutboundBytes', 'GfireChannelWritabilityChanged', -'HorEachFlushedMessage', 'GincrementPendingOutboundBytes', 'HsWritable', -'Gprogress', 'Gremove', 'MBytes', 'GsafeSuccess', 'HetUnwritable', 'JWritable', -'Hize', 'Gtotal', '@HandlerAdapter.close', 'Oflush', '2ombinedChannelDuplexHandler$DelegatingChannelHandlerContext.close', -'nfireChannelRead', +'nfireChannelInactive', +'yRead', '}Complete', 'olush', -'nremove', -'t0', 'nwrite', -'M.channelRead', +'M.channelInactive', +'URead', 'YComplete', 'Olose', 'Nflush', -'NhandlerRemoved', 'Nwrite', -'4pleteChannelFuture.', -'1DefaultChannelConfig.getAllocator', -'FisAutoRead', +'1DefaultChannelConfig.', +'FgetAllocator', +'IWriteBufferLowWaterMark', 'FsetAutoRead', -'?Id.', -'Cinit>', -'BdefaultProcessId', -'BnewInstance', -'BprocessHandlePid', -'?Pipeline$HeadContext.', -'TchannelActive', +'IRecvByteBufAllocator', +'?Pipeline$HeadContext.channelActive', '[Inactive', '[Read', '_Complete', -'[Unregistered', '[WritabilityChanged', 'Ulose', -'Uonnect', 'Tflush', -'Thandler', 'Tread', 'XIfIsAutoRead', 'Twrite', 'HPendingHandlerAddedTask.execute', 'HTailContext.channelReadComplete', -'[WritabilityChanged', -'G.', -'Haccess$100', +'G.access$100', 'O600', -'O700', -'IddLast', 'HcallHandlerAdded0', 'XForAllHandlers', -'SRemoved0', 'Ihannel', 'Ilose', 'Ionnect', -'Hdestroy', -'ODown', -'OUp', 'HestimatorHandle', -'HfilterName', -'JreChannelActive', +'HfireChannelActive', 'SInactive', 'SRead', 'WComplete', -'SUnregistered', 'SWritabilityChanged', 'Ilush', -'HgenerateName', -'HinternalAdd', -'JvokeHandlerAddedIfNeeded', +'HinvokeHandlerAddedIfNeeded', 'Hread', -'Jmove', 'Htouch', 'Hwrite', -'@romise.addListener', -'GsetSuccess', +'@romise.setSuccess', '8MaxMessagesRecvByteBufAllocator$MaxMessageHandle.allocate', 'icontinueReading', 'ilastBytesRead', 'ireset', -'itotalBytesRead', 'W.maxMessagesPerRead', '9essageSizeEstimator$HandleImpl.size', -'1MultiThreadIoEventLoopGroup.', -'MnewChild', -'6threadEventLoopGroup.', -'Kregister', '1RecvByteBufAllocator$DelegatingHandle.attemptedBytesRead', 'WlastBytesRead', 'WreadComplete', 'Yset', -'3flectiveChannelFactory.', -'JnewChannel', '1SimpleChannelInboundHandler.channelRead', -'3ngleThreadEventLoop.', -'GafterRunningAllTasks', +'3ngleThreadEventLoop.afterRunningAllTasks', 'GhasTasks', -'Gregister', '=IoEventLoop$1.canBlock', 'KdeadlineNanos', -'MlayNanos', 'KreportActiveIoTime', +'KshouldReportActiveIoTime', 'IIoRegistrationWrapper.cancel', '_submit', -'H.', -'Iaccess$000', -'P100', +'H.access$000', 'P200', 'P300', -'Iregister', -'QForIo0', -'Jun', +'P400', +'Irun', 'LIo', -'Iwakeup', '2tacklessClosedChannelException.newInstance', -'1epoll/AbstractEpollChannel$$Lambda.0x00007f81632b6d50.operationComplete', +'1epoll/AbstractEpollChannel$$Lambda.0x00007f533b313548.operationComplete', 'LAbstractEpollUnsafe.clearEpollIn0', -'aonnect', -'`epollOutReady', -'`finishConnect', -'alush0', -'aulfillConnectPromise', +'`flush0', '`handle', -'K.', -'Laccess$200', -'LclearEpollIn', +'K.clearEpollIn', 'LdoBeginRead', 'NClose', -'Oonnect', -'U0', 'NDeregister', 'NReadBytes', 'Pgister', @@ -2562,20 +1232,20 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'LsetFlag', 'MhouldBreakEpollInReady', 'DServerChannel$EpollServerSocketUnsafe.epollInReady', -'Q.', 'EtreamChannel$EpollStreamUnsafe.epollInReady', -'Q.', +'Q.access$400', 'RdoClose', 'TWrite', 'YMultiple', 'YSingle', 'RfilterOutboundMessage', -'RisActive', -'TOpen', +'RisOpen', 'RwriteBytes', '\\Multiple', -'7EpollChannelConfig.autoReadCleared', +'7EpollChannelConfig.', +'JautoReadCleared', 'JsetAutoRead', +'MRecvByteBufAllocator', 'proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z 'asubmit', 'E.epollWait', 'FprocessReady', -'Fregister', -'Gun', -'Fwakeup', -'>Ops.contains', -'BeventOf', -'BvalueOf', +'Frun', +'>Ops.value', +'GOf', 'Bwith', 'Fout', '', -'PnewChildChannel', -'=ocketChannel$EpollSocketChannelUnsafe.prepareToClose', -'I.', +'', 'Jconfig', -'JdoConnect0', 'IConfig.', -'PcalculateMaxBytesPerGatheringWrite', -'PgetSendBufferSize', -'ToLinger', 'PsetAutoRead', -'STcpNoDelay', -'7LinuxSocket.', +'SRecvByteBufAllocator', '7Native.epollCtlDel', 'I0', 'FMod', 'I0', 'CWait', 'G0', -'?ventFdWrite', -'1unix/Errors.', -'6FileDescriptor.close', +'1unix/FileDescriptor.close', 'EintValue', 'FsOpen', 'EwritevAddresses', -'6NativeInetAddress.address', -'HdecodeInt', '6PreferredDirectByteBufAllocator.ioBuffer', -'6Socket.', -'=accept', -'=connect', -'=getSoLinger', -'=initialize', -'>sIPv6', -'@nputShutdown', -'=localAddress', +'VupdateAllocator', +'6Socket.accept', +'=isInputShutdown', '=recvAddress', '=sendAddress', -'?tTcpNoDelay', -'6Unix.registerInternal', -':ChannelUtil.isBufferCopyNeededForWrite', -'2ring/IoUring.', -'7Native.', -'>loadNativeLibrary', +'6UnixChannelUtil.isBufferCopyNeededForWrite', ')handler/codec/ByteToMessageDecoder$1.cumulate', 'K.callDecode', 'MhannelInactive', @@ -2650,56 +1297,33 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'LdecodeRemovalReentryProtection', 'MiscardSomeReadBytes', 'LfireChannelRead', -'LhandlerRemoved', -'LisSingleDecode', '7CodecOutputList$CodecOutputLists.getOrCreate', 'Xrecycle', 'F.add', 'Ginsert', 'GnewInstance', 'Grecycle', -'7DefaultHeaders$HeaderIterator.', -'Unext', -'E.containsAny', -'7HeadersUtils$1.size', +'Gsize', +'7DefaultHeaders.getAll', +'7HeadersUtils.getAllAsString', '7MessageToByteEncoder.acceptOutboundMessage', 'Lwrite', -'7http/DefaultHttpHeaders.containsValue', -'GMessage.headers', -'', -'@HeadersEncoder.encoderHeader', -'@Method.equals', -'@ObjectDecoder$HeaderParser.parse', -'NLineParser.parse', -'M.', -'Ndecode', -'NhandlerRemoved0', +'7http/DefaultHttpHeaders.getAll', +'', -'Nencode', -'TByteBufHttpContent', -'TContentNonChunk', +'FEncoder.encode', 'TFullHttpMessage', -'THeaders', -'Nlambda$static$1', 'Nwrite', 'SOutList', -'SPromiseCombiner', -'@RequestDecoder.', -'OcreateMessage', -'BsponseEncoder.encodeInitialLine', -'@ServerCodec$HttpServerRequestDecoder.', -'edecode', +'@ResponseEncoder.encodeInitialLine', +'@ServerCodec$HttpServerRequestDecoder.decode', 'XsponseEncoder.isContentAlwaysEmpty', -'K.', -'FExpectContinueHandler.', -'\\channelRead', -'@Util.isKeepAlive', -'@Version.valueOf', -')util/LeakPresenceDetector.staticInitializer', -'.NetUtil.', +'fwrite', +'FExpectContinueHandler.channelRead', +')util/AsciiString$1.hashCode', +'9.hashCode', '.Recycler$DefaultHandle.claim', 'EunguardedRecycle', '7GuardedLocalPool.getWith', @@ -2707,23 +1331,19 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'Arelease', '@Handle.unguardedRecycle', '7UnguardedLocalPool.getWith', -'6.', -'7get', +'6.get', '0ferenceCountUtil.release', 'AsafeRelease', 'Atouch', '0sourceLeakDetector$DefaultResourceLeak.', 'Wclose', 'CTraceRecord.', -'B.', -'CneedReport', +'B.needReport', 'CreportLeak', 'Ctrack', 'H0', '.collection/IntObjectHashMap.get', -'JhashIndex', 'JindexOf', -'Jput', '0ncurrent/AbstractEventExecutor.runTask', 'OsafeExecute', 'AScheduledEventExecutor.fetchFromScheduledTaskQueue', @@ -2731,7 +1351,6 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'XhasScheduledTasks', 'XpeekScheduledTask', '9DefaultPromise.addListener', -'S0', 'HnotifyListener0', 'Vs', 'WNow', @@ -2745,394 +1364,150 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'HThread.currentThreadWillCleanupFastThreadLocals', '9MpscIntQueue$MpscAtomicIntegerArrayQueue.offer', 'bpoll', -':ultithreadEventExecutorGroup.', '9SingleThreadEventExecutor$5.run', -'R.addTask', +'R.confirmShutdown', 'SdeadlineNanos', -'UlayNanos', -'Sexecute', -'Z0', 'ShasTasks', 'SinEventLoop', 'TsShuttingDown', -'SofferTask', +'VuspensionSupported', 'SpollTask', '[From', 'SreportActiveIoTime', 'TunAllTasks', '^From', ':ystemTicker.nanoTime', -'.internal/AdaptiveCalculator.nextSize', -'Jrecord', -'7ClassInitializerUtil.tryLoadClasses', -'9eanerJava9$CleanableDirectBufferImpl.', +'.internal/AdaptiveCalculator.record', +'7CleanerJava9$CleanableDirectBufferImpl.', '^clean', 'C.access$200', 'Ellocate', 'DfreeDirectBufferStatic', '7InternalThreadLocalMap.get', 'NindexedVariable', -'7MathUtil.isOutOfBounds', -'7NativeLibraryLoader$1.run', -'J.load', -'OLibrary', -'VByHelper', -'7ObjectUtil.checkNotNull', -'GPositiveOrZero', -'7PlatformDependent.', -'IabsolutePut', +'7ObjectUtil.checkPositiveOrZero', +'7PlatformDependent.absolutePut', 'JllocateDirect', 'IcompareAndSwapInt', -'KpyMemory', 'IdecrementMemoryCounter', -'IgetAndAddInt', -'LInt', -'LVolatileInt', +'IgetInt', 'IincrementMemoryCounter', -'JsAndroid', 'IoffsetSlice', 'IputOrderedInt', -'H0.', -'JabsolutePut', +'IsafeConstructPutInt', +'H0.absolutePut', 'JcompareAndSwapInt', -'LpyMemory', -'JgetAndAddInt', -'MInt', -'PVolatile', +'JgetInt', 'JoffsetSlice', 'JputOrderedInt', +'JsafeConstructPutInt', '8romiseNotificationUtil.trySuccess', -'7RefCnt$UnsafeRefCnt.isLiveNonVolatile', -'KrefCnt', -'Mlease', +'7RefCnt$UnsafeRefCnt.init', +'LsLiveNonVolatile', +'Krelease', 'R0', 'MsetRefCnt', -'Mtain', -'Q0', -'=.isLiveNonVolatile', -'>refCnt', -'@lease', +'=.', +'>isLiveNonVolatile', +'>release', '@setRefCnt', -'@tain', -'7SWARUtil.getIndex', '7ThreadExecutorMap$2.run', ':owableUtil.unknownStackTrace', '8ypeParameterMatcher$ReflectiveMatcher.match', -'7logging/InternalLoggerFactory.getDefaultFactory', -'XInstance', -'UnewDefaultFactory', -'UuseSlf4JLoggerFactory', -'?LocationAwareSlf4JLogger.isErrorEnabled', -'?Slf4JLoggerFactory.newInstance', -'RwrapLogger', +'7logging/LocationAwareSlf4JLogger.isErrorEnabled', '7shaded/org/jctools/queues/BaseMpscLinkedArrayQueue.isEmpty', -'joffer', 'jpoll', -'iConsumerFields.lpConsumerIndex', +'iConsumerFields.lvConsumerIndex', 'iProducerFields.lvProducerIndex', 'QMpmcArrayQueue.relaxedOffer', 'gPoll', -'_ConsumerIndexField.casConsumerIndex', -'_ProducerIndexField.casProducerIndex', -'rlvProducerIndex', +'_ProducerIndexField.lvProducerIndex', 'SscUnboundedArrayQueue.isEmpty', -'ioffer', 'ipoll', 'Jutil/UnsafeLongArrayAccess.lvLongElement', -'URefArrayAccess.lvRefElement', -'dsoRefElement', -'#prometheus/metrics/config/MetricsProperties.', -'Oload', -'Ovalidate', -'=PrometheusPropertiesLoader.load', -'6expositionformats/ExpositionFormatWriter.write', +'esoLongElement', +'#prometheus/metrics/expositionformats/ExpositionFormatWriter.write', 'HPrometheusTextFormatWriter.write', 'hCounter', -'hEscapedHelp', 'hGauge', -'hInfo', -'hMetadata', 'hNameAndLabels', 'hSummary', 'HTextFormatUtil.writeEscapedString', '\\Labels', '\\Name', '6model/registry/PrometheusRegistry.scrape', -'', -'FLabels.asList', -'Miterator', -'MmakePrometheusNames', -'Mof', +'', 'Uvalidate', -'LSnapshot.', -'FPrometheusNaming.escapeName', -'WisValidLabelName', -'_egacyMetricName', +'FPrometheusNaming.isValidLabelName', '^Utf8', -'WneedsEscaping', -'WprometheusName', -'WsanitizeMetricName', 'WvalidateMetricName', -'FSummarySnapshot$SummaryDataPointSnapshot.', -'ovalidate', -'!s_init_completed', '!table stub', -' java/io/BufferedReader.', -'7close', -'7implClose', +' java/io/BufferedReader$1.hasNext', +'6.fill', +'7implReadLine', +'7readLine', '0Writer.flushBuffer', '7implFlushBuffer', ';Write', '7write', -')yteArrayOutputStream.write', -'(DataOutputStream.write', -'(FileDescriptor$1.close', -'6.close', -'<0', -'(InputStream.readNBytes', -'3Reader.', -':close', +')yteArrayOutputStream.ensureCapacity', +'>write', +'(InputStreamReader.read', '(OutputStreamWriter.write', -'(RandomAccessFile.read', -'=Bytes', -'B0', -'9seek', -'=0', -'(Writer.append', -'/write', -'%lang/AbstractStringBuilder.', -'@append', -'@ensureCapacityInternal', -'*Character$UnicodeBlock.', -'3.getType', -'3Data.of', -'700.', -'+lass.annotationData', -'0createAnnotationData', -'0descriptorString', -'0forName', -'70', -'0getAnnotation', -'3ComponentType', -'5nstantPool', -'8ructor', -'>0', -'3DeclaredConstructor', -'Fs0', -';Method', -'As', -'B0', -'3Method', -'90', -'9sRecursive', -'3Name', -'3PackageName', -'3RecordComponents', -'C0', -'5sourceAsStream', -'3SimpleBinaryName', -'C0', -'9Name', -'=0', -'0initClassName', -'1sArray', -'0privateGetDeclaredConstructors', -'BMethods', +'(Writer.write', +'%lang/AbstractStringBuilder.append', +'*Class.getSimpleName', '0reflectionData', -'/Loader.defineClass', -'A0', -'A1', -'ASourceLocation', -'6findBootstrapClass', -'HOrNull', -'6loadClass', -':Library', -'6postDefineClass', -'/Value.get', '*Enum.name', -'/ordinal', -'+rror.', -'*IncompatibleClassChangeError.', -',teger.getChars', -'2numberOfTrailingZeros', +'*Integer.getChars', '2toString', -'2valueOf', -'+terable.forEach', -'*LinkageError.', -'+ong.numberOfTrailingZeros', -'/toString', -'*Math.min', -'*NoSuchMethodError.', -'*Object.clone', +'*Math.max', +'*Object.', '1hashCode', '1wait', '50', -'*ProcessHandle.current', -'*Runtime.loadLibrary0', +'*Record.', '*Short.toString', -'0valueOf', -'+tackStreamFactory$AbstractStackWalker.beginStackWalk', -'QcallStackWalk', -'QdoStackWalk', -'Qwalk', -'UHelper', -'=StackFrameTraverser.consumeFrames', -'/Walker.walk', -',ring.', +'+tring.', '1coder', '3mpareTo', -'3ncat', '1equals', '1getBytes', +'4Chars', '1hashCode', '1indexOf', '2sEmpty', '1length', -'1replace', -'8All', '1split', -'2ubstring', -'1toCharArray', -'1valueOf', -'0Builder.', -'8append', -'8toString', -'0ConcatHelper.newArray', +'0Builder.append', +'0ConcatHelper.mix', +'=newArray', '@String', '=prepend', '=simpleConcat', -'0Latin1.hashCode', +'0Latin1.getChars', +'7hashCode', '7indexOf', -'7newString', -'0UTF16.compress', -'6getChars', -'6toChars', -'+ystem$2.defineClass', -'3findBootstrapClassOrNull', -'3getConstantPool', -'0.loadLibrary', '*Thread.run', '4With', '-owable.', '4fillInStackTrace', -'*invoke/BootstrapMethodInvoker.invoke', -'3undMethodHandle$Species_L.copyWithExtendL', -'LL.', -'Nmake', -'B.', -'CbindArgumentL', -'1CallSite.makeSite', -'1DelegatingMethodHandle$Holder.delegate', -'2irectMethodHandle$Constructor.viewAsType', -'DHolder.invokeSpecial', -'Rtatic', +'*invoke/DirectMethodHandle$Holder.invokeStatic', 'KnewInvokeSpecial', 'C.allocateInstance', -'DcheckInitialized', -'DensureInitialized', -'DinternalMemberNameEnsureInit', -'Dmake', -'HAllocator', -'HPreparedLambdaForm', -'DpreparedLambdaForm', -'1InnerClassLambdaMetafactory$ForwardingMethodGenerator.generate', -'L.buildCallSite', -'MgenerateInnerClass', -'MspinInnerClass', -'3vokerBytecodeGenerator.addMethod', -'JemitLoadInsn', -'NPushArgument', -'Zs', -'NStaticInvoke', -'JgenerateCustomizedCode', -'`Bytes', -'JloadMethod', -'LokupPregenerated', -'JresolveFrom', -'JtoByteArray', -'8s$Holder.invokeExact_MT', -'AlinkToTargetMethod', -'9.basicInvoker', -':invokeBasicMethod', -'1LambdaForm$DMH.0x00007f8163001800.invokeSpecial', -'N2800.newInvokeSpecial', -'L105000.invokeStatic', -'L208000.invokeStaticInit', -'L3e4400.newInvokeSpecial', -'Mf9c00.invokeVirtual', +'1Invokers$Holder.linkToTargetMethod', +'1LambdaForm$DMH.0x00007f533b001800.invokeSpecial', +'L400400.newInvokeSpecial', +'M19c00.invokeVirtual', 'Na400.invokeVirtual', -'', -'@dFunction.', -';.compileToBytecode', -'', -'>asSpreader', -'@Type', -'DUncached', -'>bindArgumentL', -'BTo', -'>getApproximateCommonClassLoader', -'>isAncestorLoaderOf', -'@SafeToCache', -'>setAsTypeCache', -'=Impl$ArrayAccess.objectAccessor', -'Mor.', -'A.makeArrayElementAccessor', -'FPairwiseConvert', -'UByEditor', -'=Natives.linkCallSite', -'QImpl', -'IMethodHandleConstant', -'Eresolve', -'=s$Lookup$ClassDefiner.defineClass', -'E.checkSymbolicClass', -'FfindConstructor', -'JStatic', -'FgetDirectConstructor', -'ZCommon', -'OMethod', -'UCommon', -'UForConstant', -'UNoSecurityManager', -'FisClassAccessible', -'FlinkMethodHandleConstant', -'FmakeHiddenClassDefiner', -'FresolveOrFail', -'>.argumentsWithCombiner', -'ArayElementGetter', -'?filterArgumentsWithCombiner', -'7Type.dropParameterTypes', -'1StringConcatFactory.filterInPrependers', -'EgenerateMHInlineCopy', -'EmakeConcatWithConstants', -'1TypeConvertingMethodAdapter.convertType', +'K41a000.invoke', '1VarHandle.acquireFence', ':Guards.guard_LII_V', 'I_I', @@ -3140,47 +1515,17 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

':Ints$Array.getVolatile', 'EsetRelease', ':Longs$FieldInstanceReadWrite.weakCompareAndSetRelease', -'*ref/Cleaner.register', -'.PhantomReference.', +'*ref/PhantomReference.', '.Reference.', '8clear', '=0', '.SoftReference.get', -'-lect/Constructor.acquireConstructorAccessor', -'>newInstance', -'IWithCaller', -'2Field.acquireOverrideFieldAccessor', -'8declaredAnnotations', -'8get', -';Annotation', -';OverrideFieldAccessor', -'2Method.acquireMethodAccessor', -'9invoke', -'2Proxy$$Lambda.0x00007f8163075ff0.apply', -'8ProxyBuilder.build', -'EdefineProxyClass', -'7.getProxyConstructor', -'8lambda$getProxyConstructor$0', -'8newProxyInstance', -'7Generator.addProxyMethod', -'AgenerateClassFile', -'IProxyClass', -'+untime/ObjectMethods.', -'%net/InetAddress.getByAddress', -'-SocketAddress.getAddress', -')URL.', -'-toExternalForm', -'/String', -',StreamHandler.toExternalForm', -'&io/Bits.pageSize', +'%nio/Bits.pageSize', '.reserveMemory', '.tryReserveMemory', -'.unreserveMemory', '*uffer.', -'0capacity', '0limit', '0position', -'0remaining', '*yteBuffer.', '4allocate', 'proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z '4position', '5ut', '7Buffer', -')DirectByteBuffer$Deallocator.run', +')DirectByteBuffer$Deallocator.', +'Frun', '9.', ':asReadOnlyBuffer', ';ttachment', -':base', ':duplicate', ':slice', -'9R.', -';base', -'/LongBufferU.ix', -';put', +'9R.base', ')HeapByteBuffer.', ')MappedByteBuffer.', -':isSync', +':fileDescriptor', ':limit', ':position', ')channels/FileChannel.open', -'2spi/AbstractInterruptibleChannel.close', ',rset/CharsetEncoder.', '@canEncode', '@encode', '@replaceWith', -')file/Files$$Lambda.0x00007f816302bef8.run', -'3.lambda$asUncheckedRunnable$0', -'5ines', -'4newBufferedReader', -'8yteChannel', -'7InputStream', -'.spi/FileSystemProvider.newInputStream', -'%security/AccessControlContext.', -';ler.createWrapper', -'?doPrivileged', +')file/Files.lines', +'.Path.of', +'2s.get', +'%security/AccessController.doPrivileged', '?executePrivileged', -'.CodeSource.', -'.Provider.', -'.SecureClassLoader.defineClass', -'4Random.', -';getDefaultPRNG', -'3ity$$Lambda.0x80000000b.run', -'6.', -'7initialize', -'7lambda$static$0', -'8oadProps', -'/ystemConfigurator.configureSysProps', -'%text/DecimalFormatSymbols.', -'?findNonFormatChar', -'?getInstance', -'?initialize', -'*NumberFormat.getInstance', -'', -';initialize', -'ECalendar', -'&ime/LocalDateTime.now', -'8ofEpochSecond', -'/Time.ofNanoOfDay', -'%util/AbstractCollection.isEmpty', -'2List$Itr.next', -'+rrayDeque.elementAt', -'5peekFirst', -'/List$ArrayListSpliterator.forEachRemaining', -'ItryAdvance', -'3.', -'4addAll', -'4forEach', -'4iterator', -'4sort', +'%util/ArrayDeque.addLast', '/s.copyOf', '7Range', '', -'2ValueSpliterator.forEachRemaining', -'1.compute', +'*HashMap$KeyIterator.next', +'1.containsKey', '2get', '5Node', '2hash', -'2newNode', +'2isEmpty', '2put', '5Val', '2remove', '8Node', -'.Set.add', +'.Set.isEmpty', '*IdentityHashMap$IdentityHashMapIterator.', 'RhasNext', -'RnextIndex', ':ValueIterator.', -'Hnext', '?s.iterator', +'9.values', '+mmutableCollections$AbstractImmutableList.iterator', '?ListItr.', -'Gnext', -'CN.get', '+terator.forEachRemaining', '*Objects.equals', -'2requireNonNull', -'+ptional.map', -'*Properties.forEach', -'5load', -'90', -'9Convert', '*Random.nextInt', -'*ServiceLoader$2.hasNext', -'83.next', -'8LazyClassPathLookupIterator.hasNext', -'[Service', -'TnextProviderClass', -'8ProviderImpl.get', -'EnewInstance', -'@Spliterator.tryAdvance', -'+pliterator.forEachRemaining', -'5s$ArraySpliterator.forEachRemaining', -'7IteratorSpliterator.forEachRemaining', +'*Spliterators$IteratorSpliterator.forEachRemaining', 'KtryAdvance', -'*TimSort.countRunAndMakeAscending', -'2sort', -'*UUID$Holder.', -'..randomUUID', -'*WeakHashMap.remove', -'*concurrent/AbstractExecutorService.submit', -'5CompletableFuture$MinimalStage.thenCompose', -'F.handle', +'*concurrent/CompletableFuture.handle', 'GnewIncompleteFuture', 'GthenApply', -'KCompose', 'GuniApplyNow', 'OStage', -'JComposeStage', 'JHandle', 'PStage', 'JWhenComplete', 'VStage', 'GwhenComplete', -'7ncurrentHashMap$CollectionView.toArray', -'GKeySetView.add', +'7ncurrentHashMap$KeySetView.add', 'Rremove', -'GValuesView.iterator', -'F.computeIfAbsent', -'GforEach', -'Gget', -'GputVal', +'F.putVal', 'Gremove', 'IplaceNode', -'5ThreadLocalRandom.next', -'KInt', -';PoolExecutor$Worker.', -'G.addWorker', -'Hexecute', -'5atomic/AtomicBoolean.', -'BIntegerArray.get', +'5ThreadLocalRandom.nextInt', +'5atomic/AtomicIntegerArray.get', 'OlazySet', 'IFieldUpdater$AtomicIntegerFieldUpdaterImpl.compareAndSet', -'tgetAndSet', 'tlazySet', 'BLong.addAndGet', 'GcompareAndSet', -'GdecrementAndGet', 'Gget', -'GincrementAndGet', +'JAndSet', 'FFieldUpdater$CASUpdater.accessCheck', '_ddAndGet', -'^compareAndSet', '^getAndAdd', '^lazySet', -'BReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.accessCheck', -'xset', -'xvalueCheck', '', -'6checkForSpecialAttributes', -'6ensureInitialization', -'6getBytes', -'9Entry', -'9InputStream', -'9JarEntry', -'9VersionedEntry', -'6hasClassPathAttribute', -'0vaUtilJarAccessImpl.ensureInitialization', -'DjarFileHasClassPathAttribute', -'*regex/CharPredicates$$Lambda.0x800000026.is', -'>.forUnicodeBlock', -'0Matcher.find', -'8search', -'0Pattern$BmpCharPropertyGreedy.match', -'8Start.match', +'*regex/Pattern$CharPropertyGreedy.study', +'8Node.study', +'8Start.', '7.', '8compile', -'8expr', -'8family', -'8sequence', -'9plit', -'*stream/AbstractPipeline.', -'Bclose', -'CopyInto', +'*stream/AbstractPipeline.copyInto', 'JWithCancel', 'Bevaluate', -'JToArrayNode', 'BwrapAndCopyInto', -'1Collectors.toCollection', '1FindOps$FindOp.evaluateSequential', -'2orEachOps$ForEachOp$OfRef.accept', -'LevaluateSequential', -'E.evaluateSequential', -'1MatchOps$1MatchSink.accept', -':MatchOp.evaluateSequential', '1ReduceOps$ReduceOp.evaluateSequential', -':.makeRef', -'3ferencePipeline$2$1.accept', -'C3$1.accept', -'CHead.', -'HforEach', -'B.', -'CallMatch', -'Ccollect', +'3ferencePipeline$3$1.accept', +'B.collect', 'CfindFirst', -'DorEach', -'JWithCancel', -'CtoArray', -'EList', -'1Sink$ChainedReference.begin', -'2pinedBuffer.spliterator', -'2tream.of', +'DorEachWithCancel', +'1Stream.of', '7Support.stream', -'7s$StreamBuilderImpl.build', -'KforEachRemaining', -'*zip/Inflater.inflate', -'>BytesBytes', -'6InputStream.', -'Bread', -'.ZipFile$Source.getEntryPos', -'=readAt', -'AFullyAt', -'6ZipFileInflaterInputStream.', -'Qfill', -'?putStream.close', -'IinitDataOffset', -'Iread', -'5.', -'6ensureOpen', -'6getEntry', -'9InputStream', -'$_lang_String::create_from_symbol', -'*Thread::interrupted', -'2set_thread_status', +'$_lang_Thread::set_thread_status', '-owable::fill_in_stack_trace', -'*invoke_ResolvedMethodName::find_resolved_method', '!byte_arraycopy', '&disjoint_arraycopy', -'!dk/internal/jimage/BasicImageReader.', -'4ImageReader$SharedImageReader.', -'Ropen', -'?.open', -'?Factory$1.apply', -'F.get', -'JImageReader', -'4NativeImageBuffer$1.run', -'E.', -'-loader/AbstractClassLoaderValue$Memoizer.get', -'L.computeIfAbsent', -'4BootLoader.findResourceAsStream', -'5uiltinClassLoader.defineClass', -'MOrCheckPackage', -'GfindClassOnClassPathOrNull', -'KResourceAsStream', -'GgetAndVerifyPackage', -'GisSealed', -'GloadClass', -'POrNull', -'4ClassLoaders$AppClassLoader.defineOrCheckPackage', -'PloadClass', -'ABootClassLoader.loadClassOrNull', -'4NativeLibraries$NativeLibraryImpl.open', -'C.findFromPaths', -'Dload', -'HLibrary', -'4Resource.cachedInputStream', -'=getByteBuffer', -'Ds', -'4URLClassPath$3.run', -'AJarLoader$1.run', -'K2.getBytes', -'PInputStream', -'PManifest', -'J.', -'KcheckResource', -'KensureOpen', -'KgetClassPath', -'NJarFile', -'NResource', -'@.getLoader', -'DResource', -'-misc/Blocker.begin', -'2InternalLock.lock', -'2MainMethodFinder.findMainMethod', +'!cmd', +'!dk/internal/misc/Blocker.begin', +'2InternalLock.unlock', '2ScopedMemoryAccess.copyMemory', 'OInternal', -'2Unsafe.allocateInstance', +'2Unsafe.alignToHeapWordSize', +';locateInstance', 'AMemory', 'G0', 'GChecks', 'AUninitializedArray', -'9checkPrimitiveArray', -'GPointer', -'>Size', -':opyMemory', -'C0', -'CChecks', -'9ensureClassInitialized', -'O0', +'9copyMemory', '9freeMemory', 'C0', '9getInt', '9invokeCleaner', -'9putReferenceRelease', '9setMemory', 'B0', '2VM.isBooted', '7DirectMemoryPageAligned', -'.odule/SystemModuleFinders$SystemImage.', -'NModuleReader.findImageLocation', -'[open', -'[read', -'-org/objectweb/asm/ByteVector.putShort', -'?ClassReader.accept', -'KreadCode', -'Qnst', -'OMethod', -'DWriter.toByteArray', -'?FieldWriter.putFieldInfo', -'@rame.merge', -'?Label.addForwardReference', -'Eput', -'?MethodVisitor.visitJumpInsn', -'EWriter.computeAllFrames', -'LputMethodInfo', -'LvisitJumpInsn', -'QMaxs', -'QVarInsn', -'?tree/ClassNode.visitInnerClass', -'DInsnList.accept', -'DJumpInsnNode.accept', -'DMethodNode.accept', -'-perf/PerfCounter.add', -'>increment', -'.latform/CgroupMetrics.getBlkIOServiceCount', +'-platform/CgroupMetrics.getBlkIOServiceCount', 'GCpuThrottledTime', 'JUsage', -'LerUsage', -'GInstance', -'GMemoryAndSwapUsage', -'MFailCount', -'MUsage', -'proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z '9clean', ':reate', '9remove', -'8Impl$PhantomCleanableRef.', -'QperformCleanup', -'1PhantomCleanable.', -'Bclean', -'Binsert', -'0lect/DirectConstructorHandleAccessor.invokeImpl', -'UnewInstance', -';MethodHandleAccessor.invoke', -'VImpl', -'5MagicAccessorImpl.', -'6ethodHandleAccessorFactory.ensureClassInitialized', -'QgetDirectMethod', -'QmakeTarget', -'QnewConstructorAccessor', -'TFieldAccessor', -'TMethodAccessor', -'ABooleanFieldAccessorImpl.fieldAccessor', -'5ReflectionFactory.newConstructorAccessor', -'JFieldAccessor', -'JMethodAccessor', -'-util/Preconditions.checkFromIndexSize', -'2xml/impl/Parser.step', -'ASAX.bflash_ws', -'Eparse', -';SAXParserImpl.parse', -'$jfr/AnnotationElement.', -'(FlightRecorder.getFlightRecorder', -'7register', -'(Recording.start', -'4op', -'(events/ContainerCPUUsageEvent.commit', -'FisEnabled', +'$jfr/Recording.stop', '(internal/ChunksChannel.transferTo', -'2ontrol.apply', -'9setValue', -'1EventControl.', -'>addControl', -'>remove', -'6Instrumentation.', -'FcreateClassNode', -'6WriterKey.ensureEventWriterFactory', '1JVM.emitEvent', -'5retransformClasses', -'4Support.', -'', -'1MetadataDescriptor$Element.addAttribute', -'C.write', -'9Loader.buildTypeMap', -'Is', -'@createTypes', -'9Repository.', -'Einit>', -'DfindMirrorType', -'Elush', -'DgetBinaryRepresentation', -'DinitializeJVMEventTypes', -'DmakeConfiguration', -'DnewEventConfiguration', -'Dregister', -'DsetOutput', -'GSettings', -'EtoreDescriptorInJVM', -'9Writer$$Lambda.0x00007f8163068428.accept', -'?.', -'@lambda$new$0', -'@makeFieldElement', -'DTypeElement', -'@writeBinary', -'EInt', -'EString', '1PlatformEventType.isCommittable', -'9Recorder$$Lambda.0x00007f8163042928.run', -'A.', -'BisToDisk', -'Blambda$startDiskMonitor$1', +'9Recorder$$Lambda.0x00007f533b042928.run', +'A.lambda$startDiskMonitor$1', 'BperiodicTask', -'Bstart', 'BtakeNap', -'BupdateSettings', -'PButIgnoreRecording', -'?ing$$Lambda.0x00007f81632d9318.call', +'?ing$$Lambda.0x00007f533b2d9bb8.call', 'B.dumpStopped', 'Clambda$transferChunksWithRetry$0', -'Cstart', -'Eop', +'Cstop', 'CtransferChunks', 'QWithRetry', -'1Repository.createRealBasePath', -'Dpository', -'', -'AdoPrivileged', -'MWithReturn', -'AgetPathInProperty', -'EredefinedJFCFiles', -'Alambda$registerEvent$2', -'PMirror$3', -'AregisterEvent', -'IMirror', -'AsetAccessible', -'DProperty', -'AtoRealPath', -'3ttingsManager.setEventControl', -'DSettings', -'1TypeLibrary.', -'=addUserFields', -'=createDurationField', -'CField', -'CStandardAnnotations', -'CType', -'=initialize', '1WriteableUserPath$1.run', 'B.doPrivilegedIO', '1dcmd/AbstractDCmd.execute', -'6DCmdStart.configureStandard', -'@execute', -'@initializeWithForcedInstrumentation', -'', -'FaddInstrumentation', -'FemitContainerCPUThrottling', +'E.emitContainerCPUThrottling', 'VUsage', 'SIOUsage', -'SMemoryUsage', -'JExceptionStatistics', -'Finitialize', -'PContainerEvents', -'FretransformCallback', -'=IClassInstrumentation.', -'SmakeBytecode', -'>MethodMergeAdapter.visitEnd', '', '!fr_emit_event', -'!int_arraycopy', -'%disjoint_arraycopy', -'!long_arraycopy', -'&disjoint_arraycopy', -'!ni_GetObjectField', +'!int_disjoint_arraycopy', +'!long_disjoint_arraycopy', '!short_disjoint_arraycopy', -'!vm_define_class_common', -'$lookup_define_class', -'#ti_GetClassMethods', -'&RetransformClasses', -' klassItable::initialize_itable', -'>_and_check_constraints', -'?for_interface', -'%Vtable::fill_in_mirandas', -'-initialize_vtable', -'>_and_check_constraints', -' loadConI0Node::ideal_Opcode', -'$LNode::emit', ' malloc', -'!etadata_Relocation::copy_into', -'5metadata_value', -'5unpack_data', -'$space::ChunkManager::get_chunk', -'B_locked', -'+Metachunk::ensure_committed', -'F_locked', -'/spaceArena::allocate', -'C_inner', -'+VirtualSpaceList::contains', -'=vslist_class', -'Dnonclass', -'7Node::commit_range', -'#hod_hash', -'!map', -'!onitorexit_nofpu Runtime1 stub', +'&@plt', +'!etaspace::VirtualSpaceList::contains', '!sort_with_tmp.part.0', ' netty_epoll_native_epollCtlDel0', ';Mod0', '8Wait0', -'4ventFdWrite', '&unix_filedescriptor_close', ':writevAddresses', '+socket_accept', -'2getSoLinger', -'2localAddress', '2recvAddress', '2sendAddress', -'4tTcpNoDelay', -'"w_instance Runtime1 stub', -'$type_array Runtime1 stub', -'!method::check_dependency_on', -')do_unloading', -')finalize_relocations', -'+x_oop_relocations', -')new_native_nmethod', -'.method', +'!method::is_nmethod', +')new_nmethod', '*method', ')oops_do', -'\'_entry_barrier', -'!on-virtual thunk to LIRGenerator::block_do', -'5UseCountComputer::block_do', -' objArrayOopDesc::obj_at_put', -'!opDesc* JNIHandles::resolve_impl<0ul, false>', -'#Factory::new_objectArray', -'#_Relocation::copy_into', -'0oop_value', +' oopDesc::release_obj_field_put', +'#_Relocation::oop_value', '$arraycopy', '$disjoint_arraycopy', -'!rg/apache/kafka/common/message/AlterClientQuotasRequestData.', -'EPartitionRequestData$TopicData.', -'Y.', -'ApiMessageType.', -'OrequestHeaderVersion', -'CVersionsResponseData.', -'Xread', -'@BeginQuorumEpochRequestData.', -'@ConsumerGroupDescribeResponseData.', -'AreatePartitionsRequestData.', -'@DeleteRecordsResponseData.', -'BscribeProducersResponseData$TopicResponse.', -'].', -'HShareGroupOffsetsRequestData$DescribeShareGroupOffsetsRequestGroup.', -'d.', -'HTopicPartitionsResponseData.', -'@FindCoordinatorResponseData.', -'@IncrementalAlterConfigsRequestData$AlterConfigsResource.', -'b.', -'@StreamsGroupHeartbeatRequestData.', -'@WriteShareGroupStateRequestData.', -'ETxnMarkersRequestData$WritableTxnMarker.', -'Z.', +'!rg/apache/kafka/common/message/ApiMessageType.requestHeaderVersion', '8protocol/ApiKeys.forId', 'IrequestHeaderVersion', -'+logging/log4j/LogManager.', -'DgetContext', +'+logging/log4j/Level.intLevel', '9core/Logger$PrivateConfig.filter', 'D.isEnabled', -'DContext.', -'Minit>', -'Lreconfigure', -'LsetConfiguration', -'Mtart', -'>async/AsyncLoggerContext.', -'Wstart', -'VSelector.createContext', -'ODisruptor.start', -'DRingBufferLogEvent$Factory.newInstance', -'V.', -'>config/AbstractConfiguration.', -'[createConfiguration', -'aPluginObject', -'[doConfigure', -'[initialize', -'[setToDefault', -'\\tart', -'EConfigurationFactory$Factory.getConfiguration', -'Y.addFactory', -'ZgetConfiguration', -']Instance', -'RSource.fromUri', -'EDefaultConfiguration.', -'ELoggerConfig$RootLogger$Builder.build', -'Q.getLevelAndRefs', -'ENullConfiguration.', -'EOrderComparator.compare', -'Ejson/JsonConfiguration.', -'Eplugins/convert/TypeConverterRegistry.', -'kgetInstance', -'kloadKnownTypeConverters', -'bs.convert', -'Mutil/PluginBuilder.build', -'`injectFields', -'`validateFields', -'XManager.collectPlugins', -'XRegistry.decodeCacheFiles', -'aloadFromMainClassLoader', -'Mvisitors/AbstractPluginVisitor.convert', -'VPluginBuilderAttributeVisitor.visit', -'Eyaml/YamlConfiguration.', -'\\getObjectMapper', -'[Factory.', -'cgetConfiguration', -'>filter/AbstractFilterable.getFilter', -'>impl/Log4jContextFactory.getContext', -'HProvider.', -'>layout/PatternLayout$Builder.build', -'SSerializerBuilder.build', -'R.', -'?ookup/Interpolator.', -'>pattern/DatePatternConverter.', -'[createFormatter', -'jUnsafely', -'[newInstance', -'FPatternParser.createConverter', -'TfinalizeConverter', -'Tparse', -'FThrowablePatternConverter.', -'`newInstance', -'>selector/ClassLoaderContextSelector.getContext', -'blocateContext', -'>util/FileUtils.fileFromUri', -'CLoader.isClassAvailable', -'CReflectionUtil.getDefaultConstructor', -'Rinstantiate', -'Cinternal/instant/InstantPatternDynamicFormatter$DynamicPatternSequence.tryMerge', -'sPatternSequence.isConstantForDurationOf', -'r.', -'screateFormatter', -'yTimestampedFormatter', -'smergeFactories', -'ssequencePattern', -'bFormatter$Builder.build', -'9spi/AbstractLogger.', -'LlogIfEnabled', -'Ltrace', -'KAdapter.getContext', -'VLogger', -':tatus/StatusLogger$Config.', -'Uinit>', -'MInstanceHolder.', -'MPropertiesUtilsDouble$$Lambda.0x00007f8163013d38.accept', -'b.lambda$normalizeProperties$0', -'cnormalizeProperties', -'syName', -'creadAllAvailableProperties', -'L.', -'MgetLogger', -'MisEnabled', -'9util/LoaderUtil.isClassAvailable', -'IloadClass', -'>PropertiesUtil$Environment.access$500', -'Yget', -'L.getStringProperty', -'AviderUtil.getProvider', -'KlazyInit', -'KselectProvider', -'>ServiceLoaderUtil$ServiceLoaderSpliterator.tryAdvance', -'?tackLocator$$Lambda.0x00007f81630837a0.apply', -'J.getCallerClass', -'Klambda$getCallerClass$2', -'JUtil.getCallerClass', -'3slf4j/Log4jLogger.debug', -'EisErrorEnabled', +'3slf4j/Log4jLogger.isErrorEnabled', 'GTraceEnabled', -'EmakeLoggingEventBuilder', -'Etrace', -'DFactory.getContext', -'OLogger', -'>MarkerFactory.', -'9SLF4JServiceProvider.initialize', -'$slf4j/Logger.atLevel', -'0Factory.', -'8bind', -'8getILoggerFactory', -';Logger', -';Provider', -'8performInitialization', -'*helpers/SubstituteServiceProvider.', -'$yaml/snakeyaml/parser/ParserImpl$ParseBlockMappingValue.produce', -'JDocumentStart.produce', -'JImplicitDocumentStart.produce', -'D.', -'EgetEvent', -'EpeekEvent', -'3reader/StreamReader.prefix', -'MForward', -'3scanner/ScannerImpl.checkToken', -'GfetchDouble', -'LFlowScalar', -'LMoreTokens', -'GscanFlowScalar', -'UNonSpaces', -'!s::Linux::dlopen_helper', -'+get_tick_information', +'$slf4j/Logger.atTrace', +'!s::Linux::get_tick_information', '+query_process_memory_info', '$active_processor_count', -'$commit_memory', -'$dll_load', '$elapsed_counter', -'$fopen', +'$find_builtin_agent', +'%open', '%ree', -'$is_readable_range', '$javaTimeMillis', ',Nanos', '%fr_report_memory_info', '$malloc', '$naked_short_sleep', -'+leep', '$open', -'$pd_commit_memory', -'\'write', -'$snprintf', -',_checked', -'%tack_shadow_pages_available', +'$pd_write', '$vsnprintf', '$write', '!utputStream::do_vsnprintf_and_write_with_automatic_buffer', '.print', '3_cr', -' picocli/CommandLine$AbstractParseResultHandler.execute', -'4DefaultFactory.', -'CloadClosureClass', -'4Interpreter.', -'@registerBuiltInConverters', -'4Model$ArgSpec$Builder.', -':CommandReflection.buildArgForMember', -'LextractCommandSpec', -'LinitFromAnnotatedMembers', -']TypedMembers', -'ASpec.forAnnotatedObject', -':OptionSpec$Builder.', -'D.builder', -':TypedMember.abbreviate', -'FgetToString', -'4RunLast.execute', -'CUserObjectOfLastSubcommandWithSameParent', -'', -'4access$1500', -'4execute', -';UserObject', -'!ost_adapter_creation', -'%monitor_wait_event', -'!thread_cond_broadcast@@GLIBC_2.3.2', -'-timedwait@@GLIBC_2.3.2', +' parse_stat', +'!ost_monitor_wait_event', +'!rint_stack_element_to_stream', +'!thread_cond_timedwait@@GLIBC_2.3.2', '-wait@@GLIBC_2.3.2', -'(mutex_trylock@@GLIBC_2.34', +'(mutex_lock@plt', +'.trylock@@GLIBC_2.34', '.unlock@@GLIBC_2.2.5', +'5plt', '(sigmask@GLIBC_2.2.5', ' qsort_r', -' rFlagsRegUCFOper::in_RegMask', -'!eadBytes', -'$_statdata', +' read_statdata', '"corderthread_entry', '"solve_opt_virtual_call', -'(virtual_call', -'$urce_allocate_bytes', ' sem_post@GLIBC_2.2.5', -'$timedwait@@GLIBC_2.34', -'%rywait@@GLIBC_2.34', +'$trywait@@GLIBC_2.34', '"nd', -'!low_subtype_check Runtime1 stub', -'%thread_cpu_time', -'!ort_dep_arg_4', -'!scanf', '!tart_thread', -'"ringStream::~stringStream', -'!un/invoke/util/BytecodeDescriptor.unparse', -'0VerifyAccess.isClassAccessible', -'?SamePackage', -'$launcher/LauncherHelper.checkAndLoadMain', -'Long', -'2pyMemory', -'0getAndAddInt', -'3Int', -'6Volatile', -'3Long', -'7Volatile', -'3ObjectVolatile', +'"ringStream::write', +'!un/misc/Unsafe.compareAndSwapInt', +'0getInt', +'3LongVolatile', '0invokeCleaner', '0putOrderedInt', -':Object', -'$net/util/URLUtil.urlNoFragString', -'(www/ParseUtil.encodePath', -'6firstEncodeIndex', -',protocol/jar/Handler.parseContextSpec', -'FURL', -'%io/ch/ChannelInputStream.close', -'+FileChannelImpl$Closer.run', -':.', -';implCloseChannel', -';open', +':Long', +'$nio/ch/ChannelInputStream.read', +'+FileChannelImpl.read', ';transferFrom', 'GFileChannel', ';write', '@Internal', -'+IOUtil.write', +'+IOUtil.read', +'6IntoNativeBuffer', +'2write', '7FromNativeBuffer', '+UnixFileDispatcherImpl.pwrite', 'H0', -')s/StreamDecoder.', -'9close', -'9forInputStreamReader', -'9implClose', -'9lockedClose', -'1Encoder.growByteBufferIfNeeded', -'9implWrite', +'Bread', +'F0', +')s/StreamDecoder.implRead', +'9lockedRead', +'9read', +'=Bytes', +'1Encoder.implWrite', '9lockedWrite', '9write', '>Bytes', @@ -4120,11263 +1820,4169 @@

proxy-no-filters/1topic-1kb_2026-04-15T21:44:15Z

'0.newEncoder', '(fs/UnixChannelFactory$Flags.toFlags', '=.newFileChannel', -'>open', -'/FileSystemProvider.newByteChannel', -'EFileChannel', -'/SecureDirectoryStream.close', -'$reflect/annotation/AnnotationParser$$Lambda.0x00007f81630798a0.', -'H1.run', -'G.annotationForMap', -'Hcontains', -'HparseAnnotation2', -'Ws', -'X2', -'Nrray', -'MEnumArray', -'MMemberValue', -'MSelectAnnotations', -'Nig', -'AType.', -'FgetInstance', -',generics/tree/ClassTypeSignature.accept', -'5visitor/Reifier.visitClassTypeSignature', -'$security/jca/ProviderConfig.getProvider', -'9List$3.get', -'=.', -'>getProvider', -'9s.', -'-provider/Sun.', -'9Entries.', -'AaddWithAlias', -'-util/FilePermCompat.', -'2KnownOIDs.', -'', -'EgetOverridableProperty', -'EincludedInExceptions', -'EprivilegedGetOverridable', -'=viderConstants.', -'$util/cldr/CLDRLocaleProviderAdapter.createLanguageTagSet', -')locale/provider/DecimalFormatSymbolsProviderImpl.getInstance', -'9JRELocaleProviderAdapter$$Lambda.0x800000063.run', -'Q.getCalendarProvider', -'ULanguageTagSet', -'VocaleServiceProvider', -'Rlambda$getCalendarProvider$11', -'9LocaleProviderAdapter.findAdapter', -'OgetAdapter', -'9NumberFormatProviderImpl.getInstance', -'WtegerInstance', -'!yscall', -'#malloc', -' testU_regNode::ideal_Opcode', -'!hread_native_entry', +'/FileSystem.getPath', +'9Provider.newFileChannel', +' thread_native_entry', ' unlink_chunk.constprop.0', '"safe_arraycopy', -'!pdate_register_map1', -'&window', -' vframeStream::vframeStream', -'!mClasses::is_loaded', -'"Symbols::find_sid', -'!oid ContiguousSpace::oop_since_save_marks_iterate', -'%JfrEpochStorageHost::iterate::ElementDispatch > >', +' void JfrEpochStorageHost::iterate::ElementDispatch > >', '(LinkedList::iterate >, ScavengingReleaseOp, JfrLinkedList, false>, JfrLinkedList >, CompositeOperationAnd> >', 'gEpochDispatchOp::ElementDispatch >, ReinitializeAllReleaseRetiredOp, JfrMspaceRemoveRetrieval, JfrConcurrentQueue, JfrLinkedList, true>, JfrLinkedList >, CompositeOperationAnd> >', -'%OopOopIterateDispatch::Table::oop_oop_iterate', -';MarkAndPushClosure>::Table::oop_oop_iterate', -';OopIterateClosure>::Table::oop_oop_iterate', -'fObjArrayKlass, narrowOop>', -';YoungGenScanClosure>::Table::oop_oop_iterate', -'pRefKlass, narrowOop>', -'hObjArrayKlass, narrowOop>', -'%WriterHost, EncoderHost, MemoryWriterHost, StackObj, ExclusiveAccessAssert> >::write', +'%OopOopIterateBoundedDispatch::Table::oop_oop_iterate_bounded', +'2Dispatch::Table::oop_oop_iterate', '!read_statdata', -'!table stub', -' wrong_method_stub' +'!table stub' ]; unpack(cpool); -n(3,33128) -u(2779,1) -n(2787) -n(9491) -u(20961) -f(9499,1,1,2) -u(11545,1) -n(18033) -f(9507,1,1,9) -u(15136,1) -n(16744) -n(17168) -n(18216) -n(18488) -n(18552) -n(20216) -n(22560) -n(26104) -f(9515,1,1,29) -u(11486,2,0,2,0) -n(13897,1) -u(13906) -f(14033,2,1,2) -u(13978) -u(21090) -f(14041,2,2,19) -u(14058) -u(23290) -u(23378) -u(23362,6) -u(13978) -u(13978) -u(21090) -f(23370,6,6,13) -u(13978) -u(13978) -u(21090) -f(15446,2,13,1,0,1,0) -u(2795) -f(18145,2,1) -n(18289) -n(18297,2) -f(9795,1,2,1458) -u(29755) -u(30588) -u(8676) -u(3628,707) -u(1444,674) -u(1452,669) -u(524,521) -u(1300,520) -u(572,2) -u(3044) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10508) -u(10516) -u(10132) -u(10180) -u(10188) -u(10252) -u(3132,1) -u(3140) +n(3,16810) +u(2843,2) +u(8953) +f(2851,1,2,20) +u(4657,19) +u(4674) +u(4642,1) +u(4594) +u(9010) +f(9706,4,1,18) +u(9730) +u(9714,11) +u(4594) +u(4594) +u(9010) +f(9722,6,11,7) +u(4594) +u(4594) +u(9010) +f(5073,2,7,1) +u(5066) +u(5066) +u(5234) +u(5082) +u(7946) +u(7954) +f(3067,1,1,545) +u(11499) +u(11804) +u(2524) +u(892,50) +u(412,28) +u(420,27) +u(164,24) +u(388) +u(380,11) +u(1460,2) +u(1476) +u(1468) +u(1428,1) +u(1428) +u(1428) +u(2412) +u(2428) +f(1436,14,1) +u(1444) +u(1436) +u(1444) +u(1436) +u(1444) +u(1452) +u(1436) +u(2420) +u(2676) +f(1980,11,1) +u(1988) +u(172) +u(140) +u(740) +f(1996,11,1,8) +u(1948,1) +u(780) +f(2004,12,1) +u(756) +f(2012,12,1,2) +f(1412,13,1,1) +f(2020,12,1) +n(2028) +n(2036) +u(2044) +u(2052) +u(748) +f(2068,12,1) +u(2076) +f(396,10,1,9) +u(1956,2) +u(1972) +f(1964,13,1,1) +f(2084,11,1,3) +u(2092,2) +f(2100,13,1,1) +u(2116) +u(2124) +f(2140,12,1) +u(2148) +u(2156) u(2108) -f(10196,23,1) -u(10204) -u(10204) -u(8556) -u(2036) -f(1292,10,1,247) -u(5388,44) -u(5308,1) -u(5364) -u(7724) -f(5348,12,1,4) -f(1532,13,1,1) -n(5356) -u(7868) -f(5412,13,1) -u(2924) -f(5420,12,1,7) -f(1372,13,1,4) -n(5372,1) -n(5380) -u(8260) -f(5428,12,1,32) -f(204,13,3,3) -n(604,1) -n(5396,6) -f(5404,14,2,4) -f(5324,15,3,1) -u(5900) -f(5404,13,1,17) -f(5316,14,5,6) -f(5316,15,1,4) -u(8348,3) -u(8372) -f(8972,16,3,1) -f(8852,15,1) -u(8996) -u(10300) -f(5324,14,1,6) -u(5332) -u(5324,2) -u(5332,1) -u(5332) -f(11612,17,1) -f(5332,16,1) -u(5324) -u(8364) -u(5244) -u(9995) -f(5340,16,1) -u(5324) -u(8356) -f(8364,16,1,2) -f(5908,13,2) -f(212,14,1,1) -u(716) -f(6540,11,1,2) -u(6548) -u(396,1) -n(404) -f(6612,11,1) -u(6620) -u(5956) -f(6628,11,1,24) -u(6636,1) -u(532) -u(404) -f(6644,12,1,23) -u(6676,2) -n(6684,8) -u(6652,2) -n(6660,4) -u(1356,2) -f(1364,16,1,1) -u(10284) -u(10292) -f(5188,15,1) -n(8812) -u(8828) -u(8820) -f(27444,14,1) -n(30580) -f(6692,13,1,6) -f(6668,14,2,2) -n(6708) -f(6700,13,2,1) -n(6812,3) -f(7492,14,1,1) -n(7716) -f(7284,13,1,3) -f(6716,11,3,1) -n(6724,144) -f(5116,12,1,1) -n(6532,4) -n(6732,7) -f(3012,13,3,1) -n(6972,2) -n(7732,1) -f(6740,12,1,5) -u(3012,3) -n(6980,2) -u(3012) -f(6748,12,2,14) -f(5212,13,9,1) -u(5236) -f(5228,13,1) -u(10108) -f(5972,13,1) -n(6876) -u(6820) -f(10604,13,1) -f(6764,12,1,21) -f(2980,13,3,1) -n(6756,5) -f(2988,14,1,1) -u(9995) -f(5228,14,1,2) -f(5204,15,1,1) -f(5956,14,1) -f(6828,13,1,8) -f(2988,14,5,1) -n(3012,2) -f(6852,13,2,1) -u(3012) -f(6860,13,1,2) -f(5916,14,1,1) -f(8252,13,1) -f(6772,12,1) -u(6828) -f(6780,12,1) -n(6788) -u(7492) -f(6804,12,1) -n(6812,21) -f(5180,13,4,2) -n(5204) -n(5212,3) -f(5196,14,1,1) -n(5236) -f(5220,13,1) -n(5252) -n(7716) -n(7740,2) -n(7748,3) -n(8780,1) -u(2020) -u(8788) -f(29636,13,1) -f(6836,12,1,6) -n(6844,26) -f(5260,13,8,1) -n(5988) -n(6796,12) -f(6868,14,11,1) -f(7468,13,1) -n(9883,3) -f(6884,12,3,2) -n(6892,6) -u(6524,3) -f(6900,14,2,1) -f(6908,13,1,3) -u(6916) -f(3004,15,1,1) -n(6924) -f(6940,12,1,8) -u(6956) -f(3012,14,6,2) -f(6948,12,2,4) -f(3012,13,3,1) -f(6964,12,1,4) -f(2996,13,1,1) -n(9883,2) -f(7284,12,2,10) -f(2996,13,7,1) -n(7276,2) -f(7316,11,2,15) -u(7308,5) -f(9875,13,4,1) -f(7340,12,1,3) -u(500) -u(1028,2) -f(1084,15,1,1) -u(1116) -f(5836,14,1) -u(9723) -u(9667) -f(7372,12,1,7) -f(5988,13,2,1) -n(7364,4) -u(1012,1) -n(5268,2) -f(268,15,1,1) -f(27452,14,1) -f(7332,11,1,12) -f(3412,12,1,2) -n(6012,6) +u(2116) +u(1508) +u(2652) +f(2132,11,1) +u(2084) +u(2092) +f(2188,11,1,3) +u(2164,2) +u(2172) +u(468,1) +u(484) +u(236) +f(476,14,1) +u(2692) +u(2700) +u(2668) +u(2636) +u(556) +u(2628) +u(2660) +f(2180,12,1) +u(2196) +u(2436) +u(1652) +f(1916,10,1,4) u(1852) -u(1860,5) -n(9364,1) -f(7324,12,1,3) -f(1828,13,1,1) -u(6204) -f(1852,13,1) -f(7348,11,1,4) -u(7356) -u(10244) -f(27756,14,1,3) -u(27764) -u(988,2) -u(1020,1) -u(7812) -f(11691,17,1) -f(1500,16,1) -u(972) -u(2964) -u(2956) -u(6196) -u(6212) -f(1308,10,1) -n(1316,165) -f(564,11,1,3) -u(6468) -u(6268) -u(6324) -u(6396) -u(6292,1) -u(2444) +u(1860,1) +u(700) +f(1868,12,1,3) +u(1900) +u(1876) +u(1916,1) +u(1852) +u(1868) +u(1900) +u(1876) +u(2252) +u(1916) +u(1852) +u(1868) +u(1900) +u(1876) +u(2252) +u(1916) +u(1852) +u(1868) +u(1900) +u(1876) +u(2252) +u(1916) +u(1852) +u(1868) +u(1900) +u(1876) +u(2252) +u(564) +u(708) +u(692) +u(2060) +u(1668) +u(1660) +f(2252,15,1,2) +u(1916) +u(1852) +u(1868) +u(1900,1) +u(1876) +u(2252) +u(1916) +u(1852) +u(1868) +u(1900) +u(1876) +u(1916) +u(1852) +u(1868) +u(1900) +u(1876) +u(2252) +u(2252) +u(1916) +u(1852) +u(1868) +u(1900) +u(1876) +u(2252) +u(2252) +u(1916) +u(1852) +u(1868) +u(1900) +u(1876) +u(2252) +u(1916) +u(1852) +u(1868) +u(1900) +u(1884) +u(1892) +u(2060) +u(2652) +u(2684) +u(3348) +u(3340) +u(11443) +u(11003) +u(11003) +u(11003) +u(11003) +f(1908,19,1) +u(2300) +f(436,8,1) u(340) u(348) -u(2516) -u(5156) -u(6932) -f(6332,16,1) -u(1332) -u(3060) -u(3076) -u(3068) -f(6356,16,1) -u(10132) -u(10180) -u(10188) -f(708,11,1) -n(1404) -u(1380) -u(1348) -u(5940) -f(1572,11,1,2) -u(1564) -f(1556,13,1,1) -u(1548) +u(356) +u(3332) +u(11084) +u(11092) +u(300) +u(308) +f(3316,8,1) +u(3364) +f(3324,8,1) +u(3380) +u(3372) +u(3356) +u(3388) +u(2396) +u(2492) +u(2484) +f(428,7,1) u(1580) -u(140) -f(6556,11,1,14) -f(6572,12,2,1) -n(6596,9) -f(2724,13,1,1) -n(6580,2) -f(2948,14,1,1) -f(6588,13,1,3) -n(8980,2) -f(8388,12,2,1) -n(8852) -u(8996) -f(6564,11,1,7) -u(6604) -f(1348,13,3,3) -n(1420,1) -f(6996,11,1,43) -u(2876,2) -u(2876,1) -u(2884) -u(2900) -u(2860) -u(2868) -f(7076,13,1) -u(7060) -u(7044) -u(7084) -u(7196) -u(7260) -u(7252) -u(5940) -f(2892,12,1) -u(2892) -u(2892) -u(2892) -u(7140) -u(6484) -u(2700) -f(6988,12,1,3) -f(5852,13,1,1) -n(5948) -f(7004,12,1,6) -f(5948,13,2,1) -n(5980) -n(7100,2) -f(7012,12,2,11) -f(7020,13,4,7) -f(7108,14,5,1) -u(5500) -u(8852) -u(8996) -u(10292) -f(7636,14,1) -u(5996) -u(5948) -f(7028,12,1,2) -f(7036,13,1,1) -u(652) -f(7164,12,1,18) -f(7172,13,6,4) -f(7204,14,1,3) -u(5164,1) -n(7052,2) -f(5980,16,1,1) -f(7180,13,1,8) -u(1740,2) -u(1756) -u(9044) -u(8900) -u(8932,1) -u(8940) -u(2020) -f(9028,18,1) -u(8876) -u(10340) -u(10228) -f(7116,14,1) -n(7156) -u(7092) -f(7188,14,1,3) -u(5148,1) -u(5516) -u(1356) -u(1364) -u(8780) -f(7252,15,1,2) -f(9987,16,1,1) -f(7444,14,1) -f(7148,11,1,46) -u(6996,40) -u(2892,2) -u(7140) -u(7132) -u(7124,1) -n(7628) -f(6988,13,1,5) -f(5852,14,2,2) -f(7788,15,1,1) -f(5948,14,1) -f(7004,13,1,5) -f(2932,14,1,1) -n(7620) -n(7804) -n(7972) -f(7012,13,1,17) -f(5820,14,9,1) -n(7020,7) -f(7108,15,2,4) -f(5500,16,1,2) -u(140,1) -n(8852) -u(8996) -u(10292) -f(7124,16,1) -f(7636,15,1) -u(5996) -u(7788) -f(7028,13,1,4) -u(7036) -f(7164,13,4,7) -f(7068,14,1,1) -u(7220) -u(7764) -f(7172,14,1,4) -f(2948,15,1,1) -n(7092) -n(7204) -u(7052) -u(7124) -f(7180,14,1) -u(7092) -f(7244,12,1,6) -f(7268,13,1,5) -u(1724,1) -u(1740) -u(7236) -f(6004,14,1) -n(7428) -u(7476) -u(7796) -f(7772,14,1) -n(8428) -u(8780) -u(2020) -u(8772) -f(7212,11,1,6) -f(2924,12,4,1) -n(6516) -f(7244,11,1,34) -u(7252,1) -u(1748) -f(7268,12,1,33) -f(1724,13,1,2) -u(1740) -u(7236) -f(2940,16,1,1) -f(1732,13,1) -u(9012) -u(9044) -u(8900) -u(8780) -u(2020) -u(8868) -u(8868) -f(2908,13,1,3) -u(2916) -u(7252,1) -u(1412) -f(7260,15,1) -u(7252) -f(7268,15,1) -u(7460) -u(8988) -u(8868) -f(5132,13,1,2) -u(5492,1) -u(140) -u(8980) -f(5524,14,1) -u(5508) -u(5924) -f(5140,13,1,2) -f(5516,14,1,1) -u(124) -u(7404) -f(5484,13,1) -n(5812) -n(6004,3) -f(7780,14,2,1) -f(7220,13,1,2) -f(7228,14,1,1) -f(7260,13,1) -n(7428,3) -f(1868,14,1,1) -n(7476) -u(7484) -f(7436,13,1) -n(7460) -u(8988) -f(7612,13,1) -n(7756,5) -f(7220,14,1,1) -n(7260,2) -u(1340,1) -n(7252) -u(9092) -f(7484,14,1) -u(5964) -f(8380,13,1,3) -u(3020,2) -u(3028) -u(5508) -u(5924) -f(196,18,1,1) -f(5492,14,1) -u(1356) -u(1364) -u(8860) -u(8780) -u(2020) -u(8772) -f(7292,11,1,4) -u(7244,2) -u(7268) -u(7260,1) -u(7252) -u(1412) -f(7452,14,1) -u(9004) -f(7260,12,1) -u(7252) -f(7300,12,1) -u(7420) -u(1540) -f(7388,11,1,3) -f(7380,12,1,1) +u(2212) +u(11387) +u(3107) +f(1604,6,1,9) +u(1588) +u(2212) +u(11387) +u(3075,2) +n(3107,7) +f(3308,6,7,1) +u(10388) +u(524) +u(1380) u(1372) -f(7396,12,1) -f(1348,10,1,2) -n(1388,1) -u(564) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6348) -u(6932) -u(7436) -u(7500) -f(6468,10,1,99) -u(6268) -u(6324) -u(6396) -u(6292,1) -u(6932) -u(116) -u(6932) -u(132) -u(8780) -u(2020) -u(8772) -f(6332,14,1,92) -u(1332,5) -u(1332,1) -u(3060) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10500) -u(10564) -u(10492) -f(3060,16,1,4) -f(3076,17,1,1) -u(3068) -u(10396) -f(10380,17,1,2) -u(10540) -u(10556) -u(10532) -f(10548,21,1,1) -u(10508) -u(10516) -u(10132) -u(10180) -u(10188) -u(10252) -u(10196) -u(10204) -u(10204) -u(8556) -u(2036) -f(1396,15,1,2) -u(10364) -f(1988,17,1,1) -u(5100) -f(2052,15,1) -u(2596) -u(6932) -u(6004) -f(6468,15,1,15) -u(6268) -u(6324) -u(6396) -u(6332,14) -u(6468,7) -u(6268) -u(6324,6) -u(6396) -u(6332) -u(1332,1) -u(3060) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10508) -u(10524) -u(10140) -u(10212) -u(10236) -u(5052) -u(4932) -u(5044) -u(4964) -u(3220) -u(3148) -f(2572,25,1) -u(8836) -u(9060) -u(9044) -u(8900) -f(6468,25,1,3) -u(6268) -u(6316,1) -n(6324,2) -u(6396) -u(6332) -u(1332,1) -u(3060) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10508) -u(10524) -f(6468,30,1) -u(6268) -u(6324) -u(6396) -u(6460) -u(6308) -u(2516) -u(6932) -u(5148) -f(7588,25,1) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -f(6348,22,1) -u(6932) -u(7452) -u(8908) -u(8916) -f(7588,20,1,7) -u(2652,1) -u(2484) -u(6932) -u(8436) -u(8956) -f(6468,21,1,2) -u(6268) -u(6324) -u(6396) -u(6332,1) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6356) -u(2556) -u(9044) -u(8900) -u(8780) -u(2020) -u(8788) -f(6372,25,1) -u(6452) -f(7588,21,1,4) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468,1) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6356) -u(6364) -u(1324) -u(8780) -u(2020) -u(8772) -f(7588,27,1,3) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468,2) -u(6268) -u(6324) -u(6396) -u(6332,1) -u(6468) -u(6268) -u(6348) -u(6932) -f(6380,37,1) -u(8964) -u(9036) -u(10316) -u(10276) -u(10228) -u(9987) -f(7588,33,1) -u(6468) -u(6268) -u(6324) -u(6396) -u(6356) -u(6364) -u(1324) -u(8780) -u(8892) -f(6404,19,1) -u(6932) +u(11244) +u(2268) +u(2500) +u(3091) +u(2891) +u(2947) +u(2995) +f(11460,6,1,12) +u(1108,10) +u(972,1) +u(980) +u(2444) +u(3123) +f(1116,8,1,9) +u(1100) +u(956,2) +u(3540) +u(1348) +f(1228,10,2,1) +n(1236,5) +u(11332,1) +u(11316) +u(2971) +f(11836,11,1,4) +u(11332) +u(11316) +u(2971) +f(2444,10,4,1) +u(11332) +u(11316) +u(2971) +f(1140,7,1) +u(1132) u(964) -f(7588,15,1,68) -u(2052,1) -u(2596) -u(6932) -f(2556,16,1) -u(2460) -u(6932) -u(1732) -u(9012) -u(9044) -u(8900) -u(9044) -u(8900) -u(8948) -f(6468,16,1,32) -u(6268) -u(1972,1) -n(6300) -u(5972) -f(6324,18,1,30) -f(6396,19,1,29) -u(6332,24) -u(1332,1) -u(3060) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10508) -u(10524) -u(10140) -u(10212) -u(10460) -u(10444) -u(10348) -f(6468,21,1,3) -u(6268) -u(6324) -u(6396) -u(6332,2) -u(6468,1) -u(6268) -u(6324) -u(6396) -u(6332) -u(1332) -u(580) -u(588) +u(1348) +u(3492) +u(1340) u(1332) -u(3060) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10508) -u(10524) -u(10140) -u(10212) -u(10460) -u(10444) -u(10348) -u(10484) -u(8284) -u(8500) -f(7588,26,1) -u(6468) -u(6268) -u(6324) -u(6396) -u(6404) -u(6444) -f(6340,25,1) -u(2476) -u(8780) -u(2020) -u(2028) -u(9068) -f(7588,21,1,20) -u(2660,1) -u(2508) -u(5124) -u(6932) -u(6004) -f(6468,22,1,11) -u(6268) -u(6316,1) -u(2436) -u(6516) -u(9987) -f(6324,24,1,10) -u(6396) -u(6332) -u(6468,1) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(7588) -u(6468) -u(6268) -u(6316) -u(5892) -f(7588,27,1,9) -u(6468,7) -u(6268) -u(6324) -u(2636,1) -n(6396,6) -u(6332,4) -u(6468,2) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332,1) -u(7588) -u(7596) -u(2468) -f(6404,57,1) -u(2564) -u(2556) -u(6932) -u(6004) -f(7588,33,1,2) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(2572,1) -u(8836) -u(9060) -u(9020) -u(8780) -u(8892) -u(9987) -f(7588,45,1) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(10388) -u(10140) -u(10148) -f(6356,32,1) -u(6364) -f(6460,32,1) -f(7588,28,1,2) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468,1) -u(6268) -u(6324) -u(6396) -u(6356) -u(2556) -u(2668) -u(7412) -u(8780) -u(2020) -u(8772) -f(7588,34,1) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(2556) -u(2588) -u(9044) -u(9044) -u(8900) -u(8780) -f(7588,22,1,7) -u(6468,3) -u(6268) -u(6324) -u(6396) -u(6332,2) -u(6468,1) -u(6268) -u(10420) -u(10460) -u(10444) -f(10140,28,1) -u(10212) -u(10236) -u(4948) -u(4940) -u(5044) -u(4924) -f(6356,27,1) -u(6364) -u(2444) -u(340) -u(348) -u(2516) -u(5156) -u(6932) -u(5132) -u(5492) -u(1356) -f(7588,23,1,4) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(1332,1) -u(3060) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10508) -u(10516) -u(10132) -u(10180) -u(10188) -u(10252) -u(10196) -u(10476) -f(6468,29,1) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6372) -f(7588,29,1,2) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468,1) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6356) -u(9036) -u(8940) -u(8924) -u(29627) -u(27595) -u(27595) -u(27595) -f(7588,41,1) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(2580) -f(9084,22,1) -u(2668) -u(2524) -u(2620) -u(5556) -u(5540) -u(5972) -u(196) -f(6356,20,1,2) -f(6364,21,1,1) -u(6932) -u(8780) -u(2020) -f(6372,20,1) -u(7596) -u(2468) -u(5908) -u(7980) -f(6388,20,1) -u(2548) -u(2612) -u(1324) -u(9020) -u(8780) -u(2020) -f(6404,20,1) -u(2556) -u(6932) -u(460) -f(7588,16,1,33) -u(2660,1) -u(8964) -u(9036) -u(8940) -f(6468,17,1,26) -u(6268) -u(6300,1) -u(5892) -f(6324,19,1,22) -u(6396) -u(6332,21) -u(1332,1) -u(3060) -u(3076) -u(3068) -u(10396) -f(6468,22,1) -u(6268) -u(6324) -u(6396) -u(6356) -u(6412) -u(2452) -u(356) -u(5780) -u(364) -u(2644) -u(6932) -u(8380) -u(3020) -u(3028) -u(5508) -u(5924) -f(7588,22,1,19) -u(2660,1) -u(6932) -u(1724) -u(1756) -u(9044) -u(8900) -u(9052) -f(6468,23,1,10) -u(6268) -u(6324) -u(6396) -u(6332) -u(1332,1) -u(3060) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10508) -u(10524) -u(10140) -u(10212) -u(1692) -f(6468,28,1,3) -u(6268) -u(6324) -u(6396) -u(6332,2) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(1332,1) -u(3052) -u(3404) -f(7588,52,1) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(1396) -u(10364) -u(1988) -u(5100) -u(852) -u(4332) -f(6340,32,1) -u(2476) +u(11828) +u(11844) +u(596) +u(1020) +f(1588,7,1) +u(2212) +u(11395) +u(3107) +f(1300,5,1,411) +u(1308,278) +f(444,7,60,2) +n(612,1) +n(1276,8) +f(604,8,2,5) +f(948,9,4,1) +f(1260,8,1) +f(1284,7,1,160) +f(1292,8,10,120) +u(68,2) +n(884,1) +n(1052,3) +n(1148,1) +n(1196,7) +u(1204) +u(1156,5) +n(1620,1) +u(3027) +f(11419,11,1) +f(2540,9,1,106) +u(1028,102) +f(868,11,2,3) +u(316,1) +n(324,2) +f(1012,11,2,13) +u(3588,9) +f(284,13,3,1) +n(324,2) +n(1548,3) +f(11076,12,3,4) +f(1172,11,4,83) +f(732,12,10,1) +n(1356,12) +n(1364,26) +f(1924,13,3,2) +n(3556,1) +n(3588,18) +f(324,14,4,5) +n(1548,1) +n(3548,4) +f(324,15,2,2) +f(3564,14,2,4) +u(1516,1) +n(1556,3) +u(2931) +f(3604,13,3,2) +f(324,14,1,1) +f(1556,12,1,11) +f(1524,13,1,4) +f(10996,14,2,2) +f(2931,13,2,4) +n(10996,2) +f(1564,12,2,23) +f(452,13,15,8) +f(1268,11,8,1) +f(3203,10,1,3) +n(11435,1) +f(1596,8,1,2) +n(1620,1) +u(3027) +f(2388,8,1) +n(2468,22) +u(2460) +f(1684,10,1,6) u(2540) -u(2660) -u(6932) -u(5884) -f(7588,28,1,6) -u(2652,2) -u(2484,1) -u(6932) -f(8844,30,1) -u(10324) -f(6468,29,1,3) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(2052,1) -u(2628) -u(2532) -u(9020) -u(9036) -u(8940) -f(6468,35,1,2) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468,1) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(10388) -u(10140) -u(10212) -u(10236) -u(4948) -u(4940) -u(5044) -u(4916) -u(7708) -u(3164) -f(7588,40,1) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(1332) -u(3060) -u(10380) -u(10540) -u(10556) -u(10532) -u(10548) -u(10508) -u(10524) -u(10140) -u(10212) -u(10196) -f(7588,29,1) -f(7588,23,1,8) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332,7) -u(1332,1) -u(3060) -u(3076) -u(3068) -f(6468,29,1,2) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(2500,1) -n(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(2652) -u(2484) -u(6932) -u(468) -f(7588,29,1,4) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468,1) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(2604) -u(2468) -u(5908) -u(5972) -f(7588,35,1,3) -u(2652,1) -u(8964) -u(8780) -u(2020) -u(8772) -f(6468,36,1) -u(6268) -u(6324) -u(6396) -u(6356) -u(10132) -u(10260) -u(4988) -u(3132) -u(3140) -u(2108) -f(7588,36,1) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(1332) -u(3060) -u(3076) -u(3068) -u(10396) -f(6404,28,1) -u(6276) -u(6932) -u(6004) -u(5812) -f(6388,21,1) -u(2548) -u(2612) -u(2532) -u(9020) -f(6348,19,1) -u(6932) -u(7452) -u(8796) -f(6420,19,1) -n(10420) -f(7588,17,1,6) -u(6468) -u(6268) -u(6324,5) -u(6396) -u(6332) -u(2460,1) -n(6468,2) -u(6268) -u(6324,1) -u(6396) -u(6332) -u(7588) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(10140) -u(10212) -u(10236) -u(5068) -u(5060) -u(5044) -u(4924) -f(6348,25,1) -u(188) -u(10372) -u(300) -u(308) -f(7588,23,1,2) -u(6468,1) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(2572) -u(8836) -u(9060) -u(9020) -u(9036) -u(8940) -u(8924) -u(29627) -f(7588,24,1) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(7588) -u(6468) -u(6268) -u(6324) -u(6396) -u(6332) -u(6468) -u(6268) -u(6300) -u(2468) -u(5556) -u(5540) -u(5548) -u(5900) -u(5932) -u(9883) -f(8836,20,1) -f(9044,16,1) -u(8900) -u(8884) -f(10140,15,1) -u(10212) -u(10236) -u(4948) -u(4940) -u(5044) -f(6356,14,1,2) -u(6412) -u(2452) -u(356) -u(364,1) -u(2644) -u(6932) -u(8380) -u(5492) -u(1356) -u(1364) -u(8860) -u(8884) -u(8996) -u(10308) -f(2492,18,1) -u(6932) -u(5476) -f(6372,14,1) -u(6284) -u(2668) -u(2524) -u(1356) -f(6404,14,1,2) -f(6276,15,1,1) -u(7420) -u(8780) -u(2020) -u(2028) -f(6436,14,1) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6436) -u(6428) -u(6452) -u(5892) -f(7380,10,1,3) -f(1372,11,1,2) -f(29764,9,2,1) -f(1220,8,1) -u(1468) -u(1476) -u(29372) -u(29364) -u(29348) -u(10027) -u(10003) -u(9643) -f(1508,8,1,142) -u(1156) -u(1180) -u(1172,125) -f(1164,12,1,46) -u(2332,5) -u(388,1) -n(9332) -u(9883) -f(9340,14,1,2) -n(9356,1) -f(2828,13,1,37) -u(2852,36) +u(1692,4) +u(1172) +f(1364,14,1,1) +u(3588) +u(324) +f(1556,14,1) +u(2931) +f(1564,14,1) +f(3203,12,1) +n(11435) +f(2228,10,1) +u(3147) +u(3107) +f(2244,10,1,8) +u(2228,3) +u(3147) +u(3107) +f(3163,11,3,5) +f(3163,10,5,6) +f(3035,8,6,1) +n(3059,2) +n(11427,1) +f(1324,7,1) +n(1612,10) +u(11411) +f(2332,7,10,1) +n(2612,4) +n(2620) +n(3219,8) +n(3500,1) +n(3508) +u(11236) +u(3395) +u(2859) +f(11236,7,1,17) +f(3395,8,2,15) +f(2859,9,2,13) +f(2220,6,13,3) +u(11475) +f(2236,6,3) +f(11483,7,1,2) +f(11276,6,2,3) +f(3395,7,1,2) +f(2859,8,1,1) +f(11300,6,1,124) +f(2987,7,4,120) +f(3411,8,1,119) +f(3011,9,118,1) +f(2772,5,1,32) +u(2764,30) +u(2348,1) u(2340) -u(2380,35) -u(2388) -f(412,18,1,1) -u(10412) -u(5772) -u(5764) -u(388) -f(2348,18,1,3) -u(2356,1) -n(10132,2) -u(10180,1) -u(10188) -u(10252) -u(10468) -u(30644) -f(10260,20,1) -u(11580) -f(2356,18,1) -u(1620) -f(2372,18,1,26) -u(1964,1) -n(2356,3) -u(2364,1) -n(3236) -n(9348) -f(2420,19,1,13) -u(2428) -u(2380,12) -u(2388) -f(2348,23,1,1) -u(10132) -u(10180) -u(10188) -u(10252) -u(10196) -u(10204) -u(10204) -u(8556) -u(2036) -f(2372,23,1,10) -u(2356,1) -u(2364) -u(9987) -f(2420,24,1,6) -u(2428) -u(2380,4) -u(2388) -u(412,1) -u(9396) -f(2348,28,1) -u(10132) -u(10180) -u(10188) -u(10252) -u(3132) -u(3140) -u(2108) -f(2372,28,1,2) -u(2420,1) -u(2428) -u(2380) -u(2388) -u(2372) -u(2420) -u(2428) -u(2380) -u(2388) -u(2372) -u(2420) -u(2428) -u(10356) -u(10356) -u(10460) -f(10140,29,1) -u(10212) -u(1692) -f(2404,26,1) -n(9388) -u(9380) -u(29684) -f(10140,24,1,3) -u(10212) -u(10236,2) -u(5052) -u(4932,1) -u(5044) -u(4924) -u(8540) -u(8292) -f(5092,28,1) -u(1252) -u(1236) -f(10460,26,1) -u(10444) -f(2412,21,1) -u(444) -u(444) -f(10140,19,1,8) -u(10212) -u(10196,1) -u(10468) -u(30644) -f(10236,21,1,4) -u(4948,3) -u(4940) -u(5044) -f(4964,25,1,2) -u(3220) -u(3148) -f(5068,22,2,1) -u(5060) -u(5044) -u(4924) -u(8540) -u(8284) -u(8500) -u(8468) -f(10460,21,1,3) -u(10444) -u(10348) -u(5828,1) -u(29603) -f(10484,24,1,2) -u(8284,1) -u(8500) -u(8468) -f(10468,25,1) -u(30644) -f(10364,19,1) -u(1988) -u(5100) -u(852) -u(4340) -f(2396,18,1) -u(10124) -u(10172) -u(1708) -u(8420) -u(8404) -u(9476) -u(6228) -u(5836) -u(9723) -f(3228,18,1) -n(10156) -f(29684,16,1) -f(9987,14,1) -f(2844,13,1,4) -u(6236) -f(6020,15,1,3) -u(420,1) -n(3380,2) -f(6028,17,1,1) -f(1188,12,1,27) -u(1004,1) -u(10092) -u(29627) -f(4540,13,1,18) -u(4556) -u(4524,1) -u(292) -f(4532,15,1,3) -u(4516) -u(4508) -u(1076) -u(1852,2) -f(1860,20,1,1) -f(8652,19,1) -f(4564,15,1) -u(332) -u(5276) -u(284) -u(1036) -f(4572,15,1,5) -f(4620,16,1,3) -n(4644,1) +f(2756,7,1,28) +u(2796) +u(988,1) u(252) -f(4588,15,1) -u(5284) -u(260) -u(1124) -f(4612,15,1) -u(228) -u(236) -f(4628,15,1,3) -u(4636) -f(1852,17,1,2) -f(4652,15,2,1) -u(1124) -u(7836) -f(4700,15,1) -u(220) -u(4732) -f(4708,15,1) -u(4580) -u(4604) -f(4548,13,1) -u(11900) -f(4596,13,1,7) -u(1820,6) -u(4508,5) -u(1076) -f(1844,17,1,2) -u(1628,1) -u(9372) -f(1860,18,1) -f(1852,17,1,2) -u(1860,1) -n(9364) -f(4660,15,1) -u(5284) +u(268) +u(244) +f(2788,9,1,26) +u(676) +u(636) +f(628,12,1,23) +u(532) +u(2276,1) +u(2284) +u(11356) +u(11340) +u(11324) +u(3243) +u(3227) +u(3155) +u(3139) +f(2380,14,1,15) +u(220,6) u(276) -f(6476,14,1) -u(4508) -u(1076) -u(1828) -f(1196,12,1,45) -u(436,15) -u(27788) -f(4380,15,1,2) -u(2684,1) -n(4468) -f(4388,15,1) -u(4460) -u(7516) -u(7508) -f(4396,15,1) -u(9987) -f(4404,15,1) -n(4412) -u(4500) -u(4492) -u(380) -f(4420,15,1) -n(4428,2) -f(4476,16,1,1) -u(4484) -u(3244) -u(3372) -u(10388) -u(10140) -u(10212) -u(10236) -u(4948) -u(4940) -u(5044) -u(4964) -u(3220) -u(3148) -f(4436,15,1,3) -u(4452,2) -u(4684,1) -n(4692) -u(2692) -f(10404,16,1) -f(4444,15,1) -u(4372) -u(628) -f(4668,15,1) -f(4852,13,1,30) -f(4780,14,1,7) -f(4868,15,3,4) -u(4876,3) -f(4884,17,2,1) -u(7644) -f(4892,16,1) -u(4676) -f(4804,14,1,8) -f(4724,15,1,2) -f(4716,16,1,1) -f(4828,15,1,3) -u(4788,1) -u(4820) -u(3364) -f(4828,16,1) -u(4796) -f(29684,16,1) -f(4844,15,1,2) -f(4844,16,1,1) -f(4812,14,1,9) -f(212,15,4,2) +u(580) +u(148,4) +f(492,19,3,1) +f(588,18,1,2) +u(11852,1) +n(11860) +u(1796) +f(668,15,1,9) +u(260,2) +n(2596,7) +u(2532) +u(852,6) +u(1420,2) +u(11100) +u(11116) +u(116) +f(3572,19,2,1) +n(3580,3) +f(156,20,1,1) +u(460) +f(1804,20,1) +f(860,18,1) u(716) -f(4756,15,2,1) -n(4764) -n(4772) -f(4836,14,1,4) -f(2716,15,3,1) -f(4860,14,1) -f(2156,12,1) -u(2164) -f(2836,12,1,3) -u(428) -u(27796) -f(9148,15,2,1) -f(10356,12,1,2) -u(10228,1) -n(10428) -u(10436) -f(1204,11,1) -u(1996) -f(1212,11,1,14) -u(10244) -u(1980,2) -f(2004,14,1,1) -u(29627) -u(27595) -u(29740) -f(27756,13,1,12) -u(996,2) -f(27476,15,1,1) -u(244) -f(1028,14,1) -u(1100) -u(9452) -u(29204) -u(29308) -u(27579) -f(27764,14,1,9) -u(988,5) -u(1020,2) -u(612) -u(7828) -f(11691,16,2,3) -f(1500,15,3,1) -u(972) -u(2964) -u(2956) -u(6196) -u(6212) -f(1836,15,1) -n(8084) -n(27732) -f(1972,11,1,2) -f(10164,8,2,3) -u(10452) -u(10460) -f(10444,11,1,2) -u(10268) -u(10332) -u(10468) -u(30644) -f(10220,8,2) -u(10460) -u(10444) -u(10348,1) -u(10484) -u(8284) -f(10460,11,1) -u(10444) -u(10268) -u(3212) -f(1460,7,1,4) -u(1484,1) -n(9731,2) -u(9675) -f(9987,8,2,1) -f(1492,7,1) -f(5804,6,1,11) -u(5788,10) -f(7548,8,1,7) -u(29587) -u(9827) -f(9987,8,7,2) -f(6172,7,2,1) -u(29260) -u(10579) -u(9523) -f(29660,6,1,22) -u(3956,20) -u(3788,1) -u(3796) -u(8396) -u(29356) -u(29316) -u(9659) -f(3964,8,1,19) -u(3948) -u(3772,1) -u(11700) -u(4228) -u(3868) -f(4068,10,1,9) -f(4028,11,8,1) -f(4092,10,1,8) -u(30668) -f(29356,12,1,7) -u(29316) -u(9659) -f(8396,10,7,1) -u(29356) -u(29316) -u(9659) -f(3980,7,1) -u(3972) -u(3780) -u(4228) -u(11620) -u(4212) -u(30660) -u(30676) -u(2076) -u(3756) -u(4324) -f(5788,7,1) -u(7548) -u(29595) -u(9827) -f(4172,5,1,591) -f(4180,6,6,398) -f(1516,7,72,1) -n(2100) -n(4148,12) -f(2084,8,5,3) -n(2100,1) -n(3804) -n(4124,2) -f(4156,7,2,255) -f(4116,8,20,5) -n(4164,183) -u(76,1) -n(3620,2) -n(4036,13) -f(4044,10,1,12) -f(3996,11,1,8) -n(5836,1) -u(9723) -f(9731,11,1) -n(9875) -f(8332,9,1,2) -n(8708,165) -f(3884,10,1,150) -f(3548,11,4,2) -n(3604,11) -f(1052,12,1,4) -n(1108,6) -f(3852,11,6,18) -f(11772,12,1,17) -f(980,13,7,4) -n(1108,3) -n(5628) -f(4012,11,3,115) -f(2748,12,15,2) -n(4236,6) -n(4244,47) -f(6492,13,9,2) -n(11732,1) -n(11772,34) -f(1108,14,3,6) -n(5628,3) -n(11716,6) -f(1108,15,4,2) -f(11740,14,2,16) -f(5644,15,7,8) -f(9603,16,3,5) -f(5676,15,5,1) -f(11788,13,1) -u(1108) -f(5644,12,1,21) -f(5572,13,4,15) -f(27540,14,3,5) -n(27548,6) -n(27556,1) -f(9603,13,1) -n(29244) -f(5660,12,1,24) -f(1524,13,18,6) -f(9971,10,6,7) -n(29619) -f(5796,8,7,6) -n(5836,8) -f(9723,9,1,7) -f(8108,8,7,4) -n(8452,26) -f(8444,9,1,25) -f(6044,10,1,3) -u(8708) -u(6052) -f(4012,13,1,2) -f(5660,14,1,1) -f(7564,10,1,5) -u(9915,3) -u(9827) -f(29699,11,3,2) -f(7580,10,2,5) -u(7564,3) -u(9915) -u(9827) -f(9931,11,3,2) -f(9931,10,2,11) -f(9787,8,11,1) -n(29611,2) -f(4204,7,2,1) -n(4220) -n(5828,15) -f(29603,8,1,14) -f(7988,7,14,2) -n(8748) -n(8756,9) -n(9987,13) -n(11628,1) -u(29220) -f(29220,7,1,13) -f(10579,8,2,11) -u(9523) -f(7556,6,11,6) -u(29691) -f(7572,6,6,1) -u(29707) -f(29260,6,1,6) -f(10579,7,3,3) -u(9523) -f(29284,6,3,170) -f(9683,7,4,166) -f(10587,8,7,159) -f(9699,9,153,6) -f(29292,6,6,4) -f(9204,5,4,85) -u(9196,84) -u(8012,1) -u(8028) -u(3036) -f(8036,7,1) -u(8044) -f(9180,7,1,82) -u(9252) -u(9228,3) -u(1132) -u(2236) -u(2228) +f(2836,14,1,7) +f(644,12,7,1) +u(332) +u(2572) +u(2564) +f(1532,12,1) +f(2804,9,1) +u(2604) +u(876) +u(11380) +u(1564) +f(11348,7,1) +u(11340) +u(11508) +f(2780,6,1,2) +u(1588) +u(2212) +u(11387) +f(3107,10,1,1) +f(2812,5,1,52) +f(1940,6,1,19) +u(1620,1) +u(3219) +f(2404,7,1,18) +f(1932,8,5,13) +f(196,9,7,4) +f(1628,10,3,1) +f(11236,9,1,2) +f(3395,10,1,1) +u(2859) +f(2748,6,1,2) +n(2820,30) +u(1588,24) +f(2212,8,1,23) +f(11387,9,1,22) +u(3107) +f(3035,7,22,3) +u(2979) +f(11276,7,3) +u(3395) +f(3187,1,3,5) +u(2324) +f(9152,1,5,16236) +u(9160) +u(3440,325) +u(3433) +f(3426,5,2,1) +n(3450,320) +u(3466) +u(3474) +u(8962,316) +u(8962) +f(8969,10,1,314) +f(803,11,5,309) +f(68,12,3,1) +n(724,2) +n(884,1) +n(1788,299) +f(1732,13,1,294) +f(612,14,2,1) +n(844,4) +u(60,2) +n(68) +f(1388,14,2) +n(1716,1) +n(1724,5) +f(1252,15,3,2) +u(1124) +f(2204,14,2,138) +f(3035,15,3,12) +u(2979) +f(11387,15,12,115) +f(3075,16,2,2) +n(3083,1) +n(3107,107) +f(3003,17,106,1) +f(3171,16,1,3) +f(11403,15,3,1) +n(11419,7) +f(2516,14,7,4) +n(11236,10) +f(3395,15,1,9) +f(2859,16,1,8) +f(11372,14,8,127) +f(92,15,3,2) +n(996,6) +f(948,16,5,1) +f(1212,15,1,109) +f(1060,16,1,3) +n(1148,2) +n(1164,90) +u(868,17) +f(316,18,6,7) +n(324,4) +f(1164,17,4,73) +f(732,18,35,1) +n(1356,14) +f(2292,19,13,1) +f(1364,18,1,23) +f(316,19,13,1) +n(324) +n(508) +n(1572,6) +n(3604,1) +u(324) +f(1188,16,1) +n(1204,12) +f(1156,17,3,6) +n(1620,3) +u(3027) +f(1268,15,3,6) +f(836,16,1,5) +f(3219,15,5,1) +f(1780,13,1,4) +f(612,14,1,1) +n(11236,2) +u(3395) +u(2859) +f(2548,12,2,1) +n(10356,2) +u(28) +f(10394,10,2,1) +u(10530) +f(11276,8,1,4) +f(3458,5,4,2) +u(9290) +f(8104,3,2,15815) +u(8512) +u(8136) +u(6921) +u(6930,15802) +f(7265,8,4,15798,0,40,1) +f(6842,9,17,3) +u(6834,2) +u(8162) +u(8602) +u(8546) +u(8562,1) +u(11530) +f(8570,14,1) +f(6890,10,1) +u(8010) +u(8018) +f(6850,9,1,12) +u(6898) +u(8154) +u(8002) +u(8234) +u(11276) +f(3395,15,1,11) +f(2859,16,1,10) +f(6858,9,10,17) +u(6906) +u(8210) +f(11276,12,3,14) +u(3395) +u(2859) +f(6866,9,14,2) +u(6914) +u(8186) +f(7210,9,2) +n(7250,1531,1528,0,0) +u(7426,1522) +f(7433,11,5,1516) +f(3187,12,37,1) +u(2324) u(2220) -u(8660) -u(2300) -u(2308,2) -u(1044,1) -u(27724) -u(3388) -u(27772) -f(2276,17,1) -u(8732) -u(8684) -u(3596) -u(8692) -u(5292) -u(30692) -f(2316,16,1) +u(11475) +f(11027,12,1,1478) +f(3395,13,25,8) +f(2859,14,4,4) +f(3523,13,4,1445) +f(3003,14,1432,11) +n(3011,2) +f(7450,11,2,1) +f(11276,10,1,9) +u(3395) +u(2859) +f(7257,9,9,14150) +f(7194,10,10,4) +u(7202) +u(8346) +u(8402) +u(11522) +u(10498) +f(7234,10,4,14128) +f(6970,11,7,14121) +f(7074,12,11,10) +u(6665,2) +u(6506) +u(6010) +u(4862,2,0,2,0) +f(9210,17,1,1) +u(9194) +u(9202) +u(10433) +u(2715) +u(1396) +f(6673,13,1) +u(6514) +u(6018) +u(5978) +u(6074) +f(7345,13,1,4,0,1,0) +u(3283,2) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164,1) +u(1164) +u(1364) +u(1572) +f(1204,22,1) +u(1156) +f(3531,14,1) +u(2316) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) +f(7354,14,1) +u(7370) +u(7162) +u(6450) +u(6450) +u(6481) +u(7386) +u(7386) +u(7186) +u(6114) +u(3283) +u(1844) +u(764) +u(1492) +u(100) +u(1044) +u(1212) +u(1164) +u(1164) +f(7489,13,1,3) +u(7489) +u(3187,1) u(2324) -u(1916) +f(11051,15,1,2) +u(3291) +f(7081,12,2,14100) +f(6458,13,10,1) +n(6665,5375) +f(6042,14,7,1) +n(6506,5357) +u(6010) +f(5970,16,16,2) +n(5978,7) +f(6074,17,2,5) +f(6409,16,5,24) +u(7561) +u(7537,4) +u(7578) +u(7774,4,0,4,0) +u(7702,4,0,4,0) +u(7713) +u(7690,1) +u(7666) +u(7658) +u(7802) +u(7802) +u(7810) +u(7810) +f(7721,23,1,3) +u(7706) +u(8994) +u(9690) +u(9698) +u(3275) +u(1836) +u(1820,1) +u(292) +f(2644,30,1,2) +u(1492) +u(100) +u(940,1) +u(1756) +u(1220) +u(1164) +u(1164) +f(1044,33,1) +u(1212) +u(1164) +u(1164) +u(1364) +u(316) +f(7594,18,1,20) +u(6370) +u(6009) +u(7793) +u(6186) +u(6010) +u(6817) +u(4114) +u(4114) +u(4130,17) +u(4106,16) +u(4104) +u(4832) +u(4832) +u(4832) +u(4832,5) +u(8632) +u(8646,5,0,5,0) +u(8649,1) +u(8665) +u(8666) +u(8689) +u(8882) +u(8842) +u(8834) +u(9034) +u(9130) +f(8657,36,1) +u(8665) +u(8666) +u(8689) +u(8681) +u(9050) +u(9066) +f(8673,36,1,3) +u(8665) +u(8666) +u(8689,2) +u(8681,1) +u(9050) +u(9146) +f(8697,40,1) +u(8882) +u(8842) +u(10402) +u(10194) +u(10178) +u(10186) +f(8697,39,1) +u(8881) +u(8842) +u(8834) +u(8822,1,0,1,0) +u(8826) +u(8878,1,0,1,0) +u(11726,1,0,1,0) +u(11718,1,0,1,0) +u(11706) +u(11710,1,0,1,0) +u(11734,1,0,1,0) +u(8857) +u(8850) +u(9681) +u(3275) +u(1836) +u(2644) +u(1492) +u(108) +u(940) +u(1756) +u(1748) u(1764) -u(30684) -f(9244,9,1,77) -u(2284) -u(2228) -u(2172,2) -u(2268) -u(1900) -u(1788,1) -u(29372) -u(29364) -u(29348) -u(10027) -u(10003) -u(9619) -f(29380,15,1) -u(29364) -u(29348) -u(10027) -u(10003) -u(9643) -u(9619) -f(2220,12,1,74) -u(1884,73) -u(1140,1) -u(2204) -u(2180) -u(30740) -f(1876,14,1) -n(7660,7) -u(7668) -u(29196) -f(676,17,1,6) -u(684) -u(692,2) -u(660) -u(668) -u(29228) -u(9811) -u(9555) -u(9627) -u(9691) -f(700,19,2,4) -u(660) -u(668,3) -u(9531,1) -u(9547) -u(9651) -f(9539,22,1) -u(9571) -u(9611) -u(9579) -f(29228,22,1) -u(9811) -u(9555) -u(9627) -u(9691) -f(29747,21,1) -u(10011) -f(7676,14,1) -u(7684) -u(29380) -u(29364) -u(29348) -u(10027) -u(10003) -u(9923) -u(9891) -f(8092,14,1,31) -u(644,12) -u(956) -u(2060) -u(452,6) -u(1772) -f(2068,18,6) -f(30700,19,1,3) -f(6188,20,2,1) -f(30708,19,1,2) -u(6188) -f(2276,15,2,19) -f(892,16,1,5) -f(540,17,4,1) -u(876) -f(8076,16,1) -u(27772) -f(8732,16,1,12) -u(8684) -u(3588,11) -u(5300,3) -u(27772) -f(7820,21,1,1) -n(27836) -u(244) -f(11748,19,1,2) -f(2972,20,1,1) -f(11756,19,1) -n(11780,2) -f(11788,20,1,1) -u(1804) -f(27740,19,1,3) -u(27468,1) -n(27484) -n(27828) -f(3596,18,1) -u(2732) -u(7916) -f(9484,14,1,17) -f(148,15,15,1) -n(4300) -f(30652,14,1,15) -u(30716,10) -f(1892,16,7,3) -f(30724,15,3,2) -f(7652,16,1,1) -u(9987) -f(30732,15,1,3) -f(8764,13,3,1) -u(2196) -f(5532,12,1) -f(9260,9,1) -u(8740) -u(3612) -u(8700) -u(29372) -u(29364) -u(29348) -u(10027) -u(10003) -f(9284,9,1) -u(884) +u(2372) +u(2356) +f(8704,33,1,11) +u(8710,11,0,11,0) +u(4769) +u(4793,5) +u(4818) +u(4810,3) +u(8738) +u(8746) +u(8770) +u(8762) +u(9609,2) +u(9610) +u(9618) +u(9442,1) +u(3283) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +f(9618,46,1) +u(11754) +u(11745) +f(11762,43,1) +u(11738) +u(9602) +u(9602) +u(9626) +u(9682) +u(3275) +u(1836) +u(1820) u(868) -u(9268) -u(1716) -f(9212,6,1) -u(29579) -f(9460,5,1,75) -u(6508,26) -f(5836,7,1,3) -n(8340,22) -f(6500,8,9,13) -f(556,9,6,6) -f(5844,10,4,2) -f(29220,9,2,1) -u(10579) -u(9523) -f(9468,6,1,49) -u(5788,42) -f(7548,8,1,41) -f(29587,9,2,39) -f(9803,10,1,3) -n(9827,35) -f(5836,7,35,1) -n(9731,4) -u(9675) -f(29260,7,4,2) -u(10579) -f(9523,9,1,1) -f(9955,1,1,8) -u(7964) -f(7556,3,7,1) -u(29691) -f(11936,1,1,39) -u(29000,1) -u(29048) -u(3252) -u(3156) -u(3172) -u(2764) -f(29024,2,1,38) -u(28968,36) -u(28720) -u(28960) -u(28056,3) -u(20808,1) -u(25096) -u(25072) -u(25080) -u(25040) -u(25024) -u(23008) -u(20760) -u(20776) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(756) -f(28856,7,1,2) -u(28864) -u(24664,1) -u(24504) -u(24552) -u(24560) -u(24520) -u(24488) -u(23696) -u(28880) -u(23640) -u(23672) -u(23680) -u(22406,1,0,1,0) -u(22414,1,0,1,0) -u(26086,1,0,1,0) -u(26074) -u(21648) -u(21456) -u(28464) -u(3316) -u(3332) -u(5028) -u(5060) -u(3156) -u(3172) -u(1068) -u(4348) -f(28872,9,1) -u(28848) -u(28832) -u(28840) -u(22080) -u(22088) -u(21416) -u(21368) -u(21648) -u(21448) -u(21904) -u(21536) -u(22128) -u(22144) -u(22152) -u(21496) -u(21504) -u(21520) -u(21526,1,0,1,0) -u(21522) -u(21512) -u(21926,1,0,1,0) -u(21918,1,0,1,0) -u(22105) -u(5171) -u(5756) -u(5060) -u(5044) -u(4972) -u(8564) +u(324) +f(8713,38,1) +u(8722) +u(8730) +u(8754) +u(8762) +u(9609) +u(9610) +u(9618) +u(9442) +u(9554) +u(3267) +u(1828) +u(2644) +u(1492) u(100) -u(8140) -u(27748) -u(27764) -f(28712,6,1,33) -u(28064) -u(28456) -u(28456) -u(28136,23) -u(28120,21) -u(28104) -u(28104) -u(28112,6) -u(28224) -u(28208) -u(28200) -u(28184) -u(28184) -u(28184,4) -u(28192) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) +u(940) +u(1756) +u(1220) +u(1164) +u(868) +f(10338,38,1) +u(10346) +u(3283) +u(1844) u(764) -u(8484) -u(8492) -f(28352,22,1,3) -u(28360,1) -u(28408) -u(28400) -u(28344) -u(28328) -u(28320) -u(28336) -u(28616) -u(28608) -u(20584) -u(20576) -f(28472,23,1,2) -u(28472) -u(28488) -u(28488) -u(28480) -u(28552) -u(28552,1) -u(28544) -u(28536) -u(22464) -u(26088) -u(26096) -u(21648) -u(21752) -u(21448) -u(28528) -u(28504) -u(28512) -u(28520) -u(28680) -u(28640) -u(28656) -u(28648) -u(28672) -u(28664) -u(28624) -u(28632) -u(3316) -u(3332) -u(5028) -u(5076) -u(4940) -u(5044) -u(4924) -u(8540) -u(8524) -u(2044) -f(28568,29,1) -u(28560) -u(3316) -u(3324) -u(4996) -u(1684) -f(28192,20,1,2) -u(28352) -u(28280,1) -u(28280) -u(28288) -u(3316) -u(3332) -u(5028) -u(5060) -u(5044) -u(4964) -u(3220) -u(3148) -f(28360,22,1) -u(28368) -u(22432) -u(22448) -u(22416) -u(26176) -u(26144) -u(26160) -u(21982,1,0,1,0) -u(21990,1,0,1,0) -u(22066) -u(22064) -u(22072) -f(28248,14,1,8) -u(28232) -u(28232) -u(28232) -u(28264,1) -u(28592) -u(3316) -u(3332) -u(5028) -u(5076) -u(4940) -u(5044) -u(4964) -u(3220) -u(3148) -f(28440,18,1,7) -u(28416) -u(28312) -u(10696,3) -u(10688,2) -u(10848,1) -u(10960) -u(10960) -u(10920) -u(11432) -u(11424) -u(29088) -u(29096) -u(29056) -u(29126,1,0,1,0) -u(29144) -u(29128) -u(29136) -u(29152) -u(29160) -u(29112) -u(29104) -u(21072) -u(21280) -u(3308) -u(8804) -f(11432,23,1) -u(11424) -u(29088) -u(29096) -u(29072) -u(29064) -u(3252) -u(3156) -u(3172) -u(7900) -u(7876) -u(7908) -u(7884) -u(2708) -f(11408,22,1) -u(11408) -u(11400) -u(11416) -u(29080) -u(3252) -u(3156) -u(3172) -u(9436) -u(916) +u(1492) +u(100) u(940) -u(948) -f(28424,21,1,4) -u(10664) -u(10664) -u(10608,1) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25270,1,0,1,0) -u(25249) -u(25222,1,0,1,0) -u(29926,1,0,1,0) -u(29934,1,0,1,0) -u(11595) -u(7924) -u(1268) -u(1276) -u(1244) -u(1428) -u(1428) -u(3188) -f(11288,24,1) -u(11296) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25270,1,0,1,0) -u(25249) -u(25222,1,0,1,0) -u(22570) -u(22574,1,0,1,0) -u(29950,1,0,1,0) -u(29942,1,0,1,0) -u(21210) -u(20457) -u(20466) -u(23266) -u(24923) -f(20814,24,1,2,0,2,0) -u(25102,2,0,2,0) -u(25074) -u(25086,2,0,2,0) -u(25046,2,0,2,0) -u(25030,2,0,2,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) +u(1756) +u(1220) +u(1164) +u(1164) +f(4801,36,1,6) +u(4825) +u(3283,1) +u(1844) u(764) -u(8484) -u(8468) -f(25190,30,1,1,0,1,0) -u(25166,1,0,1,0) -u(24774,1,0,1,0) -u(24750,1,0,1,0) -u(24753) -u(3691) -u(11883) -u(11891) -f(28256,14,1,7) -u(23344,1) -u(23256) -u(23288) -u(23736) -u(23728) -u(28304) -u(28304) -u(20544) -u(20510,1,0,1,0) -u(20512) -u(30256) -u(30264) -u(30254,1,0,1,0) -u(30234) -u(22978) -u(22986) -u(30226) -u(30224) -u(22518,1,0,1,0) -u(22512) -u(22406,1,0,1,0) -u(22414,1,0,1,0) -u(22392) -u(26168) -u(26136) -u(26112) -u(25400) -u(25409) -u(27296) -u(3348) -u(508) -u(1700) -u(1708) -u(28) -f(28240,15,1,6) -u(28616) -u(22406,6,0,6,0) -u(22414,6,0,6,0) -u(26086,6,0,6,0) -u(26074) -u(21648) -u(21456) -u(28432) -u(28600) -u(28816) -u(28824) -u(20534,6,0,6,0) -u(20534,6,0,6,0) -u(20537) -u(3667,1) -u(3451) -u(11684) -u(3156) -u(3172) -u(9436) -u(916) +u(1492) +u(100) u(940) -u(924) -u(9412) -u(9420) -u(8636) -u(8628) -u(2036) -f(10656,30,1,3) -u(11128,1) -u(11352) -u(11376) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(25154) -u(25146) -u(25194) -u(24334,1,0,1,0) -u(24870,1,0,1,0) -u(24806,1,0,1,0) -u(24806,1,0,1,0) -u(24766,1,0,1,0) -u(27707) -u(7956) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -u(5588) -f(11368,31,1,2) -u(23128) -u(23136,1) -u(23120) -u(23112) -u(23112) -u(30552) -u(30544) -u(23096) -u(30480) -u(23080) -u(23104) -u(23088) -u(20480) -u(20480) -u(20488) -u(20496) -u(21184) -u(21296) -u(21288) -f(23144,33,1) -u(23304) -u(23296) -u(30536) -u(30528) -u(30512) -u(30496) -u(22982,1,0,1,0) -u(22986) -u(30488) -u(30520) -u(30504) -u(30472) -u(21168) -u(21168) -u(24464) -u(24464) -u(3316) -u(3332) -u(5028) -u(5012) -u(5020) -u(4964) -u(3220) -u(3148) -f(20814,30,1,2,0,2,0) -u(25102,2,0,2,0) -u(25074) -u(25086,2,0,2,0) -u(25046,2,0,2,0) -u(25030,2,0,2,0) -u(23014,2,0,2,0) -u(20766,2,0,1,1) -u(20777,1) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(804) -u(796) -u(836) -f(20784,38,1) -u(22590,1,0,1,0) -u(22578) -u(22598,1,0,1,0) -u(21210) -u(20457) -u(20466) -f(28152,11,1,2) -u(11560,1) -u(11512) -u(11520) -u(11504) -u(11528) -u(11536) -u(28160) -u(28160) -u(28168) -f(20814,12,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20760) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(780) -u(772) -f(28576,10,1,10) -u(28576) -u(28576) -u(28584) -u(28144) -u(28088,9) -u(28296) -u(20808,1) -u(25096) -u(25072) -u(25086,1,0,1,0) -u(25082) -u(25104) -u(21312) -u(20800) -u(20793) -u(3659) -u(3443) -u(8628) -u(8596) -u(8604) -u(8572) -u(8548) -u(3084) -u(1948) -u(1940) -u(1060) -u(1092) -f(28176,17,1,8) -u(3252,1) -u(3156) -u(3172) -u(3172) -u(9436) -u(916) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) +u(1572) +f(4810,38,1,3) +u(3283,1) +u(1844) +u(764) +u(1492) +u(100) u(940) -u(8308) -u(8268) -f(28496,18,1,7) -u(28496) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23008) -u(20760) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23008) -u(20760) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(8572) -u(8548) -u(3084) -f(28376,20,1,6) -u(28392) -u(28384) -u(20814,5,0,5,0) -u(25102,5,0,5,0) -u(25074) -u(25086,5,0,5,0) -u(25046,5,0,3,2) -u(25024,5,0,1,4) -u(23008) -u(20760) -u(20777) -u(3651,4) -u(3427) -u(27364) -u(8612) -u(4364) -u(724,2) -u(812) +u(1756) +u(1220) +u(1164) +u(1164) +f(8738,39,1,2) +u(8746) +u(8770) +u(8762) +u(9609) +u(9610) +u(9618) +u(9442) +u(3283) +u(1844) u(764) -u(8484) -f(8468,41,1,1) -f(740,37,1,2) -u(748,1) -u(1932) -u(2772) -u(2676) -u(29684) -u(9995) -f(3100,38,1) -u(5564) -u(9883) -f(20814,32,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25024) -u(23008) -u(20760) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25024) -u(25200) -u(24360) -u(24304) -f(22096,23,1) -u(22200) -u(22176) -u(22184) -u(22168) -u(21496) -u(21520) -u(21526,1,0,1,0) -u(21522) -u(21512) -u(21848) -u(21600) -u(21608) -u(21560) -u(21592) -u(21584) -u(21576) -u(21568) -u(25646,1,0,1,0) -f(28128,15,1) -u(28096) -u(28272) -u(28216) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(25184) -u(25166,1,0,1,0) -u(24774,1,0,1,0) -u(24750,1,0,1,0) -u(24753) -u(3691) -u(11883) -u(11891) -f(29016,3,1,2) -u(29032) -u(29040) -u(29008) -u(28984) -u(28976) -u(28688,1) -u(20808) -u(25096) -u(25072) -u(25080) -u(25040) -u(25024) -u(25184) -u(25160) -u(24768) -u(24744) -u(24753) -u(3691) -u(11883) -u(11891) -f(28800,9,1) -u(28744) -u(28792) -u(28728) -u(28736) -u(28784) -u(28768) -u(23592) -u(23920) -u(28752) -u(28760) -u(28776) -u(21160) -u(24432) -u(24424) -u(24432) -u(24440) -u(24456) -u(24448) -u(24384) -u(20472) -u(3316) -u(3324) -u(4996) -u(4988) -u(3132) -u(3140) -u(2108) -f(11952,1,1,42) -u(29528,5) -u(29392,1) -u(29400) -u(3316) -u(3332) -u(5028) -u(4900) -u(1684) -u(1676) -u(4908) -u(7700) -u(30636) -f(29528,3,1,4) -u(29528) -u(3252,1) -u(3156) -u(3172) -u(9436) -u(9428) -u(9443) -u(11603) -u(10571) -f(29408,5,1) -u(29416) -u(20600) -u(20750,1,0,1,0) -u(20617) -u(3467) -u(11812) -u(7692) -u(11820) -u(8276) -u(8636) -u(8628) -u(8596) -u(8604) -u(860) -u(4364) -u(724) -u(812) -u(804) -u(796) -u(732) -f(29464,5,1,2) -u(29440) -u(20550,1,0,1,0) -u(20510,1,0,1,0) -u(20512) -u(30262,1,0,1,0) -u(30264) -u(30254,1,0,1,0) -u(30234) -u(22978) -u(22986) -u(30226) -u(30230,1,0,1,0) -u(22518,1,0,1,0) -u(22502,1,0,1,0) -u(25014,1,0,1,0) -u(25000) -u(22472) -u(22504) -u(22480) -u(22488) -u(22536) -u(22528) -u(25566,1,0,1,0) -u(25574,1,0,1,0) -u(25521) -f(29448,7,1) -u(29456) -u(29432) -u(29480) -u(29472) -u(29472) -u(29424) -u(29424) -u(29496) -u(29488) -u(21152) -u(3316) -u(3332) -f(29544,2,1,37) -u(29504) -u(29384) -u(29520) -u(29520) -u(29512) -u(29536) -u(29552) -u(11944) -u(11944) -u(11928,2) -u(11984) -u(12104,1) -u(24688) -u(24680) -u(24680) -u(24512) -u(24504) -u(24520) -u(24488) -u(23208) -u(24614,1,0,1,0) -u(12080) -u(12088) -u(12096) -u(13640) -u(13624) -u(22080) -u(22088) -u(21416) -u(21368) -u(21648) -u(21424) -u(21448) -u(22272) -u(22264) -u(22256) -u(22240) -u(22224) -u(21880) -u(21888) -u(21832) -u(21840) -u(21664) -u(21672) -u(22222,1,0,1,0) -u(21926,1,0,1,0) -u(21918,1,0,1,0) -u(22105) -u(5171) -u(5756) -u(5004) -u(4972) -u(5748) -u(5740) -f(20814,14,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(22998,1,0,1,0) -u(29918,1,0,1,0) -u(21218) -u(21074) -u(21078,1,0,1,0) -u(23274) -u(20953) -u(3419) -u(4316) -f(11960,12,1) -u(11920) -u(24664) -u(24504) -u(24552) -u(24560) -u(24520) -u(24488) -u(23712) -u(23560) -u(24606,1,0,1,0) -u(24544) -u(11904) -u(11912) -u(28992) -u(28944) -u(3252) -u(3156) -u(3172) -u(9436) -u(916) +u(1492) +u(100) +u(1044) +u(1212) +u(1164) +u(1164) +f(1364,56,1,1) +f(8713,38,1,2) +u(8722) +u(8730) +u(8754) +u(8762) +u(9609) +u(9610) +u(9618) +u(9442) +u(3283) +u(1844) +u(764) +u(1492) +u(100) u(940) -u(8300) -f(12024,12,1,19) -u(11976,6) -u(17264,1) -u(17264) -u(17280) -u(19184) -u(19184) -u(17272) -u(17272) -u(17272) -u(17432) -u(17352) -u(3316) -u(3332) -u(5028) -u(5060) -u(3156) -u(3172) -u(3180) -u(5668) -u(108) -u(29564) -u(4292) -u(8100) -u(29579) -f(18328,14,1,4) -u(18336,3) -u(18312,1) -u(18256) -u(18816) -u(3252) -u(3156) -u(3172) -u(27436) -u(27428) -u(27420) -f(18344,16,1) -u(19416) -u(19424) -u(19432) -u(22982,1,0,1,0) -u(22986) -u(19408) -u(3316) -u(3332) -u(5028) -u(5060) -u(5044) -u(4924) -u(8540) -u(8524) -u(2044) -f(19336,16,1) -u(19456) -u(19536) -u(19560) -u(3252) -u(3156) -u(3172) -u(9436) -u(916) +u(1756) +u(1220) +u(1164) +u(1164) +u(1356,1) +n(1364) +f(9746,28,1) +u(9762) +u(9018) +f(6090,27,1,3) +u(6089) +u(6446,3,0,3,0) +u(7790,3,0,3,0) +u(7750,3,0,3,0) +u(7734,2,0,2,0) +u(7742,2,0,2,0) +u(7762,1) +u(7766,1,0,1,0) +u(5522) +u(5049) +u(4954) +u(5058) +f(7782,34,1,1,0,1,0) +f(7758,32,1,1,0,1,0) +u(6393) +u(6090) +u(6089) +u(6562) +u(5898) +u(6242) +u(6225) +f(6714,16,1,3) +u(7898) +f(7561,16,3,5285) +f(5922,17,10,1) +u(7362) +u(7362) +f(7530,17,1,373) +f(4969,18,6,3) +n(5033,290) +f(4946,19,4,202) +u(4954) +u(5242,1) +u(5313) +f(5249,21,1,201) +u(5338,1) +n(5370,6) +u(5362) +u(5346) +u(5170) +u(5154) +u(5634) +u(8258) +u(8266) +u(8282) +u(9258) +u(9282) +u(9218) +u(11538) +u(10506) +u(10682) +u(9498) +u(10482) +u(10489) +f(2731,40,1,5) +f(3611,41,1,4) +f(3251,42,2,2) +f(11811,43,1,1) +f(5458,22,1) +u(8122) +u(10137) +f(5498,22,1,192) +u(5474,145) +u(5481,144) +f(5226,25,1,139) +u(5698) +u(5674) +u(5610) +u(5626) +u(8322) +u(8274) +u(9450) +f(9506,33,1,138) +u(9386,1) +n(9562,2) +u(9434) +u(9434) +u(9410) +u(9578,1) +u(9578) +u(9458) +u(9417) +f(9586,38,1) +u(9586) +u(9466) +u(9425) +f(10442,34,1,15) +f(10449,35,1,14) +u(2723) +f(11292,37,1,13) +f(10979,38,1,12) +f(3259,39,2,10) +f(10514,34,10,117) +u(10514) +u(10521) +f(2739,37,1,116) +u(516) +f(10690,34,116,3) +u(3283,1) +u(1844) +u(764) +u(1492) +u(100) u(940) -u(908) -u(900) -u(8500) -f(19776,15,1) -u(19776) -u(19768) -u(19784) -u(19792) -u(19808) -u(19816) -u(3252) -u(3156) -u(3172) -u(3172) -u(3172) -u(1068) -u(3196) -u(2012) -u(27716) -u(1956) -u(4356) -f(20814,14,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(25190,1,0,1,0) -u(25166,1,0,1,0) -u(24774,1,0,1,0) -u(24814,1,0,1,0) -u(24838,1,0,1,0) -u(24822,1,0,1,0) -u(23334,1,0,1,0) -u(23766,1,0,1,0) -u(30763) -u(8156) -u(8212) -u(1108) -f(11992,13,1,4) -u(13608,1) -u(14112) -u(13752) -u(13872) -u(13944) -u(13944) -u(13896) -u(13856) -u(12984) -u(24640) -u(24510,1,0,1,0) -u(24576) -u(24576) -u(24526,1,0,1,0) -u(24488) -u(24496) -u(24672) -u(23216) -u(24568) -u(12976) -u(12992) -u(13016) -u(23336) -u(23312) -u(24726,1,0,1,0) -u(24618) -u(24634) -u(24472) -f(15496,14,1,3) -u(15504,2) -u(14840,1) -u(18944) -u(19776) -u(19776) -u(19808) -u(29024) -u(28968) -u(28720) -u(28960) -u(28704) -u(28696) -u(28808) -u(28808) -f(15064,16,1) -u(15064) -u(15064) -u(15424) -u(15456) -u(15328) -u(15288) -u(18880) -u(19776) -u(19776) -u(19808) -u(29024) -u(28968) -u(28720) -u(28960) -u(28912) -u(28896) -u(21064) -u(21040) -u(21048) -u(21016) -u(21024) -u(21032) -u(21056) -u(28888) -u(28904) -u(24656) -u(24510,1,0,1,0) -u(24536) -u(24526,1,0,1,0) -u(24488) -u(24496) -u(24696) -u(24696) -f(20814,15,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(804) -u(796) -u(5580) -u(5564) -u(9883) -f(12000,13,1,2) -u(13616) -u(13752,1) -u(13872) -u(13944) -u(13944) -u(13896) -u(14176) -u(14208) -u(14216) -u(14184) -u(14200) -u(23320) -u(20904) -u(14192) -u(14128) -u(14168) -u(14168) -u(13752) -u(13872) -u(13944) -u(13944) -u(13896) -u(13832) -u(13928) -u(13840) -u(13920) -u(14512) -u(14448) -u(13880) -u(13800) -u(14528) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(8572) -u(8548) -u(3540) -u(1252) -f(22080,15,1) -u(22088) -u(21416) -u(21368) -u(21654,1,0,1,0) -u(21696) -u(21904) -u(21536) -u(21552) -u(21550,1,0,1,0) -u(25566,1,0,1,0) -u(25622,1,0,1,0) -f(12016,13,1,3) -u(23584) -u(11968) -u(12008) -u(14560,2) -u(14560) -u(14576) -u(14584) -u(17336) -u(22406,2,0,2,0) -u(22414,2,0,2,0) -u(26086,2,0,2,0) -u(26074) -u(21654,2,0,2,0) -u(21462,2,0,2,0) -u(18000) -u(18000) -u(17720) -u(17584) -u(16128) -u(16136,1) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25082) -u(25086,1,0,1,0) -u(25082) -u(25110,1,0,1,0) -u(21314) -u(20802) -u(20793) -u(3659) -u(3443) -u(8628) -u(7532) -u(7524) -u(11795) -f(16144,33,1) -u(16776) -u(16792) -u(16808) -u(22470,1,0,1,0) -u(26094,1,0,1,0) -u(26098) -u(21650) -u(21736) -u(21448) -u(20984) -u(3316) -u(3332) -u(5028) -u(4900) -u(1684) -u(1676) -u(8636) -u(8628) -u(8596) -u(8604) -u(860) -u(4364) -u(724) -u(812) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) +f(10674,35,1,2) +f(5386,25,2) +u(10154) +f(10170,27,1,1) +u(9314) +u(9338) +f(5410,25,1,2) +u(7874) +u(7866) +u(7842) +u(8586) +f(5506,24,2,1) +u(5514) +f(10963,23,1,47) +f(5682,22,47,1) +u(5690) +u(4882) +u(4938) +u(5162) +f(5321,19,1,84) +f(4882,20,3,3) +u(4890,2) +u(4898,1) +u(4962) +f(5250,22,1) +f(4938,21,1) +u(5162) +u(8490) +u(8450) +u(8346) +u(8402) +u(11522) +f(5266,20,1) +n(5282,69) +u(5642) +u(8362) +u(8410) +u(9274) +u(9234) +u(9538) +u(9538) +u(9506) +f(10371,29,2,1) +n(10379,51) +n(10955,8) +n(10963,2) +n(10971,4) +n(11819,1) +f(5618,20,1,4) +f(9530,21,1,3) +u(9530) +f(3283,23,1,1) +u(1844) +f(9506,23,1) +f(8314,20,1,4) +u(8386) +u(9266) +u(9242) +u(9474) +u(9482) +u(10410) +u(10418) +u(10474) +f(10379,29,2,1) +n(10963) +f(5170,18,1,50) +u(5154,49) +u(5257) +f(5370,21,2,43) +u(5362) +f(5346,23,1,39) +u(5170,37) +u(5154,36) +u(5634) +u(8258) +u(8266,34) +u(8282) +u(9258) +u(9282) +u(9218) +u(11538) +u(10506) +u(10682) +u(9498,31) +u(10482) +u(10489) +f(2731,39,7,24) +f(820,40,8,1) +n(3611,13) +f(3251,41,8,5) +f(11811,42,4,1) +f(11260,40,1,2) +f(10698,36,2,3) +f(8338,28,3,2) +u(10082) +f(8498,25,2,1) +u(8458) +u(8466) +u(8330) +u(8394) +u(11514) +f(5394,24,1) +n(5466) +f(8498,23,1,3) +u(8458) +u(8466) +f(8330,26,2,1) +u(8394) +u(11514) +f(5458,21,1,4) +u(8122) +f(10058,23,1,1) +u(9298) +u(9330) +f(10137,23,1,2) +f(10114,24,1,1) +f(8498,19,1) +u(8458) +u(8466) +u(8330) +u(8394) +u(11514) +f(5534,18,1,5,0,5,0) +n(5586,12) +u(5569,9) +u(7914) +u(7914) +u(7921,8) +u(7922) +u(9170) +u(9178) +u(9177) +u(899) +u(787) +u(10364) +u(10364) +f(132,31,6,1) +u(68) +f(868,31,1) +u(324) +f(9362,22,1) +u(9369) +u(811) +u(44) +f(5761,19,1,3) +u(5170) +u(5154) +u(5257) +u(5370,2) +u(5362) +u(5346) +u(5170,1) +u(5154) +u(5634) +u(8258) +u(8266) +u(8282) +u(9258) +u(9282) +u(9218) +u(11538) +u(10506) +u(10682) +u(9498) +u(10482) +u(10489) +u(2731) +u(11260) +f(5394,26,1) +f(7858,23,1) +u(7850) +u(8578) +f(5722,18,1) +u(5289) +f(5778,18,1) +u(5033) +u(4946) +u(4954) +u(5249) +u(5498) +u(5474) +u(5481) +u(5226) +u(5698) +u(5674) +u(5610) +u(5626) +u(8322) +u(8274) +u(9450) +u(9506) +u(10514) +u(10514) +u(10521) +u(2739) +u(516) +f(11875,18,1,5) +f(7537,17,5,722) +f(6058,18,11,1) +n(7578,701) +f(4225,19,4,335) +f(4185,20,3,332) +f(4202,21,8,308) +u(4194,306) +f(4233,23,4,74) +f(3690,24,2,15) +u(4170) +u(4346,12) +u(4369) +f(9866,26,12,3) +u(9874) +f(3698,24,3,14) +u(4178) +u(4354) +u(4377) +f(4241,24,14,9) +f(3283,25,3,1) +u(1844) u(764) -u(8468) -f(14568,17,1) -u(17328) -u(20568) -u(20576) -u(20736) -u(20593) -u(3459) -u(11812) -u(3172) -u(3172) -u(3172) -u(3172) -u(3172) -u(9436) -u(916) +u(1492) +u(100) u(940) -u(924) -u(9412) -u(9404) -u(8284) -u(8500) -u(8492) -f(13000,13,1,3) -u(13008,1) -u(13968) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(8572) -u(8548) -u(4276) -u(3396) -f(14440,14,1) -u(14440) -u(14440) -u(19976) -u(19960) -u(19952) -u(19968) -u(22102,1,0,1,0) -u(22206,1,0,1,0) -u(23929) -u(21958,1,0,1,0) -u(21946) -u(21942,1,0,1,0) -f(20814,14,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(25190,1,0,1,0) -u(25166,1,0,1,0) -u(24774,1,0,1,0) -u(24750,1,0,1,0) -u(24753) -u(3691) -u(11883) -f(13560,13,1) -u(23768) -u(23992) -u(23984) -u(23976) -u(24206,1,0,1,0) -f(12048,12,1) -u(12064) -u(12056) -u(11280) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(25190,1,0,1,0) -u(25166,1,0,1,0) -u(24774,1,0,1,0) -u(24750,1,0,1,0) -u(24753) -u(3691) -u(11883) -u(11891) -f(12072,12,1,14) -u(10704) -u(10680) -u(10672,11) -u(10640) -u(10888) -u(10864) -u(10856) -u(10824,9) -u(10632,2) -u(10888) -u(10864) -u(10856) -u(10872) -u(10616,1) -u(11096) -u(11096) -u(11088) -u(11104) -u(11112) -u(11248) -u(11232) -u(11240) -u(22470,1,0,1,0) -u(26088) -u(26096) -u(21760) -u(21448) -u(11224) -u(21648) -u(21768) -u(21440) -u(20664) -u(20672) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25265) -u(25250) -u(24338) -u(24321) -u(24345) -f(10880,26,1) -u(10744) -u(3252) -u(3156) -u(3172) -u(9436) -u(916) +u(1756) +u(1220) +u(1164) +u(1164) +f(3674,25,1,3) +u(3626) +u(4874) +u(5602) +u(5594) +u(3283,2) +u(1844) +f(764,32,1,1) +u(1492) +u(100) u(940) +u(1756) +u(1220) +u(1164) +u(1164) +f(5538,30,1) +u(5546) +f(4994,25,1) +u(5210) +u(5018) +f(5130,25,1) +u(5138) +u(5666) +u(5666) +u(5218) +f(4258,24,1,25) +u(11146) +f(9754,26,24,1) +f(4265,24,1,5) +u(4250) +u(4986,1) +u(4922) +u(4938) +u(5098) +u(5106) +u(5666) +u(5666) +u(5218) +f(5754,26,1) +u(5009) +f(11146,26,1,2) +n(11154,1) +f(5010,24,1) +n(11154,3) +u(11137) +f(4385,23,3,224) +f(3638,24,3,6,0,6,0) +n(3646,4,0,4,0) +n(3670,3,0,3,0) +n(4450,1) +u(4698) +u(4778) +u(10146) +u(10170) +u(9314) +u(9338) +f(4546,24,1,149) +u(4426,82) +u(4434) +u(4442,60) +f(4554,28,1,59) +u(4578) +u(4561) +f(4570,31,15,1) +u(9818) +u(9778) +f(9754,31,1,43) +u(9762) +f(4530,33,5,25) +f(4626,34,2,23) +u(4666) +f(4490,36,7,16) +f(9890,37,3,13) +u(9018) +f(9770,33,13) +u(4538) +f(4634,35,1,12) +f(4514,36,4,8) +u(9042) +f(9137,38,5,3) +f(4610,27,3,22) +u(4649) +f(4594,29,16,3) +u(9010) +f(9002,31,2,1) +f(11123,29,1) +n(11131,2) +f(4458,25,2,44) +u(4466) +u(4474,38) +u(3283,1) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) +u(1540) +f(4586,28,1,34) +u(4578) +u(4561) +f(9754,31,7,27) +u(9762) +f(4530,33,6,14) +f(4626,34,2,4) +u(4666) +f(4490,36,1,3) +f(9890,37,1,2) +u(9018) +f(9018,34,2,8) +f(9770,33,8,7) +u(4538) +f(4634,35,1,6) +u(4514) +u(9042) +f(9137,38,5,1) +f(4722,28,1,3) +u(4729) +f(4738,30,1,2) +f(4610,27,2,6) +u(4649) +f(4594,29,4,2) +u(9010) +f(4657,25,2,23) +f(4602,26,2,3) +u(3283) +u(1844) +u(764) +u(1492) +u(100) +u(940,2) +u(1756) +u(1220) +u(1164) +u(1164) +f(1364,37,1,1) +u(1924) +f(1044,32,1) u(932) -f(10648,21,1,7) -u(10944) -u(10944) -u(10624) -u(10888) -u(10864) -u(10856) -u(10824,6) -u(10632) -u(10888) -u(10864) -u(10856) -u(10824,1) -u(10648) -u(10968) -u(10624) -u(10888) -u(10864) -u(10856) -u(10872) -u(10880) -u(10840) -u(10832) -u(10768) -u(10728) -u(10720) -u(10736) -u(10776) -u(10752) -u(10760) -u(11272) -u(11256) -u(11264) -u(11072) -u(11064) -u(11208) -u(11216) -u(11192) -u(11184) -u(10992) -u(10984) -u(11040) -u(11032) -u(11024) -u(11344) -u(20614,1,0,1,0) -u(20750,1,0,1,0) -u(20617) -u(3467) -u(11812) -u(7692) -u(8420) -u(8420) -f(10872,33,1,4) -u(10880) -u(10840) -u(10832) -u(10768) -u(10728) -u(10720) -u(10736) -u(10776) -u(10752) -u(10760,2) -u(11056) -u(11056,1) -u(11168) -u(11144) -u(11152) -u(3300) -u(3604) -u(1052) -f(11168,45,1) -u(11150,1,0,1,0) -u(11138) -u(27699) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) +f(4674,26,1,18) +u(3283,1) +u(1844) u(764) -u(8484) -u(8492) -f(11048,43,1,2) -u(11160) -u(11150,2,0,2,0) -u(10712,1) -u(12040) -u(12032) -u(12216) -u(12200) -u(23918,1,0,1,0) -u(12128) -u(12168) -u(12208) -u(24624) -u(23696) -u(23688) -u(12136) -u(12192) -u(24624) -u(23704) -u(12144) -u(12184) -u(23400) -u(12152) -u(12176) -u(23473) -u(23442) -u(23426) -u(12160) -u(22080) -u(22088) -u(21416) -u(21368) -u(21776) -u(21784) -u(21704) -u(21488) -u(21480) -u(21472) -u(25400) -u(25409) -u(22544) -u(22136) -u(22160) -u(22168) -u(21502,1,0,1,0) -u(21522) -u(21526,1,0,1,0) -u(21522) -u(21512) -u(21848) -u(21600) -u(21608) -u(21640) -u(25566,1,0,1,0) -f(12112,46,1) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +f(4618,27,1,2) +f(9018,28,1,1) +f(4642,27,1,5) +f(4594,28,2,3) +u(9010) +f(9002,30,2,1) +f(9706,27,1,10) +u(9730) +u(9714,9) +f(4594,30,5,4) +u(4594) +u(9010) +f(9722,29,4,1) +f(4705,24,1,23) +f(4394,25,10,9) +f(4786,26,1,8) +u(4746,7) +u(4746) +f(4754,29,3,3) +u(4418) +f(11268,31,1,2) +u(3395) +u(2859) +f(4762,29,2,1) +u(10098) +f(10162,27,1) +u(10154) +u(10170) +u(9314) +u(9338) +f(9834,25,1,3) +n(9850,1) +u(9842) +u(9826) +f(8779,24,1,12) +n(8986,2) +u(8930) +f(8922,26,1,1) +f(11146,24,1,21) +f(4994,23,21,2) +u(5018) +u(5650) +u(5186) +u(5058,1) +n(5090) +u(4866) +f(7618,23,1,2) +u(7626) +f(11202,22,2) +u(11194) +f(4978,21,2,5) +f(4922,22,4,1) +u(4938) +u(5162) +u(8490) +u(8450) +u(8346) +u(8402) +u(11522) +f(5010,21,1) +n(11194,10) +f(11178,22,5,5) +u(11170) +f(4281,19,5,357) +f(4185,20,10,347) +f(4202,21,7,325) +f(4194,22,2,323) +f(4289,23,4,47) +f(4154,24,3,23) +f(9802,25,19,4) +u(9810) +f(4297,24,4,15) +f(3682,25,3,3) +u(3626) +f(4874,27,1,2) +u(5602) +u(5594) +f(3283,30,1,1) +u(1844) u(764) -u(8468) -f(11360,33,1) -u(11392) -u(11392) -u(11384) -f(10872,28,1) -u(10880) -u(10840) -u(10832) -u(10768) -u(10728) -u(10720) -u(10736) -u(10776) -u(10752) -u(11048) -u(11160) -u(11150,1,0,1,0) -u(10712) -u(12040) -u(12032) -u(12216) -u(12200) -u(23918,1,0,1,0) -u(12128) -u(12168) -u(12208) -u(24624) -u(23696) -u(23688) -u(23632) -u(23648) -u(23656) -u(23664) -u(20534,1,0,1,0) -u(20534,1,0,1,0) -u(20537) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(804) -u(796) -u(5580) -u(1588) -u(5564) -u(9883) -f(10872,20,1,2) -u(10616,1) -u(11096) -u(11096) -u(11088) -u(11104) -u(11112) -u(11248) -u(11232) -u(11240) -u(22470,1,0,1,0) -u(22456) -u(26184) -u(26152) -u(26120) -u(26128) -u(21968) -u(21896) -u(22232) -u(22056) -u(22040) -u(22048) -u(20832) -u(3316) -u(3332) -u(5028) -u(5060) -u(3156) -u(3124) -u(3540) -u(29340) -f(10880,21,1) -u(10840) -u(10832) -u(10768) -u(10728) -u(11080) -u(11200) -u(11192) -u(11184) -u(11176) -u(11120) -u(11016) -u(11000) -u(11336) -u(11312) -u(11328) -u(11312) -u(11320) -u(11304) -u(11304) -f(10848,15,1,3) -u(10800) -u(10808) -u(10816) -u(10784) -u(10792) -u(10896) -u(10800,1) -u(10808) -u(10816) -u(10784) -u(10912) -u(10904) -u(10976) -u(11008) -u(22406,1,0,1,0) -u(22414,1,0,1,0) -u(22392) -u(26168) -u(26136) -u(21982,1,0,1,0) -u(21990,1,0,1,0) -u(22066) -u(22070,1,0,1,0) -u(22078,1,0,1,0) -u(21382,1,0,1,0) -u(21454,1,0,1,0) -u(21398,1,0,1,0) -u(21386) -u(21406,1,0,1,0) -u(21966,1,0,1,0) -u(21862,1,0,1,0) -u(21848) -u(21600) -u(21616) -u(22112) -u(21304) -u(20769) -u(3643) -u(3515) -u(27372) -u(8620) -u(3172) -u(7900) -u(7876) -u(7892) -u(1668) -f(10952,22,1,2) -u(10952) -u(10928) -u(10936) -u(10800) -u(10808) -u(10816) -u(10784) -u(10792,1) -u(10896) -u(10952) -u(10952) -u(10928) -u(10936) -u(10800) -u(10808) -u(10816) -u(10784) -u(10792) -u(10896) -u(10800) -u(10808) -u(10816) -u(10784) -u(10912) -u(10904) -u(10976) -u(11008) -u(22406,1,0,1,0) -u(22414,1,0,1,0) -u(26086,1,0,1,0) -u(26074) -u(21654,1,0,1,0) -u(21792) -u(21688) -u(12120) -u(22080) -u(22088) -u(21416) -u(21368) -u(21648) -u(21696) -u(21904) -u(21536) -u(21982,1,0,1,0) -u(21990,1,0,1,0) -u(22066) -u(22070,1,0,1,0) -u(22078,1,0,1,0) -u(21438,1,0,1,0) -f(10912,30,1) -u(10904) -u(10976) -u(11008) -u(22406,1,0,1,0) -u(22414,1,0,1,0) -u(22392) -u(26168) -u(26136) -u(21968) -u(21968) -u(21982,1,0,1,0) -u(21990,1,0,1,0) -u(22066) -u(22070,1,0,1,0) -u(22078,1,0,1,0) -u(22002) -u(21994) -u(21410) -u(21864) -u(21872) -u(22248) -u(23272) -u(23272) -f(20814,1,1,13,0,12,1) -u(25102,13,0,12,1) -u(25074,13,12,0,1) -u(25086,13,0,11,0) -u(25046,12,2,10,0) -u(25030,10,0,10,0) -u(23014,8,0,8,0) -u(20766,8,0,8,0) -u(20777) -u(3651,7) -u(3427) -u(27364) -u(76,1) -n(8612,6) -u(4364) -u(724) -u(812) -u(764,2) -u(8484) -u(8468,1) -n(8492) -f(804,17,1,3) -u(796) -u(788,1) -u(828) -f(836,19,1) -n(9875) -f(1636,17,1) -u(5564) -u(27524) -u(27532) -u(27492) -u(27500) -u(27516) -u(27564) -u(29204) -u(29308) -u(27579) -f(20814,10,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(25190,1,0,1,0) -u(25166,1,0,1,0) -u(24769) -u(24745) -u(26194) -f(25190,7,1,2,0,2,0) -u(25166,2,0,2,0) -u(23265,1) -n(24774,1,0,1,0) -u(24814,1,0,1,0) -u(24838,1,0,1,0) -u(24830,1,0,1,0) -u(24798,1,0,1,0) -u(20422,1,0,1,0) -u(20425) -u(3635) -u(11803) -u(27347) -f(25266,6,1,2,1,0,0) -u(25250,2,1,0,0) -u(24338) -u(24321) -u(24858,2,1,0,0) -u(24778,1) -n(24850) -f(25082,5,1) -u(25104) -u(21312) -u(20800) -u(20793) -u(3659) -u(3443) -u(8628) -u(8596) -u(8604) -u(860) -u(4364) -u(724) -u(812) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +f(4994,25,1,5) +u(4914,2) +u(4922) +f(4938,28,1,1) +u(5098) +u(5106) +u(5666) +u(5666) +f(5210,26,1,3) +u(5018) +f(3283,28,2,1) +u(1844) u(764) -u(8508) -u(8460) -f(21336,1,1,31486) -u(21344) -u(10075,1) -n(11488,537) -u(2779,2) -n(2819,1) -n(10075,2) -n(11480,532,0,198,279) -f(2819,5,25,1) -n(3276,28) -f(2092,6,5,2) -n(3356) -n(5620,14) -f(1604,7,8,1) -n(1612,3) -n(1676,2) -f(8004,6,2) -n(8316) -n(11724,1) -u(5588) -f(10075,5,1,5) -u(8204) -f(11478,5,5,2,0,1,0) -n(11497,452,54,18,0) -u(11554,451,434,17,0) -f(11546,7,1,2) -u(22290) -f(11570,7,2,447,432,15,0) -f(20970,8,1,443,429,14,0) -u(20970,443,429,14,0) -u(20977,437) -f(3523,11,3,434) -f(2740,12,7,4) -n(2756,2) -n(6180,415) -f(6100,13,2,411) -f(2100,14,13,2) -n(3564) -n(3580,7) -u(68,5) -n(24884,2) -f(4252,14,2,6) -n(6084,5) -n(6092,4) -n(7540,155) -f(9731,15,3,15) -f(9675,16,2,13) -f(29587,15,13,132) -f(9803,16,4,2) -n(9827,122) -f(9699,17,120,2) -f(9939,16,2,4) -f(29611,15,4,5) -f(8668,14,5,7) -n(29220,12) -f(10579,15,2,10) -f(9523,16,8,2) -f(29572,14,2,198) -f(92,15,8,9) -n(3812,14) -f(3844,16,13,1) -u(4076) -u(4084) -u(3764) -u(9875) -f(4052,15,1,165) -f(3908,16,3,6) -n(4004,136) -f(3548,17,2,1) -n(3604,26) -f(1052,18,4,11) -n(1108) -f(4004,17,11,107) -f(2764,18,56,1) -n(4236,10) -n(4244,40) -f(980,19,27,1) -n(5588,3) -n(5676) -n(6492,1) -n(11708,2) -n(11732) -n(11788,1) -f(4044,16,1,19) -f(3996,17,4,11) -n(5836,4) -u(9723) -f(4132,16,4,1) -f(4140,15,1,2) -u(3572) -f(6164,13,2) -f(2100,14,1,1) -f(24892,12,1,6) -f(44,13,1,5) -f(25274,10,5,6) -u(25474) -f(29260,8,6,3) -f(10579,9,1,2) -u(9523) -f(27587,7,2,1) -u(8180) -u(6156) -f(11867,6,1) -u(7932) -u(11660) -u(3604) -u(1108) -f(11546,5,1,6,4,1,0) -f(22290,6,4,2) -f(11867,5,2,13) -u(7932) -f(10100,7,1,7) -f(8324,8,4,3) -u(9172) -f(11660,7,3,5) -f(3604,8,3,2) -f(19152,3,2,30781) -u(19744) -u(19192) -u(2819,1) -n(17489,30780,0,959,801) -f(2779,7,5,1) -n(17498,30695,29947,92,27) -f(17913,8,11,30684,0,202,29) -f(17386,9,32,5) -f(17370,10,1,2) -u(19242,1) -u(19906) -u(19826) -f(19906,11,1) -u(19826) -f(17442,10,1,2) -u(19050) -u(19058) -f(17394,9,2,14) -u(17458) -u(19210) -u(19042) -u(19314) -u(29260) -f(10579,15,1,13) -u(9523) -f(17410,9,13,20) -u(17466) -u(19290) -f(29260,12,8,12) -u(10579) -u(9523) -f(17850,9,12,3) -n(17890,1777,1757,9,1) -f(17402,10,2,1) -u(17450) -u(19218) -f(18138,10,1,1758,1749,8,1) -f(18145,11,2,1754) -f(3556,12,55,3) -u(4188,2) -u(5788) -u(7548) -u(29595) -u(9827,1) -n(9939) -f(9731,13,1) -u(9675) -f(27619,12,1,1696) -f(10579,13,22,16) -f(9523,14,5,11) -f(11643,13,11,1658) -f(9699,14,1637,17) -n(9707,4) -f(18178,11,4,2) -f(29260,10,2,16) -f(10579,11,3,13) -f(9523,12,1,12) -f(17897,9,12,28753,0,126,33) -f(17834,10,14,5) -u(17842) -u(19514) -u(19602) -u(29850) -u(25434) -f(17874,10,5,28728,28695,5,28) -f(17578,11,8,28720,28563,59,31) -f(17544,12,13,3) -u(16081,2) -u(17753) -u(17770) -u(17802) -u(17666) -u(16578,1) -u(16569) -u(14986) -u(14962) -u(15129) -u(15258) -u(15250) -u(15234) -u(14986) -u(14962) -u(15730) -u(19354) -u(19362) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -u(26010) -u(22730) -u(25418) -u(25425) -u(9131) -u(11795) -u(10035) -u(9859) -f(18298,18,1) -u(18297) -u(27683) -u(29715) -f(17552,13,1) -u(17568) -u(17784) -f(17714,12,1,26,24,0,2) -u(17097,10,0,1,0) -u(16842) -u(16258,10,9,0,0) -u(14630,10,0,6,4) -f(16984,17,2,1) -u(16984) -u(16984) -f(17198,17,1,2,0,1,1) -u(17194,2,1,1,0) -f(19070,19,1,1,0,1,0) -u(19078,1,0,1,0) -f(17294,17,1,5,0,4,1) -u(17382,5,0,4,1) -u(17378,5,4,0,1) -u(16110,5,0,3,2) -f(19226,21,1,4,3,1,0) -u(19234) -u(19230,4,0,4,0) -u(17506,3) -u(17926,3,0,3,0) -u(18153) -u(27627) -u(11651) -u(9659) -f(19202,24,3,1) -u(19266) -u(19918,1,0,1,0) -u(19838,1,0,1,0) -u(19950,1,0,1,0) -u(29906) -u(25449) -f(17105,13,1) -u(16850) -u(16266) -u(16937) -f(17326,13,1,2,0,2,0) -u(17233,1) -n(20259) -f(18014,13,1,10,0,5,5) -u(11667,1) -u(7948) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(3604) -u(1052) -f(18024,14,1,6,0,2,4) -u(17742,4,0,2,2) -u(17590,4,0,2,2) -u(16128,2) -u(16136,1) -u(16952) -u(16816) -f(16144,18,1) -u(16800) -u(16784) -f(18282,17,1,2) -u(18206,1,0,1,0) -u(22554) -u(22558,1,0,1,0) -u(11667) -f(18281,18,1) -u(27667) -u(11843) -f(18048,15,1,2) -u(18056,1) -u(18064) -f(18088,16,1) -u(18304) -u(18304) -u(27691) -u(9963) -f(18098,14,1) -u(18226) -u(18265) -f(18206,14,1,1,0,1,0) -u(18209) -f(20814,14,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(25094,1,0,1,0) -u(25038,1,0,1,0) -u(25062,1,0,1,0) -u(25070,1,0,1,0) -u(21098) -u(21138) -f(18238,13,1,3,0,3,0) -u(18233) -u(27651) -u(10083) -f(17729,12,3,28678,0,112,29) -f(16754,13,16,1) -n(17097,6123,0,25,22) -f(16218,14,8,2) -n(16842,6096,6074,1,21) -u(16258,6096,6049,22,15) -f(16226,16,23,12) -f(16330,17,2,10) -u(16218) -f(16696,16,10,61,0,26,35) -f(18385,17,1,60,0,1,4) -u(14986,1) -u(14962) -u(15129) -u(15402) -u(19170) -u(24121) -u(24090) -f(18361,18,1,12,0,1,0) -u(18402,12,11,1,0) -u(18752,12,0,2,10) -f(18600,21,2,9,0,1,8) -u(18584,2) -u(18582,2,0,2,0) -u(14742,2,0,2,0) -u(15518,2,0,2,0) -u(19738) -u(20926,2,0,2,0) -f(20886,28,1,1,0,1,0) -f(18622,22,1,6,0,3,3) -f(18550,23,1,1,0,1,0) -n(18582,1,0,1,0) -u(14817) -u(15778) -u(19494,1,0,1,0) -u(19590,1,0,1,0) -u(29834) -u(25377) -u(25394) -u(25362) -u(25354) -u(20558,1,0,1,0) -u(20729) -u(3499) -u(8716) -f(18624,23,1) -n(23176) -u(18512) -u(2779) -f(30763,23,1) -u(8156) -u(8212) -u(8132) -u(30628) -u(30612) -u(6220) -f(18728,22,1) -u(18800) -f(29675,21,1) -f(18418,18,1,47,43,0,4) -u(16650,47,43,0,4) -u(16257,47,0,0,4) -u(18790,47,0,32,15) -u(16442,47,32,11,4) -u(16257,47,0,0,4) -u(17350,47,0,32,15) -u(13274,47,32,0,15) -u(13278,47,0,29,18) -f(13294,27,1,34,0,23,11) -u(13224,1) -u(13248) -u(13310,1,0,1,0) -u(13296) -f(13256,28,1,33) -u(13256) -u(14520) -u(14520) -u(14520) -u(14520,9) -u(19984) -u(19992) -u(20000,2) -u(20032,1) -u(20008) -u(20438,1,0,1,0) -u(20318,1,0,1,0) -u(25282) -u(24226) -u(24218) -u(24209) -u(24194) -f(20046,37,1,1,0,1,0) -u(20046,1,0,1,0) -u(20070,1,0,1,0) -u(20078,1,0,1,0) -u(20441) -u(20314) -u(20306) -u(20288) -u(20296) -u(20384) -u(30120) -u(30112) -u(30104) -u(30104) -u(30096) -u(22681) -u(22818) -u(10051) -u(6244) -u(8804) -u(5460) -u(164) -u(3748) -u(6132) -u(4060) -u(4044) -u(3988) -u(180) -u(29276) -u(27459) -u(10043) -u(30571) -u(9771) -f(20022,36,1,4,0,2,2) -u(20032,1) -u(20008) -f(20041,37,1,3,0,1,0) -u(20042,3,2,1,0) -u(20065,1) -u(20057) -u(20314) -u(25282) -u(24226) -u(24218) -u(24210) -u(24186) -f(20073,39,1) -u(20441) -u(20314) -u(20306) -u(20288) -u(20296) -u(20384) -u(30120) -u(30112) -u(30104) -u(30104) -u(30128) -u(20326,1,0,1,0) -u(24923) -f(20186,39,1) -f(20024,36,1) -u(20032) -u(3316) -u(3332) -u(5028) -u(5060) -u(3156) -u(3172) -u(3180) -u(5668) -u(108) -u(29564) -u(4292) -u(8100) -u(29579) -f(20048,36,1,2) -u(20046,2,0,2,0) -u(20046,2,0,2,0) -u(20070,1,0,1,0) -u(20062,1,0,1,0) -u(21129) -u(21146) -f(21210,39,1) -u(20457) -u(20466) -u(23266) -u(10059) -u(6252) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236) -f(20080,33,1,24) -u(20080) -f(14358,35,1,23,0,17,6) -u(14392,1) -u(14488) -u(20126,1,0,1,0) -u(20130) -u(20142,1,0,1,0) -u(20182,1,0,1,0) -u(20194) -u(22886,1,0,1,0) -u(22886,1,0,1,0) -u(22894,1,0,1,0) -u(22894,1,0,1,0) -u(30153) -u(30145) -f(14406,36,1,2,0,2,0) -u(14502,2,0,2,0) -u(20121,1) -u(20130) -u(20138) -u(20178) -u(20194) -u(30162) -u(10115) -f(24714,38,1) -u(24721) -u(10067) -u(6260) -u(3092) -u(5460) -u(164) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(14414,36,1,5,0,4,1) -u(14478,5,0,4,1) -u(14457,1) -u(20144) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(22998,1,0,1,0) -u(29918,1,0,1,0) -u(21218) -u(21074) -u(21073) -u(23274) -u(10059) -u(6252) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(20126,38,1,4,0,3,0) -u(20112,1) -n(20130,3) -u(20138,3,1,0,0) -u(20178) -u(20194) -u(22881) -u(22882) -u(22890) -u(22682) -u(10067) -u(6260) -u(3092) -u(5460) -u(156,2) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(4244,57,1,1) -f(6060,51,1) -f(14422,36,1,2,0,1,1) -u(14470,2,0,1,1) -u(14552,1) -u(13672) -u(14536) -u(14264) -u(14264) -f(20121,38,1) -u(20130) -u(20138) -u(20178) -u(20194) -u(22881) -u(22882) -u(22890) -u(22682) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(14438,36,1,9,0,8,1) -u(14486,9,0,8,1) -u(11667,1) -u(7948) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236) -f(14457,38,1,2) -u(20145) -u(20154,1) -u(20226) -u(20194) -u(30162) -u(30138) -u(22874) -u(22874) -u(22898) -u(23266) -u(10059) -u(6252) -u(8804) -u(5460) -u(156) -u(3900) -u(4052) -u(4004) -u(4004) -u(4236) -f(20210,40,1) -u(20169) -u(20202) -u(20186) -u(21146) -f(20121,38,1,3) -u(20130) -u(20138) -u(20178,2) -u(20194) -u(30162) -u(30138) -u(22874) -u(10051,1) -u(6244) -u(8804) -u(5460) -u(6068) -u(9883) -f(22874,46,1) -u(22898) -u(23266) -u(10059) -u(6252) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(21106,41,1) -f(20238,38,1,1,0,1,0) -u(20238,1,0,1,0) -u(20246,1,0,1,0) -u(20106) -u(20102,1,0,1,0) -u(23353) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4020) -u(3204) -f(22086,38,1,1,0,1,0) -u(22094,1,0,1,0) -u(21422,1,0,1,0) -u(21374,1,0,1,0) -u(21650) -u(21702,1,0,1,0) -u(21910,1,0,1,0) -u(21542,1,0,1,0) -u(21558,1,0,1,0) -u(21550,1,0,1,0) -u(21534,1,0,1,0) -u(22286,1,0,1,0) -u(29770) -u(20526,1,0,1,0) -u(21202) -u(20449) -u(10051) -u(6244) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4044) -u(3988) -u(180) -u(29276) -u(27459) -u(10043) -u(30571) -f(24734,38,1,1,0,1,0) -u(24710,1,0,1,0) -u(11667) -u(7948) -u(3092) -u(5460) -u(5468) -u(2212) -f(21658,36,1) -u(21458) -u(21466) -u(25313) -u(9107) -u(3396) -f(24630,36,1,1,0,1,0) -u(24742,1,0,1,0) -u(14318,1,0,1,0) -u(14370) -u(23406,1,0,1,0) -u(14326,1,0,1,0) -u(14362) -u(14338) -u(23238,1,0,1,0) -u(27851) -f(24654,36,1,2,0,1,1) -u(24510,2,0,2,0) -u(24590,2,0,1,1) -u(24526,2,0,2,0) -u(24494,2,0,2,0) -u(23398,2,0,1,1) -u(24614,2,0,1,0) -u(14334,2,0,1,1) -u(14346,2,1,0,1) -u(14424) -u(14504) -u(20088,1) -u(20088) -u(20160) -f(20814,47,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(820) -u(2132) -u(2140) -u(2116) -u(2124) -f(16350,27,1,11,0,9,2) -u(16345,11,0,0,1) -u(16736,11,0,4,7) -u(18696,11,0,4,7) -u(18648,8,0,3,5) -u(18678,8,0,5,3) -u(2779,1) -n(14848) -u(14864) -u(14864) -u(15072) -u(15440) -u(15440) -u(15344) -u(15320) -u(15304) -u(15368) -u(15376) -u(15352) -u(15360) -u(19168) -u(24016) -u(22296) -u(3284) -u(3292) -u(1268) -u(1284) -u(1260) -u(5604) -u(5692) -u(5716) -u(5724) -u(492) -u(5700) -u(29684) -u(9987) -f(18656,33,1,2) -u(18664) -f(14822,35,1,1,0,1,0) -u(14818) -u(14817) -u(15209) -u(15768) -u(2779) -f(18686,33,1,2,0,1,1) -u(18496,1) -u(18496) -f(18566,34,1,1,0,1,0) -f(18738,33,1) -u(18742,1,0,1,0) -u(14814,1,0,1,0) -u(15097) -f(18766,33,1,1,0,1,0) -u(18766,1,0,1,0) -u(18570) -f(18704,31,1,3,0,1,2) -f(16694,32,1,1,0,1,0) -u(16345) -f(18712,32,1) -u(16688) -u(16350,1,0,1,0) -u(16345) -u(16922) -u(16122) -f(18792,27,1) -u(18542,1,0,1,0) -u(18510,1,0,1,0) -u(29675) -u(8244) -u(8220) -u(8236) -u(8116) -u(30628) -f(17178,16,1,7) -f(18914,17,1,6) -f(15601,18,5,1) -f(18385,16,1,5968,0,45,17) -f(14986,17,34,3) -u(19714) -u(19658) -u(19666) -u(19482,1) -u(19578) -u(29818) -f(19514,21,1,2) -u(19602) -u(29850) -f(18354,17,2,2128,2115,12,1) -f(14753,18,7,2) -n(14818,1960,1949,10,1) -f(14722,19,2,1443,1436,5,0) -u(14730,1443,1438,1,0) -f(14834,21,4,1) -n(14862,2,0,1,0) -f(20938,22,1,1) -f(15113,21,1,7,0,1,0) -f(11595,22,6,1) -u(7924) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1180) +u(1564) +u(452) +f(5130,25,1,4) +u(5138) +u(5666) +u(5666) +u(5218) +f(4978,24,4,3) +u(4922) +u(4938) +u(5098) +u(5106) +u(5162) +u(8490) +u(8450) +u(8346) +u(8402) +u(11522) +f(5042,24,3,1) +u(5658) +u(5193) +f(5730,24,1) +u(4977) +u(4922) +u(4938) +u(5097) +u(5106) +u(5162) +u(8490) +u(8450) +u(8346) +u(8402) +u(11522) +f(11202,24,1) +u(11194) +f(4385,23,1,267) +f(3267,24,8,1) +u(1828) +u(772) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +f(3638,24,1,5,0,5,0) +n(3646,1,0,1,0) +n(3670,7,0,7,0) +n(4450,9) +u(4698) +u(4690,1) +n(4778,5) +u(10146) +f(9834,26,5,3) +f(4546,24,3,165) +u(4426,75) +u(4434) +u(4442,48) +f(3283,28,1,1) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) +f(4554,28,1,46) +u(4578) +f(4561,30,1,45) +f(4570,31,6,2) +n(9754,37) +u(9762) +f(4530,33,2,19,13,0,0) +u(4626) +u(4666) +f(4490,36,5,14) +f(9890,37,6,8) +u(9018) +f(9770,33,8,16) +f(4538,34,1,15) +u(4634) +f(4514,36,6,9) +f(9042,37,1,8) +f(9137,38,6,2) +f(4610,27,2,27) +u(4649) +f(3267,29,18,2) +u(1828) +u(772) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) +u(3556,1) +n(3604) +u(324) +f(4594,29,1,5) +u(9010) +f(9002,31,4,1) +f(11131,29,1,2) +f(4458,25,2,55) +u(4466) +u(4474,52) +f(3283,28,2,1) +u(1844) +u(764) +u(1492) +u(1500) +u(2556) +f(4586,28,1,46) +u(4578,45) +u(4561) +f(9754,31,3,42) +u(9762) +f(4530,33,9,26,13,0,0) +f(4626,34,3,17) +u(4666) +f(4490,36,4,13) +f(4506,37,5,2) +n(9890,6) +u(9018) +f(9018,34,6) +f(9770,33,6,7) +u(4538) +u(4634) +f(4514,36,3,4) +f(9042,37,3,1) +f(9210,29,1) +u(9226) +u(9202) +u(3283) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(868) +u(324) +f(4722,28,1,3) +u(4729) +f(4738,30,1,2) +f(4610,27,2,3) +u(4649) +f(3267,29,2,1) +u(1828) +u(772) +u(1492) +u(100) +u(940) +u(1756) +u(1748) +f(4657,25,1,35) +f(4602,26,12,4) +f(3283,27,1,3) +u(1844) +u(764) +u(1492) +u(100,2) +u(940) +u(1756) +u(1268,1) +n(2364) +f(1500,31,1) +u(684) +f(4674,26,1,19) +u(3283,1) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) +f(4618,27,1,7) +f(4498,28,2,1) +n(9018,4) +f(4642,27,4) +u(4594) +u(9010) +f(9002,30,2,2) +f(9706,27,2,7) +u(9730) +u(9714,6) +f(4594,30,3,3) +u(4594) +u(9010) +f(9722,29,3,1) +u(4594) +u(4594) +u(9010) +f(4705,24,1,26) +f(4394,25,5,19) +f(4786,26,4,15) +u(4746,12) +u(4746) +f(4754,29,6,5) +f(4418,30,3,2) +u(11268) +u(3395) +f(2859,33,1,1) +f(4762,29,1) +u(10098) +f(10162,27,1,3) +u(10154) +f(4690,25,3,1) +u(9858) +f(9834,25,1) +f(8779,24,1,13) +n(8914,4) +n(8986,5) +u(8930) +f(3267,26,1,2) +u(1828) +u(2644) +u(1492) +u(100) +u(940,1) +u(1756) u(1268) -u(1244) -u(1428) -u(1428) -u(1436) -u(29579) -f(15121,21,1,1424,0,6,4) -f(15226,22,4,1) -n(15258,78) -u(15250) -f(15234,24,1,72) -u(14986,70) -u(14962,69) -u(15730) -f(19354,28,1,68) -u(19362,61) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -u(22754,1) -n(26010,60) -u(22730,54) -u(25418) -u(25425) -f(9131,40,10,43) -f(11795,41,14,24) -f(10035,42,12,12) -f(30595,43,10,2) -f(29236,41,2,5) -f(9955,40,5,1) -u(7964) -u(9979) -f(26026,37,1,6) -f(19498,29,6) -u(24050) -f(22642,29,6,1) -f(19714,26,1) -u(19658) -u(19666) -u(19482) -u(19578) -u(29818) -f(15282,25,1,2) -f(24162,26,1,1) -f(19714,24,1,5) -u(19658) -u(19666) -u(19482,3) -u(19578) -u(29818) -f(19514,27,3,2) -u(19602) -u(29850) -f(15474,22,2,1337,1330,5,2) -f(15441,23,1,1081,0,3,0) -f(15450,24,4,1076,1073,3,0) -f(10067,25,3,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,1) -u(4004) -u(3604) -u(1108) -f(8068,32,1) -f(15058,25,1,1063,1061,2,0) -u(15866,1063,1061,2,0) -f(10067,27,1,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(4748,1) -n(6132) -u(4060) -u(4004) -u(4004) -f(15826,27,1,1060,1058,2,0) -u(15706,1060,1058,2,0) -u(15722,1059,1057,2,0) -u(19474,1059,1057,2,0) -u(19370) -u(19346,1) -u(19346) -u(19530) -u(24050) -f(22690,32,1,1058) -f(10067,33,2,4) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,3) -u(4004,2) -u(4004) -u(2764,1) -n(4244) -u(1108) -f(4044,41,1) -u(5836) -u(9723) -f(6116,40,1) -u(2100) -f(22738,33,1,1052,1050,2,0) -u(10067,1) -u(6260) +u(836) +f(1044,31,1) +u(1212) +u(1164) +u(1164) +u(1364) +f(8922,26,1,2) +f(11146,24,2,23) +f(4994,23,23,2) +u(5018) +u(3283) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +f(1364,35,1,1) +u(1540) +f(5578,23,1) +u(5737) +u(4994) +u(4914) +u(8306) +f(7618,23,1,2) +u(7626) +f(4978,21,2,1) +n(5010) +n(11194,13) +f(11178,22,4,9) +f(11170,23,2,7) +f(11162,24,3,4) +f(11875,19,4,5) +f(7593,18,5,9) +u(7594) +u(6010) +u(4081) +u(6186) +u(6010) +u(3913) +u(4033) +u(3889) +u(6010) +u(3737) +u(3778) +u(9994) +u(9986) +u(9978) +u(3722) +u(3818) +u(6010) +u(3737) +u(3778) +u(9994) +u(9986) +u(9978) +u(3722) +u(3818) +u(6010) +u(3737) +u(3778) +u(9994) +u(9986) +u(9978) +u(3722) +u(3818) +u(6010) +u(3737) +u(3778) +u(9994) +u(9986) +u(9978) +u(3722) +u(3818) +u(6010) +u(3705) +u(4026) +u(3866,8) +u(6138) +u(6690) +u(6034) +u(6538) +u(5858) +u(6962) +u(5865) +u(7106) +u(7122) +u(7146) +u(7026) +u(7514) +u(7513) +u(11067) +u(11491) +f(3874,62,8,1) +u(6162) +u(6722) +u(6090) +u(6089) +u(7681) +u(4273) +u(4274) +u(4218) +u(4385) +u(11146) +f(7594,17,1,4151) +f(6010,18,1,4150) +f(3849,19,21,634) +f(4010,20,3,631) +f(3945,21,2,629) +f(3930,22,1,24) +f(4002,23,1,8) +f(8898,24,4,4) +u(8906) +f(9378,26,3,1) +f(9210,23,1,15) +u(9250) +u(9186) +u(9122) +u(9058,3) +n(9098) +u(10466) +f(3267,29,1,2) +u(1828) +u(2644) +u(1492) +u(100,1) +u(940) +u(1756) +u(884) +f(1500,33,1) u(620) -u(2252) -f(22602,34,1) -n(22610) -u(22618) -u(24058) -f(22826,34,1,4) -u(22674) -u(22674) -u(22634) -u(22842,3) -u(22842) -u(22697) -u(22650) -f(22850,38,3,1) -u(22850) -u(22705) -f(25322,34,1,21) -u(25329) -f(9115,36,1,20) -f(29276,37,1,19) -f(27459,38,1,18) -f(10043,39,5,13) -f(25458,34,13,1022,1020,2,0) -u(25458,1022,1020,2,0) -u(25465) -f(9139,37,1,1021) -f(1812,38,8,1013) -f(26018,34,1013,2) -u(26002) -f(19450,29,2,1) -f(15218,25,1,5) -f(10067,26,1,3) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6124,1) -n(6132,2) -u(4060) -u(4004) -u(3604,1) -u(1108) -f(4004,35,1) -u(4244) -u(5588) -f(15298,26,1) -f(15274,25,1,3) -u(24162,3,2,1,0) -f(11595,27,1,1) -u(7924) -u(1268) -u(1244) -u(1428) -u(1428) -u(1436) -u(29579) -f(24178,27,1) -u(22314) -u(22338) -f(19162,24,1) -f(27331,23,1) -n(27339,252) -n(30603,2) -f(15834,22,2,3,1,1,1) -u(15858,3,1,1,1) -u(14658,1) -u(14714) -u(14970) -f(19494,24,1,2,0,1,1) -f(19590,25,1,1,0,1,0) -u(29834) -u(25382,1,0,1,0) -u(25377) -u(27339) -f(20814,22,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(780) +u(660) +u(540) +f(9106,27,1,3) +f(3283,28,2,1) +u(1844) +u(764) +u(1492) +u(1500) +u(620) +f(9114,27,1,6) +u(9026) +f(10379,29,1,5) +f(6146,22,5) +f(6282,23,1,4) +f(6162,22,4,599) +u(6722) +u(6090) +u(6089) +f(3833,26,11,577) +f(3774,27,12,1,0,1,0) +u(3766,1,0,1,0) +u(3746) +u(9938) +u(9953) +u(9946) +u(3718,1,0,1,0) +u(3810) +u(3798,1,0,1,0) +u(3758,1,0,1,0) +u(3806,1,0,1,0) +u(6089) +u(6089) +u(3833) +u(3774,1,0,1,0) +u(3766,1,0,1,0) +u(3746) +u(9938) +u(9953) +u(9946) +u(3718,1,0,1,0) +u(3810) +u(3798,1,0,1,0) +u(3758,1,0,1,0) +u(3806,1,0,1,0) +u(6089) +u(6089) +u(3833) +u(3774,1,0,1,0) +u(3766,1,0,1,0) +u(3746) +u(9210) +u(9194) +u(9202) +u(10433) +u(3187) +u(2324) +u(2220) +u(11475) +f(3786,27,1,564) +u(9994) +u(9986) +f(9930,30,8,1) +u(3283) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(868) +u(316) +f(9978,30,1,555) +f(3730,31,1,554) +u(3826) +u(6090,553) +u(6089) +f(3833,35,3,550) +u(3786) +f(9994,37,1,549) +u(9986) +u(9978) +u(3730) +u(3826) +u(6090) +u(6089) +f(3833,44,4,542) +u(3786) +u(9994) +u(9986) +f(9978,48,1,541) +u(3730) +u(3826) +u(6090) +u(6089) +f(3833,53,1,538) +f(3786,54,1,537) +f(9994,55,1,536) +u(9986) +f(9978,57,1,535) +u(3730) +u(3826) +f(6090,60,1,534) +f(6089,61,1,533) +f(4097,62,3,527) +f(4090,63,17,8) +n(6170,502) +u(6090) +f(6089,65,1,501) +f(6082,66,5,1) +u(6050) +f(7681,66,1,495) +f(4210,67,4,146) +u(4210) +f(3657,69,1,3) +n(5073,138) +f(5066,70,1,137) +u(5066) +u(5234) +u(5082,27) +u(7946) +u(7954) +f(7906,76,2,24) +u(7921) +u(9170) +u(9178) +u(9177) +u(899) +u(787) +f(10364,83,1,23) +u(10364) +f(20,85,11,1) +n(124,2) +u(1708) +u(1492) +u(1484,1) +n(1700) +u(3131) +f(132,85,1,6) +f(12,86,3,1) +n(68,2) +f(1924,85,2,1) +n(3596,2) +f(10042,76,2,1) +u(9898) +f(5474,73,1,110) +u(5474) +f(5434,75,1,9) +u(5410) +f(5178,77,2,2) +f(8506,78,1,1) +u(8474) +u(8370) +u(8418) +u(11546) +f(7874,77,1,5) +f(7866,78,3,2) +u(7842) +f(5482,75,2,98) +u(5226,94) +u(5698) +u(5674) +u(5610) +u(5626) +u(8322) +u(8274) +u(8250,1) +u(8250) +u(8354) +u(10081) +f(9450,83,1,93) +u(3283,1) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +f(9506,84,1,92) +u(3283,1) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) +f(9394,85,1) +u(9401) +f(9490,85,1) +u(8977) +f(9562,85,1,5) +u(9433) +u(9434) +u(9410) +f(9577,89,1,2) +n(9585,1) +u(9586) +u(9466) +u(9426) +f(11875,89,1) +f(10442,85,1,5) +u(10449) +f(2723,87,1,3) +u(11292) +u(10979) +u(3259) +f(3187,87,3,1) +u(2324) +f(10514,85,1,77) +u(10513) +u(10521) +u(2739) +f(516,89,2,38) +n(3131,37) +f(10538,85,37,1) +n(10690) +u(10665) +f(5354,76,1) +u(5274) +f(5386,76,1) +u(10154) +f(5410,76,1) +u(7874) +u(7866) +u(7842) +u(8586) +u(8618) +u(11530) +f(5490,76,1) +f(5506,75,1,2) +f(5922,69,2) +u(7362) +u(7362) +f(8779,69,2) +f(4218,67,2,284) +u(4218) +u(3283,1) +u(1844) +u(204) u(212) -u(716) -f(15169,21,1,5) -f(15209,19,5,515,0,4,0) -f(14658,20,6,3) -u(14666,1) -u(14674) -u(14746) -f(14714,21,1,2) -u(14970) -u(19698) -u(19642) -u(19514) -u(19602) -u(29850) -f(15146,20,2,1) -n(15162,479) -u(15738) -u(19546) -u(19618) -u(21818) -u(21722) -u(22778) -u(22778) -u(22738) -f(24915,29,1,1) -n(24923,291) -n(27315,1) -n(27323,64) -n(27339,110) -n(27355,9) -n(30603,2) -f(15714,20,2,8) -f(22770,21,1,7) -u(22770) -f(10067,23,1,2) -u(6260) -u(620,1) -u(636) -u(2244) -f(3092,25,1) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(22738,23,1,3) -f(22826,24,1,2) -f(22674,25,1,1) -u(22674) -u(22634) -f(22834,23,1) -f(15912,20,1) -n(19466,13,10,2,1) -u(19570,13,10,2,1) -u(21810,13,12,1,0) -u(21730,13,12,0,1) -u(22714,13,10,2,1) -u(22722,13,10,2,0) -f(22766,26,2,1,0,1,0) -n(25298,9) -u(25306) -u(25378,9,8,1,0) -f(25385,29,3,1) -u(9123) -u(27323) -f(27323,29,1) -n(27339,4) -f(27339,26,4,1) -f(22714,20,1,3) -u(22722,2) -u(22766,1,0,1,0) -n(30755) -f(22849,21,1) -f(30755,20,1) -f(14978,18,1,4) -u(19706) -u(19650) -u(19522) -u(19610) -u(29858) -f(14986,18,4,103,101,1,0) -f(14962,19,1,99) -u(15129,99,0,1,0) -f(15258,21,6,66,65,1,0) -u(15250) -f(15234,23,1,63) -u(14986,58,57,1,0) -u(14962,55) -u(15730,55,54,1,0) -f(19354,27,1,54,53,1,0) -u(19362,49) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -u(26010) -u(22730,41) -u(22626,1) -u(24066) -f(25418,37,1,40) -u(25425) -f(9131,39,11,25) -f(3548,40,5,1) -n(11795,15) -f(10035,41,6,9) -f(30595,42,8,1) -f(29236,40,1,4) -f(9955,39,4) -u(7964) -f(7556,41,1,2) -u(29691) -f(9979,41,2,1) -f(26026,36,1,8) -f(19498,28,8,4,3,0,1) -u(3284,1) -u(3292) -u(1268) -u(1244) -u(1428) -u(1428) -u(1436) -u(29579) -f(24050,29,1,3) -f(22642,28,3,1) -f(19714,25,1,3) -u(19658) -u(19666) -u(19482,2) -u(19578) -u(29818) -f(19514,28,2,1) -u(19602) -u(29850) -f(15282,24,1,5) -u(24162) -f(24178,26,4,1) -u(22314) -u(22338) -f(19714,23,1,2) -u(19658) -u(19666) -u(19482) -u(19578) -u(29818) -f(18866,21,2,27) -u(18858) -f(19866,23,7,20) -f(19898,24,2,7) -n(19930,11) -u(29874) -f(19714,19,11,3) -u(19658) -u(19666) -u(19482) -u(19578) -u(29818) -f(15526,18,3,8,0,8,0) -n(15586,24) -u(15577,22,0,4,0) -f(18930,20,1,21,18,3,0) -u(18930,21,18,3,0) -u(18937,18,0,3,0) -u(18938) -u(21354,18,15,1,0) -u(21362,18,17,1,0) -u(21361) -u(3675) -u(3435) -u(24900) -u(24900) -f(324,31,6,7) -f(76,32,5,2) -f(3604,31,2,1) -u(1052) -f(6492,31,1) -n(11780,3) -f(22370,22,3,2) -u(22377) -f(23898,22,2,1) -u(23946) -u(23953) -f(15953,19,1,2) -u(14986) -u(14962) -u(15129) -u(15258) -u(15250) -u(15234) -u(14986) -u(14962) -u(15730) -u(19354) -u(19362) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -u(26010) -u(22730) -u(25418) -u(25425) -u(9131) -f(11795,42,1,1) -u(10035) -f(15897,18,1) -n(15946) -u(14977) -f(15970,18,1,15) -u(14817) -f(14722,20,2,12) -u(14730) -u(15121) -u(15474) -u(15441,9) -u(15450) -u(15058) -u(15866) -u(15826) -u(15706) -u(15722) -u(19474) -u(19370) -u(22690) -u(22738) -u(25322,1) -u(25329) -u(9115) -u(29276) -u(27459) -u(10043) -f(25458,35,1,8) -u(25458) -u(25465) -u(9139) +u(652) +f(3649,69,1,144) +f(4146,70,5,103) +f(5034,71,1,99) +u(4906,2) +u(5745) +f(5001,74,1,1) +f(5034,72,1,96) +f(5321,73,3,93) +f(5282,74,2,8) +u(5642) +u(8362) +u(8410) +u(9274) +u(9234) +u(9538) +u(9538) +f(3283,82,1,4) +u(1844) +u(764) +u(1492) +u(100,3) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +f(1356,92,1,1) +n(1364) +f(3219,86,1) +f(9506,82,1,3) +f(9522,83,1,2) +f(5562,74,2,6) +u(5202,3) +u(5306) +u(4882,1) +u(4938) +u(5162) +u(8490) +u(8450) +u(8346) +u(8402) +u(11522) +f(5642,77,1,2) +u(8362) +u(8410) +u(9274) +u(9234) +u(9538) +u(9538) +f(9514,75,2,3) +f(3283,76,1,1) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +u(1356) +f(9570,76,1) +f(8314,74,1,73) +u(8386) +u(9266) +u(9242) +u(9474) +u(9482) +u(10410) +u(10418) +u(10474) +u(10371,1) +n(10379,44) +n(10955,18) +n(10971,9) +n(11819,1) +f(9474,74,1,3) +u(9418,1) +n(9482,2) +u(9550,1,0,1,0) +n(11875) +f(9586,74,1) +u(9586) +u(9466) +u(9426) +f(5753,72,1) +u(5009) +u(5553) +f(5778,71,1,3) +u(5033) +u(5034) +u(5321) +u(8314) +u(8386) +u(9266) +u(9242) +u(9474) +u(9482) +u(10410) +u(10418) +u(10474) +u(10379,1) +n(10955) +n(10971) +f(5114,70,1,16) +u(5122) +u(5114) +u(5122) +u(5170) +u(5154,12) +u(5257) +u(5370,5) +u(5362) +u(5346) +u(5170,4) +u(5154) +u(5634) +u(8258) +u(8266) +u(8282) +u(9258) +u(9282) +u(9218) +u(11538) +u(10506) +u(10682) +u(9498) +u(10482) +u(10489) +u(2731) +f(3611,96,2,2) +u(3251) +f(5394,80,2,1) +f(5458,77,1,5) +u(8122) +f(10137,79,2,3) +f(10114,80,2,1) +f(7858,77,1,2) +u(7850) +f(8498,75,2,4) +u(8458) +u(8466) +u(8330,3) +u(8394) +u(11514) +f(8346,78,3,1) +u(8402) +u(11522) +f(5586,70,1,12) +u(5570) +u(7914) +u(7914) +u(7921,10) +u(7922) +u(9170) +u(9178) +u(9177) +u(899) +u(787) +u(10364) +u(10364) +f(132,83,5,3) +n(3596,2) +u(284,1) +n(3604) +f(9362,74,1,2) +u(9369) +f(811,76,1,1) +u(52) +f(8898,70,1,2) +n(11202,6) +u(11194) +f(11178,72,5,1) +u(11170) +f(4385,69,1,133) +u(3267,2) +u(1828) +u(772) +u(1492) +u(100) +u(940,1) +u(1756) +u(1748) +u(1740) +u(2828) u(1812) -f(27339,24,8,3) -f(15209,20,3,1) -u(15162) -u(15738) -u(19546) -u(19618) -u(21818) -u(21722) -u(22778) -u(22778) -u(22738) -u(24923) -f(30755,18,1,3) -f(18361,17,3,979,0,6,10) -f(15930,18,10,1) -n(16306) -n(18402,963,947,6,10) -f(13417,19,5,530,0,3,5) -f(13377,20,8,522,0,3,5) -f(13394,21,13,502,494,3,5) -f(13386,22,27,475,467,3,5) -f(13425,23,1,137,0,8,1) -f(12522,24,1,27,22,4,1) -f(13362,25,1,26,22,2,1) -f(12322,26,1,22,21,0,0) -f(12385,27,1,21,0,1,0) -f(23530,26,21,2) -u(23538) -f(23545,26,2,1) -f(12530,24,1,26,25,1,0) -f(13370,25,1,25) -u(12330,24) -u(12393) -f(12234,28,18,5) -n(12298,1) -f(23546,26,1) -u(23554) -f(13433,24,1,17,4,1,0) -f(12458,25,6,3) -u(12402) -u(14650,2) -u(14914,1) -u(15818) -u(15818) -u(15050) -f(15634,28,1) -u(15034) -u(15194) -f(15570,27,1) -u(29667) -u(8228) -u(8220) -u(8236) -u(8116) -u(30628) -u(3548) -f(14778,25,1,5) -u(15042) -u(14802) -u(10067,4) -u(6260) -u(3092) -u(5460) -u(156,3) -u(3748) -u(6132) -u(4060,2) -u(4004) -u(4004) -f(4236,38,1,1) -f(6116,35,1) -u(6108) -u(9476) -u(6228) -f(5468,32,1) +f(1044,75,1) +u(1212) +u(1164) +u(1164) +u(1364) u(1924) -f(15786,28,1) -u(15010) -u(15018) -u(19402) -f(14938,25,1,3) -u(14946) -u(15818) -u(15818) -u(15050) -f(13450,24,3,38,37,1,0) -f(28042,25,1,37) -f(23410,26,35,2) -u(23418) -f(13457,24,2,7) -f(13442,25,5,2) -u(28042,1) -n(28050) -f(14770,24,1,3) -u(14698,2) -f(14714,26,1,1) -u(14898) -u(14906) -u(14970) -f(15794,25,1) -u(15082) -u(15202) -f(14793,24,1,9) -f(15809,25,1,5) -n(30755,3) -f(15922,24,3,1) -u(14761) -u(14698) -u(14714) -u(14897) -f(21010,24,1) -n(28050,5) -u(27889) -f(28922,24,5,1) -n(29667) -u(8228) -u(8220) -u(8236) -u(8116) -u(30628) -u(30612) -f(13553,23,1,335,0,3,2) -f(10051,24,2,4) -u(6244) -u(3108) -f(5460,27,1,3) -u(156) -u(3748,2) -u(6132) -u(4060) -u(4004) -u(4004) -f(4236,34,1,1) -f(3900,29,1) -u(4052) -u(4044) -u(3996) -f(12414,24,1,7,0,7,0) -n(12422,2,0,2,0) -n(13722,4,3,1,0) -f(14146,25,1,3) -u(14378) -u(24154) -f(13826,24,3,229,225,1,2) -u(13698,124,121,2,1) -u(13706,124,123,0,1) -u(13714,100,97,2,1) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(5468) -u(2292) -f(13866,28,1,99,96,2,1) -u(13946,99,96,1,1) -u(13897,99,0,1,1) -f(13856,31,17,1) -u(12984) -u(14304) -u(14296) -f(13906,31,1) -n(23410,79,78,0,0) -u(23418) -f(13793,33,23,36,11,1,0) -f(14010,34,9,27,26,1,0) -u(14050,27,26,1,0) -f(13762,36,14,13,12,1,0) -f(13778,37,3,2) -n(23570,8) -u(21106) -f(23426,33,8,20) -u(13818) -u(14018) -f(13786,36,8,12) -f(21122,37,3,9) -f(21257,38,7,2) -f(23442,31,2,1) -u(23426) -u(13818) -f(13994,27,1,24) -u(14033) -f(10051,29,15,1) -u(6244) -u(3108) -u(5460) -u(156) -f(10067,29,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3900) -u(3820) -f(13978,29,1,4) -u(21090) -f(21082,31,2,2) -f(27843,29,2) -n(27851,1) -f(13730,25,1,63,62,0,1) -u(13738,63,62,0,1) -u(13746,56,55,0,1) -u(13954,54,53,0,1) -u(13946,52) -u(13897) -f(13906,31,14,1) -n(23410,37) -u(23418) -f(13794,33,6,24,9,0,0) -f(14010,34,4,20) -u(14050) -f(13762,36,10,10) -f(13778,37,4,1) -n(23570,5) -u(21106) -f(23426,33,5,7) -u(13818) -f(14018,35,1,6) -f(13786,36,4,2) -f(20814,29,2,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) +f(4450,70,1,4) +u(4698) +u(4778,3) +f(10146,73,1,2) +f(10170,74,1,1) +u(9314) +u(9338) +f(9834,72,1) +f(4546,70,1,96) +u(4426,44) +u(4434) +u(4442,36) +f(4554,74,1,35) +u(4578) +u(4561) +u(9754,34) +u(9762) +f(4530,79,9,21) +f(4626,80,5,16) +u(4666) +f(4490,82,3,13) +f(9890,83,4,9) +f(9018,84,1,8) +f(9770,79,8,4) +u(4538) +u(4634,3) +u(4514) +u(9042) +f(9137,84,2,1) +f(9042,81,1) +f(9786,77,1) +u(9770) +u(4538) +f(4610,73,1,8) +u(4649) +f(4594,75,7,1) +u(9010) +f(4458,71,1,37) +u(4466) +u(4474,34) +u(4586,32) +u(4578) +u(4561) +f(9754,77,2,30) +u(9762) +f(4530,79,9,19,17,0,0) +f(4626,80,2,5) +u(4666) +u(4490) +u(9890) +u(9018) +f(9018,80,5,12) +f(9770,79,12,2) +u(4538) +u(4634) +f(4514,82,1,1) +u(9042) +f(4722,74,1,2) +u(4729) +u(4738) +f(4610,73,2,3) +u(4649) +f(3283,75,1,1) +u(1844) u(764) -u(8484) -u(8468) -f(21658,29,1) -u(21714) -u(21466) -f(14242,28,1,2) -u(14249) -f(14258,30,1,1) -f(13994,27,1,7) -u(14033) -f(10051,29,5,1) -u(6244) -u(3108) -u(5460) -u(5468) -u(1924) -f(27851,29,1) -f(14041,25,1,42) -f(10051,26,3,3) -u(6244) -u(3108) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,2) -u(4004) -u(4004) -f(4244,36,1,1) -f(6116,33,1) -u(6108) -u(9476) -u(6228) -u(5836) -u(9723) -f(13986,26,1,9) -f(10067,27,3,6) -u(6260) -u(3092,5) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,4) -f(4004,35,1,2) -u(4004) -f(4044,35,2,1) -f(6116,34,1) -u(6108) -u(9476) -u(6228) -f(8196,29,1) -f(14058,26,1,27) -u(10067,4) -u(6260) -u(3092,3) -u(5460) -u(156) -u(3748,2) -u(6132) -u(4060) -u(4004) -u(3604,1) -u(1108) -f(4004,36,1) -u(4244) -u(6492) -u(9715) -f(3900,32,1) -u(3820) -f(8196,29,1) -f(14002,27,1,6) -f(21106,28,4,2) -f(14026,27,2,5) -f(13978,28,1,4) -u(21090) -f(21082,30,3,1) -f(23290,27,1,12) -u(23378) -f(23362,29,2,6) -f(13978,30,3,3) -u(13978) -u(21090) -f(23370,29,3,4) -f(13978,30,1,3) -u(13978) -u(21090) -f(14161,24,3,37,2,0,0) -f(13658,25,8,27) -u(14386) -u(14274,22) -u(14274) -f(14282,29,5,10) -f(13690,30,1,9) -u(29252) -f(10579,32,1,8) -f(9523,33,1,7) -f(14290,29,7) -f(24058,30,1,1) -n(24074,5) -f(24170,27,5) -u(24162) -f(24178,29,3,2) -u(22314) -u(22338) -f(23490,25,2,1) -n(23522) -u(23506) -u(23482) -f(20259,24,1,16) -n(20842,1) -n(21002,7) -u(20890) -f(10051,26,2,1) -u(6244) -u(8804) -u(5460) -u(156) -u(3748) -u(4740) -f(10067,26,1) -u(6260) -u(3092) -u(5460) -u(5468) -u(2292) -f(20874,26,1,3) -f(28042,24,3,26) -f(23410,25,22,3) -f(23418,26,1,2) -f(29252,25,2,1) -u(10579) -f(14776,23,1) -u(14800) -u(3252) -u(3156) -u(3172) -u(3172) -u(9436) -u(916) +u(1492) +u(100) u(940) -u(8308) -u(8292) -f(18458,23,1) -u(18466) -f(14762,21,1) -u(14698) -u(14714) -u(14970) -u(19698) -u(19642) -u(19514) -u(19602) -u(29850) -f(15938,21,1) -u(14798,1,0,1,0) -f(28938,21,1,5) -f(13473,19,5,425,0,3,5) -f(13377,20,6,419,0,2,5) -f(13394,21,3,415,408,2,5) -f(13386,22,21,394,387,2,5) -f(13489,23,1,59,0,0,1) -f(13346,24,4,34) -f(20898,25,30,1) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(6116) -u(6108) -u(9476) -u(6228) -f(23458,25,1,3) -u(23466) -f(13480,24,3,1) -u(13312) -u(27896) -u(27904) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(25190,1,0,1,0) -u(25166,1,0,1,0) -u(23265) -u(10059) -u(6252) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4020) -u(5660) -f(13497,24,1,17,3,0,0) -f(12466,25,8,4) -u(12402) -f(14650,27,1,3) -u(15634) -u(15626) -u(10067,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(15530,30,2,1) -u(15538) -f(14778,25,1,2) -u(14690,1) -u(14698) -u(14714) -u(14898) -u(14906) -u(14970) -u(19698) -f(15042,26,1) -u(14802) -u(15786) -u(15010) -u(15018) -u(19402) -f(14938,25,1) -u(14946) -u(15002) -u(19730) -u(19682) -u(19690) -f(15594,25,1,2) -u(15966,2,0,2,0) -f(14826,24,2) -u(14730,1) -u(14714) -u(14898) -u(14906) -u(15818) -u(15818) -f(15802,25,1) -u(15105) -f(15922,24,1) -u(14761) -u(14698) -u(14714) -u(14897) -f(13553,23,1,330,0,2,3) -f(10051,24,4,4) -u(6244) -u(3108) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,2) -u(4004,1) -u(4004) -f(4044,32,1) -u(3996) -f(8068,31,1,2) -f(12414,24,2,7,0,7,0) -n(12422,1,0,1,0) -n(12454,2,0,2,0) -n(13722,4,3,1,0) -u(14146,4,3,1,0) -u(23518,1,0,1,0) -u(23502,1,0,1,0) -f(23522,26,1,3) -u(23506) -u(23482) -f(13826,24,3,210,207,1,2) -u(13698,105,104,0,1) -u(13706,105,104,0,1) -u(13714,78,77,0,1) -u(13866,78,77,0,1) -u(13946,78,77,0,1) -f(13897,30,3,75,0,0,1) -f(13856,31,8,1) -u(12984) -u(24640) -u(24510,1,0,1,0) -u(24576) -u(24576) -u(24526,1,0,1,0) -u(24494,1,0,1,0) -u(24496) -u(24678,1,0,1,0) -u(23216) -u(24568) -u(12976) -u(12992) -u(13016) -u(13808) -u(23225) -f(13906,31,1) -n(23410,65) -u(23418) -f(13794,33,20,32,19,0,0) -f(14010,34,9,23) -u(14050) -f(13762,36,14,9) -f(23570,37,3,6) -u(21106) -f(23426,33,6,13) -u(13818) -u(14018) -f(13786,36,6,7) -u(21122) -f(21257,38,6,1) -f(13994,27,1,27) -u(14033) -f(10051,29,18,1) -u(6244) -u(3108) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(3604) -u(1052) -f(13978,29,1,7) -u(21090) -f(21082,31,5,2) -f(27851,29,2,1) -f(13730,25,1,66,65,0,1) -u(13738,66,65,0,1) -u(13746,58,57,0,1) -u(13954,54,53,0,1) -u(13946,53,52,1,0) -u(13897,53,0,1,0) -f(13848,31,4,1) -u(13936) -u(14224) -u(14152) -u(14120) -u(24000) -u(3284) -u(3292) -u(1268) -u(1284) -u(1228) -u(1148) -f(23410,31,1,48) -f(23418,32,1,47) -f(13794,33,11,32) -f(14010,34,6,26) -u(14050) -f(13762,36,11,15) -f(13778,37,6,1) -n(23570,8) -u(21106) -f(23426,33,8,4) -u(13818) -u(14018,2) -f(13786,36,1,1) -u(21122) -f(21122,35,1,2) -f(21658,29,2,1) -u(21714) -u(21466) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(14242,28,1,4) -u(14249) -f(14258,30,2,2) -f(13994,27,2,8) -u(14033) -f(10051,29,4,1) -u(6244) -u(3108) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(3604) -u(1108) -f(10067,29,1,3) -u(6260) -u(3092) -u(5460) -u(156,2) -u(3748) -u(6132) -u(76,1) -n(4060) -u(4004) -u(4004) -f(164,33,1) -u(3748) -u(6132) -u(6116) -u(6140) -f(14041,25,1,39,0,1,0) -f(10051,26,6,2) -u(6244) -u(3108,1) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(8196,28,1) -f(13986,26,1,8) -f(10067,27,2,6) -u(6260) -u(3092) -u(5460) -u(156) -u(3748,5) -u(6132) -u(4060) -u(4004) -u(3604,1) -u(1052) -f(4004,36,1,4) -u(4236,1) -n(4244,3) -f(6492,38,2,1) -f(3900,32,1) -u(4052) -u(4004) -u(4004) -u(4236) -f(14058,26,1,23) -u(10067,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(4236,37,1,1) -f(14002,27,1,3) -f(13770,28,2,1) -f(14026,27,1,11) -f(13978,28,2,9) -u(13770,1) -n(21090,8) -f(21082,30,7,1) -f(23290,27,1,7) -u(23378) -u(23362,6) -f(13978,30,5,1) -u(13978) -u(21090) -f(23370,29,1) -f(14161,24,1,34,0,0,1) -f(13658,25,13,17) -u(14386) -u(14274) -u(14274) -f(14282,29,1,9) -f(13690,30,3,6) -u(29252) -f(10579,32,1,5) -f(9523,33,1,4) -f(14290,29,4,7) -u(24074) -f(14138,25,7,3) -n(23514,1) -f(20259,24,1,16) -n(21002,5) -u(20890) -u(10051,1) -u(6244) +u(1756) +u(1220) +u(1164) +u(1164) +f(4594,75,1) +u(9010) +u(9002) +f(4657,71,1,15) +f(4602,72,3,5) +u(3283,4) +u(1844) +u(764) +u(1492) +u(100,3) +u(940) +u(1756) +u(1220,2) +u(1164,1) +u(1164) +u(1356) +u(284) +f(1204,81,1) +u(1620) +u(3027) +f(2364,80,1) +f(1500,77,1) u(620) -f(10067,26,1,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(5676,37,1,1) -f(20874,26,1,2) -f(28042,24,2,43) -f(23410,25,38,5) -f(23418,26,2,3) -f(14778,23,3,3,2,0,1) -u(14802,3,2,0,1) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(15786,25,1,2,1,0,1) -u(15010,2,1,0,1) -f(15016,27,1,1) -u(15126,1,0,1,0) -f(29667,23,1) -u(8228) -u(8220) -u(8236) -u(8116) -u(30628) -f(28938,21,1) -f(30755,19,1,3) -f(18422,18,3,1,0,1,0) -u(18418) -u(16257) -u(13193) -u(16442) -u(16258) -u(12577) -u(12666) -u(23874) -u(23865) -u(23858) -u(12554) -u(12722) -u(16258) -u(12577) -u(12666) -u(23874) -u(23865) -u(23858) -u(12554) -u(12722) -u(16258) -u(12577) -u(12666) -u(23874) -u(23865) -u(23858) -u(12554) -u(12722) -u(16258) -u(12577) -u(12666) -u(23874) -u(23865) -u(23858) -u(12554) -u(12722) -u(16258) -u(12833) -u(13082) -u(13050) -u(12786) -u(16418) -u(17186) -u(16346) -u(16345) -u(18529) -u(13466) -u(13466) -u(13410) -u(12434) -u(13330) -u(14817) -u(14818) -u(15210) -u(15554) -u(22746) -u(10067) -u(6260) -u(3092) -u(5460) -u(5468) -u(2212) -u(2260) -u(1780) -f(18434,18,1,3) -f(18418,17,3,2790,2784,0,6) -f(16258,18,1,2789,2760,8,5) -f(12753,19,19,1431,0,13,6) -f(13058,20,1,1430,1424,0,6) -f(12874,21,2,1428,1409,13,6) -u(12858,29) -f(13042,23,2,15) -f(20706,24,7,8,7,0,0) -u(20754) -f(22386,26,6,2) -f(21658,23,2,12) -u(21746) -u(21450) -u(21250) -u(21138,8) -n(21226,1) -u(25346) -u(10051) -u(6244) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(8068) -f(21242,27,1,3) -u(21114) -f(24923,29,1,2) -f(16186,22,2) -f(17018,23,1,1) -f(16402,22,1,6) -f(16554,23,2,4) -f(16418,22,4,1391,1385,3,3) -u(17186,1391,1388,0,3) -u(16346,1391,1388,0,3) -u(16345,1391,0,4,3) -f(12737,26,7,1370,0,11,3) -f(12656,27,18,6) -u(12648) -u(12592,3) -u(23800,3,0,1,2) -u(23824,3,0,1,2) -u(23816,3,0,1,2) -u(12544) -u(12712) -u(12688) -u(12624) -u(12696) -u(16344,3,0,0,2) -u(16344,3,0,0,2) -u(12736,3,0,0,2) -u(12656) -u(12648) -u(12592,2) -u(23806,2,0,1,1) -u(23830,2,0,1,1) -u(23822,2,0,1,1) -u(12544) -u(12712) -u(12688) -u(12624) -u(12696) -u(16344,2,0,0,1) -u(16344,2,0,0,1) -u(12736,2,0,0,1) -u(12656) -u(12648) -u(12592) -u(23806,2,0,1,1) -u(23830,2,0,1,1) -u(23822,2,0,1,1) -u(12544) -u(12712) -u(12688) -u(12624) -u(12696) -u(16344,2,0,0,1) -u(16344,2,0,0,1) -u(12736,2,0,0,1) -u(12656) -u(12648) -u(12592,1) -u(23806,1,0,1,0) -u(23830,1,0,1,0) -u(23822,1,0,1,0) -u(12544) -u(12712) -u(12688) -u(12624) -u(12696) -u(16345) -u(16345) -u(13209) -u(16426) -u(16346) -u(16345) -u(18529) -u(13410) -u(13410) -u(13553) -u(28042) -f(12608,71,1) -u(12312) -u(12376) -u(12224) -u(13504) -u(12512) -u(12496) -u(12488) -u(12472) -u(12504) -u(12480) -u(21656) -u(21456) -f(12608,43,1) -u(12312) -u(12376) -u(12288) -u(13544) -u(20905) -u(11875) -u(8164) -u(8148) -u(8116) -u(8124) -u(5028) -u(5012) -u(5084) -u(4956) -u(3220) -u(3148) -f(12608,29,1,3) -u(12312) -u(12376) -u(12288) -u(13520) -u(13512,2) -u(13600,1) -u(23776) -u(23808) -u(23832) -u(13568) -u(13592) -u(13584) -u(13576) -u(24528) -u(22086,1,0,1,0) -u(22094,1,0,1,0) -u(21422,1,0,1,0) -u(21374,1,0,1,0) -u(21650) -u(21448) -u(21910,1,0,1,0) -u(21536) -u(21552) -u(21550,1,0,1,0) -u(22118,1,0,1,0) -u(21310,1,0,1,0) -u(20769) -u(3643) +u(660) +u(540) +f(4482,73,1) +f(4674,72,1,7) +u(3283,1) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1404) +f(4618,73,1,2) +f(9018,74,1,1) +f(9706,73,1,4) +u(9730) +u(9714) +f(4594,76,2,2) +u(4594) +u(9010) +f(9002,79,1,1) +f(4705,70,1,16) +f(4394,71,3,12) +u(4786) +u(4746,10) +u(4746) +f(4754,75,2,4) +f(4418,76,1,3) +u(11268) +u(3395) +u(2859) +f(4762,75,3,4) +u(10098) +f(10146,73,4,1) +n(10162) +u(10154) +f(9850,71,1) +u(9842) +u(9826) +f(8779,70,1) +n(8986,5) +u(8930) +f(3267,72,3,1) +u(1828) +u(2644) +u(1492) +u(100) +u(940) +u(1756) +u(1748) +f(3283,72,1) +u(1844) +u(764) +u(1492) +f(11146,70,1,9) +f(11202,69,9,6) +u(11194) +f(11178,71,2,4) +u(11170) +f(6090,67,4,58) +u(6089) +u(6082,3) +u(6050) +f(6562,69,3,53) +f(5898,70,1,52) +f(6242,71,3,43) +u(6225,10) +f(7874,73,4,6) +u(7834,5) +u(7818,3) +u(10074) +f(7842,75,3,2) +f(8098,74,2,1) +f(6273,72,1,29) +f(6313,73,2,25) +f(6266,74,1,24) +u(6682) +u(6522) +u(6025) +f(3922,78,2,20) +u(4042,19) +f(3842,80,1,18) +u(7377) +u(7378) +u(7178) +u(6474) +u(7170) +u(6978) +u(6954) +u(6882,17) +u(7242) +f(7410,90,2,15) +u(7417) +u(11019) u(3515) -u(27372) -u(8620) -u(3172) -u(5828) -u(29603) -f(23808,35,1) -u(23832) -f(13648,34,1) -f(12674,27,1,1346,1336,6,0) -u(23874) -u(23865,1346,0,5,0) -f(23858,30,17,1329,1324,5,0) -u(12554,5) -u(12722) -u(16258) -u(16226) -f(12562,31,5,1322,625,5,0) -f(12730,32,4,1318) -u(16346,1317,1312,5,0) -u(16345,1317,0,4,0) -f(12737,35,2,1314,0,10,0) -u(12674,1314,1304,6,0) -u(23874) -u(23865,1314,0,5,0) -f(23858,39,1,1313,1308,5,0) -u(12554,2) -u(12722) -u(16258) -u(16226) -f(12562,40,2,1311,622,5,0) -f(12730,41,1,1310) -u(16346,1310,1305,5,0) -f(16345,43,1,1309,0,4,0) -f(12737,44,4,1302,0,10,0) -f(12674,45,1,1301,1291,6,0) -u(23874) -u(23865,1301,0,5,0) -f(23858,48,2,1299,1294,5,0) -f(12554,49,2,1) -u(12722) -u(16258) -u(16226) -f(12562,49,1,1294,615,5,0) -u(12730) -u(16346,1294,1289,5,0) -u(16345,1294,0,4,0) -f(12737,53,1,1293,0,10,0) -u(12674,1293,1283,6,0) -u(23874) -f(23865,56,1,1292,0,5,0) -f(23858,57,4,1288,1283,5,0) -u(12554,2) -u(12722) -u(16258) -u(16226) -f(12562,58,2,1286,610,5,0) -u(12730) -u(16346,1286,1281,5,0) -f(16345,61,3,1283,0,4,0) -f(13209,62,6,1274,0,10,3) -f(2811,63,32,1) -n(13202,7) -f(23202,64,6,1) -u(23194) -f(16426,63,1,1223,1221,0,2) -u(16346,1223,1212,5,0) -f(16345,65,1,1222,0,3,0) -f(18529,66,8,1214,0,12,1) -f(13402,67,5,355,354,0,1) -f(13402,68,1,354,351,2,1) -f(12441,69,4,1) -n(14882,344,341,2,1) -u(14866,344,343,1,0) -u(14866) -u(15074,344,341,3,0) -u(14890,39) -u(18970) -u(18978) -f(18922,76,3,36) -u(18937,33,0,5,0) -u(21354) -u(21362,33,28,1,0) -u(21361) -u(3675) -u(3435) -u(24900) -u(24900) -f(52,85,11,1) -n(316) -u(6076) -u(5460) -u(5452) -f(324,85,1,15) -f(76,86,9,3) -n(316) -u(2740,1) -n(6076) -u(5460) -f(8804,87,1) -u(5460) -u(6068) -u(9883) -f(3604,85,1) -u(1108) -f(6492,85,1,2) -n(11780) -f(1052,86,1,1) -f(23889,77,1,2) -u(23937) -f(20961,79,1,1) -u(3483) -u(6148) -f(24137,77,1) -u(24130) -f(15442,73,1,305,302,3,0) -u(15441,305,0,2,0) -f(15346,75,1,10,9,1,0) -u(15314,5) -f(14994,77,1,1) -u(19722) -u(19674) -u(19554) -u(19626) -u(29898) -f(18890,77,1,3) -f(18874,78,2,1) -u(18850) -f(15322,76,1,5,4,1,0) -u(15305,2) -u(15394) -u(15154,1) -n(15386) -u(19178) -u(24010) -u(22306) -u(22322) -f(24266,77,1) -u(24258) -f(24274,77,1,2) -u(24242,2,1,0,1) -f(24280,79,1,1) -f(15450,75,1,292,291,1,0) -f(10067,76,1,4) -u(6260) -u(3092) -u(5460) -u(156,3) -u(3748,1) -u(6132) -u(4060) -u(4004) -u(4004) -f(3900,81,1,2) -u(3740,1) -u(3732) -u(3716) -u(4196) -f(3820,82,1) -f(2260,80,1) -u(9188) -u(9236) -u(20252) -f(15058,76,1,283,282,1,0) -u(15866,283,282,1,0) -u(10067,2) -u(6260) -u(3092) -u(5460) -u(156,1) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(164,82,1) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(15826,78,1,281,280,1,0) -u(15706,281,280,1,0) -u(14954,1) -n(15722,280,279,1,0) -u(19474,280,279,1,0) -u(19370) -u(19346,1) -u(19346) -u(19530) -u(24050) -f(22690,83,1,279) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236) -f(22738,84,1,278,277,1,0) -u(22610,3,2,1,0) -f(22618,86,1,2) -u(24082) -f(25322,85,2,9) -f(25329,86,1,7) -f(9115,87,4,3) -u(29276) -u(27459) -u(10043) -f(25338,86,3,1) -u(25370) -f(25458,85,1,263) -u(25458) -u(25465) -f(9139,88,1,262) -f(1812,89,2,39) -n(9883,221) -f(26018,85,221,3) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3900) -u(4052) -u(4004) -u(4004) -u(4244) -f(25994,86,1) -u(22354) -u(22362) -f(26002,86,1) -f(15314,76,1,4) -f(18890,77,1,3) -f(18874,78,1,2) -u(18850) -u(19874) -u(19930) -u(29874) -f(15482,75,2,1) -n(19162) -f(16162,69,1) -u(16754) -f(20259,69,1,4) -f(13410,67,4,665,656,8,1) -u(13410,665,656,6,0) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236) -f(12433,69,1,461,114,3,0) -f(13322,70,3,1) -u(15882) -u(14721) -u(14730) -u(14714) -u(14969) -f(13330,70,1,384) -u(14817,380) -u(14682,1) -u(15934,1,0,1,0) -f(14818,72,1,376) -f(15210,73,1,375) -u(15162,6) -f(15738,75,3,3) -u(19546) -u(19618) -u(21818) -u(21722) -f(22778,80,1,2) -u(22778) -u(10067) -u(6260) -u(620,1) -n(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(15554,74,1,15) -u(15026,12) -u(15186) -u(15738) -u(19546) -u(19618) -u(21818) -u(21722) -f(22778,82,1,11) -u(22778) -f(10067,84,2,4) -u(6260) -u(3092) -u(5460) -f(156,88,1,2) -u(3748,1) -u(6132) -u(4060) -u(4004) -u(4004) -f(3900,89,1) -u(4052) -u(4004) -u(4004) -f(5468,88,1) -f(22738,84,1,5) -u(22826) -u(22674) -u(22674) -f(22634,88,2,3) -u(22842,2) -u(22842) -u(22697) -f(22850,89,2,1) -u(22850) -u(22705) -f(22746,75,1,3) -u(10067) -u(6260) -u(3092) -u(5460) -u(156,2) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(4236,86,1,1) -f(5468,80,1) -u(1924) -f(19466,74,1,342) -u(19570) -u(21810) -u(21730) -u(22714) -u(22722) -u(25298) -u(25306) -u(25378) -u(24915,1) -n(24923,318) -n(27323,12) -n(27355,11) -f(22714,74,11,12) -u(22722) -u(22798,7,0,7,0) -n(30755,5) -f(15937,72,5,3) -f(14798,73,1,2,0,1,0) -f(15545,74,1,1) -f(15970,71,1,4) -u(14817) -f(14682,73,1,1) -u(30755) -f(14818,73,1,2) -u(15210) -u(15554,1) -u(15026) -u(15186) -u(15738) -u(19546) -u(19618) -u(21818) -u(21722) -u(22778) -u(22778) -u(10067) -u(6260) -u(3092) -u(5460) -u(5468) +f(7298,88,15,1) +u(7282) +f(6202,79,1) +u(6026) +u(5978) +f(5978,78,1,2) +f(7362,73,2,1) +u(7362) +f(10122,73,1) +u(10130) +f(6329,72,1,4) +f(6778,71,4) +u(5001,3) +n(11875,1) +f(7130,71,1,2) +u(7521) +f(7522,73,1,1) +f(6714,69,1) +u(7898) +f(8090,69,1) +u(8170) +f(7674,67,1,3) +u(8530) +f(5986,62,3,1) +n(6714) +n(11875) +f(5986,53,1,2) +f(6074,54,1,1) +u(5970) +f(5986,44,1,2) +u(6074) +u(5970) +f(11875,44,2,1) +f(7138,33,1) +u(7042) +u(7458) +f(5962,26,1,3) +n(5970,1) +n(5986,7) +f(6074,27,3,4) +f(5970,28,1,3) +f(4081,19,3,3484) +f(6186,20,11,3472) +u(6010) +f(3913,22,3,3469) +f(4033,23,3,3466) +f(3889,24,9,3457) +f(3930,25,2,23) +u(4002,15) +f(8898,27,8,7) +u(8906) +f(9378,29,5,2) +f(9210,26,2,8) +u(9250) +u(9186) +u(9122) +u(9058,4) +n(9090,1) +u(9066) +f(9106,30,1) +u(3283) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220) +u(1164) +u(1164) +u(1364) u(1924) -f(19466,75,1) -u(19570) -u(21810) -u(21730) -u(22714) -u(22722) -u(25298) -u(25306) -u(25378) -u(24923) -f(13338,70,1) -u(15978) -u(14825) -f(14922,70,1,39,37,1,0) -u(14930) -u(14922,39,38,1,0) -u(14930) -u(14986,39,38,1,0) -u(14962,37) -u(15129,37,0,1,0) -f(15258,77,2,16) -u(15250) -u(15234) -u(14986) -u(14962) -u(15730) -u(19354) -u(19362,14) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -u(26010) -u(22730,13) -u(25418) -u(25425) -f(9131,95,1,11) -f(11795,96,4,7) -f(10035,97,1,6) -f(30595,98,4,2) -f(9955,95,2,1) -u(7964) -f(26026,92,1) -f(19498,84,1,2) -u(24050) -f(15402,77,2,9) -u(19170) -u(24121) -f(18866,77,9,10,9,1,0) -f(18858,78,1,9,8,1,0) -f(19866,79,2,7) -u(19890,1) -u(29826) -f(19898,80,1,2) -n(19930,4) -u(29874) -f(19714,75,4,2) -u(19658) -u(19666) -u(19482) -u(19578) -u(29818) -f(15586,70,2,25,24,1,0) -u(15578,25,16,3,1) -u(18930,25,20,3,1) -u(18930,25,21,4,0) -u(18937,23,0,3,0) -u(18938) -u(21354,23,20,1,0) -u(21362,23,22,1,0) -u(21361) -u(3675) -u(3435) -u(24900) -u(24900) -f(316,83,7,1) -u(6076) -u(5460) -u(156) -u(3900) -u(3740) -u(3732) -u(3716) -u(3724) -f(324,83,1,9) -f(76,84,5,3) -n(316,1) -u(8804) -u(4308) -f(6492,83,1,2) -n(11780,4) -f(22370,74,4,1) -u(22377) -f(24142,74,1,1,0,1,0) -u(24146) -u(7940) -f(28938,70,1,8) -f(28082,71,2,6) -u(28074) -f(13553,69,6,195,0,2,0) -f(10051,70,3,4) -u(6244) -u(620,1) -u(636) -f(3108,72,1,3) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(12414,70,3,1,0,1,0) -n(13722,2) -u(14146) -u(14378,1) -u(24154) -f(23522,72,1) -u(23506) -u(23482) -f(13826,70,1,134,132,1,0) -u(13698,53) -u(13706) -u(13714,39) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(13866,74,1,38) -u(13946) -u(13897) -f(23410,77,1,37) -u(23418) -f(13794,79,8,19) -f(14010,80,4,15) -u(14050) -f(13762,82,8,7) -f(23426,79,7,10) -u(13818) -u(14018) -f(13786,82,2,8) -f(21122,83,1,7) -f(13994,73,7,14) -u(14033) -f(10067,75,11,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748,1) -u(6132) -u(8068) -f(3900,80,1) -u(4052) -u(4004) -u(4004) -f(13978,75,1) -u(21090) -u(21082) -f(13730,71,1,55,54,1,0) -u(13738) -u(13746,42,41,1,0) -u(10067,2) -u(6260) -u(3092) -u(5460) -f(156,78,1,1) -u(3748) -u(6132) -u(6116) -u(8052) -f(13954,74,1,40,39,1,0) -f(13946,75,1,39) -u(13897) -f(23410,77,1,38) -u(23418) -f(13794,79,8,20) -f(14010,80,3,17) -u(14050) -f(13762,82,6,11) -f(13770,83,5,1) -n(13778) -n(23570,4) -u(21106) -f(23426,79,4,10) -f(13818,80,1,9) -u(14018,7) -f(13786,82,4,3) -u(21122) -f(21122,81,3,2) -f(13994,73,2,13) -u(14033) -f(10051,75,7,3) -u(6244) -u(3108) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,2) -u(4004) -u(4004) -f(6116,82,2,1) -u(6108) -u(9476) -u(6228) -f(10067,75,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(8068) -f(13978,75,1) -u(21090) -f(27843,75,1) -f(14041,71,1,26) -f(10051,72,2,4) -u(6244) -u(3108) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,3) -u(4004) -u(4004) -f(4236,82,2,1) -f(8068,79,1) -f(13986,72,1,7) -f(10067,73,1,6) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,4) -u(4004,3) -u(4004) -f(4244,83,1,2) -f(4044,81,2,1) -u(5836) -u(9723) -f(6116,80,1,2) -u(6108,1) -u(9476) -u(6228) -f(8060,81,1) -f(14058,72,1,13) -u(14002,3) -f(21106,74,1,2) -f(14026,73,2,5) -u(13978) -u(13770,1) -n(21090,4) -f(21082,76,2,2) -f(23290,73,2,5) -u(23378) -u(23362,2) -n(23370,3) -f(14161,70,3,15) -f(13658,71,6,9) -u(14386) -u(14274,8) -u(14274) -f(14282,75,1,6) -u(13690) -u(29252) -f(10579,78,2,4) -f(9523,79,2,2) -f(14290,75,2,1) -u(24074) -f(24154,73,1) -f(20259,70,1,2) -n(21002,5) -u(20890) -f(10051,72,1,2) -u(6244) -u(8804) -u(5460) -u(156) -u(3748,1) -u(6132) -u(4060) -u(4004) -u(4004) -f(3900,77,1) -u(4052) -u(4044) -u(3996) -f(10067,72,1) -u(6260) -u(3092) -u(5460) -u(5468) +f(9114,30,1,2) +u(9026) +u(10379) +f(6010,25,2,3432) +f(3737,26,1,3429) +f(3778,27,2,3427) +u(9994) +u(9986) +f(9978,30,4,3423) +f(3722,31,1,3422) +u(3818) +u(6010) +f(3737,34,2,3416) +u(3778) +u(9994) +u(9986) +u(9978) +u(3722) +u(3818) +u(6010) +f(3737,42,1,3413) +u(3778) +f(9994,44,3,3410) +u(9986) +u(9978) +u(3722) +u(3818) +u(6010) +u(3737) +f(3778,51,2,3408) +f(9994,52,1,3407) +u(9986) +f(9978,54,5,3402) +u(3722) +u(3818) +u(5938,1) +u(6618) +f(6010,57,1,3401) +f(3705,58,7,3392) +f(4026,59,1,3391) +u(3866,2933) +u(6138) +u(6690) +u(6034) +u(5970,1) +n(5986) +n(6538,2930) +u(5858) +u(6962) +f(5865,67,2,2928) +f(7106,68,2,2926) +u(7122) +f(7146,70,1,2925) +u(7026) +f(6298,72,4,42) +u(6250,1) +n(6289,41) +u(5170,14) +u(5154) +u(5257) +f(5370,77,3,6) +u(5362) +u(5346) +u(5170,5) +u(5154) +u(5634) +u(8258) +u(8266) +u(8282) +u(9258) +u(9282) +u(9218) +u(11538) +u(10506) +u(10682) +u(9498) +u(10482) +f(10489,94,1,4) +u(2731) +f(3611,96,1,1) +u(3251) +f(11260,96,1,2) +f(5394,80,2,1) +u(10154) +u(10170) +u(9314) +u(9338) +f(5458,77,1,2) +u(8122) +u(10137) +f(7858,77,2,3) +u(7850) +f(8578,79,1,2) +u(8618) +u(11530) +f(6234,74,2,1) +u(7858) +u(7850) +f(6258,74,1,5) +f(6322,75,1,2) +u(10066) +f(6466,75,2,1) +n(10122) +u(10130) +f(7889,74,1,21) +u(7882) +u(5585) +u(5570) +u(7914) +u(7914) +u(7921,17) +u(7922) +u(9170) +u(9178) +u(9177) +u(899) +u(787) +u(10364) +u(10364) +f(124,89,9,1) +u(12) +f(132,89,1,7) +f(124,90,4,3) +u(12,1) +n(724) +n(1708) +f(9362,80,1,4) +u(9369) +f(811,82,2,1) +n(907) +f(7514,72,1,2879) +f(7450,73,1,1) +n(7513,2877) +f(828,74,4,3) +u(1316) +u(1588) u(2212) -u(2260) -u(1908) -f(20874,72,1) -f(28042,70,1,29) -f(23410,71,26,3) -u(23418) -f(20259,69,3,1) -n(28954,7,6,0,0) -f(28698,70,1,6) -u(28082) -u(28074) -f(13466,67,6,1) -u(13466) -u(13354) -f(16346,67,1,185,184,1,0) -u(16345) -f(16218,69,3,1) -n(16234,2) -u(16330) -u(16218) -f(16338,69,2) -u(16298) -f(16922,69,2,172) -u(16122) -f(16506,71,9,148) -f(16489,72,3,11) -f(18890,73,4,7) -u(18842,5) -u(18826,3) -u(24042) -f(18850,75,3,2) -f(19146,74,2) -u(19394) -f(16545,72,2,129,0,1,0) -f(16594,73,3,125,124,1,0) -u(16530,124,123,1,0) -f(17122,75,1,123,122,1,0) -u(16866,122) -u(16273,122,0,1,0) -f(12770,78,4,1) -u(13138) -f(12850,78,1,108,107,1,0) -f(13106,79,1,104) -f(12745,80,1,95,1,0,0) -f(18081,81,4,91,0,1,0) -f(18082,82,1,90) -u(17826) -u(16770,90,89,1,0) -u(17818,90,89,1,0) -u(17602,90,89,1,0) -u(17529,90,17,1,0) -f(17426,88,4,81,80,1,0) -u(17882,81,80,1,0) -f(18122,90,5,76) -f(18129,91,1,75) -f(27611,92,2,73) -f(11635,93,1,72) -f(17930,88,72,1) -n(17962,4) -u(17946) -f(17938,90,1,3) -f(14105,80,3,8) -f(14106,81,2,6) -u(14090) -u(13682) -u(29260) -f(10579,85,3,3) -u(9523) -f(16186,79,3,1) -n(16458,2) -u(16274) -f(16226,78,2,9) -f(16330,79,2,7) -f(16218,80,1,6) -f(19138,76,6,1) -f(24026,74,1) -f(24098,73,1) -u(24114) -f(16617,72,1,4) -n(18913,1) -f(17066,71,1,2) -n(17258,10) -u(14785,8) -n(30755,2) -f(17778,71,2,3) -u(18321) -f(18322,73,1,2) -u(15894,2,0,1,0) -f(17178,69,2,3) -u(18914) -f(19138,69,3,2) -u(19250) -f(18522,67,2,3) -u(19762) -f(23202,63,3,11) -u(23194) -f(16234,62,11,2) -f(16330,63,1,1) -u(16218) -f(30755,62,1) -f(20259,49,1,2) -f(16210,44,2,1) -n(16338,2) -u(16298) -u(16186) -f(16234,35,2,1) -u(16330) -u(16218) -f(17794,33,1) -u(17682) -f(20259,31,1,2) -f(16210,26,2,1) -n(16218) -n(16234,10) -f(16330,27,5,5) -f(16218,28,1,4) -f(30755,26,4,2) -f(13193,19,2,1320,0,16,1) -f(12430,20,10,1,0,1,0) -n(16442,1309,1308,0,1) -u(16258,1309,1293,4,0) -f(12577,22,6,1302,0,6,1) -f(12640,23,4,1) -u(12632) -u(12600) -u(12304) -u(12568) -f(12666,23,1,1297,1296,0,1) -u(23874,1297,1296,0,1) -u(23865,1297,0,2,1) -f(23858,26,10,1287,1284,2,1) -f(12554,27,1,1284,630,2,1) -f(12722,28,7,1277,1274,2,1) -f(16258,29,4,1273,1270,3,0) -f(12577,30,3,1266,0,4,1) -f(12666,31,1,1265,1264,0,1) -f(21658,32,1,1) -u(21458) -u(21466) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(23874,32,1,1263,1262,0,1) -u(23865,1263,0,2,1) -f(23858,34,2,1261,1258,2,1) -u(12554,1261,622,2,1) -u(12722,1261,1258,2,1) -f(16258,37,1,1259,1256,3,0) -f(12577,38,1,1257,0,4,1) -u(12666,1257,1256,0,1) -f(23874,40,1,1256,1255,0,1) -u(23865,1256,0,2,1) -f(23858,42,2,1254,1251,2,1) -f(12554,43,1,1253,616,2,1) -u(12722,1253,1250,2,1) -f(16258,45,2,1251,1248,3,0) -u(12577,1249,0,4,1) -u(12666,1249,1248,0,1) -f(23874,48,1,1248,1247,0,1) -u(23865,1248,0,2,1) -f(23794,50,3,1) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3900) -u(3740) -f(23858,50,1,1244,1241,2,1) -u(12554,1243,612,2,1) -u(12722,1243,1240,2,1) -u(16258,1243,1240,3,0) -f(12833,54,4,1238,0,10,1) -u(13082,1238,1227,10,1) -f(13050,56,1,1237,1236,0,1) -u(12786,1237,1226,8,3) -f(16186,58,6,4) -u(17018) -f(16402,58,4,3) -f(16554,59,2,1) -f(16418,58,1,1213,1210,2,1) -u(17186,1213,1212,0,1) -u(16346,1213,1212,1,0) -f(16345,61,1,1212,0,3,0) -f(16210,62,2,2) -n(16234,5) -f(16330,63,1,4) -f(16218,64,1,3) -f(16338,62,3,1) -u(16298) -u(16186) -f(18529,62,1,1202,0,10,1) -f(13402,63,1,499) -u(13402,499,497,2,0) -f(12441,65,2,2) -n(14882,494,492,2,0) -u(14866) -u(14866) -u(15074,494,492,2,0) -u(14890,41) -u(18970) -u(18978) -f(18922,72,1,40) -u(18937,40,0,2,0) -u(21354) -u(21362,40,38,0,0) -u(21361) -u(3675) -f(3435,78,1,39) -f(24900,79,1,38) -u(8724,1) -n(9100,2) -u(76) -f(24900,80,2,35) -f(52,81,11,2) -n(316,1) -u(8804) -u(5460) -u(6068) -f(324,81,1,16) -f(76,82,7,7) -n(316,2) -u(6076,1) -u(5460) -u(6068) -f(8804,83,1) -u(5460) -u(5452) -f(3604,81,1) -u(1108) -f(7860,81,1) -n(11780,3) -f(1108,82,1,1) -n(11788) -u(1108) -f(15442,69,1,453,451,2,0) -u(15441,453,0,1,0) -f(15346,71,1,17) -f(15314,72,5,5) -u(14994,3) -u(19722) -u(19674) -u(19554) -u(19626) -u(29898) -f(18890,73,3,2) -u(18874) -u(18850) -u(19874) -u(19930) -u(29874) -f(15322,72,2,7) -u(15305,1) -n(24266,2) -u(24258) -u(24234) -f(24274,73,2,4) -u(24242) -f(15450,71,4,433,432,1,0) -u(15058,426,425,1,0) -u(15866,426,425,1,0) -u(10067,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(15826,74,2,424,423,1,0) -u(15706,424,423,1,0) -u(15722,424,423,1,0) -u(19474,424,423,1,0) -u(19370) -u(19346,1) -u(19346) -u(19530) -u(24050) -f(22690,79,1,423) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(5444) -f(22738,80,1,422,421,1,0) -u(22602,1) -n(22610) -u(22618) -u(24082) -f(22826,81,1) -u(22674) -u(22674) -u(22634) -u(22842) -u(22842) -u(22697) -f(25322,81,1,6) -u(25329,5) -u(9115) -f(9731,84,1,1) -u(9675) -f(29276,84,1,3) -u(27459) -u(10043) -f(25338,82,3,1) -u(25370) -f(25458,81,1,408,407,1,0) -u(25458,408,407,1,0) -u(25465) -f(9139,84,1,407) -u(1812) -f(26018,81,407,5) -u(10067,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748,1) -u(6132) -u(4060) -u(4044) -u(3996) -f(3900,87,1) -u(4052) -u(4004) -u(4004) -f(25994,82,1) -u(22354) -u(22362) -f(26002,82,1,2) -f(15274,72,2) -f(24162,73,1,1) -f(15314,72,1,3) -u(18890) -u(18874) -u(18850) -f(19874,76,1,2) -u(19882,1) -u(29826) -f(19930,77,1) -u(29874) -f(15466,72,1,2) -f(15338,73,1,1) -f(19162,71,1,2) -f(16162,65,2,1) -u(16754) -f(13465,63,1,545,129,4,1) -f(13466,64,5,540,535,4,1) -f(13354,65,1,35) -f(20898,66,23,1) -n(23442,11) -u(23449) -f(23434,68,7,4) -f(10067,69,1,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(3604,1) -u(1108) -f(4004,78,1) -u(4244) -f(23386,69,1) -f(13410,65,1,502,498,1,1) -u(12433,328,81,2,0) -f(13322,67,6,1) -n(13330,248) -u(14817,247) -f(14818,69,6,241) -f(15210,70,1,240) -u(15162,10) -f(15738,72,3,7) -u(14658,2) -u(14714) -u(14970) -u(19698) -u(19642) -u(19514) -u(19602) -u(29850) -f(19546,73,2,5) -u(19618) -u(21818) -u(21722) -f(22778,77,2,3) -u(22778) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3900) -u(4052) -u(4004) -u(4004) -u(4244) -f(22738,79,1,2) -u(22826) -u(22674) -u(22674) -f(15554,71,2,12) -u(15026,9) -u(15186,8) -u(15146,1) -n(15738,7) -u(14658,1) -u(14666) -u(14674) -u(14746) -f(19546,75,1,6) -u(19618) -u(21818) -u(21722) -u(22778) -u(22778) -f(10067,81,2,2) -u(6260) -u(3092) -u(5460) -u(156,1) -u(3748) -u(4740) -f(164,85,1) -u(3748) -u(6132) -u(6116) -u(6140) -f(22738,81,1,2) -u(22826) -u(22674) -u(22674) -u(22634) -u(22842,1) -u(22842) -f(22850,86,1) -u(22850) -u(22705) -f(15818,73,1) -u(15818) -f(22746,72,1,3) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(76,1) -n(4060,2) -u(4004,1) -u(4004) -u(4244) -f(4044,81,1) -u(3996) -f(15918,71,1,1,0,1,0) -u(15558,1,0,1,0) -u(22750,1,0,1,0) -u(22790,1,0,1,0) -f(19466,71,1,200) -u(19570) -u(21810) -u(21730) -u(22714) -u(22722) -u(25298) -u(25306) -u(25378) -f(24915,80,3,3) -n(24923) -n(27323,172) -n(27355,16) -n(30603,3) -f(22714,71,3,16) -u(22722,15) -u(22798,5,0,5,0) -n(25298,1) -u(25306) -u(25378) -f(30755,73,1,9) -f(22850,72,9,1) -u(22850) -u(22706) -u(22658) -f(30755,71,1) -f(15970,68,1) -u(14817) -f(13338,67,1,2) -f(14826,68,1,1) -u(15106) -u(15146) -f(14922,67,1,38) -u(14930) -u(14922) -u(14930) -u(14986,36) -u(14962,32) -u(15129) -f(15258,74,1,10) -u(15250) -u(15234) -u(14986,9) -u(14962) -u(15730) -u(19354) -u(19362) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -u(26010) -u(22730,8) -u(25418) -u(25425) -f(9131,92,2,6) -u(3548,1) -n(11795,5) -u(10035) -f(26026,89,5,1) -f(15282,77,1) -f(15402,74,1,18) -f(19170,75,2,16) -f(24106,76,1,1) -n(24121,14) -f(24090,77,12,2) -f(18866,74,2,3) -u(18858) -f(19866,76,1,2) -u(19890,1) -u(29826) -f(19898,77,1) -f(19714,72,1,4) -u(19658) -u(19666) -u(19482) -u(19578) -u(29818) -f(15818,71,4,2) -u(15818) -f(15586,67,2,30) -u(15578,30,23,5,0) -u(18930,30,25,5,0) -u(18930,30,25,5,0) -f(18937,71,1,26,0,3,0) -u(18938) -u(21354,26,23,1,0) -u(21362,25) -u(21361) -u(3675) -u(3435) -u(24900) -u(9987,1) -n(24900,24) -f(324,80,10,10) -f(76,81,5,4) -n(316,1) -u(6076) -u(4308) -f(3604,80,1) -u(1052) -f(6492,80,1) -u(9715) -f(11780,80,1,2) -f(27198,74,2,1,0,1,0) -u(27042) -f(22370,71,1,3) -u(22377) -f(3531,73,1,2) -u(60) -f(28938,67,2,3) -f(28082,68,1,2) -u(28074) -f(13553,66,2,173,0,0,1) -u(10051,2) -u(6244) -u(3108) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004,1) -u(4004) -u(4236) -f(4044,75,1) -u(3996) -f(12414,67,1,1,0,1,0) -n(12422,1,0,1,0) -n(13722,4) -u(14146) -u(14378,3) -u(24154) -f(23490,69,3,1) -f(13826,67,1,115,114,1,0) -u(13698,50,49,0,1) -u(13706,50,49,0,1) -u(13714,37,36,1,0) -u(10067,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3900) -u(4052) -u(4044) -u(3996) -f(13866,71,1,36,35,1,0) -u(13946,36,35,1,0) -u(13897,36,0,1,0) -f(13862,74,3,1,0,1,0) -u(12984) -u(14304) -u(14296) -u(13888) -u(23230,1,0,1,0) -u(23886,1,0,1,0) -u(23904) -f(13914,74,1) -n(23410,31) -u(23418) -f(13794,76,8,16,10,0,0) -f(14010,77,4,12) -u(14050) -f(13762,79,3,9) -f(23570,80,4,5) -u(21106) -f(23426,76,5,7) -u(13818) -u(14018) -f(13786,79,2,5) -u(21122) -f(13994,70,5,13) -u(14033) -f(10051,72,7,1) -u(6244) -u(3108) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236) -f(10067,72,1,3) -u(6260) -u(3092) -u(5460) -u(156,2) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(4244,82,1,1) -f(5468,76,1) -u(1924) -f(13978,72,1) -u(21090) -u(21082) -f(27851,72,1) -f(13730,68,1,46) -u(13738) -u(13746,35) -u(10067,2) -u(6260) -u(3092) -u(5460) -u(156,1) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(5468,75,1) -u(1924) -f(13954,71,1,30) -u(13946) -u(13897) -u(23410) -u(23418) -f(13794,76,9,18) -f(14010,77,3,15) -u(14050) -f(13762,79,8,7) -f(13778,80,4,2) -n(23570,1) -u(21106) -f(23426,76,1,3) -u(13818) -f(14018,78,1,1) -n(21122) -f(14242,71,1,3) -u(14249) -f(14258,73,1,2) -f(13994,70,2,11) -u(14033) -f(10051,72,4,2) -u(6244) -u(3108) -u(5460) -u(156) -u(3748,1) -u(6132) -u(4060) -u(4044) -u(3996) -f(3900,77,1) -u(4052) -u(4044) -f(10067,72,1,3) -u(6260) -u(92,1) -n(3092,2) -u(5460) -u(156) -u(3748,1) -u(6132) -u(4060) -u(4004) -u(4004) -f(3900,77,1) -u(4052) -u(4004) -u(4004) -f(23570,72,1,2) -u(14010) -u(14050) -f(14041,68,2,19) -f(13986,69,4,2) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060,1) -u(4044) -u(3996) -f(6116,77,1) -u(29220) -u(10579) -u(9523) -f(14058,69,1,13) -u(10067,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004,1) -u(4004) -f(4044,78,1) -u(3996) -f(14002,70,1) -n(14026,7) -f(13978,71,1,6) -u(21090) -f(21082,73,3,3) -f(23290,70,3) -u(23378) -u(23362) -f(13978,73,1,2) -u(13978) -u(21090) -f(14161,67,2,24,1,0,0) -f(13658,68,4,18) -f(14386,69,1,17) -f(14274,70,1,11) -u(14274) -f(14282,72,1,2) -u(13690) -u(29252) -u(10579) -f(9523,76,1,1) -f(14290,72,1,8) -u(24074) -f(24154,70,8,2) -u(24178) -u(22314) -u(22338) -f(24170,70,2,3) -u(24162) -f(14138,68,3,1) -n(23490) -f(21002,67,1,6) -u(20890) -u(10051,2) -u(6244) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -f(4060,76,1,1) -u(4004) -u(4004) -f(10067,69,1,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(4244,79,1,1) -u(6492) -f(20874,69,1,2) -f(28042,67,2,20) -f(23410,68,18,2) -u(23418) -f(20259,66,2,1) -f(14834,65,1,2,1,0,0) -f(16346,63,2,148,145,1,0) -u(16345,148,0,1,0) -f(16338,65,2,1) -u(16298) -f(16922,65,1,144) -f(16122,66,1,143,142,1,0) -f(16506,67,6,124,123,1,0) -f(16489,68,1,16,0,1,0) -f(18890,69,5,11,10,1,0) -f(18842,70,5,4,3,1,0) -f(18826,71,1,1) -u(24042) -f(18850,71,1,2) -f(19146,70,2) -f(19394,71,1,1) -f(16545,68,1,104,0,2,0) -f(16594,69,1,103,101,2,0) -u(16530,103,101,2,0) -u(17122,103,101,2,0) -u(16866) -u(16273,103,0,1,0) -f(12770,74,5,98,97,1,0) -u(13130,90) -f(12801,76,1,84,1,1,0) -f(16186,77,4,1) -u(17018) -f(18081,77,1,79,0,2,0) -u(18082) -u(17826) -u(16770,79,77,2,0) -u(16410,1) -u(17162) -u(17162) -f(17818,81,1,76,74,2,0) -u(17602,76,74,2,0) -f(17529,83,1,75,19,1,0) -f(17426,84,1,66,65,1,0) -u(17882,66,65,1,0) -f(18122,86,1,65) -u(18129) -f(9955,88,1,1) -u(7964) -f(27611,88,1,63) -u(11635) -f(17594,84,63,1) -n(17930) -n(17962,6) -u(17946) -u(17938) -f(24034,81,6,2) -f(14105,76,2,5) -f(14106,77,3,2) -u(14090) -u(13682) -u(29260) -f(16402,75,2,1) -n(16458,7) -u(16274) -f(16946,77,6,1) -f(16617,68,1,2) -n(18918,1,0,1,0) -f(17066,67,1) -n(17258,9) -u(14785,8) -n(30755,1) -f(17778,67,1,3) -f(18321,68,1,2) -f(18322,69,1,1) -f(17178,65,1) -f(18522,63,1,9) -f(19762,64,2,7) -f(28954,58,7,11,10,1,0) -f(28698,59,3,8) -u(28082) -f(28074,61,3,5) -f(28450,62,4,1) -f(16226,54,1) -u(16330) -u(16218) -f(20259,51,1) -f(16226,46,1,2) -f(16226,38,2,1) -f(17794,37,1) -u(17682) -u(18186) -f(16226,30,1,4) -f(20259,27,4,2) -f(16226,22,2,1) -f(13216,19,1,2) -u(16440) -u(16256) -u(13192) -u(16440) -u(16256) -u(12576) -u(12640) -u(12632) -u(12584) -u(23800) -u(23824) -u(23816) -u(12536) -u(12704) -u(12680) -u(12616) -u(16256) -u(12576) -u(12640) -u(12632) -u(12584) -u(23800) -u(23824) -u(23816) -u(12536) -u(12704) -u(12680) -u(12616) -u(16256) -u(12576) -u(12640) -u(12632) -u(12584) -u(23800) -u(23824) -u(23816) -u(12536) -u(12704) -u(12680) -u(12616) -u(16256) -u(12576) -u(12640) -u(12632) -u(12584) -u(23800) -u(23824) -u(23816) -u(12536) -u(12704) -u(12680) -u(12616) -u(16256) -u(12832) -u(13080) -u(13088) -u(13096) -u(13184) -u(13176) -u(12904) -u(12920) -u(13120) -u(13168) -u(12896) -u(12856,1) -n(12912) -u(14600) -u(14600) -u(14608) -u(14616) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(8572) -u(8548) -u(3084) -u(1068) -u(3196) -u(2012) -f(16226,19,1,10) -u(16218,1) -n(16330,9) -f(16290,19,9,1) -n(17178,3) -u(18914) -f(19138,19,3,1) -u(19250) -f(30755,19,1,2) -f(18474,17,2,25) -f(18442,18,5,4) -n(19146,16) -f(19386,19,2,5) -n(19394,9) -f(18482,17,9) -f(18450,18,4,5) -f(19138,16,5,1) -u(19250) -f(20259,16,1,24) -f(19138,14,24,17) -f(19250,15,9,8) -f(17105,13,8,13853,0,24,5) -f(16218,14,1,1) -n(16850,13847,13842,2,3) -u(16266,13797,13768,8,2) -f(16218,16,13,3) -n(16226,6) -f(16330,17,1,5) -f(16218,18,3,2) -f(16710,16,2,32,0,23,9) -u(18393,32,0,0,1) -f(16658,18,1,31,30,0,1) -u(16265,31,0,0,1) -u(13286,31,0,22,9) -u(16286,31,0,28,2) -u(16726,31,0,19,12) -u(16638,31,0,22,9) -u(16670,31,0,19,12) -u(16286,31,0,28,2) -u(16890,30,28,0,2) -u(16074,30,28,0,2) -u(17562,30,28,0,2) -u(16081,30,0,0,1) -u(17753,30,1,0,1) -u(17770,30,29,0,1) -u(17802,30,29,0,1) -u(17666,30,29,0,1) -u(16578,15) -u(16569) -u(14986,1) -u(14962) -u(15129) -u(15402) -u(19170) -u(24121) -f(16586,36,1,14) -u(19634) -u(19130) -u(19118,14,0,13,0) -u(19126,14,0,9,0) -u(19090,14,5,9,0) -u(19098,14,5,9,0) -u(19082,14,5,9,0) -u(16438,14,0,11,3) -u(16434,14,11,0,3) -u(16378,14,11,0,3) -u(17026,14,11,0,3) -f(16194,48,2,12,9,0,3) -u(16198,12,0,12,0) -u(16214,1,0,1,0) -u(11595) -u(7924) -u(1268) -u(1244) -u(1428) -u(1428) -u(1436) -u(29579) -f(16712,50,1,11,0,4,7) -u(16630,11,0,8,3) -u(16646,11,0,8,3) -u(16198,11,0,11,0) -u(16874) -u(16046,11,0,8,3) -u(16046,10,0,7,3) -u(16062,9,0,6,3) -u(17750,9,0,6,3) -u(17622,9,0,5,4) -u(17642,1) -u(17422,1,0,1,0) -u(17862,1,0,1,0) -u(17870,1,0,1,0) -u(18106) -u(18113) -u(27603) -u(11635) -f(18170,60,1,8,4,1,3) -u(18169,7) -u(27635) -u(10595) -f(29675,61,7,1) -u(8244) -u(8220) -u(8236) -u(8116) -u(8124) -u(11764) -u(8188) -u(8172) -f(18016,57,1) -u(18072) -u(18248) -u(18249) -u(27659) -u(11851) -f(17514,56,1) -u(19752) -u(3260) -u(3108) -u(3116) -f(18298,34,1,15,14,0,1) -u(18297,15,0,0,1) -u(27683) -u(29715) -f(16897,26,15,1) -f(18393,16,1,13730,0,49,6) -f(16266,17,32,13689,13635,8,1) -f(12761,18,26,10622,0,33,5) -f(13146,19,12,10589,10584,0,5) -f(12866,20,2,10587,10549,33,5) -f(12858,21,1,27) -f(13042,22,3,14) -f(20706,23,7,7) -f(20754,24,1,6) -f(22386,25,3,3) -f(21658,22,3,10) -u(21746) -u(21450) -u(21250) -u(21138,1) -n(21226,4) -u(25346,4,3,0,0) -u(10051) -u(6244) -u(8804) -u(5460) -u(156,3) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236,2) -n(4244,1) -u(6492) -f(2260,32,1) -u(172) -f(21234,26,1) -u(10067) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -u(11788) -u(1108) -f(21242,26,1,4) -u(21114) -f(24923,28,1,3) -f(16394,21,3,10555,10550,2,3) -u(17130,10555,10552,0,3) -u(16282,10555,10518,25,3) -f(16234,24,1,9) -f(16330,25,5,4) -f(16218,26,1,3) -f(16890,24,3,10543,10540,0,3) -f(16074,25,1,10542,10539,0,3) -u(17562,10542,10539,0,3) -u(16081,10540,0,45,4) -f(17753,28,4,10536,134,26,4) -f(17760,29,3,1) -u(17808) -u(18192) -u(18192) -u(27643) -u(9755) -f(17770,29,1,10530,10500,26,4) -u(16514,1) -n(17802,10529,10499,27,3) -u(17666,10529,10499,26,4) -f(15906,32,3,2) -u(15177) -f(16578,32,2,248,247,1,0) -f(16514,33,1,7) -n(16566,1,0,1,0) -n(16569,239,6,0,0) -u(14986,56) -u(14962,55) -u(15129) -f(15258,37,3,36) -u(15250) -f(15234,39,2,33) -f(14986,40,1,28) -u(14962,27) -u(15730) -f(19354,43,1,26) -u(19362,23) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -u(26010) -u(22730,21) -u(25418) -u(25425) -f(9131,55,5,16) -f(3548,56,4,2) -n(11795,8) -f(10035,57,4,4) -f(29236,56,4,2) -f(26026,52,2) -f(19498,44,2,3) -u(24050) -f(19714,41,3,1) -u(19658) -u(19666) -u(19514) -u(19602) -u(29850) -f(15282,40,1,2) -f(24162,41,1,1) -f(15434,40,1,2) -f(19714,39,2,1) -u(19658) -u(19666) -u(19514) -u(19602) -u(29850) -f(15402,37,1,6) -f(19170,38,2,4) -u(24018,3) -u(22298) -u(22330) -f(24106,39,3,1) -f(18866,37,1,10) -u(18858) -f(19866,39,1,9) -u(19890,1) -u(29826) -f(19898,40,1,4) -n(19930) -u(29874) -f(19714,35,4,1) -u(19658) -u(19666) -u(19514) -u(19602) -u(29850) -f(16498,34,1,4) -f(18834,35,1,3) -u(18858) -f(16522,34,3,153) -f(16602,35,1,150) -u(16530) -u(17122) -u(16866,147) -u(16273) -u(12770,1) -u(13138) -f(12850,40,1,136) -f(13114,41,1,133) -f(12793,42,2,92,0,1,0) -f(18081,43,2,90) -u(18082) -u(17826) -u(16770) -u(16410,89) -u(17162) -u(17162) -u(16321) -f(16234,51,1,6) -f(16330,52,4,2) -u(16218) -f(16906,51,2,82) -f(16034,52,1,81) -f(17610,53,1,80) -f(17698,54,1,79) -u(17426,77) -u(17882) -f(18122,57,2,75) -f(18129,58,1,74) -f(27611,59,3,71) -f(11635,60,2,69) -f(17954,55,69,2) -u(17946) -f(17938,57,1,1) -f(24034,47,1) -f(14097,42,1,39,0,2,0) -f(13682,43,3,7) -u(29260) -f(10579,45,1,6) -u(9523) -f(14234,43,6,29,27,2,0) -f(13666,44,3,15,14,1,0) -f(14546,45,1,14,13,1,0) -u(14274,13,12,1,0) -f(14274,47,1,12,11,0,0) -f(14282,48,5,2) -u(13690) -u(29252) -u(10579) -u(9523) -f(14290,48,2,5) -u(24074) -f(24170,46,5,1) -u(24162) -f(14138,44,1,5) -n(23490,6,5,0,0) -f(16402,41,6,2) -f(16226,40,2,10) -f(16330,41,2,8) -u(16218) -f(19138,38,8,3) -f(19250,39,1,2) -f(24098,35,2) -u(24114) -f(16586,34,2,1) -u(19634) -f(18905,34,1,25,0,6,0) -f(18898,35,1,24) -u(15590,23,0,13,0) -u(15578,20) -u(18930,20,10,4,0) -u(18930,20,16,3,0) -u(18937,19,1,3,0) -u(18938,19,18,1,0) -u(21354,19,16,3,0) -u(21362,19,15,3,0) -u(21361) -u(3675) -u(3435) -u(24900) -u(24900) -f(52,49,7,1) -n(324,7) -f(76,50,6,1) -f(3604,49,1) -u(1052) -f(11780,49,1,3) -f(1052,50,2,1) -f(22370,40,1) -u(22377) -u(3683) -f(15954,37,1,3) -u(14985) -f(14962,39,1,2) -u(15129,1) -u(15258) -u(15250) -u(15234) -u(14986) -u(14962) -u(15730) -u(19354) -u(19362) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -u(26010) -u(22730) -u(25418) -u(25425) -u(9131) -f(30755,40,1) -f(20259,36,1) -f(18298,32,1,10276,10247,26,3) -f(18178,33,1,1) -n(18297,10274,0,0,1) -f(9955,34,16,2) -u(7964) -f(27683,34,2,10256) -f(29715,35,1,10255) -f(9699,36,10245,5) -n(9707) -f(18034,29,5,1) -u(18034) -f(19226,29,1) -u(19234) -u(19226) -u(19202) -u(19266) -u(19914) -u(19834) -u(19858) -f(17674,27,1,2) -f(19138,24,2) -u(19250) -f(16402,21,2,4) -f(16098,22,3,1) -f(16450,19,1,21) -u(16266) -f(16226,21,11,9) -f(16330,22,4,1) -n(24923,4) -f(16937,21,4,1) -f(12841,18,1,3006,0,14,2) -f(13034,19,11,2995,2993,1,1) -f(12777,20,1,2994,683,13,2) -f(16186,21,5,4) -u(17018) -f(16394,21,4,2984,2982,1,1) -u(17130,2984,2983,0,1) -u(16282,2984,2969,10,1) -u(16234,6) -f(16330,25,3,3) -f(16218,26,2,1) -f(16890,24,1,2978,2977,0,1) -u(16074,2978,2977,0,1) -u(17562,2978,2977,0,1) -u(16081,2973,0,18,1) -f(17753,28,1,2972,45,10,1) -f(16610,29,5,1) -n(17766,1,0,1,0) -u(16536) -f(17770,29,1,2965,2954,9,2) -u(17802,2965,2954,10,1) -u(17666,2965,2954,9,2) -f(15178,32,5,1) -u(15090) -u(14642) -u(14970) -u(19698) -u(19642) -u(19514) -u(19602) -u(29850) -f(15906,32,1) -u(15177) -f(16578,32,1,152,148,3,1) -u(16514,3) -n(16569,149,5,2,2) -f(14986,34,1,18) -u(14962,16) -u(15129) -f(15258,37,1,9) -u(15250) -u(15234) -u(14986,8) -u(14962) -u(15730) -u(19354) -u(19362,7) -u(19378) -u(21802) -u(21826) -u(21682) -u(29890) -u(25442) -f(26010,51,1,6) -u(22730,3) -u(25418) -f(25425,54,1,2) -u(9131) -f(11795,56,1,1) -u(10035) -u(9859) -f(26026,52,1,3) -f(22642,44,3,1) -f(15282,40,1) -f(15402,37,1,2) -f(19170,38,1,1) -u(24106) -f(18866,37,1,4) -u(18858) -f(19866,39,1,3) -u(19898,1) -n(19930,2) -u(29874) -f(19714,35,2) -u(19658) -u(19666) -u(19482,1) -u(19578) -u(29818) -f(19514,38,1) -u(19602) -u(29850) -f(16498,34,1) -u(18834) -u(18858) -f(16522,34,1,99,97,1,1) -u(16602,98,96,2,0) -u(16530,98,96,1,1) -u(17122,98,96,1,1) -u(16866,97,96,0,1) -u(16273,97,0,2,0) -f(12770,40,3,94,92,1,1) -u(13138,93,91,1,1) -f(12929,42,4,62,0,1,1) -u(16186,1) -u(17018) -f(18081,43,1,61,0,1,1) -u(18082,61,60,0,1) -u(17826,61,60,0,1) -u(16770,61,59,1,1) -u(16410,60,59,0,1) -u(17162,60,59,0,1) -u(17162,60,59,0,1) -u(16321,60,0,1,0) -f(16234,51,1,6) -f(16330,52,4,2) -f(16218,53,1,1) -f(16906,51,1,52) -u(16034) -f(17610,53,1,51) -f(17698,54,1,50) -f(17426,55,1,48) -u(17882) -f(18122,57,2,45) -u(18129) -f(27611,59,1,44) -u(11635) -f(20850,57,44,1) -f(17954,55,1) -u(17930) -f(29675,51,1) -u(8244) -u(8220) -u(8236) -u(8116) -u(8124) -u(11780) -u(30612) -f(24034,47,1) -f(14097,42,1,27,0,2,0) -f(13682,43,2,4) -u(29260) -u(10579) -f(9523,46,1,3) -f(14234,43,3,21,19,2,0) -f(13666,44,3,14,13,1,0) -f(14546,45,1,13,12,1,0) -u(14274,10,9,1,0) -u(14274,10,9,0,0) -f(14282,48,2,4) -u(13690) -u(29252) -f(10579,51,1,3) -u(9523) -f(14290,48,3,4) -u(24074) -f(24162,46,4,1) -n(24170,2) -u(24162) -f(14138,44,2,1) -n(23490,2) -n(23521,1) -u(10067) -u(6260) +u(11395) +u(3107) +f(3187,74,3) +u(2324) +f(11067,74,3,2867) +f(11491,75,2,2865) +f(3003,76,2858,4) +n(3011,3) +f(8090,64,3,1) +u(8170) +f(3874,60,1,458) +f(5938,61,6,2) +u(6618) +f(6146,61,2,1) +u(5882) +f(6162,61,1,448) +u(6722) +u(6090) +u(6089) +f(5962,65,7,3) +n(5986,6) +f(6074,66,1,5) +f(5970,67,1,4) +f(7681,65,4,432) +f(4210,66,4,129) +f(4210,67,1,128) +u(3657,4) +n(5073,121) +u(5066) +u(5066) +u(5234) +u(5082,20) +u(7946) +u(7954) +f(7906,75,2,18) +u(7921) +u(9170) +u(9178) +u(9177) +u(899) +u(787) +u(10364) +u(10364) +f(132,84,8,8) +f(68,85,3,3) +n(124,2) +u(1708,1) +n(2644) +u(1492) +u(1484) +f(500,84,1) +n(11108) +f(5474,72,1,101) +u(5474) +f(5434,74,1,14) +f(5410,75,2,8) +f(7874,76,2,6) +f(7866,77,1,5) +u(7842) +f(8586,79,2,3) +u(8618,2) +u(11530) +f(8626,80,2,1) +u(11554) +f(5418,75,1,4) +u(5401,1) +n(10210,3) +u(10202) +f(5482,74,3,85) +u(5226,77) +u(5698) +u(5674) +u(5610) +u(5626) +u(8322) +u(8274) +u(8250,2) +u(8250) +u(8354) +u(10081) +f(9450,82,2,75) +u(9506) +u(9490,1) +u(8977) +f(9562,84,1,6) +u(9433) +u(9434) +u(9410) +f(9577,88,1,2) +n(9585,1) +n(11875,2) +f(10442,84,2,19) +u(10425,1) +n(10449,17) +f(2723,86,1,14) +f(11292,87,1,13) +f(10979,88,1,12) +u(3259) +f(11811,90,9,3) +f(3187,86,3,2) +u(2324) +f(2580,88,1,1) +f(10457,85,1) +f(10514,84,1,45) +f(10513,85,1,44) +u(10521) +f(2739,87,1,43) +f(516,88,2,16) +n(820,1) +n(3131,24) +f(10690,84,24,4) +f(10673,85,3,1) +f(5330,75,1) +u(3283) +u(1844) +u(764) +u(1492) +u(1500) +u(548) +f(5386,75,1,2) +f(10154,76,1,1) +u(10170) +u(9314) +u(9338) +f(5410,75,1,5) +u(5178,1) +u(8506) +u(8474) +u(8370) +u(8418) +u(11546) +f(7874,76,1,4) +f(7866,77,3,1) +u(7842) +u(8586) +u(8626) +u(11554) +f(5506,74,1) +f(5922,68,1) +u(6458) +f(8779,68,1,2) +f(4273,66,2,267) +f(4274,67,4,263) +u(4162,22) +f(3283,69,16,1) +u(1844) +u(764) +u(1492) +u(1500) u(620) -u(2252) -f(16458,41,1) -u(16274) -f(19138,38,1) -f(24098,35,1) -u(24114) -f(16584,34,1) -u(19632) -f(18905,34,1,29,0,8,3) -u(18898,29,26,0,1) -u(15590,28,0,16,1) -f(15578,37,2,25,24,0,1) -u(18930,25,10,7,2) -u(18930,25,16,8,1) -u(18937,24,0,7,0) -u(18938) -u(21354,24,17,3,0) -u(21362,24,21,3,0) -u(21361) -u(3675) -u(3435) -u(24900) -u(24900) -f(316,49,10,1) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(6116) -u(6108) -u(9476) -f(324,49,1,11) -f(316,50,8,3) -u(6076,1) -u(5460) -f(8804,51,1,2) -u(4308,1) -n(5460) -u(6068) -u(9883) -f(6492,49,1) -n(11780) -f(22370,40,1) -u(22377) -u(3683) -f(15954,37,1) -u(14985) -u(14962) -u(30755) -f(20259,36,1) -f(18298,32,1,2806,2799,7,0) -u(18297) -f(3556,34,10,2) -u(4188,1) -u(5788) -u(7548) -u(29595) -u(9827) -f(7996,35,1) -u(8020) -u(5108) -u(30563) -f(9955,34,1,2) -u(7964) -f(27683,34,2,2792) -u(29715) -f(9699,36,2790,2) -f(17674,27,2,5) -f(16402,21,5,1) -f(16218,18,1,2) -n(16226,11) -f(16330,19,3,8) -f(16218,20,5,3) -f(16290,18,3,1) -n(19138) -u(19250) -f(20259,18,1,20) -f(18410,17,20,9) -f(14705,18,3,5) -f(14714,19,4,1) -u(14969) -f(14982,18,1,1,0,1,0) -u(19710,1,0,1,0) -f(20259,16,1,13) -f(16914,15,13,50) -f(16410,16,10,37) -u(17162) -u(17162) -u(16322) -u(16218,2) -n(16234,21) -f(16218,21,5,1) -n(16330,15) -f(16218,22,7,8) -f(16906,20,8,14) -f(16034,21,1,13) -f(17610,22,7,6) -u(17698) -f(17946,24,5,1) -u(17938) -f(16762,16,1) -n(16970,2) -f(19138,14,2,4) -f(17306,13,4,18) -f(16362,14,6,12) -f(17226,15,1,2) -n(19329,9) -f(17314,13,9,12) -u(16370) -u(17242,2) -n(19330,10) -f(17322,13,10,7) -u(17234) -f(17250,15,1,6) -f(17650,13,6,6614,6596,3,1) -f(15178,14,5,7) -u(15090) -u(14642) -u(14970) -f(19698,18,1,6) -u(19642) -u(19514) -u(19602) -u(29850) -f(15906,14,6,1) -u(15177) -f(16154,14,1,3) -n(17298,1) -n(18290,6597,6593,3,1) -u(18289) -f(9955,16,14,1) -u(7964) -u(9979) -f(27675,16,1,6582) -f(9739,17,3,6579) -f(9699,18,6564,13) -n(9707,2) -f(17706,13,2,28) -f(18274,14,17,11) -f(17978,13,11,1970,1969,0,1) -u(17210,1970,1962,4,1) -u(16354,2) -f(19322,16,1,1) -f(18218,15,1,1968,1963,3,2) -f(14866,16,4,1964,1959,4,1) -u(14866,1964,1963,0,1) -u(15074,1964,1959,4,1) -f(14890,19,2,90,89,1,0) -f(15562,20,1,2) -u(15562) -u(15874) -u(19441) -f(18970,20,2,87) -u(18978,87,86,1,0) -f(18922,22,5,79,78,0,1) -u(18937,77,0,4,2) -u(21354,77,75,1,1) -u(21362,76,70,3,1) -u(21361) -f(3675,27,1,75) -u(3435) -f(24900,29,1,74) -f(9100,30,2,2) -f(20,31,1,1) -f(24900,30,1,70) -f(36,31,20,1) -n(52) -n(316,10) -u(12,1) -n(6076,6) -f(4308,33,2,1) -n(5460,3) -f(5452,34,1,1) -n(6068) -u(9883) -f(8804,32,1) -u(5460) -u(6068) -u(9883) -f(27804,32,1) -n(27820) -f(324,31,1,26) -f(76,32,17,9) -f(1796,31,9,1) -n(3604,4) -f(1052,32,1,3) -f(5588,31,3,1) -n(11780,6) -f(1108,32,4,1) -n(1804) -f(27194,25,1) -u(27042) -u(26618) -f(23889,23,1,2) -u(23937) -f(20961,25,1,1) -u(3483) -f(18961,22,1,2) -u(18954) -u(19802) -u(28930) -u(28082) -u(28074) -f(23970,22,2,1) -u(23626) -u(23962) -f(15442,19,1,1872,1868,3,1) -f(15441,20,2,1870,0,3,1) -f(15346,21,11,66,64,0,2) -f(15314,22,10,36) -f(14994,23,2,9) -u(19722) -u(19674) -u(19554) -u(19626) -u(29898) -f(18890,23,9,25) -f(18874,24,14,11) -u(18850) -f(19874,26,2,9) -u(19930) -u(29874) -f(15322,22,9,20,18,1,1) -f(15305,23,1,12,0,0,2) -f(15368,24,1,1) -u(15376) -u(15216) -u(15488) -u(26248) -u(26520) -u(26520) -u(26504) -u(26968) -u(26936) -u(26952) -u(22440) -u(22430,1,0,1,0) -u(22430,1,0,1,0) -u(30262,1,0,1,0) -u(30270,1,0,1,0) -u(30254,1,0,1,0) -u(30234) -u(22978) -u(22986) -u(30226) -u(30230,1,0,1,0) -u(22518,1,0,1,0) -u(22502,1,0,1,0) -u(25014,1,0,1,0) -u(25000) -u(22472) -u(22504) -u(22480) -u(20568) -u(20576) -u(20736) -u(20593) -u(3459) -u(11812) -u(3172) -u(4284) -u(9164) -u(27379) -u(4260) -u(5612) -f(15394,24,1,9) -u(15154,1) -n(15386,8) -f(19178,26,2,6) -u(24010) -u(22306) -u(22322) -f(15410,24,6,1) -u(15416) -f(24266,23,1,2) -u(24258) -u(24234) -f(24274,23,2,5) -u(24242) -f(24249,25,1,4) -f(15450,21,4,1785,1783,2,0) -f(10067,22,5,1) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(15058,22,1,1722,1720,2,0) -u(15866,1722,1720,2,0) -f(10067,24,1,6) -u(6260) -u(3092) -u(5460) -u(156,4) -u(3748) -u(6132) -u(4060,3) -u(4004,2) -u(4004) -f(4044,32,2,1) -f(6116,31,1) -u(8052) -f(5468,28,1) -u(1924) -f(6060,28,1) -f(15826,24,1,1715,1713,2,0) -u(15706,1715,1713,2,0) -u(14954,1) -n(15722,1712,1710,2,0) -u(19474,1712,1710,2,0) -u(19370) -u(10067,3) -u(6260) -u(3092) -u(5460) -u(156,2) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236,1) -n(4244) -f(2260,33,1) -u(9220) -u(2188) -f(19346,29,1,4) -u(19346) -u(19530) -u(24050) -f(22690,29,4,1705) -f(10067,30,2,7) -u(6260) -f(3092,32,1,6) -u(5460) -u(156,5) -u(3748,4) -u(6132) -u(4060,3) -u(4004) -u(4004) -f(4236,40,1,1) -u(1804) -f(4244,40,1) -f(8068,37,1) -f(3900,35,1) -u(3836) -f(5468,34,1) -u(2292) -f(22738,30,1,1696,1694,2,0) -f(10067,31,1,5) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6124,1) -n(6132,4) -u(4060,3) -u(4004) -u(4004) -f(4236,41,1,2) -f(6492,42,1,1) -u(9715) -f(6116,38,1) -u(8052) -f(22602,31,1,4) -n(22610,5) -u(22618) -u(24058,1) -n(24074) -n(24082,3) -f(22826,31,3,8) -u(22674) -u(22674) -f(22634,34,2,6) -u(22842,1) -u(22842) -u(22697) -f(22850,35,1,5) -u(22850) -u(22705) -f(25322,31,5,119) -u(25329) -f(9115,33,5,112) -f(3548,34,10,4) -n(29276,98) -f(27459,35,13,85) -f(10043,36,23,62) -f(30595,37,58,4) -f(9955,33,4,2) -u(7964) -f(25458,31,2,1540,1538,2,0) -u(25458,1540,1538,2,0) -f(25465,33,2,1538) -f(9139,34,7,1531) -f(1812,35,15,1515) -n(3548,1) -f(25482,31,1) -n(26018,13) -u(10067,2) -u(6260) -u(620,1) -u(2252) -f(3092,34,1) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -f(25994,32,1) -u(22354) -u(22362) -f(26002,32,1,10) -f(15842,26,10,2) -u(15746) -f(22666,28,1,1) -f(15218,22,1,4) -u(10067,2) -u(6260) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236) -f(15298,23,2) -f(15242,22,2,3) -u(15266) -u(19730) -u(19682) -u(19690) -u(19506) -u(19594) -u(29842) -f(15274,22,3,5) -f(24162,23,1,4) -f(15314,22,4,37) -f(14994,23,6,3) -u(19722) -u(19674) -u(19554) -u(19626) -u(29898) -f(18890,23,3,28) -f(18874,24,13,15) -u(18850) -f(19874,26,6,9) -u(19882,1) -u(29826) -f(19930,27,1,8) -u(29874) -f(15466,22,8) -f(15338,23,6,2) -f(15482,21,2,3) -n(19162,5) -f(17986,13,5,35) -u(17986) -f(17218,15,29,6) -f(17970,16,1,5) -f(17994,17,3,2) -u(17306) -f(18034,13,2,1) -u(18034) -f(18986,10,1,6) -u(19002) -f(24074,9,6,2) -n(29260,78) -f(10579,10,9,69) -f(9523,11,22,47) -f(19258,7,47,2,1,0,0) -n(19298,77,31,0,37) -f(17362,8,2,3) -u(19306) -u(19282) -u(19922) -u(19842) -u(19850,1) -u(29866) -f(19938,13,1,2) -u(29882) -f(19024,8,2,57,0,18,39) -u(19016,57,18,0,39) -u(14592,1) -u(16384) -u(17032) -u(16200) -u(16200) -u(16880) -u(17536) -u(17624) -u(18040) -u(17632) -u(18240) -u(18160) -u(3316) -u(3324) -u(4996) -u(4988) -u(3132) -u(3140) -u(2108) -f(15992,10,1,48,0,6,42) -u(16024,48,6,0,42) -f(16112,12,1,47,0,5,42) -u(17656,47,5,0,42) -u(17472,3,0,1,2) -u(17480,3,0,1,2) -u(17910,2,0,1,1) -u(19014,2,0,1,1) -f(18998,18,1,1,0,1,0) -f(19104,16,1) -f(19064,14,1,44,0,8,36) -u(19064,44,0,9,34) -u(19088,44,1,9,34) -u(19096,44,1,9,34) -u(19080,44,1,9,34) -u(17520,44,0,3,41) -u(17688,44,0,3,41) -u(17200,44,0,3,41) -u(17200,44,3,0,41) -u(19104,44,0,9,35) -u(19112,44,9,1,34) -u(19120,44,0,9,34) -u(19088,44,1,9,34) -u(19096,44,1,9,34) -u(19080,44,1,9,34) -u(15984,44,0,3,41) -f(16088,30,1,43,0,2,41) -u(17080,31) -u(16824) -u(16240) -u(12944) -u(23784) -u(23784) -u(23848) -u(23840) -u(12936) -u(12952) -u(12960,6) -u(13024,5) -u(12968,2) -u(12968) -u(23752) -u(23744) -u(23016) -u(23024) -u(23184,1) -u(30352) -u(30352) -u(30368) -u(30344) -u(30384) -u(30392) -u(30400) -u(30464) -u(30416) -u(30424) -u(3316) -u(3324) -u(4996) -u(4988) -u(3132) -u(3140) -u(2108) -f(30376,49,1) -u(30360) -u(23000) -u(3300) -u(1676) -u(8636) -u(8628) -u(8596) -u(8604) -u(860) -u(4364) -u(740) -u(3100) -u(5564) -u(9883) -f(13824,43,1,3,0,1,2) -u(13696,2) -u(13704) -u(13718,2,0,1,1) -u(13864) -u(13950,2,0,1,1) -u(13902,2,0,1,1) -u(13856,1) -u(12984) -u(24640) -u(24510,1,0,1,0) -u(24576) -u(24576) -u(24526,1,0,1,0) -u(24488) -u(24496) -u(24672) -u(23216) -u(24568) -u(12976) -u(12992) -u(13016) -u(2779) -f(14176,50,1) -u(14208) -u(21662,1,0,1,0) -u(21462,1,0,1,0) -u(21466) -u(25313) -u(9955) -u(7964) -u(7556) -u(29691) -f(14064,44,1) -u(14072) -u(14080) -u(13960) -u(13944) -u(13896) -u(13856) -u(12984) -u(14304) -u(24648) -u(24592) -f(20814,42,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(8572) -u(8548) -u(4276) -u(3548) -f(16240,41,1,25) -u(12816) -u(13064) -u(13152) -u(12880) -u(12808) -u(12240,22) -u(12264) -u(12272) -u(12248,21) -u(12336,20) -u(12352) -u(12360) -u(27880) -u(3316,1) -u(3324) -u(4996) -u(4988) -u(3156) -u(3172) -u(9436) -u(916) +f(9786,69,1,5) +u(9793) +f(4218,68,5,238) +u(3649,115) +f(4138,70,2,1) +u(5714) +u(4945) +f(4146,70,1,76) +u(5034) +u(5034,75) +u(4946,1) +u(4954) +f(5321,73,1,74) +u(4882,1) +u(4890) +u(4898) +u(4962) +f(5282,74,1,4) +u(5642) +u(8362) +u(8410) +u(9274) +u(9234) +f(9538,80,2,2) +u(9538) +u(3283) +u(1844) +u(764) +u(1492) +u(100) +u(940,1) +u(1756) +u(1748) +u(11236) +u(3395) +f(1044,87,1) +u(1004) +f(5562,74,1,6) +u(5202,4) +u(5306) +u(4882,1) +u(4938) +f(5642,77,1,3) +u(8362) +u(8410) +u(9274) +u(9234) +u(9538) +u(9538) +f(3283,84,2,1) +u(1844) +u(764) +u(1492) +u(1500) +u(684) +f(9514,75,1,2) +u(3283) +u(1844) +u(764) +u(1492) +u(100,1) u(940) -u(924) -f(20814,55,1,5,0,5,0) -u(25102,5,0,5,0) -u(25074) -u(25081) -u(25042) -u(25030,5,0,5,0) -u(23014,2,0,2,0) -u(20766,2,0,2,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(756,1) -n(764) -u(8484) -u(8492) -u(9867) -f(25154,61,1) -u(25146) -u(25194) -u(24334,1,0,1,0) -u(24870,1,0,1,0) -u(24806,1,0,1,0) -u(24806,1,0,1,0) -u(24766,1,0,1,0) -u(27707) -u(7956) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4020) -u(5660) -f(25190,61,1,2,0,2,0) -u(25166,2,0,2,0) -u(24769) -u(24745,1) -u(24753) -u(3691) -u(11883) -u(11891) -f(24810,64,1) -u(24838,1,0,1,0) -u(24790,1,0,1,0) -u(20393) -u(20402) -u(20409) -u(29643) -u(11859) -u(9835) -f(27856,55,1) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(27459) -u(10043) -u(30571) -u(9771) -f(27872,55,1) -u(27864) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25266) -u(25249) -u(24338) -u(24321) -u(24858) -u(24778) -f(27912,55,1) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(25190,1,0,1,0) -u(25166,1,0,1,0) -u(23265) -u(10059) -u(6252) -u(8804) -u(5460) -u(164) -u(3748) -f(27920,55,1) -u(3316) -u(3324) -u(4996) -u(4988) -u(3132) -u(3140) -u(2108) -f(27928,55,1) -u(3316) -u(3324) -u(4996) -u(4988) -u(3156) -u(3172) -u(9436) -u(916) +u(1756) +u(2364) +f(1500,80,1) +u(684) +f(8314,74,1,53) +u(8386) +u(9266) +u(9242) +u(9474) +u(9482) +u(10410) +u(10418) +u(10474) +u(10379,17) +n(10955,22) +n(10971,14) +f(9474,74,14,9) +u(9482) +f(9550,76,3,5,0,5,0) +n(11875,1) +f(9586,74,1) +u(9586) +u(9466) +u(9426) +f(5753,72,1) +u(5009) +f(5114,70,1,15) +u(5122) +u(5114) +u(5122) +u(5170) +u(5154,13) +u(5257) +u(5370,7) +u(5362) +u(5346) +u(5170,5) +u(5154) +u(5634) +u(8258) +u(8266) +u(8282) +u(9258) +u(9282) +u(9218) +u(11538) +u(10506) +u(10682) +u(9498,4) +u(10482) +u(10489) +u(2731,3) +u(3611) +f(3251,97,2,1) +f(3187,95,1) +u(2324) +u(2220) +u(11475) +f(10698,92,1) +f(5394,80,1,2) +f(10154,81,1,1) +u(10170) +u(9314) +u(9338) +f(5458,77,1,3) +u(8122) +f(10137,79,1,2) +f(7858,77,2,3) +u(7850) +f(8578,79,1,2) +f(8594,80,1,1) +f(8498,75,1,2) +u(8458) +u(8466) +u(8330,1) +u(8394) +u(11514) +f(8346,78,1) +u(8402) +u(11522) +f(5586,70,1,16) +u(5570) +u(7914) +u(7914) +u(7921,15) +u(7922) +u(9170) +u(9178) +u(9177) +u(899) +u(787) +u(10364) +f(10364,82,1,14) +f(124,83,4,1) +n(132,4) +f(68,84,2,2) +f(868,83,2,1) +u(324) +f(3596,83,1,4) +f(284,84,3,1) +f(9362,74,1) +u(9369) +f(8898,70,1,3) +u(8906) +f(9378,72,1,2) +f(11202,70,2) +u(11194) +f(4385,69,2,119) +f(3267,70,1,1) +u(1828) +u(772) +u(1492) +u(100) +u(1044) +u(1212) +u(1164) +u(1164) +f(3638,70,1,2,0,2,0) +n(4450) +u(4698) +u(4778,1) +u(10146) +f(9834,72,1) +f(4546,70,1,77) +u(4426,35) +u(4434) +u(4442,25) +u(3283,2) +u(1844) +u(764) +u(1492) +u(100) u(940) -u(932) -f(27936,55,1) -u(3316) -u(3324) -u(4996) -u(4988) -u(3156) -u(3172) -u(1068) -u(3196) -u(2012) -f(27952,55,1) -u(27944) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -f(27968,55,1) -u(27960) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(804) -u(796) -u(1596) -u(2148) -f(27976,55,1) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(8572) -u(5828) -f(27984,55,1) -n(28000) -u(27992) -u(3316) -u(3324) -u(4996) -u(4988) -u(3156) -u(3172) -u(27404) -u(27396) -u(27412) -u(4956) -u(3220) -u(3148) -f(28008,55,1) -u(3316) -u(3324) -u(4996) -u(4988) -u(3156) -u(3172) -u(9436) -u(916) +u(1756) +u(1220) +u(1164) +u(868,1) +u(316) +f(1164,83,1) +f(4554,74,1,23) +u(4578) +u(4561) +f(9754,77,1,22) +u(9762) +f(4530,79,3,14) +u(4626) +u(4666) +f(4490,82,9,5) +f(4506,83,1,1) +n(9890,3) +u(9018) +f(9770,79,3,5) +u(4538) +u(4634) +f(4514,82,1,4) +f(9042,83,1,3) +f(4610,73,3,10) +u(4649) +f(3267,75,6,1) +u(1828) +u(772) +u(1492) +u(1500) +u(684) +f(3283,75,1) +u(1844) +u(764) +u(1492) +u(100) u(940) -u(908) -u(29324) -u(29348) -u(10027) -u(10003) -f(28016,55,1) -u(3268) -u(5596) -u(5684) -u(5564) -u(27524) -u(5836) -u(9723) -u(9667) -f(28032,55,1) -u(28024) -u(3316) -u(3324) -u(4996) -u(4988) -u(3156) -u(3172) -u(9436) -u(916) +u(1756) +u(1220) +u(1164) +u(1164) +f(4594,75,1,2) +u(9010) +f(9002,77,1,1) +f(4458,71,1,30) +u(4466) +u(4474,24) +u(4522,1) +u(4522) +f(4586,74,1,23) +u(4578) +u(4561) +u(9754) +u(9762) +f(4530,79,5,14) +f(4626,80,3,7) +u(4666) +u(4490) +f(4506,83,1,1) +n(9890,5) +u(9018) +f(9018,80,5,4) +f(9770,79,4) +u(4538) +u(4634) +u(4514) +u(9042) +f(4610,73,4,6) +u(4649) +f(3283,75,3,1) +u(1844) +u(764) +u(1492) +f(4594,75,1) +u(9010) +f(11131,75,1) +f(4657,71,1,12) +f(3267,72,3,2) +u(1828) +u(772) +u(1492) +u(100) +u(1044) +u(1212,1) +u(1164) +u(1164) +u(1364) +f(1268,78,1) +f(4602,72,1) +n(4674,6) +f(4618,73,1,1) +n(4642,2) +u(4594) +u(9010) +f(9002,76,1,1) +f(9706,73,1,2) +u(9730) +u(9714) +f(4594,76,1,1) +u(4594) +u(9010) +f(4705,70,1,18) +f(4394,71,5,12) +u(4786) +u(4746,8) +u(4746) +f(4754,75,1,4) +u(4418) +u(11268) +u(3395) +f(2859,79,1,3) +f(4762,75,3) +u(10098) +f(10146,73,3) +u(10170) +u(9314) +u(9338) +f(10162,73,3,1) +u(10154) +f(9850,71,1) +u(9842) +u(9826) +f(8779,70,1,2) +n(8986,1) +u(8930) +u(3267) +u(1828) +u(2644) +u(1492) +u(100) u(940) -f(12368,51,1) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(8572) -u(8548) -u(8532) -u(2044) -f(12280,50,1) -u(12256) -u(12344) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20830,1,0,1,0) -u(20657) -u(21178) -u(21274) -u(23274) -u(23282) -u(10059) -u(6252) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4020) -u(3204) -f(13632,47,1,3) -u(13528) -u(13528) -u(11464,1) -u(11448) -u(22102,1,0,1,0) -u(22206,1,0,1,0) -u(22182,1,0,1,0) -u(22190,1,0,1,0) -u(22174,1,0,1,0) -u(21502,1,0,1,0) -u(21522) -u(21526,1,0,1,0) -u(21522) -u(21512) -u(21854,1,0,1,0) -u(21600) -u(21630,1,0,1,0) -u(21632) -u(21934,1,0,1,0) -u(21918,1,0,1,0) -u(22105) -u(20944) -u(20864) -u(20912) -u(20856) -u(21352) -u(27192) -u(24080) -u(3284) -u(3292) -u(1268) -u(1284) -u(1260) -u(5604) -u(5692) -u(5708) -u(5732) -u(516) -f(13536,50,1,2) -u(11456,1) -u(11440) -u(11440) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25266) -u(25249) -u(25222,1,0,1,0) -u(22570) -u(22574,1,0,1,0) -u(21129) -u(21266) -f(20814,51,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25081) -u(25042) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) +u(1756) +u(1220) +u(1164) +u(1164) +u(1356) +u(1924) +u(3019) +f(11146,70,1,15) +f(9754,71,14,1) +u(9762) +f(8779,69,1) +n(11202,3) +u(11194) +f(5058,68,3,2) +u(5250) +f(11146,68,2,1) +u(9754) +u(9762) +f(6090,66,1,28) +u(6089) +f(6082,68,2,2) +u(6050) +f(6562,68,2,21) +u(5898) +f(6242,70,1,13) +f(6225,71,2,8) +f(7874,72,2,6) +f(7834,73,3,1) +u(7818) +u(10074) +f(8098,73,1,2) +f(6273,71,2,1) +n(6329,2) +f(6642,70,2,1) +n(6778,5) +u(5001,4) +n(11875,1) +f(7130,70,1) +u(7521) +f(6714,68,1,2) +u(7898) +f(8090,68,2,1) +u(8170) +f(7674,66,1,4) +f(8530,67,1,3) +f(11202,61,3,1) +u(11194) +f(5978,58,1,2) +f(5978,42,2) +u(6074) +u(5970) +f(5978,34,2,4) +f(5978,26,4,2) +u(10379) +f(9674,20,2,1) +f(5978,19,1,6) +u(6074) +f(5970,21,4,2) +f(6714,19,2) +f(7898,20,1,1) +f(8090,19,1,2) +u(8170) +f(11875,19,2,1) +f(7634,17,1,19) +f(7602,18,5,7) +n(8098) +f(8290,19,1,2) +n(8298,4) +f(7642,17,4,8) +f(7610,18,4,4) +f(7650,17,4,1) +f(8779,16,1,20) +f(8090,14,20,10) +f(8170,15,5,5) +f(6674,13,5,4339) +f(6514,14,1,4338) +f(6018,15,3,4287) +f(5978,16,9,3) +f(6074,17,2,1) +f(6417,16,1,13) +u(7570) +u(6378) +u(6017) +u(4121,13,0,4,0) +u(6034,13,9,0,0) +u(6433) +u(6345) +u(6386) +u(6034) +u(6538) +u(5858) +u(6962) +u(5865) +u(7106) +u(7118,1,0,1,0) +u(7158,1,0,1,0) +u(7470,1,0,1,0) +u(7465) +u(11043) +u(3051) +f(7122,31,1,12) +u(7146) +u(7026) +u(6298,5) +u(6289) +u(6306) +u(8434) +u(8082) +u(8065) +u(8074) +u(8042) +u(8050) +u(8034) +u(6177) +u(6178) +u(6122) +u(6626) +u(5946) +u(5945) +u(6426) +u(6338) +u(6354) +u(5946) +u(6530) +u(5834) +u(5834,4) +u(5842) +u(7098) +u(6994) +u(7002,2) +u(6874) +u(7218) +u(7226) +u(7393) +u(7401) +u(11011) +u(3515) +f(7441,60,2) +u(7441) +u(11035) +u(3419) +f(6937,56,2,1) +u(8522) +u(3283) +u(1844) u(764) -u(8484) -u(8492) -f(17158,31,1,12,0,7,5) -u(17000,12,0,4,8) -u(16928,12,0,2,10) -u(16960,12,2,0,10) -u(16998,12,0,9,3) -u(16170,12,9,0,3) -u(16464,12,0,3,9) -u(16480,12,0,3,9) -u(13240,9,0,3,6) -u(13240,9,0,3,6) -u(3260,1) -u(3108) -f(13264,41,1) -u(23441) -u(23426) -u(21121) -f(16986,41,1) -u(16990,1,0,1,0) -u(16990,1,0,1,0) -u(17150,1,0,1,0) -u(17074) -u(17142,1,0,1,0) -u(19146) -u(19386) -f(18770,41,1,4,2,0,2) -u(18770,4,2,0,2) -u(18768,4,0,1,3) -u(18640,1) -u(18808) -u(18632) -u(18688) -u(15616) -u(14864) -u(14864) -u(15688) -u(15640) -u(15824) -u(15704) -u(15704) -u(15648) -u(15720) -u(19472) -u(19368) -u(22688) -u(22736) -u(22608) -f(18746,44,1,3,1,1,1) -u(18722,3,2,0,1) -u(18592,3,0,1,2) -u(15610,2,1,0,1) -u(14874,2,1,0,1) -u(14874,2,1,0,1) -u(15702,2,0,1,1) -u(15658,2,1,0,1) -u(15850,2,1,0,1) -u(15758,2,0,1,1) -u(14954,1) -u(14634) -f(15664,54,1) -u(15680) -u(24161) -f(20814,47,1,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20777) -u(3651) -u(3427) -u(27364) -u(8612) -u(4364) -u(724) -u(812) -u(804) -u(796) -u(844) -u(828) -f(18776,41,1) -u(20814,1,0,1,0) -u(25102,1,0,1,0) -u(25074) -u(25086,1,0,1,0) -u(25046,1,0,1,0) -u(25030,1,0,1,0) -u(23014,1,0,1,0) -u(20766,1,0,1,0) -u(20830,1,0,1,0) -u(20657) -u(20650) -u(20721) -u(3491) -u(27812) -f(23590,41,1,1,0,1,0) -u(13232) -f(16318,39,1,1,0,1,0) -n(17174,2,0,1,1) -f(17174,40,1,1,0,1,0) -u(17014,1,0,1,0) -u(16178) -u(16472) -f(16006,10,1,1,0,1,0) -u(16018) -u(16066) -u(16054,1,0,1,0) -f(16014,10,1,7,0,4,3) -u(2803,1) -u(11691) -f(17094,11,1,3,0,2,1) -f(16834,12,1,2,1,0,1) -u(16254,2,0,1,1) -u(16225,1) -n(18368) -u(18376) -u(16248) -u(12824) -u(13072) -u(13160) -u(12888) -u(12856) -u(13040) -u(20704) -u(20712) -u(20688) -u(20696) -u(3475) -u(24876) -u(9076) -f(17118,11,1,3,0,2,1) -u(16858,3,2,0,1) -u(16978,3,2,0,1) -u(17042,3,2,0,1) -u(17062,3,0,2,1) -u(17054,3,0,2,1) -u(17014,3,0,3,0) -u(16178) -u(16728) -f(16678,20,1,2,0,2,0) -u(16686,2,0,2,0) -u(18430,2,0,2,0) -u(18608) -u(14985) -u(14962) -u(15766,2,0,2,0) -u(15672) -f(19034,8,2,6) -f(23578,9,5,1) -f(19274,8,1,9,8,0,0) -f(19282,9,1,8) -f(19922,10,2,6) -u(19842) -u(19938) -u(29882) -f(26624,3,6,167) -u(26648) -u(26656) -f(26646,6,1,1,0,1,0) -n(26678,2,0,2,0) -f(20969,7,1,1) -u(20977) -u(3523) -u(6180) -u(6100) -u(7540) -u(29587) -u(9827) -f(27270,6,1,163,0,102,14) -u(23249,3) -u(10067) -u(6260) -f(3092,10,1,2) -u(5460) -u(156) -u(3748,1) -u(6132) -u(4060) -u(4004) -u(4004) -u(4236) -f(3900,13,1) -u(3836) -f(27273,7,1,160,47,67,4) -u(27240,2) -u(26480) -u(26544) -u(26488) -u(26424) -u(26560,1) -u(23240) -u(26558,1,0,1,0) -u(26570) -u(26590,1,0,1,0) -u(26582,1,0,1,0) -u(26417) -u(21194) -u(20934,1,0,1,0) -u(20934,1,0,1,0) -u(11667) -u(7948) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4044) -u(3988) -u(180) -u(29276) -u(27459) -u(10043) -f(26592,13,1) -u(26614,1,0,1,0) -u(26601) -u(20330) -u(20322) -f(27254,8,1,14,0,13,1) -f(27054,9,1,1,0,1,0) -u(27138) -u(11667) -u(7948) -u(3092) -u(5460) -u(156) -u(3748) -u(6132) -u(6116) -u(8052) -f(27056,9,1,5) -u(27112) -u(25712,3) -u(25912) -u(25984) -u(25768) -u(22086,1,0,1,0) -u(22094,1,0,1,0) -u(21422,1,0,1,0) -u(21374,1,0,1,0) -u(21650) -u(21702,1,0,1,0) -u(21910,1,0,1,0) -u(21542,1,0,1,0) -u(22134,1,0,1,0) -u(22222,1,0,1,0) -u(22122) -u(22198,1,0,1,0) -u(29782,1,0,1,0) -u(29790,1,0,1,0) -u(20657) -u(21178) -u(21274) -u(23274) -u(23282) -u(10059) -u(6252) -u(8804) -u(5460) -u(156) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -f(24662,15,1,1,0,1,0) -u(24510,1,0,1,0) -u(24542,1,0,1,0) -u(24526,1,0,1,0) -u(24494,1,0,1,0) -u(24502,1,0,1,0) -u(24678,1,0,1,0) -u(23726,1,0,1,0) -u(24609) -u(24601) -u(25760) -u(25792) -f(25848,15,1) -u(22982,1,0,1,0) -u(22986) -u(25816) -u(25832) -u(22920) -u(22920) -u(22856) -u(22856) -u(30200) -u(30176) -u(30176) -u(30184) -f(25720,11,1) -u(25920) -u(25984) -u(25768) -u(24480) -u(22904) -u(22912) -u(20278,1,0,1,0) -u(20286,1,0,1,0) -u(20376) -u(30064) -u(30088) -u(30080) -u(29958,1,0,1,0) -u(22870,1,0,1,0) -u(29982,1,0,1,0) -u(26058) -u(26046,1,0,1,0) -u(29966,1,0,1,0) -u(20338) -u(20346) -u(20353) -u(11675) -u(10595) -f(26272,11,1) -u(26280) -f(27064,9,1) -u(27104) -u(25704) -u(25904) -u(25984) -u(25768) -u(25848) -u(22982,1,0,1,0) -u(22986) -u(25816) -u(25832) -u(22920) -u(22920) -u(22856) -u(22856) -u(30200) -u(30176) -u(30176) -u(29984) -u(29968) -f(27072,9,1,4) -u(27128) -u(25736,1) -u(25936) -u(25952) -u(25928) -u(25928) -u(25776) -u(25784) -u(25856) -u(22982,1,0,1,0) -u(22986) -u(25824) -u(25840) -u(22928) -u(22934,1,0,1,0) -u(22946) -u(22958,1,0,1,0) -u(22942,1,0,1,0) -u(22938) -u(30198,1,0,1,0) -u(30182,1,0,1,0) -u(30182,1,0,1,0) -u(30174,1,0,1,0) -u(11667) -u(7948) -f(25744,11,1,2) -u(25944) -u(25984) -u(25768) -u(25848) -u(22982,2,0,2,0) -u(22986) -u(25816) -u(25832) -u(22920) -u(22920) -u(22856,1) -u(22856) -u(30200) -u(30176) -u(30176) -u(29984) -u(29968) -u(22350,1,0,1,0) -u(26034) -u(26054,1,0,1,0) -u(26070,1,0,1,0) -f(22934,22,1,1,0,1,0) -u(20370) -u(30072) -u(30056) -u(22681) -u(22818) -u(10051) -u(6244) -u(8804) -u(5460) -u(164) -u(3900) -u(4052) -u(4004) -u(4004) -u(4244) -u(11788) -f(25752,11,1) -u(25952) -u(25928) -u(25928) -u(25776) -u(25784) -u(25856) -u(22982,1,0,1,0) -u(22986) -u(25824) -u(25840) -u(22928) -u(22928) -u(20264) -u(20264) -u(3308) -u(8804) -u(5460) -u(164) -u(3748) -u(6132) -u(4060) -u(4004) -u(4004) -u(4244) -f(27080,9,1,2) -u(27120) -u(25696) -u(25896) -u(25976) -u(24654,1,0,1,0) -u(24510,1,0,1,0) -u(24590,1,0,1,0) -u(24526,1,0,1,0) -u(24494,1,0,1,0) -u(23712) -u(23560) -u(24609) -u(25888) -u(25968) -u(25960) -u(21174,1,0,1,0) -u(21174,1,0,1,0) -u(24466) -u(24464) -u(24398,1,0,1,0) -u(24406,1,0,1,0) -u(24422,1,0,1,0) -u(24409) -u(24382,1,0,1,0) -f(25848,14,1) -u(22982,1,0,1,0) -u(22986) -u(25816) -u(25832) -u(22920) -u(22920) -f(27262,8,1,144,0,79,3) -u(26361,144,0,0,1) -u(27307) -f(3892,11,1,6) -u(5868) -u(5876,4) -u(9835,1) -n(29300,3) -u(9691) -f(9763,13,3,2) -u(11835) -u(9899,1) -u(9747) -f(9907,15,1) -u(9843) -f(3916,11,1,26) -u(548) -f(29180,13,1,20) -u(9531,7) -u(9547) -u(9851) -f(9819,14,7,9) -u(10011) -u(9611,8) -u(9579) -u(9835) -f(9779,16,8,1) -f(29228,14,1,4) -u(9811) -u(9555) -u(9627) -u(9691) -f(29652,13,4,5) -u(30748) -f(9563,15,1,3) -u(9635) -u(9835) -f(29228,15,3,1) -u(9811) -u(9555) -u(9627) -u(9691) -f(3924,11,1) -u(3876) -f(3932,11,1,36) -u(8412) -u(8644) -f(84,14,30,3) -n(6036) -f(3940,11,3,58) -u(2084,1) -n(8476,57) -f(4100,11,57,4) -u(4108,1) -u(29732) -u(29747) -u(10011) -f(29196,12,1,3) -u(676) +u(1492) +u(100) +u(1044) +u(1212) +u(1164) +u(1164) +f(7514,34,1,7) +u(7513) +u(11067) +u(11491) +f(7569,16,7,4249) +f(6018,17,24,4222) +f(3857,18,16,4146) +f(4058,19,2,4129) +f(3938,20,1,4128) +f(3930,21,1,14) +u(4002,5) +u(4066,1) +n(8898,4) +u(8906) +u(9378) +f(9210,22,4,9) +u(9250) +u(9186) +u(9122) +u(9058,3) +n(9098) +u(10466) +f(3267,28,1,2) +u(1828) +u(2644) +u(1492) +u(100,1) +u(940) +u(1756) +u(1748) +u(612) +f(1500,32,1) u(684) -u(700) -u(660) -u(668) -u(9539,1) -u(9571) -u(9611) -u(9579) -u(9835) -f(29228,18,1,2) -u(9811) -u(9555) -u(9627) -u(9691) -f(29268,11,2,12) -u(29188) -u(9539,6) -u(9571) -u(9611) -u(9579) -u(9835) -f(29228,13,6,5) -u(9811,4) -u(9555,3) -u(9627) -u(9691) -f(27459,15,3,1) -f(29332,14,1) -u(29348) -u(10019) -f(29747,13,1) -u(9587) -u(9595) -f(27000,1,1,30) -u(26408,1) -u(26376) -u(26384) -u(26816) -u(26840) -u(26832) -u(22976) -u(22968) -u(22960) -u(30408) -u(30432) -u(30448) -u(30456) -u(30440) -u(23040) -u(22976) -u(22984) -u(23032) -u(23056) -u(23048) -u(23072) -u(23064) -u(23600) -u(23608) -u(23622,1,0,1,0) -u(21072) -u(21072) -u(21280) -u(21280) -f(27016,2,1,28) -u(26256,3) -u(26720) -u(26664) -u(26528,1) -u(26544) -u(26488) -u(26424) -u(26592) -u(26608) -u(26606,1,0,1,0) -u(20334,1,0,1,0) -f(26680,6,1) -u(26688) -u(26536) -u(26920) -u(26912) -u(26296) -u(26304) -u(27288) -u(27280) -f(26776,6,1) -u(26896) -u(22096) -u(22200) -u(22176) -u(22184) -u(22168) -u(21496) -f(27008,3,1,2) -u(27208) -u(27200,1) -u(27224) -u(27232) -u(26224) -u(26216) -u(26216) -u(26200) -u(26208) -f(27216,5,1) -u(26848) -u(30208) -u(22080) -u(22088) -u(21416) -u(21368) -u(21648) -u(21448) -u(21904) -u(21536) -u(22128) -u(22216) -u(21920) -u(21912) -u(22105) -u(5171) -u(5756) -u(596) -u(24908) -u(7852) -u(27572) -u(5652) -f(27024,3,1,23) -u(26240) -u(26632) -u(3316,1) -u(3332) -u(5028) -u(5060) -u(1252) -u(1236) -u(5636) -f(26768,6,1,2) -u(26784) -u(26760) -u(23152,1) -u(23152) -u(23160) -u(23168) -u(3316) -u(3324) -u(4996) -u(1684) -u(1676) -f(26752,9,1) -u(26904) -u(22080) -u(22088) -u(21416) -u(21368) -u(21648) -u(21448) -u(21904) -u(21536) -u(21976) -u(22032) -u(22024) -u(22008) -u(22016) -f(27088,6,1,4) -u(3300,2) -u(1676) -u(8636) -u(8628) -u(8596) -u(8604) -u(860) -u(4364) -u(740,1) -u(748) -u(2740) -u(212) -u(716) -f(3828,15,1) -u(724) -u(812) -u(1636) -u(5564) -u(27524) -u(27532) -u(27508) -u(27564) -u(29204) -u(29308) -u(27579) -f(26392,7,1,2) -u(26336,1) -u(26344) -u(25528) -u(25528) -u(25648) -u(3252) -u(3156) -u(3172) -u(4284) -u(9164) -f(26352,8,1) -u(20680) -u(25016) -u(25048) -u(25504) -u(25512) -u(25496) -u(25488) -u(24976) -u(24968) -u(23912) -u(24960) -u(24960) -u(24952) -u(24952) -u(24944) -u(24936) -u(24928) -u(24992) -u(22976) -u(22984) -u(24984) -u(24984) -u(21328) -u(20992) -u(20816) -u(25136) -u(25120) -u(25136) -u(25136) -u(25112) -u(25128) -u(3699) -u(3507) -u(29212) -u(29172) -u(7604) -u(8516) -u(11827) -u(9579) -u(9835) -f(27096,6,1,6) -u(26368) -u(3860,2) -u(9156) -u(27387) -u(4268) -u(9188) -u(9292) -u(9308) -u(9324) -u(9316) -u(1660,1) -u(1644) -f(9276,17,1) -u(9300) -u(1660) -u(1644) -u(11588) -f(26400,8,1,4) -u(27160) -u(27168) -u(27176) -u(25528) -u(25528) -u(25558,2,0,2,0) -u(25542,2,0,2,0) -u(25544,1) -n(25638,1,0,1,0) -u(25614,1,0,1,0) -u(25582,1,0,1,0) -u(25576) -f(27184,14,1,2) -u(25672) -u(25662,2,0,1,1) -u(25664) -u(3284,1) -u(3292) -u(3604) -u(1108) -f(25600,18,1) -u(25624) -u(25592) -u(25584) -u(3284) -u(3292) -u(1268) -u(1284) -u(1260) -u(5604) -u(5692) -u(5708) -f(27144,6,1,10) -u(26872,3) -u(26824) -u(22976) -u(22976) -u(22990,3,0,2,1) -u(26808) -u(26808) -u(26792) -u(26856) -u(26520) -u(26520) -u(26472,1) -u(26968) -u(26968) -u(26936) -u(26952) -u(22440) -u(22424) -u(22424) -u(30256) -u(30264) -u(30254,1,0,1,0) -u(30310,1,0,1,0) -u(30328) -u(30336) -u(21200) -u(20448) -f(26504,18,1,2) -u(26512,1) -u(26888) -u(3316) -u(3340) -u(5036) -u(4980) -u(8580) -u(484) -u(476) -u(1652) -u(1700) -u(8588) -u(5756) -u(596) -u(24908) -u(3092) -u(5460) -u(5436) -f(26968,19,1) -u(26936) -u(26952) -u(22440) -u(22424) -u(22424) -u(21320) -u(20560) -f(26880,7,1,6) -u(26824) -u(22976) -u(22976) -u(22984) -u(26808) -u(26808) -u(26800) -u(26864) -u(26456) -u(26464) -u(26496) -u(26312,2) -u(26320,1) -u(3252) -u(1676) -u(8636) -u(8628) -u(8596) -u(8604) -u(860) -u(4364) -u(724) -u(812) +f(9106,26,1) +n(9114,2) +u(9026) +u(10379) +f(6138,21,2,4113) +u(5914,1) +n(6690,4112) +u(6034) +u(5970,1) +n(5986,4) +f(5970,25,1,1) +n(6074,2) +f(5970,26,1,1) +f(6538,24,1,4107) +u(5858) +u(6962) +u(5865,4103) +f(7106,28,2,4101) +f(7118,29,1,1,0,1,0) +u(7158,1,0,1,0) +u(7470,1,0,1,0) +u(7465) +u(11043) +u(3051) +f(7122,29,1,4099) +f(7146,30,1,4098) +u(7026) +f(5298,32,2,2) +u(4938) +u(5162) +u(8490) +u(8450) +u(8346) +u(8402) +u(11522) +f(6298,32,2,76) +u(6250,7) +n(6289,69) +u(5170,16) +u(5154) +u(5257) +f(5370,37,4,6) +u(5362) +u(5346) +u(5170) +u(5154,5) +u(5634) +u(8258) +u(8266,3) +u(8282) +u(9258) +u(9282) +u(9218) +u(11538) +u(10506) +u(10682) +u(9498,2) +u(10482) +u(10489) +u(2731) +f(3611,56,1,1) +u(3251) +f(10698,52,1) +f(8338,44,1,2) +u(10082) +f(8498,41,2,1) +u(8458) +u(8466) +u(8346) +u(8402) +u(11522) +f(5458,37,1) +u(8122) +u(10058) +u(9298) +u(9330) +f(7858,37,1,5) +u(7850) +f(8578,39,2,3) +u(8594,1) +n(8618,2) +u(11530) +f(6234,34,2) +u(7826,1) +u(7850) +f(7858,35,1) +u(7850) +f(6258,34,1,36) +u(6322,35) +u(6265) +u(6682) +u(6522) +u(6025) +u(3922,34) +u(4050,33) +u(3882,26) +u(5937,1) +n(7377,25) +u(7378) +u(7178) +u(6474) +u(6154) +u(6706) +u(6706) +u(6065) +u(5986,1) +n(6546,24) +u(5826) +f(6986,53,1,23) +u(7058) +f(6882,55,1,14) +u(7242) +u(7410) +u(7417) +u(11019) +u(3515) +f(7290,55,14,8) +u(7274,1) +n(7281,7) +f(4682,42,7) +f(4410,43,1,1) +u(11276) +u(3395) +u(2859) +f(4714,43,1,5) +f(4402,44,2,1) +u(4841) +f(4690,44,1) +n(9834) +f(6202,41,1) +u(6026) +u(3922) +f(5978,40,1) +u(6074) +u(5970) +f(10122,35,1) +u(10130) +f(7889,34,1,15) +u(7882) +u(5585) +u(5570) +u(7914) +u(7914) +u(7921,12) +u(7922) +u(9170) +u(9178) +u(9177) +u(899) +u(787) +u(10364) +u(10364) +f(132,49,4,5) +f(68,50,4,1) +f(500,49,1) +n(2292) +n(3596) +f(9362,40,1,2) +u(9369) +f(811,42,1,1) +u(44) +f(10010,40,1) +u(10026) +u(10033) +f(7514,32,1,4018) +f(7513,33,1,4017) +f(3187,34,13,5) +u(2324) +f(2220,36,4,1) +u(11475) +f(11067,34,1,3999) +f(11491,35,6,3993) +f(3003,36,3988,3) +n(3011,2) +f(7034,27,2,4) +f(6194,19,4,15) +u(6018) +f(5978,21,6,8) +n(6577,1) +f(5970,18,1) +n(5978,21) +f(6074,19,8,13) +f(5970,20,3,10) +f(6577,18,10,9) +n(8779,29) +f(7586,17,29,3) +u(4929,2) +f(4938,19,1,1) +u(5161) +u(8490) +u(8450) +u(8346) +u(8402) +u(11522) +f(5706,18,1) +f(8779,16,1,13) +f(6553,15,13,48) +f(6154,16,9,38) +u(6706) +u(6706) +u(6066) +u(5970,1) +n(5986,25) +f(5970,21,13,1) +u(5906) +f(6074,21,1,11) +f(5970,22,4,7) +f(6546,20,7,10) +f(5826,21,1,9) +f(6986,22,7,2) +f(8090,20,2) +u(8170) +f(6594,16,2,1) +f(6794,13,1,8) +f(6098,14,5,3) +u(6754,1) +n(8241,2) +f(6802,13,2,5) +u(6106) +u(8242) +f(6810,13,5,3) +u(6762) +f(6770,15,1,2) +f(7010,13,2,3806) +f(5770,14,3,1) +u(5025) +f(5786,14,1) +u(5057) +u(11875) +f(6786,14,1) +n(7506,3800) +f(7450,15,2,1) +n(7505,3797) +f(11059,16,16,3781) +f(3043,17,13,3768) +f(3003,18,3757,4) +n(3011,7) +f(7066,13,7,8) +f(7498,14,6,2) +f(7090,13,2,1) +n(7314,539) +u(6737,538) +f(7474,15,1,537) +u(5066) +u(5066) +u(5234) +u(5082,39) +u(7946) +u(7954) +f(7906,22,1,37) +u(7921,34) +u(9170) +u(9178,33) +u(9177) +u(899) +u(787) +f(10364,29,1,32) +u(2260,1) +n(2588) +n(2708) +u(68) +f(10364,30,1,29) +f(36,31,9,1) +n(132,11) +f(68,32,7,4) +f(868,31,4,2) +u(316,1) +n(324) +f(1924,31,1) +n(3596,5) +f(324,32,2,1) +n(508) +n(3604) +u(324) +f(10906,25,1) +u(10850) +u(10730) +f(10001,23,1,3) +u(10017) +u(8953) +u(795) +u(1772,2) +n(2548,1) +f(7937,22,1) +u(7930) +u(8538) +u(11186) +u(11178) +u(11170) +f(5474,19,1,498) +f(5474,20,2,496) +f(5434,21,1,15) +f(5410,22,2,7) +u(5178,2) +u(8506) +u(8474) +u(8370) +u(8418) +u(11546) +f(7874,23,2,5) +u(7866) +u(7842) +u(8586) +u(8618) +u(11530) +f(5418,22,5,6) +u(5401,3) +u(5450) +u(5274,1) +n(5442,2) +f(8130,26,1,1) +u(10050) +u(9306) +u(9322) +f(10210,23,1,3) +u(10202) +f(5482,21,3,478) +u(3283,2) +u(1844) +u(92,1) +n(764) +u(1492) +u(100) +u(940) +u(1756) +u(1748) +u(1740) +u(84) +f(5226,22,1,467) +u(5698) +u(3283,3) +u(1844) u(764) -u(8484) -u(8468) -f(26334,20,1,1,0,1,0) -u(23550,1,0,1,0) -u(23558,1,0,1,0) -f(26928,19,1,2) -u(26944) -u(26232,1) -u(26232) -u(20544) -u(20504) -u(20512) -u(30256) -u(30264) -u(30248) -u(30320) -u(30312) -u(30296) -u(30264) -u(30248) -u(30240) -f(26960,21,1) -u(26232) -u(26232) -u(20544) -u(20504) -u(20512) -u(30256) -u(30264) -u(30248) -u(30320) -u(30312) -u(30296) -u(30264) -u(30248) -u(30232) -u(22976) -u(22984) -u(30224) -u(30224) -u(22512) -u(22496) -u(25008) -u(25000) -u(22472) -u(22504) -u(22480) -u(22488) -u(22536) -u(22528) -u(22520) -u(22080) -u(22088) -u(21416) -u(21368) -u(21648) -u(21448) -u(21904) -u(21536) -u(21552) -u(21544) -u(22208) -f(26976,19,1,2) -u(22096,1) -u(22200) -u(22176) -u(22184) -u(22168) -u(21496) -u(21520) -u(21520) -u(21520) -u(21512) -u(21848) -u(21600) -u(21608) -u(21560) -u(21592) -f(26448,20,1) -u(26440) -u(26432) -u(26232) -u(26232) -u(20544) -u(20504) -u(20512) -u(30256) -u(30264) -u(30248) -u(30288) -u(30272) -u(30280) -u(21656) -u(21688) -u(30216) -f(27152,7,1) -u(25864) -u(25872) -u(25880) -u(25728) -u(25800) -u(25808) -u(25848) -u(3316) -u(3340) -u(5036) -u(4980) -u(8580) -u(484) -u(476) -u(1652) -u(1700) -u(8588) -u(5756) -u(596) -u(7844) -f(27032,2,1) -u(26264) -u(26728) -u(26704) -u(26744) -u(26992) -u(22976) -u(22990,1,0,1,0) -u(26984) -u(26984) -u(26696) -u(26712) -u(26736) -u(26288) -u(29992) -u(30000) -u(30008) -u(30016) -u(30024) -u(30024) -u(30032) -u(30040) -u(30048) -u(3707) -u(9947) -f(27779,1,1,5) +u(1492) +u(100) +u(940,2) +u(1756) +u(1220) +u(1164,1) +u(1164) +u(1364) +f(1204,32,1) +u(1620) +u(3219) +f(1044,29,1) +u(1212) +u(1204) +u(1156) +f(5674,24,1,464) +u(5610) +u(5146,61) +f(8482,27,1,60) +u(8442) +u(8378) +u(8426) +f(5626,26,60,403) +u(8322) +u(8274) +u(8250,11) +u(8250) +u(8353,6) +f(10082,32,1,5) +f(8945,31,5) +f(9450,29,5,392) +f(3283,30,2,2) +u(1844) +u(764) +u(1492) +u(100) +u(940) +u(1756) +u(1220,1) +u(1164) +u(1164) +f(1268,37,1) +u(836) +f(9506,30,1,388) +f(8937,31,3,1) +n(9385,3) +n(9393) +u(9402) +u(10090,2) +n(10098,1) +f(9489,31,1,3) +n(9561,2) +u(9434) +u(9434) +u(9410) +f(9586,35,1,1) +u(9586) +u(9466) +u(9426) +f(10441,31,1,69) +f(10449,32,2,67) +f(2723,33,8,58) +f(11292,34,5,53) +f(10979,35,5,47) +f(3259,36,14,33) +f(3299,37,31,1) +n(11811) +f(10987,35,1) +f(3187,33,1) +u(2324) +f(10513,31,1,287) +f(10514,32,2,285) +u(10521) +f(2739,34,11,274) +f(516,35,6,268) +f(10537,31,268,6) +n(10689,11) +f(3283,32,4,1) +u(1844) +u(764) +u(1492) +u(100) +u(1044) +u(1004) +f(10666,32,1) +u(9346) +u(9354) +f(10674,32,1,5) +f(5354,22,5,1) +u(5378) +f(5386,22,1) +u(10154) +f(5410,22,1,5) +u(7874) +u(7866) +u(7842) +f(8586,26,1,4) +u(8618) +u(11530) +f(5490,22,4,2) +f(5426,23,1,1) +f(5506,21,1) +n(8114) +f(7482,14,1) +f(7322,13,1,4) +u(7322) +f(6746,15,3,1) +u(7306) +u(7338) +u(7330) +f(7362,13,1) +u(7362) +f(7450,10,1) +n(7962,7) +u(7970) +f(10098,9,7,5) +n(10106,1) +n(11276,58) +f(3395,10,10,47) +f(2859,11,19,28) +f(3403,10,28,1) +f(8146,7,1,2) +u(8178) +f(8218,7,2,11) +u(6826,2,1,0,0) +u(8226) +u(8202) +u(8610) +u(8554) +f(7985,8,2,7) +u(7978) +u(4848,1) +u(6128) +u(6632) +u(5952) +u(5952) +f(5806,10,1,5,0,3,0) +u(5818) +u(5890,5,2,3,0) +u(5849,1) +n(7018,4) +u(8026,4,2,2,0) +u(8025) +u(8042) +u(8050) +u(8034) +u(6945) +u(7050) +u(6730) +u(6730) +u(8058) +u(8066) +u(8074) +u(8042) +u(8050) +u(8034) +u(5798,4,0,3,0) +u(3483,1) +u(2308) u(372) -f(5860,3,3,1) -n(27772) -f(29723,1,1) -n(29792,3) -u(29800,1) -u(20534,1,0,1,0) -u(20534,1,0,1,0) -u(20537) -u(20808) -u(25096) -u(25072) -u(25080) -u(25040) -u(25264) -u(25256) -u(25232) -u(24368) -u(24352) -u(24296) -u(24312) -u(20360) -u(24768) -u(24744) -u(24752) -u(3691) -u(11883) -u(30619) -u(27459) -u(10043) -f(29808,2,1,2) -u(25288) -u(20630,2,0,2,0) -u(20638,2,0,2,0) -u(20646,2,0,2,0) -u(20750,2,0,2,0) -u(20616) -u(20808) -u(25096) -u(25072) -u(25080) -u(25040) -u(25264) -u(25256) -u(25256) -u(22976) -u(22984) -u(25168) -u(25168) -u(25208) -u(25230,2,0,1,1) -u(22976) -u(22984) -u(25176) -u(25176) -u(25240) -u(24288) -u(24840) -u(24840) -f(25688,31,1,1) -u(25680) -u(22808) -u(22800) +u(364) +u(404) +u(572) +u(1620) +u(3027) +f(5874,30,1,3,1,2,0) +u(6650,2,1,1,0) +u(6490) +u(5993) +u(3968) +f(9920,35,1,1) +u(9920) +u(9968) +u(9960) +u(3960) +u(3976) +u(5993) +u(3904) +u(4016) +u(4072) +u(3952) +u(3896) +u(4310,1,0,1,0) +u(4322) +u(4334,1,0,1,0) +u(4338) +u(4314) +u(4360) +f(6697,31,1) +u(6610) +u(6570) +u(6586) +u(6602) +u(5930) +u(6209) +u(6218) +u(3986) +u(3992) +f(5809,10,1) +u(6658) +u(6498) +u(6001) +u(6402) +u(7546) +u(7554) +u(6362) +u(6002) +u(5978) +f(7994,8,1) +n(8194) +u(8202) +f(10736,3,1,96) +u(10744) +u(10752) +f(10761,6,1,2) +u(8962) +u(8969) +u(803) +u(1788) +u(1732) +u(2204) +f(11387,13,1,1) +u(3107) +f(10929,6,1,93) +f(10938,7,1,92) +u(10913,5) +u(10856,3) +u(10888) +u(10560) +u(10624) +u(10662,3,0,3,0) +u(10574,3,0,3,0) +u(9650,1) +u(9642) +u(11790,1,0,1,0) +u(9082) +u(8889) +u(9066) +f(10598,15,1,2,0,2,0) +u(9662,2,0,2,0) +u(9666) +u(10582,2,0,2,0) +u(10586) +u(9634) +u(9638,2,0,2,0) +u(9594) +u(9598,2,0,2,0) +u(11798,2,0,2,0) +u(11782,2,0,2,0) +u(11782,2,0,2,0) +u(11774,2,0,2,0) +f(9737,28,1,1) +f(10864,9,1) +u(10880) +u(10552) +u(10616) +u(10662,1,0,1,0) +u(10574,1,0,1,0) +u(10322) +u(10273) +u(10294,1,0,1,0) +u(10281) +u(10258) +u(10270,1,0,1,0) +u(10329) +u(9918,1,0,1,0) +u(8785) +u(8810) +u(8810) +u(8801) +u(8794) +u(8870,1,0,1,0) +u(11694,1,0,1,0) +u(11686,1,0,1,0) +u(11678,1,0,1,0) +u(11702,1,0,1,0) +u(11566,1,0,1,0) +u(11566,1,0,1,0) +u(11574,1,0,1,0) +u(11614,1,0,1,0) +u(11614,1,0,1,0) +u(11622,1,0,1,0) +u(11662,1,0,1,0) +u(11665) +u(923) +u(3115) +f(10872,9,1) +u(10896) +u(10544) +u(10608) +u(10654,1,0,1,0) +u(10313) +u(10274) +u(10298) +u(10282) +u(10258) +u(9910,1,0,1,0) +u(9886,1,0,1,0) +u(10305) +u(10600) +u(10640) +u(10638,1,0,1,0) +u(9074) +u(9073) +u(10250) +u(10242) +u(10254,1,0,1,0) +u(10234) +u(10222,1,0,1,0) +u(10230,1,0,1,0) +f(10921,8,1,87) +u(10721) +u(10947) +u(1036,2) +u(1636) +u(1644) +u(11308) +u(2995) +f(1068,11,2,14) +u(188) +u(11212,11) +u(2867,6) +u(2883) +u(3123) +f(3099,14,6,5) +f(3235,15,1,4) +u(2939) +f(2915,17,1,3) +u(3115) +f(11452,13,3) +u(11868) +u(2899,2) +u(2955) +u(3115) +f(2923,15,2,1) +u(3235) +f(1076,11,1,24) +u(2452) +u(2508) +f(76,14,19,1) +n(1676,4) +f(1084,11,4,37) +u(2476) +f(1676,13,36,1) +f(1092,11,1) +u(180) +u(11364) +u(2867) +u(2883) +u(3123) +f(1244,11,1) +u(11228) +u(228) +u(3620) +u(3195) +f(11284,11,1,8) +u(11220) +u(2867,1) +u(2883) +u(2963) +f(2875,13,1,2) +u(2907) +u(2939) +u(2915) +u(3115) +f(11252,13,2,5) +u(3091) +u(2891) +u(2947,4) +u(2995) +f(3211,16,4,1) +f(10832,1,1) +u(10840) +u(10704) +u(10792) +u(10776) +u(10808) +u(10824) +u(9662,1,0,1,0) +u(9666) +u(10816) +u(10816) +u(10768) +u(10784) +u(10800) +u(10712) +u(11576) +u(11584) +u(11592) +u(11600) +u(11624) +u(11624) +u(11632) +u(11640) +u(11648) +u(915) +u(3179) +f(11467,1,1) search(); From 6c9d6968e69c0892b58fff8b1072f623b9d1fb35 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Wed, 3 Jun 2026 09:29:46 +1200 Subject: [PATCH 05/11] Rename 'What's still open' and expand future experiments Rename section to 'Wait! Just... one... more... run...' and add two flamegraph-motivated experiments: io_uring (to address the 63% send/recv syscall cost in the passthrough proxy) and GC tuning (to address the 10.5% GC overhead in the encryption scenario, with Generational ZGC as a well-motivated first experiment). Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- ...26-06-04-benchmarking-the-proxy-under-the-hood.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md index 74b239a..1b827e7 100644 --- a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md @@ -294,12 +294,14 @@ jbang src/main/java/io/kroxylicious/benchmarks/results/ResultComparator.java \ results/baseline results/encryption ``` -## What's still open +## Wait! Just... one... more... run... -The coefficient is validated at 1, 2, and 4 cores for 1 KB messages. Known gaps: +The coefficient is validated at 1, 2, and 4 cores for 1 KB messages. There are more runs I'd like to do: -- **Message size variation**: larger messages should show lower overhead as a percentage; smaller messages may show higher. 1 KB is a reasonable middle ground but not the whole picture. -- **Horizontal scaling**: multiple proxy pods haven't been measured; linear scaling is expected but not confirmed. -- **Multi-pass sweeps**: each rate point was measured once. Running each probe three times and taking the median would give tighter bounds in the saturation transition zone. +- **io_uring**: 63% of the passthrough proxy's CPU goes to `send`/`recv` syscalls — each a kernel entry and exit. io_uring batches I/O through a shared ring buffer, eliminating per-operation syscall overhead entirely. Netty has a native io_uring transport. If it halves that 63%, the passthrough proxy becomes genuinely unmeasurable. The flamegraph made this obvious; the run hasn't happened yet. +- **GC tuning**: Netty naturally produces a clean generational profile, and the proxy leans into this rather than fighting it. Per-message allocations don't outlive their request-response cycle; connection-scoped state lives for the lifetime of the connection. Encryption magnifies the GC cost because it requires more per-message allocations than passthrough, but the memory pressure is expected. That makes it a natural fit for tuning: the collector doesn't have to guess what's garbage. Generational ZGC is one well-motivated experiment: designed for high-allocation workloads where most objects die young, which matches exactly. But it runs concurrently, trading stop-the-world pauses for continuous background CPU cost. Whether that helps or hurts a proxy that's already CPU-bound at saturation — here be dragons. +- **Message size variation**: larger messages should show lower overhead as a percentage (fixed per-record costs spread over more bytes); smaller messages the opposite. 1 KB is a reasonable middle ground but not the whole story. +- **Horizontal scaling**: multiple proxy pods haven't been measured; linear scaling is expected but unconfirmed. +- **Multi-pass sweeps**: each rate point was measured once. Running each probe three times and taking the median would tighten the bounds in the saturation transition zone. The operator-facing sizing reference and all the key tables are in `SIZING-GUIDE.md` in the benchmarks directory. From c238de66753f765fffe65fa0f58587aa4d902220 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Wed, 3 Jun 2026 13:07:48 +1200 Subject: [PATCH 06/11] Extend redirector plugin to support absolute target redirects Adds AbsoluteRedirectPage to support version-free redirects to external URLs. Mappings with absoluteTarget bypass the version loop and generate a single page at /redirect/{group}/{subgroup}/{name}. Existing versioned redirect mappings are unaffected. Adds blog.yaml with a redirect to the benchmarking-the-proxy raw data folder on Google Drive. Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _data/redirects/blog.yaml | 5 ++++ _plugins/redirector.rb | 52 +++++++++++++++++++++++++++++++-------- 2 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 _data/redirects/blog.yaml diff --git a/_data/redirects/blog.yaml b/_data/redirects/blog.yaml new file mode 100644 index 0000000..e2edc6f --- /dev/null +++ b/_data/redirects/blog.yaml @@ -0,0 +1,5 @@ +delay: 0 +mappings: + - name: benchmark-data + subgroup: benchmarking-the-proxy + absoluteTarget: https://drive.google.com/drive/folders/14jR_eWoTeVQVC-WiTuZAK7NlwSVKN2a5?usp=drive_link diff --git a/_plugins/redirector.rb b/_plugins/redirector.rb index b6a912c..fd9bb1d 100644 --- a/_plugins/redirector.rb +++ b/_plugins/redirector.rb @@ -9,17 +9,21 @@ def generate(site) config.each { |redirect_config| Jekyll.logger.info "generating redirects for #{redirect_config[0]}" redirect_config[1]['mappings'].each do |mapping| - to_version = Version.parse(mapping['toVersion'] ||= latest_release) - from_version = Version.parse(mapping['fromVersion'] ||= latest_release) - versions = releases.select { |rel| rel.between?(from_version, to_version) } - versions.each { |version| - mapping['version'] = version - site.pages << RedirectPage.new(site, redirect_config[0], redirect_config[1], mapping) - if version == latest_release - mapping['landing_version'] = "latest" + if mapping['absoluteTarget'] + site.pages << AbsoluteRedirectPage.new(site, redirect_config[0], redirect_config[1], mapping) + else + to_version = Version.parse(mapping['toVersion'] ||= latest_release) + from_version = Version.parse(mapping['fromVersion'] ||= latest_release) + versions = releases.select { |rel| rel.between?(from_version, to_version) } + versions.each { |version| + mapping['version'] = version site.pages << RedirectPage.new(site, redirect_config[0], redirect_config[1], mapping) - end - } + if version == latest_release + mapping['landing_version'] = "latest" + site.pages << RedirectPage.new(site, redirect_config[0], redirect_config[1], mapping) + end + } + end end Jekyll.logger.info "Generated redirects #{redirect_config[0]}" } @@ -70,6 +74,34 @@ def url_placeholders end end + class AbsoluteRedirectPage < Jekyll::Page + def initialize(site, group, redirect_config, mapping) + @site = site + @base = site.source + subgroup = mapping['subgroup'] + @dir = subgroup ? "/redirect/#{group}/#{subgroup}/" : "/redirect/#{group}/" + @basename = mapping['name'] + @ext = '.html' + @name = basename + ext + delay = redirect_config['delay'] ||= 1 + @data = { + 'target' => mapping['absoluteTarget'], + 'layout' => 'redirect', + 'delay' => "#{delay}", + } + Jekyll.logger.info "generated absolute redirect from #{@dir}#{@basename} to #{data['target']}" + end + + def url_placeholders + { + :path => @dir, + :category => @dir, + :basename => basename, + :output_ext => output_ext, + } + end + end + class Version include Comparable From fdede0fc5287ae3d82f58565bf62f271825967a2 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Wed, 3 Jun 2026 13:07:58 +1200 Subject: [PATCH 07/11] Link to raw benchmark data via redirect Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md index 1b827e7..f9d4f34 100644 --- a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md @@ -278,7 +278,7 @@ Spotting these required noticing that two different probe flamegraphs were pixel ## Run it yourself -We're an open source project — we share our workings. The raw OMB result JSON, JFR recordings, and flamegraph files that back this post are available [TODO: link to raw data]. If you want to verify the numbers, reproduce the analysis, or compare against your own runs, everything you need is there. +We're an open source project — we share our workings. The raw OMB result JSON, JFR recordings, and flamegraph files that back this post are [available for download](/redirect/blog/benchmarking-the-proxy/benchmark-data). If you want to verify the numbers, reproduce the analysis, or compare against your own runs, everything you need is there. If you want to run it against your own cluster, everything is in `kroxylicious-openmessaging-benchmarks/` in the [main Kroxylicious repository](https://github.com/kroxylicious/kroxylicious). See `QUICKSTART.md` for step-by-step instructions. You'll need a Kubernetes or OpenShift cluster, the Kroxylicious operator installed, and Helm 3. Minikube works for local runs — the quickstart covers recommended CPU and memory settings. From 67590510a89384c3d27157bf212c10d10daa9aa4 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Wed, 3 Jun 2026 13:23:35 +1200 Subject: [PATCH 08/11] Use post-2 slug in benchmark-data redirect Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _data/redirects/blog.yaml | 2 +- _posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_data/redirects/blog.yaml b/_data/redirects/blog.yaml index e2edc6f..ea7e82b 100644 --- a/_data/redirects/blog.yaml +++ b/_data/redirects/blog.yaml @@ -1,5 +1,5 @@ delay: 0 mappings: - name: benchmark-data - subgroup: benchmarking-the-proxy + subgroup: benchmarking-the-proxy-under-the-hood absoluteTarget: https://drive.google.com/drive/folders/14jR_eWoTeVQVC-WiTuZAK7NlwSVKN2a5?usp=drive_link diff --git a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md index f9d4f34..30f10f6 100644 --- a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md @@ -278,7 +278,7 @@ Spotting these required noticing that two different probe flamegraphs were pixel ## Run it yourself -We're an open source project — we share our workings. The raw OMB result JSON, JFR recordings, and flamegraph files that back this post are [available for download](/redirect/blog/benchmarking-the-proxy/benchmark-data). If you want to verify the numbers, reproduce the analysis, or compare against your own runs, everything you need is there. +We're an open source project — we share our workings. The raw OMB result JSON, JFR recordings, and flamegraph files that back this post are [available for download](/redirect/blog/benchmarking-the-proxy-under-the-hood/benchmark-data). If you want to verify the numbers, reproduce the analysis, or compare against your own runs, everything you need is there. If you want to run it against your own cluster, everything is in `kroxylicious-openmessaging-benchmarks/` in the [main Kroxylicious repository](https://github.com/kroxylicious/kroxylicious). See `QUICKSTART.md` for step-by-step instructions. You'll need a Kubernetes or OpenShift cluster, the Kroxylicious operator installed, and Helm 3. Minikube works for local runs — the quickstart covers recommended CPU and memory settings. From 8a13a45285ad1e72bbf5321e39a296fd97de7000 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Wed, 3 Jun 2026 13:55:14 +1200 Subject: [PATCH 09/11] Backdate under-the-hood post to 2026-06-03 Future-dated posts are excluded from Jekyll builds by default, breaking post_url references in Post 1. Backdate to today so the site builds without --future. Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _posts/2026-05-28-benchmarking-the-proxy.md | 12 ++++++------ ...6-06-03-benchmarking-the-proxy-under-the-hood.md} | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) rename _posts/{2026-06-04-benchmarking-the-proxy-under-the-hood.md => 2026-06-03-benchmarking-the-proxy-under-the-hood.md} (99%) diff --git a/_posts/2026-05-28-benchmarking-the-proxy.md b/_posts/2026-05-28-benchmarking-the-proxy.md index caa2167..a880942 100644 --- a/_posts/2026-05-28-benchmarking-the-proxy.md +++ b/_posts/2026-05-28-benchmarking-the-proxy.md @@ -16,7 +16,7 @@ So we stopped saying "it depends" — we built something you can run **yourselve **TL;DR**: - A passthrough proxy adds negligible overhead: publish latency impact is below measurement noise, E2E adds ~2 ms at moderate topic rates, throughput unaffected - Add record encryption and expect a ~25% throughput reduction; at comfortable rates, E2E latency stays within measurement noise and publish latency adds up to ~10 ms -- The throughput ceiling scales linearly with CPU: budget ~25 mc per MB/s of total proxy traffic (conservative; the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid) +- The throughput ceiling scales linearly with CPU: budget ~25 mc per MB/s of total proxy traffic (conservative; the [companion post]({% post_url 2026-06-03-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid) - The full benchmark harness is open source — run it on your own cluster for numbers that reflect your workload ## What we measured @@ -27,7 +27,7 @@ We ran three scenarios against the same Apache Kafka® cluster on the same hardw - **Passthrough proxy** — traffic routed through Kroxylicious with no filter chain configured - **Record encryption** — traffic through Kroxylicious with AES-256-GCM record encryption enabled, using HashiCorp Vault as the KMS -We used [OpenMessaging Benchmark (OMB)](https://github.com/openmessaging/benchmark) rather than Kafka's own `kafka-producer-perf-test`. OMB is an industry-standard tool that coordinates producers and consumers together, measures end-to-end latency (not just publish latency), and produces structured JSON that makes comparison straightforward. More on why we built a whole harness around it in the [companion engineering post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}). +We used [OpenMessaging Benchmark (OMB)](https://github.com/openmessaging/benchmark) rather than Kafka's own `kafka-producer-perf-test`. OMB is an industry-standard tool that coordinates producers and consumers together, measures end-to-end latency (not just publish latency), and produces structured JSON that makes comparison straightforward. More on why we built a whole harness around it in the [companion engineering post]({% post_url 2026-06-03-benchmarking-the-proxy-under-the-hood %}). ## Test environment @@ -147,7 +147,7 @@ The single-producer ceiling at RF=3 is Kafka-limited, not proxy-limited — the To find the proxy's real ceiling, you need a workload that doesn't hit the Kafka partition limit first: RF=1, spread across multiple topics. With that workload, the ceiling is squarely in the proxy — and it scales linearly with CPU. The mechanism: CPU limit controls `availableProcessors()`, which controls how many Netty event loop threads the proxy creates. More threads, more concurrent connections handled in parallel, higher aggregate ceiling. -**The practical implication**: the throughput ceiling is not a fixed number — it's a function of the CPU you allocate. Set `requests` equal to `limits` in your pod spec; this makes the CPU budget deterministic and the ceiling predictable. The [companion engineering post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full story of how we found this, including the workload design choices needed to isolate proxy CPU from Kafka's own limits. +**The practical implication**: the throughput ceiling is not a fixed number — it's a function of the CPU you allocate. Set `requests` equal to `limits` in your pod spec; this makes the CPU budget deterministic and the ceiling predictable. The [companion engineering post]({% post_url 2026-06-03-benchmarking-the-proxy-under-the-hood %}) has the full story of how we found this, including the workload design choices needed to isolate proxy CPU from Kafka's own limits. --- @@ -165,7 +165,7 @@ Numbers without guidance aren't very useful, so here's how to translate these re > > where *mc* = millicores (the Kubernetes CPU scheduling unit; 1,000 mc = 1 core per second), *k* = sizing coefficient (mc/MB/s), *P* = produce throughput (MB/s), *N* = number of consumer groups, *C* = consume throughput per group (MB/s) - On our hardware (AMD EPYC-Rome 2 GHz with AES-NI), we measured *k* = 25 mc/MB/s on a 10-topic workload with record encryption — a conservative estimate: more realistic deployments with 100+ topics show *k* = 4–8 mc/MB/s, roughly 3× lower. Simpler filters will be cheaper still. *k* is measured from real workloads, so measure your throughput and validate on your own hardware. The [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid across topic counts and core allocations. + On our hardware (AMD EPYC-Rome 2 GHz with AES-NI), we measured *k* = 25 mc/MB/s on a 10-topic workload with record encryption — a conservative estimate: more realistic deployments with 100+ topics show *k* = 4–8 mc/MB/s, roughly 3× lower. Simpler filters will be cheaper still. *k* is measured from real workloads, so measure your throughput and validate on your own hardware. The [companion post]({% post_url 2026-06-03-benchmarking-the-proxy-under-the-hood %}) has the full coefficient grid across topic counts and core allocations. *1:1 (100k msg/s at 1 KB, 1 consumer group)*: k=25, P=100, N=1, C=100 → 25 × (100 + 1 × 100) = 5,000m (~5 cores) @@ -185,11 +185,11 @@ Numbers without guidance aren't very useful, so here's how to translate these re These are real results from real hardware, but they don't tell a story for your workload. A few things worth knowing before you put these numbers in a slide deck: -- **Sub-saturation assumed**: all results assume the system is operating below its throughput ceiling — both the proxy's and Kafka's own replication limits. Above either, queueing and batching effects dominate and the numbers in this post no longer apply. The [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}) explains how to identify where those ceilings are. +- **Sub-saturation assumed**: all results assume the system is operating below its throughput ceiling — both the proxy's and Kafka's own replication limits. Above either, queueing and batching effects dominate and the numbers in this post no longer apply. The [companion post]({% post_url 2026-06-03-benchmarking-the-proxy-under-the-hood %}) explains how to identify where those ceilings are. - **Message size**: all results use 1 KB messages. The coefficient is message-size-dependent — encryption overhead as a percentage is likely lower for larger messages. - **Horizontal scaling**: linear scaling has been validated across CPU allocations on a single pod; multi-pod horizontal scaling hasn't been measured but is expected to follow the same coefficient. - **Memory**: the workloads tested here are CPU-bound before they become memory-bound — we kept container memory settings consistent across all runs (2 Gi request / 4 Gi limit at the pod level) and it was never the constraint. If you're running larger messages or larger batches, revisit this assumption. -For the engineering story — why we built a custom harness on top of OMB, what the CPU flamegraphs actually show, and the bugs we found in our own tooling along the way — that's in the [companion post]({% post_url 2026-06-04-benchmarking-the-proxy-under-the-hood %}). +For the engineering story — why we built a custom harness on top of OMB, what the CPU flamegraphs actually show, and the bugs we found in our own tooling along the way — that's in the [companion post]({% post_url 2026-06-03-benchmarking-the-proxy-under-the-hood %}). The full benchmark suite, quickstart guide, and sizing reference are in `kroxylicious-openmessaging-benchmarks/` in the [main Kroxylicious repository](https://github.com/kroxylicious/kroxylicious). diff --git a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md similarity index 99% rename from _posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md rename to _posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md index 30f10f6..537f353 100644 --- a/_posts/2026-06-04-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md @@ -1,7 +1,7 @@ --- layout: post title: "How hard can it be??? Maxing out a Kroxylicious instance" -date: 2026-06-04 04:30:00 +0000 +date: 2026-06-03 04:30:00 +0000 author: "Sam Barker" author_url: "https://github.com/SamBarker" categories: benchmarking performance engineering From 0c28903d89ab5c9fb06ea92969a8c44dd0a51561 Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Wed, 3 Jun 2026 14:46:20 +1200 Subject: [PATCH 10/11] Set publication time to 00:00 UTC to minimise future-date window Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md index 537f353..e36d63e 100644 --- a/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md @@ -1,7 +1,7 @@ --- layout: post title: "How hard can it be??? Maxing out a Kroxylicious instance" -date: 2026-06-03 04:30:00 +0000 +date: 2026-06-03 00:00:00 +0000 author: "Sam Barker" author_url: "https://github.com/SamBarker" categories: benchmarking performance engineering From 69fc6e8049ba02ec2dcd4f673470cac62bf9475a Mon Sep 17 00:00:00 2001 From: Sam Barker Date: Thu, 4 Jun 2026 10:13:17 +1200 Subject: [PATCH 11/11] Acknowledge rising coefficient across core counts in table footnote MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an explanatory note clarifying that the coefficient rising with core count is not inconsistent with the linear scaling claim. Points to the ceiling table as the cleaner test of linearity, and honestly flags that the connection-count sweep conflates connections and throughput — a separate rate sweep at fixed connection count is needed to cleanly decompose the two effects. Preliminary analysis suggests per-byte cost is stable and the baseline Netty thread overhead is the driver. Assisted-by: Claude Sonnet 4.6 Signed-off-by: Sam Barker --- _posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md b/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md index e36d63e..4c2ea4a 100644 --- a/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md +++ b/_posts/2026-06-03-benchmarking-the-proxy-under-the-hood.md @@ -188,6 +188,8 @@ The full picture — coefficient measured across all three core counts and three *† 4-core 1-topic: at high producer counts, the Kafka partition limit caps single-partition throughput before the proxy saturates — the high stdev (±18.6) reflects this. Use the 10-topic or 100-topic rows for sizing.* +*The coefficient rises with core count, which might seem at odds with the linear scaling claim. The ceiling table above — 4-core sustaining double the throughput of 1-core — is the cleaner test of linearity. The coefficient is measured from a connection-count sweep where each data point adds both more connections and more throughput simultaneously; decomposing those two effects requires a separate rate sweep at fixed connection count, which we have not yet run. Preliminary analysis suggests the per-byte encryption cost is roughly stable across core counts, and the rising coefficient reflects a per-thread baseline overhead that scales with the number of Netty event loop threads.* + Setting `requests` equal to `limits` makes this practical: a pod that can burst above its CPU limit introduces headroom uncertainty that breaks the model. Fix the CPU budget; fix the ceiling. ## The flamegraph: where the CPU actually goes