Intel® Advisor 2018 Release Notes - Windows* / Linux*

ID 标签 672192
已更新 9/11/2017
版本 Latest
公共

author-image

作者

Introduction

Intel® Advisor 2018 provides two tools to help ensure your Fortran, C and C++ (as well as .NET on Windows) applications take full performance advantage of today's processors:

  • Vectorization Advisor is a vectorization analysis tool that lets you identify loops that will benefit most from vectorization, identify what is blocking effective vectorization, explore the benefit of alternative data reorganizations, and increase the confidence that vectorization is safe.

  • Threading Advisor is a threading design and prototyping tool that lets you analyze, design, tune, and check threading design options without disrupting your normal development.

This document provides system requirements, installation instructions, issues and limitations, and legal information.

To learn more about this product visit our Intel® Advisor product page or refer to our Get Started guide

For technical support, including answers to questions not addressed in the product documentation, please visit: Support

What's New

Intel® Advisor 2018 Update 3

  • Memory and Dependencies analyses
    • Ability to stop MAP analysis by condition to reduce collection overhead
  • Usability
    • Ability to specify a number of top hot innermost loops in batch mode.
  • Roofline
    • Preview Feature: Integer OP/S-based Roofline - Roofline chart for codes with integer and mixed float/integer data types. To enable this functionality set the environment variable ADVIXE_EXPERIMENTAL=int_roofline
    • Ability to adjust the Roofline to a custom number of threads to see the practical performance limits for given a application.
    • Export the Roofline chart to HTML from command line without configuring the graphical user interface in cluster environment.
  • New OS support
    • Support for Ubuntu* 18.04

Intel® Advisor 2018 Update 2

  • Memory and Dependencies analyses
    • Decreasing overhead for Memory Access Patterns and Dependencies analyses via limiting loop call count and analysis duration in project properties.
    • New metric Memory footprint for the first instance of the loop (calculated in bytes)
    • Ability to select loops in command line by source file and line:
      advixe-cl --mark-up-loops --select main.cpp:12,other.cpp:198
  • Recommendations
    • New style for recommendations pane and parameters or peel/remainder recommendation specific to certain user code
    • New recommendation to use non-temporal store (NTS) instructions to improve memory bound application performance.
  • Usability
    • Font size can be now customized in Options menu. This may help to adjust GUI appearance in SSH X-forwarding sessions.
    • Filter state is made persistent on re-opening results
  • Roofline
    • Roofline benchmarks can be synchronized for multi-rank MPI applications with the --benchmark-sync option.
    • Visualizing performance limits for each loop on Roofline chart
    • Ability to compare several Roofline results on the same chart
    • "Filter-in" arbitrary subset of dots on Roofline chart for simplifying complex charts analysis and saving only selected dots to bitmaps.
  • New OS support
    • Support for Fedora* 27
    • Support for Ubuntu* 17.10
    • Microsoft* Windows* 10 version 1709

Intel® Advisor 2018 Update 1

  • Selective profiling for Roofline, FLOPS and Trip Counts collections to decrease analysis scope and decrease overhead.
    • Select only loops of interest in GUI/CLI
    • Markup region of interest in source code via ITT "pause/resume" APIs
  • Improved finalization speed: Perform static instruction mix analysis on demand.
  • Usability improvements:
    • Run the Roofline analysis in command line with a single command
    • Improved UI responsiveness
    • Introduced progress bar for issues detection
    • Single HTML report generated from Python to share data easily in one file
    • Controls in Project Properties for suppressing warnings on missing debug info from system modules
    • Hints to configure search paths if symbols are not resolved
  • Fixed some issues with the Microsoft Visual Studio* 2017 integration
  • Bug fixes

Intel® Advisor 2018

Roofline:

  • General availability of Cache-aware Roofline performance characterization model, that graphically represents main performance limiting factors for the whole application and individual loops and functions.

  • Preview feature: Hierarchical Roofline: to enable, please set the environment variable ADVIXE_EXPERIMENTAL=roofline_ex before launching the Intel® Advisor (data re-collection may be required).

Deep characterization:

  • Total FLOPS metric in Top Down view that shows FLOPS distribution across call tree and allows to aggregate data on different hierarchy levels.

  • Dynamic Instruction Mix metric in Code Analytics.

  • Call Count metric for functions in addition to Trip Counts data.

