Changed djutils version to 1.05.04, djunits to 4.01.06, and dsol version for the demos to 3.04.10. The default compiler to use is OpenJDK-11, but with Java 8 compatibility. Changed djutils version to 1.05.03, and dsol version for the demos to 3.04.08. Compatibility with latest dsol version caused a few small changes in the sim0mq-demo project, e.g. the change of Simulator.isRunning() to Simulator.isStartedOrRunning() and the WeightedSampleMean() method for time weighted statistics. Changed versions of djunits, djutils, jeromq and dsol to the latest version. Compatibility with latest dsol version caused a few small changes, especially in the sim0mq-demo project. Copyright notices to 2020. Changed versions of djunits, djutils and dsol to the latest version to be compatible with Java 9+. Ensured that "package-list" exists in apidocs for backward compatibility of javadoc linking. Added separate classes for each message to make construction and information gathering more straightforward. Fixed numerous small errors in FederateServer and demo classes after tightening the checks. Added Heartbeat messages HB.1 (Heartbeat) and HB.2 (Alive). Added reference implementation for processing Heartbeat messages. In order to allow to send/receive heartbeat messages between the other messages, the way that answers are received in the Java code had to be changed. The state machine of the different federates now has to allow for HB-messages to be sent and received between all other messages. Added reference implementation for the state machine of a Federation Manager. Added reference implementation for the state machine of a Model Controller. Changed the MM1FederationManager20 example in sim0mq-demo to work with an arbitrary folder that contains the model on the server where the FederateStarter is present. A first unit test for the reference implementation of the FederateStarter has been added. This test communicates using port 5500 to the FederateStarter. For reproducibility: HashMap replaced by LinkedHashMap; HashSet replaced by LinkedHashSet. Unit tests for FM, FS, MC messages implemented (and a number of errors resolved). NumberDuration and NumberTime made more precise in terms of which object they represent. Changes made to update deprecated methods in jeromq 0.5.1. Since (de)serialization is more generic than just sim0mq, the classes to do (de)serialization have been moved to a separate project called djutils-serialization. See https://djutils.org for more information. Finalized coding / decoding for all types in the TypedMessage. Update for DJUNITS version 3.00.07 to use instantiation helper classes. Increased coding / decoding for more types in the TypedMessage. Message loss in case of multi-threading repaired. Several examples added in demo package to test multi-threading. Used ZContext wrapper instead of ZMQ.Context. Included most types in the TypedMessage for coding and decoding. Allowed for UTF8 or UTF16 encoding of messages. Update for DJUNITS version 3.00.05. Update for jeromq version 0.4.3. Units and DisplayUnits adapted to the changes in DJUNITS version 3.00.01. Two bytes used for the Money type as 255 is too low, and cannot store the standard currency id codes. First version of type structure and message structure. First version of the major messages of the Federation Manager, Federate Starter and Model. First version of the abstract versions of Federation Manager, as well as model implementations of the Federate Starter and Model.