* 2019-05-07 0.9.40 released

2019-05-02 zzz
 * Android: Catch ISE from PRNG at shutdown (ticket #2077)
 * GeoIP Maxmind 2019-04-29
 * NTCP: Rare EventPumper 100% CPU fix (ticket #2476)
 * UPnP: Remove finalize() in HTTPSocket (ticket #2490)

2019-04-25 zzz
 * Build: Drop unmaintained sample apparmor script (ticket #2319)
 * i2ptunnel: Force connect delay and bulk profile for most
   client tunnel types, and hide from UI
 * Transport: Disable NTCP 1 by default

2019-04-24 zzz
 * Crypto: Catch ProviderException in KeyStoreUtil (ticket #2479)

2019-04-22 zzz
 * Build:
   - Switch to IzPack 5.1.3 for building releases (ticket #1864)
   - Use izpack2exe for Windows installer (ticket #2403)

2019-04-21 str4d
 * Gradle:
   - Adjust dependencies to match Tomcat and Jetty updates
   - Generate reproducible archives
   - Generate attributes for JAR manifests
 * Tests: Fix ministreaming tests after access filtering changes

2019-04-20 zzz
 * Console, SusiDNS: New icons
 * Debian: Update Bionic/Cosmic to include patch for Jetty 9.4
 * Router:
   - Update NTCP checks for NTCP2
   - Remove old check for 0.6.1.32 and earlier routers

2019-04-18 zzz
 * Console: Improve error message when graphs disabled (ticket #2452)
 * Utils: CoDel minor speedup (ticket #2398)

2019-04-17 zzz
 * Transport: More fixes for NTCP when SSU disabled (ticket #1417)

2019-04-16 zzz
 * Console: More new icons

2019-04-15 zzz
 * Console: Don't display I2CP error during soft restart (ticket #2468)
 * NamingService: Fix class selection in app context (ticket #2469)
 * Tomcat 8.5.40

2019-04-13 zzz
 * i2ptunnel:
   - Config UI for encrypted ls2
   - Display encrypted b32
   - Disable registration authentication when encrypted
   - Hide I2CP config in router context
   - Disallow any encrypted LS for offline keys
   - Fix NPE creating server tunnel
   - Add Red25519 sigtype option for servers

2019-04-10 zzz
 * Jetty: Hide sizes and dates of directories in listings
 * NTCP2: Allow longer padding in msg 1 if NTCP1 disabled

2019-04-08 zzz
 * Util: Fix memory leak in compressor (ticket #2471)

2019-04-03 zzz
 * I2PTunnel: Start/stop POST throttle timer

2019-04-02 zab
 * I2PTunnel: Implement access filtering (ticket #2464)

2019-03-31 zzz
 * Data: Implement Destroyable for private keys (ticket #2462)

2019-03-29 zzz
 * Crypto: SigContext (WIP) (proposal #148)
 * NetDB: Persist cached blinding data (proposal #123)

2019-03-27 zzz
 * NetDB: Cache blinding data for lookups and decryption (proposal #123)

2019-03-23 zzz
 * Data: Preliminary work on new b32 format (proposal #149)
 * SelfSignedGenerator:
   - Fix generation with Ed25519ph keys (ticket #2465)
   - Increase serial number from 63 to 71 bits
 * SusiDNS: Add import feature (ticket #2447)

2019-03-22 zzz
 * i2ptunnel: Escape {} in URLs (ticket #2130)

* 2019-03-21 0.9.39 released

2019-03-16 zzz
 * Fix Debian builds with Jetty 9.4.15 (ticket #2457)

2019-03-11 zab
 * Startup: make negative client app delay value mean waiting 
   for router to be RUNNING (ticket #2377)
 * I2PTunnel: make I2PTunnel default to negative startup delay value
   (ticket #2377)

2019-03-11 zzz
 * Console: New home page icons

2019-03-09 zzz
 * Data: Consolidate offline key check
 * I2CP: Add support for blinding secret
 * i2ptunnel: Prevent registration auth if key offline

2019-03-07 zzz
 * NetDB: Minor performance improvement in selectors

2019-03-06 zzz
 * NetDB: Fix flood version check, add version check for RedDSA

2019-03-05 zzz
 * Data: Update Encrypted LS2 blinding and encryption

2019-03-04 zzz
 * Console: Fix NPEs displaying encrypted LS2
 * Data: Fix NPE in debug logging
 * I2CP, NetDB: More fixes for encrypted LS2 (proposal 123)
 * NetDB: Call fail callback when lookup is negative cached (thx zab)

2019-03-02 zzz
 * I2CP, NetDB: Fixes for encrypted LS2 (proposal 123)

2019-03-01 zzz
 * Streaming: Fix sending messages with expired times (ticket #2451)

2019-02-28 zzz
 * Console:
   - Fix router logs not shown if first msg is a dup
   - Change fallback client names to use b32

2019-02-26 zzz
 * SSU:
   - Fix scheduling of peer test at startup (ticket #2441)
   - Fix RTT/RTO calculations (ticket #2443)

2019-02-25 zzz
 * NetDB: Fix dup publish of RI at startup
 * NTCP: Fix number of SendFinisher threads (ticket #2438)

2019-02-23 zzz
 * Console: Flip order of router logs
 * NetDB:
   - Use published date, not earliest lease expiration, for LS2 comparisons
   - Fix earliest LS expiration adjustment when publishing for LS2
   - Increase flood candidates for LS2
   - Don't start new store after verify fail if we've already done so
   - Version checks for encrypted LS2
 * NTCP: Loop in pumper if more to write (ticket #2440)

2019-02-21 zzz
 * Crypto: Keygen for RedDSA, allow RedDSA for unblinded keys (Enc LS2)
 * Data: Always set unpublished flag for inner LS (Enc LS2)
 * I2CP: Force i2cp.leaseSetType option for offline keys

2019-02-20 zzz
 * Crypto: ChaCha20 and RedDSA for Encrypted LS2 (proposal #123)
 * Data: Encrypt/decrypt/sign/verify for Encrypted LS2 (proposal #123)

2019-02-19 zzz
 * Crypto: Implement blinding, add sig type 11 (proposal 123)

2019-02-18 zzz
 * Console: Drop midnight and classic themes (ticket #2272)
 * Tomcat 8.5.38
 * Transport:
   - Fixes for NTCP when SSU disabled (ticket #1417)
   - Delay port forwarding until after UPnP rescan complete

2019-02-08 zzz
 * Console: Hide disabled transports on /peers
 * SSU: EstablishmentManager fixes (ticket #2397)

2019-02-07 zzz
 * NTCP:
   - Add option to disable NTCP1 (ticket #2328)
   - Don't bid for outbound-only NTCP2 addresses
   - Fix NTCP2 cost when transitioning to inbound
 * SAM: Support offline keys
 * Streaming: Fix exception after sig verify fail

2019-02-06 zzz
 * Build: Add targets for alternate debian distros (ticket #2410)
 * Crypto: Shortcut GroupElement representation conversion
 * I2CP: Prevent use of repliable datagrams with offline keys

2019-02-05 zzz
 * Transport:
   - Clean up unreachable() methods (ticket #2382)
   - Speed up NTCP allowConnection() (ticket #2381)
   - OutNetMessage cleanup (ticket #2386)
   - SSU PacketHandler cleanup (ticket #2383)

2019-02-04 zzz
 * I2CP: Change format and message type of CreateLeaseSet2 message

2019-02-03 zzz
 * I2CP:
   - Remove revocation private key from CreateLeaseset2 message
   - Use correct key to sign SessionConfig with offline keys
 * i2ptunnel: Fix HTTP websockets by passing through
   Connection headers containing "upgrade" (ticket #2422)
 * Streaming:
   - Support offline signatures (proposal 123)
   - Don't send FROM in RESET, not required since 0.9.20
   - Send RESET when SYN signature verification fails
   - Use cached buffers for signature verification
   - Always verify packets with signatures, even if not required
 * Test: Disable NTP in LocalClientManager

2019-02-02 zzz
 * Debian: Fix build of i2pcontrol

2019-02-01 zzz
 * Debian: AppArmor fix for Oracle JVM (ticket #2319)
 * i2ptunnel:
   - Caching of outproxy selection, avoid last-failed outproxy
   - More localhost checks
   - Handle PUT like POST

2019-01-31 zzz
 * Debian: Fix version detection of Tomcat 9 required
   for reproducible builds (ticket #2279)

2019-01-30 zzz
 * Build: Fix javac.classpath in junit.compileTest targets (ticket #2333)
 * I2CP: Fixes for CreateLeaseset2 message with multiple keys

2019-01-28 zzz
 * Bundle i2pcontrol
 * EdDSA: Make more classes serializable (Github PR #68)

2019-01-27 zzz
 * NDT:
   - Catch exception on DNS lookup failure (ticket #2399)
   - Add support for specifying server in CLI (ticket #2413)

2019-01-24 zzz
 * Debian:
   - Fix Debian control files (ticket #2401)
   - Add build option for libtomcat9 (ticket #2364)
   - Fix PPA builds for precise and trusty (ticket #2408)

* 2019-01-22 0.9.38 released

2019-01-21 zzz
 * Debian:
   - Add source param to javadoc target (ticket #2394)
   - Replace ttf-dejavu with fonts-dejavu (ticket #2395)
 * Reseed: Update SSL cert

2019-01-18 zzz
 * Build:
   - Update translations
   - Add files for Disco
 * NTCP: Stop X25519KeyFactory on shutdown (ticket #2388)
 * Plugins: Fix loading of webapp configuration classes (ticket #2385)

2019-01-15 zzz
 * Debian: AppArmor updates (ticket #2319)
 * SusiMail:
   - Fix sending mail with attachments (ticket #2373)
   - Fix deleting attachments from drafts
   - Fix dup attachments after clicking add attachment without browsing first
   - Fix update of draft folder after saving as draft
   - Change text of add attachment button for clarity

2019-01-13 zzz
 * I2CP: Set LS2 unpublished bit, show in debug output

2019-01-12 zzz
 * NetDB: Use isSlow() in floodfill criteria
 * SSU: More consolidation of clock().now() calls

2019-01-10 zzz
 * I2CP:
   - Router-side handling of meta LS2
   - Remove client-side-only options from those sent to router
   - Router-side stub for encrypted LS2

2019-01-09 zzz
 * Console: Fix broken image link on /configui
 * I2CP: Stub out client-side creation of meta and enc. LS2
 * Wrapper: Increase default heap to 256 MB

2019-01-05 zzz
 * Crypto: Stub out EdDSA blinding (proposal 123)

2019-01-04 zzz
 * Build: Check cert validity
 * Data: Add type byte to MetaLease (proposal 123)
 * NetDb: Prevent ISJ deadlock (ticket #2366)
 * Router: Reseed updates

2019-01-02 zzz
 * Console: Wizard styling (ticket #1473)
 * Data: Encrypted LS2 progress (proposal 123)

2019-01-01 zzz
 * Console:
   - New light background (ticket #738)
   - Add warning for OpenJDK Zero VM
 * Data:
   - Add support for LS2 multiple encryption keys (proposal 123)
   - Fix Meta LS2 bugs (proposal 123)
 * Debian: Remove obsolete systray.config
 * NBI: Add lookup tables for ARMv8

2018-12-24 zzz
 * Console: Update ARM warning (ticket #2368)

2018-12-23 zzz
 * Console: Sybil tool background analysis setup form

2018-12-21 zzz
 * Transports: Improve banning of routers from wrong network

2018-12-19 zzz
 * NTCP: Efficiency improvements (ticket #2355)

2018-12-17 zzz
 * Console: Sybil tool background analysis
 * Data: Set encrypted LS2 hash (proposal 123)
 * GeoIP: Fix NPE (thx parg)
 * NTCP: Use new HKDF class

2018-12-15 zzz
 * Console: Sybil tool refactoring

2018-12-13 zzz
 * Crypto: Add HKDF class for LS2 and NTCP2 (proposal 123)

2018-12-12 zzz
 * DTG: Use UrlLauncher to launch browser
 * Installer: Drop unused systray.config
 * UrlLauncher: Improvements and cleanups
 * Util: Add another ShellCommand String[] method

2018-12-11 zzz
 * Crypto: HMAC-SHA256 cleanup
 * Debian: Add conffiles list
 * Utils: Enable TLSv1.3 for SSL sockets

2018-12-08 zzz
 * Console: Hide I2CP config if disabled
 * NetDb: Allow longer expiration for Meta LS2
 * Transport:
   - Don't repeatedly publish RI if IPv6-only but
     not configured IPv6-only
   - Don't set status to disconnected if IPv6-only but
     not configured IPv6-only

2018-12-05 zzz
 * I2CP:
   - Propagate error from disconnect message to session listener
   - Set offline keys in generated LS2
   - Set and validate offline sig in SessionConfig

2018-12-04 zzz
 * Data: Add preliminary PrivateKeyFile support for LS2 offline keys (proposal #123)
 * I2CP: Add preliminary support for LS2 offline keys (proposal #123)

2018-12-03 zzz
 * I2CP: Consolidate all the port 7654 definitions
 * NetDb: Don't send our RI in response to DSM when shutting down
 * Wizard: Update text

2018-12-02 zzz
 * Router: Allow LS2 DSM down a tunnel
 * Transport: Add methods to force-disconnect a peer

2018-12-01 zzz
 * I2CP: Add preliminary support for LS2 (proposal #123)
 * Router: More support for LS2 types (proposal #123)

2018-11-30 zzz
 * Crypto: Move X25519 primitives from router to core (proposal #144)
 * Data: Update LS2 sign/verify to match spec changes (proposal #123)

2018-11-25 zzz
 * Utils: Catch ProviderException in SelfSignedGenerator (ticket #2344)

2018-11-20 zzz
 * GeoIP: Add support for Maxmind GeoLite2 format (ticket #2268)

2018-11-19 zzz
 * Debian: Add libjson-simple-java dependency
 * Util: Change json lib from net.minidev.json to com.json.simple

2018-11-17 zzz
 * Console: Wizard fixes and improvements

2018-11-15 zzz
 * Console: Connect NDT to setup wizard, various fixes

2018-11-13 zzz
 * Console:
   - New M-Lab NDT subsystem (ticket #2321)
   - Setup wizard (WIP) (ticket #1473)
 * Router: LS2 handling for proposal 123

2018-10-13 zzz
 * Build: Add javac.classpath to junit.compileTest targets (ticket #2333)
 * Data: Add LS2 classes for proposal 123

2018-10-11 zzz
 * Console: Remove static Server reference

2018-10-10 zzz
 * Build: Provide option to prevent Class-Path in manifests (ticket #2317)

2018-10-09 zzz
 * Console: Sybil tool refactoring

2018-10-08 zzz
 * Console: Refactor StatSummarizer

2018-10-07 zzz
 * Build: Fix config with-libtomcat8-java but not
   with-libjetty9-java (ticket #1934)
 * Debian: Don't override dh_builddeb (ticket #2329)

2018-10-06 zzz
 * Console:
   - Fix P/X caps on /tunnels
   - Netdb search fixes (ticket #2326)
   - Sort addresses in RIs
   - Split /peers page into tabs (ticket #1934)

* 2018-10-04 0.9.37 released

2018-10-01 zzz
 * Pull translations from tx

2018-09-26 zzz
 * Crypto: Avoid privkey conversion when generating CRL,
   failing on Android for unknown reasons (ticket #2296)
 * IRC: Make inbound whitelist static
 * Router: Don't add 'O' cap for P/X anymore

2018-09-24 zzz
 * Build: Compile jsps in-order for reproducibility (ticket #2279)

2018-09-23 zzz
 * Plugins: Blacklist neodatis and seedless for Java 9+ (ticket #2295)

2018-09-22 zzz
 * NTCP:
   - Fix handling of multiple connections
   - Change termination code for expired RI

2018-09-16 zzz
 * Build: Fix hang with Tomcat 8.5.33+ (ticket #2307)
 * Tomcat 8.5.34

2018-08-27 zzz
 * Debian: Prevent dup version (ticket #2300)

2018-08-26 zzz
 * NTCP2: Publish outbound address after transition to firewalled

2018-08-24 zzz
 * i2psnark: Better comment deduping, fixes rating average
 * NTCP2: Enable by default

* 2018-08-23 0.9.36 released

2018-08-20 zzz
 * Jetty 9.2.25.v20180606

2018-08-19 zzz
 * NTCP2: Catch bad IV exception
 * Update translations

2018-08-16 zzz
 * i2ptunnel: Change read timeout defaults now that streaming timeout works

2018-08-13 zzz
 * Console: Format part. tunnel rate

2018-08-04 zzz
 * Data: Check sooner for unknown sig type
 * I2NP: Remove unused Stream methods

2018-08-03 zzz
 * NTCP2: Fix termination handling and padding calculation

2018-08-02 zzz
 * i2psnark: Don't disconnect seeds if comments enabled (ticket #2288)
 * NTCP2: Send termination on idle timeout
 * Streaming: More efficient copying in MessageInputStream

2018-07-28 zzz
 * Console: Catch ISE in get/setAttribute() (ticket #1529)
 * Streaming: Throw exception on read timeout (ticket #2292)

2018-07-27 zzz
 * Console: Split netdb output into pages
 * Router: Implement router.rejectStartupTime config (ticket #2285)
 * Transport: Defer NTCP 1/2 classification until receiving 64 bytes

2018-07-21 zzz
 * Build: Add check for libtaglibs package in debian builds
 * Console: Add netdb search by transport
 * i2psnark: Sequential order option for single-file torrents (ticket #2234)
 * NTCP2:
   - Fix error sending large message (ticket #2286)
   - Fix NPE after handshake failure (ticket #2286)
   - Reduce log levels
 * Tests: Backport EdDSA junit changes; fixes NPE in 2 tests

2018-07-16 zzz
 * Console: Fix HTML error on /configservice w/o wrapper

2018-07-15 zzz
 * I2CP: Add option for forcing gzip on/off per-message
 * NTCP: Increase failsafe sleep threshold (ticket #2251)
 * Router: Add CLI tool to generate family keys

2018-07-14 zzz
 * i2psnark: Recreate deleted files on recheck/reopen (ticket #2125)

2018-07-13 zzz
 * i2psnark: Add sequential order option (ticket #2234)

2018-07-10 zzz
 * Installer (ticket #1864):
   - Fix wrapper selection on Windows 10
   - Add support for IzPack 5
 * SSU: Sync/notify improvements (ticket #2260)
 * Util: Convert more caches to TryCache (ticket #2263)

2018-07-08 zzz
 * i2psnark: Add comment icon (ticket #2278)
 * NTCP2: Avoid possible NPEs (ticket #2286)
 * Transport: More efficient caching (ticket #2263)

2018-07-06 zzz
 * NTCP: Read all available data when able (ticket #2243)
 * SSU: Change remaining acks from List to Set (ticket #2258)

2018-07-05 zzz
 * i2psnark:
   - Fix IOOBE when stopping torrent that is allocating (ticket #2273)
   - Fix comments wrapping (ticket #2284)
 * NTCP2: Increase max message size

2018-07-04 zzz
 * NTCP: Don't advertise interface address when configured for force-firewalled

2018-07-01 zzz
 * Build: Move Jetty/Tomcat version properties to top-level build.xml
 * Crypto: Backport EdDSA versions 0.2/0.3 from github
 * NTCP2: Adjust padding defaults and size calculation

2018-06-30 zzz
  * Console: Fix reading flags when symlinked (ticket #2270)
  * Router: Reselect jbigi lib when processor changes (ticket #2277)

2018-06-28 zzz
  * Debian: Initial work on reproducible builds (ticket #2279)

2018-06-27 zzz
  * Debian: Add dependency for famfamfam-flag-png (ticket #2270)

2018-06-26 zzz
  * Console: Move modified flags to new dir (ticket #2270)
  * Console servlets: Move to new package (ticket #2265)
  * NTCP pumper: Reduce false positives in failsafe code (ticket #2237)
  * NTCP2: Initial checkins (proposal #111)
  * Streaming: Enforce valid port in setters

* 2018-06-26 0.9.35 released

2018-06-23 zzz
 * Pull translation updates from Transifex
 * New Azerbaijani translations
 * GeoIPv6 update from MaxMind 2018-06-04

2018-06-21 zzz
 * Console: Add Azerbaijani
 * SusiMail: Fix NPE on logout (ticket #2266)

2018-06-19 zzz
 * Console:
   - Restore line breaks in copy/pasted logs (ticket #2078)
   - Don't show individual tx/rx graphs if showing combined graph (ticket #2106)
 * SSU: Set volatile on field (ticket #2260)

2018-06-17 zzz
 * NTCP: Log and fail messages on outbound queue overflow

2018-06-16 zzz
 * GeoIP: Don't log error when reading to the end
   of the geoipv6.dat file

2018-06-15 zzz
 * i2ptunnel: Add new irc server
 * SusiMail: CSS fixes (ticket #2242)

2018-06-13 zzz
 * Console: po-update
 * NTCP: Fix clearing of write interest ops on
   inbound establishment (ticket #2237)

2018-06-09 zzz
 * eepsite: Fix up help page in prep for translation (ticket #2214)
 * i2psnark: Fix torrent ignoring priority settings when
   autostart is enabled (ticket #2229)

2018-06-02 zzz
 * Console: Sort tunnels within pools by expiration (ticket #2232)
 * NTCP:
   - Refactor EstablishState in prep for NTCP2
   - Initial NTCP2 RI and payload code, disabled for now
   - Fix state lock, should not have been static

2018-06-01 zzz
 * SusiDNS: Fix deleting notes (ticket #1433)

2018-05-31 zzz
 * Console:
   - Fix CSS preventing ordered lists (ticket #2075)
   - Change Java 10 warning to Java 11,
 * SusiDNS: Add notes form (ticket #1433)

2018-05-30 zzz
 * Debian build fixes, remove things from source package
 * NTCP: Cleanup, prep for NTCP2, increase max RI size
 * SusiMail:
   - Button and CSS fixes
   - Don't require confirmation to delete from Trash,
   - Clear reallydelete flag when clicking cancel or change folder
   - Fix dup ConnectWaiter run, lack of failure message
   - Fix persistent loading/fetching/refresh messages

2018-05-28 zzz
 * Console: Tagged string fixes (ticket #2017)
 * SusiMail: (ticket #2087)
   - Send deletions after connect so emails don't come back after a move
   - Fix fetches in check mail
   - CSS fixes

2018-05-26 zzz
 * /confignet: Reorganize (ticket #2217)
 * /configsidebar: Tag sections for translation; sort unselected sections by translated name
 * i2psnark:
   - Hide "0 Bps" if no peers (ticket #2152)
   - Hide peers button if no peers (ticket #2152)
   - Hide column 1 icon for peers (ticket #1996)
 * i2ptunnel: Retry accept after server socket closed (ticket #2003)
 * Jetty: Skip files with [] in default servlet listing
 * ministreaming: Add classpath to jar (ticket #2228)
 * Router: Fix wrapper.config path in OOM message when installed as
   Debian package, but not running as a service (ticket #2223)
 * Summary Bar: Change header from "I2P Updates" to "Update Status" (ticket #2137)
 * Utils: Disable DNSoverHTTPS by default (ticket #2201)

2018-05-25 zzz
 * Console: Fix changes to wrong tunnel on /configtunnels (ticket #2227)
 * i2ptunnel: Fix dup tunnels clicking generate on new tunnel (ticket #2225)

2018-05-06 meeh
 * launchers:
   - rewritten some logic
   - made CompleteDeployment which extracts i2pbase.zip
   - made a SBT task that creates i2pbase.zip
   - after the hassle I had even getting an JRE7, short: OSX assumes JRE8+
   - started on a class SystemTrayManager which also holds router state info for menu item filter
   - "ant osxLauncher" produces now a valid app bundle under launchers/output
 * Updated ant and made osxLauncher work again (first time triggers SBT dl if not already installed.)
 * monotone ignore file update

2018-05-05 zzz
 * i2ptunnel:
   - Link to SSL wizard (ticket #2159)
   - Enable SSL to i2p hosts by default
 * Streaming: Don't send HTTP response on an HTTPS connection

2018-05-01 meeh
 * launchers:
   - Added deployment profile for Mac OS X launcher.
   - Sourced out common code to a common library SBT project.
   - Decided ~/Library/I2P should be base path on Mac OS X when using regular bundle (Non-BB).

2018-04-29 zzz
 * Console: Fix NPE on /configsidebar (ticket #2220)

2018-04-28 zzz
 * i2ptunnel:
   - Fix startup deadlock in TCG
   - Initial work on SSL wizard

2018-04-27 zzz
 * Tunnels: Fix and consolidate allow-zero-hop logic,
   prevent zero-hop client tunnels when no active peers

2018-04-24 meeh
 * Mac OS X launcher is still WIP, but:
   - Building the I2P.app bundle is mostly done
     - It copies certificates, locale and manuals
     - It copies jar and war files to the bundle
 * Added new entries to mtn-ignore so we avoid any PEBCAK with commiting build directories
 * Added an SBT AutoPlugin named IconHelper to generate valid ICNS images for Mac OS X

2018-04-23 zzz
 * Clock: Fix early NPE via DoH
 * EepGet: Handle HTTP response line with no status text

2018-04-23 meeh
 * Added launchers for Browser Bundle and Mac OS X

2018-04-22 zzz
 * SusiMail: Include attachments when forwarding (ticket #2087)

2018-04-21 zzz
 * SusiMail: Remove Bcc-to-self feature, replace with
   copy-to-sent config (ticket #2087)

2018-04-19 zzz
 * SusiMail:
   - Fix reply/forward filling in compose form
   - Better formatting of addresses in forwarded mail

2018-04-18 zzz
 * SusiMail: Fix unhandled decoding exception

2018-04-17 zzz
 * Console: Fix sidebar status when updating plugin (ticket #2137)
 * Reseed, NTP: Use DNSoverHTTPS (ticket #2201)
 * SusiMail: Fix error message on login page

2018-04-16 zzz
 * Console: Add links to bandwidth graphs on /tunnels
 * SusiMail: Move logging to router logs (ticket #2191)

2018-04-14 zzz
 * Console: Add built-by to /logs (ticket #2204)
 * CPUID: Fix TBM detection (ticket #2211)
 * Debian updates (ticket #2027, PR #15)
 * i2ptunnel: Build restructuring
 * Jetty: Fix quote in header line tripping XSS filter (ticket #2215)
 * SusiMail: Add folders, drafts, background sending (ticket #2087)

2018-04-11 zzz
 * Debian updates for 0.9.34
 * Jetty 9.2.24-v201801015
 * Tomcat 8.5.30

* 2018-04-10 0.9.34 released

2018-04-10 zzz
 * Console: Change Java 9 log warning to Java 10
 * i2psnark: Fix logic error in warning
 * Tunnels: Fix fallback stat name

2018-04-05 zzz
 * EepGet: Increase max header length
 * SSLEepGet: Set default CLI proxy type back to none
 * GeoIP update

2018-04-04 zzz
 * Reseed: Move ReseedBundler from console to router (ticket #2203)

2018-04-03 zzz
 * Stats: Enable per-tunnel bw stats by default (tickets #2106, #2145)

2018-04-02 zzz
 * KeyStore: Fix ConncurrentModificationException (ticket #2196)

2018-03-24 zzz
 * i2psnark: Change default sort order for some columns (ticket #2152)
 * i2ptunnel: Fix display of 'tunnels not initialized' message

2018-03-19 zzz
 * i2ptunnel: Rewrite or pass through Accept: header

2018-03-15 zzz
 * i2psnark: Start even if data directory not found (ticket #2166)

2018-03-14 zzz
 * Console:
   - Hide links to webapps and eepsite if not running (ticket #2161)
   - Hide link to /configplugins if disabled
   - Add error handler to webapps (ticket #2155)
 * i2ptunnel: Hide links to webapps that are not runnning (ticket #2161)
 * SusiDNS: Translate svg image text (ticket #1749)
 * SusiMail: Shorten URLs

2018-03-12 zzz
 * SusiMail: Fix up compose.js (ticket #2176)

2018-03-11 zzz
 * Crypto: Add utils for renewing a cert in a keystore
 * Router: More peer selection fixes for hidden mode

2018-03-10 zzz
 * Console: Fix compression logic
 * i2ptunnel: Strip server Date header
 * NetDB: Wake up FloodfillMonitor when setting changes
 * Router: Fix rekey after hidden config change

2018-03-09 zzz
 * Console:
   - Enable compression (ticket #2157)
   - Close output stream on redirect
   - Add Accept-Ranges header

2018-03-08 zzz
 * Crypto: Generate non-CA cert for family
 * Router:
   - Improved tunnel peer selection of closest hop for routers
     that are hidden, IPv6-only, or have disabled transports
   - Don't select IPv6-only routers for IBGW or OBEP
   - Don't try to build tunnel if adjacent peers aren't compatible
   - Remove ancient version check in peer selectors
   - Check for transport compatibility before direct store of RI;
     send through tunnel if incompatible
   - Fix repeated store of RI when IPv6-only

2018-03-07 zzz
 * Router:
   - Validate tunnel ID in requests
   - Remove ancient version check in BuildRequestor
   - Disable floodfill for IPv6-only and disabled transports

2018-03-05 zzz
 * Util: Consolidate FileFilters

2018-03-04 zzz
 * Console:
   - Show SAM cert on /certs
   - Fix more forms inside tables
 * i2ptunnel: Fix multipart config for /register
 * KeyStore: Log expiration of self-signed certs

2018-03-03 zzz
 * Utils:
   - Skip IPs of down interfaces on Windows
   - Improve identification of temporary IPv6 addresses

2018-02-28 zzz
 * Logs: Fix lost log messages at router shutdown
 * Tools: CLI improvements for Addresses and UPnP
 * Transport: Rescan addresses and UPnP after network reconnection
 * UPnP: IGD IP validation

2018-02-27 zzz
 * UPnP:
   - Improve diagnostics
   - Fix event listening, prep for using events
   - Recognize IGD2 schemas (ticket #2175)
   - Don't use IGD on same host
   - Preliminary work for IPv6

2018-02-25 zzz
 * Crypto: Add support for more alt names in certs (tickets #2159, #2160)

2018-02-24 zzz
 * Console: Mark request handled when rejecting in HostCheckHandler
 * i2psnark standalone: Add DNS rebinding protection
 * XSSFilter: Catch cascaded ISE

2018-02-23 zzz
 * Getopt: Add new translations, fix tests
 * i2psnark: Number formatting tweaks (ticket #1913)
 * SusiMail: Check mail fixes (ticket #2174)

2018-02-22 zzz
 * Util: Support setSoTimeout() for InternalSockets

2018-02-21 zzz
 * Console: Hide options on /configupdate if a package (ticket #2172)
 * SusiMail: Add Date header to sent messages

2018-02-20 zzz
 * Console:
   - Redirect to HTTPS if available (ticket #2160)
   - Change all 302s to 303 or 307
   - Change sendError() to setStatus() for 3xx responses
 * Crypto: Backdate selfsigned cert to allow for clock skew
 * Eepget: Handle 308

2018-02-19 zzz
 * Console:
   - Change trac links (ticket #2014)
   - Change selfsigned cert cname to localhost (ticket #2160)
 * Crypto: Add IP addresses to selfsigned cert SAN (ticket #2160)
 * Streaming: Don't exceed configured tag settings
 * Time: More sanity checks on NTP responses

2018-02-18 zzz
 * i2ptunnel: Retry accept after router soft restart (ticket #2003)

2018-02-17 zzz
 * Console: Number formatting tweaks (ticket #1913)
 * i2psnark: folder.js cleanup (ticket #2168, PR #14)
 * i2ptunnel: Close sockets in finally{}
 * SusiMail: Fix mail save truncation

2018-02-16 zzz
 * i2psnark: Fix NPE on torrent not found (ticket #2167)
 * i2ptunnel: Change POST throttle response to 429
 * Streaming: Configurable response when over conn limits (ticket #2145)

2018-02-12 zzz
 * i2ptunnel: Close sockets
 * Proxy: Update clearnet user-agent (ticket #2163)
 * SusiMail:
   - Background email checking (ticket #2087)
   - Set Cache-Control header for attachments
   - Fix rotated attached images

2018-02-11 zzz
 * Util: Number formatting tweaks (ticket #1913)

2018-02-09 zzz
 * SusiMail:
   - Don't collapse spaces in email display (ticket #2156)
   - Constant URL for attachments
   - Fixes when no subject is present
   - Filename encoding fixes
   - Handle lower case in Q-P decode
   - Don't show the no-charset warning
   - Thread loading mail from disk
   - More error handling fixes

2018-02-08 zzz
 * SusiMail:
   - Error handling fixes
   - More tolerant parsing of Date headers
   - Set a date if we don't get a Date header
   - Fix parsing long Base64 encoded headers
   - Fix page count after changing page size
   - Make attribute name parsing case-insensitive
   - Import mail method for debugging

2018-02-07 zzz
 * SusiMail: Use input streams for reading mail (ticket #2119)
   - Rewrite Base64, HeaderLine, and QuotedPrintable decoders
   - Rewrite ReadBuffer class and utilities for streams
   - ReadBuffer becomes Buffer interface with multiple implementations
   - Rewrite Mail and MailPart to parse the headers only once
   - Rewrite MailPart parser to use streams
   - MailPart decoder rewrite to decode stream-to-stream

2018-02-01 zzz
 * Console: Fix number formatting (tickets #1912, #1913, #2126)
 * i2psnark: URL escape fixes
 * i2ptunnel: Reset connection if out of threads
 * NetDB: Increase min floodfill version
 * SusiMail: Don't duplicate Re: and Fwd: in subject

* 2018-01-30 0.9.33 released

2018-01-26 zzz
 * i2ptunnel: Fix dup tunnels on create
 * Update translations from Transifex

2018-01-25 zzz
 * GeoIP 2018-01-05
 * SusiMail: Close POP3 socket on error

2018-01-24 zzz
 * i2psnark: Prevent commenting without comment name (ticket #2138)
 * SusiMail: Fix header corruption (ticket #2139)

2018-01-19 zzz
 * i2ptunnel: Prevent changing sigtype after dest creation (ticket #2128)

2018-01-18 zzz
 * Build: New poupdate-source target
 * Util: Consolidate console URL generation in PortMapper

2018-01-17 zzz
 * i2ptunnel:
   - Set defaults for limits
   - Change include style for edit jsps

2018-01-16 zzz
 * i2ptunnel: Fix NPE stopping TCG

2018-01-14 zzz
 * Keyring (ticket #2108):
   - Separate local and remote dests on /configkeyring
   - Prohibit local changes on /configkeyring
   - Remove local keys on tunnel shutdown or encryption disable
   - Ensure subsession encryption setting matches primary session

2018-01-13 zzz
 * SessionKeyManager: Clean up sessions with excess tagsets

2018-01-10 zzz
 * Addressbook: Remove finalizers (ticket #2115)
 * /confignet: Display IP even if firewalled (ticket #2133)
 * i2psnark:
   - Fix double-escaping of '&' (ticket #2127)
   - Fix infinite loop stopping update torrent (ticket #2125)
 * jrobin: Disable DeallocationHelper for Java 9
 * /netdb: Note encrypted leasesets

2018-01-09 zzz
 * SusiMail: Rewrite/fix subject line encoding

2018-01-06 zzz
 * Console: Show and set burst bandwidth (ticket #2123)
 * i2ptunnel:
   - Advanced config in/out tunnels separately
   - Better error message on invalid URLs (eepget too) (ticket #2130)
   - Escape chars unescaped by browsers (ticket #2130)

2018-01-04 zzz
 * i2psnark: Fix overflow in ratio sorter (ticket #2129)

2017-12-23 zzz
 * SusiMail:
   - Fix filenames for inline attachments
   - Support RFC 5987/6266 for attachment and save-as filenames
   - Add alt tags for images
   - Fix long encoded lines in headers
   - Fix replacing underscores in Base 64 decoded headers

2017-12-22 zzz
 * SusiMail:
   - Fix bug sending CC recipients as a 2nd To line
   - Separate recipients by commas
   - Workaround on receive side for CC bug
   - Display To and CC lists on show page
   - Case-insensitive handling of all mail headers
   - Escape leading '-' in q-p encoding

2017-12-16 zzz
 * SusiMail:
   - Sorting cleanups and fixes, only sort when required
   - Show result after server check (ticket #2087)

2017-12-15 zzz
 * SusiMail: Don't store state in session object (ticket #1373)

2017-12-14 zzz
 * SusiMail (ticket #1373):
   - Put more parameters in forms and use P-R-G to
     put several parameters into the URLs
   - Redesign sort parameter handling
   - Fix state tracking issues with delete

2017-12-13 zzz
 * i2ptunnel: Add internal sockets for SMTP and POP3 (ticket #2118)
 * Util: InternalSocket improvements

2017-12-11 zzz
 * Jetty: Fix request log showing zero length for static content
 * Startup: Raise open files ulimit (ticket #1967)

2017-12-10 zzz
 * Router: Change RI locking to a read/write lock (ticket #2096)

2017-12-08 zzz
 * SU3File: Flush and sync on extract (ticket #1941)
 * SusiMail:
   - Reference mails by UIDL, not index on page, put UIDL in
     attachment links, remove session object UIDL (ticket #1373)
   - Fix download of attachments without a Content-Transfer-Encoding
   - Fix error return for attachment not found
   - Fix handling of requests for unknown messages
   - Set encoding for text attachments
   - Add more safe mime types for downloading
   - Add tooltips for icon-only buttons

2017-12-07 zzz
 * Console: Don't list aliased tunnels separately on
   /tunnels and /configtunnels
 * i2psnark: Better locking on BitField byte array
 * SusiMail: Recheck max size if SMTP server reports less than default
 * Util: Deprecate BigPipedInputStream

2017-12-05 zzz
 * Console: Fix multipart config for /configplugins
 * SusiMail:
   - Don't store attachments of composed email in-memory (ticket #1668)
   - Fix bug corrupting sent text and text attachments
     larger than about 1000 chars
   - Fix bug corrupting some sent text and text attachments
     containing '.'
   - Fix handling of unimplemented encoders
   - Add test code for encoders
   - Error message improvements
   - Adjust multipart size limits
   - Better handling of errors when multipart limits are exceeded
   - Test for total size limit

2017-12-04 zzz
 * Servlet: Refactor RequestWrapper to use Servlet 3.0 API (ticket #2109)

2017-12-03 zzz
 * i2ptunnel:
   - Don't lose messages on refresh (ticket #2107)
   - New clear messages button
   - Hide message box if none

2017-12-02 zzz
 * i2ptunnel: Propagate resets from streaming to Socket
   and vice versa (ticket #2071)
 * Streaming: Send reset when receiving more data after locally closed,
   rather than acking (ticket #2071)
 * Tests: Fix up deprecation warnings

2017-12-01 zzz
 * Build: Split net.i2p.router.web into two packages
 * Console: Move /configkeyring HTML to console, fix deletion,
   don't truncate hashes, better form errors, tag for translation (ticket #2108)
 * LeaseSet: Better error messages when decode fails (ticket #2108)
 * Streaming: Double the RTO on congestion (ticket #1939)

2017-11-27 zzz
 * Debian: Exclude gradle, IntelliJ, Docker, .tx, gcj files from source tarballs

2017-11-27 str4d
 * Build: Add Gradle build scripts for compiling the codebase and generating
   IDE project files.

2017-11-26 zzz
 * Build: Add xenial build option
 * Console: Safer processing of changes on /configadvanced
 * Context: Hopefully fix rare NPE on Android (ticket #2092)

2017-11-25 zzz
 * Console:
   - Show full logger.config path on /configlogging
   - Don't say 'Plugin downloaded' when installing from file
 * Debian:
   - Replace glassfish-javaee with libtaglibs-standard-* (ticket #2093)
   - Remove libecj-java dependency (ticket #2094)

2017-11-23 zzz
 * i2ptunnel: Add timeout to header reads for CONNECT, HTTP, and SOCKS clients
 * Wrapper 3.5.34

2017-11-22 zzz
 * i2psnark: Fix nbsp in logs on config change (ticket #2082)
 * Streaming: Fix bug causing loopback hangs and
   preventing desired ack behavior (ticket #1939)
 * Tomcat 8.5.23

2017-11-21 zzz
 * EepGet: Refuse attempted redirect to HTTPS, won't work
 * Reseed: Add support for reseeding via outproxy or Orchid (ticket #1841)

2017-11-20 zzz
 * HTTP Proxy: Better HTTP status message when no outproxy configured
 * i2prouter: Fix echo -n on OSX
 * Reseed: Add outproxy and Orchid proxy support (ticket #1841)

2017-11-19 zzz
 * Debian:
   - Fix builds for x32 (ticket #2076)
   - Incorporate patches 2 and 3 into build scripts
 * DTG: On OSX, set dock icon, and enable by default

2017-11-18 zzz
 * Reseed:
   - Add SOCKS proxy support (ticket #1130)
   - Show proxy info, if applicable, in logs
   - Show status in summary bar for manual reseed (previously hidden if more than 30 routers)
   - Show status in summary bar after successul completion
   - Show reseed button in summary bar if less than 50 known RIs (previously 30)
   - Show current status on /configreseed if already running
   - Consolidate proxy settings detection in ReseedRunner constructor
   - Enhance help text on /configreseed (tickets #423, #1130)

2017-11-17 zzz
 * Addressbook: Fix adding alternates after importing an empty book (ticket #2072)
 * Reseed: Add HTTPS proxy support (ticket #423)
 * SOCKS: Move code from i2ptunnel to core, in prep for SSLEepGet use (ticket #1130)

2017-11-16 zzz
 * Console: Hide Reseed HTTP proxy options if no HTTP URLs (ticket #2007)
 * i2psnark: Fix bad completion status after recheck (ticket #2046)
 * Jetty 9.2.22

2017-11-07 zzz
 * Utils: Constant-time password check

* 2017-11-07 0.9.32 released

2017-11-03 zzz
 * Update translations, add Indonesian as selection
 * GeoIP update

2017-11-03 str4d
 * Console:
   - /graphs:
     - Reorganised config form
     - Fixed "hide legends" option
   - Sidebar: limit event logs to last 7 days, to avoid page freezes
   - Fix scrolling latency issue light theme in Chrome/blink and older Firefox
     versions (ticket #2024)
   - Various cosmetic tweaks, fixes and enhancements
 * I2PSnark:
   - Reduce scrolling and hover latency
   - Add sort direction hover indicators to .snarkTorrents header icons
     (dark/midnight)
   - Various cosmetic tweaks, fixes and enhancements
 * Susimail/SusiDNS:
   - Various cosmetic tweaks, fixes and enhancements

2017-11-02 str4d
 * Console:
   - Sidebar:
     - Fix erratic display of sidebar graph
     - Add id to memory bar so we can target it for Chrome/blink display issue
 * I2PSnark:
   - Roll back target="_top" in config page to prevent embedded view from
     breaking out of iframe
   - Add target="_blank" to relevant links to avoid display in iframe in
     embedded mode
   - Enhance presentation of tracker links in TorrentInfo view

2017-10-31 str4d
 * I2PSnark: Use reflection to access ConfigUIHelper in standalone build

2017-10-25 str4d
 * Console:
   - /graphs:
     - Add option to hide legends
     - Adjust size of up/down bw graph to match other graphs (ticket #1996)
     - Modify image font color to better blend with themes
     - Tweak spacing of elements for non-Debian installs
   - Sidebar:
     - Adjust vertical spacing of general section
     - Rename 'General' section to 'Router Info' and move ident info to h3
       tooltip (ticket #1996)
     - Replace 'Short Router Info' with a new 'Advanced Router Info' section in
       default advanced sidebar (adds memory usage and clock skew)
     - Add optional embedded bandwidth graph (experimental)
     - Add optional memory usage bar
     - Add optional Advanced Peers section (adds failing and banned peers)
     - Add Help link to 'I2P Internals' section
     - Add help page anchored links and troubleshooting to 'Help & FAQ' section
     - Add download progress bar for router and plugin updates
     - Add 'Advanced Minimal' sidebar configuration
     - Add Jobs and Events links to Advanced section
     - Add additional reachability states for clockskew and vmcomm (with icons)
   - Homepage: Add 'Customize Sidebar' link to signpost the feature now that
     there are more optional sections available (ticket #1996)
   - /configui:
     - Add option to embed Susimail and I2PSnark in console
     - Use larger flags for language selection
   - /help:
     - Update sidebar help section (en)
     - Remove redundant CSS class from all help section files (li.tidylist)
   - /tunnels:
     - Indicate that no participating tunnels will be built when shared bw is too low
     - Replace <a name> with id attribute for anchor links
   - light:
     - Lighten/tint buttons and dropdowns to better blend with reworked theme,
       vary text color for different button states
     - Increase vertical spacing for status/buttons in news section
     - Fix minor rendering issue with h1's (remove bottom border-radius)
     - Fix some mismatched heading coloring issues
     - Fix alignment issue on /configservice in Arabic/Chinese (ticket #2024)
     - Ensure spacing of sidebar elements is consistent in Chinese
   - dark: Overhaul theme
   - classic: Add fallback CSS to ensure browsers without CSS3 support can
     display icons on buttons (tested with Netsurf)
 * Proxy: Remove truncation of URLs in the error messages and handle with CSS to
   avoid UI breakage
 * I2PTunnel: Add hostname / destination (b32) information to server section on
   index page (for parity with client tunnels section)
 * I2PSnark
   - Fix broken collapsible panels issue for browsers that don't support the
     feature by conditionally loading override CSS to expand panels by default
     and disable hover/active states for panel headings (tickets #2002, #2026)
   - Add UI option to configuration section to enable collapsible panels, and
     disable the option if a non-compliant browser is detected
   - Fix multiple instances of snark refreshing to the homepage (ticket #2028)
     (patch supplied by mindless)
   - Tentative fix for caching of images so ajax refresh doesn't reload all
     image resources
   - Standardize 'Save Configuration' action to return to top of the page
     (so we can see message log entry)
   - Add button hoverstate for tracker details, torrent details and file icons
   - light
     - Sync buttons in embedded mode with console theme
     - Fix non-functioning message log close icon
   - dark: Overhaul theme and sync with console theme in embedded mode
   - classic: refresh CSS
 * SusiDNS:
   - Reinstate filter removal on addressbook navigation links (ticket #1996)
   - Reduce vertical padding for filter buttons section
   - Migrate search section to div and reposition page elements to better
     integrate with host list and minimize whitespace
 * Susimail:
   - Overhaul dark theme
   - Sync theme to console theme by default, override if user sets theme
     (unless universal themeing is enabled)

2017-10-24 zzz
 * NTCP: Convert configured NTCP hostname to IP address
   before publishing (proposal #141)

2017-10-21 zzz
 * UDP: Reduce log level on IP change (ticket #2053)

2017-10-11 zzz
 * Console: Validate host header (thx Kevin Froman)
 * Router: Honor IPv6 setting when converting configured hostnames
   to IP addresses (proposal #141)

2017-10-04 zzz
 * Router: Convert configured hostnames to IP addresses
   before publishing (proposal #141)

2017-09-29 zzz
 * Debian: Backport fixes from 0.9.30-4 package (ticket #2027)

2017-09-14 zzz
 * Router: Don't lookup hostnames in addresses (proposal #141)

2017-09-12 str4d
 * Core: New benchmarking framework based on JMH (ticket #2036)

2017-09-02 zzz
 * Data: Prohibit excess key data in certs (ticket #2035)
 * i2psnark: New open trackers
 * Startup: Add property to disable output redirect (ticket #2037)

2017-08-26 str4d
 * Console (light):
   - Sidebar Restart/Shutdown buttons:
     - Increase width to better occupy available space and increase width of
       containing form to ensure browser scaling doesn't wrap buttons
     - Reduce vertical padding
     - Reduce height of buttons in console_big.css
   - /debug:
     - Multi-column view for Session Key Manager expiry IDs
     - Fix color mismatch of inbound/outbound h3s
 * I2PSnark (ubergine):
   - Fix hover state for inert section headings
   - Minor adjustments to DHT debug section
 * Susimail (light): Minor adjustment of notifications in embedded view

* 2017-08-07 0.9.31 released

2017-07-31 zzz
 * Translations update, Debian patch refresh

2017-07-31 str4d
 * Console: fix router family page form (ticket #2022)

2017-07-30 str4d
 * Console
   - light theme:
     - Fix spacing issue with banned peers list
     - Tweak font sizes for Arabic
   - Shrink icons in sidepanel network status span
   - Add single graph view buttons to classic theme
   - Better separation of graphing controls in single graph view
   - Enhance presentation of /oldconsole and /proof

2017-07-28 str4d
 * Console:
   - Enhance presentation of show/hide news links on home page
   - Fix some issues with Arabic CSS (light/dark)
   - Further tweaks to graphs display and fixes for borderless single graphs
     in midnight/dark themes
   - Fix minor coloring issues with light theme post-rework
   - Misc theme fixes
 * I2PSnark:
   - Move </center> tag in fileinfo view that prevented sticky navbar from
     working
   - ubergine:
     - Alternative panel tabs for embedded view
     - Tighten .snarkTorrents thead/tfoot spacing
     - Tweak embedded navbar coloring
     - Reduce height of download bars

2017-07-26 str4d
 * Themes:
   - 'light' theme (console & apps):
     - Rework to reduce contrast (ticket #1996)
     - Add custom radio/checkbox icons for Chrome/Blink
 * Console:
   - Add JavaScript snippet to reset dest address scroll position onblur (fixes
     Chrome/Blink disappearing text bugs in i2ptunnel and susidns)
   - Fix reseed failure notice overlap when "check connection" message shown
   - Enhance presentation of console "error 500" messages
   - Cosmetic tweaks to welcome page presentation, arabic welcome page tidyup
   - Migrate .smallhead th class to tr to simplify markup
   - Sidebar:
     - Remove "Congestion" from default sidebar (still present in default
       advanced sidebar)
     - Fix label wrapping issue with translations
     - Migrate sidepanel news section to tables to permit better control over
       wrapping and placement (ticket #1996)
     - Move news item dates to tooltips to lessen chance of headlines wrapping
       and cleanup presentation
     - Increase maximum length of local tunnel links in the sidebar (and handle
       overflow with CSS) to minimize chance of default tunnels display
       truncating in translations
     - Add the power off icon to sidebar restart button on hover to clarify
       button function (ticket #1996)
   - /configadvanced: Move floodfill status to row above to remove unnecessary
     whitespace and cleanup UI
   - /debug:
     - Add container divs and styling markup
     - Add top navigation menu
     - Add debug icon to h2 headers to aid navigation
   - /graphs: Improve presentation of graph images by removing rendered border
     and setting background color to better integrate with themes
   - /home: Widen div.app to lessen chance of truncation (classic/midnight)
   - /jars:
     - JARs, WARs & individual plugins separated with headers
     - Filenames stripped of path info (path indicated on headers and tooltips)
     - Add container divs and styling markup
     - Minimize table overflow with conditional scaling of content
     - One-click select for revision, sha256 & unsigned mods
   - /logs:
     - Reduce line/entry spacing for router and critical logs (#ticket 1996)
     - Multi-column view for changelog at >=1400px to address horizontal
       whitespace issue
   - /netdb:
     - Multi-column display of Leases in LeaseSet tables
     - Better alignment of Lease elements, iconify gateway
     - Placeholder flag for unknown/unresolved peers for [flag+dest] combos to
       improve presentation / fix deadspace issue
   - Chinese:
     - Fix alignment of table contents in /tunnels (classic)
     - Fix sidebar content display width (midnight)
     - Cosmetic fixes (all themes)
 * I2PSnark:
   - Mitigate truncation of ratings dropdown in comments section (translations)
   - light: Reduce contrast of display text
   - light/classic: Increase contrast of download bars
   - Create Torrent trackers table: Replace "Tracker URL" with "Tracker Type"
     (ticket #1996)
   - Add a persistent warning to the messagelog when JavaScript is disabled to
     indicate potential loss of form data upon refresh (ticket #1996)
   - Migrate "view or change bandwidth" to [Configure] tooltip to standardize
     configuration links, allow for more space for option labels and lessen
     chance of option labels wrapping in translations
 * I2PTunnel:
   - Ensure message log font scales proportionately
   - Fix overflow issue with dropdowns in Chrome/blink (dark/midnight)
 * SusiDNS
   - Reduce width of filter buttons to lessen chance of wrapping (ticket #1996)
   - Add non-selectable items to improve copy/paste of hosts in address books
   - Make dest addresses in host list only display scrollbar on focus to reduce
     screen clutter
   - Hide broken imagegen images
 * SusiMail:
   - Dismiss notifications on click
   - Enhance presentation of 'postman' links on login panel

2017-07-25 str4d
 * Console: Move JRobin default color and font changes into SummaryRenderer

2017-07-16 zzz
 * Imagegen: Test page text fixups

2017-07-15 zzz
 * Console: Fix compile error with Jetty 9.2.22 (ticket #2019)

2017-07-13 zzz
 * Crypto: Preserve CRT parameters for RSA private keys (ticket #2005)
 * Various fixes after review

2017-07-11 str4d
 * Console:
   - Increase displayed changelog lines to help ensure at least one whole
     release cycle is visible
   - /tunnels: Fix display issue with inbound/outbound glyph display in table
     header (classic/light)
   - light: Prevent routerlogs from causing horizontal page overflow
 * I2PSnark:
   - Fix I2PSnarkUtil.getCommentsName() to match its JavaDoc
   - Reduce size of screenlog font at 1400-1600px viewport width to lessen
     chance of text-wrapping (ticket #1996)
   - classic: Fix a linespacing issue in the config section (options:) that only
     triggers in foreign languages that force the options labels to wrap
 * Fix HTML tags across non-default conditional branches

2017-07-08 zzz
 * GeoIP, blocklist, translations update

2017-07-06 str4d
 * Console:
   - /configlogging: Fix log file size config bug (ticket #1996)
   - /logs: Correctly format unavailable crypto warnings (ticket #1996)
   - Show advanced sidebar links by default in advanced mode (ticket #1996)

2017-07-02 str4d


----------------

EARLIER HISTORY IS AVAILABLE IN THE SOURCE PACKAGE