New recommendations:

  • Force scalar remainder for loops with low mask utilization on Intel® Advanced Vector Extensions 512 (Intel® AVX-512).

  • Extended "Gather recommendation" with "Constant (non-unit)" pattern.

  • "Possible inefficient conflict-detection instructions present" recommendation.

  • Reporting names of serialized or scalar functions preventing vectorization.

  • "Vectorize call(s) to virtual method" recommendation.

Data reporting:

  • Joined Survey and Refinement command line report: advixe-cl -R joined

  • MKL breakdown in Summary and MKL filter in Survey report.

  • Divided read/write access in Memory Access Patterns report.

Usability improvements:

  • Toolbar was redesigned to use single Start button.

  • Ability to re-finalize Advisor Survey result in order to apply updated binary and source search paths.

  • New design for Recommendations tab with improved navigation.

  • Support for cross-OS analysis to all license types. Download installation packages for additional operating systems from the Intel® Registration Center.

  • Filter by module for Survey, FLOPS and Trip Counts collections, that helps to decrease overhead and narrow down results for big applications.

Support for new processors and operating systems:

  • Added support for Intel® Xeon® Scalable processors

  • Added support for Microsoft Visual Studio* 2017

  • Added support for Microsoft Windows Server* 2016

  • Added support for Fedora* 26

  • Added support for Ubuntu* 17.04

  • Added support for SUSE* Linux Enterprise Server* 12 SP2

  • Added support for Debian* 9

Preview features:

  • Flow Graph Analyzer for analyzing applications using Intel® TBB Flow Graph (available as a separate download).
  • Cache simulator providing cache line utilization, number of cache misses, memory loads and stores for arbitrary cache size. To enable, set the environment variable ADVIXE_EXPERIMENTAL=cachesim before launching Intel® Advisor (data re-collection may be required).
  • Python* profiling for Survey collection and preliminary support for FLOPS, TripCounts and Roofline collections.
  • Experimental support for accessing Advisor data via Python* API. See examples in the {install_dir}/pythonapi/examples directory. Please note that the API is subject to change in the future releases.

System Requirements

Supported Architectures and Terminology

Intel® Advisor supports the following architectures:

  • IA-32 Architecture refers to systems based on 32-bit processors generally compatible with the Intel® Pentium® processors (for example, Intel® Pentium® 4 processor or Intel® Xeon® processor) or processors from other manufacturers supporting the same instruction set, running a 32-bit operating system.

  • Intel® 64 Architecture refers to systems based on IA-32 architecture processors that have 64-bit architectural extensions, for example, Intel® Core™ processor family, running a 64-bit operating system. If the system is running a 32-bit operating system, then IA-32 architecture applies instead. Processors from other manufacturers supporting the same instruction set running a 64-bit operating system are also supported.

