+SPDX-License-Identifier: MIT
diff --git a/jre/legal/java.desktop/harfbuzz.md b/jre/legal/java.desktop/harfbuzz.md
new file mode 100644
index 0000000..db25cc6
--- /dev/null
+++ b/jre/legal/java.desktop/harfbuzz.md
@@ -0,0 +1,66 @@
+## Harfbuzz v2.8
+
+### Harfbuzz License
+
+https://github.com/harfbuzz/harfbuzz/blob/master/COPYING
+
+
+
+HarfBuzz is licensed under the so-called "Old MIT" license. Details follow.
+For parts of HarfBuzz that are licensed under different licenses see individual
+files names COPYING in subdirectories where applicable.
+
+Copyright © 2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020 Google, Inc.
+Copyright © 2018,2019,2020 Ebrahim Byagowi
+Copyright © 2019,2020 Facebook, Inc.
+Copyright © 2012 Mozilla Foundation
+Copyright © 2011 Codethink Limited
+Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies)
+Copyright © 2009 Keith Stribley
+Copyright © 2009 Martin Hosken and SIL International
+Copyright © 2007 Chris Wilson
+Copyright © 2006 Behdad Esfahbod
+Copyright © 2005 David Turner
+Copyright © 2004,2007,2008,2009,2010 Red Hat, Inc.
+Copyright © 1998-2004 David Turner and Werner Lemberg
+
+For full copyright notices consult the individual files in the package.
+
+
+Permission is hereby granted, without written agreement and without
+license or royalty fees, to use, copy, modify, and distribute this
+software and its documentation for any purpose, provided that the
+above copyright notice and the following two paragraphs appear in
+all copies of this software.
+
+IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
+IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+All source code, except for one section, is licensed as above. The one
+exception is licensed with a slightly different MIT variant:
+The contents of this directory are licensed under the following terms:
+
+Copyright (C) 2012 Grigori Goronzy
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+
diff --git a/jre/legal/java.desktop/jpeg.md b/jre/legal/java.desktop/jpeg.md
new file mode 100644
index 0000000..1a0d41c
--- /dev/null
+++ b/jre/legal/java.desktop/jpeg.md
@@ -0,0 +1,77 @@
+## Independent JPEG Group: JPEG release 6b
+
+### JPEG License
+
+```
+****************************************************************************
+
+Copyright (C) 1991-1998, Thomas G. Lane.
+
+This software is the work of Tom Lane, Philip Gladstone, Jim Boucher,
+Lee Crocker, Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi,
+Guido Vollbeding, Ge' Weijers, and other members of the Independent JPEG
+Group.
+
+IJG is not affiliated with the official ISO JPEG standards committee.
+
+The authors make NO WARRANTY or representation, either express or implied,
+with respect to this software, its quality, accuracy, merchantability, or
+fitness for a particular purpose. This software is provided "AS IS",
+and you, its user, assume the entire risk as to its quality and accuracy.
+
+This software is copyright (C) 1991-1998, Thomas G. Lane.
+All Rights Reserved except as specified below.
+
+Permission is hereby granted to use, copy, modify, and distribute
+this software (or portions thereof) for any purpose, without fee,
+subject to these conditions:
+
+(1) If any part of the source code for this software is distributed,
+then this README file must be included, with this copyright and no-warranty
+notice unaltered; and any additions, deletions, or changes to the original
+files must be clearly indicated in accompanying documentation.
+
+(2) If only executable code is distributed, then the accompanying documentation
+must state that "this software is based in part on the work of the
+Independent JPEG Group".
+
+(3) Permission for use of this software is granted only if the user accepts
+full responsibility for any undesirable consequences; the authors accept
+NO LIABILITY for damages of any kind.
+
+These conditions apply to any software derived from or based on the IJG code,
+not just to the unmodified library. If you use our work, you ought to
+acknowledge us.
+
+Permission is NOT granted for the use of any IJG author's name or company name
+in advertising or publicity relating to this software or products derived
+from it. This software may be referred to only as "the Independent JPEG
+Group's software".
+
+We specifically permit and encourage the use of this software as the basis
+of commercial products, provided that all warranty or liability claims are
+assumed by the product vendor.
+
+It appears that the arithmetic coding option of the JPEG spec is covered
+by patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding
+cannot legally be used without obtaining one or more licenses. For this
+reason, support for arithmetic coding has been removed from the free
+JPEG software. (Since arithmetic coding provides only a marginal gain
+over the unpatented Huffman mode, it is unlikely that very many
+implementations will support it.) So far as we are aware, there are
+no patent restrictions on the remaining code.
+
+The IJG distribution formerly included code to read and write GIF files.
+To avoid entanglement with the Unisys LZW patent, GIF reading support
+has been removed altogether, and the GIF writer has been simplified to
+produce "uncompressed GIFs". This technique does not use the LZW algorithm;
+the resulting GIF files are larger than usual, but are readable by all
+standard GIF decoders.
+
+We are required to state that "The Graphics Interchange Format(c) is
+the Copyright property of CompuServe Incorporated. GIF(sm) is a
+Service Mark property of CompuServe Incorporated."
+
+****************************************************************************
+```
+
diff --git a/jre/legal/java.desktop/lcms.md b/jre/legal/java.desktop/lcms.md
new file mode 100644
index 0000000..1977a6b
--- /dev/null
+++ b/jre/legal/java.desktop/lcms.md
@@ -0,0 +1,27 @@
+## Little Color Management System (LCMS) v2.12
+
+### LCMS License
+
+
+Little Color Management System
+Copyright (c) 1998-2020 Marti Maria Saguer
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
diff --git a/jre/legal/java.desktop/libpng.md b/jre/legal/java.desktop/libpng.md
new file mode 100644
index 0000000..655cd09
--- /dev/null
+++ b/jre/legal/java.desktop/libpng.md
@@ -0,0 +1,141 @@
+## libpng v1.6.37
+
+### libpng License
+
+
+COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
+=========================================
+
+PNG Reference Library License version 2
+---------------------------------------
+
+ * Copyright (c) 1995-2019 The PNG Reference Library Authors.
+ * Copyright (c) 2018-2019 Cosmin Truta.
+ * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
+ * Copyright (c) 1996-1997 Andreas Dilger.
+ * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
+
+The software is supplied "as is", without warranty of any kind,
+express or implied, including, without limitation, the warranties
+of merchantability, fitness for a particular purpose, title, and
+non-infringement. In no event shall the Copyright owners, or
+anyone distributing the software, be liable for any damages or
+other liability, whether in contract, tort or otherwise, arising
+from, out of, or in connection with the software, or the use or
+other dealings in the software, even if advised of the possibility
+of such damage.
+
+Permission is hereby granted to use, copy, modify, and distribute
+this software, or portions hereof, for any purpose, without fee,
+subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you
+ must not claim that you wrote the original software. If you
+ use this software in a product, an acknowledgment in the product
+ documentation would be appreciated, but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+ 3. This Copyright notice may not be removed or altered from any
+ source or altered source distribution.
+
+
+PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35)
+-----------------------------------------------------------------------
+
+libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are
+Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are
+derived from libpng-1.0.6, and are distributed according to the same
+disclaimer and license as libpng-1.0.6 with the following individuals
+added to the list of Contributing Authors:
+
+ Simon-Pierre Cadieux
+ Eric S. Raymond
+ Mans Rullgard
+ Cosmin Truta
+ Gilles Vollant
+ James Yu
+ Mandar Sahastrabuddhe
+ Google Inc.
+ Vadim Barkov
+
+and with the following additions to the disclaimer:
+
+ There is no warranty against interference with your enjoyment of
+ the library or against infringement. There is no warranty that our
+ efforts or the library will fulfill any of your particular purposes
+ or needs. This library is provided with all faults, and the entire
+ risk of satisfactory quality, performance, accuracy, and effort is
+ with the user.
+
+Some files in the "contrib" directory and some configure-generated
+files that are distributed with libpng have other copyright owners, and
+are released under other open source licenses.
+
+libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
+Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
+libpng-0.96, and are distributed according to the same disclaimer and
+license as libpng-0.96, with the following individuals added to the
+list of Contributing Authors:
+
+ Tom Lane
+ Glenn Randers-Pehrson
+ Willem van Schaik
+
+libpng versions 0.89, June 1996, through 0.96, May 1997, are
+Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
+and are distributed according to the same disclaimer and license as
+libpng-0.88, with the following individuals added to the list of
+Contributing Authors:
+
+ John Bowler
+ Kevin Bracey
+ Sam Bushell
+ Magnus Holmgren
+ Greg Roelofs
+ Tom Tanner
+
+Some files in the "scripts" directory have other copyright owners,
+but are released under this license.
+
+libpng versions 0.5, May 1995, through 0.88, January 1996, are
+Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
+
+For the purposes of this copyright and license, "Contributing Authors"
+is defined as the following set of individuals:
+
+ Andreas Dilger
+ Dave Martindale
+ Guy Eric Schalnat
+ Paul Schmidt
+ Tim Wegner
+
+The PNG Reference Library is supplied "AS IS". The Contributing
+Authors and Group 42, Inc. disclaim all warranties, expressed or
+implied, including, without limitation, the warranties of
+merchantability and of fitness for any purpose. The Contributing
+Authors and Group 42, Inc. assume no liability for direct, indirect,
+incidental, special, exemplary, or consequential damages, which may
+result from the use of the PNG Reference Library, even if advised of
+the possibility of such damage.
+
+Permission is hereby granted to use, copy, modify, and distribute this
+source code, or portions hereof, for any purpose, without fee, subject
+to the following restrictions:
+
+ 1. The origin of this source code must not be misrepresented.
+
+ 2. Altered versions must be plainly marked as such and must not
+ be misrepresented as being the original source.
+
+ 3. This Copyright notice may not be removed or altered from any
+ source or altered source distribution.
+
+The Contributing Authors and Group 42, Inc. specifically permit,
+without fee, and encourage the use of this source code as a component
+to supporting the PNG file format in commercial products. If you use
+this source code in a product, acknowledgment is not required but would
+be appreciated.
+
+
diff --git a/jre/legal/java.desktop/mesa3d.md b/jre/legal/java.desktop/mesa3d.md
new file mode 100644
index 0000000..cdaa1ac
--- /dev/null
+++ b/jre/legal/java.desktop/mesa3d.md
@@ -0,0 +1,134 @@
+## Mesa 3-D Graphics Library v21.0.3
+
+### Mesa License
+
+```
+Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+Attention, Contributors
+
+When contributing to the Mesa project you must agree to the licensing terms
+of the component to which you're contributing.
+The following section lists the primary components of the Mesa distribution
+and their respective licenses.
+Mesa Component Licenses
+
+
+
+Component Location License
+------------------------------------------------------------------
+Main Mesa code src/mesa/ MIT
+Device drivers src/mesa/drivers/* MIT, generally
+
+Gallium code src/gallium/ MIT
+
+Ext headers GL/glext.h Khronos
+ GL/glxext.h Khronos
+ GL/wglext.h Khronos
+ KHR/khrplatform.h Khronos
+
+*****************************************************************************
+
+----
+include/GL/gl.h :
+
+
+ Mesa 3-D graphics library
+
+ Copyright (C) 1999-2006 Brian Paul All Rights Reserved.
+ Copyright (C) 2009 VMware, Inc. All Rights Reserved.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ *****************************************************************************
+
+----
+include/GL/glext.h
+include/GL/glxext.h
+include/GL/wglxext.h :
+
+
+ Copyright (c) 2013 - 2018 The Khronos Group Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and/or associated documentation files (the
+ "Materials"), to deal in the Materials without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Materials, and to
+ permit persons to whom the Materials are furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Materials.
+
+ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+ *****************************************************************************
+
+----
+include/KHR/khrplatform.h :
+
+ Copyright (c) 2008 - 2018 The Khronos Group Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and/or associated documentation files (the
+ "Materials"), to deal in the Materials without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Materials, and to
+ permit persons to whom the Materials are furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Materials.
+
+ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+ *****************************************************************************
+
+```
diff --git a/jre/legal/java.logging/ADDITIONAL_LICENSE_INFO b/jre/legal/java.logging/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 0000000..b62cc3e
--- /dev/null
+++ b/jre/legal/java.logging/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1 @@
+Please see ..\java.base\ADDITIONAL_LICENSE_INFO
diff --git a/jre/legal/java.logging/ASSEMBLY_EXCEPTION b/jre/legal/java.logging/ASSEMBLY_EXCEPTION
new file mode 100644
index 0000000..0d4cfb4
--- /dev/null
+++ b/jre/legal/java.logging/ASSEMBLY_EXCEPTION
@@ -0,0 +1 @@
+Please see ..\java.base\ASSEMBLY_EXCEPTION
diff --git a/jre/legal/java.logging/LICENSE b/jre/legal/java.logging/LICENSE
new file mode 100644
index 0000000..4ad9fe4
--- /dev/null
+++ b/jre/legal/java.logging/LICENSE
@@ -0,0 +1 @@
+Please see ..\java.base\LICENSE
diff --git a/jre/legal/java.prefs/ADDITIONAL_LICENSE_INFO b/jre/legal/java.prefs/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 0000000..b62cc3e
--- /dev/null
+++ b/jre/legal/java.prefs/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1 @@
+Please see ..\java.base\ADDITIONAL_LICENSE_INFO
diff --git a/jre/legal/java.prefs/ASSEMBLY_EXCEPTION b/jre/legal/java.prefs/ASSEMBLY_EXCEPTION
new file mode 100644
index 0000000..0d4cfb4
--- /dev/null
+++ b/jre/legal/java.prefs/ASSEMBLY_EXCEPTION
@@ -0,0 +1 @@
+Please see ..\java.base\ASSEMBLY_EXCEPTION
diff --git a/jre/legal/java.prefs/LICENSE b/jre/legal/java.prefs/LICENSE
new file mode 100644
index 0000000..4ad9fe4
--- /dev/null
+++ b/jre/legal/java.prefs/LICENSE
@@ -0,0 +1 @@
+Please see ..\java.base\LICENSE
diff --git a/jre/legal/java.xml/ADDITIONAL_LICENSE_INFO b/jre/legal/java.xml/ADDITIONAL_LICENSE_INFO
new file mode 100644
index 0000000..b62cc3e
--- /dev/null
+++ b/jre/legal/java.xml/ADDITIONAL_LICENSE_INFO
@@ -0,0 +1 @@
+Please see ..\java.base\ADDITIONAL_LICENSE_INFO
diff --git a/jre/legal/java.xml/ASSEMBLY_EXCEPTION b/jre/legal/java.xml/ASSEMBLY_EXCEPTION
new file mode 100644
index 0000000..0d4cfb4
--- /dev/null
+++ b/jre/legal/java.xml/ASSEMBLY_EXCEPTION
@@ -0,0 +1 @@
+Please see ..\java.base\ASSEMBLY_EXCEPTION
diff --git a/jre/legal/java.xml/LICENSE b/jre/legal/java.xml/LICENSE
new file mode 100644
index 0000000..4ad9fe4
--- /dev/null
+++ b/jre/legal/java.xml/LICENSE
@@ -0,0 +1 @@
+Please see ..\java.base\LICENSE
diff --git a/jre/legal/java.xml/bcel.md b/jre/legal/java.xml/bcel.md
new file mode 100644
index 0000000..6dffd07
--- /dev/null
+++ b/jre/legal/java.xml/bcel.md
@@ -0,0 +1,219 @@
+## Apache Commons Byte Code Engineering Library (BCEL) Version 6.5.0
+
+### Apache Commons BCEL Notice
+
+
+ Apache Commons BCEL
+ Copyright 2004-2020 The Apache Software Foundation
+
+ This product includes software developed at
+ The Apache Software Foundation (https://www.apache.org/).
+
+
+
+### Apache 2.0 License
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
diff --git a/jre/legal/java.xml/dom.md b/jre/legal/java.xml/dom.md
new file mode 100644
index 0000000..b0fb1ae
--- /dev/null
+++ b/jre/legal/java.xml/dom.md
@@ -0,0 +1,62 @@
+## DOM Level 3 Core Specification v1.0
+
+### W3C License
+
+
+W3C SOFTWARE NOTICE AND LICENSE
+
+http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+This work (and included software, documentation such as READMEs, or other
+related items) is being provided by the copyright holders under the following
+license. By obtaining, using and/or copying this work, you (the licensee)
+agree that you have read, understood, and will comply with the following terms
+and conditions.
+
+Permission to copy, modify, and distribute this software and its
+documentation, with or without modification, for any purpose and without fee
+or royalty is hereby granted, provided that you include the following on ALL
+copies of the software and documentation or portions thereof, including
+modifications:
+
+ 1.The full text of this NOTICE in a location viewable to users of the
+ redistributed or derivative work.
+
+ 2.Any pre-existing intellectual property disclaimers, notices, or terms and
+ conditions. If none exist, the W3C Software Short Notice should be included
+ (hypertext is preferred, text is permitted) within the body of any
+ redistributed or derivative code.
+
+ 3.Notice of any changes or modifications to the files, including the date
+ changes were made. (We recommend you provide URIs to the location from
+ which the code is derived.)
+
+THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS
+MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
+PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY
+THIRD PARTY PATENTS,COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
+OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+DOCUMENTATION. The name and trademarks of copyright holders may NOT be used
+in advertising or publicity pertaining to the software without specific,
+written prior permission. Title to copyright in this software and any
+associated documentation will at all times remain with copyright holders.
+
+____________________________________
+
+This formulation of W3C's notice and license became active on December 31
+2002. This version removes the copyright ownership notice such that this
+license can be used with materials other than those owned by the W3C, reflects
+that ERCIM is now a host of the W3C, includes references to this specific
+dated version of the license, and removes the ambiguous grant of "use".
+Otherwise, this version is the same as the previous version and is written so
+as to preserve the Free Software Foundation's assessment of GPL compatibility
+and OSI's certification under the Open Source Definition. Please see our
+Copyright FAQ for common questions about using materials from our site,
+including specific terms and conditions for packages like libwww, Amaya, and
+Jigsaw. Other questions about this notice can be directed to
+site-policy@w3.org.
+
+
diff --git a/jre/legal/java.xml/jcup.md b/jre/legal/java.xml/jcup.md
new file mode 100644
index 0000000..a0ff3df
--- /dev/null
+++ b/jre/legal/java.xml/jcup.md
@@ -0,0 +1,24 @@
+## CUP Parser Generator for Java v 0.11b
+
+### CUP Parser Generator License
+
+
+Copyright 1996-2015 by Scott Hudson, Frank Flannery, C. Scott Ananian, Michael Petter
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted, provided
+that the above copyright notice appear in all copies and that both
+the copyright notice and this permission notice and warranty disclaimer
+appear in supporting documentation, and that the names of the authors or
+their employers not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+
+The authors and their employers disclaim all warranties with regard to
+this software, including all implied warranties of merchantability and
+fitness. In no event shall the authors or their employers be liable for
+any special, indirect or consequential damages or any damages whatsoever
+resulting from loss of use, data or profits, whether in an action of
+contract, negligence or other tortious action, arising out of or in
+connection with the use or performance of this software.
+
+
diff --git a/jre/legal/java.xml/xalan.md b/jre/legal/java.xml/xalan.md
new file mode 100644
index 0000000..924bce8
--- /dev/null
+++ b/jre/legal/java.xml/xalan.md
@@ -0,0 +1,255 @@
+## Apache Xalan v2.7.2
+
+### Apache Xalan Notice
+
+
+ ======================================================================================
+ == NOTICE file corresponding to the section 4d of the Apache License, Version 2.0, ==
+ == in this case for the Apache Xalan distribution. ==
+ ======================================================================================
+
+ This product includes software developed by
+ The Apache Software Foundation (http://www.apache.org/).
+
+ Specifically, we only include the XSLTC portion of the source from the Xalan distribution.
+ The Xalan project has two processors: an interpretive one (Xalan Interpretive) and a
+ compiled one (The XSLT Compiler (XSLTC)). We *only* use the XSLTC part of Xalan; We use
+ the source from the packages that are part of the XSLTC sources.
+
+ Portions of this software was originally based on the following:
+
+ - software copyright (c) 1999-2002, Lotus Development Corporation., http://www.lotus.com.
+ - software copyright (c) 2001-2002, Sun Microsystems., http://www.sun.com.
+ - software copyright (c) 2003, IBM Corporation., http://www.ibm.com.
+ - voluntary contributions made by Ovidiu Predescu (ovidiu@cup.hp.com) on behalf of the
+ Apache Software Foundation and was originally developed at Hewlett Packard Company.
+
+
+
+### Apache 2.0 License
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+JLEX COPYRIGHT NOTICE, LICENSE AND DISCLAIMER.
+Copyright 1996-2003 by Elliot Joel Berk and C. Scott Ananian
+Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both the copyright notice and this permission notice and warranty
+disclaimer appear in supporting documentation, and that the name of
+the authors or their employers not be used in advertising or publicity
+pertaining to distribution of the software without specific, written
+prior permission.
+The authors and their employers disclaim all warranties with regard to
+this software, including all implied warranties of merchantability and
+fitness. In no event shall the authors or their employers be liable for
+any special, indirect or consequential damages or any damages whatsoever
+resulting from loss of use, data or profits, whether in an action of
+contract, negligence or other tortious action, arising out of or in
+connection with the use or performance of this software.The portions of
+JLex output which are hard-coded into the JLex source code are (naturally)
+covered by this same license.
+
+
diff --git a/jre/legal/java.xml/xerces.md b/jre/legal/java.xml/xerces.md
new file mode 100644
index 0000000..c81fbc0
--- /dev/null
+++ b/jre/legal/java.xml/xerces.md
@@ -0,0 +1,229 @@
+## Apache Xerces v2.12.1
+
+### Apache Xerces Notice
+
+ =========================================================================
+ == NOTICE file corresponding to section 4(d) of the Apache License, ==
+ == Version 2.0, in this case for the Apache Xerces Java distribution. ==
+ =========================================================================
+
+ Apache Xerces Java
+ Copyright 1999-2020 The Apache Software Foundation
+
+ This product includes software developed at
+ The Apache Software Foundation (http://www.apache.org/).
+
+ Portions of this software were originally based on the following:
+ - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
+ - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.
+ - voluntary contributions made by Paul Eng on behalf of the
+ Apache Software Foundation that were originally developed at iClick, Inc.,
+ software copyright (c) 1999.
+
+
+### Apache 2.0 License
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
diff --git a/jre/lib/classlist b/jre/lib/classlist
new file mode 100644
index 0000000..9724073
--- /dev/null
+++ b/jre/lib/classlist
@@ -0,0 +1,1418 @@
+# NOTE: Do not modify this file.
+#
+# This file is generated via the -XX:DumpLoadedClassList= option
+# and is used at CDS archive dump time (see -Xshare:dump).
+#
+java/io/BufferedInputStream
+java/io/BufferedOutputStream
+java/io/BufferedWriter
+java/io/ByteArrayInputStream
+java/io/ByteArrayOutputStream
+java/io/Closeable
+java/io/DataInput
+java/io/DataInputStream
+java/io/DataOutput
+java/io/DefaultFileSystem
+java/io/File
+java/io/File$PathStatus
+java/io/FileCleanable
+java/io/FileDescriptor
+java/io/FileDescriptor$1
+java/io/FileInputStream
+java/io/FileInputStream$1
+java/io/FileOutputStream
+java/io/FilePermission
+java/io/FileSystem
+java/io/FilterInputStream
+java/io/FilterOutputStream
+java/io/Flushable
+java/io/InputStream
+java/io/ObjectStreamField
+java/io/OutputStream
+java/io/OutputStreamWriter
+java/io/PrintStream
+java/io/RandomAccessFile
+java/io/RandomAccessFile$1
+java/io/RandomAccessFile$2
+java/io/Serializable
+java/io/WinNTFileSystem
+java/io/Writer
+java/lang/AbstractStringBuilder
+java/lang/Appendable
+java/lang/ApplicationShutdownHooks
+java/lang/ApplicationShutdownHooks$1
+java/lang/ArithmeticException
+java/lang/ArrayStoreException
+java/lang/AssertionStatusDirectives
+java/lang/AutoCloseable
+java/lang/Boolean
+java/lang/BootstrapMethodError
+java/lang/Byte
+java/lang/CharSequence
+java/lang/Character
+java/lang/Character$CharacterCache
+java/lang/CharacterData
+java/lang/CharacterData00
+java/lang/CharacterDataLatin1
+java/lang/Class
+java/lang/Class$1
+java/lang/Class$3
+java/lang/Class$Atomic
+java/lang/Class$ReflectionData
+java/lang/ClassCastException
+java/lang/ClassLoader
+java/lang/ClassLoader$ParallelLoaders
+java/lang/ClassNotFoundException
+java/lang/ClassValue
+java/lang/ClassValue$Entry
+java/lang/ClassValue$Identity
+java/lang/ClassValue$Version
+java/lang/Cloneable
+java/lang/Comparable
+java/lang/CompoundEnumeration
+java/lang/Double
+java/lang/Enum
+java/lang/Error
+java/lang/Exception
+java/lang/Float
+java/lang/IllegalArgumentException
+java/lang/IllegalMonitorStateException
+java/lang/IncompatibleClassChangeError
+java/lang/Integer
+java/lang/Integer$IntegerCache
+java/lang/InternalError
+java/lang/Iterable
+java/lang/LinkageError
+java/lang/LiveStackFrame
+java/lang/LiveStackFrameInfo
+java/lang/Long
+java/lang/Long$LongCache
+java/lang/Math
+java/lang/Module
+java/lang/Module$ArchivedData
+java/lang/Module$ReflectionData
+java/lang/ModuleLayer
+java/lang/ModuleLayer$Controller
+java/lang/NamedPackage
+java/lang/NoClassDefFoundError
+java/lang/NoSuchFieldException
+java/lang/NoSuchMethodError
+java/lang/NoSuchMethodException
+java/lang/NullPointerException
+java/lang/Number
+java/lang/Object
+java/lang/OutOfMemoryError
+java/lang/Package
+java/lang/Package$VersionInfo
+java/lang/PublicMethods$Key
+java/lang/PublicMethods$MethodList
+java/lang/Readable
+java/lang/Record
+java/lang/ReflectiveOperationException
+java/lang/Runnable
+java/lang/Runtime
+java/lang/Runtime$Version
+java/lang/RuntimeException
+java/lang/RuntimePermission
+java/lang/SecurityManager
+java/lang/Short
+java/lang/Shutdown
+java/lang/Shutdown$Lock
+java/lang/StackFrameInfo
+java/lang/StackOverflowError
+java/lang/StackStreamFactory$AbstractStackWalker
+java/lang/StackTraceElement
+java/lang/StackWalker
+java/lang/StackWalker$StackFrame
+java/lang/String
+java/lang/String$CaseInsensitiveComparator
+java/lang/StringBuffer
+java/lang/StringBuilder
+java/lang/StringCoding
+java/lang/StringConcatHelper
+java/lang/StringLatin1
+java/lang/StringLatin1$CharsSpliterator
+java/lang/StringUTF16
+java/lang/StringUTF16$CharsSpliterator
+java/lang/System
+java/lang/System$2
+java/lang/System$Logger
+java/lang/System$LoggerFinder
+java/lang/Terminator
+java/lang/Terminator$1
+java/lang/Thread
+java/lang/Thread$UncaughtExceptionHandler
+java/lang/ThreadDeath
+java/lang/ThreadGroup
+java/lang/ThreadLocal
+java/lang/ThreadLocal$ThreadLocalMap
+java/lang/ThreadLocal$ThreadLocalMap$Entry
+java/lang/Throwable
+java/lang/VersionProps
+java/lang/VirtualMachineError
+java/lang/Void
+java/lang/WeakPairMap
+java/lang/WeakPairMap$Pair
+java/lang/WeakPairMap$Pair$Lookup
+java/lang/annotation/Annotation
+java/lang/constant/Constable
+java/lang/constant/ConstantDesc
+java/lang/invoke/AbstractValidatingLambdaMetafactory
+java/lang/invoke/BootstrapMethodInvoker
+java/lang/invoke/BoundMethodHandle
+java/lang/invoke/BoundMethodHandle$Specializer
+java/lang/invoke/BoundMethodHandle$Specializer$Factory
+java/lang/invoke/BoundMethodHandle$SpeciesData
+java/lang/invoke/BoundMethodHandle$Species_D
+java/lang/invoke/BoundMethodHandle$Species_DL
+java/lang/invoke/BoundMethodHandle$Species_I
+java/lang/invoke/BoundMethodHandle$Species_IL
+java/lang/invoke/BoundMethodHandle$Species_L
+java/lang/invoke/BoundMethodHandle$Species_LJ
+java/lang/invoke/BoundMethodHandle$Species_LL
+java/lang/invoke/BoundMethodHandle$Species_LLL
+java/lang/invoke/BoundMethodHandle$Species_LLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLLLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLLLLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLLLLLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLLLLLLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLLLLLLLLL
+java/lang/invoke/BoundMethodHandle$Species_LLLLLLLLLLLLL
+java/lang/invoke/CallSite
+java/lang/invoke/ClassSpecializer
+java/lang/invoke/ClassSpecializer$1
+java/lang/invoke/ClassSpecializer$Factory
+java/lang/invoke/ClassSpecializer$SpeciesData
+java/lang/invoke/ConstantCallSite
+java/lang/invoke/DelegatingMethodHandle
+java/lang/invoke/DelegatingMethodHandle$Holder
+java/lang/invoke/DirectMethodHandle
+java/lang/invoke/DirectMethodHandle$2
+java/lang/invoke/DirectMethodHandle$Accessor
+java/lang/invoke/DirectMethodHandle$Constructor
+java/lang/invoke/DirectMethodHandle$Holder
+java/lang/invoke/DirectMethodHandle$Interface
+java/lang/invoke/InfoFromMemberName
+java/lang/invoke/InnerClassLambdaMetafactory
+java/lang/invoke/InnerClassLambdaMetafactory$ForwardingMethodGenerator
+java/lang/invoke/InvokerBytecodeGenerator
+java/lang/invoke/InvokerBytecodeGenerator$2
+java/lang/invoke/InvokerBytecodeGenerator$ClassData
+java/lang/invoke/Invokers
+java/lang/invoke/Invokers$Holder
+java/lang/invoke/LambdaForm
+java/lang/invoke/LambdaForm$BasicType
+java/lang/invoke/LambdaForm$Holder
+java/lang/invoke/LambdaForm$Kind
+java/lang/invoke/LambdaForm$Name
+java/lang/invoke/LambdaForm$NamedFunction
+java/lang/invoke/LambdaFormBuffer
+java/lang/invoke/LambdaFormEditor
+java/lang/invoke/LambdaFormEditor$1
+java/lang/invoke/LambdaFormEditor$Transform
+java/lang/invoke/LambdaFormEditor$TransformKey
+java/lang/invoke/LambdaMetafactory
+java/lang/invoke/LambdaProxyClassArchive
+java/lang/invoke/MemberName
+java/lang/invoke/MemberName$Factory
+java/lang/invoke/MethodHandle
+java/lang/invoke/MethodHandleImpl
+java/lang/invoke/MethodHandleImpl$1
+java/lang/invoke/MethodHandleImpl$AsVarargsCollector
+java/lang/invoke/MethodHandleImpl$Intrinsic
+java/lang/invoke/MethodHandleImpl$IntrinsicMethodHandle
+java/lang/invoke/MethodHandleInfo
+java/lang/invoke/MethodHandleNatives
+java/lang/invoke/MethodHandleNatives$CallSiteContext
+java/lang/invoke/MethodHandleStatics
+java/lang/invoke/MethodHandles
+java/lang/invoke/MethodHandles$1
+java/lang/invoke/MethodHandles$Lookup
+java/lang/invoke/MethodHandles$Lookup$ClassDefiner
+java/lang/invoke/MethodHandles$Lookup$ClassFile
+java/lang/invoke/MethodHandles$Lookup$ClassOption
+java/lang/invoke/MethodType
+java/lang/invoke/MethodType$ConcurrentWeakInternSet
+java/lang/invoke/MethodType$ConcurrentWeakInternSet$WeakEntry
+java/lang/invoke/MethodTypeForm
+java/lang/invoke/MutableCallSite
+java/lang/invoke/ResolvedMethodName
+java/lang/invoke/SimpleMethodHandle
+java/lang/invoke/StringConcatFactory
+java/lang/invoke/StringConcatFactory$1
+java/lang/invoke/StringConcatFactory$2
+java/lang/invoke/StringConcatFactory$3
+java/lang/invoke/TypeConvertingMethodAdapter
+java/lang/invoke/TypeDescriptor
+java/lang/invoke/TypeDescriptor$OfField
+java/lang/invoke/TypeDescriptor$OfMethod
+java/lang/invoke/VarForm
+java/lang/invoke/VarHandle
+java/lang/invoke/VarHandle$AccessDescriptor
+java/lang/invoke/VarHandle$AccessMode
+java/lang/invoke/VarHandle$AccessType
+java/lang/invoke/VarHandleGuards
+java/lang/invoke/VarHandleInts$FieldInstanceReadOnly
+java/lang/invoke/VarHandleInts$FieldInstanceReadWrite
+java/lang/invoke/VarHandleInts$FieldStaticReadOnly
+java/lang/invoke/VarHandleInts$FieldStaticReadWrite
+java/lang/invoke/VarHandleLongs$FieldInstanceReadOnly
+java/lang/invoke/VarHandleLongs$FieldInstanceReadWrite
+java/lang/invoke/VarHandleReferences$Array
+java/lang/invoke/VarHandleReferences$FieldInstanceReadOnly
+java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite
+java/lang/invoke/VarHandles
+java/lang/invoke/VarHandles$1
+java/lang/invoke/VolatileCallSite
+java/lang/module/Configuration
+java/lang/module/ModuleDescriptor
+java/lang/module/ModuleDescriptor$1
+java/lang/module/ModuleDescriptor$Builder
+java/lang/module/ModuleDescriptor$Exports
+java/lang/module/ModuleDescriptor$Modifier
+java/lang/module/ModuleDescriptor$Opens
+java/lang/module/ModuleDescriptor$Provides
+java/lang/module/ModuleDescriptor$Requires
+java/lang/module/ModuleDescriptor$Requires$Modifier
+java/lang/module/ModuleDescriptor$Version
+java/lang/module/ModuleFinder
+java/lang/module/ModuleFinder$1
+java/lang/module/ModuleFinder$2
+java/lang/module/ModuleReader
+java/lang/module/ModuleReference
+java/lang/module/ResolvedModule
+java/lang/module/Resolver
+java/lang/ref/Cleaner
+java/lang/ref/Cleaner$1
+java/lang/ref/Cleaner$Cleanable
+java/lang/ref/FinalReference
+java/lang/ref/Finalizer
+java/lang/ref/Finalizer$FinalizerThread
+java/lang/ref/PhantomReference
+java/lang/ref/Reference
+java/lang/ref/Reference$1
+java/lang/ref/Reference$ReferenceHandler
+java/lang/ref/ReferenceQueue
+java/lang/ref/ReferenceQueue$Lock
+java/lang/ref/ReferenceQueue$Null
+java/lang/ref/SoftReference
+java/lang/ref/WeakReference
+java/lang/reflect/AccessibleObject
+java/lang/reflect/AnnotatedElement
+java/lang/reflect/Array
+java/lang/reflect/Constructor
+java/lang/reflect/Executable
+java/lang/reflect/Field
+java/lang/reflect/GenericDeclaration
+java/lang/reflect/Member
+java/lang/reflect/Method
+java/lang/reflect/Modifier
+java/lang/reflect/Parameter
+java/lang/reflect/RecordComponent
+java/lang/reflect/ReflectAccess
+java/lang/reflect/Type
+java/math/BigInteger
+java/math/RoundingMode
+java/net/DefaultInterface
+java/net/Inet4Address
+java/net/Inet4AddressImpl
+java/net/Inet6Address
+java/net/Inet6Address$Inet6AddressHolder
+java/net/Inet6AddressImpl
+java/net/InetAddress
+java/net/InetAddress$1
+java/net/InetAddress$InetAddressHolder
+java/net/InetAddress$PlatformResolver
+java/net/InetAddressImpl
+java/net/InetAddressImplFactory
+java/net/InterfaceAddress
+java/net/NetworkInterface
+java/net/URI
+java/net/URI$1
+java/net/URI$Parser
+java/net/URL
+java/net/URL$3
+java/net/URL$DefaultFactory
+java/net/URLClassLoader
+java/net/URLStreamHandler
+java/net/URLStreamHandlerFactory
+java/net/spi/InetAddressResolver
+java/net/spi/InetAddressResolver$LookupPolicy
+java/nio/Bits
+java/nio/Bits$1
+java/nio/Buffer
+java/nio/Buffer$1
+java/nio/ByteBuffer
+java/nio/ByteOrder
+java/nio/CharBuffer
+java/nio/DirectByteBuffer
+java/nio/DirectByteBufferR
+java/nio/DirectIntBufferRU
+java/nio/DirectIntBufferU
+java/nio/DirectLongBufferU
+java/nio/HeapByteBuffer
+java/nio/HeapCharBuffer
+java/nio/IntBuffer
+java/nio/LongBuffer
+java/nio/MappedByteBuffer
+java/nio/charset/Charset
+java/nio/charset/CharsetDecoder
+java/nio/charset/CharsetEncoder
+java/nio/charset/CoderResult
+java/nio/charset/CodingErrorAction
+java/nio/charset/StandardCharsets
+java/nio/charset/spi/CharsetProvider
+java/nio/file/CopyOption
+java/nio/file/FileSystem
+java/nio/file/FileSystems
+java/nio/file/FileSystems$DefaultFileSystemHolder
+java/nio/file/FileSystems$DefaultFileSystemHolder$1
+java/nio/file/Files
+java/nio/file/LinkOption
+java/nio/file/OpenOption
+java/nio/file/Path
+java/nio/file/Paths
+java/nio/file/StandardOpenOption
+java/nio/file/Watchable
+java/nio/file/attribute/AttributeView
+java/nio/file/attribute/BasicFileAttributeView
+java/nio/file/attribute/BasicFileAttributes
+java/nio/file/attribute/DosFileAttributes
+java/nio/file/attribute/FileAttributeView
+java/nio/file/attribute/FileTime
+java/nio/file/spi/FileSystemProvider
+java/security/AccessControlContext
+java/security/AccessController
+java/security/AllPermission
+java/security/BasicPermission
+java/security/BasicPermissionCollection
+java/security/CodeSigner
+java/security/CodeSource
+java/security/Guard
+java/security/Permission
+java/security/PermissionCollection
+java/security/Permissions
+java/security/Principal
+java/security/PrivilegedAction
+java/security/PrivilegedExceptionAction
+java/security/ProtectionDomain
+java/security/ProtectionDomain$JavaSecurityAccessImpl
+java/security/ProtectionDomain$Key
+java/security/SecureClassLoader
+java/security/SecureClassLoader$1
+java/security/SecureClassLoader$CodeSourceKey
+java/security/SecureClassLoader$DebugHolder
+java/security/Security
+java/security/Security$1
+java/security/UnresolvedPermission
+java/security/cert/Certificate
+java/text/AttributedCharacterIterator$Attribute
+java/text/DateFormat
+java/text/DateFormat$Field
+java/text/DateFormatSymbols
+java/text/DecimalFormat
+java/text/DecimalFormatSymbols
+java/text/DigitList
+java/text/DontCareFieldPosition
+java/text/DontCareFieldPosition$1
+java/text/FieldPosition
+java/text/Format
+java/text/Format$Field
+java/text/Format$FieldDelegate
+java/text/NumberFormat
+java/text/NumberFormat$Field
+java/text/SimpleDateFormat
+java/text/spi/BreakIteratorProvider
+java/text/spi/CollatorProvider
+java/text/spi/DateFormatProvider
+java/text/spi/DateFormatSymbolsProvider
+java/text/spi/DecimalFormatSymbolsProvider
+java/text/spi/NumberFormatProvider
+java/time/Clock
+java/time/Clock$SystemClock
+java/time/Duration
+java/time/Instant
+java/time/InstantSource
+java/time/LocalDate
+java/time/LocalDate$1
+java/time/LocalDateTime
+java/time/LocalTime
+java/time/LocalTime$1
+java/time/Period
+java/time/ZoneId
+java/time/ZoneOffset
+java/time/ZoneRegion
+java/time/chrono/AbstractChronology
+java/time/chrono/ChronoLocalDate
+java/time/chrono/ChronoLocalDateTime
+java/time/chrono/ChronoPeriod
+java/time/chrono/Chronology
+java/time/chrono/IsoChronology
+java/time/format/DateTimeFormatter
+java/time/format/DateTimeFormatterBuilder
+java/time/format/DateTimeFormatterBuilder$1
+java/time/format/DateTimeFormatterBuilder$2
+java/time/format/DateTimeFormatterBuilder$CharLiteralPrinterParser
+java/time/format/DateTimeFormatterBuilder$CompositePrinterParser
+java/time/format/DateTimeFormatterBuilder$DateTimePrinterParser
+java/time/format/DateTimeFormatterBuilder$InstantPrinterParser
+java/time/format/DateTimeFormatterBuilder$NanosPrinterParser
+java/time/format/DateTimeFormatterBuilder$NumberPrinterParser
+java/time/format/DateTimeFormatterBuilder$OffsetIdPrinterParser
+java/time/format/DateTimeFormatterBuilder$SettingsParser
+java/time/format/DateTimeFormatterBuilder$StringLiteralPrinterParser
+java/time/format/DateTimeFormatterBuilder$TextPrinterParser
+java/time/format/DateTimeFormatterBuilder$ZoneIdPrinterParser
+java/time/format/DateTimePrintContext
+java/time/format/DateTimeTextProvider
+java/time/format/DateTimeTextProvider$1
+java/time/format/DateTimeTextProvider$LocaleStore
+java/time/format/DecimalStyle
+java/time/format/ResolverStyle
+java/time/format/SignStyle
+java/time/format/TextStyle
+java/time/temporal/ChronoField
+java/time/temporal/ChronoUnit
+java/time/temporal/IsoFields
+java/time/temporal/IsoFields$Field
+java/time/temporal/IsoFields$Field$1
+java/time/temporal/IsoFields$Field$2
+java/time/temporal/IsoFields$Field$3
+java/time/temporal/IsoFields$Field$4
+java/time/temporal/IsoFields$Unit
+java/time/temporal/JulianFields
+java/time/temporal/JulianFields$Field
+java/time/temporal/Temporal
+java/time/temporal/TemporalAccessor
+java/time/temporal/TemporalAdjuster
+java/time/temporal/TemporalAmount
+java/time/temporal/TemporalField
+java/time/temporal/TemporalQueries
+java/time/temporal/TemporalQueries$1
+java/time/temporal/TemporalQueries$2
+java/time/temporal/TemporalQueries$3
+java/time/temporal/TemporalQueries$4
+java/time/temporal/TemporalQueries$5
+java/time/temporal/TemporalQueries$6
+java/time/temporal/TemporalQueries$7
+java/time/temporal/TemporalQuery
+java/time/temporal/TemporalUnit
+java/time/temporal/ValueRange
+java/time/zone/ZoneOffsetTransitionRule
+java/time/zone/ZoneRules
+java/util/AbstractCollection
+java/util/AbstractList
+java/util/AbstractList$RandomAccessSpliterator
+java/util/AbstractMap
+java/util/AbstractMap$SimpleImmutableEntry
+java/util/AbstractSet
+java/util/ArrayDeque
+java/util/ArrayDeque$DeqIterator
+java/util/ArrayList
+java/util/ArrayList$ArrayListSpliterator
+java/util/ArrayList$Itr
+java/util/ArrayList$SubList
+java/util/Arrays
+java/util/Arrays$ArrayItr
+java/util/Arrays$ArrayList
+java/util/Arrays$LegacyMergeSort
+java/util/Calendar
+java/util/Calendar$Builder
+java/util/Collection
+java/util/Collections
+java/util/Collections$1
+java/util/Collections$3
+java/util/Collections$EmptyEnumeration
+java/util/Collections$EmptyIterator
+java/util/Collections$EmptyList
+java/util/Collections$EmptyMap
+java/util/Collections$EmptySet
+java/util/Collections$SetFromMap
+java/util/Collections$SingletonMap
+java/util/Collections$SingletonSet
+java/util/Collections$SynchronizedCollection
+java/util/Collections$SynchronizedMap
+java/util/Collections$SynchronizedSet
+java/util/Collections$UnmodifiableCollection
+java/util/Collections$UnmodifiableCollection$1
+java/util/Collections$UnmodifiableList
+java/util/Collections$UnmodifiableRandomAccessList
+java/util/Collections$UnmodifiableSet
+java/util/Comparator
+java/util/Date
+java/util/Deque
+java/util/Dictionary
+java/util/EnumMap
+java/util/EnumMap$1
+java/util/EnumSet
+java/util/Enumeration
+java/util/Formattable
+java/util/Formatter
+java/util/Formatter$Conversion
+java/util/Formatter$Flags
+java/util/Formatter$FormatSpecifier
+java/util/Formatter$FormatString
+java/util/GregorianCalendar
+java/util/HashMap
+java/util/HashMap$EntryIterator
+java/util/HashMap$EntrySet
+java/util/HashMap$HashIterator
+java/util/HashMap$HashMapSpliterator
+java/util/HashMap$KeyIterator
+java/util/HashMap$KeySet
+java/util/HashMap$KeySpliterator
+java/util/HashMap$Node
+java/util/HashMap$TreeNode
+java/util/HashMap$ValueIterator
+java/util/HashMap$ValueSpliterator
+java/util/HashMap$Values
+java/util/HashSet
+java/util/Hashtable
+java/util/Hashtable$Entry
+java/util/Hashtable$Enumerator
+java/util/HexFormat
+java/util/IdentityHashMap
+java/util/IdentityHashMap$IdentityHashMapIterator
+java/util/IdentityHashMap$KeyIterator
+java/util/IdentityHashMap$KeySet
+java/util/IdentityHashMap$Values
+java/util/ImmutableCollections
+java/util/ImmutableCollections$AbstractImmutableCollection
+java/util/ImmutableCollections$AbstractImmutableList
+java/util/ImmutableCollections$AbstractImmutableMap
+java/util/ImmutableCollections$AbstractImmutableSet
+java/util/ImmutableCollections$List12
+java/util/ImmutableCollections$ListItr
+java/util/ImmutableCollections$ListN
+java/util/ImmutableCollections$Map1
+java/util/ImmutableCollections$MapN
+java/util/ImmutableCollections$MapN$1
+java/util/ImmutableCollections$MapN$MapNIterator
+java/util/ImmutableCollections$Set12
+java/util/ImmutableCollections$Set12$1
+java/util/ImmutableCollections$SetN
+java/util/ImmutableCollections$SetN$SetNIterator
+java/util/Iterator
+java/util/KeyValueHolder
+java/util/LinkedHashMap
+java/util/LinkedHashMap$Entry
+java/util/LinkedHashMap$LinkedEntryIterator
+java/util/LinkedHashMap$LinkedEntrySet
+java/util/LinkedHashMap$LinkedHashIterator
+java/util/LinkedHashSet
+java/util/List
+java/util/ListIterator
+java/util/ListResourceBundle
+java/util/Locale
+java/util/Locale$Builder
+java/util/Locale$Cache
+java/util/Locale$Category
+java/util/Map
+java/util/Map$Entry
+java/util/NavigableMap
+java/util/NavigableSet
+java/util/Objects
+java/util/Optional
+java/util/OptionalInt
+java/util/Properties
+java/util/Properties$EntrySet
+java/util/Properties$LineReader
+java/util/Queue
+java/util/Random
+java/util/RandomAccess
+java/util/RegularEnumSet
+java/util/ResourceBundle
+java/util/ResourceBundle$1
+java/util/ResourceBundle$2
+java/util/ResourceBundle$Control
+java/util/ResourceBundle$Control$CandidateListCache
+java/util/ResourceBundle$NoFallbackControl
+java/util/ResourceBundle$ResourceBundleProviderHelper
+java/util/ResourceBundle$SingleFormatControl
+java/util/ServiceLoader
+java/util/ServiceLoader$1
+java/util/ServiceLoader$2
+java/util/ServiceLoader$3
+java/util/ServiceLoader$LazyClassPathLookupIterator
+java/util/ServiceLoader$ModuleServicesLookupIterator
+java/util/ServiceLoader$Provider
+java/util/ServiceLoader$ProviderImpl
+java/util/Set
+java/util/SortedMap
+java/util/SortedSet
+java/util/Spliterator
+java/util/Spliterator$OfDouble
+java/util/Spliterator$OfInt
+java/util/Spliterator$OfLong
+java/util/Spliterator$OfPrimitive
+java/util/Spliterators
+java/util/Spliterators$1Adapter
+java/util/Spliterators$AbstractSpliterator
+java/util/Spliterators$ArraySpliterator
+java/util/Spliterators$EmptySpliterator
+java/util/Spliterators$EmptySpliterator$OfDouble
+java/util/Spliterators$EmptySpliterator$OfInt
+java/util/Spliterators$EmptySpliterator$OfLong
+java/util/Spliterators$EmptySpliterator$OfRef
+java/util/Spliterators$IteratorSpliterator
+java/util/StringJoiner
+java/util/StringTokenizer
+java/util/TimSort
+java/util/TimeZone
+java/util/TreeMap
+java/util/TreeMap$Entry
+java/util/TreeMap$EntryIterator
+java/util/TreeMap$EntrySet
+java/util/TreeMap$PrivateEntryIterator
+java/util/WeakHashMap
+java/util/WeakHashMap$Entry
+java/util/WeakHashMap$KeySet
+java/util/concurrent/AbstractExecutorService
+java/util/concurrent/ConcurrentHashMap
+java/util/concurrent/ConcurrentHashMap$BaseIterator
+java/util/concurrent/ConcurrentHashMap$CollectionView
+java/util/concurrent/ConcurrentHashMap$CounterCell
+java/util/concurrent/ConcurrentHashMap$EntryIterator
+java/util/concurrent/ConcurrentHashMap$EntrySetView
+java/util/concurrent/ConcurrentHashMap$ForwardingNode
+java/util/concurrent/ConcurrentHashMap$KeyIterator
+java/util/concurrent/ConcurrentHashMap$KeySetView
+java/util/concurrent/ConcurrentHashMap$MapEntry
+java/util/concurrent/ConcurrentHashMap$Node
+java/util/concurrent/ConcurrentHashMap$ReservationNode
+java/util/concurrent/ConcurrentHashMap$Segment
+java/util/concurrent/ConcurrentHashMap$Traverser
+java/util/concurrent/ConcurrentHashMap$ValueIterator
+java/util/concurrent/ConcurrentHashMap$ValuesView
+java/util/concurrent/ConcurrentMap
+java/util/concurrent/ConcurrentNavigableMap
+java/util/concurrent/ConcurrentSkipListMap
+java/util/concurrent/ConcurrentSkipListMap$Index
+java/util/concurrent/ConcurrentSkipListMap$Node
+java/util/concurrent/ConcurrentSkipListSet
+java/util/concurrent/CopyOnWriteArrayList
+java/util/concurrent/CopyOnWriteArrayList$COWIterator
+java/util/concurrent/CountedCompleter
+java/util/concurrent/Executor
+java/util/concurrent/ExecutorService
+java/util/concurrent/ForkJoinPool
+java/util/concurrent/ForkJoinPool$1
+java/util/concurrent/ForkJoinPool$DefaultCommonPoolForkJoinWorkerThreadFactory
+java/util/concurrent/ForkJoinPool$DefaultCommonPoolForkJoinWorkerThreadFactory$1
+java/util/concurrent/ForkJoinPool$DefaultForkJoinWorkerThreadFactory
+java/util/concurrent/ForkJoinPool$ForkJoinWorkerThreadFactory
+java/util/concurrent/ForkJoinPool$WorkQueue
+java/util/concurrent/ForkJoinTask
+java/util/concurrent/ForkJoinTask$Aux
+java/util/concurrent/ForkJoinWorkerThread
+java/util/concurrent/Future
+java/util/concurrent/ThreadFactory
+java/util/concurrent/ThreadLocalRandom
+java/util/concurrent/TimeUnit
+java/util/concurrent/atomic/AtomicInteger
+java/util/concurrent/atomic/AtomicLong
+java/util/concurrent/atomic/LongAdder
+java/util/concurrent/atomic/Striped64
+java/util/concurrent/locks/AbstractOwnableSynchronizer
+java/util/concurrent/locks/AbstractQueuedSynchronizer
+java/util/concurrent/locks/Lock
+java/util/concurrent/locks/LockSupport
+java/util/concurrent/locks/ReentrantLock
+java/util/concurrent/locks/ReentrantLock$NonfairSync
+java/util/concurrent/locks/ReentrantLock$Sync
+java/util/function/BiConsumer
+java/util/function/BiFunction
+java/util/function/BinaryOperator
+java/util/function/Consumer
+java/util/function/Function
+java/util/function/IntConsumer
+java/util/function/IntFunction
+java/util/function/IntPredicate
+java/util/function/Predicate
+java/util/function/Supplier
+java/util/jar/Attributes
+java/util/jar/Attributes$Name
+java/util/jar/JarEntry
+java/util/jar/JarFile
+java/util/jar/JarFile$JarFileEntry
+java/util/jar/JarVerifier
+java/util/jar/JavaUtilJarAccessImpl
+java/util/jar/Manifest
+java/util/jar/Manifest$FastInputStream
+java/util/logging/Handler
+java/util/logging/Level
+java/util/logging/Level$KnownLevel
+java/util/logging/LogManager
+java/util/logging/LogManager$1
+java/util/logging/LogManager$2
+java/util/logging/LogManager$4
+java/util/logging/LogManager$Cleaner
+java/util/logging/LogManager$LogNode
+java/util/logging/LogManager$LoggerContext
+java/util/logging/LogManager$LoggerContext$1
+java/util/logging/LogManager$LoggerWeakRef
+java/util/logging/LogManager$LoggingProviderAccess
+java/util/logging/LogManager$RootLogger
+java/util/logging/LogManager$SystemLoggerContext
+java/util/logging/LogManager$VisitedLoggers
+java/util/logging/Logger
+java/util/logging/Logger$ConfigurationData
+java/util/logging/Logger$LoggerBundle
+java/util/logging/Logger$SystemLoggerHelper
+java/util/logging/Logger$SystemLoggerHelper$1
+java/util/logging/LoggingPermission
+java/util/random/RandomGenerator
+java/util/regex/ASCII
+java/util/regex/CharPredicates
+java/util/regex/IntHashSet
+java/util/regex/MatchResult
+java/util/regex/Matcher
+java/util/regex/Pattern
+java/util/regex/Pattern$BackRef
+java/util/regex/Pattern$Begin
+java/util/regex/Pattern$BitClass
+java/util/regex/Pattern$BmpCharPredicate
+java/util/regex/Pattern$BmpCharProperty
+java/util/regex/Pattern$BmpCharPropertyGreedy
+java/util/regex/Pattern$Branch
+java/util/regex/Pattern$BranchConn
+java/util/regex/Pattern$CharPredicate
+java/util/regex/Pattern$CharProperty
+java/util/regex/Pattern$CharPropertyGreedy
+java/util/regex/Pattern$Curly
+java/util/regex/Pattern$Dollar
+java/util/regex/Pattern$First
+java/util/regex/Pattern$GroupCurly
+java/util/regex/Pattern$GroupHead
+java/util/regex/Pattern$GroupTail
+java/util/regex/Pattern$LastNode
+java/util/regex/Pattern$Node
+java/util/regex/Pattern$Qtype
+java/util/regex/Pattern$Ques
+java/util/regex/Pattern$Slice
+java/util/regex/Pattern$SliceNode
+java/util/regex/Pattern$Start
+java/util/regex/Pattern$StartS
+java/util/regex/Pattern$TreeInfo
+java/util/spi/CalendarDataProvider
+java/util/spi/CurrencyNameProvider
+java/util/spi/LocaleNameProvider
+java/util/spi/LocaleServiceProvider
+java/util/spi/TimeZoneNameProvider
+java/util/stream/AbstractPipeline
+java/util/stream/AbstractTask
+java/util/stream/BaseStream
+java/util/stream/Collector
+java/util/stream/Collector$Characteristics
+java/util/stream/Collectors
+java/util/stream/Collectors$CollectorImpl
+java/util/stream/Collectors$Partition
+java/util/stream/Collectors$Partition$1
+java/util/stream/DistinctOps
+java/util/stream/DistinctOps$1
+java/util/stream/DistinctOps$1$2
+java/util/stream/FindOps
+java/util/stream/FindOps$FindOp
+java/util/stream/FindOps$FindSink
+java/util/stream/FindOps$FindSink$OfInt
+java/util/stream/FindOps$FindSink$OfRef
+java/util/stream/ForEachOps
+java/util/stream/ForEachOps$ForEachOp
+java/util/stream/ForEachOps$ForEachOp$OfRef
+java/util/stream/IntPipeline
+java/util/stream/IntPipeline$10
+java/util/stream/IntPipeline$10$1
+java/util/stream/IntPipeline$Head
+java/util/stream/IntPipeline$StatelessOp
+java/util/stream/IntStream
+java/util/stream/PipelineHelper
+java/util/stream/ReduceOps
+java/util/stream/ReduceOps$3
+java/util/stream/ReduceOps$3ReducingSink
+java/util/stream/ReduceOps$AccumulatingSink
+java/util/stream/ReduceOps$Box
+java/util/stream/ReduceOps$ReduceOp
+java/util/stream/ReduceOps$ReduceTask
+java/util/stream/ReferencePipeline
+java/util/stream/ReferencePipeline$2
+java/util/stream/ReferencePipeline$2$1
+java/util/stream/ReferencePipeline$3
+java/util/stream/ReferencePipeline$3$1
+java/util/stream/ReferencePipeline$7
+java/util/stream/ReferencePipeline$7$1
+java/util/stream/ReferencePipeline$Head
+java/util/stream/ReferencePipeline$StatefulOp
+java/util/stream/ReferencePipeline$StatelessOp
+java/util/stream/Sink
+java/util/stream/Sink$ChainedInt
+java/util/stream/Sink$ChainedReference
+java/util/stream/Sink$OfInt
+java/util/stream/Stream
+java/util/stream/Stream$Builder
+java/util/stream/StreamOpFlag
+java/util/stream/StreamOpFlag$MaskBuilder
+java/util/stream/StreamOpFlag$Type
+java/util/stream/StreamShape
+java/util/stream/StreamSupport
+java/util/stream/Streams
+java/util/stream/Streams$AbstractStreamBuilderImpl
+java/util/stream/Streams$StreamBuilderImpl
+java/util/stream/TerminalOp
+java/util/stream/TerminalSink
+java/util/zip/CRC32
+java/util/zip/Checksum
+java/util/zip/Checksum$1
+java/util/zip/Inflater
+java/util/zip/Inflater$InflaterZStreamRef
+java/util/zip/InflaterInputStream
+java/util/zip/ZipCoder
+java/util/zip/ZipCoder$UTF8ZipCoder
+java/util/zip/ZipConstants
+java/util/zip/ZipEntry
+java/util/zip/ZipFile
+java/util/zip/ZipFile$1
+java/util/zip/ZipFile$CleanableResource
+java/util/zip/ZipFile$EntrySpliterator
+java/util/zip/ZipFile$InflaterCleanupAction
+java/util/zip/ZipFile$Source
+java/util/zip/ZipFile$Source$End
+java/util/zip/ZipFile$Source$Key
+java/util/zip/ZipFile$ZipFileInflaterInputStream
+java/util/zip/ZipFile$ZipFileInputStream
+java/util/zip/ZipUtils
+jdk/internal/access/JavaIOFileDescriptorAccess
+jdk/internal/access/JavaIORandomAccessFileAccess
+jdk/internal/access/JavaLangAccess
+jdk/internal/access/JavaLangInvokeAccess
+jdk/internal/access/JavaLangModuleAccess
+jdk/internal/access/JavaLangRefAccess
+jdk/internal/access/JavaLangReflectAccess
+jdk/internal/access/JavaNetInetAddressAccess
+jdk/internal/access/JavaNetURLAccess
+jdk/internal/access/JavaNetUriAccess
+jdk/internal/access/JavaNioAccess
+jdk/internal/access/JavaSecurityAccess
+jdk/internal/access/JavaUtilJarAccess
+jdk/internal/access/JavaUtilResourceBundleAccess
+jdk/internal/access/JavaUtilZipFileAccess
+jdk/internal/access/SharedSecrets
+jdk/internal/invoke/NativeEntryPoint
+jdk/internal/jimage/BasicImageReader
+jdk/internal/jimage/BasicImageReader$1
+jdk/internal/jimage/ImageHeader
+jdk/internal/jimage/ImageLocation
+jdk/internal/jimage/ImageReader
+jdk/internal/jimage/ImageReader$SharedImageReader
+jdk/internal/jimage/ImageReaderFactory
+jdk/internal/jimage/ImageReaderFactory$1
+jdk/internal/jimage/ImageStrings
+jdk/internal/jimage/ImageStringsReader
+jdk/internal/jimage/NativeImageBuffer
+jdk/internal/jimage/NativeImageBuffer$1
+jdk/internal/jimage/decompressor/Decompressor
+jdk/internal/loader/AbstractClassLoaderValue
+jdk/internal/loader/AbstractClassLoaderValue$Memoizer
+jdk/internal/loader/ArchivedClassLoaders
+jdk/internal/loader/BootLoader
+jdk/internal/loader/BuiltinClassLoader
+jdk/internal/loader/BuiltinClassLoader$1
+jdk/internal/loader/BuiltinClassLoader$2
+jdk/internal/loader/BuiltinClassLoader$5
+jdk/internal/loader/BuiltinClassLoader$LoadedModule
+jdk/internal/loader/ClassLoaderHelper
+jdk/internal/loader/ClassLoaderValue
+jdk/internal/loader/ClassLoaders
+jdk/internal/loader/ClassLoaders$AppClassLoader
+jdk/internal/loader/ClassLoaders$BootClassLoader
+jdk/internal/loader/ClassLoaders$PlatformClassLoader
+jdk/internal/loader/FileURLMapper
+jdk/internal/loader/NativeLibraries
+jdk/internal/loader/NativeLibraries$1
+jdk/internal/loader/NativeLibraries$2
+jdk/internal/loader/NativeLibraries$3
+jdk/internal/loader/NativeLibraries$CountedLock
+jdk/internal/loader/NativeLibraries$LibraryPaths
+jdk/internal/loader/NativeLibraries$NativeLibraryContext
+jdk/internal/loader/NativeLibraries$NativeLibraryContext$1
+jdk/internal/loader/NativeLibraries$NativeLibraryImpl
+jdk/internal/loader/NativeLibrary
+jdk/internal/loader/Resource
+jdk/internal/loader/URLClassPath
+jdk/internal/loader/URLClassPath$1
+jdk/internal/loader/URLClassPath$3
+jdk/internal/loader/URLClassPath$JarLoader
+jdk/internal/loader/URLClassPath$JarLoader$1
+jdk/internal/loader/URLClassPath$JarLoader$2
+jdk/internal/loader/URLClassPath$Loader
+jdk/internal/logger/BootstrapLogger
+jdk/internal/logger/BootstrapLogger$BootstrapExecutors
+jdk/internal/logger/BootstrapLogger$DetectBackend
+jdk/internal/logger/BootstrapLogger$DetectBackend$1
+jdk/internal/logger/BootstrapLogger$LoggingBackend
+jdk/internal/logger/BootstrapLogger$RedirectedLoggers
+jdk/internal/logger/DefaultLoggerFinder
+jdk/internal/logger/DefaultLoggerFinder$1
+jdk/internal/math/FloatingDecimal
+jdk/internal/math/FloatingDecimal$1
+jdk/internal/math/FloatingDecimal$ASCIIToBinaryConverter
+jdk/internal/math/FloatingDecimal$BinaryToASCIIBuffer
+jdk/internal/math/FloatingDecimal$BinaryToASCIIConverter
+jdk/internal/math/FloatingDecimal$ExceptionalBinaryToASCIIBuffer
+jdk/internal/math/FloatingDecimal$PreparedASCIIToBinaryBuffer
+jdk/internal/misc/CDS
+jdk/internal/misc/InnocuousThread
+jdk/internal/misc/OSEnvironment
+jdk/internal/misc/ScopedMemoryAccess
+jdk/internal/misc/Signal
+jdk/internal/misc/Signal$Handler
+jdk/internal/misc/Signal$NativeHandler
+jdk/internal/misc/TerminatingThreadLocal
+jdk/internal/misc/TerminatingThreadLocal$1
+jdk/internal/misc/Unsafe
+jdk/internal/misc/UnsafeConstants
+jdk/internal/misc/VM
+jdk/internal/misc/VM$BufferPool
+jdk/internal/module/ArchivedBootLayer
+jdk/internal/module/ArchivedModuleGraph
+jdk/internal/module/Builder
+jdk/internal/module/Checks
+jdk/internal/module/DefaultRoots
+jdk/internal/module/ModuleBootstrap
+jdk/internal/module/ModuleBootstrap$Counters
+jdk/internal/module/ModuleBootstrap$SafeModuleFinder
+jdk/internal/module/ModuleHashes
+jdk/internal/module/ModuleHashes$HashSupplier
+jdk/internal/module/ModuleInfo$Attributes
+jdk/internal/module/ModuleLoaderMap
+jdk/internal/module/ModuleLoaderMap$Mapper
+jdk/internal/module/ModuleLoaderMap$Modules
+jdk/internal/module/ModulePatcher
+jdk/internal/module/ModulePath
+jdk/internal/module/ModulePath$Patterns
+jdk/internal/module/ModuleReferenceImpl
+jdk/internal/module/ModuleReferences
+jdk/internal/module/ModuleResolution
+jdk/internal/module/ModuleTarget
+jdk/internal/module/Modules
+jdk/internal/module/Resources
+jdk/internal/module/ServicesCatalog
+jdk/internal/module/ServicesCatalog$ServiceProvider
+jdk/internal/module/SystemModuleFinders
+jdk/internal/module/SystemModuleFinders$2
+jdk/internal/module/SystemModuleFinders$SystemImage
+jdk/internal/module/SystemModuleFinders$SystemModuleFinder
+jdk/internal/module/SystemModuleFinders$SystemModuleReader
+jdk/internal/module/SystemModules
+jdk/internal/module/SystemModules$all
+jdk/internal/module/SystemModulesMap
+jdk/internal/org/objectweb/asm/AnnotationVisitor
+jdk/internal/org/objectweb/asm/AnnotationWriter
+jdk/internal/org/objectweb/asm/Attribute
+jdk/internal/org/objectweb/asm/ByteVector
+jdk/internal/org/objectweb/asm/ClassReader
+jdk/internal/org/objectweb/asm/ClassVisitor
+jdk/internal/org/objectweb/asm/ClassWriter
+jdk/internal/org/objectweb/asm/ConstantDynamic
+jdk/internal/org/objectweb/asm/FieldVisitor
+jdk/internal/org/objectweb/asm/FieldWriter
+jdk/internal/org/objectweb/asm/Frame
+jdk/internal/org/objectweb/asm/Handle
+jdk/internal/org/objectweb/asm/Handler
+jdk/internal/org/objectweb/asm/Label
+jdk/internal/org/objectweb/asm/MethodVisitor
+jdk/internal/org/objectweb/asm/MethodWriter
+jdk/internal/org/objectweb/asm/Symbol
+jdk/internal/org/objectweb/asm/SymbolTable
+jdk/internal/org/objectweb/asm/SymbolTable$Entry
+jdk/internal/org/objectweb/asm/Type
+jdk/internal/perf/Perf
+jdk/internal/perf/Perf$GetPerfAction
+jdk/internal/perf/PerfCounter
+jdk/internal/perf/PerfCounter$CoreCounters
+jdk/internal/ref/Cleaner
+jdk/internal/ref/CleanerFactory
+jdk/internal/ref/CleanerFactory$1
+jdk/internal/ref/CleanerImpl
+jdk/internal/ref/CleanerImpl$CleanerCleanable
+jdk/internal/ref/CleanerImpl$PhantomCleanableRef
+jdk/internal/ref/PhantomCleanable
+jdk/internal/reflect/CallerSensitive
+jdk/internal/reflect/ConstantPool
+jdk/internal/reflect/ConstructorAccessor
+jdk/internal/reflect/ConstructorAccessorImpl
+jdk/internal/reflect/DelegatingClassLoader
+jdk/internal/reflect/DirectConstructorHandleAccessor
+jdk/internal/reflect/DirectConstructorHandleAccessor$NativeAccessor
+jdk/internal/reflect/DirectMethodHandleAccessor
+jdk/internal/reflect/FieldAccessor
+jdk/internal/reflect/FieldAccessorImpl
+jdk/internal/reflect/MagicAccessorImpl
+jdk/internal/reflect/MethodAccessor
+jdk/internal/reflect/MethodAccessorImpl
+jdk/internal/reflect/MethodHandleAccessorFactory
+jdk/internal/reflect/MethodHandleAccessorFactory$LazyStaticHolder
+jdk/internal/reflect/MethodHandleFieldAccessorImpl
+jdk/internal/reflect/MethodHandleObjectFieldAccessorImpl
+jdk/internal/reflect/NativeConstructorAccessorImpl
+jdk/internal/reflect/Reflection
+jdk/internal/reflect/ReflectionFactory
+jdk/internal/reflect/ReflectionFactory$GetReflectionFactoryAction
+jdk/internal/reflect/UnsafeFieldAccessorImpl
+jdk/internal/reflect/UnsafeStaticFieldAccessorImpl
+jdk/internal/util/ArraysSupport
+jdk/internal/util/Preconditions
+jdk/internal/util/Preconditions$1
+jdk/internal/util/Preconditions$2
+jdk/internal/util/Preconditions$3
+jdk/internal/util/Preconditions$4
+jdk/internal/util/StaticProperty
+jdk/internal/util/SystemProps
+jdk/internal/util/SystemProps$Raw
+jdk/internal/util/random/RandomSupport
+jdk/internal/vm/vector/VectorSupport
+jdk/internal/vm/vector/VectorSupport$Vector
+jdk/internal/vm/vector/VectorSupport$VectorMask
+jdk/internal/vm/vector/VectorSupport$VectorPayload
+jdk/internal/vm/vector/VectorSupport$VectorShuffle
+sun/invoke/empty/Empty
+sun/invoke/util/BytecodeDescriptor
+sun/invoke/util/ValueConversions
+sun/invoke/util/ValueConversions$WrapperCache
+sun/invoke/util/VerifyAccess
+sun/invoke/util/VerifyType
+sun/invoke/util/Wrapper
+sun/invoke/util/Wrapper$1
+sun/invoke/util/Wrapper$Format
+sun/io/Win32ErrorMode
+sun/launcher/LauncherHelper
+sun/net/util/IPAddressUtil
+sun/net/util/URLUtil
+sun/net/www/ParseUtil
+sun/net/www/protocol/file/Handler
+sun/net/www/protocol/jar/Handler
+sun/nio/ByteBuffered
+sun/nio/ch/DirectBuffer
+sun/nio/cs/ArrayDecoder
+sun/nio/cs/ArrayEncoder
+sun/nio/cs/HistoricallyNamedCharset
+sun/nio/cs/ISO_8859_1
+sun/nio/cs/MS1252
+sun/nio/cs/MS1252$Holder
+sun/nio/cs/SingleByte
+sun/nio/cs/SingleByte$Decoder
+sun/nio/cs/SingleByte$Encoder
+sun/nio/cs/StandardCharsets
+sun/nio/cs/StandardCharsets$Aliases
+sun/nio/cs/StandardCharsets$Cache
+sun/nio/cs/StandardCharsets$Classes
+sun/nio/cs/StreamEncoder
+sun/nio/cs/US_ASCII
+sun/nio/cs/UTF_16
+sun/nio/cs/UTF_16BE
+sun/nio/cs/UTF_16LE
+sun/nio/cs/UTF_8
+sun/nio/cs/Unicode
+sun/nio/fs/AbstractBasicFileAttributeView
+sun/nio/fs/AbstractFileSystemProvider
+sun/nio/fs/DefaultFileSystemProvider
+sun/nio/fs/DynamicFileAttributeView
+sun/nio/fs/NativeBuffer
+sun/nio/fs/NativeBuffer$Deallocator
+sun/nio/fs/NativeBuffers
+sun/nio/fs/NativeBuffers$1
+sun/nio/fs/Util
+sun/nio/fs/WindowsFileAttributeViews
+sun/nio/fs/WindowsFileAttributeViews$Basic
+sun/nio/fs/WindowsFileAttributes
+sun/nio/fs/WindowsFileSystem
+sun/nio/fs/WindowsFileSystemProvider
+sun/nio/fs/WindowsNativeDispatcher
+sun/nio/fs/WindowsNativeDispatcher$Account
+sun/nio/fs/WindowsNativeDispatcher$AclInformation
+sun/nio/fs/WindowsNativeDispatcher$CompletionStatus
+sun/nio/fs/WindowsNativeDispatcher$DiskFreeSpace
+sun/nio/fs/WindowsNativeDispatcher$FirstFile
+sun/nio/fs/WindowsNativeDispatcher$FirstStream
+sun/nio/fs/WindowsNativeDispatcher$VolumeInformation
+sun/nio/fs/WindowsPath
+sun/nio/fs/WindowsPathParser
+sun/nio/fs/WindowsPathParser$Result
+sun/nio/fs/WindowsPathType
+sun/nio/fs/WindowsUriSupport
+sun/reflect/annotation/AnnotationParser
+sun/security/action/GetBooleanAction
+sun/security/action/GetPropertyAction
+sun/security/util/Debug
+sun/security/util/FilePermCompat
+sun/security/util/LazyCodeSourcePermissionCollection
+sun/security/util/SecurityProperties
+sun/text/resources/cldr/FormatData
+sun/util/PreHashedMap
+sun/util/calendar/AbstractCalendar
+sun/util/calendar/BaseCalendar
+sun/util/calendar/BaseCalendar$Date
+sun/util/calendar/CalendarDate
+sun/util/calendar/CalendarSystem
+sun/util/calendar/CalendarSystem$GregorianHolder
+sun/util/calendar/CalendarUtils
+sun/util/calendar/Gregorian
+sun/util/calendar/Gregorian$Date
+sun/util/calendar/ZoneInfo
+sun/util/calendar/ZoneInfoFile
+sun/util/calendar/ZoneInfoFile$1
+sun/util/calendar/ZoneInfoFile$ZoneOffsetTransitionRule
+sun/util/cldr/CLDRBaseLocaleDataMetaInfo
+sun/util/cldr/CLDRCalendarDataProviderImpl
+sun/util/cldr/CLDRLocaleProviderAdapter
+sun/util/locale/BaseLocale
+sun/util/locale/BaseLocale$Cache
+sun/util/locale/BaseLocale$Key
+sun/util/locale/InternalLocaleBuilder
+sun/util/locale/InternalLocaleBuilder$CaseInsensitiveChar
+sun/util/locale/LanguageTag
+sun/util/locale/LocaleObjectCache
+sun/util/locale/LocaleObjectCache$CacheEntry
+sun/util/locale/LocaleUtils
+sun/util/locale/ParseStatus
+sun/util/locale/StringTokenIterator
+sun/util/locale/provider/AvailableLanguageTags
+sun/util/locale/provider/CalendarDataProviderImpl
+sun/util/locale/provider/CalendarDataUtility
+sun/util/locale/provider/CalendarDataUtility$CalendarWeekParameterGetter
+sun/util/locale/provider/CalendarProviderImpl
+sun/util/locale/provider/DateFormatProviderImpl
+sun/util/locale/provider/DateFormatSymbolsProviderImpl
+sun/util/locale/provider/DecimalFormatSymbolsProviderImpl
+sun/util/locale/provider/JRELocaleProviderAdapter
+sun/util/locale/provider/LocaleDataMetaInfo
+sun/util/locale/provider/LocaleProviderAdapter
+sun/util/locale/provider/LocaleProviderAdapter$1
+sun/util/locale/provider/LocaleProviderAdapter$Type
+sun/util/locale/provider/LocaleResources
+sun/util/locale/provider/LocaleResources$ResourceReference
+sun/util/locale/provider/LocaleServiceProviderPool
+sun/util/locale/provider/LocaleServiceProviderPool$LocalizedObjectGetter
+sun/util/locale/provider/NumberFormatProviderImpl
+sun/util/locale/provider/ResourceBundleBasedAdapter
+sun/util/logging/PlatformLogger$Bridge
+sun/util/logging/PlatformLogger$ConfigurableBridge
+sun/util/logging/internal/LoggingProviderImpl
+sun/util/logging/internal/LoggingProviderImpl$LogManagerAccess
+sun/util/resources/Bundles
+sun/util/resources/Bundles$1
+sun/util/resources/Bundles$BundleReference
+sun/util/resources/Bundles$CacheKey
+sun/util/resources/Bundles$CacheKeyReference
+sun/util/resources/Bundles$Strategy
+sun/util/resources/LocaleData
+sun/util/resources/LocaleData$1
+sun/util/resources/LocaleData$LocaleDataStrategy
+sun/util/resources/cldr/CalendarData
+sun/util/spi/CalendarProvider
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder delegate L6_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L L3_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L L3_V
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L LJI_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L LJJ_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L LJL3_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L LJLIL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L LJLJL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L LJL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L LLJ_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L L_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DelegatingMethodHandle$Holder reinvoke_L L_V
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder getDouble LL_D
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder getInt LL_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder getLong LL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder getReference LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeInterface L3_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L3I_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L3J_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L3_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L3_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L4_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L4_V
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L5_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L6_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L7_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial L8_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLD_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLII_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLIL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLI_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLI_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJI_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJJ_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJJ_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJL3_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJLIL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJLI_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJLJL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJLJ_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJLL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJ_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LLJ_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LL_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeSpecial LL_V
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L10_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L11_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L12_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L13_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L14_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L15_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L16_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L3DL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L3D_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L3IL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L3I_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L3I_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L3_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L3_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L4J_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L4_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L5_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L5_V
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L6_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L7_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L8_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L9_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LD_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LI3_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LII_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LI_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LI_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LJI_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LJJ_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LJL3_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LJLIL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LJLJL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LJL_J
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LJ_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LLI_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LLJ_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LL_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStatic L_V
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeStaticInit LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeVirtual L3_V
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder invokeVirtual LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder newInvokeSpecial L3_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder newInvokeSpecial L4_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder newInvokeSpecial LII_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder newInvokeSpecial LI_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder newInvokeSpecial LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.DirectMethodHandle$Holder newInvokeSpecial L_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder invokeExact_MT L3_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder invokeExact_MT L4_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder invokeExact_MT L7_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder invokeExact_MT L8_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder invokeExact_MT LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder invoke_MT LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod DL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod IIL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod ILL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod IL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod JJL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod JL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod L3_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod L4_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod L5_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod L6_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod LIL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.Invokers$Holder linkToTargetMethod L_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.LambdaForm$Holder identity_D LD_D
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.LambdaForm$Holder identity_I LI_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.LambdaForm$Holder identity_L LL_L
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.LambdaForm$Holder zero_D L_D
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.LambdaForm$Holder zero_I L_I
+@lambda-form-invoker [LF_RESOLVE] java.lang.invoke.LambdaForm$Holder zero_L L_L
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_D
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_DL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_I
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_IL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_L
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LJ
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLLLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLLLLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLLLLLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLLLLLLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.BoundMethodHandle$Species_LLLLLLLLLLLLL
+@lambda-form-invoker [SPECIES_RESOLVE] java.lang.invoke.SimpleMethodHandle
+@lambda-proxy java/lang/module/ModuleDescriptor$Builder accept ()Ljava/util/function/Consumer; (Ljava/lang/Object;)V REF_invokeStatic jdk/internal/module/Checks requirePackageName (Ljava/lang/String;)Ljava/lang/String; (Ljava/lang/String;)V
+@lambda-proxy java/lang/module/ModuleFinder$2 accept (Ljava/lang/module/ModuleFinder$2;Ljava/lang/String;)Ljava/util/function/Consumer; (Ljava/lang/Object;)V REF_invokeVirtual java/lang/module/ModuleFinder$2 lambda$find$1 (Ljava/lang/String;Ljava/lang/module/ModuleReference;)V (Ljava/lang/module/ModuleReference;)V
+@lambda-proxy java/lang/module/ModuleFinder$2 accept (Ljava/lang/module/ModuleFinder$2;Ljava/util/Set;)Ljava/util/function/Consumer; (Ljava/lang/Object;)V REF_invokeVirtual java/lang/module/ModuleFinder$2 lambda$findAll$3 (Ljava/util/Set;Ljava/lang/module/ModuleReference;)V (Ljava/lang/module/ModuleReference;)V
+@lambda-proxy java/lang/module/ModuleFinder$2 apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeStatic java/lang/module/ModuleFinder$2 lambda$findAll$2 (Ljava/lang/module/ModuleFinder;)Ljava/util/stream/Stream; (Ljava/lang/module/ModuleFinder;)Ljava/util/stream/Stream;
+@lambda-proxy java/lang/module/ModuleFinder$2 apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/util/Optional stream ()Ljava/util/stream/Stream; (Ljava/util/Optional;)Ljava/util/stream/Stream;
+@lambda-proxy java/lang/module/ModuleFinder$2 apply (Ljava/lang/String;)Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeStatic java/lang/module/ModuleFinder$2 lambda$find$0 (Ljava/lang/String;Ljava/lang/module/ModuleFinder;)Ljava/util/Optional; (Ljava/lang/module/ModuleFinder;)Ljava/util/Optional;
+@lambda-proxy java/text/DecimalFormatSymbols test ()Ljava/util/function/IntPredicate; (I)Z REF_invokeStatic java/text/DecimalFormatSymbols lambda$findNonFormatChar$0 (I)Z (I)Z
+@lambda-proxy java/time/format/DateTimeFormatter queryFrom ()Ljava/time/temporal/TemporalQuery; (Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object; REF_invokeStatic java/time/format/DateTimeFormatter lambda$static$0 (Ljava/time/temporal/TemporalAccessor;)Ljava/time/Period; (Ljava/time/temporal/TemporalAccessor;)Ljava/time/Period;
+@lambda-proxy java/time/format/DateTimeFormatter queryFrom ()Ljava/time/temporal/TemporalQuery; (Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object; REF_invokeStatic java/time/format/DateTimeFormatter lambda$static$1 (Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Boolean; (Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Boolean;
+@lambda-proxy java/time/format/DateTimeFormatterBuilder queryFrom ()Ljava/time/temporal/TemporalQuery; (Ljava/time/temporal/TemporalAccessor;)Ljava/lang/Object; REF_invokeStatic java/time/format/DateTimeFormatterBuilder lambda$static$0 (Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId; (Ljava/time/temporal/TemporalAccessor;)Ljava/time/ZoneId;
+@lambda-proxy java/util/ResourceBundle$ResourceBundleProviderHelper run (Ljava/lang/reflect/Constructor;)Ljava/security/PrivilegedAction; ()Ljava/lang/Object; REF_invokeStatic java/util/ResourceBundle$ResourceBundleProviderHelper lambda$newResourceBundle$0 (Ljava/lang/reflect/Constructor;)Ljava/lang/Void; ()Ljava/lang/Void;
+@lambda-proxy java/util/logging/Level apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/util/logging/Level$KnownLevel mirrored ()Ljava/util/Optional; (Ljava/util/logging/Level$KnownLevel;)Ljava/util/Optional;
+@lambda-proxy java/util/logging/Level$KnownLevel apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeStatic java/util/logging/Level$KnownLevel lambda$add$3 (Ljava/lang/String;)Ljava/util/List; (Ljava/lang/String;)Ljava/util/List;
+@lambda-proxy java/util/logging/Level$KnownLevel apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeStatic java/util/logging/Level$KnownLevel lambda$add$4 (Ljava/lang/Integer;)Ljava/util/List; (Ljava/lang/Integer;)Ljava/util/List;
+@lambda-proxy java/util/logging/Level$KnownLevel apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/util/Optional stream ()Ljava/util/stream/Stream; (Ljava/util/Optional;)Ljava/util/stream/Stream;
+@lambda-proxy java/util/regex/CharPredicates is ()Ljava/util/regex/Pattern$BmpCharPredicate; (I)Z REF_invokeStatic java/util/regex/CharPredicates lambda$ASCII_DIGIT$18 (I)Z (I)Z
+@lambda-proxy java/util/regex/CharPredicates is ()Ljava/util/regex/Pattern$BmpCharPredicate; (I)Z REF_invokeStatic java/util/regex/CharPredicates lambda$ASCII_SPACE$20 (I)Z (I)Z
+@lambda-proxy java/util/regex/Pattern is (I)Ljava/util/regex/Pattern$BmpCharPredicate; (I)Z REF_invokeStatic java/util/regex/Pattern lambda$Single$14 (II)Z (I)Z
+@lambda-proxy java/util/regex/Pattern is (II)Ljava/util/regex/Pattern$BmpCharPredicate; (I)Z REF_invokeStatic java/util/regex/Pattern lambda$Range$17 (III)Z (I)Z
+@lambda-proxy java/util/regex/Pattern is (Ljava/util/regex/Pattern$CharPredicate;)Ljava/util/regex/Pattern$CharPredicate; (I)Z REF_invokeStatic java/util/regex/Pattern lambda$negate$7 (Ljava/util/regex/Pattern$CharPredicate;I)Z (I)Z
+@lambda-proxy java/util/regex/Pattern is (Ljava/util/regex/Pattern$CharPredicate;Ljava/util/regex/Pattern$CharPredicate;)Ljava/util/regex/Pattern$BmpCharPredicate; (I)Z REF_invokeStatic java/util/regex/Pattern lambda$union$3 (Ljava/util/regex/Pattern$CharPredicate;Ljava/util/regex/Pattern$CharPredicate;I)Z (I)Z
+@lambda-proxy java/util/stream/Collectors accept ()Ljava/util/function/BiConsumer; (Ljava/lang/Object;Ljava/lang/Object;)V REF_invokeInterface java/util/Set add (Ljava/lang/Object;)Z (Ljava/util/HashSet;Ljava/lang/Object;)V
+@lambda-proxy java/util/stream/Collectors accept ()Ljava/util/function/BiConsumer; (Ljava/lang/Object;Ljava/lang/Object;)V REF_invokeVirtual java/util/StringJoiner add (Ljava/lang/CharSequence;)Ljava/util/StringJoiner; (Ljava/util/StringJoiner;Ljava/lang/CharSequence;)V
+@lambda-proxy java/util/stream/Collectors accept (Ljava/util/function/BiConsumer;Ljava/util/function/Predicate;)Ljava/util/function/BiConsumer; (Ljava/lang/Object;Ljava/lang/Object;)V REF_invokeStatic java/util/stream/Collectors lambda$partitioningBy$62 (Ljava/util/function/BiConsumer;Ljava/util/function/Predicate;Ljava/util/stream/Collectors$Partition;Ljava/lang/Object;)V (Ljava/util/stream/Collectors$Partition;Ljava/lang/Object;)V
+@lambda-proxy java/util/stream/Collectors apply ()Ljava/util/function/BinaryOperator; (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; REF_invokeStatic java/util/stream/Collectors lambda$toSet$7 (Ljava/util/HashSet;Ljava/util/HashSet;)Ljava/util/HashSet; (Ljava/util/HashSet;Ljava/util/HashSet;)Ljava/util/HashSet;
+@lambda-proxy java/util/stream/Collectors apply ()Ljava/util/function/BinaryOperator; (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/util/StringJoiner merge (Ljava/util/StringJoiner;)Ljava/util/StringJoiner; (Ljava/util/StringJoiner;Ljava/util/StringJoiner;)Ljava/util/StringJoiner;
+@lambda-proxy java/util/stream/Collectors apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeStatic java/util/stream/Collectors lambda$castingIdentity$2 (Ljava/lang/Object;)Ljava/lang/Object; (Ljava/lang/Object;)Ljava/lang/Object;
+@lambda-proxy java/util/stream/Collectors apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/util/StringJoiner toString ()Ljava/lang/String; (Ljava/util/StringJoiner;)Ljava/lang/String;
+@lambda-proxy java/util/stream/Collectors apply (Ljava/util/function/BinaryOperator;)Ljava/util/function/BinaryOperator; (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; REF_invokeStatic java/util/stream/Collectors lambda$partitioningBy$63 (Ljava/util/function/BinaryOperator;Ljava/util/stream/Collectors$Partition;Ljava/util/stream/Collectors$Partition;)Ljava/util/stream/Collectors$Partition; (Ljava/util/stream/Collectors$Partition;Ljava/util/stream/Collectors$Partition;)Ljava/util/stream/Collectors$Partition;
+@lambda-proxy java/util/stream/Collectors get ()Ljava/util/function/Supplier; ()Ljava/lang/Object; REF_newInvokeSpecial java/util/HashSet ()V ()Ljava/util/HashSet;
+@lambda-proxy java/util/stream/Collectors get (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/function/Supplier; ()Ljava/lang/Object; REF_invokeStatic java/util/stream/Collectors lambda$joining$11 (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/util/StringJoiner; ()Ljava/util/StringJoiner;
+@lambda-proxy java/util/stream/Collectors get (Ljava/util/stream/Collector;)Ljava/util/function/Supplier; ()Ljava/lang/Object; REF_invokeStatic java/util/stream/Collectors lambda$partitioningBy$64 (Ljava/util/stream/Collector;)Ljava/util/stream/Collectors$Partition; ()Ljava/util/stream/Collectors$Partition;
+@lambda-proxy java/util/stream/FindOps$FindSink$OfInt get ()Ljava/util/function/Supplier; ()Ljava/lang/Object; REF_newInvokeSpecial java/util/stream/FindOps$FindSink$OfInt ()V ()Ljava/util/stream/TerminalSink;
+@lambda-proxy java/util/stream/FindOps$FindSink$OfInt get ()Ljava/util/function/Supplier; ()Ljava/lang/Object; REF_newInvokeSpecial java/util/stream/FindOps$FindSink$OfInt ()V ()Ljava/util/stream/TerminalSink;
+@lambda-proxy java/util/stream/FindOps$FindSink$OfInt test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeVirtual java/util/OptionalInt isPresent ()Z (Ljava/util/OptionalInt;)Z
+@lambda-proxy java/util/stream/FindOps$FindSink$OfInt test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeVirtual java/util/OptionalInt isPresent ()Z (Ljava/util/OptionalInt;)Z
+@lambda-proxy java/util/stream/FindOps$FindSink$OfRef get ()Ljava/util/function/Supplier; ()Ljava/lang/Object; REF_newInvokeSpecial java/util/stream/FindOps$FindSink$OfRef ()V ()Ljava/util/stream/TerminalSink;
+@lambda-proxy java/util/stream/FindOps$FindSink$OfRef get ()Ljava/util/function/Supplier; ()Ljava/lang/Object; REF_newInvokeSpecial java/util/stream/FindOps$FindSink$OfRef ()V ()Ljava/util/stream/TerminalSink;
+@lambda-proxy java/util/stream/FindOps$FindSink$OfRef test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeVirtual java/util/Optional isPresent ()Z (Ljava/util/Optional;)Z
+@lambda-proxy java/util/stream/FindOps$FindSink$OfRef test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeVirtual java/util/Optional isPresent ()Z (Ljava/util/Optional;)Z
+@lambda-proxy java/util/zip/ZipFile apply (Ljava/util/zip/ZipFile;)Ljava/util/function/IntFunction; (I)Ljava/lang/Object; REF_invokeVirtual java/util/zip/ZipFile lambda$jarStream$1 (I)Ljava/util/jar/JarEntry; (I)Ljava/util/jar/JarEntry;
+@lambda-proxy jdk/internal/module/DefaultRoots apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/lang/module/ModuleDescriptor name ()Ljava/lang/String; (Ljava/lang/module/ModuleDescriptor;)Ljava/lang/String;
+@lambda-proxy jdk/internal/module/DefaultRoots apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/lang/module/ModuleReference descriptor ()Ljava/lang/module/ModuleDescriptor; (Ljava/lang/module/ModuleReference;)Ljava/lang/module/ModuleDescriptor;
+@lambda-proxy jdk/internal/module/DefaultRoots test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeStatic jdk/internal/module/DefaultRoots lambda$compute$0 (Ljava/lang/module/ModuleReference;)Z (Ljava/lang/module/ModuleReference;)Z
+@lambda-proxy jdk/internal/module/DefaultRoots test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeStatic jdk/internal/module/DefaultRoots lambda$exportsAPI$2 (Ljava/lang/module/ModuleDescriptor$Exports;)Z (Ljava/lang/module/ModuleDescriptor$Exports;)Z
+@lambda-proxy jdk/internal/module/DefaultRoots test (Ljava/lang/module/ModuleFinder;)Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeStatic jdk/internal/module/DefaultRoots lambda$compute$1 (Ljava/lang/module/ModuleFinder;Ljava/lang/module/ModuleDescriptor;)Z (Ljava/lang/module/ModuleDescriptor;)Z
+@lambda-proxy jdk/internal/module/ModulePath apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/util/Optional stream ()Ljava/util/stream/Stream; (Ljava/util/Optional;)Ljava/util/stream/Stream;
+@lambda-proxy jdk/internal/module/ModulePath apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/util/Optional stream ()Ljava/util/stream/Stream; (Ljava/util/Optional;)Ljava/util/stream/Stream;
+@lambda-proxy jdk/internal/module/ModulePath apply ()Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual java/util/zip/ZipEntry getName ()Ljava/lang/String; (Ljava/util/jar/JarEntry;)Ljava/lang/String;
+@lambda-proxy jdk/internal/module/ModulePath apply (Ljdk/internal/module/ModulePath;)Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual jdk/internal/module/ModulePath toPackageName (Ljava/lang/String;)Ljava/util/Optional; (Ljava/lang/String;)Ljava/util/Optional;
+@lambda-proxy jdk/internal/module/ModulePath apply (Ljdk/internal/module/ModulePath;)Ljava/util/function/Function; (Ljava/lang/Object;)Ljava/lang/Object; REF_invokeVirtual jdk/internal/module/ModulePath toServiceName (Ljava/lang/String;)Ljava/util/Optional; (Ljava/lang/String;)Ljava/util/Optional;
+@lambda-proxy jdk/internal/module/ModulePath test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeStatic jdk/internal/module/ModulePath lambda$deriveModuleDescriptor$2 (Ljava/util/jar/JarEntry;)Z (Ljava/util/jar/JarEntry;)Z
+@lambda-proxy jdk/internal/module/ModulePath test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeStatic jdk/internal/module/ModulePath lambda$deriveModuleDescriptor$3 (Ljava/lang/String;)Z (Ljava/lang/String;)Z
+@lambda-proxy jdk/internal/module/ModulePath test ()Ljava/util/function/Predicate; (Ljava/lang/Object;)Z REF_invokeStatic jdk/internal/module/ModulePath lambda$deriveModuleDescriptor$4 (Ljava/lang/String;)Z (Ljava/lang/String;)Z
+@lambda-proxy jdk/internal/module/ModuleReferences generate (Ljava/util/function/Supplier;)Ljdk/internal/module/ModuleHashes$HashSupplier; (Ljava/lang/String;)[B REF_invokeStatic jdk/internal/module/ModuleReferences lambda$newJarModule$1 (Ljava/util/function/Supplier;Ljava/lang/String;)[B (Ljava/lang/String;)[B
+@lambda-proxy jdk/internal/module/ModuleReferences get (Ljava/nio/file/Path;Ljava/net/URI;)Ljava/util/function/Supplier; ()Ljava/lang/Object; REF_invokeStatic jdk/internal/module/ModuleReferences lambda$newJarModule$0 (Ljava/nio/file/Path;Ljava/net/URI;)Ljava/lang/module/ModuleReader; ()Ljava/lang/module/ModuleReader;
+@lambda-proxy sun/util/cldr/CLDRLocaleProviderAdapter run ()Ljava/security/PrivilegedExceptionAction; ()Ljava/lang/Object; REF_invokeStatic sun/util/cldr/CLDRLocaleProviderAdapter lambda$new$0 ()Lsun/util/locale/provider/LocaleDataMetaInfo; ()Lsun/util/locale/provider/LocaleDataMetaInfo;
+@lambda-proxy sun/util/cldr/CLDRLocaleProviderAdapter run (Lsun/util/cldr/CLDRLocaleProviderAdapter;)Ljava/security/PrivilegedAction; ()Ljava/lang/Object; REF_invokeVirtual sun/util/cldr/CLDRLocaleProviderAdapter lambda$getCalendarDataProvider$1 ()Ljava/util/spi/CalendarDataProvider; ()Ljava/util/spi/CalendarDataProvider;
+@lambda-proxy sun/util/locale/provider/JRELocaleProviderAdapter run (Lsun/util/locale/provider/JRELocaleProviderAdapter;)Ljava/security/PrivilegedAction; ()Ljava/lang/Object; REF_invokeVirtual sun/util/locale/provider/JRELocaleProviderAdapter lambda$getCalendarProvider$11 ()Lsun/util/spi/CalendarProvider; ()Lsun/util/spi/CalendarProvider;
+@lambda-proxy sun/util/locale/provider/JRELocaleProviderAdapter run (Lsun/util/locale/provider/JRELocaleProviderAdapter;)Ljava/security/PrivilegedAction; ()Ljava/lang/Object; REF_invokeVirtual sun/util/locale/provider/JRELocaleProviderAdapter lambda$getDateFormatProvider$2 ()Ljava/text/spi/DateFormatProvider; ()Ljava/text/spi/DateFormatProvider;
+@lambda-proxy sun/util/locale/provider/JRELocaleProviderAdapter run (Lsun/util/locale/provider/JRELocaleProviderAdapter;)Ljava/security/PrivilegedAction; ()Ljava/lang/Object; REF_invokeVirtual sun/util/locale/provider/JRELocaleProviderAdapter lambda$getDateFormatSymbolsProvider$3 ()Ljava/text/spi/DateFormatSymbolsProvider; ()Ljava/text/spi/DateFormatSymbolsProvider;
+@lambda-proxy sun/util/locale/provider/JRELocaleProviderAdapter run (Lsun/util/locale/provider/JRELocaleProviderAdapter;)Ljava/security/PrivilegedAction; ()Ljava/lang/Object; REF_invokeVirtual sun/util/locale/provider/JRELocaleProviderAdapter lambda$getDecimalFormatSymbolsProvider$4 ()Ljava/text/spi/DecimalFormatSymbolsProvider; ()Ljava/text/spi/DecimalFormatSymbolsProvider;
+@lambda-proxy sun/util/locale/provider/JRELocaleProviderAdapter run (Lsun/util/locale/provider/JRELocaleProviderAdapter;)Ljava/security/PrivilegedAction; ()Ljava/lang/Object; REF_invokeVirtual sun/util/locale/provider/JRELocaleProviderAdapter lambda$getNumberFormatProvider$5 ()Ljava/text/spi/NumberFormatProvider; ()Ljava/text/spi/NumberFormatProvider;
diff --git a/jre/lib/fontconfig.bfc b/jre/lib/fontconfig.bfc
new file mode 100644
index 0000000..8f4eb44
Binary files /dev/null and b/jre/lib/fontconfig.bfc differ
diff --git a/jre/lib/fontconfig.properties.src b/jre/lib/fontconfig.properties.src
new file mode 100644
index 0000000..5be779b
--- /dev/null
+++ b/jre/lib/fontconfig.properties.src
@@ -0,0 +1,328 @@
+#
+#
+# Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# Version
+
+version=1
+
+# Component Font Mappings
+
+allfonts.chinese-ms936=SimSun
+allfonts.chinese-ms936-extb=SimSun-ExtB
+allfonts.chinese-gb18030=SimSun-18030
+allfonts.chinese-gb18030-extb=SimSun-ExtB
+allfonts.chinese-hkscs=MingLiU_HKSCS
+allfonts.chinese-ms950-extb=MingLiU-ExtB
+allfonts.devanagari=Mangal
+allfonts.bengali=Vrinda
+allfonts.gujarati=Shruti
+allfonts.gurmukhi=Raavi
+allfonts.kannada=Tunga
+allfonts.malayalam=Kartika
+allfonts.oriya=Kalinga
+allfonts.sinhala=Iskoola Pota
+allfonts.tamil=Latha
+allfonts.telugu=Gautami
+allfonts.khmer=Khmer UI
+allfonts.mongolian=Mongolian Baiti
+allfonts.myanmar=Myanmar Text
+allfonts.dingbats=Wingdings
+allfonts.symbol=Symbol
+allfonts.symbols=Segoe UI Symbol
+allfonts.thai=DokChampa
+allfonts.georgian=Sylfaen
+
+serif.plain.alphabetic=Times New Roman
+serif.plain.chinese-ms950=MingLiU
+serif.plain.chinese-ms950-extb=MingLiU-ExtB
+serif.plain.hebrew=David
+serif.plain.japanese=MS Mincho
+serif.plain.korean=Batang
+
+serif.bold.alphabetic=Times New Roman Bold
+serif.bold.chinese-ms950=PMingLiU
+serif.bold.chinese-ms950-extb=PMingLiU-ExtB
+serif.bold.hebrew=David Bold
+serif.bold.japanese=MS Mincho
+serif.bold.korean=Batang
+
+serif.italic.alphabetic=Times New Roman Italic
+serif.italic.chinese-ms950=PMingLiU
+serif.italic.chinese-ms950-extb=PMingLiU-ExtB
+serif.italic.hebrew=David
+serif.italic.japanese=MS Mincho
+serif.italic.korean=Batang
+
+serif.bolditalic.alphabetic=Times New Roman Bold Italic
+serif.bolditalic.chinese-ms950=PMingLiU
+serif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
+serif.bolditalic.hebrew=David Bold
+serif.bolditalic.japanese=MS Mincho
+serif.bolditalic.korean=Batang
+
+sansserif.plain.alphabetic=Arial
+sansserif.plain.chinese-ms950=MingLiU
+sansserif.plain.chinese-ms950-extb=MingLiU-ExtB
+sansserif.plain.hebrew=David
+sansserif.plain.japanese=MS Gothic
+sansserif.plain.korean=Gulim
+
+sansserif.bold.alphabetic=Arial Bold
+sansserif.bold.chinese-ms950=PMingLiU
+sansserif.bold.chinese-ms950-extb=PMingLiU-ExtB
+sansserif.bold.hebrew=David Bold
+sansserif.bold.japanese=MS Gothic
+sansserif.bold.korean=Gulim
+
+sansserif.italic.alphabetic=Arial Italic
+sansserif.italic.chinese-ms950=PMingLiU
+sansserif.italic.chinese-ms950-extb=PMingLiU-ExtB
+sansserif.italic.hebrew=David
+sansserif.italic.japanese=MS Gothic
+sansserif.italic.korean=Gulim
+
+sansserif.bolditalic.alphabetic=Arial Bold Italic
+sansserif.bolditalic.chinese-ms950=PMingLiU
+sansserif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
+sansserif.bolditalic.hebrew=David Bold
+sansserif.bolditalic.japanese=MS Gothic
+sansserif.bolditalic.korean=Gulim
+
+monospaced.plain.alphabetic=Courier New
+monospaced.plain.chinese-ms950=MingLiU
+monospaced.plain.chinese-ms950-extb=MingLiU-ExtB
+monospaced.plain.hebrew=Courier New
+monospaced.plain.japanese=MS Gothic
+monospaced.plain.korean=GulimChe
+
+monospaced.bold.alphabetic=Courier New Bold
+monospaced.bold.chinese-ms950=PMingLiU
+monospaced.bold.chinese-ms950-extb=PMingLiU-ExtB
+monospaced.bold.hebrew=Courier New Bold
+monospaced.bold.japanese=MS Gothic
+monospaced.bold.korean=GulimChe
+
+monospaced.italic.alphabetic=Courier New Italic
+monospaced.italic.chinese-ms950=PMingLiU
+monospaced.italic.chinese-ms950-extb=PMingLiU-ExtB
+monospaced.italic.hebrew=Courier New
+monospaced.italic.japanese=MS Gothic
+monospaced.italic.korean=GulimChe
+
+monospaced.bolditalic.alphabetic=Courier New Bold Italic
+monospaced.bolditalic.chinese-ms950=PMingLiU
+monospaced.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
+monospaced.bolditalic.hebrew=Courier New Bold
+monospaced.bolditalic.japanese=MS Gothic
+monospaced.bolditalic.korean=GulimChe
+
+dialog.plain.alphabetic=Arial
+dialog.plain.chinese-ms950=MingLiU
+dialog.plain.chinese-ms950-extb=MingLiU-ExtB
+dialog.plain.hebrew=David
+dialog.plain.japanese=MS Gothic
+dialog.plain.korean=Gulim
+
+dialog.bold.alphabetic=Arial Bold
+dialog.bold.chinese-ms950=PMingLiU
+dialog.bold.chinese-ms950-extb=PMingLiU-ExtB
+dialog.bold.hebrew=David Bold
+dialog.bold.japanese=MS Gothic
+dialog.bold.korean=Gulim
+
+dialog.italic.alphabetic=Arial Italic
+dialog.italic.chinese-ms950=PMingLiU
+dialog.italic.chinese-ms950-extb=PMingLiU-ExtB
+dialog.italic.hebrew=David
+dialog.italic.japanese=MS Gothic
+dialog.italic.korean=Gulim
+
+dialog.bolditalic.alphabetic=Arial Bold Italic
+dialog.bolditalic.chinese-ms950=PMingLiU
+dialog.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
+dialog.bolditalic.hebrew=David Bold
+dialog.bolditalic.japanese=MS Gothic
+dialog.bolditalic.korean=Gulim
+
+dialoginput.plain.alphabetic=Courier New
+dialoginput.plain.chinese-ms950=MingLiU
+dialoginput.plain.chinese-ms950-extb=MingLiU-ExtB
+dialoginput.plain.hebrew=David
+dialoginput.plain.japanese=MS Gothic
+dialoginput.plain.korean=Gulim
+
+dialoginput.bold.alphabetic=Courier New Bold
+dialoginput.bold.chinese-ms950=PMingLiU
+dialoginput.bold.chinese-ms950-extb=PMingLiU-ExtB
+dialoginput.bold.hebrew=David Bold
+dialoginput.bold.japanese=MS Gothic
+dialoginput.bold.korean=Gulim
+
+dialoginput.italic.alphabetic=Courier New Italic
+dialoginput.italic.chinese-ms950=PMingLiU
+dialoginput.italic.chinese-ms950-extb=PMingLiU-ExtB
+dialoginput.italic.hebrew=David
+dialoginput.italic.japanese=MS Gothic
+dialoginput.italic.korean=Gulim
+
+dialoginput.bolditalic.alphabetic=Courier New Bold Italic
+dialoginput.bolditalic.chinese-ms950=PMingLiU
+dialoginput.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
+dialoginput.bolditalic.hebrew=David Bold
+dialoginput.bolditalic.japanese=MS Gothic
+dialoginput.bolditalic.korean=Gulim
+
+# Search Sequences
+
+sequence.allfonts=alphabetic/default,dingbats,symbol
+
+sequence.serif.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb
+sequence.sansserif.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb
+sequence.monospaced.GBK=chinese-ms936,alphabetic,dingbats,symbol,chinese-ms936-extb
+sequence.dialog.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb
+sequence.dialoginput.GBK=alphabetic,chinese-ms936,dingbats,symbol,chinese-ms936-extb
+
+sequence.serif.GB18030=alphabetic,chinese-gb18030,dingbats,symbol,chinese-gb18030-extb
+sequence.sansserif.GB18030=alphabetic,chinese-gb18030,dingbats,symbol,chinese-gb18030-extb
+sequence.monospaced.GB18030=chinese-gb18030,alphabetic,dingbats,symbol,chinese-gb18030-extb
+sequence.dialog.GB18030=alphabetic,chinese-gb18030,dingbats,symbol,chinese-gb18030-extb
+sequence.dialoginput.GB18030=alphabetic,chinese-gb18030,dingbats,symbol,chinese-gb18030-extb
+
+sequence.serif.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb
+sequence.sansserif.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb
+sequence.monospaced.x-windows-950=chinese-ms950,alphabetic,dingbats,symbol,chinese-ms950-extb
+sequence.dialog.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb
+sequence.dialoginput.x-windows-950=alphabetic,chinese-ms950,dingbats,symbol,chinese-ms950-extb
+
+sequence.serif.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.sansserif.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.monospaced.x-MS950-HKSCS=chinese-ms950,alphabetic,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.dialog.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.dialoginput.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+
+sequence.serif.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.sansserif.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.monospaced.x-MS950-HKSCS-XP=chinese-ms950,alphabetic,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.dialog.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.dialoginput.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+
+sequence.allfonts.UTF-8.hi=alphabetic/1252,devanagari,dingbats,symbol
+sequence.allfonts.UTF-8.ja=alphabetic,japanese,dingbats,symbol
+
+sequence.allfonts.windows-1255=hebrew,alphabetic/1252,dingbats,symbol
+
+sequence.serif.windows-31j=alphabetic,japanese,dingbats,symbol
+sequence.sansserif.windows-31j=alphabetic,japanese,dingbats,symbol
+sequence.monospaced.windows-31j=japanese,alphabetic,dingbats,symbol
+sequence.dialog.windows-31j=alphabetic,japanese,dingbats,symbol
+sequence.dialoginput.windows-31j=alphabetic,japanese,dingbats,symbol
+
+sequence.serif.x-windows-949=alphabetic,korean,dingbats,symbol
+sequence.sansserif.x-windows-949=alphabetic,korean,dingbats,symbol
+sequence.monospaced.x-windows-949=korean,alphabetic,dingbats,symbol
+sequence.dialog.x-windows-949=alphabetic,korean,dingbats,symbol
+sequence.dialoginput.x-windows-949=alphabetic,korean,dingbats,symbol
+
+sequence.allfonts.x-windows-874=alphabetic,thai,dingbats,symbol
+
+sequence.fallback=symbols,\
+ chinese-ms950,chinese-hkscs,chinese-ms936,chinese-gb18030,\
+ japanese,korean,chinese-ms950-extb,chinese-ms936-extb,\
+ georgian,devanagari,bengali,gujarati,gurmukhi,kannada,\
+ malayalam,oriya,sinhala,tamil,telugu,thai,khmer,mongolian,\
+ myanmar
+
+# Exclusion Ranges
+
+exclusion.alphabetic=0700-1cff,1d80-1e9f,1f00-2017,2020-20ab,20ad-20b8,20bb-20bc,20be-f8ff
+exclusion.chinese-gb18030=0390-03d6,2200-22ef,2701-27be
+exclusion.hebrew=0041-005a,0060-007a,007f-00ff,20ac-20ac
+
+# Monospaced to Proportional width variant mapping
+# (Experimental private syntax)
+proportional.MS_Gothic=MS PGothic
+proportional.MS_Mincho=MS PMincho
+proportional.MingLiU=PMingLiU
+proportional.MingLiU-ExtB=PMingLiU-ExtB
+
+# Font File Names
+
+filename.Arial=ARIAL.TTF
+filename.Arial_Bold=ARIALBD.TTF
+filename.Arial_Italic=ARIALI.TTF
+filename.Arial_Bold_Italic=ARIALBI.TTF
+
+filename.Courier_New=COUR.TTF
+filename.Courier_New_Bold=COURBD.TTF
+filename.Courier_New_Italic=COURI.TTF
+filename.Courier_New_Bold_Italic=COURBI.TTF
+
+filename.Times_New_Roman=TIMES.TTF
+filename.Times_New_Roman_Bold=TIMESBD.TTF
+filename.Times_New_Roman_Italic=TIMESI.TTF
+filename.Times_New_Roman_Bold_Italic=TIMESBI.TTF
+
+filename.SimSun=SIMSUN.TTC
+filename.SimSun-18030=SIMSUN18030.TTC
+filename.SimSun-ExtB=SIMSUNB.TTF
+
+filename.MingLiU=MINGLIU.TTC
+filename.MingLiU-ExtB=MINGLIUB.TTC
+filename.PMingLiU=MINGLIU.TTC
+filename.PMingLiU-ExtB=MINGLIUB.TTC
+filename.MingLiU_HKSCS=hkscsm3u.ttf
+
+filename.David=DAVID.TTF
+filename.David_Bold=DAVIDBD.TTF
+
+filename.MS_Mincho=MSMINCHO.TTC
+filename.MS_PMincho=MSMINCHO.TTC
+filename.MS_Gothic=MSGOTHIC.TTC
+filename.MS_PGothic=MSGOTHIC.TTC
+
+filename.Gulim=gulim.TTC
+filename.Batang=batang.TTC
+filename.GulimChe=gulim.TTC
+
+filename.Gautami=gautami.ttf
+filename.Iskoola_Pota=iskpota.ttf
+filename.Kalinga=kalinga.ttf
+filename.Kartika=kartika.ttf
+filename.Latha=latha.ttf
+filename.Mangal=MANGAL.TTF
+filename.Raavi=raavi.ttf
+filename.Shruti=shruti.ttf
+filename.Tunga=TUNGA.TTF
+filename.Vrinda=vrinda.ttf
+filename.DokChampa=dokchamp.ttf
+filename.Khmer_UI=KhmerUI.ttf
+filename.Mongolian_Baiti=monbaiti.ttf
+filename.Myanmar_Text=mmrtext.ttf
+filename.Symbol=SYMBOL.TTF
+filename.Wingdings=WINGDING.TTF
+
+filename.Sylfaen=sylfaen.ttf
+filename.Segoe_UI_Symbol=SEGUISYM.TTF
diff --git a/jre/lib/jawt.lib b/jre/lib/jawt.lib
new file mode 100644
index 0000000..53b3e92
Binary files /dev/null and b/jre/lib/jawt.lib differ
diff --git a/jre/lib/jrt-fs.jar b/jre/lib/jrt-fs.jar
new file mode 100644
index 0000000..836ae63
Binary files /dev/null and b/jre/lib/jrt-fs.jar differ
diff --git a/jre/lib/jvm.cfg b/jre/lib/jvm.cfg
new file mode 100644
index 0000000..97225c8
--- /dev/null
+++ b/jre/lib/jvm.cfg
@@ -0,0 +1,2 @@
+-server KNOWN
+-client IGNORE
diff --git a/jre/lib/jvm.lib b/jre/lib/jvm.lib
new file mode 100644
index 0000000..c204fd1
Binary files /dev/null and b/jre/lib/jvm.lib differ
diff --git a/jre/lib/modules b/jre/lib/modules
new file mode 100644
index 0000000..dcf924f
Binary files /dev/null and b/jre/lib/modules differ
diff --git a/jre/lib/psfont.properties.ja b/jre/lib/psfont.properties.ja
new file mode 100644
index 0000000..d17cf40
--- /dev/null
+++ b/jre/lib/psfont.properties.ja
@@ -0,0 +1,119 @@
+#
+#
+# Copyright (c) 1996, 2000, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+#
+# Japanese PostScript printer property file
+#
+font.num=16
+#
+serif=serif
+timesroman=serif
+sansserif=sansserif
+helvetica=sansserif
+monospaced=monospaced
+courier=monospaced
+dialog=sansserif
+dialoginput=monospaced
+#
+serif.latin1.plain=Times-Roman
+serif.latin1.italic=Times-Italic
+serif.latin1.bolditalic=Times-BoldItalic
+serif.latin1.bold=Times-Bold
+#
+sansserif.latin1.plain=Helvetica
+sansserif.latin1.italic=Helvetica-Oblique
+sansserif.latin1.bolditalic=Helvetica-BoldOblique
+sansserif.latin1.bold=Helvetica-Bold
+#
+monospaced.latin1.plain=Courier
+monospaced.latin1.italic=Courier-Oblique
+monospaced.latin1.bolditalic=Courier-BoldOblique
+monospaced.latin1.bold=Courier-Bold
+#
+serif.x11jis0208.plain=Ryumin-Light-H
+serif.x11jis0208.italic=Ryumin-Light-H
+serif.x11jis0208.bolditalic=Ryumin-Light-H
+serif.x11jis0208.bold=Ryumin-Light-H
+#
+sansserif.x11jis0208.plain=GothicBBB-Medium-H
+sansserif.x11jis0208.italic=GothicBBB-Medium-H
+sansserif.x11jis0208.bolditalic=GothicBBB-Medium-H
+sansserif.x11jis0208.bold=GothicBBB-Medium-H
+#
+monospaced.x11jis0208.plain=GothicBBB-Medium-H
+monospaced.x11jis0208.italic=GothicBBB-Medium-H
+monospaced.x11jis0208.bolditalic=GothicBBB-Medium-H
+monospaced.x11jis0208.bold=GothicBBB-Medium-H
+#
+serif.x11jis0201.plain=Ryumin-Light.Hankaku
+serif.x11jis0201.italic=Ryumin-Light.Hankaku
+serif.x11jis0201.bolditalic=Ryumin-Light.Hankaku
+serif.x11jis0201.bold=Ryumin-Light.Hankaku
+#
+sansserif.x11jis0201.plain=GothicBBB-Medium.Hankaku
+sansserif.x11jis0201.italic=GothicBBB-Medium.Hankaku
+sansserif.x11jis0201.bolditalic=GothicBBB-Medium.Hankaku
+sansserif.x11jis0201.bold=GothicBBB-Medium.Hankaku
+#
+monospaced.x11jis0201.plain=GothicBBB-Medium.Hankaku
+monospaced.x11jis0201.italic=GothicBBB-Medium.Hankaku
+monospaced.x11jis0201.bolditalic=GothicBBB-Medium.Hankaku
+monospaced.x11jis0201.bold=GothicBBB-Medium.Hankaku
+#
+Helvetica=0
+Helvetica-Bold=1
+Helvetica-Oblique=2
+Helvetica-BoldOblique=3
+Times-Roman=4
+Times-Bold=5
+Times-Italic=6
+Times-BoldItalic=7
+Courier=8
+Courier-Bold=9
+Courier-Oblique=10
+Courier-BoldOblique=11
+GothicBBB-Medium-H=12
+Ryumin-Light-H=13
+GothicBBB-Medium.Hankaku=14
+Ryumin-Light.Hankaku=15
+#
+font.0=Helvetica ISOF
+font.1=Helvetica-Bold ISOF
+font.2=Helvetica-Oblique ISOF
+font.3=Helvetica-BoldOblique ISOF
+font.4=Times-Roman ISOF
+font.5=Times-Bold ISOF
+font.6=Times-Italic ISOF
+font.7=Times-BoldItalic ISOF
+font.8=Courier ISOF
+font.9=Courier-Bold ISOF
+font.10=Courier-Oblique ISOF
+font.11=Courier-BoldOblique ISOF
+font.12=GothicBBB-Medium-H findfont
+font.13=Ryumin-Light-H findfont
+font.14=GothicBBB-Medium.Hankaku findfont
+font.15=Ryumin-Light.Hankaku findfont
+#
diff --git a/jre/lib/psfontj2d.properties b/jre/lib/psfontj2d.properties
new file mode 100644
index 0000000..5eb2c4b
--- /dev/null
+++ b/jre/lib/psfontj2d.properties
@@ -0,0 +1,323 @@
+#
+#
+# Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+
+#
+# PostScript printer property file for Java 2D printing.
+#
+# WARNING: This is an internal implementation file, not a public file.
+# Any customisation or reliance on the existence of this file and its
+# contents or syntax is discouraged and unsupported.
+# It may be incompatibly changed or removed without any notice.
+#
+#
+font.num=35
+#
+# Legacy logical font family names and logical font aliases should all
+# map to the primary logical font names.
+#
+serif=serif
+times=serif
+timesroman=serif
+sansserif=sansserif
+helvetica=sansserif
+dialog=sansserif
+dialoginput=monospaced
+monospaced=monospaced
+courier=monospaced
+#
+# Next, physical fonts which can be safely mapped to standard postscript fonts
+# These keys generally map to a value which is the same as the key, so
+# the key/value is just a way to say the font has a mapping.
+# Sometimes however we map more than one screen font to the same PS font.
+#
+avantgarde=avantgarde_book
+avantgarde_book=avantgarde_book
+avantgarde_demi=avantgarde_demi
+avantgarde_book_oblique=avantgarde_book_oblique
+avantgarde_demi_oblique=avantgarde_demi_oblique
+#
+itcavantgarde=avantgarde_book
+itcavantgarde=avantgarde_book
+itcavantgarde_demi=avantgarde_demi
+itcavantgarde_oblique=avantgarde_book_oblique
+itcavantgarde_demi_oblique=avantgarde_demi_oblique
+#
+bookman=bookman_light
+bookman_light=bookman_light
+bookman_demi=bookman_demi
+bookman_light_italic=bookman_light_italic
+bookman_demi_italic=bookman_demi_italic
+#
+# Exclude "helvetica" on its own as that's a legacy name for a logical font
+helvetica_bold=helvetica_bold
+helvetica_oblique=helvetica_oblique
+helvetica_bold_oblique=helvetica_bold_oblique
+#
+itcbookman_light=bookman_light
+itcbookman_demi=bookman_demi
+itcbookman_light_italic=bookman_light_italic
+itcbookman_demi_italic=bookman_demi_italic
+#
+# Exclude "courier" on its own as that's a legacy name for a logical font
+courier_bold=courier_bold
+courier_oblique=courier_oblique
+courier_bold_oblique=courier_bold_oblique
+#
+courier_new=courier
+courier_new_bold=courier_bold
+#
+monotype_century_schoolbook=newcenturyschoolbook
+monotype_century_schoolbook_bold=newcenturyschoolbook_bold
+monotype_century_schoolbook_italic=newcenturyschoolbook_italic
+monotype_century_schoolbook_bold_italic=newcenturyschoolbook_bold_italic
+#
+newcenturyschoolbook=newcenturyschoolbook
+newcenturyschoolbook_bold=newcenturyschoolbook_bold
+newcenturyschoolbook_italic=newcenturyschoolbook_italic
+newcenturyschoolbook_bold_italic=newcenturyschoolbook_bold_italic
+#
+palatino=palatino
+palatino_bold=palatino_bold
+palatino_italic=palatino_italic
+palatino_bold_italic=palatino_bold_italic
+#
+# Exclude "times" on its own as that's a legacy name for a logical font
+times_bold=times_roman_bold
+times_italic=times_roman_italic
+times_bold_italic=times_roman_bold_italic
+#
+times_roman=times_roman
+times_roman_bold=times_roman_bold
+times_roman_italic=times_roman_italic
+times_roman_bold_italic=times_roman_bold_italic
+#
+times_new_roman=times_roman
+times_new_roman_bold=times_roman_bold
+times_new_roman_italic=times_roman_italic
+times_new_roman_bold_italic=times_roman_bold_italic
+#
+zapfchancery_italic=zapfchancery_italic
+itczapfchancery_italic=zapfchancery_italic
+#
+# Next the mapping of the font name + charset + style to Postscript font name
+# for the logical fonts.
+#
+serif.latin1.plain=Times-Roman
+serif.latin1.bold=Times-Bold
+serif.latin1.italic=Times-Italic
+serif.latin1.bolditalic=Times-BoldItalic
+serif.symbol.plain=Symbol
+serif.dingbats.plain=ZapfDingbats
+serif.symbol.bold=Symbol
+serif.dingbats.bold=ZapfDingbats
+serif.symbol.italic=Symbol
+serif.dingbats.italic=ZapfDingbats
+serif.symbol.bolditalic=Symbol
+serif.dingbats.bolditalic=ZapfDingbats
+#
+sansserif.latin1.plain=Helvetica
+sansserif.latin1.bold=Helvetica-Bold
+sansserif.latin1.italic=Helvetica-Oblique
+sansserif.latin1.bolditalic=Helvetica-BoldOblique
+sansserif.symbol.plain=Symbol
+sansserif.dingbats.plain=ZapfDingbats
+sansserif.symbol.bold=Symbol
+sansserif.dingbats.bold=ZapfDingbats
+sansserif.symbol.italic=Symbol
+sansserif.dingbats.italic=ZapfDingbats
+sansserif.symbol.bolditalic=Symbol
+sansserif.dingbats.bolditalic=ZapfDingbats
+#
+monospaced.latin1.plain=Courier
+monospaced.latin1.bold=Courier-Bold
+monospaced.latin1.italic=Courier-Oblique
+monospaced.latin1.bolditalic=Courier-BoldOblique
+monospaced.symbol.plain=Symbol
+monospaced.dingbats.plain=ZapfDingbats
+monospaced.symbol.bold=Symbol
+monospaced.dingbats.bold=ZapfDingbats
+monospaced.symbol.italic=Symbol
+monospaced.dingbats.italic=ZapfDingbats
+monospaced.symbol.bolditalic=Symbol
+monospaced.dingbats.bolditalic=ZapfDingbats
+#
+# Next the mapping of the font name + charset + style to Postscript font name
+# for the physical fonts. Since these always report style as plain, the
+# style key is always plain. So we map using the face name to the correct
+# style for the postscript font. This is possible since the face names can
+# be replied upon to be different for each style.
+# However an application may try to create a Font applying a style to an
+# physical name. We want to map to the correct Postscript font there too
+# if possible but we do not map cases where the application tries to
+# augment a style (eg ask for a bold version of a bold font)
+# Defer to the 2D package to attempt create an artificially styled version
+#
+avantgarde_book.latin1.plain=AvantGarde-Book
+avantgarde_demi.latin1.plain=AvantGarde-Demi
+avantgarde_book_oblique.latin1.plain=AvantGarde-BookOblique
+avantgarde_demi_oblique.latin1.plain=AvantGarde-DemiOblique
+#
+avantgarde_book.latin1.bold=AvantGarde-Demi
+avantgarde_book.latin1.italic=AvantGarde-BookOblique
+avantgarde_book.latin1.bolditalic=AvantGarde-DemiOblique
+avantgarde_demi.latin1.italic=AvantGarde-DemiOblique
+avantgarde_book_oblique.latin1.bold=AvantGarde-DemiOblique
+#
+bookman_light.latin1.plain=Bookman-Light
+bookman_demi.latin1.plain=Bookman-Demi
+bookman_light_italic.latin1.plain=Bookman-LightItalic
+bookman_demi_italic.latin1.plain=Bookman-DemiItalic
+#
+bookman_light.latin1.bold=Bookman-Demi
+bookman_light.latin1.italic=Bookman-LightItalic
+bookman_light.latin1.bolditalic=Bookman-DemiItalic
+bookman_light_bold.latin1.italic=Bookman-DemiItalic
+bookman_light_italic.latin1.bold=Bookman-DemiItalic
+#
+courier.latin1.plain=Courier
+courier_bold.latin1.plain=Courier-Bold
+courier_oblique.latin1.plain=Courier-Oblique
+courier_bold_oblique.latin1.plain=Courier-BoldOblique
+courier.latin1.bold=Courier-Bold
+courier.latin1.italic=Courier-Oblique
+courier.latin1.bolditalic=Courier-BoldOblique
+courier_bold.latin1.italic=Courier-BoldOblique
+courier_italic.latin1.bold=Courier-BoldOblique
+#
+helvetica_bold.latin1.plain=Helvetica-Bold
+helvetica_oblique.latin1.plain=Helvetica-Oblique
+helvetica_bold_oblique.latin1.plain=Helvetica-BoldOblique
+helvetica.latin1.bold=Helvetica-Bold
+helvetica.latin1.italic=Helvetica-Oblique
+helvetica.latin1.bolditalic=Helvetica-BoldOblique
+helvetica_bold.latin1.italic=Helvetica-BoldOblique
+helvetica_italic.latin1.bold=Helvetica-BoldOblique
+#
+newcenturyschoolbook.latin1.plain=NewCenturySchlbk-Roman
+newcenturyschoolbook_bold.latin1.plain=NewCenturySchlbk-Bold
+newcenturyschoolbook_italic.latin1.plain=NewCenturySchlbk-Italic
+newcenturyschoolbook_bold_italic.latin1.plain=NewCenturySchlbk-BoldItalic
+newcenturyschoolbook.latin1.bold=NewCenturySchlbk-Bold
+newcenturyschoolbook.latin1.italic=NewCenturySchlbk-Italic
+newcenturyschoolbook.latin1.bolditalic=NewCenturySchlbk-BoldItalic
+newcenturyschoolbook_bold.latin1.italic=NewCenturySchlbk-BoldItalic
+newcenturyschoolbook_italic.latin1.bold=NewCenturySchlbk-BoldItalic
+#
+palatino.latin1.plain=Palatino-Roman
+palatino_bold.latin1.plain=Palatino-Bold
+palatino_italic.latin1.plain=Palatino-Italic
+palatino_bold_italic.latin1.plain=Palatino-BoldItalic
+palatino.latin1.bold=Palatino-Bold
+palatino.latin1.italic=Palatino-Italic
+palatino.latin1.bolditalic=Palatino-BoldItalic
+palatino_bold.latin1.italic=Palatino-BoldItalic
+palatino_italic.latin1.bold=Palatino-BoldItalic
+#
+times_roman.latin1.plain=Times-Roman
+times_roman_bold.latin1.plain=Times-Bold
+times_roman_italic.latin1.plain=Times-Italic
+times_roman_bold_italic.latin1.plain=Times-BoldItalic
+times_roman.latin1.bold=Times-Bold
+times_roman.latin1.italic=Times-Italic
+times_roman.latin1.bolditalic=Times-BoldItalic
+times_roman_bold.latin1.italic=Times-BoldItalic
+times_roman_italic.latin1.bold=Times-BoldItalic
+#
+zapfchancery_italic.latin1.plain=ZapfChancery-MediumItalic
+#
+# Finally the mappings of PS font names to indexes.
+#
+AvantGarde-Book=0
+AvantGarde-BookOblique=1
+AvantGarde-Demi=2
+AvantGarde-DemiOblique=3
+Bookman-Demi=4
+Bookman-DemiItalic=5
+Bookman-Light=6
+Bookman-LightItalic=7
+Courier=8
+Courier-Bold=9
+Courier-BoldOblique=10
+Courier-Oblique=11
+Helvetica=12
+Helvetica-Bold=13
+Helvetica-BoldOblique=14
+Helvetica-Narrow=15
+Helvetica-Narrow-Bold=16
+Helvetica-Narrow-BoldOblique=17
+Helvetica-Narrow-Oblique=18
+Helvetica-Oblique=19
+NewCenturySchlbk-Bold=20
+NewCenturySchlbk-BoldItalic=21
+NewCenturySchlbk-Italic=22
+NewCenturySchlbk-Roman=23
+Palatino-Bold=24
+Palatino-BoldItalic=25
+Palatino-Italic=26
+Palatino-Roman=27
+Symbol=28
+Times-Bold=29
+Times-BoldItalic=30
+Times-Italic=31
+Times-Roman=32
+ZapfDingbats=33
+ZapfChancery-MediumItalic=34
+#
+font.0=AvantGarde-Book ISOF
+font.1=AvantGarde-BookOblique ISOF
+font.2=AvantGarde-Demi ISOF
+font.3=AvantGarde-DemiOblique ISOF
+font.4=Bookman-Demi ISOF
+font.5=Bookman-DemiItalic ISOF
+font.6=Bookman-Light ISOF
+font.7=Bookman-LightItalic ISOF
+font.8=Courier ISOF
+font.9=Courier-Bold ISOF
+font.10=Courier-BoldOblique ISOF
+font.11=Courier-Oblique ISOF
+font.12=Helvetica ISOF
+font.13=Helvetica-Bold ISOF
+font.14=Helvetica-BoldOblique ISOF
+font.15=Helvetica-Narrow ISOF
+font.16=Helvetica-Narrow-Bold ISOF
+font.17=Helvetica-Narrow-BoldOblique ISOF
+font.18=Helvetica-Narrow-Oblique ISOF
+font.19=Helvetica-Oblique ISOF
+font.20=NewCenturySchlbk-Bold ISOF
+font.21=NewCenturySchlbk-BoldItalic ISOF
+font.22=NewCenturySchlbk-Italic ISOF
+font.23=NewCenturySchlbk-Roman ISOF
+font.24=Palatino-Bold ISOF
+font.25=Palatino-BoldItalic ISOF
+font.26=Palatino-Italic ISOF
+font.27=Palatino-Roman ISOF
+font.28=Symbol findfont
+font.29=Times-Bold ISOF
+font.30=Times-BoldItalic ISOF
+font.31=Times-Italic ISOF
+font.32=Times-Roman ISOF
+font.33=ZapfDingbats findfont
+font.34=ZapfChancery-MediumItalic ISOF
+#
diff --git a/jre/lib/security/blocked.certs b/jre/lib/security/blocked.certs
new file mode 100644
index 0000000..beded9e
--- /dev/null
+++ b/jre/lib/security/blocked.certs
@@ -0,0 +1,39 @@
+Algorithm=SHA-256
+03DB9E5E79FE6117177F81C11595AF598CB176AF766290DBCEB2C318B32E39A2
+08C396C006A21055D00826A5781A5CCFCE2C8D053AB3C197637A4A7A5BB9A650
+14E6D2764A4B06701C6CBC376A253775F79C782FBCB6C0EE6F99DE4BA1024ADD
+1C5E6985ACC09221DBD1A4B7BBC6D3A8C3F8540D19F20763A9537FDD42B4FFE7
+1F6BF8A3F2399AF7FD04516C2719C566CBAD51F412738F66D0457E1E6BDE6F2D
+2A464E4113141352C7962FBD1706ED4B88533EF24D7BBA6CCC5D797FD202F1C4
+31C8FD37DB9B56E708B03D1F01848B068C6DA66F36FB5D82C008C6040FA3E133
+3946901F46B0071E90D78279E82FABABCA177231A704BE72C5B0E8918566EA66
+3E11CF90719F6FB44D94EAC9A156B89BEBE7B8598F28EC58913F2BFCAF91D0C0
+423279423B9FC8CB06F1BB7C3B247522B948D5F18939F378ECC901126DE40BFB
+450F1B421BB05C8609854884559C323319619E8B06B001EA2DCBB74A23AA3BE2
+4CBBF8256BC9888A8007B2F386940A2E394378B0D903CBB3863C5A6394B889CE
+4FEE0163686ECBD65DB968E7494F55D84B25486D438E9DE558D629D28CD4D176
+535D04DFCE027C70BD5F8A9E0AD4F218E9AFDCF5BBCF9B6DE0D81E148E2E3172
+568FAF38D9F155F624838E2181B1CEB4D8459305EE652B0F810C97C3611BFE19
+585CFE6B7436CBD4E732763A2137D7F49599BA9B1790E688FCEC799C58EB84A6
+5E83124D68D24E8E177E306DF643D5EA99C5A94D6FC34B072F7544A1CABB7C7B
+71CB00749B9130FB2707A2664BFF958D0FCC8E161D9674C7450BA0FC2BEAF9D3
+76A45A496031E4DD2D7ED23E8F6FF97DBDEA980BAAC8B0BA94D7EDB551348645
+8A1BD21661C60015065212CC98B1ABB50DFD14C872A208E66BAE890F25C448AF
+9ED8F9B0E8E42A1656B8E1DD18F42BA42DC06FE52686173BA2FC70E756F207DC
+9FADCE80D62A959F9930D748488C1E22E821F4E1E4A43584B848C2FC11E04D77
+A686FEE577C88AB664D0787ECDFFF035F4806F3DE418DC9E4D516324FFF02083
+A90132CEA1D4F7185E4F688EFFD16F6AC14DFD78356A807599A5DABBEEF3333E
+B8686723E415534BC0DBD16326F9486F85B0B0799BF6639334E61DAAE67F36CD
+C0D1F42B9F4BF7ACC045B7BB5D4805E10737F67B6310CE505248D543D0D5FE07
+D0156949F1381943442C6974E9B5B49EF441BB799EF20477B90A89C3F33620CE
+D151962D954970501C60079258EBCFA38502E0A9F03CD640322B08C0A3117FE5
+D24566BF315F4E597D6E381C87119FB4198F5E9E2607F5F4AB362EF7E2E7672F
+D3A936E1A7775A45217C8296A1F22AC5631DCDEC45594099E78EEEBBEDCBA967
+D6CEAE5D9E047FAF7D797858D229AC991AD44316D1E2A37A21926D763153593A
+DF21016B00FC54F9FE3BC8B039911BB216E9162FAD2FD14D990AB96E951B49BE
+E0E740E4B0F8B3548181FF75B5372FAF4C70B99EC995D694ED0FB91B03FF8D21
+EC30C9C3065A06BB07DC5B1C6B497F370C1CA65C0F30C08E042BA6BCECC78F2C
+F5B6F88F75D391A4B1EB336F9E201239FB6B1377DB8CFA7B84736216E5AFFFD7
+FBB12938ABD86C125796EDF4162D291028890A7D6C0C1CCA75FD4B95EBFA7A1A
+FC02FD48DB92D4DCE6F11679D38354CF750CFC7F584A520EB90BDE80E241F2BD
+FDEDB5BDFCB67411513A61AEE5CB5B5D7C52AF06028EFC996CC1B05B1D6CEA2B
diff --git a/jre/lib/security/cacerts b/jre/lib/security/cacerts
new file mode 100644
index 0000000..d2f0339
Binary files /dev/null and b/jre/lib/security/cacerts differ
diff --git a/jre/lib/security/default.policy b/jre/lib/security/default.policy
new file mode 100644
index 0000000..5982d27
--- /dev/null
+++ b/jre/lib/security/default.policy
@@ -0,0 +1,241 @@
+//
+// Permissions required by modules stored in a run-time image and loaded
+// by the platform class loader.
+//
+// NOTE that this file is not intended to be modified. If additional
+// permissions need to be granted to the modules in this file, it is
+// recommended that they be configured in a separate policy file or
+// ${java.home}/conf/security/java.policy.
+//
+
+
+grant codeBase "jrt:/java.compiler" {
+ permission java.security.AllPermission;
+};
+
+
+grant codeBase "jrt:/java.net.http" {
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.net";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.net.util";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www";
+ permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc";
+ permission java.lang.RuntimePermission "modifyThread";
+ permission java.net.SocketPermission "*","connect,resolve";
+ permission java.net.URLPermission "http:*","*:*";
+ permission java.net.URLPermission "https:*","*:*";
+ permission java.net.URLPermission "ws:*","*:*";
+ permission java.net.URLPermission "wss:*","*:*";
+ permission java.net.URLPermission "socket:*","CONNECT"; // proxy
+ // For request/response body processors, fromFile, asFile
+ permission java.io.FilePermission "<>","read,write,delete";
+ permission java.util.PropertyPermission "*","read";
+ permission java.net.NetPermission "getProxySelector";
+};
+
+grant codeBase "jrt:/java.scripting" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.security.jgss" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.smartcardio" {
+ permission javax.smartcardio.CardPermission "*", "*";
+ permission java.lang.RuntimePermission "loadLibrary.j2pcsc";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.jca";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.util";
+ permission java.util.PropertyPermission
+ "javax.smartcardio.TerminalFactory.DefaultType", "read";
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "os.arch", "read";
+ permission java.util.PropertyPermission "sun.arch.data.model", "read";
+ permission java.util.PropertyPermission
+ "sun.security.smartcardio.library", "read";
+ permission java.util.PropertyPermission
+ "sun.security.smartcardio.t0GetResponse", "read";
+ permission java.util.PropertyPermission
+ "sun.security.smartcardio.t1GetResponse", "read";
+ permission java.util.PropertyPermission
+ "sun.security.smartcardio.t1StripLe", "read";
+ // needed for looking up native PC/SC library
+ permission java.io.FilePermission "<>","read";
+ permission java.security.SecurityPermission "putProviderProperty.SunPCSC";
+ permission java.security.SecurityPermission
+ "clearProviderProperties.SunPCSC";
+ permission java.security.SecurityPermission
+ "removeProviderProperty.SunPCSC";
+};
+
+grant codeBase "jrt:/java.sql" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.sql.rowset" {
+ permission java.security.AllPermission;
+};
+
+
+grant codeBase "jrt:/java.xml.crypto" {
+ permission java.lang.RuntimePermission
+ "getStackWalkerWithClassReference";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.util";
+ permission java.util.PropertyPermission "*", "read";
+ permission java.security.SecurityPermission "putProviderProperty.XMLDSig";
+ permission java.security.SecurityPermission
+ "clearProviderProperties.XMLDSig";
+ permission java.security.SecurityPermission
+ "removeProviderProperty.XMLDSig";
+ permission java.security.SecurityPermission
+ "com.sun.org.apache.xml.internal.security.register";
+ permission java.security.SecurityPermission
+ "getProperty.jdk.xml.dsig.secureValidationPolicy";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.org.apache.xml.internal.*";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.org.apache.xpath.internal";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.org.apache.xpath.internal.*";
+ permission java.io.FilePermission "<>","read";
+ permission java.net.SocketPermission "*", "connect,resolve";
+};
+
+
+grant codeBase "jrt:/jdk.accessibility" {
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.awt";
+};
+
+grant codeBase "jrt:/jdk.charsets" {
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.lang.RuntimePermission "charsetProvider";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.jdk.internal.access";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.jdk.internal.misc";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.cs";
+};
+
+grant codeBase "jrt:/jdk.crypto.ec" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.*";
+ permission java.lang.RuntimePermission "loadLibrary.sunec";
+ permission java.security.SecurityPermission "putProviderProperty.SunEC";
+ permission java.security.SecurityPermission "clearProviderProperties.SunEC";
+ permission java.security.SecurityPermission "removeProviderProperty.SunEC";
+};
+
+grant codeBase "jrt:/jdk.crypto.cryptoki" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.crypto.provider";
+ permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.*";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch";
+ permission java.lang.RuntimePermission "loadLibrary.j2pkcs11";
+ permission java.util.PropertyPermission "sun.security.pkcs11.allowSingleThreadedModules", "read";
+ permission java.util.PropertyPermission "sun.security.pkcs11.disableKeyExtraction", "read";
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "os.arch", "read";
+ permission java.util.PropertyPermission "jdk.crypto.KeyAgreement.legacyKDF", "read";
+ permission java.security.SecurityPermission "putProviderProperty.*";
+ permission java.security.SecurityPermission "clearProviderProperties.*";
+ permission java.security.SecurityPermission "removeProviderProperty.*";
+ permission java.security.SecurityPermission
+ "getProperty.auth.login.defaultCallbackHandler";
+ permission java.security.SecurityPermission "authProvider.*";
+ // Needed for reading PKCS11 config file and NSS library check
+ permission java.io.FilePermission "<>", "read";
+};
+
+grant codeBase "jrt:/jdk.dynalink" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.httpserver" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.internal.le" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.internal.vm.compiler" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.internal.vm.compiler.management" {
+ permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.vm.compiler.collections";
+ permission java.lang.RuntimePermission "accessClassInPackage.jdk.vm.ci.runtime";
+ permission java.lang.RuntimePermission "accessClassInPackage.jdk.vm.ci.services";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.core.common";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.debug";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.hotspot";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.options";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.phases.common.jmx";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.graalvm.compiler.serviceprovider";
+};
+
+grant codeBase "jrt:/jdk.jsobject" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.localedata" {
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.text.*";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.util.*";
+};
+
+grant codeBase "jrt:/jdk.naming.dns" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.scripting.nashorn" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.scripting.nashorn.shell" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.security.auth" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.security.jgss" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.zipfs" {
+ permission java.io.FilePermission "<>", "read,write,delete";
+ permission java.lang.RuntimePermission "fileSystemProvider";
+ permission java.lang.RuntimePermission "accessUserInformation";
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "user.dir", "read";
+ permission java.util.PropertyPermission "user.name", "read";
+};
+
+// permissions needed by applications using java.desktop module
+grant {
+ permission java.lang.RuntimePermission "accessClassInPackage.com.sun.beans";
+ permission java.lang.RuntimePermission "accessClassInPackage.com.sun.beans.*";
+ permission java.lang.RuntimePermission "accessClassInPackage.com.sun.java.swing.plaf.*";
+ permission java.lang.RuntimePermission "accessClassInPackage.com.apple.*";
+};
+grant codeBase "jrt:/jdk.accessibility" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.crypto.mscapi" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.*";
+ permission java.lang.RuntimePermission "loadLibrary.sunmscapi";
+ permission java.security.SecurityPermission "putProviderProperty.SunMSCAPI";
+ permission java.security.SecurityPermission
+ "clearProviderProperties.SunMSCAPI";
+ permission java.security.SecurityPermission
+ "removeProviderProperty.SunMSCAPI";
+ permission java.security.SecurityPermission "authProvider.SunMSCAPI";
+ permission java.util.PropertyPermission "*", "read";
+};
diff --git a/jre/lib/security/public_suffix_list.dat b/jre/lib/security/public_suffix_list.dat
new file mode 100644
index 0000000..aadea61
Binary files /dev/null and b/jre/lib/security/public_suffix_list.dat differ
diff --git a/jre/lib/tzdb.dat b/jre/lib/tzdb.dat
new file mode 100644
index 0000000..4bfbcc3
Binary files /dev/null and b/jre/lib/tzdb.dat differ
diff --git a/jre/lib/tzmappings b/jre/lib/tzmappings
new file mode 100644
index 0000000..a40a1bf
--- /dev/null
+++ b/jre/lib/tzmappings
@@ -0,0 +1,505 @@
+AUS Central Standard Time:AU:Australia/Darwin:
+AUS Central Standard Time:001:Australia/Darwin:
+AUS Eastern Standard Time:AU:Australia/Sydney:
+AUS Eastern Standard Time:001:Australia/Sydney:
+Afghanistan Standard Time:AF:Asia/Kabul:
+Afghanistan Standard Time:001:Asia/Kabul:
+Alaskan Standard Time:US:America/Anchorage:
+Alaskan Standard Time:001:America/Anchorage:
+Aleutian Standard Time:US:America/Adak:
+Aleutian Standard Time:001:America/Adak:
+Altai Standard Time:RU:Asia/Barnaul:
+Altai Standard Time:001:Asia/Barnaul:
+Arab Standard Time:BH:Asia/Bahrain:
+Arab Standard Time:KW:Asia/Kuwait:
+Arab Standard Time:QA:Asia/Qatar:
+Arab Standard Time:SA:Asia/Riyadh:
+Arab Standard Time:YE:Asia/Aden:
+Arab Standard Time:001:Asia/Riyadh:
+Arabian Standard Time:AE:Asia/Dubai:
+Arabian Standard Time:OM:Asia/Muscat:
+Arabian Standard Time:ZZ:Etc/GMT-4:
+Arabian Standard Time:001:Asia/Dubai:
+Arabic Standard Time:IQ:Asia/Baghdad:
+Arabic Standard Time:001:Asia/Baghdad:
+Argentina Standard Time:AR:America/Buenos_Aires:
+Argentina Standard Time:001:America/Buenos_Aires:
+Astrakhan Standard Time:RU:Europe/Astrakhan:
+Astrakhan Standard Time:001:Europe/Astrakhan:
+Atlantic Standard Time:BM:Atlantic/Bermuda:
+Atlantic Standard Time:CA:America/Halifax:
+Atlantic Standard Time:GL:America/Thule:
+Atlantic Standard Time:001:America/Halifax:
+Aus Central W. Standard Time:AU:Australia/Eucla:
+Aus Central W. Standard Time:001:Australia/Eucla:
+Azerbaijan Standard Time:AZ:Asia/Baku:
+Azerbaijan Standard Time:001:Asia/Baku:
+Azores Standard Time:GL:America/Scoresbysund:
+Azores Standard Time:PT:Atlantic/Azores:
+Azores Standard Time:001:Atlantic/Azores:
+Bahia Standard Time:BR:America/Bahia:
+Bahia Standard Time:001:America/Bahia:
+Bangladesh Standard Time:BD:Asia/Dhaka:
+Bangladesh Standard Time:BT:Asia/Thimphu:
+Bangladesh Standard Time:001:Asia/Dhaka:
+Belarus Standard Time:BY:Europe/Minsk:
+Belarus Standard Time:001:Europe/Minsk:
+Bougainville Standard Time:PG:Pacific/Bougainville:
+Bougainville Standard Time:001:Pacific/Bougainville:
+Canada Central Standard Time:CA:America/Regina:
+Canada Central Standard Time:001:America/Regina:
+Cape Verde Standard Time:CV:Atlantic/Cape_Verde:
+Cape Verde Standard Time:ZZ:Etc/GMT+1:
+Cape Verde Standard Time:001:Atlantic/Cape_Verde:
+Caucasus Standard Time:AM:Asia/Yerevan:
+Caucasus Standard Time:001:Asia/Yerevan:
+Cen. Australia Standard Time:AU:Australia/Adelaide:
+Cen. Australia Standard Time:001:Australia/Adelaide:
+Central America Standard Time:BZ:America/Belize:
+Central America Standard Time:CR:America/Costa_Rica:
+Central America Standard Time:EC:Pacific/Galapagos:
+Central America Standard Time:GT:America/Guatemala:
+Central America Standard Time:HN:America/Tegucigalpa:
+Central America Standard Time:NI:America/Managua:
+Central America Standard Time:SV:America/El_Salvador:
+Central America Standard Time:ZZ:Etc/GMT+6:
+Central America Standard Time:001:America/Guatemala:
+Central Asia Standard Time:AQ:Antarctica/Vostok:
+Central Asia Standard Time:CN:Asia/Urumqi:
+Central Asia Standard Time:IO:Indian/Chagos:
+Central Asia Standard Time:KG:Asia/Bishkek:
+Central Asia Standard Time:KZ:Asia/Almaty:
+Central Asia Standard Time:ZZ:Etc/GMT-6:
+Central Asia Standard Time:001:Asia/Almaty:
+Central Brazilian Standard Time:BR:America/Cuiaba:
+Central Brazilian Standard Time:001:America/Cuiaba:
+Central Europe Standard Time:AL:Europe/Tirane:
+Central Europe Standard Time:CZ:Europe/Prague:
+Central Europe Standard Time:HU:Europe/Budapest:
+Central Europe Standard Time:ME:Europe/Podgorica:
+Central Europe Standard Time:RS:Europe/Belgrade:
+Central Europe Standard Time:SI:Europe/Ljubljana:
+Central Europe Standard Time:SK:Europe/Bratislava:
+Central Europe Standard Time:001:Europe/Budapest:
+Central European Standard Time:BA:Europe/Sarajevo:
+Central European Standard Time:HR:Europe/Zagreb:
+Central European Standard Time:MK:Europe/Skopje:
+Central European Standard Time:PL:Europe/Warsaw:
+Central European Standard Time:001:Europe/Warsaw:
+Central Pacific Standard Time:AQ:Antarctica/Casey:
+Central Pacific Standard Time:FM:Pacific/Ponape:
+Central Pacific Standard Time:NC:Pacific/Noumea:
+Central Pacific Standard Time:SB:Pacific/Guadalcanal:
+Central Pacific Standard Time:VU:Pacific/Efate:
+Central Pacific Standard Time:ZZ:Etc/GMT-11:
+Central Pacific Standard Time:001:Pacific/Guadalcanal:
+Central Standard Time:CA:America/Winnipeg:
+Central Standard Time:MX:America/Matamoros:
+Central Standard Time:US:America/Chicago:
+Central Standard Time:ZZ:CST6CDT:
+Central Standard Time:001:America/Chicago:
+Central Standard Time (Mexico):MX:America/Mexico_City:
+Central Standard Time (Mexico):001:America/Mexico_City:
+Chatham Islands Standard Time:NZ:Pacific/Chatham:
+Chatham Islands Standard Time:001:Pacific/Chatham:
+China Standard Time:CN:Asia/Shanghai:
+China Standard Time:HK:Asia/Hong_Kong:
+China Standard Time:MO:Asia/Macau:
+China Standard Time:001:Asia/Shanghai:
+Cuba Standard Time:CU:America/Havana:
+Cuba Standard Time:001:America/Havana:
+Dateline Standard Time:ZZ:Etc/GMT+12:
+Dateline Standard Time:001:Etc/GMT+12:
+E. Africa Standard Time:AQ:Antarctica/Syowa:
+E. Africa Standard Time:DJ:Africa/Djibouti:
+E. Africa Standard Time:ER:Africa/Asmera:
+E. Africa Standard Time:ET:Africa/Addis_Ababa:
+E. Africa Standard Time:KE:Africa/Nairobi:
+E. Africa Standard Time:KM:Indian/Comoro:
+E. Africa Standard Time:MG:Indian/Antananarivo:
+E. Africa Standard Time:SO:Africa/Mogadishu:
+E. Africa Standard Time:TZ:Africa/Dar_es_Salaam:
+E. Africa Standard Time:UG:Africa/Kampala:
+E. Africa Standard Time:YT:Indian/Mayotte:
+E. Africa Standard Time:ZZ:Etc/GMT-3:
+E. Africa Standard Time:001:Africa/Nairobi:
+E. Australia Standard Time:AU:Australia/Brisbane:
+E. Australia Standard Time:001:Australia/Brisbane:
+E. Europe Standard Time:MD:Europe/Chisinau:
+E. Europe Standard Time:001:Europe/Chisinau:
+E. South America Standard Time:BR:America/Sao_Paulo:
+E. South America Standard Time:001:America/Sao_Paulo:
+Easter Island Standard Time:CL:Pacific/Easter:
+Easter Island Standard Time:001:Pacific/Easter:
+Eastern Standard Time:BS:America/Nassau:
+Eastern Standard Time:CA:America/Toronto:
+Eastern Standard Time:US:America/New_York:
+Eastern Standard Time:ZZ:EST5EDT:
+Eastern Standard Time:001:America/New_York:
+Eastern Standard Time (Mexico):MX:America/Cancun:
+Eastern Standard Time (Mexico):001:America/Cancun:
+Egypt Standard Time:EG:Africa/Cairo:
+Egypt Standard Time:001:Africa/Cairo:
+Ekaterinburg Standard Time:RU:Asia/Yekaterinburg:
+Ekaterinburg Standard Time:001:Asia/Yekaterinburg:
+FLE Standard Time:AX:Europe/Mariehamn:
+FLE Standard Time:BG:Europe/Sofia:
+FLE Standard Time:EE:Europe/Tallinn:
+FLE Standard Time:FI:Europe/Helsinki:
+FLE Standard Time:LT:Europe/Vilnius:
+FLE Standard Time:LV:Europe/Riga:
+FLE Standard Time:UA:Europe/Kiev:
+FLE Standard Time:001:Europe/Kiev:
+Fiji Standard Time:FJ:Pacific/Fiji:
+Fiji Standard Time:001:Pacific/Fiji:
+GMT Standard Time:ES:Atlantic/Canary:
+GMT Standard Time:FO:Atlantic/Faeroe:
+GMT Standard Time:GB:Europe/London:
+GMT Standard Time:GG:Europe/Guernsey:
+GMT Standard Time:IE:Europe/Dublin:
+GMT Standard Time:IM:Europe/Isle_of_Man:
+GMT Standard Time:JE:Europe/Jersey:
+GMT Standard Time:PT:Europe/Lisbon:
+GMT Standard Time:001:Europe/London:
+GTB Standard Time:CY:Asia/Nicosia:
+GTB Standard Time:GR:Europe/Athens:
+GTB Standard Time:RO:Europe/Bucharest:
+GTB Standard Time:001:Europe/Bucharest:
+Georgian Standard Time:GE:Asia/Tbilisi:
+Georgian Standard Time:001:Asia/Tbilisi:
+Greenland Standard Time:GL:America/Godthab:
+Greenland Standard Time:001:America/Godthab:
+Greenwich Standard Time:BF:Africa/Ouagadougou:
+Greenwich Standard Time:CI:Africa/Abidjan:
+Greenwich Standard Time:GH:Africa/Accra:
+Greenwich Standard Time:GL:America/Danmarkshavn:
+Greenwich Standard Time:GM:Africa/Banjul:
+Greenwich Standard Time:GN:Africa/Conakry:
+Greenwich Standard Time:GW:Africa/Bissau:
+Greenwich Standard Time:IS:Atlantic/Reykjavik:
+Greenwich Standard Time:LR:Africa/Monrovia:
+Greenwich Standard Time:ML:Africa/Bamako:
+Greenwich Standard Time:MR:Africa/Nouakchott:
+Greenwich Standard Time:SH:Atlantic/St_Helena:
+Greenwich Standard Time:SL:Africa/Freetown:
+Greenwich Standard Time:SN:Africa/Dakar:
+Greenwich Standard Time:TG:Africa/Lome:
+Greenwich Standard Time:001:Atlantic/Reykjavik:
+Haiti Standard Time:HT:America/Port-au-Prince:
+Haiti Standard Time:001:America/Port-au-Prince:
+Hawaiian Standard Time:CK:Pacific/Rarotonga:
+Hawaiian Standard Time:PF:Pacific/Tahiti:
+Hawaiian Standard Time:UM:Pacific/Johnston:
+Hawaiian Standard Time:US:Pacific/Honolulu:
+Hawaiian Standard Time:ZZ:Etc/GMT+10:
+Hawaiian Standard Time:001:Pacific/Honolulu:
+India Standard Time:IN:Asia/Calcutta:
+India Standard Time:001:Asia/Calcutta:
+Iran Standard Time:IR:Asia/Tehran:
+Iran Standard Time:001:Asia/Tehran:
+Israel Standard Time:IL:Asia/Jerusalem:
+Israel Standard Time:001:Asia/Jerusalem:
+Jordan Standard Time:JO:Asia/Amman:
+Jordan Standard Time:001:Asia/Amman:
+Kaliningrad Standard Time:RU:Europe/Kaliningrad:
+Kaliningrad Standard Time:001:Europe/Kaliningrad:
+Korea Standard Time:KR:Asia/Seoul:
+Korea Standard Time:001:Asia/Seoul:
+Libya Standard Time:LY:Africa/Tripoli:
+Libya Standard Time:001:Africa/Tripoli:
+Line Islands Standard Time:KI:Pacific/Kiritimati:
+Line Islands Standard Time:ZZ:Etc/GMT-14:
+Line Islands Standard Time:001:Pacific/Kiritimati:
+Lord Howe Standard Time:AU:Australia/Lord_Howe:
+Lord Howe Standard Time:001:Australia/Lord_Howe:
+Magadan Standard Time:RU:Asia/Magadan:
+Magadan Standard Time:001:Asia/Magadan:
+Magallanes Standard Time:CL:America/Punta_Arenas:
+Magallanes Standard Time:001:America/Punta_Arenas:
+Marquesas Standard Time:PF:Pacific/Marquesas:
+Marquesas Standard Time:001:Pacific/Marquesas:
+Mauritius Standard Time:MU:Indian/Mauritius:
+Mauritius Standard Time:RE:Indian/Reunion:
+Mauritius Standard Time:SC:Indian/Mahe:
+Mauritius Standard Time:001:Indian/Mauritius:
+Middle East Standard Time:LB:Asia/Beirut:
+Middle East Standard Time:001:Asia/Beirut:
+Montevideo Standard Time:UY:America/Montevideo:
+Montevideo Standard Time:001:America/Montevideo:
+Morocco Standard Time:EH:Africa/El_Aaiun:
+Morocco Standard Time:MA:Africa/Casablanca:
+Morocco Standard Time:001:Africa/Casablanca:
+Mountain Standard Time:CA:America/Edmonton:
+Mountain Standard Time:MX:America/Ojinaga:
+Mountain Standard Time:US:America/Denver:
+Mountain Standard Time:ZZ:MST7MDT:
+Mountain Standard Time:001:America/Denver:
+Mountain Standard Time (Mexico):MX:America/Chihuahua:
+Mountain Standard Time (Mexico):001:America/Chihuahua:
+Myanmar Standard Time:CC:Indian/Cocos:
+Myanmar Standard Time:MM:Asia/Rangoon:
+Myanmar Standard Time:001:Asia/Rangoon:
+N. Central Asia Standard Time:RU:Asia/Novosibirsk:
+N. Central Asia Standard Time:001:Asia/Novosibirsk:
+Namibia Standard Time:NA:Africa/Windhoek:
+Namibia Standard Time:001:Africa/Windhoek:
+Nepal Standard Time:NP:Asia/Katmandu:
+Nepal Standard Time:001:Asia/Katmandu:
+New Zealand Standard Time:AQ:Antarctica/McMurdo:
+New Zealand Standard Time:NZ:Pacific/Auckland:
+New Zealand Standard Time:001:Pacific/Auckland:
+Newfoundland Standard Time:CA:America/St_Johns:
+Newfoundland Standard Time:001:America/St_Johns:
+Norfolk Standard Time:NF:Pacific/Norfolk:
+Norfolk Standard Time:001:Pacific/Norfolk:
+North Asia East Standard Time:RU:Asia/Irkutsk:
+North Asia East Standard Time:001:Asia/Irkutsk:
+North Asia Standard Time:RU:Asia/Krasnoyarsk:
+North Asia Standard Time:001:Asia/Krasnoyarsk:
+North Korea Standard Time:KP:Asia/Pyongyang:
+North Korea Standard Time:001:Asia/Pyongyang:
+Omsk Standard Time:RU:Asia/Omsk:
+Omsk Standard Time:001:Asia/Omsk:
+Pacific SA Standard Time:CL:America/Santiago:
+Pacific SA Standard Time:001:America/Santiago:
+Pacific Standard Time:CA:America/Vancouver:
+Pacific Standard Time:US:America/Los_Angeles:
+Pacific Standard Time:ZZ:PST8PDT:
+Pacific Standard Time:001:America/Los_Angeles:
+Pacific Standard Time (Mexico):MX:America/Tijuana:
+Pacific Standard Time (Mexico):001:America/Tijuana:
+Pakistan Standard Time:PK:Asia/Karachi:
+Pakistan Standard Time:001:Asia/Karachi:
+Paraguay Standard Time:PY:America/Asuncion:
+Paraguay Standard Time:001:America/Asuncion:
+Qyzylorda Standard Time:KZ:Asia/Qyzylorda:
+Qyzylorda Standard Time:001:Asia/Qyzylorda:
+Romance Standard Time:BE:Europe/Brussels:
+Romance Standard Time:DK:Europe/Copenhagen:
+Romance Standard Time:ES:Europe/Madrid:
+Romance Standard Time:FR:Europe/Paris:
+Romance Standard Time:001:Europe/Paris:
+Russia Time Zone 10:RU:Asia/Srednekolymsk:
+Russia Time Zone 10:001:Asia/Srednekolymsk:
+Russia Time Zone 11:RU:Asia/Kamchatka:
+Russia Time Zone 11:001:Asia/Kamchatka:
+Russia Time Zone 3:RU:Europe/Samara:
+Russia Time Zone 3:001:Europe/Samara:
+Russian Standard Time:RU:Europe/Moscow:
+Russian Standard Time:UA:Europe/Simferopol:
+Russian Standard Time:001:Europe/Moscow:
+SA Eastern Standard Time:AQ:Antarctica/Rothera:
+SA Eastern Standard Time:BR:America/Fortaleza:
+SA Eastern Standard Time:FK:Atlantic/Stanley:
+SA Eastern Standard Time:GF:America/Cayenne:
+SA Eastern Standard Time:SR:America/Paramaribo:
+SA Eastern Standard Time:ZZ:Etc/GMT+3:
+SA Eastern Standard Time:001:America/Cayenne:
+SA Pacific Standard Time:BR:America/Rio_Branco:
+SA Pacific Standard Time:CA:America/Coral_Harbour:
+SA Pacific Standard Time:CO:America/Bogota:
+SA Pacific Standard Time:EC:America/Guayaquil:
+SA Pacific Standard Time:JM:America/Jamaica:
+SA Pacific Standard Time:KY:America/Cayman:
+SA Pacific Standard Time:PA:America/Panama:
+SA Pacific Standard Time:PE:America/Lima:
+SA Pacific Standard Time:ZZ:Etc/GMT+5:
+SA Pacific Standard Time:001:America/Bogota:
+SA Western Standard Time:AG:America/Antigua:
+SA Western Standard Time:AI:America/Anguilla:
+SA Western Standard Time:AW:America/Aruba:
+SA Western Standard Time:BB:America/Barbados:
+SA Western Standard Time:BL:America/St_Barthelemy:
+SA Western Standard Time:BO:America/La_Paz:
+SA Western Standard Time:BQ:America/Kralendijk:
+SA Western Standard Time:BR:America/Manaus:
+SA Western Standard Time:CA:America/Blanc-Sablon:
+SA Western Standard Time:CW:America/Curacao:
+SA Western Standard Time:DM:America/Dominica:
+SA Western Standard Time:DO:America/Santo_Domingo:
+SA Western Standard Time:GD:America/Grenada:
+SA Western Standard Time:GP:America/Guadeloupe:
+SA Western Standard Time:GY:America/Guyana:
+SA Western Standard Time:KN:America/St_Kitts:
+SA Western Standard Time:LC:America/St_Lucia:
+SA Western Standard Time:MF:America/Marigot:
+SA Western Standard Time:MQ:America/Martinique:
+SA Western Standard Time:MS:America/Montserrat:
+SA Western Standard Time:PR:America/Puerto_Rico:
+SA Western Standard Time:SX:America/Lower_Princes:
+SA Western Standard Time:TT:America/Port_of_Spain:
+SA Western Standard Time:VC:America/St_Vincent:
+SA Western Standard Time:VG:America/Tortola:
+SA Western Standard Time:VI:America/St_Thomas:
+SA Western Standard Time:ZZ:Etc/GMT+4:
+SA Western Standard Time:001:America/La_Paz:
+SE Asia Standard Time:AQ:Antarctica/Davis:
+SE Asia Standard Time:CX:Indian/Christmas:
+SE Asia Standard Time:ID:Asia/Jakarta:
+SE Asia Standard Time:KH:Asia/Phnom_Penh:
+SE Asia Standard Time:LA:Asia/Vientiane:
+SE Asia Standard Time:TH:Asia/Bangkok:
+SE Asia Standard Time:VN:Asia/Saigon:
+SE Asia Standard Time:ZZ:Etc/GMT-7:
+SE Asia Standard Time:001:Asia/Bangkok:
+Saint Pierre Standard Time:PM:America/Miquelon:
+Saint Pierre Standard Time:001:America/Miquelon:
+Sakhalin Standard Time:RU:Asia/Sakhalin:
+Sakhalin Standard Time:001:Asia/Sakhalin:
+Samoa Standard Time:WS:Pacific/Apia:
+Samoa Standard Time:001:Pacific/Apia:
+Sao Tome Standard Time:ST:Africa/Sao_Tome:
+Sao Tome Standard Time:001:Africa/Sao_Tome:
+Saratov Standard Time:RU:Europe/Saratov:
+Saratov Standard Time:001:Europe/Saratov:
+Singapore Standard Time:BN:Asia/Brunei:
+Singapore Standard Time:ID:Asia/Makassar:
+Singapore Standard Time:MY:Asia/Kuala_Lumpur:
+Singapore Standard Time:PH:Asia/Manila:
+Singapore Standard Time:SG:Asia/Singapore:
+Singapore Standard Time:ZZ:Etc/GMT-8:
+Singapore Standard Time:001:Asia/Singapore:
+South Africa Standard Time:BI:Africa/Bujumbura:
+South Africa Standard Time:BW:Africa/Gaborone:
+South Africa Standard Time:CD:Africa/Lubumbashi:
+South Africa Standard Time:LS:Africa/Maseru:
+South Africa Standard Time:MW:Africa/Blantyre:
+South Africa Standard Time:MZ:Africa/Maputo:
+South Africa Standard Time:RW:Africa/Kigali:
+South Africa Standard Time:SS:Africa/Juba:
+South Africa Standard Time:SZ:Africa/Mbabane:
+South Africa Standard Time:ZA:Africa/Johannesburg:
+South Africa Standard Time:ZM:Africa/Lusaka:
+South Africa Standard Time:ZW:Africa/Harare:
+South Africa Standard Time:ZZ:Etc/GMT-2:
+South Africa Standard Time:001:Africa/Johannesburg:
+Sri Lanka Standard Time:LK:Asia/Colombo:
+Sri Lanka Standard Time:001:Asia/Colombo:
+Sudan Standard Time:SD:Africa/Khartoum:
+Sudan Standard Time:001:Africa/Khartoum:
+Syria Standard Time:SY:Asia/Damascus:
+Syria Standard Time:001:Asia/Damascus:
+Taipei Standard Time:TW:Asia/Taipei:
+Taipei Standard Time:001:Asia/Taipei:
+Tasmania Standard Time:AU:Australia/Hobart:
+Tasmania Standard Time:001:Australia/Hobart:
+Tocantins Standard Time:BR:America/Araguaina:
+Tocantins Standard Time:001:America/Araguaina:
+Tokyo Standard Time:ID:Asia/Jayapura:
+Tokyo Standard Time:JP:Asia/Tokyo:
+Tokyo Standard Time:PW:Pacific/Palau:
+Tokyo Standard Time:TL:Asia/Dili:
+Tokyo Standard Time:ZZ:Etc/GMT-9:
+Tokyo Standard Time:001:Asia/Tokyo:
+Tomsk Standard Time:RU:Asia/Tomsk:
+Tomsk Standard Time:001:Asia/Tomsk:
+Tonga Standard Time:TO:Pacific/Tongatapu:
+Tonga Standard Time:001:Pacific/Tongatapu:
+Transbaikal Standard Time:RU:Asia/Chita:
+Transbaikal Standard Time:001:Asia/Chita:
+Turkey Standard Time:TR:Europe/Istanbul:
+Turkey Standard Time:001:Europe/Istanbul:
+Turks And Caicos Standard Time:TC:America/Grand_Turk:
+Turks And Caicos Standard Time:001:America/Grand_Turk:
+US Eastern Standard Time:US:America/Indianapolis:
+US Eastern Standard Time:001:America/Indianapolis:
+US Mountain Standard Time:CA:America/Creston:
+US Mountain Standard Time:MX:America/Hermosillo:
+US Mountain Standard Time:US:America/Phoenix:
+US Mountain Standard Time:ZZ:Etc/GMT+7:
+US Mountain Standard Time:001:America/Phoenix:
+UTC:ZZ:Etc/UTC:
+UTC:001:Etc/UTC:
+UTC+12:KI:Pacific/Tarawa:
+UTC+12:MH:Pacific/Majuro:
+UTC+12:NR:Pacific/Nauru:
+UTC+12:TV:Pacific/Funafuti:
+UTC+12:UM:Pacific/Wake:
+UTC+12:WF:Pacific/Wallis:
+UTC+12:ZZ:Etc/GMT-12:
+UTC+12:001:Etc/GMT-12:
+UTC+13:KI:Pacific/Enderbury:
+UTC+13:TK:Pacific/Fakaofo:
+UTC+13:ZZ:Etc/GMT-13:
+UTC+13:001:Etc/GMT-13:
+UTC-02:BR:America/Noronha:
+UTC-02:GS:Atlantic/South_Georgia:
+UTC-02:ZZ:Etc/GMT+2:
+UTC-02:001:Etc/GMT+2:
+UTC-08:PN:Pacific/Pitcairn:
+UTC-08:ZZ:Etc/GMT+8:
+UTC-08:001:Etc/GMT+8:
+UTC-09:PF:Pacific/Gambier:
+UTC-09:ZZ:Etc/GMT+9:
+UTC-09:001:Etc/GMT+9:
+UTC-11:AS:Pacific/Pago_Pago:
+UTC-11:NU:Pacific/Niue:
+UTC-11:UM:Pacific/Midway:
+UTC-11:ZZ:Etc/GMT+11:
+UTC-11:001:Etc/GMT+11:
+Ulaanbaatar Standard Time:MN:Asia/Ulaanbaatar:
+Ulaanbaatar Standard Time:001:Asia/Ulaanbaatar:
+Venezuela Standard Time:VE:America/Caracas:
+Venezuela Standard Time:001:America/Caracas:
+Vladivostok Standard Time:RU:Asia/Vladivostok:
+Vladivostok Standard Time:001:Asia/Vladivostok:
+Volgograd Standard Time:RU:Europe/Volgograd:
+Volgograd Standard Time:001:Europe/Volgograd:
+W. Australia Standard Time:AU:Australia/Perth:
+W. Australia Standard Time:001:Australia/Perth:
+W. Central Africa Standard Time:AO:Africa/Luanda:
+W. Central Africa Standard Time:BJ:Africa/Porto-Novo:
+W. Central Africa Standard Time:CD:Africa/Kinshasa:
+W. Central Africa Standard Time:CF:Africa/Bangui:
+W. Central Africa Standard Time:CG:Africa/Brazzaville:
+W. Central Africa Standard Time:CM:Africa/Douala:
+W. Central Africa Standard Time:DZ:Africa/Algiers:
+W. Central Africa Standard Time:GA:Africa/Libreville:
+W. Central Africa Standard Time:GQ:Africa/Malabo:
+W. Central Africa Standard Time:NE:Africa/Niamey:
+W. Central Africa Standard Time:NG:Africa/Lagos:
+W. Central Africa Standard Time:TD:Africa/Ndjamena:
+W. Central Africa Standard Time:TN:Africa/Tunis:
+W. Central Africa Standard Time:ZZ:Etc/GMT-1:
+W. Central Africa Standard Time:001:Africa/Lagos:
+W. Europe Standard Time:AD:Europe/Andorra:
+W. Europe Standard Time:AT:Europe/Vienna:
+W. Europe Standard Time:CH:Europe/Zurich:
+W. Europe Standard Time:DE:Europe/Berlin:
+W. Europe Standard Time:GI:Europe/Gibraltar:
+W. Europe Standard Time:IT:Europe/Rome:
+W. Europe Standard Time:LI:Europe/Vaduz:
+W. Europe Standard Time:LU:Europe/Luxembourg:
+W. Europe Standard Time:MC:Europe/Monaco:
+W. Europe Standard Time:MT:Europe/Malta:
+W. Europe Standard Time:NL:Europe/Amsterdam:
+W. Europe Standard Time:NO:Europe/Oslo:
+W. Europe Standard Time:SE:Europe/Stockholm:
+W. Europe Standard Time:SJ:Arctic/Longyearbyen:
+W. Europe Standard Time:SM:Europe/San_Marino:
+W. Europe Standard Time:VA:Europe/Vatican:
+W. Europe Standard Time:001:Europe/Berlin:
+W. Mongolia Standard Time:MN:Asia/Hovd:
+W. Mongolia Standard Time:001:Asia/Hovd:
+West Asia Standard Time:AQ:Antarctica/Mawson:
+West Asia Standard Time:KZ:Asia/Oral:
+West Asia Standard Time:MV:Indian/Maldives:
+West Asia Standard Time:TF:Indian/Kerguelen:
+West Asia Standard Time:TJ:Asia/Dushanbe:
+West Asia Standard Time:TM:Asia/Ashgabat:
+West Asia Standard Time:UZ:Asia/Tashkent:
+West Asia Standard Time:ZZ:Etc/GMT-5:
+West Asia Standard Time:001:Asia/Tashkent:
+West Bank Standard Time:PS:Asia/Hebron:
+West Bank Standard Time:001:Asia/Hebron:
+West Pacific Standard Time:AQ:Antarctica/DumontDUrville:
+West Pacific Standard Time:FM:Pacific/Truk:
+West Pacific Standard Time:GU:Pacific/Guam:
+West Pacific Standard Time:MP:Pacific/Saipan:
+West Pacific Standard Time:PG:Pacific/Port_Moresby:
+West Pacific Standard Time:ZZ:Etc/GMT-10:
+West Pacific Standard Time:001:Pacific/Port_Moresby:
+Yakutsk Standard Time:RU:Asia/Yakutsk:
+Yakutsk Standard Time:001:Asia/Yakutsk:
+Yukon Standard Time:CA:America/Whitehorse:
+Yukon Standard Time:001:America/Whitehorse:
diff --git a/jre/release b/jre/release
new file mode 100644
index 0000000..9b8b90a
--- /dev/null
+++ b/jre/release
@@ -0,0 +1,2 @@
+JAVA_VERSION="18.0.2.1"
+MODULES="java.base java.datatransfer java.xml java.prefs java.desktop java.logging"
diff --git a/lib/miglayout-core-javadoc.jar b/lib/miglayout-core-javadoc.jar
new file mode 100644
index 0000000..da68015
Binary files /dev/null and b/lib/miglayout-core-javadoc.jar differ
diff --git a/lib/miglayout-core-sources.jar b/lib/miglayout-core-sources.jar
new file mode 100644
index 0000000..5ce2041
Binary files /dev/null and b/lib/miglayout-core-sources.jar differ
diff --git a/lib/miglayout-core.jar b/lib/miglayout-core.jar
new file mode 100644
index 0000000..303692e
Binary files /dev/null and b/lib/miglayout-core.jar differ
diff --git a/lib/miglayout-swing-javadoc.jar b/lib/miglayout-swing-javadoc.jar
new file mode 100644
index 0000000..fec8806
Binary files /dev/null and b/lib/miglayout-swing-javadoc.jar differ
diff --git a/lib/miglayout-swing-sources.jar b/lib/miglayout-swing-sources.jar
new file mode 100644
index 0000000..f2a48fd
Binary files /dev/null and b/lib/miglayout-swing-sources.jar differ
diff --git a/lib/miglayout-swing.jar b/lib/miglayout-swing.jar
new file mode 100644
index 0000000..0028623
Binary files /dev/null and b/lib/miglayout-swing.jar differ
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..5c15fd8
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,2 @@
+rootProject.name = 'DiscordLite'
+
diff --git a/src/main/java/tech/nevets/dlite/ChatWindow.java b/src/main/java/tech/nevets/dlite/ChatWindow.java
new file mode 100644
index 0000000..c008475
--- /dev/null
+++ b/src/main/java/tech/nevets/dlite/ChatWindow.java
@@ -0,0 +1,236 @@
+/*
+ * Created by JFormDesigner on Thu Jan 04 15:01:53 CST 2024
+ */
+
+package tech.nevets.dlite;
+
+import java.awt.*;
+import java.awt.event.*;
+import java.io.IOException;
+import javax.swing.*;
+import javax.swing.plaf.BorderUIResource;
+
+import net.miginfocom.swing.*;
+
+/**
+ * @author steven
+ */
+public class ChatWindow extends JPanel {
+ private boolean connected = false;
+ private boolean darkModeBool = true;
+
+ public ChatWindow() {
+ initComponents();
+ }
+
+ private void connectBtnMouseClicked(MouseEvent e) {
+ if (connected) {
+ ConnectionManager.closeActiveConnection();
+ connStatus.setText("Disconnected");
+ connectBtn.setText("Connect");
+ connected = false;
+ } else {
+ Connection conn;
+ try {
+ conn = new Connection(username.getText(), connAddr.getText());
+ ConnectionManager.setActiveConnection(conn);
+ } catch (final Exception ex) {
+ connStatus.setText("Error: " + ex.getMessage());
+ connAddr.setBorder(new BorderUIResource(BorderFactory.createLineBorder(Color.RED)));
+ return;
+ }
+ chat.setText("");
+ conn.setComponents(chat, scrollPane);
+ connStatus.setText("Connected");
+ connectBtn.setText("Disconnect");
+ connected = true;
+ }
+ }
+
+ private void connAddrKeyPressed(KeyEvent e) {
+ connAddr.setBorder(UIManager.getBorder("TextField.border"));
+ }
+
+ private void usernameFocusGained(FocusEvent e) {
+ if (username.getText().trim().equals("Username")) {
+ username.setText("");
+ }
+ }
+
+ private void usernameFocusLost(FocusEvent e) {
+ if (username.getText().trim().isEmpty()) {
+ username.setText("Username");
+ }
+ }
+
+ private void connAddrFocusGained(FocusEvent e) {
+ if (connAddr.getText().trim().equals("Address:Port")) {
+ connAddr.setText("");
+ }
+ }
+
+ private void connAddrFocusLost(FocusEvent e) {
+ if (connAddr.getText().trim().isEmpty()) {
+ connAddr.setText("Address:Port");
+ }
+ }
+
+ private void sendBtnMouseClicked(MouseEvent e) {
+ Connection conn = ConnectionManager.getActiveConnection();
+ if (conn == null) {
+ return;
+ }
+ conn.sendMessage(messageBox.getText().trim());
+ messageBox.setText("");
+ }
+
+ private void messageBoxKeyPressed(KeyEvent e) {
+ if (e.getKeyCode() == 10 && !messageBox.getText().trim().isEmpty()) {
+ sendBtnMouseClicked(null);
+ }
+ }
+
+ private void darkModeMouseClicked(MouseEvent e) {
+ if (darkModeBool) {
+ Main.setDarkMode(false);
+ darkModeBool = false;
+ darkMode.setText("Dark Mode");
+ } else {
+ Main.setDarkMode(true);
+ darkModeBool = true;
+ darkMode.setText("Light Mode");
+ }
+ }
+
+ private void initComponents() {
+ // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents @formatter:off
+ connStatus = new JLabel();
+ darkMode = new JButton();
+ username = new JTextField();
+ connAddr = new JTextField();
+ connectBtn = new JButton();
+ scrollPane = new JScrollPane();
+ chat = new JTextArea();
+ messageBox = new JTextField();
+ sendBtn = new JButton();
+
+ //======== this ========
+ setPreferredSize(new Dimension(720, 480));
+ setLayout(new MigLayout(
+ "fill,hidemode 3",
+ // columns
+ "[161,fill]" +
+ "[298,grow,fill]" +
+ "[94,shrink 0,center]",
+ // rows
+ "0[24,top]0" +
+ "[24,shrink 0,center]" +
+ "[grow]" +
+ "[24]"));
+
+ //---- connStatus ----
+ connStatus.setText("Disconnected");
+ add(connStatus, "cell 0 0 2 1,aligny center,growy 0");
+
+ //---- darkMode ----
+ darkMode.setText("Dark Mode");
+ darkMode.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ darkModeMouseClicked(e);
+ }
+ });
+ add(darkMode, "cell 2 0,growx");
+
+ //---- username ----
+ username.setText("Username");
+ username.addFocusListener(new FocusAdapter() {
+ @Override
+ public void focusGained(FocusEvent e) {
+ usernameFocusGained(e);
+ }
+ @Override
+ public void focusLost(FocusEvent e) {
+ usernameFocusLost(e);
+ }
+ });
+ add(username, "cell 0 1,growy");
+
+ //---- connAddr ----
+ connAddr.setText("Address:Port");
+ connAddr.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyPressed(KeyEvent e) {
+ connAddrKeyPressed(e);
+ }
+ });
+ connAddr.addFocusListener(new FocusAdapter() {
+ @Override
+ public void focusGained(FocusEvent e) {
+ connAddrFocusGained(e);
+ }
+ @Override
+ public void focusLost(FocusEvent e) {
+ connAddrFocusLost(e);
+ }
+ });
+ add(connAddr, "cell 1 1,growy");
+
+ //---- connectBtn ----
+ connectBtn.setText("Connect");
+ connectBtn.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+ connectBtn.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ connectBtnMouseClicked(e);
+ }
+ });
+ add(connectBtn, "cell 2 1,grow");
+
+ //======== scrollPane ========
+ {
+ scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane.setAutoscrolls(true);
+
+ //---- chat ----
+ chat.setEditable(false);
+ chat.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ chat.setLineWrap(true);
+ scrollPane.setViewportView(chat);
+ }
+ add(scrollPane, "cell 0 2 3 1,grow");
+
+ //---- messageBox ----
+ messageBox.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyPressed(KeyEvent e) {
+ messageBoxKeyPressed(e);
+ }
+ });
+ add(messageBox, "cell 0 3 2 1,growy");
+
+ //---- sendBtn ----
+ sendBtn.setText("Send");
+ sendBtn.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+ sendBtn.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ sendBtnMouseClicked(e);
+ }
+ });
+ add(sendBtn, "cell 2 3,grow");
+ // JFormDesigner - End of component initialization //GEN-END:initComponents @formatter:on
+ }
+
+ // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables @formatter:off
+ private JLabel connStatus;
+ private JButton darkMode;
+ private JTextField username;
+ private JTextField connAddr;
+ private JButton connectBtn;
+ private JScrollPane scrollPane;
+ private JTextArea chat;
+ private JTextField messageBox;
+ private JButton sendBtn;
+ // JFormDesigner - End of variables declaration //GEN-END:variables @formatter:on
+}
diff --git a/src/main/java/tech/nevets/dlite/ChatWindow.jfd b/src/main/java/tech/nevets/dlite/ChatWindow.jfd
new file mode 100644
index 0000000..fad3bf7
--- /dev/null
+++ b/src/main/java/tech/nevets/dlite/ChatWindow.jfd
@@ -0,0 +1,84 @@
+JFDML JFormDesigner: "8.2.1.0.348" Java: "17.0.9" encoding: "UTF-8"
+
+new FormModel {
+ contentType: "form/swing"
+ root: new FormRoot {
+ add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) {
+ "$layoutConstraints": "fill,hidemode 3"
+ "$columnConstraints": "[161,fill][298,grow,fill][94,shrink 0,center]"
+ "$rowConstraints": "0[24,top]0[24,shrink 0,center][grow][24]"
+ } ) {
+ name: "this"
+ "preferredSize": new java.awt.Dimension( 720, 480 )
+ add( new FormComponent( "javax.swing.JLabel" ) {
+ name: "connStatus"
+ "text": "Disconnected"
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 0 0 2 1,aligny center,growy 0"
+ } )
+ add( new FormComponent( "javax.swing.JButton" ) {
+ name: "darkMode"
+ "text": "Dark Mode"
+ addEvent( new FormEvent( "java.awt.event.MouseListener", "mouseClicked", "darkModeMouseClicked", true ) )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 2 0,growx"
+ } )
+ add( new FormComponent( "javax.swing.JTextField" ) {
+ name: "username"
+ "text": "Username"
+ addEvent( new FormEvent( "java.awt.event.FocusListener", "focusGained", "usernameFocusGained", true ) )
+ addEvent( new FormEvent( "java.awt.event.FocusListener", "focusLost", "usernameFocusLost", true ) )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 0 1,growy"
+ } )
+ add( new FormComponent( "javax.swing.JTextField" ) {
+ name: "connAddr"
+ "text": "Address:Port"
+ addEvent( new FormEvent( "java.awt.event.KeyListener", "keyPressed", "connAddrKeyPressed", true ) )
+ addEvent( new FormEvent( "java.awt.event.FocusListener", "focusGained", "connAddrFocusGained", true ) )
+ addEvent( new FormEvent( "java.awt.event.FocusListener", "focusLost", "connAddrFocusLost", true ) )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 1 1,growy"
+ } )
+ add( new FormComponent( "javax.swing.JButton" ) {
+ name: "connectBtn"
+ "text": "Connect"
+ "cursor": &Cursor0 new java.awt.Cursor( 12 )
+ addEvent( new FormEvent( "java.awt.event.MouseListener", "mouseClicked", "connectBtnMouseClicked", true ) )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 2 1,grow"
+ } )
+ add( new FormContainer( "javax.swing.JScrollPane", new FormLayoutManager( class javax.swing.JScrollPane ) ) {
+ name: "scrollPane"
+ "horizontalScrollBarPolicy": 31
+ "autoscrolls": true
+ add( new FormComponent( "javax.swing.JTextArea" ) {
+ name: "chat"
+ "editable": false
+ "font": new java.awt.Font( "Tahoma", 0, 11 )
+ "lineWrap": true
+ } )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 0 2 3 1,grow"
+ } )
+ add( new FormComponent( "javax.swing.JTextField" ) {
+ name: "messageBox"
+ addEvent( new FormEvent( "java.awt.event.KeyListener", "keyPressed", "messageBoxKeyPressed", true ) )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 0 3 2 1,growy"
+ } )
+ add( new FormComponent( "javax.swing.JButton" ) {
+ name: "sendBtn"
+ "text": "Send"
+ "cursor": #Cursor0
+ addEvent( new FormEvent( "java.awt.event.MouseListener", "mouseClicked", "sendBtnMouseClicked", true ) )
+ }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
+ "value": "cell 2 3,grow"
+ } )
+ }, new FormLayoutConstraints( null ) {
+ "location": new java.awt.Point( 0, 0 )
+ "size": new java.awt.Dimension( 565, 340 )
+ } )
+ }
+}
+
diff --git a/src/main/java/tech/nevets/dlite/Connection.java b/src/main/java/tech/nevets/dlite/Connection.java
new file mode 100644
index 0000000..3f42b15
--- /dev/null
+++ b/src/main/java/tech/nevets/dlite/Connection.java
@@ -0,0 +1,86 @@
+package tech.nevets.dlite;
+
+import javax.net.SocketFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
+import javax.swing.*;
+import java.io.*;
+import java.net.MalformedURLException;
+import java.net.Socket;
+import java.security.KeyStore;
+import java.security.SecureRandom;
+
+public class Connection {
+ private Socket s;
+ private InputStream is;
+ private PrintStream out;
+ private String username;
+
+ private JTextArea chat;
+ private JScrollBar scrollBar;
+
+ public Connection(String username, String address) throws Exception {
+ String[] addrSplit = address.split(":");
+ if (addrSplit.length != 2) {
+ throw new MalformedURLException("Address not formatted 'ip:port'");
+ }
+
+ KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
+ InputStream tStore = new FileInputStream("./truststore.p12");
+ trustStore.load(tStore, "".toCharArray());
+ tStore.close();
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+ tmf.init(trustStore);
+
+ SSLContext ctx = SSLContext.getInstance("TLS");
+ ctx.init(null, tmf.getTrustManagers(), SecureRandom.getInstanceStrong());
+
+ SocketFactory factory = ctx.getSocketFactory();
+ s = factory.createSocket(addrSplit[0], Integer.parseInt(addrSplit[1]));
+
+ is = s.getInputStream();
+ OutputStream os = s.getOutputStream();
+ out = new PrintStream(os);
+ this.username = username;
+ out.println(username);
+ }
+
+ public void sendMessage(String message) {
+ out.println(username + "> " + message);
+ }
+
+ public void setComponents(JTextArea chat, JScrollPane scrollBar) {
+ this.chat = chat;
+ this.scrollBar = scrollBar.getVerticalScrollBar();
+ new Thread(() -> {
+ try {
+ is.transferTo(new ChatWriter());
+ } catch (IOException ignored) {}
+ }).start();
+ }
+
+ public void close() {
+ try {
+ s.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private class ChatWriter extends OutputStream {
+ String buf = "";
+
+ @Override
+ public void write(int b) {
+ buf += (char) b;
+ if (((char) b) == '\n') this.flush();
+ }
+
+ @Override
+ public void flush() {
+ chat.append(buf);
+ scrollBar.setValue(scrollBar.getMaximum());
+ buf = "";
+ }
+ }
+}
diff --git a/src/main/java/tech/nevets/dlite/ConnectionManager.java b/src/main/java/tech/nevets/dlite/ConnectionManager.java
new file mode 100644
index 0000000..94c819e
--- /dev/null
+++ b/src/main/java/tech/nevets/dlite/ConnectionManager.java
@@ -0,0 +1,17 @@
+package tech.nevets.dlite;
+
+public class ConnectionManager {
+ private static Connection conn;
+
+ public static void setActiveConnection(Connection c) {
+ conn = c;
+ }
+
+ public static Connection getActiveConnection() {
+ return conn;
+ }
+
+ public static void closeActiveConnection() {
+ conn.close();
+ }
+}
diff --git a/src/main/java/tech/nevets/dlite/Main.java b/src/main/java/tech/nevets/dlite/Main.java
new file mode 100644
index 0000000..e389a38
--- /dev/null
+++ b/src/main/java/tech/nevets/dlite/Main.java
@@ -0,0 +1,72 @@
+package tech.nevets.dlite;
+
+import com.formdev.flatlaf.FlatDarkLaf;
+import com.formdev.flatlaf.FlatLightLaf;
+
+import javax.swing.*;
+import java.awt.*;
+
+public class Main {
+ private static final FlatDarkLaf DARK_LAF = new FlatDarkLaf();
+ private static final FlatLightLaf LIGHT_LAF = new FlatLightLaf();
+ private static TrayIcon trayIcon;
+ private static JFrame frame;
+
+ public static void main(String[] args) {
+ //startTrayService();
+ startUI();
+ }
+
+ public static void startUI() {
+ ChatWindow window = new ChatWindow();
+ frame = new JFrame();
+ frame.add(window);
+ frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ frame.pack();
+ frame.setTitle("Discord Lite");
+ frame.setIconImage(Toolkit.getDefaultToolkit().createImage(Main.class.getResource("/icon.png")));
+ frame.setLocationRelativeTo(null);
+ window.requestFocus();
+ setDarkMode(true);
+ frame.setVisible(true);
+ }
+
+ public static void setDarkMode(boolean darkMode) {
+ try {
+ if (darkMode) {
+ UIManager.setLookAndFeel(DARK_LAF);
+ } else {
+ UIManager.setLookAndFeel(LIGHT_LAF);
+ }
+ SwingUtilities.updateComponentTreeUI(frame);
+ } catch (UnsupportedLookAndFeelException e) {
+ e.printStackTrace();
+ }
+ }
+
+// private static void startTrayService() {
+// SystemTray sysTray = SystemTray.getSystemTray();
+// Image img = Toolkit.getDefaultToolkit().createImage(Main.class.getResource("/icon.png"));
+// trayIcon = new TrayIcon(img, "Discord Lite");
+// trayIcon.setImageAutoSize(true);
+// PopupMenu menu = new PopupMenu("Discord Lite");
+// menu.add("Open Window");
+// menu.add("Exit");
+// menu.addActionListener(al -> {
+// switch (al.getActionCommand().toLowerCase()) {
+// case "open window" -> startUI();
+// case "exit" -> System.exit(0);
+// }
+// });
+// trayIcon.setPopupMenu(menu);
+// try {
+// sysTray.add(trayIcon);
+// } catch (AWTException e) {
+// e.printStackTrace();
+// }
+// }
+//
+// public static void sendNotification(String title, String message) {
+// trayIcon.displayMessage(title, message, TrayIcon.MessageType.INFO);
+// }
+}
diff --git a/src/main/resources/icon.ico b/src/main/resources/icon.ico
new file mode 100644
index 0000000..194d307
Binary files /dev/null and b/src/main/resources/icon.ico differ
diff --git a/src/main/resources/icon.png b/src/main/resources/icon.png
new file mode 100644
index 0000000..36c8fc8
Binary files /dev/null and b/src/main/resources/icon.png differ