<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Martin Ahrer</title><link>https://www.martinahrer.at/</link><description>Recent content on Martin Ahrer</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 30 Sep 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://www.martinahrer.at/index.xml" rel="self" type="application/rss+xml"/><item><title>Java 25 major language and API improvements</title><link>https://www.martinahrer.at/2025/09/30/java-25-major-language-and-api-improvements/</link><pubDate>Tue, 30 Sep 2025 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2025/09/30/java-25-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ㉕ has been released in September 2025.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java Java ㉕.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 24 major language and API improvements</title><link>https://www.martinahrer.at/2025/08/27/java-24-major-language-and-api-improvements/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2025/08/27/java-24-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ㉔ has been released in March 2025.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java Java ㉔.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 23 major language and API improvements</title><link>https://www.martinahrer.at/2025/08/26/java-23-major-language-and-api-improvements/</link><pubDate>Tue, 26 Aug 2025 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2025/08/26/java-23-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ㉓ has been released in September 2024.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java ㉓.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>OpenTelemetry Backend</title><link>https://www.martinahrer.at/2025/03/29/opentelemetry-backend/</link><pubDate>Sat, 29 Mar 2025 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2025/03/29/opentelemetry-backend/</guid><description>&lt;div class="paragraph">
&lt;p>The previous &lt;a href="https://www.martinahrer.at/code/spring-boot-open-telemetry.html">post&lt;/a> introduced OpenTelemetry and the OpenTelemetry collector (aka otel-collector) which is acting as gateway to the backends persisting emitted log, metrics, and trace data.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With this post we have a more detailed look at the collector’s configuration and how it connects to the various databases&lt;/p>
&lt;/div></description></item><item><title>Spring Boot OpenTelemetry</title><link>https://www.martinahrer.at/2025/03/14/spring-boot-opentelemetry/</link><pubDate>Fri, 14 Mar 2025 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2025/03/14/spring-boot-opentelemetry/</guid><description>&lt;div class="paragraph">
&lt;p>As applications and architectures become increasingly complex, monitoring application health is more critical than ever. Developers, support teams, and site reliability engineers need real-time insights into performance metrics, logs, and execution traces to ensure smooth operations.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Traditionally, achieving this required integrating multiple frameworks and tools for data collection, analysis, and visualization—often leading to fragmented solutions.&lt;/p>
&lt;/div></description></item><item><title>Building Docker Images with bake</title><link>https://www.martinahrer.at/2024/12/03/building-docker-images-with-bake/</link><pubDate>Tue, 03 Dec 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/12/03/building-docker-images-with-bake/</guid><description>&lt;div class="paragraph">
&lt;p>Platform engineers and build pipeline engineers constantly are faced with the challenge of building container images for providing images to be used as application base or for running pipeline tasks. Probably such images have to be provided as multiple variants for multiple versions of software packages to be included.&lt;/p>
&lt;/div></description></item><item><title>Docker Multiplatform Build</title><link>https://www.martinahrer.at/2024/09/12/docker-multiplatform-build/</link><pubDate>Thu, 12 Sep 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/09/12/docker-multiplatform-build/</guid><description>&lt;div class="paragraph">
&lt;p>The Arm CPU architecture is getting more and more popular even on desktop developer devices.&lt;/p>
&lt;/div>
&lt;div class="quoteblock">
&lt;blockquote>
A comparative analysis of Arm, AMD, and Intel costs in the Amazon cloud has shown that Graviton2 processors can be significantly more cost-efficient than other platforms. The study compared the 16xlarge instances based on the m6g (Graviton2, Arm), m5a (EPYC1, AMD), and m5n (Xeon Cascade Lake, Intel) for the 64-vCPU count. Not only are the Arm-based instances cheaper than AMD and Intel, they can achieve 40% better performance per dollar when translating the time to completion of SPEC tests to hours and multiplying the result by hourly cost.
&lt;/blockquote>
&lt;div class="attribution">
— https://bell-sw.com/blog/application-cost-reduction-with-arm-servers
&lt;/div></description></item><item><title>Java 22 major language and API improvements</title><link>https://www.martinahrer.at/2024/09/10/java-22-major-language-and-api-improvements/</link><pubDate>Tue, 10 Sep 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/09/10/java-22-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java 22 has been released in March 2024.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java 22.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 21 major language and API improvements</title><link>https://www.martinahrer.at/2024/09/09/java-21-major-language-and-api-improvements/</link><pubDate>Mon, 09 Sep 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/09/09/java-21-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java 21 has been released in September 2023.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java 21.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 20 major language and API improvements</title><link>https://www.martinahrer.at/2024/09/06/java-20-major-language-and-api-improvements/</link><pubDate>Fri, 06 Sep 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/09/06/java-20-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java 20 has been released in March 2023.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java 20.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 19 major language and API improvements</title><link>https://www.martinahrer.at/2024/09/02/java-19-major-language-and-api-improvements/</link><pubDate>Mon, 02 Sep 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/09/02/java-19-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java 19 has been released in September 2022.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java 19.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 18 major language and API improvements</title><link>https://www.martinahrer.at/2024/08/29/java-18-major-language-and-api-improvements/</link><pubDate>Thu, 29 Aug 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/08/29/java-18-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java 18 has been released in March 2022.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java 18.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 17 major language and API improvements</title><link>https://www.martinahrer.at/2024/08/26/java-17-major-language-and-api-improvements/</link><pubDate>Mon, 26 Aug 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/08/26/java-17-major-language-and-api-improvements/</guid><description>&lt;div class="sect1">
&lt;h2 id="_java_lts_release_adoption">Java LTS Release Adoption&lt;/h2>
&lt;div class="sectionbody">
&lt;div class="paragraph">
&lt;p>Before we go into details of the enhancements and additions of Java ⑰ lets briefly look at new relic’s yearly State of the Java Ecosystem &lt;a href="https://newrelic.com/resources/report/2024-state-of-the-java-ecosystem">2024 report&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="imageblock">
&lt;div class="content">
&lt;img src="https://www.martinahrer.at/assets/2024/2024-newrelic-state-of-the-java-ecosystem.png" alt="new relic 2024 State of the Java Ecosystem"/>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Even though Java ⑰ LTS was released in September 2021, in 2023 only ~19% of the projects have been using it.
Java ⑧ still had a share of 33%. and Java ⑪ was the dominant release with ~56%.&lt;/p>
&lt;/div></description></item><item><title>Java 16 major language and API improvements</title><link>https://www.martinahrer.at/2024/08/25/java-16-major-language-and-api-improvements/</link><pubDate>Sun, 25 Aug 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/08/25/java-16-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ⑯ has been released in March 2021.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java ⑯.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 15 major language and API improvements</title><link>https://www.martinahrer.at/2024/08/23/java-15-major-language-and-api-improvements/</link><pubDate>Fri, 23 Aug 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/08/23/java-15-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ⑮ has been released in September 2020.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java ⑮.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 14 major language and API improvements</title><link>https://www.martinahrer.at/2024/08/22/java-14-major-language-and-api-improvements/</link><pubDate>Thu, 22 Aug 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/08/22/java-14-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ⑭ has been released in March 2020.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java ⑭.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 13 major language and API improvements</title><link>https://www.martinahrer.at/2024/08/08/java-13-major-language-and-api-improvements/</link><pubDate>Thu, 08 Aug 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/08/08/java-13-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ⑬ has been released in September 2019.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API, the Java language, and the JVM introduced with Java ⑬.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 12 major language and API improvements</title><link>https://www.martinahrer.at/2024/08/06/java-12-major-language-and-api-improvements/</link><pubDate>Tue, 06 Aug 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/08/06/java-12-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ⑫ has been released in March 2019.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API and the Java language introduced with Java ⑫.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview, follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 11 major language and API improvements</title><link>https://www.martinahrer.at/2024/07/24/java-11-major-language-and-api-improvements/</link><pubDate>Wed, 24 Jul 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/07/24/java-11-major-language-and-api-improvements/</guid><description>&lt;div class="sect1">
&lt;h2 id="_java_lts_release_adoption">Java LTS Release Adoption&lt;/h2>
&lt;div class="sectionbody">
&lt;div class="paragraph">
&lt;p>Before we go into details of the enhancements and additions of Java ⑪ lets briefly look at new relic’s yearly State of the Java Ecosystem &lt;a href="https://newrelic.com/resources/report/2024-state-of-the-java-ecosystem">2024 report&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="imageblock">
&lt;div class="content">
&lt;img src="https://www.martinahrer.at/assets/2024/2024-newrelic-state-of-the-java-ecosystem.png" alt="new relic 2024 State of the Java Ecosystem"/>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Even though Java ⑪ LTS was released in 2018, in 2020 only ~11% of the projects have been using it.
Java ⑧ was still the dominant Java release.
In 2023 usage was still at 33% and only dropped to around 28% in 2024.&lt;/p>
&lt;/div></description></item><item><title>Java 10 major language and API improvements</title><link>https://www.martinahrer.at/2024/07/19/java-10-major-language-and-api-improvements/</link><pubDate>Fri, 19 Jul 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/07/19/java-10-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ⑩ has been released in March 2018.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API and the Java language introduced with Java ⑩.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For a more complete overview follow the links in the following sections referring to the official Oracle release documents.&lt;/p>
&lt;/div></description></item><item><title>Java 9 major language and API improvements</title><link>https://www.martinahrer.at/2024/07/16/java-9-major-language-and-api-improvements/</link><pubDate>Tue, 16 Jul 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/07/16/java-9-major-language-and-api-improvements/</guid><description>&lt;div class="paragraph">
&lt;p>Java ⑨ has been released in September 2017 and is the first release starting a new release cycle with a new release every 6 months.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The following content is summarizing the most important changes to the Java API and the Java language introduced with Java 9.&lt;/p>
&lt;/div></description></item><item><title>Generating AsciiDoc using a Java annotation processor</title><link>https://www.martinahrer.at/2024/07/15/generating-asciidoc-using-a-java-annotation-processor/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2024/07/15/generating-asciidoc-using-a-java-annotation-processor/</guid><description>&lt;div class="paragraph">
&lt;p>In the past I have helped a number of customers with their journey of migrating their Java 8 based applications to Java 17 (and Java 21 later on).
I came up with the idea of creating a slide deck covering the major Java language and API improvements to teach my customers and give some motivation to move on to the latest Java releases.&lt;/p>
&lt;/div></description></item><item><title>Hashicorp Nomad native workload</title><link>https://www.martinahrer.at/2023/02/25/hashicorp-nomad-native-workload/</link><pubDate>Sat, 25 Feb 2023 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2023/02/25/hashicorp-nomad-native-workload/</guid><description>&lt;div class="paragraph">
&lt;p>Earlier this week I presented my talk &amp;#34;&lt;em>Need something simpler than Kubernetes?&lt;/em>&amp;#34; to the &lt;a href="https://community.cncf.io/events/details/cncf-linz-presents-cloud-native-linz-feb-21-kubernetes-alternatives/">CNCF Linz community&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>This post is a follow-up explaining how to deploy a native workload to Nomad.
Nomad is unique because of its hybrid support for many types of workload.
While Kubernetes has been designed for managing container-only workloads,
Nomad’s &lt;a href="https://developer.hashicorp.com/nomad/docs/drivers">pluggable task drivers&lt;/a> allows scheduling container, Java, native (raw), QEMU/KVM, etc. workloads.&lt;/p>
&lt;/div></description></item><item><title>Detect and alert common vulnerabilities and exposures (CVE) in 3rd-party dependencies</title><link>https://www.martinahrer.at/2022/08/03/detect-and-alert-common-vulnerabilities-and-exposures-cve-in-3rd-party-dependencies/</link><pubDate>Wed, 03 Aug 2022 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2022/08/03/detect-and-alert-common-vulnerabilities-and-exposures-cve-in-3rd-party-dependencies/</guid><description>&lt;div class="paragraph">
&lt;p>Using 3rd-party libraries makes developer’s lives so much easier but can turn them into a nightmare when they are unmanaged and we don’t have a good understanding what is being used in a project or even a larger organization.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>A few months ago we have seen quite a few popular frameworks widely used in many software products being hit by severe CVE (common vulnerabilities and exposures).&lt;/p>
&lt;/div></description></item><item><title>Hashicorp Nomad with Consul service discovery</title><link>https://www.martinahrer.at/2022/07/26/hashicorp-nomad-with-consul-service-discovery/</link><pubDate>Tue, 26 Jul 2022 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2022/07/26/hashicorp-nomad-with-consul-service-discovery/</guid><description>&lt;div class="paragraph">
&lt;p>With my previous &lt;a href="https://www.martinahrer.at/code/hashicorp-nomad-service-discovery.html">post&lt;/a> I demonstrated how simple it is to connect services through Nomad’s service discovery support.
I promised to follow-up showing this with Consul providing the service registry and use Consul’s service discovery.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Le’s look into the &lt;a href="https://www.nomadproject.io/docs/job-specification/service#service-parameters">service stanza&lt;/a> documentation.
The &lt;code>provider&lt;/code> key allows 2 different values.
We already used &lt;code>nomad&lt;/code> implementing the Nomad service registry.
Before Nomad 1.3 only &lt;code>consul&lt;/code> was a supported service registry.
This was the default for this key and would register the service with the Consul service registry.
So we would go ahead and just would set &lt;code>provider = &amp;#34;consul&amp;#34;&lt;/code> for the &lt;code>api&lt;/code> and the &lt;code>db&lt;/code> service.&lt;/p>
&lt;/div></description></item><item><title>Hashicorp Nomad service discovery</title><link>https://www.martinahrer.at/2022/07/25/hashicorp-nomad-service-discovery/</link><pubDate>Mon, 25 Jul 2022 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2022/07/25/hashicorp-nomad-service-discovery/</guid><description>&lt;div class="paragraph">
&lt;p>With the recently released Nomad 1.3 a service registry backed by Nomad was added.
This is making building complex services dependent on others really easy.
Earlier we typically would have added Hashicorp Consul as service registry.
In a production environment that would have meant to a add a Consul cluster running along with the Nomad cluster.
Obviously this comes with some costs even when running such a cluster is really made simple by Hashicorp.&lt;/p>
&lt;/div></description></item><item><title>Introduction to Hashicorp Nomad</title><link>https://www.martinahrer.at/2022/07/20/introduction-to-hashicorp-nomad/</link><pubDate>Wed, 20 Jul 2022 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2022/07/20/introduction-to-hashicorp-nomad/</guid><description>&lt;div class="paragraph">
&lt;p>In the past 2 years I successfully architected and developed a new product for a customer and brought it to production. This product uses Hashicorp’s job scheduler &lt;a href="https://www.nomadproject.io/">Nomad&lt;/a> for managing workload.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Nomad is an excellent alternative to Kubernetes.
It is known for its simplicity in regard to usage and maintainability and allows to schedule containerized and non-containerized applications.&lt;/p>
&lt;/div></description></item><item><title>TDD for infrastructure with ignite + firecracker</title><link>https://www.martinahrer.at/2020/10/01/tdd-for-infrastructure-with-ignite--firecracker/</link><pubDate>Thu, 01 Oct 2020 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2020/10/01/tdd-for-infrastructure-with-ignite--firecracker/</guid><description>&lt;div class="paragraph">
&lt;p>This is the last post in the series of posts about TDD for infrastructure.
If you wanted to follow along I recommend first reading &lt;a href="https://www.martinahrer.at/code/tdd-for-infrastructure-vagrant.html">TDD for infrastructure with Vagrant&lt;/a> and then &lt;a href="https://www.martinahrer.at/code/tdd-for-infrastructure-footloose.html">TDD for infrastructure with footloose&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>In the previous post &lt;a href="https://www.martinahrer.at/code/tdd-for-infrastructure-footloose.html">TDD for infrastructure with footloose&lt;/a> I explored weaveworks&amp;#39; footloose to start containers that look like virtual machines.
Containers do no quite cope with the isolation that a real virtual machine can provide.
So in case we must use a real virtual machine we can go back to the approach with VirtualBox (or any other product) or investigate into other options.&lt;/p>
&lt;/div></description></item><item><title>TDD for infrastructure with footloose</title><link>https://www.martinahrer.at/2020/09/01/tdd-for-infrastructure-with-footloose/</link><pubDate>Tue, 01 Sep 2020 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2020/09/01/tdd-for-infrastructure-with-footloose/</guid><description>&lt;div class="paragraph">
&lt;p>In the previous post &lt;a href="https://www.martinahrer.at/code/tdd-for-infrastructure-vagrant.html">TDD for infrastructure with Vagrant&lt;/a> I explored Vagrant, VirtualBox and Chef Inspec for implementing a simple workflow for test driven development of infrastructure code.
I showed that using virtual machines as target machines for testing is just not fast enough and probably hard to run in a build environment.&lt;/p>
&lt;/div></description></item><item><title>TDD for infrastructure with Vagrant</title><link>https://www.martinahrer.at/2020/08/01/tdd-for-infrastructure-with-vagrant/</link><pubDate>Sat, 01 Aug 2020 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2020/08/01/tdd-for-infrastructure-with-vagrant/</guid><description>&lt;div class="sect1">
&lt;h2 id="_introduction">Introduction&lt;/h2>
&lt;div class="sectionbody">
&lt;div class="paragraph">
&lt;p>For many years (almost decades) developers have been practicing &lt;a href="https://en.wikipedia.org/wiki/Test-driven_development">test driven development&lt;/a> and write tests to get confidence that their code works.&lt;/p>
&lt;/div>
&lt;div class="imageblock">
&lt;div class="content">
&lt;img src="https://www.martinahrer.at/assets/tdd-for-infrastructure/application-test.png" alt="application test" width="100%" height="100%"/>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>However, with the rise of infrastructure as code where DevOps engineers try to describe infrastructure provisioning using code, this is something that is not observed generally.
In many situations I have encountered infrastructure that&lt;/p>
&lt;/div></description></item><item><title>Google Container Tools - Jib</title><link>https://www.martinahrer.at/2020/04/19/google-container-tools-jib/</link><pubDate>Sun, 19 Apr 2020 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2020/04/19/google-container-tools-jib/</guid><description>&lt;div class="paragraph">
&lt;p>With this post we close the &lt;a href="https://www.martinahrer.at/tags/building-docker-images/">series&lt;/a> of articles taking a deep dive on building Docker images.
We look at a building Docker images for running Java applications in a Docker container with &lt;a href="https://github.com/GoogleContainerTools/jib">Jib&lt;/a> which is part of the &lt;a href="https://github.com/GoogleContainerTools">Google Container Tools&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="sect1">
&lt;h2 id="_jib">Jib&lt;/h2>
&lt;div class="sectionbody">
&lt;div class="paragraph">
&lt;p>Jib is highly opinionated about building Java Docker containers using Maven or Gradle as build tool.
So it offers plugin support for the above mentioned build tools.&lt;/p>
&lt;/div></description></item><item><title>Docker BuildKit</title><link>https://www.martinahrer.at/2020/04/16/docker-buildkit/</link><pubDate>Thu, 16 Apr 2020 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2020/04/16/docker-buildkit/</guid><description>&lt;div class="paragraph">
&lt;p>In the previous blog post of the building docker images series we had a look at Docker image build &lt;a href="https://www.martinahrer.at/code/docker-build-pipeline.html">pipelines&lt;/a>.
We revealed typical problems and looked at how to overcome some by utilizing multistage builds.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>In part 4 of this series we work with an addition to the Docker tooling which is &lt;a href="https://docs.docker.com/develop/develop-images/build_enhancements/">BuildKit&lt;/a>.&lt;/p>
&lt;/div></description></item><item><title>Docker image build pipeline</title><link>https://www.martinahrer.at/2019/08/30/docker-image-build-pipeline/</link><pubDate>Fri, 30 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2019/08/30/docker-image-build-pipeline/</guid><description>&lt;div class="paragraph">
&lt;p>Let’s recap what we have covered in this blog post series so far.
In &lt;a href="https://www.martinahrer.at/code/docker-building-an-image.html">Building a Docker Image&lt;/a> we had a look at the anatomy of a Docker image.
And &lt;a href="https://www.martinahrer.at/code/docker-optimizing-build.html">Optimizing a Docker Image&lt;/a> shed some light on optimizations when building an image.&lt;/p>
&lt;/div></description></item><item><title>Optimizing a Docker Image</title><link>https://www.martinahrer.at/2019/08/20/optimizing-a-docker-image/</link><pubDate>Tue, 20 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2019/08/20/optimizing-a-docker-image/</guid><description>&lt;div class="paragraph">
&lt;p>This post continues where we left off with &lt;a href="https://www.martinahrer.at/code/docker-building-an-image.html">Building a Docker Image&lt;/a>.
We are looking into how we can optimize the process of building a Docker image.
This optimization can aim at reducing the size of images built or the time it takes for packaging an image.&lt;/p>
&lt;/div></description></item><item><title>Building a Docker Image</title><link>https://www.martinahrer.at/2019/08/17/building-a-docker-image/</link><pubDate>Sat, 17 Aug 2019 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2019/08/17/building-a-docker-image/</guid><description>&lt;div class="paragraph">
&lt;p>This post starts a &lt;a href="https://www.martinahrer.at/tags/building-docker-images/">series&lt;/a> of articles taking a deep dive on building Docker images.
But before we look at building a Docker image let’s briefly recap the essentials we need to know about container images.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>A Docker image is built up from a series of layers where each layer represents an instruction in the image’s Dockerfile.
When Docker materializes an image and creates a container from this image, a storage driver handles the details about the way these layers interact with each other.
Different &lt;a href="https://docs.docker.com/v17.09/engine/userguide/storagedriver/imagesandcontainers/">storage drivers&lt;/a> are available, which have advantages and disadvantages in different situations (e.g. AUFS, overlay, overlay2, btrfs,zfs).
All drivers have in common that they use stackable image layers and the copy-on-write (&lt;a href="https://en.wikipedia.org/wiki/Copy-on-write">CoW&lt;/a>) strategy for writing files.&lt;/p>
&lt;/div></description></item><item><title>Continuous delivery infrastructure as code</title><link>https://www.martinahrer.at/2017/05/10/continuous-delivery-infrastructure-as-code/</link><pubDate>Wed, 10 May 2017 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2017/05/10/continuous-delivery-infrastructure-as-code/</guid><description>&lt;div id="preamble">
&lt;div class="sectionbody">
&lt;div class="paragraph">
&lt;p>This is part 1 of a series of posts covering Docker in a Continuous Delivery environment.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Today I’m showing how simple it is to setup a continuous delivery build pipeline infrastructure using Docker.
In an upcoming post we will look at Jenkins pipeline as code creating Docker images and running integration tests against Docker containers.
The series will close with an article explaining how we can move all containers built throughout this series of posts in a Docker swarm environment.&lt;/p>
&lt;/div></description></item><item><title>docker-compose scripting</title><link>https://www.martinahrer.at/2017/02/07/docker-compose-scripting/</link><pubDate>Tue, 07 Feb 2017 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2017/02/07/docker-compose-scripting/</guid><description>&lt;div class="paragraph">
&lt;p>This time we look at managing large numbers of compose projects.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>When building complex infrastructure using docker-compose we soon end in a mess of scripts for starting, updating, etc. containers.
I will try to describe an approach that has helped to get this done in a very structured way.&lt;/p>
&lt;/div></description></item><item><title>docker-compose modularization</title><link>https://www.martinahrer.at/2017/02/06/docker-compose-modularization/</link><pubDate>Mon, 06 Feb 2017 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2017/02/06/docker-compose-modularization/</guid><description>&lt;div id="preamble">
&lt;div class="sectionbody">
&lt;div class="paragraph">
&lt;p>In this blog post we are looking into how we can create modular compose projects.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>docker-compose&lt;/code> we can describe a bunch of containers and container related resources such as networks and volumes that make up an application. All this is usually going into a &lt;code>docker-compose.yml&lt;/code> file.&lt;/p>
&lt;/div></description></item><item><title>Bean Mapping of Transfer Objects</title><link>https://www.martinahrer.at/2016/03/08/bean-mapping-of-transfer-objects/</link><pubDate>Tue, 08 Mar 2016 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/2016/03/08/bean-mapping-of-transfer-objects/</guid><description>&lt;div class="paragraph">
&lt;p>In the past years I have been working on multiple projects where the so-called &lt;strong>Data Transfer Object&lt;/strong>
(short DTO) pattern has been heavily used. This is a pattern that has even been a &lt;a href="http://www.oracle.com/technetwork/java/transferobject-139757.html">core pattern&lt;/a> in the
JEE world.
This pattern certainly has its justification for the right cases. But in many cases I have seen
it applied inappropriately. This &lt;a href="http://www.adam-bien.com/roller/abien/entry/dto_the_exceptions_from_the">blog posting&lt;/a> by Adam Bien, a JEE advocate, is outlining the case where it should be considered useful.
However when applied, this pattern comes at the cost of additional code to maintain and some extra CPU cycles for doing the mapping.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Build tool chain container images&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-bash" data-lang="bash">export DOCKER_BUILDKIT=1
docker image build -t martinahrer/ansible:alpine -f Dockerfile_ansible .
docker image build -t martinahrer/footloose:alpine -f Dockerfile_footloose .
docker image build -t martinahrer/inspec:alpine -f Dockerfile_inspec .&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Run all pipeline steps.&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-bash" data-lang="bash">cd src/main/
drone exec --trusted drone.io/.drone.yml&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Run the pipeline &lt;code>test&lt;/code> step.&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Start consul agent (in dev mode)&lt;/div>
&lt;div class="content">
&lt;pre>consul agent -dev -config-file server.hcl
open http://localhost:8500&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Start nomad server and client agents&lt;/div>
&lt;div class="content">
&lt;pre>nomad agent -config server.hcl
nomad agent -config client1.hcl
nomad agent -config client2.hcl
nomad agent -config client3.hcl
open http://localhost:4646&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The agents have no explicit consul configuration.
So in case consul is running with default settings, nomad will connect using the defaults (&lt;a href="https://www.nomadproject.io/docs/configuration/consul" class="bare">https://www.nomadproject.io/docs/configuration/consul&lt;/a>).&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java JVM.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/18-relnote-issues.html">Java 18 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;a href="https://openjdk.org/jeps/400">JEP-400&lt;/a>, now UTF-8 is the default charset of the standard Java APIs.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>In JDK 17 and earlier, the default charset is determined when the Java runtime starts.
On macOS, it is UTF-8 except in the POSIX C locale.
On other operating systems, it depends upon the user’s locale and the default encoding, e.g.,
on Windows, it is a codepage-based charset such as windows-1252 or windows-31j.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/18-relnote-issues.html">Java 18 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/18/language/java-language-changes.html">Java Language Updates for Java SE 18&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 18 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/420">JEP 420&lt;/a> is continuing with &lt;em>Pattern Matching for switch&lt;/em>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>With a snippet region defined we can include a fragment of compileable and tested code.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Snippet Include&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/eighteen/tooling/JavaDocSnippetTag.java[tag=snippetInclude]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With a snippet tag we can just inline code.
There is no need to escape or use HTML.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java tooling.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/18-relnote-issues.html">Java 18 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 18 is introducing the following tooling enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/408">JEP 408&lt;/a> is adding the &lt;code>jwebserver&lt;/code> tool that can serve static files and support the &lt;code>HEAD&lt;/code> and &lt;code>GET&lt;/code> methods.
This is simplifying situations where a simple web server is needed for example for testing and eliminating the need for external dependencies.
In case a more customized web server is required, we can use the implementations from the package &lt;code>com.sun.net.httpserver&lt;/code> which constitutes the base for &lt;code>jwebserver&lt;/code>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/413">JEP 413&lt;/a> is adding support to include Java code snippets either from external sources of inline snippets.
Nicolai Parlog has a pretty decent summary of some of the features builtin. See &lt;a href="https://nipafx.dev/inside-java-newscast-20/#code-in-javadoc" class="bare">https://nipafx.dev/inside-java-newscast-20/#code-in-javadoc&lt;/a>&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">To Array&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/eleven/api/CollectionApi.java[tag=toArray]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Files.readString() and Files.writeString()&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/eleven/api/FilesApi.java[tag=writeStringAndReadString]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/11-relnote-issues.html">Java 11 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::PredicateApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::StringApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::CollectionApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::FilesApi.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Before Java 11 we had to use &lt;code>Predicate::negate&lt;/code> and it was not possible to use a method reference.
With &lt;code>Predicate::not&lt;/code> we can use method references and &lt;code>Predicate::not&lt;/code> reads more natural.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Not&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/eleven/api/PredicateApi.java[tag=not]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Lines&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/eleven/api/StringApi.java[tag=lines]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>String::lines&lt;/code> we can split any multi line String into a stream of lines.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Strip&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/eleven/api/StringApi.java[tag=strip]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>&lt;code>String::strip&lt;/code> is similar to String::trim but with Unicode support.
&lt;code>String&lt;/code> also has a &lt;code>stripLeading&lt;/code> and &lt;code>stripTrailing&lt;/code> method.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Lambda variable without type with {java10}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/eleven/lang/LambdaLocalVariable.java[tag=beforeJava11]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Lambda variable with type with {java10}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/eleven/lang/LambdaLocalVariable.java[tag=withTypeBeforeJava11]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The type is inferred from the initializer.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With multiple lambda variables we have to use &lt;code>var&lt;/code> for all or none.
Also it is not possible to mix &lt;code>var&lt;/code> with explicit types.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/11-relnote-issues.html">Java 10 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::LambdaLocalVariable.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Is Empty&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/fifteen/api/CharSequenceApi.java[tag=isEmpty]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/15-relnote-issues.html">Java 15 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::CharSequenceApi.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/15-relnote-issues.html">Java 15 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;a href="https://openjdk.org/jeps/378">JEP 378&lt;/a>, Text Blocks introduced in Java 13 are now moving from preview state to general availability.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 15 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Multiline Text Block&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/fifteen/lang/TextBlock.java[tag=multilineTextBlock]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Currency Instance&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/fourteen/api/AccountingCurrencyFormatSupport.java[tag=currencyInstance]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="colist arabic">
&lt;ol>
&lt;li>
&lt;p>See the &lt;a href="https://www.unicode.org/reports/tr35/tr35.html#UnicodeCurrencyFormatIdentifier">Unicode Currency Format Identifier&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Readable Null Pointer Exception Message&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/fourteen/api/NullPointerExceptions.java[tag=readableNullPointerExceptionMessage]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/14-relnote-issues.html">Java 14 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::NullPointerExceptions.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::AccountingCurrencyFormatSupport.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java JVM.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/14-relnote-issues.html">Java 14 release notes&lt;/a>.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See &lt;a href="https://docs.oracle.com/en/java/javase/17/language/java-language-changes.html#GUID-8FD2B5E3-46C7-4C6C-8E8A-64AB49ABF855">Java Language Changes for Java SE 14&lt;/a>&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 14 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.java.net/jeps/305">JEP 305&lt;/a> is introducing &lt;em>Pattern Matching for&lt;/em> &lt;code>instanceof&lt;/code> and is eliminating boilerplate code.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.java.net/jeps/359">JEP 359&lt;/a> introduces &lt;code>Record&lt;/code> to reduce repetitive boilerplate code in data model POJOs.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Switch Expression&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/fourteen/lang/SwitchExpressions.java[tag=switchExpression]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="colist arabic">
&lt;ol>
&lt;li>
&lt;p>The compiler warns when cases are not exhausted.
A &lt;code>default&lt;/code> clause is required.
However, for enum switch expressions that cover all known constants,
the compiler inserts an implicit &lt;code>default&lt;/code> clause.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Switch Expression Yield&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>By applying a filter predicate we can adapt a collector to accept only elements matching a predicate.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Filtering&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/CollectorsApi.java[tag=filtering]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With the new &lt;code>flatMapping&lt;/code> method a stream of streams or stream of collections a collector is adapted to return a flattened result.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Factory methods have been added to the Collections class for simplifying list creation.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Empty list with {java8}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableListFactory.java[tag=immutableEmptyList]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Empty list with {java9}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableListFactory.java[tag=immutableEmptyListJava9]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">List with {java8}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableListFactory.java[tag=immutableListJava8]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">List with {java9}&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Factory methods have been added to the Collections class for simplifying map entry creation.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Immutable Empty Map&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableMapEntryFactory.java[tag=immutableEmptyMap]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Immutable Map&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableMapEntryFactory.java[tag=immutableMap]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Factory methods have been added to the Collections class for simplifying map creation.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Empty map with {java8}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableMapFactory.java[tag=immutableEmptyMapJava8]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Empty map with {java9}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableMapFactory.java[tag=immutableEmptyMapJava9]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Map with {java8}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableMapFactory.java[tag=immutableMapJava8]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Map with {java9}&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Factory methods have been added to the Collections class for simplifying set creation.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Empty Set with {java8}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableSetFactory.java[tag=immutableEmptySetJava8]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Empty Set with {java9}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableSetFactory.java[tag=immutableEmptySetJava9]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Set with {java8}&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ImmutableSetFactory.java[tag=immutableSetJava8]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Set with {java9}&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>With &lt;code>Matcher.results&lt;/code> we get a stream of all matched elements&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Results&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/MatcherApi.java[tag=results]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>Matcher.replaceAll&lt;/code> we can perform substitution of matches.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Replace All&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/MatcherApi.java[tag=replaceAll]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Methods for convenient &lt;code>null&lt;/code> checking have been added to &lt;code>Objects&lt;/code> class.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Require Non Null Else&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ObjectsApi.java[tag=requireNonNullElse]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Require Non Null Else Get&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/ObjectsApi.java[tag=requireNonNullElseGet]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Optional Or&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/OptionalApi.java[tag=optionalOr]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Optional If Present Or Else&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/OptionalApi.java[tag=optionalIfPresentOrElse]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Optional Stream&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/OptionalApi.java[tag=optionalStream]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/9-relnotes.html">Java 9 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::CollectorsApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::ObjectsApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::MatcherApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::ImmutableListFactory.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::ImmutableMapEntryFactory.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::ImmutableMapFactory.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::ImmutableSetFactory.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::StreamApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::OptionalApi.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Take While&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/StreamApi.java[tag=takeWhile]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>We can take (accept) stream elements matching a predicate.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Drop While&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/StreamApi.java[tag=dropWhile]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>We can drop stream elements matching a predicate.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Iterate&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/api/StreamApi.java[tag=iterate]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Generate a stream using an iteration.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/9-relnotes.html">Java 9 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::PrivateInterfaceMethod.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::TryWithResource.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>An interface can now have private methods.
These can simplify implementing default methods.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Say Hello&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/lang/PrivateInterfaceMethod.java[tag=tagname]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Before Java9&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/lang/TryWithResource.java[tag=beforeJava9]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Before Java 9 a variable referencing a resource had to be redeclared (and assigned) in the &lt;code>try&lt;/code> block in order to be automatically closed.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">With Java9&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nine/lang/TryWithResource.java[tag=withJava9]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Variables that are effectively final
can be used in a try with resource block (and don’t have to be redeclared).&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>It is now possible to create pre allocated hash maps and hash sets through a set of new factory methods on &lt;code>Set&lt;/code> and &lt;code>Map&lt;/code> implementations.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">New Hash Map&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nineteen/api/CollectionApi.java[tag=newHashMap]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">New Hash Set&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nineteen/api/CollectionApi.java[tag=newHashSet]&lt;/code>&lt;/pre>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Of Localized Pattern&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nineteen/api/DateTimeFormatterApi.java[tag=ofLocalizedPattern]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The formatted value is &lt;code>Sep 2022&lt;/code>.
Read more about the pattern template in the &lt;a href="https://docs.oracle.com/en/java/javase/21/docs/api//java.base/java/time/format/DateTimeFormatter.html#ofLocalizedPattern(java.lang.String)">API documentation&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Append Localized&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/nineteen/api/DateTimeFormatterApi.java[tag=appendLocalized]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>The formatted value is &lt;code>Sep 2022&lt;/code>.
Read more about the pattern template in the &lt;a href="https://docs.oracle.com/en/java/javase/21/docs/api//java.base/java/time/format/DateTimeFormatterBuilder.html#appendLocalized(java.lang.String))">API documentation&lt;/a>.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/19-relnote-issues.html">Java 19 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::CollectionApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::DateTimeFormatterApi.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java JVM.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/19-relnote-issues.html">Java 19 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Class data sharing (CDS) now has an option &lt;code>-XX:+AutoCreateSharedArchive&lt;/code> to automatically create or update a CDS archive for an application..&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/19-relnote-issues.html">Java 19 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/19/language/java-language-changes.html">Java Language Updates for Java SE 19&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 19 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/405">JEP 405&lt;/a> is starting with &lt;em>Record Patterns&lt;/em> as developer preview&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/420">JEP 420&lt;/a> is continuing with &lt;em>Pattern Matching for switch&lt;/em>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/425">JEP 425&lt;/a> is starting with &lt;em>Virtual Threads&lt;/em>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/428">JEP 428&lt;/a> is starting with &lt;em>Structured Concurrency&lt;/em>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/17-relnote-issues.html">Java 17 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/17/language/java-language-changes.html#GUID-67ED83E7-D79F-4F46-AA33-41031E5CD094">Java Language Updates for Java SE 17&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;a href="https://openjdk.org/jeps/409">JEP 409&lt;/a> &lt;em>Sealed Classes&lt;/em> are now leaving preview state and are finally available for production.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 17 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Sealed Class Permits&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/seventeen/lang/SealedClasses.java[tags=Shape;Ellipsis;Circle;Rectangle]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="colist arabic">
&lt;ol>
&lt;li>
&lt;p>The new keyword &lt;code>permits&lt;/code> declares which subclasses are allowed.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Subclasses may be &lt;code>sealed&lt;/code>,&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>final&lt;/code> or,&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;code>non-sealed&lt;/code>&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Sealed Class Subclasses In Same Sourcefile&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/seventeen/lang/SealedClasses.java[tags=Ellipsis;Circle]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="colist arabic">
&lt;ol>
&lt;li>
&lt;p>The &lt;code>permits&lt;/code> declaration can be omitted when&lt;/p>
&lt;/li>
&lt;li>
&lt;p>the subclasses are in the same source file.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Day Period Support&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/sixteen/api/DayPeriodSupport.java[tag=dayPeriodSupport]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/16-relnote-issues.html">Java 16 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::DayPeriodSupport.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::StreamApi.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Stream.toList()&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/sixteen/api/StreamApi.java[tag=toList]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/16-relnote-issues.html">Java 16 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/16/language/java-language-changes.html#GUID-EE327F97-BF08-46D2-8426-085CBE585797">Java Language Updates for Java SE 16&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;a href="https://openjdk.org/jeps/394">JEP 394&lt;/a>,
Pattern Matching for instanceof introduced in {java14} is moving from preview state to final availability.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;a href="https://openjdk.org/jeps/395">JEP 395&lt;/a>,
Record introduced in {java14} is moving from preview state to final availability.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Pattern Matching For Instanceof&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/sixteen/lang/PatternMatchingForInstanceof.java[tag=patternMatchingForInstanceof]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="colist arabic">
&lt;ol>
&lt;li>
&lt;p>Pattern matching eliminates a required type conversion (type cast).&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>See &lt;a href="https://docs.oracle.com/en/java/javase/16/language/records.html" class="bare">https://docs.oracle.com/en/java/javase/16/language/records.html&lt;/a>&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Record&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/sixteen/lang/Record.java[tag=record]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="colist arabic">
&lt;ol>
&lt;li>
&lt;p>A record is implicitly &lt;strong>final&lt;/strong>,&lt;/p>
&lt;/li>
&lt;li>
&lt;p>has a canonical constructor equal to the header,&lt;/p>
&lt;/li>
&lt;li>
&lt;p>has a &lt;code>toString()&lt;/code>, &lt;code>equals()&lt;/code>, and &lt;code>hashCode()&lt;/code> method.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Each member has an accessor method, e.g &lt;code>x()&lt;/code> or &lt;code>y()&lt;/code>.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Compact Canonical Constructor&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">To Unmodifiable List&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/ten/api/CollectorsApi.java[tag=toUnmodifiableList]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>Collectors.toUnmodifiableList()&lt;/code> we can now convert a list into an immutable list.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">To Unmodifiable Set&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/ten/api/CollectorsApi.java[tag=toUnmodifiableSet]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>Collectors.toUnmodifiableSet()&lt;/code> we can now convert a set into an immutable set.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Copy Of&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/ten/api/ListApi.java[tag=copyOf]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>List.copyOf&lt;/code> we can now create an immutable copy of a list.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Copy Of&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/ten/api/MapApi.java[tag=copyOf]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>Map.copyOf&lt;/code> we can now create an immutable copy of a list.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Or Else Throw&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/ten/api/OptionalApi.java[tag=orElseThrow]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>A argumentless method &lt;code>Optional.orElseThrow()&lt;/code> that throws a &lt;code>NoSuchElementException&lt;/code> has been added.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/10-relnote-issues.html">Java 10 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::ListApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::MapApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::OptionalApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::SetApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::CollectorsApi.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Copy Of&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/ten/api/SetApi.java[tag=copyOf]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>Set.copyOf&lt;/code> we can now create an immutable copy of a list.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>&lt;code>var&lt;/code> is not a keyword but a reserved type identifier.
The type is inferred from the initializer.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>See &lt;a href="https://openjdk.java.net/projects/amber/LVTIstyle.html" class="bare">https://openjdk.java.net/projects/amber/LVTIstyle.html&lt;/a>
which discusses when &lt;code>var&lt;/code> should be used and when best avoided.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">var&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/ten/lang/LocalVariableTypeInference.java[tag=varTypeInference]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/10-relnote-issues.html">Java 10 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::LocalVariableTypeInference.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The new &lt;code>newFileSystem&lt;/code> method allows to access the content of a file like a file system.
Read more in the Java 13 &lt;a href="https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/nio/file/FileSystems.html#newFileSystem(java.nio.file.Path)">Java API documentation&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">New File System&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/thirteen/api/FileSystemsApi.java[tag=newFileSystem]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/13-relnote-issues.html">Java 13 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::FileSystemsApi.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java JVM.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/13-relnote-issues.html">Java 13 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Class data sharing (CDS) allows class metadata to be shared across different JVM instances to reduce startup time.
Java 13 is now delivering &lt;strong>Dynamic CDS Archives&lt;/strong> with &lt;a href="https://openjdk.org/jeps/350">JEP 350&lt;/a> that simplifies the process of generating a shared archive when an application is exiting.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/13-relnote-issues.html">Java 13 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 13 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/354">JEP 354&lt;/a> is enhancing the switch expression introduced in {java12} by introducing the &lt;code>yield&lt;/code> statement to return values from a switch expression.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/355">JEP 355&lt;/a> introduces text blocks.A text block is a multi-line string literal that avoids the need for most escape sequences, automatically formats the string in a predictable way, and gives the developer control over format when desired.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Teeing&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twelve/api/CollectorsApi.java[tag=teeing]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>Collectors.teeing&lt;/code> we can have two collectors process a stream.
The results of both collectors are then processed by a merge function.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Mismatch&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twelve/api/FilesApi.java[tag=mismatch]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>Files.mismatch&lt;/code> we can detect the first mismatching character while comparing two files.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Get Compact Number Instance&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twelve/api/NumberFormatApi.java[tag=getCompactNumberInstance]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/12-relnote-issues.html">Java 12 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::CollectorsApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::FilesApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::StringApi.adoc[leveloffset=+1]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::NumberFormatApi.adoc[leveloffset=+1]&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Indent&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twelve/api/StringApi.java[tag=indent]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>String::indent&lt;/code> we can easily indent any string. With earlier Java versions we would have to use 3rd-party libraries such as Apache &lt;a href="https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#leftPad(java.lang.String,int)">commons-lang&lt;/a> or implement yourself..&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Transform&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twelve/api/StringApi.java[tag=transform]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;code>String::transform&lt;/code> we can easily transform any string.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java JVM.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/12-relnote-issues.html">Java 12 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With &lt;a href="https://openjdk.org/jeps/341">JEP-341&lt;/a>, now CDS archives are built during the JDK build. CDS is already on by default as of {java11}.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/20-relnote-issues.html">Java 20 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 20 is introducing the following API enhancements as developer preview or Incubator.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/429">JEP 429&lt;/a> is introducing scoped values, which enable the sharing of immutable data within and across threads. They are preferred to thread-local variables, especially when using large numbers of virtual threads&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/436">JEP 436&lt;/a> is introducing virtual threads to the Java Platform. Virtual threads are lightweight threads that dramatically reduce the effort of writing, maintaining, and observing high-throughput concurrent applications.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/437">JEP 437&lt;/a> is simplifying multithreaded programming by introducing an API for structured concurrency. Structured concurrency treats multiple tasks running in different threads as a single unit of work, thereby streamlining error handling and cancellation, improving reliability, and enhancing observability..&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/20-relnote-issues.html">Java 20 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/20/language/java-language-changes.html">Java Language Updates for Java SE 20&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 20 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/432">JEP 432&lt;/a> is continuing with &lt;em>Record Patterns&lt;/em> as developer preview&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/433">JEP 433&lt;/a> is continuing with &lt;em>Pattern Matching for switch&lt;/em>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/25-relnote-issues.html">Java 25 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 25 is introducing the following finalized API enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/506">JEP 506&lt;/a> is finalizing &lt;em>Scoped Values&lt;/em>. Enable the sharing of immutable data within and across threads. They are preferred to thread-local variables, especially when using large numbers of virtual threads.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/510">JEP 510&lt;/a> is introducing &lt;em>Key Derivation Function API&lt;/em>. Provide an API for Key Derivation Functions (KDFs), which are cryptographic algorithms for deriving additional keys from a secret key or other high-entropy key material.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Before Java 25, ThreadLocal variables were used to share request context across method calls.
ThreadLocal requires manual cleanup and has memory overhead with virtual threads.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Request Context With Thread Local&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfive/api/ScopedValues.java[tag=requestContextWithThreadLocal]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Request Context With Scoped Value&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfive/api/ScopedValues.java[tag=requestContextWithScopedValue]&lt;/code>&lt;/pre>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java Virtual Machine.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/25-relnote-issues.html">Java 25 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 25 is introducing the following finalized JVM enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/518">JEP 518&lt;/a> is introducing &lt;em>JFR Cooperative Sampling&lt;/em>. Enhance Java Flight Recorder (JFR) with cooperative sampling capabilities, allowing applications to participate in profiling decisions and reduce overhead.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/519">JEP 519&lt;/a> is introducing &lt;em>Compact Object Headers&lt;/em>. Reduce the memory footprint of Java objects by implementing compact object headers, improving memory efficiency and performance.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/520">JEP 520&lt;/a> is introducing &lt;em>JFR Method Timing &amp;amp; Tracing&lt;/em>. Enhance Java Flight Recorder with improved method-level timing and tracing capabilities for better application performance analysis.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/521">JEP 521&lt;/a> is introducing &lt;em>Generational Shenandoah&lt;/em>. Improve application performance by extending Shenandoah to maintain separate generations for young and old objects, allowing more frequent collection of short-lived objects.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Before Java 25, constructor bodies were restricted - all statements had to appear
after the explicit constructor invocation (&lt;code>super()&lt;/code> or &lt;code>this()&lt;/code>).&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Constructor Before Java25&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfive/lang/FlexibleConstructorBodies.java[tag=constructorBeforeJava25]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Constructor With Java25&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfive/lang/FlexibleConstructorBodies.java[tag=constructorWithJava25]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 25 allows statements that don’t reference the instance being created
to appear before the explicit constructor invocation, providing more flexibility.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Java 25 also allows instance main methods within classes, eliminating the need
for static methods and making object-oriented concepts more natural for beginners.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Static Main Before Java25&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfive/lang/InstanceMainMethods.java[tag=staticMainBeforeJava25]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Instance Main Method&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfive/lang/InstanceMainMethods.java[tag=instanceMainMethod]&lt;/code>&lt;/pre>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Module Import With Java25&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfive/lang/ModuleImportDeclarations.java[tag=moduleImportWithJava25]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 25 introduces module import declarations that allow importing all exported packages
from a module with a single statement using the &lt;code>import module&lt;/code> syntax.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/25-relnote-issues.html">Java 25 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/25/language/java-language-changes.html">Java Language Updates for Java SE 25&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 25 is introducing the following finalized language enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/511">JEP 511&lt;/a> is finalizing &lt;em>Module Import Declarations&lt;/em>. Enhance the Java programming language with the ability to succinctly import all of the packages exported by a module. This simplifies the reuse of modular libraries, but does not require the importing code to be in a module itself.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/512">JEP 512&lt;/a> is finalizing &lt;em>Compact Source Files and Instance Main Methods&lt;/em>. Enhance the Java programming language so that students can write their first programs without needing to understand language features designed for large programs.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/513">JEP 513&lt;/a> is finalizing &lt;em>Flexible Constructor Bodies&lt;/em>. In constructors in the Java programming language, allow statements that do not reference the instance being created to appear before an explicit constructor invocation.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java platform and tooling.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/25-relnote-issues.html">Java 25 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 25 is introducing the following platform and tooling enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/503">JEP 503&lt;/a> is &lt;em>Remove the 32-bit x86 Port&lt;/em>. Remove the 32-bit x86 port (linux-x86) from the JDK, continuing the modernization of supported platforms.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/514">JEP 514&lt;/a> is introducing &lt;em>Ahead-of-Time Command-Line Ergonomics&lt;/em>. Improve the usability of ahead-of-time compilation by enhancing command-line tools and their ergonomics for better developer experience.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/515">JEP 515&lt;/a> is introducing &lt;em>Ahead-of-Time Method Profiling&lt;/em>. Enable method-level profiling information to be collected and used during ahead-of-time compilation to improve application startup and performance.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Before Java 24, working with Java class files required third-party libraries like ASM or BCEL.
The new Class-File API provides a standard way to parse, generate, and transform Java class files.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Parse Class File&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfour/api/ClassFileApi.java[tag=parseClassFile]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Generate Class File&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/24-relnote-issues.html">Java 24 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 24 is introducing the following finalized API enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/484">JEP 484&lt;/a> is finalizing the &lt;em>Class-File API&lt;/em>. Provide a standard API for parsing, generating, and transforming Java class files. This API will replace the need for third-party libraries like ASM.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/485">JEP 485&lt;/a> is finalizing &lt;em>Stream Gatherers&lt;/em>. Enhance the Stream API to support custom intermediate operations. This will allow stream pipelines to transform data in ways that are not easily achievable with the existing built-in intermediate operations.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/496">JEP 496&lt;/a> is introducing &lt;em>Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism&lt;/em>. Provide implementations of KEM based on the Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) standard specified in FIPS 203.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/497">JEP 497&lt;/a> is introducing &lt;em>Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm&lt;/em>. Provide implementations of the Module-Lattice-Based Digital Signature Algorithm (ML-DSA) standard specified in FIPS 204.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Before Java 24, creating sliding windows required complex collectors or external loops.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Sliding Window Before Java24&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfour/api/StreamGatherers.java[tag=slidingWindowBeforeJava24]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Sliding Window With Java24&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyfour/api/StreamGatherers.java[tag=slidingWindowWithJava24]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 24 Stream Gatherers provide built-in sliding window operations as intermediate operations.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java Virtual Machine.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/24-relnote-issues.html">Java 24 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 24 is introducing the following finalized JVM enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/475">JEP 475&lt;/a> is introducing &lt;em>Late Barrier Expansion for G1&lt;/em>. Improve G1 garbage collector performance by moving the expansion of GC barriers from the platform-independent optimization phase to the platform-dependent code generation phase.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/490">JEP 490&lt;/a> is &lt;em>ZGC: Remove the Non-Generational Mode&lt;/em>. Remove ZGC’s non-generational mode, retaining only the generational mode, which offers better application performance.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/491">JEP 491&lt;/a> is introducing &lt;em>Synchronize Virtual Threads without Pinning&lt;/em>. Enable virtual threads to synchronize without pinning the underlying platform thread by reimplementing object monitors to use a new locking scheme.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/24-relnote-issues.html">Java 24 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/24/language/java-language-changes.html">Java Language Updates for Java SE 24&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 24 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/488">JEP 488&lt;/a> is continuing with &lt;em>Primitive Types in Patterns, instanceof, and switch (Second Preview)&lt;/em>. Enhance pattern matching by allowing primitive type patterns in all pattern contexts, and extend instanceof and switch to work with all primitive types.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/492">JEP 492&lt;/a> is continuing with &lt;em>Flexible Constructor Bodies (Third Preview)&lt;/em>. In constructors in the Java programming language, allow statements that do not reference the instance being created to appear before an explicit constructor invocation.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/494">JEP 494&lt;/a> is continuing with &lt;em>Module Import Declarations (Second Preview)&lt;/em>. Enhance the Java programming language with the ability to succinctly import all of the packages exported by a module. This simplifies the reuse of modular libraries, but does not require the importing code to be in a module itself.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/495">JEP 495&lt;/a> is continuing with &lt;em>Simple Source Files and Instance Main Methods (Fourth Preview)&lt;/em>. Enhance the Java programming language so that students can write their first programs without needing to understand language features designed for large programs.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java platform and tooling.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/24-relnote-issues.html">Java 24 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 24 is introducing the following platform and tooling enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/472">JEP 472&lt;/a> is &lt;em>Prepare to Restrict the Use of JNI&lt;/em>. Prepare to restrict the use of JNI by issuing warnings when JNI is used by code on the class path. This prepares for a future release that will throw exceptions instead of issuing warnings.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/479">JEP 479&lt;/a> is &lt;em>Remove the Windows 32-bit x86 Port&lt;/em>. Remove the Windows 32-bit x86 port (windows-x86) from the JDK.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/483">JEP 483&lt;/a> is introducing &lt;em>Ahead-of-Time Class Loading &amp;amp; Linking&lt;/em>. Improve startup time and time to peak performance by enabling classes to be loaded and linked ahead of time.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/486">JEP 486&lt;/a> is &lt;em>Permanently Disable the Security Manager&lt;/em>. Permanently disable the Security Manager, which has been deprecated since Java 17 and marked for removal.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/493">JEP 493&lt;/a> is introducing &lt;em>Linking Run-Time Images without JMODs&lt;/em>. Enable jlink to create run-time images without requiring JMOD files to be present, provided that the packaged modules contain the same content.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/498">JEP 498&lt;/a> is &lt;em>Warn upon Use of Memory-Access Methods in sun.misc.Unsafe&lt;/em>. Issue warnings when memory-access methods in sun.misc.Unsafe are used. This prepares for their eventual removal or restriction.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/501">JEP 501&lt;/a> is &lt;em>Deprecate the 32-bit x86 Port for Removal&lt;/em>. Deprecate the 32-bit x86 port (linux-x86) with the intent to remove it in a future release.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/21-relnote-issues.html">Java 21 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 21 is introducing the following API/library enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/444">JEP 444&lt;/a> &lt;em>Virtual threads&lt;/em> are lightweight threads that dramatically reduce the effort of writing, maintaining, and observing high-throughput concurrent applications.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/431">JEP 431&lt;/a> &lt;em>Sequenced Collections&lt;/em> Introduce new interfaces to represent collections with a defined encounter order. Each such collection has a well-defined first element, second element, and so forth, up to the last element. It also provides uniform APIs for accessing its first and last elements, and for processing its elements in reverse order.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Sequenced Collection List Implementation&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyone/api/SequencedCollectionApi.java[tag=sequencedCollectionListImplementation]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Collection implementations with items in defined order hat a rather inconsistent API.
Those collection types now implement &lt;a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/SequencedCollection.html">&lt;code>SequencedCollection&lt;/code>&lt;/a> offering methods for accessing head and tail elements and reversing the ordering.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Set types that are maintaining a sequence have their own interface &lt;a href="https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/SequencedSet.html">&lt;code>SequencedSet&lt;/code>&lt;/a> sub-type.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Like platform threads, a virtual thread is also an instance of &lt;code>java.lang.Thread&lt;/code> class, but does not allocate a specific OS thread and consumes much less OS resources.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Executors&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyone/api/VirtualThreads.java[tag=executors]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>For frameworks that are managing multi-threading it’s usually just a matter of the proper configuration to switch from platform threads to virtual threads.
&lt;a href="https://www.baeldung.com/spring-6-virtual-threads">Spring Boot&lt;/a> for example just requires &lt;code>spring.threads.virtual.enabled=true&lt;/code> in the application configuration.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/21-relnote-issues.html">Java 21 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/21/language/java-language-changes.html">Java Language Updates for Java SE 21&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With Java 21 the following language enhancements are now generally available&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/440">JEP 440&lt;/a> is now releasing &lt;em>Record Patterns&lt;/em>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/441">JEP 441&lt;/a> is now releasing &lt;em>Pattern Matching for switch&lt;/em>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="listingblock">
&lt;div class="title">Record Pattern Matching With Instance Of&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyone/lang/Record.java[tag=recordPatternMatchingWithInstanceOf]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>See also &lt;a href="https://docs.oracle.com/en/java/javase/21/language/pattern-matching-instanceof-operator.html#GUID-843060B5-240C-4F47-A7B0-95C42E5B08A7">Pattern Matching for the instanceof Operator&lt;/a>&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Record Pattern Matching With Switch&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentyone/lang/Record.java[tag=recordPatternMatchingWithSwitch]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Record patterns with switch support many more additional features like &lt;a href="https://docs.oracle.com/en/java/javase/21/language/pattern-matching-switch-expressions-and-statements.html#GUID-A5C220F6-F70A-4FE2-ADB8-3B8883A67E8A">when clauses&lt;/a>.
Read more on the Java 21 language document for &lt;a href="https://docs.oracle.com/en/java/javase/21/language/pattern-matching-switch-expressions-and-statements.html#GUID-E69EEA63-E204-41B4-AA7F-D58B26A3B232">Pattern Matching for switch Expressions and Statements&lt;/a>.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/23-relnote-issues.html">Java 23 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 23 is introducing the following API enhancements as developer preview or Incubator.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/466">JEP 466&lt;/a> is continuing with &lt;em>Class-File API&lt;/em>, standard API for parsing, generating, and transforming Java class files&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/473">JEP 473&lt;/a> is continuing with &lt;em>Stream Gatherers&lt;/em>. This will allow stream pipelines to transform data in ways that are not easily achievable with the existing built-in intermediate operations&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/480">JEP 480&lt;/a> is continuing with simplifying multithreaded programming by introducing an API for &lt;em>structured concurrency&lt;/em>. Structured concurrency treats multiple tasks running in different threads as a single unit of work, thereby streamlining error handling and cancellation, improving reliability, and enhancing observability..&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/481">JEP 481&lt;/a> is continuing with &lt;em>scoped values&lt;/em>, which enable the sharing of immutable data within and across threads. They are preferred to thread-local variables, especially when using large numbers of virtual threads&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/469">JEP 469&lt;/a> is continuing with &lt;em>Vector API&lt;/em>, introduces an API to express vector computations that reliably compile at runtime to optimal vector instructions on supported CPU architectures, thus achieving performance superior to equivalent scalar computations.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/23-relnote-issues.html">Java 23 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/23/language/java-language-changes.html">Java Language Updates for Java SE 23&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 23 is introducing the following language enhancements as developer preview.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/455">JEP 455&lt;/a> is starting with &lt;em>Primitive Types in Patterns, instanceof, and switch (Preview)&lt;/em> as developer preview. Enhance pattern matching by allowing primitive type patterns in all pattern contexts, and extend instanceof and switch to work with all primitive types.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/476">JEP 476&lt;/a> is starting with &lt;em>Module Import Declarations&lt;/em> as developer preview. Enhance the Java programming language with the ability to succinctly import all of the packages exported by a module. This simplifies the reuse of modular libraries, but does not require the importing code to be in a module itself.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/482">JEP 482&lt;/a> is continuing with &lt;em>Flexible Constructor Bodies&lt;/em> as developer preview. In constructors in the Java programming language, allow statements that do not reference the instance being created to appear before an explicit constructor invocation.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/477">JEP 477&lt;/a> is continuing with &lt;em>Implicitly Declared Classes and Instance Main Methods&lt;/em>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Before Java 23 HTML JavaDoc syntax is verbose and hard to read in source code.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Basic Formatting Before Java23&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentythree/tooling/MarkdownDocumentationComments.java[tag=basicFormattingBeforeJava23]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Basic Formatting With Java23&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentythree/tooling/MarkdownDocumentationComments.java[tag=basicFormattingWithJava23]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 23 Markdown JavaDoc is clean and intuitive to write.&lt;/p>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java tooling.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/23-relnote-issues.html">Java 23 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 23 is introducing the following tooling enhancements.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/467">JEP 467&lt;/a> is adding the &lt;em>Markdown Documentation Comments&lt;/em>. This enables JavaDoc documentation comments to be written in Markdown rather than solely in a mixture of HTML and JavaDoc @-tags.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java API.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/22-relnote-issues.html">Java 22 release notes&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Java 22 is introducing the following API enhancements as developer preview or Incubator.&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/446">JEP 446&lt;/a> is continuing with &lt;em>scoped values&lt;/em>, which enable the sharing of immutable data within and across threads. They are preferred to thread-local variables, especially when using large numbers of virtual threads&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/457">JEP 457&lt;/a> is starting with a &lt;em>Class-File API&lt;/em> to provide a standard API for parsing, generating, and transforming Java class files. This could eliminate the need for libraries like ASM.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/453">JEP 453&lt;/a> is continuing with simplifying multithreaded programming by introducing an API for &lt;em>structured concurrency&lt;/em>. Structured concurrency treats multiple tasks running in different threads as a single unit of work, thereby streamlining error handling and cancellation, improving reliability, and enhancing observability..&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/461">JEP 461&lt;/a> is starting &lt;em>Stream Gatherers&lt;/em>. This will allow stream pipelines to transform data in ways that are not easily achievable with the existing built-in intermediate operations&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The following describes selected improvements of the Java language.
See the &lt;a href="https://www.oracle.com/java/technologies/javase/22-relnote-issues.html">Java 22 release notes&lt;/a>.
See &lt;a href="https://docs.oracle.com/en/java/javase/22/language/java-language-changes.html">Java Language Updates for Java SE 22&lt;/a>.&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>With Java 22 the following language enhancements are now generally available&lt;/p>
&lt;/div>
&lt;div class="ulist">
&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://openjdk.org/jeps/456">JEP 456&lt;/a> is releasing &lt;em>Unnamed Patterns and Variables&lt;/em>. Unnamed patterns, which match a record component without stating the component’s name or type, and unnamed variables, which can be initialized but not used. Both are denoted by an underscore character, &lt;code>_&lt;/code>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>The Java language mandates to declare variables (names) even when they are not needed (used).
Often we also find ourselves to declare variables just for the sake of having a consistent look.&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Unnamed Variables&lt;/div>
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-java" data-lang="java">Unresolved directive in &amp;lt;stdin&amp;gt; - include::../../../../../../../../src/main/java/twentytwo/lang/UnnamedVariablesAndPatterns.java[tag=unnamedVariables]&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="title">Unnamed Variables For Consistent Code Style&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;!DOCTYPE html>
&lt;html lang="en">
&lt;head>
&lt;!-- Required meta tags -->
&lt;meta charset="utf-8">
&lt;meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
&lt;style type="text/css">
/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
html {
line-height: 1.15;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%
}
body {
margin: 0
}
article, aside, footer, header, nav, section {
display: block
}
h1 {
font-size: 2em;
margin: .67em 0
}
figcaption, figure, main {
display: block
}
figure {
margin: 1em 40px
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible
}
pre {
font-family: monospace, monospace;
font-size: 1em
}
a {
background-color: transparent;
-webkit-text-decoration-skip: objects
}
abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted
}
b, strong {
font-weight: inherit
}
b, strong {
font-weight: bolder
}
code, kbd, samp {
font-family: monospace, monospace;
font-size: 1em
}
dfn {
font-style: italic
}
mark {
background-color: #ff0;
color: #000
}
small {
font-size: 80%
}
sub, sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline
}
sub {
bottom: -.25em
}
sup {
top: -.5em
}
audio, video {
display: inline-block
}
audio:not([controls]) {
display: none;
height: 0
}
img {
border-style: none
}
svg:not(:root) {
overflow: hidden
}
button, input, optgroup, select, textarea {
font-family: sans-serif;
font-size: 100%;
line-height: 1.15;
margin: 0
}
button, input {
overflow: visible
}
button, select {
text-transform: none
}
[type=reset], [type=submit], button, html [type=button] {
-webkit-appearance: button
}
[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
border-style: none;
padding: 0
}
[type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring {
outline: 1px dotted ButtonText
}
fieldset {
padding: .35em .75em .625em
}
legend {
box-sizing: border-box;
color: inherit;
display: table;
max-width: 100%;
padding: 0;
white-space: normal
}
progress {
display: inline-block;
vertical-align: baseline
}
textarea {
overflow: auto
}
[type=checkbox], [type=radio] {
box-sizing: border-box;
padding: 0
}
[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
height: auto
}
[type=search] {
-webkit-appearance: textfield;
outline-offset: -2px
}
[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration {
-webkit-appearance: none
}
::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit
}
details, menu {
display: block
}
summary {
display: list-item
}
canvas {
display: inline-block
}
template {
display: none
}
[hidden] {
display: none
}
/* configuration cache styles */
.report-wrapper {
margin: 0;
padding: 0 24px;
}
.gradle-logo {
width: 32px;
height: 24px;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAGAAAAAA915G0AAAD5klEQVRIDbVWC0xTZxT+emmhVUEeA1/ROh/tFAFFGK7oJisIKsNVoOwBbJPowEWHzikRxeiMRpwwjDWRBHQLIzOmiRhe22BT40TitiyaMBQFfMEeLMIEaSmk+/+rvd7be4no6Elu7n++c/5zzv845/wyOyG4iGyDgzCdNOPLM9W41n4bnmNUiHo5DNsz0hGsmcV6lbkyAOOWXJjrz4qWp1C4o3z/LqzWL4VcJB1FIHmZHn/f78a6pDcxbeIEfNvQiPwTZbDZBpC24zOEaGfDpTsgtZby6u+QlrubFWUY3nh6AH39/ahr/Bn1jZfxW3ML2js60dtvgbtcQVblj8CZM7A0PBSrol6Ft+c4KZ8iTB1nwN0//8IEP9/hA2i924Gir0/iq8oa/NvbJzLiDKiUSqTE6pGVbEBY4BxnsYAPSnwXTa3tLCZ5BF3dPdAkGNHzoFcwcaRMnC4CeZkZiAgKFE252nITC1Pew9Dj5GNEGgS4Rbb5eZ1Te7UXG6FLX4cV6zeh5kIDaDpSunL9Boyf5nLOpwT4Sx+BxWrFK8QAnTAapPRQwofcj86uLoG59cbVEOzA0NAQNh38Atn5RSjY8rFAmc/I3dyQvOx1PsSNVy7Roa3ajHDePbBYLSLn1MaGd5KFAXy07xAOl59C6elK+I73hIHcbGd6wXs8qkyH8FZcjLOI5X/9/TrOnLsAldJDUu4As1NToFFPe3IEpm/M2HigwCFnU6t4Zw6Ck1JhGRhgcXq5juXloKyqFnlHirmz5CaNcEAv59kSE9wVikcB3O78A/MSU0Fznk/H9+yAetJEnPr+B8RFLsLcGS8ia28+qQuX+WrPNNZOV+Nc6VH4+3iz89g0pEaLzRUiQ3LGDWsM8Qidq2WL0PGKKlgf74ZIeQTAfFJ6a44WIsDXh9OW/dPdY58aawC9KK6kpOgolO7JxViVSuBGXnvxksudZ5F0O5yzGYxMJnBOGaau4fnPU2RNAtCFBKFoa7akczaAptY2iWmjB33+yQa4kZwfjpi2ex3Dyf43vuAljWQ/4Btmei1WPj+q45hF4U+1J4fEizCEvNf0EWHoIW244sfzoN1RipaT2kDfdjfv3MNpojdISjmfIheE8Fnp8WR9vJ2Zr+O+bYUmO+kJ9KnIUtf9bnvY2x9wcqrrvnCJvfL8Tw4V9v9LU7PdKzJaoNdy645AR4ph1JMncZHRKrVvYyYY5kmP8iO1v2T3dk6HDtYmrgJtOnwKnaPFrg8z+BBX7QSgEyOPJfX9Qd9DFs40GgTOHbrBs2ch4bXFuEG2mmFkeD9hpUMk+NMXEe0TNtsg/Ly94DVurEAuxfwHC1WiVbe0U7MAAAAASUVORK5CYII=");
background-size: contain;
}
.header {
display: flex;
flex-wrap: wrap;
position: fixed;
top: 0;
left: 0;
width: 100%;
padding: 24px 24px 0 24px;
background-color: white;
z-index: 1;
}
.learn-more {
margin-left: auto;
align-self: center;
font-size: 0.875rem;
font-weight: normal;
}
.title {
display: flex;
align-items: center;
padding: 18px 0 24px 0;
flex: 1 0 100%;
}
.content {
font-size: 0.875rem;
padding: 240px 0 48px;
overflow-x: auto;
white-space: nowrap;
}
.content ol:first-of-type {
margin: 0;
}
.tree-btn {
cursor: pointer;
display: inline-block;
width: 16px;
height: 16px;
background-size: contain;
background-repeat: no-repeat;
vertical-align: middle;
margin-top: -0.2em;
}
.tree-btn.collapsed {
background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 192 512">&lt;path d="M166.9 264.5l-117.8 116c-4.7 4.7-12.3 4.7-17 0l-7.1-7.1c-4.7-4.7-4.7-12.3 0-17L127.3 256 25.1 155.6c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0l117.8 116c4.6 4.7 4.6 12.3-.1 17z" fill="%23999999" stroke="%23999999"/>&lt;/svg>');
}
.tree-btn.expanded {
background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512">&lt;path d="M119.5 326.9L3.5 209.1c-4.7-4.7-4.7-12.3 0-17l7.1-7.1c4.7-4.7 12.3-4.7 17 0L128 287.3l100.4-102.2c4.7-4.7 12.3-4.7 17 0l7.1 7.1c4.7 4.7 4.7 12.3 0 17L136.5 327c-4.7 4.6-12.3 4.6-17-.1z" fill="%23999999" stroke="%23999999"/>&lt;/svg>');
}
ul .tree-btn {
margin-right: 3px;
}
.leaf-icon {
display: inline-block;
width: 16px;
height: 16px;
background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 512">&lt;path d="M32 256 H224" stroke="%23999999" stroke-width="48" stroke-linecap="round"/>&lt;/svg>');
background-size: contain;
background-repeat: no-repeat;
vertical-align: middle;
margin-top: -0.2em;
}
.invisible-text {
user-select: all; /* Allow the text to be selectable */
color: transparent; /* Hide the text */
text-indent: -9999px; /* Move the text out of view */
position: relative;
white-space: pre; /* Preserve meaningful whitespace in the invisible text for copying */
}
.text-for-copy {
display: inline-block;
}
.enum-icon {
display: inline-block;
width: 16px;
height: 16px;
background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">&lt;circle cx="512" cy="512" r="200" />&lt;/svg>');
background-size: contain;
background-repeat: no-repeat;
vertical-align: middle;
margin-inline-start: 0.5ex;
margin-inline-end: 0.5ex;
margin-top: -0.2em;
}
.error-icon {
display: inline-block;
width: 16px;
height: 16px;
background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512">&lt;path d="M193.94 256L296.5 153.44l21.15-21.15c3.12-3.12 3.12-8.19 0-11.31l-22.63-22.63c-3.12-3.12-8.19-3.12-11.31 0L160 222.06 36.29 98.34c-3.12-3.12-8.19-3.12-11.31 0L2.34 120.97c-3.12 3.12-3.12 8.19 0 11.31L126.06 256 2.34 379.71c-3.12 3.12-3.12 8.19 0 11.31l22.63 22.63c3.12 3.12 8.19 3.12 11.31 0L160 289.94 262.56 392.5l21.15 21.15c3.12 3.12 8.19 3.12 11.31 0l22.63-22.63c3.12-3.12 3.12-8.19 0-11.31L193.94 256z" fill="%23FC461E" stroke="%23FC461E"/>&lt;/svg>');
background-size: contain;
background-repeat: no-repeat;
vertical-align: middle;
margin-inline-start: 0.5ex;
margin-inline-end: 0.5ex;
margin-top: -0.2em;
}
.advice-icon {
display: inline-block;
width: 16px;
height: 16px;
background-image: url('data:image/svg+xml;utf8,&lt;svg width="800px" height="800px" viewBox="-4.93 0 122.88 122.88" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="enable-background:new 0 0 113.01 122.88" xml:space="preserve">&lt;g>&lt;path d="M44.13,102.06c-1.14,0.03-2.14-0.81-2.3-1.96c-0.17-1.2,0.64-2.31,1.82-2.54c-1.3-7.37-4.85-11.43-8.6-15.72 c-2.92-3.34-5.95-6.81-8.34-11.92c-2.35-5.03-3.64-10.23-3.6-15.63c0.05-5.4,1.42-10.96,4.4-16.71c0.02-0.04,0.04-0.07,0.06-0.11 l0,0c3.91-6.62,9.38-11.04,15.47-13.52c5.11-2.09,10.66-2.8,16.1-2.3c5.42,0.5,10.73,2.2,15.37,4.94 c5.9,3.49,10.75,8.67,13.42,15.21c1.44,3.54,2.42,7.49,2.54,11.82c0.12,4.31-0.62,8.96-2.61,13.88 c-2.66,6.59-6.18,10.68-9.47,14.51c-3.03,3.53-5.85,6.81-7.42,11.84c0.89,0.21,1.59,0.94,1.73,1.9c0.17,1.24-0.7,2.39-1.94,2.56 l-0.77,0.11c-0.14,1.09-0.23,2.26-0.27,3.51l0.25-0.04c1.24-0.17,2.39,0.7,2.56,1.94c0.17,1.24-0.7,2.39-1.94,2.56l-0.78,0.11 c0.01,0.15,0.02,0.3,0.03,0.45l0,0c0.07,0.88,0.08,1.73,0.03,2.54l0.13-0.02c1.25-0.15,2.38,0.74,2.54,1.98 c0.15,1.25-0.74,2.38-1.98,2.54l-1.68,0.21c-1.2,3.11-3.34,5.48-5.87,6.94c-1.74,1.01-3.67,1.59-5.61,1.71 c-1.97,0.12-3.96-0.25-5.78-1.13c-2.08-1.02-3.94-2.71-5.29-5.14c-0.65-0.33-1.13-0.97-1.23-1.75c-0.04-0.31-0.01-0.61,0.07-0.89 c-0.39-1.16-0.68-2.43-0.87-3.83l-0.07,0.01c-1.24,0.17-2.39-0.7-2.56-1.94c-0.17-1.24,0.7-2.39,1.94-2.56l0.54-0.08 C44.19,104.32,44.18,103.16,44.13,102.06L44.13,102.06z M2.18,58.86C1.01,58.89,0.04,57.98,0,56.81c-0.04-1.17,0.88-2.14,2.05-2.18 l8.7-0.3c1.17-0.04,2.14,0.88,2.18,2.05c0.04,1.17-0.88,2.14-2.05,2.18L2.18,58.86L2.18,58.86z M110.68,50.25 c1.16-0.12,2.2,0.73,2.32,1.89c0.12,1.16-0.73,2.2-1.89,2.32l-8.66,0.91c-1.16,0.12-2.2-0.73-2.32-1.89 c-0.12-1.16,0.73-2.2,1.89-2.32L110.68,50.25L110.68,50.25z M94.91,14.78c0.65-0.97,1.96-1.23,2.93-0.58 c0.97,0.65,1.23,1.96,0.58,2.93l-4.84,7.24c-0.65,0.97-1.96,1.23-2.93,0.58c-0.97-0.65-1.23-1.96-0.58-2.93L94.91,14.78 L94.91,14.78z M57.63,2.06c0.03-1.17,1-2.09,2.16-2.06c1.17,0.03,2.09,1,2.06,2.16l-0.22,8.7c-0.03,1.17-1,2.09-2.16,2.06 c-1.17-0.03-2.09-1-2.06-2.16L57.63,2.06L57.63,2.06z M13.88,15.53c-0.86-0.8-0.9-2.14-0.11-2.99c0.8-0.86,2.14-0.9,2.99-0.11 l6.37,5.94c0.86,0.8,0.9,2.14,0.11,2.99c-0.8,0.86-2.14,0.9-2.99,0.11L13.88,15.53L13.88,15.53z M47.88,96.95l18.49-2.63 c1.59-6.7,5.05-10.73,8.8-15.08c3.08-3.58,6.36-7.4,8.76-13.34c1.76-4.35,2.41-8.43,2.31-12.19c-0.1-3.75-0.96-7.21-2.24-10.34 c-2.3-5.63-6.51-10.11-11.65-13.15c-4.11-2.43-8.8-3.94-13.59-4.37c-4.77-0.44-9.64,0.19-14.13,2.02 c-5.26,2.15-9.99,5.97-13.39,11.72c-2.64,5.12-3.86,10.02-3.9,14.73c-0.04,4.74,1.11,9.33,3.2,13.8c2.13,4.56,4.97,7.8,7.69,10.92 C42.47,83.9,46.48,88.49,47.88,96.95L47.88,96.95z M65.62,99.02l-17.27,2.45c0.05,1.1,0.07,2.25,0.05,3.47l17.05-2.42 C65.47,101.29,65.52,100.12,65.62,99.02L65.62,99.02z M48.49,109.52c0.12,0.92,0.3,1.76,0.53,2.54l16.55-2.04 c0.11-0.86,0.13-1.77,0.05-2.74l0,0l0-0.02l-0.01-0.17L48.49,109.52L48.49,109.52z M51.37,116.36c0.64,0.67,1.35,1.19,2.1,1.55 c1.15,0.56,2.42,0.79,3.67,0.72c1.29-0.08,2.57-0.47,3.74-1.15c1.1-0.64,2.09-1.53,2.88-2.65L51.37,116.36L51.37,116.36z"/>&lt;/g>&lt;/svg>');
background-size: contain;
background-repeat: no-repeat;
vertical-align: middle;
margin-inline-start: 0.5ex;
margin-inline-end: 0.5ex;
margin-top: -0.2em;
}
.warning-icon {
display: inline-block;
width: 13px;
height: 13px;
background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">&lt;path d="M270.2 160h35.5c3.4 0 6.1 2.8 6 6.2l-7.5 196c-.1 3.2-2.8 5.8-6 5.8h-20.5c-3.2 0-5.9-2.5-6-5.8l-7.5-196c-.1-3.4 2.6-6.2 6-6.2zM288 388c-15.5 0-28 12.5-28 28s12.5 28 28 28 28-12.5 28-28-12.5-28-28-28zm281.5 52L329.6 24c-18.4-32-64.7-32-83.2 0L6.5 440c-18.4 31.9 4.6 72 41.6 72H528c36.8 0 60-40 41.5-72zM528 480H48c-12.3 0-20-13.3-13.9-24l240-416c6.1-10.6 21.6-10.7 27.7 0l240 416c6.2 10.6-1.5 24-13.8 24z" fill="%23DEAD22" stroke="%23DEAD22"/>&lt;/svg>');
background-size: contain;
background-repeat: no-repeat;
vertical-align: middle;
margin-inline-start: 0.3ex;
margin-inline-end: 1.1ex;
margin-top: -0.1em;
}
.documentation-button {
cursor: pointer;
display: inline-block;
width: 13px;
height: 13px;
background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">&lt;path d="M256 340c-15.464 0-28 12.536-28 28s12.536 28 28 28 28-12.536 28-28-12.536-28-28-28zm7.67-24h-16c-6.627 0-12-5.373-12-12v-.381c0-70.343 77.44-63.619 77.44-107.408 0-20.016-17.761-40.211-57.44-40.211-29.144 0-44.265 9.649-59.211 28.692-3.908 4.98-11.054 5.995-16.248 2.376l-13.134-9.15c-5.625-3.919-6.86-11.771-2.645-17.177C185.658 133.514 210.842 116 255.67 116c52.32 0 97.44 29.751 97.44 80.211 0 67.414-77.44 63.849-77.44 107.408V304c0 6.627-5.373 12-12 12zM256 40c118.621 0 216 96.075 216 216 0 119.291-96.61 216-216 216-119.244 0-216-96.562-216-216 0-119.203 96.602-216 216-216m0-32C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8z" fill="%23999999" stroke="%23999999"/>&lt;/svg>');
background-size: contain;
background-repeat: no-repeat;
vertical-align: middle;
margin-inline-start: 0.5ex;
margin-inline-end: 0.5ex;
margin-top: -0.2em;
}
.documentation-button::selection {
color: transparent;
}
.documentation-button:hover {
color: transparent;
}
.copy-button {
cursor: pointer;
display: inline-block;
width: 12px;
height: 12px;
background-image: url('data:image/svg+xml;utf8,&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">&lt;path d="M433.941 193.941l-51.882-51.882A48 48 0 0 0 348.118 128H320V80c0-26.51-21.49-48-48-48h-66.752C198.643 13.377 180.858 0 160 0s-38.643 13.377-45.248 32H48C21.49 32 0 53.49 0 80v288c0 26.51 21.49 48 48 48h80v48c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V227.882a48 48 0 0 0-14.059-33.941zm-22.627 22.627a15.888 15.888 0 0 1 4.195 7.432H352v-63.509a15.88 15.88 0 0 1 7.431 4.195l51.883 51.882zM160 30c9.941 0 18 8.059 18 18s-8.059 18-18 18-18-8.059-18-18 8.059-18 18-18zM48 384c-8.822 0-16-7.178-16-16V80c0-8.822 7.178-16 16-16h66.752c6.605 18.623 24.389 32 45.248 32s38.643-13.377 45.248-32H272c8.822 0 16 7.178 16 16v48H176c-26.51 0-48 21.49-48 48v208H48zm352 96H176c-8.822 0-16-7.178-16-16V176c0-8.822 7.178-16 16-16h144v72c0 13.2 10.8 24 24 24h72v208c0 8.822-7.178 16-16 16z" fill="%23999999" stroke="%23999999"/>&lt;/svg>');
background-size: contain;
background-repeat: no-repeat;
vertical-align: middle;
margin-inline-start: 0.5ex;
margin-top: -0.2em;
}
.groups{
display: flex;
border-bottom: 1px solid #EDEEEF;
flex: 1 0 100%;
}
.uncategorized {
display: flex;
border-top: 4px solid #EDEEEF;
flex: 1 0 100%;
}
.group-selector {
padding: 0 52px 24px 0;
font-size: 0.9rem;
font-weight: bold;
color: #999999;
cursor: pointer;
}
.group-selector__count {
margin: 0 8px;
border-radius: 8px;
background-color: #999;
color: #fff;
padding: 1px 8px 2px;
font-size: 0.75rem;
}
.group-selector--active {
color: #02303A;
cursor: auto;
}
.group-selector--active .group-selector__count {
background-color: #686868;
}
.group-selector--disabled {
cursor: not-allowed;
}
.accordion-header {
cursor: pointer;
}
.container {
padding-left: 0.5em;
padding-right: 0.5em;
}
.stacktrace {
border-radius: 4px;
overflow-x: auto;
padding: 0.5rem;
margin-bottom: 0;
min-width: 1000px;
}
/* Lato (bold, regular) */
@font-face {
font-display: swap;
font-family: Lato;
font-weight: 500;
font-style: normal;
src: url("https://assets.gradle.com/lato/fonts/lato-semibold/lato-semibold.woff2") format("woff2"),
url("https://assets.gradle.com/lato/fonts/lato-semibold/lato-semibold.woff") format("woff");
}
@font-face {
font-display: swap;
font-family: Lato;
font-weight: bold;
font-style: normal;
src: url("https://assets.gradle.com/lato/fonts/lato-bold/lato-bold.woff2") format("woff2"),
url("https://assets.gradle.com/lato/fonts/lato-bold/lato-bold.woff") format("woff");
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
html {
font-family: "Lato", "Helvetica Neue", Arial, sans-serif;
font-size: 16px;
font-weight: 400;
line-height: 1.5;
}
body {
color: #02303A;
background-color: #ffffff;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
}
/* typography */
h1, h2, h3, h4, h5, h6 {
color: #02303A;
text-rendering: optimizeLegibility;
margin: 0;
}
h1 {
font-size: 1rem;
}
h2 {
font-size: 0.9rem;
}
h3 {
font-size: 1.125rem;
}
h4, h5, h6 {
font-size: 0.875rem;
}
h1 code {
font-weight: bold;
}
ul, ol, dl {
list-style-position: outside;
line-height: 1.6;
padding: 0;
margin: 0 0 0 20px;
list-style-type: none;
}
li {
line-height: 2;
}
a {
color: #1DA2BD;
text-decoration: none;
transition: all 0.3s ease, visibility 0s;
}
a:hover {
color: #35c1e4;
}
/* code */
code, pre {
font-family: Inconsolata, Monaco, "Courier New", monospace;
font-style: normal;
font-variant-ligatures: normal;
font-variant-caps: normal;
font-variant-numeric: normal;
font-variant-east-asian: normal;
font-weight: normal;
font-stretch: normal;
color: #686868;
}
*:not(pre) > code {
letter-spacing: 0;
padding: 0.1em 0.5ex;
text-rendering: optimizeSpeed;
word-spacing: -0.15em;
word-wrap: break-word;
}
pre {
font-size: 0.75rem;
line-height: 1.8;
margin-top: 0;
margin-bottom: 1.5em;
padding: 1rem;
}
pre code {
background-color: transparent;
color: inherit;
line-height: 1.8;
font-size: 100%;
padding: 0;
}
a code {
color: #1BA8CB;
}
pre.code, pre.programlisting, pre.screen, pre.tt {
background-color: #f7f7f8;
border-radius: 4px;
font-size: 1em;
line-height: 1.45;
margin-bottom: 1.25em;
overflow-x: auto;
padding: 1rem;
}
li em, p em {
padding: 0 1px;
}
code em, tt em {
text-decoration: none;
}
code + .copy-button {
margin-inline-start: 0.2ex;
}
.java-exception {
font-size: 0.75rem;
padding-left: 24px;
}
.java-exception ul {
margin: 0;
line-height: inherit;
}
.java-exception code {
white-space: pre;
}
.java-exception-part-toggle {
user-select: none;
cursor: pointer;
border-radius: 2px;
padding: 0.1em 0.2em;
background: azure;
color: #686868;
}
&lt;/style>
&lt;!-- Inconsolata is used as a default monospace font in the report. -->
&lt;link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Inconsolata:400,700" />
&lt;title>Gradle Configuration Cache&lt;/title>
&lt;/head>
&lt;body>
&lt;div id="playground">&lt;/div>
&lt;div class="report" id="report">
Loading...
&lt;/div>
&lt;script type="text/javascript">
function configurationCacheProblems() { return (
// begin-report-data
{"diagnostics":[{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('url = &lt;value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('name = &lt;value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('groupId = &lt;value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('url = &lt;value>') instead."}]]},{"problem":[{"text":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This is scheduled to be removed in Gradle 10."}],"contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"solutions":[[{"text":"Use assignment ('name = &lt;value>') instead."}]]},{"problem":[{"text":"Declaring dependencies using multi-string notation has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10."}],"contextualLabel":"Declaring dependencies using multi-string notation has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_9.html#dependency_multi_string_notation","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-dependencies-using-multi-string-notation","displayName":"Declaring dependencies using multi-string notation has been deprecated."}],"solutions":[[{"text":"Please use single-string notation instead: \"org.junit:junit-bom:5.13.4\"."}]]},{"problem":[{"text":"Declaring dependencies using multi-string notation has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10."}],"contextualLabel":"Declaring dependencies using multi-string notation has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_9.html#dependency_multi_string_notation","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-dependencies-using-multi-string-notation","displayName":"Declaring dependencies using multi-string notation has been deprecated."}],"solutions":[[{"text":"Please use single-string notation instead: \"org.junit.jupiter:junit-jupiter\"."}]]},{"problem":[{"text":"Declaring dependencies using multi-string notation has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10."}],"contextualLabel":"Declaring dependencies using multi-string notation has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_9.html#dependency_multi_string_notation","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-dependencies-using-multi-string-notation","displayName":"Declaring dependencies using multi-string notation has been deprecated."}],"solutions":[[{"text":"Please use single-string notation instead: \"org.junit.platform:junit-platform-launcher\"."}]]},{"problem":[{"text":"Declaring dependencies using multi-string notation has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10."}],"contextualLabel":"Declaring dependencies using multi-string notation has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_9.html#dependency_multi_string_notation","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-dependencies-using-multi-string-notation","displayName":"Declaring dependencies using multi-string notation has been deprecated."}],"solutions":[[{"text":"Please use single-string notation instead: \"org.projectlombok:lombok:1.18.22\"."}]]},{"problem":[{"text":"Declaring dependencies using multi-string notation has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10."}],"contextualLabel":"Declaring dependencies using multi-string notation has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_9.html#dependency_multi_string_notation","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-dependencies-using-multi-string-notation","displayName":"Declaring dependencies using multi-string notation has been deprecated."}],"solutions":[[{"text":"Please use single-string notation instead: \"io.codebreeze.docbuilder:docbuilder-api:0.3.1-SNAPSHOT\"."}]]},{"problem":[{"text":"Declaring dependencies using multi-string notation has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10."}],"contextualLabel":"Declaring dependencies using multi-string notation has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_9.html#dependency_multi_string_notation","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-dependencies-using-multi-string-notation","displayName":"Declaring dependencies using multi-string notation has been deprecated."}],"solutions":[[{"text":"Please use single-string notation instead: \"io.codebreeze.docbuilder:docbuilder-api:0.3.1-SNAPSHOT\"."}]]},{"problem":[{"text":"Declaring dependencies using multi-string notation has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10."}],"contextualLabel":"Declaring dependencies using multi-string notation has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_9.html#dependency_multi_string_notation","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-dependencies-using-multi-string-notation","displayName":"Declaring dependencies using multi-string notation has been deprecated."}],"solutions":[[{"text":"Please use single-string notation instead: \"io.codebreeze.docbuilder:docbuilder-slide:0.3.1-SNAPSHOT\"."}]]},{"problem":[{"text":"Declaring dependencies using multi-string notation has been deprecated."}],"severity":"WARNING","problemDetails":[{"text":"This will fail with an error in Gradle 10."}],"contextualLabel":"Declaring dependencies using multi-string notation has been deprecated.","documentationLink":"https://docs.gradle.org/9.1.0/userguide/upgrading_version_9.html#dependency_multi_string_notation","problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"declaring-dependencies-using-multi-string-notation","displayName":"Declaring dependencies using multi-string notation has been deprecated."}],"solutions":[[{"text":"Please use single-string notation instead: \"io.codebreeze.docbuilder:docbuilder-api:0.3.1-SNAPSHOT\"."}]]},{"locations":[{"taskPath":":compileJava"}],"problem":[{"text":"Supported source version 'RELEASE_9' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '25'"}],"severity":"WARNING","problemDetails":[{"text":"warning: Supported source version 'RELEASE_9' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '25'"}],"contextualLabel":"Supported source version 'RELEASE_9' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '25'","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.warn.proc.processor.incompatible.source.version","displayName":"Supported source version 'RELEASE_9' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '25'"}]},{"locations":[{"taskPath":":compileJava"}],"problem":[{"text":"{docbuilder.revealjsAsciiDocMarkupDisabled=true, docbuilder.isSnippetsPerSlideEnabled=false, buildOutputDir=build/generated/sources/annotationProcessor/java/main, includeDir=src/main/java}"}],"severity":"ADVICE","problemDetails":[{"text":"Note: {docbuilder.revealjsAsciiDocMarkupDisabled=true, docbuilder.isSnippetsPerSlideEnabled=false, buildOutputDir=build/generated/sources/annotationProcessor/java/main, includeDir=src/main/java}"}],"contextualLabel":"{docbuilder.revealjsAsciiDocMarkupDisabled=true, docbuilder.isSnippetsPerSlideEnabled=false, buildOutputDir=build/generated/sources/annotationProcessor/java/main, includeDir=src/main/java}","problemId":[{"name":"java","displayName":"Java compilation"},{"name":"compilation","displayName":"Compilation"},{"name":"compiler.note.proc.messager","displayName":"{docbuilder.revealjsAsciiDocMarkupDisabled=true, docbuilder.isSnippetsPerSlideEnabled=false, buildOutputDir=build/generated/sources/annotationProcessor/java/main, includeDir=src/main/java}"}]}],"problemsReport":{"totalProblemCount":15,"buildName":"java-x-enhancements","requestedTasks":"check","documentationLink":"https://docs.gradle.org/9.1.0/userguide/reporting_problems.html","documentationLinkCaption":"Problem report","summaries":[]}}
// end-report-data
);}
&lt;/script>
&lt;script type="text/javascript">
!function(n,t){"object"==typeof exports&amp;&amp;"object"==typeof module?module.exports=t():"function"==typeof define&amp;&amp;define.amd?define([],t):"object"==typeof exports?exports["configuration-cache-report"]=t():n["configuration-cache-report"]=t()}(this,(()=>(({70:function(){void 0===ArrayBuffer.isView&amp;&amp;(ArrayBuffer.isView=function(n){return null!=n&amp;&amp;null!=n.__proto__&amp;&amp;n.__proto__.__proto__===Int8Array.prototype.__proto__}),void 0===Math.imul&amp;&amp;(Math.imul=function(n,t){return(4294901760&amp;n)*(65535&amp;t)+(65535&amp;n)*(0|t)|0}),this["configuration-cache-report"]=function(n){"use strict";var t,r,i,e,u,o,f,s,c,a,h,l,_,v,d,g,w,b,p,m,k,q,y,B,C,x,j,P,I,S,z,T,E,L,N,A,M,F,D,O,R,H,$,G,U,V,Q,Z,Y,W,K,X,J,nn,tn,rn,en,un,on,fn,sn,cn,an,hn,ln,_n,vn,dn,gn,wn,bn,pn,mn,kn,qn,yn,Bn,Cn,xn,jn,Pn,In,Sn,zn,Tn,En,Ln,Nn,An,Mn=Math.imul,Fn=ArrayBuffer.isView;function Dn(n,t){if(!(t>=0))throw _u(ce("Requested element count "+t+" is less than zero."));return function(n,t){if(!(t>=0))throw _u(ce("Requested element count "+t+" is less than zero."));if(0===t)return Ct();if(t>=n.length)return function(n){switch(n.length){case 0:return Ct();case 1:return qr(n[0]);default:return function(n){return Hr(function(n){return new It(n,!1)}(n))}(n)}}(n);if(1===t)return qr(n[0]);var r=0,i=Rr(),e=0,u=n.length;n:for(;e&lt;u;){var o=n[e];if(e=e+1|0,i.d(o),(r=r+1|0)===t)break n}return i}(n,rt(n.length-t|0,0))}function On(n,t,r,i,e,u,o){return t=t===A?", ":t,r=r===A?"":r,i=i===A?"":i,e=e===A?-1:e,u=u===A?"...":u,o=o===A?null:o,function(n,t,r,i,e,u,o,f){r=r===A?", ":r,i=i===A?"":i,e=e===A?"":e,u=u===A?-1:u,o=o===A?"...":o,f=f===A?null:f,t.e(i);var s=0,c=0,a=n.length;n:for(;c&lt;a;){var h=n[c];if(c=c+1|0,(s=s+1|0)>1&amp;&amp;t.e(r),!(u&lt;0||s&lt;=u))break n;Jt(t,h,f)}return u>=0&amp;&amp;s>u&amp;&amp;t.e(o),t.e(e),t}(n,Bi(),t,r,i,e,u,o).toString()}function Rn(n){return n.length-1|0}function Hn(n,t){if(null==t){var r=0,i=n.length-1|0;if(r&lt;=i)do{var e=r;if(r=r+1|0,null==n[e])return e}while(r&lt;=i)}else{var u=0,o=n.length-1|0;if(u&lt;=o)do{var f=u;if(u=u+1|0,le(t,n[f]))return f}while(u&lt;=o)}return-1}function $n(n,t,r,i,e,u,o){return t=t===A?", ":t,r=r===A?"":r,i=i===A?"":i,e=e===A?-1:e,u=u===A?"...":u,o=o===A?null:o,Gn(n,Bi(),t,r,i,e,u,o).toString()}function Gn(n,t,r,i,e,u,o,f){r=r===A?", ":r,i=i===A?"":i,e=e===A?"":e,u=u===A?-1:u,o=o===A?"...":o,f=f===A?null:f,t.e(i);var s=0,c=n.f();n:for(;c.g();){var a=c.h();if((s=s+1|0)>1&amp;&amp;t.e(r),!(u&lt;0||s&lt;=u))break n;Jt(t,a,f)}return u>=0&amp;&amp;s>u&amp;&amp;t.e(o),t.e(e),t}function Un(n){if(n.i())throw xu("List is empty.");return n.j(0)}function Vn(n){return new tt(n)}function Qn(n){if(Ke(n,Di)){var t;switch(n.k()){case 0:t=Ct();break;case 1:t=qr(Ke(n,Fi)?n.j(0):n.f().h());break;default:t=Zn(n)}return t}return xt(Xn(n))}function Zn(n){return Hr(n)}function Yn(n){if(Ke(n,Di)&amp;&amp;n.k()&lt;=1)return Qn(n);var t=Xn(n);return function(n){var t=(n.k()/2|0)-1|0;if(t&lt;0)return br();var r=jt(n),i=0;if(i&lt;=t)do{var e=i;i=i+1|0;var u=n.j(e);n.f4(e,n.j(r)),n.f4(r,u),r=r-1|0}while(e!==t)}(t),t}function Wn(n,t){if(!(t>=0))throw _u(ce("Requested element count "+t+" is less than zero."));return function(n,t){if(!(t>=0))throw _u(ce("Requested element count "+t+" is less than zero."));if(0===t)return Ct();if(Ke(n,Di)){if(t>=n.k())return Qn(n);if(1===t)return qr(function(n){if(Ke(n,Fi))return Un(n);var t=n.f();if(!t.g())throw xu("Collection is empty.");return t.h()}(n))}var r=0,i=Rr(),e=n.f();n:for(;e.g();){var u=e.h();if(i.d(u),(r=r+1|0)===t)break n}return xt(i)}(n,rt(n.k()-t|0,0))}function Kn(n,t){if(!(t>=0))throw _u(ce("Requested element count "+t+" is less than zero."));if(0===t)return Ct();var r=n.k();if(t>=r)return Qn(n);if(1===t)return qr(Jn(n));var i=Rr();if(Ke(n,bi)){var e=r-t|0;if(e&lt;r)do{var u=e;e=e+1|0,i.d(n.j(u))}while(e&lt;r)}else for(var o=n.l(r-t|0);o.g();){var f=o.h();i.d(f)}return i}function Xn(n){return Ke(n,Di)?Zn(n):nt(n,Or())}function Jn(n){if(n.i())throw xu("List is empty.");return n.j(jt(n))}function nt(n,t){for(var r=n.f();r.g();){var i=r.h();t.d(i)}return t}function tt(n){this.n_1=n}function rt(n,t){return n&lt;t?t:n}function it(n,t){return n>t?t:n}function et(n,t){return Kt().q(n,t,-1)}function ut(n,t){return new Ft(n,t)}function ot(n){var t=n.f();if(!t.g())return Ct();var r=t.h();if(!t.g())return qr(r);var i=Or();for(i.d(r);t.g();)i.d(t.h());return i}function ft(n){this.r_1=n}function st(n,t){this.s_1=n,this.t_1=t}function ct(){}function at(n){this.x_1=n,this.w_1=0}function ht(n,t){this.a1_1=n,at.call(this,n),_t().b1(t,this.a1_1.k()),this.w_1=t}function lt(){t=this}function _t(){return null==t&amp;&amp;new lt,t}function vt(){_t(),ct.call(this)}function dt(n){this.h1_1=n}function gt(n,t){return t===n?"(this Map)":Vi(t)}function wt(n,t){var r;n:{for(var i=n.o().f();i.g();){var e=i.h();if(le(e.j1(),t)){r=e;break n}}r=null}return r}function bt(){r=this}function pt(){return null==r&amp;&amp;new bt,r}function mt(n){this.q1_1=n,ct.call(this)}function kt(){pt(),this.n1_1=null,this.o1_1=null}function qt(){i=this}function yt(){return null==i&amp;&amp;new qt,i}function Bt(n){return n.length>0?ou(n):Ct()}function Ct(){return null==e&amp;&amp;new Pt,e}function xt(n){switch(n.k()){case 0:return Ct();case 1:return qr(n.j(0));default:return n}}function jt(n){return n.k()-1|0}function Pt(){e=this,this.z1_1=new ke(-1478467534,-1720727600)}function It(n,t){this.b2_1=n,this.c2_1=t}function St(){u=this}function zt(){return null==u&amp;&amp;new St,u}function Tt(n,t){return Ke(n,Di)?n.k():t}function Et(n,t){if(Ke(t,Di))return n.m(t);for(var r=!1,i=t.f();i.g();){var e=i.h();n.d(e)&amp;&amp;(r=!0)}return r}function Lt(){}function Nt(n,t){this.h2_1=n,this.g2_1=n.i2_1.l(function(n,t){if(!(0&lt;=t&amp;&amp;t&lt;=n.k()))throw du("Position index "+t+" must be in range ["+Ve(0,n.k())+"].");return n.k()-t|0}(n,t))}function At(n){vt.call(this),this.i2_1=n}function Mt(n){this.k2_1=n,this.j2_1=n.l2_1.f()}function Ft(n,t){this.l2_1=n,this.m2_1=t}function Dt(n){for(;n.n2_1.g();){var t=n.n2_1.h();if(n.q2_1.t2_1(t)===n.q2_1.s2_1)return n.p2_1=t,n.o2_1=1,br()}n.o2_1=0}function Ot(n){this.q2_1=n,this.n2_1=n.r2_1.f(),this.o2_1=-1,this.p2_1=null}function Rt(n,t,r){t=t===A||t,this.r2_1=n,this.s2_1=t,this.t2_1=r}function Ht(){return null==o&amp;&amp;new $t,o}function $t(){o=this,this.u2_1=new ke(1993859828,793161749)}function Gt(n,t,r){return Ut(Ut(n,r)-Ut(t,r)|0,r)}function Ut(n,t){var r=n%t|0;return r>=0?r:r+t|0}function Vt(){f=this,this.p_1=new Zt(1,0)}function Qt(){return null==f&amp;&amp;new Vt,f}function Zt(n,t){Qt(),Xt.call(this,n,t,1)}function Yt(n,t,r){Lt.call(this),this.d3_1=r,this.e3_1=t,this.f3_1=this.d3_1>0?n&lt;=t:n>=t,this.g3_1=this.f3_1?n:this.e3_1}function Wt(){s=this}function Kt(){return null==s&amp;&amp;new Wt,s}function Xt(n,t,r){if(Kt(),0===r)throw _u("Step must be non-zero.");if(r===mr().MIN_VALUE)throw _u("Step must be greater than Int.MIN_VALUE to avoid overflow on negation.");this.z2_1=n,this.a3_1=function(n,t,r){var i;if(r>0)i=n>=t?t:t-Gt(t,n,r)|0;else{if(!(r&lt;0))throw _u("Step is zero.");i=n&lt;=t?t:t+Gt(n,t,0|-r)|0}return i}(n,t,r),this.b3_1=r}function Jt(n,t,r){null!=r?n.e(r(t)):null==t||nu(t)?n.e(t):t instanceof Mi?n.i3(t.h3_1):n.e(Vi(t))}function nr(n,t,r){if(n===t)return!0;if(!(r=r!==A&amp;&amp;r))return!1;var i=xi(n),e=xi(t);return i===e||le(new Mi(ne(Li(i).toLowerCase(),0)),new Mi(ne(Li(e).toLowerCase(),0)))}function tr(n){return re(n)-1|0}function rr(n,t,r,i){return r=r===A?0:r,(i=i!==A&amp;&amp;i)||"string"!=typeof n?ir(n,t,r,re(n),i):n.indexOf(t,r)}function ir(n,t,r,i,e,u){var o=(u=u!==A&amp;&amp;u)?et(it(r,tr(n)),rt(i,0)):Ve(rt(r,0),it(i,re(n)));if("string"==typeof n&amp;&amp;"string"==typeof t){var f=o.z2_1,s=o.a3_1,c=o.b3_1;if(c>0&amp;&amp;f&lt;=s||c&lt;0&amp;&amp;s&lt;=f)do{var a=f;if(f=f+c|0,Ti(t,0,n,a,re(t),e))return a}while(a!==s)}else{var h=o.z2_1,l=o.a3_1,_=o.b3_1;if(_>0&amp;&amp;h&lt;=l||_&lt;0&amp;&amp;l&lt;=h)do{var v=h;if(h=h+_|0,fr(t,0,n,v,re(t),e))return v}while(v!==l)}return-1}function er(n){var t=0,r=re(n)-1|0,i=!1;n:for(;t&lt;=r;){var e=ji(ne(n,i?r:t));if(i){if(!e)break n;r=r-1|0}else e?t=t+1|0:i=!0}return ie(n,t,r+1|0)}function ur(n,t){return ce(ie(n,t.y2(),t.c3()+1|0))}function or(n,t,r,i,e){r=r===A?0:r,i=i!==A&amp;&amp;i,sr(e=e===A?0:e);var u,o,f=ou(t);return new hr(n,r,e,(u=f,o=i,function(n,t){var r=function(n,t,r,i){if(!i&amp;&amp;1===t.k()){var e=function(n){if(Ke(n,Fi))return function(n){var t;switch(n.k()){case 0:throw xu("List is empty.");case 1:t=n.j(0);break;default:throw _u("List has more than one element.")}return t}(n);var t=n.f();if(!t.g())throw xu("Collection is empty.");var r=t.h();if(t.g())throw _u("Collection has more than one element.");return r}(t),u=rr(n,e,r);return u&lt;0?null:_r(u,e)}var o=Ve(rt(r,0),re(n));if("string"==typeof n){var f=o.z2_1,s=o.a3_1,c=o.b3_1;if(c>0&amp;&amp;f&lt;=s||c&lt;0&amp;&amp;s&lt;=f)do{var a,h=f;f=f+c|0;n:{for(var l=t.f();l.g();){var _=l.h();if(Ti(_,0,n,h,_.length,i)){a=_;break n}}a=null}if(null!=a)return _r(h,a)}while(h!==s)}else{var v=o.z2_1,d=o.a3_1,g=o.b3_1;if(g>0&amp;&amp;v&lt;=d||g&lt;0&amp;&amp;d&lt;=v)do{var w,b=v;v=v+g|0;n:{for(var p=t.f();p.g();){var m=p.h();if(fr(m,0,n,b,m.length,i)){w=m;break n}}w=null}if(null!=w)return _r(b,w)}while(b!==d)}return null}(n,u,t,o);return null==r?null:_r(r.t3_1,r.u3_1.length)}))}function fr(n,t,r,i,e,u){if(i&lt;0||t&lt;0||t>(re(n)-e|0)||i>(re(r)-e|0))return!1;var o=0;if(o&lt;e)do{var f=o;if(o=o+1|0,!nr(ne(n,t+f|0),ne(r,i+f|0),u))return!1}while(o&lt;e);return!0}function sr(n){if(!(n>=0))throw _u(ce("Limit must be non-negative, but was "+n))}function cr(n){if(n.l3_1&lt;0)n.j3_1=0,n.m3_1=null;else{var t;if(n.o3_1.r3_1>0?(n.n3_1=n.n3_1+1|0,t=n.n3_1>=n.o3_1.r3_1):t=!1,t||n.l3_1>re(n.o3_1.p3_1))n.m3_1=Ve(n.k3_1,tr(n.o3_1.p3_1)),n.l3_1=-1;else{var r=n.o3_1.s3_1(n.o3_1.p3_1,n.l3_1);if(null==r)n.m3_1=Ve(n.k3_1,tr(n.o3_1.p3_1)),n.l3_1=-1;else{var i=r.v3(),e=r.w3();n.m3_1=function(n,t){return t&lt;=mr().MIN_VALUE?Qt().p_1:Ve(n,t-1|0)}(n.k3_1,i),n.k3_1=i+e|0,n.l3_1=n.k3_1+(0===e?1:0)|0}}n.j3_1=1}}function ar(n){this.o3_1=n,this.j3_1=-1,this.k3_1=function(n,t,r){if(0>r)throw _u("Cannot coerce value to an empty range: maximum "+r+" is less than minimum 0.");return n&lt;0?0:n>r?r:n}(n.q3_1,0,re(n.p3_1)),this.l3_1=this.k3_1,this.m3_1=null,this.n3_1=0}function hr(n,t,r,i){this.p3_1=n,this.q3_1=t,this.r3_1=r,this.s3_1=i}function lr(n,t){this.t3_1=n,this.u3_1=t}function _r(n,t){return new lr(n,t)}function vr(){}function dr(){}function gr(){}function wr(){c=this}function br(){return null==c&amp;&amp;new wr,c}function pr(){a=this,this.MIN_VALUE=-2147483648,this.MAX_VALUE=2147483647,this.SIZE_BYTES=4,this.SIZE_BITS=32}function mr(){return null==a&amp;&amp;new pr,a}function kr(n){for(var t=[],r=n.f();r.g();)t.push(r.h());return t}function qr(n){return 0===(t=[n]).length?Or():Hr(new It(t,!0));var t}function yr(n){return n&lt;0&amp;&amp;function(){throw Pu("Index overflow has happened.")}(),n}function Br(n){return void 0!==n.toArray?n.toArray():kr(n)}function Cr(n){return function(n,t){for(var r=0,i=n.length;r&lt;i;){var e=n[r];r=r+1|0,t.d(e)}return t}(t=[n],(r=t.length,i=de(ve(ni)),function(n,t,r){Mr.call(r),ni.call(r),r.y5_1=function(n){return Kr(n,0,de(ve(Xr)))}(n)}(r,0,i),i));var t,r,i}function xr(){ct.call(this)}function jr(n){this.j4_1=n,this.h4_1=0,this.i4_1=-1}function Pr(n,t){this.n4_1=n,jr.call(this,n),_t().b1(t,this.n4_1.k()),this.h4_1=t}function Ir(){xr.call(this),this.o4_1=0}function Sr(n){this.r4_1=n}function zr(n){this.s4_1=n}function Tr(n,t){this.t4_1=n,this.u4_1=t}function Er(){Mr.call(this)}function Lr(n){this.x4_1=n,Mr.call(this)}function Nr(n){this.e5_1=n,xr.call(this)}function Ar(){kt.call(this),this.c5_1=null,this.d5_1=null}function Mr(){xr.call(this)}function Fr(){h=this;var n=Rr();n.c_1=!0,this.i5_1=n}function Dr(){return null==h&amp;&amp;new Fr,h}function Or(){return n=de(ve(Gr)),t=[],Gr.call(n,t),n;var n,t}function Rr(n){return t=de(ve(Gr)),r=[],Gr.call(t,r),t;var t,r}function Hr(n){return function(n,t){var r;return r=Br(n),Gr.call(t,r),t}(n,de(ve(Gr)))}function $r(n,t){return _t().e1(t,n.k()),t}function Gr(n){Dr(),Ir.call(this),this.b_1=n,this.c_1=!1}function Ur(n,t,r,i,e){if(r===i)return n;var u=(r+i|0)/2|0,o=Ur(n,t,r,u,e),f=Ur(n,t,u+1|0,i,e),s=o===t?n:t,c=r,a=u+1|0,h=r;if(h&lt;=i)do{var l=h;if(h=h+1|0,c&lt;=u&amp;&amp;a&lt;=i){var _=o[c],v=f[a];e.compare(_,v)&lt;=0?(s[l]=_,c=c+1|0):(s[l]=v,a=a+1|0)}else c&lt;=u?(s[l]=o[c],c=c+1|0):(s[l]=f[a],a=a+1|0)}while(l!==i);return s}function Vr(n,t){return(3&amp;n)-(3&amp;t)|0}function Qr(){_=this}function Zr(n){this.n5_1=n,Er.call(this)}function Yr(n){return function(n,t){Ar.call(t),Xr.call(t),t.t5_1=n,t.u5_1=n.w5()}(new ui((null==_&amp;&amp;new Qr,_)),n),n}function Wr(){return Yr(de(ve(Xr)))}function Kr(n,t,r){if(Yr(r),!(n>=0))throw _u(ce("Negative initial capacity: "+n));if(!(t>=0))throw _u(ce("Non-positive load factor: "+t));return r}function Xr(){this.v5_1=null}function Jr(n,t){return Mr.call(t),ni.call(t),t.y5_1=n,t}function ni(){}function ti(n,t){var r=ii(n,n.h6_1.m5(t));if(null==r)return null;var i=r;if(null!=i&amp;&amp;Xe(i))return ri(i,n,t);var e=i;return n.h6_1.l5(e.j1(),t)?e:null}function ri(n,t,r){var i;n:{for(var e=0,u=n.length;e&lt;u;){var o=n[e];if(e=e+1|0,t.h6_1.l5(o.j1(),r)){i=o;break n}}i=null}return i}function ii(n,t){var r=n.i6_1[t];return void 0===r?null:r}function ei(n){this.g6_1=n,this.z5_1=-1,this.a6_1=Object.keys(n.i6_1),this.b6_1=-1,this.c6_1=null,this.d6_1=!1,this.e6_1=-1,this.f6_1=null}function ui(n){this.h6_1=n,this.i6_1=this.k6(),this.j6_1=0}function oi(){}function fi(n){this.n6_1=n,this.l6_1=null,this.m6_1=null,this.m6_1=this.n6_1.y6_1.v6_1}function si(){v=this;var n,t=(_i(0,0,n=de(ve(vi))),n);t.x6_1=!0,this.e7_1=t}function ci(){return null==v&amp;&amp;new si,v}function ai(n,t,r){this.d7_1=n,Tr.call(this,t,r),this.b7_1=null,this.c7_1=null}function hi(n){this.y6_1=n,Er.call(this)}function li(){return Yr(n=de(ve(vi))),vi.call(n),n.w6_1=Wr(),n;var n}function _i(n,t,r){return Kr(n,t,r),vi.call(r),r.w6_1=Wr(),r}function vi(){ci(),this.v6_1=null,this.x6_1=!1}function di(){d=this;var n=gi(0),t=n.y5_1;(t instanceof vi?t:pe()).j5(),this.f7_1=n}function gi(n){return function(n,t){return function(n,t,r){Jr(function(n,t){return _i(n,t,de(ve(vi)))}(n,t),r),wi.call(r)}(n,0,t),t}(n,de(ve(wi)))}function wi(){null==d&amp;&amp;new di}function bi(){}function pi(){}function mi(n){pi.call(this),this.k7_1=n}function ki(){qi.call(this)}function qi(){pi.call(this),this.m7_1=""}function yi(){if(!w){w=!0;var n="undefined"!=typeof process&amp;&amp;process.versions&amp;&amp;!!process.versions.node;g=n?new mi(process.stdout):new ki}}function Bi(){return n=de(ve(Ci)),Ci.call(n,""),n;var n}function Ci(n){this.o7_1=void 0!==n?n:""}function xi(n){var t=Li(n).toUpperCase();return t.length>1?n:ne(t,0)}function ji(n){return function(n){return 9&lt;=n&amp;&amp;n&lt;=13||28&lt;=n&amp;&amp;n&lt;=32||160===n||n>4096&amp;&amp;(5760===n||8192&lt;=n&amp;&amp;n&lt;=8202||8232===n||8233===n||8239===n||8287===n||12288===n)}(n)}function Pi(){b=this,this.q7_1=new RegExp("[\\\\^$*+?.()|[\\]{}]","g"),this.r7_1=new RegExp("[\\\\$]","g"),this.s7_1=new RegExp("\\$","g")}function Ii(){return null==b&amp;&amp;new Pi,b}function Si(n,t){Ii(),this.v7_1=n,this.w7_1=function(n){if(Ke(n,Di)){var t;switch(n.k()){case 0:t=Ht();break;case 1:t=Cr(Ke(n,Fi)?n.j(0):n.f().h());break;default:t=nt(n,gi(n.k()))}return t}return function(n){switch(n.k()){case 0:return Ht();case 1:return Cr(n.f().h());default:return n}}(nt(n,(r=de(ve(wi)),Jr(li(),r),wi.call(r),r)));var r}(t),this.x7_1=new RegExp(n,$n(t,"","gu",A,A,A,zi)),this.y7_1=null,this.z7_1=null}function zi(n){return n.d8_1}function Ti(n,t,r,i,e,u){return fr(n,t,r,i,e,u=u!==A&amp;&amp;u)}function Ei(n,t){return n-t|0}function Li(n){return String.fromCharCode(n)}function Ni(){p=this,this.e8_1=0,this.f8_1=65535,this.g8_1=55296,this.h8_1=56319,this.i8_1=56320,this.j8_1=57343,this.k8_1=55296,this.l8_1=57343,this.m8_1=2,this.n8_1=16}function Ai(){return null==p&amp;&amp;new Ni,p}function Mi(n){Ai(),this.h3_1=n}function Fi(){}function Di(){}function Oi(){}function Ri(){}function Hi(){}function $i(){}function Gi(){m=this}function Ui(n,t){null==m&amp;&amp;new Gi,this.p8_1=n,this.q8_1=t}function Vi(n){var t=null==n?null:ce(n);return null==t?"null":t}function Qi(n){return new Zi(n)}function Zi(n){this.t8_1=n,this.s8_1=0}function Yi(){return Ji(),k}function Wi(){return Ji(),q}function Ki(){return Ji(),y}function Xi(){return Ji(),B}function Ji(){x||(x=!0,k=new ArrayBuffer(8),q=new Float64Array(Yi()),new Float32Array(Yi()),y=new Int32Array(Yi()),Wi()[0]=-1,B=0!==Ki()[0]?1:0,C=1-Xi()|0)}function ne(n,t){var r;if(te(n)){var i,e=n.charCodeAt(t);if(Ai(),e&lt;0?i=!0:(Ai(),i=e>65535),i)throw _u("Invalid Char code: "+e);r=Ue(e)}else r=n.y3(t);return r}function te(n){return"string"==typeof n}function re(n){return te(n)?n.length:n.x3()}function ie(n,t,r){return te(n)?n.substring(t,r):n.z3(t,r)}function ee(n){return ce(n)}function ue(n,t){var r;switch(typeof n){case"number":r="number"==typeof t?oe(n,t):t instanceof ke?oe(n,t.w8()):fe(n,t);break;case"string":case"boolean":r=fe(n,t);break;default:r=function(n,t){return n.a4(t)}(n,t)}return r}function oe(n,t){var r;if(n&lt;t)r=-1;else if(n>t)r=1;else if(n===t){var i;if(0!==n)i=0;else{var e=1/n;i=e===1/t?0:e&lt;0?-1:1}r=i}else r=n!=n?t!=t?0:1:-1;return r}function fe(n,t){return n&lt;t?-1:n>t?1:0}function se(n){if(!("kotlinHashCodeValue$"in n)){var t=4294967296*Math.random()|0,r=new Object;r.value=t,r.enumerable=!1,Object.defineProperty(n,"kotlinHashCodeValue$",r)}return n.kotlinHashCodeValue$}function ce(n){return null==n?"null":function(n){return!!Ye(n)||Fn(n)}(n)?"[...]":n.toString()}function ae(n){if(null==n)return 0;var t;switch(typeof n){case"object":t="function"==typeof n.hashCode?n.hashCode():se(n);break;case"function":t=se(n);break;case"number":t=function(n){return Ji(),(0|n)===n?Ge(n):(Wi()[0]=n,Mn(Ki()[(Ji(),C)],31)+Ki()[Xi()]|0)}(n);break;case"boolean":t=n?1:0;break;default:t=he(String(n))}return t}function he(n){var t=0,r=0,i=n.length-1|0;if(r&lt;=i)do{var e=r;r=r+1|0;var u=n.charCodeAt(e);t=Mn(t,31)+u|0}while(e!==i);return t}function le(n,t){return null==n?null==t:null!=t&amp;&amp;("object"==typeof n&amp;&amp;"function"==typeof n.equals?n.equals(t):n!=n?t!=t:"number"==typeof n&amp;&amp;"number"==typeof t?n===t&amp;&amp;(0!==n||1/n==1/t):n===t)}function _e(n,t){null!=Error.captureStackTrace?Error.captureStackTrace(n,t):n.stack=(new Error).stack}function ve(n){return n.prototype}function de(n){return Object.create(n)}function ge(n,t,r){Error.call(n),function(n,t,r){var i=eu(Object.getPrototypeOf(n));if(!(1&amp;i)){var e;if(null==t){var u;if(null!==t){var o=null==r?null:r.toString();u=null==o?A:o}else u=A;e=u}else e=t;n.message=e}2&amp;i||(n.cause=r),n.name=Object.getPrototypeOf(n).constructor.name}(n,t,r)}function we(n){var t;return null==n?function(){throw Eu()}():t=n,t}function be(){throw Nu()}function pe(){throw Mu()}function me(){j=this,this.x8_1=new ke(0,-2147483648),this.y8_1=new ke(-1,2147483647),this.z8_1=8,this.a9_1=64}function ke(n,t){null==j&amp;&amp;new me,gr.call(this),this.u8_1=n,this.v8_1=t}function qe(){return $e(),P}function ye(){return $e(),I}function Be(){return $e(),S}function Ce(){return $e(),T}function xe(){return $e(),E}function je(n,t){if($e(),Te(n,t))return 0;var r=Ne(n),i=Ne(t);return r&amp;&amp;!i?-1:!r&amp;&amp;i?1:Ne(Ie(n,t))?-1:1}function Pe(n,t){$e();var r=n.v8_1>>>16|0,i=65535&amp;n.v8_1,e=n.u8_1>>>16|0,u=65535&amp;n.u8_1,o=t.v8_1>>>16|0,f=65535&amp;t.v8_1,s=t.u8_1>>>16|0,c=0,a=0,h=0,l=0;return c=(c=c+((a=(a=a+((h=(h=h+((l=l+(u+(65535&amp;t.u8_1)|0)|0)>>>16|0)|0)+(e+s|0)|0)>>>16|0)|0)+(i+f|0)|0)>>>16|0)|0)+(r+o|0)|0,new ke((h&amp;=65535)&lt;&lt;16|(l&amp;=65535),(c&amp;=65535)&lt;&lt;16|(a&amp;=65535))}function Ie(n,t){return $e(),Pe(n,t.e9())}function Se(n,t){if($e(),Ae(n))return qe();if(Ae(t))return qe();if(Te(n,Ce()))return Me(t)?Ce():qe();if(Te(t,Ce()))return Me(n)?Ce():qe();if(Ne(n))return Ne(t)?Se(Fe(n),Fe(t)):Fe(Se(Fe(n),t));if(Ne(t))return Fe(Se(n,Fe(t)));if(De(n,xe())&amp;&amp;De(t,xe()))return Oe(ze(n)*ze(t));var r=n.v8_1>>>16|0,i=65535&amp;n.v8_1,e=n.u8_1>>>16|0,u=65535&amp;n.u8_1,o=t.v8_1>>>16|0,f=65535&amp;t.v8_1,s=t.u8_1>>>16|0,c=65535&amp;t.u8_1,a=0,h=0,l=0,_=0;return l=l+((_=_+Mn(u,c)|0)>>>16|0)|0,_&amp;=65535,h=(h=h+((l=l+Mn(e,c)|0)>>>16|0)|0)+((l=(l&amp;=65535)+Mn(u,s)|0)>>>16|0)|0,l&amp;=65535,a=(a=(a=a+((h=h+Mn(i,c)|0)>>>16|0)|0)+((h=(h&amp;=65535)+Mn(e,s)|0)>>>16|0)|0)+((h=(h&amp;=65535)+Mn(u,f)|0)>>>16|0)|0,h&amp;=65535,a=a+(((Mn(r,c)+Mn(i,s)|0)+Mn(e,f)|0)+Mn(u,o)|0)|0,new ke(l&lt;&lt;16|_,(a&amp;=65535)&lt;&lt;16|h)}function ze(n){return $e(),4294967296*n.v8_1+function(n){return $e(),n.u8_1>=0?n.u8_1:4294967296+n.u8_1}(n)}function Te(n,t){return $e(),n.v8_1===t.v8_1&amp;&amp;n.u8_1===t.u8_1}function Ee(n,t){if($e(),t&lt;2||36&lt;t)throw mu("radix out of range: "+t);if(Ae(n))return"0";if(Ne(n)){if(Te(n,Ce())){var r=Le(t),i=n.d9(r),e=Ie(Se(i,r),n).g9();return Ee(i,t)+e.toString(t)}return"-"+Ee(Fe(n),t)}for(var u=2===t?31:t&lt;=10?9:t&lt;=21?7:t&lt;=35?6:5,o=Oe(Math.pow(t,u)),f=n,s="";;){var c=f.d9(o),a=Ie(f,Se(c,o)).g9().toString(t);if(Ae(f=c))return a+s;for(;a.length&lt;u;)a="0"+a;s=a+s}}function Le(n){return $e(),new ke(n,n&lt;0?-1:0)}function Ne(n){return $e(),n.v8_1&lt;0}function Ae(n){return $e(),0===n.v8_1&amp;&amp;0===n.u8_1}function Me(n){return $e(),!(1&amp;~n.u8_1)}function Fe(n){return $e(),n.e9()}function De(n,t){return $e(),je(n,t)&lt;0}function Oe(n){if($e(),(t=n)!=t)return qe();if(n&lt;=-0x8000000000000000)return Ce();if(n+1>=0x8000000000000000)return $e(),z;if(n&lt;0)return Fe(Oe(-n));var t,r=4294967296;return new ke(n%r|0,n/r|0)}function Re(n,t){return $e(),je(n,t)>0}function He(n,t){return $e(),je(n,t)>=0}function $e(){L||(L=!0,P=Le(0),I=Le(1),S=Le(-1),z=new ke(-1,2147483647),T=new ke(0,-2147483648),E=Le(16777216))}function Ge(n){return n instanceof ke?n.g9():function(n){return n>2147483647?2147483647:n&lt;-2147483648?-2147483648:0|n}(n)}function Ue(n){var t;return t=function(n){return n&lt;&lt;16>>16}(Ge(n)),function(n){return 65535&amp;n}(t)}function Ve(n,t){return new Zt(n,t)}function Qe(n,t,r,i){return Ze("class",n,t,r,i,null)}function Ze(n,t,r,i,e,u){return{kind:n,simpleName:t,associatedObjectKey:r,associatedObjects:i,suspendArity:e,$kClass$:A,iid:u}}function Ye(n){return Array.isArray(n)}function We(n,t,r,i,e,u,o,f){null!=i&amp;&amp;(n.prototype=Object.create(i.prototype),n.prototype.constructor=n);var s=r(t,u,o,null==f?[]:f);n.$metadata$=s,null!=e&amp;&amp;((null!=s.iid?n:n.prototype).$imask$=function(n){for(var t=1,r=[],i=0,e=n.length;i&lt;e;){var u=n[i];i=i+1|0;var o=t,f=u.prototype.$imask$,s=null==f?u.$imask$:f;null!=s&amp;&amp;(r.push(s),o=s.length);var c=u.$metadata$.iid,a=null==c?null:(l=void 0,v=1&lt;&lt;(31&amp;(h=c)),(l=new Int32Array(1+(h>>5)|0))[_=h>>5]=l[_]|v,l);null!=a&amp;&amp;(r.push(a),o=Math.max(o,a.length)),o>t&amp;&amp;(t=o)}var h,l,_,v;return function(n,t){for(var r=0,i=new Int32Array(n);r&lt;n;){for(var e=r,u=0,o=0,f=t.length;o&lt;f;){var s=t[o];o=o+1|0,e&lt;s.length&amp;&amp;(u|=s[e])}i[e]=u,r=r+1|0}return i}(t,r)}(e))}function Ke(n,t){return function(n,t){var r=n.$imask$;return null!=r&amp;&amp;function(n,t){var r=t>>5;if(r>n.length)return!1;var i=1&lt;&lt;(31&amp;t);return!(0===(n[r]&amp;i))}(r,t)}(n,t.$metadata$.iid)}function Xe(n){return!!Ye(n)&amp;&amp;!n.$type$}function Je(n){var t;switch(typeof n){case"string":case"number":case"boolean":case"function":t=!0;break;default:t=n instanceof Object}return t}function nu(n){return"string"==typeof n||Ke(n,vr)}function tu(n,t,r,i){return Ze("interface",n,t,r,i,(null==N&amp;&amp;(N=0),N=ru()+1|0,ru()))}function ru(){if(null!=N)return N;!function(){throw Du("lateinit property iid has not been initialized")}()}function iu(n,t,r,i){return Ze("object",n,t,r,i,null)}function eu(n){var t=n.constructor,r=null==t?null:t.$metadata$,i=null==r?null:r.errorInfo;if(null!=i)return i;var e,u=0;if(uu(n,"message")&amp;&amp;(u|=1),uu(n,"cause")&amp;&amp;(u|=2),3!==u){var o=(e=n,Object.getPrototypeOf(e));o!=Error.prototype&amp;&amp;(u|=eu(o))}return null!=r&amp;&amp;(r.errorInfo=u),u}function uu(n,t){return n.hasOwnProperty(t)}function ou(n){return new Gr(n)}function fu(n,t,r){for(var i=new Int32Array(r),e=0,u=0,o=0,f=0,s=n.length;f&lt;s;){var c=ne(n,f);f=f+1|0;var a=t[c];if(u|=(31&amp;a)&lt;&lt;o,a&lt;32){var h=e;e=h+1|0,i[h]=u,u=0,o=0}else o=o+5|0}return i}function su(n,t){for(var r=0,i=n.length-1|0,e=-1,u=0;r&lt;=i;)if(t>(u=n[e=(r+i|0)/2|0]))r=e+1|0;else{if(t===u)return e;i=e-1|0}return e-(t&lt;u?1:0)|0}function cu(){M=this;var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=new Int32Array(128),r=0,i=re(n)-1|0;if(r&lt;=i)do{var e=r;r=r+1|0,t[ne(n,e)]=e}while(r&lt;=i);var u=fu("hCgBpCQGYHZH5BRpBPPPPPPRMP5BPPlCPP6BkEPPPPcPXPzBvBrB3BOiDoBHwD+E3DauCnFmBmB2D6E1BlBTiBmBlBP5BhBiBrBvBjBqBnBPRtBiCmCtBlB0BmB5BiB7BmBgEmChBZgCoEoGVpBSfRhBPqKQ2BwBYoFgB4CJuTiEvBuCuDrF5DgEgFlJ1DgFmBQtBsBRGsB+BPiBlD1EIjDPRPPPQPPPPPGQSQS/DxENVNU+B9zCwBwBPPCkDPNnBPqDYY1R8B7FkFgTgwGgwUwmBgKwBuBScmEP/BPPPPPPrBP8B7F1B/ErBqC6B7BiBmBfQsBUwCw/KwqIwLwETPcPjQgJxFgBlBsD",t,222),o=new Int32Array(u.length),f=0,s=u.length-1|0;if(f&lt;=s)do{var c=f;f=f+1|0,o[c]=0===c?u[c]:o[c-1|0]+u[c]|0}while(f&lt;=s);this.h9_1=o,this.i9_1=fu("aaMBXHYH5BRpBPPPPPPRMP5BPPlCPPzBDOOPPcPXPzBvBjB3BOhDmBBpB7DoDYxB+EiBP1DoExBkBQhBekBPmBgBhBctBiBMWOOXhCsBpBkBUV3Ba4BkB0DlCgBXgBtD4FSdBfPhBPpKP0BvBXjEQ2CGsT8DhBtCqDpFvD1D3E0IrD2EkBJrBDOBsB+BPiBlB1EIjDPPPPPPPPPPPGPPMNLsBNPNPKCvBvBPPCkDPBmBPhDXXgD4B6FzEgDguG9vUtkB9JcuBSckEP/BPPPPPPBPf4FrBjEhBpC3B5BKaWPrBOwCk/KsCuLqDHPbPxPsFtEaaqDL",t,222),this.j9_1=fu("GFjgggUHGGFFZZZmzpz5qB6s6020B60ptltB6smt2sB60mz22B1+vv+8BZZ5s2850BW5q1ymtB506smzBF3q1q1qB1q1q1+Bgii4wDTm74g3KiggxqM60q1q1Bq1o1q1BF1qlrqrBZ2q5wprBGFZWWZGHFsjiooLowgmOowjkwCkgoiIk7ligGogiioBkwkiYkzj2oNoi+sbkwj04DghhkQ8wgiYkgoioDsgnkwC4gikQ//v+85BkwvoIsgoyI4yguI0whiwEowri4CoghsJowgqYowgm4DkwgsY/nwnzPowhmYkg6wI8yggZswikwHgxgmIoxgqYkwgk4DkxgmIkgoioBsgssoBgzgyI8g9gL8g9kI0wgwJoxgkoC0wgioFkw/wI0w53iF4gioYowjmgBHGq1qkgwBF1q1q8qBHwghuIwghyKk0goQkwgoQk3goQHGFHkyg0pBgxj6IoinkxDswno7Ikwhz9Bo0gioB8z48Rwli0xN0mpjoX8w78pDwltoqKHFGGwwgsIHFH3q1q16BFHWFZ1q10q1B2qlwq1B1q10q1B2q1yq1B6q1gq1Biq1qhxBir1qp1Bqt1q1qB1g1q1+B//3q16B///q1qBH/qlqq9Bholqq9B1i00a1q10qD1op1HkwmigEigiy6Cptogq1Bixo1kDq7/j00B2qgoBWGFm1lz50B6s5q1+BGWhggzhwBFFhgk4//Bo2jigE8wguI8wguI8wgugUog1qoB4qjmIwwi2KgkYHHH4lBgiFWkgIWoghssMmz5smrBZ3q1y50B5sm7gzBtz1smzB5smz50BqzqtmzB5sgzqzBF2/9//5BowgoIwmnkzPkwgk4C8ys65BkgoqI0wgy6FghquZo2giY0ghiIsgh24B4ghsQ8QF/v1q1OFs0O8iCHHF1qggz/B8wg6Iznv+//B08QgohsjK0QGFk7hsQ4gB",t,222)}function au(){return null==M&amp;&amp;new cu,M}function hu(){F=this,this.k9_1=new Int32Array([170,186,688,704,736,837,890,7468,7544,7579,8305,8319,8336,8560,9424,11388,42652,42864,43e3,43868]),this.l9_1=new Int32Array([1,1,9,2,5,1,1,63,1,37,1,1,13,16,26,2,2,1,2,4])}function lu(){return null==F&amp;&amp;new hu,F}function _u(n){var t=function(n,t){return yu(n,t),vu.call(t),t}(n,de(ve(vu)));return _e(t,_u),t}function vu(){_e(this,vu)}function du(n){var t=function(n,t){return yu(n,t),gu.call(t),t}(n,de(ve(gu)));return _e(t,du),t}function gu(){_e(this,gu)}function wu(n){var t=function(n,t){return yu(n,t),bu.call(t),t}(n,de(ve(bu)));return _e(t,wu),t}function bu(){_e(this,bu)}function pu(n,t){return ge(t,n),ku.call(t),t}function mu(n){var t=pu(n,de(ve(ku)));return _e(t,mu),t}function ku(){_e(this,ku)}function qu(n){return function(n){ge(n),ku.call(n)}(n),Bu.call(n),n}function yu(n,t){return pu(n,t),Bu.call(t),t}function Bu(){_e(this,Bu)}function Cu(){var n,t=(qu(n=de(ve(ju))),ju.call(n),n);return _e(t,Cu),t}function xu(n){var t=function(n,t){return yu(n,t),ju.call(t),t}(n,de(ve(ju)));return _e(t,xu),t}function ju(){_e(this,ju)}function Pu(n){var t=function(n,t){return yu(n,t),Iu.call(t),t}(n,de(ve(Iu)));return _e(t,Pu),t}function Iu(){_e(this,Iu)}function Su(){var n,t=(qu(n=de(ve(Tu))),Tu.call(n),n);return _e(t,Su),t}function zu(n){var t=function(n,t){return yu(n,t),Tu.call(t),t}(n,de(ve(Tu)));return _e(t,zu),t}function Tu(){_e(this,Tu)}function Eu(){var n,t=(qu(n=de(ve(Lu))),Lu.call(n),n);return _e(t,Eu),t}function Lu(){_e(this,Lu)}function Nu(){var n,t=(qu(n=de(ve(Au))),Au.call(n),n);return _e(t,Nu),t}function Au(){_e(this,Au)}function Mu(){var n,t=(qu(n=de(ve(Fu))),Fu.call(n),n);return _e(t,Mu),t}function Fu(){_e(this,Fu)}function Du(n){var t=function(n,t){return yu(n,t),Ou.call(t),t}(n,de(ve(Ou)));return _e(t,Du),t}function Ou(){_e(this,Ou)}function Ru(n,t){var r,i=n.className;return(r="(^|.*\\s+)"+t+"($|\\s+.*)",function(n,t){return Si.call(t,n,Ht()),t}(r,de(ve(Si)))).a8(i)}function Hu(n,t){this.o9_1=n,this.p9_1=t}function $u(n){this.q9_1=n}function Gu(n,t,r){var i,e=Gf(),u=ro(),o=$f().ga(t),f=ro();if(0===re(r))i=Of();else{var s=n.ia_1,c=null==s?null:new $u(s).v9(r,"Copy reference to the clipboard");i=null==c?Of():c}return e.ja([u,o,f,i])}function Uu(n){n=n===A?null:n,this.ia_1=n}function Vu(n,t,r){to.call(this),this.ma_1=n,this.na_1=t,this.oa_1=r}function Qu(n,t){this.ra_1=n,this.sa_1=t}function Zu(n,t){to.call(this),this.va_1=n,this.wa_1=t}function Yu(n,t){to.call(this),this.xa_1=n,this.ya_1=t}function Wu(n){to.call(this),this.za_1=n}function Ku(n){to.call(this),this.ab_1=n}function Xu(n){to.call(this),this.bb_1=n}function Ju(n,t){to.call(this),this.cb_1=n,this.db_1=t}function no(n){to.call(this),this.eb_1=n}function to(){}function ro(){return so(),D}function io(){return so(),O}function eo(){return so(),R}function uo(){return so(),H}function oo(n){return so(),Gf().fb(us(fo),n)}function fo(n){return so(),n.gb(["invisible-text","text-for-copy"]),br()}function so(){$||($=!0,D=oo("`"),O=oo(" "),R=oo("("),H=oo(")"))}function co(n,t){to.call(this),this.hb_1=n,this.ib_1=t}function ao(n){to.call(this),this.jb_1=n}function ho(n,t){to.call(this),this.kb_1=n,this.lb_1=t}function lo(n){to.call(this),this.mb_1=n}function _o(n){to.call(this),this.nb_1=n}function vo(n){to.call(this),this.ob_1=n}function go(n,t,r){to.call(this),this.pb_1=n,this.qb_1=t,this.rb_1=r}function wo(n){to.call(this),this.sb_1=n}function bo(n){to.call(this),this.tb_1=n}function po(n){return n.xb_1.vb_1.k()}function mo(){if(Z)return br();Z=!0,G=new jo("Inputs",0,"Build configuration inputs"),U=new jo("ByMessage",1,"Problems grouped by message"),V=new jo("ByLocation",2,"Problems grouped by location"),Q=new jo("IncompatibleTasks",3,"Incompatible tasks")}function ko(n){Fc.call(this),this.yb_1=n}function qo(n){Fc.call(this),this.ac_1=n}function yo(n){Fc.call(this),this.bc_1=n}function Bo(n){Fc.call(this),this.cc_1=n}function Co(n){Po.call(this),this.dc_1=n}function xo(n,t,r,i,e,u,o,f){this.ec_1=n,this.fc_1=t,this.gc_1=r,this.hc_1=i,this.ic_1=e,this.jc_1=u,this.kc_1=o,this.lc_1=f}function jo(n,t,r){Ui.call(this,n,t),this.qc_1=r}function Po(){Oc.call(this)}function Io(n,t){var r=Hf(),i=us(Oo),e=Hf().y9(us(Ro),[]),u=function(n,t){var r,i=Hf(),e=us(Vo),u=Gf().ga("Learn more about the "),o=Yf();return i.y9(e,[u,o.fb(us((r=t,function(n){return n.bd(r.tc_1),br()})),t.sc_1),Gf().ga(".")])}(0,t.gc_1),o=Hf().y9(us(Ho),[zo(0,t)]),f=Hf();return r.y9(i,[e,u,o,f.y9(us($o),[No(0,Qo(),t.lc_1,po(t.jc_1)),No(0,Zo(),t.lc_1,po(t.hc_1)),No(0,Yo(),t.lc_1,po(t.ic_1)),No(0,Wo(),t.lc_1,po(t.kc_1))])])}function So(n,t){var r,i,e=Hf(),u=us(Go);switch(t.lc_1.q8_1){case 0:r=Mo(0,t.jc_1,((i=function(n){return new yo(n)}).callableName="&lt;init>",i));break;case 3:r=Mo(0,t.kc_1,function(){var n=function(n){return new Bo(n)};return n.callableName="&lt;init>",n}());break;case 1:r=Mo(0,t.hc_1,function(){var n=function(n){return new qo(n)};return n.callableName="&lt;init>",n}());break;case 2:r=Mo(0,t.ic_1,function(){var n=function(n){return new ko(n)};return n.callableName="&lt;init>",n}());break;default:be()}return e.y9(u,[r])}function zo(n,t){return Hf().ja([Lo(0,t),To(0,t)])}function To(n,t){for(var r=Hf(),i=t.fc_1,e=Or(),u=0,o=i.f();o.g();){var f=o.h(),s=u;u=s+1|0,Et(e,0===yr(s)?qr(Eo(Xo(),f)):Bt([Wf().ja([]),Eo(Xo(),f)]))}return r.ha(e)}function Eo(n,t){return Uf().ja([Uc(t)])}function Lo(n,t){return Rf().ja([$c().ka(t.ec_1)])}function No(n,t,r,i){var e,u,o;return Hf().y9(us((e=i,u=t,o=r,function(n){return n.t9("group-selector"),0===e?(n.t9("group-selector--disabled"),br()):u.equals(o)?(n.t9("group-selector--active"),br()):(n.u9(function(n){return function(t){return new Co(n)}}(u)),br()),br()})),[Gf().rc(t.qc_1,[Ao(0,i)])])}function Ao(n,t){return Gf().y9(us(Uo),[io(),eo(),Gf().ga(""+t),uo()])}function Mo(n,t,r){return function(n,t,r){var i,e=Hf(),u=Vf();return e.ja([u.ha(Ps(t,(i=r,function(n){var t,r=n.cd().ub_1;return r instanceof Zu?Kc(i,(Xo(),(t=function(n){return Fo(0,n)}).callableName="viewNode",t),n,r.va_1,r.wa_1,Rc()):r instanceof Yu?Kc(i,function(){var n=function(n){return Fo(0,n)};return n.callableName="viewNode",n}(Xo()),n,r.xa_1,r.ya_1,Hc()):r instanceof co?Kc(i,function(){var n=function(n){return Fo(0,n)};return n.callableName="viewNode",n}(Xo()),n,r.hb_1,r.ib_1,A,Ao(Xo(),n.cd().vb_1.k())):r instanceof Vu?Wc(i,n,r):Kc(i,function(){var n=function(n){return Fo(0,n)};return n.callableName="viewNode",n}(Xo()),n,r)})))])}(0,t.xb_1.uc().vc(),r)}function Fo(n,t){var r;return t instanceof ao?Vc((r=t,function(n){return n.ed("project "),n.fd(r.jb_1),br()})):t instanceof go?Vc(function(n){return function(t){return t.ed(n.pb_1+" "),t.fd(n.qb_1),t.ed(" of "),t.fd(n.rb_1),br()}}(t)):t instanceof vo?Vc(function(n){return function(t){return t.ed("system property "),t.fd(n.ob_1),br()}}(t)):t instanceof ho?Vc(function(n){return function(t){return t.ed("task "),t.fd(n.kb_1),t.ed(" of type "),t.fd(n.lb_1),br()}}(t)):t instanceof _o?Vc(function(n){return function(t){return t.ed("bean of type "),t.fd(n.nb_1),br()}}(t)):t instanceof wo?Vc(function(n){return function(t){return t.ed(n.sb_1),br()}}(t)):t instanceof bo?Vc(function(n){return function(t){return t.ed("class "),t.fd(n.tb_1),br()}}(t)):t instanceof no?Vc(function(n){return function(t){return t.ed(n.eb_1),br()}}(t)):t instanceof Wu?Uc(t.za_1):t instanceof Ju?Jo(t):Gf().ga(ce(t))}function Do(n){return n.t9("report-wrapper"),br()}function Oo(n){return n.t9("header"),br()}function Ro(n){return n.t9("gradle-logo"),br()}function Ho(n){return n.t9("title"),br()}function $o(n){return n.t9("groups"),br()}function Go(n){return n.t9("content"),br()}function Uo(n){return n.t9("group-selector__count"),br()}function Vo(n){return n.t9("learn-more"),br()}function Qo(){return mo(),G}function Zo(){return mo(),U}function Yo(){return mo(),V}function Wo(){return mo(),Q}function Ko(){Y=this}function Xo(){return null==Y&amp;&amp;new Ko,Y}function Jo(n){var t;return Yf().fb(us((t=n,function(n){return n.t9("documentation-button"),n.bd(t.cb_1),br()})),n.db_1)}function nf(n,t,r){this.kd_1=n,this.ld_1=t,this.md_1=r}function tf(n,t,r){this.nd_1=n,this.od_1=t,this.pd_1=r}function rf(n,t){for(var r=mf(n),i=t.trace,e=Rr(i.length),u=0,o=i.length;u&lt;o;){var f,s=i[u];u=u+1|0,f=of(s),e.d(f)}return new nf(t,r,e)}function ef(n,t){var r,i=null==(r=t.kd_1.error)?null:ff(r);null==i||n.d(i)}function uf(n){return function(n,t,r){var i=null==n.error?null:new Zu(t,r);return null==i?new Yu(t,r):i}(n.kd_1,new Wu(n.ld_1),af(n.kd_1))}function of(n){var t;switch(n.kind){case"Project":t=new ao(n.path);break;case"Task":t=new ho(n.path,n.type);break;case"TaskPath":t=new lo(n.path);break;case"Bean":t=new _o(n.type);break;case"Field":t=new go("field",n.name,n.declaringType);break;case"InputProperty":t=new go("input property",n.name,n.task);break;case"OutputProperty":t=new go("output property",n.name,n.task);break;case"SystemProperty":t=new vo(n.name);break;case"PropertyUsage":t=new go("property",n.name,n.from);break;case"BuildLogic":t=new wo(n.location);break;case"BuildLogicClass":t=new bo(n.type);break;default:t=new no("Gradle runtime")}return t}function ff(n){var t=n.parts;if(null==t){var r=n.summary;return null==r?null:new Wu(mf(r))}for(var i=n.summary,e=null==i?null:mf(i),u=Or(),o=Qi(t);o.g();){var f=cf(o.h());null==f||u.d(f)}for(var s=$n(u,"\n"),c=Or(),a=Qi(t);a.g();){var h=sf(a.h());null==h||c.d(h)}return new Vu(e,s,c)}function sf(n){var t=cf(n);if(null==t)return null;var r,i,e=ot(new Rt(function(n,t,r,i){var e;return ut(or(n,["\r\n","\n","\r"],A,r=r!==A&amp;&amp;r,i=i===A?0:i),(e=n,function(n){return ur(e,n)}))}(t),!0,bf));return new Qu(e,(r=!(null==n.internalText),i=e.k(),r&amp;&amp;i>1?Cs():null))}function cf(n){var t=n.text;return null==t?n.internalText:t}function af(n){var t=n.documentationLink;return null==t?null:new Ju(t,"")}function hf(n,t){return new ds(lf(n,Ef().sd(t),Cs()))}function lf(n,t,r){return new js(n,function(n,t){var r,i=ut(Vn(n.o()),Nf);return ot(ut(new st(i,new _f(pf)),(r=t,function(n){return lf(n.v3(),n.w3().wd_1,r)})))}(t,1===Lf(t)?xs():Cs()),0===Lf(t)?Cs():r)}function _f(n){this.td_1=n}function vf(n){var t=Or(),r=n.ld_1,i=Un(r.ca_1).fa_1,e=ce(er(nu(i)?i:pe())),u=r.vd(function(n,t){var r;if(!(t>=0))throw _u(ce("Requested element count "+t+" is less than zero."));if(0===t)return Qn(n);if(Ke(n,Di)){var i=n.k()-t|0;if(i&lt;=0)return Ct();if(1===i)return qr(function(n){if(Ke(n,Fi))return Jn(n);var t=n.f();if(!t.g())throw xu("Collection is empty.");for(var r=t.h();t.g();)r=t.h();return r}(n));if(r=Rr(),Ke(n,Fi)){if(Ke(n,bi)){var e=t,u=n.k();if(e&lt;u)do{var o=e;e=e+1|0,r.d(n.j(o))}while(e&lt;u)}else for(var f=n.l(t);f.g();){var s=f.h();r.d(s)}return r}}else r=Or();for(var c=0,a=n.f();a.g();){var h=a.h();c>=t?r.d(h):c=c+1|0}return xt(r)}(r.ca_1,1));return t.d(new co(new no(e),af(n.kd_1))),t.d(new Wu(u)),t.m(n.md_1),t.j5()}function df(n){var t=Or(),r=n.ld_1,i=r.vd(r.ca_1);return t.d(new Yu(new Wu(i),af(n.kd_1))),t.j5()}function gf(n){var t=Or();return t.d(uf(n)),t.m(n.md_1),ef(t,n),t.j5()}function wf(n){var t=Or();return t.m(new At(n.md_1)),t.d(uf(n)),ef(t,n),t.j5()}function bf(n){return re(n)>0}function pf(n,t){return function(n,t){return n===t?0:null==n?-1:null==t?1:ue(null!=n&amp;&amp;("string"==(i=typeof(r=n))||"boolean"===i||function(n){return"number"==typeof n||n instanceof ke}(r)||Ke(r,dr))?n:pe(),t);var r,i}(Vi(n.v3()),Vi(t.v3()))}function mf(n){var t;return Sf().qd((t=n,function(n){for(var r=t,i=0,e=r.length;i&lt;e;){var u=r[i];i=i+1|0;var o=u.text;null==o||n.ed(o);var f=u.name;null==f||(n.fd(f),br())}return br()}))}function kf(n,t){return(0!==(r=n)?r.toString():"No")+" "+qf(t,n)+" "+yf(n)+" found";var r}function qf(n,t){return t&lt;2?n:n+"s"}function yf(n){return n&lt;=1?"was":"were"}function Bf(n,t){this.sc_1=n,this.tc_1=t}function Cf(n){jf.call(this),this.fa_1=n}function xf(n,t){jf.call(this),this.da_1=n,this.ea_1=t}function jf(){}function Pf(){this.dd_1=Or()}function If(){W=this}function Sf(){return null==W&amp;&amp;new If,W}function zf(n){Sf(),this.ca_1=n}function Tf(){K=this}function Ef(){return null==K&amp;&amp;new Tf,K}function Lf(n){return n.k()}function Nf(n){var t=n.j1(),r=n.i1();return _r(t,new Af(Ke(r,Ri)?r:pe()))}function Af(n){Ef(),this.wd_1=n}function Mf(n,t,r){var i;Df(t,n,r),i="Component mounted at #"+n.id+".",yi(),(yi(),g).j7(i)}function Ff(n){var t=document.getElementById(n);if(null==t)throw wu("'"+n+"' element missing");return t}function Df(n,t,r){var i,e,u;i=n.z9(r),e=t,u=function(n,t,r){return function(i){return Df(n,r,n.ba(i,t)),br()}}(n,r,t),_s(),e.innerHTML="",hs(e,i,u)}function Of(){return _s(),X}function Rf(){return _s(),J}function Hf(){return _s(),nn}function $f(){return _s(),tn}function Gf(){return _s(),rn}function Uf(){return _s(),en}function Vf(){return _s(),un}function Qf(){return _s(),on}function Zf(){return _s(),fn}function Yf(){return _s(),sn}function Wf(){return _s(),cn}function Kf(n){this.x9_1=n}function Xf(){an=this}function Jf(){return null==an&amp;&amp;new Xf,an}function ns(){hn=this,es.call(this)}function ts(){return null==hn&amp;&amp;new ns,hn}function rs(n,t,r,i){t=t===A?Ct():t,r=r===A?null:r,i=i===A?Ct():i,es.call(this),this.be_1=n,this.ce_1=t,this.de_1=r,this.ee_1=i}function is(){}function es(){Jf()}function us(n){_s();var t,r=Or();return n(new os((t=r,function(n){return t.d(n),br()}))),r}function os(n){this.r9_1=n}function fs(n,t){as.call(this),this.fe_1=n,this.ge_1=t}function ss(n){as.call(this),this.he_1=n}function cs(n,t){as.call(this),this.ie_1=n,this.je_1=t}function as(){}function hs(n,t,r){if(_s(),t instanceof rs)!function(n,t,r){var i=function(n,t,r){var i=n.createElement(t);return r(i),i}(we(n.ownerDocument),t,r);n.appendChild(i)}(n,t.be_1,(e=t,u=r,function(n){for(var t=e.ce_1.f();t.g();)ls(n,t.h(),u);var r=e.de_1;null==r||function(n,t){n.appendChild(we(n.ownerDocument).createTextNode(t))}(n,r);for(var i=e.ee_1.f();i.g();)hs(n,i.h(),u);return br()}));else if(t instanceof is){var i=t instanceof is?t:pe();hs(n,i.ke_1,function(n,t){return function(r){return n(t.le_1(r)),br()}}(r,i))}else if(le(t,ts()))return br();var e,u}function ls(n,t,r){var i,e;_s(),t instanceof cs?n.setAttribute(t.ie_1,t.je_1):t instanceof ss?function(n,t){for(var r=Or(),i=0,e=t.length;i&lt;e;){var u=t[i];i=i+1|0,Ru(n,u)||r.d(u)}var o=r;if(!o.i()){var f=n.className,s=ce(er(nu(f)?f:pe())),c=Bi();c.p7(s),0!==re(s)&amp;&amp;c.p7(" "),Gn(o,c," "),n.className=c.toString()}}(n,[t.he_1]):t instanceof fs&amp;&amp;n.addEventListener(t.fe_1,(i=r,e=t,function(n){return n.stopPropagation(),i(e.ge_1(n)),br()}))}function _s(){ln||(ln=!0,X=ts(),new Kf("hr"),J=new Kf("h1"),new Kf("h2"),nn=new Kf("div"),new Kf("pre"),tn=new Kf("code"),rn=new Kf("span"),en=new Kf("small"),un=new Kf("ol"),on=new Kf("ul"),fn=new Kf("li"),sn=new Kf("a"),cn=new Kf("br"),new Kf("p"))}function vs(n){gs.call(this),this.ne_1=n}function ds(n){this.xb_1=n}function gs(){}function ws(n){return n.me(A,A,n.wb_1.ad())}function bs(){_n=this}function ps(){return null==_n&amp;&amp;new bs,_n}function ms(){if(gn)return br();gn=!0,vn=new ys("Collapsed",0),dn=new ys("Expanded",1)}function ks(n){Bs.call(this),this.ve_1=n}function qs(n,t,r){Bs.call(this),this.se_1=n,this.te_1=t,this.ue_1=r}function ys(n,t){Ui.call(this,n,t)}function Bs(){}function Cs(){return ms(),vn}function xs(){return ms(),dn}function js(n,t,r){t=t===A?Ct():t,r=r===A?Cs():r,this.ub_1=n,this.vb_1=t,this.wb_1=r}function Ps(n,t){return ot(ut(n,(r=t,function(n){return function(n,t){var r,i=n.cd(),e=Zf(),u=t(n),o=i.vb_1;r=null==(i.wb_1.equals(xs())&amp;&amp;!o.i()?o:null)?null:function(n,t){return Qf().ha(function(n,t){return Ps(n.vc(),t)}(n,t))}(n,t);var f=r;return e.ja([u,null==f?Of():f])}(n,r)})));var r}function Is(){if(xn)return br();xn=!0,kn=new Ss("ByMessage",0,"Messages"),qn=new Ss("ByGroup",1,"Group"),yn=new Ss("ByFileLocation",2,"File Locations"),Bn=new Ss("ByPluginLocation",3,"Plugin Locations"),Cn=new Ss("ByTaskLocation",4,"Task Locations")}function Ss(n,t,r){Ui.call(this,n,t),this.cf_1=r}function zs(n,t){this.df_1=n,this.ef_1=t}function Ts(n,t){this.ff_1=n,this.gf_1=t}function Es(n,t,r){ec();for(var i=Or(),e=li(),u=0,o=n.length;u&lt;o;){var f=n[u];u=u+1|0;var s=f.locations;null==s||0===s.length?i.d(Os(f)):r(f,e)||i.d(Os(f))}var c=function(n,t,r){ec();for(var i=n.w1(),e=Rr(Tt(i,10)),u=i.f();u.g();){var o;o=u.h().t3_1,e.d(o)}var f=Zn(e);return t.i()||f.d(new js(new oc(Sf().rd("no location"),!0),t)),r>0&amp;&amp;f.d(Ns(r)),f}(e,i,t);return new ds(new js(new uc("text"),c))}function Ls(n){return ec(),t=n,function(n,r){var i,e=n.locations;if(null==e)i=null;else{for(var u=Or(),o=Qi(e);o.g();){var f=o.h();null!=t(f)&amp;&amp;u.d(f)}i=u}var s,c=i;if(null==c||c.i())s=!1;else{for(var a=c.f();a.g();){var h=a.h();As(r,we(t(h)),n,h)}s=!0}return s};var t}function Ns(n){return ec(),new js(new Wu(Sf().rd(n+" more problem"+(n>1?"s have":" has")+" been skipped")))}function As(n,t,r,i){ec();var e,u,o=n.v1(t);if(null==o){var f=Or(),s=_r(new js(new oc(Sf().qd((u=t,function(n){return n.fd(u),br()}))),f,xs()),f);n.h5(t,s),e=s}else e=o;e.u3_1.d(Os(r,i))}function Ms(n,t,r,i){var e,u;if(t=t===A?Or():t,r=r===A?li():r,i===A){var o=(ec(),mn);u=o+1|0,ec(),mn=u,e=o}else e=i;i=e,this.hf_1=n,this.if_1=t,this.jf_1=r,this.kf_1=i}function Fs(n,t){if(ec(),t.i())return null;for(var r,i=n,e=null,u=t.f();u.g();){var o=u.h();r=e;var f,s=i,c=o.ef_1+" ("+o.df_1+")",a=s.v1(c);if(null==a){var h=Or(),l=new Ms(new js(new oc(Sf().qd(Ys(o))),h,xs()),h);s.h5(c,l),f=l}else f=a;e=f,null==r||we(r).if_1.u(we(e).hf_1)||we(r).if_1.d(we(e).hf_1),i=we(e).jf_1}return e}function Ds(n,t){if(ec(),n.k()===t.length){var r;n:{var i=function(n,t){var r=t.length,i=Tt(n,10),e=Rr(Math.min(i,r)),u=0,o=n.f();t:for(;o.g();){var f,s=o.h();if(u>=r)break t;var c=u;u=c+1|0,f=_r(s,t[c]),e.d(f)}return e}(n,t);if(Ke(i,Di)&amp;&amp;i.i())r=!0;else{for(var e=i.f();e.g();){var u=e.h();if(u.t3_1.df_1!==u.u3_1.name||u.t3_1.ef_1!==u.u3_1.displayName){r=!1;break n}}r=!0}}return r}return!1}function Os(n,t,r){t=t===A?null:t,r=r!==A&amp;&amp;r,ec();var i=function(n,t,r){t=t===A?null:t,r=r!==A&amp;&amp;r,ec();var i=$s(function(n,t){return ec(),n&amp;&amp;null!=t.contextualLabel?we(t.contextualLabel):Rs(t)}(r,n),t).j5();return Hs(n,new Wu(i))}(n,t,r),e=function(n,t,r){r=r!==A&amp;&amp;r,ec();var i,e=n.problemDetails;if(null==e)i=null;else{var u,o=e[0].text,f=null==o?null:function(n,t,r,i){if(r=r!==A&amp;&amp;r,i=i===A?0:i,1===t.length){var e=t[0];if(0!==re(e))return function(n,t,r,i){sr(i);var e=0,u=rr(n,t,e,r);if(-1===u||1===i)return qr(ce(n));var o,f=i>0,s=Rr(f&amp;&amp;it(i,10));n:do{var c;if(c=ce(ie(n,e,u)),s.d(c),e=u+t.length|0,f&amp;&amp;s.k()===(i-1|0))break n;u=rr(n,t,e,r)}while(-1!==u);return o=ce(ie(n,e,re(n))),s.d(o),s}(n,e,r,i)}for(var u=function(n){return new ft(n)}(or(n,t,A,r,i)),o=Rr(Tt(u,10)),f=u.f();f.g();){var s;s=ur(n,f.h()),o.d(s)}return o}(o,["\n"]);if(null==f)u=null;else{for(var s=Rr(Tt(f,10)),c=f.f();c.g();){var a,h=c.h();a=Us(n)?Sf().qd(Ks(h)):Sf().rd(h),s.d(a)}u=s}var l,_=u;if(null==_)l=null;else{for(var v=Rr(Tt(_,10)),d=_.f();d.g();){var g;g=new js(new Wu(d.h())),v.d(g)}l=v}var w=null==l?null:Zn(l);i=null==w?Or():w}var b=i,p=null==b?Or():b;r||null==n.contextualLabel||p.d(new js(new Wu(Sf().rd(we(n.contextualLabel)))));var m=function(n){ec();var t=n.solutions;if(null==t||0===t.length)return null;for(var r=new Xu(Sf().rd("Solutions")),i=we(n.solutions),e=Rr(i.length),u=0,o=i.length;u&lt;o;){var f,s=i[u];u=u+1|0,f=new js(new Ku(mf(s))),e.d(f)}return new js(r,e)}(n);null==m||p.d(m);var k,q=n.error,y=null==q?null:ff(q);if(null==y||p.d(new js(y)),t){var B=n.locations;k=!(null==B||0===B.length)}else k=!1;return k&amp;&amp;p.d(function(n){ec();var t,r=n.locations;if(null==r)t=null;else{for(var i=Rr(r.length),e=Qi(r);e.g();){var u,o=e.h();u=new js(new Wu(Sf().qd(Xs(o)))),i.d(u)}t=i}var f=t;return new js(new no("Locations"),null==f?Ct():f)}(n)),p}(n,null==t,r);return new js(i,e)}function Rs(n){return ec(),function(n){if(0===n.length)throw xu("Array is empty.");return n[Rn(n)]}(n.problemId).displayName}function Hs(n,t){var r;switch(ec(),n.severity){case"WARNING":var i=n.documentationLink;r=new Yu(t,null==i?null:new Ju(i,""));break;case"ERROR":var e=n.documentationLink;r=new Zu(t,null==e?null:new Ju(e,""));break;case"ADVICE":var u=n.documentationLink;r=new fc(t,null==u?null:new Ju(u,""));break;default:console.error("no severity "+n.severity),r=t}return r}function $s(n,t){t=t===A?null:t,ec();var r,i=new Pf;if(i.ed(n),null==t);else if(null!=t.line){var e=Gs(t);i.xd(e+(r=t,ec(),null==r.line||null==r.length?"":"-"+r.length),""+t.path+e),br()}else null!=t.taskPath?(i.fd(we(t.taskPath)),br()):null!=t.pluginId&amp;&amp;(i.fd(we(t.pluginId)),br());return i}function Gs(n){var t;if(ec(),null==n.line)t=null;else{var r,i=":"+n.line,e=n.column;t=i+(null==(r=null==e?null:":"+e)?"":r)}return null==t?"":t}function Us(n){var t;ec();var r,i=n.problemId;n:{for(var e=0,u=i.length;e&lt;u;){var o=i[e];if(e=e+1|0,"compilation"===o.name){r=o;break n}}r=null}if(null!=r){var f,s=n.problemId;n:{for(var c=0,a=s.length;c&lt;a;){var h=s[c];if(c=c+1|0,"java"===h.name){f=h;break n}}f=null}t=!(null==f)}else t=!1;return t}function Vs(n){return ec(),n.path}function Qs(n){return ec(),n.pluginId}function Zs(n){return ec(),n.taskPath}function Ys(n){return function(t){return t.ed(n.ef_1),t.fd(n.df_1),br()}}function Ws(n){return ec(),n.name}function Ks(n){return function(t){return t.xd(function(n,t,r,i){i=i!==A&amp;&amp;i;var e=new RegExp(Ii().t7(" "),i?"gui":"gu"),u=Ii().u7(" ");return n.replace(e,u)}(n),""),br()}}function Xs(n){return function(t){var r;return t.ed("- "),t.fd((r=n,ec(),null!=r.path?""+r.path+Gs(r):null!=r.taskPath?we(r.taskPath):null!=r.pluginId?we(r.pluginId):"&lt;undefined>")),br()}}function Js(){return Is(),kn}function nc(){return Is(),qn}function tc(){return Is(),yn}function rc(){return Is(),Bn}function ic(){return Is(),Cn}function ec(){jn||(jn=!0,wn=Ls(Vs),bn=Ls(Qs),pn=Ls(Zs),mn=0)}function uc(n){sc.call(this),this.lf_1=n}function oc(n,t){t=t!==A&amp;&amp;t,sc.call(this),this.mf_1=n,this.nf_1=t}function fc(n,t){t=t===A?null:t,to.call(this),this.of_1=n,this.pf_1=t}function sc(){to.call(this)}function cc(n){Fc.call(this),this.qf_1=n}function ac(n){Fc.call(this),this.rf_1=n}function hc(n){Fc.call(this),this.sf_1=n}function lc(n){Fc.call(this),this.tf_1=n}function _c(n){Fc.call(this),this.uf_1=n}function vc(n){gc.call(this),this.vf_1=n}function dc(n,t,r,i,e,u,o,f,s,c){this.wf_1=n,this.xf_1=t,this.yf_1=r,this.zf_1=i,this.ag_1=e,this.bg_1=u,this.cg_1=o,this.dg_1=f,this.eg_1=s,this.fg_1=c}function gc(){Oc.call(this)}function wc(n,t){var r=Or();po(t.zf_1)>0&amp;&amp;r.d(yc(0,Js(),t.fg_1,t.eg_1)),po(t.ag_1)>0&amp;&amp;r.d(yc(0,nc(),t.fg_1,t.eg_1)),po(t.bg_1)>0&amp;&amp;r.d(yc(0,tc(),t.fg_1,t.eg_1)),po(t.cg_1)>0&amp;&amp;r.d(yc(0,rc(),t.fg_1,t.eg_1)),po(t.dg_1)>0&amp;&amp;r.d(yc(0,ic(),t.fg_1,t.eg_1));var i=Hf(),e=us(jc),u=Hf().y9(us(Pc),[]),o=function(n,t){var r,i=Hf(),e=us(Ec),u=Gf().ga("Learn more about "),o=Yf();return i.y9(e,[u,o.fb(us((r=t,function(n){return n.bd(r.tc_1),br()})),t.sc_1),Gf().ga(".")])}(0,t.yf_1),f=Hf().y9(us(Ic),[pc(0,t)]),s=Hf();return i.y9(e,[u,o,f,s.zd(us(Sc),r)])}function bc(n,t){var r,i,e=Hf(),u=us(zc);switch(t.fg_1.q8_1){case 0:r=Bc(0,t.zf_1,((i=function(n){return new cc(n)}).callableName="&lt;init>",i));break;case 1:r=Bc(0,t.ag_1,function(){var n=function(n){return new ac(n)};return n.callableName="&lt;init>",n}());break;case 2:r=Bc(0,t.bg_1,function(){var n=function(n){return new hc(n)};return n.callableName="&lt;init>",n}());break;case 3:r=Bc(0,t.cg_1,function(){var n=function(n){return new lc(n)};return n.callableName="&lt;init>",n}());break;case 4:r=Bc(0,t.dg_1,function(){var n=function(n){return new _c(n)};return n.callableName="&lt;init>",n}());break;default:be()}return e.y9(u,[r])}function pc(n,t){return Hf().ja([qc(0,t),mc(0,t)])}function mc(n,t){for(var r=Hf(),i=t.xf_1,e=Or(),u=0,o=i.f();o.g();){var f=o.h(),s=u;u=s+1|0,Et(e,0===yr(s)?qr(kc(Nc(),f)):Bt([Wf().ja([]),kc(Nc(),f)]))}return r.ha(e)}function kc(n,t){return Uf().ja([Uc(t)])}function qc(n,t){return Rf().ja([$c().ka(t.wf_1)])}function yc(n,t,r,i){var e,u,o,f;return Hf().y9(us((e=i,u=t,o=r,function(n){return n.t9("group-selector"),0===e?(n.t9("group-selector--disabled"),br()):u.equals(o)?(n.t9("group-selector--active"),br()):(n.u9(function(n){return function(t){return new vc(n)}}(u)),br()),br()})),[Gf().rc(t.cf_1,[(f=i,Gf().y9(us(Tc),[io(),eo(),Gf().ga(""+f),uo()]))])])}function Bc(n,t,r){return function(n,t,r){var i,e=Hf(),u=Vf();return e.ja([u.ha(Ps(t,(i=r,function(n){return function(n,t,r,i){var e,u;return t instanceof uc?Uc(Sf().rd(t.lf_1)):t instanceof oc?Hf().y9(us((u=t,function(n){return u.nf_1&amp;&amp;(n.t9("uncategorized"),br()),br()})),[Hf().ja([Qc(r,i),Uc(t.mf_1)])]):t instanceof Vu?Wc(i,r,t):t instanceof Wu?Uc(t.za_1):t instanceof Ku?Hf().ja([(sa(),Tn),Uc(t.ab_1)]):t instanceof Xu?Hf().ja([Qc(r,i),Uc(t.bb_1)]):t instanceof Zu?Kc(i,((e=function(n){return Cc(0,n)}).callableName="viewIt",e),r,t.va_1,t.wa_1,Rc()):t instanceof fc?Kc(i,function(){var n=function(n){return Cc(0,n)};return n.callableName="viewIt",n}(),r,t.of_1,t.pf_1,(sa(),Sn)):t instanceof Yu?Kc(i,function(){var n=function(n){return Cc(0,n)};return n.callableName="viewIt",n}(),r,t.xa_1,t.ya_1,Hc()):t instanceof no?Hf().ja([Qc(r,i),Uc(Sf().rd(t.eb_1))]):Gf().ga("Unknown node type viewNode: "+t)}(Nc(),n.cd().ub_1,n,i)})))])}(0,t.xb_1.uc().vc(),r)}function Cc(n,t){var r;if(t instanceof Ju)r=Jo(t);else if(t instanceof no)r=Uc(Sf().rd(t.eb_1));else if(t instanceof Wu)r=Uc(t.za_1);else{var i="Unknown node type viewIt: "+t;console.error(i),r=Gf().ga(i)}return r}function xc(n){return n.t9("report-wrapper"),br()}function jc(n){return n.t9("header"),br()}function Pc(n){return n.t9("gradle-logo"),br()}function Ic(n){return n.t9("title"),br()}function Sc(n){return n.t9("groups"),br()}function zc(n){return n.t9("content"),br()}function Tc(n){return n.t9("group-selector__count"),br()}function Ec(n){return n.t9("learn-more"),br()}function Lc(){Pn=this,document.title="Gradle - Problems Report"}function Nc(){return null==Pn&amp;&amp;new Lc,Pn}function Ac(n,t,r){return n.pe(t.zb().oe(),r)}function Mc(n){Oc.call(this),this.hd_1=n}function Fc(){Oc.call(this)}function Dc(n,t){Oc.call(this),this.wc_1=n,this.xc_1=t}function Oc(){}function Rc(){return sa(),In}function Hc(){return sa(),zn}function $c(){return sa(),En}function Gc(){return sa(),Ln}function Uc(n){return sa(),Gc().ka(n)}function Vc(n){return sa(),Gc().ka(Sf().qd(n))}function Qc(n,t){return sa(),n.cd().ye()?Xc(n,t):function(n){return sa(),Gf().fb(us(oa),Jc(n))}(n)}function Zc(n,t,r,i){var e,u,o;return sa(),Gf().fb(us((e=r,u=t,o=i,function(n){return n.t9("java-exception-part-toggle"),n.u9(function(n,t){return function(r){return new Dc(n,t())}}(u,o)),n.s9("Click to "+function(n){var t;switch(sa(),n.q8_1){case 0:t="show";break;case 1:t="hide";break;default:be()}return t}(e)),br()})),"("+n+" internal "+qf("line",n)+" "+function(n){var t;switch(sa(),n.q8_1){case 0:t="hidden";break;case 1:t="shown";break;default:be()}return t}(r)+")")}function Yc(n,t){t=t===A?Of():t,sa();for(var r=Qf(),i=Rr(Tt(n,10)),e=0,u=n.f();u.g();){var o,f=e;e=f+1|0,s=u.h(),c=(c=0===yr(f)?t:Of())===A?Of():c,sa(),o=Zf().ja([$f().ga(s),c]),i.d(o)}var s,c;return r.ha(i)}function Wc(n,t,r){sa();var i,e,u,o=Hf(),f=Xc(t,n),s=Gf().ga("Exception"),c=Gf().ja([(sa(),Nn).v9(r.na_1,"Copy exception to the clipboard")]),a=null==r.ma_1?null:Gf().ga(" "),h=null==a?Of():a,l=r.ma_1,_=null==l?null:Uc(l),v=null==_?Of():_;switch(t.cd().wb_1.q8_1){case 0:i=Of();break;case 1:i=function(n,t){sa();for(var r=Hf(),i=us(fa),e=n.oa_1,u=Rr(Tt(e,10)),o=0,f=e.f();f.g();){var s,c=f.h(),a=o;o=a+1|0;var h,l=yr(a);if(null!=c.sa_1){var _,v=Zc(c.ra_1.k(),l,c.sa_1,t),d=c.sa_1;switch(null==d?-1:d.q8_1){case 0:_=Yc(Kn(c.ra_1,1),v);break;case 1:_=Yc(c.ra_1,v);break;default:be()}h=_}else h=Yc(c.ra_1);s=h,u.d(s)}return r.zd(i,u)}(r,(e=n,u=t,function(){return e(new vs(u))}));break;default:be()}return o.ja([f,s,c,h,v,i])}function Kc(n,t,r,i,e,u,o){e=e===A?null:e,u=u===A?Of():u,o=o===A?Of():o,sa();var f=Hf(),s=Qc(r,n),c=t(i),a=null==e?null:t(e);return f.ja([s,u,c,null==a?Of():a,o])}function Xc(n,t){var r,i;return sa(),Gf().fb(us((r=n,i=t,function(n){return n.gb(["invisible-text","tree-btn"]),r.cd().wb_1===Cs()&amp;&amp;(n.t9("collapsed"),br()),r.cd().wb_1===xs()&amp;&amp;(n.t9("expanded"),br()),n.s9("Click to "+function(n){var t;switch(sa(),n.q8_1){case 0:t="expand";break;case 1:t="collapse";break;default:be()}return t}(r.cd().wb_1)),n.u9(function(n,t){return function(r){return n(new vs(t))}}(i,r)),br()})),Jc(n))}function Jc(n){return sa(),function(n,t){var r;if(!(t>=0))throw _u(ce("Count 'n' must be non-negative, but was "+t+"."));switch(t){case 0:r="";break;case 1:r=ce(n);break;default:var i="";if(0!==re(n))for(var e=ce(n),u=t;1&amp;~u||(i+=e),0!=(u=u>>>1|0);)e+=e;return i}return r}(" ",n.we()-1|0)+"- "}function na(n){return sa(),n.gb(["invisible-text","error-icon"]),br()}function ta(n){return sa(),n.gb(["invisible-text","advice-icon"]),br()}function ra(n){return sa(),n.gb(["invisible-text","warning-icon"]),br()}function ia(n){return sa(),n.gb(["invisible-text","enum-icon"]),br()}function ea(n){return sa(),new Mc(n)}function ua(n){return sa(),new Mc(n)}function oa(n){return sa(),n.gb(["invisible-text","leaf-icon"]),br()}function fa(n){return sa(),n.t9("java-exception"),br()}function sa(){if(!An){An=!0;var n=Gf();In=n.fb(us(na),"[error] ");var t=Gf();Sn=t.fb(us(ta),"[advice] ");var r=Gf();zn=r.fb(us(ra),"[warn] ");var i=Gf();Tn=i.fb(us(ia),"[enum] "),En=new Uu,Ln=new Uu(ea),Nn=new $u(ua)}}return We(tt,A,Qe),We(ft,A,Qe),We(st,A,Qe),We(Di,"Collection",tu),We(ct,"AbstractCollection",Qe,A,[Di]),We(at,"IteratorImpl",Qe),We(ht,"ListIteratorImpl",Qe,at),We(lt,"Companion",iu),We(Fi,"List",tu,A,[Di]),We(vt,"AbstractList",Qe,ct,[ct,Fi]),We(dt,A,Qe),We(bt,"Companion",iu),We(mt,A,Qe,ct),We(Ri,"Map",tu),We(kt,"AbstractMap",Qe,A,[Ri]),We(qt,"Companion",iu),We(bi,"RandomAccess",tu),We(Pt,"EmptyList",iu,A,[Fi,bi]),We(It,"ArrayAsCollection",Qe,A,[Di]),We(St,"EmptyIterator",iu),We(Lt,"IntIterator",Qe),We(Nt,A,Qe),We(At,"ReversedListReadOnly",Qe,vt),We(Mt,A,Qe),We(Ft,"TransformingSequence",Qe),We(Ot,A,Qe),We(Rt,"FilteringSequence",Qe),We($i,"Set",tu,A,[Di]),We($t,"EmptySet",iu,A,[$i]),We(Vt,"Companion",iu),We(Xt,"IntProgression",Qe),We(Zt,"IntRange",Qe,Xt),We(Yt,"IntProgressionIterator",Qe,Lt),We(Wt,"Companion",iu),We(ar,A,Qe),We(hr,"DelimitedRangesSequence",Qe),We(lr,"Pair",Qe),We(vr,"CharSequence",tu),We(dr,"Comparable",tu),We(gr,"Number",Qe),We(wr,"Unit",iu),We(pr,"IntCompanionObject",iu),We(xr,"AbstractMutableCollection",Qe,ct,[ct,Di]),We(jr,"IteratorImpl",Qe),We(Pr,"ListIteratorImpl",Qe,jr),We(Ir,"AbstractMutableList",Qe,xr,[xr,Fi,Di]),We(Sr,A,Qe),We(zr,A,Qe),We(Oi,"Entry",tu),We(Hi,"MutableEntry",tu,A,[Oi]),We(Tr,"SimpleEntry",Qe,A,[Hi]),We(Mr,"AbstractMutableSet",Qe,xr,[xr,$i,Di]),We(Er,"AbstractEntrySet",Qe,Mr),We(Lr,A,Qe,Mr),We(Nr,A,Qe,xr),We(Ar,"AbstractMutableMap",Qe,kt,[kt,Ri]),We(Fr,"Companion",iu),We(Gr,"ArrayList",Qe,Ir,[Ir,Fi,Di,bi]),We(Qr,"HashCode",iu),We(Zr,"EntrySet",Qe,Er),We(Xr,"HashMap",Qe,Ar,[Ar,Ri]),We(ni,"HashSet",Qe,Mr,[Mr,$i,Di]),We(ei,A,Qe),We(oi,"InternalMap",tu),We(ui,"InternalHashCodeMap",Qe,A,[oi]),We(fi,"EntryIterator",Qe),We(si,"Companion",iu),We(ai,"ChainEntry",Qe,Tr),We(hi,"EntrySet",Qe,Er),We(vi,"LinkedHashMap",Qe,Xr,[Xr,Ri]),We(di,"Companion",iu),We(wi,"LinkedHashSet",Qe,ni,[ni,$i,Di]),We(pi,"BaseOutput",Qe),We(mi,"NodeJsOutput",Qe,pi),We(qi,"BufferedOutput",Qe,pi),We(ki,"BufferedOutputToConsoleLog",Qe,qi),We(Ci,"StringBuilder",Qe,A,[vr]),We(Pi,"Companion",iu),We(Si,"Regex",Qe),We(Ni,"Companion",iu),We(Mi,"Char",Qe,A,[dr]),We(Gi,"Companion",iu),We(Ui,"Enum",Qe,A,[dr]),We(Zi,A,Qe),We(me,"Companion",iu),We(ke,"Long",Qe,gr,[gr,dr]),We(cu,"Letter",iu),We(hu,"OtherLowercase",iu),We(ku,"Exception",Qe,Error),We(Bu,"RuntimeException",Qe,ku),We(vu,"IllegalArgumentException",Qe,Bu),We(gu,"IndexOutOfBoundsException",Qe,Bu),We(bu,"IllegalStateException",Qe,Bu),We(ju,"NoSuchElementException",Qe,Bu),We(Iu,"ArithmeticException",Qe,Bu),We(Tu,"UnsupportedOperationException",Qe,Bu),We(Lu,"NullPointerException",Qe,Bu),We(Au,"NoWhenBranchMatchedException",Qe,Bu),We(Fu,"ClassCastException",Qe,Bu),We(Ou,"UninitializedPropertyAccessException",Qe,Bu),We(Hu,"Model",Qe),We($u,"CopyButtonComponent",Qe),We(Uu,"PrettyTextComponent",Qe),We(to,"ProblemNode",Qe),We(Vu,"Exception",Qe,to),We(Qu,"StackTracePart",Qe),We(Zu,"Error",Qe,to),We(Yu,"Warning",Qe,to),We(Wu,"Message",Qe,to),We(Ku,"ListElement",Qe,to),We(Xu,"TreeNode",Qe,to),We(Ju,"Link",Qe,to),We(no,"Label",Qe,to),We(co,"Info",Qe,to),We(ao,"Project",Qe,to),We(ho,"Task",Qe,to),We(lo,"TaskPath",Qe,to),We(_o,"Bean",Qe,to),We(vo,"SystemProperty",Qe,to),We(go,"Property",Qe,to),We(wo,"BuildLogic",Qe,to),We(bo,"BuildLogicClass",Qe,to),We(Oc,"BaseIntent",Qe),We(Fc,"TreeIntent",Qe,Oc),We(ko,"TaskTreeIntent",Qe,Fc),We(qo,"MessageTreeIntent",Qe,Fc),We(yo,"InputTreeIntent",Qe,Fc),We(Bo,"IncompatibleTaskTreeIntent",Qe,Fc),We(Po,"Intent",Qe,Oc),We(Co,"SetTab",Qe,Po),We(xo,"Model",Qe),We(jo,"Tab",Qe,Ui),We(Ko,"ConfigurationCacheReportPage",iu),We(nf,"ImportedProblem",Qe),We(tf,"ImportedDiagnostics",Qe),We(_f,"sam$kotlin_Comparator$0",Qe),We(Bf,"LearnMore",Qe),We(jf,"Fragment",Qe),We(Cf,"Text",Qe,jf),We(xf,"Reference",Qe,jf),We(Pf,"Builder",Qe),We(If,"Companion",iu),We(zf,"PrettyText",Qe),We(Tf,"Companion",iu),We(Af,"Trie",Qe),We(Kf,"ViewFactory",Qe),We(Xf,"Companion",iu),We(es,"View",Qe),We(ns,"Empty",iu,es),We(rs,"Element",Qe,es),We(is,"MappedView",Qe,es),We(os,"Attributes",Qe),We(as,"Attribute",Qe),We(fs,"OnEvent",Qe,as),We(ss,"ClassName",Qe,as),We(cs,"Named",Qe,as),We(gs,"Intent",Qe),We(vs,"Toggle",Qe,gs),We(ds,"Model",Qe),We(bs,"TreeView",iu),We(Bs,"Focus",Qe),We(ks,"Original",Qe,Bs),We(qs,"Child",Qe,Bs),We(ys,"ViewState",Qe,Ui),We(js,"Tree",Qe),We(Ss,"Tab",Qe,Ui),We(zs,"ProblemIdElement",Qe),We(Ts,"ProblemSummary",Qe),We(Ms,"ProblemNodeGroup",Qe),We(sc,"ProblemApiNode",Qe,to),We(uc,"Text",Qe,sc),We(oc,"ProblemIdNode",Qe,sc),We(fc,"Advice",Qe,to),We(cc,"MessageTreeIntent",Qe,Fc),We(ac,"ProblemIdTreeIntent",Qe,Fc),We(hc,"FileLocationTreeIntent",Qe,Fc),We(lc,"PluginLocationTreeIntent",Qe,Fc),We(_c,"TaskLocationTreeIntent",Qe,Fc),We(gc,"Intent",Qe,Oc),We(vc,"SetTab",Qe,gc),We(dc,"Model",Qe),We(Lc,"ProblemsReportPage",iu),We(Mc,"Copy",Qe,Oc),We(Dc,"ToggleStackTracePart",Qe,Oc),ve(tt).f=function(){return this.n_1.f()},ve(ft).f=function(){return this.r_1.f()},ve(st).f=function(){var n,t,r=function(n,t){for(var r=n.f();r.g();){var i=r.h();t.d(i)}return t}(this.s_1,Or());return n=r,t=this.t_1,function(n,t){if(n.k()&lt;=1)return br();var r=Br(n);!function(n,t){if(function(){if(null!=l)return l;l=!1;var n=[],t=0;if(t&lt;600)do{var r=t;t=t+1|0,n.push(r)}while(t&lt;600);var i=Vr;n.sort(i);var e=1,u=n.length;if(e&lt;u)do{var o=e;e=e+1|0;var f=n[o-1|0],s=n[o];if((3&amp;f)==(3&amp;s)&amp;&amp;f>=s)return!1}while(e&lt;u);return l=!0,!0}()){var r=(i=t,function(n,t){return i.compare(n,t)});n.sort(r)}else!function(n,t,r,i){var e=n.length,u=function(n){var t=0,r=n.length-1|0;if(t&lt;=r)do{var i=t;t=t+1|0,n[i]=null}while(i!==r);return n}(Array(e)),o=Ur(n,u,0,r,i);if(o!==n){var f=0;if(f&lt;=r)do{var s=f;f=f+1|0,n[s]=o[s]}while(s!==r)}}(n,0,Rn(n),t);var i}(r,t);var i=0,e=r.length;if(i&lt;e)do{var u=i;i=i+1|0,n.f4(u,r[u])}while(i&lt;e)}(n,t),r.f()},ve(ct).u=function(n){var t;n:if(Ke(this,Di)&amp;&amp;this.i())t=!1;else{for(var r=this.f();r.g();)if(le(r.h(),n)){t=!0;break n}t=!1}return t},ve(ct).v=function(n){var t;n:if(Ke(n,Di)&amp;&amp;n.i())t=!0;else{for(var r=n.f();r.g();){var i=r.h();if(!this.u(i)){t=!1;break n}}t=!0}return t},ve(ct).i=function(){return 0===this.k()},ve(ct).toString=function(){return $n(this,", ","[","]",A,A,(n=this,function(t){return t===n?"(this Collection)":Vi(t)}));var n},ve(ct).toArray=function(){return kr(this)},ve(at).g=function(){return this.w_1&lt;this.x_1.k()},ve(at).h=function(){if(!this.g())throw Cu();var n=this.w_1;return this.w_1=n+1|0,this.x_1.j(n)},ve(ht).c1=function(){return this.w_1>0},ve(ht).d1=function(){if(!this.c1())throw Cu();return this.w_1=this.w_1-1|0,this.a1_1.j(this.w_1)},ve(lt).e1=function(n,t){if(n&lt;0||n>=t)throw du("index: "+n+", size: "+t)},ve(lt).b1=function(n,t){if(n&lt;0||n>t)throw du("index: "+n+", size: "+t)},ve(lt).f1=function(n){for(var t=1,r=n.f();r.g();){var i=r.h(),e=Mn(31,t),u=null==i?null:ae(i);t=e+(null==u?0:u)|0}return t},ve(lt).g1=function(n,t){if(n.k()!==t.k())return!1;for(var r=t.f(),i=n.f();i.g();)if(!le(i.h(),r.h()))return!1;return!0},ve(vt).f=function(){return new at(this)},ve(vt).l=function(n){return new ht(this,n)},ve(vt).equals=function(n){return n===this||!(null==n||!Ke(n,Fi))&amp;&amp;_t().g1(this,n)},ve(vt).hashCode=function(){return _t().f1(this)},ve(dt).g=function(){return this.h1_1.g()},ve(dt).h=function(){return this.h1_1.h().i1()},ve(bt).k1=function(n){var t=n.j1(),r=null==t?null:ae(t),i=null==r?0:r,e=n.i1(),u=null==e?null:ae(e);return i^(null==u?0:u)},ve(bt).l1=function(n){return Vi(n.j1())+"="+Vi(n.i1())},ve(bt).m1=function(n,t){return!(null==t||!Ke(t,Oi))&amp;&amp;!!le(n.j1(),t.j1())&amp;&amp;le(n.i1(),t.i1())},ve(mt).r1=function(n){return this.q1_1.s1(n)},ve(mt).u=function(n){return!(null!=n&amp;&amp;!Je(n))&amp;&amp;this.r1(null==n||Je(n)?n:pe())},ve(mt).f=function(){return new dt(this.q1_1.o().f())},ve(mt).k=function(){return this.q1_1.k()},ve(kt).t1=function(n){return!(null==wt(this,n))},ve(kt).s1=function(n){var t;n:{var r=this.o();if(Ke(r,Di)&amp;&amp;r.i())t=!1;else{for(var i=r.f();i.g();)if(le(i.h().i1(),n)){t=!0;break n}t=!1}}return t},ve(kt).u1=function(n){if(null==n||!Ke(n,Oi))return!1;var t=n.j1(),r=n.i1(),i=(Ke(this,Ri)?this:pe()).v1(t);return!(!le(r,i)||null==i&amp;&amp;!(Ke(this,Ri)?this:pe()).t1(t))},ve(kt).equals=function(n){if(n===this)return!0;if(null==n||!Ke(n,Ri))return!1;if(this.k()!==n.k())return!1;var t;n:{var r=n.o();if(Ke(r,Di)&amp;&amp;r.i())t=!0;else{for(var i=r.f();i.g();){var e=i.h();if(!this.u1(e)){t=!1;break n}}t=!0}}return t},ve(kt).v1=function(n){var t=wt(this,n);return null==t?null:t.i1()},ve(kt).hashCode=function(){return ae(this.o())},ve(kt).i=function(){return 0===this.k()},ve(kt).k=function(){return this.o().k()},ve(kt).toString=function(){var n;return $n(this.o(),", ","{","}",A,A,(n=this,function(t){return n.p1(t)}))},ve(kt).p1=function(n){return gt(this,n.j1())+"="+gt(this,n.i1())},ve(kt).w1=function(){return null==this.o1_1&amp;&amp;(this.o1_1=new mt(this)),we(this.o1_1)},ve(qt).x1=function(n){for(var t=0,r=n.f();r.g();){var i=r.h(),e=t,u=null==i?null:ae(i);t=e+(null==u?0:u)|0}return t},ve(qt).y1=function(n,t){return n.k()===t.k()&amp;&amp;n.v(t)},ve(Pt).equals=function(n){return!(null==n||!Ke(n,Fi))&amp;&amp;n.i()},ve(Pt).hashCode=function(){return 1},ve(Pt).toString=function(){return"[]"},ve(Pt).k=function(){return 0},ve(Pt).i=function(){return!0},ve(Pt).a2=function(n){return n.i()},ve(Pt).v=function(n){return this.a2(n)},ve(Pt).j=function(n){throw du("Empty list doesn't contain element at index "+n+".")},ve(Pt).f=function(){return zt()},ve(Pt).l=function(n){if(0!==n)throw du("Index: "+n);return zt()},ve(It).k=function(){return this.b2_1.length},ve(It).i=function(){return 0===this.b2_1.length},ve(It).d2=function(n){return function(n,t){return Hn(n,t)>=0}(this.b2_1,n)},ve(It).e2=function(n){var t;n:if(Ke(n,Di)&amp;&amp;n.i())t=!0;else{for(var r=n.f();r.g();){var i=r.h();if(!this.d2(i)){t=!1;break n}}t=!0}return t},ve(It).v=function(n){return this.e2(n)},ve(It).f=function(){return Qi(this.b2_1)},ve(St).g=function(){return!1},ve(St).c1=function(){return!1},ve(St).h=function(){throw Cu()},ve(St).d1=function(){throw Cu()},ve(Lt).h=function(){return this.f2()},ve(Nt).g=function(){return this.g2_1.c1()},ve(Nt).c1=function(){return this.g2_1.g()},ve(Nt).h=function(){return this.g2_1.d1()},ve(Nt).d1=function(){return this.g2_1.h()},ve(At).k=function(){return this.i2_1.k()},ve(At).j=function(n){return this.i2_1.j(function(n,t){if(!(0&lt;=t&amp;&amp;t&lt;=jt(n)))throw du("Element index "+t+" must be in range ["+Ve(0,jt(n))+"].");return jt(n)-t|0}(this,n))},ve(At).f=function(){return this.l(0)},ve(At).l=function(n){return new Nt(this,n)},ve(Mt).h=function(){return this.k2_1.m2_1(this.j2_1.h())},ve(Mt).g=function(){return this.j2_1.g()},ve(Ft).f=function(){return new Mt(this)},ve(Ot).h=function(){if(-1===this.o2_1&amp;&amp;Dt(this),0===this.o2_1)throw Cu();var n=this.p2_1;return this.p2_1=null,this.o2_1=-1,null==n||Je(n)?n:pe()},ve(Ot).g=function(){return-1===this.o2_1&amp;&amp;Dt(this),1===this.o2_1},ve(Rt).f=function(){return new Ot(this)},ve($t).equals=function(n){return!(null==n||!Ke(n,$i))&amp;&amp;n.i()},ve($t).hashCode=function(){return 0},ve($t).toString=function(){return"[]"},ve($t).k=function(){return 0},ve($t).i=function(){return!0},ve($t).a2=function(n){return n.i()},ve($t).v=function(n){return this.a2(n)},ve($t).f=function(){return zt()},ve(Zt).y2=function(){return this.z2_1},ve(Zt).c3=function(){return this.a3_1},ve(Zt).i=function(){return this.z2_1>this.a3_1},ve(Zt).equals=function(n){return n instanceof Zt&amp;&amp;(!(!this.i()||!n.i())||this.z2_1===n.z2_1&amp;&amp;this.a3_1===n.a3_1)},ve(Zt).hashCode=function(){return this.i()?-1:Mn(31,this.z2_1)+this.a3_1|0},ve(Zt).toString=function(){return this.z2_1+".."+this.a3_1},ve(Yt).g=function(){return this.f3_1},ve(Yt).f2=function(){var n=this.g3_1;if(n===this.e3_1){if(!this.f3_1)throw Cu();this.f3_1=!1}else this.g3_1=this.g3_1+this.d3_1|0;return n},ve(Wt).q=function(n,t,r){return new Xt(n,t,r)},ve(Xt).f=function(){return new Yt(this.z2_1,this.a3_1,this.b3_1)},ve(Xt).i=function(){return this.b3_1>0?this.z2_1>this.a3_1:this.z2_1&lt;this.a3_1},ve(Xt).equals=function(n){return n instanceof Xt&amp;&amp;(!(!this.i()||!n.i())||this.z2_1===n.z2_1&amp;&amp;this.a3_1===n.a3_1&amp;&amp;this.b3_1===n.b3_1)},ve(Xt).hashCode=function(){return this.i()?-1:Mn(31,Mn(31,this.z2_1)+this.a3_1|0)+this.b3_1|0},ve(Xt).toString=function(){return this.b3_1>0?this.z2_1+".."+this.a3_1+" step "+this.b3_1:this.z2_1+" downTo "+this.a3_1+" step "+(0|-this.b3_1)},ve(ar).h=function(){if(-1===this.j3_1&amp;&amp;cr(this),0===this.j3_1)throw Cu();var n=this.m3_1,t=n instanceof Zt?n:pe();return this.m3_1=null,this.j3_1=-1,t},ve(ar).g=function(){return-1===this.j3_1&amp;&amp;cr(this),1===this.j3_1},ve(hr).f=function(){return new ar(this)},ve(lr).toString=function(){return"("+this.t3_1+", "+this.u3_1+")"},ve(lr).v3=function(){return this.t3_1},ve(lr).w3=function(){return this.u3_1},ve(lr).hashCode=function(){var n=null==this.t3_1?0:ae(this.t3_1);return Mn(n,31)+(null==this.u3_1?0:ae(this.u3_1))|0},ve(lr).equals=function(n){if(this===n)return!0;if(!(n instanceof lr))return!1;var t=n instanceof lr?n:pe();return!!le(this.t3_1,t.t3_1)&amp;&amp;!!le(this.u3_1,t.u3_1)},ve(wr).toString=function(){return"kotlin.Unit"},ve(pr).b4=function(){return this.MIN_VALUE},ve(pr).c4=function(){return this.MAX_VALUE},ve(pr).d4=function(){return this.SIZE_BYTES},ve(pr).e4=function(){return this.SIZE_BITS},ve(xr).m=function(n){this.g4();for(var t=!1,r=n.f();r.g();){var i=r.h();this.d(i)&amp;&amp;(t=!0)}return t},ve(xr).toJSON=function(){return this.toArray()},ve(xr).g4=function(){},ve(jr).g=function(){return this.h4_1&lt;this.j4_1.k()},ve(jr).h=function(){if(!this.g())throw Cu();var n=this.h4_1;return this.h4_1=n+1|0,this.i4_1=n,this.j4_1.j(this.i4_1)},ve(Pr).c1=function(){return this.h4_1>0},ve(Pr).d1=function(){if(!this.c1())throw Cu();return this.h4_1=this.h4_1-1|0,this.i4_1=this.h4_1,this.n4_1.j(this.i4_1)},ve(Ir).d=function(n){return this.g4(),this.p4(this.k(),n),!0},ve(Ir).f=function(){return new jr(this)},ve(Ir).u=function(n){return this.q4(n)>=0},ve(Ir).q4=function(n){var t=0,r=jt(this);if(t&lt;=r)do{var i=t;if(t=t+1|0,le(this.j(i),n))return i}while(i!==r);return-1},ve(Ir).l=function(n){return new Pr(this,n)},ve(Ir).equals=function(n){return n===this||!(null==n||!Ke(n,Fi))&amp;&amp;_t().g1(this,n)},ve(Ir).hashCode=function(){return _t().f1(this)},ve(Sr).g=function(){return this.r4_1.g()},ve(Sr).h=function(){return this.r4_1.h().j1()},ve(zr).g=function(){return this.s4_1.g()},ve(zr).h=function(){return this.s4_1.h().i1()},ve(Tr).j1=function(){return this.t4_1},ve(Tr).i1=function(){return this.u4_1},ve(Tr).v4=function(n){var t=this.u4_1;return this.u4_1=n,t},ve(Tr).hashCode=function(){return pt().k1(this)},ve(Tr).toString=function(){return pt().l1(this)},ve(Tr).equals=function(n){return pt().m1(this,n)},ve(Er).u=function(n){return this.w4(n)},ve(Lr).y4=function(n){throw zu("Add is not supported on keys")},ve(Lr).d=function(n){return this.y4(null==n||Je(n)?n:pe())},ve(Lr).z4=function(n){return this.x4_1.t1(n)},ve(Lr).u=function(n){return!(null!=n&amp;&amp;!Je(n))&amp;&amp;this.z4(null==n||Je(n)?n:pe())},ve(Lr).f=function(){return new Sr(this.x4_1.o().f())},ve(Lr).k=function(){return this.x4_1.k()},ve(Lr).g4=function(){return this.x4_1.g4()},ve(Nr).f5=function(n){throw zu("Add is not supported on values")},ve(Nr).d=function(n){return this.f5(null==n||Je(n)?n:pe())},ve(Nr).r1=function(n){return this.e5_1.s1(n)},ve(Nr).u=function(n){return!(null!=n&amp;&amp;!Je(n))&amp;&amp;this.r1(null==n||Je(n)?n:pe())},ve(Nr).f=function(){return new zr(this.e5_1.o().f())},ve(Nr).k=function(){return this.e5_1.k()},ve(Nr).g4=function(){return this.e5_1.g4()},ve(Ar).g5=function(){return null==this.c5_1&amp;&amp;(this.c5_1=new Lr(this)),we(this.c5_1)},ve(Ar).w1=function(){return null==this.d5_1&amp;&amp;(this.d5_1=new Nr(this)),we(this.d5_1)},ve(Ar).g4=function(){},ve(Mr).equals=function(n){return n===this||!(null==n||!Ke(n,$i))&amp;&amp;yt().y1(this,n)},ve(Mr).hashCode=function(){return yt().x1(this)},ve(Gr).j5=function(){return this.g4(),this.c_1=!0,this.k()>0?this:Dr().i5_1},ve(Gr).k=function(){return this.b_1.length},ve(Gr).j=function(n){var t=this.b_1[$r(this,n)];return null==t||Je(t)?t:pe()},ve(Gr).f4=function(n,t){this.g4(),$r(this,n);var r=this.b_1[n];this.b_1[n]=t;var i=r;return null==i||Je(i)?i:pe()},ve(Gr).d=function(n){return this.g4(),this.b_1.push(n),this.o4_1=this.o4_1+1|0,!0},ve(Gr).p4=function(n,t){this.g4(),this.b_1.splice(function(n,t){return _t().b1(t,n.k()),t}(this,n),0,t),this.o4_1=this.o4_1+1|0},ve(Gr).m=function(n){if(this.g4(),n.i())return!1;for(var t,r,i,e=(t=this,r=n.k(),i=t.k(),t.b_1.length=t.k()+r|0,i),u=0,o=n.f();o.g();){var f=o.h(),s=u;u=s+1|0;var c=yr(s);this.b_1[e+c|0]=f}return this.o4_1=this.o4_1+1|0,!0},ve(Gr).q4=function(n){return Hn(this.b_1,n)},ve(Gr).toString=function(){return On(this.b_1,", ","[","]",A,A,ee)},ve(Gr).k5=function(){return[].slice.call(this.b_1)},ve(Gr).toArray=function(){return this.k5()},ve(Gr).g4=function(){if(this.c_1)throw Su()},ve(Qr).l5=function(n,t){return le(n,t)},ve(Qr).m5=function(n){var t=null==n?null:ae(n);return null==t?0:t},ve(Zr).o5=function(n){throw zu("Add is not supported on entries")},ve(Zr).d=function(n){return this.o5(null!=n&amp;&amp;Ke(n,Hi)?n:pe())},ve(Zr).w4=function(n){return this.n5_1.u1(n)},ve(Zr).f=function(){return this.n5_1.t5_1.f()},ve(Zr).k=function(){return this.n5_1.k()},ve(Xr).t1=function(n){return this.t5_1.z4(n)},ve(Xr).s1=function(n){var t;n:{var r=this.t5_1;if(Ke(r,Di)&amp;&amp;r.i())t=!1;else{for(var i=r.f();i.g();){var e=i.h();if(this.u5_1.l5(e.i1(),n)){t=!0;break n}}t=!1}}return t},ve(Xr).o=function(){return null==this.v5_1&amp;&amp;(this.v5_1=this.x5()),we(this.v5_1)},ve(Xr).x5=function(){return new Zr(this)},ve(Xr).v1=function(n){return this.t5_1.v1(n)},ve(Xr).h5=function(n,t){return this.t5_1.h5(n,t)},ve(Xr).k=function(){return this.t5_1.k()},ve(ni).d=function(n){return null==this.y5_1.h5(n,this)},ve(ni).u=function(n){return this.y5_1.t1(n)},ve(ni).i=function(){return this.y5_1.i()},ve(ni).f=function(){return this.y5_1.g5().f()},ve(ni).k=function(){return this.y5_1.k()},ve(ei).g=function(){return-1===this.z5_1&amp;&amp;(this.z5_1=function(n){if(null!=n.c6_1&amp;&amp;n.d6_1){var t=n.c6_1.length;if(n.e6_1=n.e6_1+1|0,n.e6_1&lt;t)return 0}if(n.b6_1=n.b6_1+1|0,n.b6_1&lt;n.a6_1.length){n.c6_1=n.g6_1.i6_1[n.a6_1[n.b6_1]];var r=n,i=n.c6_1;return r.d6_1=null!=i&amp;&amp;Xe(i),n.e6_1=0,0}return n.c6_1=null,1}(this)),0===this.z5_1},ve(ei).h=function(){if(!this.g())throw Cu();var n=this.d6_1?this.c6_1[this.e6_1]:this.c6_1;return this.f6_1=n,this.z5_1=-1,n},ve(ui).w5=function(){return this.h6_1},ve(ui).k=function(){return this.j6_1},ve(ui).h5=function(n,t){var r=this.h6_1.m5(n),i=ii(this,r);if(null==i)this.i6_1[r]=new Tr(n,t);else{if(null==i||!Xe(i)){var e,u=i;return this.h6_1.l5(u.j1(),n)?u.v4(t):(e=[u,new Tr(n,t)],this.i6_1[r]=e,this.j6_1=this.j6_1+1|0,null)}var o=i,f=ri(o,this,n);if(null!=f)return f.v4(t);o.push(new Tr(n,t))}return this.j6_1=this.j6_1+1|0,null},ve(ui).z4=function(n){return!(null==ti(this,n))},ve(ui).v1=function(n){var t=ti(this,n);return null==t?null:t.i1()},ve(ui).f=function(){return new ei(this)},ve(fi).g=function(){return!(null===this.m6_1)},ve(fi).h=function(){if(!this.g())throw Cu();var n=we(this.m6_1);this.l6_1=n;var t,r=n.b7_1;return t=r!==this.n6_1.y6_1.v6_1?r:null,this.m6_1=t,n},ve(ai).v4=function(n){return this.d7_1.g4(),ve(Tr).v4.call(this,n)},ve(hi).o5=function(n){throw zu("Add is not supported on entries")},ve(hi).d=function(n){return this.o5(null!=n&amp;&amp;Ke(n,Hi)?n:pe())},ve(hi).w4=function(n){return this.y6_1.u1(n)},ve(hi).f=function(){return new fi(this)},ve(hi).k=function(){return this.y6_1.k()},ve(hi).g4=function(){return this.y6_1.g4()},ve(vi).j5=function(){var n;if(this.g4(),this.x6_1=!0,this.k()>0)n=this;else{var t=ci().e7_1;n=Ke(t,Ri)?t:pe()}return n},ve(vi).t1=function(n){return this.w6_1.t1(n)},ve(vi).s1=function(n){var t=this.v6_1;if(null==t)return!1;var r=t;do{if(le(r.i1(),n))return!0;r=we(r.b7_1)}while(r!==this.v6_1);return!1},ve(vi).x5=function(){return new hi(this)},ve(vi).v1=function(n){var t=this.w6_1.v1(n);return null==t?null:t.i1()},ve(vi).h5=function(n,t){this.g4();var r=this.w6_1.v1(n);if(null==r){var i=new ai(this,n,t);return this.w6_1.h5(n,i),function(n,t){if(null!=n.b7_1||null!=n.c7_1)throw wu(ce("Check failed."));var r=t.v6_1;if(null==r)t.v6_1=n,n.b7_1=n,n.c7_1=n;else{var i=r.c7_1;if(null==i)throw wu(ce("Required value was null."));var e=i;n.c7_1=e,n.b7_1=r,r.c7_1=n,e.b7_1=n}}(i,this),null}return r.v4(t)},ve(vi).k=function(){return this.w6_1.k()},ve(vi).g4=function(){if(this.x6_1)throw Su()},ve(wi).g4=function(){return this.y5_1.g4()},ve(pi).h7=function(){this.i7("\n")},ve(pi).j7=function(n){this.i7(n),this.h7()},ve(mi).i7=function(n){var t=String(n);this.k7_1.write(t)},ve(ki).i7=function(n){var t=String(n),r=t.lastIndexOf("\n",0);if(r>=0){var i=this.m7_1;this.m7_1=i+t.substring(0,r),this.n7();var e=r+1|0;t=t.substring(e)}this.m7_1=this.m7_1+t},ve(ki).n7=function(){console.log(this.m7_1),this.m7_1=""},ve(qi).i7=function(n){var t=this.m7_1;this.m7_1=t+String(n)},ve(Ci).x3=function(){return this.o7_1.length},ve(Ci).y3=function(n){var t=this.o7_1;if(!(n>=0&amp;&amp;n&lt;=tr(t)))throw du("index: "+n+", length: "+this.x3()+"}");return ne(t,n)},ve(Ci).z3=function(n,t){return this.o7_1.substring(n,t)},ve(Ci).i3=function(n){return this.o7_1=this.o7_1+new Mi(n),this},ve(Ci).e=function(n){return this.o7_1=this.o7_1+Vi(n),this},ve(Ci).p7=function(n){var t=this.o7_1;return this.o7_1=t+(null==n?"null":n),this},ve(Ci).toString=function(){return this.o7_1},ve(Pi).t7=function(n){var t=this.q7_1;return n.replace(t,"\\$&amp;")},ve(Pi).u7=function(n){var t=this.s7_1;return n.replace(t,"$$$$")},ve(Si).a8=function(n){this.x7_1.lastIndex=0;var t=this.x7_1.exec(ce(n));return null!=t&amp;&amp;0===t.index&amp;&amp;this.x7_1.lastIndex===re(n)},ve(Si).toString=function(){return this.x7_1.toString()},ve(Mi).o8=function(n){return Ei(this.h3_1,n)},ve(Mi).a4=function(n){return function(n,t){return Ei(n.h3_1,t instanceof Mi?t.h3_1:pe())}(this,n)},ve(Mi).equals=function(n){return function(n,t){return t instanceof Mi&amp;&amp;n===t.h3_1}(this.h3_1,n)},ve(Mi).hashCode=function(){return this.h3_1},ve(Mi).toString=function(){return Li(this.h3_1)},ve(Ui).r8=function(n){return ue(this.q8_1,n.q8_1)},ve(Ui).a4=function(n){return this.r8(n instanceof Ui?n:pe())},ve(Ui).equals=function(n){return this===n},ve(Ui).hashCode=function(){return se(this)},ve(Ui).toString=function(){return this.p8_1},ve(Zi).g=function(){return!(this.s8_1===this.t8_1.length)},ve(Zi).h=function(){if(this.s8_1===this.t8_1.length)throw xu(""+this.s8_1);var n=this.s8_1;return this.s8_1=n+1|0,this.t8_1[n]},ve(ke).b9=function(n){return je(this,n)},ve(ke).a4=function(n){return this.b9(n instanceof ke?n:pe())},ve(ke).c9=function(n){return Pe(this,n)},ve(ke).d9=function(n){return function(n,t){if($e(),Ae(t))throw mu("division by zero");if(Ae(n))return qe();if(Te(n,Ce())){if(Te(t,ye())||Te(t,Be()))return Ce();if(Te(t,Ce()))return ye();var r=function(n){$e();return new ke(n.u8_1>>>1|n.v8_1&lt;&lt;31,n.v8_1>>1)}(n),i=function(n){$e();return new ke(n.u8_1&lt;&lt;1,n.v8_1&lt;&lt;1|n.u8_1>>>31)}(r.d9(t));return Te(i,qe())?Ne(t)?ye():Be():Pe(i,Ie(n,Se(t,i)).d9(t))}if(Te(t,Ce()))return qe();if(Ne(n))return Ne(t)?Fe(n).d9(Fe(t)):Fe(Fe(n).d9(t));if(Ne(t))return Fe(n.d9(Fe(t)));for(var e=qe(),u=n;He(u,t);){for(var o=ze(u)/ze(t),f=Math.max(1,Math.floor(o)),s=Math.ceil(Math.log(f)/Math.LN2),c=s&lt;=48?1:Math.pow(2,s-48),a=Oe(f),h=Se(a,t);Ne(h)||Re(h,u);)h=Se(a=Oe(f-=c),t);Ae(a)&amp;&amp;(a=ye()),e=Pe(e,a),u=Ie(u,h)}return e}(this,n)},ve(ke).e9=function(){return this.f9().c9(new ke(1,0))},ve(ke).f9=function(){return new ke(~this.u8_1,~this.v8_1)},ve(ke).g9=function(){return this.u8_1},ve(ke).w8=function(){return ze(this)},ve(ke).valueOf=function(){return this.w8()},ve(ke).equals=function(n){return n instanceof ke&amp;&amp;Te(this,n)},ve(ke).hashCode=function(){return $e(),this.u8_1^this.v8_1},ve(ke).toString=function(){return Ee(this,10)},ve(Hu).toString=function(){return"Model(text="+this.o9_1+", tooltip="+this.p9_1+")"},ve(Hu).hashCode=function(){var n=he(this.o9_1);return Mn(n,31)+he(this.p9_1)|0},ve(Hu).equals=function(n){if(this===n)return!0;if(!(n instanceof Hu))return!1;var t=n instanceof Hu?n:pe();return this.o9_1===t.o9_1&amp;&amp;this.p9_1===t.p9_1},ve($u).v9=function(n,t){return this.w9(new Hu(n,t))},ve($u).w9=function(n){var t,r;return Uf().y9(us((t=n,r=this,function(n){return n.s9(t.p9_1),n.t9("copy-button"),n.u9(function(n,t){return function(r){return n.q9_1(t.o9_1)}}(r,t)),br()})),[])},ve($u).z9=function(n){return this.w9(n instanceof Hu?n:pe())},ve($u).aa=function(n,t){return t},ve($u).ba=function(n,t){var r=null==n||Je(n)?n:pe();return this.aa(r,t instanceof Hu?t:pe())},ve(Uu).ka=function(n){return function(n,t){for(var r=Gf(),i=t.ca_1,e=Rr(Tt(i,10)),u=i.f();u.g();){var o,f,s=u.h();s instanceof Cf?f=Gf().ga(s.fa_1):s instanceof xf?f=Gu(n,s.da_1,s.ea_1):be(),o=f,e.d(o)}return r.ha(e)}(this,n)},ve(Uu).z9=function(n){return this.ka(n instanceof zf?n:pe())},ve(Uu).la=function(n,t){return t},ve(Uu).ba=function(n,t){var r=null==n||Je(n)?n:pe();return this.la(r,t instanceof zf?t:pe())},ve(Vu).pa=function(n,t,r){return new Vu(n,t,r)},ve(Vu).qa=function(n,t,r,i){return n=n===A?this.ma_1:n,t=t===A?this.na_1:t,r=r===A?this.oa_1:r,i===A?this.pa(n,t,r):i.pa.call(this,n,t,r)},ve(Vu).toString=function(){return"Exception(summary="+this.ma_1+", fullText="+this.na_1+", parts="+this.oa_1+")"},ve(Vu).hashCode=function(){var n=null==this.ma_1?0:this.ma_1.hashCode();return n=Mn(n,31)+he(this.na_1)|0,Mn(n,31)+ae(this.oa_1)|0},ve(Vu).equals=function(n){if(this===n)return!0;if(!(n instanceof Vu))return!1;var t=n instanceof Vu?n:pe();return!!le(this.ma_1,t.ma_1)&amp;&amp;this.na_1===t.na_1&amp;&amp;!!le(this.oa_1,t.oa_1)},ve(Qu).ta=function(n,t){return new Qu(n,t)},ve(Qu).ua=function(n,t,r){return n=n===A?this.ra_1:n,t=t===A?this.sa_1:t,r===A?this.ta(n,t):r.ta.call(this,n,t)},ve(Qu).toString=function(){return"StackTracePart(lines="+this.ra_1+", state="+this.sa_1+")"},ve(Qu).hashCode=function(){var n=ae(this.ra_1);return Mn(n,31)+(null==this.sa_1?0:this.sa_1.hashCode())|0},ve(Qu).equals=function(n){if(this===n)return!0;if(!(n instanceof Qu))return!1;var t=n instanceof Qu?n:pe();return!!le(this.ra_1,t.ra_1)&amp;&amp;!!le(this.sa_1,t.sa_1)},ve(Zu).toString=function(){return"Error(label="+this.va_1+", docLink="+this.wa_1+")"},ve(Zu).hashCode=function(){var n=ae(this.va_1);return Mn(n,31)+(null==this.wa_1?0:ae(this.wa_1))|0},ve(Zu).equals=function(n){if(this===n)return!0;if(!(n instanceof Zu))return!1;var t=n instanceof Zu?n:pe();return!!le(this.va_1,t.va_1)&amp;&amp;!!le(this.wa_1,t.wa_1)},ve(Yu).toString=function(){return"Warning(label="+this.xa_1+", docLink="+this.ya_1+")"},ve(Yu).hashCode=function(){var n=ae(this.xa_1);return Mn(n,31)+(null==this.ya_1?0:ae(this.ya_1))|0},ve(Yu).equals=function(n){if(this===n)return!0;if(!(n instanceof Yu))return!1;var t=n instanceof Yu?n:pe();return!!le(this.xa_1,t.xa_1)&amp;&amp;!!le(this.ya_1,t.ya_1)},ve(Wu).toString=function(){return"Message(prettyText="+this.za_1+")"},ve(Wu).hashCode=function(){return this.za_1.hashCode()},ve(Wu).equals=function(n){if(this===n)return!0;if(!(n instanceof Wu))return!1;var t=n instanceof Wu?n:pe();return!!this.za_1.equals(t.za_1)},ve(Ku).toString=function(){return"ListElement(prettyText="+this.ab_1+")"},ve(Ku).hashCode=function(){return this.ab_1.hashCode()},ve(Ku).equals=function(n){if(this===n)return!0;if(!(n instanceof Ku))return!1;var t=n instanceof Ku?n:pe();return!!this.ab_1.equals(t.ab_1)},ve(Xu).toString=function(){return"TreeNode(prettyText="+this.bb_1+")"},ve(Xu).hashCode=function(){return this.bb_1.hashCode()},ve(Xu).equals=function(n){if(this===n)return!0;if(!(n instanceof Xu))return!1;var t=n instanceof Xu?n:pe();return!!this.bb_1.equals(t.bb_1)},ve(Ju).toString=function(){return"Link(href="+this.cb_1+", label="+this.db_1+")"},ve(Ju).hashCode=function(){var n=he(this.cb_1);return Mn(n,31)+he(this.db_1)|0},ve(Ju).equals=function(n){if(this===n)return!0;if(!(n instanceof Ju))return!1;var t=n instanceof Ju?n:pe();return this.cb_1===t.cb_1&amp;&amp;this.db_1===t.db_1},ve(no).toString=function(){return"Label(text="+this.eb_1+")"},ve(no).hashCode=function(){return he(this.eb_1)},ve(no).equals=function(n){if(this===n)return!0;if(!(n instanceof no))return!1;var t=n instanceof no?n:pe();return this.eb_1===t.eb_1},ve(co).toString=function(){return"Info(label="+this.hb_1+", docLink="+this.ib_1+")"},ve(co).hashCode=function(){var n=ae(this.hb_1);return Mn(n,31)+(null==this.ib_1?0:ae(this.ib_1))|0},ve(co).equals=function(n){if(this===n)return!0;if(!(n instanceof co))return!1;var t=n instanceof co?n:pe();return!!le(this.hb_1,t.hb_1)&amp;&amp;!!le(this.ib_1,t.ib_1)},ve(ao).toString=function(){return"Project(path="+this.jb_1+")"},ve(ao).hashCode=function(){return he(this.jb_1)},ve(ao).equals=function(n){if(this===n)return!0;if(!(n instanceof ao))return!1;var t=n instanceof ao?n:pe();return this.jb_1===t.jb_1},ve(ho).toString=function(){return"Task(path="+this.kb_1+", type="+this.lb_1+")"},ve(ho).hashCode=function(){var n=he(this.kb_1);return Mn(n,31)+he(this.lb_1)|0},ve(ho).equals=function(n){if(this===n)return!0;if(!(n instanceof ho))return!1;var t=n instanceof ho?n:pe();return this.kb_1===t.kb_1&amp;&amp;this.lb_1===t.lb_1},ve(lo).toString=function(){return"TaskPath(path="+this.mb_1+")"},ve(lo).hashCode=function(){return he(this.mb_1)},ve(lo).equals=function(n){if(this===n)return!0;if(!(n instanceof lo))return!1;var t=n instanceof lo?n:pe();return this.mb_1===t.mb_1},ve(_o).toString=function(){return"Bean(type="+this.nb_1+")"},ve(_o).hashCode=function(){return he(this.nb_1)},ve(_o).equals=function(n){if(this===n)return!0;if(!(n instanceof _o))return!1;var t=n instanceof _o?n:pe();return this.nb_1===t.nb_1},ve(vo).toString=function(){return"SystemProperty(name="+this.ob_1+")"},ve(vo).hashCode=function(){return he(this.ob_1)},ve(vo).equals=function(n){if(this===n)return!0;if(!(n instanceof vo))return!1;var t=n instanceof vo?n:pe();return this.ob_1===t.ob_1},ve(go).toString=function(){return"Property(kind="+this.pb_1+", name="+this.qb_1+", owner="+this.rb_1+")"},ve(go).hashCode=function(){var n=he(this.pb_1);return n=Mn(n,31)+he(this.qb_1)|0,Mn(n,31)+he(this.rb_1)|0},ve(go).equals=function(n){if(this===n)return!0;if(!(n instanceof go))return!1;var t=n instanceof go?n:pe();return this.pb_1===t.pb_1&amp;&amp;this.qb_1===t.qb_1&amp;&amp;this.rb_1===t.rb_1},ve(wo).toString=function(){return"BuildLogic(location="+this.sb_1+")"},ve(wo).hashCode=function(){return he(this.sb_1)},ve(wo).equals=function(n){if(this===n)return!0;if(!(n instanceof wo))return!1;var t=n instanceof wo?n:pe();return this.sb_1===t.sb_1},ve(bo).toString=function(){return"BuildLogicClass(type="+this.tb_1+")"},ve(bo).hashCode=function(){return he(this.tb_1)},ve(bo).equals=function(n){if(this===n)return!0;if(!(n instanceof bo))return!1;var t=n instanceof bo?n:pe();return this.tb_1===t.tb_1},ve(ko).zb=function(){return this.yb_1},ve(ko).toString=function(){return"TaskTreeIntent(delegate="+this.yb_1+")"},ve(ko).hashCode=function(){return ae(this.yb_1)},ve(ko).equals=function(n){if(this===n)return!0;if(!(n instanceof ko))return!1;var t=n instanceof ko?n:pe();return!!le(this.yb_1,t.yb_1)},ve(qo).zb=function(){return this.ac_1},ve(qo).toString=function(){return"MessageTreeIntent(delegate="+this.ac_1+")"},ve(qo).hashCode=function(){return ae(this.ac_1)},ve(qo).equals=function(n){if(this===n)return!0;if(!(n instanceof qo))return!1;var t=n instanceof qo?n:pe();return!!le(this.ac_1,t.ac_1)},ve(yo).zb=function(){return this.bc_1},ve(yo).toString=function(){return"InputTreeIntent(delegate="+this.bc_1+")"},ve(yo).hashCode=function(){return ae(this.bc_1)},ve(yo).equals=function(n){if(this===n)return!0;if(!(n instanceof yo))return!1;var t=n instanceof yo?n:pe();return!!le(this.bc_1,t.bc_1)},ve(Bo).zb=function(){return this.cc_1},ve(Bo).toString=function(){return"IncompatibleTaskTreeIntent(delegate="+this.cc_1+")"},ve(Bo).hashCode=function(){return ae(this.cc_1)},ve(Bo).equals=function(n){if(this===n)return!0;if(!(n instanceof Bo))return!1;var t=n instanceof Bo?n:pe();return!!le(this.cc_1,t.cc_1)},ve(Co).toString=function(){return"SetTab(tab="+this.dc_1+")"},ve(Co).hashCode=function(){return this.dc_1.hashCode()},ve(Co).equals=function(n){if(this===n)return!0;if(!(n instanceof Co))return!1;var t=n instanceof Co?n:pe();return!!this.dc_1.equals(t.dc_1)},ve(xo).mc=function(n,t,r,i,e,u,o,f){return new xo(n,t,r,i,e,u,o,f)},ve(xo).nc=function(n,t,r,i,e,u,o,f,s){return n=n===A?this.ec_1:n,t=t===A?this.fc_1:t,r=r===A?this.gc_1:r,i=i===A?this.hc_1:i,e=e===A?this.ic_1:e,u=u===A?this.jc_1:u,o=o===A?this.kc_1:o,f=f===A?this.lc_1:f,s===A?this.mc(n,t,r,i,e,u,o,f):s.mc.call(this,n,t,r,i,e,u,o,f)},ve(xo).toString=function(){return"Model(heading="+this.ec_1+", summary="+this.fc_1+", learnMore="+this.gc_1+", messageTree="+this.hc_1+", locationTree="+this.ic_1+", inputTree="+this.jc_1+", incompatibleTaskTree="+this.kc_1+", tab="+this.lc_1+")"},ve(xo).hashCode=function(){var n=this.ec_1.hashCode();return n=Mn(n,31)+ae(this.fc_1)|0,n=Mn(n,31)+this.gc_1.hashCode()|0,n=Mn(n,31)+this.hc_1.hashCode()|0,n=Mn(n,31)+this.ic_1.hashCode()|0,n=Mn(n,31)+this.jc_1.hashCode()|0,n=Mn(n,31)+this.kc_1.hashCode()|0,Mn(n,31)+this.lc_1.hashCode()|0},ve(xo).equals=function(n){if(this===n)return!0;if(!(n instanceof xo))return!1;var t=n instanceof xo?n:pe();return!!(this.ec_1.equals(t.ec_1)&amp;&amp;le(this.fc_1,t.fc_1)&amp;&amp;this.gc_1.equals(t.gc_1)&amp;&amp;this.hc_1.equals(t.hc_1)&amp;&amp;this.ic_1.equals(t.ic_1)&amp;&amp;this.jc_1.equals(t.jc_1)&amp;&amp;this.kc_1.equals(t.kc_1)&amp;&amp;this.lc_1.equals(t.lc_1))},ve(Ko).gd=function(n,t){var r,i;return n instanceof ko?r=t.nc(A,A,A,A,ps().id(n.yb_1,t.ic_1)):n instanceof qo?r=t.nc(A,A,A,ps().id(n.ac_1,t.hc_1)):n instanceof yo?r=t.nc(A,A,A,A,A,ps().id(n.bc_1,t.jc_1)):n instanceof Bo?r=t.nc(A,A,A,A,A,A,ps().id(n.cc_1,t.kc_1)):n instanceof Dc?r=function(n,t,r,i){var e;return r instanceof qo?e=n.nc(A,A,A,Ac(n.hc_1,r,i)):r instanceof ko?e=n.nc(A,A,A,A,Ac(n.ic_1,r,i)):r instanceof yo?e=n.nc(A,A,A,A,A,Ac(n.jc_1,r,i)):r instanceof Bo?e=n.nc(A,A,A,A,A,A,Ac(n.kc_1,r,i)):(console.error("Unhandled tree intent: "+r),e=n),e}(t,0,n.xc_1,(i=n,function(n){var t;if(!(n instanceof Vu))throw _u(ce("Failed requirement."));for(var r=n.oa_1,e=i.wc_1,u=Rr(Tt(r,10)),o=0,f=r.f();f.g();){var s,c,a=f.h(),h=o;if(o=h+1|0,e===yr(h)){var l=a.sa_1;c=a.ua(A,null==l?null:l.ad())}else c=a;s=c,u.d(s)}return t=u,n.qa(A,A,t)})):n instanceof Mc?(window.navigator.clipboard.writeText(n.hd_1),r=t):n instanceof Co?r=t.nc(A,A,A,A,A,A,A,n.dc_1):(console.error("Unhandled intent: "+n),r=t),r},ve(Ko).ba=function(n,t){var r=n instanceof Oc?n:pe();return this.gd(r,t instanceof xo?t:pe())},ve(Ko).jd=function(n){return Hf().y9(us(Do),[Io(0,n),So(0,n)])},ve(Ko).z9=function(n){return this.jd(n instanceof xo?n:pe())},ve(nf).toString=function(){return"ImportedProblem(problem="+this.kd_1+", message="+this.ld_1+", trace="+this.md_1+")"},ve(nf).hashCode=function(){var n=ae(this.kd_1);return n=Mn(n,31)+this.ld_1.hashCode()|0,Mn(n,31)+ae(this.md_1)|0},ve(nf).equals=function(n){if(this===n)return!0;if(!(n instanceof nf))return!1;var t=n instanceof nf?n:pe();return!!le(this.kd_1,t.kd_1)&amp;&amp;!!this.ld_1.equals(t.ld_1)&amp;&amp;!!le(this.md_1,t.md_1)},ve(_f).ud=function(n,t){return this.td_1(n,t)},ve(_f).compare=function(n,t){return this.ud(n,t)},ve(Bf).toString=function(){return"LearnMore(text="+this.sc_1+", documentationLink="+this.tc_1+")"},ve(Bf).hashCode=function(){var n=he(this.sc_1);return Mn(n,31)+he(this.tc_1)|0},ve(Bf).equals=function(n){if(this===n)return!0;if(!(n instanceof Bf))return!1;var t=n instanceof Bf?n:pe();return this.sc_1===t.sc_1&amp;&amp;this.tc_1===t.tc_1},ve(Cf).toString=function(){return"Text(text="+this.fa_1+")"},ve(Cf).hashCode=function(){return he(this.fa_1)},ve(Cf).equals=function(n){if(this===n)return!0;if(!(n instanceof Cf))return!1;var t=n instanceof Cf?n:pe();return this.fa_1===t.fa_1},ve(xf).toString=function(){return"Reference(name="+this.da_1+", clipboardString="+this.ea_1+")"},ve(xf).hashCode=function(){var n=he(this.da_1);return Mn(n,31)+he(this.ea_1)|0},ve(xf).equals=function(n){if(this===n)return!0;if(!(n instanceof xf))return!1;var t=n instanceof xf?n:pe();return this.da_1===t.da_1&amp;&amp;this.ea_1===t.ea_1},ve(Pf).ed=function(n){return this.dd_1.d(new Cf(n)),this},ve(Pf).xd=function(n,t){return this.dd_1.d(new xf(n,t)),this},ve(Pf).fd=function(n,t,r){return t=t===A?n:t,r===A?this.xd(n,t):r.xd.call(this,n,t)},ve(Pf).j5=function(){return new zf(Qn(this.dd_1))},ve(If).rd=function(n){return new zf(qr(new Cf(n)))},ve(If).qd=function(n){var t=new Pf;return n(t),t.j5()},ve(zf).vd=function(n){return new zf(n)},ve(zf).toString=function(){return"PrettyText(fragments="+this.ca_1+")"},ve(zf).hashCode=function(){return ae(this.ca_1)},ve(zf).equals=function(n){if(this===n)return!0;if(!(n instanceof zf))return!1;var t=n instanceof zf?n:pe();return!!le(this.ca_1,t.ca_1)},ve(Tf).sd=function(n){return function(n){for(var t=Wr(),r=n.f();r.g();)for(var i=t,e=r.h().f();e.g();){var u,o=e.h(),f=i,s=f.v1(o);if(null==s){var c=Wr();f.h5(o,c),u=c}else u=s;i=u instanceof Xr?u:pe()}return t}(n)},ve(Af).toString=function(){return"Trie(nestedMaps="+this.wd_1+")"},ve(Af).hashCode=function(){return ae(this.wd_1)},ve(Af).equals=function(n){return function(n,t){return t instanceof Af&amp;&amp;!!le(n,t instanceof Af?t.wd_1:pe())}(this.wd_1,n)},ve(Kf).ga=function(n){return Jf().yd(this.x9_1,A,n)},ve(Kf).ha=function(n){return Jf().yd(this.x9_1,A,A,n)},ve(Kf).ja=function(n){return Jf().yd(this.x9_1,A,A,ou(n))},ve(Kf).y9=function(n,t){return Jf().yd(this.x9_1,n,A,ou(t))},ve(Kf).zd=function(n,t){return Jf().yd(this.x9_1,n,A,t)},ve(Kf).fb=function(n,t){return Jf().yd(this.x9_1,n,t)},ve(Kf).rc=function(n,t){return Jf().yd(this.x9_1,A,n,ou(t))},ve(Kf).toString=function(){return"ViewFactory(elementName="+this.x9_1+")"},ve(Kf).hashCode=function(){return he(this.x9_1)},ve(Kf).equals=function(n){if(this===n)return!0;if(!(n instanceof Kf))return!1;var t=n instanceof Kf?n:pe();return this.x9_1===t.x9_1},ve(Xf).ae=function(n,t,r,i){return new rs(n,t,r,i)},ve(Xf).yd=function(n,t,r,i,e){return t=t===A?Ct():t,r=r===A?null:r,i=i===A?Ct():i,e===A?this.ae(n,t,r,i):e.ae.call(this,n,t,r,i)},ve(rs).toString=function(){return"Element(elementName="+this.be_1+", attributes="+this.ce_1+", innerText="+this.de_1+", children="+this.ee_1+")"},ve(rs).hashCode=function(){var n=he(this.be_1);return n=Mn(n,31)+ae(this.ce_1)|0,n=Mn(n,31)+(null==this.de_1?0:he(this.de_1))|0,Mn(n,31)+ae(this.ee_1)|0},ve(rs).equals=function(n){if(this===n)return!0;if(!(n instanceof rs))return!1;var t=n instanceof rs?n:pe();return this.be_1===t.be_1&amp;&amp;!!le(this.ce_1,t.ce_1)&amp;&amp;this.de_1==t.de_1&amp;&amp;!!le(this.ee_1,t.ee_1)},ve(os).u9=function(n){return this.r9_1(new fs("click",n))},ve(os).t9=function(n){return this.r9_1(new ss(n))},ve(os).gb=function(n){for(var t=0,r=n.length;t&lt;r;){var i=n[t];t=t+1|0,this.r9_1(new ss(i))}return br()},ve(os).s9=function(n){return this.r9_1(new cs("title",n))},ve(os).bd=function(n){return this.r9_1(new cs("href",n))},ve(vs).oe=function(){return this.ne_1},ve(vs).toString=function(){return"Toggle(focus="+this.ne_1+")"},ve(vs).hashCode=function(){return ae(this.ne_1)},ve(vs).equals=function(n){if(this===n)return!0;if(!(n instanceof vs))return!1;var t=n instanceof vs?n:pe();return!!le(this.ne_1,t.ne_1)},ve(ds).pe=function(n,t){return this.re(n.qe((r=t,function(n){return n.me(r(n.ub_1))})));var r},ve(ds).re=function(n){return new ds(n)},ve(ds).toString=function(){return"Model(tree="+this.xb_1+")"},ve(ds).hashCode=function(){return this.xb_1.hashCode()},ve(ds).equals=function(n){if(this===n)return!0;if(!(n instanceof ds))return!1;var t=n instanceof ds?n:pe();return!!this.xb_1.equals(t.xb_1)},ve(bs).id=function(n,t){var r;if(n instanceof vs){var i=n.oe();r=t.re(i.qe(ws))}else be();return r},ve(ks).cd=function(){return this.ve_1},ve(ks).we=function(){return 0},ve(ks).qe=function(n){return n(this.ve_1)},ve(ks).toString=function(){return"Original(tree="+this.ve_1+")"},ve(ks).hashCode=function(){return this.ve_1.hashCode()},ve(ks).equals=function(n){if(this===n)return!0;if(!(n instanceof ks))return!1;var t=n instanceof ks?n:pe();return!!this.ve_1.equals(t.ve_1)},ve(qs).cd=function(){return this.ue_1},ve(qs).we=function(){return this.se_1.we()+1|0},ve(qs).qe=function(n){return this.se_1.qe((t=this,r=n,function(n){for(var i,e=n.vb_1,u=t.te_1,o=Rr(Tt(e,10)),f=0,s=e.f();s.g();){var c,a=s.h(),h=f;f=h+1|0,c=u===yr(h)?r(a):a,o.d(c)}return i=o,n.me(A,i)}));var t,r},ve(qs).toString=function(){return"Child(parent="+this.se_1+", index="+this.te_1+", tree="+this.ue_1+")"},ve(qs).hashCode=function(){var n=ae(this.se_1);return n=Mn(n,31)+this.te_1|0,Mn(n,31)+this.ue_1.hashCode()|0},ve(qs).equals=function(n){if(this===n)return!0;if(!(n instanceof qs))return!1;var t=n instanceof qs?n:pe();return!!le(this.se_1,t.se_1)&amp;&amp;this.te_1===t.te_1&amp;&amp;!!this.ue_1.equals(t.ue_1)},ve(ys).ad=function(){var n;switch(this.q8_1){case 0:n=xs();break;case 1:n=Cs();break;default:be()}return n},ve(Bs).vc=function(){var n,t;return ut(Vn(Ve(0,this.cd().vb_1.k()-1|0)),(n=this,(t=function(t){return n.xe(t)}).callableName="child",t))},ve(Bs).xe=function(n){return new qs(this,n,this.cd().vb_1.j(n))},ve(js).uc=function(){return new ks(this)},ve(js).ye=function(){return!this.vb_1.i()},ve(js).ze=function(n,t,r){return new js(n,t,r)},ve(js).me=function(n,t,r,i){return n=n===A?this.ub_1:n,t=t===A?this.vb_1:t,r=r===A?this.wb_1:r,i===A?this.ze(n,t,r):i.ze.call(this,n,t,r)},ve(js).toString=function(){return"Tree(label="+this.ub_1+", children="+this.vb_1+", state="+this.wb_1+")"},ve(js).hashCode=function(){var n=null==this.ub_1?0:ae(this.ub_1);return n=Mn(n,31)+ae(this.vb_1)|0,Mn(n,31)+this.wb_1.hashCode()|0},ve(js).equals=function(n){if(this===n)return!0;if(!(n instanceof js))return!1;var t=n instanceof js?n:pe();return!!le(this.ub_1,t.ub_1)&amp;&amp;!!le(this.vb_1,t.vb_1)&amp;&amp;!!this.wb_1.equals(t.wb_1)},ve(zs).toString=function(){return"ProblemIdElement(name="+this.df_1+", displayName="+this.ef_1+")"},ve(zs).hashCode=function(){var n=he(this.df_1);return Mn(n,31)+he(this.ef_1)|0},ve(zs).equals=function(n){if(this===n)return!0;if(!(n instanceof zs))return!1;var t=n instanceof zs?n:pe();return this.df_1===t.df_1&amp;&amp;this.ef_1===t.ef_1},ve(Ts).toString=function(){return"ProblemSummary(problemId="+this.ff_1+", count="+this.gf_1+")"},ve(Ts).hashCode=function(){var n=ae(this.ff_1);return Mn(n,31)+this.gf_1|0},ve(Ts).equals=function(n){if(this===n)return!0;if(!(n instanceof Ts))return!1;var t=n instanceof Ts?n:pe();return!!le(this.ff_1,t.ff_1)&amp;&amp;this.gf_1===t.gf_1},ve(Ms).toString=function(){return"ProblemNodeGroup(tree="+this.hf_1+", children="+this.if_1+", childGroups="+this.jf_1+", id="+this.kf_1+")"},ve(Ms).hashCode=function(){var n=this.hf_1.hashCode();return n=Mn(n,31)+ae(this.if_1)|0,n=Mn(n,31)+ae(this.jf_1)|0,Mn(n,31)+this.kf_1|0},ve(Ms).equals=function(n){if(this===n)return!0;if(!(n instanceof Ms))return!1;var t=n instanceof Ms?n:pe();return!!this.hf_1.equals(t.hf_1)&amp;&amp;!!le(this.if_1,t.if_1)&amp;&amp;!!le(this.jf_1,t.jf_1)&amp;&amp;this.kf_1===t.kf_1},ve(uc).toString=function(){return"Text(text="+this.lf_1+")"},ve(uc).hashCode=function(){return he(this.lf_1)},ve(uc).equals=function(n){if(this===n)return!0;if(!(n instanceof uc))return!1;var t=n instanceof uc?n:pe();return this.lf_1===t.lf_1},ve(oc).toString=function(){return"ProblemIdNode(prettyText="+this.mf_1+", separator="+this.nf_1+")"},ve(oc).hashCode=function(){var n=this.mf_1.hashCode();return Mn(n,31)+(0|this.nf_1)|0},ve(oc).equals=function(n){if(this===n)return!0;if(!(n instanceof oc))return!1;var t=n instanceof oc?n:pe();return!!this.mf_1.equals(t.mf_1)&amp;&amp;this.nf_1===t.nf_1},ve(fc).toString=function(){return"Advice(label="+this.of_1+", docLink="+this.pf_1+")"},ve(fc).hashCode=function(){var n=ae(this.of_1);return Mn(n,31)+(null==this.pf_1?0:ae(this.pf_1))|0},ve(fc).equals=function(n){if(this===n)return!0;if(!(n instanceof fc))return!1;var t=n instanceof fc?n:pe();return!!le(this.of_1,t.of_1)&amp;&amp;!!le(this.pf_1,t.pf_1)},ve(cc).zb=function(){return this.qf_1},ve(cc).toString=function(){return"MessageTreeIntent(delegate="+this.qf_1+")"},ve(cc).hashCode=function(){return ae(this.qf_1)},ve(cc).equals=function(n){if(this===n)return!0;if(!(n instanceof cc))return!1;var t=n instanceof cc?n:pe();return!!le(this.qf_1,t.qf_1)},ve(ac).zb=function(){return this.rf_1},ve(ac).toString=function(){return"ProblemIdTreeIntent(delegate="+this.rf_1+")"},ve(ac).hashCode=function(){return ae(this.rf_1)},ve(ac).equals=function(n){if(this===n)return!0;if(!(n instanceof ac))return!1;var t=n instanceof ac?n:pe();return!!le(this.rf_1,t.rf_1)},ve(hc).zb=function(){return this.sf_1},ve(hc).toString=function(){return"FileLocationTreeIntent(delegate="+this.sf_1+")"},ve(hc).hashCode=function(){return ae(this.sf_1)},ve(hc).equals=function(n){if(this===n)return!0;if(!(n instanceof hc))return!1;var t=n instanceof hc?n:pe();return!!le(this.sf_1,t.sf_1)},ve(lc).zb=function(){return this.tf_1},ve(lc).toString=function(){return"PluginLocationTreeIntent(delegate="+this.tf_1+")"},ve(lc).hashCode=function(){return ae(this.tf_1)},ve(lc).equals=function(n){if(this===n)return!0;if(!(n instanceof lc))return!1;var t=n instanceof lc?n:pe();return!!le(this.tf_1,t.tf_1)},ve(_c).zb=function(){return this.uf_1},ve(_c).toString=function(){return"TaskLocationTreeIntent(delegate="+this.uf_1+")"},ve(_c).hashCode=function(){return ae(this.uf_1)},ve(_c).equals=function(n){if(this===n)return!0;if(!(n instanceof _c))return!1;var t=n instanceof _c?n:pe();return!!le(this.uf_1,t.uf_1)},ve(vc).toString=function(){return"SetTab(tab="+this.vf_1+")"},ve(vc).hashCode=function(){return this.vf_1.hashCode()},ve(vc).equals=function(n){if(this===n)return!0;if(!(n instanceof vc))return!1;var t=n instanceof vc?n:pe();return!!this.vf_1.equals(t.vf_1)},ve(dc).gg=function(n,t,r,i,e,u,o,f,s,c){return new dc(n,t,r,i,e,u,o,f,s,c)},ve(dc).hg=function(n,t,r,i,e,u,o,f,s,c,a){return n=n===A?this.wf_1:n,t=t===A?this.xf_1:t,r=r===A?this.yf_1:r,i=i===A?this.zf_1:i,e=e===A?this.ag_1:e,u=u===A?this.bg_1:u,o=o===A?this.cg_1:o,f=f===A?this.dg_1:f,s=s===A?this.eg_1:s,c=c===A?this.fg_1:c,a===A?this.gg(n,t,r,i,e,u,o,f,s,c):a.gg.call(this,n,t,r,i,e,u,o,f,s,c)},ve(dc).toString=function(){return"Model(heading="+this.wf_1+", summary="+this.xf_1+", learnMore="+this.yf_1+", messageTree="+this.zf_1+", problemIdTree="+this.ag_1+", fileLocationTree="+this.bg_1+", pluginLocationTree="+this.cg_1+", taskLocationTree="+this.dg_1+", problemCount="+this.eg_1+", tab="+this.fg_1+")"},ve(dc).hashCode=function(){var n=this.wf_1.hashCode();return n=Mn(n,31)+ae(this.xf_1)|0,n=Mn(n,31)+this.yf_1.hashCode()|0,n=Mn(n,31)+this.zf_1.hashCode()|0,n=Mn(n,31)+this.ag_1.hashCode()|0,n=Mn(n,31)+this.bg_1.hashCode()|0,n=Mn(n,31)+this.cg_1.hashCode()|0,n=Mn(n,31)+this.dg_1.hashCode()|0,n=Mn(n,31)+this.eg_1|0,Mn(n,31)+this.fg_1.hashCode()|0},ve(dc).equals=function(n){if(this===n)return!0;if(!(n instanceof dc))return!1;var t=n instanceof dc?n:pe();return!!(this.wf_1.equals(t.wf_1)&amp;&amp;le(this.xf_1,t.xf_1)&amp;&amp;this.yf_1.equals(t.yf_1)&amp;&amp;this.zf_1.equals(t.zf_1)&amp;&amp;this.ag_1.equals(t.ag_1)&amp;&amp;this.bg_1.equals(t.bg_1)&amp;&amp;this.cg_1.equals(t.cg_1)&amp;&amp;this.dg_1.equals(t.dg_1)&amp;&amp;this.eg_1===t.eg_1&amp;&amp;this.fg_1.equals(t.fg_1))},ve(Lc).ig=function(n,t){var r,i;return n instanceof hc?r=t.hg(A,A,A,A,A,ps().id(n.sf_1,t.bg_1)):n instanceof lc?r=t.hg(A,A,A,A,A,A,ps().id(n.tf_1,t.cg_1)):n instanceof _c?r=t.hg(A,A,A,A,A,A,A,ps().id(n.uf_1,t.dg_1)):n instanceof ac?r=t.hg(A,A,A,A,ps().id(n.rf_1,t.ag_1)):n instanceof cc?r=t.hg(A,A,A,ps().id(n.qf_1,t.zf_1)):n instanceof Dc?r=function(n,t,r,i){var e;return r instanceof cc?e=n.hg(A,A,A,Ac(n.zf_1,r,i)):r instanceof ac?e=n.hg(A,A,A,A,Ac(n.ag_1,r,i)):r instanceof hc?e=n.hg(A,A,A,A,A,Ac(n.bg_1,r,i)):r instanceof lc?e=n.hg(A,A,A,A,A,A,Ac(n.cg_1,r,i)):r instanceof _c?e=n.hg(A,A,A,A,A,A,A,Ac(n.dg_1,r,i)):(console.error("Unhandled tree intent: "+r),e=n),e}(t,0,n.xc_1,(i=n,function(n){var t;if(!(n instanceof Vu))throw _u(ce("Failed requirement."));for(var r=n.oa_1,e=i.wc_1,u=Rr(Tt(r,10)),o=0,f=r.f();f.g();){var s,c,a=f.h(),h=o;if(o=h+1|0,e===yr(h)){var l=a.sa_1;c=a.ua(A,null==l?null:l.ad())}else c=a;s=c,u.d(s)}return t=u,n.qa(A,A,t)})):n instanceof Mc?(window.navigator.clipboard.writeText(n.hd_1),r=t):n instanceof vc?r=t.hg(A,A,A,A,A,A,A,A,A,n.vf_1):(console.error("Unhandled intent: "+n),r=t),r},ve(Lc).ba=function(n,t){var r=n instanceof Oc?n:pe();return this.ig(r,t instanceof dc?t:pe())},ve(Lc).jg=function(n){return Hf().y9(us(xc),[wc(0,n),bc(0,n)])},ve(Lc).z9=function(n){return this.jg(n instanceof dc?n:pe())},ve(Mc).toString=function(){return"Copy(text="+this.hd_1+")"},ve(Mc).hashCode=function(){return he(this.hd_1)},ve(Mc).equals=function(n){if(this===n)return!0;if(!(n instanceof Mc))return!1;var t=n instanceof Mc?n:pe();return this.hd_1===t.hd_1},ve(Dc).toString=function(){return"ToggleStackTracePart(partIndex="+this.wc_1+", location="+this.xc_1+")"},ve(Dc).hashCode=function(){var n=this.wc_1;return Mn(n,31)+ae(this.xc_1)|0},ve(Dc).equals=function(n){if(this===n)return!0;if(!(n instanceof Dc))return!1;var t=n instanceof Dc?n:pe();return this.wc_1===t.wc_1&amp;&amp;!!le(this.xc_1,t.xc_1)},ve(ui).k6=function(){var n=Object.create(null);return n.foo=1,delete n.foo,br(),n},l=null,function(){var n=configurationCacheProblems();if(null==n.problemsReport)Mf(Ff("report"),Xo(),function(n){var t,r,i,e,u,o,f,s,c,a,h=function(n){for(var t=Or(),r=Or(),i=Or(),e=0,u=n.length;e&lt;u;){var o=n[e];e=e+1|0;var f,s=o.input,c=null==s?null:r.d(rf(s,o));if(null==c){var a=o.incompatibleTask;f=null==a?null:i.d(rf(a,o))}else f=c;if(null==f){var h=we(o.problem);t.d(rf(h,o))}}return new tf(t,r,i)}(n.diagnostics),l=n.totalProblemCount;return new xo((f=(t=n).buildName,s=t.requestedTasks,c=null==s?null:rr(s," ",A,r=r!==A&amp;&amp;r)>=0,a=null==c||c,Sf().qd((i=t,e=f,u=s,o=a,function(n){n.ed(function(n){var t;if(re(n)>0){var r,i=ne(n,0);r=function(n){return 97&lt;=n&amp;&amp;n&lt;=122||!(Ei(n,128)&lt;0)&amp;&amp;function(n){var t;return t=1===function(n){var t=n,r=su(au().h9_1,t),i=au().h9_1[r],e=(i+au().i9_1[r]|0)-1|0,u=au().j9_1[r];if(t>e)return 0;var o=3&amp;u;if(0===o){var f=2,s=i,c=0;if(c&lt;=1)do{if(c=c+1|0,(s=s+(u>>f&amp;127)|0)>t)return 3;if((s=s+(u>>(f=f+7|0)&amp;127)|0)>t)return 0;f=f+7|0}while(c&lt;=1);return 3}if(u&lt;=7)return o;var a=t-i|0;return u>>Mn(2,u&lt;=31?a%2|0:a)&amp;3}(n)||function(n){var t=su(lu().k9_1,n);return t>=0&amp;&amp;n&lt;(lu().k9_1[t]+lu().l9_1[t]|0)}(n),t}(n)}(i)?function(n){return function(n){var t=Li(n).toUpperCase();if(t.length>1){var r;if(329===n)r=t;else{var i=ne(t,0),e=t.substring(1).toLowerCase();r=Li(i)+e}return r}return Li(function(n){return function(n){var t=n;return 452&lt;=t&amp;&amp;t&lt;=460||497&lt;=t&amp;&amp;t&lt;=499?Ue(Mn(3,(t+1|0)/3|0)):4304&lt;=t&amp;&amp;t&lt;=4346||4349&lt;=t&amp;&amp;t&lt;=4351?n:xi(n)}(n)}(n))}(n)}(i):Li(i),t=ce(r)+n.substring(1)}else t=n;return t}(i.cacheAction)+" the configuration cache for ");var t=e;null==t||n.fd(t),null==e||n.ed(" build and ");var r=u;return null==(null==r?null:n.fd(r))&amp;&amp;n.ed("default"),n.ed(o?" tasks":" task"),br()}))),function(n,t){var r=n.cacheActionDescription,i=null==r?null:mf(r),e=Sf().rd(function(n){var t=n.od_1.k(),r=kf(t,"build configuration input");return t>0?r+" and will cause the cache to be discarded when "+(t&lt;=1?"its":"their")+" value change":r}(t)),u=Sf().rd(function(n,t){var r=n.totalProblemCount,i=t.nd_1.k(),e=kf(r,"problem");return r>i?e+", only the first "+i+" "+yf(i)+" included in this report":e}(n,t));return function(n,t){for(var r=0,i=n.length;r&lt;i;){var e=n[r];r=r+1|0,null!=e&amp;&amp;t.d(e)}return t}([i,e,u],Or())}(n,h),new Bf("Gradle Configuration Cache",n.documentationLink),hf(new no(Zo().qc_1),ut(Vn(h.nd_1),gf)),hf(new no(Yo().qc_1),function(n){return ut(Vn(n),wf)}(h.nd_1)),hf(new no(Qo().qc_1),ut(Vn(h.od_1),vf)),hf(new no(Wo().qc_1),ut(Vn(h.pd_1),df)),0===l?Qo():Zo())}(n));else{var t=n.problemsReport;Mf(Ff("report"),Nc(),function(n,t){ec();for(var r=n.summaries,i=Rr(r.length),e=0,u=r.length;e&lt;u;){var o,f=r[e];e=e+1|0;for(var s=f.problemId,c=Rr(s.length),a=0,h=s.length;a&lt;h;){var l,_=s[a];a=a+1|0,l=new zs(_.name,_.displayName),c.d(l)}o=new Ts(c,f.count),i.d(o)}for(var v=i,d=function(n,t){ec();for(var r=li(),i=0,e=n.length;i&lt;e;){var u=n[i];i=i+1|0;var o,f=(a=u.problemId,ec(),On(a,":",A,A,A,A,Ws)),s=r.v1(f);if(null==s){var c=Or();r.h5(f,c),o=c}else o=s;o.d(u)}for(var a,h=r.o(),l=Rr(Tt(h,10)),_=h.f();_.g();){for(var v,d=_.h(),g=d.i1(),w=Rr(Tt(g,10)),b=g.f();b.g();){var p;p=Os(b.h(),null,!0),w.d(p)}var m,k=Zn(w),q=Un(d.i1()),y=Hs(q,new Wu($s(Rs(q)).ed(" ("+d.i1().k()+")").j5()));n:{for(var B=t.f();B.g();){var C=B.h();if(Ds(C.ff_1,q.problemId)){m=C;break n}}m=null}var x=m;null==x||k.d(Ns(x.gf_1)),v=new js(y,k),l.d(v)}var j=l;return new ds(new js(new uc("message tree root"),j))}(t,v),g=function(n,t){ec();for(var r=function(){ec();var n=Or();return new Ms(new js(new oc(Sf().rd("Ungrouped"),!0),n),n,li())}(),i=li(),e=0,u=n.length;e&lt;u;){var o=n[e];e=e+1|0;for(var f=Yn(Dn(o.problemId,1)),s=Rr(Tt(f,10)),c=f.f();c.g();){var a,h=c.h();a=new zs(h.name,h.displayName),s.d(a)}var l=Fs(i,s),_=Os(o);null==l?r.if_1.d(_):l.if_1.d(_)}for(var v=Rr(Tt(t,10)),d=t.f();d.g();){var g,w=d.h();g=new Ts(Yn(Wn(w.ff_1,1)),w.gf_1),v.d(g)}for(var b=li(),p=v.f();p.g();){var m,k=p.h(),q=k.ff_1,y=b.v1(q);if(null==y){var B=Or();b.h5(q,B),m=B}else m=y;m.d(k)}for(var C=b.o(),x=Rr(Tt(C,10)),j=C.f();j.g();){for(var P,I=j.h(),S=I.j1(),z=0,T=I.i1().f();T.g();)z=z+T.h().gf_1|0;P=new Ts(S,z),x.d(P)}for(var E=x.f();E.g();){var L=E.h(),N=Fs(i,L.ff_1),A=null==N?null:N.if_1;null==A||A.d(Ns(L.gf_1))}for(var M=i.w1(),F=Rr(Tt(M,10)),D=M.f();D.g();){var O;O=D.h().hf_1,F.d(O)}var R=function(n,t){var r=Rr(n.k());return r.m(n),r.d(t),r}(F,r.hf_1);return new ds(new js(new uc("group tree root"),R))}(t,v),w=0,b=v.f();b.g();)w=w+b.h().gf_1|0;for(var p=Es(t,w,(ec(),wn)),m=0,k=v.f();k.g();)m=m+k.h().gf_1|0;for(var q=Es(t,m,(ec(),bn)),y=0,B=v.f();B.g();)y=y+B.h().gf_1|0;var C=Es(t,y,(ec(),pn));return new dc(Sf().rd("Problems Report"),function(n,t){ec();var r,i,e,u=n.description,o=null==u?null:qr(mf(u));return r=null==o?qr(Sf().qd((i=t,e=n,function(n){n.ed(i.length+" problems have been reported during the execution");var t=e.buildName;null==t||(n.ed(" of build "),n.fd(t));var r=e.requestedTasks;return null==r||(n.ed(" for the following tasks:"),n.fd(r),br()),br()}))):o,r}(n,t),new Bf("reporting problems",n.documentationLink),d,g,p,q,C,t.length,function(n,t,r,i,e){return ec(),po(r)>0?tc():po(n)>0?Js():po(t)>0?nc():po(i)>0?rc():po(e)>0?ic():Js()}(d,g,p,q,C))}(t,n.diagnostics))}}(),n}(void 0===this["configuration-cache-report"]?{}:this["configuration-cache-report"])}}[70](),{}))));
//# sourceMappingURL=configuration-cache-report.js.map
&lt;/script>
&lt;/body>
&lt;/html></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;!DOCTYPE html>
&lt;html>
&lt;head>
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
&lt;meta http-equiv="x-ua-compatible" content="IE=edge"/>
&lt;title>Test results - Test Summary&lt;/title>
&lt;link href="css/base-style.css" rel="stylesheet" type="text/css"/>
&lt;link href="css/style.css" rel="stylesheet" type="text/css"/>
&lt;script src="js/report.js" type="text/javascript">&lt;/script>
&lt;/head>
&lt;body>
&lt;div id="content">
&lt;h1>Test Summary&lt;/h1>
&lt;div id="summary">
&lt;table>
&lt;tr>
&lt;td>
&lt;div class="summaryGroup">
&lt;table>
&lt;tr>
&lt;td>
&lt;div class="infoBox" id="tests">
&lt;div class="counter">119&lt;/div>
&lt;p>tests&lt;/p>
&lt;/div>
&lt;/td>
&lt;td>
&lt;div class="infoBox" id="failures">
&lt;div class="counter">0&lt;/div>
&lt;p>failures&lt;/p>
&lt;/div>
&lt;/td>
&lt;td>
&lt;div class="infoBox" id="ignored">
&lt;div class="counter">0&lt;/div>
&lt;p>ignored&lt;/p>
&lt;/div>
&lt;/td>
&lt;td>
&lt;div class="infoBox" id="duration">
&lt;div class="counter">1.652s&lt;/div>
&lt;p>duration&lt;/p>
&lt;/div>
&lt;/td>
&lt;/tr>
&lt;/table>
&lt;/div>
&lt;/td>
&lt;td>
&lt;div class="infoBox success" id="successRate">
&lt;div class="percent">100%&lt;/div>
&lt;p>successful&lt;/p>
&lt;/div>
&lt;/td>
&lt;/tr>
&lt;/table>
&lt;/div>
&lt;div class="tab-container">
&lt;ul class="tabLinks">
&lt;li>
&lt;a href="#">Packages&lt;/a>
&lt;/li>
&lt;li>
&lt;a href="#">Classes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;div class="tab">
&lt;h2>Packages&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Package&lt;/th>
&lt;th>Tests&lt;/th>
&lt;th>Failures&lt;/th>
&lt;th>Ignored&lt;/th>
&lt;th>Duration&lt;/th>
&lt;th>Success rate&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/eighteen.tooling.html">eighteen.tooling&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.025s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/eleven.api.html">eleven.api&lt;/a>
&lt;/td>
&lt;td>6&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.027s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/eleven.lang.html">eleven.lang&lt;/a>
&lt;/td>
&lt;td>4&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.015s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/fifteen.api.html">fifteen.api&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/fifteen.lang.html">fifteen.lang&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/fourteen.api.html">fourteen.api&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.035s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/fourteen.lang.html">fourteen.lang&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.011s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/nine.api.html">nine.api&lt;/a>
&lt;/td>
&lt;td>28&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.067s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/nine.lang.html">nine.lang&lt;/a>
&lt;/td>
&lt;td>4&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.005s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/nineteen.api.html">nineteen.api&lt;/a>
&lt;/td>
&lt;td>7&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.029s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/sixteen.api.html">sixteen.api&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.011s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/sixteen.lang.html">sixteen.lang&lt;/a>
&lt;/td>
&lt;td>4&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.005s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/ten.api.html">ten.api&lt;/a>
&lt;/td>
&lt;td>7&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.010s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/ten.lang.html">ten.lang&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/thirteen.api.html">thirteen.api&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.047s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/twelve.api.html">twelve.api&lt;/a>
&lt;/td>
&lt;td>5&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.039s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/twentyfive.api.html">twentyfive.api&lt;/a>
&lt;/td>
&lt;td>6&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.050s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/twentyfive.lang.html">twentyfive.lang&lt;/a>
&lt;/td>
&lt;td>6&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.010s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/twentyfour.api.html">twentyfour.api&lt;/a>
&lt;/td>
&lt;td>11&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.066s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/twentyone.api.html">twentyone.api&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>1.168s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/twentyone.lang.html">twentyone.lang&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/twentythree.tooling.html">twentythree.tooling&lt;/a>
&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.016s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="packages/twentytwo.lang.html">twentytwo.lang&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.008s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;div class="tab">
&lt;h2>Classes&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Class&lt;/th>
&lt;th>Tests&lt;/th>
&lt;th>Failures&lt;/th>
&lt;th>Ignored&lt;/th>
&lt;th>Duration&lt;/th>
&lt;th>Success rate&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/eighteen.tooling.JavaDocSnippetTag.html">eighteen.tooling.JavaDocSnippetTag&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.025s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/eleven.api.CollectionApi.html">eleven.api.CollectionApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.008s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/eleven.api.FilesApi.html">eleven.api.FilesApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.013s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/eleven.api.PredicateApi.html">eleven.api.PredicateApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.001s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/eleven.api.StringApi.html">eleven.api.StringApi&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.005s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/eleven.lang.LambdaLocalVariable.html">eleven.lang.LambdaLocalVariable&lt;/a>
&lt;/td>
&lt;td>4&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.015s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/fifteen.api.CharSequenceApi.html">fifteen.api.CharSequenceApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/fifteen.lang.TextBlock.html">fifteen.lang.TextBlock&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/fourteen.api.AccountingCurrencyFormatSupport.html">fourteen.api.AccountingCurrencyFormatSupport&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.033s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/fourteen.api.NullPointerExceptions.html">fourteen.api.NullPointerExceptions&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/fourteen.lang.SwitchExpressions.html">fourteen.lang.SwitchExpressions&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.011s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.CollectorsApi.html">nine.api.CollectorsApi&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.009s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.ImmutableListFactory.html">nine.api.ImmutableListFactory&lt;/a>
&lt;/td>
&lt;td>4&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.006s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.ImmutableMapEntryFactory.html">nine.api.ImmutableMapEntryFactory&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.ImmutableMapFactory.html">nine.api.ImmutableMapFactory&lt;/a>
&lt;/td>
&lt;td>4&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.006s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.ImmutableSetFactory.html">nine.api.ImmutableSetFactory&lt;/a>
&lt;/td>
&lt;td>4&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.006s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.MatcherApi.html">nine.api.MatcherApi&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.005s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.ObjectsApi.html">nine.api.ObjectsApi&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.005s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.OptionalApi.html">nine.api.OptionalApi&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.006s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.api.StreamApi.html">nine.api.StreamApi&lt;/a>
&lt;/td>
&lt;td>5&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.022s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.lang.PrivateInterfaceMethod.html">nine.lang.PrivateInterfaceMethod&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.003s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nine.lang.TryWithResource.html">nine.lang.TryWithResource&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nineteen.api.CollectionApi.html">nineteen.api.CollectionApi&lt;/a>
&lt;/td>
&lt;td>5&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.005s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/nineteen.api.DateTimeFormatterApi.html">nineteen.api.DateTimeFormatterApi&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.024s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/sixteen.api.DayPeriodSupport.html">sixteen.api.DayPeriodSupport&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.009s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/sixteen.api.StreamApi.html">sixteen.api.StreamApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/sixteen.lang.PatternMatchingForInstanceof.html">sixteen.lang.PatternMatchingForInstanceof&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.001s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/sixteen.lang.Record.html">sixteen.lang.Record&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.004s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/ten.api.CollectorsApi.html">ten.api.CollectorsApi&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.007s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/ten.api.ListApi.html">ten.api.ListApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/ten.api.MapApi.html">ten.api.MapApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.001s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/ten.api.OptionalApi.html">ten.api.OptionalApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.001s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/ten.api.SetApi.html">ten.api.SetApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.001s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/ten.lang.LocalVariableTypeInference.html">ten.lang.LocalVariableTypeInference&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/thirteen.api.FileSystemsApi.html">thirteen.api.FileSystemsApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.047s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twelve.api.CollectorsApi.html">twelve.api.CollectorsApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.006s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twelve.api.FilesApi.html">twelve.api.FilesApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twelve.api.NumberFormatApi.html">twelve.api.NumberFormatApi&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.029s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twelve.api.StringApi.html">twelve.api.StringApi&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyfive.api.ScopedValues.html">twentyfive.api.ScopedValues&lt;/a>
&lt;/td>
&lt;td>6&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.050s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyfive.lang.FlexibleConstructorBodies.html">twentyfive.lang.FlexibleConstructorBodies&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.001s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyfive.lang.InstanceMainMethods.html">twentyfive.lang.InstanceMainMethods&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.009s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyfive.lang.ModuleImportDeclarations.html">twentyfive.lang.ModuleImportDeclarations&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyfour.api.ClassFileApi.html">twentyfour.api.ClassFileApi&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.042s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyfour.api.StreamGatherers.html">twentyfour.api.StreamGatherers&lt;/a>
&lt;/td>
&lt;td>8&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.024s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyone.api.SequencedCollectionApi.html">twentyone.api.SequencedCollectionApi&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyone.api.VirtualThreads.html">twentyone.api.VirtualThreads&lt;/a>
&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>1.166s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentyone.lang.Record.html">twentyone.lang.Record&lt;/a>
&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.002s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentythree.tooling.MarkdownDocumentationComments.html">twentythree.tooling.MarkdownDocumentationComments&lt;/a>
&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.016s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td class="success">
&lt;a href="classes/twentytwo.lang.UnnamedVariablesAndPatterns.html">twentytwo.lang.UnnamedVariablesAndPatterns&lt;/a>
&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0&lt;/td>
&lt;td>0.008s&lt;/td>
&lt;td class="success">100%&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/div>
&lt;div id="footer">
&lt;p>
&lt;div>
&lt;label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
&lt;input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
&lt;/label>
&lt;/div>Generated by
&lt;a href="https://www.gradle.org">Gradle 9.1.0&lt;/a> at Oct 4, 2025, 8:10:16 PM&lt;/p></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="sect1">
&lt;h2 id="_build_presentation">Build presentation&lt;/h2>
&lt;div class="sectionbody">
&lt;div class="paragraph">
&lt;p>Add the location of asciidoctor-revealjs to the PATH variable (&lt;code>export PATH=./:$PATH&lt;/code>).&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Export the following variables&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="content">
&lt;pre>Unresolved directive in &amp;lt;stdin&amp;gt; - include::.env[]&lt;/pre>
&lt;/div>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Run the following command&lt;/p>
&lt;/div>
&lt;div class="listingblock">
&lt;div class="content">
&lt;pre class="highlight">&lt;code class="language-shell" data-lang="shell">gw compileClasses &amp;amp;&amp;amp; \
./.gitlab-ci.d/build-presentation.sh &amp;amp;&amp;amp; \
./.gitlab-ci.d/publish-presentation.sh`&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div></description></item><item><title/><link>https://www.martinahrer.at/1/01/01/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.martinahrer.at/1/01/01/</guid><description>&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::common.adoc[]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::icons.adoc[]
Unresolved directive in &amp;lt;stdin&amp;gt; - include::java-version.adoc[]&lt;/p>
&lt;/div>
&lt;div class="paragraph">
&lt;p>Unresolved directive in &amp;lt;stdin&amp;gt; - include::content.adoc[]&lt;/p>
&lt;/div></description></item></channel></rss>