Minimum System Requirements

  • A system based on an IA-32 or Intel® 64 architecture processor supporting the Intel® Streaming SIMD Extensions 2 (Intel® SSE2) instructions (Intel® Pentium 4 processor or later, or compatible non-Intel processor or Intel® Xeon® Scalable Processors)

    • Since the Intel® Advisor requires specific knowledge of assembly-level instructions, its analysis may not operate correctly if code contains non-Intel instructions. In this case, run the analysis with a target executable that contains only Intel® instructions. After you finish using the Intel® Advisor, you can use the assembler or optimizing compiler options that provide the non-Intel instructions.

    • For the best experience, a multi-core or multi-processor system is recommended
  • 2GB RAM

  • 650MB free disk space for all product features and architectures

  • Supported operating systems:

    • Microsoft Windows* 7 SP1

    • Microsoft Windows Server* 2008 SP2 and 2008 R2 SP1, 32-bit or "x64" editions - embedded editions are not supported

    • Microsoft Windows 8* and 8.1* operating system

    • Microsoft Windows Server* 2012, 2012 R2 and 2016

    • Microsoft Windows 10* operating system (up to RS4)

    • Red Hat* Enterprise Linux* 6 and 7

    • CentOS* versions equivalent to Red Hat Enterprise Linux versions listed above

    • Fedora* 25, 26 and 27 (pangox-compat package should be installed)

    • SUSE* Linux Enterprise Server* 11, 12, 12 SP2, and 12 SP3

    • Debian* 7, 8 and 9

    • Ubuntu* 14.04, 16.04, 17.04, 17.10, and 18.04

  • Supported Microsoft Visual Studio (and Microsoft Visual C++* compiler) versions:

    • Microsoft Visual Studio* 2013

    • Microsoft Visual Studio* 2015

    • Microsoft Visual Studio* 2017 including Update 3

  • Supported compilers:

    • Intel® C++ Compiler 15 or higher

    • Linux: Intel® Fortran Compiler 15 or higher

    • Windows: Intel® Visual Fortran Compiler 15 or higher
    • Linux: GNU* C/C++ Compiler 3.4.6 and higher
  • Application coding requirements

    • Supported programming languages:

      • Fortran

      • C

      • C++

    • Supported threading methodologies:

      • Intel® Threading Building Blocks (Intel® TBB)

      • Intel® Cilk™ Plus

      • OpenMP

      • Windows* and POSIX Threads (low-level)

    • Managed application coding requirements

      • Supported programming languages:

        • C# (.NET* versions 3.0 to 4.0)

      • Supported threading methodologies

        • C# Thread Class

        • Microsoft* Task Parallel Library (TPL)

    • To view PDF documents, you need a PDF reader, such as Adobe Reader* 6 or later

      Notes:

      1. Intel® Advisor samples work with the Intel® Threading Building Blocks (Intel® TBB) by using the environment variable TBBROOT. Intel® TBB is included with the Intel® compiler and is available from ​Intel® Threading Building Blocks. To build the Intel® TBB projects, you will need to define the TBBROOT environment variable. To set the TBBROOT environment variable, see the Intel® Advisor Help or Getting Started Tutorial.

Floating licensing service requirements

Floating licenses of 2017 or 2018 version Intel® Software Development Tools require the latest version (Intel 2.5/lmgrd 11.14.1.1) of Intel® Software License Manager for successful installation. For the latest version of Intel® Software License Manager, please go to the Intel® Registration Center (choose the right OS and platform; only users with floating license registrations have access to this link). For more details, see Installation Errors Related to Intel® Software License Manager Upgrade

To get started the with the Intel® Software License Manager, please refer to this tutorial: Intel® Software License Manager Getting Started

Installation Notes

If you are installing the product for the first time, please be sure to have the product serial number available so you can type it in during installation. A valid license is required for installation and use.

To begin installation:

On Windows, double-click on the executable file to begin installation. If several different downloadable files are available (such as for different components), please read the download web page carefully to determine which file is appropriate for you.

On Linux, perform the following steps:

  1. Uncompress the package: gunzip <package-name>.tar.gz

  2. Extract the files: tar xf <package-name>.tar

  3. Start the installation. (Note: For successful installation, you should have read and write permissions for the /tmp directory.)

  4. To install on a local system enter the following:

    cd <package-name>
    ./install.sh

    Note: If you want to install the software for use by any user, you must do this as the root user. To install to a network-mounted drive or shared file system for multiple users, become the root user then enter:

    cd <package-name>
    ./install.sh --SHARED_INSTALL
  5. Follow the prompts to complete the installation and activation of the software.

Silent Installation (Windows)

To learn details of silent non-interactive installation on Windows* systems, refer to Using Silent Non-interactive Installation on Windows* OS Systems.

Activation

You must activate the product to finish installation. Use one of these methods:

  • Activation using serial number. Internet connection is required;

  • Remote activation using serial number. Used when your computer is not connected to the internet.

    You can use another computer with internet access;

  • Activation using license file;

  • Activation using license server.

You can also evaluate the product for 31 days.

Intel® Software Manager

Intel® Software Manager is a utility that allows users to:

  • Download and install updates for your Intel® Software Development Products.

  • Manage subscription status of installed software.

  • Activate serial numbers.

  • Find out about the latest news for Intel® Software Development Products.

  • Intel® Software Manager requires an Internet connection to connect to a remote server for information and updates.

Intel® Software Manager installs with Intel® Software Development Products on Windows*, Linux* and macOS* operating systems.

To obtain more information about the Intel® Software Manager, please refer to the Intel® Software Manager 1.0 User Guide web-page.

