Apache Syncope
Copyright 2012-2022 The Apache Software Foundation

This product includes software developed by:
The Apache Software Foundation (http://www.apache.org/).

The following copyright notice(s) were affixed to portions of this code
with which this file is now or was at one time distributed.

==

This product includes software developed by the Animate.css project.
Copyright (c) 2016 Daniel Eden

==

This product includes software developed by the args4j project.
Copyright (c) 2013 Kohsuke Kawaguchi and other contributors

==

This product includes software developed by the Bootbox.js project.
Copyright (C) 2011-2015 by Nick Payne nick@kurai.co.uk

==

This product includes software developed by the Bootstrap project.
Copyright (c) 2011-2016 Twitter, Inc.

==

This product includes software developed by the Jackson project.

==

This product includes software developed by the Open JSON project.

==

This product includes software developed by the Gson project.
Copyright (c) 2008 Google Inc.

==

This product includes software developed by Elemental2
Copyright 2018 Google Inc.

==

This product includes software developed by Error Prone.

==

This product includes software developed by the Google Guava project.
Copyright (c) 2016 The Guava Authors.

==

This product includes software developed by J2ObjC: Java to Objective-C Translator and Runtime.

==

This product includes software developed by The Closure Compiler.
Copyright (c) 2009 The Closure Compiler Authors.

==

This product includes software developed by JsInterop Base
Copyright 2017 Google Inc.

==

This product includes software developed by JsInterop Annotations.
Copyright (c) 2019 Google Inc. All Rights Reserved.

==

This product includes software developed by Protocol Buffers
Copyright 2008 Google Inc. All rights reserved.

==

This product includes software developed by RE2/J
Copyright (c) 2009 The Go Authors. All rights reserved.

==

This product includes software developed by OWASP Java HTML Sanitizer.
Copyright (c) 2011, Mike Samuel
All rights reserved.

==

This product includes software developed by the Wicket - jQuery UI project.
Copyright 2012-2013 Sebastien Briquet

==

This product includes software produced and maintained by Eclipse Metro
All content is the property of the respective authors or their employers.

==

This product includes software produced and maintained by Jakarta Activation project
All content is the property of the respective authors or their employers.

==

This product includes software produced and maintained by Jakarta Eclipse Implementation of JAXB
All content is the property of the respective authors or their employers.

==

This product includes software produced and maintained by Jakarta XML Web Services
All content is the property of the respective authors or their employers.

==

This product includes software developed by Micrometer Application Metrics
Copyright (c) 2017-Present VMware, Inc. All Rights Reserved.

==

This product includes software developed by Netty
Copyright 2014 The Netty Project

==

This product includes software developed by the Swagger project.
Copyright 2016 SmartBear Software

==

This product includes software developed by the Ionicons project.
Copyright (c) 2016 Drifty (http://drifty.com/)

==

This product includes software developed by the slimScroll project.
Copyright (c) 2011 Piotr Rochala (http://rocha.la)

==

This product includes software produced and maintained by Jakarta Annotations
All content is the property of the respective authors or their employers.

==

This product includes software developed by the Eclipse Project for JAX-RS.
Eclipse Project for JAX-RS is a trademark of the Eclipse Foundation.
All content is the property of the respective authors or their employers. For more information regarding authorship of content, please consult the listed source code repository logs.

==

This product includes software developed by the Bean Validation Project (http://beanvalidation.org).
Copyright (c) Red Hat, Inc., Emmanuel Bernard

==

This product includes software developed by the Joda Time project.
Copyright (c) 2002-2016 Joda.org. All Rights Reserved.

==

This product includes the jQuery Core JavaScript Library.
Copyright 2007, 2016 jQuery Foundation and other contributors.

==

This product includes software developed by the jquery.cookie project.
Copyright 2014 Klaus Hartl

==

This product includes the jQuery UI JavaScript Library.
Copyright 2007, 2015 jQuery Foundation and other contributors.

==

This product includes software developed by the jQuery++ project.
Copyright (C) 2012 Bitovi

==

This product includes software developed by the jsPlumb project.
Copyright (c) 2010 - 2014 jsPlumb, http://jsplumbtoolkit.com/

==

This product includes software developed by The Checker Framework.
Copyright (c) 2004-present by the Checker Framework developers

==

This product includes software developed by MojoHaus AnimalSniffer Maven Plugin
Copyright (c) 2009, codehaus.org

==

This product includes software developed by the Stax 2 Extension API Project.

==

This product includes software developed by the Woodstox Project.

==

This product includes software developed by Serializable java.util.function Interfaces.
Copyright (c) 2015 Jakub Danek

==

This product includes software developed by the ASM project.
Copyright (c) 2000-2011 INRIA, France Telecom
All rights reserved.

==

This products includes software developed by the Simple Logging Facade for Java (SLF4J) project.
Copyright (c) 2004-2016 QOS.ch.

==

This product includes software developed by SpringSource.
Copyright (c) 2004-2022 SpringSource
All rights reserved.

==

This product includes software developed by Moment.js.
Copyright (c) JS Foundation and other contributors

==

This product includes software developed by Inputmask
Copyright (c) 2010 - 2018 Robin Herbots

==

This product includes software developed by Summernote
Copyright (c) 2015~ Summernote Team (https://github.com/orgs/summernote/people)

==

This product includes software developed by WicketStuff
Copyright (c) 1998-2004, Drew Davidson and Luke Blanshard

==

This product includes software developed by the SnakeYAML project.

==

This product includes software developed by popper.js
Copyright (c) 2021 Floating UI contributors

==

This product includes software developed by Tempus Dominus Bootstrap 4 Datetime Picker
Copyright (c) 2016 Tempus Dominus