Default Installation Folders

On Windows*, the default top-level installation folder for this product is C:\Program Files (x86)\IntelSWTools\Advisor 2018. If you are installing on a system with a non-English language version of Windows OS, the name of the Program Files (x86) folder may be different. On IA-32 architecture systems, the folder name is Program Files.

This product installs into an arrangement of folders as shown below. Not all folders will be present in a given installation.

  • C:\Program Files (x86)\IntelSWTools\Advisor 2018

    • bin32

    • bin64

    • config

    • documentation

    • include

    • lib32

    • lib64

    • message

    • resource

    • samples

On Linux, the default path is /opt/intel/advisor_2018. A different top-level folder name can be chosen during a custom installation.

Setting Up Your Command Line Environment (Linux only)

Before you can use the Intel® Advisor advixe-cl and advixe-gui commands or display the advixe-cl man page, you must first set up your command line environment. Source the provided shell script advixe-vars.sh (if you are using csh, source advixe-vars.csh ):

  1. Locate the directory where the advixe-vars.sh script file was installed. If you accepted the default location when installing the Intel® Advisor, the location is /opt/intel/advisor_2018.

  2. Open a command window and type the following source command to execute the script file: source /opt/intel/advisor_2018/advixe-vars.sh

The script file displays the product name and the build number. You can now use the advixe-cl and advixe-gui commands as well as display the advixe-cl man page.

NOTE: To build the Intel® Advisor sample applications, you need to first define the ADVISOR_2018_DIR environment variable. Running the advixe-vars.sh script will do this automatically. This variable can also be set manually. For example, if you used the default path during installation, type:

export ADVISOR_2018_DIR=/opt/intel/advisor_2018

Changing, Repairing and Removing the Product

On Windows, if you want to modify, repair, or remove the Intel® Advisor components, open the Control Panel and select the Add or Remove Programs applet (or Programs and Features in the Microsoft Windows 7 OS), select Intel Advisor 2018 and click Change/Remove (or Uninstall/Change in the Microsoft Windows 7 OS). Follow the installation instructions. You may need the original installation files to complete this process. If you do not have the extracted files, you can use the original installer executable to complete this process as well.

On Linux, to remove the product, execute the following commands:

Note : Replace /opt/intel with the chosen install folder name if the default folder was not used.

  1. cd /opt/intel/advisor_2018

  2. uninstall.sh (as a root user or the same user who performed the install)

Known Installation and Configuration Issues (Windows only)

  • Please close Microsoft Visual Studio* sessions before installing, modifying, or removing the Intel® Advisor. Not doing so will affect Visual Studio integration and may result in obscure error messages.

    If you encounter problems viewing the Intel® Parallel Studio XE (local) help: click Help > Manage Help Settings > Settings, and check I want to use local help. These set-up steps are needed only once.

Known Issues and Limitations

This section lists known product limitations classified per host operating system:

Common Limitations

  • The Suitability tool cannot accurately measure and analyze the behavior of loops with very small task times (on the order of sub-microseconds) if those tasks are annotated with the TASK_BEGIN/TASK_END annotations. If possible, use the ITERATION_TASK annotation instead.

  • The Suitability Report combines all lock data into a single lock and may not have source line information for LOCK_ACQUIRE and LOCK_RELEASE annotations.

  • If your sources include huge source files that contain annotations, be aware that only the first 8 MB of each file will be parsed for annotations. If not all of your annotations are being parsed in such huge source files, consider breaking that source file into several source files each less than 8MB.

  • The Survey Report may incorrectly report loops if a function contains calls to a non-returning function such as the exit() function.

  • Loops within a function that does not contain debug information may not be reported as a loop in the Survey Report. For the suggested build settings, see the help topics under Choosing and Building a Target > Build Settings for C/C++ Applications or Build Settings for Fortran Applications. After you fix the build settings to specify debug information, rebuild the target and run Survey analysis again.

  • After analyzing the specified target executable, the Survey tool may report that no significant hotspot areas were detected. In this case, view the collected result using the Survey Report window. The suggested build settings are described in the help topics under Choosing and Building a Target > Build Settings for C/C++ Applications or Build Settings for Fortran Applications.

  • If debug information correlating an instruction to source code is not available to an Intel® Advisor tool, the tool cannot correlate collected data with source code. In this case it will show an empty field, question mark, or broken icon. Source correlation may not be available for many different reasons, including:

    1. Omitting debug information options when building the target executable - see the help topics under Choosing and Building a Target > Build Settings for C/C++ Applications or Build Settings for Fortran Applications.

    2. A compiler error.

    3. The compiler not generating debug information for this specific source line.

    4. The compiler not generating debug information for this specific source file.

    5. The linker not copying the debug information into the debug information database.

    6. The debug information database not being found by the finalization step in the Intel® Advisor, because it was not moved along with the executable to the location where the Intel® Advisor is being run.

    7. When using the Intel® Advisor GUI, insufficient project properties were specified for the Binary/Symbol Search tab. In this case, see the help topic Specifying Project Properties Using the Intel® Advisor GUI.

Windows* OS Host Limitations

  • Intel® Advisor integrates into Microsoft Visual Studio 2017 only using the official Intel Advisor installation. Any other ways like advixe-vsreg.exe tool or manual launching .vsix package will not work.
  • Do not close the Intel® Advisor GUI or Microsoft Visual Studio* software while expanding the Survey tree. Doing so may cause the product to crash or hang.

  • Intel® Advisor may present incorrect or incomplete information if local character sets are used. For general character set support, use Unicode.

  • On Windows Server 2012 systems, if you have problems viewing Microsoft Visual Studio* 2012 help pages, check the settings for Internet Explorer in Tools > Internet Options > Security. To allow correct display of help, in the Internet zone enable MIME Sniffing and Active scripting.

  • On Windows Server 2012 systems, if you find that you cannot display Getting Started Tutorials from within Internet Explorer 10, correcting a security setting for Microsoft Internet Explorer usually corrects the problem. From Tools > Internet Options > Security , add "about:internet" to the list of trusted sites. Optionally, you can remove "about:internet" from the list of trusted sites after you are finished viewing the documentation.

  • Intel® Advisor may display a message that the "Project is out of date" before running the data collectors. You do not need to rebuild the project prior to running the collector if you know that the project is up-to-date.

  • When opening the Intel® Advisor samples, Microsoft Visual Studio* software will display a warning message related to Intel® Cilk Plus projects or list them as unsupported when the Intel® C++ Compiler is not installed. This message may be ignored. However, Intel® Cilk Plus projects will not compile without an Intel® C++ Compiler with Intel® Cilk Plus support, such as the Intel® Parallel Studio XE (or similar Intel® software suite).

  • In the Correctness Report, the following sequence of actions may cause the Intel® Advisor and Microsoft Visual Studio* software to crash: select the "Not fixed" State filter category in the Filter pane, mark the last remaining "Not fixed" problem as fixed in the Observation pane, and then remove the "Not fixed" filter by clicking the All button in the State filter or clicking the Deselect all search criteria button. To workaround this issue do one of the following:

    1. Avoid marking the last remaining problem as "Fixed" in the Observation pane while the "Not fixed" filter is applied.

    2. Avoid removing the "Not fixed" filter if all of the problems have been marked as "Fixed".

  • Virus checking can sometimes interfere with our ability to instrument code. The following error indicates the virus checker has modified ntdll.dll, which will cause our collections to fail. Currently there is no workaround, except turning off the virus checker. This issue will be resolved in the next product update.

    Collection failed
    8/23/2017 1:26:10 PM Collection failed. The data cannot be displayed.
    [Instrumentation Engine]: SYSCALL_INSPECTOR: The NTDLL!NtTerminateThread function jumps out of NTDLL, at 0x7ffeb0fe00c4. It may be hooked by a PIN-incompatible software installed on the system Source\pin\base_w\ipc_server_windows.cpp: LEVEL_BASE::StartServer: 2216: assertion failed: res == TRUE

Linux* OS Limitations

  • Intel® Advisor 2018 Gold Update 3 cannot run Memory Access Patterns collection on Red Hat* Enterprise Linux* 7.5.
  • When the Intel® Advisor GUI is launched from a Linux OS desktop GUI (such as the KDE* or GNOME* GUI) the output of the non-GUI target application being analyzed will not be displayed. To avoid this, launch the Intel® Advisor GUI from a command shell with the advixe-gui command instead of the desktop GUI, or redirect the non-GUI application output to the Intel® Advisor output window by choosing File > Options > Application output destination > Application output window.

  • If you encounter problems searching the Intel® Advisor help using a certain web browser, consider using a newer version of that browser or use a different web browser as your default browser.

  • Intel® Advisor may detect which timer source to use incorrectly on extreme desktop SNB-E (e.g. Intel® Core i7-3960X) processors. In Survey and Suitability collections the following message may be displayed in the command line or Debug Window:

    Warning: Cannot load data file `/tmp/linux/openmp_triad/r007hs/data.0/25448-25455.0.trace' (Data file is corrupted).

    To work around the problem, collect results from the command line using "-run-pass-thru" option: advixe-cl -collect survey -run-pass-thru=-timestamp=sys -- <application>

  • Running Intel® Advisor in the linux console in background mode (./advixe-gui &) and profiling an application that uses input from the console (stdin) cause a product stop by linux OS that looks like product hang. Do not use background mode OR run your application with input from a file.

  • Do not use background mode OR run your application with input from file specified in application arguments (app < input.txt)

  • Opening links to HTML files, such as help or recommendations, is not guaranteed if the xdm-utils package is not installed. Possible solutions are:

    • Install the xdm-utils package.

    • Use the default terminal program for KDE or Gnome desktop environments.

  • Security-enhanced Linux* settings (SELinux) are currently not supported by the Intel® Advisor and need to be either disabled or set to permissive for a successful tool suite installation. This product supports only "Permissive" mode. To run the product successfully you may either disable SELinux by - setting the line "SELINUX=disabled" in your /etc/sysconfig/selinux file - adding "selinux=0" kernel argument in lilo.conf or grub.conf files or make a SELinux mode adjustment by - setting the line "SELINUX=permissive" in your /etc/sysconfig/selinux file or ask your system administrator to make a SELinux mode adjustment. You may need to reboot your system after changing the system parameters. More information about SELinux can be found at Security-Enhanced Linux.

  • When using certain HTML browsers to view the Intel® Advisor documentation, if the Contents tab width appears truncated and hides some of the topic titles:

    • Click the Index (or Search) button

    • Click the Contents button

  • The Intel® Software Manager feature that enables automatic product updates requires Java* software version 1.6 or higher.

Attributions

The following are licenses for third party software that was used to develop the Intel® Advisor for Linux* and Windows* OS. These licenses are listed due to attribution requirements in these license agreements. For the avoidance of doubt, the Intel Advisor is solely governed by the terms and conditions of the End User License Agreement for Intel® Software Development Product that accompanies the Intel Advisor.

libjpeg license

We welcome the use of this software as a component of commercial products.

No royalty is required, but we do ask for an acknowledgement in product documentation, as described under LEGAL ISSUES.

LEGAL ISSUES

In plain English:

1. We don't promise that this software works. (But if you find any bugs, please let us know!)

2. You can use this software for whatever you want. You don't have to pay us.

3. You may not pretend that you wrote this software. If you use it in a program, you must acknowledge somewhere in your documentation that you've used the IJG code.

In legalese:

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.

ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.

ansi2knr.c is NOT covered by the above copyright and conditions, but instead by the usual distribution terms of the Free Software Foundation; principally, that you must include source code if you redistribute it. (See the file ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part of any program generated from the IJG code, this does not limit you more than the foregoing paragraphs do.

The Unix configuration script "configure" was produced with GNU Autoconf. It is copyright by the Free Software Foundation but is freely distributable. The same holds for its supporting scripts (config.guess, config.sub, ltconfig, ltmain.sh). Another support script, install-sh, is copyright by M.I.T. but is also freely distributable.

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."

LibTIFF license

Copyright (c) 1988-1997 Sam Leffler

Copyright (c) 1991-1997 Silicon Graphics, Inc.

Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics.

THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

libpng license, June 14, 2012

This copy of the libpng notices is provided for your convenience. In case of any discrepancy between this copy and the notices in the file png.h that is included in the libpng distribution, the latter shall prevail.

COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:

If you modify libpng you may insert additional notices immediately following this sentence.

This code is released under the libpng license.

libpng versions 1.2.6, August 15, 2004, through 1.5.11, June 14, 2012, are Copyright (c) 2004, 2006-2012 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-1.2.5 with the following individual added to the list of Contributing Authors:

  • Cosmin Truta

libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are Copyright (c) 2000-2002 Glenn Randers-Pehrson, 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

  • Gilles Vollant

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.

libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are Copyright (c) 1998, 1999 Glenn Randers-Pehrson, 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

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

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.

A "png_get_copyright" function is available, for convenient use in "about" boxes and the like:

printf("%s",png_get_copyright(NULL));

Also, the PNG logo (in PNG format, of course) is supplied in the files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31).

Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a certification mark of the Open Source Initiative.

Glenn Randers-Pehrson

glennrp at users.sourceforge.net

June 14, 2012

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

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:

The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.

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, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS 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.

Libxml2

Except where otherwise noted in the source code (e.g. the files hash.c,list.c and the trio files, which are covered by a similar license but with different Copyright notices) all the files are:

Copyright (C) 1998-2003 Daniel Veillard. 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 DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHERIN 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.

Except as contained in this notice, the name of Daniel Veillard shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from him.

Libunwind

Copyright (c) 2002 Hewlett-Packard Co.

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.

Except where otherwise noted in the source code (e.g. the files hash.c, list.c and the trio files, which are covered by a similar licence but with different Copyright notices) all the files are:

Copyright (C) 1998-2003 Daniel Veillard. 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 fur nished 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, FIT NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE DANIEL VEILLARD 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.

Except as contained in this notice, the name of Daniel Veillard shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from him.

PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2

1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation.

2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee.

3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python.

4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

6. This License Agreement will automatically terminate upon a material breach of its terms and conditions.

7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party.

8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement.

Changes to standard library modules:

A brief summary of changes made to Python 2.5.2 source:

- On Windows*, the code of import, zipimport, and execfile was modified to handle directories containing Unicode characters.

wxWidgets Library

This product includes wxWindows software which can be downloaded from www.wxwidgets.org/downloads.

wxWindows Library Licence, Version 3.1

Copyright (C) 1998-2005 Julian Smart, Robert Roebling et al

Everyone is permitted to copy and distribute verbatim copies of this licence document, but changing it is not allowed.

WXWINDOWS LIBRARY LICENCE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version.

This library 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 Library General Public Licence for more details.

You should have received a copy of the GNU Library General Public Licence along with this software, usually in a file named COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,

Boston, MA 02111-1307 USA.

EXCEPTION NOTICE

1. As a special exception, the copyright holders of this library give permission for additional uses of the text contained in this release of the library as licenced under the wxWindows Library Licence, applying either version 3.1 of the Licence, or (at your option) any later version of the Licence as published by the copyright holders of version 3.1 of the Licence document.

2. The exception is that you may use, copy, link, modify and distribute under your own terms, binary object code versions of works based on the Library.

3. If you copy code from files distributed under the terms of the GNU General Public Licence or the GNU Library General Public Licence into a copy of this library, as this licence permits, the exception does not apply to the code that you add in this way. To avoid misleading anyone as to the status of such modified files, you must delete this exception notice from such code and/or adjust the licensing conditions notice accordingly.

4. If you write modifications of your own for this library, it is your choice whether to permit this exception to apply to your modifications.

If you do not wish that, you must delete the exception notice from such code and/or adjust the licensing conditions notice accordingly.

zlib.h

zlib.h -- interface of the 'zlib' general purpose compression library

version 1.2.3, July 18th, 2005

Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, 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 notice may not be removed or altered from any source distribution.

Jean-loup Gailly jloup@gzip.org

Mark Adler madler@alumni.caltech.edu

LevelDB

Copyright (c) 2011 The LevelDB Authors. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

JQuery

Copyright jQuery Foundation and other contributors, https://jquery.org/

This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/requirejs/requirejs

The following license applies to all parts of this software except as documented below:

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.

Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation.

CC0: http://creativecommons.org/publicdomain/zero/1.0/

====

Files located in the node_modules directory, and certain utilities used to build or test the software in the test and dist directories, are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above.

Highlight.js

Copyright (c) 2006, Ivan Sagalaev

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

* Neither the name of highlight.js nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.