MediaConch/0000755000000000000000000000000014640053443011551 5ustar rootrootMediaConch/README.md0000644000000000000000000002714614640052500013033 0ustar rootroot# MediaConch_SourceCode README MediaConch is an open source software project consisting of a toolset that aims to further develop the standardization and validation of preservation-level audiovisual files used within various memory institutions and communities. The software consists of an implementation checker, policy checker, reporter and fixer that will work together to offer its users an advanced level of ability to validate, assess and find solutions to repair the digital files within their collections. Accessible via either the command line, a graphical user interface (GUI), or web-based shell, the MediaConch project will serve to provide detailed individual and batch-level conformance checking analysis using its adaptable, flexible and interoperable software application interface. With a project focus dedicated to furthering the longevity of Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1) as recommended digital preservation audiovisual formats, MediaConch will anticipate and contribute to the further development of the standardization of these formats. The MediaConch open source project was created and is currently under development by MediaArea, notable for the creation of MediaInfo, an open source media checker software application. Website: :shell: MediaConch project. # Table of Repositories #### [MediaConch](https://github.com/MediaArea/MediaConch) The original repository for the MediaConch project, this repository holds all public documentation related to Phase I of the project (the design phase) and some metadata-related work. #### [MediaConch_SourceCode](https://github.com/MediaArea/MediaConch_SourceCode) This repository hosts the source code for MediaConch, the GUI. #### [MediaConchOnline](https://github.com/MediaArea/MediaConchOnline) This is the source code for MediaConchOnline, the online version of the MediaConch shell. #### [MediaConch-Website](https://github.com/MediaArea/MediaConch-Website) This is the repository for content hosted on [https://mediaarea.net/MediaConch/](https://mediaarea.net/MediaConch/). #### [MediaAreaXml](https://github.com/MediaArea/MediaAreaXml) This repository holds XSD (XML Schema Definitions) for MediaConch, MediaInfo, and MediaTrace. #### [MediaConch_SampleFiles](https://github.com/MediaArea/MediaConch_SampleFiles) This repository contains sample files used to test MediaConch. #### [MediaConch_MKVSurvey](https://github.com/MediaArea/MediaConch_MKVSurvey) This repository holds a research corpus used in the development of the MediaConch. # Funding and Licensing This project has received funding from PREFORMA, co-funded by the European Commission under its FP7-ICT Programme. All software and source code developed by MediaArea during the PREFORMA project will be provided under the BSD-2-Clause License. All open source digital assets for the software developed by MediaArea during the PREFORMA project will be made available under the open access license: Creative Commons license attribution 4.0 International (CC BY v4.0). All assets will exist in open file formats within an open platform (an open standard as defined in the European Interoperability Framework for Pan-European eGovernment Service (version 1.0 2004)). # How to build MediaConch [![Build Status](https://travis-ci.org/MediaArea/MediaConch_SourceCode.svg?branch=master)](https://travis-ci.org/MediaArea/MediaConch_SourceCode) [![Build status](https://ci.appveyor.com/api/projects/status/xnoysoqp5i0075fk/branch/master?svg=true)](https://ci.appveyor.com/project/MediaArea/mediaconch-sourcecode/branch/master) ## Build under Unix (Mac and Linux) First, you must create a directory which will receive the MediaConch directory, and some of its dependencies depending on your configuration: ZenLib and MediaInfoLib if you decide to compile them yourself, and under Mac libxml2 and libxslt. In this document, this directory will be referred as $BUILD_DIR. ### Dependancies under Mac #### macport Some dependencies are available with macport. To install macport: https://guide.macports.org/#installing ```sh port install autoconf automake libtool pkgconfig zlib ``` #### libxml2 libxml2 and libxslt must be manually compiled. Download ftp://xmlsoft.org/libxml2/libxml2-2.9.2.tar.gz, and then: ```sh mv libxml2-2.9.2 $BUILD_DIR/libxml2 cd $BUILD_DIR/libxml2 ./configure --disable-shared --enable-static --disable-ipv6 --without-ftp --without-http --without-c14n --without-catalog --with-xpath --without-xptr --without-xinclude --without-iconv --without-icu --without-iso8859x --without-zlib --without-lzma --without-mem_debug --without-run_debug --without-regexps --without-modules --with-tree --without-writer --with-pattern --with-push --without-valid --with-sax1 --without-legacy --with-output --without-schemas --with-schematron --without-python make ``` #### libxslt Download ftp://xmlsoft.org/libxml2/libxslt-1.1.28.tar.gz, and then: ```sh mv libxslt-1.1.28 $BUILD_DIR/libxslt cd $BUILD_DIR/libxslt touch libtoolT ./configure --with-libxml-src=$BUILD_DIR/libxml2 --without-crypto make ``` #### Qt To install Qt, download and execute: http://download.qt.io/archive/qt/5.3/5.3.2/qt-opensource-mac-x64-clang-5.3.2.dmg.mirrorlist ### Dependancies under Linux #### Listing *Build tools* * git * automake * autoconf * libtool * pkgconfig * make * g++ *MediaArea tools* * libzen0 * libmediainfo0 *CLI and GUI dependencies* * zlib * libxml2 * libxslt *GUI only dependencies* * qt4 * qtwebkit *Optional dependency (for online checker)* * libcurl #### Ubuntu *Build tools and CLI/GUI dependencies* ```sh apt-get install git automake autoconf libtool pkg-config make g++ zlib1g-dev libxml2-dev libxslt1-dev liblzma-dev libgcrypt20-dev libsqlite3-dev libevent-dev libjansson-dev ``` Or (less advisable) install the packages contained in buildenv09.zip with ```sh dpkg -i * ``` *MediaArea tools* Go to https://mediaarea.net/MediaConch/downloads/ubuntu.html and download the libmediainfo0, libmediainfo-dev, libzen0 and libzen-dev packages corresponding to your Ubuntu version. Then install them with : ```sh dpkg -i libmediainfo* libzen* ``` *GUI only dependencies* ```sh apt-get install libqt4-dev libqtwebkit-dev ``` *Optional dependency (for online checker)* ```sh apt-get install libcurl4-gnutls-dev ``` #### Fedora *Build tools and CLI/GUI dependencies* ```sh sudo yum install git automake autoconf libtool pkgconfig make gcc-c++ zlib-devel libxml2-devel libxslt-devel sqlite-devel libevent-devel jansson-devel ``` Or (less advisable) install the packages contained in buildenv13.zip with ```sh dnf --allowerasing install * ``` *MediaArea tools* Go to https://mediaarea.net/MediaConch/downloads/fedora.html and download the libmediainfo0, libmediainfo-devel, libzen0 and libzen-devel packages corresponding to your Fedora version and CPU architecture. Then install them with : ```sh sudo yum install libmediainfo*.rpm libzen*.rpm ``` *GUI only dependencies* ```sh sudo yum install qt-devel qtwebkit-devel desktop-file-utils ``` *Optional dependency (for online checker)* ```sh sudo yum install libcurl-devel ``` #### Debian *Build tools and CLI/GUI dependencies* ```sh apt-get install git automake autoconf libtool pkg-config make g++ zlib1g-dev libxml2-dev libxslt1-dev liblzma-dev libgcrypt20-dev libsqlite3-dev libevent-dev libjansson-dev ``` Or (less advisable) install the packages contained in buildenv17.zip with ```sh dpkg -i * ``` *MediaArea tools* Go to https://mediaarea.net/MediaConch/downloads/debian.html and download the libmediainfo0, libmediainfo-dev, libzen0 and libzen-dev packages corresponding to your Debian version. Then install them with : ```sh dpkg -i libmediainfo* libzen* ``` *GUI only dependencies* ```sh apt-get install libqt4-dev libqtwebkit-dev ``` *Optional dependency (for online checker)* ```sh apt-get install libcurl4-gnutls-dev ``` #### OpenSUSE *Build tools and CLI/GUI dependencies* ```sh zypper install git automake autoconf libtool pkgconfig make gcc-c++ zlib-devel libxml2-devel libxslt-devel sqlite3-devel libevent-devel libjansson-devel ``` Or (less advisable) install the packages contained in buildenv21.zip with ```sh zypper install * ``` *MediaArea tools* Go to https://mediaarea.net/MediaConch/downloads/opensuse.html and download the libmediainfo0, libmediainfo-devel, libzen0 and libzen-devel packages corresponding to your OpenSuse version. Then install them with : ```sh rpm -i libmediainfo* libzen* ``` *GUI only dependencies* ```sh zypper install libqt4-devel libQtWebKit-devel update-desktop-files ``` *Optional dependency (for online checker)* ```sh zypper install libcurl-devel ``` ### Build MediaConch CLI #### Use the srcXX.zip and their compile.sh scripts Unzip the corresponding srcXX.zip, and then launch ```sh ./CLI_compile.sh ./Server_compile.sh ./GUI_compile.sh ``` in order to compile, respectively, the CLI, the server and the GUI. #### Build manually from GitHub When you have done all the prerequisite for you configuration, you can build MediaConch. We start with the CLI. ```sh cd $BUILD_DIR git clone https://github.com/MediaArea/MediaConch_SourceCode.git cd MediaConch_SourceCode/Project/GNU/CLI ./autogen.sh ``` ##### Then, under Mac: ```sh ./configure --enable-staticlibs make ``` ##### Under Linux: ```sh ./configure make ``` If you also build ZenLib and MediaInfoLib: ```sh ./configure --enable-staticlibs make ``` Or, with shared ZenLib and MediaInfoLib: ```sh ./configure make export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BUILD_DIR/ZenLib/Project/GNU/Library/.libs:$BUILD_DIR/MediaInfoLib/Project/GNU/Library/.libs ``` #### Launch the CLI ```sh ./mediaconch ``` ### Build MediaConch GUI If you have already build the CLI, no need to run git twice. In fact, if you re-run git with an existing MediaConch_SourceCode directory, git will complain and exit. To compile MediaConch GUI under Mac and Linux: ```sh cd $BUILD_DIR git clone https://github.com/MediaArea/MediaConch_SourceCode.git cd MediaConch_SourceCode/Project/Qt ``` ##### Without online checker Run: ```sh ./prepare make ``` Under Mac, or if you also build ZenLib and MediaInfoLib, run: ```sh ./prepare STATIC_LIBS=1 make ``` With shared ZenLib and MediaInfoLib: ```sh ./prepare make export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BUILD_DIR/ZenLib/Project/GNU/Library/.libs:$BUILD_DIR/MediaInfoLib/Project/GNU/Library/.libs ``` ##### With online checker You must install the online checker dependencies. Then run: ```sh ./prepare make ``` Under Mac, or if you also build ZenLib and MediaInfoLib, run: ```sh ./prepare STATIC_LIBS=1 make ``` With shared ZenLib and MediaInfoLib: ```sh ./prepare make export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BUILD_DIR/ZenLib/Project/GNU/Library/.libs:$BUILD_DIR/MediaInfoLib/Project/GNU/Library/.libs ``` #### Launch the GUI Under Mac: ```sh ./MediaConch.app/Contents/MacOS/MediaConch ``` Under Linux: ```sh ./mediaconch-gui ``` ### Optional : build ZenLib and MediaInfoLib #### ZenLib To compile ZenLib under Mac and Linux: ```sh cd $BUILD_DIR git clone https://github.com/MediaArea/ZenLib.git cd ZenLib/Project/GNU/Library ./autogen.sh ./configure --enable-static make ``` #### MediaInfoLib To compile MediaInfoLib under Mac and Linux: ```sh cd $BUILD_DIR git clone https://github.com/MediaArea/MediaInfoLib.git cd MediaInfoLib/Project/GNU/Library ./autogen.sh ``` ##### Without online checker Run: ```sh ./configure --enable-static make ``` ##### With online checker Under Mac: ```sh ./configure --enable-static --with-libcurl=runtime make ``` Under Linux: You must install the online checker dependencies. Then run: ```sh ./configure --enable-static --with-libcurl make ``` ## Build under Windows You need to install Microsoft Visual Studio 2013. MediaConch/History_GUI.txt0000644000000000000000000003344514640052506014467 0ustar rootrootNotes : ------- + Added - Deleted x Correction #number is the identifier of bug report (B), requested feature (F) or patch (P) bug reports and feature request are here : https://github.com/MediaArea/MediaConch_SourceCode Version 24.06, 2024-06-29 ------------- Update to MediaInfo library 24.06, see MediaInfo change log for the list of changes in the file formats support Add fields compare in policy checker Add 608/708 captions detection options Remove Matroska related errors with new Matroska block additions Supported platforms: minimum macOS version is now 10.13 (too much effort needed for building for older versions :( ) Supported platforms: this is the last version compatible with RHEL/CentOS 7, Debian 10, Mageia 8 Version 23.10, 2023-10-04 ------------- + Support of MPEG-H in MPEG-TS + MOV/MP4: caption probing time expanded from ~15s to ~30s + MPEG-7 and DVD-Video: provide title duration based on frame rate + WAV: better display of buggy WAV files have 2 fmt/data chunks x MOV/MP4: fix lack of detection of CEA-608/708 if junk at end of stream x DVD-Video: fix duration if more than 1 menu Version 23.07, 2023-07-12 ------------- Update to MediaInfo library 23.07, see MediaInfo change log for the list of changes in the file formats support Small update of USAC/xHE-AAC conformance checker Version 23.06, 2023-06-28 ------------- Update to MediaInfo library 23.06, see MediaInfo change log for the list of changes in the file formats support Verbose USAC/xHE-AAC conformance checker New field Audio_Channels_Total for policies Version 22.09, 2022-10-04 -------------- Update to MediaInfo library 22.09, see MediaInfo change log for the list of changes in the file formats support Basic USAC/xHE-AAC conformance checker focused on IOD and sampling rate, more to come GUI: Support custom parse speed option Policy creation: Add Warning and Info severity levels in addition to Error Policy creation: 'all' or 'any' keywords for occurrence field Version 22.03, 2022-03-31 -------------- Update to MediaInfo library 22.03, see MediaInfo change log for the list of changes in the file formats support Dedicated package for full online (no need to upload the file) policy checker in the web browser (technology preview) Policy checker can handle time code comparison, including less than and greater than IMSC1 implementation checker Policy creation from a MediaInfo report includes the extra (not common to several formats) fields Policy creation from a MediaInfo report includes several forms of some fields Parsing speed is now the MediaInfo library default (use --ParseSpeed=0 for getting back the previous behavior) Report result cache is cleared when a new version of the tool is installed (including development snapshots) Does not validate Matroska attachments content against Matroska rules More platforms supported, including Amazon Lambda (x86_64 and ARM) Windows 7+, macOS 10.10+, RHEL/CentOS 7+, SLE 12+, Debian 9+, Ubuntu 18.04+, Fedora 34+ Version 18.03.2, 2018-04-10 -------------- x Fix incomplete initialization of checker window with old Qt versions. Version 18.03.1, 2018-03-26 -------------- x Fix regression on Windows with directory names beginning by n or r. Version 18.03, 2018-03-19 -------------- x I782, FFV1: Golomb Rice parsing was wrong x I210, FFV1: remove sar_den test must be 0 if sar_num is 0 x Do not apply policies to attachments x Print error if data directory isn't writable And polices can be applied on fields provided by new MediaInfo library: + AV1: support of AOmedia AV1 based on latest specifications draft, raw (OBU) and in MKV + DPX: endianess, packing mode, compression mode + MXF: detection and parsing of ProRes (SMPTE RDD 44) + MXF: HDR metadata support + AVC: add consumer camera recording date/time + AVC: add consumer camera model name and iris F number + JPEG: ICC parsing, display of ICC color space + MediaInfo JSON output x colour description: trying (again!) to have more coherent labeling x AAC: SBR parsing issue with 3+ channel streams, with sometimes false-positive PS detection x DPX: some elements in trace were wrongly displayed (wrong endianess) + License change Version 17.12, 2017-12-21 -------------- Endianness and Sign report for PCM Matroska tracks Support of external time code tracks (.qtc) in MOV Support of file names >64 chars long or non ASCII for referenced files in MOV JPEG 2000: Support of IMF profiles Fixed wrong color range info Matroska I630, "Input is not proper UTF-8" message with some MOV files Version 17.11, 2017-11-22 -------------- Formatted MediaInfo display Text and EBUCore 1.8 (XML and JSON) reports available for download in MediaInfo display Improved Matroska video frame rate detection Support of BWF (bext) loudness info Support of MOV HDR metadata Support of PCM endianess in Matroska files Several minor fixes Version 17.08, 2017-09-11 -------------- FFV1: fix false positive about FFV1 slice_x error when slice_w>slice_h Clarifcation about license of some third party library Version 17.07, 2017-08-08 -------------- Add EBML-MINVER-COHERANT and EBML-MAXVER-COHERANT tests MediaConch is now directly integrated in Fedora repository Version 17.06, 2017-06-30 -------------- "Full parsing" option Internal database viewer Policy column in checker was sometimes displaying "fail" even if test was passing Ubuntu 17.04 packages More Matroska checks More detailed FFV1 errors See https://github.com/MediaArea/groundtruth/blob/master/matroska/README.md for more information Version 17.05, 2017-06-01 -------------- Add MediaConch to Mac App Store Use OS native dialogs instead of those from Qt Display login status in settings page and allow to logout Fixed broken XML output display add FFV1-VALID-VERSION, EBML-ELEMENT-VALID-RANGE, NO-JUNK-IN-FIXEDSIZE-MATROSKA, EBML-ELEM-UNKNOWN-SIZE tests deprecate MKV-VALID-BOOLEANS test fixes to MKV-NUMERICAL-TAG test Version 17.04, 2017-05-04 -------------- Better support of some broken Matroska files (high EBMLMaxSizeLength, padding before start of EBML) Was sometimes displaying "Bit depth: Bit0" when bit depth is unknown in Matroska FFV1 PixelAspectRatio was an integer, switched to 3-digit rational Several small bug fixes and small performance optimizations Version 17.03, 2017-03-31 -------------- Analyze attachments in Matroska files Reduce size of Matroska trace Few small FFV1 parsing improvements Checker: js refactoring, improve display of results, performance improvements Several small bug fixes Version 17.02, 2017-02-28 -------------- New policy example (TN2162) Fix incorrect namespaces in schemaLocation (Thanks to kimec) Report refactoring Flipping between pages removed Several minor FFV1 related bug fixed Support of V_FFV1 codec identifier Fix Qt 5.7+ webengine support in Matroska Version 17.01.1, 2017-02-02 -------------- Fix a performance regression in the matroska parser Version 17.01, 2017-01-31 ------------- Less verbose output by default (use " -ft" for old behavior) New display templates "Simple" and "CSV" Support of newest version of DPFManager (TIFF plugin) and VeraPDF (PDF plugin) Store implementation report in database (no need to run it again at relaunch) Policy editor: option for creating policy from a file Policy editor: split between Profile and Level Checker page: jump to the page containing the file to analyze Checker page: scroll to the top of the results when page is changed Checker page: add reload analyze button (force analyze) Checker page: reduce font size of jstree MediaInfo and MediaTrace Several small bug fixes Version 16.12, 2016-12-31 ------------- Push policies to MCO (public or private) Import policies from MCO UI improvements Better handling of errors Fix adding 100+ files for analyze Fixes Version 16.11, 2016-11-30 ------------- Publish a policy to MediaConchOnline public policies MediaTrace optimization for Matroska Fixed parsing of FFV1 v0/v1 Minor UI fixes Improve support of plugins Version 16.10, 2016-10-31 ------------- Update implementation tests, policies and displays Public policies page Handle latest versions of VeraPDF and DPF Manager FFmpeg plugin Watch folder plugin Fixer (see https://mediaarea.net/MediaConch/fixity.html ) Several minor fixes Version 16.09, 2016-09-30 ------------- New policy format to allow complex policies Update example policies and displays New policy editor to build complex policies Policy rules can use MediaTrace Handling of FFV1 16-bit bitdepth (YUV and RGB) Support of Matroska FieldOrder, MatrixCoefficients, BitsPerChannel, Range, TransferCharacteristics, Primaries new elements Stream count policy test (in General section) Version 16.08, 2016-08-31 ------------- Policy Editor: close message when user change of policy/rule Checker: remove a node is not saved Checker: fix handling of files with special chars Add ctrl-q shortcut to quit Better handling of user path Version 16.07, 2016-07-29 ------------- New policy editor Minor fixes Version 16.06, 2016-06-30 ------------- Create a policy from MediaInfo report Revisited HTML report, more compact and with a summary per test Revisited Display window Minor UI fixes on the main window Matroska files with CodecPrivate element before CodecID element where not always correctly parsed Performance improvements Version 16.05, 2016-05-31 ------------- MediaConch XML format v0.2 Improved Matroska tests Improved HTML display FFV1 parsing speed improvement Updated settings display Remember last policy and display directories List of values for several elements in the policy editor Option for applying a policy to all open files Code refactoring of the user interface Minor UI fixes Version 16.04, 2016-04-29 ------------- Merge of "Checker" and "Results" pages in one page as in MediaConchOnline Checker page new design, based on MediaConchOnline one Add some settings (default policy, default display, default path for file open) Remember the last policy used, the last display used, the last path used FFV1: display of the trace of the slice header Check a directory recursively Fix: display correctly information even if the file disappeared (renamed / not accessible) Minor UI fixes Version 16.03, 2016-03-31 ------------- Verbosity selection Improved free text editor Support of plugins (VeraPDF and DPF Manager) Bugfixes Version 16.02, 2016-02-29 ------------- New page for the results (analyze and update in background, delete/add jobs during the processing of the queue) GUI usage is saved and restored when it is restarted Dynamic selection of the policy and the display format in the policy viewer Dynamic selection of the display format in the implementation viewer CAVPP access and preservation policy sets Update of implementation checker tests, including some FFV1 checks Expanded REST API of the server Version 16.01, 2016-01-27 ------------- More Matroska validation tests Improved reports Verbosity option MediaConch server, with a REST API MediaConch CLI and GUI can communicate with MediaConch server Support of Qt 5.6 (QtWebKit dependancy is replaced by Qt QtWebEngine dependancy) Matroska: CRC-32 validation Matroska: support of padding/junk at the start of a segment Matroska: trace is activated for all elements (but report is still based on the first element met) Matroska: add an intermediate level in the trace for the raw stream parser Visual Studio 2015 project files Version 15.12, 2015-12-31 ------------- New icon Database support (speed improvement: file is parsed once, then policies are applied to the pre-analyzed content) More explicit licences (MediaConch and MediaInfo library are GPLv3+ and MPLv2+, list of third party libraries and their licences) Matroska: negative timecodes were not correctly handled Better support of non-English filenames Display format is applied also on invalid files Implementation tests now load logic from an XML representation of the Matroska EBML Schema Implementation tests on valid parent elements, element multiplicity, mandated child elements MediaTrace now documents the parser used for raw streams within Matroska. Sync tests with latest Matroska/EBML draft specifications. Version 15.11, 2015-11-30 ------------- Detection of truncated Matroska files Support of MKVMerge statistics tags (duration frame count, stream size, bit rate) per track Count of subtitle elements Frame rate detection algorithm revisited Showing precision of 1/1.001 frame rates (e.g. "23.976 (24000/1001) fps" and "23.976 (23976/1000) fps") Version 15.10, 2015-11-02 ------------- Implementation checker with some EBML tests New set of default Policy reports About box and Help documentation added More coherent list of options MediaTrace UI changed, with a grid (offset on the left, value on the right) MediaInfo report UI MediaInfo XML export Policy XSL editor updated Display XSL import / export Text/HTML/XSL display examples Several bug fixes Version 15.09, 2015-10-02 ------------- Design of the report is changed (similar to MediaConchOnline) Examples of policies provided by default Support of XSLT policies Drag and drop of several files MediaTrace UI Save of MediaTrace output in XML format Version 15.08, 2015-08-31 ------------- Improved FFV1 slice analysis Trace feature: XML malformed with Flags items (hotfix, flags meaning disabled in XML output) Trace feature: XML malformed with some MP4 files Trace feature: XML duplicated attributes Trace feature: versioned xsd, creating library name and version Version 15.07, 2015-08-06 ------------- Improved FFV1 slice analysis (currently activated only for 1st frame) Improved Schematron file editor Version 15.06, 2015-06-30 ------------- Basic Schematron validator Basic Schematron file editor Version 15.05, 2015-05-31 ------------- Basic hard-coded policy checker (must be Matroska with FFV1 protected by CRC) Info tool (Text or XML) Trace tool (Text or XML) MediaConch/History_CLI.txt0000644000000000000000000002667314640052506014457 0ustar rootrootNotes : ------- + Added - Deleted x Correction #number is the identifier of bug report (B), requested feature (F) or patch (P) bug reports and feature request are here : https://github.com/MediaArea/MediaConch_SourceCode Version 24.06, 2024-06-29 ------------- Update to MediaInfo library 24.06, see MediaInfo change log for the list of changes in the file formats support Add fields compare in policy checker Remove Matroska related errors with new Matroska block additions Supported platforms: minimum macOS version is now 10.13 (too much effort needed for building for older versions :( ) Supported platforms: this is the last version compatible with RHEL/CentOS 7, Debian 10, Mageia 8 Version 23.10, 2023-10-04 ------------- + Support of MPEG-H in MPEG-TS + MOV/MP4: caption probing time expanded from ~15s to ~30s + MPEG-7 and DVD-Video: provide title duration based on frame rate + WAV: better display of buggy WAV files have 2 fmt/data chunks x MOV/MP4: fix lack of detection of CEA-608/708 if junk at end of stream x DVD-Video: fix duration if more than 1 menu Version 23.07, 2023-07-12 ------------- Update to MediaInfo library 23.07, see MediaInfo change log for the list of changes in the file formats support Small update of USAC/xHE-AAC conformance checker Version 23.06, 2023-06-28 ------------- Update to MediaInfo library 23.06, see MediaInfo change log for the list of changes in the file formats support Verbose USAC/xHE-AAC conformance checker New field Audio_Channels_Total for policies Version 22.09, 2022-10-04 -------------- Update to MediaInfo library 22.09, see MediaInfo change log for the list of changes in the file formats support Basic USAC/xHE-AAC conformance checker focused on IOD and sampling rate, more to come Policy creation: Add Warning and Info severity levels in addition to Error Policy creation: 'all' or 'any' keywords for occurrence field Version 22.03, 2022-03-31 -------------- Update to MediaInfo library 22.03, see MediaInfo change log for the list of changes in the file formats support Dedicated package for full online (no need to upload the file) policy checker in the web browser (technology preview) Policy checker can handle time code comparison, including less than and greater than IMSC1 implementation checker Policy creation from a MediaInfo report includes the extra (not common to several formats) fields Policy creation from a MediaInfo report includes several forms of some fields Parsing speed is now the MediaInfo library default (use --ParseSpeed=0 for getting back the previous behavior) Report result cache is cleared when a new version of the tool is installed (including development snapshots) Does not validate Matroska attachments content against Matroska rules More platforms supported, including Amazon Lambda (x86_64 and ARM) Windows 7+, macOS 10.10+, RHEL/CentOS 7+, SLE 12+, Debian 9+, Ubuntu 18.04+, Fedora 34+ Version 18.03.2, 2018-04-10 -------------- (No changes) Version 18.03.1, 2018-03-26 -------------- x Fix regression on Windows with directory names beginning by n or r. Version 18.03, 2018-03-19 -------------- x I782, FFV1: Golomb Rice parsing was wrong x I210, FFV1: remove sar_den test must be 0 if sar_num is 0 x Do not apply policies to attachments x Print error if data directory isn't writable And polices can be applied on fields provided by new MediaInfo library: + AV1: support of AOmedia AV1 based on latest specifications draft, raw (OBU) and in MKV + DPX: endianess, packing mode, compression mode + MXF: detection and parsing of ProRes (SMPTE RDD 44) + MXF: HDR metadata support + AVC: add consumer camera recording date/time + AVC: add consumer camera model name and iris F number + JPEG: ICC parsing, display of ICC color space + MediaInfo JSON output x colour description: trying (again!) to have more coherent labeling x AAC: SBR parsing issue with 3+ channel streams, with sometimes false-positive PS detection x DPX: some elements in trace were wrongly displayed (wrong endianess) + License change Version 17.12, 2017-12-21 -------------- Endianness and Sign report for PCM Matroska tracks Support of external time code tracks (.qtc) in MOV Support of file names >64 chars long or non ASCII for referenced files in MOV JPEG 2000: Support of IMF profiles Fixed wrong color range info Matroska I630, "Input is not proper UTF-8" message with some MOV files Version 17.11, 2017-11-22 -------------- Text and EBUCore 1.8 (XML and JSON) reports available directly from MediaConch command line Improved Matroska video frame rate detection Support of BWF (bext) loudness info Support of MOV HDR metadata Support of PCM endianess in Matroska files Several minor fixes Version 17.08, 2017-09-11 -------------- FFV1: fix false positive about FFV1 slice_x error when slice_w>slice_h Clarifcation about license of some third party library Version 17.07, 2017-08-08 -------------- Add EBML-MINVER-COHERANT and EBML-MAXVER-COHERANT tests MediaConch is now directly integrated in Fedora repository CLI was sometimes not responding with -f option Version 17.06, 2017-06-30 -------------- Ubuntu 17.04 packages More Matroska checks More detailed FFV1 errors See https://github.com/MediaArea/groundtruth/blob/master/matroska/README.md for more information Version 17.05, 2017-06-01 -------------- add a --list command to the CLI for listing files in the database add FFV1-VALID-VERSION, EBML-ELEMENT-VALID-RANGE, NO-JUNK-IN-FIXEDSIZE-MATROSKA, EBML-ELEM-UNKNOWN-SIZE tests deprecate MKV-VALID-BOOLEANS test fixes to MKV-NUMERICAL-TAG test Version 17.04, 2017-05-04 -------------- Better support of some broken Matroska files (high EBMLMaxSizeLength, padding before start of EBML) Was sometimes displaying "Bit depth: Bit0" when bit depth is unknown in Matroska FFV1 PixelAspectRatio was an integer, switched to 3-digit rational Several small bug fixes and small performance optimizations Version 17.03, 2017-03-31 -------------- Analyze attachments in Matroska files Reduce size of Matroska trace Few small FFV1 parsing improvements Several small bug fixes Version 17.02, 2017-02-28 -------------- New policy example (TN2162) Fix incorrect namespaces in schemaLocation (Thanks to kimec) Report refactoring Several minor FFV1 related bug fixed Support of V_FFV1 codec identifier in Matroska Version 17.01.1, 2017-02-02 -------------- Fix a performance regression in the matroska parser Version 17.01, 2017-01-31 ------------- Less verbose output by default (use " -ft" for old behavior) New display templates "Simple" and "CSV" Support of newest version of DPFManager (TIFF plugin) and VeraPDF (PDF plugin) Store implementation report in database (no need to run it again at relaunch) Several small bug fixes Version 16.12, 2016-12-31 ------------- Better handling of errors Fixes Version 16.11, 2016-11-30 ------------- MediaTrace optimization for Matroska Fixed parsing of FFV1 v0/v1 Add a debug log (to make benchmark) Improve support of plugins Version 16.10, 2016-10-31 ------------- Update implementation tests, policies and displays Handle latest versions of VeraPDF and DPF Manager FFmpeg plugin Watch folder plugin Fixer (see https://mediaarea.net/MediaConch/fixity.html ) Several minor fixes Version 16.09, 2016-09-30 ------------- New policy format to allow complex policies Update example policies and displays Compare files Policy rules can use MediaTrace Handling of FFV1 16-bit bitdepth (YUV and RGB) Support of Matroska FieldOrder, MatrixCoefficients, BitsPerChannel, Range, TransferCharacteristics, Primaries new elements Stream count policy test (in General section) Version 16.08, 2016-08-31 ------------- Checker: fix handling of files with special chars Better handling of user path Version 16.07, 2016-07-29 ------------- Minor fixes Version 16.06, 2016-06-30 ------------- Matroska files with CodecPrivate element before CodecID element where not always correctly parsed Performance improvements Version 16.05, 2016-05-31 ------------- MediaConch XML format v0.2 Improved Matroska tests Improved HTML display FFV1 parsing speed improvement Version 16.04, 2016-04-29 ------------- FFV1: display of the trace of the slice header Check a directory recursively Accepts MediaInfo options Fix: display correctly information even if the file disappeared (renamed / not accessible) Version 16.03, 2016-03-31 ------------- Support of plugins (VeraPDF and DPF Manager) Version 16.02, 2016-02-29 ------------- CLI is synchronous by default even if the server is active Update of implementation checker tests, including some FFV1 checks Expanded REST API of the server Version 16.01, 2016-01-27 ------------- More Matroska validation tests Improved reports Verbosity option MediaConch server, with a REST API MediaConch CLI and GUI can communicate with MediaConch server Support of Qt 5.6 (QtWebKit dependancy is replaced by Qt QtWebEngine dependancy) Matroska: CRC-32 validation Matroska: support of padding/junk at the start of a segment Matroska: trace is activated for all elements (but report is still based on the first element met) Matroska: add an intermediate level in the trace for the raw stream parser Visual Studio 2015 project files Version 15.12, 2015-12-31 ------------- New icon Database support (speed improvement: file is parsed once, then policies are applied to the pre-analyzed content) More explicit licences (MediaConch and MediaInfo library are GPLv3+ and MPLv2+, list of third party libraries and their licences) Matroska: negative timecodes were not correctly handled Better support of non-English filenames Display format is applied also on invalid files Implementation tests now load logic from an XML representation of the Matroska EBML Schema Implementation tests on valid parent elements, element multiplicity, mandated child elements MediaTrace now documents the parser used for raw streams within Matroska. Sync tests with latest Matroska/EBML draft specifications. Version 15.11, 2015-11-30 ------------- Open all nodes by default for MediaInfo jstree Add system or user policies/displays group Detection of truncated Matroska files Documentation update Support of MKVMerge statistics tags (duration frame count, stream size, bit rate) per track Count of subtitle elements Frame rate detection algorithm revisited Showing precision of 1/1.001 frame rates (e.g. "23.976 (24000/1001) fps" and "23.976 (23976/1000) fps") Version 15.10, 2015-11-02 ------------- Implementation checker with some EBML tests Help updated and split (standard / advanced) More output combinations (e.g. implementation checker with Text, HTML, or XML output) MediaInfo XML export Text/HTML/XSL output support Several bug fixes Version 15.09, 2015-10-02 ------------- Support of XSLT policies Version 15.08, 2015-08-31 ------------- Improved FFV1 slice analysis Trace feature: XML malformed with Flags items (hotfix, flags meaning disabled in XML output) Trace feature: XML malformed with some MP4 files Trace feature: XML duplicated attributes Trace feature: versioned xsd, creating library name and version Version 15.07, 2015-08-06 ------------- Improved FFV1 slice analysis (currently activated only for 1st frame) Improved Schematron file editor Version 15.06, 2015-06-30 ------------- Basic Schematron validator (" --Policy=Shematronfile.sch" or " -p Shematronfile.sch") Version 15.05, 2015-05-31 ------------- Basic hard-coded policy checker (must be Matroska with FFV1 protected by CRC) Info tool (Text or XML) Trace tool (Text or XML) MediaConch/.appveyor.yml0000644000000000000000000000175014640052500014213 0ustar rootrootconfiguration: - Release platform: - Win32 - x64 before_build: - cmd: git -C .. clone -q https://github.com/MediaArea/zlib.git - cmd: git -C .. clone -q https://github.com/MediaArea/libxml2.git - cmd: git -C .. clone -q https://github.com/MediaArea/libxslt.git - cmd: git -C .. clone -q https://github.com/MediaArea/libevent.git - cmd: git -C .. clone -q https://github.com/MediaArea/jansson.git - cmd: git -C .. clone -q https://github.com/MediaArea/ZenLib.git - cmd: git -C .. clone -q https://github.com/MediaArea/MediaInfoLib.git - ps: >- If ($Env:PLATFORM -Eq "Win32") { perl -p '-i.bak' -e 's/..\\..\\..\\..\\Qt5.6-msvc2015\\5.6\\msvc2015/C:\\Qt\\5.6\\msvc2015/g' Project\MSVC2015\GUI\MediaConch_GUI.vcxproj } else { perl -p '-i.bak' -e 's/..\\..\\..\\..\\Qt5.6-msvc2015_64\\5.6\\msvc2015_64/C:\\Qt\\5.6\\msvc2015_64/g' Project\MSVC2015\GUI\MediaConch_GUI.vcxproj } build: project: Project\MSVC2015\MediaConch.sln verbosity: quiet MediaConch/.lgtm.yml0000644000000000000000000000067614640052500013317 0ustar rootrootextraction: cpp: prepare: packages: - libzen-dev - libmediainfo-dev - libxml2-dev - libxslt-dev - libsqlite3-dev - libjansson-dev - zlib1g-dev - libcurl4-gnutls-dev - libevent-dev configure: command: - "cd Project/GNU/CLI" - "sh autogen.sh" - "./configure" index: build_command: - "cd Project/GNU/CLI" - "make" MediaConch/CONTRIBUTING.md0000644000000000000000000001175114640052500014000 0ustar rootroot# Contribution Guide ## Rules for contributing feedback The MediaArea project team welcomes contributions and feedback from contributing and/or interested institutions and individuals via issue tracking, various open source communication and social media channels, and other sources of public community outreach. Open source feedback and participation of all kinds and from any interested party or institution is encouraged and can be made through opening an issue on GitHub or contacting the team directly at info@mediaarea.net. ## Rules for contributing code MediaArea welcomes and encourages open source contributions to the software throughout the development stage. To participate and further the MediaConch project as it develops, contributions and additions can be made to the code and/or documentation residing within the project’s Github repository. Contributions and commits should be directed to Github and written as a branch submitted as a pull request. Individual commits should be created for each change and alteration made to the relevant file or code. All contributions should be clear, concise, and follow the standardized, applicable coding and naming conventions within the each language's style guidelines. - Fork the initial project to your own account - Clone your own repository on your computer - Check out a new branch with an explicit name corresponding to the bug corrected or feature added - Make a changes and add commit(s) - Update your local repository with the source repository in case features have been added while you were working - Resolve conflicts if present - Send the change to a branch in your repository - On the Github website, go to your repository, change the branch to the new one created and create a new Pull Request with the changes (after reviewing to ensure no errors will be sent) - Wait for someone approve and merge the changes ### File Naming Conventions In regards to the required conventions for commit messages on the open source platform, all messages should be concise and clear and effectively summarize each contribution to the project. If more than one substantial change was made, users should not create one commit message to cover all feedback and changes. New individual commits should be made to cover each individual change made to the relevant file being altered. Effective commit messages, covering context of a change, will enable MediaArea to work within a speedier, more efficient review process and better alter development around this feedback. ### Guidelines for Qt/C++ code Manageability and productivity within the C++ coding atmosphere will be preserved by upholding to the Style and Consistency rules necessary for creating a readable and controlled code base. Attention to detail will be given to the rules governing the creation of a workable open source code in the following areas: - Headers - Scoping - Classes - Naming - Comments - Formatting - Specific Features/Abilities of C++ - Relevant Exceptions For a detailed account of specific rules, examples and guidelines for each section, please refer to the Google guide on C++: http://google-styleguide.googlecode.com/svn/trunk/cppguide.html ### Rules for Qt/C++ code MediaConch graphical user interface is programmed in C++ and uses the Qt application framework. Guideline for Qt is as follows: Attention to detail will be given to the following rules/guidelines: Indentation: - Four spaces to should be given for indentation (not tabs) Variables: - Each variable should be declared on separate lines, only at the moment they are needed - Avoid short names, abbreviations and single character names (only used for counters and temporaries) - Follow the case conventions for naming Whitespaces: - Use only one blank line and use when grouping statements as suited. Do not put multiple statements onto one line. - Also use a new line for the body of a control flow statement - Follow the specific single space conventions when needed Braces: - Attached braces should be used (follow guidelines for rules and exceptions) - Curly braces are used only when the body of a conditional statement contains 1+ line or when body of a conditional statement is empty (follow guidelines for rules and exceptions) Parenthesis: - Parenthesis should be used to group expressions Switch Statements and Jump Statements: - Case labels are in the same column as the switch - Each case should have a break statement at the end or a comment to indicate there is no intentional break - Do not use ‘else’ at the end of Jump Statements unless for symmetry purposes Line Breaks: - Lines should kept under 100 characters - Wrap text if necessary - Use commas at the end of wrapped text and operators at the beginning of new lines Exceptions: - Always try to achieve functional, consistent and readable code. When code does not look good, exceptions to the rules may pertain to fixing this situation. For more specific rules, examples, exceptions and guidelines, please refer to the Qt Coding Style guide: http://qt-project.org/wiki/Qt_Coding_StyleMediaConch/License.html0000644000000000000000000001246114640052510014017 0ustar rootroot MediaConch - License

MediaConch License

Copyright (c) 2015-2018 MediaArea.net SARL. All rights reserved.

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

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


Alternate open source licenses:
You can relicense (including source headers change) MediaConch under Apache License 2.0 or later, and/or GNU Lesser General Public License 2.1 or later, and/or GNU General Public License 2.0 or later, and/or Mozilla Public License 2.0 or later.


Third party libraries

The software relies on third party libraries. Such libraries have their own license:

The Team

MediaConch project leads are:

Other team members are:


This project has received funding from PREFORMA, co-funded by the European Commission under its FP7-ICT Programme

MediaConch/LICENSE0000644000000000000000000000246014640052500012551 0ustar rootrootBSD 2-Clause License Copyright (c) 2015-2018, MediaArea.net SARL 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. 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 HOLDER 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. MediaConch/Project/0000755000000000000000000000000014640052500013150 5ustar rootrootMediaConch/Project/version.txt0000644000000000000000000000000614640052510015373 0ustar rootroot24.06 MediaConch/Project/AppImage/0000755000000000000000000000000014640052510014634 5ustar rootrootMediaConch/Project/AppImage/Recipe.sh0000644000000000000000000001442114640052510016401 0ustar rootroot#!/bin/bash # Copyright (c) MediaArea.net SARL. All Rights Reserved. # # Use of this source code is governed by a BSD-style license that can # be found in the License.html file in the root of the source tree. # # This script build mediaconch mediaconch-server and mediaconch-gui AppImages # This script is supposed to be run on a CentOS 6 container or chroot" function Make_image() { local APP=$1 BIN=$2 DESKTOP=$3 ICON=$4 LOWERAPP=${1,,} mkdir -p $LOWERAPP/$LOWERAPP.AppDir pushd $LOWERAPP pushd $LOWERAPP.AppDir mkdir -p usr/bin cp $BIN usr/bin/ cp $DESKTOP $ICON . if [ "$LOWERAPP" == "mediaconch-gui" ] ; then if [ "$ARCH" == "x86_64" ] ; then mkdir -p usr/lib64/qt5 cp -r /usr/lib64/qt5/plugins usr/lib64/qt5 else mkdir -p usr/lib/qt5 cp -r /usr/lib/qt5/plugins usr/lib/qt5 fi get_desktopintegration $LOWERAPP fi get_apprun # Multiple runs to ensure we catch indirect ones copy_deps; copy_deps; copy_deps; copy_deps move_lib delete_blacklisted if [ "$ARCH" == "x86_64" ] ; then cp -f /usr/lib64/libnss3.so usr/lib64 else cp -f /usr/lib/libnss3.so usr/lib fi popd generate_appimage popd } # Detect host if ! grep "CentOS release 6\..*" /etc/centos-release ; then echo "This script is supposed to be run on a CentOS 6 container or chroot" exit 1 fi # Setup evironment VERSION=24.06 if [ "$(arch)" == "i386" ] ; then ARCH="i686" else ARCH="$(arch)" fi PREFIX=$PWD/prefix # Get AppImage utils curl -L -O https://github.com/probonopd/AppImages/raw/master/functions.sh # Fix functions.sh sed -i "s/-x86_64/-$ARCH/g" functions.sh source ./functions.sh # Add EPEL repository curl -L -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -i --nodeps epel-release-*.rpm # Install build and AppImage dependencies yum install -y file wget tar fuse-libs fuse gcc-c++ pkgconfig libtool automake autoconf git zlib-devel libxml2-devel \ libxslt-devel sqlite-devel libcurl-devel jansson-devel qt5-qtbase-devel qt5-qtwebkit-devel # Compile libevent (too old on CentOS 6) curl -L https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz | tar xz pushd libevent-2.0.22-stable if [ "$ARCH" == "x86_64" ] ; then ./configure --enable-shared --disable-static --prefix=/usr --libdir=/usr/lib64 else ./configure --enable-shared --disable-static --prefix=/usr fi if test ! -e Makefile; then echo Problem while configuring libevent exit 1 fi make -j$(nproc) if test ! -e libevent.la; then echo Problem while compiling libevent exit 1 fi make install popd # Compile ZenLib if test -e ZenLib/Project/GNU/Library; then pushd ZenLib/Project/GNU/Library autoreconf -i if [ "$ARCH" == "x86_64" ] ; then ./configure --enable-shared --disable-static --prefix=/usr --libdir=/usr/lib64 else ./configure --enable-shared --disable-static --prefix=/usr fi if test ! -e Makefile; then echo Problem while configuring ZenLib exit 1 fi make -j$(nproc) if test ! -e libzen.la; then echo Problem while compiling ZenLib exit 1 fi make install popd else echo ZenLib directory is not found exit 1 fi # Compile MediaInfoLib if test -e MediaInfoLib/Project/GNU/Library; then pushd MediaInfoLib/Project/GNU/Library autoreconf -i if [ "$ARCH" == "x86_64" ] ; then ./configure --enable-shared --disable-static --prefix=/usr --libdir=/usr/lib64 --with-libcurl else ./configure --enable-shared --disable-static --prefix=/usr --with-libcurl fi if test ! -e Makefile; then echo Problem while configuring MediaInfoLib exit 1 fi make -j$(nproc) if test ! -e libmediainfo.la; then echo Problem while compiling MediaInfoLib exit 1 fi make install popd else echo MediaInfoLib directory is not found exit 1 fi # Compile MediaConch if test -e MediaConch; then # CLI pushd MediaConch/Project/GNU/CLI autoreconf -i ./configure --prefix=$PREFIX if test ! -e Makefile; then echo Problem while configuring MediaConch exit 1 fi make -j$(nproc) if test ! -e mediaconch; then echo Problem while compiling MediaConch exit 1 fi make install popd # Server pushd MediaConch/Project/GNU/Server autoreconf -i ./configure --prefix=$PREFIX if test ! -e Makefile; then echo Problem while configuring MediaConch Server exit 1 fi make -j$(nproc) if test ! -e mediaconchd; then echo Problem while compiling MediaConch Server exit 1 fi make install popd # GUI pushd MediaConch/Project/Qt ./prepare USE_WEBKIT=1 if test ! -e Makefile; then echo Problem while configuring MediaConch GUI exit 1 fi make -j$(nproc) if test ! -e mediaconch-gui; then echo Problem while compiling MediaConch GUI exit 1 fi install -m 755 -d $PREFIX/bin install -m 755 mediaconch-gui $PREFIX/bin popd else echo MediaConch directory is not found exit 1 fi # Make appImages cp ${PWD}/MediaConch/Source/Resource/Image/MediaConch.png mediaconch.png cat > mediaconch.desktop < mediaconch-server.desktop < Debug Win32 Debug x64 Release Win32 Release x64 MediaConch-Server {66830D9C-0A1E-4664-B846-F5DAEDB574E6} Win32Proj Application Unicode v120 Application Unicode v120 Application Unicode v120 Application Unicode v120 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console true ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console true ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true true Disabled Console true true MachineX86 true ..\..\..\Project\MSVC2013\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2013\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2013\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC12\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2013\$(Platform)\$(Configuration) true ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true Disabled Console true true MachineX64 true ..\..\..\Project\MSVC2013\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2013\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2013\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC12\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2013\$(Platform)\$(Configuration) true {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} MediaConch/Project/MSVC2013/Server/MediaConch-Server.rc0000644000000000000000000000151214640052510021260 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END MediaConch/Project/MSVC2013/Server/MediaConch-Server.vcxproj.filters0000644000000000000000000002217614640052500024026 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3ae77992-ac1e-4f84-9b70-b9b52ce3b46a} {04e8d873-200e-44c5-843e-432f681438f8} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {4144b785-9e42-4b50-b521-d1f949969234} {0e3aa0e0-c270-4d91-87ae-50c30aad50c0} {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav {17d3f297-ae83-44c2-be09-2e2882b1565a} {3c62d1d8-29ba-45c4-8828-7a5e54664aa9} Source Files\Daemon Source Files\Daemon Source Files\Daemon Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common ThirdParty\sqlite Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Header Files\Daemon Header Files\Daemon Header Files\Daemon Header Files\Common Header Files\Common Header Files\Common Header Files\Common ThirdParty\sqlite Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Resource Files MediaConch/Project/MSVC2013/MediaConch.sln0000644000000000000000000002555514640052500016752 0ustar rootrootMicrosoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.40629.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ThirdParty", "ThirdParty", "{70DAF034-E8BA-4636-A42C-CC581B3ECC94}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-CLI", "CLI\MediaConch.vcxproj", "{8A1AE679-131A-493C-86CA-91179B0955A4}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-GUI", "GUI\MediaConch_GUI.vcxproj", "{2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZenLib", "..\..\..\ZenLib\Project\MSVC2013\Library\ZenLib.vcxproj", "{0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaInfoLib", "..\..\..\MediaInfoLib\Project\MSVC2013\Library\MediaInfoLib.vcxproj", "{20E0F8D6-213C-460B-B361-9C725CB375C7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaInfoDll", "..\..\..\MediaInfoLib\Project\MSVC2013\Dll\MediaInfoDll.vcxproj", "{BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\..\..\libxml2\win32\VC12\libxml2.vcxproj", "{1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "..\..\..\zlib\contrib\vstudio\vc12\zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxslt", "..\..\..\libxslt\win32\VC12\libxslt\libxslt.vcxproj", "{F8C03828-5050-4E68-A7B4-41131F9049D7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexslt", "..\..\..\libxslt\win32\VC12\libexslt\libexslt.vcxproj", "{C66B92E2-E917-4556-84D9-6D32C10C3185}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MediaInfo", "MediaInfo", "{363ECBF5-3630-4FFB-B713-6C4F708FC425}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Jansson", "..\..\..\jansson\Contrib\VC12\Jansson\Jansson.vcxproj", "{40460A4D-243E-48DB-A2F6-F5C57ACDE134}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "..\..\..\libevent\Contrib\VC12\event\event.vcxproj", "{F687C268-C5D7-36DF-80C4-641ED9C82BC8}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-Server", "Server\MediaConch-Server.vcxproj", "{66830D9C-0A1E-4664-B846-F5DAEDB574E6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|Win32.ActiveCfg = Debug|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|Win32.Build.0 = Debug|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|x64.ActiveCfg = Debug|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|x64.Build.0 = Debug|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|Win32.ActiveCfg = Release|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|Win32.Build.0 = Release|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|x64.ActiveCfg = Release|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|x64.Build.0 = Release|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|Win32.ActiveCfg = Debug|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|Win32.Build.0 = Debug|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|x64.ActiveCfg = Debug|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|x64.Build.0 = Debug|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|Win32.ActiveCfg = Release|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|Win32.Build.0 = Release|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|x64.ActiveCfg = Release|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|x64.Build.0 = Release|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|Win32.ActiveCfg = Debug|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|Win32.Build.0 = Debug|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|x64.ActiveCfg = Debug|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|x64.Build.0 = Debug|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|Win32.ActiveCfg = Release|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|Win32.Build.0 = Release|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|x64.ActiveCfg = Release|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|x64.Build.0 = Release|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|Win32.ActiveCfg = Debug|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|Win32.Build.0 = Debug|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|x64.ActiveCfg = Debug|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|x64.Build.0 = Debug|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|Win32.ActiveCfg = Release|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|Win32.Build.0 = Release|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|x64.ActiveCfg = Release|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|x64.Build.0 = Release|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|Win32.ActiveCfg = Debug|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|Win32.Build.0 = Debug|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|x64.ActiveCfg = Debug|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|x64.Build.0 = Debug|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|Win32.ActiveCfg = Release|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|Win32.Build.0 = Release|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|x64.ActiveCfg = Release|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|x64.Build.0 = Release|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|Win32.ActiveCfg = Debug|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|Win32.Build.0 = Debug|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|x64.ActiveCfg = Debug|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|x64.Build.0 = Debug|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|Win32.ActiveCfg = Release|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|Win32.Build.0 = Release|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|x64.ActiveCfg = Release|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|x64.Build.0 = Release|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = ReleaseWithoutAsm|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = ReleaseWithoutAsm|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = ReleaseWithoutAsm|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = ReleaseWithoutAsm|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|Win32.ActiveCfg = Debug|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|Win32.Build.0 = Debug|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|x64.ActiveCfg = Debug|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|x64.Build.0 = Debug|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|Win32.ActiveCfg = Release|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|Win32.Build.0 = Release|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|x64.ActiveCfg = Release|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|x64.Build.0 = Release|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|Win32.ActiveCfg = Debug|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|Win32.Build.0 = Debug|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|x64.ActiveCfg = Debug|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|x64.Build.0 = Debug|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|Win32.ActiveCfg = Release|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|Win32.Build.0 = Release|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|x64.ActiveCfg = Release|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|x64.Build.0 = Release|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|Win32.ActiveCfg = Debug|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|Win32.Build.0 = Debug|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|x64.ActiveCfg = Debug|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|x64.Build.0 = Debug|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|Win32.ActiveCfg = Release|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|Win32.Build.0 = Release|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|x64.ActiveCfg = Release|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|x64.Build.0 = Release|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|Win32.ActiveCfg = Debug|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|Win32.Build.0 = Debug|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|x64.ActiveCfg = Debug|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|x64.Build.0 = Debug|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|Win32.ActiveCfg = Release|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|Win32.Build.0 = Release|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|x64.ActiveCfg = Release|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|x64.Build.0 = Release|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|Win32.ActiveCfg = Debug|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|Win32.Build.0 = Debug|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|x64.ActiveCfg = Debug|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|x64.Build.0 = Debug|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|Win32.ActiveCfg = Release|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|Win32.Build.0 = Release|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|x64.ActiveCfg = Release|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {20E0F8D6-213C-460B-B361-9C725CB375C7} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {F8C03828-5050-4E68-A7B4-41131F9049D7} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {C66B92E2-E917-4556-84D9-6D32C10C3185} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {40460A4D-243E-48DB-A2F6-F5C57ACDE134} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {F687C268-C5D7-36DF-80C4-641ED9C82BC8} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} EndGlobalSection EndGlobal MediaConch/Project/MSVC2013/CLI/0000755000000000000000000000000014640052510014636 5ustar rootrootMediaConch/Project/MSVC2013/CLI/MediaConch_CLI.rc0000644000000000000000000000155214640052510017650 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END MediaConch/Project/MSVC2013/CLI/MediaConch.vcxproj0000644000000000000000000003610314640052500020247 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 MediaConch-CLI {8A1AE679-131A-493C-86CA-91179B0955A4} MediaConch Win32Proj Application Unicode v120 Application Unicode v120 Application Unicode v120 Application Unicode v120 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ MediaConch MediaConch MediaConch MediaConch ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Console true ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Console true ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true true Console true true MachineX86 true ..\..\..\Project\MSVC2013\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2013\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2013\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC12\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2013\$(Platform)\$(Configuration) ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true Console true true MachineX64 true ..\..\..\Project\MSVC2013\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2013\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2013\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC12\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2013\$(Platform)\$(Configuration) {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} MediaConch/Project/MSVC2013/CLI/MediaConch.vcxproj.filters0000644000000000000000000002244114640052500021716 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3ae77992-ac1e-4f84-9b70-b9b52ce3b46a} {04e8d873-200e-44c5-843e-432f681438f8} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {4144b785-9e42-4b50-b521-d1f949969234} {0e3aa0e0-c270-4d91-87ae-50c30aad50c0} {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav {17d3f297-ae83-44c2-be09-2e2882b1565a} {3c62d1d8-29ba-45c4-8828-7a5e54664aa9} Source Files\CLI Source Files\CLI Source Files\CLI Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\CLI ThirdParty\sqlite Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Header Files\CLI Header Files\CLI Header Files\CLI Header Files\CLI Header Files\Common Header Files\Common Header Files\Common Header Files\Common ThirdParty\sqlite Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Resource Files MediaConch/Project/MSVC2013/GUI/0000755000000000000000000000000014640052510014653 5ustar rootrootMediaConch/Project/MSVC2013/GUI/MediaConch_GUI.vcxproj0000644000000000000000000006500514640052500020773 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226} Win32Proj MediaConch_GUI MediaConch-GUI Application true v120 Unicode Application true v120 Unicode Application false v120 Unicode Application false v120 Unicode $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtGui;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWidgets;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtCore;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWebKit;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWebKitWidgets;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWebKitCore;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWebChannel;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include MultiThreadedDebugDLL true false Windows ..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\lib Qt5Cored.lib;Qt5Guid.lib;Qt5Xmld.lib;Qt5Widgetsd.lib;Qt5PlatformSupportd.lib;Qt5Networkd.lib;Qt5PrintSupportd.lib;Qt5WebChanneld.lib;Qt5WebKitd.lib;Qt5WebKitWidgetsd.lib;qtmaind.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013 Kit Post-Build.bat ..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtGui;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWidgets;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtCore;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebKit;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebKitWidgets;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebKit;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebKitWidgets;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebKitCore;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebChannel;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include MultiThreadedDebugDLL true false Windows ..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\lib Qt5Cored.lib;Qt5Guid.lib;Qt5Xmld.lib;Qt5Widgetsd.lib;Qt5PlatformSupportd.lib;Qt5Networkd.lib;Qt5PrintSupportd.lib;Qt5WebChanneld.lib;Qt5WebKitd.lib;Qt5WebKitWidgetsd.lib;qtmaind.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64 Kit Post-Build.bat ..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtGui;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWidgets;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtCore;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWebKit;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWebKitWidgets;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWebKitCore;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include/QtWebChannel;..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\include MultiThreadedDLL true None Windows No true true ..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013\lib Qt5Core.lib;Qt5Gui.lib;Qt5Xml.lib;Qt5Widgets.lib;Qt5PlatformSupport.lib;Qt5Network.lib;Qt5PrintSupport.lib;Qt5WebChannel.lib;Qt5WebKit.lib;Qt5WebKitWidgets.lib;qtmain.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013 Kit Post-Build.bat ..\..\..\..\Qt5.5-msvc2013\5.5\msvc2013 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC12/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtGui;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWidgets;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtCore;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebKit;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebKitWidgets;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebKitCore;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include/QtWebChannel;..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\include MultiThreadedDLL true None Windows No true true ..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64\lib Qt5Core.lib;Qt5Gui.lib;Qt5Xml.lib;Qt5Widgets.lib;Qt5PlatformSupport.lib;Qt5Network.lib;Qt5PrintSupport.lib;Qt5WebChannel.lib;Qt5WebKit.lib;Qt5WebKitWidgets.lib;qtmain.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64 Kit Post-Build.bat ..\..\..\..\Qt5.5-msvc2013_64\5.5\msvc2013_64 $(OutDir) $(Configuration) true true true true true true true true {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} Document Document Document MediaConch/Project/MSVC2013/GUI/MediaConch_GUI.vcxproj.filters0000644000000000000000000005524714640052500022451 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hh;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms {16615b4b-f6f6-4711-b84e-0c274ffe74bf} {905b9726-45c0-4a7d-96c8-4a9ef9fe1873} {4bbb3fb2-9002-40fd-8895-7484f292962a} {0346e935-23a9-493f-b58e-e8cbeee949d6} {38264c64-6e1e-4f5a-9906-a6c27769b269} {ca9be640-a193-4ba5-a1ea-2bbea3b077f4} {0d330ddd-8c38-4d7c-9944-c00240a228fb} {92bd129a-a825-4860-8967-4c4af26d195b} {baf09673-486b-4234-9ffe-987d6b99e130} {7ec6a6e9-679b-49f4-bf60-6d1a8f2b2209} Resource Files Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core ThirdParty\sqlite Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\_Automated Source Files\Core Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files Source Files Source Files Source Files Source Files\Core Source Files\GUI Source Files\_Automated Source Files Source Files Source Files Source Files Source Files\Core Header Files\GUI Header Files\_Automated Header Files\Core Header Files\Core Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\GUI Header Files\_Automated Header Files\_Automated Header Files\GUI Header Files\GUI Header Files\_Automated Header Files\Core ThirdParty\sqlite Header Files\GUI Header Files\GUI Header Files\GUI Header Files\Core Header Files\_Automated Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files Header Files Header Files\GUI Header Files\Core Resource Files Resource Files\HTML Resource Files\HTML Resource Files\UI Resource Files\UI Resource Files\HTML Resource Files\HTML MediaConch/Project/MSVC2013/GUI/Post-Build.bat0000644000000000000000000000530714640052500017331 0ustar rootrootif "%3"=="" echo "Post-Build.bat Qt_Dir Output_Dir Configuration_Name" | find /v "0 " if not exist %1 ( echo Missing Qt directory %1. Correct the Qt path in project properties: Include Directories, Library Directories, Pre-Build, Post-Build. %1\bin\qmake ) else if %3==Release ( xcopy /D %1\bin\Qt5Core.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Quick.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Qml.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Widgets.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Gui.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5MultimediaWidgets.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Multimedia.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Sensors.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5PrintSupport.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Positioning.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5OpenGL.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5WebChannel.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5WebKit.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5WebKitWidgets.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Network.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Sql.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\icudt54.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\icuin54.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\icuuc54.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\plugins\platforms\qwindows.dll %2platforms\ | find /v "0 " || cd %CD% ) else ( xcopy /D %1\bin\Qt5Cored.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Quickd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Qmld.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Widgetsd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Guid.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5MultimediaWidgetsd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Multimediad.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Sensorsd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5PrintSupportd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Positioningd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5OpenGLd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5WebChanneld.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5WebKitd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5WebKitWidgetsd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Networkd.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\Qt5Sqld.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\icudt54.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\icuin54.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\bin\icuuc54.dll %2 | find /v "0 " || cd %CD% xcopy /D %1\plugins\platforms\qwindowsd.dll %2platforms\ | find /v "0 " || cd %CD% ) MediaConch/Project/MSVC2013/GUI/Pre-Build.bat0000644000000000000000000000060414640052500017125 0ustar rootrootif "%2"=="" echo "Pre-Build.bat Qt_Dir Kit|Engine" | find /v "0 " if not exist %1 ( echo Missing Qt directory %1. Correct the Qt path in project properties: Include Directories, Library Directories, Pre-Build, Post-Build. %1\bin\qmake ) else ( %1\bin\qmake ..\..\Qt\MediaConch.pro USE_WEB%2=1 2> nul nmake /NOLOGO /f Makefile.Debug compiler_uic_make_all compiler_rcc_make_all mocables )MediaConch/Project/MSVC2013/GUI/MediaConch_GUI.rc0000644000000000000000000000171314640052510017701 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END //Icons aaaaaaaa ICON "../../../Source/Resource/Image/MediaConch.ico" MediaConch/Project/MSVC2015/0000755000000000000000000000000014640052500014230 5ustar rootrootMediaConch/Project/MSVC2015/Server/0000755000000000000000000000000014640052510015477 5ustar rootrootMediaConch/Project/MSVC2015/Server/MediaConch-Server.vcxproj0000644000000000000000000004650614640052500022364 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 MediaConch-Server {66830D9C-0A1E-4664-B846-F5DAEDB574E6} Win32Proj Application true Unicode v140 Application false Unicode v140 Application true Unicode v140 Application false Unicode v140 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true true Disabled None false Console true true MachineX86 true No ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true Disabled None false Console true true MachineX64 true No {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} MediaConch/Project/MSVC2015/Server/MediaConch-Server.vcxproj.filters0000644000000000000000000003363514640052500024032 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3ae77992-ac1e-4f84-9b70-b9b52ce3b46a} {04e8d873-200e-44c5-843e-432f681438f8} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {4144b785-9e42-4b50-b521-d1f949969234} {0e3aa0e0-c270-4d91-87ae-50c30aad50c0} {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav {17d3f297-ae83-44c2-be09-2e2882b1565a} {3c62d1d8-29ba-45c4-8828-7a5e54664aa9} Source Files\Daemon Source Files\Daemon Source Files\Daemon Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common ThirdParty\sqlite Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Header Files\Daemon Header Files\Daemon Header Files\Daemon Header Files\Common Header Files\Common Header Files\Common Header Files\Common ThirdParty\sqlite Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Resource Files MediaConch/Project/MSVC2015/Server/MediaConch-Server.rc0000644000000000000000000000151214640052510021262 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END MediaConch/Project/MSVC2015/MediaConch.sln0000644000000000000000000002532314640052500016745 0ustar rootrootMicrosoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ThirdParty", "ThirdParty", "{70DAF034-E8BA-4636-A42C-CC581B3ECC94}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-CLI", "CLI\MediaConch.vcxproj", "{8A1AE679-131A-493C-86CA-91179B0955A4}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-GUI", "GUI\MediaConch_GUI.vcxproj", "{2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZenLib", "..\..\..\ZenLib\Project\MSVC2015\Library\ZenLib.vcxproj", "{0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaInfoLib", "..\..\..\MediaInfoLib\Project\MSVC2015\Library\MediaInfoLib.vcxproj", "{20E0F8D6-213C-460B-B361-9C725CB375C7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaInfoDll", "..\..\..\MediaInfoLib\Project\MSVC2015\Dll\MediaInfoDll.vcxproj", "{BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\..\..\libxml2\win32\VC14\libxml2.vcxproj", "{1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "..\..\..\zlib\contrib\vstudio\vc14\zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxslt", "..\..\..\libxslt\win32\VC14\libxslt\libxslt.vcxproj", "{F8C03828-5050-4E68-A7B4-41131F9049D7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexslt", "..\..\..\libxslt\win32\VC14\libexslt\libexslt.vcxproj", "{C66B92E2-E917-4556-84D9-6D32C10C3185}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MediaInfo", "MediaInfo", "{363ECBF5-3630-4FFB-B713-6C4F708FC425}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "..\..\..\libevent\Contrib\VC14\event\event.vcxproj", "{F687C268-C5D7-36DF-80C4-641ED9C82BC8}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Jansson", "..\..\..\jansson\Contrib\VC14\Jansson\Jansson.vcxproj", "{40460A4D-243E-48DB-A2F6-F5C57ACDE134}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-Server", "Server\MediaConch-Server.vcxproj", "{66830D9C-0A1E-4664-B846-F5DAEDB574E6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|Win32.ActiveCfg = Debug|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|Win32.Build.0 = Debug|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|x64.ActiveCfg = Debug|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|x64.Build.0 = Debug|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|Win32.ActiveCfg = Release|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|Win32.Build.0 = Release|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|x64.ActiveCfg = Release|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|x64.Build.0 = Release|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|Win32.ActiveCfg = Debug|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|Win32.Build.0 = Debug|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|x64.ActiveCfg = Debug|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|x64.Build.0 = Debug|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|Win32.ActiveCfg = Release|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|Win32.Build.0 = Release|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|x64.ActiveCfg = Release|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|x64.Build.0 = Release|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|Win32.ActiveCfg = Debug|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|Win32.Build.0 = Debug|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|x64.ActiveCfg = Debug|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|x64.Build.0 = Debug|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|Win32.ActiveCfg = Release|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|Win32.Build.0 = Release|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|x64.ActiveCfg = Release|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|x64.Build.0 = Release|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|Win32.ActiveCfg = Debug|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|Win32.Build.0 = Debug|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|x64.ActiveCfg = Debug|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|x64.Build.0 = Debug|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|Win32.ActiveCfg = Release|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|Win32.Build.0 = Release|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|x64.ActiveCfg = Release|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|x64.Build.0 = Release|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|Win32.ActiveCfg = Debug|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|Win32.Build.0 = Debug|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|x64.ActiveCfg = Debug|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|x64.Build.0 = Debug|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|Win32.ActiveCfg = Release|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|Win32.Build.0 = Release|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|x64.ActiveCfg = Release|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|x64.Build.0 = Release|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|Win32.ActiveCfg = Debug|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|Win32.Build.0 = Debug|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|x64.ActiveCfg = Debug|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|x64.Build.0 = Debug|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|Win32.ActiveCfg = Release|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|Win32.Build.0 = Release|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|x64.ActiveCfg = Release|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|x64.Build.0 = Release|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = ReleaseWithoutAsm|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = ReleaseWithoutAsm|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = ReleaseWithoutAsm|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = ReleaseWithoutAsm|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|Win32.ActiveCfg = Debug|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|Win32.Build.0 = Debug|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|x64.ActiveCfg = Debug|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|x64.Build.0 = Debug|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|Win32.ActiveCfg = Release|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|Win32.Build.0 = Release|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|x64.ActiveCfg = Release|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|x64.Build.0 = Release|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|Win32.ActiveCfg = Debug|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|Win32.Build.0 = Debug|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|x64.ActiveCfg = Debug|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|x64.Build.0 = Debug|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|Win32.ActiveCfg = Release|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|Win32.Build.0 = Release|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|x64.ActiveCfg = Release|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|x64.Build.0 = Release|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|Win32.ActiveCfg = Debug|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|Win32.Build.0 = Debug|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|x64.ActiveCfg = Debug|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|x64.Build.0 = Debug|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|Win32.ActiveCfg = Release|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|Win32.Build.0 = Release|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|x64.ActiveCfg = Release|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|x64.Build.0 = Release|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|Win32.ActiveCfg = Debug|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|Win32.Build.0 = Debug|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|x64.ActiveCfg = Debug|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|x64.Build.0 = Debug|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|Win32.ActiveCfg = Release|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|Win32.Build.0 = Release|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|x64.ActiveCfg = Release|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|x64.Build.0 = Release|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|Win32.ActiveCfg = Debug|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|Win32.Build.0 = Debug|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|x64.ActiveCfg = Debug|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|x64.Build.0 = Debug|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|Win32.ActiveCfg = Release|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|Win32.Build.0 = Release|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|x64.ActiveCfg = Release|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {20E0F8D6-213C-460B-B361-9C725CB375C7} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {F8C03828-5050-4E68-A7B4-41131F9049D7} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {C66B92E2-E917-4556-84D9-6D32C10C3185} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {F687C268-C5D7-36DF-80C4-641ED9C82BC8} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {40460A4D-243E-48DB-A2F6-F5C57ACDE134} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} EndGlobalSection EndGlobal MediaConch/Project/MSVC2015/CLI/0000755000000000000000000000000014640052510014640 5ustar rootrootMediaConch/Project/MSVC2015/CLI/MediaConch.vcxproj0000644000000000000000000005117714640052500020261 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 MediaConch-CLI {8A1AE679-131A-493C-86CA-91179B0955A4} MediaConch Win32Proj Application true Unicode v140 Application false Unicode v140 Application true Unicode v140 Application false Unicode v140 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ MediaConch MediaConch MediaConch MediaConch ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true true None false Console true true MachineX86 true ..\..\..\Project\MSVC2015\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2015\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2015\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC14\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2015\$(Platform)\$(Configuration) No ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true None false Console true true MachineX64 true ..\..\..\Project\MSVC2015\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2015\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2015\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC14\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2015\$(Platform)\$(Configuration) No {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} MediaConch/Project/MSVC2015/CLI/MediaConch.vcxproj.filters0000644000000000000000000003431614640052500021724 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3ae77992-ac1e-4f84-9b70-b9b52ce3b46a} {04e8d873-200e-44c5-843e-432f681438f8} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {4144b785-9e42-4b50-b521-d1f949969234} {0e3aa0e0-c270-4d91-87ae-50c30aad50c0} {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav {17d3f297-ae83-44c2-be09-2e2882b1565a} {3c62d1d8-29ba-45c4-8828-7a5e54664aa9} Source Files\CLI Source Files\CLI Source Files\CLI Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\CLI ThirdParty\sqlite Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Header Files\CLI Header Files\CLI Header Files\CLI Header Files\CLI Header Files\Common Header Files\Common Header Files\Common Header Files\Common ThirdParty\sqlite Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\CLI Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Resource Files MediaConch/Project/MSVC2015/CLI/MediaConch_CLI.rc0000644000000000000000000000151214640052510017646 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END MediaConch/Project/MSVC2015/GUI/0000755000000000000000000000000014640052510014655 5ustar rootrootMediaConch/Project/MSVC2015/GUI/MediaConch_GUI.rc0000644000000000000000000000165014640052510017703 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END //Icons aaaaaaaa ICON "../../../Source/Resource/Image/MediaConch.ico" MediaConch/Project/MSVC2015/GUI/MediaConch_GUI.vcxproj0000644000000000000000000007122314640052500020774 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226} Win32Proj MediaConch_GUI MediaConch-GUI Application true v140 Unicode Application true v140 Unicode Application false v140 Unicode Application false v140 Unicode $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtGui;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWidgets;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtCore;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWebEngine;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWebEngineWidgets;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWebEngineCore;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWebChannel;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include MultiThreadedDebugDLL true false Windows ..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\lib Qt5Cored.lib;Qt5Guid.lib;Qt5Xmld.lib;Qt5Widgetsd.lib;Qt5PlatformSupportd.lib;Qt5Networkd.lib;Qt5PrintSupportd.lib;Qt5WebChanneld.lib;Qt5WebEngined.lib;Qt5WebEngineWidgetsd.lib;qtmaind.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015 Engine Post-Build.bat ..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtGui;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWidgets;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtCore;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebEngine;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebEngine;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebEngineCore;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebChannel;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include MultiThreadedDebugDLL true false Windows ..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\lib Qt5Cored.lib;Qt5Guid.lib;Qt5Xmld.lib;Qt5Widgetsd.lib;Qt5PlatformSupportd.lib;Qt5Networkd.lib;Qt5PrintSupportd.lib;Qt5WebChanneld.lib;Qt5WebEngined.lib;Qt5WebEngineWidgetsd.lib;qtmaind.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64 Engine Post-Build.bat ..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtGui;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWidgets;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtCore;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWebEngine;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWebEngineWidgets;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWebEngineCore;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include/QtWebChannel;..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\include MultiThreadedDLL true None Windows No true true ..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015\lib Qt5Core.lib;Qt5Gui.lib;Qt5Xml.lib;Qt5Widgets.lib;Qt5PlatformSupport.lib;Qt5Network.lib;Qt5PrintSupport.lib;Qt5WebChannel.lib;Qt5WebEngine.lib;Qt5WebEngineWidgets.lib;qtmain.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015 Engine Post-Build.bat ..\..\..\..\Qt5.6-msvc2015\5.6\msvc2015 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC14/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtGui;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWidgets;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtCore;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebEngine;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebEngineCore;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include/QtWebChannel;..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\include MultiThreadedDLL true None Windows No true true ..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64\lib Qt5Core.lib;Qt5Gui.lib;Qt5Xml.lib;Qt5Widgets.lib;Qt5PlatformSupport.lib;Qt5Network.lib;Qt5PrintSupport.lib;Qt5WebChannel.lib;Qt5WebEngine.lib;Qt5WebEngineWidgets.lib;qtmain.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64 Engine Post-Build.bat ..\..\..\..\Qt5.6-msvc2015_64\5.6\msvc2015_64 $(OutDir) $(Configuration) true true true true true true true true {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} Document Document Document MediaConch/Project/MSVC2015/GUI/MediaConch_GUI.vcxproj.filters0000644000000000000000000005375314640052500022453 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hh;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms {16615b4b-f6f6-4711-b84e-0c274ffe74bf} {905b9726-45c0-4a7d-96c8-4a9ef9fe1873} {4bbb3fb2-9002-40fd-8895-7484f292962a} {0346e935-23a9-493f-b58e-e8cbeee949d6} {38264c64-6e1e-4f5a-9906-a6c27769b269} {ca9be640-a193-4ba5-a1ea-2bbea3b077f4} {0d330ddd-8c38-4d7c-9944-c00240a228fb} {92bd129a-a825-4860-8967-4c4af26d195b} {bff903fc-cea8-42d5-be92-5b64b7dec2dd} {5b729284-5077-4411-b45a-98a762cd40c3} Resource Files Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core ThirdParty\sqlite Source Files\_Automated Source Files\_Automated Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\_Automated Source Files\Core Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\Core Source Files\GUI Source Files\_Automated Source Files\Core Source Files\GUI Header Files\GUI Header Files\_Automated Header Files\Core Header Files\Core Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\GUI Header Files\_Automated Header Files\_Automated Header Files\GUI Header Files\GUI Header Files\_Automated Header Files\Core ThirdParty\sqlite Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\Core Header Files\_Automated Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\Core Header Files\GUI Resource Files Resource Files\HTML Resource Files\HTML Resource Files\UI Resource Files\UI Resource Files\HTML Resource Files\HTML MediaConch/Project/MSVC2015/GUI/Post-Build.bat0000644000000000000000000000042414640052500017326 0ustar rootrootif "%2"=="" echo "Post-Build.bat Qt_Dir Output_Dir" | find /v "0 " if not exist %1 ( echo Missing Qt directory %1. Correct the Qt path in project properties: Include Directories, Library Directories, Pre-Build, Post-Build. %1\bin\windeployqt ) else ( %1\bin\windeployqt %2 ) MediaConch/Project/MSVC2015/GUI/Pre-Build.bat0000644000000000000000000000060414640052500017127 0ustar rootrootif "%2"=="" echo "Pre-Build.bat Qt_Dir Kit|Engine" | find /v "0 " if not exist %1 ( echo Missing Qt directory %1. Correct the Qt path in project properties: Include Directories, Library Directories, Pre-Build, Post-Build. %1\bin\qmake ) else ( %1\bin\qmake ..\..\Qt\MediaConch.pro USE_WEB%2=1 2> nul nmake /NOLOGO /f Makefile.Debug compiler_uic_make_all compiler_rcc_make_all mocables )MediaConch/Project/MSVC2017/0000755000000000000000000000000014640052500014232 5ustar rootrootMediaConch/Project/MSVC2017/Server/0000755000000000000000000000000014640052510015501 5ustar rootrootMediaConch/Project/MSVC2017/Server/MediaConch-Server.vcxproj0000644000000000000000000004650614640052500022366 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 MediaConch-Server {66830D9C-0A1E-4664-B846-F5DAEDB574E6} Win32Proj Application true Unicode v141 Application false Unicode v141 Application true Unicode v141 Application false Unicode v141 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true true Disabled None false Console true true MachineX86 true No ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true Disabled None false Console true true MachineX64 true No {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} MediaConch/Project/MSVC2017/Server/MediaConch-Server.vcxproj.filters0000644000000000000000000003363514640052500024034 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3ae77992-ac1e-4f84-9b70-b9b52ce3b46a} {04e8d873-200e-44c5-843e-432f681438f8} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {4144b785-9e42-4b50-b521-d1f949969234} {0e3aa0e0-c270-4d91-87ae-50c30aad50c0} {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav {17d3f297-ae83-44c2-be09-2e2882b1565a} {3c62d1d8-29ba-45c4-8828-7a5e54664aa9} Source Files\Daemon Source Files\Daemon Source Files\Daemon Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common ThirdParty\sqlite Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Header Files\Daemon Header Files\Daemon Header Files\Daemon Header Files\Common Header Files\Common Header Files\Common Header Files\Common ThirdParty\sqlite Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Resource Files MediaConch/Project/MSVC2017/Server/MediaConch-Server.rc0000644000000000000000000000151214640052510021264 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END MediaConch/Project/MSVC2017/MediaConch.sln0000644000000000000000000002532314640052500016747 0ustar rootrootMicrosoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ThirdParty", "ThirdParty", "{70DAF034-E8BA-4636-A42C-CC581B3ECC94}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-CLI", "CLI\MediaConch.vcxproj", "{8A1AE679-131A-493C-86CA-91179B0955A4}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-GUI", "GUI\MediaConch_GUI.vcxproj", "{2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZenLib", "..\..\..\ZenLib\Project\MSVC2017\Library\ZenLib.vcxproj", "{0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaInfoLib", "..\..\..\MediaInfoLib\Project\MSVC2017\Library\MediaInfoLib.vcxproj", "{20E0F8D6-213C-460B-B361-9C725CB375C7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaInfoDll", "..\..\..\MediaInfoLib\Project\MSVC2017\Dll\MediaInfoDll.vcxproj", "{BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\..\..\libxml2\win32\VC15\libxml2.vcxproj", "{1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "..\..\..\zlib\contrib\vstudio\vc15\zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxslt", "..\..\..\libxslt\win32\VC15\libxslt\libxslt.vcxproj", "{F8C03828-5050-4E68-A7B4-41131F9049D7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexslt", "..\..\..\libxslt\win32\VC15\libexslt\libexslt.vcxproj", "{C66B92E2-E917-4556-84D9-6D32C10C3185}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MediaInfo", "MediaInfo", "{363ECBF5-3630-4FFB-B713-6C4F708FC425}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "..\..\..\libevent\Contrib\VC15\event\event.vcxproj", "{F687C268-C5D7-36DF-80C4-641ED9C82BC8}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Jansson", "..\..\..\jansson\Contrib\VC15\Jansson\Jansson.vcxproj", "{40460A4D-243E-48DB-A2F6-F5C57ACDE134}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-Server", "Server\MediaConch-Server.vcxproj", "{66830D9C-0A1E-4664-B846-F5DAEDB574E6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|Win32.ActiveCfg = Debug|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|Win32.Build.0 = Debug|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|x64.ActiveCfg = Debug|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|x64.Build.0 = Debug|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|Win32.ActiveCfg = Release|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|Win32.Build.0 = Release|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|x64.ActiveCfg = Release|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|x64.Build.0 = Release|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|Win32.ActiveCfg = Debug|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|Win32.Build.0 = Debug|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|x64.ActiveCfg = Debug|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|x64.Build.0 = Debug|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|Win32.ActiveCfg = Release|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|Win32.Build.0 = Release|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|x64.ActiveCfg = Release|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|x64.Build.0 = Release|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|Win32.ActiveCfg = Debug|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|Win32.Build.0 = Debug|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|x64.ActiveCfg = Debug|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|x64.Build.0 = Debug|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|Win32.ActiveCfg = Release|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|Win32.Build.0 = Release|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|x64.ActiveCfg = Release|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|x64.Build.0 = Release|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|Win32.ActiveCfg = Debug|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|Win32.Build.0 = Debug|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|x64.ActiveCfg = Debug|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|x64.Build.0 = Debug|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|Win32.ActiveCfg = Release|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|Win32.Build.0 = Release|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|x64.ActiveCfg = Release|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|x64.Build.0 = Release|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|Win32.ActiveCfg = Debug|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|Win32.Build.0 = Debug|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|x64.ActiveCfg = Debug|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|x64.Build.0 = Debug|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|Win32.ActiveCfg = Release|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|Win32.Build.0 = Release|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|x64.ActiveCfg = Release|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|x64.Build.0 = Release|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|Win32.ActiveCfg = Debug|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|Win32.Build.0 = Debug|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|x64.ActiveCfg = Debug|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|x64.Build.0 = Debug|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|Win32.ActiveCfg = Release|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|Win32.Build.0 = Release|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|x64.ActiveCfg = Release|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|x64.Build.0 = Release|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = ReleaseWithoutAsm|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = ReleaseWithoutAsm|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = ReleaseWithoutAsm|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = ReleaseWithoutAsm|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|Win32.ActiveCfg = Debug|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|Win32.Build.0 = Debug|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|x64.ActiveCfg = Debug|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|x64.Build.0 = Debug|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|Win32.ActiveCfg = Release|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|Win32.Build.0 = Release|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|x64.ActiveCfg = Release|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|x64.Build.0 = Release|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|Win32.ActiveCfg = Debug|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|Win32.Build.0 = Debug|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|x64.ActiveCfg = Debug|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|x64.Build.0 = Debug|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|Win32.ActiveCfg = Release|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|Win32.Build.0 = Release|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|x64.ActiveCfg = Release|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|x64.Build.0 = Release|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|Win32.ActiveCfg = Debug|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|Win32.Build.0 = Debug|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|x64.ActiveCfg = Debug|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|x64.Build.0 = Debug|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|Win32.ActiveCfg = Release|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|Win32.Build.0 = Release|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|x64.ActiveCfg = Release|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|x64.Build.0 = Release|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|Win32.ActiveCfg = Debug|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|Win32.Build.0 = Debug|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|x64.ActiveCfg = Debug|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|x64.Build.0 = Debug|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|Win32.ActiveCfg = Release|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|Win32.Build.0 = Release|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|x64.ActiveCfg = Release|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|x64.Build.0 = Release|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|Win32.ActiveCfg = Debug|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|Win32.Build.0 = Debug|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|x64.ActiveCfg = Debug|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|x64.Build.0 = Debug|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|Win32.ActiveCfg = Release|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|Win32.Build.0 = Release|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|x64.ActiveCfg = Release|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {20E0F8D6-213C-460B-B361-9C725CB375C7} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {F8C03828-5050-4E68-A7B4-41131F9049D7} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {C66B92E2-E917-4556-84D9-6D32C10C3185} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {F687C268-C5D7-36DF-80C4-641ED9C82BC8} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {40460A4D-243E-48DB-A2F6-F5C57ACDE134} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} EndGlobalSection EndGlobal MediaConch/Project/MSVC2017/CLI/0000755000000000000000000000000014640052510014642 5ustar rootrootMediaConch/Project/MSVC2017/CLI/MediaConch.vcxproj0000644000000000000000000005117714640052500020263 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 MediaConch-CLI {8A1AE679-131A-493C-86CA-91179B0955A4} MediaConch Win32Proj Application true Unicode v141 Application false Unicode v141 Application true Unicode v141 Application false Unicode v141 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ MediaConch MediaConch MediaConch MediaConch ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true true None false Console true true MachineX86 true ..\..\..\Project\MSVC2017\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2017\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2017\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC15\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2017\$(Platform)\$(Configuration) No ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true None false Console true true MachineX64 true ..\..\..\Project\MSVC2017\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2017\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2017\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC15\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2017\$(Platform)\$(Configuration) No {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} MediaConch/Project/MSVC2017/CLI/MediaConch.vcxproj.filters0000644000000000000000000003431614640052500021726 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3ae77992-ac1e-4f84-9b70-b9b52ce3b46a} {04e8d873-200e-44c5-843e-432f681438f8} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {4144b785-9e42-4b50-b521-d1f949969234} {0e3aa0e0-c270-4d91-87ae-50c30aad50c0} {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav {17d3f297-ae83-44c2-be09-2e2882b1565a} {3c62d1d8-29ba-45c4-8828-7a5e54664aa9} Source Files\CLI Source Files\CLI Source Files\CLI Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\CLI ThirdParty\sqlite Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Header Files\CLI Header Files\CLI Header Files\CLI Header Files\CLI Header Files\Common Header Files\Common Header Files\Common Header Files\Common ThirdParty\sqlite Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\CLI Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Resource Files MediaConch/Project/MSVC2017/CLI/MediaConch_CLI.rc0000644000000000000000000000151214640052510017650 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END MediaConch/Project/MSVC2017/GUI/0000755000000000000000000000000014640052510014657 5ustar rootrootMediaConch/Project/MSVC2017/GUI/MediaConch_GUI.rc0000644000000000000000000000165014640052510017705 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END //Icons aaaaaaaa ICON "../../../Source/Resource/Image/MediaConch.ico" MediaConch/Project/MSVC2017/GUI/MediaConch_GUI.vcxproj0000644000000000000000000007106514640052500021002 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226} Win32Proj MediaConch_GUI MediaConch-GUI Application true v141 Unicode Application true v141 Unicode Application false v141 Unicode Application false v141 Unicode $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtGui;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWidgets;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtCore;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngineCore;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebChannel;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include MultiThreadedDebugDLL true false Windows ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\lib Qt5Cored.lib;Qt5Guid.lib;Qt5Xmld.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PrintSupportd.lib;Qt5WebChanneld.lib;Qt5WebEngined.lib;Qt5WebEngineWidgetsd.lib;qtmaind.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017 Engine Post-Build.bat ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtGui;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtCore;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineCore;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebChannel;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include MultiThreadedDebugDLL true false Windows ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\lib Qt5Cored.lib;Qt5Guid.lib;Qt5Xmld.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PrintSupportd.lib;Qt5WebChanneld.lib;Qt5WebEngined.lib;Qt5WebEngineWidgetsd.lib;qtmaind.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64 Engine Post-Build.bat ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtGui;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWidgets;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtCore;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngineCore;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebChannel;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include MultiThreadedDLL true None Windows No true true ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\lib Qt5Core.lib;Qt5Gui.lib;Qt5Xml.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5PrintSupport.lib;Qt5WebChannel.lib;Qt5WebEngine.lib;Qt5WebEngineWidgets.lib;qtmain.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017 Engine Post-Build.bat ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC15/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtGui;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtCore;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineCore;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebChannel;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include MultiThreadedDLL true None Windows No true true ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\lib Qt5Core.lib;Qt5Gui.lib;Qt5Xml.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5PrintSupport.lib;Qt5WebChannel.lib;Qt5WebEngine.lib;Qt5WebEngineWidgets.lib;qtmain.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64 Engine Post-Build.bat ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64 $(OutDir) $(Configuration) true true true true true true true true {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} Document Document Document MediaConch/Project/MSVC2017/GUI/MediaConch_GUI.vcxproj.filters0000644000000000000000000005375314640052500022455 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hh;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms {16615b4b-f6f6-4711-b84e-0c274ffe74bf} {905b9726-45c0-4a7d-96c8-4a9ef9fe1873} {4bbb3fb2-9002-40fd-8895-7484f292962a} {0346e935-23a9-493f-b58e-e8cbeee949d6} {38264c64-6e1e-4f5a-9906-a6c27769b269} {ca9be640-a193-4ba5-a1ea-2bbea3b077f4} {0d330ddd-8c38-4d7c-9944-c00240a228fb} {92bd129a-a825-4860-8967-4c4af26d195b} {bff903fc-cea8-42d5-be92-5b64b7dec2dd} {5b729284-5077-4411-b45a-98a762cd40c3} Resource Files Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core ThirdParty\sqlite Source Files\_Automated Source Files\_Automated Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\_Automated Source Files\Core Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\Core Source Files\GUI Source Files\_Automated Source Files\Core Source Files\GUI Header Files\GUI Header Files\_Automated Header Files\Core Header Files\Core Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\GUI Header Files\_Automated Header Files\_Automated Header Files\GUI Header Files\GUI Header Files\_Automated Header Files\Core ThirdParty\sqlite Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\Core Header Files\_Automated Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\Core Header Files\GUI Resource Files Resource Files\HTML Resource Files\HTML Resource Files\UI Resource Files\UI Resource Files\HTML Resource Files\HTML MediaConch/Project/MSVC2017/GUI/Post-Build.bat0000644000000000000000000000043614640052500017333 0ustar rootrootif "%2"=="" echo "Post-Build.bat Qt_Dir Output_Dir" | find /v "0 " if not exist %1 ( echo Missing Qt directory %1. Correct the Qt path in project properties: Include Directories, Library Directories, Pre-Build, Post-Build. %1\bin\windeployqt ) else ( %1\bin\windeployqt --release %2 ) MediaConch/Project/MSVC2017/GUI/Pre-Build.bat0000644000000000000000000000060614640052500017133 0ustar rootrootif "%2"=="" echo "Pre-Build.bat Qt_Dir Kit|Engine" | find /v "0 " if not exist %1 ( echo Missing Qt directory %1. Correct the Qt path in project properties: Include Directories, Library Directories, Pre-Build, Post-Build. %1\bin\qmake ) else ( %1\bin\qmake ..\..\Qt\MediaConch.pro USE_WEB%2=1 2> nul nmake /NOLOGO /f Makefile.Release compiler_uic_make_all compiler_rcc_make_all mocables )MediaConch/Project/MSVC2019/0000755000000000000000000000000014640052500014234 5ustar rootrootMediaConch/Project/MSVC2019/Server/0000755000000000000000000000000014640052510015503 5ustar rootrootMediaConch/Project/MSVC2019/Server/MediaConch-Server.rc0000644000000000000000000000151214640052510021266 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END MediaConch/Project/MSVC2019/Server/MediaConch-Server.vcxproj0000644000000000000000000004650714640052500022371 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 MediaConch-Server {66830D9C-0A1E-4664-B846-F5DAEDB574E6} Win32Proj Application true Unicode v142 Application false Unicode v142 Application true Unicode v142 Application false Unicode v142 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true true Disabled None false Console true true MachineX86 true No ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\jansson\src;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true Disabled None false Console true true MachineX64 true No {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} MediaConch/Project/MSVC2019/Server/MediaConch-Server.vcxproj.filters0000644000000000000000000003363514640052500024036 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3ae77992-ac1e-4f84-9b70-b9b52ce3b46a} {04e8d873-200e-44c5-843e-432f681438f8} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {4144b785-9e42-4b50-b521-d1f949969234} {0e3aa0e0-c270-4d91-87ae-50c30aad50c0} {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav {17d3f297-ae83-44c2-be09-2e2882b1565a} {3c62d1d8-29ba-45c4-8828-7a5e54664aa9} Source Files\Daemon Source Files\Daemon Source Files\Daemon Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common ThirdParty\sqlite Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Header Files\Daemon Header Files\Daemon Header Files\Daemon Header Files\Common Header Files\Common Header Files\Common Header Files\Common ThirdParty\sqlite Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Resource Files MediaConch/Project/MSVC2019/MediaConch.sln0000644000000000000000000002532314640052500016751 0ustar rootrootMicrosoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.24720.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ThirdParty", "ThirdParty", "{70DAF034-E8BA-4636-A42C-CC581B3ECC94}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-CLI", "CLI\MediaConch.vcxproj", "{8A1AE679-131A-493C-86CA-91179B0955A4}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-GUI", "GUI\MediaConch_GUI.vcxproj", "{2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZenLib", "..\..\..\ZenLib\Project\MSVC2019\Library\ZenLib.vcxproj", "{0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaInfoLib", "..\..\..\MediaInfoLib\Project\MSVC2019\Library\MediaInfoLib.vcxproj", "{20E0F8D6-213C-460B-B361-9C725CB375C7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaInfoDll", "..\..\..\MediaInfoLib\Project\MSVC2019\Dll\MediaInfoDll.vcxproj", "{BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\..\..\libxml2\win32\VC16\libxml2.vcxproj", "{1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "..\..\..\zlib\contrib\vstudio\vc16\zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxslt", "..\..\..\libxslt\win32\VC16\libxslt\libxslt.vcxproj", "{F8C03828-5050-4E68-A7B4-41131F9049D7}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libexslt", "..\..\..\libxslt\win32\VC16\libexslt\libexslt.vcxproj", "{C66B92E2-E917-4556-84D9-6D32C10C3185}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MediaInfo", "MediaInfo", "{363ECBF5-3630-4FFB-B713-6C4F708FC425}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "event", "..\..\..\libevent\Contrib\VC16\event\event.vcxproj", "{F687C268-C5D7-36DF-80C4-641ED9C82BC8}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Jansson", "..\..\..\jansson\Contrib\VC16\Jansson\Jansson.vcxproj", "{40460A4D-243E-48DB-A2F6-F5C57ACDE134}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MediaConch-Server", "Server\MediaConch-Server.vcxproj", "{66830D9C-0A1E-4664-B846-F5DAEDB574E6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|Win32.ActiveCfg = Debug|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|Win32.Build.0 = Debug|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|x64.ActiveCfg = Debug|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Debug|x64.Build.0 = Debug|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|Win32.ActiveCfg = Release|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|Win32.Build.0 = Release|Win32 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|x64.ActiveCfg = Release|x64 {8A1AE679-131A-493C-86CA-91179B0955A4}.Release|x64.Build.0 = Release|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|Win32.ActiveCfg = Debug|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|Win32.Build.0 = Debug|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|x64.ActiveCfg = Debug|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Debug|x64.Build.0 = Debug|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|Win32.ActiveCfg = Release|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|Win32.Build.0 = Release|Win32 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|x64.ActiveCfg = Release|x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226}.Release|x64.Build.0 = Release|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|Win32.ActiveCfg = Debug|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|Win32.Build.0 = Debug|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|x64.ActiveCfg = Debug|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Debug|x64.Build.0 = Debug|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|Win32.ActiveCfg = Release|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|Win32.Build.0 = Release|Win32 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|x64.ActiveCfg = Release|x64 {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94}.Release|x64.Build.0 = Release|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|Win32.ActiveCfg = Debug|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|Win32.Build.0 = Debug|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|x64.ActiveCfg = Debug|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Debug|x64.Build.0 = Debug|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|Win32.ActiveCfg = Release|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|Win32.Build.0 = Release|Win32 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|x64.ActiveCfg = Release|x64 {20E0F8D6-213C-460B-B361-9C725CB375C7}.Release|x64.Build.0 = Release|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|Win32.ActiveCfg = Debug|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|Win32.Build.0 = Debug|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|x64.ActiveCfg = Debug|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Debug|x64.Build.0 = Debug|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|Win32.ActiveCfg = Release|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|Win32.Build.0 = Release|Win32 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|x64.ActiveCfg = Release|x64 {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5}.Release|x64.Build.0 = Release|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|Win32.ActiveCfg = Debug|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|Win32.Build.0 = Debug|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|x64.ActiveCfg = Debug|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Debug|x64.Build.0 = Debug|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|Win32.ActiveCfg = Release|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|Win32.Build.0 = Release|Win32 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|x64.ActiveCfg = Release|x64 {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C}.Release|x64.Build.0 = Release|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = ReleaseWithoutAsm|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = ReleaseWithoutAsm|Win32 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = ReleaseWithoutAsm|x64 {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = ReleaseWithoutAsm|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|Win32.ActiveCfg = Debug|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|Win32.Build.0 = Debug|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|x64.ActiveCfg = Debug|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Debug|x64.Build.0 = Debug|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|Win32.ActiveCfg = Release|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|Win32.Build.0 = Release|Win32 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|x64.ActiveCfg = Release|x64 {F8C03828-5050-4E68-A7B4-41131F9049D7}.Release|x64.Build.0 = Release|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|Win32.ActiveCfg = Debug|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|Win32.Build.0 = Debug|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|x64.ActiveCfg = Debug|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Debug|x64.Build.0 = Debug|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|Win32.ActiveCfg = Release|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|Win32.Build.0 = Release|Win32 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|x64.ActiveCfg = Release|x64 {C66B92E2-E917-4556-84D9-6D32C10C3185}.Release|x64.Build.0 = Release|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|Win32.ActiveCfg = Debug|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|Win32.Build.0 = Debug|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|x64.ActiveCfg = Debug|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Debug|x64.Build.0 = Debug|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|Win32.ActiveCfg = Release|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|Win32.Build.0 = Release|Win32 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|x64.ActiveCfg = Release|x64 {F687C268-C5D7-36DF-80C4-641ED9C82BC8}.Release|x64.Build.0 = Release|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|Win32.ActiveCfg = Debug|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|Win32.Build.0 = Debug|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|x64.ActiveCfg = Debug|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Debug|x64.Build.0 = Debug|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|Win32.ActiveCfg = Release|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|Win32.Build.0 = Release|Win32 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|x64.ActiveCfg = Release|x64 {40460A4D-243E-48DB-A2F6-F5C57ACDE134}.Release|x64.Build.0 = Release|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|Win32.ActiveCfg = Debug|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|Win32.Build.0 = Debug|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|x64.ActiveCfg = Debug|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Debug|x64.Build.0 = Debug|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|Win32.ActiveCfg = Release|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|Win32.Build.0 = Release|Win32 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|x64.ActiveCfg = Release|x64 {66830D9C-0A1E-4664-B846-F5DAEDB574E6}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {0DA1DA7D-F393-4E7C-A7CE-CB5C6A67BC94} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {20E0F8D6-213C-460B-B361-9C725CB375C7} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {BE6D3EF8-2F82-4F1E-956A-890C3614A2D5} = {363ECBF5-3630-4FFB-B713-6C4F708FC425} {1D6039F6-5078-416F-A3AF-A36EFC7E6A1C} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {745DEC58-EBB3-47A9-A9B8-4C6627C01BF8} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {F8C03828-5050-4E68-A7B4-41131F9049D7} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {C66B92E2-E917-4556-84D9-6D32C10C3185} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {F687C268-C5D7-36DF-80C4-641ED9C82BC8} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} {40460A4D-243E-48DB-A2F6-F5C57ACDE134} = {70DAF034-E8BA-4636-A42C-CC581B3ECC94} EndGlobalSection EndGlobal MediaConch/Project/MSVC2019/CLI/0000755000000000000000000000000014640052510014644 5ustar rootrootMediaConch/Project/MSVC2019/CLI/MediaConch_CLI.rc0000644000000000000000000000151214640052510017652 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END MediaConch/Project/MSVC2019/CLI/MediaConch.vcxproj0000644000000000000000000005120014640052500020250 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 MediaConch-CLI {8A1AE679-131A-493C-86CA-91179B0955A4} MediaConch Win32Proj Application true Unicode v142 Application false Unicode v142 Application true Unicode v142 Application false Unicode v142 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ MediaConch MediaConch MediaConch MediaConch ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDebugDLL true Disabled Console ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true true None false Console true true MachineX86 true ..\..\..\Project\MSVC2019\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2019\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2019\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC16\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2019\$(Platform)\$(Configuration) No ../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;%(AdditionalIncludeDirectories) HAVE_JANSSON;HAVE_LIBEVENT;HAVE_SQLITE;LIBEXSLT_STATIC;LIBXSLT_STATIC;LIBXML_STATIC;%(PreprocessorDefinitions) MultiThreadedDLL true None false Console true true MachineX64 true ..\..\..\Project\MSVC2019\$(Platform)\$(Configuration);..\..\..\..\MediaInfoLib\Project\MSVC2019\Library\$(Platform)\$(Configuration);..\..\..\..\ZenLib\Project\MSVC2019\Library\$(Platform)\$(Configuration);..\..\..\..\libxslt\win32\libxslt\$(Platform)\$(Configuration);..\..\..\..\libxml2\win32\VC16\$(Platform)\$(Configuration);..\..\..\..\zlib\projects\MSVC2019\$(Platform)\$(Configuration) No {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} MediaConch/Project/MSVC2019/CLI/MediaConch.vcxproj.filters0000644000000000000000000003431614640052500021730 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {3ae77992-ac1e-4f84-9b70-b9b52ce3b46a} {04e8d873-200e-44c5-843e-432f681438f8} {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hpp;hxx;hm;inl;inc;xsd {4144b785-9e42-4b50-b521-d1f949969234} {0e3aa0e0-c270-4d91-87ae-50c30aad50c0} {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav {17d3f297-ae83-44c2-be09-2e2882b1565a} {3c62d1d8-29ba-45c4-8828-7a5e54664aa9} Source Files\CLI Source Files\CLI Source Files\CLI Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\CLI ThirdParty\sqlite Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Source Files\Common Header Files\CLI Header Files\CLI Header Files\CLI Header Files\CLI Header Files\Common Header Files\Common Header Files\Common Header Files\Common ThirdParty\sqlite Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\CLI Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Header Files\Common Resource Files MediaConch/Project/MSVC2019/GUI/0000755000000000000000000000000014640052510014661 5ustar rootrootMediaConch/Project/MSVC2019/GUI/MediaConch_GUI.rc0000644000000000000000000000165014640052510017707 0ustar rootroot#include VS_VERSION_INFO VERSIONINFO FILEVERSION 24,06,0,0 PRODUCTVERSION 24,06,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904B0" // U.S. English (0x0409, 1033), Unicode (0x04B0, 1200) BEGIN VALUE "CompanyName", "MediaArea.net" VALUE "FileDescription", "Implementation checker, policy checker, reporter, and fixer" VALUE "FileVersion", "24.06.0.0" VALUE "LegalCopyright", "Copyright (C) 2002-2015 MediaArea.net SARL" VALUE "ProductName", "MediaConch" VALUE "ProductVersion", "24.06.0.0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1200 END END //Icons aaaaaaaa ICON "../../../Source/Resource/Image/MediaConch.ico" MediaConch/Project/MSVC2019/GUI/MediaConch_GUI.vcxproj0000644000000000000000000007106614640052500021005 0ustar rootroot Debug Win32 Debug x64 Release Win32 Release x64 {2D3D1642-D55D-4EF6-AEC8-B8E1B8F8B226} Win32Proj MediaConch_GUI MediaConch-GUI Application true v142 Unicode Application true v142 Unicode Application false v142 Unicode Application false v142 Unicode $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtGui;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWidgets;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtCore;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngineCore;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebChannel;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include MultiThreadedDebugDLL true false Windows ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\lib Qt5Cored.lib;Qt5Guid.lib;Qt5Xmld.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PrintSupportd.lib;Qt5WebChanneld.lib;Qt5WebEngined.lib;Qt5WebEngineWidgetsd.lib;qtmaind.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017 Engine Post-Build.bat ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtGui;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtCore;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineCore;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebChannel;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include MultiThreadedDebugDLL true false Windows ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\lib Qt5Cored.lib;Qt5Guid.lib;Qt5Xmld.lib;Qt5Widgetsd.lib;Qt5Networkd.lib;Qt5PrintSupportd.lib;Qt5WebChanneld.lib;Qt5WebEngined.lib;Qt5WebEngineWidgetsd.lib;qtmaind.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64 Engine Post-Build.bat ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtGui;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWidgets;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtCore;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebEngineCore;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include/QtWebChannel;..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\include MultiThreadedDLL true None Windows No true true ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017\lib Qt5Core.lib;Qt5Gui.lib;Qt5Xml.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5PrintSupport.lib;Qt5WebChannel.lib;Qt5WebEngine.lib;Qt5WebEngineWidgets.lib;qtmain.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017 Engine Post-Build.bat ..\..\..\..\Qt5.9-msvc2017\5.9\msvc2017 $(OutDir) $(Configuration) LIBXML_STATIC;LIBXSLT_STATIC;LIBEXSLT_STATIC;HAVE_SQLITE;HAVE_JANSSON;HAVE_LIBEVENT;%(PreprocessorDefinitions) ./_Automated;../../../Source;../../../Source/ThirdParty/sqlite;../../../../libevent/WIN32-Code/nmake;../../../../libevent/include;../../../../jansson/src;../../../../jansson/Contrib/VC16/Jansson;../../../../zlib;../../../../libxslt;../../../../libxml2/include;../../../../MediaInfoLib/Source;../../../../ZenLib/Source;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtGui;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtCore;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngine;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineWidgets;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebEngineCore;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include/QtWebChannel;..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\include MultiThreadedDLL true None Windows No true true ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64\lib Qt5Core.lib;Qt5Gui.lib;Qt5Xml.lib;Qt5Widgets.lib;Qt5Network.lib;Qt5PrintSupport.lib;Qt5WebChannel.lib;Qt5WebEngine.lib;Qt5WebEngineWidgets.lib;qtmain.lib;winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) Pre-Build.bat ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64 Engine Post-Build.bat ..\..\..\..\Qt5.9-msvc2017_64\5.9\msvc2017_64 $(OutDir) $(Configuration) true true true true true true true true {40460a4d-243e-48db-a2f6-f5c57acde134} {f687c268-c5d7-36df-80c4-641ed9c82bc8} {1d6039f6-5078-416f-a3af-a36efc7e6a1c} {c66b92e2-e917-4556-84d9-6d32c10c3185} {f8c03828-5050-4e68-a7b4-41131f9049d7} {20e0f8d6-213c-460b-b361-9c725cb375c7} {0da1da7d-f393-4e7c-a7ce-cb5c6a67bc94} {745dec58-ebb3-47a9-a9b8-4c6627c01bf8} Document Document Document MediaConch/Project/MSVC2019/GUI/MediaConch_GUI.vcxproj.filters0000644000000000000000000005375314640052500022457 0ustar rootroot {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {93995380-89BD-4b04-88EB-625FBE52EBFB} h;hh;hpp;hxx;hm;inl;inc;xsd {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms {16615b4b-f6f6-4711-b84e-0c274ffe74bf} {905b9726-45c0-4a7d-96c8-4a9ef9fe1873} {4bbb3fb2-9002-40fd-8895-7484f292962a} {0346e935-23a9-493f-b58e-e8cbeee949d6} {38264c64-6e1e-4f5a-9906-a6c27769b269} {ca9be640-a193-4ba5-a1ea-2bbea3b077f4} {0d330ddd-8c38-4d7c-9944-c00240a228fb} {92bd129a-a825-4860-8967-4c4af26d195b} {bff903fc-cea8-42d5-be92-5b64b7dec2dd} {5b729284-5077-4411-b45a-98a762cd40c3} Resource Files Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core ThirdParty\sqlite Source Files\_Automated Source Files\_Automated Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\_Automated Source Files\Core Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\GUI Source Files\_Automated Source Files\Core Source Files\Core Source Files\Core Source Files\GUI Source Files\Core Source Files\GUI Source Files\_Automated Source Files\Core Source Files\GUI Header Files\GUI Header Files\_Automated Header Files\Core Header Files\Core Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\_Automated Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\GUI Header Files\_Automated Header Files\_Automated Header Files\GUI Header Files\GUI Header Files\_Automated Header Files\Core ThirdParty\sqlite Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\Core Header Files\_Automated Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\GUI Header Files\GUI Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\Core Header Files\GUI Header Files\GUI Header Files\Core Header Files\GUI Resource Files Resource Files\HTML Resource Files\HTML Resource Files\UI Resource Files\UI Resource Files\HTML Resource Files\HTML MediaConch/Project/MSVC2019/GUI/Post-Build.bat0000644000000000000000000000043614640052500017335 0ustar rootrootif "%2"=="" echo "Post-Build.bat Qt_Dir Output_Dir" | find /v "0 " if not exist %1 ( echo Missing Qt directory %1. Correct the Qt path in project properties: Include Directories, Library Directories, Pre-Build, Post-Build. %1\bin\windeployqt ) else ( %1\bin\windeployqt --release %2 ) MediaConch/Project/MSVC2019/GUI/Pre-Build.bat0000644000000000000000000000060614640052500017135 0ustar rootrootif "%2"=="" echo "Pre-Build.bat Qt_Dir Kit|Engine" | find /v "0 " if not exist %1 ( echo Missing Qt directory %1. Correct the Qt path in project properties: Include Directories, Library Directories, Pre-Build, Post-Build. %1\bin\qmake ) else ( %1\bin\qmake ..\..\Qt\MediaConch.pro USE_WEB%2=1 2> nul nmake /NOLOGO /f Makefile.Release compiler_uic_make_all compiler_rcc_make_all mocables )MediaConch/Project/Mac/0000755000000000000000000000000014640052510013651 5ustar rootrootMediaConch/Project/Mac/BR_extension_CLI.sh0000644000000000000000000000052414640052500017273 0ustar rootroot#! /bin/sh # Because of the autotools bug cd ZenLib/Project/GNU/Library ./autogen.sh cd ../../../../MediaInfoLib/Project/GNU/Library ./autogen.sh cd ../../../../MediaConch/Project/GNU/CLI ./autogen.sh cd ../../../.. # libxml2 and libcurl doesn’t like multiarch #./CLI_Compile.sh --enable-arch-x86_64 --enable-arch-i386 ./CLI_Compile.sh MediaConch/Project/Mac/BR_extension_GUI.sh0000644000000000000000000000043514640052500017311 0ustar rootroot#! /bin/sh # Because of the autotools bug cd ZenLib/Project/GNU/Library ./autogen.sh cd ../../../../MediaInfoLib/Project/GNU/Library ./autogen.sh cd ../../../.. # libxml2 and libcurl doesn’t like multiarch #./GUI_Compile.sh --enable-arch-x86_64 --enable-arch-i386 ./GUI_Compile.sh MediaConch/Project/Mac/BR_extension_Server.sh0000644000000000000000000000036114640052500020131 0ustar rootroot#! /bin/sh # Because of the autotools bug cd ZenLib/Project/GNU/Library ./autogen.sh cd ../../../../MediaInfoLib/Project/GNU/Library ./autogen.sh cd ../../../../MediaConch/Project/GNU/Server ./autogen.sh cd ../../../.. ./Server_Compile.sh MediaConch/Project/Mac/Info.plist0000644000000000000000000000275314640052510015630 0ustar rootroot BuildMachineOSBuild 10K549 CFBundleDevelopmentRegion English CFBundleExecutable MediaConch CFBundleIconFile MediaConch CFBundleIdentifier net.mediaarea.mediaconch.mac CFBundleInfoDictionaryVersion 6.0 CFBundleName MediaConch CFBundlePackageType APPL CFBundleShortVersionString 24.06 CFBundleVersion 24.06 DTCompiler DTPlatformBuild 4C199 DTPlatformVersion GM DTSDKBuild 10K549 DTSDKName macosx10.13 DTXcode 0420 DTXcodeBuild 4C199 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion 10.13 NSHumanReadableCopyright (c) MediaArea.net NSMainNibFile MainMenu NSPrincipalClass NSApplication ITSAppUsesNonExemptEncryption MediaConch/Project/Mac/Logo_White.icns0000644000000000000000000023363314640052500016600 0ustar rootrooticns7ic097 jP ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cOQ2d#Creator: JasPer Version 1.900.1R \@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP 6R߅PJ+FG=ec9$,(Y6X}EᡅNaFH![@]4aUvy} XnVcr9>Xy\k nKCH/i{C)q- LEQ גdq=}jPAbPNِh`ݵCS- jf( 75rkꝊԲoC}$u¹ᢴ˚߅P=IE8yT2 ; ^^]*ɬ(\^Yǃ.1=b*A+ۗdx ^x!uuǟICK?(S*9DqW9A;.o2˜H &CƎWhOfMNv\@ж4"p1]?](y ]x>>O2` B'9ֆh9߅P=IE5Z]"vqVZYj>2!Exãj4 _&W 4fcW*֔\MjlHjgQ$^/H7CKѧʾl9ڴnn,kÖ0!hz !kY`a5'j/+{J ,k"kq+s"%Iu՟q} q0}ȡIFP`ZVS߅P=B+&XyYؒb@pBXҚ郂'}I;FW_O\#нJ:*@JYJPwuSybVqa-D_t{cFҴD4_% qHw87x[QUO>4FߖIjƢ1D1$!y/ǟ9fwD2We+ؘsPw1PNȺߝ]~uL@񽺅 3?uraSVXœρ#wPE-OQM>W-{-%G#KdDl&kn5 cSŒԘ$ ۮhEvi`IKXG׺ N'TiɣR.m}%8)>}qeXpVg$mp= ۏȋ< 2966L) $EOx٨V֎jKǷ%D`m1`_$k ybT·eg~·>~5* LoZb94#p5% _pw#"y߰3ej Hx a z별J1 _4.uYwʼ3`A Jքpٷtၠ9EZ1b\O\jh{ýtwCiz*ng~dwɷLsr&߼LbYh+w( kZ8NO0%®:? B !\fTGQbߗu*Nbn(H/W',.l XBBt\B;OurmtpW8I134e&IO!T&$COo ګ@K49ַ?8(aww3(}I d0 $b>׀lbd|B@\Ү sg(?|Xj84IҼQ?esS\A-GcqJyt)4"wH4@e?Gys 6-T|?o79EBu:ˍ? VOM1m(_I~uMRCl'ҽo ,ƺ-2q ¬QbB)MT|zy_MQT-vCo/8ݹ1aJL"tT؜Yت:\jצ*npRX)IzW ̼zz,$R{Y{%f{A%i6 eҬ`w>5LNwXzuߟK>ճe _kb)1 8dDNNʣ'4F2!.j2;|e|5gpb(M(qf;ߝi~ulp񽺄ćw2 %UM4׀ B'@*-k@ !06Clkά ۀh?>~zHIi|Ayneq.3se;F ЭxֈW\Fh!$D^ێy\l'{K̓LMY ]H-=*!ep¤gL#hFhmLwJ ZbZ| P#N~{SitWkYN ȱr7i kJ;,XT"9?eenǹf{W5_x4R7+Px|MCzr(&[ vEw:̅UDʓm|v &Q:f.WETɾu4NEL1A K8۔grgݐRs첣9x(1 ԡtƑ/!wKhncty q&T7'Ah,uPE䇑OGŊ5W =["byJ9! v-%=ffwXZ-48rH3[iN=ݯ ^m)!(FG ÁZI37u5=Q],&5MN6A+;#_p:\Dֹ_٩:_ܿJf? f/*Ъ^.BԪ)Bzijb)vrZEkG%4v&TEry'xݯr5evMt饿ǵ >/Ki gB #^y2U"DGd T\*av{?8L=uWDQ>lj\Z~ pW\G;!6&U6%tmE^fԙk\>ʔpGo_ކN~vF7FT b!C˷ux?뾿#|rM%XXAZH8!#d_ 4eQݨ!PDz 3] u37wfutKc1 g WKiEWvx6?D^fqi,dNDZk&5ra閞r&Ɔp'/p}6,<K0@Jk gFtE@W'[XDŽñ#'WDH%?Ҟܑ[$ GP,h}4_Jebb w*qQj|"wmhvhT9MO]yzd i--HTȽah{s6\ 9KMkIQ$& URo !@z>?á @}:ïb-qQKO0Z$,BBPEs-%KR B_~!al\qCk 8МB7`&mxFrXQ X)<ԭCtVùnk!i/M?^1v nnYU<~G0x4J f}A1ϯDhԡ8zR=VZD0G7{~ĄJqk$oI ۽j:Ȳ14%RgY2ZTX,"pvMX7a/l5{ysI<֖吔mPQྴ+>AGv>&[M>isa jC~~AI`k:XrSݠhRؾJ} Jc>I -`=^a{0K(A @b6N<^?DWŚs$Q5K'"SֆKnю?7P&aDo$l-O8lEq״uoBSNTXpQnZCɧY(@ 4! >v4f\ KP)H3w`;DH./RKMnrΈ:Vԑ V5A$ \#F'  PLhBlR EsͮS@ITB-=*WJEB/F.1vdMs9\++UO\u;t~inzʫ|B.=oʸ:OB}ŊFB:8rM"6} vˤg#ӍP\аd’>> {id C6ń-f%Z o[2. mӪܥt-QRlfR0{%!0Q뽥b(\n'͏=~c>ڐ|n K\ЃFW(ѪXyҦ@4} pɬB[7Upa%,>n&LeJEd{B˸M&Dma H7#rw6UVkFHܳE{k+F 4zp( 9J@rX_]L>w Q>uW7Zis"?1@ d2RIs^+@;s}O~ƀ&UJ.원1fC2`]Vh 2,Q1 [RgL؄$$#.'!y-KͨͰfw!#u--F:IF+R~mBV9T;!ao3y[ꊊMӃo W`{ẃvNO Bmݚ hT51hxwqjaρYl(7jo|ApqbZw؈ں#u:yǢˇ)'R!V.k:yxdNHm8øԎ陯Q _JykK~IZkBW=hf`) 2Q?h_)QQ'ASѲ^r״Xwƶ)3js~"#I )bq$!>}zAX/6lH"[<(\d a}LEXm \Ϫ=1cFkްT)ۥ }X|Փ|i2IP~ﻻAXC)2zA[bYZcj=l&8cV)s44iPu&A{Eic #TDnt#?x1ZWLf8["E+@u  YC 2Yµ'ʵP6mqh9+ KKbMѽaMfRaqV?'$Y&D,Nǻn 2(kǗ%2v Q(Qf {OxARHN&Y-Jk~Mp?&;#@Ekz1%del*KP&nc}lJ $7SEuqǁeChp;bZ#: ,mƂZ a1x|/)MYk).E[0A%`cl >P0/k#$=:bE:7m(4o{--YߟD=te/F+TЁc CcHH {*l·tN'z%ikEKS"x ZóC(Fx,[Tzaz*AAW6w*>J WZ@ )3ޫDF"Yr*~s%5}zĈ->½rއ+K9cg{ U|jޙxT_gM;Pj t-A@Lz$  ~Qưc _1[wZϰ{r V&S+F3o +j޵)y1flֿ:Kzp$KRY'onR7uQf &qx 8YN!cRݙyj2/̲"2 Xs3шj-X:E~S)vT4P8<1%L4?{P &&`24ifl;掖4DVK ^;Tkzhc\@Ԛ,\Қg*cEȂ'gZ?廊Nih^q9*ꚤ/"fp ak vBZ6Jn) RrofmKp- L1\\MLEcDZ*O_T@2[+d,SL4˃t$8B#*C$!q:O{c^h='q6rwi\B\NU$ݗ‚{nV o[:܋ѳ*U9Xq|JtdOظ7MhH&WYc >bht@~UfJ2*Mk Z+$Q66t NHP>x**l 5$FJ.JC򣍺 ݑe,K3pwGvZLyKrNq#R@>Ž*pcX N9XJakS5Y16+FJ]l<B૨έNes -F)~^f7޼`å麙dEQ;ŮgsÕWzP2$\,j;˙V"+y;$X%-Rбf!"$:7snZ 2 O,_3W5@k㸤A f`+5fbL+U:fj˰H[eKINj5P`ㆳwgLL]`wLFK&us=4+%5~z}G)CO2"Ikx~=@Zw6HbqƝo}a߼&obm№a|7^s2KYNZ@eY^%[FuBX+鍎v3_p?`2uPl+e+vL  \it}O4Q@`ЭŚ2g}_ԹiP5), Ww"3 htQ=nno"?ْiw1U@Sl˚ zT<8x88-Kd˕( ie>a 80VU2^~Ү)s}IªgH_ +|jX)(DN5#,¦ zO~]A8"u5Io0DˇD&لm$rQY>w8c?1&&MAi+3R]6}jR5z/9/͆?XupĿՆ̖Lw\p%T+gRlI;m}~aQWhӛ9[ Ne޺F"OedFACxhB*'-sό_Zqߟ-Z mkuQQ#l/J$lGX0 MA;"(NZ^s`FJ7_}ܹ%pA:i*:O4#fᛯ2[}b?e:F"d'8$|Z6]i#ӎ<&]>H&'͛I`?`lp$j9RdRi̫L6z`F@ GO+UFHVJij􏔤X.j7A<5TOs_R[K$ծcRL ]'|W8G(mIR\ 3X{YWs ^0iv}A>öOoE5S%ei>J@ %)R%VRQ84-/ng5aMTqJ_Tъmsp}‰#|!0ߞ!R6ՇX]1/12(~ (íw CCBJy6z!9Iu$@PJӘg;]^M?Z𐭖B& !ACj #scb8cśL9 r5/@I[IN7=lv¼qaoxЃ[b `F{֡H _nՠt{e"50~pWt S&t>Sh$Pkz 0y:JR-98*\O@V=a L=]rgP ./hPd(s&q~ TSIcTwQp$urIڸZ8?C#/1h#l2hYe ߅N\fA3BQ`D*#]*,ӤxV$0R;cbrJGwx\JoCiK9V{c0"i;X¼n~fz,*=MtXM&YA7eD)?wuʐ:t`M\~Bm&k 2tw7~0ժklDPgcWn/T8@Rs \iz nr,4؋/=D52R3MҜ6S̡܀. 0p"|)c+ߪWWf\h~U7<ɡ ^7n`Yc68;;FvzǬ_=^(vEMy%@fVX'1.lea]&Sv`c%i5Ne*,y: *`nKumb?^OV5$"NvIy1D`lJ>G㵙?>5f|e>Iب#χwI,9lf qRʖQPAv2[ؤk:Z%h{SI ƿC}ܫ#Ha>AKAq_ډTbUt1Q6WJG6ҢX"/0ꨇT ?mqWm1R{6fŮ@viw2PTo7^Vv'>X!<ـ,rNqcmOm{"QE uU,O jMlPNo %x_=fML9 ~l_/h%Uu m *( ~!)b:YxS%&R)k:*W,.xwL3:,1mWrD_ى$~@s5D.lCWV߁o]CXUTxǘ_ ]!C5\եPSKbW輄հk>D3lzM îޗ#7P!c1\ToăD +pu]qnjh>ias> jyח.m*ӷj~k/E7R7bs:5Y F C:j k_=JIem]L& MzO{=b?яE O@AEnJ_ ]̟ K$e<ޱdZw_fiQmHE TÓ,zugDq_uעeŀ@DiG]v׷ Lo,;!P,4ZOIO ?5l9=#9 NEZSK_WQB&MiJ!vlJ 7)蔻hM/֌P'o>E E\;Sk䴕96 jЍfTaO|K@t?V\&͉ HU=,W/u1a7ZEkf}kmݹcYNҭlYAc}j7"2 } #.\C&~h}yaR&ܚ1H-w,6qcFψ:4c>2E R$6P?T3㊋6mK{gQdH~5w? u4u:ceH#.Ga8hoOԤЙ_m,*#5,g@$ʉ\9UCA\v9ߓ{;Z&2!~☌q?'396@+(ܒTŭ+(e/K𤤚xnƇrdZ,] `!8sjWX+>\N1s.o(I^-pb2i34 6SI+4 D 5Xנ?W mIT-eP!uZO؜oQ}2cXt7!f#zߔrS =/{zA q7O;yW1Ig*G!;AGKKu%SpΔ:_3`]xWgB[ lP.r#n\[WۧŞ?zeOd4T?*wS@'qiktxo }UM<"e?f[CTf^ֲ,jDEϷR)Kc |m Ty\H֜L,"E]6&6o0!|R[Caڋ諾^ H:l͍cL+)d[΍*[q^^wל*J*Wv)Ō|Y~i?xn5ƺl?Z1=P1]͓ka2up3fGp@T~1e X+Dk*3Hݿh.^KY.Kd)#vɆ"C1gJun8OWLB'i/A[%b#^=t{Hr*w!E+BIgVxAd}Ӵ}%%\7P@tr*1+16w3':Bgi ;7 P9ұ\}9/&GV#JȠrY#0wšD\厧j~gg߾+W( k; qX*~PB!Uc\$,0.y56;'H-چ[_PV"f5\P8d7SӒó?a)^9Yx>ȬN^AkVDwum5p.nOT*N?n>vGl4[ik;hU]ێeΙC{91X+4+<]VdE66Jp6apo)+bݠypu1l@("I[Wf~2nhL5a_e9:]c80ˁa_hU e,C8zs ՑgCD_"rFTd֥Wev}Ԩhaʶ*^[ .&J>5<0]:;PW3nvRSW|l%ݬDёʜ/ܸ%Qvm(N2N:8PCbT$Bzkv ];,wu_. ObaSr>c&Nr!H癘by;MFoCZ$Tfط{}pkz0ehQ⬷Q?-Ӝ}dYv`X9?nKm՛+͸\+?&D33Y5Fy;eBG^4:d/ו>TRI~|V~ߑ?P ;pnp\i 2#|RˆtCFpUgЍ d7̪vEg$A,Kg)87)z{KxD8tc K3ͮNiݽ|֛pӪPtM)(إC$5ﬢ=K8\O?2XQ[ȅYi':9o@Ǫ%30@ɤc!Q)4 VN\BXDR8bsmpb@tȦ^A$yD]X9tҁCwsʄ(LKk7#GkJ#Ǡ˥Uk U[t18XFOy҂MDTfo?՟Aj\™,#ar/,潤TWB@ڇ%@Ξ`RAsu܄_RQ?yoq} j#.<LA)9{ &1Ov1SK4sO`bG&" QwђYS#-U$GtDߟ=gtte/F+AG=\VOzTɹd ,<Y=_WNOcЛV>O7"ќpd{o}?(ǣdϿد(T|U=fkEזcL_h,pa!kFikmcx0 Ra )|}0sי,vc)Uh f@6lI. wX ncÚ\1akjD|.QM@<alRU7_☋ ~܌b6@$}u8L jO]up}`S=;ܹ 6[H] 9Q0Oy(*.F ǸS>ֿVoב-C>c6.QϧGU{UPn[Z95̔guA̯FFCkfJ/~w<" DWUԂX1+9_.-zQ9vҧ剛vpXbOVS8;M,PrnW~: R cl z cGGc:ZJ&W3-)Jt2X3إ/]ZLQMIQ Vl㌊-3z7y1h e#)ARUv3?GM|JhF+"z1i"{h>Mex١h^ @1Rm)'֎0F?*PG7٤9gFܧwXG5ŐW#G8X*C}*wZxAcfܭXSB) GJ.#mʥ g*qt'N*IweGtBǤYU.siWHܙ/^}ȌtU|{ hBtYV/ViƼ5>+sHNgSvRcHty%YW<"zLsy[4Z 3X 1xM}^{rFXZ 5l 'Hn" g )>c5GVVvghkoM>$~;3n誊A\vcH6mYIrO=*-̑7HEb7K]eqs(C$*1vb8HA1TK.Ȯg6z6Ѓ~IWTw=@\f57GS2[y+y3{R.s\T@E7Yt_XMU ک842B4@k4ץ*2o yOh}|v0'd`L. xh6w !ciJ nH|5 mM"C` ~tbI剧BM#03.`FOS ,E0".oiBvίNb 6Yn\4+MLX#ZVAF#LeS[O*B{D=y`K=rnxIb'asʇFSn$=/&lEBew#3F܂KdMDI}kU];AROޮWcX].j/|֛=M9'u V-@ ]o2.$|4)cT-n׻0pm튃,+>\ Sopj.Dl ]s ʈx$P.».GwX\y0)WJ ۫Zl''RWoIu +)G楘$~Q7WZUPudHb|ȽD Q/uފ$91vyyvFT~Zdr}t<4jŨ{O\'`Gj__%k$_ڻ7((0wViofQ.4ݑ[L˃ltxTJMB-.%{"7sbQ69]Cz9x5MqDYZ,:UY#"L1vpv: `*TLaIF޴Sӗp Ju`_5Te{6c|8ٌ[:QwYRF@ws8IEAx[b"-jz#ㅊzdQ2=+i/6+Vhn@Yz8Of3#=4|a0! o1_ !ZW$$&covs}r؝0gAT:M xIdcny(/ok[ogrruLFie4^cB2 J]8fmS<0zm&mz=)"cd -bLBWhJ}lhuM|`"WmAIьpO94<&hA0B#ێٗ20;> ڄu9sƒ\Gh@/6!s@ NFIP: F5_tJNRZ<^9uS,\aJYa6B:崚d 2.I?VS>Ͳ/sd?-Rp%9tzgW-F@Xj80b '5㾠H+t64HGƝUZz83mxx=u)?)w:4`Cv?PM[ɅͿWXt2463#a9_!}Eⶎx\EtMXk ^K*w)MI~%pr)>;3dr!xVBxU8Tv$zR nu]<ܒ;LFe~{\İEM 5v_#Esfݯ]$9(PEdԑ9}o x0S莵Y5yL~uEZ U& 7U9 #mXZĩQq}bӼ|-lK4kx\7я hA+i;{̹?H%V>IŘwxfu Igc&TSccC3nX}$G)ޞfSnLgԾAP[x$ (`1H4A ,]N.gɿ. T}>녪,̖D>v~3OH? "1e8@2M@v3N+ʇK}'V&(J*$A/%3j??5B/V)@]n`߅Fh E/AlqnRBm#ӬN'T CeWJ,lۉ256{)f(ш+ #yytwv`+ik$5Rl__誯V$t*Ác, ьv[Zq4ӐC;IxĠNW>F3;Q\8ҷFOa\9eJDXl|^'Q"qr^7{X?MP =?أB0Qs4ߙvZDic LoIe، mѺg:3(-tPY]r_9γ(pЮSr>fLXTXE͇f*5 ;,-3؅9j£ >X|2xA"RDzt"j!.xR+CKh f}>3jHnk==ԏ̤X4c{I|n(]HO }Ki9M9xHMLH[42)]yI0mݥio_'wAϥpsV^SЕ.V|5;=8ʎߓ>+l1yD(В?u9. Lq,i74LkeguӾxm3.3TfOZ #%Ѣԓ9b7,0-LLn;fjt+)POFmt4I9!6< *]*NGIXCd%rHC#2wCKEp虦CzD;:Ĭ`u:/9R+P)2WO9LeQ8HN_|%ef$AiZs36ЁqWf$ zE F]2|iJz9ǫ?[*MDuPY?Bb7͡1Һ(n8:VxqaT/&dKv<O>\oB kX{[F|@#10MYpJk3qbe`qrt<}uIssC&uA06C=dĭyak!W5Zkxn%pYn/sIMfL-mz&;2!!u"+_K]o{/_&QOuZ~Z5I i/_jܽrz%"qQnh94n./nݶRE6~/8wnJ"2Aۺ!TVEOʼn,6%ھ1>E TGn}wxh@ao#8xLuQnH∪fFdŮӰ$P|.9&BB؃EOC0R;$e?3(2 V(j'jA)I;li3)ÁJ(m1P鼼mtNl/(@7j{%3|DƧ#՚^iƼQt]~w +}&w@)ghFfzG,[PE.$vSVJhﴩ)n;f(^ lt}ZADž6 ]L,||ʄh50i1F:0;.Z3"j(vsQcF u_A_+v$}F)$"OpiT/%Vȗ |j3 {%57LXΎ=J9^m]O1a|~?Fx!8̾/66}>UHuIzmm#1Nf~⯻e &7٠ U5a~r$,L&2EBe!#g.8N ,$tfedTqve%P+p0k39)m-TW?R3)_rA3OŃdlQo `ߍOX)-rv^8ثo Q5O蹻٘;猄9H9o+0%xۻtWL(iA\X bUVe]W6$p:/E~!v&RƩI(mq1}%n`Vu9RfҺ1vqzBA("j;E$%>u!s4i=^ԋ%$i}yWeKIh9]f]!׳7ę-1~;TXCCFgBٷ*`uVLHctN@~ƻߞkǖKd}\c9Me" פwt/ڲ6S4YZՆg[0 { jYG!aV1x FC7%_t$V h,Q34wڻFOu;9O/+Buݢ+aZ|RJe$7/AXgAwcg؊!?j'p?|o#A.3-tnY=%o1AX7!$a@κVٹ5uB(:DҵBwmwy{. 4>71Q_9"V&rX=fnA4܄ d=0L>kgY;24#|h=&<ˬS`c U{D(K[lOL~ӶxW߇c <\x۟T'avGu2v=F8N1lQ ;[Fgnot/2RVتnZY5s"gjV*ZJR&˱ẍ #{æ $HQXD#ƈ]:^6@BYMk^&1V*c[8Jj4̳Bq-\l%^MPсl zor-JZeʊ"9$`?ʉlm-#8I|K<+AA,N2aI)6hI7Fk6poY2163gN{{"HT!7k'Ao^Ꚋ(_$yRHڿG+y6sx1=/fh>DueJ%*#5>36| LOazϛx3|%dj5NZsњCI d PsaHq ~@uFDT0 -v-:% y ‡2Fí[9Dty 3"q)O?I2߀Mg/깦Ep#e"EKaP'"9:uB-AhZ(@׋I?.d9OG"篬#je(.A.Ęz xA-d>啶K0 %@ / ]jVuOW'}a"cNN"òtfO(Cԩ*D{`z/jB A"<+~AqghG.i?dOSTHi_S xOXOj;#Rpijհz,ǠV0 &"TGEsoWWQp*fXy2xQy˼LiWWx }Ĵ۸hCdHOж3IDAQA1diVl '6vkOcmC[C& ks /' cUF?y'Gi J>|~eA 42JIc AJtlv+d 1Ε <3ؑ<&95yc>tMu|f ap^ 7eecQQcTP5;s.UxƓoB("#Oj$idlL:}Pե}ˌO.ϸ% ]HDĬ{/.<ː?kd_QE)ǗfW⃢̓+U>Rv_%xT5/ە"DLGV:qo)mDcJ5 p<%%\@[:bCaJOd{䱥\2)`=DXM%׳W۳ dWW[u 9-/.#KeGӎlԋHڤ i ۥAbQk M Đ,"qU+d k|D`hN3Nrr0$4qOѭ`^/ RGi7iƪgVFgwA{ƗԘOBnN%.@GSu,A0!HƌX1h0zoLyw׏#(=9K {VRdUyp=HGWo7#GeBߟQ&aزG\\KuAPRsRRzmjt8+՟;мJc<t-w%T]eA?<$\XA|3o"9)E;ufgCfO[Ojj~%QzAO #qN:C*}ic'Xxpr\5]=|IFV1`c9X%#.1v Sx]Ei j-VemG'].Eb 5 Yvgd<!j觝b,)2&"ih)*vt94R+)U.T:<z Z+Bv[%l< w!YL]\2i#B y~\iRհ5'oTeFDGٔ<ʑ329S!aRY n^\YWb-PB5r@A"I<zlx$ ܠ+]œm\(FRª(bw|?$܃pRnu˾+%H[4 +8 mZ.S jߌ=7n9?M솙xC4hc}4}a TjR,cp݆8^aHG E;]? }sSuii6~BEeNA/ޤb<%3nlv@Ww3!PF-0wI>|3L@[]GnEN&(5٨3%AO:En>ohۢgk@Yt' ߍdOiY̵nx3淝 C^Ygh&aR'*9/SڏpA/>į`Q:?%qe}Z!q!_:P/@Ht{i?x'@K3֎^>Sc!a"lt3 s}38ByohS9'ii h*޺Ǵ {@g5m͝H=`I=.Vӂ6ﴮk0$>3L]}],1w 3LI06\D g&W.1m&D@Ɠ%U.Sw0z#ỪрhP`XcNc'PpsIw$2#&#ZaYCYiEq>>WBI|Xlqjn&œ_Ip r"{SKiEP$ NFӖ*yr.G3U~N4H 9 wh? v=9m翽B1-fn(2@))l8 Η:BS$G`*1~\"{NWW-?4Ǹzkxro8Kcv"sϿx>x6`6aGl97!.!FHtm_m̫O xdb"/-Ab^VrvF͟3K5c#H>';drx'[NwQ'fvyup,b!J0(l7iҶC4 nF=xsĻV́O~ήߊAۺ!TVEOĜZQ}~%xhKV1G3#:+} }Nc_B]cVYN~b|ͬ!Ӥ9l%>qMUp P?LʆMlg&WxbJ=<G(X1棓PV= =ޥ ldQ~ˬ{Ğ16時4)x˯XBC5X~硟3ko 6XFYKzoY} ڻ2a~P|: mE3>t?d;;A)NnU]9rT7iB_HKTY|trB@V s c8/<=E/SH6H2\g|ذ"KcG%zsZ vb lm}P |sUc})VQ̴=!m⌚y{lM9ֲ@uöM.2OUVzzu 836v&$.M잱8g Gq.9qL>Vk5ַtBCwC3i$9rZ4Lj{GC@_8tOP]o?= _,uh;* q3i!//a쭧HU]PDٞ[dR=D q]zuG0^_9䣌9W`_(s;^r-@[Nsz<-&DJ `!-l?!2#2$Z~Ӡ$q& I~2efyB2p/u u)Nֵ^lUEVmGG`!Dwzf@;0eU~f ZjB崪N4&jݸF+hMLjZ$çr鑙q)ؓػ||WY@UbJj5;7OX%TpCNVb8)hݓKOU-+YէҮ!FYeX:B:H)r |ϬIHߋN1lQ ;[Fgnݒ8=JUǙ\m"nx7GQl y/MEgd@X%9fVۖ~cϚWl1y=}aN%PX,b)mʨ.wGFNB`i~ƪMr#n-f 먫<҅\ .x3PMq]-aɊxjrix\9nqi2]Ay_c5v56S?L[]a:G:vqÿ#g0+ CØxbL##$*Apv%;~tmCÊogL.eHEWjj9]nbb.@>@釸N*|156ӟaGPOQHN݆+=2w3h3=21iFsg T~,SXYecfȣ1H9ߐLH$`G;BxJvWcгtlotCDYvndN?-Bh ⧅&-0kEg\e q7y?kó-5M\D |a(kJs`>$yfj[8cM3k@^|F.}dno.ٔQ?6pvrηk>fIO\˖vg3_4D>E=fGSweΨxD}(YdKsR}:Hק_RQ5lZPm+; =*#-*,A mw8Og#4\Y Is- ^l0m#IkaZqw+Wc]Z0,γPevB!/A wL(ñwthФZV T}ݧ+47P/pVOH mոyEX7bm]y U O4nJj9- ̌tz̧ 99YVŴHW,Axb{̗6(]XzE= #;yʘ(6gx~A);W炇91Ao6cj G ovߛS$rT/5vJshFA jRS1LqDK#ck#f6RLWpTD^Ry%Ҥ%No5HS=Flm:JS.pY}tp=K^ 0zm lb164Ԏ`_4+ sq).a]͹ɫdLP:8ޘӁ/s-AAsjrF'ye:gL6\!o %LQATvuڿf113E:J(μZ^3 HFx&:&aIOOlR%N@Vnu|PԾN@?8H ';!ϵ qŏyj6@nf،$ v):T$tlH`h91{"+^Y&>9@- w8vuXCQ]>A ߣۤ;H4QIxvжVSfDU7FE?E]#IAgFӖ*yr.G3U~N4H 9 wh? w2izl( fyE^ w+^y@ حv%9v1}! ӬggJ4s?Qܒ.|Gs:h/$|X/-^UJލwFJs&d[r%?o=_C?w,EY%0 `[uoȑ#ӨcJN#@#l 9凜0 AZ(!:5ToW!L~- };MjŹ޽m+kMhu]22TIw\A}BtCa] Hp.0ҋ6&/r5q1H^~ocZ*u ElJKg 8X3.>ak\YV&gy`ͅVknSdf˄!RDU- }i}?sqqTL bi&iE!9'OF ǔ(( Q%1>(MESŽ;̜A%W) *~Vޅ.)ꬭf!țw 6{f@ַۘE+3 kt?Tr f]`U]Qy;_ZEϲLmj9\+bٸYMjy RL>[ݲk-rΆ&K|(~E/ep 1%qҚ瘵U\@=*D ;[aT!7qNL\E3#뒡M mzZ2emNIxV} I-1A&h4fjӇ$Uܟ;(zplќ51y%_@j>֖n*1BFGnu9f5\=$-5T9to$7p{6S7Q:)}!"1S=5 t=#H?_9 >D`p}:u(Xk?1 :Tli**3U%v:y _xG|'1oYqTc`o6C@ %q=5-#/9^^N1fh f8 Z$|RȧRrk=n}\;>"d?sxЃw_(C~8({l;'^XP'9xCp3 5 6ѵ)T!6 ] J7v#x.6_I|VԔlòv 0 '|MP4)tzĨTf'N(kYj^DדŹ!ɇlnuutfXB*6vƢNVt- ?A?yXo11^+o '+i6jhd -NΐU>sY0۪yJbj{@HgRN*ɟt5>Gi2tuɛ?TVZ3 |㪐l1r2A{K4˖.p$`g!j)!漡\H)=؀SN#:I,}1Rjjc'sM1 UW5G<f{Hiio{^#T8~9uOZxh1mDQa{Ef:YIF5L9q,p6v5 8C3#{ 9T JZYITG LU' ~9ސ9Gcbًf,ȂY OS IʼniBAt%B>E8*T$GKk$3=KaEw[JDsu?@7,0, :u`_`lӻ]魗d) <ʅ@ۜSf gdL~,gt}$G2cKFלڙDG*ZAHhT,JA!z4zF(b|r{(a2F}X1ļQ(צTy miz>O4՗@ =9^]c^]u^zF1DYggi4AYS #8aS=9pj%$rQj˭iJٴtasW8A[%%>J;V=EvL ߩPfx2Z"C 65;<{Wèao_a` /'L(-b̪׼7~^lj]|ɠI3G:$f}0= C,[^Q9+g-YSp~  ȮԬHr ذV2|j-XlJh~ 6\3a~\K"͒_]zrk3A]I NOx() I6uTmn #aXdA2*PB4R>lFD5̳IX|q2&SN#32Hn|^xn4e Uk'<Xk$>?k 4ΒXzLR5|yCk9ҬWE'c2s7Ћꅻ Rw:'kt\#$UJ8;=4oSd8/ wjU9ČٵR"֖{Nң8ufR^+aŏnAbv{\j%Bw#HAf)Ŧ_A1.ݶ- 9]}8Ꮓ<%v`X? A~zYzo0pl B=ZOF݊64Ͷ\?PV ^d) ϞGMVZDTsUQc=9()o2zMU;űIbhf nU |rҐ^zs!(sQ_kQDo~pЏǧ7ONߕ3tut5^-q2 BW k[?z>+ĺUCwhHKsc @moƣz3_P(7ⲴZ.^6*k[-r|Khu!KRCT= +g.2Yp/}x"mmGx1i\( /:ܾW} z~=pRj2oz2f\J0߯rQVL@׷©-ڙ>ϛ-g}i;Kc|zRjh7%$$,4v$8`'B w[߀ LJI3ױ~pn4ZfqE X(wڽ[ ]Xܯ]_Q %C֏t M/[O9ObsA_b0l`k'w (|̎#1*v±TeuILD$U4 >+뗖^N_.yM„ߵ\1I`moTࢳZߨD 8St* NM$;P){`"ut70r.ec1v PdlW0:eS?'X p`~-~{ 셅 !LB!hw1>qb ZۃE@5Is1503zODJ;,4ETe|`9uc ׿OAxG=>Yr̥2>vkXkGK,^6``B#|(UFwֵFtjf 9~+V*p(,mKKhIvY{EtJ*6k"ޖg8UwM*3; Xg `]2w9ŒB`꡴7 ]4,b6BBVWr|N&DZla&E &SB fOvRĕ!4DBn}ϿdiE a5%$of#2Xwī߳Fy(GiHLTPraD.(!`0S|]wF YJ$Ў(8Lӂ3Xovjc1;h=Btg:/(-tPY]r_8YPwLFftxn,= fDeVzf;wP1rCph0XNrX h*9!=h oV{f.C8Z԰}"=$k߶j^Gn<9(&`,в6Q{pC&_Wn {Lxu7vMG/a%2MW~FE t4oX="y띦Ms+whI\c#rq3Üޓgu:J^.%i qѩe*Qiޏ)r1Q/di),vLCͧ"7rf}7F@+_) G*uk7nGA!WХV AYVcU\IRͼuQjz1x>Q2Q~ `p~cF4 EoH" =r& :s}L4'L&:6&ɑcjFJ^=g^)TSuO2X  )4g?T̥? :865EMEG58+ׂ3%͐JTb/8oh e%5P\IĂtq} AkfLso6|wg4 8ͼ0yS&®(!u|8 ˽2C޲13w2"sec||þjH׮p/6hD\,5bǯUj.,knETaUEŎ~+>)ip8$F+ݗ33!mLE A|S꣎4&pE.֕z~p*]&RJOU<tcTIR$@Gm?C}5ՔvzTuv9Le˭/4^M$CD1Dkx9Ug5;cߞQbL=5ރFI d}od)\ +W |ƈnϛetr3ejzK%0gPxi5(mBB8ܛp+,| wɤ6J7Qf:Dxܐ"&ZƟ 9Lр0H~g"Sš0m>}ȵmC~f&]H1JSr~#+ ~wgڟ_K`4tڰ(GL  *x*SDzP.^.7ĘvPZlaOo Q5O蹻٘;猄9H9gQ19%msMutK%y dsONe:fP $,{Tr f]` ^/@|'lFGRrQ)KvZרqXZݕ%h|F8ŀoakO,2.VXO\ gBnIs&{X{)7 5 Y oe#g0̜ |ЪkADDILu*UԀ*CJɬy9E$-kA%$?EL70ԅ4vޙMN!s_-'q FMiؚRcX3&squB y:_ᣃ˙%mZ&v޸* 7C;^=MkDm}8h@:FI<вN"Ο)I%$Z7%ޟ+ '-솃( žmgS>{K$̮-R.uH8QܻMX&3 JC_ _E:0.2L /ޗVXqR{@ip gX&h#^8><#IJ8Lq_wK5hAzࡊxE-c#kj'apYv!'Zz6'j 9֨I'ق 7&ue EZ\ޛ} rzG@}_gYė 2 ~J0Iet#rUeƴs΄hJKzPg@Iؓ1HGMB±wJB8Wɼp9#r!ew[1b0ˏ(8ŒoRQ. Ks"T]lu&CGuX#l b23P2݃&M{&pN<ϮCL ;Jud^ 0t樌En>B @K)\$MN8 aoDSOi EMzua؊ |ʯl,t~_š Ё[k#bCYبJXZN]g~&hv |6Zeŧ\ mChZv|.-ګT#V,{,P2T V~:j`u59ł* msox2Wm~S߷B?n W63xW??_R? 7u#p0 ?J h6_h(~ '3>ۗ{c\OBnvW%O@sVkT& =ηT!$HPMq@(NÉN= :с]y%*2ى.tEth"{Ls;[\FrYDxՇ0f%4zAH?˨`IĉPQIqgEBE曠_/hxw}6 t A.J'ܡ!d|y?w*Y^&},}ﭔSYďaTOF Vzk#lq6.'gs1H$jʩw ?m %5W;PݕXnCZwPE~E%{cA>wSߍg&їVI6[o6Ak~r>KJ@44bû(|~!bEar8(Gg^.3 NrN3w{dZ=.X~u5Mr S"אq5d?\X1Nu_7 [jm>q0B}i`ex*ZUâ!H:1WE>!w Oٌ&C":w=vARMV;Osych}_m%btmKeJ3!вuw8 Jr/tK_&UN7rDc/"؉KYj.r)R$e0@ è )3l*b`F>&o;3G",R9׃5ħt:\*T϶xJ5ʪcLڡ8[F ,q%d}6"w6iue}7`*Tk*tq ÷UMHXvn\RE̽MWIӢv4S J,/ht7fOV!9Ks?]E"`-WKΪ D8`g!,ojűA:wGp3Ջb%FA˪g[b`3O.Y)b@pr9&ōqt-j )hyɸ3I;7C?͡r XaI?YV9%F6CndQuHl7|.S[цq-P(.!0& ݌Q8UsXs3Up=[8|d^qg2+C6@*bυADs^cPOm>֐ZaH 厵f Y~'_<< _t얯^ʢX-uc]y"0U1iSԁu<*ϓfLs׏"'+y^J"l=+˅qi5 4g/R)SS\7]<[T^_O7rKj"1Vn oifXa}x8aÙǤmAdw`kMF7,iRFp]|Ky3W,<=?=\E{E!Jò鍳PWD?Mω y\QRP>FeaGP0J[GL)Yyڏy] SPտM ʺR/pZ6WI 0[F? ᱸӭᯍ_l SI"3`@\XRƥQ9i|,λo+dZ,ewN> .f f Ky*€>atCG C^0QTixz }?eiz7k~q~:M/Fo }GK-9B#z!lNE9loމ75 XT7oḆ]S/p G6BOJn}"N*ET}EN+#X=<~O7l KO o?F]1׀D`YqgSQiVR$kOX`tc*F{(w yݨ5'1aF #t֟bY]8RU![?QtݫqOwD [r n}8j? N̻I\r͗3>QlpNCG J]t x ^fKr UA1&0ߛJwnqZ]l j{P,6%y(lCߺ%#}?~܆pAZVtɴ~VoOӂ ҹ CX!G?SN4kJw3- ~?p<:NPPˢN8AlL{I[A93ܕ#Qh+/;JA_ʶkRy.EF}mQ7u MZ* -nĞwI6ߪi$qf>PIߪg)?j<`aoEt8K UUd0#-!U1#+ H:aEz[΍`&/j!<X=hWEIUt +lO"XO\ޜAF+F_eg•ǁ;WE6" ȽqR~+C->:k܃#v?1{x/ְj't\WYHQo`NJ4h!~ca6X̵kh9atD P:~17o= gfXd5Kfg>f?rk0^#[P,05I˕gYoy0_W)O*o2 $OO'<_8mNCt _~x)^^Læ$e5ssT_lU^y{5,3i [TozS.PNѥSf_FSW%*UͮE5 kroUxgRGtKUU"\7fҦwuǺN2P}u'p2_v>z2k{Xn NM/m oG٘M2j$ 2_+2L$ѠEB[(=55-t79,CY?6j~7=hVWJgd`" ƓYJQ˲2Bڣ,5=5-`^xH&]Bm[\ Pan 5ϨFlQPDxb;z I[M}#ąbwhoTm.NK5m›jr=Y,A0,oK,{ nC #δī۔ _~x9G[4BI\A aYCD0L#~vW3Hqq,5۵nR8=#K!\|ͥ9Z3$PPHELK$Ag߱w1ce2 `X< -?@K[צiik $qmJ@o^]X.g!pfDBE:[?m5:OtcH;lo T7HvT7TzD ry+F#ǿ 02_%u ĕ#62SѬF߉ȵ4 D X@k"PF]U-݈!YN+>EF;+TQG+ڐTWa`/q=ӐZ^qv[W}UT C>hAhe /{S9k'j$YM#wrbfgHvE>x3$~7_e"O%Cj5,JzQ# Me_q-ݰa;\oجB% ʸj-A[˺vLnB)'k;Gt枭+U}J7g9-kПn6FQRXmoH֭Wպ_%T\O Iz,iGvV%$F~;Jaf,utO8*L:T}=Fw"H/|I ."̉Q%RҔ\.OD's!G6VK% M|πgQ`:MdHZh* įG}wِjf5̷z|2Bq9~R`lt @[i; Mc$'=JbAd6/BJ3 "X뻆QPKS@5?@-(ojҩՆwR>u u9@#$d[!7A1+GQY"-RE)uج!cͱP j]橅2 6y!K01&Xpa@|mpiK01&X8vvMFVfD~ tm8o?;BG;OAncY/;>x.o;D *< P$231[f!5wr*ćw(%m!hcfEs^HwqyX?~P)u^T0!4Joq2=atBhe M.: "S}.Vʰl$cZZRI[ͅ#PV/rA%}Q^xo31dڴ5lVpHom.;iS ͥ~8C&_Fu_F}>kdB,>_$5:btq ֥^k+H 栂-CCdn`xԼb=rb޸7|VL=_r,mG}=A?)QPMakt@5&W&yz_dGhnȸ]F\0>R(Ocq~}ߩPRMՑ*)\ &0^ާhV_:XpGHu`t8mujrF!w??&3BĎ qJhFj^C/q)=9F y k>$/0w1Ȝ|ԴV-L.ˇKe eTJ/p;T,b9)ZlCu?ḮhD)'q?C48E4P_e؞aQpxɁr /a/-QGYrnggNo,F=B8%TٲsCpdq{DDb!]C8FiRwIsf'm[04"\SۂY ;r=3h7ב謵gC-r=`)\fs-Cp5? tQc"pa)@ s1ccːo<&b9{aǷ*='re :i{ub_ *bP^i3)h O9K&дYF{g"FJ Zqh)m']j `lSr#k.:艦"9na8ѥ=6qCű|XQ00 z8)[#tcןfqI> L k2%wkܗ/s.&OA} W,G̴{iNh9W}@ke#Or``9JblTCSeh9ʭ{2GGTZf$nWU ۗ{c\OBnwdPB^)}P_x$k4^[zE퓧me#Vxz O2ى.tE ]Ȅ4p4…ԱGPCr(-R@a}]/m]tc.i 0Z[E<.j"Y%`_ǡYS埡}})j $uV"5yqķTOiVvWl5KpT7x V˖$tC E'Xz?*z@c;a!FG/]<؄G!lo/rv0RnѸ'&S  7=7 Qx\OʨPn x^δ[.ҏ)iaE5S9 SmK#c S>7\7L@: W<ߑ&0Ol5 rާR7_.>MVpGmlkjZd#i!aHwpn!?Iid4d g@@45X΄q+|!}%ۥl^Ŏ2;%lkw-tr:uo2|s Ż@+!fD52^m%R8  m+b 8yvSJ!ܐ:򬫨H2LÎ促0}_r9K3ί};@9IHtdkSL'8q┗@揵o<^ȻA7GSIbr<6T+)irf)m~Ex[XIwۤ03/OulFJ K*akr;"Bv.PagDqh,3h. e%K'LMswM^5Szߝk6:;%:1WE>!w Oٌ"PK`1fot"B D353^tN϶$|VAL9kv(LFs@LKr0rHM~Ԥx߂wBH/6ۂg/+! ePֽP$jgڟ?tsSqz t͑Ipxi|0[iYa=yfHkF)l ֋*ن[ ̕<2{y9bȕWK:A-$Wٱh+h8I ԗcWdC9]&xB%?թC)I;ply<|p?t׳RMay.MQ67 N3ade0TV6pbnwf: c?Jv7.6)v ΪLx`g!,a [H3#$~zr$ϟyȶoF$j1BY+N4?#`U1$ڡ-)1~Ԣ?٦50}zt?Hh3`SǑT_Mi()";H%+e+lZ rLL&Xom%Onܜ7G\՚ Ð̔w pA~TDIKv }'jG@qXH4H 焍!^m+}qpw$%'׮V(Zÿ -A* RRfjBV3A&Kڃ ks.~M]J78~5 6+1-irS5:!>t+%aϪd Y5?TGI-d) ^޳]\~z(zBHjC$!ԙ.|@{j [Xdz1e wVqQ7:Z nQfC(j1:mHל>-ApӦt¹Zb{0Wv;.K@N'٩gfo|W8&CH4o+"K{*qWD!0lSw\1o!87ްnWz<6Xm 뿫#[ѳq$o?&ONw&:p ,TtpާWR"Aa |KPik%V kRRuO!G )Fgr3Ky7rsوP̱l?,>yM,3y6|Xg6+CsPK- |ƂÆt@wx<*aSEQ$HmersIc&m@pn*xfdqks^TiX9zۻG膦fyF]bss-FXM+{(a&$1|Qt-OUn2sc*'ܝc/$zOnե`0rv:/kv3k~q\@*Q*!Ιo\aڲph&qS8>mx@U n7Y$Q̘:SQ1#Й.rҤ3R(J#ðmmKr+bxjTc^ TN=@6ytlXf0Ɠ4Sc"3`CG7f"7~"@a ,Y$ %U}uP҉bjaAl {0@8*ܚ'ZQDH&]wWbʒ_i _Cdc>2qx6W$_~F[1cVF>x.̠Coz6ɑDX.RO$ޅ.Rchhp|bLk~܂.jGd }]ɮߑƘP0_#YB +;~Xń*y7B*i T/ Wꚞ`)?j<`aoEt8K UUd0#-! MO\C_ޓ@D1n|"}>b u̮?f#¨R cBH=SSO>[.c#OGLW 4tIj`5q;  h;lWr@~[iTKՃI~_ɋ{k&]oY/@699z"/d$Z=onuR1{ƛAuNҹ^C\'Ỷ2&/Ӄpג L1t%}эr@R Ɣd0||ifyO]t:c#>%)FhV}G_gF})^^? ht۹]YTgP޴0lbLzE(8O,pDgƑ5yA+2vu| M^'KUfZxQ(tKUU"\7fҦwuǺN2P}u'p2_v>z2lOʱ~r/~SkPNZ@Yt9,m[Nyv&ZgrTh )˩ ÕIo7lX{C]KBxqw-s( 8 IǸnaf4z Y+/i>{IDe #1f/7C_oTwb~AӘ ?( )$<{ ҃)Cgzuئ 2SWMAddQ4eTVL~jYWOIԅ vvňO*`݋ɰWО]z^&Y'tvu%$9z{2 -~gؔe^U1&O֟#qHǪ:H۴Z~ALZYtkGE *x08sPuWI똟0˹p\܇+?u*PcuT?ҺH-RRFҀ8A'`x,%)Oо4* tFj zce1?zLt"ڿ}8_0>ბhy+F#ǿ 02_%u ĕ#62SѬF߉ȵ4 D X@k"PF]U-݈*:t`<@|PRRPMlKEF1^Aj_=ӐZ^qv[W}UT C~[馧{zWjy $rܣ(; ɤni (=.IgO[ <`Xyf^#Hr^r-aQ5\85e}^S7 2O6@a\˸qcW64fjiC9l/ώoȖ>1z" ,pl}6J,1+pb`W95.TRl$kSE~^:Lw5Uˉ\2Cd%F֎yT4X'Bu0\.OD's!G6VK% M|πgQ`:MdHZh* įG}wِj>75 ̐\N{>_4{P8lC江gS?~놁ѩѲHK| `N/,*TF?qB$Uؔua]5,-=1#BQT;) >NM#!US8Z /Ec~HC*Li X$bIS?%wKs`@l"xq^KegIMٷL&q}ʗEJ57@^k7#P~8qX 1Mfٕn n?A֏z'*B?5˾` k [!#@qKCs|~? {B9 _c&d!)Z7PO [_ , Dh /rM"Cq^g5r݄΍=kgE]ok+I- ͢8=Ll%Xu(zcm]g/YiN} WtLPt?c$qR[J[7ݩFQfӐ+~qjpzCVEc ' !5bJJF[#7 +':u po_ju\ǿ}>kdB,>_$5:btq ֥^k+H 栂-CCdnqooc%P I f36B|zc##:cp8f(x O!c)6hX%*耢v,4m$VԵDJ 7V$8}:̓HHQ?}) mlIC|]sC/_15QXU'`,y%M}*&ad*%?=izF!0Ϫ(7-e9u=0t`Oxp:I>s(F=:߷5xD09y.nNr,߅o E;ϓJ$q8n,\nM= Ff IJQ @sI@V#f }GjVq}dq>R\ ֧E1MNȼ?|eyޡ, kmiڃ^uщ@|$s=:ЬF8Ng\Z6ғO~DtFY0<>b49 'eOK ]kjnMwu̧qaqhC]ED(YȾiZ*pV\nS=Fx0g=%1ZNc &n| y0J1|9(Igw `Lmȏq o"^㒑.JqYjD~T!sޭE'_TIP ۸`'/j<owP.뙄dtf Ֆ L Zfǥ] xp(t~Я{Rzqy2ݶe}tI<C2iٽy_9X(i9TfĮ'ǚGWd}\h7y2o{`# tZ lQ0"~^R߷Gn_m% B5u? ?YoO5?k*Ѿ>R-o(/$>ۗ{c\OBnw|!//֟ek6h'NGEx~+Qn1[NQj:J"T2ى.tE ]Ȅ4p4…ԱGPCr(-R@a2BRBx3'?˨`IĉPQIqgEB,Z#yM*vN Ĝaoxo 2:u ޕ.v~0SqI e%5XZ sy] 'i/>R D*r;mX^cpKA]iVUw)ZXvɯ!aZW.I*@?xv71W#{c_czƱ8ͭ1igQ_c5ccdn1]cO"rL@D{RQ+él1Ίw1F{DZ?r-ɿW{;Q"`,Ȓ-G,5}:C U07e7c$ '?=@=>ӳĪ_ҧfsiNW9o26Mf`aU p&i\Б.+@Q~- 3$<3t-n޵*!^gMe sQ B ""!oib܆O_?X:^=g^\;b30H6( >׫bCY")m5]N£ai{D liʆ2v<{ Zw 5}V c[yeΤ{; QPBc7[;JS?=P(&xΉ 9:|:+~ӓo߄3gĖp=aUKm7sA'Vl>Jϋ mbPq ĝb dr?Oݹcj{f3Yi֮ `oW+UPs&Gr]pcMx23=Fr+J]-4pߛXBS`OGͪȪ.I<LrZ M*`4?3R4rK-[xyz]}u .mPHʻ51))NTootΑ FrᚢPi`}Bсmrw ̗.P2gӓ,V30]wxIݬ/33ͤ@5+ZFy?pk!Fh8-6c#1J8ƀsnnaF؉z(u`bD֏o7?+@xkkaiq 8;\.)h |9yr{;S~[ mqr)h$δVR U{s~ؕ~\<e*I%n_ ,GAKl W͎|xp3bY:S_9 eL@𨸆ś.jAM߅WC4߆TsТ.μVI|lunc"A1"H-j _GmV> 'nƒRCB;?a j֐cn!DSm.JS3b|.H4$xET ä*. :`fOۆ2SnMҴR *736%*˂ -jNiy_,%dB@aJœ剑>>EUIIߖB3[Vr#4$F4p'/>'3 M66*Qrb㈼gVfY4L3AVBBE" ݐw+ʔhU= E.Z+ܟg*S.{tTݶA>\tE 2X_qh:m/|W|z0K+Lp͟:jq0Q !4_ {TO}O`T (EIny]}޻/_e? zi5QM/Q3ǁ=Z~5 vGV')'(yk|Ĩ(TXe6_OIKȡ.Feq˘(V͘;ƅ&ONw&:p ,TuMup%"$iԼB9[xݨs$h~@/F:bmPΣQR梏aƻ ]C-qD`)! %f4%~l('^Hm4 uX-Sԁu<*ϓfLs׏"'+y^J"l=+8삚A\QiT| xI.=ٯ HFc)C9[K`T3QǑ īpA倥“'RLwơ*<\~6kyGAבc׼sĖHDždŲ WH+J'bo5E!` 5 \v[ ̚2~K1;y7@< Ȗ*u״AO8~muk_lF~xLg̲:!UB8!N9Ar7u,NeM'0ICo!–U+oC,_ۜ+Jö&QTY ϧ!qAAy(Iu&nI8fs_~\Fqnt"=>_k)Fgr3Ky7rsوP̱ĮоU{֣3y6|_vp'M8 ѭ+# ~:PRchhp|bLk~܂.jGd }]ɮߑƘP0_#h% du=XX1 'o ߆L酿=9vq&0}gQIVoD{n=ߠ:)|f%0JoYo1FPS+~c^b8JgB^W-%0i"qQ%nsmc$wS lFԑB<!t/jX4h,(Dv{^.o5kF(>PKdNK=.>h{]ybFMbgH\k:mܮFSW}H)cC%qT)ABu_#lZ)Α82BڿWnڎyD:^:426 /4nU jKe_w6k(Q*ZJd2 .V2`YU1hA;,̶!6mR[k(UÚB|nvI(~=oI|VӔ|hQY\:_ t2Yfc$~f2V9X!4^Db̤"3bvvTYШ e#66[  l+Nջ:# nDgptƾ/1Dc:[;yq%94zs*: }* o)%k`h= D^X]md=xdI"|~jYWOIԅ vvňO*`݌xԺe;"5\jp15Ǡ`!/ہUD*IBU,h;8wJ7u '?Sa+[uh9gd+ byRU+!]PuWI똟0˹p\܇+?u*PcuT?̼RFҀ8A'`x,Ic;N%N^Vmhӝj*OZeD{\;i)e}CR7X;lo T7Ne.?P߇y+F#ǿ0BB!&-/\3׫PblPkۇTK0ՓpPH;[9XϪ A-.i1&NՉ'fU]~(}Cr{tҦcygBJ_=ӐZ^qv[a%.K;ut;'TޯOuti֦9Z/qA >euZHR <`Xyf^#Hr^r-aQ5\8<|i{L<4I<ڢ!qUS#'oG}{'R狓݅ycP\N׎oȖ>1z+ꚳnz(-{voQ IU1+pb`W95.TRl$k8?+I_oZ[YpjaP ӥYJtA:X\2Cd%F֎yTsBsޡ:FuQ4Έ$A3Ҝ\.OD's!\H=N;C`}Q*ղ2rT93ҍ!ɳ, iW=Bڞxdhb>]]WyYY[ f$4r˳ 6]Z9u]6LV\Ѵ|O$޹_o'~xw2 $ׁ]DZ?mkH䚱w䀞KpA$"#BQ9 ހ^)4%83SiF ~P4aC3KO4vDah4ѭ+SS]vPУgdo-tz)IB-Fc"΄bQ匞˪;Îw7\˰:#5LM|ܬ1ҳ {Y$}G}`uMhcaU"ڶyKzKxD&uB6% Yui7 |H8¯V%Tp!4@~)GatBg!"GVEc ' !5bJJF[#7 +'Ik7fbJ'Tyzأ>}pAӄ&64 4K}o kAURFB#rY'd,V{$ }]-jt0G-]K($?JGj|'/ڧL-|Ƥ [?!m&Uzo-!:~]P&4#ol|߸8^YPt`, "PJ_x\-Lxi.!ԥt|qu\Ԫ8>>e [Me\+\xt2}Ulo u˚ 2#yjmye hAfTD]BmO6.n s!C0"pbڗ~:ҥ";Lp ѤOQ-V% ^A0";h)+_ ~NfO`NvWʯhpl[0~zJCY=l!+/mtőDbqAƜ/PTF;?(4|K5·(g[]`@'Y~y-2C͌B⟊(t/AY"dݡSi HLJRV8U<}\ gB(|Їu\G@Sپ=$qMY`Br ۸`'/j<owP.뙄dtf ՖD7?d$Z2=T,q q2ݶe}tI<C2iٽy_9X(i9TfĮ( wl~S]|}y7+'Erֺ,ܯ,{`# $b lQ.!8BgoTH+|?‡A5j/Lo?¥Ag>QA5/amjѯP|A+4>ۗ{c\OBnvW%O@sVkT& =ηT!$HPMq@(NÉN= :с]y%*2ى.tEth"P]s;[K\HU{k>\[WZ>"ygm]tcN^nI"Z䵩w,$'MAe=jڰV$6J%Ao{& DMͮMyn=ެub#PXɍX qrdcis{Cxxϻ'՛Lwt͐[PG# FdMR[ չ=w>Tcmަ g/bc{(ezo~ܥdWb-{i'PO/?>KFxy} i1Q_b5S9 Slb!ɒqs.?~2xwL1Z 2*p7Q]q 4yu,;B|P[9ɧs-@ģf) }Li$% KKfc/.`B G#T5:0$k55ȘPF`tSiظxhHu|ػ,7<Ʀ7;kJ{`*)׈hΧȏ1v/IPWy:Kd+{ĝ~QscyaBn\Wt8 7)CJ[jW=&N(޹^1wHv^eP$1ڟvd {]۽CQHA`N~ȱ<@9LtMzW1+fG6&R%H/hC7ݑ#\7P֎E{ G+1AlcԲa,A:)+55ZU@AGޯd萰$b9NO瞋fpj`Ġ/<\k5R\J!;Ev[5/kS\6Uߓ['1r,4 C)U Aq΂?tv4Ԍ@ŦdiH3kj3`{罓 Q=M*`4`n2RmdžOS-&xd0M?59"&i(?v]_ŐiHw{"L6"$+9`(I 9\;Oa.#E$δ2?J[i#Co4le-eh]8N]|v9͖s$е&{SDZB}oH.Xii -یiQY v!'8  5)aͧ䑿\[r#ĖPCe朴2/s\R0wnhR3 .][H %B(%971`Zd|ۆe5^3ԙNЀ^_2 S +ȃ[P"ͯ`jL^W̫CT|߬Ќ1{n^,Ϯi# UЍE@Xd_ F:&Td^G/ӱV/BP\,dUteV^ar^4?V9PrPw28r#`n,R91궏r7 (Gbbӹi v'ffލhHckO[*c~5T)1}$hf?O>T)1{ vlB?J>p=[8|d^qg2+C6@*bυADs^cPOm>֐ZaH 厵f Y~'_<< _t얯^ʢX-uc]y"0U1iS5D*NK F1Q_pkH%ZmDvΫ/e.!Al*x8`l݃b m_k#p Un,_Doa%jxlk\ -2./{rxN?k3b.4>%iKvgvWM^lc֍C"'mC׍_l SI"3`@\XRƥQ9i|,λo+dZ,ewN> .f f Ky*€>atCG C^0QTixz }?eiz7k~q~:M/Fo }GK-PIߪg)|ǧAHCm;pgEzMAHxYƕو'ɖg!pxU(w@[Dy$uIJ_%BNDkMiqc0y 2*D]ً? bg]KX{۱pc qwV#O7n_b&h喺1W:4_L" ,@Mt(caqYR8H@}B*K$~R?>Ծ[\w^Ӯ}~[tWf$y* qfяF9yH\7ej}^*7`!7j~8ϫv6BJꫣ_1$EJZȗGenU:oLW5ᢐI jIn$o1hJ_p]K X*_ݸNDs׃R߹?VtPp:t8X i~E+Aveb D&F޻ny 3(g6\`0@Z@f54H#*!x0SP7M8F`DW]B&圣 toxX/sp;O U sSCu3 a@e2nS*QCXm"eF P tڙg[pg@aB(YO#ąbwhoTm.NK5m›X܅3ؙT%f (zߵMh9PG>oYcBC3Eڹ} `g jF^A MaЛ~gLIns?3yKy~g $PPHELK$Ag߱w1ce2 `X< -?@K[צiik $qmJ@o^]X.g!pfDBE:[?m5:OtcH;lo T7HvT7TzD rҵP>%j޻GȔ{S;C_ƒrwn9Q#+\bAZ] +%MNDѕW22o{TpRh}.1M <LJ? s\ \Suz8X`@UP*{ݸd**P!Gh\lmG~f{ z0tbk i-]ҡ] $8+ʃ3 ZAI woHvE>x3$~7_e"O~ '% I7puxOA;n>$5?>NpbuӽofDxhAbG2nm\7݅ mE!;Gt枭+U}J7g9-kПn6FQRXmoH֭Wպ_%T\O Iz,iGvV%$F~;Jaf,utO8*L:T}=Fw"H/mrQzIOrѓ4uu6.0R&Fܟh΃VDQ{/Xr!<b6rٓq9,@@%P{JW7=%v'"]fa OAMf 3חOM\ poޥB kT ?#+@zܒUL :g4lj,CP}\:DMYb1̿$\)†Z`Y& a01 rΘdm:zDIߘG{!S|$3`*2' >ϪX+ww ȞRG&sG<,}nvh2*2W+2~Dc Ż>n[Du`S@0Aa6 sߕ ^q[n|6Y*Hqh?jW~O Դ7C Gmao!Kh/q1 *?8JԻ_J\ Up(!Kh/t8EWE!pu5w GIpFVfD~ tm8o?:XT0K#g/;sЙXo(B3e>A&vd 1LEd#Y_<= 2጖a0>`]A!&mw\aI=atBhe GatBhe : "S}.Ǩ .MwWVʰl$cZZRI[ͅ#PV/rA%}Q^xo31dڴ5lVpHom.;iS ͥ~8C&_Fu_F kZHVwzYMJs# ̸^19>?>!`\Ғ\ 0 GW!b{qv 2eGwmMbelԑe1DB/LrAf{)֍YbBTkÆܜ{sbݭ^^dX(gO&Ԅվi,;N'lAKT6zkG};+ʞ#H"H_L.?mhc2(&ʜ `'i*nŦmܚx^F@ xϰݤ)K|"Vb74#f HWkhC$^xwZ^TLQܧllz?΍cԕ0 >@b:?J_K!lwr-<3[Ta_: hljOw[Wc;JBFs[c@tG $߄Hm64>*tpF"+ൌ|W}7/ls"3AIϑU84{GD. Ѹ[)KX `p@ݿ|@VD~Ň1bchZC1vj]X儢%rKz~sgf&njhˑrv`HVV߷-z++odz++,O-Cp5? tQc"pa)@ s1ccːo<&b9{aǷ*='re :i{ub_ *bP^i3)h O9K&дYF7dTHfAz!7SM #T[%uE~AEbKXӴ5go^|'j*2[ߙ{)3l:SC)&@P!l7NPcgDC-{rٴ&F79/:Yĭ>Th0#ðoUur~<>l#h,G̴{icUh{п'2*Pєy_6qWbMR6]~禫7+%rw:,ܯ3:,ܯ vWuӆUpYW0GD ØxMediaConch/Project/Mac/Make_MC_dmg.sh0000644000000000000000000001252614640052500016275 0ustar rootroot#!/bin/sh if test -d ~/Qt/5.3/clang_64/bin; then PATH=$PATH:~/Qt/5.3/clang_64/bin fi if [ $# != 2 ]; then echo echo "Usage: Make_MC_dmg.sh kind version" echo exit 1 fi KIND="$1" VERSION="$2" if [ "$KIND" = "CLI" ] || [ "$KIND" = "cli" ]; then KIND="CLI" elif [ "$KIND" = "Server" ] || [ "$KIND" = "server" ]; then KIND="Server" elif [ "$KIND" = "GUI" ] || [ "$KIND" = "gui" ]; then KIND="GUI" else echo echo "KIND must be either [CLI | cli] or [Server | server ] or [GUI | gui]" echo exit 1 fi APPNAME="MediaConch" APPNAME_lower=`echo ${APPNAME} |awk '{print tolower($0)}'` KIND_lower=`echo ${KIND} |awk '{print tolower($0)}'` SIGNATURE="MediaArea.net" FILES="tmp-${APPNAME}_${KIND}" TEMPDMG="tmp-${APPNAME}_${KIND}.dmg" FINALDMG="${APPNAME}_${KIND}_${VERSION}_Mac.dmg" WD=`pwd` # Clean up rm -fr "${FILES}-Root" rm -fr "${FILES}" rm -f "${APPNAME}.pkg" rm -f "${TEMPDMG}" rm -f "${FINALDMG}" echo echo ========== Create the package ========== echo mkdir -p "${FILES}/.background" cp ../../License.html "${FILES}" cp Logo_White.icns "${FILES}/.background" if [ "$KIND" = "CLI" ] || [ "$KIND" = "GUI" ]; then cp "../../Release/ReadMe_${KIND}_Mac.txt" "${FILES}/ReadMe.txt" cp "../../History_${KIND}.txt" "${FILES}/History.txt" fi if [ "$KIND" = "CLI" ]; then cd ../GNU/CLI if test -e ".libs/${APPNAME_lower}"; then mv -f ".libs/${APPNAME_lower}" . fi if ! test -x "${APPNAME_lower}"; then echo echo "${APPNAME_lower} can’t be found, or this file isn’t a executable." echo exit 1 fi strip -u -r "${APPNAME_lower}" cd ../../Mac mkdir -p "${FILES}-Root/usr/local/bin" cp "../GNU/CLI/${APPNAME_lower}" "${FILES}-Root/usr/local/bin" codesign --deep --options=runtime --force --verbose --sign "Developer ID Application: ${SIGNATURE}" "${FILES}-Root/usr/local/bin/${APPNAME_lower}" pkgbuild --root "${FILES}-Root" --identifier "net.mediaarea.${APPNAME_lower}.mac-${KIND_lower}" --sign "Developer ID Installer: ${SIGNATURE}" --version "${VERSION}" "${FILES}/${APPNAME_lower}.pkg" codesign --deep --options=runtime --force --verbose --sign "Developer ID Application: ${SIGNATURE}" "${FILES}/${APPNAME_lower}.pkg" fi if [ "$KIND" = "Server" ]; then APPNAME_lower="mediaconchd" cd ../GNU/Server if test -e ".libs/${APPNAME_lower}"; then mv -f ".libs/${APPNAME_lower}" . fi if ! test -x "${APPNAME_lower}"; then echo echo "${APPNAME_lower} can’t be found, or this file isn’t an executable." echo exit 1 fi strip -u -r "${APPNAME_lower}" cd ../../Mac mkdir -p "${FILES}-Root/usr/local/bin" cp "../GNU/Server/${APPNAME_lower}" "${FILES}-Root/usr/local/bin" codesign --deep --options=runtime --force --verbose --sign "Developer ID Application: ${SIGNATURE}" "${FILES}-Root/usr/local/bin/${APPNAME_lower}" pkgbuild --root "${FILES}-Root" --identifier "net.mediaarea.${APPNAME_lower}.mac-${KIND_lower}" --sign "Developer ID Installer: ${SIGNATURE}" --version "${VERSION}" "${FILES}/${APPNAME_lower}.pkg" codesign --deep --options=runtime --force --verbose --sign "Developer ID Application: ${SIGNATURE}" "${FILES}/${APPNAME_lower}.pkg" fi if [ "$KIND" = "GUI" ]; then strip -u -r "../Qt/${APPNAME}.app/Contents/MacOS/${APPNAME}" cp -r "../Qt/${APPNAME}.app" "${FILES}/" sed -i '' -e "s/VERSION/${VERSION}/g" "${FILES}/${APPNAME}.app/Contents/Info.plist" macdeployqt "${FILES}/${APPNAME}.app" echo echo echo Signing the application... echo codesign --options=runtime --force --verbose --entitlements QtWebEngineProcess-ns.entitlements --sign "Developer ID Application: ${SIGNATURE}" "${FILES}/${APPNAME}.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess" codesign --deep --options=runtime --force --verbose --preserve-metadata=identifier,entitlements --sign "Developer ID Application: ${SIGNATURE}" "${FILES}/${APPNAME}.app" echo echo echo Verifying the signature... echo codesign --verify --deep --verbose=1 "${FILES}/${APPNAME}.app/Contents/MacOS/${APPNAME}" echo echo fi echo echo ========== Create the disk image ========== echo # Check if an old image isn't already attached DEVICE=$(hdiutil info |grep -B 1 "/Volumes/${APPNAME}" |egrep '^/dev/' | sed 1q | awk '{print $1}') test -e "$DEVICE" && hdiutil detach -force "${DEVICE}" hdiutil create "${TEMPDMG}" -ov -fs HFS+ -format UDRW -volname "${APPNAME}" -srcfolder "${FILES}" DEVICE=$(hdiutil attach -readwrite -noverify "${TEMPDMG}" | egrep '^/dev/' | sed 1q | awk '{print $1}') sleep 2 cd "/Volumes/${APPNAME}" if [ "$KIND" = "GUI" ]; then ln -s /Applications fi test -e .DS_Store && rm -fr .DS_Store cd - >/dev/null if [ "$KIND" = "CLI" ] || [ "$KIND" = "GUI" ]; then . Osascript_${KIND}.sh osascript_Function fi hdiutil detach "${DEVICE}" sleep 2 echo echo ========== Convert to compressed image ========== echo hdiutil convert "${TEMPDMG}" -format UDBZ -o "${FINALDMG}" # Useless since the dmg will transit on no HFS+ partition (at least # on the linux server) codesign --deep --options=runtime --force --verbose --sign "Developer ID Application: ${SIGNATURE}" "${FINALDMG}" unset -v APPNAME APPNAME_lower KIND KIND_lower VERSION SIGNATURE unset -v FILES TEMPDMG FINALDMG WD FRAMEWORK DEVICE TMP MediaConch/Project/Mac/Make_MC_xcarchive.sh0000644000000000000000000000767314640052500017511 0ustar rootrootAPPNAME=$1 VERSION=$2 BUNDLEID=$3 TEAMID=$4 SIGNATURE="MediaArea.net" DATE=$(date -u +'%s') cp -r ../Qt/$APPNAME.app . || exit 1 macdeployqt $APPNAME.app -no-strip -appstore-compliant rm -rf $APPNAME.app/Contents/PlugIns/sqldrivers/{libqsqlmysql.dylib,libqsqlodbc.dylib,libqsqlpsql.dylib} dsymutil $APPNAME.app/Contents/MacOS/$APPNAME -o $APPNAME.app.dSYM if [ -e $APPNAME.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app ] ; then pushd $APPNAME.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app rm -fr Contents/_CodeSignature rm -f Contents/Info.plist cat > Contents/Info.plist < EOF plutil -replace CFBundleIdentifier -string "$BUNDLEID" Contents/Info.plist plutil -replace LSUIElement -string "1" Contents/Info.plist popd codesign --force --verbose --sign "3rd Party Mac Developer Application: $SIGNATURE" $APPNAME.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess codesign --deep --force --verbose --sign "3rd Party Mac Developer Application: $SIGNATURE" --identifier "$BUNDLEID" --entitlements QtWebEngineProcess.entitlements $APPNAME.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app fi for FRAMEWORK in $(ls $APPNAME.app/Contents/Frameworks | grep framework | sed 's/\.framework//') ; do pushd $APPNAME.app/Contents/Frameworks/$FRAMEWORK.framework rm -fr _CodeSignature rm -fr Versions/5/_CodeSignature plutil -replace CFBundleIdentifier -string "$BUNDLEID" Resources/Info.plist popd codesign --force --verbose --sign "3rd Party Mac Developer Application: $SIGNATURE" -i $BUNDLEID $APPNAME.app/Contents/Frameworks/$FRAMEWORK.framework/Versions/5/$FRAMEWORK done find $APPNAME.app/Contents/PlugIns -name "*.dylib" -exec codesign --force --verbose --sign "3rd Party Mac Developer Application: $SIGNATURE" -i $BUNDLEID '{}' \; plutil -replace com\\.apple\\.security\\.application-groups -xml "$TEAMID.net.mediaarea.mc-group" $APPNAME.entitlements codesign --force --verbose --sign "3rd Party Mac Developer Application: $SIGNATURE" --entitlements $APPNAME.entitlements $APPNAME.app productbuild --component $APPNAME.app /Applications --sign "3rd Party Mac Developer Installer: $SIGNATURE" $APPNAME-$VERSION.pkg rm -fr $APPNAME.xcarchive mkdir -p $APPNAME.xcarchive{/Products/Applications,/dSYMs} mv $APPNAME.app.dSYM $APPNAME.xcarchive/dSYMs mv $APPNAME.app $APPNAME.xcarchive/Products/Applications cat > $APPNAME.xcarchive/Info.plist < ApplicationProperties ApplicationPath Applications/$APPNAME.app CFBundleIdentifier $BUNDLEID CFBundleShortVersionString $VERSION CFBundleVersion $VERSION IconPaths Applications/$APPNAME.app/Contents/Resources/$APPNAME.icns SigningIdentity 3rd Party Mac Developer Application: $SIGNATURE ($TEAMID) ArchiveVersion 2 CreationDate $(date -u -j -f '%s' +'%Y-%m-%dT%H:%M:%SZ' $DATE) Name $APPNAME SchemeName $APPNAME EOF mkdir -p $HOME/Library/Developer/Xcode/Archives/$(date -u -j -f '%s' +'%Y-%m-%d' $DATE) cp -a $APPNAME.xcarchive $HOME/Library/Developer/Xcode/Archives/$(date -u -j -f '%s' +'%Y-%m-%d' $DATE)/"$APPNAME $(date -u -j -f '%s' +'%d-%m-%Y %H.%M' $DATE).xcarchive" MediaConch/Project/Mac/MediaConch.entitlements0000644000000000000000000000055614640052500020305 0ustar rootroot com.apple.security.app-sandbox com.apple.security.files.user-selected.read-write com.apple.security.network.client MediaConch/Project/Mac/MediaConch.icns0000644000000000000000000045462414640052500016537 0ustar rootrooticnsYis324IP IDEIIJE^IJIJD mC99MJIKA >7JIM L!;?>IL 1'>;LL !E;NL 7E:ND %<7Q N-&##$9#$h^<;99H$6349:9:/$ `/:9:$ .:9.$ F69$ . :#$  ;,$ 4 =X$  N._"$#$$ ݩ.>#%$ )D$s8mk  gnIZ  oO* w4 S Tg .w QOxq4|v5g$FJIog -0y!il32IcٌIIIMIHIHf HGHIJEHFHHIH>>?@?>NIG>AGI>=>@GI2>>BC;6<=>3KI(0=>BHIYڈ 4 )<>=IVڈk: 0=>>$JId# 9>>CHI*P  ^>>IHI2I>>9JIIJ B' D>>?FIIO?>?GIIB= @>>>?EIIH2mpM+^b,  LQ]dVSRSLeNMMLOlLKLcLKRSHAIKLՁ":KLPzr2 ? /JLEx1 j8 9KLL€##c! ELLO wLL1[LLɼ  A% TLL5׼ 1LLMX dMLY# OLM=뼼Y?LLSf$$96O'$9.h/*&$9,$9,$!$9K1&$9<99;:9B5$ DJG94b?I25F: m!w%v.joa_2xؕnr nQ8r>$P\3 $W#ih32IG(IIKDIH@IS=IG6IH4IIJaIC:63BOKJIK>>?D>?DDI>DJIK>EIp>EIL>EIJ>E &1%$>5LI=A!.?>CIՏ 3?>GIӏ  *?>?IJ ͠$>BIM  NOE@>CI`ACD>CIQn2>DIKj=>=AIU$>AIK >CIK>HI>HI>BI>I'kjKkk{;o) 1 tȺ)JJUMLNU LHņ+LQLOLIfp! " Lh) L{ LLI$LwLJ$$$$9:D%$9810(..$9:0("$9:/#$98;"%$9;"1$9<$9=19:?$ .=9%$ure;9$h09&$&$d494$d9$聅f9$AVvWX9&$C lr9'$  N69'$   d9&$  {' ꂨ9%$ ͞  O{98$  KN  u96$ >@ s9,$ Mm p9%$ g 97$   59%$   y9$$  G9#$ ?9%$$ ~9$ 9$h8mk $j|Z.LߠS&8@U}X(6:~ R|~  ֒vaY^r*!y yg 9 2RdeT3 86 >+0u $@2rhtEjz\ 7Xgjg NlUo\d4wqJ^3mB;6D>\u]aTXQ'n0f3 1* "p?*-Lg^2}urj3QDc]޷G*`hD  .it32IIIIJJIIJIIIIIIIIIIIIIIJKIIIII>I>>I>=>I>I>DB>I>I>I>I>I>IIHI>I>>I>==>I>??>>I>>I>>I>>I>=>I>HI>I>I>IJJH>I>IJ>=>I>I D^Y; >I HQ>=>I9W>I ,- >I)! >Igt] '>I  >I  ' >I >I< >IYj>I..>I 9|}L >Io>Io>I 4mnB >I >@>I >I>I;I>I?>I>I>I>I>I>JLJII !!!")ξ  LLLMKKLLL LLL;FLLL LQLKMLLONLLMKKLLLLLLLLML(LLLLLLKKMLMLL B\X9 L GPL8ULM +, L ' L  fs\ % L  L  % L LM; LWiL ,,ML8{|JLnLmL 2lmA L LJLJLL!L!LL LMLLL$$$$$$$%$%%$$&%$$$)$$$$$%$$9$99$&$9$9$9$9$9$9::989$9$9$9$9$9$9$99$9$8799$99$9$9$9$9$9$9$9:$9$9$9$Q$99:9$9:$%$9$,$9$9$9$9$ 9$ 9$ 9$ 9$ 9$##$$  9$ 9$ 9$  9$    9$  @[W8  9$ FO 9#$ 6S 9$ ** 9$  %  9$  erZ $  9$   9$  # 9$   9$ 9 8B>9$ Vh 9$  ** 9$ 6z{I 9$ m 9$ m 9$ 0kl? 9$  9$  9$ 99$ 9$$!"$ 9$$ 9#$$ 9$ 9$ 9$ :<:9$ 9#$t8mk@   8Utͺd@NԤg+5oՕNM^ JWs4WYRnip [ 2BPUUPC4%I3"[յ[+ tڞUz84CQw'_:~V/*&+0COr>UoVa|'dx6[fȩsaTICDJUbx7 MU䴁P( K*a:e? #n 43 !)?(oU;z6w "P~ʫS!LaXC̄11&!S%!=$dT{2j)'NG{&6N¤{omrfq6O%"V!F\T Wf'J F\&}nAL(o 0@}Moy\0%_ cۍ(g]E:[JcP~!])9{ i3j &{YB^Ody';5i W^a+BZds&V#y/Y(l"wn,alM+a=?) GmW-]!_oEj.fVın0vA={mv|6S,l,-f&`ܬs9 LX" `-&_F$ORAK;b2[|qF:H SQ·sMuIG6ZlncG%)I.ic08 jP ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cOQ2d#Creator: JasPer Version 1.900.1R \@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP]@@HHPHHPHHPHHPHHP ߂@P]<!cbsϫ97z)lHʜq fgڑ%&2&]BYsqoզ3Y/߂0P-(@R+qs{ LB(#‹%| {j~|\AVf,߂P,]6ee{ %M+I!;gS/rGǗm0.Loo߂PPob*9,|̓B>P\$*f)8\tHڿO:9 oګQ~'!aUIGF\Ϋ{)_ˇy^,r7zH̃QfwN#k^&<ޓ\Ϳߚ DW tZ%8.!0[kժБ͝crnV8= 0;gKĔ~I( m=<3쇜r<bUK&x`j 2p@e)l!uquܺ'S_YO;,힨2| #YihA v ̻ t¡A?:la4,weF"&xށ ]\I&=&M_pRSR ɉ%pwg_J !jz%ͰƠo63=xs.Vf%OI,]0 -{"Z*ߣ)##3V4IHXь`J؛#Zk'Ŭe8GLYlmu1G= fJ:v>w 2+FtnީR 0F? zN| V5Ox`Fyw}8zA&@aljF.5ؼmUdO:;䚁nLVTL7ȳ3V99UP]|:L1͘'n%deqG5|NvMli-v\ b hS`2V}+M1&j§7aUwQҚgJĭVފX>}Zf‘ KʁpFj{JD̙Zavk4gSRu㯁&XХgH9uWe\eCt`K p;ي hP<]af +潊5V:!lkN"&rUu:D&=4I.nOzK#_~ku;^h)hKp=Fޡ,G? sԳ`y3V{?…Ⱥ_mRr[1RJ?B|7f [}[XwsDdUyIM^3L1ƊR^65Y 5_Im^2P0ܬ._AR::0 rϥ'$*$dAM'׊Un t4ӹ%-0ك:4eTcϕsߝe~ulp񽆝6XY_=+JFv򯢙fs:c4=v.3O(ΤMADu3Bxj`{ϳeF N&7}bdwr FRw5c34SD w"1F_۽f|oxk]pZT~,B+VeP3V\D+mϑҁrd[f#PڠMO;/j~ml}mo+cu[061trV# 5 =.ב/W:zI;,?Gl|">r;kuhɂ^Q!˅"bBSw33ŏ):}5DP8>QR{Y t)@(>\t A,R/wJTUTj--I4T $u&|rjtG5P.7a)3F85.'&ϖ.l&+! LAv?J'Ӗh~]4{٫&9X+Ԋqy{D-o଍ džBw@Dyk G\lیȠ7='qmi #UK;@0ʨ$4Qܵ 5`HȾ-kP'+; Ҏ# Gnz*^\˄?%tC \=B voMI--\x;tUۨWuI&tq-T3R.ŅzµGungDwwvs*rV%R`$˿X+ETF`=*kˆfa`g{ܱr3=}6)XEyĶlTXCf",A;5?+AҘDnL`4R|5xAn߇SY*2<2Yy5 ;P:މh1yh!ݕƄ䁀`u.MsiCGRHqd$FmpF(y0f+v|q.1=w]j1|hǪƾ>q=ar[1VHUŖe !SnCS*G޲%!*=kfk/ٳ֢-p(cdWlduߞ\#|m`}&6(j%wtNv6"qD xG1sA z()sѥlV9w9l֩CY 0]%ezbFMݽB+:UgUV7T!u";;vTqfpZs:K'g2j39[hn`Z[k&N)3ֳC`@VM h?Y MGMϓ9duNFYKsMvw`_7=2' "nQG ps,yPW`W8G CEDŽ=2OBbד ֊He#^JmzW#׾xD(OsVzY灺Փ`2Z`nksQ.Aj1QltQA5/)lH_zy2,[F5PT6H᱄bծKkص?υ}ij~I5LV_&S5Â(=^N&>KG^7|,C"۱{"gV :AV:5ęzX;#qhVLtMқ#1mO?x4X+Sc$M[-ڌD[[kHB`ZwSțko5z(t?HaW&Z:I_qkOo"VW!o,ƌ$숌L!'? kݭZTh*$Mc^nշ'V4@7ci/ipQ]x^x/1/Es(ACèC~:83zXQ:= # dp^T0-D,2*i( 6&Ĺ2}yx]WT7-Sݝg>l# "MRƻ?ߞOX|oV%ʭ`*pSc(K |FYehr;D~)Q @(?5KI(uЋWr#GσVSS"(iqt8֌Lx[wˍ#O{~yJ,jﷰ5LF /@pXG:_dM Zfj\ȵYv5^]~7_.1@҉I{;3K:^<כ ǥ9iژ^4eɀf/MRΧ]!=6}M.T(|U*R4. ̷g8ׁ&S9WMpIjb1D9A9ڽ WɈstusOrkYMERw?(gueLN90́R#l+O`AoRoUK-.pҢtƦga%O C%jvo-u.Y  Su-5+\9)CwiH$WZ+6.(3u{"wUKJ |6.kSB*])j4]ĜWuH~/wH9tD7w" :\;+tff/tr"Vߥk$`%}SjF Aο:[| ux"m} <*6yr;lSKs~zLEW%Tg}mnl ][ͮ;㞍0ND0ǺEi2[V:of܁OwK(P7̟4ϱAy8|*:2f`UCPu9C oszOv0fSB*Mn nɴiUA(לG kFk:7PbƆf=2 jGzSC ;gUyO#^+EM mQ}˂J 0AUvl"}lZ\C$깊=V]j[.L#oqR?6rf(:AK|dPN2rZr,KkYjt!b:0c[sDg'k*) &.s-롔 f LQ-O\?!NA\"r=zauiiw{bɱ@Wt?|3SA5D:,SHnLdr@XK"zN˭#G_ qw\ Zb"*+>)݄@Le3@fS,zwϿg kX| $-Dl zAՂ⣏!.@Хv ȣxûywx`S$ugN!}>()9);0̨f^l1ag6ph/q×ikZ俯n5?1Mo#eOm9V!%b.L ASЪFq[Ksr/8M3KمOչ8 8B 182 iV?77,VU];!Ae7л/tWw k೒5G>rZ0XP2˦pku xK:Dw B\\{xe][!\#݅3 2_퉷F>4D;̒_7;Mzi4_d5dJVXN mrOM: h?ei9cXf_C$F#;ZçO;{SI0ٗ5L.`L芫ӽ[,Uk'WxhC!xh+{xZ ˱8M.PmYqJf:ƒ.(FO14&u~^E,Mp܈h?Hr4"ףEheQBxbp7mЖ`65N@%JTDo9Y_s u8fS 2q5X]:%QKMa]7)&G%{l)2hm7|h@Hܼ^^|suyȳ[p*C퀎t {u~8n+ЉF=p*XDN&MZǹX"_6yLհ>Г~vqޘDtv=It/<0wY-uLU(J%niDjkZFrv{mϊsy!8$PFqLfשּׁ\7]=[64C~^3?:W,(:t<˫//`tY5]Ct55("= /`=#?D?N/ _#4U]y(\׾cڎoB>Ƴ SZ41R1uKbv i_ٗ,ݲD٥nP)J$vTpojZ.~LQSp֋nxl&r04Ho`}IT~_ު"拵{~sد#=Ip_Ft 0w"/rX2'$?0~3~XK,nP]*fu =q@sDB8ok!و vښn7{>ۑ|p]bnχ: H1J@f`n:Ypv(cjP_YIRσt3s3zޮ$<01W2*j ȳlG뿭?/&EZ ]Z'9 |H5YgCvCLx 77WY}>{nN9v[9ʶQCACba9)k)19]l{7U@<5d(am*A:B) E'#[&ӸpO(F+L0 @B睱;)vM UIy"xi|ZzYnr_!qr:2::-֒u,vy?]^VwasrgRSr"SY.W"H0 @WZ̦/iU Ƃ5vX ӲІ, ]] _툃iRܨ+ )*--`*8o>W* a YJ= ug+]#{,`EϽK {d ͅ*b6=})-4p.Nt+>pV\|$Pr mt]>C9AR.r>i$U GSw+#"tYU},fHE1u[sw%0as+A<*dMo䚻Ex^h.יgTQMA|4fdY!YN6s(b^Se#̬d1 h0+82e1}3"Y|U ]m^kD%Wq?IDzGhbSN|"41XߕddudA?Zd{dEbrՌ^V^vW⏍72zl6:y[Eċ |I,EֿE7 'I˘*w'z8wM-4|lI6C4g6\T -;"q q|;{ΠbS .)#'PS{{MdҟǛQM\4_=Q5y#X \1p H*$1FIUό c*լ-LQa2| Iy’{mfV+҇S^hxe@$`lvŸ>3ǰq :;0_t5yP96,|Q;A{NBEx:0Y 8ۘvCνSr}K'J7dQNK1D$W)AASC,m020Gӎot7ǀ<tyАGz sO{\.j8s7u4J9=OVcO=uJΦ_+Itr 0 Eߺ~ýGթ6&#y"KSZxChI2#"v=~}8_>L|(Es8˯;%As~K&)IoJQKHM#tGWZ@RQ RӶJ `a($W6WXDCۄgv;-+NGKT wGv&\QGq~0;8^]Nu%+ô v}i4pc2(oNc,}&ɊL~2sJKOܤnפn% g ##ޕJ4S/w)OrEWU%H0ZgBggf 9?Zlov{M(Ͼ.j12۾\(v Z#LYU =8?;B;wi(:F5ш}mW&*Id1Z}G]A#D&٤ k1&Ϯ̴E\f$;vIhYѱGk#2(EQ-'V~UDDU%ff$1 ]#Pklw M5%b+ҢhuWۻqO-7#jXƞOR& 'g3yڛS`V)MkѪp)$<=^QuZqvF\W*Ǵ$/'*j1 c=4AlgbHdz^ǁD_];g`=*b 5E~ Wu %<|~ H4PMl c"rVBCEvnL$09sVV״_@P;cfwjud w~M@ϸU:"F3`^7Fv-OL7. nQS)"C6q'6[|]JkX#Di)* <0u㳃I\ wߍ/Ӗ=Cufqm޶4 ,lvbNJRq|PH@3oV/"1L%eۉr$|\$V_\5cx.|)O9|r7TO9uUvfo*0zChKmJ {E5D<_$n 2%?F3[^Uxj {s]Ll6ڍ:Ϡ #Ad[@8kL`;j PQsz3 (]R3WEk4m#7:%޶@ E[ROl$y ^;X}ʞ~i'#C]Ex Tg1?f5 8v|Qh:! /NLUYWGN#{B]KR4ѵ l "7gڷuT/yn3Q >o 4܆4׾dƬ?,;]®?1?= IQ`;?mh /|o3ye}+؈W8xF&&ۢ' rU 5 wIZ]ܻ͸ZTqJ i*ulMkV D C5A{I~3")F hn8ߦ8ӽ11#@:_:;i^}5,xc/r\ҨP}K/Z< ,jZE "d|%H2h=]JAX4;/5qֵ0gZPN/^[)Gq2U&b.FbF{/:}Ly˙Bcdk/.$` KHX+@,bi|Kї&^OX]ڛCNT8>i]AJIDOp#w8A>E.0ϴ{ʃ]fLHA힝KB+{*cz}{nƎ^A.Pً; LGw\ڗ}DXx'eƶbDTZ)U#YIj&tA{q]\AF0 `V`lgfSZjNBOJIOM& 9IAµX&wH65.kik!7G u$L Rmîz7D^y4V5pOi:Гߟv?D(1ygyizf&NEhAKl2t*"[,{Xw~D Maf j:lQ.n^uwJ2DoAIyCOmQ 8%@B7T8G:/膟{9 //-fx /45ê3Q=j ?j Ϙ\D= T.̴'6Hy+۾ zie5DIE=|~m8c爺vԩdC&{v>QFUt'0M'}5 w`9&i!o+JߟS _:fmV81.UK`uDjwz*UFLZeSZ@/ ,kirW> :*/u_AC{V2\.^bM*jTKJk>.h+&TG#ApBbX+YZ_d.l\=:*sWzfqc=fEcg:A"kGJN1rBL]'٣f,{$J?Yy:8QBj?NVE}u`9q>'AxS6)1݌$!2 'v h5+*5m'U_Uյ4)|%s\0'E+bWjQb )76 \U,rt80YY2Xc~& X[3i%%T$4c+1ROD^U_$.XϺ}l< +/jukMܰBC2K(T ±(F? ~ʛ6>-ՀNcIT !,ľ؁FDaqqFR" P wNZ q!Tnjؾg8:-.աߛBk#~9!Lj6h 7_cC )]'g+?8A*D.qծ Vw{o )f܀RUIDZy<ӺDO`rfƃ~f`eBmI4mX%CyUWQ$z_ a`j5elH AL=+C|l H/|+tdς#"Ҕ\({xucYralVҟѴ8I xK  dw{nv^SwcsMe-i|PhL0W< 4#QJOhAavR!5DؓOG]BhC#qH 4!osN9 {5&y$(lcgz+qPBÖ́ߥbyp ;D(Y ppX&_}^V֮YƻoRˣ B#+N`ÞdPuz v6#d93u8y~g;IOk!ʋZi d3cx@CY#5n8ySܸ$zIgY^'kt_̤3S þ/5+a,KcH};s#OPML6 ; Uc?:+" ZUdxPyA(Y_TUs1 1c2.f*%*;Cr8۱B֫袗qPXCzi-VK>593}^ɯ;hl];R^?lF[FfC1JB}&Ld |joHN 4=;1\8Z,г=o5=<渖_ i}l۰ijVQ ob]ρ*s dBc6!Ex!9 /ZĨe 1)_szMM冺Q )*['x{|h_s% |cybx8on$rP';87:SĒZ8X=k4+_ ?(1RS(u)2J &r4n#so`  \ g>6ʕcc'o~ƣ.L!|ΐACbeD%'e6b)֚HIy~X E-WIT!1a^C`VsLAk7q:%`3%ﱴm~˴F0ݖڃ&Y `8V|ijAm-wl5'2岄Gx*Pd 0)t%|BBݜ$Mm $,D)vV5;`J-"º]:6dTu5o{js]ow=%e<3к8Z̃}c|]k>ؓQ'>Rf 00[?tubW4Nߌ6T>vJmDxO3Tž>8+ZoT vp[v~$>Zh0@) {hDCJ,ԘY"g词3 de~6)ۏ9,%IUPts8(WTp}X~th1{Q>};Gpo#3d8`(@ULu%ɝ"(׉:Rp:&gF]{'0M )W[_G Kb"Ro6GIv:8r?fmlH}CQ )kDA*Jjg,n(?< a,|l6)K4T\\薌$1:6ȞQgNT;iD:1B h!sRL^ /\QCļ؉ZzU/Hiզo?> K_ҰVO+EnZat hV7EvpTr \|NR5sHKY7}M0OY]dIbܯ3Hx_e'>J-Jan6K?vՅj>H m|GKg_v0sʿ0I ܩΓ *Ur(r45عדXuu2Ԡkl=Y$z>NݿM3H[#o;i C#v=̶\h ; Ub;+qƥ! dC215-N7Qyn՞Hϸw"g쯊聚?0rdIP܇*P[k$$͢Vamqu5E3%ԩ!B@%q\YKu >ɚ@/3>i:;^-9a{^%w/`7GJ$3}q?DrFV\2 r~R}SN8 r2 $َG8vj,F>M2azM"ރba?.j?{s<8aQ>f\k7H,xめZ},2 IaV\ Y3g(ѵ&nYN_+cW17:[tO ~tB9b \w,#G'ec=n $#fҲm+I 6_,KLUk-ʭyX "|//k۹> ]}:ɆJ϶2pgH7 C W-_e|=/^\lkMvClyK%v8mwdy&FoQ4X@Y )Z oXjJIF]!"ƙ&ET.ߖqľvA.j8 غse-i>•B!w23r܄Vﯢmi|&KԫoCy: ޒ/J6]a/'S; XplAr Om(elǓל 5GʬY B mm˘DDZ]ڷ}X?:;.> cSyCF[sQ$ ڧ 4=i\VN=Tk$V /<<3߽s bT#L3}NR9LuҩpkDDXq'gim791)l|X_v#Saw?iXË!˴`[U{W$:E8w3ZR.YZYm@?%]V5P1,"A )UG`gVR|'͋拒f֧g0WEg< !d(o>)"=px ^}f0g0dH?U3'o@u Ȣj73~~ˡ$t0B$@NKp UyĦ;{Md!Ӑ-Ujuz93t.O㉆,#q_}8𧜓c}պI.i}2`J]&*P:kEB)_&Фt \ j]$t*WҢ9{jJvF[C&'sÜt rgfkG O/8tFciW-ǚǯsX`!f)JP-SxLɌLsOǑ)gڳIq$&x,d Jl7"ɖe!Y Z9ڥ". !FLF68saQ%GMe*mTb: ғUV[)Ş$Fr:m6LeFBϵ89| JeAH.[qSǛV-~tu"IXabV}(;:qDvzh!i:erQCٟ@jCYe*m֡\CQr4l4iZ{3Pn+f^y ET+\؃e10p&Qr*c#]"`N=}5λQ1l(g|H4j? 2r{x5+i3IS4.G Fd cZԠԗxDd'Mw9oIZK Zmq,ɜͼ_ v-9ȩ.eV t]{u6ȯ ˶c$ΧA$\,kS\YE GRx'38=;(_ֱCŵ`nIlը ?*@ccAZc~a1p@:npR81I9yxDmӈ ^NYUc$t2Ӯ&Nʽ`|: 6Comd=N5ML!E=ϊ8"̳O?prcDc+t=Ms2CBydxqSs!lq%RO1O!=dRgD'[wls @W> =]Lt>Wps%㭂e=ba(5ӗoV{ Ii䘠UQ%=}nrْSsEÈ&Pԓ&I y.-SZ8M/z@֠1XߖSETbTF!W3VҘKY[c=ڰ9GYxGƷy)8 o O=r6YXyݍDVB3.o]* 1|W[K]}HMQi߶MbBD;cas a>*C-M6S.3D }>5BPsYI"1ݒ.2l+8)CD3$ *f0 %0N%fz<&<e'ItXW]Tʜ#[7Ė>e"(*5؇JA+ء+d"V<_|j'p,}Yhfk^F&_kE˞s>6 w|XHA5#_nRܭwзӕ֚/ߗS 25 d:g-8{Raf Dđ&8- .joWW֦ )_Ӯ33mFs uQPBLI8!R9,PֿŤ0fu2tu+raT g"h6w,*QiU!"|N @EkͫjZr|r9dN`Y? cQų&97Dl"Πy&|JNh`/@sLtTh]-W3EjZ7Ȫ,ĻK)Ǡ#a[G+,m1Jē=#}1LA;RDPPwue85Ey*W+lRHd?hc|l%xфst*Ikm= $!gӽتڸ0( M"Jbo?:jwFe l@',.(dW/랛Xbt0`_";YO+E 8|QkwnWHKlG·p{]aeLM5;J%g ȾpZ!XSG#+̔u&t:b\h_(w-׆1>~I"dCȬ? ~8gVi&yRvzNZik 罴v)%A=4ll8jMBnem'w0fՊi!PA/"i?p5 2x؆O~Ϳ=M:C,JF6(:_vK43{}#(^#0D[ŗ'p*k<*0m^5IՅ`rH`=LQ/1X*. }MmV4m5OoVۋ_jJ>:Ķm`P]x"#df,'a!?/j ZB ?\*\g=ҭf\%iEw)K~雽z7ǀgJW9}v~j>Ȉ~m1O:-BJ`g~k/ 1Pzʬ=ӻxT5 (!dd9R"@Z@,И"~](XbxC-NW9rl+Yi+K.HpcF?jlB[#o<0F4W/m8F"n]' , yQU'~)c*j(ͣl|Z>^%MqDG"[ 7(PN<  /XV=2Z> Zؿ! T*_Yϝ>3W+-Q9NfN{O2ύC R?6} >!;8NJٻ%ޥbLiѢGa\x\(]4d^εP#Mow[(on,L-ؼT/kt%'@=yS$k4cȇC酣_\' n U`>oyV+yI2' ?2 6BUQsqhJ/hC^ܲCüg\V$ Cs).qr#y6fLVYM |4Ŝ"ޘAR6*K pnҊy蝠u˥Sz-qQ\M~2:D2 KqZb7)ٔE5ӌ+ /WssnM#MgpG`[">$2@# 73hӬEWOs 3%V=:: x>|n{d{L?5V#9)Y:ꭚPUW+a)p+Nn WKSw⪚w2)>ȅ,",\dHbFY5qqİ+#j.[ñU(ļ_>x"CT HXT_qݱJuNɅ 3 ݟwC EJ/\$0z!Zd*w?oKբ97o[}Z!﷠] }>Md4 EMy Se!]^M8!]NϙcBK 羵7OzFT`γAڥP?ռiEfs}Gφ1hȇ?P,P2fͪ`b٥rnVURd7&f;(?=$b_k`l<얛TUXY"49n@RQszy 8V?d_y}9^4H*S/yUWCU Ƣh{Rrp,ljv0p}vUBgq*? <4t,ٰu$Yf:O$a?GT:I|݀{nq3r&Q5EV"6 !&&Z`d8G#pD.WG)Lg%u?.DB6`n@80_ \S-'/߽tvV&֐AtNV!N{ve!WlfWxe?e499(Qrr%+7(ASAeI_ ڪ]2$~@'g>59Wgr#LA,G$T>,e3L@^?5ʢmuq8W-z :Yn<={T#q ߝa7i7d4XP5.B֡\Jb`%b|؁]1YK{%2K(@ &_z*g?p9(Iz <oհG9G O^utoec)>q:1Kkc~ ~ଁ3_Pg]hK%&BQA@WMX=(7sMn%$ zۻ"egYohjmz;r.tѠScČ7JpVe}S^e- nT'o_t7'.$ɁgbjwZ/.0?o]#Dy)e)מszeƳВO켸7Lіmrꠜ߮Y k[I7$;vkިmpf1 )F(jSsh8yٰé ?ڷ%.cb󑪊H3/0)u\Bbe.ր4u΂#Bem Ɉ /vP6*崆']u!nwZtO?;ďN{Z.TF1nDpLs҉ˮ 0%KZhOH,vjlp[73XH ;t8pS~XIH)(RGf IE޼'.u: Wzg7gv*QΊG--+ȊDtFm[#" H3vQU84D(|UU: 7nCmǃY-p B8IQȱq|c)ڵD 2}| ]9r eκJYÑkԌrZhu͒pwNEԿ/tvH D |b;zKiD*N"Z&^Ȁ' oȃ=\үdK}"9KʃQ~zKg&c|6]{|boF`f~dҨ ڥa$V#`U j]rXQľ_`)j~W?q+B>)}t! t6|*p<ӐSW_=z\r\넞@{=l46DDe$% / H;eA$I\2.<3)4W6)ו-q(Hz+uVfl #h،cBoSݬ;:M,O~e#qLK} M-@cĖUXۺ7}ޚE4ϻt>,8-٩DMl$u|)%@R-aSwg% HQ[L1 J Ҳޣ<|*etz?_ rqlRہȤ>2k"9! SdBB -z<"[g)2݂6ԘkpTݯt C NKmPADͺKa6ӡӫ^FnvLŴlۖz{>@o+Nz𺂀Y)fzY"av*/GT;F+*ۨE`(xb %kX!>:"?6ي+QEHvN;r$xNjF fϭ46rYi)|TJ̲):],^2Dw$eZ&H K^mCT}ͫ?"J.JK>ޱñφ@ Z7}&ՑUjx?C$q&!RYhqK~쿻=1cZM==>$kqҢnR uzFռh,-]gzC|^_ԴB6v;\ˍ9$ y2ؚmS,ZQU! a/0 ڪVM } S=>ʔ/u*"v &XդBz&~5U,ǧ6;؋}r&u&u5MHYs+Q+>ODRV&)}XЍ һ~i{_R4-[ci}26k&7ef쫎헎[ugd:!Z]I m1:2AJ-Eb(xm,F9S\Dӡ^ߨBc5sIbxc&ӷUxLM[o(\/=SZSf;a2|PHtN:n6-36]l |Y \!]pꏿ`vDU>4JʁlmrGeЌ +;2+M`W*oi%ێ<NX1>9ESm`bUڣl -ȵ(7<4R-Ǚ:/>9e))&%$\ zV鳖[{Ѹ 9@vc-k$kҋB Lm%!!`Q듢ϧ"+}A&OEwt A|=~KݵEݦz'3!G>yg;^ + 3P frNŠOcڽzq<oulz/Ր6~jd!EZ5*2.CGu!;wD&Ʀ:؇fzkl\4EJpTT-CUZ3C)/ EȀMPXALxjqumX괼l*#[fL2ߏub其] طUFI8!18͙mtr"7,^I]#Z{F.8UV%xKHb WCm·|7;X8nƄ4B. Cp ݲ^2 1r*/1u|@+6!08dr5;'6n|[T}NE3UJ*Vn`μ&(I1F]Ҧh ɫZN}@ X Q#V D1#mW|rs+R W?WG@ ȠxhyfПW`vD^Xx#scn IS.jޅ}+q9 whm"m|H(}$_З 5_tU4f`e*fޙ@q*;yOD,.2]?vtk@i7ξ*3XwLSP3h'Ƒ?}mme*xmHG;tp_M˾6^\XO'nӺe2U녞? $&qEzpmsIڔ\,Ey!BQoP29&BAۇIҫ?,^ZER/5}~` ;qYfŠOw&є<2+|`C "*Lw6jp72 1Zx̃ri4P4ve qG : "*KQh:?ʊV"\ EZ̧*6#'%p_pH .N꡿FvCg/zTu9,;eymη H3Q??SkFd%gt_U%=断6@ ӌ zDK߿#o,&!`D=kξICnd `&p8-.Sɑ 6߹j^$`'^>_D򬎼zp@3tj?u*o⧬]zG}Z}o?"j6jjc*/f޶*Ud =6\Ǚ/JPg[0&´Fy7Ӑ뀎Ws v!G :Fcg^tqAyMw@oOSÜ4 um ,gA~ep3)I9zh[2MҨ+n l6R4x\QV)(;x{Lͼۧ=˄=Lg>T(swCtݺ'HF)܆pY|sX0pp0͛h%>y׃_ E!slF/GK/fmd,r +}o$))&y-'aF$morv,/[b$ \!_T7)$|>:|W}gHOs.'InAkARL,G"@)F)־4rB !^<[=co}'P[M\)N|^bۊ4fa0hPw$Pu4obUy߳+:ABi$#/ 7I~o3R)?E>Íl =WC!W!RĿ˱ʬiQ7dm+c" |0^*pGd\؍/ O"Zf>P2ß}axTJ xr6w$0VܙZ8p_ z` `'j)-Pd3Rb =AI!{3!Oa/XgKGB*&.U.e0i Hta56_;% z2< N7f)}> CZXt ̘A@R%SHp>zPl=h"·(DžٳC`u?A,x sfx ˃3xj絥i"EFc5wS3=ғ}m@ђƗa`+37&LdInŃFtgUFva<<6 Mc=J4{G1}?Q "1ś Ӌ͉?]q^B}9}/?"h+Q<9A%POw揦1 :'Jna[ b72.1'M_%C4!]kiU>* 8^{g):&,PlӚ)d r/^6^e Sr1-Z7]dn? d# Ƚ>1;5$g>5oz8;h: Tjz>A@ 19![./2R JIP~zgȝijJDҠ[ 7!bpZ98O25pilLO>En??7ߣy~QE^L7 _5Ҭ5y(3i+S@DYD W\WF &7/^ mT6 Y'#N/Ǯw" m(ZY(\FJ{L?YͿ7 rvB0Œ:?D@I7)$3A,Tzla"jh<]$6G$O0S?V: JSLa`YPƣOrM:j(|G?:JfAxd9 3vv R`RP$J*5vPOY2B;4@e*䏮n+hc+{4hD6ӥ9?{R+HDzcx{C$=b2Bhb})'^{*LT]ݎ lP@PFX*AĄrl@-x]4pS̾8 ؇` &`ο B^ػIy~ug1RzWl/PZk $$'^:RTLm-3Z}8C_4g+_U\fw|vp 'ӱYO'*I;j䖥i ֑MZ$ ]C4F#mky*p0hc/1 DSe#+{A p9A"{Q!-sqxLެ*$Y#Fl+<FDtHSe|nzbq>6Ga7p"} oJ,\C@oZ|Z/$cRk2 gI}w,ȸTAwDn9g'. #HAc1'ʂ*D[6uk2 6t &j}~dE7%}+g& bYY736de/ՖQ?4 *vxsX n4-!.@"ؘAcʐFzvu[:]ﻥo"ʻl/}Aе}άeS `G! G ӥ ]hC5&.kіzYeP;Itk=EH5ٛg?%e&W]ƪXiҬ P{j$aW*[൤sH1Ry88lC YIwH$a05d i=_d&x_BjTݜʍ:C+<.$7b.ᔨTFrޘ+V;y"(5ivE0Mw=D@r7wݵ1n[+^#FgQ>us+yfJ!G!$y{,Hm$ r^-qH'H\,iI"Pq$H:K8Jo&v7$roN!(Hk0DxtT4/+vp7YdFT;SO2Q]n]57-KrŎ~f[)*%F[0,-Uų̿]&U|(.q5e?Ux+)g}HrGȸ-͘߅P=ֳHP&[!W=_/m@}qbxE0^|mTE&g#0v,3 nAU KMFE{ZĞ[ [q L7h[6? _;?1uP/tZط')صYg%X{‹XG`ܛ|+e\1߅P=ֳnӵ$( Vh v|v@~GaL%\s/A L+p)p i4FCvlh]E \$"WV@6?bp:\λ,bGfAߋd2BjT^kL9n֒'ih3kWfpc@QRH:F9 nh h/߅P=A ̄Q%D$Fgd ՜LJ>ICY1ڡr4/.~n+.*=@THx) |I&̩h\*E_bEr/5";KII CLX$/t4XY`K-wL\#.#Byr6*soe1aʷUV?vf 0D6y=(bB!N~x8vX~H!m$ %n-KRkqckh&%nyJYrRBX9.=]Op uV15{2*֨Wl$ RD׻(DHKG\D=]15\ d ~Wp6g~ -k末B-.ʗ&2U>f_WfF)G>ڋ 'W3֧~@QJ%X ('z5 Z'+^ aJϮB[39PϦ`T8aB3Nn(MRg=.c&u7@&I2vΖ0f2zD$i%?|" =ƴb.DvOޅLHȫ'GS&Lʹ@Jl\N.le+CK6 2c A_f}'~c\?skd \5޲&bZvdqQxCb8/\u{TƼԓTOpxotJ5~9Ǯ̨k*r2x.˭^[0M74mxh'Ycr[④ޢ?z`.{p"ժżtuN7kxo vkՙ{dΊV, xVJ2WuB5m0=#7>>tY^DqD(#[I1 F gtwqDTB&fEF%Nԟ/U7$q=Dǥ?S-p h.8DU)a^4H!7d%iIL$rivX`4Y *#j>- fM~њfğ:,(&hg'j)߮NxӬwfܞZrL1(&SՔb.l\+1Emw"ʮ1sݢmrve׀\#|E5tWyzq.qA %mkA&*o0$7{# ԕ؝OB,m2 kT"c,Ztfwя_YbKً×AÔ~jЗ@BG)Xi05t_"k1IH׭$3d!`Ce >i8j;kU@+m;Z-j?3 ;"Q"Yݸ׿ah8ܙy2rE.Hw)!Կ%z{RZ,N*zEfwҒX+#ӏy( p ^Nmyy 12(igTt!EgjF1 6>K^wB}y*SC)+fSyKȡ?$A)eX9A ɣ6rv^N\ɴ9dv.U,+0pgr:k~xplWG@EYO)T$AcFkZzc8XMy+ˁ'w%- ]}ӻFl_Je׽=Q!%\β xTo U3/m ϰağB#oZt}n Fؚ ݚNϣ8k/rKc 7>GOpXHDllp+9,Iט#{{#7D&v-ߜjfFd`#S>w߲o!'.])^9VmVߞOV#`|W,)5_N$I{,||} rJ&?H,%h]_'-Iܟiz`Z^v/ iڛ MgJ?LFgtP_=%$L |J8|}`ֈ*XjU$|!@ɲw R&8 N 3E?v3StXQٙ Kpr|v9cv{].5ߚ# ":  $i6$BSe4j vħv 5GQG҈ /JқM-q)lIGV2*LK\QI 5,xiH5fz̳WUBqI"2Å&1!|cYV>׋D̸.`#T]2oNI>e'Ò,z|c %_Mv6Wse.6AF8BZn+' oy,tRfDaqr$ʰ}L,(L DjEpm,$<1 yy0UרA\dTf3AGӣT]3]’`;,,8gz,0ȋWhE?w,F5t( TԖ_o#N1"ܮځfh:yoK{?im.Ip V2@YXnn(ӫ$("T{ ^hE| 3tNq;E)}? QY ;Nxp)$/FHH~ 9"--¢#0vti}uB^À& t'@ʠ{b<%m ]2`Ϡ 7Y*F+xnpV^yb#?~u"-f Fƨiwy'T,-/9F俙ɱ@WtL<(z#8Ä@k^c/O-kc;DH(uLvR@h=0&qY}S"약c0 p A,dDOa  jnŤ@Q%}n5`ֱF>o~A:8^/Xg7D oMGؼ%PXDVO!عr9P}jeDUGabL<6d9ohQ&P؄`\Ϟب}֌;`F1mT> 1w}-}|tӫ =8 1 4F:@o˹|fЊ fwx!ZJ!s$O% kP>7MnjAf?ęZ=(e< >W0rF0DZ.>x7gl4LrudGCB?nЈf;iVZOQr,PRI#O nS8T!Z&(TO s71u)FxOL[nc!=QB`\fro-i~yYDx 3{ږEh1><0G)0:h]S?2DLp~t犗g? eYvq;m2j^t[ :D*|9@> *NHѫn|wb|gߟw?+s%uOrYt)&}+6xWw+L;8r\^IdfwEt:ʢ^Jkl=ޖ)Q#fhk,߾5|`K'l`@)P^=Q>Z>'"+~K3nAz^^3qX"',Ya8 PؑƠ?|\6'Z2%a;O퓐fR"(ި}hURjΊiRn b稨\O +gdu֘'G6,^PfСda֤[&\lXs_օ}brgRSZڝ.rw-)[y >ȷ[r]n&EI[Y?xH}8>j⚆9v `D*2CEwN W/ !wg37FW&2EVS'8 Âj9^@.ߖݙzVS[0W8R%4T+P7%$;ΟxnzQ30^Gʹmk) }saO#1 3 e=܊KrM]7OO!%DqC*|n؁20.+8R5ZtJ]x=*KVBzpF_%#/aX<W=#br3qJ\8BYr8>cG&!%N[ 0E^}d 6оȰ(F|MfvR6ZA{4C>G!x0@`㒬 P!Z=6t hS)s3W>cĮf\5CB/ČntA @_t"\ fW)O;ՀvG𣏕Yٽ Z]s 6\%'yxGr`^2E|`<RP#,f=6[;9f 7֒m~:sS>zB,ve}N<04Z"ζ K=Ѽ|h գ\4goAU|N TDt}.p$Nw 8IY=X54j^}>n~B$c6wgf^\^@st0U 2@繢|Fw]L" MW9hjQBQ( [G /]g/d;B+tk504O$->W Ph $IT$^U ͵bp#6XW=>s_XČ"^._za)${x =] 58sSLGW/v;$@F%n $JTl k)ʎcx"xأ@̩c~6ka!5④F\)e$a-.X5 hA<'2oL% D>>%W?6YMSX :Ɲ؝7[Դf:ה \͈Ӣokfq)ab)j2 ]UOY6B? [k,uIvk.C@5yTP7 7X/w tswO!U Z@#8bwY];.rfO_%ݡ1>"w"ld@P+x\L@r.lS8l_?leB#~񍸯 [[bLJnRxԸMÊbq8>S}'pZ2!J 2Y͸U[}'w:^e%N'| bS~geSu^,^P/8CP VHE\̵.[1{@! 13eW^m[Ŀm"vY* qftU& 3 +8P~qMT/%[y1e! QiuvEgxt)&x{$cVx<0QSgpJ0ɠDXLP./o|CS#C/YϻUiF7B\ʌ4U{D P>sMiwoQuXk,?sfm\z{1 jÐYY4=(M]) [M?0w>59#[ˋOҢ"j'֓:Tk:b'GET&E͓*83`l8CYYNhK#,FeȿU =}:7$1o6uCH"#4\C/xꓨ JHEpb&բ'n Q=YqI"W0,M>МB'u `f6NwtN" ,P z99)6ЄTI~M­/Z> nfpVmq~_m>Z]g|MfշY#3TR`lb:W DsõYvk [W7KW;J&9gusYc] o6khrlrQk#Lɞ7cHI ]:yb9 Пh&xOIօ /#1@ͫ\QO!Or~)$}-7 o{nV(s1Ļ4&^ZnUhOSYvb5[|Z鳞NZ+V6׾ ]8pD;..B2+Z~jh'o}pЩv7[' T]kJ(8j:jka( —Ŵrs/$ҲAq\qT!}RXGFA, W[?K*'ZVW'5cS^- Ga˪90ҜgTh|f.CT.`v%.{S '< Z"ma5[Ԉrq]L"!xAbO JGQSaPq+0W=U{/+dnv'S5_emT󜂇f"Kqm*ۊ]/ *RS 8_mpGp31J=e5:#fwVZ 3W}]ztaTGwHY >'F !%=u.??.SfڸRm5' H,.(Q޼f bI(bۛҷOKl,Ι4L.1C<|Ѽbɋv&卝ӚTBݣfobFm7DzOHjiTwjʼ1LrIV8^|zZmpOM#wJ̠{=z䔛 hsa?^eʣqa[0ӵgxgj Â$C=pVZ"*-b~Ɲ)^$uʄtCa0݆aD1i |)ڐ'] iN5O$LUSvOyWV-.tS&a}t?M,i:DV *IDx^JZ p&эV@)ONRUYCT""I@neu,sRǟ/9a8 6_yz*@f3\9rӆc,h ?do0xWhZܵgUMB rᒈ}G ^:POh$HHK(jlG?ǾHez+Qlaٰpb ~%.Q4RW ZvhNuE"qΎtvmcl;b\_h,uIη|pj|Yv^"*I*$|ݺ5ͳ,{fԇ@a^̓.WH6js#cܝuֱt $aP 4EDO; Zv3-r۲ kxjr2Q iN$SoLU() -8+AOOl&e}"b ڹRR?HY0˅?t)j%JƨQaIE| gDɫtZmlP)(;rReBr /MܡzeM MEY 9ϫ#HOu&i~w0x0YB䮍g'5c]QsU5 T?.M}3'X ۜOK"KkGT?amc9fwN";)wu"n7g'6"Z҂/Ӗ ;_H`(Ë]֭^LIG3X-mr0t82gGdzycə+bVIC? ^/[k.e7ROW؟^Ù3>@C4\>ֻ< nsͰ(B5߹3U"E.k _c1hn42Ǝewhs9pg0f Ш'BCòv?hau]qQڨE]V/rQz_>=a`"uYnR Rjr@Ϡ{c9HkvK~'My gHeP1mAHy. < y`z/M ߩ5"xYUF6tNH;4y9 : b׺UMcV$r]ABm!G)BW U07(鼉OϕWa??i.{ 26sjٔ2T a^D3sK(0 #?N ӾX :jHp(kϳ-ޱqp1VXtPwz1 y`AɾBE[.r்ht&iNMmT_%N!9Ȩ>$(79e rݕi^AfޥtJx4?W.} M_[h1Pc@4VZzYY&ĆajZrgaJ® ^E"Aێ<ɟ=]1>WLUifN YGUHӲeκ A‹eT$3^Q ,:^@ e"zZ ;SBjE$Z-lj(au⮏1)ߦ"qPWk_ rcaƥ^R8u5I\|ywh)MmD=Ac.,@󢞋6e7Oxwwz rؘ`p+WdPS\i{,VQQ"h3S;Q&.oWTa`B> 8$f}݈n5 mΫ^L}"M~Je,O+_` dvMg,7Zdpb,ytMԶm1Qzzmghd. ջ2&p ʣiz?TƆ홛iJm 4`D!n>{]؊L!NDP=?Cb:FӐX;e>C~s_MF*V#>Xx͕ * JP ^_6TAk֖kaM &MI s`R[?|L. GDͮ1/PׅGSP7lG0 `r\Yu-,r\O?$ƚFI 3@c5iO&&MQ̗>a# /[M|I@ x8q$P؍"G͐i6N XiE$Јn:KG: 1X;p;ЎrmH6,{hw`jW#e<"K^!G8{}nU6H,:Q6  偉9>Ң[duOARrDM9rtBIh#(ilcОg΀m!S6۸ŬYZƺfǤD?Ti-#5ƅbBH6x~S,>>$ Y{C0( Dv~d(7X @:!1gR -]PȎVS hc$]^p^aN|JZMm )#pePv+dKtTowO3AI>9-%qO F흛Hm6|\/HBz~tqf~ Wb5?5`eaߑh7=mS9n[<q1W usR,E,`=wueZ\ˉ;JLa>~hiCP}-~СqԦa!Gi 0Vd nca58k.@%jv aߟ{3~}5ע. RUDk\Fg`n1ԟ:ʘM"ka,xC= ԩe=zwx`<Z~-3M-קAlpēkϮP-V"40+a/z!=@ȌxڟJRE0&c9ŽQwⲹS.{mʅ>*ks!tV`{,|`6SK-*ٺ.s*γHc4 fR`m v W1ƒY<r?g_{h0 hCn|c'&~™,`a2h}~(;^=80>yU=c¥T ݱCy*" Faŕ+-] .K3Y=dL@#$)bȝ]DP1&w3b1q}ۦ$dr*U[h{VX9^NzyV-ݗK;s?#d޾j2ZX. ORHq;oBomZ$ OF\{bhIꗬF&Q^|'/<YlmXM̿ $ĥ@cNsbIVXgj_zUb! "X9A8]4"F|%_ 8^K# z<֤ t,a]*@QS3? %|ƽg7`1dCJֳ <=-MxN!g6ۤ.mϟr+g\ ,K%0&m}/DXj>_d48_vOyVUB*1Sp6(pӹעR6Br93Zakw<|b1HhYɦ0-qxtGhj`=lC. 03D+D,eXNT3WQ1N ¯ ֛8^z^QAjk;HO9.2O=?aͥg쏈#(D-btKM=F{v(Ú 9aEa:Jf; M&Y_A.;xCpj~imh>@pNfC]vIY)Ky3g =SID-xۇ~T_u9I6 aOxO!ޔNn;NV/**X\/NϹ'Ow_täհ_ 5yQټܠ3Pmrb]CG ;8!Af $aJ|l氟Q[U%ɍgAhxe Vި$ ?Xp_Qq\ (cI!=%DjAι)p,c׈!]C:,HT+{bc %j {xSX@ZT9m\-؟|#ny{'' &B`}^י8njU3 9d3*6%hqP_doH8br"w Tʵj+x~)x6nZi:*l@fPn4GXGDm6jg/M9oAgԛ,Et`b7^u ׍?M;qCCMTp=HlN%a>{8!_`ɱ\Cga'~CY 1rƠ*hA|Τ.'y3b|t`L0{-\M"K ;8'ǓR%1v$,\/UoNdCظz'~38'싧9J, Sx 0 BZ@LG5\@Kޞ.( SH݈xZ* $<&D`62zSws?.>/dGF'BQZg{{U32?lCty9nT uPWw 6^1m- X!]9hu+>P{ \-I Z\t/==nkH-rs`ayBaqfLoN͇Sɥ3z{Xn1b$30]M,s{E,1B( k*O v24OژIk(jyK!M燂K-2_tqNQraX IɵStMCfV!bT;eQ|َ`t:`#uG2:[̲bwP+]YQ <Я T 3x40j6I"#Chr~Ekn< Gb>-^ f9De{iRO5qSkp,/ۇ@͎gYf+ς%ך*l1Φ']+طK?xH5]ptD)]naf5n{ ^cWZPLYqب2Hd-yG~Y euܔkC]9_6`.;d}z7,> \M:d T?ʤq@js ƊnSt!? ;Evhlw,5!|؂CMotQ{n̛H[G˛[ |‚GnUﺟ< 9EҺXa!pcԚoʄT4Q]un?8ZFJPr+pt҇>҈jqN=a8;!A7æ& q=:#Ȣ`*N4`t Ij ddg(Hg~SZ"j~%K+(J|_4!2wx MLh/eMJ8jf57j`vmW(]w 4QΰdFYi}j1'QJ^:㨉Imli屨`U{4i2P,J؎knKq|HO|m ,k'7ac%JZ0~{ۢ&@;OC-=vxC}zi [Cٸ̰f˶xGl>^Ď4Y;wA֐i\ÿ3 2AsYdžy&"d_lr&%GmˀB7/R^9tFQT"Hbme VP*hl,)RZ8=>flj&U5Ba5uq3u1SI+qoxl󓮔tS# @5h dV7 &Q>NƳ4;,Mq_ BҚkFϹfkyn;8ٰp0LGS 1<(lGFVN&:r@;p4aY&$am'>jZ*%Z-/xNqo@ [?ax%Sn)s:ķvՇYG1↝m۶ e}w ~BT狤r' W>POMYe+h`C~O9G[XZ ҳ#t%HOQ;FAitXQGP~e5^ l+dxmJo-NV爈dX4W{S_kZޔf7<Ai2qRY6:!蔬+c^(?xκǵG1KmRg{mrq&4v=&߫ŷ( Èr&=f,Ǥ(6<6LkR1Tx`7;봅gn*f 3ޞA~m|-Nw &LəY}I M˚&hG2q" 6S4IBW ं.͞* )LAH!wteOw_( QM*V&{4ylǁ "h,&osm|fKPpB W-YLRXgr|+R2Pr:6%Ըxr&b EK?p4:"X=^G__~a~.BbtvXH~ =>A]eb#'\5k!$nMΚss+\z\Lw۫[QNI̖}i rERvX-^nտhq@MG1/M[_ L$ҳ4MJ(OB$S/pz3?ݗv}{6>!J~|P58n%F#&S/3cjFڬ}`%`yii`oWÕArAo6m^kZe }g4՚ F^F#gK)wݏW n:IN]),)V{>ThrKd;s}n a҅NOw#iZFQ@DLm?>oKZ acQgA`ښJ'(FoV:⃠Tf6H 27oaBȭ $+}W"_2Ob,w^RiMۗEQW9 U@ǐJ,U;gr+MUT3tB.#; Ag9ohj }Ȁf*_~;4~={!-I{:٠EG&)dt 2<يyC'+[K}otyCyb퀶F$4[#~!h{%P;{7,yED- 'Zi jUOy;rC f 6dTsU5eݣhV4H*=;<70Hc<#fxQ]+J1zJZj$y&$gx}esY a6B57)wI.=8$f%#{책T [j+g>8?(I FC!h]VawgT~dU+x%5BvW⋗|m{THW[֓%<~ӗs--⻳9$\tRK FhFױf,wȵ[z4] \@EQW4( 'GyH_/4T2HT,#*5)K,F$7ݝa^ڷ\$?C{\`?׿2t(ti"m9t&]Qe }ghѹ^b~S .,7&L̒`dYo&zyWVw֜=4 h?hpʍԱ (S~4Ss^8d/ԕ8 ʺ7Fd=j[1Z8uskQ^гbJk{>GnĨ@FFEȼZoC=k³]n !_+)Qo#ֲ^! ܀F? !ݿ0O[Fl]{_Koжʚ'fJҜ3sP$ jbn@JE YT@4~{BW/ cd);2,UۆEێ+җ o;ބ=#!Q76w0k顏A0 %<#9q5'p7cZ^9?huyeMfij˄aT[4WxrCtFo ;Vi$P5. dΕØ;]Ьa1d5,8o?t޹e77|x,*,B U2l\ }+1XY׍mJp$l<;u=gTRhg*(M2X1墹2>],6{y T[& v.т("BD'Eۄ6=@z}"ۻe p!i!ΏH|Zؕ"{yj!m_ Ƒ͞-7zq\~<ɩIaǻɶbQtD3-iȲ~,N2,jcq֩bM3L5Z\m.r}kխjJ |®ClEQ&Abp=WT2_A2 Uʼn0RI8"MYCSҥ4\-Lj,>(=)70ݨq[LǓIfʐ9Jwn͖J(V)KR, 3-|=Zek1*8iB@xˬ m.n3m]gsgU(+G mF=HcCQG Hf|ɥEH ا~80z3g:|@~,Qn/e=`,C rڕ\O3H7nCU{4wx`I+6>PVŽ䄭43,@k?9u, Rg{u*.#d.qUi3ެ+ @]uƻQqr=68*6,o2FS]ZޡeRA破f.2&Uƞ3Hk툗(CƩFLUvo2[Q`%S gZfx *} SJasP]*MmSCL^nA'1U˥avrrESax9(s'%;4Ycw7rN{Ia=Ko/oTgX%+mQ^"=hCTIٳ{q"6P\Kql-h>~Ku*o'`ԯ12n^\˸ UX| G'.[@7˂jh*hȜBbIDU_5 hNR|/tK->RU1KJh` @5:pU ֳq!dwoRiأH))V֚_zr2+>)Ix9AuUU'/ov(~iȐS3/2&g9O7n.U;7Zj5fg9#6XyO!'V_"2 U>fb$V{ϟIቡ=0~{10Wa c+arz4ń=,49ӳ5pW,`$y{t]N@4$_"ӵypGW.QQWZ?.W M8- 24{)'9? .,N\p%u蝬j n(.>&™5 h1OI]&䫧|rɑS$Jձ_h\ rt3*\\BǶc ]v.ksR3}/h>~tW>EON$p>kX4C =k׵ ğ~Wum/#q>'"- 'R;95YxplUa;Q[U}ƨdôA/Rfoׂb iC6\ׄYi}zkXG\Kwp(# `L4C8[̞ulnDu"Wv;;D> .&c۾,.q0e^GJ x_|;Y6?(e7uV K9zÜ01ʷBj32: ;V6ϋ LwoTs!wocKZypW?(ёA"i*q"";TSa6$㜚7{6dGg/- { &~ģ~$\N IP й!" Z4V>!A7UMQ҈1]J u`.Mli7oab'Rw_xKڐ4ϱUL%_~݆މQMl/}'Q_W֗(]dÌ7Jjn`%5,MܖWj4t ηH9hp;Ph싧9J,ܡӈldQY`?kKXGTDu-9`&kxp~Yw N+M,*+K3t^~*"E֡D+^49q_Qego^v;;c{ r%j\ }ҕ~fedsb=,y0GS0mO<7AN !;j=pM%oyy3l4t#ǿO'JSE4Y|lyIRLbN nzuc j-/eGx+ i'Vo]hmHJn_3 9x$EKP!l^y:3Kdf`|Ϣw.8RH>|,NF) B* vxb{?\i`r¡ZD JRA$/Z_*jUwQlg:嵭ui[\@+ޝY3^DhQxԉ|:3D8]6ԼʾS(le `k0Zղ?eM3fjhbs'J%\ O=9k/1s)!K5+GXn2Y%vj DCFĎVbR`*}j v:q:oſ'jI 8)/u?k%:/1w qvr707dѴ,tkſI,P|̐!LH_7rErE0D*ۓ6CP:v6EEոg_?wDh{wYV2V[1@ٕ By ,aտM `zp/v$zCqw_Jh[@CHH >M2_$-Ə8fqs6Hr7ٙ=6efYc``EdZuXzo[-E&fuJ%cre[iU(!0s ,9MT=l7 }cuԯ뙕;hQ5VCUWu]E$sjM:?gxE`93}77#_\.*bV ˽'KĞܠl-=/6`;deI-;q9cqUgP $Z .G)DfFNO,<[kcCw٢!XZ<ή/ A0tjnl !Og˫cVʫo]d/UMπtBɟN;C*~kh9Bx~$H5./,ے\r6nýAh(BWAzONހi\,!W>U@^b2'~Ư`Qp@,y\͔k]Rbabm+?3& !6Ύxu0tmޕ+NLJŎ$9pAD 7ߘ~䟦c@ fN} ۧ2LPnC9OWoitaw˲,ZX$,"3 åvG/1ۮio#|uN.l"~b}8^J3šp3_sSF+aKP8SfAEa'JBXxlh7*λ%d ~>6+3׍G*y[TmmA,9Ԍc}iON`$- ]zxJ wzb#- XjꜤ<##)ɤ0=98t*h221)O/,B i  pk/kK9TMwb9\177RT[ "{ (=ؐ.q 2M[>s.dֲtlgݹR8hw3Ҍk~r8zfsX4zb A!7y둖g$0TNʧ',/kQżRnse^Nd Z3B%LAlҦ/ɔǩZ>j3cX=z(#A^ͦmZ` AjS"{=ʮ+k;X4dN_䋅4t* p`i8PԨ :#c['$<(Fg0sl-ZZͲ&ުShwT4psLʫ 6,h;8]<թQ[{;Xճ +'K3"h{"oYWpM"72U_kXbHJb-j?)W0 hd0w#!,dҷLW"s꼿AJ!>RcÍ 諙 , Ô}֨ۘoKϯ'`@d.+Rz;qJ.nH<5=O Az=S2^kI]oE#eѬQcrf3$Ӓ»B2Ou<ݮ@39H񠨆gdZ{a\cW\KlRda@,î0Eʌ'juYz1E%W=jmGqK%sXjgBWw'rd!_VW< *R1{)3T&puT-”rdϜT@vO5*!շ=~lh6/9SIs]I^PҲ IꜨ=-5faɎ %^yd=\3aM\.ߎt2-?`R1XzVLE6^g(* jEJZpBMl\H٬$1 8]fE ӥQy%Nĵ6uJcl#KZneu1|:$s}CZly+":MyisӺ[7 .+a"y̋c2%1k`m-I {;[Vl4JXMpnN8X 0rcbqO5DLhw6jٸ MB^>IOd(bofL ]iUև23@#YRrs9X>R9л@@@#G@vʂҕ.>t3߭CeO{ ;AV̇ڋk +{ :MYw{ǕVyZUǝOˠ=lOFN*lFՋ ;5_v#O"L kl,bJun b9 θ(7+ZW4Ls1uq.cEqo7n/җc W]~Bo&p]Ũ9ACƘit I(HVq8ˈk XʨA~UZ{8Ʋj/csB03XHn[%C|)Gx}mIH#yK6z_C_dN@9wk:y/bf6@\ŚJS|{ĪiSbI؛{5hPюrl;{,r\ESU[ľy 5D}IMN䚛4&]9Vg8WTk!P1W&ȅEv xb_`ځ=)/t9 K!X@r`Sdp\r%Geyc\0j}SRr] ‚/a熓UT(jg1TNQ }F{ڕ\ ?n{-iܓ^{>\Go ꇆRX^uzגkd|8K鍬HmI~fEPQl"E ܮm4- g@IG'KyS,Pz="b1b*{Q;]fD+.x g-C0$։YᵛD($!`+`u<<`HĶ=5֥p?8;[tXHDW=̌Ya)i0MSqۭ]EUcu+b9q[32T-ꊙLy.=LJxf,av$4L^#!JQUt DTςt6cH80TU^i7!@]qԅHpͅM▵0gTh}M04MCWsew}A; eZ+FTP`G*\\ J\sIkIo+oKՅYU u*@XfU/s}[?Lwq?)X}ĒQ#,!9䙳¾W7“P)F*sóKRMq׭,,jRNw\\@wG*Ys.d}æ 2P_qi0O-z&Vh]N0qC06?_cQ.ex. 7i&5%Ƚ}'}kLuX-[r('§Gf/Yn'=T!jFT/pُr'EZϤO-pBFc Z,H-;ZAo&>OsrU, TXx eqKPjI.%CR|.׮# g? #-GTΞ=`98tCYU$~kf|s)t &lPr[0N]<+Tu߁Vqm, P)Z[  ! 5Q`6$N\x+Fe}Fp@˴a. |f}RqHl5?Lj!{93 qNUc}cQ8_ /c]M,+%'"Z1uw!+VzRQ ];N'!S7D%ũ SeBj$x$w4WMf+K˾\~$<\y=0 JϏEly@1J qm.πϭ#YoVzZN5W kن/i/fKK!d}5^Q,K-^X[rY:Y,P%Zo8WFk.&tDj2DH$%#fÎ'?$34蹧 yec 2[17ZIg}nz V[p%V&R͊mѢ7yk |j):)hFw 7˗Wu2c}iO%!QY[io84#g@;퍢t*\Dm9%W7P606sxFg3~v>~?P&q=c L=|jLۣ1g],8[A^.Jh,#db. KzFQ_sO݂fh`[)tgk)fͰђIe(=v>3JrE) 9i%G,l-}.٩QMR-h=m@xh9h~Լ~ؑT?2&!@:y0Tz k\Cra{'/^YU]v p?&6lx탡bz5`- N'a([H!XHwu2QĔ}~Ie@'S]LX/y?$=)Q DkRY%-́˶P=keVԩPjJ%O5dk*8Q} v@T$ d࣍0/%Py,GC+)yxk(e-wlH3UZUuaU^x}GCZkUe WPTx?pPߴu1;F<5$&۾>5wY_}[}OW@k}ɿ,oCwỿ[F4wA_~ 7Ta@? ~~ݺBv~/PP0,X%-15f m9^ܖ/#akZ7ƹbĠl?q7L0~W2: Wl+8@$Fm,Λ$ƬQ#7 H<wu}lYg$*$b~6 -~g\1 I*~?`9ɖԜ>1aJF!F#֑#ny>w¶LF1_ZTp{?V7]G>Ea=^p&]3s:y4{SԹ%Q ,Y%IK%] CTZaKc>~4.m2xku;.)*qKЅ SUf SϒRYY| NB1O}2}2)JABRɡ4vsuV{, )pJ&&Sk3 >N(n yyYkX_\tWxUh@㛳rA0RL4ss<]w6b%SMR=p\yL9y*MY/~2_F)x6~d|T(LP58Wؼ2 >r6ݫRMAahByw cާkteY߿6qwU^-#/UbQaD?ώ\(eseL\R$ھR6zl K@E#!MQtW Mx!`bpNC;@3oWR Yi):0gџYfL,bje 莭OJ6?΄:;_ZTAZJPeOJC~ECI aV&y-^sqTVJU!:bLU&0vQ)Q{ ۶?ipTf,IAx?dcYaѶ!Yivj(^v4ɘ9%=YV̢3D388R:}ïs] gcRe:𑹕u0M}_eC;F(g(9br`&)N ')MZ)MIsd]bڏK]O|FR QX]]otrufM+|L k@miv0QbT.I*A:+%X3PŒS>>8~t*7nV} ,Mli(f9*ʘr,s(Q'IJb RȁAR=D x~S0'6fϫZ?airKJHCWOP> kPݽl1}0K&giCK{"5 Sׇb6lu%8 ?qj@5BEY ƞn2"zٌ <8»hi`*Pu>{"YG=kV"*uCg6)6h=I)uQ@\="}/'}kn|RR14<۪)GaҚjN%2pr^2 똬YM rVߌrukգ>7n1v7 7mkٸۆݠ+UqmE ,O !gK6i|L,%bA@G35gS/8yZ"Y22tEũ1`3S-yb}_eY;Qt9)hPnN!4 8i-ky<24ARY=3?¬LYwܔ4#+7;bS/и%e~B誧HI&D/7/|w>X{!Y DX"[淺U>R*KPZίd˖(RU#߹ 4xGdFdC3/q"XewT~&_< %=57L3 6- cof[ ·cٹ/aYOgm귧@7:Y)aA9WUXu/Mš询vm>>>v M19}s[' <@Gp0[#ᶒFʟgEV^ڿnTqՒ@_?)R\4^ J!Fҗ34[.*s\9<9¥=F*{nofg~f{Rk~+R|A<"kHz2st ýRy4 y||WULC=#(밊V'}}u|knГ 9b8CV݃*S Y{8;Џ(:D.ĵmmLN4^|vJBq5@ /Sps5L!OѨ [<;u6Ux$E.-11rA? %c2jΙJTaR҇-ّK21,C|lw̝}\)ƻ:c,alM6^JB4]Jqhww~yZ}0IPc>9GL!k &T͎t_Lr[|=xG]Icn_Xxg-"xK(1ڻlPAʮxSŌm5&oܬ.:k>y0 =S"%*ZxH!IG`֠ǜSמO#I10 VZCbFeh[fJ'^d8H!s"$]k'_!8%0éQ?Է  W3^ԫ:. FQXǬczn;Lywݕ ͺxI3+w]۰Ȍ)L[daݱ-{a}yS,˾81 u~H{}|Y(v)W}x6`9 ]~CaE R6yhYc'( oseeΟJtTJw!L% tCf,Ĝ%_0{*J}x`FJPz t.N¤ߔ[0|<"zpM G[vV.Fh`WGr̝tLCOO#5ҺON%q' y_~11j#-/V[ BL.Iig'4g}Hm(~*w)-Q):2n^ТL@"$f9KY'49rDϷw=#ȸF/eqW->f)jWpf-I=.5V^4O%FQu(٪O#}(/5gnډDžhw{ Ku!ɬ'O*`pM$^PQzd(EvF6E $M^) NSGfIQӘa,Ii\* hZj1Ɓ|nXUA?ȟm; Ρ.H5OlgA.rZanMOLRW냳쑒`U^RH`/l稖WZvIP6Qǡ N\؈@w;Mc&DHͼ9F9 .B *(ʀ^& }Х) /Ys(ҫfĉFc0 Ѓ.F7"!T hm2I&}la5U嗊F ^=NTbkwtfFV&@-|L;)v-F$^fi %I(b-P}QZpw{CYqihEp 6G(D~wj6d|HW讥!s.+.J ]UQ†d׋q]Bs;d+24@yYSSQeN5 !bRu[y!)%|(PI,2=ZU-ākXH?3>ɔR>$_| b:DS&bi$Hp[I3椣tu*A T>3xlZc s013;Ί gəM3N9?cTqhʴZ$DiyJܹxSM| >&Ug\{Ww7g޸!W'}!"beeژYfw~xa/|uCѤLB!52 ipF UVZ̔n|bmsh2*N(6J`fV edq!r{jSd~`O$B-Ty* oc F zGT>CQ)`SS !{Ϭ0ͿBYdj ݻu@<^1gTDžVMtŶ /!z̍L/ Xw "ZBT]#엺šz i~OFGXluGg͞X2[[T&P™) ˰ Oϣo"z);+#8K0y}ȌbbGUTfq=St1V `FF-$:;':&De10{qoT`&ŵu 0Sg ݩ>.ksG[NٚJ|wO srxIa ^OO#z ʲ`vdf\iU!~@uW=B*$/} 8 xtbZ-r 1/儎6 2% -DU \97[y>!"Z@<! ^}"r 6̋. iui Yi>ܩ=@6Z 8[QG_pr3KL}`0(C@j$®r;4 0sǙX{s4X ݖ(ٮhZ|F3//6ʚC1r— ghZIJl~#aaNA9 f aJ339m| ĎȄsFD*|6oIS6p~Ȉ?ux v5Uz_QP#]Xk 7?~3E* kZ sރ$|l0+.@aڿ.ו6k1Mףcenb[ }gfPej'WMt dќ <ݗrI?@ \6 r|+v0j&p^yRCjDQK&WU\)I1L󾂪C5ɓ> p8yDWUf!cwS֒s^f:OLt; I{#791|WgS%HwHbƾ.?$jaJO!GrWa ) N"p2أʡ(*D' m/kXu%=|=9Vřs̙~U`|%!QSV[  .\`8I#`l6۴0R2ڎ|`} y qm]UUS>hRܯE䘔t; wcpZ8&H1Eg"$|`$,*Î3"@PAТV Y"7l5h?̈str\o\^6F$Ne^,Ġɧ'?zc 1D\2ʖC/s!J Ѿb/f\U@)@y 4,L/ ÖlWJwcbf3%¶OS3+BRtbwu>P :͖wG!E-cb&{*inG}vvҬ-Fm͗ߵ# @x_)U@2q>y]Ijo&tp\7q{v8\ƫ-"XyUm=0 O6M7l *0aa|1I`y7F4ls[Bm, sqn;rӦ`' Vj1Vփ* l)ЭcDɡi7-:xESɿźk؋^dϒݴ00=ZWVD zq&|44 #@ aC5T-O/Be'D=[!'}p]n`Hc&m vdY%/On,c CaH9eY[oem !YJgnfL=Sj۴,hE仲N4d w@jm@Hֶ" O JFۣʠL`Oٵ&d͋޹9+6"EF/4فQdL(jO ?A'.wS[ +uHd鵩8LT2{"چqDY:5Ut Ѥ<W^u@`\ؖ4K b`Oy,m7FC 4C$=Mͬ+Y+ y ~Ěai X9]jj][&2E])2Wg55`Ggt;q{M`ɻtX/9(O% ES{P+ ٹ Cq5~g{$^v .CU6,H鿟{L8VyK҅OyտҀ4~ GA }@XYfJ.J3q KPC/k㩶AvVԃCd(=&a53a7? ^2Lk{Xd TP}n\ hi7&;PO/=0"WM8]۸(x" 0'=vąOєص"%1}e56)u=^Aj&e*OϨ83PFܖZnIl*b~nB@Z(|&*7qtBGXL'%W; 78uP\)Y!۟ت١h{Y;Ԏ+sWgheP36+C4NaD)+#UpDy.Q@g!=ua4)H@O&@dWbk_EJ-KķD@4fmd?dTgy>~o"nXd0W)Y0~5QK^yu$C̨O\ԨEȿ(hzR[%*hFղ8[{Cl{rOyh5*K2wQ.xbPsLG_$g멲:8Ι $:2!7Ļ}ī{:B6*՛ cO>'Nx>V| +0FH\le~7'~ӫ ExXQ9tu} }M KV/PQ s8,@_^x~8#Z{TH,!m &."j'>#RBE`3Ե?^Cp7\^|жz(q=?uޥ;[! >[^DƚUB`VBՈ |VY;d( ~t` >%vG7 Ԩl%6v&NOAQ[ѕN3Io'?ēd zrJx SsԠ6a wI);"_-j aTj?p|YlpEfG:?IE0Zsҋێ%&:#U$8Zi!'d=}Rٳ:Ȳ9-gTu?l e?~=7ĩ}FAq[cG^)=)rB_\Rc鏟Ho 4}U'} CAs|Bi|]3KQŽ$gHw7?i|>h)ހ[Xb4_jI*ӑuB͆Q,v)IlP(@̪Hf{AE`ؙzy;O8囩uF4ts0DV\{}Y^=](B2lFeΛ]kRO8nb -?Ն]'xlwj!5Y*aY$nS{+%{HX`[Wn:gɓgyXӔop)Z(/,hZkԠh򤧧,ỘWcavBvz`X]|ɧr]j`Z 6{q2(QL+Cz&Ir):'w:\O3K0, ώ8lP^R6%O.ނ')-đC4yދv:ɮ9j02 Nay ^pv' Ե``>J 05~* Ir,i+ Wđ0҈[)VHC >a/hHĕj3Qz%}0A,5ד\Nr6P^MySƬ(U,PPiؒ?;d :u"8{3c>!-2NF;fgk'][+<^ȁliGu*4}.?EBs4c"w5%=d3sa_ "T9t?JA!gaM*ĕH(a%w]/q++7ҏo{%8_vx$p<cqg rЈ“0 C}HZ1,)8uѿnv.'NU8]p}  HWSBiT29;vwm歙${;ʲb^߂H}~Kb!ŕ\wun7>k|h7aUbQGScAm6g{ ɎyMP5j^b60HX^(z!ODOwbBFBNB9pӹ๕Ts q(5ʦq`nmTUwOeeRrxĢ : j0cb f離nR9L(eoRhdCg|4E awŰHvᜁa%KiZ~RigӉG|eL@lh? Fx(U4ndzbchi}W`R8x'E C+9ޫfIev>پ+b-QuiWƓ=u|43Kp,3`C`N& c8q*(Vzw,ѯ/Uy(HVzͬZ%tQ;5RRcd'FJA+ETcjMC`@gRSE'iE֥1BM.(cAQ xp4ajZ/֖{/%8*BǸ.V\(zd?mjoj$K?cZ/*< pHOOt ]# -BXXP ?Zj2E`\3St·iO]7s$Mbg}Y~{n{:^FMauۤ`8U`AfR]}۪қ!n4fv15Z>t>5_B}{A5~a,qjdEo.YNrv3htqhP`Õ Jd1--+۔/a/Bu0h7CE{)]2Ӈ mgk1L}UcÐFg؃x.JCj0-K{.Əuӕȷ4}/ܣx԰bH{+AC$l vid@ꏑ׼ 5 ]JC l+TFj65( 1Ľp-xJŬ"e[jT9eʺopXWCבb[=3Fx\}s|-^̀|c@)_.?BkK;@W،uԺK#=!Ի|۬4,T1#֩D? fEop%;Vz2PT:wŷ*QvvXl%hO[2y֙9pPZ+d/0?8N2/&Ѡ40&gፕzh:"} UTƝ yNk—m;ݑ}7Sny4_?Fǁ{v+2br+G{DP9NG3GQv|"*xa52M(-2rPPOU3jLOdiE^栩Ê6v+8uIZʪ3^k,b#J~^VD$ 4nF~wX/sW 7yn"_OI9gyH@`h Eo^=eQ׃ds]ӏ9Kɺܟ'*@ؘPuDzV* BMe/`q/PI7^tCrd7oՄBQ-(ܫ=,S\,6M3+b@v]eKuqlG+)H/:`{(ᄂDެ98)?e|'U* *ۼI[g %"JZTQ4d3nuXN%˗@*G X:yr5G^%D0d/8;)76[kI +EhX+YDZWa?G,)a#cW}Q9$QC|M:R8.64`43Hsp ~} ӫ$AK.1 5lB4wJ)מuDd@'f^ B*c5HB?o˙Gkb w/xFsY,u]Oe&++t:@+`oM}]"{yY,<3.máq`u3wm}-ng, ]/Ʋ1&oJ`xnF!:W}\+A INL T .^yIr[TJsq+]+Q%q5ghLeK?Sx4gƤA})xU/}HS|W+_B̿Wݎ9íY Lb!$~O]E1]Ie Gr-CY:Kȕ&3NX"-3Rq[46*&FŞG.2HP~B McHOab4e lu1# dp̠$77/-"ʞ\YB&,>\oCs/)'BQojaLl( yL&h;4V!`eXo$66Wۋ]s0)o-yiٚy^I%[3KM^p:(qG8x!}9X j?G5BûuH\7t &ϞU LӋg|y1l#Pxr Ҿؒ/F6 7jgESsYWaP7ګC.xſP4w4+ʶ&I* Ȼ8l=4-NTc6~J O:B&[~*p}1UYG|[Y扠%3\7DFѱH ]1U7B0|V>ha[5QVg ` Lv1!4BƎ+)Vt*(mt+Q$8B]*ƑqPǃJ_R9K>;! Rvӱ/4^x駉?H1u2[VSR8I䁺?wGm,5k$r~c*MU<mpL"Ż|ƠyG ϤZxh/gS9wPh.Z7WBҽ)85~a4 {νKԕxZD9YQY!g Ba?$f8WNY?a2`]u7 ’Eѵ;aqe{J:8T}4xYv nGB~N_z;{zt%*2-tSwĦݲsR+@D|n[s⧎i7Q)Jg;Ƭ8d`0_KQ$jޚFwN !aR"wg)nD˵Ŗ0ԹG}.}<*arkm24ˑtBk(➟IJҠLVp4m0?TQ{UkPg^/ϫKf.k}t"_c&s I%n`N6 %x8*w-$P߼O $ٻ/6TBl+;@pFX|UyN'؝#D2RwԽbS_"tl BxI0NZKJ3g 8 qQ5Z:_>%Bo' 8U&RX?]х)}eS[-x!ȓƓ_h.#zktCLOtc!Q|MF-&UD;<=l>Rjrm0`;FVoOANgX 4m;DqML;򃦤7 (51(4T!%;ld>b JûA/{9q T6"%co6Ɋ:1;بF$͉<5Yd3_pP-Y+24^b(p'ph.&ދ%" f ;)JIBjN|(kYٔy7A!IVʖZCyJ?*Фy/4q9ä%͹] ~O70=ۭ Nx%X+x!$(g͕^ n _a2tɃr <_1+0GP3[:x cA xnɳ^$08/5>ve*J]*ջEI|sVFG,aYRU|!Ǽy=R:0Q&m5Ƌ-zVm?(U_aC! Mf R+\S^;-/[Ԑ˻]Fm4IJ`m2B{л=/p5Lb?Sź>CF¯.>MQ"U0氨,lܧT2ˑ/j2JoB)zrP5YO!&Cek a@'=dES3G;i:@6R?j6{q7ȈPN+DŽDWWam7X5ԹX8yZ,«]u}ҩՁ+%WjGCO6/z79Qm8)FkzԆ{ZuZ8?cE-^C)|Pp8oëvڧfvjJogEGQ.4DձR)Խ?ޕ*X{C$/X[~]{t{-TIT1Hdf1R /PdB bs5sUwwP?lMd;w-t*8SLJpb+y16=sR=}VsSJ1D-A( 3R*lN-v\J< ) ~థu"H3jm웉}MoD8ov,8^v+Z~)o|ǯI/Sy9i{5'(AT7eP䮓LcRrY :uuhwVcIzKTZdj#ZHߴ- K`4:c7M. K 3#B) c,4 'ΟHIⶨsXl][henB_LGEI%;Pkܧz_˦@]U@L,kkI0@^ń̆\ c<ܼ Sa|tn-Twu4Mա6Rmm4ֹ6o(fQf"k[_qv$mnHν %۽S[:c: !>e kwlz/ڤA%sb !٦b$Z@EF=ϹJZA CKj(ܪ.]dѺt3$iOSQD:ok/*O끸y2e2)>xKZ3L71Qffjiש~"m< 铟;K & @B kx f}cY1/xf؋//RW?vwN˪~lx#1Ɩ7_vqQu;tA%5 ۅ4y!`/F/A^;x~όڔRKG_/GCx0A+(a~ߝ$WqO1_e,zCDd'Q#[yq8c\!s3dHX?_AӧpN_M ^6GHe'P0d]A&"3%=ԷL8YeO&܃wY=2,ɮi쒁8zxU)?ט5(sٗhKP0]F \1'{ceO Iddՠ `k IML}wKTf,ss=־ѻ}[>񴱬 ^"KފCvc6 ulWgVh;oey6"R# }ey'QufqTJ'.XߛwT=*o yS+X@$Pk<>w48_.֦ uzd0>c^n%B?|x,j=2D}y ]Q[ 3ZZ~qֶWJ5 N~MqTbGvkh֖QB]ѪCub?Wgzi$ց Jh%/B+"Ieo^` ˜2ɂX\sPt#;C;7r,BTW[; *pS;Ye1r -%gUA㎧R,\mȖ ۮ,Ź ecL§JĂSNJ„Ccck06qDy=|ԕkH^*vj1-ΖvL}zKE.[Y%ħ͈E]r'>%2{1boi.+ghimڢҢUl.D rܙISiӏd5V|ף =zd>_ aP(H`C"9ӆ:|;ǩ .5+-OĹt<4};ּKQ dg^.t`RZ><6C'^#GW>2gh$\=ʪ-Nn$Ӻ|D۳7]lw sp,> W;6ðeHMu*kAv9'rxEg0o/GuM1@'f<vR0xOZ L?QqR-Vp\yh󍗷fF$;So>0T'ߏݏl򑎞(9W-">샧l 2B.֪ ɑ%{k'Wwz&c-x)XlGߑ5ق=_ MS5JUC.zVhCo_ $}Afm*vo`I7q^?dtu'{FUn9̗wKҩNO\eytQl?awF̼} cu&19#ebjy )xn])Xk\i7hXLx:)"5p-šDP-BX /̣% &' p}Vfuz C7j$t:r" ggn|J[j?%ME&Rd\U[a$ާpx`|XӮUfD*]s`55B?bi/P I0Z#?NBc+H%:6 ߛнhtjM@粷ޯE l ȵM7ˬ=s2juqW/O1N,j_~V/] 6"/́vwn ,^]WuMB%V/>xݎHO;O6b, ]܉X(,*.fEk-]ͲVۅ0(H3nb;jramLE~& qGgXӒR6Lh/"e4&@1'yjs&z-{0% jJgdHtbžcs'mr@qϲ-bj ,oBNݚ9[!i}{- HUO pbpQy/ґ ]5Cյ0;{*1xR~_v}Z?*z"篪6|]7Wâ+mtϪˆ4gHkp G}ZEjwnX^6;OUandS\)azjT^|.qrZ0߾ (/+(D4|(1cXi\J DcMۡ#:2DOx(tcB7Jĕ+-.񣐂ܟ.cx coJm}P>'争^u bJ~~,c;BE%vM؜k a P DEh$=an@X-+Lol:K)(kzl1|Ơ̬+?[O HFAs~\UlwVwoS. 8 yԃ~WecX56ƼYAa &gT3sIԏ#*,_5 ʎa'!:RJpa{Ů(`*(㒊aTUb) bň88BWHL-JK/>̒ H`D~Pjcsb"z\|}zԈ1\ʋdHnߔi8 zA!2<5J|j(PУMyR:yi5l3i!6]R$Kih .t4RP%7;6q@-0}C| Zcif;)F '͜{*U7lU,.JY4`d@$j0TkICna~Գͽ3CU{Ʊ 2D׳4PWHIgD껠$m5jN$`|:>%5S-EaRa_1sP3=R堶}TlЙу 7 rroUٶ? rhK><:Ԩ\?ybZ`# ZwB?=> ?4E`;Z+ATsjD= 3O&<տʟ \ק @ rHKoHXkԗǦae8ɼi[!*{FQŚȮp:iH%/]WkKjFP8m۴@k zഅeO#ثsnܬ_QͰ ~ɋ9"2ނjU\;h a8>]-Sr~Sme{3&(E4yΝUG=]a1dիj\C_;؂߀32cmR!At2hptB\0)P9mn?MyksG[۳˙<fE=D̅roJ}}|B3#8j.>AP P:3x}@)>Uɴ}yRD'v9@ =o,yt**.LL ;났No{vP0Z('yKŃ$~sY|t*/N}!pԁn6MsI^Ҡӥ JsƧIPmf8ry5^-^?4RZ2g5NoMu9GMR9Fs$4Q3.`JFǘ!8[*(H>T C/ 'IX/_32e\are=NVK+5 e/:T yЋhlTe`Qgb\F|*R\h'斚 -.Ǥloh*$?Z1zҍI'!T[BrG0m0+m.^RN^2m*(|̔KtlâL3aí/([t7".BӒ!tΫSegJ,cTS1C\Pj ~m YYq/|ORCYhMj&I损*KVتaʥw/3K3l<[`+XIWU= b Am*F)rl;M9-WѿMOzpX@5}E3p2Rm@>WVNh M@th$3GϢy}8nu:pqƅK-Jrp76~5OeCA0K{ˢ]j8r>H"jX 'AW঒=*leW-*V6'_Y.!/Cˊ^'@QfIZm[)q`:EaߒdA ˿gBGx T ꫺\!Hppw{/aW]&tc-WPxajȁ^bM!kHڡX$E^Fۜ/mUDI~_O!xܹn^UiVny*teCk~i.4 )u(<'șsA#Sq_7RJ9 V0UbRݜ- sT&T} \FBexHJު϶5ŜF^{#χ%A.w2$|mR{:^ӮuCyVWb?4ofʋP]m<ʦ=H➔~=Cs֕6zp\ЊC|IuV!yQt|P)텦IRݭ$Ԩ:V5 N,t^~u5Qnd܉zQ<m#IWB(0Mo7whm)vHad#u N4<mtrGy/PIFDޘڅؤOoG"N;|PG][^oKl-G93/@XsT_wBsY9R'ʌf{=bar{Om}^b)z{/Yy%+xa o*RktbFX)4Du6ʒP"ep,1WZtI}(kD6i'ţ\'a7 Ui|dYvQ[ΦWԞa f/%)rIk Z6*ϳX\_Q-`@΋08R.p 74g—[奭l2 &~.+48')*b[}Ux__.?BӡOW xXQhivfE}3bu}z=O$Vo^z@50yF4oHDA)R"|:R:5ew)X 7֧&?V8$a&ؾ85-pJH?3+8,6`pw;H]a218L'D =WMR5 J:$VY׾I"5fL3}lN`8U`\CգO8&L y79*nhX^Fkb\xx\/.Fr3U z,'cRLF(JŹJ=\oS)d8Kna V @V.vGs/bTAoSk 5h '-3X8QM$pN::/QxA)xh!kd~"bOF:yWbኞh.l.\+_f!ъϒДBs+l/H+}dNϒi@([ځБps?b]ds^_NQ#qRp%EщSݚK*]PUH+0/ĥ=cDr C8d+^єЅ1kuO.yucj=ޱ >\n'͏a" ב $J gS-6G:u)ADR é>|>'(,O"4@{o&E"l%R]ö@GTvc-Dea#~Hrb.j!K5WfR"dSeaZ+bI{70iJŶZ1t]ҧ/ɔ ޱ]󫙞4eJ1VMKWGH|IuaP=뭋0eQ5]EGZ|k{wd{)tTb#bqKaH!3$FV@%anlmDY!Ug(xج$r*>xBкYycw0#AOԛ-0HVۃ%5+n⁑D7GHvHXAKGal؈'?=gt5_zfUBJ}rۨ_7,|"TN)+أdpf^ ]+f`AP`CyYjee?ʬ cN.}2αLkY3T:\)ZBԞ*ggc(ZP+kI> zT'%rKqYdT}´ȆrB'K}FI"+bĻp!SLw:|X33g ${{˟G-WLJXfV֪#꥚#9@/%zX:fU|fKzM+555>m5|7t;xm XE{z2Ls]qP!Us=Nó*]}JxA*^l'Jh*evԍ/Kk<>{>!"Ҥ|:4;}Nd8/JO;ׁFV*|e PSSj|MM?l@ C^ʫ!Q 4{Gě}~b+*Iy Ѱes X}>̴g6SJ0EH,T%22dfW> Ļ )e®^ M䢹X,԰R](i̘: EVQI R-9t8+Ԕ͉qq`8Spq%"FG wGR !va2 a{ChkAu>4Wt=~bٜ^͠R%Eˊ`Ut+c "+'--%͗UFr(ɱ5B3[9Tȏ&G>x+/],*]2-ǰ+o /U:R c浰6`oW 0;BRF<䐷K|6dm Y)ۀ)3?ًTt&ΓVk?Bss Ք{#õ|]۶̦:(H}TQ+̤unwsap:Z[}[E6ʪ0kib䩇q؍:C~'+ՓKq<y}XD~w֢Vdx/8x.UW+Im7ޞqAK'O/eP–]\`7G,M=ڳPL!zJOIn- 6x[Bdy}Α;C`*9'xyM!5 oS4#flq ^륳-ꍥFˠjJU~аX..AKLg=.#rRqE4I:d%X^$+#jӀ++o [finXxBLAg?~hCXIUklϫ+Yi B¡sa/ڢhEcMEqtB}ay"O8M _xDFi :AlPYO>NMs3\t6¶r;ߨ?!*;6nxBݝ&qy;6mzFb.h񟽷$2r}Y\8 c=`!ߌ^e ڭ)Dk1xWNMlaT> NSO%Okر,OSRcv,*P{@fΔ4~,E7*hVv?tTa^}E$nFE>kr~/|36\LueEO\}$@Nfvn;$vBj*0_Y Uߤ7[\V5zQdQ:]N28 ΠvYr*"Ú0Wj;3 2֧)Bjj(^QońHa=+WwQ/nҞomAOYaϒ93/&62vVsψ}غT-lLSČHWs8Cho IٜpxCzr)p!xYX g=0A9͊rȓsfUQɴߓv~r۰طSOJEzh!)]%rQP$)ò&QU?D${Mԇ6aM4 ɨUR½<(H,Yc"^4)cX#}3T 5+;J9@DV.׆īUǾ|]IL <ɿhuI]]3z1'?ƗP&YzTrQ zs&*ۢ=7+.o01pU^o%WP fI%s8#= w`(t%6qߑfZqInV43:c4X >A"# {@r.&쨗~O񕃚:zܜl|ƿ/g|t =q#rk~=W*a7q)` @ $2T Ni#6x ZZ'{+ d%KWw ṾS)vF@V1C}ړ>CNZ$H;j.){DMCu sf7t^[v" ?JsuҲO"z' \µ?;+_]^E<^ AȳoXꟑQoS8]j iK0; +]"5XQ(IBw23lXa0q'F9Y*\;^2( I!0ѦhvGԟEmȫ&`wwAr(9a&hOVkN׈;:`Lu(A󟿋x-nzq{ELLcAp>`ez9!EF@1. dQπo!{@6%c q !p~Nh @ȋH+5^= CL^#F?87phAY"4vu.`Jׇl31j;F)ɮ B~NW[b?i= .G֡j֜|ޙW'"2C*y3c1lJi 5L'վ j_]L|sCRA[U>92/jҺͰ2 Pl7xClpY:?e648\'Y-1g0 võ=YG^= yMnb7* 5`-Zu<,@Lm6Z-Mb8r6*s h#aNUh<]yB.'sˋGo-(,#LsH%s+C EР_<̂N)*o:.غ**Ki0T/|%MNˌr')QQn![/V9,2ZVz{ Jn#]*! ц;_N%#ߞ*{;<4^8SKWD0:9`w Sv@G {S&]Z ]}cYBب?Е,HNNwϨĪSt5n-'!JdSNΤy rҭN")L\ F yӥy YkgS4qoK -$Zqq<£Nc'rxr >}V<\fHY+2eT(Je-ZW9Rƍr<0-K  ('d:zӶ1D0Qw PQ*z 3D!w}LS.#xv?Tͧ5βKRɜ Ah|NOAiٟgn~u}}KwۯawK ni)zz_ށ?n~gmt7iځ>Wۻ[?mZ s5Rl_vLir,S4p4=TrNۻ ]3m&d3F5TZ=cu+~!c@wɿnZkaqA5>iC .}9u ")x,RQjB.jx%U nZ&k翌bLvf~@W0/s܎[{9P<V_!!X(UoI~-`Q:d]&),GȋRVi%SVG׀"guw͒it$mFX'Kr{θ`F:66;hB!{Oex$)bI$Q b{LmY6$浒W%:*ZϻM\N氪feKR|Aݛj{|KaWhJ q=ypZI֚x^F$^7ݳ)Q{2UG}7 S,98Et_PCq?:1iMfu}VՉögvڕNqg' oFNF6,7q!Z/E\qaK( =)2Q+E_<2`\;>$ly ܋S"V*4Wr)!u%ds4/bMznKo0l.|RO^{j,; *5zf0&dXxZ\faMG.ht*곈M/U0Y1KC80xkҞWGf\HzJP{qɍCHE`|4~:&Nf_|V琴rf+,9E jк5g<6,a~ Wap 4DZH3<]P{~cYf8㤪_:qAzGp+6;`{ۣ LϠ f_l6 L'偈"ްi*u/'u0&E XK7ppD!*Om|3qJ; '4h4LP0Q=YZE$.dU'cZKhĴ;Zx"αF*>vh'6%8Z>Q.,1le^jԏ.FYts:.&pF@圓k4۠GG!IUek3W@r5 s^ i7[8 A6~}]inye 䡚b32PAD1<ӈuqdDmbR߀$ ^jZN8M n,WjM;y] YVAi}UIZaR@}?IjѻNX{5:x+2_{G =^)ݵR"Ђ+kXq1) Z:!@nι@_a^ټ(?q/heifv ,14$wu4oz*Tn"v'C*Ԓp_Vf=y*elM"qSU)uLK'+"XgƁτƏÛ ٌ":;N+ZbN+f $uגCճ)>3fg J<Ǵ$"j"OquԤle3WT?in;ه HJ5=qz޻Xx':E@+F k۲|lg:6L%C,y6t&4p<&Ét4Kj"t27)v{SPMmZֳs^7.j_H8CE:v  0pjL+׮7"w!"6byoY)Z,5l^Pr=L5O 88% cnBx ش]{%+4oz &lBi6bir͙n ̱0ɬ1Lᕤ]q}Uι/#JQrZb  wl!z1*l+e^Zw&8o u: R)PĠO` f郀l(Ξ{b+(bTүȚíN=CJw&yg|_N{M+pXe"Ce$uƖVdӋgdǡJG%sj$H~O4aP_&'6Qm׵fro WwuoVil5T 3\[89v,DyoKzFkxI`mY} uk`G/lǻڲ.ʦ_Z`K)690j8TcS,qaA4?ZFm`3=݀wzԺs%OwYb`-̗w0RL"M$3kGxU,4Ba dٵP'ANЊ@% ^EH;z#ʃ<%fpI$HM&9?_܎ީ0u6fZOwMܝFT2Zv%^P?VJoy;S9jmR)X(jlA6"nuVʐC+tY0tL1}3m>|x^ndޠy/jǗ$%Fװ.S$72Ѝy6:Q)p]u4rSIO.&5OծYՙtv3 &/0 WycXzZNM<[` 0 SLUo#i8iBHPZ'Y&/; 6 kf`2" CNS;Z,&-ގTy<\X)S!z3eI`F@JGM26w XA@f-2HyMs0fSW?[b9>0أ=lryh&Jf'CF&{V[Bƀ"64 %@|dS4 =@*9mAXAKL%*|O^5ls4[GŚߧ̉nX'?5l12J=9ɇR 轩¢:g27G<œEO̎sYy83/hЛP|!& ˬڟFGL-w*T_ ڼX&3??0BנpkQ' \f[aZni_h+iҿvI4XBT7q-BAT*|~=IcG t 9%"|]^`hbv"37U'c:GЅtZGbN^_j/PFcXy^JF8j+ByPj"Z&Kmq ٢7 0i%M~A+k <Kn[#k>c0U͟,l(l1ti8=%v4t*RL#%!&gZ™z0~j1u{p X.Z!}x??B }(!-wYq' 2XWgy<ê=c,mR ڞZZ_jKWMFz*.Ѵ#gׄte|Fng$ǃR`(~JŚ'9LGMK': @ Koy53hoHeOM'~o-,!dp=^pl:8wZ P3eqR?9Ѱh4{3t Df5ømsr#GD[atEk !~M'4^ȘN sb(F"K*4͌~ h2c#~|\|"Yoa̩Xvϵ L-'ĝ5VR(B2 x1llPص۵jSz':oI> ȇnT]E9f"/TBpYgxH,C!RQS^ ~W64{~I{' -Ccz"j1hrlJkamE0U(RVĬ-!n{t*P]8jg"=Bg*zb/#:]th'ULl)$ݺ-ͭNY4G [6{pWKɂ/b۲Pc3e%0q]UtlW#K UgAt/*@J">,ʻ_۾U5(]qX~]TgdPZ͛љ.K{819T*Xt#dGq$w\l Gz69_#oݓatk݂u#T4g{+صg_6`hB97:9prԋn-3HWgB8()=+ë:ό9/ qL l}44_w T(E"ދp*Q9o[կ}1ГO ǐTSg4寐w!d@ A-yR秦`I 'יzh GCSQQK$uWliOΎQU vZ$`D3f`̘b3 jY#?׵5#jVS"Ip0ܺ>N K!\*f'id^xL0^A7॥-754cxmҤW5CEwyi;yCńC%`cG6t\ӱ%j(]1ߤH}i~&MO];Oq!}TCoBcYX(߼& !B^f|H;ކ&;o/4gD q~i3>?`:I 7 -"IڞްPPz_LqBXG}ܵ eQdvP)>ApIEOÊoIf~-(&SY=[}OBԇxR,}wRD HLdyT\i]2>j̻5.Ź7, 'bNK"xys4 :GA0:1Nut"81gA~Ŧ GSiP.L8]{9Ex4j7 !]I̐S2Ae:cGX;Z ^#hB1s~&Tƫ YCjYIvb(#a{UxHnARAH=vV]M/:L@ٍ=S}f0`W[էiFmOGQdmzؙvijbC^Ǯ 3w3 )Ýy+ ts?̨tiG&ck>%#KFh"\}.e, 94C-phKos,>l nEiۿipUѯ^L{!O^vwHsmw[9y2.h<Lm luufR觱k\fKXkv5H{8^|[X;m*Gqup%rX| 7"BM /fTCBBq`NlN1A3= lw075"<ܪʷ$8~,lZWi;;Qz7ʝ-&'JQJ HHlI+Q5;q%9ˣ^uͦOJ3tpK^L 9 cJ3/ꗧi>-^U[+vՐWVA +nkgg 1TGwlT`8uQ 5E,hXԵALx ۹g3@L$"ʄB`ǭo8x$<CA*Ԏه u1[=2P TV6L3ךOב&- '*J\Q~KwF.'DfUcKM<';DϝgaVs@4U[dz&hgAW_{ﱔ]'+Q1??{MrgyƕUT}چk, bNW? VO"6 Ū9F>1oo͖[y-V)-R:v^J{=Fyi-%U#$sգ(eAt2lKM֐>t{c&ك  ׅ)N^8Ӊ\OA1P8V+WY 4ZnXj{Mr ;AS ΂!qQF^<} >9T*˘ed!Ob7^9(`2RjCPbܹB2YʒV161jf˽kB [( <謌NNM_+ar&EYx_ f:Pn4oE[ FHldW+ok8.0Ynj¨)eNPtm{ZAqM(7,p;S7K֦߬7gKK$n?*]꼮AnuWpO^s4Op Y(R/x?Rc Xm勂h*ŨD"N bdWI1fԁr^IrY8jyI%fTv›-~x*O nwzT;*|~[mVy z@(4J jT#އ_s7A|cC`fw+u>MU4n_Y&CC@RˈTg oԐ 12 G }k&XqzLWi614C*3 ۧŮC6, oػjޱc9&@gיK죃f>qVsi HJ& X9Oi?`a՟ r.#cqMyypI8苷]g) l~< 2}U=yڕ]vɨ2{=oZK<Ͳ @aí|ycзUY.7&˭ 80yd[] _G.#~7ؙfpqLXՖIu +#'g3z<0zZ6Ђ3_a΍H}Ȳn"D.¸L}`a)R7U̾sBm۪9ݹ2U.Ġ"YnKLj`"48 {h *+80Kʒ_o[\bFe+C/r4S6hw]D2s0I䟨bەAE,E@b 7Y'Q7Ԏ`>#& 9xF_>߆f"Y:ǫ5Zy @ӽNAYmAp8݌iI*&q,NgfQ۫DVQs'`R5o3Fb"w3EWKډ\&# Ƃi"=WCP#(h٤41J/jUޞTfLWJZ#۟=K>?")50mi,]BJgN8L6QrtE1t͛\);r̰DO.׷ ++6ިD ƒ0f DŽ?` @Ct1 Ⱦ :O֣?gv~]٣k j̤&2G7qE#eI'z;@)-(l|QK>f=lu+D:r5 C2H h;W͎LqA5\r' ygBay!tf] @KW>af! ^j*QH_Q1VtOTp]J!rYH6jo+JӔߟ8&P9ޛ+ "hS R[8W?.Z834K,ZtQ!U{lGW9k5|3(E>Iz)7N _YN}Xǃ#m͡>~\LRѤ~hAߜ] ®y0q⍜n'@,~M7H@wb7AqKFoCw侟ihDBhK~t!ǟ3MBr.@W"6Xj>fTs)]lND%J2֤\ qADAG|| `@߄9b`Aц͂[SH`Z:th$Z +B9-4.r u*u uewL,u*,-z}.aȸ5::.Ό{gNqZbcaJ^"8pl9W)>'qS&Љ;DЉC%0AVwHO׈y{3l(^ڗ0cLZ}U|>Td€a@)j9  J,)WR`[S9q=t zg$x:SZTEP gRӲ)k*ik9X,_i@}/ɵrw8jcf=p_6@LW9qƗcdOhI~#mڸ*x3Sh_Fi*/Љ.^ox !O *! r{KAG7E gvm,aGW((n('6CH qoMediaConch/Project/Mac/Osascript_CLI.sh0000644000000000000000000000204214640052500016640 0ustar rootroot#!/bin/sh osascript_Function () { echo ' tell application "Finder" tell disk "'${APPNAME}'" open set current view of container window to icon view set toolbar visible of container window to false set the bounds of container window to {400, 100, 932, 612} set viewOptions to the icon view options of container window set arrangement of viewOptions to not arranged set icon size of viewOptions to 72 set background picture of viewOptions to file ".background:Logo_White.icns" set position of item "'${APPNAME_lower}'.pkg" of container window to {125, 175} set position of item "ReadMe.txt" of container window to {450, 125} set position of item "License.html" of container window to {450, 225} set position of item "History.txt" of container window to {450, 325} close end tell end tell ' | osascript } MediaConch/Project/Mac/Osascript_GUI.sh0000644000000000000000000000216214640052500016660 0ustar rootroot#!/bin/sh osascript_Function () { echo ' tell application "Finder" tell disk "'${APPNAME}'" open set current view of container window to icon view set toolbar visible of container window to false set the bounds of container window to {400, 100, 932, 612} set viewOptions to the icon view options of container window set arrangement of viewOptions to not arranged set icon size of viewOptions to 72 set background picture of viewOptions to file ".background:Logo_White.icns" set position of item "'${APPNAME}'.app" of container window to {125, 175} set position of item "Applications" of container window to {275, 200} set position of item "ReadMe.txt" of container window to {450, 125} set position of item "License.html" of container window to {450, 225} set position of item "History.txt" of container window to {450, 325} close end tell end tell ' | osascript } MediaConch/Project/Mac/QtWebEngineProcess-ns.entitlements0000644000000000000000000000042014640052500022426 0ustar rootroot com.apple.security.cs.disable-executable-page-protection MediaConch/Project/Mac/QtWebEngineProcess.entitlements0000644000000000000000000000044014640052500022012 0ustar rootroot com.apple.security.app-sandbox com.apple.security.inherit MediaConch/Project/Mac/Info-ns.plist0000644000000000000000000000266614640052510016251 0ustar rootroot BuildMachineOSBuild 10K549 CFBundleDevelopmentRegion English CFBundleExecutable MediaConch CFBundleIconFile MediaConch CFBundleIdentifier net.mediaarea.mediaconch.mac CFBundleInfoDictionaryVersion 6.0 CFBundleName MediaConch CFBundlePackageType APPL CFBundleShortVersionString 24.06 CFBundleVersion 24.06 DTCompiler DTPlatformBuild 4C199 DTPlatformVersion GM DTSDKBuild 10K549 DTSDKName macosx10.13 DTXcode 0420 DTXcodeBuild 4C199 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion 10.13 NSHumanReadableCopyright (c) MediaArea.net NSMainNibFile MainMenu NSPrincipalClass NSApplication MediaConch/Project/Qt/0000755000000000000000000000000014640052500013534 5ustar rootrootMediaConch/Project/Qt/.gitignore0000644000000000000000000000014514640052500015524 0ustar rootroot# bin mediaconch-gui # Qmake generated Makefile # Make generated _Automated/ *.o qrc_Resources.cpp MediaConch/Project/Qt/MediaConch.pro0000644000000000000000000003653014640052500016257 0ustar rootroot#------------------------------------------------- # # Project created by QtCreator 2015-05-24T10:42:41 # #------------------------------------------------- contains(QT_CONFIG, no-gui) { error("qt module gui not found") } QT += core gui greaterThan(QT_MAJOR_VERSION, 4) { !qtHaveModule(widgets) { error("qt module widgets not found") } QT += widgets } WEB_MACHINE= contains(USE_WEBKIT, yes|1) { WEB_MACHINE = webkit } contains(USE_WEBENGINE, yes|1) { WEB_MACHINE = webengine } isEmpty(WEB_MACHINE) { WEB_MACHINE = webengine lessThan(QT_MAJOR_VERSION, 5) { WEB_MACHINE = webkit } equals(QT_MAJOR_VERSION, 5) { lessThan(QT_MINOR_VERSION, 6) { WEB_MACHINE = webkit } } } !defined(packagesExist, test) { defineTest(packagesExist) { system(pkg-config $$ARGS): return(true) return(false) } } !macx:TARGET = mediaconch-gui macx:TARGET = MediaConch TEMPLATE = app CONFIG += qt release c++11 CONFIG += no_keywords unix:CONFIG += link_pkgconfig DEFINES += _UNICODE SOURCES += ../../Source/Common/MediaConchLib.cpp \ ../../Source/Common/Core.cpp \ ../../Source/Common/Reports.cpp \ ../../Source/Common/Schema.cpp \ ../../Source/Common/Xslt.cpp \ ../../Source/Common/Policies.cpp \ ../../Source/Common/Policy.cpp \ ../../Source/Common/XsltPolicy.cpp \ ../../Source/Common/UnknownPolicy.cpp \ ../../Source/Common/JS_Tree.cpp \ ../../Source/Common/Database.cpp \ ../../Source/Common/DatabaseReport.cpp \ ../../Source/Common/NoDatabaseReport.cpp \ ../../Source/Common/SQLLite.cpp \ ../../Source/Common/SQLLiteReport.cpp \ ../../Source/Common/Json.cpp \ ../../Source/Common/Configuration.cpp \ ../../Source/Common/REST_API.cpp \ ../../Source/Common/Httpd.cpp \ ../../Source/Common/LibEventHttpd.cpp \ ../../Source/Common/Http.cpp \ ../../Source/Common/LibEventHttp.cpp \ ../../Source/Common/Scheduler.cpp \ ../../Source/Common/Queue.cpp \ ../../Source/Common/DaemonClient.cpp \ ../../Source/Common/PluginsManager.cpp \ ../../Source/Common/PluginsConfig.cpp \ ../../Source/Common/Plugin.cpp \ ../../Source/Common/VeraPDF.cpp \ ../../Source/Common/DpfManager.cpp \ ../../Source/Common/IMSC1.cpp \ ../../Source/Common/PluginPreHook.cpp \ ../../Source/Common/PluginFileLog.cpp \ ../../Source/Common/WatchFoldersManager.cpp \ ../../Source/Common/WatchFolder.cpp \ ../../Source/Checker/Checker.cpp \ ../../Source/Checker/Path.cpp \ ../../Source/IMSC1/IMSC1Plugin.cpp \ ../../Source/ThirdParty/tfsxml/tfsxml.cpp \ ../../Source/GUI/Qt/main.cpp \ ../../Source/GUI/Qt/commonwebwindow.cpp \ ../../Source/GUI/Qt/helpwindow.cpp \ ../../Source/GUI/Qt/mainwindow.cpp \ ../../Source/GUI/Qt/settingswindow.cpp \ ../../Source/GUI/Qt/displaywindow.cpp \ ../../Source/GUI/Qt/databasewindow.cpp \ ../../Source/GUI/Qt/checkerwindow.cpp \ ../../Source/GUI/Qt/resulttable.cpp \ ../../Source/GUI/Qt/policieswindow.cpp \ ../../Source/GUI/Qt/WebCommonPage.cpp \ ../../Source/GUI/Qt/progressbar.cpp \ ../../Source/GUI/Qt/workerfiles.cpp \ ../../Source/GUI/Qt/DatabaseUi.cpp \ ../../Source/GUI/Qt/NoDatabaseUi.cpp \ ../../Source/GUI/Qt/SQLLiteUi.cpp \ ../../Source/GUI/Qt/uisettings.cpp \ ../../Source/GUI/Qt/publicpolicieswindow.cpp HEADERS += ../../Source/Common/MediaConchLib.h \ ../../Source/Common/Core.h \ ../../Source/Common/Reports.h \ ../../Source/Common/Schema.h \ ../../Source/Common/Xslt.h \ ../../Source/Common/JS_Tree.h \ ../../Source/Common/Policies.h \ ../../Source/Common/Policy.h \ ../../Source/Common/XsltPolicy.h \ ../../Source/Common/UnknownPolicy.h \ ../../Source/Common/generated/ImplementationReportXsl.h \ ../../Source/Common/generated/ImplementationReportDisplayTextUnicodeXsl.h \ ../../Source/Common/generated/ImplementationReportDisplayTextXsl.h \ ../../Source/Common/generated/ImplementationReportDisplayHtmlXsl.h \ ../../Source/Common/generated/ImplementationReportMatroskaSchema.h \ ../../Source/Common/generated/MicroMediaTraceToMediaTraceXsl.h \ ../../Source/Common/generated/PolicyTransformXml.h \ ../../Source/Common/generated/GeneratedCSVVideos.h \ ../../Source/Common/generated/St205212010smpteTtXsd.h \ ../../Source/Common/generated/Ttml1AnimationXsd.h \ ../../Source/Common/generated/Ttml1ContentXsd.h \ ../../Source/Common/generated/Ttml1CoreAttribsXsd.h \ ../../Source/Common/generated/Ttml1DatatypesXsd.h \ ../../Source/Common/generated/Ttml1DocumentXsd.h \ ../../Source/Common/generated/Ttml1HeadXsd.h \ ../../Source/Common/generated/Ttml1LayoutXsd.h \ ../../Source/Common/generated/Ttml1MetadataAttribsXsd.h \ ../../Source/Common/generated/Ttml1MetadataItemsXsd.h \ ../../Source/Common/generated/Ttml1MetadataXsd.h \ ../../Source/Common/generated/Ttml1ParameterAttribsXsd.h \ ../../Source/Common/generated/Ttml1ParameterItemsXsd.h \ ../../Source/Common/generated/Ttml1ParametersXsd.h \ ../../Source/Common/generated/Ttml1ProfileXsd.h \ ../../Source/Common/generated/Ttml1StylingAttribsXsd.h \ ../../Source/Common/generated/Ttml1StylingXsd.h \ ../../Source/Common/generated/Ttml1TimingAttribsXsd.h \ ../../Source/Common/generated/Ttml1Xsd.h \ ../../Source/Common/generated/TtmlWrapperXsd.h \ ../../Source/Common/generated/XmlXsd.h \ ../../Source/Common/Database.h \ ../../Source/Common/DatabaseReport.h \ ../../Source/Common/NoDatabaseReport.h \ ../../Source/Common/SQLLite.h \ ../../Source/Common/SQLLiteReport.h \ ../../Source/Common/Json.h \ ../../Source/Common/Container.h \ ../../Source/Common/NoContainer.h \ ../../Source/Common/Configuration.h \ ../../Source/Common/REST_API.h \ ../../Source/Common/Httpd.h \ ../../Source/Common/LibEventHttpd.h \ ../../Source/Common/Http.h \ ../../Source/Common/LibEventHttp.h \ ../../Source/Common/Scheduler.h \ ../../Source/Common/Queue.h \ ../../Source/Common/DaemonClient.h \ ../../Source/Common/FileRegistered.h \ ../../Source/Common/PluginsManager.h \ ../../Source/Common/PluginsConfig.h \ ../../Source/Common/Plugin.h \ ../../Source/Common/PluginFormat.h \ ../../Source/Common/VeraPDF.h \ ../../Source/Common/DpfManager.h \ ../../Source/Common/IMSC1.cpp \ ../../Source/Common/PluginPreHook.h \ ../../Source/Common/PluginLog.h \ ../../Source/Common/PluginFileLog.h \ ../../Source/Common/WatchFoldersManager.h \ ../../Source/Checker/Checker.h \ ../../Source/Checker/Path.h \ ../../Source/IMSC1/IMSC1Plugin.h \ ../../Source/ThirdParty/tfsxml/tfsxml.h \ ../../Source/GUI/Qt/commonwebwindow.h \ ../../Source/GUI/Qt/helpwindow.h \ ../../Source/GUI/Qt/WebPage.h \ ../../Source/GUI/Qt/WebCommonPage.h \ ../../Source/GUI/Qt/WebView.h \ ../../Source/GUI/Qt/mainwindow.h \ ../../Source/GUI/Qt/settingswindow.h \ ../../Source/GUI/Qt/checkerwindow.h \ ../../Source/GUI/Qt/resulttable.h \ ../../Source/GUI/Qt/displaywindow.h \ ../../Source/GUI/Qt/databasewindow.h \ ../../Source/GUI/Qt/policieswindow.h \ ../../Source/GUI/Qt/progressbar.h \ ../../Source/GUI/Qt/workerfiles.h \ ../../Source/GUI/Qt/DatabaseUi.h \ ../../Source/GUI/Qt/NoDatabaseUi.h \ ../../Source/GUI/Qt/SQLLiteUi.h \ ../../Source/GUI/Qt/uisettings.h \ ../../Source/GUI/Qt/publicpolicieswindow.h FORMS += ../../Source/GUI/Qt/mainwindow.ui \ ../../Source/GUI/Qt/progressbar.ui equals(WEB_MACHINE, webengine) { !qtHaveModule(webenginewidgets) { error("qt module webenginewidgets not found") } !qtHaveModule(webchannel) { error("qt module webchannel not found") } QT += webenginewidgets webchannel SOURCES += ../../Source/GUI/Qt/WebEnginePage.cpp \ ../../Source/GUI/Qt/WebEngineView.cpp HEADERS += ../../Source/GUI/Qt/WebEnginePage.h \ ../../Source/GUI/Qt/WebEngineView.h DEFINES += WEB_MACHINE_ENGINE } else { greaterThan(QT_MAJOR_VERSION, 4) { !qtHaveModule(webkit) { error("qt module webkit not found") } } else { # Ubuntu build QtWebKit from separate sources therefore QT_CONFIG contains # neither webkit nor no-webkit, so we also check for pkg-config module !contains(QT_CONFIG, webkit):!packagesExist(QtWebKit) { error("qt module webkit not found") } } QT += webkit webkitwidgets SOURCES += ../../Source/GUI/Qt/WebKitPage.cpp \ ../../Source/GUI/Qt/WebKitView.cpp HEADERS += ../../Source/GUI/Qt/WebKitPage.h \ ../../Source/GUI/Qt/WebKitView.h DEFINES += WEB_MACHINE_KIT } INCLUDEPATH += ../../Source unix:exists(../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config) { INCLUDEPATH += ../../../MediaInfoLib/Source contains(STATIC_LIBS, yes|1) { LIBS += $$system(../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config LIBS_Static) message("custom libmediainfo: yes (static)") } else { LIBS += $$system(../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config LIBS) message("custom libmediainfo: yes (shared)") } } else:unix { !packagesExist(libmediainfo) { error("libmediainfo not found on system") } LIBS += $$system(pkg-config --libs libmediainfo) } unix:exists(../../../ZenLib/Project/GNU/Library/libzen-config) { INCLUDEPATH += ../../../ZenLib/Source contains(STATIC_LIBS, yes|1) { LIBS += $$system(../../../ZenLib/Project/GNU/Library/libzen-config LIBS_Static) message("custom libzen : yes (static)") } else { LIBS += $$system(../../../ZenLib/Project/GNU/Library/libzen-config LIBS) message("custom libzen : yes (shared)") } } else:unix { PKGCONFIG += libzen message("libzen : system") } unix:exists(../../../libxml2/.libs/libxml2.a) { INCLUDEPATH += ../../../libxml2/include LIBS += ../../../libxml2/.libs/libxml2.a message("libxml2 : custom") } else:unix { packagesExist(libxml2) { PKGCONFIG += libxml2 } else { PKGCONFIG += libxml-2.0 } message("libxml2 : system") } unix:exists(../../../libxslt/libxslt/.libs/libxslt.a) { INCLUDEPATH += ../../../libxslt LIBS += ../../../libxslt/libxslt/.libs/libxslt.a LIBS += ../../../libxslt/libexslt/.libs/libexslt.a message("libxslt : custom") } else:unix { PKGCONFIG += libxslt libexslt message("libxslt : system") } contains(NO_SQLITE, yes|1) { message("libsqlite3 : no") } else { DEFINES += HAVE_SQLITE unix:exists(../../../sqlite/.libs/libsqlite3.a) { INCLUDEPATH += ../../../sqlite LIBS += ../../../sqlite/.libs/libsqlite3.a message("libsqlite3 : custom") } else:unix { PKGCONFIG += sqlite3 message("libsqlite3 : system") } } contains(NO_JANSSON, yes|1) { message("libjansson : no") } else { DEFINES += HAVE_JANSSON unix:exists(../../../jansson/src/.libs/libjansson.a) { INCLUDEPATH += ../../../jansson/src LIBS += ../../../jansson/src/.libs/libjansson.a message("libjansson : custom") } else:unix { PKGCONFIG += jansson message("libjansson : system") } } contains(NO_LIBEVENT, yes|1) { message("libevent : no") } else { DEFINES += HAVE_LIBEVENT unix:exists(../../../libevent/.libs/libevent.a) { INCLUDEPATH += ../../../libevent/include LIBS += ../../../libevent/.libs/libevent.a message("libevent : custom") } else:unix { PKGCONFIG += libevent message("libevent : system") } } macx:contains(MACSTORE, yes|1) { QMAKE_LFLAGS+=-Wl,-ld_classic QMAKE_CFLAGS += -gdwarf-2 QMAKE_CXXFLAGS += -gdwarf-2 QMAKE_INFO_PLIST = ../Mac/Info.plist QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13 } else:macx { QMAKE_LFLAGS+=-Wl,-ld_classic QMAKE_INFO_PLIST = ../Mac/Info-ns.plist QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13 } LIBS += -lz !macx:LIBS += -ldl -lrt RESOURCES += ../../Source/Resource/Resources.qrc OBJECTS_DIR = _Automated MOC_DIR = _Automated UI_HEADERS_DIR = _Automated UI_SOURCES_DIR = _Automated UI_DIR = _Automated RCC_DIR = _Automated macx:ICON = ../../Source/Resource/Image/MediaConch.icns macx:QMAKE_LFLAGS += -framework CoreFoundation target.path = /usr/bin INSTALLS += target MediaConch/Project/Qt/prepare0000755000000000000000000000060214640052500015116 0ustar rootroot#! /bin/sh if qmake --version >/dev/null 2>&1 then qmake $* elif qmake-qt5 --version >/dev/null 2>&1 then qmake-qt5 $* elif qmake5 --version >/dev/null 2>&1 then qmake5 $* elif qmake-qt4 --version >/dev/null 2>&1 then qmake-qt4 $* elif qmake4 --version >/dev/null 2>&1 then qmake4 $* else echo qmake not found, please install Qt development package exit fi MediaConch/Project/Flatpak/0000755000000000000000000000000014640052500014532 5ustar rootrootMediaConch/Project/Flatpak/net.mediaarea.mediaconch-gui.json0000644000000000000000000001300314640052500022772 0ustar rootroot{ "app-id": "net.mediaarea.mediaconch-gui", "sdk": "org.freedesktop.Sdk", "runtime": "org.freedesktop.Platform", "runtime-version": "1.4", "command": "mediaconch-gui", "rename-desktop-file": "mediaconch-gui.desktop", "rename-appdata-file": "mediaconch-gui.appdata.xml", "rename-icon": "mediaconch", "finish-args": [ "--filesystem=host", "--share=network", "--socket=wayland", "--socket=x11", "--share=ipc" ], "modules": [ { "name": "qt5-qtbase", "cleanup": [ "/bin", "/doc", "/mkspecs", "/include", "/lib/cmake", "/lib/pkgconfig" ], "config-opts": [ "--confirm-license", "--opensource", "--release", "--shared", "-platform", "linux-g++", "-optimized-qmake", "-nomake", "examples", "-nomake", "tests", "-system-harfbuzz", "-system-sqlite", "-no-alsa", "-accessibility", "-dbus-linked", "-fontconfig", "-glib", "-iconv", "-icu", "-openssl-linked", "-no-pch", "-no-rpath", "-no-separate-debug-info", "-reduce-relocations", "-no-directfb", "-no-linuxfb", "-no-kms", "-no-cups", "-system-proxies" ], "sources": [ { "type": "git", "url": "git://code.qt.io/qt/qtbase.git", "branch": "5.7.1" } ] }, { "name": "qt5-qtwebkit", "cleanup": [ "/bin", "/doc", "/mkspecs", "/include", "/lib/cmake", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "git://code.qt.io/qt/qtwebkit.git", "branch": "5.7" }, { "type": "script", "commands": [ "qmake" ], "dest-filename": "configure" } ] }, { "name": "libxml2", "config-opts": [ "--enable-shared", "--disable-static", "--without-python" ], "cleanup": [ "/bin", "/share", "/include", "/lib/cmake", "/lib/pkgconfig", "/lib/xml2Conf.sh" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libxml2.git" } ] }, { "name": "libxslt", "config-opts": [ "--enable-shared", "--disable-static", "--without-python" ], "cleanup": [ "/bin", "/share", "/include", "/lib/pkgconfig", "/lib/xslt2Conf.sh" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libxslt.git" } ] }, { "name": "libevent", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libevent.git" } ] }, { "name": "jansson", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/jansson.git" }, { "type": "script", "commands": [ "autoreconf --force --install" ] } ] }, { "name": "libzen", "subdir": "Project/GNU/Library", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/ZenLib.git" } ] }, { "name": "libmediainfo", "subdir": "Project/GNU/Library", "config-opts": [ "--enable-shared", "--disable-static", "--with-libcurl" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/MediaInfoLib.git" } ] }, { "name": "mediaconch-gui", "subdir": "Project/Qt", "sources": [ { "type": "git", "url": "https://github.com/MediaArea/MediaConch_SourceCode.git" }, { "type": "script", "commands": [ "qmake USE_WEBKIT=1 -after target.path=/app/bin" ], "dest-filename": "Project/Qt/configure" } ], "post-install": [ "install -m 0755 -d /app/share/metainfo", "install -m 0644 ../GNU/GUI/mediaconch-gui.metainfo.xml /app/share/metainfo/mediaconch-gui.metainfo.xml", "install -m 0755 -d /app/share/applications", "install -m 0644 ../GNU/GUI/mediaconch-gui.desktop /app/share/applications/mediaconch-gui.desktop", "install -m 0755 -d /app/share/icons/hicolor/256x256/apps", "install -m 0644 ../../Source/Resource/Image/MediaConch.png /app/share/icons/hicolor/256x256/apps/mediaconch.png" ] } ] } MediaConch/Project/Flatpak/net.mediaarea.mediaconch-server.json0000644000000000000000000000520314640052500023517 0ustar rootroot{ "app-id": "net.mediaarea.mediaconch-server", "sdk": "org.freedesktop.Sdk", "runtime": "org.freedesktop.Platform", "runtime-version": "1.4", "command": "mediaconchd", "finish-args": [ "--filesystem=host", "--share=network" ], "modules": [ { "name": "libxml2", "config-opts": [ "--enable-shared", "--disable-static", "--without-python" ], "cleanup": [ "/bin", "/share", "/include", "/lib/cmake", "/lib/pkgconfig", "/lib/xml2Conf.sh" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libxml2.git" } ] }, { "name": "libxslt", "config-opts": [ "--enable-shared", "--disable-static", "--without-python" ], "cleanup": [ "/bin", "/share", "/include", "/lib/pkgconfig", "/lib/xslt2Conf.sh" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libxslt.git" } ] }, { "name": "libevent", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libevent.git" } ] }, { "name": "jansson", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/jansson.git" }, { "type": "script", "commands": [ "autoreconf --force --install" ] } ] }, { "name": "libzen", "subdir": "Project/GNU/Library", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/ZenLib.git" } ] }, { "name": "libmediainfo", "subdir": "Project/GNU/Library", "config-opts": [ "--enable-shared", "--disable-static", "--with-libcurl" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/MediaInfoLib.git" } ] }, { "name": "mediaconchd", "subdir": "Project/GNU/Server", "sources": [ { "type": "git", "url": "https://github.com/MediaArea/MediaConch_SourceCode.git" } ] } ] } MediaConch/Project/Flatpak/net.mediaarea.mediaconch.json0000644000000000000000000000525014640052500022215 0ustar rootroot{ "app-id": "net.mediaarea.mediaconch", "sdk": "org.freedesktop.Sdk", "runtime": "org.freedesktop.Platform", "runtime-version": "1.4", "command": "mediaconch", "finish-args": [ "--filesystem=host", "--share=network" ], "modules": [ { "name": "libxml2", "config-opts": [ "--enable-shared", "--disable-static", "--without-python" ], "cleanup": [ "/bin", "/share", "/include", "/lib/cmake", "/lib/pkgconfig", "/lib/xml2Conf.sh" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libxml2.git" } ] }, { "name": "libxslt", "config-opts": [ "--enable-shared", "--disable-static", "--without-python" ], "cleanup": [ "/bin", "/share", "/include", "/lib/pkgconfig", "/lib/xslt2Conf.sh" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libxslt.git" } ] }, { "name": "libevent", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/libevent.git" } ] }, { "name": "jansson", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/jansson.git" }, { "type": "script", "commands": [ "autoreconf --force --install" ] } ] }, { "name": "libzen", "subdir": "Project/GNU/Library", "config-opts": [ "--enable-shared", "--disable-static" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/ZenLib.git" } ] }, { "name": "libmediainfo", "subdir": "Project/GNU/Library", "config-opts": [ "--enable-shared", "--disable-static", "--with-libcurl" ], "cleanup": [ "/bin", "/include", "/lib/pkgconfig" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/MediaInfoLib.git" } ] }, { "name": "mediaconch", "subdir": "Project/GNU/CLI", "config-opts": [ "--with-libcurl" ], "sources": [ { "type": "git", "url": "https://github.com/MediaArea/MediaConch_SourceCode.git" } ] } ] } MediaConch/Project/GNU/0000755000000000000000000000000014640052510013602 5ustar rootrootMediaConch/Project/GNU/CLI/0000755000000000000000000000000014640052510014211 5ustar rootrootMediaConch/Project/GNU/CLI/configure.ac0000644000000000000000000004503214640052510016503 0ustar rootrootdnl ######################################################################### dnl ### Init dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl Name and version dnl AC_INIT([mediaconch], [24.06.0]) dnl ------------------------------------------------------------------------- dnl Test if we are at the good place dnl AC_CONFIG_SRCDIR([../../../Source/CLI/CLI_Main.cpp]) dnl ------------------------------------------------------------------------- dnl sets build, host, target variables and the same with _alias dnl AC_CANONICAL_BUILD AC_CANONICAL_HOST AM_INIT_AUTOMAKE([foreign -Wall]) dnl ------------------------------------------------------------------------- dnl Autotools init dnl CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL LT_INIT dnl ######################################################################### dnl ### Options dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl Arguments - Enable dnl AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [Enable full debug]), , enable_debug=no) AC_ARG_ENABLE(gprof, AC_HELP_STRING([--enable-gprof], [Enable gprof log]), , enable_gprof=no) AC_ARG_ENABLE(universal_binary, AC_HELP_STRING([--enable-universal_binary], [Create Mac x86_64/arm64 Universal binary]), , enable_universal_binary=no) AC_ARG_ENABLE(arch-ppc, AC_HELP_STRING([--enable-arch-ppc], [Create Mac PPC architecture]), , enable_arch_ppc=no) AC_ARG_ENABLE(arch-ppc64, AC_HELP_STRING([--enable-arch-ppc64], [Create Mac PPC64 architecture]), , enable_arch_ppc64=no) AC_ARG_ENABLE(arch-i386, AC_HELP_STRING([--enable-arch-i386], [Create Mac i386 architecture]), , enable_arch_i386=no) AC_ARG_ENABLE(arch-x86_64, AC_HELP_STRING([--enable-arch-x86_64], [Create Mac x86_64 architecture]), , enable_arch_x86_64=no) AC_ARG_ENABLE(arch-arm64, AC_HELP_STRING([--enable-arch-arm64], [Create Mac arm64 architecture]), , enable_arch_arm64=no) AC_ARG_ENABLE(staticlibs, AC_HELP_STRING([--enable-staticlibs], [Use static libmediainfo and libzen]), , enable_staticlibs=no) AC_ARG_ENABLE([stream_missing], [AS_HELP_STRING(([--enable-stream_missing], [Disable stream support (old compilers)]))], , [enable_stream_missing=no]) dnl ------------------------------------------------------------------------- dnl Arguments - With dnl AC_ARG_WITH(macosx-sdk, AC_HELP_STRING([--with-macosx-sdk], [Force the Mac SDK]), , with_macosx_sdk=no) AC_ARG_WITH(macosx-version-min, AC_HELP_STRING([--with-macosx-version-min], [Force the Mac Version]), , with_macosx_version_min=no) AC_ARG_WITH(dll, AC_HELP_STRING([--with-dll], [Do not link to libmediainfo, dynamic loading]), , with_dll=no) AC_ARG_WITH(libmediainfo-name, AC_HELP_STRING([--with-libmediainfo-name], [Force libmediainfo filename]), , with_libmediainfo_name=mediainfo) AC_ARG_WITH(sqlite, AC_HELP_STRING([--with-sqlite], [Enable SQLite DB]), , with_sqlite=yes) AC_ARG_WITH(jansson, AC_HELP_STRING([--with-jansson], [Enable Jansson Library]), , with_jansson=yes) AC_ARG_WITH(libevent, AC_HELP_STRING([--with-libevent], [Enable Libevent]), , with_libevent=yes) dnl ------------------------------------------------------------------------- dnl External options dnl AC_CHECK_FUNCS(glob) dnl ######################################################################### dnl ### Options from elsewhere dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl Unicode dnl if test -e ../../../../ZenLib/Project/GNU/Library/libzen-config; then enable_unicode="$(../../../../ZenLib/Project/GNU/Library/libzen-config Unicode)" elif test "$(libzen-config Exists)" = "yes" ; then enable_unicode="$(libzen-config Unicode)" else if pkg-config --exists libzen; then enable_unicode="$(pkg-config --variable=Unicode libzen)" else AC_MSG_ERROR([libzen configuration is not found]) fi fi dnl ######################################################################### dnl ### Parsing options dnl ######################################################################### dnl ######################################################################### dnl ### MediaConch flags dnl ######################################################################### dnl ######################################################################### dnl ### C/C++ compiler options used to compile dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl Unicode dnl if test "$enable_unicode" = "yes"; then AC_DEFINE(UNICODE) MediaConch_CXXFLAGS="$MediaConch_CXXFLAGS -DUNICODE" MediaConch_Unicode="yes" else MediaConch_Unicode="no" fi dnl ------------------------------------------------------------------------- dnl Use DLL dnl if test "$with_dll" = "yes"; then AC_DEFINE(MEDIAINFO_DLL_RUNTIME) LIBS="$LIBS -ldl" fi dnl ------------------------------------------------------------------------- dnl Check if stream is available dnl AC_LANG([C++]) if test "$enable_unicode" = "yes"; then AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include int main () {std::wstringstream message; message<<1.0; return 0;}])], , [enable_stream_missing="yes"]) else AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include int main () {std::stringstream message; message<<1.0; return 0;}])], , [enable_stream_missing="yes"]) fi if test "$enable_stream_missing" = "yes"; then CXXFLAGS="$CXXFLAGS -DSTREAM_MISSING" fi dnl ------------------------------------------------------------------------- dnl GNU compiler dnl if test "$GXX" = yes ; then if test "$enable_debug" = "yes"; then CFLAGS="$CFLAGS -O0 -g -Wall -Wundef" CXXFLAGS="$CXXFLAGS -O0 -g -Wall -W -Wundef -Wcast-qual -Wno-ctor-dtor-privacy" else CFLAGS="$CFLAGS -O2" CXXFLAGS="$CXXFLAGS -O2" fi if test "$enable_gprof" = "yes"; then CFLAGS="$CFLAGS -pg -g" CXXFLAGS="$CXXFLAGS -pg -g" fi fi dnl ######################################################################### dnl ### Needed libs dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl libmediainfo-name dnl MediaInfoLib_LibName="$with_libmediainfo_name" dnl ------------------------------------------------------------------------- dnl MediaInfoLib dnl if test "$with_dll" != "yes"; then if test -e ../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config; then CXXFLAGS="$CXXFLAGS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="builtin (static)" LIBS="$LIBS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config LIBS_Static)" else with_mediainfolib="builtin" LIBS="$LIBS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config LIBS)" fi elif test "$(libmediainfo-config Exists)" = "yes" ; then CXXFLAGS="$CXXFLAGS $(libmediainfo-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="system (static)" LIBS="$LIBS $(libmediainfo-config LIBS_Static)" else with_mediainfolib="system" LIBS="$LIBS $(libmediainfo-config LIBS)" fi else if pkg-config --exists lib$with_libmediainfo_name; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libmediainfo)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="system (static)" LIBS="$LIBS $(pkg-config --variable=Libs_Static lib$with_libmediainfo_name)" else with_mediainfolib="system" LIBS="$LIBS $(pkg-config --libs lib$with_libmediainfo_name)" fi else AC_MSG_ERROR([libmediainfo configuration is not found]) fi fi else with_mediainfolib="load at runtime" fi dnl ------------------------------------------------------------------------- dnl ZenLib dnl if test -e ../../../../ZenLib/Project/GNU/Library/libzen-config; then CXXFLAGS="$CXXFLAGS $(../../../../ZenLib/Project/GNU/Library/libzen-config CXXFLAGS)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(../../../../ZenLib/Project/GNU/Library/libzen-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_zenlib="builtin (static)" LIBS="$LIBS $(../../../../ZenLib/Project/GNU/Library/libzen-config LIBS_Static)" else with_zenlib="builtin" LIBS="$LIBS $(../../../../ZenLib/Project/GNU/Library/libzen-config LIBS)" fi elif test "$(libzen-config Exists)" = "yes" ; then CXXFLAGS="$CXXFLAGS $(libzen-config CXXFLAGS)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(libzen-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_zenlib="system (static)" LIBS="$LIBS $(libzen-config LIBS_Static)" else with_zenlib="system" LIBS="$LIBS $(libzen-config LIBS)" fi else if pkg-config --exists libzen; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libzen)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libzen)" if test "$enable_staticlibs" = "yes"; then with_zenlib="system (static)" LIBS="$LIBS $(pkg-config --variable=Libs_Static libzen)" else with_zenlib="system" LIBS="$LIBS $(pkg-config --libs libzen)" fi else AC_MSG_ERROR([libzen configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libxml2 dnl if test -e ../../../../libxml2/libxml2.la; then CXXFLAGS="$CXXFLAGS -I../../../../libxml2/include" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS -I../../../../libxml2/include" if test "$enable_staticlibs" = "yes"; then with_libxml2="builtin (static)" LIBS="$LIBS ../../../../libxml2/.libs/libxml2.a" else with_libxml2="builtin" LIBS="$LIBS -L../../../../libxml2/.libs -lxml2" fi else if pkg-config --exists libxml2; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxml2)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libxml2)" if test "$enable_staticlibs" = "yes"; then with_libxml2="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxml2)" else with_libxml2="system" LIBS="$LIBS $(pkg-config --libs libxml2)" fi elif pkg-config --exists libxml-2.0; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxml-2.0)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libxml-2.0)" if test "$enable_staticlibs" = "yes"; then with_libxml2="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxml-2.0)" else with_libxml2="system" LIBS="$LIBS $(pkg-config --libs libxml-2.0)" fi else AC_MSG_ERROR([libxml2 configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libxslt dnl if test -e ../../../../libxslt/libxslt/.libs/libxslt.la; then CXXFLAGS="$CXXFLAGS -I../../../../libxslt" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS -I../../../../libxslt/libxslt" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS -I../../../../libxslt/libexslt" if test "$enable_staticlibs" = "yes"; then with_libxslt="builtin (static)" LIBS="$LIBS ../../../../libxslt/libxslt/.libs/libxslt.a" LIBS="$LIBS ../../../../libxslt/libexslt/.libs/libexslt.a" else with_libxslt="builtin" LIBS="$LIBS -L../../../../libxslt/libxslt/.libs -lxslt" LIBS="$LIBS -L../../../../libxslt/libexslt/.libs -lexslt" fi else if pkg-config --exists libxslt; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxslt)" CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libexslt)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libxslt)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libexslt)" if test "$enable_staticlibs" = "yes"; then with_libxslt="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxslt)" LIBS="$LIBS $(pkg-config --static --libs libexslt)" else with_libxslt="system" LIBS="$LIBS $(pkg-config --libs libxslt)" LIBS="$LIBS $(pkg-config --libs libexslt)" fi else AC_MSG_ERROR([libxslt configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libsqlite3 dnl if test "$with_sqlite" = "yes"; then if test -e ../../../../sqlite/.libs/libsqlite3.la; then CXXFLAGS="$CXXFLAGS -DHAVE_SQLITE -I../../../../sqlite" if test "$enable_staticlibs" = "yes"; then with_libsqlite3="builtin (static)" LIBS="$LIBS ../../../../sqlite/.libs/libsqlite3.a" else with_libsqlite3="builtin" LIBS="$LIBS -L../../../../sqlite/.libs -lsqlite3" fi elif pkg-config --exists sqlite3; then CXXFLAGS="$CXXFLAGS -DHAVE_SQLITE $(pkg-config --cflags sqlite3)" if test "$enable_staticlibs" = "yes"; then with_libsqlite3="system (static)" LIBS="$LIBS $(pkg-config --static --libs sqlite3)" else with_libsqlite3="system" LIBS="$LIBS $(pkg-config --libs sqlite3)" fi else AC_MSG_ERROR([libsqlite3 configuration is not found]) fi else with_libsqlite3="No" fi dnl ------------------------------------------------------------------------- dnl libjansson dnl if test "$with_jansson" = "yes"; then if test -e ../../../../jansson/src/.libs/libjansson.a; then CXXFLAGS="$CXXFLAGS -DHAVE_JANSSON -I../../../../jansson/src" if test "$enable_staticlibs" = "yes"; then with_libjansson="builtin (static)" LIBS="$LIBS ../../../../jansson/src/.libs/libjansson.a" else with_libjansson="builtin" LIBS="$LIBS -L../../../../jansson/src/.libs -ljansson" fi elif pkg-config --exists jansson; then CXXFLAGS="$CXXFLAGS -DHAVE_JANSSON $(pkg-config --cflags jansson)" if test "$enable_staticlibs" = "yes"; then with_libjansson="system (static)" LIBS="$LIBS $(pkg-config --static --libs jansson)" else with_libjansson="system" LIBS="$LIBS $(pkg-config --libs jansson)" fi else AC_MSG_ERROR([libjansson configuration is not found]) fi else with_libjansson="No" fi dnl ------------------------------------------------------------------------- dnl libevent2 dnl if test "$with_libevent" = "yes"; then if test -e ../../../../libevent/.libs/libevent.a; then CXXFLAGS="$CXXFLAGS -DHAVE_LIBEVENT -I../../../../libevent/include" if test "$enable_staticlibs" = "yes"; then with_libevent="builtin (static)" LIBS="$LIBS ../../../../libevent/.libs/libevent.a" else with_libevent="builtin" LIBS="$LIBS -L../../../../libevent/.libs -levent" fi elif pkg-config --exists libevent; then CXXFLAGS="$CXXFLAGS -DHAVE_LIBEVENT $(pkg-config --cflags libevent)" if test "$enable_staticlibs" = "yes"; then with_libevent="system (static)" LIBS="$LIBS $(pkg-config --static --libs libevent)" else with_libevent="system" LIBS="$LIBS $(pkg-config --libs libevent)" fi else AC_MSG_ERROR([libevent configuration is not found]) fi else with_libevent="No" fi dnl ######################################################################### dnl ### Compiler specific dnl ######################################################################### dnl ------------------------------------------------------------------------- case "${build}" in powerpc-montavista* ) CFLAGS="$CFLAGS -D__MONTAVISTA__" CXXFLAGS="$CXXFLAGS -D__MONTAVISTA__" ;; esac dnl ------------------------------------------------------------------------- dnl Mac Architecture and SDK dnl case "$host_os" in darwin* ) LDFLAGS="$LDFLAGS -framework CoreFoundation" ;; esac if test "$enable_universal_binary" = "yes"; then enable_arch_x86_64=yes enable_arch_arm64=yes fi if test "$enable_arch_ppc" = "yes"; then CXXFLAGS="$CXXFLAGS -arch ppc" CFLAGS="$CFLAGS -arch ppc" LDFLAGS="$LDFLAGS -arch ppc" fi if test "$enable_arch_ppc64" = "yes"; then CXXFLAGS="$CXXFLAGS -arch ppc64" CFLAGS="$CFLAGS -arch ppc64" LDFLAGS="$LDFLAGS -arch ppc64" fi if test "$enable_arch_i386" = "yes"; then CXXFLAGS="$CXXFLAGS -arch i386" CFLAGS="$CFLAGS -arch i386" LDFLAGS="$LDFLAGS -arch i386" fi if test "$enable_arch_x86_64" = "yes"; then CXXFLAGS="$CXXFLAGS -arch x86_64" CFLAGS="$CFLAGS -arch x86_64" LDFLAGS="$LDFLAGS -arch x86_64" fi if test "$enable_arch_arm64" = "yes"; then CXXFLAGS="$CXXFLAGS -arch arm64" CFLAGS="$CFLAGS -arch arm64" LDFLAGS="$LDFLAGS -arch arm64" fi if test "x$with_macosx_sdk" != xno ; then CXXFLAGS="-isysroot $with_macosx_sdk $CXXFLAGS" CFLAGS="-isysroot $with_macosx_sdk $CFLAGS" LDFLAGS="-isysroot $with_macosx_sdk $LDFLAGS" fi if test "x$with_macosx_version_min" != xno ; then CXXFLAGS="-mmacosx-version-min=$with_macosx_version_min $CXXFLAGS" CFLAGS="-mmacosx-version-min=$with_macosx_version_min $CFLAGS" LDFLAGS="-mmacosx-version-min=$with_macosx_version_min $LDFLAGS" fi dnl ######################################################################### dnl ### Output dnl ######################################################################### AC_OUTPUT(Makefile) dnl ######################################################################### dnl ### Report how we have been configured dnl ######################################################################### echo "" echo "Configured MediaConch for '$target'" echo "" echo " Unicode? $enable_unicode" echo " stream missing support? $enable_stream_missing" echo "" echo " Using libevent? $with_libevent" echo " Using libjansson? $with_libjansson" echo " Using libsqlite3? $with_libsqlite3" echo " Using libxml2? $with_libxml2" echo " Using libxslt? $with_libxslt" echo " Using libzen? $with_zenlib" echo " Using libmediainfo? $with_mediainfolib" echo "" echo " CXXFLAGS: $CXXFLAGS" echo " LIBS: $LIBS" MediaConch/Project/GNU/CLI/.gitignore0000644000000000000000000000057114640052500016203 0ustar rootroot# bin mediaconch # autotools generated Makefile.in aclocal.m4 autom4te.cache/ compile config.guess config.sub configure depcomp install-sh ltmain.sh missing # configure generated .deps/ Makefile config.log config.status libtool # make generated *.o # test test-driver test-suite.log SampleFiles # tests output simple.sh.log simple.sh.trs test_ffv1.sh.log test_ffv1.sh.trs MediaConch/Project/GNU/CLI/AddThisToRoot_CLI_compile.sh0000755000000000000000000002110114640052500021430 0ustar rootroot#!/bin/sh ################################################################## Parallel_Make () { local numprocs=1 case $OS in 'linux') numprocs=`grep -c ^processor /proc/cpuinfo 2>/dev/null` ;; 'mac') if type sysctl &> /dev/null; then numprocs=`sysctl -n hw.ncpu` fi ;; #"solaris') # on Solaris you need to use psrinfo -p instead # ;; #'freebsd') # ;; *) ;; esac if [ "$numprocs" = "" ] || [ "$numprocs" = "0" ]; then numprocs=1 fi make -s -j$numprocs } ################################################################## # Init Home=`pwd` ZenLib_Options="" MacOptions="--with-macosx-version-min=10.9" OS=$(uname -s) # expr isn't available on mac if [ "$OS" = "Darwin" ]; then OS="mac" # if the 5 first caracters of $OS equal "Linux" elif [ "$(expr substr $OS 1 5)" = "Linux" ]; then OS="linux" #elif [ "$(expr substr $OS 1 5)" = "SunOS" ]; then # OS="solaris" #elif [ "$(expr substr $OS 1 7)" = "FreeBSD" ]; then # OS="freebsd" fi if [ "$OS" = "mac" ] ; then export CXXFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $CXXFLAGS" export CFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $CFLAGS" export LDFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $LDFLAGS" fi ################################################################## # Configure zlib if test -e Shared/Source/zlib/configure; then cd Shared/Source/zlib test -e Makefile && rm Makefile chmod +x configure ./configure --static if test ! -e Makefile; then echo Problem while configuring zlib exit fi else echo zlib directory is not found exit fi cd $Home ################################################################## # Configure libxml2 if test -e libxml2/configure; then cd libxml2 test -e Makefile && rm Makefile chmod +x configure ./configure --without-python --without-modules --without-iconv --without-ftp --without-http --without-c14n --without-catalog --with-xpath --without-xptr --without-xinclude --without-iconv --without-icu --without-iso8859x --without-zlib --without-lzma --without-mem_debug --without-run_debug --without-regexps --with-tree --without-writer --with-pattern --with-push --without-valid --with-sax1 --without-legacy --with-output --with-schemas --with-schematron --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libxml2 exit fi else echo libxml2 directory is not found exit fi cd $Home ################################################################## # Configure libxslt if test -e libxslt/configure; then cd libxslt test -e Makefile && rm Makefile chmod +x configure ./configure --with-libxml-src="$Home"/libxml2 --without-python --without-modules --without-crypto --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libxslt exit fi else echo libxslt directory is not found exit fi cd $Home ################################################################## # Configure jansson if test -e jansson/configure; then cd jansson test -e Makefile && rm Makefile chmod +x configure ./configure --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring jansson exit fi else echo jansson directory is not found exit fi cd $Home ################################################################## # Configure libevent if test -e libevent/configure; then cd libevent test -e Makefile && rm Makefile chmod +x configure ./configure --disable-openssl --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libevent exit fi else echo libevent directory is not found exit fi cd $Home ################################################################## # Configure sqlite if test -e sqlite/configure; then cd sqlite test -e Makefile && rm Makefile chmod +x configure ./configure --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring sqlite exit fi else echo sqlite directory is not found exit fi cd $Home ################################################################## # Configure ZenLib if test -e ZenLib/Project/GNU/Library/configure; then cd ZenLib/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure --enable-static --disable-shared $MacOptions $ZenLib_Options $* else ./configure --enable-static --disable-shared $ZenLib_Options $* fi if test ! -e Makefile; then echo Problem while configuring ZenLib exit fi else echo ZenLib directory is not found exit fi cd $Home ################################################################## # Compile zlib cd Shared/Source/zlib make clean Parallel_Make if test -e libz.a; then echo zlib compiled else echo Problem while compiling zlib exit fi cd $Home ################################################################## # Compile ZenLib cd ZenLib/Project/GNU/Library/ make clean Parallel_Make if test -e libzen.la; then echo ZenLib compiled else echo Problem while compiling ZenLib exit fi cd $Home ################################################################## # Configure MediaInfoLib if test -e MediaInfoLib/Project/GNU/Library/configure; then cd MediaInfoLib/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure --enable-static --disable-shared $MacOptions --with-libcurl=runtime $* else ./configure --enable-static --disable-shared --with-libcurl=runtime $* fi if test ! -e Makefile; then echo Problem while configuring MediaInfoLib exit fi else echo MediaInfoLib directory is not found exit fi cd $Home ################################################################## # Compile libxml2 cd libxml2 make clean Parallel_Make if test -e libxml2.la; then echo libxml2 compiled else echo Problem while compiling libxml2 exit fi cd $Home ################################################################## # Compile libxslt cd libxslt make clean Parallel_Make if test -e libxslt/.libs/libxslt.la ; then echo libxslt compiled else echo Problem while compiling libxslt exit fi cd $Home ################################################################## # Compile jansson cd jansson make clean Parallel_Make if test -e src/.libs/libjansson.la; then echo jansson compiled else echo Problem while compiling jansson exit fi cd $Home ################################################################## # Compile libevent cd libevent make clean Parallel_Make if test -e .libs/libevent.la; then echo libevent compiled else echo Problem while compiling libevent exit fi cd $Home ################################################################## # Compile sqlite cd sqlite make clean Parallel_Make if test -e .libs/libsqlite3.la; then echo sqlite compiled else echo Problem while compiling sqlite exit fi cd $Home ################################################################## # Configure MediaConch if test -e MediaConch/Project/GNU/CLI/configure; then cd MediaConch/Project/GNU/CLI/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure $MacOptions --enable-staticlibs $* else ./configure --enable-staticlibs $* fi if test ! -e Makefile; then echo "Problem while configuring MediaConch (CLI)" exit fi else echo MediaConch directory is not found exit fi cd $Home ################################################################## # Compile MediaInfoLib cd MediaInfoLib/Project/GNU/Library/ make clean Parallel_Make if test -e libmediainfo.la; then echo MediaInfoLib compiled else echo Problem while compiling MediaInfoLib exit fi cd $Home ################################################################## # Compile MediaConch cd MediaConch/Project/GNU/CLI/ make clean Parallel_Make if test -e mediaconch; then echo "MediaConch (CLI) compiled" else echo "Problem while compiling MediaConch (CLI)" exit fi cd $Home ################################################################## echo "MediaConch executable is MediaConch/Project/GNU/CLI/mediaconch" echo "For installing, cd MediaConch/Project/GNU/CLI && make install" unset -v Home ZenLib_Options MacOptions OS MediaConch/Project/GNU/CLI/Makefile.am0000644000000000000000000000471714640052500016255 0ustar rootrootAUTOMAKE_OPTIONS = foreign subdir-objects AM_CXXFLAGS = -std=c++11 bin_PROGRAMS = mediaconch mediaconch_SOURCES = \ ../../../Source/CLI/CLI_Main.cpp \ ../../../Source/CLI/CLI.cpp \ ../../../Source/CLI/CommandLine_Parser.cpp \ ../../../Source/CLI/Help.cpp \ ../../../Source/Common/MediaConchLib.cpp \ ../../../Source/Common/Core.cpp \ ../../../Source/Common/Reports.cpp \ ../../../Source/Common/DaemonClient.cpp \ ../../../Source/Common/Schema.cpp \ ../../../Source/Common/Xslt.cpp \ ../../../Source/Common/JS_Tree.cpp \ ../../../Source/Common/Policies.cpp \ ../../../Source/Common/Policy.cpp \ ../../../Source/Common/XsltPolicy.cpp \ ../../../Source/Common/UnknownPolicy.cpp \ ../../../Source/Common/Database.cpp \ ../../../Source/Common/DatabaseReport.cpp \ ../../../Source/Common/NoDatabaseReport.cpp \ ../../../Source/Common/SQLLite.cpp \ ../../../Source/Common/SQLLiteReport.cpp \ ../../../Source/Common/Json.cpp \ ../../../Source/Common/Configuration.cpp \ ../../../Source/Common/REST_API.cpp \ ../../../Source/Common/Httpd.cpp \ ../../../Source/Common/LibEventHttpd.cpp \ ../../../Source/Common/Http.cpp \ ../../../Source/Common/LibEventHttp.cpp \ ../../../Source/Common/Queue.cpp \ ../../../Source/Common/Scheduler.cpp \ ../../../Source/Common/PluginsConfig.cpp \ ../../../Source/Common/PluginsManager.cpp \ ../../../Source/Common/Plugin.cpp \ ../../../Source/Common/VeraPDF.cpp \ ../../../Source/Common/DpfManager.cpp \ ../../../Source/Common/IMSC1.cpp \ ../../../Source/Common/PluginPreHook.cpp \ ../../../Source/Common/PluginFileLog.cpp \ ../../../Source/Common/WatchFoldersManager.cpp \ ../../../Source/Common/WatchFolder.cpp \ ../../../Source/Checker/Checker.cpp \ ../../../Source/Checker/Path.cpp \ ../../../Source/IMSC1/IMSC1Plugin.cpp \ ../../../Source/ThirdParty/tfsxml/tfsxml.cpp #mediaconch_LDFLAGS = -no-undefined -version-info 0:0:0 mediaconch_CPPFLAGS = $(XML_CFLAGS) mediaconch_LDFLAGS= $(XML_LIBS) INCLUDES = -I../../../Source -I../../../../MediaInfoLib/Source -I../../../../ZenLib/Source AM_TESTS_FD_REDIRECT = 9>&2 TESTS = \ test/simple.sh \ test/filename.sh \ test/test_mk.sh \ test/test_ffv1.sh \ test/test_policy.sh SAMPLES_DIR = test/SampleFiles clone_sample_files: $(SAMPLES_DIR) $(SAMPLES_DIR): git clone https://github.com/MediaArea/MediaConch_SampleFiles test/SampleFiles MediaConch/Project/GNU/CLI/autogen.sh0000755000000000000000000000104114640052500016205 0ustar rootroot#libtoolize if test "$(uname)" = "Darwin" ; then #Darwin based Systems like Mac OS X: libtoolize is called glibtoolize. glibtoolize --automake else libtoolize --automake fi #aclocal if test -e /usr/bin/aclocal-1.11 ; then #OpenSolaris: no aclocal aclocal-1.11 elif test -e /usr/bin/aclocal-1.10 ; then aclocal-1.10 else aclocal fi #automake if test -e /usr/bin/automake-1.11 ; then #OpenSolaris: no automake automake-1.11 -a elif test -e /usr/bin/automake-1.10 ; then automake-1.10 -a else automake -a fi autoreconf -fiMediaConch/Project/GNU/CLI/test/0000755000000000000000000000000014640052500015167 5ustar rootrootMediaConch/Project/GNU/CLI/test/filename.sh0000755000000000000000000000116614640052500017312 0ustar rootroot#!/bin/sh PATH_SCRIPT=$(dirname "$0") . "$PATH_SCRIPT/utils.sh" FILES_DIRECTORY="$PATH_SCRIPT/SampleFiles/ImplementationTestFiles/Matroska" cp "$FILES_DIRECTORY/tiny.mkv" "ti&ny.mkv" DATA="`./mediaconch -fx ti\&ny.mkv`" cmd_is_ok xml_is_correct mv "ti&ny.mkv" "tiny.mkv" DATA="`./mediaconch -fx 'ti>ny.mkv'`" cmd_is_ok xml_is_correct mv "ti>ny.mkv" "ti'ny.mkv" DATA="`./mediaconch -fx ti\'ny.mkv`" cmd_is_ok xml_is_correct mv "ti'ny.mkv" "ti\"ny.mkv" DATA="`./mediaconch -fx ti\\\"ny.mkv`" cmd_is_ok xml_is_correct rm "ti\"ny.mkv" MediaConch/Project/GNU/CLI/test/simple.sh0000755000000000000000000000040714640052500017020 0ustar rootroot#!/bin/sh PATH_SCRIPT=$(dirname "$0") . "$PATH_SCRIPT/utils.sh" OUTPUT="`./mediaconch -v`" cmd_is_ok OUTPUT="`./mediaconch --version`" cmd_is_ok OUTPUT="`./mediaconch --help`" cmd_is_ok OUTPUT="`./mediaconch -h`" cmd_is_ok OUTPUT="`./mediaconch`" cmd_is_ko MediaConch/Project/GNU/CLI/test/test_ffv1.sh0000755000000000000000000000435714640052500017440 0ustar rootroot#!/bin/sh PATH_SCRIPT=$(dirname "$0") . "$PATH_SCRIPT/utils.sh" FILES_DIRECTORY="$PATH_SCRIPT/SampleFiles/PolicyTestFiles/FFV1/" FILES="`ls "$FILES_DIRECTORY" | grep -v '\\.txt'`" for i in $FILES do DATA="`./mediaconch \"--implementationschema=$RESOURCE_PATH/schema/MatroskaSchema.xml\" \"$FILES_DIRECTORY/$i\"`" cmd_is_ok xml_is_invalid output_has_not_mc_xml output_has_not_mi_xml output_has_not_mt_xml DATA="`./mediaconch -mc -fx \"--implementationschema=$RESOURCE_PATH/schema/MatroskaSchema.xml\" \"$FILES_DIRECTORY/$i\"`" cmd_is_ok xml_is_correct output_has_mc_xml output_has_not_mi_xml output_has_not_mt_xml # output_xml_is_a_valid_mc DATA="`./mediaconch -mi -fx \"--implementationschema=$RESOURCE_PATH/schema/MatroskaSchema.xml\" \"$FILES_DIRECTORY/$i\"`" cmd_is_ok xml_is_correct output_has_not_mc_xml output_has_mi_xml output_has_not_mt_xml output_xml_is_a_valid_mi DATA="`./mediaconch -mt -fx \"--implementationschema=$RESOURCE_PATH/schema/MatroskaSchema.xml\" \"$FILES_DIRECTORY/$i\"`" cmd_is_ok xml_is_correct output_has_not_mc_xml output_has_not_mi_xml output_has_mt_xml output_xml_is_a_valid_mt DATA="`./mediaconch -mt -mi -fx \"--implementationschema=$RESOURCE_PATH/schema/MatroskaSchema.xml\" \"$FILES_DIRECTORY/$i\"`" cmd_is_ok xml_is_correct output_has_not_mc_xml output_has_mi_xml output_has_mt_xml output_xml_is_a_valid_ma DATA="`./mediaconch -mc -mi -fx \"--implementationschema=$RESOURCE_PATH/schema/MatroskaSchema.xml\" \"$FILES_DIRECTORY/$i\"`" cmd_is_ok xml_is_correct output_has_mc_xml output_has_mi_xml output_has_not_mt_xml # output_xml_is_a_valid_ma DATA="`./mediaconch -mc -mt -fx \"--implementationschema=$RESOURCE_PATH/schema/MatroskaSchema.xml\" \"$FILES_DIRECTORY/$i\"`" cmd_is_ok xml_is_correct output_has_mc_xml output_has_not_mi_xml output_has_mt_xml # output_xml_is_a_valid_ma DATA="`./mediaconch -mt -mi -mc -fx \"--implementationschema=$RESOURCE_PATH/schema/MatroskaSchema.xml\" \"$FILES_DIRECTORY/$i\"`" cmd_is_ok xml_is_correct output_has_mc_xml output_has_mi_xml output_has_mt_xml # output_xml_is_a_valid_ma done MediaConch/Project/GNU/CLI/test/test_mk.sh0000755000000000000000000000356214640052500017202 0ustar rootroot#!/bin/bash PATH_SCRIPT=$(dirname "${0}") . "${PATH_SCRIPT}/utils.sh" FILES_DIRECTORY="${PATH_SCRIPT}/SampleFiles/Groundtruth" MC="${PWD}/mediaconch" RCODE=0 pushd "${FILES_DIRECTORY}" >/dev/null for NAME in $(ls -v) ; do if [ ! -d "${NAME}" ] ; then continue fi pushd "${NAME}" >/dev/null OPTIONS= if [ -f "policy.xml" ] ; then OPTIONS=" -p policy.xml" fi for FILE in $(ls -v *.mkv) ; do DATA="$(${MC}${OPTIONS} -fx ${FILE})" # test if the check fail as expected if [ "${NAME}" == "Correct" ] ; then # skip this test for correct files T1="true" elif [ -f "policy.xml" ] ; then # test against a policy T1=`echo "${DATA}" | xmllint --xpath \ "boolean(//*/*[@name and @name=\"${NAME}\" and @fail_count and @fail_count!=\"0\"])" -` else T1=`echo "${DATA}" | xmllint --xpath \ "boolean(//*/*[@icid and @icid=\"${NAME}\" and @fail_count and @fail_count!=\"0\"])" -` fi # test if other check fail if [ -f "policy.xml" ] ; then # skip this test for policies T2="false" else T2=`echo "${DATA}" | xmllint --xpath \ "boolean(//*/*[@icid and @icid!=\"${NAME}\" and @fail_count and @fail_count!=\"0\"])" -` fi if [ "${T1}" != "true" ] || [ "${T2}" != "false" ] ; then echo "NOK: ${FILE}" >&9 RCODE=1 continue fi echo "OK: ${FILE}" >&9 done popd >/dev/null done popd >/dev/null exit ${RCODE} MediaConch/Project/GNU/CLI/test/test_policy.sh0000755000000000000000000000221614640052500020065 0ustar rootroot#!/bin/bash PATH_SCRIPT=$(dirname "${0}") . "${PATH_SCRIPT}/utils.sh" FILES_DIRECTORY="${PATH_SCRIPT}/SampleFiles/PolicyTestFiles" MC="${PWD}/mediaconch" RCODE=0 while read LINE ; do POLICY="$(echo "${LINE}" | cut -d':' -f1)" FILE="$(echo "${LINE}" | cut -d':' -f2)" OUTCOME="$(echo "${LINE}" | cut -d':' -f3)" TEST="${POLICY}:$(basename "${FILE}"):${OUTCOME}" if [ ! -e "${FILES_DIRECTORY}/Policy/${POLICY}" ] ; then echo "NOK: ${TEST}/${POLICY}, file not found" >&9 RCODE=1 continue fi if [ ! -e "${FILES_DIRECTORY}/${FILE}" ] ; then echo "NOK: ${TEST}/${FILE}, file not found" >&9 RCODE=1 continue fi pushd "${FILES_DIRECTORY}" >/dev/null 2>&1 DATA="$(${MC} -p Policy/${POLICY} -fx ${FILE})" T1=`echo "${DATA}" | xmllint --xpath \ "string(/*[local-name()='MediaConch']/*[local-name()='media']/*[local-name()='policy']/@outcome)" -` if [ "${T1}" == "${OUTCOME}" ] ; then echo "OK: ${TEST}" >&9 else echo "NOK: ${TEST}, failed" >&9 RCODE=1 fi popd >/dev/null 2>&1 done < "${PATH_SCRIPT}/test_policy.txt" exit ${RCODE} MediaConch/Project/GNU/CLI/test/test_policy.txt0000644000000000000000000000042414640052500020266 0ustar rootrootvalue.xml:Matroska/videofirst.mkv:pass value.xml:Matroska/audiofirst.mkv:fail info.xml:Matroska/audiofirst.mkv:info warn.xml:Matroska/audiofirst.mkv:warn levelcap.xml:Matroska/audiofirst.mkv:info operators.xml:Matroska/videofirst.mkv:pass mmt.xml:Matroska/videofirst.mkv:pass MediaConch/Project/GNU/CLI/test/utils.sh0000755000000000000000000000511514640052500016670 0ustar rootroot#!/bin/sh UTILS_PATH=$(dirname "$0") MC_ROOT_PATH=$UTILS_PATH/../../../../ RESOURCE_PATH=$MC_ROOT_PATH/Source/Resource DATA= if [ ! -f "$UTILS_PATH/mediaconch.xsd" ] then wget https://github.com/MediaArea/MediaAreaXml/raw/master/mediaconch.xsd -O "$UTILS_PATH/mediaconch.xsd" fi if [ ! -f "$UTILS_PATH/mediainfo_2_0.xsd" ] then wget https://mediaarea.net/mediainfo/mediainfo_2_0.xsd -O "$UTILS_PATH/mediainfo.xsd" fi if [ ! -f "$UTILS_PATH/mediatrace.xsd" ] then wget https://github.com/MediaArea/MediaAreaXml/raw/master/mediatrace.xsd -O "$UTILS_PATH/mediatrace.xsd" fi if [ ! -f "$UTILS_PATH/micromediatrace.xsd" ] then wget https://github.com/MediaArea/MediaAreaXml/raw/master/micromediatrace.xsd -O "$UTILS_PATH/micromediatrace.xsd" fi if [ ! -f "$UTILS_PATH/mediaarea.xsd" ] then wget https://github.com/MediaArea/MediaAreaXml/raw/master/mediaarea.xsd -O "$UTILS_PATH/mediaarea.xsd" fi cmd_is_ok() { if test $? -ne 0 then exit 1; fi } cmd_is_ko() { if test $? -eq 0 then exit 1; fi } xml_is_correct() { $(echo "$DATA" | xmllint --noout -) if test $? -ne 0 then exit 1; fi } xml_is_invalid() { $(echo "$DATA" | xmllint --noout -) if test $? -eq 0 then exit 1; fi } output_has_mc_xml() { if [ $(echo "$DATA" | grep -oc " int main () {std::wstringstream message; message<<1.0; return 0;}])], , [enable_stream_missing="yes"]) else AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include int main () {std::stringstream message; message<<1.0; return 0;}])], , [enable_stream_missing="yes"]) fi if test "$enable_stream_missing" = "yes"; then CXXFLAGS="$CXXFLAGS -DSTREAM_MISSING" fi dnl ------------------------------------------------------------------------- dnl GNU compiler dnl if test "$GXX" = yes ; then if test "$enable_debug" = "yes"; then CFLAGS="$CFLAGS -O0 -g3 -Wall -Wundef" CXXFLAGS="$CXXFLAGS -O0 -g3 -Wall -W -Wundef -Wcast-qual -Wno-ctor-dtor-privacy" else CFLAGS="$CFLAGS -O2" CXXFLAGS="$CXXFLAGS -O2" fi if test "$enable_gprof" = "yes"; then CFLAGS="$CFLAGS -pg -g" CXXFLAGS="$CXXFLAGS -pg -g" fi fi dnl ######################################################################### dnl ### Needed libs dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl libmediainfo-name dnl MediaInfoLib_LibName="$with_libmediainfo_name" dnl ------------------------------------------------------------------------- dnl MediaInfoLib dnl if test "$with_dll" != "yes"; then if test -e ../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config; then CXXFLAGS="$CXXFLAGS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="builtin (static)" LIBS="$LIBS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config LIBS_Static)" else with_mediainfolib="builtin" LIBS="$LIBS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config LIBS)" fi elif test "$(libmediainfo-config Exists)" = "yes" ; then CXXFLAGS="$CXXFLAGS $(libmediainfo-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="system (static)" LIBS="$LIBS $(libmediainfo-config LIBS_Static)" else with_mediainfolib="system" LIBS="$LIBS $(libmediainfo-config LIBS)" fi else if pkg-config --exists lib$with_libmediainfo_name; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libmediainfo)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="system (static)" LIBS="$LIBS $(pkg-config --variable=Libs_Static lib$with_libmediainfo_name)" else with_mediainfolib="system" LIBS="$LIBS $(pkg-config --libs lib$with_libmediainfo_name)" fi else AC_MSG_ERROR([libmediainfo configuration is not found]) fi fi else with_mediainfolib="load at runtime" fi dnl ------------------------------------------------------------------------- dnl ZenLib dnl if test -e ../../../../ZenLib/Project/GNU/Library/libzen-config; then CXXFLAGS="$CXXFLAGS $(../../../../ZenLib/Project/GNU/Library/libzen-config CXXFLAGS)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(../../../../ZenLib/Project/GNU/Library/libzen-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_zenlib="builtin (static)" LIBS="$LIBS $(../../../../ZenLib/Project/GNU/Library/libzen-config LIBS_Static)" else with_zenlib="builtin" LIBS="$LIBS $(../../../../ZenLib/Project/GNU/Library/libzen-config LIBS)" fi elif test "$(libzen-config Exists)" = "yes" ; then CXXFLAGS="$CXXFLAGS $(libzen-config CXXFLAGS)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(libzen-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_zenlib="system (static)" LIBS="$LIBS $(libzen-config LIBS_Static)" else with_zenlib="system" LIBS="$LIBS $(libzen-config LIBS)" fi else if pkg-config --exists libzen; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libzen)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libzen)" if test "$enable_staticlibs" = "yes"; then with_zenlib="system (static)" LIBS="$LIBS $(pkg-config --variable=Libs_Static libzen)" else with_zenlib="system" LIBS="$LIBS $(pkg-config --libs libzen)" fi else AC_MSG_ERROR([libzen configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libxml2 dnl if test -e ../../../../libxml2/libxml2.la; then CXXFLAGS="$CXXFLAGS -I../../../../libxml2/include" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS -I../../../../libxml2/include" if test "$enable_staticlibs" = "yes"; then with_libxml2="builtin (static)" LIBS="$LIBS ../../../../libxml2/.libs/libxml2.a" else with_libxml2="builtin" LIBS="$LIBS -L../../../../libxml2/.libs -lxml2" fi else if pkg-config --exists libxml2; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxml2)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libxml2)" if test "$enable_staticlibs" = "yes"; then with_libxml2="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxml2)" else with_libxml2="system" LIBS="$LIBS $(pkg-config --libs libxml2)" fi elif pkg-config --exists libxml-2.0; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxml-2.0)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libxml-2.0)" if test "$enable_staticlibs" = "yes"; then with_libxml2="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxml-2.0)" else with_libxml2="system" LIBS="$LIBS $(pkg-config --libs libxml-2.0)" fi else AC_MSG_ERROR([libxml2 configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libxslt dnl if test -e ../../../../libxslt/libxslt/.libs/libxslt.la; then CXXFLAGS="$CXXFLAGS -I../../../../libxslt" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS -I../../../../libxslt/libxslt" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS -I../../../../libxslt/libexslt" if test "$enable_staticlibs" = "yes"; then with_libxslt="builtin (static)" LIBS="$LIBS ../../../../libxslt/libxslt/.libs/libxslt.a" LIBS="$LIBS ../../../../libxslt/libexslt/.libs/libexslt.a" else with_libxslt="builtin" LIBS="$LIBS -L../../../../libxslt/libxslt/.libs -lxslt" LIBS="$LIBS -L../../../../libxslt/libexslt/.libs -lexslt" fi else if pkg-config --exists libxslt; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxslt)" CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libexslt)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libxslt)" MediaInfoLib_CXXFLAGS="$MediaInfoLib_CXXFLAGS $(pkg-config --cflags libexslt)" if test "$enable_staticlibs" = "yes"; then with_libxslt="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxslt)" LIBS="$LIBS $(pkg-config --static --libs libexslt)" else with_libxslt="system" LIBS="$LIBS $(pkg-config --libs libxslt)" LIBS="$LIBS $(pkg-config --libs libexslt)" fi else AC_MSG_ERROR([libxslt configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libsqlite3 dnl if test "$with_sqlite" = "yes"; then if test -e ../../../../sqlite/.libs/libsqlite3.la; then CXXFLAGS="$CXXFLAGS -DHAVE_SQLITE -I../../../../sqlite" if test "$enable_staticlibs" = "yes"; then with_libsqlite3="builtin (static)" LIBS="$LIBS ../../../../sqlite/.libs/libsqlite3.a" else with_libsqlite3="builtin" LIBS="$LIBS -L../../../../sqlite/.libs -lsqlite3" fi elif pkg-config --exists sqlite3; then CXXFLAGS="$CXXFLAGS -DHAVE_SQLITE $(pkg-config --cflags sqlite3)" if test "$enable_staticlibs" = "yes"; then with_libsqlite3="system (static)" LIBS="$LIBS $(pkg-config --static --libs sqlite3)" else with_libsqlite3="system" LIBS="$LIBS $(pkg-config --libs sqlite3)" fi else AC_MSG_ERROR([libsqlite3 configuration is not found]) fi else with_libsqlite3="No" fi dnl ------------------------------------------------------------------------- dnl libjansson dnl if test "$with_jansson" = "yes"; then if test -e ../../../../jansson/src/.libs/libjansson.a; then CXXFLAGS="$CXXFLAGS -DHAVE_JANSSON -I../../../../jansson/src" if test "$enable_staticlibs" = "yes"; then with_libjansson="builtin (static)" LIBS="$LIBS ../../../../jansson/src/.libs/libjansson.a" else with_libjansson="builtin" LIBS="$LIBS -L../../../../jansson/src/.libs -ljansson" fi elif pkg-config --exists jansson; then CXXFLAGS="$CXXFLAGS -DHAVE_JANSSON $(pkg-config --cflags jansson)" if test "$enable_staticlibs" = "yes"; then with_libjansson="system (static)" LIBS="$LIBS $(pkg-config --static --libs jansson)" else with_libjansson="system" LIBS="$LIBS $(pkg-config --libs jansson)" fi else AC_MSG_ERROR([libjansson configuration is not found]) fi else with_libjansson="No" fi dnl ------------------------------------------------------------------------- dnl libevent2 dnl if test "$with_libevent" = "yes"; then if test -e ../../../../libevent/.libs/libevent.a; then CXXFLAGS="$CXXFLAGS -DHAVE_LIBEVENT -I../../../../libevent/include" if test "$enable_staticlibs" = "yes"; then with_libevent="builtin (static)" LIBS="$LIBS ../../../../libevent/.libs/libevent.a" else with_libevent="builtin" LIBS="$LIBS -L../../../../libevent/.libs -levent" fi elif pkg-config --exists libevent; then CXXFLAGS="$CXXFLAGS -DHAVE_LIBEVENT $(pkg-config --cflags libevent)" if test "$enable_staticlibs" = "yes"; then with_libevent="system (static)" LIBS="$LIBS $(pkg-config --static --libs libevent)" else with_libevent="system" LIBS="$LIBS $(pkg-config --libs libevent)" fi else AC_MSG_ERROR([libevent configuration is not found]) fi else with_libevent="No" fi dnl ######################################################################### dnl ### Compiler specific dnl ######################################################################### dnl ------------------------------------------------------------------------- case "${build}" in powerpc-montavista* ) CFLAGS="$CFLAGS -D__MONTAVISTA__" CXXFLAGS="$CXXFLAGS -D__MONTAVISTA__" ;; esac dnl ------------------------------------------------------------------------- dnl Mac Architecture and SDK dnl case "$host_os" in darwin* ) LDFLAGS="$LDFLAGS -framework CoreFoundation" ;; esac if test "$enable_universal_binary" = "yes"; then enable_arch_x86_64=yes enable_arch_arm64=yes fi if test "$enable_arch_ppc" = "yes"; then CXXFLAGS="$CXXFLAGS -arch ppc" CFLAGS="$CFLAGS -arch ppc" LDFLAGS="$LDFLAGS -arch ppc" fi if test "$enable_arch_ppc64" = "yes"; then CXXFLAGS="$CXXFLAGS -arch ppc64" CFLAGS="$CFLAGS -arch ppc64" LDFLAGS="$LDFLAGS -arch ppc64" fi if test "$enable_arch_i386" = "yes"; then CXXFLAGS="$CXXFLAGS -arch i386" CFLAGS="$CFLAGS -arch i386" LDFLAGS="$LDFLAGS -arch i386" fi if test "$enable_arch_x86_64" = "yes"; then CXXFLAGS="$CXXFLAGS -arch x86_64" CFLAGS="$CFLAGS -arch x86_64" LDFLAGS="$LDFLAGS -arch x86_64" fi if test "$enable_arch_arm64" = "yes"; then CXXFLAGS="$CXXFLAGS -arch arm64" CFLAGS="$CFLAGS -arch arm64" LDFLAGS="$LDFLAGS -arch arm64" fi if test "x$with_macosx_sdk" != xno ; then CXXFLAGS="-isysroot $with_macosx_sdk $CXXFLAGS" CFLAGS="-isysroot $with_macosx_sdk $CFLAGS" LDFLAGS="-isysroot $with_macosx_sdk $LDFLAGS" fi if test "x$with_macosx_version_min" != xno ; then CXXFLAGS="-mmacosx-version-min=$with_macosx_version_min $CXXFLAGS" CFLAGS="-mmacosx-version-min=$with_macosx_version_min $CFLAGS" LDFLAGS="-mmacosx-version-min=$with_macosx_version_min $LDFLAGS" fi dnl ######################################################################### dnl ### Output dnl ######################################################################### AC_OUTPUT(Makefile) dnl ######################################################################### dnl ### Report how we have been configured dnl ######################################################################### echo "" echo "Configured MediaConch for '$target'" echo "" echo " Unicode? $enable_unicode" echo " stream missing support? $enable_stream_missing" echo "" echo " Using libevent? $with_libevent" echo " Using libjansson? $with_libjansson" echo " Using libsqlite3? $with_libsqlite3" echo " Using libxml2? $with_libxml2" echo " Using libxslt? $with_libxslt" echo " Using libzen? $with_zenlib" echo " Using libmediainfo? $with_mediainfolib" echo "" echo " CXXFLAGS: $CXXFLAGS" echo " LIBS: $LIBS" MediaConch/Project/GNU/Server/.gitignore0000644000000000000000000000037514640052500017044 0ustar rootroot# bin mediaconchd # autotools generated Makefile.in aclocal.m4 autom4te.cache/ compile config.guess config.sub configure depcomp install-sh ltmain.sh missing # configure generated .deps/ Makefile config.log config.status libtool # make generated *.o MediaConch/Project/GNU/Server/AddThisToRoot_Server_compile.sh0000755000000000000000000002114114640052500023132 0ustar rootroot#!/bin/sh ################################################################## Parallel_Make () { local numprocs=1 case $OS in 'linux') numprocs=`grep -c ^processor /proc/cpuinfo 2>/dev/null` ;; 'mac') if type sysctl &> /dev/null; then numprocs=`sysctl -n hw.ncpu` fi ;; #"solaris') # on Solaris you need to use psrinfo -p instead # ;; #'freebsd') # ;; *) ;; esac if [ "$numprocs" = "" ] || [ "$numprocs" = "0" ]; then numprocs=1 fi make -s -j$numprocs } ################################################################## # Init Home=`pwd` ZenLib_Options="" MacOptions="--with-macosx-version-min=10.9" OS=$(uname -s) # expr isn't available on mac if [ "$OS" = "Darwin" ]; then OS="mac" # if the 5 first caracters of $OS equal "Linux" elif [ "$(expr substr $OS 1 5)" = "Linux" ]; then OS="linux" #elif [ "$(expr substr $OS 1 5)" = "SunOS" ]; then # OS="solaris" #elif [ "$(expr substr $OS 1 7)" = "FreeBSD" ]; then # OS="freebsd" fi if [ "$OS" = "mac" ] ; then export CXXFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $CXXFLAGS" export CFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $CFLAGS" export LDFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $LDFLAGS" fi ################################################################## # Configure zlib if test -e Shared/Source/zlib/configure; then cd Shared/Source/zlib test -e Makefile && rm Makefile chmod +x configure ./configure --static if test ! -e Makefile; then echo Problem while configuring zlib exit fi else echo zlib directory is not found exit fi cd $Home ################################################################## # Configure libxml2 if test -e libxml2/configure; then cd libxml2 test -e Makefile && rm Makefile chmod +x configure ./configure --without-python --without-modules --without-iconv --without-ftp --without-http --without-c14n --without-catalog --with-xpath --without-xptr --without-xinclude --without-iconv --without-icu --without-iso8859x --without-zlib --without-lzma --without-mem_debug --without-run_debug --without-regexps --with-tree --without-writer --with-pattern --with-push --without-valid --with-sax1 --without-legacy --with-output --with-schemas --with-schematron --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libxml2 exit fi else echo libxml2 directory is not found exit fi cd $Home ################################################################## # Configure libxslt if test -e libxslt/configure; then cd libxslt test -e Makefile && rm Makefile chmod +x configure ./configure --with-libxml-src="$Home"/libxml2 --without-python --without-modules --without-crypto --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libxslt exit fi else echo libxslt directory is not found exit fi cd $Home ################################################################## # Configure jansson if test -e jansson/configure; then cd jansson test -e Makefile && rm Makefile chmod +x configure ./configure --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring jansson exit fi else echo jansson directory is not found exit fi cd $Home ################################################################## # Configure libevent if test -e libevent/configure; then cd libevent test -e Makefile && rm Makefile chmod +x configure ./configure --disable-openssl --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libevent exit fi else echo libevent directory is not found exit fi cd $Home ################################################################## # Configure sqlite if test -e sqlite/configure; then cd sqlite test -e Makefile && rm Makefile chmod +x configure ./configure --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring sqlite exit fi else echo sqlite directory is not found exit fi cd $Home ################################################################## # Configure ZenLib if test -e ZenLib/Project/GNU/Library/configure; then cd ZenLib/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure --enable-static --disable-shared $MacOptions $ZenLib_Options $* else ./configure --enable-static --disable-shared $ZenLib_Options $* fi if test ! -e Makefile; then echo Problem while configuring ZenLib exit fi else echo ZenLib directory is not found exit fi cd $Home ################################################################## # Compile zlib cd Shared/Source/zlib make clean Parallel_Make if test -e libz.a; then echo zlib compiled else echo Problem while compiling zlib exit fi cd $Home ################################################################## # Compile ZenLib cd ZenLib/Project/GNU/Library/ make clean Parallel_Make if test -e libzen.la; then echo ZenLib compiled else echo Problem while compiling ZenLib exit fi cd $Home ################################################################## # Configure MediaInfoLib if test -e MediaInfoLib/Project/GNU/Library/configure; then cd MediaInfoLib/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure --enable-static --disable-shared $MacOptions --with-libcurl=runtime $* else ./configure --enable-static --disable-shared --with-libcurl=runtime $* fi if test ! -e Makefile; then echo Problem while configuring MediaInfoLib exit fi else echo MediaInfoLib directory is not found exit fi cd $Home ################################################################## # Compile libxml2 cd libxml2 make clean Parallel_Make if test -e libxml2.la; then echo libxml2 compiled else echo Problem while compiling libxml2 exit fi cd $Home ################################################################## # Compile libxslt cd libxslt make clean Parallel_Make if test -e libxslt/.libs/libxslt.la ; then echo libxslt compiled else echo Problem while compiling libxslt exit fi cd $Home ################################################################## # Compile jansson cd jansson make clean Parallel_Make if test -e src/.libs/libjansson.la; then echo jansson compiled else echo Problem while compiling jansson exit fi cd $Home ################################################################## # Compile libevent cd libevent make clean Parallel_Make if test -e .libs/libevent.la; then echo libevent compiled else echo Problem while compiling libevent exit fi cd $Home ################################################################## # Compile sqlite cd sqlite make clean Parallel_Make if test -e .libs/libsqlite3.la; then echo sqlite compiled else echo Problem while compiling sqlite exit fi cd $Home ################################################################## # Configure MediaConch if test -e MediaConch/Project/GNU/Server/configure; then cd MediaConch/Project/GNU/Server/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure $MacOptions --enable-staticlibs $* else ./configure --enable-staticlibs $* fi if test ! -e Makefile; then echo "Problem while configuring MediaConch (Server)" exit fi else echo MediaConch directory is not found exit fi cd $Home ################################################################## # Compile MediaInfoLib cd MediaInfoLib/Project/GNU/Library/ make clean Parallel_Make if test -e libmediainfo.la; then echo MediaInfoLib compiled else echo Problem while compiling MediaInfoLib exit fi cd $Home ################################################################## # Compile MediaConch cd MediaConch/Project/GNU/Server/ make clean Parallel_Make if test -e mediaconchd; then echo "MediaConch (Server) compiled" else echo "Problem while compiling MediaConch (Server)" exit fi cd $Home ################################################################## echo "MediaConch Server executable is MediaConch/Project/GNU/Server/mediaconchd" echo "For installing, cd MediaConch/Project/GNU/Server && make install" unset -v Home ZenLib_Options MacOptions OS MediaConch/Project/GNU/Server/Makefile.am0000644000000000000000000000416314640052500017107 0ustar rootrootAUTOMAKE_OPTIONS = foreign subdir-objects AM_CXXFLAGS = -std=c++11 bin_PROGRAMS = mediaconchd mediaconchd_SOURCES = \ ../../../Source/Daemon/Daemon_Main.cpp \ ../../../Source/Daemon/Daemon.cpp \ ../../../Source/Daemon/Help.cpp \ ../../../Source/Common/MediaConchLib.cpp \ ../../../Source/Common/Core.cpp \ ../../../Source/Common/Reports.cpp \ ../../../Source/Common/DaemonClient.cpp \ ../../../Source/Common/Schema.cpp \ ../../../Source/Common/Xslt.cpp \ ../../../Source/Common/JS_Tree.cpp \ ../../../Source/Common/Policies.cpp \ ../../../Source/Common/Policy.cpp \ ../../../Source/Common/XsltPolicy.cpp \ ../../../Source/Common/UnknownPolicy.cpp \ ../../../Source/Common/Database.cpp \ ../../../Source/Common/DatabaseReport.cpp \ ../../../Source/Common/NoDatabaseReport.cpp \ ../../../Source/Common/SQLLite.cpp \ ../../../Source/Common/SQLLiteReport.cpp \ ../../../Source/Common/Json.cpp \ ../../../Source/Common/Configuration.cpp \ ../../../Source/Common/REST_API.cpp \ ../../../Source/Common/Httpd.cpp \ ../../../Source/Common/LibEventHttpd.cpp \ ../../../Source/Common/Http.cpp \ ../../../Source/Common/LibEventHttp.cpp \ ../../../Source/Common/Queue.cpp \ ../../../Source/Common/Scheduler.cpp \ ../../../Source/Common/PluginsManager.cpp \ ../../../Source/Common/PluginsConfig.cpp \ ../../../Source/Common/Plugin.cpp \ ../../../Source/Common/VeraPDF.cpp \ ../../../Source/Common/DpfManager.cpp \ ../../../Source/Common/IMSC1.cpp \ ../../../Source/Common/PluginPreHook.cpp \ ../../../Source/Common/PluginFileLog.cpp \ ../../../Source/Common/WatchFoldersManager.cpp \ ../../../Source/Common/WatchFolder.cpp \ ../../../Source/Checker/Checker.cpp \ ../../../Source/Checker/Path.cpp \ ../../../Source/IMSC1/IMSC1Plugin.cpp \ ../../../Source/ThirdParty/tfsxml/tfsxml.cpp #mediaconchd_LDFLAGS = -no-undefined -version-info 0:0:0 mediaconchd_CPPFLAGS = $(XML_CFLAGS) mediaconchd_LDFLAGS= $(XML_LIBS) INCLUDES = -I../../../Source -I../../../../MediaInfoLib/Source -I../../../../ZenLib/Source MediaConch/Project/GNU/Server/MediaConch.rc0000644000000000000000000000013214640052500017363 0ustar rootroot[ {"Use_Daemon": true}, {"Daemon_Address": "127.0.0.1"}, {"Daemon_Port": 8080} ] MediaConch/Project/GNU/Server/autogen.sh0000755000000000000000000000104114640052500017044 0ustar rootroot#libtoolize if test "$(uname)" = "Darwin" ; then #Darwin based Systems like Mac OS X: libtoolize is called glibtoolize. glibtoolize --automake else libtoolize --automake fi #aclocal if test -e /usr/bin/aclocal-1.11 ; then #OpenSolaris: no aclocal aclocal-1.11 elif test -e /usr/bin/aclocal-1.10 ; then aclocal-1.10 else aclocal fi #automake if test -e /usr/bin/automake-1.11 ; then #OpenSolaris: no automake automake-1.11 -a elif test -e /usr/bin/automake-1.10 ; then automake-1.10 -a else automake -a fi autoreconf -fiMediaConch/Project/GNU/Server/mediaconchd.service0000644000000000000000000000037214640052500020671 0ustar rootroot[Unit] Description=MediaConch Server [Service] Type=forking Environment="CONFIG=/etc/mediaconch/MediaConch.rc" ExecStart=/usr/bin/mediaconchd --configuration=${CONFIG} [Install] WantedBy=multi-user.target # Contributor: Vascom, vascom2@gmail.com" MediaConch/Project/GNU/GUI/0000755000000000000000000000000014640052500014225 5ustar rootrootMediaConch/Project/GNU/GUI/AddThisToRoot_GUI_compile.sh0000755000000000000000000002103014640052500021463 0ustar rootroot#!/bin/sh ################################################################## Parallel_Make () { local numprocs=1 case $OS in 'linux') numprocs=`grep -c ^processor /proc/cpuinfo 2>/dev/null` ;; 'mac') if type sysctl &> /dev/null; then numprocs=`sysctl -n hw.ncpu` fi ;; #"solaris') # on Solaris you need to use psrinfo -p instead # ;; #'freebsd') # ;; *) ;; esac if [ "$numprocs" = "" ] || [ "$numprocs" = "0" ]; then numprocs=1 fi make -s -j$numprocs } ################################################################## # Init Home=`pwd` ZenLib_Options="" MacOptions="--with-macosx-version-min=10.10 --enable-arch-x86_64" OS=$(uname -s) # expr isn't available on mac if [ "$OS" = "Darwin" ]; then OS="mac" BINARY="MediaConch.app/Contents/MacOS/MediaConch" if test -d ~/Qt/5.3/clang_64/bin; then export PATH=$PATH:~/Qt/5.3/clang_64/bin fi # if the 5 first caracters of $OS equal "Linux" elif [ "$(expr substr $OS 1 5)" = "Linux" ]; then OS="linux" BINARY="mediaconch-gui" #elif [ "$(expr substr $OS 1 5)" = "SunOS" ]; then # OS="solaris" #elif [ "$(expr substr $OS 1 7)" = "FreeBSD" ]; then # OS="freebsd" fi if [ "$OS" = "mac" ] ; then export CXXFLAGS="-mmacosx-version-min=10.10 -arch x86_64 $CXXFLAGS" export CFLAGS="-mmacosx-version-min=10.10 -arch x86_64 $CFLAGS" export LDFLAGS="-mmacosx-version-min=10.10 -arch x86_64 $LDFLAGS" fi ################################################################## # Configure zlib if test -e Shared/Source/zlib/configure; then cd Shared/Source/zlib test -e Makefile && rm Makefile chmod +x configure ./configure --static if test ! -e Makefile; then echo Problem while configuring zlib exit fi else echo zlib directory is not found exit fi cd $Home ################################################################## # Configure libxml2 if test -e libxml2/configure; then cd libxml2 test -e Makefile && rm Makefile chmod +x configure ./configure --without-python --without-modules --without-iconv --without-ftp --without-http --without-c14n --without-catalog --with-xpath --without-xptr --without-xinclude --without-iconv --without-icu --without-iso8859x --without-zlib --without-lzma --without-mem_debug --without-run_debug --without-regexps --with-tree --without-writer --with-pattern --with-push --without-valid --with-sax1 --without-legacy --with-output --with-schemas --with-schematron --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libxml2 exit fi else echo libxml2 directory is not found exit fi cd $Home ################################################################## # Configure libxslt if test -e libxslt/configure; then cd libxslt test -e Makefile && rm Makefile chmod +x configure ./configure --with-libxml-src="$Home"/libxml2 --without-python --without-modules --without-crypto --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libxslt exit fi else echo libxslt directory is not found exit fi cd $Home ################################################################## # Configure jansson if test -e jansson/configure; then cd jansson test -e Makefile && rm Makefile chmod +x configure ./configure --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring jansson exit fi else echo jansson directory is not found exit fi cd $Home ################################################################## # Configure libevent if test -e libevent/configure; then cd libevent test -e Makefile && rm Makefile chmod +x configure ./configure --disable-openssl --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libevent exit fi else echo libevent directory is not found exit fi cd $Home ################################################################## # Configure sqlite if test -e sqlite/configure; then cd sqlite test -e Makefile && rm Makefile chmod +x configure ./configure --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring sqlite exit fi else echo sqlite directory is not found exit fi cd $Home ################################################################## # Configure ZenLib if test -e ZenLib/Project/GNU/Library/configure; then cd ZenLib/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure --enable-static --disable-shared $MacOptions $ZenLib_Options $* else ./configure --enable-static --disable-shared $ZenLib_Options $* fi if test ! -e Makefile; then echo Problem while configuring ZenLib exit fi else echo ZenLib directory is not found exit fi cd $Home ################################################################## # Compile zlib cd Shared/Source/zlib make clean Parallel_Make if test -e libz.a; then echo zlib compiled else echo Problem while compiling zlib exit fi cd $Home ################################################################## # Compile ZenLib cd ZenLib/Project/GNU/Library/ make clean Parallel_Make if test -e libzen.la; then echo ZenLib compiled else echo Problem while compiling ZenLib exit fi cd $Home ################################################################## # Configure MediaInfoLib if test -e MediaInfoLib/Project/GNU/Library/configure; then cd MediaInfoLib/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure --enable-static --disable-shared $MacOptions --with-libcurl=runtime $* else ./configure --enable-static --disable-shared --with-libcurl=runtime $* fi if test ! -e Makefile; then echo Problem while configuring MediaInfoLib exit fi else echo MediaInfoLib directory is not found exit fi cd $Home ################################################################## # Compile libxml2 cd libxml2 make clean Parallel_Make if test -e libxml2.la; then echo libxml2 compiled else echo Problem while compiling libxml2 exit fi cd $Home ################################################################## # Compile libxslt cd libxslt make clean Parallel_Make if test -e libxslt/.libs/libxslt.la ; then echo libxslt compiled else echo Problem while compiling libxslt exit fi cd $Home ################################################################## # Compile jansson cd jansson make clean Parallel_Make if test -e src/.libs/libjansson.la; then echo jansson compiled else echo Problem while compiling jansson exit fi cd $Home ################################################################## # Compile libevent cd libevent make clean Parallel_Make if test -e .libs/libevent.la; then echo libevent compiled else echo Problem while compiling libevent exit fi cd $Home ################################################################## # Compile sqlite cd sqlite make clean Parallel_Make if test -e .libs/libsqlite3.la; then echo sqlite compiled else echo Problem while compiling sqlite exit fi cd $Home ################################################################## # Configure MediaConch if test -e MediaConch/Project/Qt/prepare; then cd MediaConch/Project/Qt/ test -e Makefile && rm Makefile chmod +x prepare ./prepare STATIC_LIBS=1 if test ! -e Makefile; then echo "Problem while configuring MediaConch (GUI)" exit fi else echo MediaConch directory is not found exit fi cd $Home ################################################################## # Compile MediaInfoLib cd MediaInfoLib/Project/GNU/Library make clean Parallel_Make if test -e libmediainfo.la; then echo MediaInfoLib compiled else echo Problem while compiling MediaInfoLib exit fi cd $Home ################################################################## # Compile MediaConch cd MediaConch/Project/Qt make clean Parallel_Make if test -e $BINARY; then echo "MediaConch (GUI) compiled" else echo "Problem while compiling MediaConch (GUI)" exit fi cd $Home ################################################################## echo "MediaConch executable is MediaConch/Project/Qt/$BINARY" unset -v Home ZenLib_Options MacOptions OS BINARY MediaConch/Project/GNU/GUI/mediaconch-gui.desktop0000644000000000000000000000224314640052500020475 0ustar rootroot[Desktop Entry] Type=Application Version=1.0 Name=MediaConch Comment=Implementation checker, policy checker, reporter, and fixer Icon=mediaconch Exec=mediaconch-gui %f Terminal=false MimeType=video/mpeg;video/x-mpeg;video/msvideo;video/quicktime;video/x-anim;video/x-avi;video/x-ms-asf;video/x-ms-wmv;video/x-msvideo;video/x-nsv;video/x-flc;video/x-fli;video/x-flv;video/vnd.rn-realvideo;video/mp4;video/mp4v-es;video/mp2t;application/ogg;application/x-ogg;video/x-ogm+ogg;audio/x-vorbis+ogg;application/x-matroska;audio/x-matroska;video/x-matroska;video/webm;audio/webm;audio/x-mp3;audio/x-mpeg;audio/mpeg;audio/x-wav;audio/x-mpegurl;audio/x-scpls;audio/x-m4a;audio/x-ms-asf;audio/x-ms-asx;audio/x-ms-wax;application/vnd.rn-realmedia;audio/x-real-audio;audio/x-pn-realaudio;application/x-flac;audio/x-flac;application/x-shockwave-flash;audio/vnd.rn-realaudio;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-wav;audio/x-pn-windows-acm;application/x-extension-mp4;audio/mp4;audio/amr;audio/amr-wb;application/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/x-opus+ogg; Categories=AudioVideo;AudioVideoEditing; Keywords=implementation;policy;checker;reporter;trace;mkv;matroska;ffv1;pcm; MediaConch/Project/GNU/GUI/mediaconch-gui.kde3.desktop0000644000000000000000000000054214640052500021322 0ustar rootroot[Desktop Entry] Name=mediaconch-gui.desktop ServiceTypes=audio/*,video/*,image/*,application/x-flash-video Actions=mediaconch-gui X-KDE-Priority=TopLevel Keywords=implementation;policy;checker;reporter;trace;mkv;matroska;ffv1;pcm; [Desktop Action mediaconch-gui] Name=MediaConch GenericName=MediaConch Exec=mediaconch-gui %u Icon=mediaconch MediaConch/Project/GNU/GUI/mediaconch-gui.kde4.desktop0000644000000000000000000000057014640052500021324 0ustar rootroot[Desktop Entry] Type=Service Name=mediaconch-gui.desktop ServiceTypes=KonqPopupMenu/Plugin,audio/*,video/*,image/*,application/x-flash-video Actions=mediaconch-gui X-KDE-Priority=TopLevel Keywords=implementation;policy;checker;reporter;trace;mkv;matroska;ffv1;pcm; [Desktop Action mediaconch-gui] Name=MediaConch GenericName=MediaConch Exec=mediaconch-gui %u Icon=mediaconch MediaConch/Project/GNU/GUI/mediaconch-gui.metainfo.xml0000644000000000000000000000637214640052500021434 0ustar rootroot mediaconch-gui.desktop CC-BY-3.0 BSD-2-Clause MediaConch Implementation checker, policy checker, reporter, and fixer

MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files

This project is maintained by MediaArea and funded by PREFORMA.

implementation policy checker reporter trace mkv matroska ffv1 pcm https://mediaarea.net/MediaConch/images/MediaConch_Linux_Checker_en.png https://mediaarea.net/MediaConch/images/MediaConch_Linux_Policy_en.png https://mediaarea.net/MediaConch/images/MediaConch_Linux_Report_en.png none none none none none none none none none none none none none none none none none none none none https://mediaarea.net/MediaConch https://mediaarea.net/MediaConch/documentation/FAQ.html https://mediaarea.net/MediaConch/documentation/HowToUse.html https://github.com/MediaArea/MediaConch/issues info@mediaarea.net MediaArea.net SARL
MediaConch/Project/GNU/Library/0000755000000000000000000000000014640052500015205 5ustar rootrootMediaConch/Project/GNU/Library/AddThisToRoot_DLL_compile.sh0000755000000000000000000002077414640052500022450 0ustar rootroot#!/bin/sh ################################################################## Parallel_Make () { local numprocs=1 case $OS in 'linux') numprocs=`grep -c ^processor /proc/cpuinfo 2>/dev/null` ;; 'mac') if type sysctl &> /dev/null; then numprocs=`sysctl -n hw.ncpu` fi ;; *) ;; esac if [ "$numprocs" = "" ] || [ "$numprocs" = "0" ]; then numprocs=1 fi make -s -j$numprocs } ################################################################## # Init Home=`pwd` ZenLib_Options="" MacOptions="--with-macosx-version-min=10.9" OS=$(uname -s) # expr isn't available on mac if [ "$OS" = "Darwin" ]; then OS="mac" # if the 5 first caracters of $OS equal "Linux" elif [ "$(expr substr $OS 1 5)" = "Linux" ]; then OS="linux" fi export CXXFLAGS="-fPIC $CXXFLAGS" export CFLAGS="-fPIC $CFLAGS" if [ "$OS" = "mac" ] ; then export CXXFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $CXXFLAGS" export CFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $CFLAGS" export LDFLAGS="-mmacosx-version-min=10.9 -arch x86_64 -arch arm64 $LDFLAGS" fi ################################################################## # Configure zlib if test -e Shared/Source/zlib/configure; then cd Shared/Source/zlib test -e Makefile && rm Makefile chmod +x configure ./configure --static if test ! -e Makefile; then echo Problem while configuring zlib exit fi else echo zlib directory is not found exit fi cd $Home ################################################################## # Configure libxml2 if test -e libxml2/configure; then cd libxml2 test -e Makefile && rm Makefile chmod +x configure ./configure --without-python --without-modules --without-iconv --without-ftp --without-http --without-c14n --without-catalog --with-xpath --without-xptr --without-xinclude --without-iconv --without-icu --without-iso8859x --without-zlib --without-lzma --without-mem_debug --without-run_debug --without-regexps --with-tree --without-writer --with-pattern --with-push --without-valid --with-sax1 --without-legacy --with-output --with-schemas --with-schematron --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libxml2 exit fi else echo libxml2 directory is not found exit fi cd $Home ################################################################## # Configure libxslt if test -e libxslt/configure; then cd libxslt test -e Makefile && rm Makefile chmod +x configure ./configure --with-libxml-src="$Home"/libxml2 --without-python --without-modules --without-crypto --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libxslt exit fi else echo libxslt directory is not found exit fi cd $Home ################################################################## # Configure jansson if test -e jansson/configure; then cd jansson test -e Makefile && rm Makefile chmod +x configure ./configure --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring jansson exit fi else echo jansson directory is not found exit fi cd $Home ################################################################## # Configure libevent if test -e libevent/configure; then cd libevent test -e Makefile && rm Makefile chmod +x configure ./configure --disable-openssl --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring libevent exit fi else echo libevent directory is not found exit fi cd $Home ################################################################## # Configure sqlite if test -e sqlite/configure; then cd sqlite test -e Makefile && rm Makefile chmod +x configure ./configure --enable-static --disable-shared if test ! -e Makefile; then echo Problem while configuring sqlite exit fi else echo sqlite directory is not found exit fi cd $Home ################################################################## # Configure ZenLib if test -e ZenLib/Project/GNU/Library/configure; then cd ZenLib/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure --enable-static --disable-shared $MacOptions $ZenLib_Options $* else ./configure --enable-static --disable-shared $ZenLib_Options $* fi if test ! -e Makefile; then echo Problem while configuring ZenLib exit fi else echo ZenLib directory is not found exit fi cd $Home ################################################################## # Compile zlib cd Shared/Source/zlib make clean Parallel_Make if test -e libz.a; then echo zlib compiled else echo Problem while compiling zlib exit fi cd $Home ################################################################## # Compile ZenLib cd ZenLib/Project/GNU/Library/ make clean Parallel_Make if test -e libzen.la; then echo ZenLib compiled else echo Problem while compiling ZenLib exit fi cd $Home ################################################################## # Configure MediaInfoLib if test -e MediaInfoLib/Project/GNU/Library/configure; then cd MediaInfoLib/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure --enable-staticlibs --enable-static --disable-shared $MacOptions --with-libcurl=runtime $* else ./configure --enable-staticlibs --enable-static --disable-shared --with-libcurl=runtime $* fi if test ! -e Makefile; then echo Problem while configuring MediaInfoLib exit fi else echo MediaInfoLib directory is not found exit fi cd $Home ################################################################## # Compile libxml2 cd libxml2 make clean Parallel_Make if test -e libxml2.la; then echo libxml2 compiled else echo Problem while compiling libxml2 exit fi cd $Home ################################################################## # Compile libxslt cd libxslt make clean Parallel_Make if test -e libxslt/.libs/libxslt.la ; then echo libxslt compiled else echo Problem while compiling libxslt exit fi cd $Home ################################################################## # Compile jansson cd jansson make clean Parallel_Make if test -e src/.libs/libjansson.la; then echo jansson compiled else echo Problem while compiling jansson exit fi cd $Home ################################################################## # Compile libevent cd libevent make clean Parallel_Make if test -e .libs/libevent.la; then echo libevent compiled else echo Problem while compiling libevent exit fi cd $Home ################################################################## # Compile sqlite cd sqlite make clean Parallel_Make if test -e .libs/libsqlite3.la; then echo sqlite compiled else echo Problem while compiling sqlite exit fi cd $Home ################################################################## # Configure MediaConch if test -e MediaConch/Project/GNU/Library/configure; then cd MediaConch/Project/GNU/Library/ test -e Makefile && rm Makefile chmod +x configure if [ "$OS" = "mac" ]; then ./configure $MacOptions --enable-shared --enable-staticlibs $* else ./configure --enable-shared --enable-staticlibs $* fi if test ! -e Makefile; then echo "Problem while configuring MediaConch (Library)" exit fi else echo MediaConch directory is not found exit fi cd $Home ################################################################## # Compile MediaInfoLib cd MediaInfoLib/Project/GNU/Library/ make clean Parallel_Make if test -e libmediainfo.la; then echo MediaInfoLib compiled else echo Problem while compiling MediaInfoLib exit fi cd $Home ################################################################## # Compile MediaConch cd MediaConch/Project/GNU/Library/ make clean Parallel_Make if test -e .libs/libmediaconch.la ; then echo "MediaConch (Library) compiled" else echo "Problem while compiling MediaConch (Library)" exit fi cd $Home ################################################################## echo "MediaConch shared object is in MediaConch/Project/GNU/Library/.libs" echo "For installing, cd MediaConch/Project/GNU/Library && make install" unset -v Home ZenLib_Options MacOptions OS MediaConch/Project/GNU/Library/Makefile.am0000644000000000000000000000506014640052500017242 0ustar rootrootAUTOMAKE_OPTIONS = foreign subdir-objects AM_CXXFLAGS = -std=c++11 lib_LTLIBRARIES = lib@MediaConchLib_LibName@.la lib@MediaConchLib_LibName@_la_SOURCES = \ ../../../Source/Lib/Lib.cpp \ ../../../Source/Common/MediaConchLib.cpp \ ../../../Source/Common/Core.cpp \ ../../../Source/Common/Reports.cpp \ ../../../Source/Common/DaemonClient.cpp \ ../../../Source/Common/Schema.cpp \ ../../../Source/Common/Xslt.cpp \ ../../../Source/Common/JS_Tree.cpp \ ../../../Source/Common/Policies.cpp \ ../../../Source/Common/Policy.cpp \ ../../../Source/Common/XsltPolicy.cpp \ ../../../Source/Common/UnknownPolicy.cpp \ ../../../Source/Common/Database.cpp \ ../../../Source/Common/DatabaseReport.cpp \ ../../../Source/Common/NoDatabaseReport.cpp \ ../../../Source/Common/SQLLite.cpp \ ../../../Source/Common/SQLLiteReport.cpp \ ../../../Source/Common/Json.cpp \ ../../../Source/Common/Configuration.cpp \ ../../../Source/Common/REST_API.cpp \ ../../../Source/Common/Httpd.cpp \ ../../../Source/Common/LibEventHttpd.cpp \ ../../../Source/Common/Http.cpp \ ../../../Source/Common/LibEventHttp.cpp \ ../../../Source/Common/Queue.cpp \ ../../../Source/Common/Scheduler.cpp \ ../../../Source/Common/PluginsConfig.cpp \ ../../../Source/Common/PluginsManager.cpp \ ../../../Source/Common/Plugin.cpp \ ../../../Source/Common/VeraPDF.cpp \ ../../../Source/Common/DpfManager.cpp \ ../../../Source/Common/IMSC1.cpp \ ../../../Source/Common/PluginPreHook.cpp \ ../../../Source/Common/PluginFileLog.cpp \ ../../../Source/Common/WatchFoldersManager.cpp \ ../../../Source/Common/WatchFolder.cpp \ ../../../Source/Checker/Checker.cpp \ ../../../Source/Checker/Path.cpp \ ../../../Source/IMSC1/IMSC1Plugin.cpp \ ../../../Source/ThirdParty/tfsxml/tfsxml.cpp #lib@MediaConchLib_LibName@includedir = $(includedir)/MediaConch #lib@MediaConchLib_LibName@include_HEADERS = \ # ../../../Source/Lib/MediaConchLib.h if COMPILE_DLL lib@MediaConchLib_LibName@_la_SOURCES += \ ../../../Source/Lib/MediaConchDLL.cpp lib@MediaConchLib_LibName@DLLincludedir = $(includedir)/MediaConch lib@MediaConchLib_LibName@DLLinclude_HEADERS = \ ../../../Source/Lib/MediaConchDLL.h endif lib@MediaConchLib_LibName@_la_LDFLAGS = -no-undefined -version-info 0:0:0 $(XML_LIBS) lib@MediaConchLib_LibName@_la_CPPFLAGS = $(XML_CFLAGS) -I../../../Source -I../../../../MediaInfoLib/Source -I../../../../ZenLib/Source pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libmediaconch.pc MediaConch/Project/GNU/Library/autogen.sh0000755000000000000000000000104114640052500017202 0ustar rootroot#libtoolize if test "$(uname)" = "Darwin" ; then #Darwin based Systems like Mac OS X: libtoolize is called glibtoolize. glibtoolize --automake else libtoolize --automake fi #aclocal if test -e /usr/bin/aclocal-1.11 ; then #OpenSolaris: no aclocal aclocal-1.11 elif test -e /usr/bin/aclocal-1.10 ; then aclocal-1.10 else aclocal fi #automake if test -e /usr/bin/automake-1.11 ; then #OpenSolaris: no automake automake-1.11 -a elif test -e /usr/bin/automake-1.10 ; then automake-1.10 -a else automake -a fi autoreconf -fiMediaConch/Project/GNU/Library/configure.ac0000644000000000000000000004501614640052500017501 0ustar rootrootdnl ######################################################################### dnl ### Init dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl Name and version dnl AC_INIT([libmediaconch], [18.03.2]) LT_INIT([disable-static]) dnl ------------------------------------------------------------------------- dnl Test if we are at the good place dnl AC_CONFIG_SRCDIR([../../../Source/Lib/Lib.cpp]) dnl ------------------------------------------------------------------------- dnl sets build, host, target variables and the same with _alias dnl AC_CANONICAL_BUILD AC_CANONICAL_HOST AM_INIT_AUTOMAKE([foreign -Wall]) dnl ------------------------------------------------------------------------- dnl Autotools init dnl CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL dnl ######################################################################### dnl ### Options dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl Arguments - Enable dnl AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [Enable full debug]), , enable_debug=no) AC_ARG_ENABLE(gprof, AS_HELP_STRING([--enable-gprof], [Enable gprof log]), , enable_gprof=no) AC_ARG_ENABLE(universal_binary, AS_HELP_STRING([--enable-universal_binary], [Create Mac PPC/i386 Universal binary]), , enable_universal_binary=no) AC_ARG_ENABLE(arch-x86_64, AS_HELP_STRING([--enable-arch-x86_64], [Create Mac x86_64 architecture]), , enable_arch_x86_64=no) AC_ARG_ENABLE(arch-arm64, AS_HELP_STRING([--enable-arch-arm64], [Create MAC ARM64 architecture]), , enable_arch_arm64=no) AC_ARG_ENABLE(staticlibs, AS_HELP_STRING([--enable-staticlibs], [Use static libmediainfo and libzen]), , enable_staticlibs=no) AC_ARG_ENABLE(dll, AS_HELP_STRING([--disable-dll], [Disable dll iterface]), , MediaConchDll=yes) dnl ------------------------------------------------------------------------- dnl Arguments - With dnl AC_ARG_WITH(macosx-sdk, AS_HELP_STRING([--with-macosx-sdk], [Force the Mac SDK]), , with_macosx_sdk=no) AC_ARG_WITH(macosx-version-min, AS_HELP_STRING([--with-macosx-version-min], [Force the Mac Version]), , with_macosx_version_min=no) AC_ARG_WITH(dll, AS_HELP_STRING([--with-dll], [Do not link to libmediainfo, dynamic loading]), , with_dll=no) AC_ARG_WITH(libmediainfo-name, AS_HELP_STRING([--with-libmediainfo-name], [Force libmediainfo filename]), , with_libmediainfo_name=mediainfo) AC_ARG_WITH(libmediaconch-name, AS_HELP_STRING([--with-libmediaconch-name], [Force libmediaconch filename]), , with_libmediaconch_name=mediaconch) AC_ARG_WITH(sqlite, AS_HELP_STRING([--with-sqlite], [Enable SQLite DB]), , with_sqlite=yes) AC_ARG_WITH(jansson, AS_HELP_STRING([--with-jansson], [Enable Jansson Library]), , with_jansson=yes) AC_ARG_WITH(libevent, AS_HELP_STRING([--with-libevent], [Enable Libevent]), , with_libevent=yes) AM_CONDITIONAL([COMPILE_DLL], [test "$MediaConchDll" != "no"]) dnl ######################################################################### dnl ### Options from elsewhere dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl Unicode dnl if test -e ../../../../ZenLib/Project/GNU/Library/libzen-config; then enable_unicode="$(../../../../ZenLib/Project/GNU/Library/libzen-config Unicode)" elif test "$(libzen-config Exists)" = "yes" ; then enable_unicode="$(libzen-config Unicode)" else if pkg-config --exists libzen; then enable_unicode="$(pkg-config --variable=Unicode libzen)" else AC_MSG_ERROR([libzen configuration is not found]) fi fi dnl ######################################################################### dnl ### Parsing options dnl ######################################################################### dnl ######################################################################### dnl ### MediaConch flags dnl ######################################################################### dnl ######################################################################### dnl ### C/C++ compiler options used to compile dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl Unicode dnl if test "$enable_unicode" = "yes"; then AC_DEFINE(UNICODE) MediaConchLib_CXXFLAGS="$MediaConchLib_CXXFLAGS -DUNICODE" MediaConchLib_Unicode="yes" else MediaConchLib_Unicode="no" fi dnl ------------------------------------------------------------------------- dnl Use DLL dnl if test "$with_dll" = "yes"; then AC_DEFINE(MEDIAINFO_DLL_RUNTIME) LIBS="$LIBS -ldl" fi dnl ------------------------------------------------------------------------- dnl Check if stream is available dnl AC_LANG([C++]) if test "$enable_unicode" = "yes"; then AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include int main () {std::wstringstream message; message<<1.0; return 0;}])], , [enable_stream_missing="yes"]) else AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include int main () {std::stringstream message; message<<1.0; return 0;}])], , [enable_stream_missing="yes"]) fi dnl ------------------------------------------------------------------------- dnl libmediaconch-name dnl MediaConchLib_LibName="$with_libmediaconch_name" dnl ------------------------------------------------------------------------- dnl GNU compiler dnl if test "$GXX" = yes ; then if test "$enable_debug" = "yes"; then CFLAGS="$CFLAGS -O0 -g -Wall -Wundef" CXXFLAGS="$CXXFLAGS -O0 -g -Wall -W -Wundef -Wcast-qual -Wno-ctor-dtor-privacy" else CFLAGS="$CFLAGS -O2" CXXFLAGS="$CXXFLAGS -O2" fi if test "$enable_gprof" = "yes"; then CFLAGS="$CFLAGS -pg -g" CXXFLAGS="$CXXFLAGS -pg -g" fi fi dnl ######################################################################### dnl ### Needed libs dnl ######################################################################### dnl ------------------------------------------------------------------------- dnl libmediainfo-name dnl MediaInfoLib_LibName="$with_libmediainfo_name" dnl ------------------------------------------------------------------------- dnl MediaInfoLib dnl if test "$with_dll" != "yes"; then if test -e ../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config; then CXXFLAGS="$CXXFLAGS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="builtin (static)" LIBS="$LIBS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config LIBS_Static)" else with_mediainfolib="builtin" LIBS="$LIBS $(../../../../MediaInfoLib/Project/GNU/Library/libmediainfo-config LIBS)" fi elif test "$(libmediainfo-config Exists)" = "yes" ; then CXXFLAGS="$CXXFLAGS $(libmediainfo-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="system (static)" LIBS="$LIBS $(libmediainfo-config LIBS_Static)" else with_mediainfolib="system" LIBS="$LIBS $(libmediainfo-config LIBS)" fi else if pkg-config --exists lib$with_libmediainfo_name; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libmediainfo)" if test "$enable_staticlibs" = "yes"; then with_mediainfolib="system (static)" LIBS="$LIBS $(pkg-config --variable=Libs_Static lib$with_libmediainfo_name)" else with_mediainfolib="system" LIBS="$LIBS $(pkg-config --libs lib$with_libmediainfo_name)" fi else AC_MSG_ERROR([libmediainfo configuration is not found]) fi fi else with_mediainfolib="load at runtime" fi dnl ------------------------------------------------------------------------- dnl ZenLib dnl if test -e ../../../../ZenLib/Project/GNU/Library/libzen-config; then CXXFLAGS="$CXXFLAGS $(../../../../ZenLib/Project/GNU/Library/libzen-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_zenlib="builtin (static)" LIBS="$LIBS $(../../../../ZenLib/Project/GNU/Library/libzen-config LIBS_Static)" else with_zenlib="builtin" LIBS="$LIBS $(../../../../ZenLib/Project/GNU/Library/libzen-config LIBS)" fi elif test "$(libzen-config Exists)" = "yes" ; then CXXFLAGS="$CXXFLAGS $(libzen-config CXXFLAGS)" if test "$enable_staticlibs" = "yes"; then with_zenlib="system (static)" LIBS="$LIBS $(libzen-config LIBS_Static)" else with_zenlib="system" LIBS="$LIBS $(libzen-config LIBS)" fi else if pkg-config --exists libzen; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libzen)" if test "$enable_staticlibs" = "yes"; then with_zenlib="system (static)" LIBS="$LIBS $(pkg-config --variable=Libs_Static libzen)" else with_zenlib="system" LIBS="$LIBS $(pkg-config --libs libzen)" fi else AC_MSG_ERROR([libzen configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libxml2 dnl if test -e ../../../../libxml2/libxml2.la; then CXXFLAGS="$CXXFLAGS -I../../../../libxml2/include" if test "$enable_staticlibs" = "yes"; then with_libxml2="builtin (static)" LIBS="$LIBS ../../../../libxml2/.libs/libxml2.a" else with_libxml2="builtin" LIBS="$LIBS -L../../../../libxml2/.libs -lxml2" fi else if pkg-config --exists libxml2; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxml2)" if test "$enable_staticlibs" = "yes"; then with_libxml2="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxml2)" else with_libxml2="system" LIBS="$LIBS $(pkg-config --libs libxml2)" fi elif pkg-config --exists libxml-2.0; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxml-2.0)" if test "$enable_staticlibs" = "yes"; then with_libxml2="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxml-2.0)" else with_libxml2="system" LIBS="$LIBS $(pkg-config --libs libxml-2.0)" fi else AC_MSG_ERROR([libxml2 configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libxslt dnl if test -e ../../../../libxslt/libxslt/.libs/libxslt.la; then CXXFLAGS="$CXXFLAGS -I../../../../libxslt" if test "$enable_staticlibs" = "yes"; then with_libxslt="builtin (static)" LIBS="$LIBS ../../../../libxslt/libxslt/.libs/libxslt.a" LIBS="$LIBS ../../../../libxslt/libexslt/.libs/libexslt.a" else with_libxslt="builtin" LIBS="$LIBS -L../../../../libxslt/libxslt/.libs -lxslt" LIBS="$LIBS -L../../../../libxslt/libexslt/.libs -lexslt" fi else if pkg-config --exists libxslt; then CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libxslt)" CXXFLAGS="$CXXFLAGS $(pkg-config --cflags libexslt)" if test "$enable_staticlibs" = "yes"; then with_libxslt="system (static)" LIBS="$LIBS $(pkg-config --static --libs libxslt)" LIBS="$LIBS $(pkg-config --static --libs libexslt)" else with_libxslt="system" LIBS="$LIBS $(pkg-config --libs libxslt)" LIBS="$LIBS $(pkg-config --libs libexslt)" fi else AC_MSG_ERROR([libxslt configuration is not found]) fi fi dnl ------------------------------------------------------------------------- dnl libsqlite3 dnl if test "$with_sqlite" = "yes"; then if test -e ../../../../sqlite/.libs/libsqlite3.la; then CXXFLAGS="$CXXFLAGS -DHAVE_SQLITE -I../../../../sqlite" if test "$enable_staticlibs" = "yes"; then with_libsqlite3="builtin (static)" LIBS="$LIBS ../../../../sqlite/.libs/libsqlite3.a" else with_libsqlite3="builtin" LIBS="$LIBS -L../../../../sqlite/.libs -lsqlite3" fi elif pkg-config --exists sqlite3; then CXXFLAGS="$CXXFLAGS -DHAVE_SQLITE $(pkg-config --cflags sqlite3)" if test "$enable_staticlibs" = "yes"; then with_libsqlite3="system (static)" LIBS="$LIBS $(pkg-config --static --libs sqlite3)" else with_libsqlite3="system" LIBS="$LIBS $(pkg-config --libs sqlite3)" fi else AC_MSG_ERROR([libsqlite3 configuration is not found]) fi else with_libsqlite3="No" fi dnl ------------------------------------------------------------------------- dnl libjansson dnl if test "$with_jansson" = "yes"; then if test -e ../../../../jansson/src/.libs/libjansson.a; then CXXFLAGS="$CXXFLAGS -DHAVE_JANSSON -I../../../../jansson/src" if test "$enable_staticlibs" = "yes"; then with_libjansson="builtin (static)" LIBS="$LIBS ../../../../jansson/src/.libs/libjansson.a" else with_libjansson="builtin" LIBS="$LIBS -L../../../../jansson/src/.libs -ljansson" fi elif pkg-config --exists jansson; then CXXFLAGS="$CXXFLAGS -DHAVE_JANSSON $(pkg-config --cflags jansson)" if test "$enable_staticlibs" = "yes"; then with_libjansson="system (static)" LIBS="$LIBS $(pkg-config --static --libs jansson)" else with_libjansson="system" LIBS="$LIBS $(pkg-config --libs jansson)" fi else AC_MSG_ERROR([libjansson configuration is not found]) fi else with_libjansson="No" fi dnl ------------------------------------------------------------------------- dnl libevent2 dnl if test "$with_libevent" = "yes"; then if test -e ../../../../libevent/.libs/libevent.a; then CXXFLAGS="$CXXFLAGS -DHAVE_LIBEVENT -I../../../../libevent/include" if test "$enable_staticlibs" = "yes"; then with_libevent="builtin (static)" LIBS="$LIBS ../../../../libevent/.libs/libevent.a" else with_libevent="builtin" LIBS="$LIBS -L../../../../libevent/.libs -levent" fi elif pkg-config --exists libevent; then CXXFLAGS="$CXXFLAGS -DHAVE_LIBEVENT $(pkg-config --cflags libevent)" if test "$enable_staticlibs" = "yes"; then with_libevent="system (static)" LIBS="$LIBS $(pkg-config --static --libs libevent)" else with_libevent="system" LIBS="$LIBS $(pkg-config --libs libevent)" fi else AC_MSG_ERROR([libevent configuration is not found]) fi else with_libevent="No" fi dnl ######################################################################### dnl ### Compiler specific dnl ######################################################################### dnl ------------------------------------------------------------------------- case "${build}" in powerpc-montavista* ) CFLAGS="$CFLAGS -D__MONTAVISTA__" CXXFLAGS="$CXXFLAGS -D__MONTAVISTA__" ;; esac dnl ------------------------------------------------------------------------- dnl Mac Architecture and SDK dnl case "$host_os" in darwin* ) LDFLAGS="$LDFLAGS -framework CoreFoundation" ;; esac if test "$enable_universal_binary" = "yes"; then enable_arch_ppc=yes enable_arch_arm64=yes fi if test "$enable_arch_x86_64" = "yes"; then CXXFLAGS="$CXXFLAGS -arch x86_64" CFLAGS="$CFLAGS -arch x86_64" LDFLAGS="$LDFLAGS -arch x86_64" fi if test "$enable_arch_arm64" = "yes"; then CXXFLAGS="$CXXFLAGS -arch arm64" CFLAGS="$CFLAGS -arch arm64" LDFLAGS="$LDFLAGS -arch arm64" fi if test "x$with_macosx_sdk" != xno ; then CXXFLAGS="-isysroot $with_macosx_sdk $CXXFLAGS" CFLAGS="-isysroot $with_macosx_sdk $CFLAGS" LDFLAGS="-isysroot $with_macosx_sdk $LDFLAGS" fi if test "x$with_macosx_version_min" != xno ; then CXXFLAGS="-mmacosx-version-min=$with_macosx_version_min $CXXFLAGS" CFLAGS="-mmacosx-version-min=$with_macosx_version_min $CFLAGS" LDFLAGS="-mmacosx-version-min=$with_macosx_version_min $LDFLAGS" fi dnl ######################################################################### dnl ### MediaConchLib flags dnl ######################################################################### if test "$enable_shared" = yes ; then MediaConchLib_LIBS=" -L$(pwd)/.libs -lmediaconch $MediaConchLib_LIBS" else MediaConchLib_LIBS="" fi if test "$enable_static" = yes ; then MediaConchLib_LIBS_Static=" $(pwd)/.libs/libmediaconch.a $MediaConchLib_LIBS_Static" else MediaConchLib_LIBS_Static="" fi dnl ######################################################################### dnl ### Output dnl ######################################################################### AC_SUBST(MediaConchLib_LibName) AC_SUBST(MediaConchLib_CXXFLAGS) AC_SUBST(MediaConchLib_LIBS) AC_SUBST(MediaConchLib_LIBS_Static) AC_SUBST(MediaConchLib_Unicode) AC_CONFIG_FILES(libmediaconch.pc) AC_OUTPUT(Makefile) dnl ######################################################################### dnl ### Report how we have been configured dnl ######################################################################### echo "" echo "Configured MediaConchLib for '$target'" echo "" echo " Unicode? $enable_unicode" echo "" echo " Using libevent? $with_libevent" echo " Using libjansson? $with_libjansson" echo " Using libsqlite3? $with_libsqlite3" echo " Using libxml2? $with_libxml2" echo " Using libxslt? $with_libxslt" echo " Using libzen? $with_zenlib" echo " Using libmediainfo? $with_mediainfolib" echo "" echo " CXXFLAGS: $CXXFLAGS" echo " LIBS: $LIBS" MediaConch/Project/GNU/Library/libmediaconch.pc.in0000644000000000000000000000073214640052500020721 0ustar rootrootprefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Unicode=@MediaConchLib_Unicode@ Libs_Static=${libdir}/lib@MediaConchLib_LibName@.a ${libdir}/libmediainfo.a ${libdir}/libzen.a -lpthread -lz la_name=lib@MediaInfoLib_LibName@.la Name: libmediaconch Version: @PACKAGE_VERSION@ Description: MediaConchLib Requires: libzen libmediainfo Libs: -L@libdir@ -l@MediaConchLib_LibName@ -lz Cflags: -I@includedir@ @MediaConchLib_CXXFLAGS@ MediaConch/Project/GNU/mediaconch.spec0000644000000000000000000003133514640052510016555 0ustar rootroot%global mediaconch_version 24.06 %global libmediainfo_version 24.06 %global libzen_version 0.4.41 %if 0%{?fedora_version} || 0%{?rhel} %global libmediaconch_name libmediaconch %global libmediainfo_name libmediainfo %global libzen_name libzen %else %global libmediaconch_name libmediaconch0 %global libmediainfo_name libmediainfo0 %global libzen_name libzen0 %endif %if 0%{?mageia} %ifarch x86_64 %global mageia_libname lib64 %else %global mageia_libname lib %endif %endif # CentOS also set rhel macro %if ! 0%{?suse_version} || 0%{?suse_version} >= 1200 %global build_server 1 %else %global build_server 0 %endif %if ! 0%{?rhel} && ! 0%{?suse_version} || 0%{?suse_version} >= 1200 %global build_gui 1 %else %global build_gui 0 %endif %global build_lib 1 Name: mediaconch Version: %{mediaconch_version} Release: 1 Summary: Implementation checker and policy checker for video and audio files (CLI) Group: Applications/Multimedia License: BSD-2-Clause URL: http://MediaArea.net/MediaConch Packager: MediaArea.net SARL Source0: %{name}_%{version}.tar.gz Requires: %{libzen_name}%{?_isa} >= %{libzen_version} Requires: %{libmediainfo_name}%{?_isa} >= %{libmediainfo_version} Prefix: %{_prefix} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: gcc-c++ BuildRequires: pkgconfig BuildRequires: libmediainfo-devel >= %{libmediainfo_version} BuildRequires: libzen-devel >= %{libzen_version} BuildRequires: pkgconfig BuildRequires: zlib-devel BuildRequires: libtool BuildRequires: automake BuildRequires: autoconf BuildRequires: zlib-devel BuildRequires: libxml2-devel BuildRequires: libxslt-devel BuildRequires: libevent-devel BuildRequires: libcurl-devel %if 0%{?mageia} BuildRequires: %{mageia_libname}sqlite3-devel %else BuildRequires: sqlite-devel %endif %if 0%{?rhel} >= 8 BuildRequires: alternatives %endif %if 0%{?fedora_version} BuildRequires: pkgconfig(systemd) %endif %if 0%{?suse_version} %if 0%{?is_opensuse} BuildRequires: libjansson-devel %endif %else BuildRequires: jansson-devel %endif %if 0%{?mageia} BuildRequires: %{mageia_libname}openssl-devel %endif # Lib dependencies %if 0%{?build_lib} %if ! 0%{?rhel} BuildRequires: python3-devel %endif %endif # GUI dependencies %if 0%{?build_gui} %if 0%{?fedora_version} BuildRequires: pkgconfig(Qt5) BuildRequires: pkgconfig(Qt5WebEngine) BuildRequires: desktop-file-utils BuildRequires: libappstream-glib %else %if 0%{?suse_version} %if 0%{?suse_version} >= 1500 BuildRequires: libqt5-qtwebengine-devel %else BuildRequires: libQtWebKit-devel %endif BuildRequires: update-desktop-files %else %if 0%{?mageia} BuildRequires: %{mageia_libname}qt5webengine-devel %endif %endif %endif %endif # GUI %description MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files (specifically Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1)). This project is maintained by MediaArea and funded by PREFORMA. This package includes the command line interface. %if 0%{?build_server} %package server Summary: Implementation checker and policy checker for video and audio files (Server) Group: Applications/Multimedia Requires: %{libzen_name}%{?_isa} >= %{libzen_version} Requires: %{libmediainfo_name}%{?_isa} >= %{libmediainfo_version} %description server MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files (specifically Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1)). This project is maintained by MediaArea and funded by PREFORMA. This package includes the server. %if 0%{?fedora_version} %{?systemd_requires} %endif %endif # Server %if 0%{?build_lib} %package -n %{libmediaconch_name} Summary: Implementation checker and policy checker for video and audio files (Library) Group: System/Libraries Requires: %{libzen_name}%{?_isa} >= %{libzen_version} Requires: %{libmediainfo_name}%{?_isa} >= %{libmediainfo_version} %description -n %{libmediaconch_name} MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files (specifically Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1)). This project is maintained by MediaArea and funded by PREFORMA. This package includes the library. %package -n libmediaconch-devel Summary: Implementation checker and policy checker for video and audio files (development files) Group: Development/Libraries Requires: %{libmediainfo_name}%{?_isa} = %{version} %description -n libmediaconch-devel MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files (specifically Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1)). This project is maintained by MediaArea and funded by PREFORMA. This package includes the library programming interface. %endif # Lib %if 0%{?build_gui} %package gui Summary: Implementation checker and policy checker for video and audio files (GUI) Group: Applications/Multimedia Requires: %{libzen_name}%{?_isa} >= %{libzen_version} Requires: %{libmediainfo_name}%{?_isa} >= %{libmediainfo_version} %description gui MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files (specifically Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1)). This project is maintained by MediaArea and funded by PREFORMA. This package includes the graphical user interface. %endif # GUI %prep %setup -q -n MediaConch sed -i 's/.$//' *.txt *.html Release/*.txt find Source -type f -exec chmod 644 {} ';' chmod 644 *.html *.txt Release/*.txt pushd Project/GNU/CLI autoreconf -fiv popd %if 0%{?build_server} pushd Project/GNU/Server autoreconf -fiv popd %endif # Server %if 0%{?build_lib} pushd Project/GNU/Library autoreconf -fiv popd %endif # Lib %if 0%{?build_gui} pushd Project/Qt %if 0%{?fedora} %{qmake_qt5} %else chmod u+x prepare %if 0%{?suse_version} && ! 0%{?is_opensuse} ./prepare NO_JANSSON=yes %else ./prepare %endif %endif popd %endif # GUI %build export CFLAGS="-g %{optflags}" export CXXFLAGS="-g %{optflags}" # build CLI pushd Project/GNU/CLI %if 0%{?suse_version} && ! 0%{?is_opensuse} %configure --without-jansson %else %configure %endif make %{?_smp_mflags} popd # build server %if 0%{?build_server} pushd Project/GNU/Server %if 0%{?suse_version} && ! 0%{?is_opensuse} %configure --without-jansson %else %configure %endif make %{?_smp_mflags} popd %endif #Server # build lib %if 0%{?build_lib} pushd Project/GNU/Library %if 0%{?suse_version} && ! 0%{?is_opensuse} %configure --without-jansson %else %configure %endif make %{?_smp_mflags} popd %endif #Lib # now build GUI %if 0%{?build_gui} pushd Project/Qt make %{?_smp_mflags} popd %endif # GUI %install pushd Project/GNU/CLI make install DESTDIR=%{buildroot} popd %if 0%{?build_server} pushd Project/GNU/Server make install DESTDIR=%{buildroot} popd %endif # Server %if 0%{?build_lib} pushd Project/GNU/Library make install DESTDIR=%{buildroot} popd rm -f %{buildroot}%{_libdir}/libmediaconch.la %endif # Lib %if 0%{?build_gui} pushd Project/Qt install -dm 755 %{buildroot}%{_bindir} install -m 755 mediaconch-gui %{buildroot}%{_bindir} popd # icon install -dm 755 %{buildroot}%{_datadir}/icons/hicolor/256x256/apps install -m 644 Source/Resource/Image/MediaConch.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/%{name}.png install -dm 755 %{buildroot}%{_datadir}/pixmaps install -m 644 Source/Resource/Image/MediaConch.png %{buildroot}%{_datadir}/pixmaps/%{name}.png # menu-entry install -dm 755 %{buildroot}%{_datadir}/applications install -m 644 Project/GNU/GUI/mediaconch-gui.desktop %{buildroot}%{_datadir}/applications install -dm 755 %{buildroot}%{_datadir}/apps/konqueror/servicemenus install -m 644 Project/GNU/GUI/mediaconch-gui.kde3.desktop %{buildroot}%{_datadir}/apps/konqueror/servicemenus/mediaconch-gui.desktop install -dm 755 %{buildroot}%{_datadir}/kde4/services/ServiceMenus/ install -m 644 Project/GNU/GUI/mediaconch-gui.kde4.desktop %{buildroot}%{_datadir}/kde4/services/ServiceMenus/mediaconch-gui.desktop install -dm 755 %{buildroot}%{_datadir}/kservices5/ServiceMenus/ install -m 644 Project/GNU/GUI/mediaconch-gui.kde4.desktop %{buildroot}%{_datadir}/kservices5/ServiceMenus/mediaconch-gui.desktop %if %{undefined fedora_version} || 0%{?fedora_version} < 26 install -dm 755 %{buildroot}%{_datadir}/appdata/ install -m 644 Project/GNU/GUI/mediaconch-gui.metainfo.xml %{buildroot}%{_datadir}/appdata/mediaconch-gui.appdata.xml %else install -dm 755 %{buildroot}%{_datadir}/metainfo/ install -m 644 Project/GNU/GUI/mediaconch-gui.metainfo.xml %{buildroot}%{_datadir}/metainfo/mediaconch-gui.metainfo.xml %endif %if 0%{?suse_version} %suse_update_desktop_file -n %{buildroot}%{_datadir}/kservices5/ServiceMenus/mediaconch-gui.desktop AudioVideo AudioVideoEditing %suse_update_desktop_file -n %{buildroot}%{_datadir}/kde4/services/ServiceMenus/mediaconch-gui.desktop AudioVideo AudioVideoEditing %suse_update_desktop_file -n %{buildroot}%{_datadir}/apps/konqueror/servicemenus/mediaconch-gui.desktop AudioVideo AudioVideoEditing %suse_update_desktop_file -n mediaconch-gui AudioVideo AudioVideoEditing %endif %if 0%{?fedora_version} desktop-file-install --dir="%{buildroot}%{_datadir}/applications" -m 644 Project/GNU/GUI/mediaconch-gui.desktop install -dm 755 %{buildroot}%{_unitdir} install -m 644 -p Project/GNU/Server/mediaconchd.service %{buildroot}%{_unitdir}/mediaconchd.service install -dm 755 %{buildroot}%{_sysconfdir}/%{name} install -m 644 -p Project/GNU/Server/MediaConch.rc %{buildroot}%{_sysconfdir}/%{name}/MediaConch.rc %check %if 0%{?fedora_version} >= 26 appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.metainfo.xml %else appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/*.appdata.xml %endif %endif %endif #GUI %if 0%{?fedora_version} %post server %systemd_post mediaconchd.service %preun server %systemd_preun mediaconchd.service %postun server %systemd_postun_with_restart mediaconchd.service %post gui /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %postun gui if [ $1 -eq 0 ] ; then /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi %posttrans gui /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %files %defattr(-,root,root,-) %doc Release/ReadMe_CLI_Linux.txt History_CLI.txt %if 0%{?fedora_version} || 0%{?rhel} %license License.html %else %doc License.html %endif %{_bindir}/mediaconch %if 0%{?build_server} %files server %defattr(-,root,root,-) %doc Documentation/Daemon.md Documentation/Config.md Documentation/REST.md %if 0%{?fedora_version} || 0%{?rhel} %license License.html %else %doc License.html %endif %{_bindir}/mediaconchd %if 0%{?fedora_version} %config(noreplace) %{_sysconfdir}/%{name}/MediaConch.rc %{_unitdir}/mediaconchd.service %endif %endif # Server %if 0%{?build_lib} %files -n %{libmediaconch_name} %defattr(-,root,root,-) %{_libdir}/libmediaconch.so.* %files -n libmediaconch-devel %defattr(-,root,root,-) %{_includedir}/MediaConch %{_libdir}/pkgconfig/*.pc %{_libdir}/libmediaconch.so %endif # Library %if 0%{?build_gui} %files gui %defattr(-,root,root,-) %doc Release/ReadMe_GUI_Linux.txt History_GUI.txt %if 0%{?fedora_version} || 0%{?rhel} %license License.html %else %doc License.html %endif %{_bindir}/mediaconch-gui %{_datadir}/applications/*.desktop %{_datadir}/pixmaps/*.png %dir %{_datadir}/icons/hicolor %dir %{_datadir}/icons/hicolor/256x256 %dir %{_datadir}/icons/hicolor/256x256/apps %{_datadir}/icons/hicolor/256x256/apps/*.png %dir %{_datadir}/apps %dir %{_datadir}/apps/konqueror %dir %{_datadir}/apps/konqueror/servicemenus %{_datadir}/apps/konqueror/servicemenus/*.desktop %dir %{_datadir}/kde4 %dir %{_datadir}/kde4/services %dir %{_datadir}/kde4/services/ServiceMenus %{_datadir}/kde4/services/ServiceMenus/*.desktop %dir %{_datadir}/kservices5 %dir %{_datadir}/kservices5/ServiceMenus %{_datadir}/kservices5/ServiceMenus/*.desktop %if 0%{?fedora_version} && 0%{?fedora_version} >= 26 %dir %{_datadir}/metainfo %{_datadir}/metainfo/*.xml %else %dir %{_datadir}/appdata %{_datadir}/appdata/*.xml %endif %endif # GUI %changelog * Mon May 25 2015 MediaArea.net SARL - %{mediaconch_version} - See History.txt for more info and real dates # Contributor: Vascom, vascom2@gmail.com" MediaConch/Project/GNU/PKGBUILD0000644000000000000000000001023214640052510014724 0ustar rootroot# $Id$ # Maintainer: MediaArea.net SARL # This PKGBUILD is for OBS pkgname=('mediaconch' 'mediaconch-server' 'mediaconch-gui') pkgver=24.06 pkgrel=1 pkgdesc="Implementation checker and policy checker for video and audio files" url="http://MediaArea.net/MediaConch" license=('BSD-2-Clause') source=(${pkgname}_${pkgver}.orig.tar.xz) md5sums=('00000000000000000000000000000000') arch=('i686' 'x86_64') # Buildtime dependencies for all packages need to be listed here makedepends=('desktop-file-utils' 'libxml2' 'libxslt' 'sqlite' 'libevent' 'qt5-base' 'qt5-webengine' 'libzen>=0.4.41' 'libmediainfo>=24.06') # OBS don't provide jansson #makedepends=(${makedepends[@]} jansson) prepare() { cd "${srcdir}"/MediaConch sed -i 's/.$//' *.txt *.html Release/*.txt cd "${srcdir}"/MediaConch/Project/GNU/CLI chmod u+x autogen.sh ./autogen.sh ./configure --prefix=/usr --without-jansson cd "${srcdir}"/MediaConch/Project/GNU/Server chmod u+x autogen.sh ./autogen.sh ./configure --prefix=/usr --without-jansson cd "${srcdir}"/MediaConch/Project/Qt chmod u+x prepare ./prepare NO_JANSSON=yes USE_WEBENGINE=yes } build() { cd "${srcdir}"/MediaConch/Project/GNU/CLI make cd "${srcdir}"/MediaConch/Project/GNU/Server make cd "${srcdir}"/MediaConch/Project/Qt make } package_mediaconch() { pkgdesc="${pkgdesc} (CLI)" depends=('libxml2' 'libxslt' 'sqlite' 'libevent' 'libzen>=0.4.41' 'libmediainfo>=24.06') cd "${srcdir}"/MediaConch/Project/GNU/CLI make DESTDIR="${pkgdir}" install-strip cd "${srcdir}"/MediaConch install -D -m 0644 License.html "${pkgdir}"/usr/share/licenses/${pkgname}/License.html install -D -m 0644 History_CLI.txt "${pkgdir}"/usr/share/docs/${pkgname}/History.txt install -D -m 0644 Release/ReadMe_CLI_Linux.txt "${pkgdir}"/usr/share/docs/${pkgname}/ReadMe.txt } package_mediaconch-server() { pkgdesc="${pkgdesc} (Server)" depends=('libxml2' 'libxslt' 'sqlite' 'libevent' 'libzen>=0.4.41' 'libmediainfo>=24.06') backup=('etc/mediaconch/MediaConch.rc') cd "${srcdir}"/MediaConch/Project/GNU/Server make DESTDIR="${pkgdir}" install-strip install -D -m 0644 MediaConch.rc "${pkgdir}"/etc/mediaconch/MediaConch.rc install -D -m 0644 mediaconchd.service "${pkgdir}"/usr/lib/systemd/system/mediaconchd.service cd "${srcdir}"/MediaConch install -D -m 0644 License.html "${pkgdir}"/usr/share/licenses/${pkgname}/License.html install -D -m 0644 Documentation/Daemon.md "${pkgdir}"/usr/share/docs/${pkgname}/Daemon.md install -D -m 0644 Documentation/Config.md "${pkgdir}"/usr/share/docs/${pkgname}/Config.md install -D -m 0644 Documentation/REST.md "${pkgdir}"/usr/share/docs/${pkgname}/REST.md } package_mediaconch-gui() { pkgdesc="${pkgdesc} (GUI)" depends=('libxml2' 'libxslt' 'sqlite' 'libevent' 'qt5-base' 'qt5-webkit' 'libzen>=0.4.41' 'libmediainfo>=24.06') cd "${srcdir}"/MediaConch install -D -m 0755 Project/Qt/mediaconch-gui "${pkgdir}"/usr/bin/mediaconch-gui install -D -m 0644 Source/Resource/Image/MediaConch.png "${pkgdir}"/usr/share/icons/hicolor/256x256/apps/mediaconch.png install -D -m 0644 Source/Resource/Image/MediaConch.png "${pkgdir}"/usr/share/pixmaps/mediaconch.png desktop-file-install --dir="${pkgdir}"/usr/share/applications -m 0644 Project/GNU/GUI/mediaconch-gui.desktop install -D -m 0644 Project/GNU/GUI/mediaconch-gui.kde3.desktop "${pkgdir}"/usr/share/apps/konqueror/servicemenus/mediaconch-gui.desktop install -D -m 0644 Project/GNU/GUI/mediaconch-gui.kde4.desktop "${pkgdir}"/usr/share/kde4/services/ServiceMenus/mediaconch-gui.desktop install -D -m 0644 Project/GNU/GUI/mediaconch-gui.kde4.desktop "${pkgdir}"/usr/share/kservices5/ServiceMenus/mediaconch-gui.desktop install -D -m 0644 Project/GNU/GUI/mediaconch-gui.metainfo.xml "${pkgdir}"/usr/share/metainfo/mediaconch-gui.metainfo.xml install -D -m 0644 License.html "${pkgdir}"/usr/share/licenses/${pkgname}/License.html install -D -m 0644 History_GUI.txt "${pkgdir}"/usr/share/docs/${pkgname}/History.txt install -D -m 0644 Release/ReadMe_GUI_Linux.txt "${pkgdir}"/usr/share/docs/${pkgname}/ReadMe.txt } MediaConch/Project/GNU/mediaconch.dsc0000644000000000000000000000337014640052510016372 0ustar rootrootFormat: 3.0 (quilt) Source: mediaconch Binary: mediaconch, mediaconch-dbg, mediaconch-server, mediaconch-server-dbg, libmediaconch0, libmediaconch0-dbg, libmediaconch-dev, mediaconch-gui, mediaconch-gui-dbg Architecture: any Version: 24.06-1 Maintainer: MediaArea.net SARL Homepage: http://MediaArea.net/MediaConch Standards-Version: 3.9.6 Vcs-Git: https://github.com/MediaArea/MediaConch_SourceCode.git Vcs-Browser: https://github.com/MediaArea/MediaConch_SourceCode Build-Depends: debhelper (>= 9), dh-autoreconf, tofrodos, libmediainfo-dev (>= 24.06), libzen-dev (>= 0.4.41), qt5-qmake, qtbase5-dev, libqt5webkit5-dev, libxml2-dev, libxslt-dev, libsqlite3-dev, libjansson-dev, zlib1g-dev, pkg-config, automake, autoconf, libtool, libcurl4-gnutls-dev, libevent-dev, python3-all, dh-python Package-List: mediaconch deb utils optional arch=any mediaconch-server deb utils optional arch=any mediaconch-gui deb utils optional arch=any libmediaconch0 deb libs optional arch=any libmediaconch-dev deb libdevel optional arch=any mediaconch-dbg deb debug extra arch=any mediaconch-server-dbg debug utils extra arch=any mediaconch-gui-dbg deb debug extra arch=any libmediaconch0-dbg deb debug extra arch=any Checksums-Sha1: 0000000000000000000000000000000000000000 000000 mediaconch_24.06.orig.tar.xz 0000000000000000000000000000000000000000 000000 mediaconch_24.06-1.debian.tar.xz Checksums-Sha256: 0000000000000000000000000000000000000000000000000000000000000000 000000 mediaconch_24.06.orig.tar.xz 0000000000000000000000000000000000000000000000000000000000000000 000000 mediaconch_24.06-1.debian.tar.xz Files: 00000000000000000000000000000000 000000 mediaconch_24.06.orig.tar.xz 00000000000000000000000000000000 000000 mediaconch_24.06-1.debian.tar.xz MediaConch/Project/Snap/0000755000000000000000000000000014640052500014051 5ustar rootrootMediaConch/Project/Snap/mediaconch-gui/0000755000000000000000000000000014640052510016726 5ustar rootrootMediaConch/Project/Snap/mediaconch-gui/snapcraft.yaml0000644000000000000000000000336714640052510021604 0ustar rootrootname: mediaconch-gui version: 24.06 summary: Implementation checker and policy checker for video and audio files (GUI) description: | MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files (specifically Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1)). This project is maintained by MediaArea and funded by PREFORMA. confinement: strict grade: stable apps: mediaconch-gui: command: desktop-launch mediaconch-gui plugs: - unity7 - home - network parts: mediaconch-gui: plugin: qmake-subdir source: MediaConch make-directory: Project/Qt qt-version: qt5 options: - USE_WEBKIT=1 build-packages: - qtbase5-dev - libqt5webkit5-dev - zlib1g-dev - libxml2-dev - libxslt1-dev - libevent-dev - libsqlite3-dev - libjansson-dev - libcurl4-gnutls-dev after: - desktop-qt5 - libmediainfo - libzen - build-essential libmediainfo: plugin: autotools-subdir source: MediaInfoLib make-directory: Project/GNU/Library configflags: - --enable-shared - --disable-static - --with-libcurl - --with-libmms build-packages: - libcurl4-gnutls-dev - libglib2.0-dev - libmms-dev - zlib1g-dev after: - libzen - build-essential snap: - lib/libmediainfo.* libzen: plugin: autotools-subdir source: ZenLib make-directory: Project/GNU/Library configflags: - --enable-shared - --disable-static snap: - lib/libzen.* after: - build-essential build-essential: plugin: nil build-packages: - build-essential MediaConch/Project/Snap/mediaconch-gui/parts/0000755000000000000000000000000014640052500020056 5ustar rootrootMediaConch/Project/Snap/mediaconch-gui/parts/plugins/0000755000000000000000000000000014640052500021537 5ustar rootrootMediaConch/Project/Snap/mediaconch-gui/parts/plugins/x-autotools-subdir.py0000644000000000000000000000165714640052500025706 0ustar rootroot# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*- """This plugin extends the autotools plugin to run from subdirectory in source tree. In addition to the autotools and defaults keywords, this plugin uses the following plugin-specific keyword: - make-directory: (string) Run autotools in the given path. """ import os.path from snapcraft.plugins import autotools class AutotoolsSubdirPlugin(autotools.AutotoolsPlugin): @classmethod def schema(cls): schema = super().schema() schema['properties']['make-directory'] = { 'type': 'string', 'default': '' } return schema def __init__(self, name, options, project): super().__init__(name, options, project) if self.options.make_directory: self.builddir = os.path.join(self.build_basedir, self.options.make_directory) def enable_cross_compilation(self): return MediaConch/Project/Snap/mediaconch-gui/parts/plugins/x-qmake-subdir.py0000644000000000000000000000162314640052500024744 0ustar rootroot# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*- """This plugin extends the qmake plugin to run from subdirectory in source tree. In addition to the qmake and defaults keywords, this plugin uses the following plugin-specific keyword: - make-directory: (string) Run qmake in the given path. """ import os.path from snapcraft.plugins import qmake class QmakeSubdirPlugin(qmake.QmakePlugin): @classmethod def schema(cls): schema = super().schema() schema['properties']['make-directory'] = { 'type': 'string', 'default': '' } return schema def __init__(self, name, options, project): super().__init__(name, options, project) if self.options.make_directory: self.builddir = os.path.join(self.build_basedir, self.options.make_directory) def enable_cross_compilation(self): return MediaConch/Project/Snap/mediaconch-gui/setup/0000755000000000000000000000000014640052500020065 5ustar rootrootMediaConch/Project/Snap/mediaconch-gui/setup/gui/0000755000000000000000000000000014640052500020651 5ustar rootrootMediaConch/Project/Snap/mediaconch-gui/setup/gui/icon.svg0000644000000000000000000000756014640052500022332 0ustar rootroot image/svg+xml MediaConch/Project/Snap/mediaconch-gui/setup/gui/mediaconch-gui.desktop0000644000000000000000000000226214640052500025122 0ustar rootroot[Desktop Entry] Type=Application Version=1.0 Name=MediaConch Comment=Implementation checker, policy checker, reporter, and fixer Icon=${SNAP}/meta/gui/icon.svg Exec=mediaconch-gui %f Terminal=false MimeType=video/mpeg;video/x-mpeg;video/msvideo;video/quicktime;video/x-anim;video/x-avi;video/x-ms-asf;video/x-ms-wmv;video/x-msvideo;video/x-nsv;video/x-flc;video/x-fli;video/x-flv;video/vnd.rn-realvideo;video/mp4;video/mp4v-es;video/mp2t;application/ogg;application/x-ogg;video/x-ogm+ogg;audio/x-vorbis+ogg;application/x-matroska;audio/x-matroska;video/x-matroska;video/webm;audio/webm;audio/x-mp3;audio/x-mpeg;audio/mpeg;audio/x-wav;audio/x-mpegurl;audio/x-scpls;audio/x-m4a;audio/x-ms-asf;audio/x-ms-asx;audio/x-ms-wax;application/vnd.rn-realmedia;audio/x-real-audio;audio/x-pn-realaudio;application/x-flac;audio/x-flac;application/x-shockwave-flash;audio/vnd.rn-realaudio;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-wav;audio/x-pn-windows-acm;application/x-extension-mp4;audio/mp4;audio/amr;audio/amr-wb;application/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/x-opus+ogg; Categories=AudioVideo;AudioVideoEditing; Keywords=implementation;policy;checker;reporter;trace;mkv;matroska;ffv1;pcm; MediaConch/Project/Snap/mediaconch-server/0000755000000000000000000000000014640052510017450 5ustar rootrootMediaConch/Project/Snap/mediaconch-server/setup/0000755000000000000000000000000014640052500020607 5ustar rootrootMediaConch/Project/Snap/mediaconch-server/setup/gui/0000755000000000000000000000000014640052500021373 5ustar rootrootMediaConch/Project/Snap/mediaconch-server/setup/gui/icon.svg0000644000000000000000000000756014640052500023054 0ustar rootroot image/svg+xml MediaConch/Project/Snap/mediaconch-server/snapcraft.yaml0000644000000000000000000000321214640052510022313 0ustar rootrootname: mediaconch-server version: 24.06 summary: Implementation checker and policy checker for video and audio files (Server) description: | MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files (specifically Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1)). This project is maintained by MediaArea and funded by PREFORMA. confinement: strict grade: stable apps: mediaconch-server: command: mediaconchd plugs: - home - network - network-bind parts: mediaconch-server: plugin: autotools-subdir source: MediaConch make-directory: Project/GNU/Server build-packages: - zlib1g-dev - libxml2-dev - libxslt1-dev - libevent-dev - libsqlite3-dev - libjansson-dev - libcurl4-gnutls-dev after: - libmediainfo - libzen - build-essential libmediainfo: plugin: autotools-subdir source: MediaInfoLib make-directory: Project/GNU/Library configflags: - --enable-shared - --disable-static - --with-libcurl - --with-libmms build-packages: - libcurl4-gnutls-dev - libglib2.0-dev - libmms-dev - zlib1g-dev after: - libzen - build-essential snap: - lib/libmediainfo.* libzen: plugin: autotools-subdir source: ZenLib make-directory: Project/GNU/Library configflags: - --enable-shared - --disable-static snap: - lib/libzen.* after: - build-essential build-essential: plugin: nil build-packages: - build-essential MediaConch/Project/Snap/mediaconch-server/parts/0000755000000000000000000000000014640052500020600 5ustar rootrootMediaConch/Project/Snap/mediaconch-server/parts/plugins/0000755000000000000000000000000014640052500022261 5ustar rootrootMediaConch/Project/Snap/mediaconch-server/parts/plugins/x-autotools-subdir.py0000644000000000000000000000165714640052500026430 0ustar rootroot# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*- """This plugin extends the autotools plugin to run from subdirectory in source tree. In addition to the autotools and defaults keywords, this plugin uses the following plugin-specific keyword: - make-directory: (string) Run autotools in the given path. """ import os.path from snapcraft.plugins import autotools class AutotoolsSubdirPlugin(autotools.AutotoolsPlugin): @classmethod def schema(cls): schema = super().schema() schema['properties']['make-directory'] = { 'type': 'string', 'default': '' } return schema def __init__(self, name, options, project): super().__init__(name, options, project) if self.options.make_directory: self.builddir = os.path.join(self.build_basedir, self.options.make_directory) def enable_cross_compilation(self): return MediaConch/Project/Snap/mediaconch/0000755000000000000000000000000014640052510016144 5ustar rootrootMediaConch/Project/Snap/mediaconch/setup/0000755000000000000000000000000014640052500017303 5ustar rootrootMediaConch/Project/Snap/mediaconch/setup/gui/0000755000000000000000000000000014640052500020067 5ustar rootrootMediaConch/Project/Snap/mediaconch/setup/gui/icon.svg0000644000000000000000000000756014640052500021550 0ustar rootroot image/svg+xml MediaConch/Project/Snap/mediaconch/snapcraft.yaml0000644000000000000000000000313214640052510021010 0ustar rootrootname: mediaconch version: 24.06 summary: Implementation checker and policy checker for video and audio files (CLI) description: | MediaConch is an implementation checker, policy checker, reporter, and fixer that targets preservation-level audiovisual files (specifically Matroska, Linear Pulse Code Modulation (LPCM) and FF Video Codec 1 (FFV1)). This project is maintained by MediaArea and funded by PREFORMA. confinement: strict grade: stable apps: mediaconch: command: mediaconch plugs: - home - network parts: mediaconch: plugin: autotools-subdir source: MediaConch make-directory: Project/GNU/CLI build-packages: - zlib1g-dev - libxml2-dev - libxslt1-dev - libevent-dev - libsqlite3-dev - libjansson-dev - libcurl4-gnutls-dev after: - libmediainfo - libzen - build-essential libmediainfo: plugin: autotools-subdir source: MediaInfoLib make-directory: Project/GNU/Library configflags: - --enable-shared - --disable-static - --with-libcurl - --with-libmms build-packages: - libcurl4-gnutls-dev - libglib2.0-dev - libmms-dev - zlib1g-dev after: - libzen - build-essential snap: - lib/libmediainfo.* libzen: plugin: autotools-subdir source: ZenLib make-directory: Project/GNU/Library configflags: - --enable-shared - --disable-static snap: - lib/libzen.* after: - build-essential build-essential: plugin: nil build-packages: - build-essential MediaConch/Project/Snap/mediaconch/parts/0000755000000000000000000000000014640052500017274 5ustar rootrootMediaConch/Project/Snap/mediaconch/parts/plugins/0000755000000000000000000000000014640052500020755 5ustar rootrootMediaConch/Project/Snap/mediaconch/parts/plugins/x-autotools-subdir.py0000644000000000000000000000165714640052500025124 0ustar rootroot# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4 -*- """This plugin extends the autotools plugin to run from subdirectory in source tree. In addition to the autotools and defaults keywords, this plugin uses the following plugin-specific keyword: - make-directory: (string) Run autotools in the given path. """ import os.path from snapcraft.plugins import autotools class AutotoolsSubdirPlugin(autotools.AutotoolsPlugin): @classmethod def schema(cls): schema = super().schema() schema['properties']['make-directory'] = { 'type': 'string', 'default': '' } return schema def __init__(self, name, options, project): super().__init__(name, options, project) if self.options.make_directory: self.builddir = os.path.join(self.build_basedir, self.options.make_directory) def enable_cross_compilation(self): return MediaConch/Source/0000755000000000000000000000000014640052500013002 5ustar rootrootMediaConch/Source/Resource/0000755000000000000000000000000014640052500014571 5ustar rootrootMediaConch/Source/Resource/Resources.qrc0000644000000000000000000001437114640052500017260 0ustar rootroot Image/MediaConch.png Image/MediaConch-61x38.png dropfiles_gray.png html/base.html html/js/webengine.js html/settings.html html/checker.html html/formUpload.html html/formOnline.html html/formRepository.html html/xslPolicy.html html/publicPolicies.html html/display.html html/database.html html/js/jquery-1.12.4.min.js html/js/bootstrap.min.js html/js/jstree.min.js html/js/jstreegrid.js html/js/datatables.min.js html/js/select2.full.min.js html/js/utils/text.js html/js/utils/functions.js html/js/utils/url.js html/js/utils/size.js html/js/menu.js html/js/checker/base.js html/js/checker/cellImplementation.js html/js/checker/cellMediaInfo.js html/js/checker/cellMediaTrace.js html/js/checker/cellPolicy.js html/js/checker/cellStatus.js html/js/checker/table.js html/js/checker/webengine.js html/js/checker/webkit.js html/js/policy.js html/js/policyTree.js html/js/policyTreePolicies.js html/js/policyTreeRules.js html/js/policyTreeRulesMI.js html/js/policyTreeRulesMT.js html/js/policyTreeAffix.js html/js/policyWebEngine.js html/js/policyWebKit.js html/js/policyUser.js html/js/publicPolicies/list.js html/js/publicPolicies/listPolicyTree.js html/js/publicPolicies/listWebKit.js html/js/publicPolicies/listWebEngine.js html/js/users/userWebEngine.js html/js/users/userWebKit.js html/js/message.js html/js/display.js html/js/database/database.js html/js/database/databaseWebEngine.js html/js/database/databaseWebKit.js html/js/settings.js html/css/main.css html/css/main-gui.css html/css/bootstrap.min.css html/css/select2.min.css html/css/select2-bootstrap.min.css html/css/jstree.min.css html/css/datatables.min.css html/css/32px.png html/css/40px.png html/css/throbber.gif html/fonts/glyphicons-halflings-regular.ttf html/fonts/glyphicons-halflings-regular.eot html/fonts/glyphicons-halflings-regular.svg html/fonts/glyphicons-halflings-regular.woff html/fonts/glyphicons-halflings-regular.woff2 Image/ajax-spinner-big.gif Image/ajax-spinner-small.gif displays/MediaConchHtml.xsl displays/MediaConchXml.xsl displays/MediaConchText.xsl displays/MediaConchTextUnicode.xsl displays/MediaConchSimple.xsl displays/MediaConchCSV.xsl ../../License.html html/Help/Data Format/Data Format.html html/Help/FAQ/FAQ.html html/Help/How To Use/How To Use.html MediaConch/Source/Resource/dropfiles_gray.png0000644000000000000000000001016014640052500020306 0ustar rootrootPNG  IHDRxsRGBbKGD pHYs  tIME )(B$IDATx?k[Yo*nU D@T Dŀ9łK.H9弄} SL2b<łSbb k{y0 K^GWU@-MO̒LlQX?ϒZ0IH4*>$9.Q@%0IdЯqwI֖`d璣,&Ir~N:'pGͳ$/ʟpS$~Ie9ئJ*ß]I>[ _?w; xw94I={ڗcl捤)@3"25I~hˢ>X ybѠe}8?ӬY/3:8Cv`S}~1-e >dT^5#Z@@|o ر %U#r`@@|o 83K{Ge%Aز_lЈ"AolR@+ZFd$YF=3eO74&?IəoL[&"Y?\b`e9ٲp3M2OiYvUp; 1_k^  @ @ @ @ @ @ @ @ @@mY$3⿯RmYE$$9)Q`Ivp_YrF3 Z=z`d@SI~LrTB@fI^75a$gcPebtT`oLJ|@zp;&I:@@56ϼ2t%4י'ynӀH\x >@@]xO@nM e|,p/ .l2'6n60} M8 @5pY` @ @ @ @ @ @ @ @@ @  @Ml/f=]6@ @@aБIyYoL/$&Y'Y? 4"ɳ2INRod@x)?I'9~>߻,~$:# e<ɏI%ykɩ$׿v&te@[v^o7,/񸵛7@s! 2/G&arޖ&ऄ@SYdlZNKE]]${=]"!?k~`(ÿt)|y:)ܳ]Y~k>+?qm7vЅQ^ p@owi d_`޶LJa$AFmt:98øدnin3 zOmJuHG}wp U?9C5L `p_~h魚8c`ھrY{=vSU99Neۿ++|ؾYĝJki: s*6"'pe3D<Ƿ38l RoTT*"cښwC.WR@_|ۈuy&޶ˆg"1,=[D>׮ӴtY `؎ݠU']?uI~ϧۯ >yzw2Á.U"nLȮmW7 P"0]u~d?b^9˃r?9$'٪8wIQ6|hE*gW?G|p\9#<@*Xc`%-#},= "v0`Yw"0ކ?Dd u5  +i#@ZG0`Y7"0^?  5d#G  9@v0`?D!~ k#@`8?D!~c#@P<$|d5x仲t=7 08?D`#@?D @`D? @`D? @`# 0 ,?DD? @`D? @`D? @`D?@ `D?@ `   0A"     @0A"  0A"  0A"Pm "T?0AE, @e`*PY "T?0AE, @e`*PY "T?0AE, @e`*PYPYʟ:PIENDB`MediaConch/Source/Resource/html/0000755000000000000000000000000014640052500015535 5ustar rootrootMediaConch/Source/Resource/html/base.html0000644000000000000000000000636014640052500017342 0ustar rootroot {{ QT_SCRIPTS }}
{% block checker %}{% endblock %}
MediaConch/Source/Resource/html/checker.html0000644000000000000000000000343514640052500020034 0ustar rootroot

Check files

{{ form(formUpload) }}
{{ form(formOnline) }}
{{ form(formRepository) }}

Results

Files Implem Policy MediaInfo MediaTrace Status
MediaConch/Source/Resource/html/database.html0000644000000000000000000000127114640052500020170 0ustar rootroot

Database

Results

Files Actions
MediaConch/Source/Resource/html/display.html0000644000000000000000000000245614640052500020077 0ustar rootroot

Display

Import a display

Display list:

System display list:

MediaConch/Source/Resource/html/formOnline.html0000644000000000000000000000423614640052500020540 0ustar rootroot
MediaConch/Source/Resource/html/formRepository.html0000644000000000000000000000501414640052500021466 0ustar rootroot
MediaConch/Source/Resource/html/formUpload.html0000644000000000000000000000466514640052500020546 0ustar rootroot
MediaConch/Source/Resource/html/publicPolicies.html0000644000000000000000000000416414640052500021376 0ustar rootroot

Public policies

Public policies page lists policies our users would like to share with you.
If you want to share yours, export the policy (button "Export" in the policy editor) to a file then go to policy editor online page (don't forget to login in order to associate your policy to your account), import the file (button "Import" in the policy editor), and set the "policy visibility" field to "public".

Please wait while loading public policies list
MediaConch/Source/Resource/html/settings.html0000644000000000000000000002072314640052500020267 0ustar rootroot

Settings

Advanced

MediaConch/Source/Resource/html/xslPolicy.html0000644000000000000000000005147214640052500020422 0ustar rootroot

Policy editor

Policy list:

Import a policy

From a file

From MediaConchOnline account


Create a new policy


Policy from a file

MediaConch/Source/Resource/html/Help/0000755000000000000000000000000014640052500016425 5ustar rootrootMediaConch/Source/Resource/html/Help/How To Use/0000755000000000000000000000000014640052500020242 5ustar rootrootMediaConch/Source/Resource/html/Help/How To Use/How To Use.html0000644000000000000000000002704514640052500022755 0ustar rootroot MediaConch - How To Use

How To Use

Checker

Policies

Display

MediaConch currently consists of three main sections, “Checker,” “Policies,” and “Display.”

Checker

In the “Checker” section, files may be checked for conformance using policies defined by the user. A user may choose from either an existing policy in MediaConch or from an imported XSLT or Schematron policy file.

Check local file

“Check local file” allows a user to select a file or files from a local computer. A user may choose from either an existing policy and display in MediaConch or from an imported XSLT or Schematron policy file. Policies will be run when selecting the “Check files” button.

Example: /Users/mycomputer/mediafiles/ffv1.mkv

Check online file

“Check online file” allows a user to select a file using a URL path. A user may choose from either an existing policy and display in MediaConch or from an imported XSLT or Schematron policy file. Please note that this feature supports HTTP/HTTPS/FTP/FTPS application protocols. Policies will be run when selecting the “Check files” button.

Example: http://www.mywebsite.com/media/ffv1.mkv

Check local folder

“Check local folder” allows a user to select a folder of files from a local computer or volume. A user may choose from either an existing policy and display in MediaConch or from an imported XSLT or Schematron policy file. Policies will be run when selecting the “Check files” button.

Example: /Users/mycomputer/mediafiles/

Reporting

Once a file or files are “checked,” several conformance checking reports are generated. These reports are made viewable by clicking on the “eye” icon next to each report, where, in ”View Mode,” a report is overlaid onto the GUI for review.

Policy Report

A policy report will declare whether a particular file is either wholly VALID or NOT VALID according to the prescribed policy tests. A file will only be considered VALID if all rules and asserts are found to be true. When declared NON VALID, a text-based Policy Report (FileName_PolicyReport.txt) will list all failed rules and asserts.

For example, a line from a policy report states the following failed rule:

<policy title="General FileExtension must be mkv"> <context value="track[@type='General']/FileExtension = 'mkv'"/> <test outcome="fail" reason="is not true"/>

In this example, the stated policy rule (General FileExtension must be mkv) proved not to be true, causing a failed test outcome (in this case the file extension was .avi).

Implementation Report

An implementation report will declare whether a particular file is either VALID or NOT VALID according to specifications of Matroska, FFV1, and LPCM. Currently, a text-based Implementation Report (FileName_ConformanceReport.txt) will list a general readout of container and video streams, including whether a required field has either passed or failed specification.

MediaInfo Report

In View Mode, a user may navigate through an interactive jstree-grid of a file’s MediaInfo general report. This report may be exported in a well-formed XML format.

MediaTrace Report

In View Mode, a user may navigate through an interactive jstree-grid of a file’s more verbose MediaTrace report. Like MediaInfo’s general report, this report may be exported in a well-formed XML format.

User Note: When opening MediaTrace in View Mode, offsets will be addressed in hexadecimal, or “hex” notation. This differs from the MediaTrace XML output, which addresses offset in decimal notation.

Exporting Reports

Reports can be downloaded by either clicking on the down arrow (↓) found directly to the right of each report, or by clicking on the “Download” button located at the bottom right of each report in View Mode.

User Note: When switching from Checker to Policies or Display modes, any analysis results will be discarded. An alert will prompt the user as a reminder to export all reports before the changeover.

Policies

In the “Policies” section, a user can create policy tests as well as import previously generated policy sets in either XSL or Schematron format.

Policy sets consist of individual rules and asserts. A policy may contain one or more rules, and rules may consist of one or more asserts. Rules and asserts typically contain a metadata field (e.g., “Format”), that field’s associated metadata stream type (e.g., “General), a validator (e.g., “is_equal), and a desired value (e.g., “Matroska”). Rules and asserts are automatically saved during creation, but may be duplicated or deleted by the user using the associated buttons on each rule/assert window.

For example, the following rule/assert would ensure that all reported files must contain a frame rate associated with the NTSC broadcast standard:

  • Type: General
  • Field: FrameRate
  • Validator: Equal
  • Value: 29.970

Type

Allows a user to select from a list of available metadata stream types. These streams include General, Video, Audio, Image, Text, Menu, or Other.

Example: General

Field

Allows a user to select from a list of associated fields. Fields vary according to what type of metadata stream is selected.

Example: General/UniqueID

Occurrence

Allows a user to select whether a rule or assert occurs more than once in reportage. Possible values are: any, all, *, or a stream number.

any: Requires field to match the validator in at least one stream matching of type.

Example: Occurrence:any

all: Requires field, if present, to match the validator in all streams of type.

Example: Occurrence:all

*: Legacy, use all or any instead. Means any, except for the does_not_exist validator where it means all.

Example: Occurrence:*

stream number: Requires field of the Nth stream of type to match the validator.

Example: Occurrence:1

Validator

Validators for MediaConch include is_equal; is_not_equal; is_greater than; is_less_than; is_greater_or_equal_than; is_less_or_equal_than; exists; does_not_exist; contains_string.

is_equal: Requires the reported field value to be the same as the associated policy value.

Example: General/Format is_equal to Matroska

is_not_equal: Requires the reported field value to be different as the associated policy value.

Example: General/Format is_not_equal to MPEG-4

is_greater than: Requires the reported field value to be greater than the associated policy value.

Example: General/Duration is_greater_than 1 mn

is_less_than: Requires the reported field value to be less than the associated policy value.

Example: Audio/Channels is_less_than 2 Channels

is_greater_or_equal_than: Requires the reported field value to be greater or equal than the associated policy value.

Example: Video/FrameCount is_greater_or_equal_than 1

is_less_or_equal_than: Requires the reported field value to be less or equal than the associated policy value.

Example: Video/FrameRate is_less_or_equal_than 29.970

exists: Requires the reported field value to exist.

Example: Video/Width_Original exists

does_not_exist: Requires the reported field value to not exist.

Example: Video/Width_CleanAperture does_not_exist

contains_string: Requires the reported field value to contain an associated string.

Example: General/CompleteName contains_string ffv1

Value

Allows a user may select a desired value .

User note: When creating a value, do not include any associated strings (e.g., “pixels”).

Free Text mode

In addition to the Editor, policies may also be edited in Free Text mode. Free Text uses the XML Path Language, or XPath. An example of a MediaConch XPath expression in Free Text mode includes the following:

Example: track[@type=’General’]/FileExtension = ‘mkv’

Display

The Display section will allow a user to apply various display XSLs for use with policy and implementation check reports in the checker section. MediaConch has provided example HTML, XML and TXT displays. Once a display XSL is imported, it can be actived by selecting the display in the “Choose a Display” dropdown menu located in the Checker section.

Import display set

Allows a user to import a display XSL file to the display set.

Export display set

Allows a user to export a display XSL file to the display set.

Delete selected display file

Allows a user to delete a display XSL file from the display set.

MediaConch/Source/Resource/html/Help/Data Format/0000755000000000000000000000000014640052500020507 5ustar rootrootMediaConch/Source/Resource/html/Help/Data Format/Data Format.html0000644000000000000000000002460314640052500023464 0ustar rootroot MediaConch - Data format

XML Reporting

This document describes four XML schemas designed by MediaArea for various types of file reportage. These schemas include the MediaInfo XML, the MediaConch XML, the MediaTrace XML, and the MediaAreaXML (MAXML). Brief descriptions of structure and operation can be found below.

MediaInfo XML

MediaConch XML

MediaTrace XML

MediaArea XML

MediaInfo XML

Using MediaArea’s principal software, MediaInfo, the MediaInfo XML presents a file’s basic metadata elements in the form of easily intelligible sets of track and stream information. These track types may include but are not limited to, “General,” or general container information; “Video” track or stream information; “Audio” track or stream information; and “Timecode” or other ancillary information. Additional information on MediaInfo general reporting is available here.

Structure of a MediaInfo XML

The root element of the MediaInfo XML exists as <Mediainfo>. A nested <File> sub-element containing a ref attribute specifies the path and filename of the file reported on. A <track type> child element defines MediaInfo's track types, and within <track type> elements are various sub-child elements corresponding to associated field metadata. For example, a "General" track type element will include such sibling elements as <CompleteName>, <Format>, and <FileSize>; a "Video" track type element will include such sibling elements as <Width>, <Height>, and <PixelAspectRatio>; an "Audio" track type element will include such sibling elements as <Channels>, <SamplingRate>, and <SamplingCount>; and so on, and so forth.

The following is an example of a MediaInfo XML General type track element containing the sub-child elements "Format," "Formatprofile," and "CodecID":

    <track type="General">
    <Complete_name>/Users/mycomputer//files/ffv1.mkv</Complete_name>
    <Format>MPEG-4</Format>
    <Format_profile>QuickTime</Format_profile>
    <Codec_ID>qt</Codec_ID>
    </track>`

Generating a MediaInfo XML

A MediaInfo XML can be generated using the following tools and associated commands:

  • With MediaInfo: mediainfo --Output=XML file.mov

  • With MediaConch (CLI): mediaconch -mi -fx file.mov

  • With MediaConch (GUI): Select View Mode in the MediaInfo tab from the resulting file Checker reports

MediaConch XML

The MediaConch XML is designed specifically for file conformance checking using MediaArea’s MediaConch software, and contains reportage pertaining to a user-defined policy or policies. Additional information on MediaConch is available here.

Structure of a MediaConch XML

The root element of the MediaConch XML exists as <MediaConch>, and initially contains a <policyChecks> element which encapsulates all policy rules. The <title> element denotes the title of the policy, while the <media> element contains the checked filename its associated path:

    <?xml version="1.0" encoding="UTF-8"?>
    <MediaConch xmlns="https://mediaarea.net/mediaconch" xmlns:mi="https://mediaarea.net/mediainfo" version="0.1">`
    <policyChecks>
    <title>Preservation Master File Recommendations - Matroska/FFV1</title>
    <media ref="/Users/mycomputer//files/ffv1.mkv">`

Within the <policyChecks> element are individual <policy> rules that contain the name of the policy rule, the associated track type and field, a user-declared value, the reported or “actual” value, and a “pass” or “fail” outcome:

    <policy title="General Format equals Matroska">
    <context field="Format" value="Matroska"/>
    <test tracktype="General" actual="Matroska" outcome="pass"/>
    </policy>

Generating a MediaConch XML

A MediaConch XML can be generated using the following tools and associated commands:

-With MediaConch (CLI): mediaconch -mc -fx file.mov

Note: The command mediaconch -fx file.mov will automatically default to -mc and produce equivalent results.

-With MediaConch (GUI): Select View Mode in the Policy Report tab from the resulting file Checker reports

MediaTrace XML

The MediaTrace XML is a technical reporting tool that expresses the binary architecture of a file as interpreted by MediaArea’s principal software, MediaInfo. Additional information on MediaTrace is available here. A data dictionary is provided at the project’s Github repository here.

Structure of a MediaTrace XML

The root element of the MediaTrace XML exists as <MediaTrace>. This root element contains a <creatingLibrary> sub-element denoting the version of MediaInfo’s library used in generating the trace report:

    <MediaTrace
    xmlns="https://mediaarea.net/mediatrace"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://mediaarea.net/mediatrace https://mediaarea.net/mediatrace/mediatrace_0_1.xsd"
    version="0.1"
    ref="/Users/mycomputer//files/ffv1.mkv">
    <creatingLibrary version="0.7.78" url="https://mediaarea.net/MediaInfo">MediaInfoLib</creatingLibrary>`

Many audiovisual formats are based on chunk-based storage where a block of data will either contain a data payload or other blocks. In QuickTime parlance these blocks are called atoms, in AVI “chunks”, and in Matroska, “elements”. MediaTrace will attempt to parse apart each block into subdivisions and report on their contents. Whether the source format specification calls it element, atom, chunk, or another term, MediaTrace will call it a <block>. In MediaTrace the contents of the block are called <data>:

    <block offset="28" name="DocType" info="matroska" size="11">
        <block offset="28" name="Header" size="3">
            <data offset="28" name="Name">642</data>
            <data offset="30" name="Size">8</data>
        </block>
        <data offset="31" name="Data">matroska</data>
     </block>`

Generating a MediaTrace XML

A MediaTrace XML can be generated using the following tools and associated commands:

-With MediaInfo: mediainfo --Details=1 --Output=XML file.mkv

-With MediaConch (CLI): mediaconch -mt -fx file.mkv

-With MediaConch (GUI): Select Select View Mode in the MediaTrace tab from the resulting file Checker reports

MediaTrace XML Schema

An XML Schema for MediaTrace is available here.

MediaArea XML

The MediaArea XML (MAXML) is designed to bundle general reporting information from MediaInfo, binary file architecture reporting from MediaTrace, and conformance checking information from MediaConch into one condensed XML structure.

Structure of a MediaArea XML

The root element of the MediaArea XML is <MediaArea>, followed by a <media> sibling element. A <MediaInfo> child element defines a MediaInfo general report. Sibling <track type> elements offer various sub-child elements corresponding to associated field metadata.

Generating a MediaArea XML

A MediaTrace XML can be generated using the following tools and associated commands:

-With MediaInfo: mediainfo --Details=1 --Output=MAXML file.mkv

MediaArea XML Schema

An XML Schema for MediaAreaXML is available here.

MediaConch/Source/Resource/html/Help/FAQ/0000755000000000000000000000000014640052500017034 5ustar rootrootMediaConch/Source/Resource/html/Help/FAQ/FAQ.html0000644000000000000000000001530214640052500020332 0ustar rootroot MediaConch - FAQ

FAQ

What is MediaConch?

MediaConch is an extensible, open source software project that helps information professionals validate and standardize audiovisual files for long-term preservation. It offers users more flexibility and technical control over the contents of open audiovisual formats, revealing how the file is built, rather than just how it plays. It does so by enabling users to define criteria for moving image files and test the collections of files against that criteria for select open formats such as Matroska (mkv) and FF Video Codec 1 (FFV1).

The core MediaConch application is available through three adaptable program interfaces, via: the command line, a graphical user interface, or a web-based interface, for uses such as integration into existing archival processing infrastructures as a microservice, local detailed file inspection for irregular video files, or server-based batch-level file checking in distributed processing systems. These three shells allow greater flexibility of product use to serve the various needs of memory institutions.

What file formats can I use with MediaConch?

Supported Formats:

  • Matroska is a multimedia container format with files ending in the suffix of .mkv or .webm. Matroska is a file container, or wrapper, meaning that it holds encoded video and audio streams as well as supplemental metadata. Matroska files are based upon EBML, a binary file format similar to XML.
  • FFV1 is a lossless, open source codec developed by FFmpeg.
  • LPCM is a method for encoding audio. It is an uncompressed audio format.

MediaConch’s target of the implementation checker is currently compatible with these supported formats: Matroska-wrapped video files encoded with FFV1 (File Format Video Codec 1) and LPCM (Linear Pulse Code Modulation). The goal of MediaConch is to check open source preservation-level files for archival conformance at the file level and within the localized policy level per the institution. Because MediaConch builds on MediaInfo, it can provide general file information and analysis on many digital media files and will be extended to a larger variety of formats.

What are the benefits of file conformance checking?

MediaConch analyzes preservation-level audiovisual files for use in memory institutions, providing a detailed report of a file’s technical metadata and other related information. MediaConch can be used during file creation or ingestion, after a file migration, during a quality analysis or quality control phase, or as part of routine file checkups.

Preservation Standardization: Since digital files deteriorate over time, archives can assure that their files are interoperable and conform to established preservation standards by checking that they adhere to format specifications using MediaConch. Such checking will allow for revitalization of potentially corrupt files, prompting an archive, to correct errors within the file when necessary or create new preservation-level files when feasible.

OAIS Adherence: The conformance checking of files helps archives adhere to the OAIS (Open Archival Information System) reference model. Files can be checked for conformance upon initial digitization, upon ingest into a digital repository, upon migration to different locations, and during regular quality control and checkups, as defined by the implementing memory institution.

QA Expansion: Quality control can be better monitored through MediaConch through algorithmic detection of conformance errors as well as the supplemental institution-based policy conformance checker. Since files are checked in a systematic way, preservationists can know definitively whether or not the file is working or how the file has changed since the last time it was reviewed (whether that is from previous quality analysis or during digitization, ingestion, or migration. The result is further usability of files, while also maintaining constant contact between the producer and consumer of content, once again adhering to OAIS standards.

Streamlining & Customizing Routine File Checkup Process: Conformance checking with MediaConch allows institutions to perform routine file checkups in a streamlined process. Such checkup standards can be altered according to shifts in standards regarding preservation-level quality, whether established internally or externally. MediaConch allows for potential users to establish their own standards, choosing files based on personal conformance preferences, which can be altered to fit specific, situational needs.

How can I provide feedback?

Feedback such as requests for clarifications, suggestions, enhancements, or reports of bugs is important for MediaConch. If you find an issue, please visit the issue tracker at MediaArea’s GitHub repository for the project and create a new issue, where you can describe your suggestion or the bug you’ve found. This would be incredibly helpful and would enable us to improve the tools and experience for you, our intended users. Once submitted, the issue will be in the public issue tracker and the development team can respond to it or associate improvements to it.

MediaConch/Source/Resource/html/css/0000755000000000000000000000000014640052500016325 5ustar rootrootMediaConch/Source/Resource/html/css/32px.png0000644000000000000000000001303414640052500017630 0ustar rootrootPNG  IHDR@`lK(IDATx tU+ EaW6uAx<7$"Ƨ"2Ge`P A%Ic%!}M:aJΞNBN~] m1s~v;}*ݿoݪn kwo-.crqq^  '@ '@ '0N\Y\\\Y8rqdrqqqdrTPm}3ߣ>;"Tu!((Ȣ,fVmfAtN~G?m}̶uۛub"^~ʂ\/iZ!dy cE"(,X(X.A./+H//G~Q P`̓׉֯L<VTJ5?ɑl*Mi2tN ZK ӐP͗E_ $rYNDMIngӎ" p1#Yq>+n18'm"-m* Ұm x["א)!Tť=z@sJ`o, POİҜ|9yy6ED@Mo?av.Şl6\( a8{s;ƥH]ۀQU{óBԝ_&ȜHYX6܇)Jw`U4H﷠Qt`"jV_3gffe@ZZӑEȗEX 0*,V[[,yXqf&6dY4.BqawR,ZXuSCWcީ11~cwjτ/'`"n_4c/-HrVNJM7zclN_ LMKEJJ*RSӐ~CH0 9B(%"cIf Imv&š>c 2/k6d̿ Ao-j:QObN3=7 F۽@*9>G#}05 _-Q]>$&BE"AWzl#|#`s4ÚT!? IJNE,BP򐰸Xo7ƽ /ӄ8$(4 OF? #c4cM`ԡysk14&}#A $<*sM<$Ml NGlZ>&@e^| .|!?`PikտHJ{$=}^pדe!1eBvؘ('@$?=汞o{cr;Aawa\p\U}7tW\UvCwg ok"6T1P-Hb+^r{`L1pld%DO‹#>.ze$]Oi0:,cĀ 0?BÀP7xĠBx0(<)gh xoNQS-'v/k'%, HB@ =Vއcn~-䗓 .g M:6cPfi;)#.J^ d`JjH'`n~NQ#_-*n}XHR[ ]ǣH>nzt2#e7E{ 7ˬmYY|hq%2jWfy)"@EnM:u.qZ`Y| +RwajpKZk> A.ABN 4J$F4ay,@agwd aN,@ard2  aXY& ϰ92  gXar3,@N ð9r '@aX9rm87B(?92$o߂m#gBfLVӶkI6â,qfǺ)˚?1[^﾿QO;y9q,2fsp=ޏy֑>с^1 ~қ"ހA9!@o߮,K;Kt7ETd\X-!Uҵ`9ĽO/a">ֿibdtl&^1pX@g:#ð}.x-=#ƤaD=!B% ZWj2 XP;7oBomJU{?!@oU;(vIP"`5c!BxUK&{}?&Ĥ0DOuqwtGxSa.ju_u}H n~!mW0p8wP> `}plZ`Sϡz WAY /Cb~VTuIB[ zgv.v k` 7KxB'+PBOAą}B1@yYL*q^$(Q0FɵI"N4STO1~'tgel0MHR ߻,oG} geHVw*:!gf1 ܀tJ8LV)[!ҫQr|"Sn|^7w~? {hV ]rEx|}8|8@vD; H(2>i$tOb76%3-H:EB qw#Z\ ۫{0Mlu6,O&r:x ^b6&?R.#>tC4|%èp%]ffȓ'/M~=!/#ّr脯f> gAÇ!P;VQ 0 '@aXard a '@aXard a '@a8rd aN,@a8d '@ ð9 /Ijw$Rs0 `Fu⛶`A?y\ݝqsm;RKJRk{r_q cg8,_S~K.[oj+h֭C $k֘vwSy (߶tMOHHK8Hj<8Ufƻж-^x5˖h*STǎc V6!2NDŖ-7u4R WWge6 } K\\3K}oF6cےogzȜHYX6܇^>'V KPԾ='OFXXXظزسydCP #%X-b RKBd 2U`=99b0V/wWV;?9Xŗ&⋸Ixm$iB^*D|`$\k ̞ ˜9y%05NB$x9 N,(@ɝ9+敜wxHL zɻC mqdO/(T>(jN}UsX칍KJPc6ZnKbIu F!AZ!O0H=zt(uFha\ZL{xz}gGD߃Ix*TB/[^|= B%RNWKNNr,IK?bzV ^Z'@-!0%B Pc=KLp aV "/DB [&a'T]A{h1w&M(IÕ=iJOiz ?W†,@>_kΓzoN$W/Z\觺mkpe*xDAmR$'($ط/r'OPl!C|,fK7n ,@ڧ5o$t`OB%o> %?g类O;#ɐ+D˖&Yɑ<77cwu4M :l6`550ᮌ]S]# d8jqxEvׯ\e+vE{f㈳3bS)1g춷n#Xv^?gan60xy!sZ 4dSUU&=L&+t̯Z:'pd8jx"-ZT wpsn`  lÄo;k;.xy4Iee&F rd8jx%_Z&@{nnB۶v۩.ʕ"eDwNN豚Km,6֔nDPZ,Cd2և!8ޛ&K{X}M*see***PQ^ʊJTWaq'ANM㰜ڋ̞kpJ+9h=a'MW.(5E^ҊWj`+4=Z_$.b=AdNKҫBi",*-_u%Ғ^KY,V$ՙNOI'fiSҋ+Z/I/_.n J+jli´J+.|XY0` 0` 0` 0`gnsoŸ~V^wbhEe?6,S{;mX XH2Xw"I+Zҏ%bcIHl , 6n[7́[b6Ep$E KA%$H% eזufX.:h~A\jqxhhy|aeQb`ʇ4 0` 0` 0` p,'' ÖCy\nJ 츓[Ϯ{ u[Z3xWv? ~WD, o{:;n׷(Q (xŁ9#Q5CQ1x, 4 >ZGF#7)>khٔ3K<4$-Ζféq{``YbsxK-_ė7//`k_/Q^ _EH{ELyaL|i 0` 0` 0` 0`OWܵHs!:pRAmŠ}uPЭ }O~n?+8w e*}4` 0`s a|tIiӴ$[jo1m+yetiRhyZ0` 0` p 0` Ep 0`~:m2\)'fOϳdz<I"-?codã}`?Z8=X<_f0zz2 0` 0`V<d nSvmvxlmï+8|vOR?` ݻ['xK.e zڽWN7畂]z{{\GE'3 NftgBwS7]GSN;;eKM8X<]H>k*3hơVW8 2W"KZY&pKsD`WFk8 xE1ؕG0~7x`WpeKpqu՝#Gp SW^},pԑl4+:u%%]. G]Fa2yת#h|(]׃_GßÕ-e񑖫n.br pfT4[*w,x.x9n>\\=eV^O7Ji A:QOIENDB`MediaConch/Source/Resource/html/css/bootstrap.css0000644000000000000000000043510214640052500021061 0ustar rootroot/*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ html { font-family: sans-serif; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } body { margin: 0; } article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } audio, canvas, progress, video { display: inline-block; vertical-align: baseline; } audio:not([controls]) { display: none; height: 0; } [hidden], template { display: none; } a { background-color: transparent; } a:active, a:hover { outline: 0; } abbr[title] { border-bottom: 1px dotted; } b, strong { font-weight: bold; } dfn { font-style: italic; } h1 { margin: .67em 0; font-size: 2em; } mark { color: #000; background: #ff0; } small { font-size: 80%; } sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } sup { top: -.5em; } sub { bottom: -.25em; } img { border: 0; } svg:not(:root) { overflow: hidden; } figure { margin: 1em 40px; } hr { height: 0; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; } pre { overflow: auto; } code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } button, input, optgroup, select, textarea { margin: 0; font: inherit; color: inherit; } button { overflow: visible; } button, select { text-transform: none; } button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; } button[disabled], html input[disabled] { cursor: default; } button::-moz-focus-inner, input::-moz-focus-inner { padding: 0; border: 0; } input { line-height: normal; } input[type="checkbox"], input[type="radio"] { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; } input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } input[type="search"] { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; -webkit-appearance: textfield; } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } fieldset { padding: .35em .625em .75em; margin: 0 2px; border: 1px solid #c0c0c0; } legend { padding: 0; border: 0; } textarea { overflow: auto; } optgroup { font-weight: bold; } table { border-spacing: 0; border-collapse: collapse; } td, th { padding: 0; } /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ @media print { *, *:before, *:after { color: #000 !important; text-shadow: none !important; background: transparent !important; -webkit-box-shadow: none !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } a[href^="#"]:after, a[href^="javascript:"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; } tr, img { page-break-inside: avoid; } img { max-width: 100% !important; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } .navbar { display: none; } .btn > .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table td, .table th { background-color: #fff !important; } .table-bordered th, .table-bordered td { border: 1px solid #ddd !important; } } @font-face { font-family: 'Glyphicons Halflings'; src: url('qrc:/glyphicons-halflings-regular.eot'); src: url('qrc:/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('qrc:/glyphicons-halflings-regular.woff2') format('woff2'), url('qrc:/glyphicons-halflings-regular.woff') format('woff'), url('qrc:/glyphicons-halflings-regular.ttf') format('truetype'), url('qrc:/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); } .glyphicon { position: relative; top: 1px; display: inline-block; font-family: 'Glyphicons Halflings'; font-style: normal; font-weight: normal; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .glyphicon-asterisk:before { content: "\002a"; } .glyphicon-plus:before { content: "\002b"; } .glyphicon-euro:before, .glyphicon-eur:before { content: "\20ac"; } .glyphicon-minus:before { content: "\2212"; } .glyphicon-cloud:before { content: "\2601"; } .glyphicon-envelope:before { content: "\2709"; } .glyphicon-pencil:before { content: "\270f"; } .glyphicon-glass:before { content: "\e001"; } .glyphicon-music:before { content: "\e002"; } .glyphicon-search:before { content: "\e003"; } .glyphicon-heart:before { content: "\e005"; } .glyphicon-star:before { content: "\e006"; } .glyphicon-star-empty:before { content: "\e007"; } .glyphicon-user:before { content: "\e008"; } .glyphicon-film:before { content: "\e009"; } .glyphicon-th-large:before { content: "\e010"; } .glyphicon-th:before { content: "\e011"; } .glyphicon-th-list:before { content: "\e012"; } .glyphicon-ok:before { content: "\e013"; } .glyphicon-remove:before { content: "\e014"; } .glyphicon-zoom-in:before { content: "\e015"; } .glyphicon-zoom-out:before { content: "\e016"; } .glyphicon-off:before { content: "\e017"; } .glyphicon-signal:before { content: "\e018"; } .glyphicon-cog:before { content: "\e019"; } .glyphicon-trash:before { content: "\e020"; } .glyphicon-home:before { content: "\e021"; } .glyphicon-file:before { content: "\e022"; } .glyphicon-time:before { content: "\e023"; } .glyphicon-road:before { content: "\e024"; } .glyphicon-download-alt:before { content: "\e025"; } .glyphicon-download:before { content: "\e026"; } .glyphicon-upload:before { content: "\e027"; } .glyphicon-inbox:before { content: "\e028"; } .glyphicon-play-circle:before { content: "\e029"; } .glyphicon-repeat:before { content: "\e030"; } .glyphicon-refresh:before { content: "\e031"; } .glyphicon-list-alt:before { content: "\e032"; } .glyphicon-lock:before { content: "\e033"; } .glyphicon-flag:before { content: "\e034"; } .glyphicon-headphones:before { content: "\e035"; } .glyphicon-volume-off:before { content: "\e036"; } .glyphicon-volume-down:before { content: "\e037"; } .glyphicon-volume-up:before { content: "\e038"; } .glyphicon-qrcode:before { content: "\e039"; } .glyphicon-barcode:before { content: "\e040"; } .glyphicon-tag:before { content: "\e041"; } .glyphicon-tags:before { content: "\e042"; } .glyphicon-book:before { content: "\e043"; } .glyphicon-bookmark:before { content: "\e044"; } .glyphicon-print:before { content: "\e045"; } .glyphicon-camera:before { content: "\e046"; } .glyphicon-font:before { content: "\e047"; } .glyphicon-bold:before { content: "\e048"; } .glyphicon-italic:before { content: "\e049"; } .glyphicon-text-height:before { content: "\e050"; } .glyphicon-text-width:before { content: "\e051"; } .glyphicon-align-left:before { content: "\e052"; } .glyphicon-align-center:before { content: "\e053"; } .glyphicon-align-right:before { content: "\e054"; } .glyphicon-align-justify:before { content: "\e055"; } .glyphicon-list:before { content: "\e056"; } .glyphicon-indent-left:before { content: "\e057"; } .glyphicon-indent-right:before { content: "\e058"; } .glyphicon-facetime-video:before { content: "\e059"; } .glyphicon-picture:before { content: "\e060"; } .glyphicon-map-marker:before { content: "\e062"; } .glyphicon-adjust:before { content: "\e063"; } .glyphicon-tint:before { content: "\e064"; } .glyphicon-edit:before { content: "\e065"; } .glyphicon-share:before { content: "\e066"; } .glyphicon-check:before { content: "\e067"; } .glyphicon-move:before { content: "\e068"; } .glyphicon-step-backward:before { content: "\e069"; } .glyphicon-fast-backward:before { content: "\e070"; } .glyphicon-backward:before { content: "\e071"; } .glyphicon-play:before { content: "\e072"; } .glyphicon-pause:before { content: "\e073"; } .glyphicon-stop:before { content: "\e074"; } .glyphicon-forward:before { content: "\e075"; } .glyphicon-fast-forward:before { content: "\e076"; } .glyphicon-step-forward:before { content: "\e077"; } .glyphicon-eject:before { content: "\e078"; } .glyphicon-chevron-left:before { content: "\e079"; } .glyphicon-chevron-right:before { content: "\e080"; } .glyphicon-plus-sign:before { content: "\e081"; } .glyphicon-minus-sign:before { content: "\e082"; } .glyphicon-remove-sign:before { content: "\e083"; } .glyphicon-ok-sign:before { content: "\e084"; } .glyphicon-question-sign:before { content: "\e085"; } .glyphicon-info-sign:before { content: "\e086"; } .glyphicon-screenshot:before { content: "\e087"; } .glyphicon-remove-circle:before { content: "\e088"; } .glyphicon-ok-circle:before { content: "\e089"; } .glyphicon-ban-circle:before { content: "\e090"; } .glyphicon-arrow-left:before { content: "\e091"; } .glyphicon-arrow-right:before { content: "\e092"; } .glyphicon-arrow-up:before { content: "\e093"; } .glyphicon-arrow-down:before { content: "\e094"; } .glyphicon-share-alt:before { content: "\e095"; } .glyphicon-resize-full:before { content: "\e096"; } .glyphicon-resize-small:before { content: "\e097"; } .glyphicon-exclamation-sign:before { content: "\e101"; } .glyphicon-gift:before { content: "\e102"; } .glyphicon-leaf:before { content: "\e103"; } .glyphicon-fire:before { content: "\e104"; } .glyphicon-eye-open:before { content: "\e105"; } .glyphicon-eye-close:before { content: "\e106"; } .glyphicon-warning-sign:before { content: "\e107"; } .glyphicon-plane:before { content: "\e108"; } .glyphicon-calendar:before { content: "\e109"; } .glyphicon-random:before { content: "\e110"; } .glyphicon-comment:before { content: "\e111"; } .glyphicon-magnet:before { content: "\e112"; } .glyphicon-chevron-up:before { content: "\e113"; } .glyphicon-chevron-down:before { content: "\e114"; } .glyphicon-retweet:before { content: "\e115"; } .glyphicon-shopping-cart:before { content: "\e116"; } .glyphicon-folder-close:before { content: "\e117"; } .glyphicon-folder-open:before { content: "\e118"; } .glyphicon-resize-vertical:before { content: "\e119"; } .glyphicon-resize-horizontal:before { content: "\e120"; } .glyphicon-hdd:before { content: "\e121"; } .glyphicon-bullhorn:before { content: "\e122"; } .glyphicon-bell:before { content: "\e123"; } .glyphicon-certificate:before { content: "\e124"; } .glyphicon-thumbs-up:before { content: "\e125"; } .glyphicon-thumbs-down:before { content: "\e126"; } .glyphicon-hand-right:before { content: "\e127"; } .glyphicon-hand-left:before { content: "\e128"; } .glyphicon-hand-up:before { content: "\e129"; } .glyphicon-hand-down:before { content: "\e130"; } .glyphicon-circle-arrow-right:before { content: "\e131"; } .glyphicon-circle-arrow-left:before { content: "\e132"; } .glyphicon-circle-arrow-up:before { content: "\e133"; } .glyphicon-circle-arrow-down:before { content: "\e134"; } .glyphicon-globe:before { content: "\e135"; } .glyphicon-wrench:before { content: "\e136"; } .glyphicon-tasks:before { content: "\e137"; } .glyphicon-filter:before { content: "\e138"; } .glyphicon-briefcase:before { content: "\e139"; } .glyphicon-fullscreen:before { content: "\e140"; } .glyphicon-dashboard:before { content: "\e141"; } .glyphicon-paperclip:before { content: "\e142"; } .glyphicon-heart-empty:before { content: "\e143"; } .glyphicon-link:before { content: "\e144"; } .glyphicon-phone:before { content: "\e145"; } .glyphicon-pushpin:before { content: "\e146"; } .glyphicon-usd:before { content: "\e148"; } .glyphicon-gbp:before { content: "\e149"; } .glyphicon-sort:before { content: "\e150"; } .glyphicon-sort-by-alphabet:before { content: "\e151"; } .glyphicon-sort-by-alphabet-alt:before { content: "\e152"; } .glyphicon-sort-by-order:before { content: "\e153"; } .glyphicon-sort-by-order-alt:before { content: "\e154"; } .glyphicon-sort-by-attributes:before { content: "\e155"; } .glyphicon-sort-by-attributes-alt:before { content: "\e156"; } .glyphicon-unchecked:before { content: "\e157"; } .glyphicon-expand:before { content: "\e158"; } .glyphicon-collapse-down:before { content: "\e159"; } .glyphicon-collapse-up:before { content: "\e160"; } .glyphicon-log-in:before { content: "\e161"; } .glyphicon-flash:before { content: "\e162"; } .glyphicon-log-out:before { content: "\e163"; } .glyphicon-new-window:before { content: "\e164"; } .glyphicon-record:before { content: "\e165"; } .glyphicon-save:before { content: "\e166"; } .glyphicon-open:before { content: "\e167"; } .glyphicon-saved:before { content: "\e168"; } .glyphicon-import:before { content: "\e169"; } .glyphicon-export:before { content: "\e170"; } .glyphicon-send:before { content: "\e171"; } .glyphicon-floppy-disk:before { content: "\e172"; } .glyphicon-floppy-saved:before { content: "\e173"; } .glyphicon-floppy-remove:before { content: "\e174"; } .glyphicon-floppy-save:before { content: "\e175"; } .glyphicon-floppy-open:before { content: "\e176"; } .glyphicon-credit-card:before { content: "\e177"; } .glyphicon-transfer:before { content: "\e178"; } .glyphicon-cutlery:before { content: "\e179"; } .glyphicon-header:before { content: "\e180"; } .glyphicon-compressed:before { content: "\e181"; } .glyphicon-earphone:before { content: "\e182"; } .glyphicon-phone-alt:before { content: "\e183"; } .glyphicon-tower:before { content: "\e184"; } .glyphicon-stats:before { content: "\e185"; } .glyphicon-sd-video:before { content: "\e186"; } .glyphicon-hd-video:before { content: "\e187"; } .glyphicon-subtitles:before { content: "\e188"; } .glyphicon-sound-stereo:before { content: "\e189"; } .glyphicon-sound-dolby:before { content: "\e190"; } .glyphicon-sound-5-1:before { content: "\e191"; } .glyphicon-sound-6-1:before { content: "\e192"; } .glyphicon-sound-7-1:before { content: "\e193"; } .glyphicon-copyright-mark:before { content: "\e194"; } .glyphicon-registration-mark:before { content: "\e195"; } .glyphicon-cloud-download:before { content: "\e197"; } .glyphicon-cloud-upload:before { content: "\e198"; } .glyphicon-tree-conifer:before { content: "\e199"; } .glyphicon-tree-deciduous:before { content: "\e200"; } .glyphicon-cd:before { content: "\e201"; } .glyphicon-save-file:before { content: "\e202"; } .glyphicon-open-file:before { content: "\e203"; } .glyphicon-level-up:before { content: "\e204"; } .glyphicon-copy:before { content: "\e205"; } .glyphicon-paste:before { content: "\e206"; } .glyphicon-alert:before { content: "\e209"; } .glyphicon-equalizer:before { content: "\e210"; } .glyphicon-king:before { content: "\e211"; } .glyphicon-queen:before { content: "\e212"; } .glyphicon-pawn:before { content: "\e213"; } .glyphicon-bishop:before { content: "\e214"; } .glyphicon-knight:before { content: "\e215"; } .glyphicon-baby-formula:before { content: "\e216"; } .glyphicon-tent:before { content: "\26fa"; } .glyphicon-blackboard:before { content: "\e218"; } .glyphicon-bed:before { content: "\e219"; } .glyphicon-apple:before { content: "\f8ff"; } .glyphicon-erase:before { content: "\e221"; } .glyphicon-hourglass:before { content: "\231b"; } .glyphicon-lamp:before { content: "\e223"; } .glyphicon-duplicate:before { content: "\e224"; } .glyphicon-piggy-bank:before { content: "\e225"; } .glyphicon-scissors:before { content: "\e226"; } .glyphicon-bitcoin:before { content: "\e227"; } .glyphicon-btc:before { content: "\e227"; } .glyphicon-xbt:before { content: "\e227"; } .glyphicon-yen:before { content: "\00a5"; } .glyphicon-jpy:before { content: "\00a5"; } .glyphicon-ruble:before { content: "\20bd"; } .glyphicon-rub:before { content: "\20bd"; } .glyphicon-scale:before { content: "\e230"; } .glyphicon-ice-lolly:before { content: "\e231"; } .glyphicon-ice-lolly-tasted:before { content: "\e232"; } .glyphicon-education:before { content: "\e233"; } .glyphicon-option-horizontal:before { content: "\e234"; } .glyphicon-option-vertical:before { content: "\e235"; } .glyphicon-menu-hamburger:before { content: "\e236"; } .glyphicon-modal-window:before { content: "\e237"; } .glyphicon-oil:before { content: "\e238"; } .glyphicon-grain:before { content: "\e239"; } .glyphicon-sunglasses:before { content: "\e240"; } .glyphicon-text-size:before { content: "\e241"; } .glyphicon-text-color:before { content: "\e242"; } .glyphicon-text-background:before { content: "\e243"; } .glyphicon-object-align-top:before { content: "\e244"; } .glyphicon-object-align-bottom:before { content: "\e245"; } .glyphicon-object-align-horizontal:before { content: "\e246"; } .glyphicon-object-align-left:before { content: "\e247"; } .glyphicon-object-align-vertical:before { content: "\e248"; } .glyphicon-object-align-right:before { content: "\e249"; } .glyphicon-triangle-right:before { content: "\e250"; } .glyphicon-triangle-left:before { content: "\e251"; } .glyphicon-triangle-bottom:before { content: "\e252"; } .glyphicon-triangle-top:before { content: "\e253"; } .glyphicon-console:before { content: "\e254"; } .glyphicon-superscript:before { content: "\e255"; } .glyphicon-subscript:before { content: "\e256"; } .glyphicon-menu-left:before { content: "\e257"; } .glyphicon-menu-right:before { content: "\e258"; } .glyphicon-menu-down:before { content: "\e259"; } .glyphicon-menu-up:before { content: "\e260"; } * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } html { font-size: 10px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857143; color: #333; background-color: #fff; } input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; } a { color: #337ab7; text-decoration: none; } a:hover, a:focus { color: #23527c; text-decoration: underline; } a:focus { outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } figure { margin: 0; } img { vertical-align: middle; } .img-responsive, .thumbnail > img, .thumbnail a > img, .carousel-inner > .item > img, .carousel-inner > .item > a > img { display: block; max-width: 100%; height: auto; } .img-rounded { border-radius: 6px; } .img-thumbnail { display: inline-block; max-width: 100%; height: auto; padding: 4px; line-height: 1.42857143; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; -webkit-transition: all .2s ease-in-out; -o-transition: all .2s ease-in-out; transition: all .2s ease-in-out; } .img-circle { border-radius: 50%; } hr { margin-top: 20px; margin-bottom: 20px; border: 0; border-top: 1px solid #eee; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } .sr-only-focusable:active, .sr-only-focusable:focus { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; } [role="button"] { cursor: pointer; } h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: inherit; font-weight: 500; line-height: 1.1; color: inherit; } h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { font-weight: normal; line-height: 1; color: #777; } h1, .h1, h2, .h2, h3, .h3 { margin-top: 20px; margin-bottom: 10px; } h1 small, .h1 small, h2 small, .h2 small, h3 small, .h3 small, h1 .small, .h1 .small, h2 .small, .h2 .small, h3 .small, .h3 .small { font-size: 65%; } h4, .h4, h5, .h5, h6, .h6 { margin-top: 10px; margin-bottom: 10px; } h4 small, .h4 small, h5 small, .h5 small, h6 small, .h6 small, h4 .small, .h4 .small, h5 .small, .h5 .small, h6 .small, .h6 .small { font-size: 75%; } h1, .h1 { font-size: 36px; } h2, .h2 { font-size: 30px; } h3, .h3 { font-size: 24px; } h4, .h4 { font-size: 18px; } h5, .h5 { font-size: 14px; } h6, .h6 { font-size: 12px; } p { margin: 0 0 10px; } .lead { margin-bottom: 20px; font-size: 16px; font-weight: 300; line-height: 1.4; } @media (min-width: 768px) { .lead { font-size: 21px; } } small, .small { font-size: 85%; } mark, .mark { padding: .2em; background-color: #fcf8e3; } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .text-justify { text-align: justify; } .text-nowrap { white-space: nowrap; } .text-lowercase { text-transform: lowercase; } .text-uppercase { text-transform: uppercase; } .text-capitalize { text-transform: capitalize; } .text-muted { color: #777; } .text-primary { color: #337ab7; } a.text-primary:hover, a.text-primary:focus { color: #286090; } .text-success { color: #3c763d; } a.text-success:hover, a.text-success:focus { color: #2b542c; } .text-info { color: #31708f; } a.text-info:hover, a.text-info:focus { color: #245269; } .text-warning { color: #8a6d3b; } a.text-warning:hover, a.text-warning:focus { color: #66512c; } .text-danger { color: #a94442; } a.text-danger:hover, a.text-danger:focus { color: #843534; } .bg-primary { color: #fff; background-color: #337ab7; } a.bg-primary:hover, a.bg-primary:focus { background-color: #286090; } .bg-success { background-color: #dff0d8; } a.bg-success:hover, a.bg-success:focus { background-color: #c1e2b3; } .bg-info { background-color: #d9edf7; } a.bg-info:hover, a.bg-info:focus { background-color: #afd9ee; } .bg-warning { background-color: #fcf8e3; } a.bg-warning:hover, a.bg-warning:focus { background-color: #f7ecb5; } .bg-danger { background-color: #f2dede; } a.bg-danger:hover, a.bg-danger:focus { background-color: #e4b9b9; } .page-header { padding-bottom: 9px; margin: 40px 0 20px; border-bottom: 1px solid #eee; } ul, ol { margin-top: 0; margin-bottom: 10px; } ul ul, ol ul, ul ol, ol ol { margin-bottom: 0; } .list-unstyled { padding-left: 0; list-style: none; } .list-inline { padding-left: 0; margin-left: -5px; list-style: none; } .list-inline > li { display: inline-block; padding-right: 5px; padding-left: 5px; } dl { margin-top: 0; margin-bottom: 20px; } dt, dd { line-height: 1.42857143; } dt { font-weight: bold; } dd { margin-left: 0; } @media (min-width: 768px) { .dl-horizontal dt { float: left; width: 160px; overflow: hidden; clear: left; text-align: right; text-overflow: ellipsis; white-space: nowrap; } .dl-horizontal dd { margin-left: 180px; } } abbr[title], abbr[data-original-title] { cursor: help; border-bottom: 1px dotted #777; } .initialism { font-size: 90%; text-transform: uppercase; } blockquote { padding: 10px 20px; margin: 0 0 20px; font-size: 17.5px; border-left: 5px solid #eee; } blockquote p:last-child, blockquote ul:last-child, blockquote ol:last-child { margin-bottom: 0; } blockquote footer, blockquote small, blockquote .small { display: block; font-size: 80%; line-height: 1.42857143; color: #777; } blockquote footer:before, blockquote small:before, blockquote .small:before { content: '\2014 \00A0'; } .blockquote-reverse, blockquote.pull-right { padding-right: 15px; padding-left: 0; text-align: right; border-right: 5px solid #eee; border-left: 0; } .blockquote-reverse footer:before, blockquote.pull-right footer:before, .blockquote-reverse small:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { content: ''; } .blockquote-reverse footer:after, blockquote.pull-right footer:after, .blockquote-reverse small:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { content: '\00A0 \2014'; } address { margin-bottom: 20px; font-style: normal; line-height: 1.42857143; } code, kbd, pre, samp { font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } code { padding: 2px 4px; font-size: 90%; color: #c7254e; background-color: #f9f2f4; border-radius: 4px; } kbd { padding: 2px 4px; font-size: 90%; color: #fff; background-color: #333; border-radius: 3px; -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); } kbd kbd { padding: 0; font-size: 100%; font-weight: bold; -webkit-box-shadow: none; box-shadow: none; } pre { display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; color: #333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px; } pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap; background-color: transparent; border-radius: 0; } .pre-scrollable { max-height: 340px; overflow-y: scroll; } .container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } @media (min-width: 768px) { .container { width: 750px; } } @media (min-width: 992px) { .container { width: 970px; } } @media (min-width: 1200px) { .container { width: 1170px; } } .container-fluid { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } .row { margin-right: -15px; margin-left: -15px; } .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { position: relative; min-height: 1px; padding-right: 15px; padding-left: 15px; } .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { float: left; } .col-xs-12 { width: 100%; } .col-xs-11 { width: 91.66666667%; } .col-xs-10 { width: 83.33333333%; } .col-xs-9 { width: 75%; } .col-xs-8 { width: 66.66666667%; } .col-xs-7 { width: 58.33333333%; } .col-xs-6 { width: 50%; } .col-xs-5 { width: 41.66666667%; } .col-xs-4 { width: 33.33333333%; } .col-xs-3 { width: 25%; } .col-xs-2 { width: 16.66666667%; } .col-xs-1 { width: 8.33333333%; } .col-xs-pull-12 { right: 100%; } .col-xs-pull-11 { right: 91.66666667%; } .col-xs-pull-10 { right: 83.33333333%; } .col-xs-pull-9 { right: 75%; } .col-xs-pull-8 { right: 66.66666667%; } .col-xs-pull-7 { right: 58.33333333%; } .col-xs-pull-6 { right: 50%; } .col-xs-pull-5 { right: 41.66666667%; } .col-xs-pull-4 { right: 33.33333333%; } .col-xs-pull-3 { right: 25%; } .col-xs-pull-2 { right: 16.66666667%; } .col-xs-pull-1 { right: 8.33333333%; } .col-xs-pull-0 { right: auto; } .col-xs-push-12 { left: 100%; } .col-xs-push-11 { left: 91.66666667%; } .col-xs-push-10 { left: 83.33333333%; } .col-xs-push-9 { left: 75%; } .col-xs-push-8 { left: 66.66666667%; } .col-xs-push-7 { left: 58.33333333%; } .col-xs-push-6 { left: 50%; } .col-xs-push-5 { left: 41.66666667%; } .col-xs-push-4 { left: 33.33333333%; } .col-xs-push-3 { left: 25%; } .col-xs-push-2 { left: 16.66666667%; } .col-xs-push-1 { left: 8.33333333%; } .col-xs-push-0 { left: auto; } .col-xs-offset-12 { margin-left: 100%; } .col-xs-offset-11 { margin-left: 91.66666667%; } .col-xs-offset-10 { margin-left: 83.33333333%; } .col-xs-offset-9 { margin-left: 75%; } .col-xs-offset-8 { margin-left: 66.66666667%; } .col-xs-offset-7 { margin-left: 58.33333333%; } .col-xs-offset-6 { margin-left: 50%; } .col-xs-offset-5 { margin-left: 41.66666667%; } .col-xs-offset-4 { margin-left: 33.33333333%; } .col-xs-offset-3 { margin-left: 25%; } .col-xs-offset-2 { margin-left: 16.66666667%; } .col-xs-offset-1 { margin-left: 8.33333333%; } .col-xs-offset-0 { margin-left: 0; } @media (min-width: 768px) { .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { float: left; } .col-sm-12 { width: 100%; } .col-sm-11 { width: 91.66666667%; } .col-sm-10 { width: 83.33333333%; } .col-sm-9 { width: 75%; } .col-sm-8 { width: 66.66666667%; } .col-sm-7 { width: 58.33333333%; } .col-sm-6 { width: 50%; } .col-sm-5 { width: 41.66666667%; } .col-sm-4 { width: 33.33333333%; } .col-sm-3 { width: 25%; } .col-sm-2 { width: 16.66666667%; } .col-sm-1 { width: 8.33333333%; } .col-sm-pull-12 { right: 100%; } .col-sm-pull-11 { right: 91.66666667%; } .col-sm-pull-10 { right: 83.33333333%; } .col-sm-pull-9 { right: 75%; } .col-sm-pull-8 { right: 66.66666667%; } .col-sm-pull-7 { right: 58.33333333%; } .col-sm-pull-6 { right: 50%; } .col-sm-pull-5 { right: 41.66666667%; } .col-sm-pull-4 { right: 33.33333333%; } .col-sm-pull-3 { right: 25%; } .col-sm-pull-2 { right: 16.66666667%; } .col-sm-pull-1 { right: 8.33333333%; } .col-sm-pull-0 { right: auto; } .col-sm-push-12 { left: 100%; } .col-sm-push-11 { left: 91.66666667%; } .col-sm-push-10 { left: 83.33333333%; } .col-sm-push-9 { left: 75%; } .col-sm-push-8 { left: 66.66666667%; } .col-sm-push-7 { left: 58.33333333%; } .col-sm-push-6 { left: 50%; } .col-sm-push-5 { left: 41.66666667%; } .col-sm-push-4 { left: 33.33333333%; } .col-sm-push-3 { left: 25%; } .col-sm-push-2 { left: 16.66666667%; } .col-sm-push-1 { left: 8.33333333%; } .col-sm-push-0 { left: auto; } .col-sm-offset-12 { margin-left: 100%; } .col-sm-offset-11 { margin-left: 91.66666667%; } .col-sm-offset-10 { margin-left: 83.33333333%; } .col-sm-offset-9 { margin-left: 75%; } .col-sm-offset-8 { margin-left: 66.66666667%; } .col-sm-offset-7 { margin-left: 58.33333333%; } .col-sm-offset-6 { margin-left: 50%; } .col-sm-offset-5 { margin-left: 41.66666667%; } .col-sm-offset-4 { margin-left: 33.33333333%; } .col-sm-offset-3 { margin-left: 25%; } .col-sm-offset-2 { margin-left: 16.66666667%; } .col-sm-offset-1 { margin-left: 8.33333333%; } .col-sm-offset-0 { margin-left: 0; } } @media (min-width: 992px) { .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { float: left; } .col-md-12 { width: 100%; } .col-md-11 { width: 91.66666667%; } .col-md-10 { width: 83.33333333%; } .col-md-9 { width: 75%; } .col-md-8 { width: 66.66666667%; } .col-md-7 { width: 58.33333333%; } .col-md-6 { width: 50%; } .col-md-5 { width: 41.66666667%; } .col-md-4 { width: 33.33333333%; } .col-md-3 { width: 25%; } .col-md-2 { width: 16.66666667%; } .col-md-1 { width: 8.33333333%; } .col-md-pull-12 { right: 100%; } .col-md-pull-11 { right: 91.66666667%; } .col-md-pull-10 { right: 83.33333333%; } .col-md-pull-9 { right: 75%; } .col-md-pull-8 { right: 66.66666667%; } .col-md-pull-7 { right: 58.33333333%; } .col-md-pull-6 { right: 50%; } .col-md-pull-5 { right: 41.66666667%; } .col-md-pull-4 { right: 33.33333333%; } .col-md-pull-3 { right: 25%; } .col-md-pull-2 { right: 16.66666667%; } .col-md-pull-1 { right: 8.33333333%; } .col-md-pull-0 { right: auto; } .col-md-push-12 { left: 100%; } .col-md-push-11 { left: 91.66666667%; } .col-md-push-10 { left: 83.33333333%; } .col-md-push-9 { left: 75%; } .col-md-push-8 { left: 66.66666667%; } .col-md-push-7 { left: 58.33333333%; } .col-md-push-6 { left: 50%; } .col-md-push-5 { left: 41.66666667%; } .col-md-push-4 { left: 33.33333333%; } .col-md-push-3 { left: 25%; } .col-md-push-2 { left: 16.66666667%; } .col-md-push-1 { left: 8.33333333%; } .col-md-push-0 { left: auto; } .col-md-offset-12 { margin-left: 100%; } .col-md-offset-11 { margin-left: 91.66666667%; } .col-md-offset-10 { margin-left: 83.33333333%; } .col-md-offset-9 { margin-left: 75%; } .col-md-offset-8 { margin-left: 66.66666667%; } .col-md-offset-7 { margin-left: 58.33333333%; } .col-md-offset-6 { margin-left: 50%; } .col-md-offset-5 { margin-left: 41.66666667%; } .col-md-offset-4 { margin-left: 33.33333333%; } .col-md-offset-3 { margin-left: 25%; } .col-md-offset-2 { margin-left: 16.66666667%; } .col-md-offset-1 { margin-left: 8.33333333%; } .col-md-offset-0 { margin-left: 0; } } @media (min-width: 1200px) { .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { float: left; } .col-lg-12 { width: 100%; } .col-lg-11 { width: 91.66666667%; } .col-lg-10 { width: 83.33333333%; } .col-lg-9 { width: 75%; } .col-lg-8 { width: 66.66666667%; } .col-lg-7 { width: 58.33333333%; } .col-lg-6 { width: 50%; } .col-lg-5 { width: 41.66666667%; } .col-lg-4 { width: 33.33333333%; } .col-lg-3 { width: 25%; } .col-lg-2 { width: 16.66666667%; } .col-lg-1 { width: 8.33333333%; } .col-lg-pull-12 { right: 100%; } .col-lg-pull-11 { right: 91.66666667%; } .col-lg-pull-10 { right: 83.33333333%; } .col-lg-pull-9 { right: 75%; } .col-lg-pull-8 { right: 66.66666667%; } .col-lg-pull-7 { right: 58.33333333%; } .col-lg-pull-6 { right: 50%; } .col-lg-pull-5 { right: 41.66666667%; } .col-lg-pull-4 { right: 33.33333333%; } .col-lg-pull-3 { right: 25%; } .col-lg-pull-2 { right: 16.66666667%; } .col-lg-pull-1 { right: 8.33333333%; } .col-lg-pull-0 { right: auto; } .col-lg-push-12 { left: 100%; } .col-lg-push-11 { left: 91.66666667%; } .col-lg-push-10 { left: 83.33333333%; } .col-lg-push-9 { left: 75%; } .col-lg-push-8 { left: 66.66666667%; } .col-lg-push-7 { left: 58.33333333%; } .col-lg-push-6 { left: 50%; } .col-lg-push-5 { left: 41.66666667%; } .col-lg-push-4 { left: 33.33333333%; } .col-lg-push-3 { left: 25%; } .col-lg-push-2 { left: 16.66666667%; } .col-lg-push-1 { left: 8.33333333%; } .col-lg-push-0 { left: auto; } .col-lg-offset-12 { margin-left: 100%; } .col-lg-offset-11 { margin-left: 91.66666667%; } .col-lg-offset-10 { margin-left: 83.33333333%; } .col-lg-offset-9 { margin-left: 75%; } .col-lg-offset-8 { margin-left: 66.66666667%; } .col-lg-offset-7 { margin-left: 58.33333333%; } .col-lg-offset-6 { margin-left: 50%; } .col-lg-offset-5 { margin-left: 41.66666667%; } .col-lg-offset-4 { margin-left: 33.33333333%; } .col-lg-offset-3 { margin-left: 25%; } .col-lg-offset-2 { margin-left: 16.66666667%; } .col-lg-offset-1 { margin-left: 8.33333333%; } .col-lg-offset-0 { margin-left: 0; } } table { background-color: transparent; } caption { padding-top: 8px; padding-bottom: 8px; color: #777; text-align: left; } th { text-align: left; } .table { width: 100%; max-width: 100%; margin-bottom: 20px; } .table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { padding: 8px; line-height: 1.42857143; vertical-align: top; border-top: 1px solid #ddd; } .table > thead > tr > th { vertical-align: bottom; border-bottom: 2px solid #ddd; } .table > caption + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > th, .table > thead:first-child > tr:first-child > th, .table > caption + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > td, .table > thead:first-child > tr:first-child > td { border-top: 0; } .table > tbody + tbody { border-top: 2px solid #ddd; } .table .table { background-color: #fff; } .table-condensed > thead > tr > th, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > tbody > tr > td, .table-condensed > tfoot > tr > td { padding: 5px; } .table-bordered { border: 1px solid #ddd; } .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td { border: 1px solid #ddd; } .table-bordered > thead > tr > th, .table-bordered > thead > tr > td { border-bottom-width: 2px; } .table-striped > tbody > tr:nth-of-type(odd) { background-color: #f9f9f9; } .table-hover > tbody > tr:hover { background-color: #f5f5f5; } table col[class*="col-"] { position: static; display: table-column; float: none; } table td[class*="col-"], table th[class*="col-"] { position: static; display: table-cell; float: none; } .table > thead > tr > td.active, .table > tbody > tr > td.active, .table > tfoot > tr > td.active, .table > thead > tr > th.active, .table > tbody > tr > th.active, .table > tfoot > tr > th.active, .table > thead > tr.active > td, .table > tbody > tr.active > td, .table > tfoot > tr.active > td, .table > thead > tr.active > th, .table > tbody > tr.active > th, .table > tfoot > tr.active > th { background-color: #f5f5f5; } .table-hover > tbody > tr > td.active:hover, .table-hover > tbody > tr > th.active:hover, .table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr:hover > .active, .table-hover > tbody > tr.active:hover > th { background-color: #e8e8e8; } .table > thead > tr > td.success, .table > tbody > tr > td.success, .table > tfoot > tr > td.success, .table > thead > tr > th.success, .table > tbody > tr > th.success, .table > tfoot > tr > th.success, .table > thead > tr.success > td, .table > tbody > tr.success > td, .table > tfoot > tr.success > td, .table > thead > tr.success > th, .table > tbody > tr.success > th, .table > tfoot > tr.success > th { background-color: #dff0d8; } .table-hover > tbody > tr > td.success:hover, .table-hover > tbody > tr > th.success:hover, .table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr:hover > .success, .table-hover > tbody > tr.success:hover > th { background-color: #d0e9c6; } .table > thead > tr > td.info, .table > tbody > tr > td.info, .table > tfoot > tr > td.info, .table > thead > tr > th.info, .table > tbody > tr > th.info, .table > tfoot > tr > th.info, .table > thead > tr.info > td, .table > tbody > tr.info > td, .table > tfoot > tr.info > td, .table > thead > tr.info > th, .table > tbody > tr.info > th, .table > tfoot > tr.info > th { background-color: #d9edf7; } .table-hover > tbody > tr > td.info:hover, .table-hover > tbody > tr > th.info:hover, .table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr:hover > .info, .table-hover > tbody > tr.info:hover > th { background-color: #c4e3f3; } .table > thead > tr > td.warning, .table > tbody > tr > td.warning, .table > tfoot > tr > td.warning, .table > thead > tr > th.warning, .table > tbody > tr > th.warning, .table > tfoot > tr > th.warning, .table > thead > tr.warning > td, .table > tbody > tr.warning > td, .table > tfoot > tr.warning > td, .table > thead > tr.warning > th, .table > tbody > tr.warning > th, .table > tfoot > tr.warning > th { background-color: #fcf8e3; } .table-hover > tbody > tr > td.warning:hover, .table-hover > tbody > tr > th.warning:hover, .table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr:hover > .warning, .table-hover > tbody > tr.warning:hover > th { background-color: #faf2cc; } .table > thead > tr > td.danger, .table > tbody > tr > td.danger, .table > tfoot > tr > td.danger, .table > thead > tr > th.danger, .table > tbody > tr > th.danger, .table > tfoot > tr > th.danger, .table > thead > tr.danger > td, .table > tbody > tr.danger > td, .table > tfoot > tr.danger > td, .table > thead > tr.danger > th, .table > tbody > tr.danger > th, .table > tfoot > tr.danger > th { background-color: #f2dede; } .table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th { background-color: #ebcccc; } .table-responsive { min-height: .01%; overflow-x: auto; } @media screen and (max-width: 767px) { .table-responsive { width: 100%; margin-bottom: 15px; overflow-y: hidden; -ms-overflow-style: -ms-autohiding-scrollbar; border: 1px solid #ddd; } .table-responsive > .table { margin-bottom: 0; } .table-responsive > .table > thead > tr > th, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tfoot > tr > td { white-space: nowrap; } .table-responsive > .table-bordered { border: 0; } .table-responsive > .table-bordered > thead > tr > th:first-child, .table-responsive > .table-bordered > tbody > tr > th:first-child, .table-responsive > .table-bordered > tfoot > tr > th:first-child, .table-responsive > .table-bordered > thead > tr > td:first-child, .table-responsive > .table-bordered > tbody > tr > td:first-child, .table-responsive > .table-bordered > tfoot > tr > td:first-child { border-left: 0; } .table-responsive > .table-bordered > thead > tr > th:last-child, .table-responsive > .table-bordered > tbody > tr > th:last-child, .table-responsive > .table-bordered > tfoot > tr > th:last-child, .table-responsive > .table-bordered > thead > tr > td:last-child, .table-responsive > .table-bordered > tbody > tr > td:last-child, .table-responsive > .table-bordered > tfoot > tr > td:last-child { border-right: 0; } .table-responsive > .table-bordered > tbody > tr:last-child > th, .table-responsive > .table-bordered > tfoot > tr:last-child > th, .table-responsive > .table-bordered > tbody > tr:last-child > td, .table-responsive > .table-bordered > tfoot > tr:last-child > td { border-bottom: 0; } } fieldset { min-width: 0; padding: 0; margin: 0; border: 0; } legend { display: block; width: 100%; padding: 0; margin-bottom: 20px; font-size: 21px; line-height: inherit; color: #333; border: 0; border-bottom: 1px solid #e5e5e5; } label { display: inline-block; max-width: 100%; margin-bottom: 5px; font-weight: bold; } input[type="search"] { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } input[type="radio"], input[type="checkbox"] { margin: 4px 0 0; margin-top: 1px \9; line-height: normal; } input[type="file"] { display: block; } input[type="range"] { display: block; width: 100%; } select[multiple], select[size] { height: auto; } input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } output { display: block; padding-top: 7px; font-size: 14px; line-height: 1.42857143; color: #555; } .form-control { display: block; width: 100%; height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; } .form-control:focus { border-color: #66afe9; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); } .form-control::-moz-placeholder { color: #999; opacity: 1; } .form-control:-ms-input-placeholder { color: #999; } .form-control::-webkit-input-placeholder { color: #999; } .form-control::-ms-expand { background-color: transparent; border: 0; } .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #eee; opacity: 1; } .form-control[disabled], fieldset[disabled] .form-control { cursor: not-allowed; } textarea.form-control { height: auto; } input[type="search"] { -webkit-appearance: none; } @media screen and (-webkit-min-device-pixel-ratio: 0) { input[type="date"].form-control, input[type="time"].form-control, input[type="datetime-local"].form-control, input[type="month"].form-control { line-height: 34px; } input[type="date"].input-sm, input[type="time"].input-sm, input[type="datetime-local"].input-sm, input[type="month"].input-sm, .input-group-sm input[type="date"], .input-group-sm input[type="time"], .input-group-sm input[type="datetime-local"], .input-group-sm input[type="month"] { line-height: 30px; } input[type="date"].input-lg, input[type="time"].input-lg, input[type="datetime-local"].input-lg, input[type="month"].input-lg, .input-group-lg input[type="date"], .input-group-lg input[type="time"], .input-group-lg input[type="datetime-local"], .input-group-lg input[type="month"] { line-height: 46px; } } .form-group { margin-bottom: 15px; } .radio, .checkbox { position: relative; display: block; margin-top: 10px; margin-bottom: 10px; } .radio label, .checkbox label { min-height: 20px; padding-left: 20px; margin-bottom: 0; font-weight: normal; cursor: pointer; } .radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { position: absolute; margin-top: 4px \9; margin-left: -20px; } .radio + .radio, .checkbox + .checkbox { margin-top: -5px; } .radio-inline, .checkbox-inline { position: relative; display: inline-block; padding-left: 20px; margin-bottom: 0; font-weight: normal; vertical-align: middle; cursor: pointer; } .radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { margin-top: 0; margin-left: 10px; } input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"].disabled, input[type="checkbox"].disabled, fieldset[disabled] input[type="radio"], fieldset[disabled] input[type="checkbox"] { cursor: not-allowed; } .radio-inline.disabled, .checkbox-inline.disabled, fieldset[disabled] .radio-inline, fieldset[disabled] .checkbox-inline { cursor: not-allowed; } .radio.disabled label, .checkbox.disabled label, fieldset[disabled] .radio label, fieldset[disabled] .checkbox label { cursor: not-allowed; } .form-control-static { min-height: 34px; padding-top: 7px; padding-bottom: 7px; margin-bottom: 0; } .form-control-static.input-lg, .form-control-static.input-sm { padding-right: 0; padding-left: 0; } .input-sm { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } select.input-sm { height: 30px; line-height: 30px; } textarea.input-sm, select[multiple].input-sm { height: auto; } .form-group-sm .form-control { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .form-group-sm select.form-control { height: 30px; line-height: 30px; } .form-group-sm textarea.form-control, .form-group-sm select[multiple].form-control { height: auto; } .form-group-sm .form-control-static { height: 30px; min-height: 32px; padding: 6px 10px; font-size: 12px; line-height: 1.5; } .input-lg { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } select.input-lg { height: 46px; line-height: 46px; } textarea.input-lg, select[multiple].input-lg { height: auto; } .form-group-lg .form-control { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } .form-group-lg select.form-control { height: 46px; line-height: 46px; } .form-group-lg textarea.form-control, .form-group-lg select[multiple].form-control { height: auto; } .form-group-lg .form-control-static { height: 46px; min-height: 38px; padding: 11px 16px; font-size: 18px; line-height: 1.3333333; } .has-feedback { position: relative; } .has-feedback .form-control { padding-right: 42.5px; } .form-control-feedback { position: absolute; top: 0; right: 0; z-index: 2; display: block; width: 34px; height: 34px; line-height: 34px; text-align: center; pointer-events: none; } .input-lg + .form-control-feedback, .input-group-lg + .form-control-feedback, .form-group-lg .form-control + .form-control-feedback { width: 46px; height: 46px; line-height: 46px; } .input-sm + .form-control-feedback, .input-group-sm + .form-control-feedback, .form-group-sm .form-control + .form-control-feedback { width: 30px; height: 30px; line-height: 30px; } .has-success .help-block, .has-success .control-label, .has-success .radio, .has-success .checkbox, .has-success .radio-inline, .has-success .checkbox-inline, .has-success.radio label, .has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label { color: #3c763d; } .has-success .form-control { border-color: #3c763d; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-success .form-control:focus { border-color: #2b542c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; } .has-success .input-group-addon { color: #3c763d; background-color: #dff0d8; border-color: #3c763d; } .has-success .form-control-feedback { color: #3c763d; } .has-warning .help-block, .has-warning .control-label, .has-warning .radio, .has-warning .checkbox, .has-warning .radio-inline, .has-warning .checkbox-inline, .has-warning.radio label, .has-warning.checkbox label, .has-warning.radio-inline label, .has-warning.checkbox-inline label { color: #8a6d3b; } .has-warning .form-control { border-color: #8a6d3b; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-warning .form-control:focus { border-color: #66512c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; } .has-warning .input-group-addon { color: #8a6d3b; background-color: #fcf8e3; border-color: #8a6d3b; } .has-warning .form-control-feedback { color: #8a6d3b; } .has-error .help-block, .has-error .control-label, .has-error .radio, .has-error .checkbox, .has-error .radio-inline, .has-error .checkbox-inline, .has-error.radio label, .has-error.checkbox label, .has-error.radio-inline label, .has-error.checkbox-inline label { color: #a94442; } .has-error .form-control { border-color: #a94442; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-error .form-control:focus { border-color: #843534; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; } .has-error .input-group-addon { color: #a94442; background-color: #f2dede; border-color: #a94442; } .has-error .form-control-feedback { color: #a94442; } .has-feedback label ~ .form-control-feedback { top: 25px; } .has-feedback label.sr-only ~ .form-control-feedback { top: 0; } .help-block { display: block; margin-top: 5px; margin-bottom: 10px; color: #737373; } @media (min-width: 768px) { .form-inline .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; } .form-inline .form-control { display: inline-block; width: auto; vertical-align: middle; } .form-inline .form-control-static { display: inline-block; } .form-inline .input-group { display: inline-table; vertical-align: middle; } .form-inline .input-group .input-group-addon, .form-inline .input-group .input-group-btn, .form-inline .input-group .form-control { width: auto; } .form-inline .input-group > .form-control { width: 100%; } .form-inline .control-label { margin-bottom: 0; vertical-align: middle; } .form-inline .radio, .form-inline .checkbox { display: inline-block; margin-top: 0; margin-bottom: 0; vertical-align: middle; } .form-inline .radio label, .form-inline .checkbox label { padding-left: 0; } .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { position: relative; margin-left: 0; } .form-inline .has-feedback .form-control-feedback { top: 0; } } .form-horizontal .radio, .form-horizontal .checkbox, .form-horizontal .radio-inline, .form-horizontal .checkbox-inline { padding-top: 7px; margin-top: 0; margin-bottom: 0; } .form-horizontal .radio, .form-horizontal .checkbox { min-height: 27px; } .form-horizontal .form-group { margin-right: -15px; margin-left: -15px; } @media (min-width: 768px) { .form-horizontal .control-label { padding-top: 7px; margin-bottom: 0; text-align: right; } } .form-horizontal .has-feedback .form-control-feedback { right: 15px; } @media (min-width: 768px) { .form-horizontal .form-group-lg .control-label { padding-top: 11px; font-size: 18px; } } @media (min-width: 768px) { .form-horizontal .form-group-sm .control-label { padding-top: 6px; font-size: 12px; } } .btn { display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-weight: normal; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; -ms-touch-action: manipulation; touch-action: manipulation; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; background-image: none; border: 1px solid transparent; border-radius: 4px; } .btn:focus, .btn:active:focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn.active.focus { outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } .btn:hover, .btn:focus, .btn.focus { color: #333; text-decoration: none; } .btn:active, .btn.active { background-image: none; outline: 0; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } .btn.disabled, .btn[disabled], fieldset[disabled] .btn { cursor: not-allowed; filter: alpha(opacity=65); -webkit-box-shadow: none; box-shadow: none; opacity: .65; } a.btn.disabled, fieldset[disabled] a.btn { pointer-events: none; } .btn-default { color: #333; background-color: #fff; border-color: #ccc; } .btn-default:focus, .btn-default.focus { color: #333; background-color: #e6e6e6; border-color: #8c8c8c; } .btn-default:hover { color: #333; background-color: #e6e6e6; border-color: #adadad; } .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { color: #333; background-color: #e6e6e6; border-color: #adadad; } .btn-default:active:hover, .btn-default.active:hover, .open > .dropdown-toggle.btn-default:hover, .btn-default:active:focus, .btn-default.active:focus, .open > .dropdown-toggle.btn-default:focus, .btn-default:active.focus, .btn-default.active.focus, .open > .dropdown-toggle.btn-default.focus { color: #333; background-color: #d4d4d4; border-color: #8c8c8c; } .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { background-image: none; } .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled.focus, .btn-default[disabled].focus, fieldset[disabled] .btn-default.focus { background-color: #fff; border-color: #ccc; } .btn-default .badge { color: #fff; background-color: #333; } .btn-primary { color: #fff; background-color: #337ab7; border-color: #2e6da4; } .btn-primary:focus, .btn-primary.focus { color: #fff; background-color: #286090; border-color: #122b40; } .btn-primary:hover { color: #fff; background-color: #286090; border-color: #204d74; } .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { color: #fff; background-color: #286090; border-color: #204d74; } .btn-primary:active:hover, .btn-primary.active:hover, .open > .dropdown-toggle.btn-primary:hover, .btn-primary:active:focus, .btn-primary.active:focus, .open > .dropdown-toggle.btn-primary:focus, .btn-primary:active.focus, .btn-primary.active.focus, .open > .dropdown-toggle.btn-primary.focus { color: #fff; background-color: #204d74; border-color: #122b40; } .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { background-image: none; } .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled.focus, .btn-primary[disabled].focus, fieldset[disabled] .btn-primary.focus { background-color: #337ab7; border-color: #2e6da4; } .btn-primary .badge { color: #337ab7; background-color: #fff; } .btn-success { color: #fff; background-color: #5cb85c; border-color: #4cae4c; } .btn-success:focus, .btn-success.focus { color: #fff; background-color: #449d44; border-color: #255625; } .btn-success:hover { color: #fff; background-color: #449d44; border-color: #398439; } .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { color: #fff; background-color: #449d44; border-color: #398439; } .btn-success:active:hover, .btn-success.active:hover, .open > .dropdown-toggle.btn-success:hover, .btn-success:active:focus, .btn-success.active:focus, .open > .dropdown-toggle.btn-success:focus, .btn-success:active.focus, .btn-success.active.focus, .open > .dropdown-toggle.btn-success.focus { color: #fff; background-color: #398439; border-color: #255625; } .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { background-image: none; } .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled.focus, .btn-success[disabled].focus, fieldset[disabled] .btn-success.focus { background-color: #5cb85c; border-color: #4cae4c; } .btn-success .badge { color: #5cb85c; background-color: #fff; } .btn-info { color: #fff; background-color: #5bc0de; border-color: #46b8da; } .btn-info:focus, .btn-info.focus { color: #fff; background-color: #31b0d5; border-color: #1b6d85; } .btn-info:hover { color: #fff; background-color: #31b0d5; border-color: #269abc; } .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { color: #fff; background-color: #31b0d5; border-color: #269abc; } .btn-info:active:hover, .btn-info.active:hover, .open > .dropdown-toggle.btn-info:hover, .btn-info:active:focus, .btn-info.active:focus, .open > .dropdown-toggle.btn-info:focus, .btn-info:active.focus, .btn-info.active.focus, .open > .dropdown-toggle.btn-info.focus { color: #fff; background-color: #269abc; border-color: #1b6d85; } .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { background-image: none; } .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled.focus, .btn-info[disabled].focus, fieldset[disabled] .btn-info.focus { background-color: #5bc0de; border-color: #46b8da; } .btn-info .badge { color: #5bc0de; background-color: #fff; } .btn-warning { color: #fff; background-color: #f0ad4e; border-color: #eea236; } .btn-warning:focus, .btn-warning.focus { color: #fff; background-color: #ec971f; border-color: #985f0d; } .btn-warning:hover { color: #fff; background-color: #ec971f; border-color: #d58512; } .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { color: #fff; background-color: #ec971f; border-color: #d58512; } .btn-warning:active:hover, .btn-warning.active:hover, .open > .dropdown-toggle.btn-warning:hover, .btn-warning:active:focus, .btn-warning.active:focus, .open > .dropdown-toggle.btn-warning:focus, .btn-warning:active.focus, .btn-warning.active.focus, .open > .dropdown-toggle.btn-warning.focus { color: #fff; background-color: #d58512; border-color: #985f0d; } .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { background-image: none; } .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled.focus, .btn-warning[disabled].focus, fieldset[disabled] .btn-warning.focus { background-color: #f0ad4e; border-color: #eea236; } .btn-warning .badge { color: #f0ad4e; background-color: #fff; } .btn-danger { color: #fff; background-color: #d9534f; border-color: #d43f3a; } .btn-danger:focus, .btn-danger.focus { color: #fff; background-color: #c9302c; border-color: #761c19; } .btn-danger:hover { color: #fff; background-color: #c9302c; border-color: #ac2925; } .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { color: #fff; background-color: #c9302c; border-color: #ac2925; } .btn-danger:active:hover, .btn-danger.active:hover, .open > .dropdown-toggle.btn-danger:hover, .btn-danger:active:focus, .btn-danger.active:focus, .open > .dropdown-toggle.btn-danger:focus, .btn-danger:active.focus, .btn-danger.active.focus, .open > .dropdown-toggle.btn-danger.focus { color: #fff; background-color: #ac2925; border-color: #761c19; } .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { background-image: none; } .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled.focus, .btn-danger[disabled].focus, fieldset[disabled] .btn-danger.focus { background-color: #d9534f; border-color: #d43f3a; } .btn-danger .badge { color: #d9534f; background-color: #fff; } .btn-link { font-weight: normal; color: #337ab7; border-radius: 0; } .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled], fieldset[disabled] .btn-link { background-color: transparent; -webkit-box-shadow: none; box-shadow: none; } .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { border-color: transparent; } .btn-link:hover, .btn-link:focus { color: #23527c; text-decoration: underline; background-color: transparent; } .btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { color: #777; text-decoration: none; } .btn-lg, .btn-group-lg > .btn { padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } .btn-sm, .btn-group-sm > .btn { padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .btn-xs, .btn-group-xs > .btn { padding: 1px 5px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .btn-block { display: block; width: 100%; } .btn-block + .btn-block { margin-top: 5px; } input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { width: 100%; } .fade { opacity: 0; -webkit-transition: opacity .15s linear; -o-transition: opacity .15s linear; transition: opacity .15s linear; } .fade.in { opacity: 1; } .collapse { display: none; } .collapse.in { display: block; } tr.collapse.in { display: table-row; } tbody.collapse.in { display: table-row-group; } .collapsing { position: relative; height: 0; overflow: hidden; -webkit-transition-timing-function: ease; -o-transition-timing-function: ease; transition-timing-function: ease; -webkit-transition-duration: .35s; -o-transition-duration: .35s; transition-duration: .35s; -webkit-transition-property: height, visibility; -o-transition-property: height, visibility; transition-property: height, visibility; } .caret { display: inline-block; width: 0; height: 0; margin-left: 2px; vertical-align: middle; border-top: 4px dashed; border-top: 4px solid \9; border-right: 4px solid transparent; border-left: 4px solid transparent; } .dropup, .dropdown { position: relative; } .dropdown-toggle:focus { outline: 0; } .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: 1000; display: none; float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; font-size: 14px; text-align: left; list-style: none; background-color: #fff; -webkit-background-clip: padding-box; background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, .15); border-radius: 4px; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); box-shadow: 0 6px 12px rgba(0, 0, 0, .175); } .dropdown-menu.pull-right { right: 0; left: auto; } .dropdown-menu .divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; } .dropdown-menu > li > a { display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.42857143; color: #333; white-space: nowrap; } .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: #262626; text-decoration: none; background-color: #f5f5f5; } .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { color: #fff; text-decoration: none; background-color: #337ab7; outline: 0; } .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { color: #777; } .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; cursor: not-allowed; background-color: transparent; background-image: none; filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .open > .dropdown-menu { display: block; } .open > a { outline: 0; } .dropdown-menu-right { right: 0; left: auto; } .dropdown-menu-left { right: auto; left: 0; } .dropdown-header { display: block; padding: 3px 20px; font-size: 12px; line-height: 1.42857143; color: #777; white-space: nowrap; } .dropdown-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 990; } .pull-right > .dropdown-menu { right: 0; left: auto; } .dropup .caret, .navbar-fixed-bottom .dropdown .caret { content: ""; border-top: 0; border-bottom: 4px dashed; border-bottom: 4px solid \9; } .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 2px; } @media (min-width: 768px) { .navbar-right .dropdown-menu { right: 0; left: auto; } .navbar-right .dropdown-menu-left { right: auto; left: 0; } } .btn-group, .btn-group-vertical { position: relative; display: inline-block; vertical-align: middle; } .btn-group > .btn, .btn-group-vertical > .btn { position: relative; float: left; } .btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { z-index: 2; } .btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { margin-left: -1px; } .btn-toolbar { margin-left: -5px; } .btn-toolbar .btn, .btn-toolbar .btn-group, .btn-toolbar .input-group { float: left; } .btn-toolbar > .btn, .btn-toolbar > .btn-group, .btn-toolbar > .input-group { margin-left: 5px; } .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { border-radius: 0; } .btn-group > .btn:first-child { margin-left: 0; } .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { border-top-right-radius: 0; border-bottom-right-radius: 0; } .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; } .btn-group > .btn-group { float: left; } .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { border-top-right-radius: 0; border-bottom-right-radius: 0; } .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { border-top-left-radius: 0; border-bottom-left-radius: 0; } .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { outline: 0; } .btn-group > .btn + .dropdown-toggle { padding-right: 8px; padding-left: 8px; } .btn-group > .btn-lg + .dropdown-toggle { padding-right: 12px; padding-left: 12px; } .btn-group.open .dropdown-toggle { -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } .btn-group.open .dropdown-toggle.btn-link { -webkit-box-shadow: none; box-shadow: none; } .btn .caret { margin-left: 0; } .btn-lg .caret { border-width: 5px 5px 0; border-bottom-width: 0; } .dropup .btn-lg .caret { border-width: 0 5px 5px; } .btn-group-vertical > .btn, .btn-group-vertical > .btn-group, .btn-group-vertical > .btn-group > .btn { display: block; float: none; width: 100%; max-width: 100%; } .btn-group-vertical > .btn-group > .btn { float: none; } .btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { margin-top: -1px; margin-left: 0; } .btn-group-vertical > .btn:not(:first-child):not(:last-child) { border-radius: 0; } .btn-group-vertical > .btn:first-child:not(:last-child) { border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn-group-vertical > .btn:last-child:not(:first-child) { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { border-top-left-radius: 0; border-top-right-radius: 0; } .btn-group-justified { display: table; width: 100%; table-layout: fixed; border-collapse: separate; } .btn-group-justified > .btn, .btn-group-justified > .btn-group { display: table-cell; float: none; width: 1%; } .btn-group-justified > .btn-group .btn { width: 100%; } .btn-group-justified > .btn-group .dropdown-menu { left: auto; } [data-toggle="buttons"] > .btn input[type="radio"], [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], [data-toggle="buttons"] > .btn input[type="checkbox"], [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { position: absolute; clip: rect(0, 0, 0, 0); pointer-events: none; } .input-group { position: relative; display: table; border-collapse: separate; } .input-group[class*="col-"] { float: none; padding-right: 0; padding-left: 0; } .input-group .form-control { position: relative; z-index: 2; float: left; width: 100%; margin-bottom: 0; } .input-group .form-control:focus { z-index: 3; } .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } select.input-group-lg > .form-control, select.input-group-lg > .input-group-addon, select.input-group-lg > .input-group-btn > .btn { height: 46px; line-height: 46px; } textarea.input-group-lg > .form-control, textarea.input-group-lg > .input-group-addon, textarea.input-group-lg > .input-group-btn > .btn, select[multiple].input-group-lg > .form-control, select[multiple].input-group-lg > .input-group-addon, select[multiple].input-group-lg > .input-group-btn > .btn { height: auto; } .input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } select.input-group-sm > .form-control, select.input-group-sm > .input-group-addon, select.input-group-sm > .input-group-btn > .btn { height: 30px; line-height: 30px; } textarea.input-group-sm > .form-control, textarea.input-group-sm > .input-group-addon, textarea.input-group-sm > .input-group-btn > .btn, select[multiple].input-group-sm > .form-control, select[multiple].input-group-sm > .input-group-addon, select[multiple].input-group-sm > .input-group-btn > .btn { height: auto; } .input-group-addon, .input-group-btn, .input-group .form-control { display: table-cell; } .input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) { border-radius: 0; } .input-group-addon, .input-group-btn { width: 1%; white-space: nowrap; vertical-align: middle; } .input-group-addon { padding: 6px 12px; font-size: 14px; font-weight: normal; line-height: 1; color: #555; text-align: center; background-color: #eee; border: 1px solid #ccc; border-radius: 4px; } .input-group-addon.input-sm { padding: 5px 10px; font-size: 12px; border-radius: 3px; } .input-group-addon.input-lg { padding: 10px 16px; font-size: 18px; border-radius: 6px; } .input-group-addon input[type="radio"], .input-group-addon input[type="checkbox"] { margin-top: 0; } .input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; } .input-group-addon:first-child { border-right: 0; } .input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; } .input-group-addon:last-child { border-left: 0; } .input-group-btn { position: relative; font-size: 0; white-space: nowrap; } .input-group-btn > .btn { position: relative; } .input-group-btn > .btn + .btn { margin-left: -1px; } .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { z-index: 2; } .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group { margin-right: -1px; } .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { z-index: 2; margin-left: -1px; } .nav { padding-left: 0; margin-bottom: 0; list-style: none; } .nav > li { position: relative; display: block; } .nav > li > a { position: relative; display: block; padding: 10px 15px; } .nav > li > a:hover, .nav > li > a:focus { text-decoration: none; background-color: #eee; } .nav > li.disabled > a { color: #777; } .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { color: #777; text-decoration: none; cursor: not-allowed; background-color: transparent; } .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { background-color: #eee; border-color: #337ab7; } .nav .nav-divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; } .nav > li > a > img { max-width: none; } .nav-tabs { border-bottom: 1px solid #ddd; } .nav-tabs > li { float: left; margin-bottom: -1px; } .nav-tabs > li > a { margin-right: 2px; line-height: 1.42857143; border: 1px solid transparent; border-radius: 4px 4px 0 0; } .nav-tabs > li > a:hover { border-color: #eee #eee #ddd; } .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: #555; cursor: default; background-color: #fff; border: 1px solid #ddd; border-bottom-color: transparent; } .nav-tabs.nav-justified { width: 100%; border-bottom: 0; } .nav-tabs.nav-justified > li { float: none; } .nav-tabs.nav-justified > li > a { margin-bottom: 5px; text-align: center; } .nav-tabs.nav-justified > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: 768px) { .nav-tabs.nav-justified > li { display: table-cell; width: 1%; } .nav-tabs.nav-justified > li > a { margin-bottom: 0; } } .nav-tabs.nav-justified > li > a { margin-right: 0; border-radius: 4px; } .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border: 1px solid #ddd; } @media (min-width: 768px) { .nav-tabs.nav-justified > li > a { border-bottom: 1px solid #ddd; border-radius: 4px 4px 0 0; } .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border-bottom-color: #fff; } } .nav-pills > li { float: left; } .nav-pills > li > a { border-radius: 4px; } .nav-pills > li + li { margin-left: 2px; } .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { color: #fff; background-color: #337ab7; } .nav-stacked > li { float: none; } .nav-stacked > li + li { margin-top: 2px; margin-left: 0; } .nav-justified { width: 100%; } .nav-justified > li { float: none; } .nav-justified > li > a { margin-bottom: 5px; text-align: center; } .nav-justified > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: 768px) { .nav-justified > li { display: table-cell; width: 1%; } .nav-justified > li > a { margin-bottom: 0; } } .nav-tabs-justified { border-bottom: 0; } .nav-tabs-justified > li > a { margin-right: 0; border-radius: 4px; } .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border: 1px solid #ddd; } @media (min-width: 768px) { .nav-tabs-justified > li > a { border-bottom: 1px solid #ddd; border-radius: 4px 4px 0 0; } .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border-bottom-color: #fff; } } .tab-content > .tab-pane { display: none; } .tab-content > .active { display: block; } .nav-tabs .dropdown-menu { margin-top: -1px; border-top-left-radius: 0; border-top-right-radius: 0; } .navbar { position: relative; min-height: 50px; margin-bottom: 20px; border: 1px solid transparent; } @media (min-width: 768px) { .navbar { border-radius: 4px; } } @media (min-width: 768px) { .navbar-header { float: left; } } .navbar-collapse { padding-right: 15px; padding-left: 15px; overflow-x: visible; -webkit-overflow-scrolling: touch; border-top: 1px solid transparent; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); } .navbar-collapse.in { overflow-y: auto; } @media (min-width: 768px) { .navbar-collapse { width: auto; border-top: 0; -webkit-box-shadow: none; box-shadow: none; } .navbar-collapse.collapse { display: block !important; height: auto !important; padding-bottom: 0; overflow: visible !important; } .navbar-collapse.in { overflow-y: visible; } .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { padding-right: 0; padding-left: 0; } } .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { max-height: 340px; } @media (max-device-width: 480px) and (orientation: landscape) { .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { max-height: 200px; } } .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { margin-right: -15px; margin-left: -15px; } @media (min-width: 768px) { .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { margin-right: 0; margin-left: 0; } } .navbar-static-top { z-index: 1000; border-width: 0 0 1px; } @media (min-width: 768px) { .navbar-static-top { border-radius: 0; } } .navbar-fixed-top, .navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: 1030; } @media (min-width: 768px) { .navbar-fixed-top, .navbar-fixed-bottom { border-radius: 0; } } .navbar-fixed-top { top: 0; border-width: 0 0 1px; } .navbar-fixed-bottom { bottom: 0; margin-bottom: 0; border-width: 1px 0 0; } .navbar-brand { float: left; height: 50px; padding: 15px 15px; font-size: 18px; line-height: 20px; } .navbar-brand:hover, .navbar-brand:focus { text-decoration: none; } .navbar-brand > img { display: block; } @media (min-width: 768px) { .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { margin-left: -15px; } } .navbar-toggle { position: relative; float: right; padding: 9px 10px; margin-top: 8px; margin-right: 15px; margin-bottom: 8px; background-color: transparent; background-image: none; border: 1px solid transparent; border-radius: 4px; } .navbar-toggle:focus { outline: 0; } .navbar-toggle .icon-bar { display: block; width: 22px; height: 2px; border-radius: 1px; } .navbar-toggle .icon-bar + .icon-bar { margin-top: 4px; } @media (min-width: 768px) { .navbar-toggle { display: none; } } .navbar-nav { margin: 7.5px -15px; } .navbar-nav > li > a { padding-top: 10px; padding-bottom: 10px; line-height: 20px; } @media (max-width: 767px) { .navbar-nav .open .dropdown-menu { position: static; float: none; width: auto; margin-top: 0; background-color: transparent; border: 0; -webkit-box-shadow: none; box-shadow: none; } .navbar-nav .open .dropdown-menu > li > a, .navbar-nav .open .dropdown-menu .dropdown-header { padding: 5px 15px 5px 25px; } .navbar-nav .open .dropdown-menu > li > a { line-height: 20px; } .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { background-image: none; } } @media (min-width: 768px) { .navbar-nav { float: left; margin: 0; } .navbar-nav > li { float: left; } .navbar-nav > li > a { padding-top: 15px; padding-bottom: 15px; } } .navbar-form { padding: 10px 15px; margin-top: 8px; margin-right: -15px; margin-bottom: 8px; margin-left: -15px; border-top: 1px solid transparent; border-bottom: 1px solid transparent; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); } @media (min-width: 768px) { .navbar-form .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; } .navbar-form .form-control { display: inline-block; width: auto; vertical-align: middle; } .navbar-form .form-control-static { display: inline-block; } .navbar-form .input-group { display: inline-table; vertical-align: middle; } .navbar-form .input-group .input-group-addon, .navbar-form .input-group .input-group-btn, .navbar-form .input-group .form-control { width: auto; } .navbar-form .input-group > .form-control { width: 100%; } .navbar-form .control-label { margin-bottom: 0; vertical-align: middle; } .navbar-form .radio, .navbar-form .checkbox { display: inline-block; margin-top: 0; margin-bottom: 0; vertical-align: middle; } .navbar-form .radio label, .navbar-form .checkbox label { padding-left: 0; } .navbar-form .radio input[type="radio"], .navbar-form .checkbox input[type="checkbox"] { position: relative; margin-left: 0; } .navbar-form .has-feedback .form-control-feedback { top: 0; } } @media (max-width: 767px) { .navbar-form .form-group { margin-bottom: 5px; } .navbar-form .form-group:last-child { margin-bottom: 0; } } @media (min-width: 768px) { .navbar-form { width: auto; padding-top: 0; padding-bottom: 0; margin-right: 0; margin-left: 0; border: 0; -webkit-box-shadow: none; box-shadow: none; } } .navbar-nav > li > .dropdown-menu { margin-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; } .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { margin-bottom: 0; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .navbar-btn { margin-top: 8px; margin-bottom: 8px; } .navbar-btn.btn-sm { margin-top: 10px; margin-bottom: 10px; } .navbar-btn.btn-xs { margin-top: 14px; margin-bottom: 14px; } .navbar-text { margin-top: 15px; margin-bottom: 15px; } @media (min-width: 768px) { .navbar-text { float: left; margin-right: 15px; margin-left: 15px; } } @media (min-width: 768px) { .navbar-left { float: left !important; } .navbar-right { float: right !important; margin-right: -15px; } .navbar-right ~ .navbar-right { margin-right: 0; } } .navbar-default { background-color: #f8f8f8; border-color: #e7e7e7; } .navbar-default .navbar-brand { color: #777; } .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { color: #5e5e5e; background-color: transparent; } .navbar-default .navbar-text { color: #777; } .navbar-default .navbar-nav > li > a { color: #777; } .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { color: #555; background-color: #e7e7e7; } .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { color: #ccc; background-color: transparent; } .navbar-default .navbar-toggle { border-color: #ddd; } .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { background-color: #ddd; } .navbar-default .navbar-toggle .icon-bar { background-color: #888; } .navbar-default .navbar-collapse, .navbar-default .navbar-form { border-color: #e7e7e7; } .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { color: #555; background-color: #e7e7e7; } @media (max-width: 767px) { .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: #777; } .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { color: #555; background-color: #e7e7e7; } .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #ccc; background-color: transparent; } } .navbar-default .navbar-link { color: #777; } .navbar-default .navbar-link:hover { color: #333; } .navbar-default .btn-link { color: #777; } .navbar-default .btn-link:hover, .navbar-default .btn-link:focus { color: #333; } .navbar-default .btn-link[disabled]:hover, fieldset[disabled] .navbar-default .btn-link:hover, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:focus { color: #ccc; } .navbar-inverse { background-color: #222; border-color: #080808; } .navbar-inverse .navbar-brand { color: #9d9d9d; } .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-text { color: #9d9d9d; } .navbar-inverse .navbar-nav > li > a { color: #9d9d9d; } .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { color: #444; background-color: transparent; } .navbar-inverse .navbar-toggle { border-color: #333; } .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { background-color: #333; } .navbar-inverse .navbar-toggle .icon-bar { background-color: #fff; } .navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { border-color: #101010; } .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { color: #fff; background-color: #080808; } @media (max-width: 767px) { .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { border-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu .divider { background-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { color: #9d9d9d; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #444; background-color: transparent; } } .navbar-inverse .navbar-link { color: #9d9d9d; } .navbar-inverse .navbar-link:hover { color: #fff; } .navbar-inverse .btn-link { color: #9d9d9d; } .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { color: #fff; } .navbar-inverse .btn-link[disabled]:hover, fieldset[disabled] .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:focus { color: #444; } .breadcrumb { padding: 8px 15px; margin-bottom: 20px; list-style: none; background-color: #f5f5f5; border-radius: 4px; } .breadcrumb > li { display: inline-block; } .breadcrumb > li + li:before { padding: 0 5px; color: #ccc; content: "/\00a0"; } .breadcrumb > .active { color: #777; } .pagination { display: inline-block; padding-left: 0; margin: 20px 0; border-radius: 4px; } .pagination > li { display: inline; } .pagination > li > a, .pagination > li > span { position: relative; float: left; padding: 6px 12px; margin-left: -1px; line-height: 1.42857143; color: #337ab7; text-decoration: none; background-color: #fff; border: 1px solid #ddd; } .pagination > li:first-child > a, .pagination > li:first-child > span { margin-left: 0; border-top-left-radius: 4px; border-bottom-left-radius: 4px; } .pagination > li:last-child > a, .pagination > li:last-child > span { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } .pagination > li > a:hover, .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { z-index: 2; color: #23527c; background-color: #eee; border-color: #ddd; } .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { z-index: 3; color: #fff; cursor: default; background-color: #337ab7; border-color: #337ab7; } .pagination > .disabled > span, .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { color: #777; cursor: not-allowed; background-color: #fff; border-color: #ddd; } .pagination-lg > li > a, .pagination-lg > li > span { padding: 10px 16px; font-size: 18px; line-height: 1.3333333; } .pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { border-top-left-radius: 6px; border-bottom-left-radius: 6px; } .pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { border-top-right-radius: 6px; border-bottom-right-radius: 6px; } .pagination-sm > li > a, .pagination-sm > li > span { padding: 5px 10px; font-size: 12px; line-height: 1.5; } .pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .pager { padding-left: 0; margin: 20px 0; text-align: center; list-style: none; } .pager li { display: inline; } .pager li > a, .pager li > span { display: inline-block; padding: 5px 14px; background-color: #fff; border: 1px solid #ddd; border-radius: 15px; } .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #eee; } .pager .next > a, .pager .next > span { float: right; } .pager .previous > a, .pager .previous > span { float: left; } .pager .disabled > a, .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { color: #777; cursor: not-allowed; background-color: #fff; } .label { display: inline; padding: .2em .6em .3em; font-size: 75%; font-weight: bold; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .25em; } a.label:hover, a.label:focus { color: #fff; text-decoration: none; cursor: pointer; } .label:empty { display: none; } .btn .label { position: relative; top: -1px; } .label-default { background-color: #777; } .label-default[href]:hover, .label-default[href]:focus { background-color: #5e5e5e; } .label-primary { background-color: #337ab7; } .label-primary[href]:hover, .label-primary[href]:focus { background-color: #286090; } .label-success { background-color: #5cb85c; } .label-success[href]:hover, .label-success[href]:focus { background-color: #449d44; } .label-info { background-color: #5bc0de; } .label-info[href]:hover, .label-info[href]:focus { background-color: #31b0d5; } .label-warning { background-color: #f0ad4e; } .label-warning[href]:hover, .label-warning[href]:focus { background-color: #ec971f; } .label-danger { background-color: #d9534f; } .label-danger[href]:hover, .label-danger[href]:focus { background-color: #c9302c; } .badge { display: inline-block; min-width: 10px; padding: 3px 7px; font-size: 12px; font-weight: bold; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: middle; background-color: #777; border-radius: 10px; } .badge:empty { display: none; } .btn .badge { position: relative; top: -1px; } .btn-xs .badge, .btn-group-xs > .btn .badge { top: 0; padding: 1px 5px; } a.badge:hover, a.badge:focus { color: #fff; text-decoration: none; cursor: pointer; } .list-group-item.active > .badge, .nav-pills > .active > a > .badge { color: #337ab7; background-color: #fff; } .list-group-item > .badge { float: right; } .list-group-item > .badge + .badge { margin-right: 5px; } .nav-pills > li > a > .badge { margin-left: 3px; } .jumbotron { padding-top: 30px; padding-bottom: 30px; margin-bottom: 30px; color: inherit; background-color: #eee; } .jumbotron h1, .jumbotron .h1 { color: inherit; } .jumbotron p { margin-bottom: 15px; font-size: 21px; font-weight: 200; } .jumbotron > hr { border-top-color: #d5d5d5; } .container .jumbotron, .container-fluid .jumbotron { padding-right: 15px; padding-left: 15px; border-radius: 6px; } .jumbotron .container { max-width: 100%; } @media screen and (min-width: 768px) { .jumbotron { padding-top: 48px; padding-bottom: 48px; } .container .jumbotron, .container-fluid .jumbotron { padding-right: 60px; padding-left: 60px; } .jumbotron h1, .jumbotron .h1 { font-size: 63px; } } .thumbnail { display: block; padding: 4px; margin-bottom: 20px; line-height: 1.42857143; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; -webkit-transition: border .2s ease-in-out; -o-transition: border .2s ease-in-out; transition: border .2s ease-in-out; } .thumbnail > img, .thumbnail a > img { margin-right: auto; margin-left: auto; } a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { border-color: #337ab7; } .thumbnail .caption { padding: 9px; color: #333; } .alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; } .alert h4 { margin-top: 0; color: inherit; } .alert .alert-link { font-weight: bold; } .alert > p, .alert > ul { margin-bottom: 0; } .alert > p + p { margin-top: 5px; } .alert-dismissable, .alert-dismissible { padding-right: 35px; } .alert-dismissable .close, .alert-dismissible .close { position: relative; top: -2px; right: -21px; color: inherit; } .alert-success { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; } .alert-success hr { border-top-color: #c9e2b3; } .alert-success .alert-link { color: #2b542c; } .alert-info { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; } .alert-info hr { border-top-color: #a6e1ec; } .alert-info .alert-link { color: #245269; } .alert-warning { color: #8a6d3b; background-color: #fcf8e3; border-color: #faebcc; } .alert-warning hr { border-top-color: #f7e1b5; } .alert-warning .alert-link { color: #66512c; } .alert-danger { color: #a94442; background-color: #f2dede; border-color: #ebccd1; } .alert-danger hr { border-top-color: #e4b9c0; } .alert-danger .alert-link { color: #843534; } @-webkit-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } @-o-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } @keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } .progress { height: 20px; margin-bottom: 20px; overflow: hidden; background-color: #f5f5f5; border-radius: 4px; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); } .progress-bar { float: left; width: 0; height: 100%; font-size: 12px; line-height: 20px; color: #fff; text-align: center; background-color: #337ab7; -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); -webkit-transition: width .6s ease; -o-transition: width .6s ease; transition: width .6s ease; } .progress-striped .progress-bar, .progress-bar-striped { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -webkit-background-size: 40px 40px; background-size: 40px 40px; } .progress.active .progress-bar, .progress-bar.active { -webkit-animation: progress-bar-stripes 2s linear infinite; -o-animation: progress-bar-stripes 2s linear infinite; animation: progress-bar-stripes 2s linear infinite; } .progress-bar-success { background-color: #5cb85c; } .progress-striped .progress-bar-success { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-info { background-color: #5bc0de; } .progress-striped .progress-bar-info { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-warning { background-color: #f0ad4e; } .progress-striped .progress-bar-warning { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-danger { background-color: #d9534f; } .progress-striped .progress-bar-danger { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .media { margin-top: 15px; } .media:first-child { margin-top: 0; } .media, .media-body { overflow: hidden; zoom: 1; } .media-body { width: 10000px; } .media-object { display: block; } .media-object.img-thumbnail { max-width: none; } .media-right, .media > .pull-right { padding-left: 10px; } .media-left, .media > .pull-left { padding-right: 10px; } .media-left, .media-right, .media-body { display: table-cell; vertical-align: top; } .media-middle { vertical-align: middle; } .media-bottom { vertical-align: bottom; } .media-heading { margin-top: 0; margin-bottom: 5px; } .media-list { padding-left: 0; list-style: none; } .list-group { padding-left: 0; margin-bottom: 20px; } .list-group-item { position: relative; display: block; padding: 10px 15px; margin-bottom: -1px; background-color: #fff; border: 1px solid #ddd; } .list-group-item:first-child { border-top-left-radius: 4px; border-top-right-radius: 4px; } .list-group-item:last-child { margin-bottom: 0; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } a.list-group-item, button.list-group-item { color: #555; } a.list-group-item .list-group-item-heading, button.list-group-item .list-group-item-heading { color: #333; } a.list-group-item:hover, button.list-group-item:hover, a.list-group-item:focus, button.list-group-item:focus { color: #555; text-decoration: none; background-color: #f5f5f5; } button.list-group-item { width: 100%; text-align: left; } .list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { color: #777; cursor: not-allowed; background-color: #eee; } .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading { color: inherit; } .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { color: #777; } .list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { z-index: 2; color: #fff; background-color: #337ab7; border-color: #337ab7; } .list-group-item.active .list-group-item-heading, .list-group-item.active:hover .list-group-item-heading, .list-group-item.active:focus .list-group-item-heading, .list-group-item.active .list-group-item-heading > small, .list-group-item.active:hover .list-group-item-heading > small, .list-group-item.active:focus .list-group-item-heading > small, .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading > .small { color: inherit; } .list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text { color: #c7ddef; } .list-group-item-success { color: #3c763d; background-color: #dff0d8; } a.list-group-item-success, button.list-group-item-success { color: #3c763d; } a.list-group-item-success .list-group-item-heading, button.list-group-item-success .list-group-item-heading { color: inherit; } a.list-group-item-success:hover, button.list-group-item-success:hover, a.list-group-item-success:focus, button.list-group-item-success:focus { color: #3c763d; background-color: #d0e9c6; } a.list-group-item-success.active, button.list-group-item-success.active, a.list-group-item-success.active:hover, button.list-group-item-success.active:hover, a.list-group-item-success.active:focus, button.list-group-item-success.active:focus { color: #fff; background-color: #3c763d; border-color: #3c763d; } .list-group-item-info { color: #31708f; background-color: #d9edf7; } a.list-group-item-info, button.list-group-item-info { color: #31708f; } a.list-group-item-info .list-group-item-heading, button.list-group-item-info .list-group-item-heading { color: inherit; } a.list-group-item-info:hover, button.list-group-item-info:hover, a.list-group-item-info:focus, button.list-group-item-info:focus { color: #31708f; background-color: #c4e3f3; } a.list-group-item-info.active, button.list-group-item-info.active, a.list-group-item-info.active:hover, button.list-group-item-info.active:hover, a.list-group-item-info.active:focus, button.list-group-item-info.active:focus { color: #fff; background-color: #31708f; border-color: #31708f; } .list-group-item-warning { color: #8a6d3b; background-color: #fcf8e3; } a.list-group-item-warning, button.list-group-item-warning { color: #8a6d3b; } a.list-group-item-warning .list-group-item-heading, button.list-group-item-warning .list-group-item-heading { color: inherit; } a.list-group-item-warning:hover, button.list-group-item-warning:hover, a.list-group-item-warning:focus, button.list-group-item-warning:focus { color: #8a6d3b; background-color: #faf2cc; } a.list-group-item-warning.active, button.list-group-item-warning.active, a.list-group-item-warning.active:hover, button.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus, button.list-group-item-warning.active:focus { color: #fff; background-color: #8a6d3b; border-color: #8a6d3b; } .list-group-item-danger { color: #a94442; background-color: #f2dede; } a.list-group-item-danger, button.list-group-item-danger { color: #a94442; } a.list-group-item-danger .list-group-item-heading, button.list-group-item-danger .list-group-item-heading { color: inherit; } a.list-group-item-danger:hover, button.list-group-item-danger:hover, a.list-group-item-danger:focus, button.list-group-item-danger:focus { color: #a94442; background-color: #ebcccc; } a.list-group-item-danger.active, button.list-group-item-danger.active, a.list-group-item-danger.active:hover, button.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus, button.list-group-item-danger.active:focus { color: #fff; background-color: #a94442; border-color: #a94442; } .list-group-item-heading { margin-top: 0; margin-bottom: 5px; } .list-group-item-text { margin-bottom: 0; line-height: 1.3; } .panel { margin-bottom: 20px; background-color: #fff; border: 1px solid transparent; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); box-shadow: 0 1px 1px rgba(0, 0, 0, .05); } .panel-body { padding: 15px; } .panel-heading { padding: 10px 15px; border-bottom: 1px solid transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel-heading > .dropdown .dropdown-toggle { color: inherit; } .panel-title { margin-top: 0; margin-bottom: 0; font-size: 16px; color: inherit; } .panel-title > a, .panel-title > small, .panel-title > .small, .panel-title > small > a, .panel-title > .small > a { color: inherit; } .panel-footer { padding: 10px 15px; background-color: #f5f5f5; border-top: 1px solid #ddd; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel > .list-group, .panel > .panel-collapse > .list-group { margin-bottom: 0; } .panel > .list-group .list-group-item, .panel > .panel-collapse > .list-group .list-group-item { border-width: 1px 0; border-radius: 0; } .panel > .list-group:first-child .list-group-item:first-child, .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { border-top: 0; border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel > .list-group:last-child .list-group-item:last-child, .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { border-bottom: 0; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { border-top-left-radius: 0; border-top-right-radius: 0; } .panel-heading + .list-group .list-group-item:first-child { border-top-width: 0; } .list-group + .panel-footer { border-top-width: 0; } .panel > .table, .panel > .table-responsive > .table, .panel > .panel-collapse > .table { margin-bottom: 0; } .panel > .table caption, .panel > .table-responsive > .table caption, .panel > .panel-collapse > .table caption { padding-right: 15px; padding-left: 15px; } .panel > .table:first-child, .panel > .table-responsive:first-child > .table:first-child { border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel > .table:first-child > thead:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { border-top-left-radius: 3px; } .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { border-top-right-radius: 3px; } .panel > .table:last-child, .panel > .table-responsive:last-child > .table:last-child { border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel > .table:last-child > tbody:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { border-bottom-left-radius: 3px; } .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { border-bottom-right-radius: 3px; } .panel > .panel-body + .table, .panel > .panel-body + .table-responsive, .panel > .table + .panel-body, .panel > .table-responsive + .panel-body { border-top: 1px solid #ddd; } .panel > .table > tbody:first-child > tr:first-child th, .panel > .table > tbody:first-child > tr:first-child td { border-top: 0; } .panel > .table-bordered, .panel > .table-responsive > .table-bordered { border: 0; } .panel > .table-bordered > thead > tr > th:first-child, .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, .panel > .table-bordered > tbody > tr > th:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, .panel > .table-bordered > tfoot > tr > th:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, .panel > .table-bordered > thead > tr > td:first-child, .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, .panel > .table-bordered > tbody > tr > td:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, .panel > .table-bordered > tfoot > tr > td:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { border-left: 0; } .panel > .table-bordered > thead > tr > th:last-child, .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, .panel > .table-bordered > tbody > tr > th:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, .panel > .table-bordered > tfoot > tr > th:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, .panel > .table-bordered > thead > tr > td:last-child, .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, .panel > .table-bordered > tbody > tr > td:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, .panel > .table-bordered > tfoot > tr > td:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { border-right: 0; } .panel > .table-bordered > thead > tr:first-child > td, .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, .panel > .table-bordered > tbody > tr:first-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, .panel > .table-bordered > thead > tr:first-child > th, .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, .panel > .table-bordered > tbody > tr:first-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { border-bottom: 0; } .panel > .table-bordered > tbody > tr:last-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, .panel > .table-bordered > tfoot > tr:last-child > td, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, .panel > .table-bordered > tbody > tr:last-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, .panel > .table-bordered > tfoot > tr:last-child > th, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { border-bottom: 0; } .panel > .table-responsive { margin-bottom: 0; border: 0; } .panel-group { margin-bottom: 20px; } .panel-group .panel { margin-bottom: 0; border-radius: 4px; } .panel-group .panel + .panel { margin-top: 5px; } .panel-group .panel-heading { border-bottom: 0; } .panel-group .panel-heading + .panel-collapse > .panel-body, .panel-group .panel-heading + .panel-collapse > .list-group { border-top: 1px solid #ddd; } .panel-group .panel-footer { border-top: 0; } .panel-group .panel-footer + .panel-collapse .panel-body { border-bottom: 1px solid #ddd; } .panel-default { border-color: #ddd; } .panel-default > .panel-heading { color: #333; background-color: #f5f5f5; border-color: #ddd; } .panel-default > .panel-heading + .panel-collapse > .panel-body { border-top-color: #ddd; } .panel-default > .panel-heading .badge { color: #f5f5f5; background-color: #333; } .panel-default > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #ddd; } .panel-primary { border-color: #337ab7; } .panel-primary > .panel-heading { color: #fff; background-color: #337ab7; border-color: #337ab7; } .panel-primary > .panel-heading + .panel-collapse > .panel-body { border-top-color: #337ab7; } .panel-primary > .panel-heading .badge { color: #337ab7; background-color: #fff; } .panel-primary > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #337ab7; } .panel-success { border-color: #d6e9c6; } .panel-success > .panel-heading { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; } .panel-success > .panel-heading + .panel-collapse > .panel-body { border-top-color: #d6e9c6; } .panel-success > .panel-heading .badge { color: #dff0d8; background-color: #3c763d; } .panel-success > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #d6e9c6; } .panel-info { border-color: #bce8f1; } .panel-info > .panel-heading { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; } .panel-info > .panel-heading + .panel-collapse > .panel-body { border-top-color: #bce8f1; } .panel-info > .panel-heading .badge { color: #d9edf7; background-color: #31708f; } .panel-info > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #bce8f1; } .panel-warning { border-color: #faebcc; } .panel-warning > .panel-heading { color: #8a6d3b; background-color: #fcf8e3; border-color: #faebcc; } .panel-warning > .panel-heading + .panel-collapse > .panel-body { border-top-color: #faebcc; } .panel-warning > .panel-heading .badge { color: #fcf8e3; background-color: #8a6d3b; } .panel-warning > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #faebcc; } .panel-danger { border-color: #ebccd1; } .panel-danger > .panel-heading { color: #a94442; background-color: #f2dede; border-color: #ebccd1; } .panel-danger > .panel-heading + .panel-collapse > .panel-body { border-top-color: #ebccd1; } .panel-danger > .panel-heading .badge { color: #f2dede; background-color: #a94442; } .panel-danger > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #ebccd1; } .embed-responsive { position: relative; display: block; height: 0; padding: 0; overflow: hidden; } .embed-responsive .embed-responsive-item, .embed-responsive iframe, .embed-responsive embed, .embed-responsive object, .embed-responsive video { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; height: 100%; border: 0; } .embed-responsive-16by9 { padding-bottom: 56.25%; } .embed-responsive-4by3 { padding-bottom: 75%; } .well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: #f5f5f5; border: 1px solid #e3e3e3; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); } .well blockquote { border-color: #ddd; border-color: rgba(0, 0, 0, .15); } .well-lg { padding: 24px; border-radius: 6px; } .well-sm { padding: 9px; border-radius: 3px; } .close { float: right; font-size: 21px; font-weight: bold; line-height: 1; color: #000; text-shadow: 0 1px 0 #fff; filter: alpha(opacity=20); opacity: .2; } .close:hover, .close:focus { color: #000; text-decoration: none; cursor: pointer; filter: alpha(opacity=50); opacity: .5; } button.close { -webkit-appearance: none; padding: 0; cursor: pointer; background: transparent; border: 0; } .modal-open { overflow: hidden; } .modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; display: none; overflow: hidden; -webkit-overflow-scrolling: touch; outline: 0; } .modal.fade .modal-dialog { -webkit-transition: -webkit-transform .3s ease-out; -o-transition: -o-transform .3s ease-out; transition: transform .3s ease-out; -webkit-transform: translate(0, -25%); -ms-transform: translate(0, -25%); -o-transform: translate(0, -25%); transform: translate(0, -25%); } .modal.in .modal-dialog { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); -o-transform: translate(0, 0); transform: translate(0, 0); } .modal-open .modal { overflow-x: hidden; overflow-y: auto; } .modal-dialog { position: relative; width: auto; margin: 10px; } .modal-content { position: relative; background-color: #fff; -webkit-background-clip: padding-box; background-clip: padding-box; border: 1px solid #999; border: 1px solid rgba(0, 0, 0, .2); border-radius: 6px; outline: 0; -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } .modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; background-color: #000; } .modal-backdrop.fade { filter: alpha(opacity=0); opacity: 0; } .modal-backdrop.in { filter: alpha(opacity=50); opacity: .5; } .modal-header { padding: 15px; border-bottom: 1px solid #e5e5e5; } .modal-header .close { margin-top: -2px; } .modal-title { margin: 0; line-height: 1.42857143; } .modal-body { position: relative; padding: 15px; } .modal-footer { padding: 15px; text-align: right; border-top: 1px solid #e5e5e5; } .modal-footer .btn + .btn { margin-bottom: 0; margin-left: 5px; } .modal-footer .btn-group .btn + .btn { margin-left: -1px; } .modal-footer .btn-block + .btn-block { margin-left: 0; } .modal-scrollbar-measure { position: absolute; top: -9999px; width: 50px; height: 50px; overflow: scroll; } @media (min-width: 768px) { .modal-dialog { width: 600px; margin: 30px auto; } .modal-content { -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); box-shadow: 0 5px 15px rgba(0, 0, 0, .5); } .modal-sm { width: 300px; } } @media (min-width: 992px) { .modal-lg { width: 900px; } } .tooltip { position: absolute; z-index: 1070; display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-weight: normal; line-height: 1.42857143; text-align: left; text-align: start; text-decoration: none; text-shadow: none; text-transform: none; letter-spacing: normal; word-break: normal; word-spacing: normal; word-wrap: normal; white-space: normal; filter: alpha(opacity=0); opacity: 0; line-break: auto; } .tooltip.in { filter: alpha(opacity=90); opacity: .9; } .tooltip.top { padding: 5px 0; margin-top: -3px; } .tooltip.right { padding: 0 5px; margin-left: 3px; } .tooltip.bottom { padding: 5px 0; margin-top: 3px; } .tooltip.left { padding: 0 5px; margin-left: -3px; } .tooltip-inner { max-width: 200px; padding: 3px 8px; color: #fff; text-align: center; background-color: #000; border-radius: 4px; } .tooltip-arrow { position: absolute; width: 0; height: 0; border-color: transparent; border-style: solid; } .tooltip.top .tooltip-arrow { bottom: 0; left: 50%; margin-left: -5px; border-width: 5px 5px 0; border-top-color: #000; } .tooltip.top-left .tooltip-arrow { right: 5px; bottom: 0; margin-bottom: -5px; border-width: 5px 5px 0; border-top-color: #000; } .tooltip.top-right .tooltip-arrow { bottom: 0; left: 5px; margin-bottom: -5px; border-width: 5px 5px 0; border-top-color: #000; } .tooltip.right .tooltip-arrow { top: 50%; left: 0; margin-top: -5px; border-width: 5px 5px 5px 0; border-right-color: #000; } .tooltip.left .tooltip-arrow { top: 50%; right: 0; margin-top: -5px; border-width: 5px 0 5px 5px; border-left-color: #000; } .tooltip.bottom .tooltip-arrow { top: 0; left: 50%; margin-left: -5px; border-width: 0 5px 5px; border-bottom-color: #000; } .tooltip.bottom-left .tooltip-arrow { top: 0; right: 5px; margin-top: -5px; border-width: 0 5px 5px; border-bottom-color: #000; } .tooltip.bottom-right .tooltip-arrow { top: 0; left: 5px; margin-top: -5px; border-width: 0 5px 5px; border-bottom-color: #000; } .popover { position: absolute; top: 0; left: 0; z-index: 1060; display: none; max-width: 276px; padding: 1px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-weight: normal; line-height: 1.42857143; text-align: left; text-align: start; text-decoration: none; text-shadow: none; text-transform: none; letter-spacing: normal; word-break: normal; word-spacing: normal; word-wrap: normal; white-space: normal; background-color: #fff; -webkit-background-clip: padding-box; background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, .2); border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); box-shadow: 0 5px 10px rgba(0, 0, 0, .2); line-break: auto; } .popover.top { margin-top: -10px; } .popover.right { margin-left: 10px; } .popover.bottom { margin-top: 10px; } .popover.left { margin-left: -10px; } .popover-title { padding: 8px 14px; margin: 0; font-size: 14px; background-color: #f7f7f7; border-bottom: 1px solid #ebebeb; border-radius: 5px 5px 0 0; } .popover-content { padding: 9px 14px; } .popover > .arrow, .popover > .arrow:after { position: absolute; display: block; width: 0; height: 0; border-color: transparent; border-style: solid; } .popover > .arrow { border-width: 11px; } .popover > .arrow:after { content: ""; border-width: 10px; } .popover.top > .arrow { bottom: -11px; left: 50%; margin-left: -11px; border-top-color: #999; border-top-color: rgba(0, 0, 0, .25); border-bottom-width: 0; } .popover.top > .arrow:after { bottom: 1px; margin-left: -10px; content: " "; border-top-color: #fff; border-bottom-width: 0; } .popover.right > .arrow { top: 50%; left: -11px; margin-top: -11px; border-right-color: #999; border-right-color: rgba(0, 0, 0, .25); border-left-width: 0; } .popover.right > .arrow:after { bottom: -10px; left: 1px; content: " "; border-right-color: #fff; border-left-width: 0; } .popover.bottom > .arrow { top: -11px; left: 50%; margin-left: -11px; border-top-width: 0; border-bottom-color: #999; border-bottom-color: rgba(0, 0, 0, .25); } .popover.bottom > .arrow:after { top: 1px; margin-left: -10px; content: " "; border-top-width: 0; border-bottom-color: #fff; } .popover.left > .arrow { top: 50%; right: -11px; margin-top: -11px; border-right-width: 0; border-left-color: #999; border-left-color: rgba(0, 0, 0, .25); } .popover.left > .arrow:after { right: 1px; bottom: -10px; content: " "; border-right-width: 0; border-left-color: #fff; } .carousel { position: relative; } .carousel-inner { position: relative; width: 100%; overflow: hidden; } .carousel-inner > .item { position: relative; display: none; -webkit-transition: .6s ease-in-out left; -o-transition: .6s ease-in-out left; transition: .6s ease-in-out left; } .carousel-inner > .item > img, .carousel-inner > .item > a > img { line-height: 1; } @media all and (transform-3d), (-webkit-transform-3d) { .carousel-inner > .item { -webkit-transition: -webkit-transform .6s ease-in-out; -o-transition: -o-transform .6s ease-in-out; transition: transform .6s ease-in-out; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-perspective: 1000px; perspective: 1000px; } .carousel-inner > .item.next, .carousel-inner > .item.active.right { left: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } .carousel-inner > .item.prev, .carousel-inner > .item.active.left { left: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active { left: 0; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev { display: block; } .carousel-inner > .active { left: 0; } .carousel-inner > .next, .carousel-inner > .prev { position: absolute; top: 0; width: 100%; } .carousel-inner > .next { left: 100%; } .carousel-inner > .prev { left: -100%; } .carousel-inner > .next.left, .carousel-inner > .prev.right { left: 0; } .carousel-inner > .active.left { left: -100%; } .carousel-inner > .active.right { left: 100%; } .carousel-control { position: absolute; top: 0; bottom: 0; left: 0; width: 15%; font-size: 20px; color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); background-color: rgba(0, 0, 0, 0); filter: alpha(opacity=50); opacity: .5; } .carousel-control.left { background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); background-repeat: repeat-x; } .carousel-control.right { right: 0; left: auto; background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); background-repeat: repeat-x; } .carousel-control:hover, .carousel-control:focus { color: #fff; text-decoration: none; filter: alpha(opacity=90); outline: 0; opacity: .9; } .carousel-control .icon-prev, .carousel-control .icon-next, .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right { position: absolute; top: 50%; z-index: 5; display: inline-block; margin-top: -10px; } .carousel-control .icon-prev, .carousel-control .glyphicon-chevron-left { left: 50%; margin-left: -10px; } .carousel-control .icon-next, .carousel-control .glyphicon-chevron-right { right: 50%; margin-right: -10px; } .carousel-control .icon-prev, .carousel-control .icon-next { width: 20px; height: 20px; font-family: serif; line-height: 1; } .carousel-control .icon-prev:before { content: '\2039'; } .carousel-control .icon-next:before { content: '\203a'; } .carousel-indicators { position: absolute; bottom: 10px; left: 50%; z-index: 15; width: 60%; padding-left: 0; margin-left: -30%; text-align: center; list-style: none; } .carousel-indicators li { display: inline-block; width: 10px; height: 10px; margin: 1px; text-indent: -999px; cursor: pointer; background-color: #000 \9; background-color: rgba(0, 0, 0, 0); border: 1px solid #fff; border-radius: 10px; } .carousel-indicators .active { width: 12px; height: 12px; margin: 0; background-color: #fff; } .carousel-caption { position: absolute; right: 15%; bottom: 20px; left: 15%; z-index: 10; padding-top: 20px; padding-bottom: 20px; color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); } .carousel-caption .btn { text-shadow: none; } @media screen and (min-width: 768px) { .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-prev, .carousel-control .icon-next { width: 30px; height: 30px; margin-top: -10px; font-size: 30px; } .carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { margin-left: -10px; } .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { margin-right: -10px; } .carousel-caption { right: 20%; left: 20%; padding-bottom: 30px; } .carousel-indicators { bottom: 20px; } } .clearfix:before, .clearfix:after, .dl-horizontal dd:before, .dl-horizontal dd:after, .container:before, .container:after, .container-fluid:before, .container-fluid:after, .row:before, .row:after, .form-horizontal .form-group:before, .form-horizontal .form-group:after, .btn-toolbar:before, .btn-toolbar:after, .btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after, .nav:before, .nav:after, .navbar:before, .navbar:after, .navbar-header:before, .navbar-header:after, .navbar-collapse:before, .navbar-collapse:after, .pager:before, .pager:after, .panel-body:before, .panel-body:after, .modal-header:before, .modal-header:after, .modal-footer:before, .modal-footer:after { display: table; content: " "; } .clearfix:after, .dl-horizontal dd:after, .container:after, .container-fluid:after, .row:after, .form-horizontal .form-group:after, .btn-toolbar:after, .btn-group-vertical > .btn-group:after, .nav:after, .navbar:after, .navbar-header:after, .navbar-collapse:after, .pager:after, .panel-body:after, .modal-header:after, .modal-footer:after { clear: both; } .center-block { display: block; margin-right: auto; margin-left: auto; } .pull-right { float: right !important; } .pull-left { float: left !important; } .hide { display: none !important; } .show { display: block !important; } .invisible { visibility: hidden; } .text-hide { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } .hidden { display: none !important; } .affix { position: fixed; } @-ms-viewport { width: device-width; } .visible-xs, .visible-sm, .visible-md, .visible-lg { display: none !important; } .visible-xs-block, .visible-xs-inline, .visible-xs-inline-block, .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, .visible-md-block, .visible-md-inline, .visible-md-inline-block, .visible-lg-block, .visible-lg-inline, .visible-lg-inline-block { display: none !important; } @media (max-width: 767px) { .visible-xs { display: block !important; } table.visible-xs { display: table !important; } tr.visible-xs { display: table-row !important; } th.visible-xs, td.visible-xs { display: table-cell !important; } } @media (max-width: 767px) { .visible-xs-block { display: block !important; } } @media (max-width: 767px) { .visible-xs-inline { display: inline !important; } } @media (max-width: 767px) { .visible-xs-inline-block { display: inline-block !important; } } @media (min-width: 768px) and (max-width: 991px) { .visible-sm { display: block !important; } table.visible-sm { display: table !important; } tr.visible-sm { display: table-row !important; } th.visible-sm, td.visible-sm { display: table-cell !important; } } @media (min-width: 768px) and (max-width: 991px) { .visible-sm-block { display: block !important; } } @media (min-width: 768px) and (max-width: 991px) { .visible-sm-inline { display: inline !important; } } @media (min-width: 768px) and (max-width: 991px) { .visible-sm-inline-block { display: inline-block !important; } } @media (min-width: 992px) and (max-width: 1199px) { .visible-md { display: block !important; } table.visible-md { display: table !important; } tr.visible-md { display: table-row !important; } th.visible-md, td.visible-md { display: table-cell !important; } } @media (min-width: 992px) and (max-width: 1199px) { .visible-md-block { display: block !important; } } @media (min-width: 992px) and (max-width: 1199px) { .visible-md-inline { display: inline !important; } } @media (min-width: 992px) and (max-width: 1199px) { .visible-md-inline-block { display: inline-block !important; } } @media (min-width: 1200px) { .visible-lg { display: block !important; } table.visible-lg { display: table !important; } tr.visible-lg { display: table-row !important; } th.visible-lg, td.visible-lg { display: table-cell !important; } } @media (min-width: 1200px) { .visible-lg-block { display: block !important; } } @media (min-width: 1200px) { .visible-lg-inline { display: inline !important; } } @media (min-width: 1200px) { .visible-lg-inline-block { display: inline-block !important; } } @media (max-width: 767px) { .hidden-xs { display: none !important; } } @media (min-width: 768px) and (max-width: 991px) { .hidden-sm { display: none !important; } } @media (min-width: 992px) and (max-width: 1199px) { .hidden-md { display: none !important; } } @media (min-width: 1200px) { .hidden-lg { display: none !important; } } .visible-print { display: none !important; } @media print { .visible-print { display: block !important; } table.visible-print { display: table !important; } tr.visible-print { display: table-row !important; } th.visible-print, td.visible-print { display: table-cell !important; } } .visible-print-block { display: none !important; } @media print { .visible-print-block { display: block !important; } } .visible-print-inline { display: none !important; } @media print { .visible-print-inline { display: inline !important; } } .visible-print-inline-block { display: none !important; } @media print { .visible-print-inline-block { display: inline-block !important; } } @media print { .hidden-print { display: none !important; } } /*# sourceMappingURL=bootstrap.css.map */ MediaConch/Source/Resource/html/css/bootstrap.min.css0000644000000000000000000035453114640052500021651 0ustar rootroot/*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(qrc:/glyphicons-halflings-regular.eot);src:url(qrc:/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(qrc:/glyphicons-halflings-regular.woff2) format('woff2'),url(qrc:/glyphicons-halflings-regular.woff) format('woff'),url(qrc:/glyphicons-halflings-regular.ttf) format('truetype'),url(qrc:/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} /*# sourceMappingURL=bootstrap.min.css.map */ MediaConch/Source/Resource/html/css/datatables.css0000644000000000000000000001262614640052500021152 0ustar rootroot/* * This combined file was created by the DataTables downloader builder: * https://datatables.net/download * * To rebuild or modify this file with the latest versions of the included * software please visit: * https://datatables.net/download/#bs/dt-1.10.13/fh-3.1.2 * * Included libraries: * DataTables 1.10.13, FixedHeader 3.1.2 */ table.dataTable { clear: both; margin-top: 6px !important; margin-bottom: 6px !important; max-width: none !important; border-collapse: separate !important; } table.dataTable td, table.dataTable th { -webkit-box-sizing: content-box; box-sizing: content-box; } table.dataTable td.dataTables_empty, table.dataTable th.dataTables_empty { text-align: center; } table.dataTable.nowrap th, table.dataTable.nowrap td { white-space: nowrap; } div.dataTables_wrapper div.dataTables_length label { font-weight: normal; text-align: left; white-space: nowrap; } div.dataTables_wrapper div.dataTables_length select { width: 75px; display: inline-block; } div.dataTables_wrapper div.dataTables_filter { text-align: right; } div.dataTables_wrapper div.dataTables_filter label { font-weight: normal; white-space: nowrap; text-align: left; } div.dataTables_wrapper div.dataTables_filter input { margin-left: 0.5em; display: inline-block; width: auto; } div.dataTables_wrapper div.dataTables_info { padding-top: 8px; white-space: nowrap; } div.dataTables_wrapper div.dataTables_paginate { margin: 0; white-space: nowrap; text-align: right; } div.dataTables_wrapper div.dataTables_paginate ul.pagination { margin: 2px 0; white-space: nowrap; } div.dataTables_wrapper div.dataTables_processing { position: absolute; top: 50%; left: 50%; width: 200px; margin-left: -100px; margin-top: -26px; text-align: center; padding: 1em 0; } table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, table.dataTable thead > tr > td.sorting_asc, table.dataTable thead > tr > td.sorting_desc, table.dataTable thead > tr > td.sorting { padding-right: 30px; } table.dataTable thead > tr > th:active, table.dataTable thead > tr > td:active { outline: none; } table.dataTable thead .sorting, table.dataTable thead .sorting_asc, table.dataTable thead .sorting_desc, table.dataTable thead .sorting_asc_disabled, table.dataTable thead .sorting_desc_disabled { cursor: pointer; position: relative; } table.dataTable thead .sorting:after, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_desc:after, table.dataTable thead .sorting_asc_disabled:after, table.dataTable thead .sorting_desc_disabled:after { position: absolute; bottom: 8px; right: 8px; display: block; font-family: 'Glyphicons Halflings'; opacity: 0.5; } table.dataTable thead .sorting:after { opacity: 0.2; content: "\e150"; /* sort */ } table.dataTable thead .sorting_asc:after { content: "\e155"; /* sort-by-attributes */ } table.dataTable thead .sorting_desc:after { content: "\e156"; /* sort-by-attributes-alt */ } table.dataTable thead .sorting_asc_disabled:after, table.dataTable thead .sorting_desc_disabled:after { color: #eee; } div.dataTables_scrollHead table.dataTable { margin-bottom: 0 !important; } div.dataTables_scrollBody table { border-top: none; margin-top: 0 !important; margin-bottom: 0 !important; } div.dataTables_scrollBody table thead .sorting:after, div.dataTables_scrollBody table thead .sorting_asc:after, div.dataTables_scrollBody table thead .sorting_desc:after { display: none; } div.dataTables_scrollBody table tbody tr:first-child th, div.dataTables_scrollBody table tbody tr:first-child td { border-top: none; } div.dataTables_scrollFoot table { margin-top: 0 !important; border-top: none; } @media screen and (max-width: 767px) { div.dataTables_wrapper div.dataTables_length, div.dataTables_wrapper div.dataTables_filter, div.dataTables_wrapper div.dataTables_info, div.dataTables_wrapper div.dataTables_paginate { text-align: center; } } table.dataTable.table-condensed > thead > tr > th { padding-right: 20px; } table.dataTable.table-condensed .sorting:after, table.dataTable.table-condensed .sorting_asc:after, table.dataTable.table-condensed .sorting_desc:after { top: 6px; right: 6px; } table.table-bordered.dataTable th, table.table-bordered.dataTable td { border-left-width: 0; } table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable td:last-child, table.table-bordered.dataTable td:last-child { border-right-width: 0; } table.table-bordered.dataTable tbody th, table.table-bordered.dataTable tbody td { border-bottom-width: 0; } div.dataTables_scrollHead table.table-bordered { border-bottom-width: 0; } div.table-responsive > div.dataTables_wrapper > div.row { margin: 0; } div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child { padding-left: 0; } div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { padding-right: 0; } table.dataTable.fixedHeader-floating, table.dataTable.fixedHeader-locked { background-color: white; margin-top: 0 !important; margin-bottom: 0 !important; } table.dataTable.fixedHeader-floating { position: fixed !important; } table.dataTable.fixedHeader-locked { position: absolute !important; } @media print { table.fixedHeader-floating { display: none; } } MediaConch/Source/Resource/html/css/datatables.min.css0000644000000000000000000001140714640052500021730 0ustar rootroot/* * This combined file was created by the DataTables downloader builder: * https://datatables.net/download * * To rebuild or modify this file with the latest versions of the included * software please visit: * https://datatables.net/download/#bs/dt-1.10.13/fh-3.1.2 * * Included libraries: * DataTables 1.10.13, FixedHeader 3.1.2 */ table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0} table.dataTable.fixedHeader-floating,table.dataTable.fixedHeader-locked{background-color:white;margin-top:0 !important;margin-bottom:0 !important}table.dataTable.fixedHeader-floating{position:fixed !important}table.dataTable.fixedHeader-locked{position:absolute !important}@media print{table.fixedHeader-floating{display:none}} MediaConch/Source/Resource/html/css/jstree.css0000644000000000000000000007562614640052500020353 0ustar rootroot/* jsTree default theme */ .jstree-node, .jstree-children, .jstree-container-ul { display: block; margin: 0; padding: 0; list-style-type: none; list-style-image: none; } .jstree-node { white-space: nowrap; } .jstree-anchor { display: inline-block; color: black; white-space: nowrap; padding: 0 4px 0 1px; margin: 0; vertical-align: top; } .jstree-anchor:focus { outline: 0; } .jstree-anchor, .jstree-anchor:link, .jstree-anchor:visited, .jstree-anchor:hover, .jstree-anchor:active { text-decoration: none; color: inherit; } .jstree-icon { display: inline-block; text-decoration: none; margin: 0; padding: 0; vertical-align: top; text-align: center; } .jstree-icon:empty { display: inline-block; text-decoration: none; margin: 0; padding: 0; vertical-align: top; text-align: center; } .jstree-ocl { cursor: pointer; } .jstree-leaf > .jstree-ocl { cursor: default; } .jstree .jstree-open > .jstree-children { display: block; } .jstree .jstree-closed > .jstree-children, .jstree .jstree-leaf > .jstree-children { display: none; } .jstree-anchor > .jstree-themeicon { margin-right: 2px; } .jstree-no-icons .jstree-themeicon, .jstree-anchor > .jstree-themeicon-hidden { display: none; } .jstree-hidden, .jstree-node.jstree-hidden { display: none; } .jstree-rtl .jstree-anchor { padding: 0 1px 0 4px; } .jstree-rtl .jstree-anchor > .jstree-themeicon { margin-left: 2px; margin-right: 0; } .jstree-rtl .jstree-node { margin-left: 0; } .jstree-rtl .jstree-container-ul > .jstree-node { margin-right: 0; } .jstree-wholerow-ul { position: relative; display: inline-block; min-width: 100%; } .jstree-wholerow-ul .jstree-leaf > .jstree-ocl { cursor: pointer; } .jstree-wholerow-ul .jstree-anchor, .jstree-wholerow-ul .jstree-icon { position: relative; } .jstree-wholerow-ul .jstree-wholerow { width: 100%; cursor: pointer; position: absolute; left: 0; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .jstree-contextmenu .jstree-anchor { -webkit-user-select: none; /* disable selection/Copy of UIWebView */ -webkit-touch-callout: none; /* disable the IOS popup when long-press on a link */ } .vakata-context { display: none; } .vakata-context, .vakata-context ul { margin: 0; padding: 2px; position: absolute; background: #f5f5f5; border: 1px solid #979797; box-shadow: 2px 2px 2px #999999; } .vakata-context ul { list-style: none; left: 100%; margin-top: -2.7em; margin-left: -4px; } .vakata-context .vakata-context-right ul { left: auto; right: 100%; margin-left: auto; margin-right: -4px; } .vakata-context li { list-style: none; } .vakata-context li > a { display: block; padding: 0 2em 0 2em; text-decoration: none; width: auto; color: black; white-space: nowrap; line-height: 2.4em; text-shadow: 1px 1px 0 white; border-radius: 1px; } .vakata-context li > a:hover { position: relative; background-color: #e8eff7; box-shadow: 0 0 2px #0a6aa1; } .vakata-context li > a.vakata-context-parent { background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); background-position: right center; background-repeat: no-repeat; } .vakata-context li > a:focus { outline: 0; } .vakata-context .vakata-context-hover > a { position: relative; background-color: #e8eff7; box-shadow: 0 0 2px #0a6aa1; } .vakata-context .vakata-context-separator > a, .vakata-context .vakata-context-separator > a:hover { background: white; border: 0; border-top: 1px solid #e2e3e3; height: 1px; min-height: 1px; max-height: 1px; padding: 0; margin: 0 0 0 2.4em; border-left: 1px solid #e0e0e0; text-shadow: 0 0 0 transparent; box-shadow: 0 0 0 transparent; border-radius: 0; } .vakata-context .vakata-contextmenu-disabled a, .vakata-context .vakata-contextmenu-disabled a:hover { color: silver; background-color: transparent; border: 0; box-shadow: 0 0 0; } .vakata-context .vakata-contextmenu-disabled > a > i { filter: grayscale(100%); } .vakata-context li > a > i { text-decoration: none; display: inline-block; width: 2.4em; height: 2.4em; background: transparent; margin: 0 0 0 -2em; vertical-align: top; text-align: center; line-height: 2.4em; } .vakata-context li > a > i:empty { width: 2.4em; line-height: 2.4em; } .vakata-context li > a .vakata-contextmenu-sep { display: inline-block; width: 1px; height: 2.4em; background: white; margin: 0 0.5em 0 0; border-left: 1px solid #e2e3e3; } .vakata-context .vakata-contextmenu-shortcut { font-size: 0.8em; color: silver; opacity: 0.5; display: none; } .vakata-context-rtl ul { left: auto; right: 100%; margin-left: auto; margin-right: -4px; } .vakata-context-rtl li > a.vakata-context-parent { background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); background-position: left center; background-repeat: no-repeat; } .vakata-context-rtl .vakata-context-separator > a { margin: 0 2.4em 0 0; border-left: 0; border-right: 1px solid #e2e3e3; } .vakata-context-rtl .vakata-context-left ul { right: auto; left: 100%; margin-left: -4px; margin-right: auto; } .vakata-context-rtl li > a > i { margin: 0 -2em 0 0; } .vakata-context-rtl li > a .vakata-contextmenu-sep { margin: 0 0 0 0.5em; border-left-color: white; background: #e2e3e3; } #jstree-marker { position: absolute; top: 0; left: 0; margin: -5px 0 0 0; padding: 0; border-right: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 5px solid; width: 0; height: 0; font-size: 0; line-height: 0; } #jstree-dnd { line-height: 16px; margin: 0; padding: 4px; } #jstree-dnd .jstree-icon, #jstree-dnd .jstree-copy { display: inline-block; text-decoration: none; margin: 0 2px 0 0; padding: 0; width: 16px; height: 16px; } #jstree-dnd .jstree-ok { background: green; } #jstree-dnd .jstree-er { background: red; } #jstree-dnd .jstree-copy { margin: 0 2px 0 2px; } .jstree-default .jstree-node, .jstree-default .jstree-icon { background-repeat: no-repeat; background-color: transparent; } .jstree-default .jstree-anchor, .jstree-default .jstree-animated, .jstree-default .jstree-wholerow { transition: background-color 0.15s, box-shadow 0.15s; } .jstree-default .jstree-hovered { background: #e7f4f9; border-radius: 2px; box-shadow: inset 0 0 1px #cccccc; } .jstree-default .jstree-context { background: #e7f4f9; border-radius: 2px; box-shadow: inset 0 0 1px #cccccc; } .jstree-default .jstree-clicked { background: #beebff; border-radius: 2px; box-shadow: inset 0 0 1px #999999; } .jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { display: none; } .jstree-default .jstree-disabled { background: transparent; color: #666666; } .jstree-default .jstree-disabled.jstree-hovered { background: transparent; box-shadow: none; } .jstree-default .jstree-disabled.jstree-clicked { background: #efefef; } .jstree-default .jstree-disabled > .jstree-icon { opacity: 0.8; filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); /* Firefox 10+ */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */ } .jstree-default .jstree-search { font-style: italic; color: #8b0000; font-weight: bold; } .jstree-default .jstree-no-checkboxes .jstree-checkbox { display: none !important; } .jstree-default.jstree-checkbox-no-clicked .jstree-clicked { background: transparent; box-shadow: none; } .jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { background: #e7f4f9; } .jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { background: transparent; } .jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { background: #e7f4f9; } .jstree-default > .jstree-striped { min-width: 100%; display: inline-block; background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; } .jstree-default > .jstree-wholerow-ul .jstree-hovered, .jstree-default > .jstree-wholerow-ul .jstree-clicked { background: transparent; box-shadow: none; border-radius: 0; } .jstree-default .jstree-wholerow { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } .jstree-default .jstree-wholerow-hovered { background: #e7f4f9; } .jstree-default .jstree-wholerow-clicked { background: #beebff; background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); } .jstree-default .jstree-node { min-height: 24px; line-height: 24px; margin-left: 24px; min-width: 24px; } .jstree-default .jstree-anchor { line-height: 24px; height: 24px; } .jstree-default .jstree-icon { width: 24px; height: 24px; line-height: 24px; } .jstree-default .jstree-icon:empty { width: 24px; height: 24px; line-height: 24px; } .jstree-default.jstree-rtl .jstree-node { margin-right: 24px; } .jstree-default .jstree-wholerow { height: 24px; } .jstree-default .jstree-node, .jstree-default .jstree-icon { background-image: url("32px.png"); } .jstree-default .jstree-node { background-position: -292px -4px; background-repeat: repeat-y; } .jstree-default .jstree-last { background: transparent; } .jstree-default .jstree-open > .jstree-ocl { background-position: -132px -4px; } .jstree-default .jstree-closed > .jstree-ocl { background-position: -100px -4px; } .jstree-default .jstree-leaf > .jstree-ocl { background-position: -68px -4px; } .jstree-default .jstree-themeicon { background-position: -260px -4px; } .jstree-default > .jstree-no-dots .jstree-node, .jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { background: transparent; } .jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { background-position: -36px -4px; } .jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { background-position: -4px -4px; } .jstree-default .jstree-disabled { background: transparent; } .jstree-default .jstree-disabled.jstree-hovered { background: transparent; } .jstree-default .jstree-disabled.jstree-clicked { background: #efefef; } .jstree-default .jstree-checkbox { background-position: -164px -4px; } .jstree-default .jstree-checkbox:hover { background-position: -164px -36px; } .jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, .jstree-default .jstree-checked > .jstree-checkbox { background-position: -228px -4px; } .jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, .jstree-default .jstree-checked > .jstree-checkbox:hover { background-position: -228px -36px; } .jstree-default .jstree-anchor > .jstree-undetermined { background-position: -196px -4px; } .jstree-default .jstree-anchor > .jstree-undetermined:hover { background-position: -196px -36px; } .jstree-default .jstree-checkbox-disabled { opacity: 0.8; filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); /* Firefox 10+ */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */ } .jstree-default > .jstree-striped { background-size: auto 48px; } .jstree-default.jstree-rtl .jstree-node { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); background-position: 100% 1px; background-repeat: repeat-y; } .jstree-default.jstree-rtl .jstree-last { background: transparent; } .jstree-default.jstree-rtl .jstree-open > .jstree-ocl { background-position: -132px -36px; } .jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { background-position: -100px -36px; } .jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { background-position: -68px -36px; } .jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, .jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { background: transparent; } .jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { background-position: -36px -36px; } .jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { background-position: -4px -36px; } .jstree-default .jstree-themeicon-custom { background-color: transparent; background-image: none; background-position: 0 0; } .jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { background: url("throbber.gif") center center no-repeat; } .jstree-default .jstree-file { background: url("32px.png") -100px -68px no-repeat; } .jstree-default .jstree-folder { background: url("32px.png") -260px -4px no-repeat; } .jstree-default > .jstree-container-ul > .jstree-node { margin-left: 0; margin-right: 0; } #jstree-dnd.jstree-default { line-height: 24px; padding: 0 4px; } #jstree-dnd.jstree-default .jstree-ok, #jstree-dnd.jstree-default .jstree-er { background-image: url("32px.png"); background-repeat: no-repeat; background-color: transparent; } #jstree-dnd.jstree-default i { background: transparent; width: 24px; height: 24px; line-height: 24px; } #jstree-dnd.jstree-default .jstree-ok { background-position: -4px -68px; } #jstree-dnd.jstree-default .jstree-er { background-position: -36px -68px; } .jstree-default .jstree-ellipsis { overflow: hidden; } .jstree-default .jstree-ellipsis .jstree-anchor { width: calc(100% - 29px); text-overflow: ellipsis; overflow: hidden; } .jstree-default.jstree-rtl .jstree-node { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); } .jstree-default.jstree-rtl .jstree-last { background: transparent; } .jstree-default-small .jstree-node { min-height: 18px; line-height: 18px; margin-left: 18px; min-width: 18px; } .jstree-default-small .jstree-anchor { line-height: 18px; height: 18px; } .jstree-default-small .jstree-icon { width: 18px; height: 18px; line-height: 18px; } .jstree-default-small .jstree-icon:empty { width: 18px; height: 18px; line-height: 18px; } .jstree-default-small.jstree-rtl .jstree-node { margin-right: 18px; } .jstree-default-small .jstree-wholerow { height: 18px; } .jstree-default-small .jstree-node, .jstree-default-small .jstree-icon { background-image: url("32px.png"); } .jstree-default-small .jstree-node { background-position: -295px -7px; background-repeat: repeat-y; } .jstree-default-small .jstree-last { background: transparent; } .jstree-default-small .jstree-open > .jstree-ocl { background-position: -135px -7px; } .jstree-default-small .jstree-closed > .jstree-ocl { background-position: -103px -7px; } .jstree-default-small .jstree-leaf > .jstree-ocl { background-position: -71px -7px; } .jstree-default-small .jstree-themeicon { background-position: -263px -7px; } .jstree-default-small > .jstree-no-dots .jstree-node, .jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { background: transparent; } .jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { background-position: -39px -7px; } .jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { background-position: -7px -7px; } .jstree-default-small .jstree-disabled { background: transparent; } .jstree-default-small .jstree-disabled.jstree-hovered { background: transparent; } .jstree-default-small .jstree-disabled.jstree-clicked { background: #efefef; } .jstree-default-small .jstree-checkbox { background-position: -167px -7px; } .jstree-default-small .jstree-checkbox:hover { background-position: -167px -39px; } .jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, .jstree-default-small .jstree-checked > .jstree-checkbox { background-position: -231px -7px; } .jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, .jstree-default-small .jstree-checked > .jstree-checkbox:hover { background-position: -231px -39px; } .jstree-default-small .jstree-anchor > .jstree-undetermined { background-position: -199px -7px; } .jstree-default-small .jstree-anchor > .jstree-undetermined:hover { background-position: -199px -39px; } .jstree-default-small .jstree-checkbox-disabled { opacity: 0.8; filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); /* Firefox 10+ */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */ } .jstree-default-small > .jstree-striped { background-size: auto 36px; } .jstree-default-small.jstree-rtl .jstree-node { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); background-position: 100% 1px; background-repeat: repeat-y; } .jstree-default-small.jstree-rtl .jstree-last { background: transparent; } .jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { background-position: -135px -39px; } .jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { background-position: -103px -39px; } .jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { background-position: -71px -39px; } .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { background: transparent; } .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { background-position: -39px -39px; } .jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { background-position: -7px -39px; } .jstree-default-small .jstree-themeicon-custom { background-color: transparent; background-image: none; background-position: 0 0; } .jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { background: url("throbber.gif") center center no-repeat; } .jstree-default-small .jstree-file { background: url("32px.png") -103px -71px no-repeat; } .jstree-default-small .jstree-folder { background: url("32px.png") -263px -7px no-repeat; } .jstree-default-small > .jstree-container-ul > .jstree-node { margin-left: 0; margin-right: 0; } #jstree-dnd.jstree-default-small { line-height: 18px; padding: 0 4px; } #jstree-dnd.jstree-default-small .jstree-ok, #jstree-dnd.jstree-default-small .jstree-er { background-image: url("32px.png"); background-repeat: no-repeat; background-color: transparent; } #jstree-dnd.jstree-default-small i { background: transparent; width: 18px; height: 18px; line-height: 18px; } #jstree-dnd.jstree-default-small .jstree-ok { background-position: -7px -71px; } #jstree-dnd.jstree-default-small .jstree-er { background-position: -39px -71px; } .jstree-default-small .jstree-ellipsis { overflow: hidden; } .jstree-default-small .jstree-ellipsis .jstree-anchor { width: calc(100% - 23px); text-overflow: ellipsis; overflow: hidden; } .jstree-default-small.jstree-rtl .jstree-node { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); } .jstree-default-small.jstree-rtl .jstree-last { background: transparent; } .jstree-default-large .jstree-node { min-height: 32px; line-height: 32px; margin-left: 32px; min-width: 32px; } .jstree-default-large .jstree-anchor { line-height: 32px; height: 32px; } .jstree-default-large .jstree-icon { width: 32px; height: 32px; line-height: 32px; } .jstree-default-large .jstree-icon:empty { width: 32px; height: 32px; line-height: 32px; } .jstree-default-large.jstree-rtl .jstree-node { margin-right: 32px; } .jstree-default-large .jstree-wholerow { height: 32px; } .jstree-default-large .jstree-node, .jstree-default-large .jstree-icon { background-image: url("32px.png"); } .jstree-default-large .jstree-node { background-position: -288px 0px; background-repeat: repeat-y; } .jstree-default-large .jstree-last { background: transparent; } .jstree-default-large .jstree-open > .jstree-ocl { background-position: -128px 0px; } .jstree-default-large .jstree-closed > .jstree-ocl { background-position: -96px 0px; } .jstree-default-large .jstree-leaf > .jstree-ocl { background-position: -64px 0px; } .jstree-default-large .jstree-themeicon { background-position: -256px 0px; } .jstree-default-large > .jstree-no-dots .jstree-node, .jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { background: transparent; } .jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { background-position: -32px 0px; } .jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { background-position: 0px 0px; } .jstree-default-large .jstree-disabled { background: transparent; } .jstree-default-large .jstree-disabled.jstree-hovered { background: transparent; } .jstree-default-large .jstree-disabled.jstree-clicked { background: #efefef; } .jstree-default-large .jstree-checkbox { background-position: -160px 0px; } .jstree-default-large .jstree-checkbox:hover { background-position: -160px -32px; } .jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, .jstree-default-large .jstree-checked > .jstree-checkbox { background-position: -224px 0px; } .jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, .jstree-default-large .jstree-checked > .jstree-checkbox:hover { background-position: -224px -32px; } .jstree-default-large .jstree-anchor > .jstree-undetermined { background-position: -192px 0px; } .jstree-default-large .jstree-anchor > .jstree-undetermined:hover { background-position: -192px -32px; } .jstree-default-large .jstree-checkbox-disabled { opacity: 0.8; filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); /* Firefox 10+ */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */ } .jstree-default-large > .jstree-striped { background-size: auto 64px; } .jstree-default-large.jstree-rtl .jstree-node { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); background-position: 100% 1px; background-repeat: repeat-y; } .jstree-default-large.jstree-rtl .jstree-last { background: transparent; } .jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { background-position: -128px -32px; } .jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { background-position: -96px -32px; } .jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { background-position: -64px -32px; } .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { background: transparent; } .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { background-position: -32px -32px; } .jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { background-position: 0px -32px; } .jstree-default-large .jstree-themeicon-custom { background-color: transparent; background-image: none; background-position: 0 0; } .jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { background: url("throbber.gif") center center no-repeat; } .jstree-default-large .jstree-file { background: url("32px.png") -96px -64px no-repeat; } .jstree-default-large .jstree-folder { background: url("32px.png") -256px 0px no-repeat; } .jstree-default-large > .jstree-container-ul > .jstree-node { margin-left: 0; margin-right: 0; } #jstree-dnd.jstree-default-large { line-height: 32px; padding: 0 4px; } #jstree-dnd.jstree-default-large .jstree-ok, #jstree-dnd.jstree-default-large .jstree-er { background-image: url("32px.png"); background-repeat: no-repeat; background-color: transparent; } #jstree-dnd.jstree-default-large i { background: transparent; width: 32px; height: 32px; line-height: 32px; } #jstree-dnd.jstree-default-large .jstree-ok { background-position: 0px -64px; } #jstree-dnd.jstree-default-large .jstree-er { background-position: -32px -64px; } .jstree-default-large .jstree-ellipsis { overflow: hidden; } .jstree-default-large .jstree-ellipsis .jstree-anchor { width: calc(100% - 37px); text-overflow: ellipsis; overflow: hidden; } .jstree-default-large.jstree-rtl .jstree-node { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); } .jstree-default-large.jstree-rtl .jstree-last { background: transparent; } @media (max-width: 768px) { #jstree-dnd.jstree-dnd-responsive { line-height: 40px; font-weight: bold; font-size: 1.1em; text-shadow: 1px 1px white; } #jstree-dnd.jstree-dnd-responsive > i { background: transparent; width: 40px; height: 40px; } #jstree-dnd.jstree-dnd-responsive > .jstree-ok { background-image: url("40px.png"); background-position: 0 -200px; background-size: 120px 240px; } #jstree-dnd.jstree-dnd-responsive > .jstree-er { background-image: url("40px.png"); background-position: -40px -200px; background-size: 120px 240px; } #jstree-marker.jstree-dnd-responsive { border-left-width: 10px; border-top-width: 10px; border-bottom-width: 10px; margin-top: -10px; } } @media (max-width: 768px) { .jstree-default-responsive { /* .jstree-open > .jstree-ocl, .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } */ } .jstree-default-responsive .jstree-icon { background-image: url("40px.png"); } .jstree-default-responsive .jstree-node, .jstree-default-responsive .jstree-leaf > .jstree-ocl { background: transparent; } .jstree-default-responsive .jstree-node { min-height: 40px; line-height: 40px; margin-left: 40px; min-width: 40px; white-space: nowrap; } .jstree-default-responsive .jstree-anchor { line-height: 40px; height: 40px; } .jstree-default-responsive .jstree-icon, .jstree-default-responsive .jstree-icon:empty { width: 40px; height: 40px; line-height: 40px; } .jstree-default-responsive > .jstree-container-ul > .jstree-node { margin-left: 0; } .jstree-default-responsive.jstree-rtl .jstree-node { margin-left: 0; margin-right: 40px; background: transparent; } .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { margin-right: 0; } .jstree-default-responsive .jstree-ocl, .jstree-default-responsive .jstree-themeicon, .jstree-default-responsive .jstree-checkbox { background-size: 120px 240px; } .jstree-default-responsive .jstree-leaf > .jstree-ocl, .jstree-default-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { background: transparent; } .jstree-default-responsive .jstree-open > .jstree-ocl { background-position: 0 0 !important; } .jstree-default-responsive .jstree-closed > .jstree-ocl { background-position: 0 -40px !important; } .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { background-position: -40px 0 !important; } .jstree-default-responsive .jstree-themeicon { background-position: -40px -40px; } .jstree-default-responsive .jstree-checkbox, .jstree-default-responsive .jstree-checkbox:hover { background-position: -40px -80px; } .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, .jstree-default-responsive .jstree-checked > .jstree-checkbox, .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { background-position: 0 -80px; } .jstree-default-responsive .jstree-anchor > .jstree-undetermined, .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { background-position: 0 -120px; } .jstree-default-responsive .jstree-anchor { font-weight: bold; font-size: 1.1em; text-shadow: 1px 1px white; } .jstree-default-responsive > .jstree-striped { background: transparent; } .jstree-default-responsive .jstree-wholerow { border-top: 1px solid rgba(255, 255, 255, 0.7); border-bottom: 1px solid rgba(64, 64, 64, 0.2); background: #ebebeb; height: 40px; } .jstree-default-responsive .jstree-wholerow-hovered { background: #e7f4f9; } .jstree-default-responsive .jstree-wholerow-clicked { background: #beebff; } .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { box-shadow: inset 0 -6px 3px -5px #666666; } .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { box-shadow: inset 0 6px 3px -5px #666666; border-top: 0; } .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { box-shadow: none; } .jstree-default-responsive .jstree-node, .jstree-default-responsive .jstree-icon, .jstree-default-responsive .jstree-node > .jstree-ocl, .jstree-default-responsive .jstree-themeicon, .jstree-default-responsive .jstree-checkbox { background-image: url("40px.png"); background-size: 120px 240px; } .jstree-default-responsive .jstree-node { background-position: -80px 0; background-repeat: repeat-y; } .jstree-default-responsive .jstree-last { background: transparent; } .jstree-default-responsive .jstree-leaf > .jstree-ocl { background-position: -40px -120px; } .jstree-default-responsive .jstree-last > .jstree-ocl { background-position: -40px -160px; } .jstree-default-responsive .jstree-themeicon-custom { background-color: transparent; background-image: none; background-position: 0 0; } .jstree-default-responsive .jstree-file { background: url("40px.png") 0 -160px no-repeat; background-size: 120px 240px; } .jstree-default-responsive .jstree-folder { background: url("40px.png") -40px -40px no-repeat; background-size: 120px 240px; } .jstree-default-responsive > .jstree-container-ul > .jstree-node { margin-left: 0; margin-right: 0; } } MediaConch/Source/Resource/html/css/jstree.min.css0000644000000000000000000006522114640052500021123 0ustar rootroot.jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:black;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jstree-contextmenu .jstree-anchor{-webkit-user-select:none;-webkit-touch-callout:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em 0 2em;text-decoration:none;width:auto;color:black;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 white;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==");background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:white;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context .vakata-contextmenu-disabled>a>i{filter:grayscale(100%)}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:transparent;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:white;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7");background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:white;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px 0 2px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-animated,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #cccccc}.jstree-default .jstree-context{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #cccccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{background:transparent;color:#666666}.jstree-default .jstree-disabled.jstree-hovered{background:transparent;box-shadow:none}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:bold}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none !important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:transparent;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:transparent}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-default>.jstree-striped{min-width:100%;display:inline-block;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat}.jstree-default>.jstree-wholerow-ul .jstree-hovered,.jstree-default>.jstree-wholerow-ul .jstree-clicked{background:transparent;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-webkit-linear-gradient(top, #beebff 0, #a8e4ff 100%);background:linear-gradient(to bottom, #beebff 0, #a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px}.jstree-default .jstree-wholerow{height:24px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-image:url("32px.png")}.jstree-default .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-last{background:transparent}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-node,.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled{background:transparent}.jstree-default .jstree-disabled.jstree-hovered{background:transparent}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-last{background:transparent}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("throbber.gif") center center no-repeat}.jstree-default .jstree-file{background:url("32px.png") -100px -68px no-repeat}.jstree-default .jstree-folder{background:url("32px.png") -260px -4px no-repeat}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default .jstree-ok,#jstree-dnd.jstree-default .jstree-er{background-image:url("32px.png");background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:transparent;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default .jstree-er{background-position:-36px -68px}.jstree-default .jstree-ellipsis{overflow:hidden}.jstree-default .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==")}.jstree-default.jstree-rtl .jstree-last{background:transparent}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-node,.jstree-default-small .jstree-icon{background-image:url("32px.png")}.jstree-default-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-last{background:transparent}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-node,.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled{background:transparent}.jstree-default-small .jstree-disabled.jstree-hovered{background:transparent}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-last{background:transparent}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("throbber.gif") center center no-repeat}.jstree-default-small .jstree-file{background:url("32px.png") -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url("32px.png") -263px -7px no-repeat}.jstree-default-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-small .jstree-ok,#jstree-dnd.jstree-default-small .jstree-er{background-image:url("32px.png");background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-small i{background:transparent;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-small .jstree-er{background-position:-39px -71px}.jstree-default-small .jstree-ellipsis{overflow:hidden}.jstree-default-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-small.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==")}.jstree-default-small.jstree-rtl .jstree-last{background:transparent}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-node,.jstree-default-large .jstree-icon{background-image:url("32px.png")}.jstree-default-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-last{background:transparent}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-node,.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled{background:transparent}.jstree-default-large .jstree-disabled.jstree-hovered{background:transparent}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==");background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-last{background:transparent}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url("throbber.gif") center center no-repeat}.jstree-default-large .jstree-file{background:url("32px.png") -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url("32px.png") -256px 0 no-repeat}.jstree-default-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-large .jstree-ok,#jstree-dnd.jstree-default-large .jstree-er{background-image:url("32px.png");background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-large i{background:transparent;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-large .jstree-er{background-position:-32px -64px}.jstree-default-large .jstree-ellipsis{overflow:hidden}.jstree-default-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-large.jstree-rtl .jstree-node{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==")}.jstree-default-large.jstree-rtl .jstree-last{background:transparent}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:bold;font-size:1.1em;text-shadow:1px 1px white}#jstree-dnd.jstree-dnd-responsive>i{background:transparent;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url("40px.png");background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url("40px.png");background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-responsive .jstree-icon{background-image:url("40px.png")}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:transparent}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:transparent}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0 !important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px !important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0 !important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive .jstree-anchor{font-weight:bold;font-size:1.1em;text-shadow:1px 1px white}.jstree-default-responsive>.jstree-striped{background:transparent}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,0.7);border-bottom:1px solid rgba(64,64,64,0.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-image:url("40px.png");background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:transparent}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url("40px.png") 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url("40px.png") -40px -40px no-repeat;background-size:120px 240px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}MediaConch/Source/Resource/html/css/main-gui.css0000644000000000000000000000054714640052500020553 0ustar rootroot/* MC-GUI specific CSS */ .navbar-default .navbar-brand, .navbar-default .navbar-brand:hover { color: inherit; } .policyPushContainer { margin-top: 10px; } .containerAutoWidth { position: relative; } .contentAutoWidth { position: absolute; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } MediaConch/Source/Resource/html/css/main.css0000644000000000000000000001513314640052500017766 0ustar rootroothtml, body { height: 100%; } body { font-family: OpenSans; padding-top: 70px; } footer { border-top: 6px solid #3472A1; border-bottom: 2px solid #3472A1; } footer .navbar { padding-right: 0; } .navbar { border: 0px; } .navbar-default { background-color: #fff; } .navbar-right { margin-right: 0; } .navbar-default .navbar-collapse { border-top: 6px solid #3472A1; margin-bottom: 0px; border-bottom: 2px solid #3472A1; } .navbar-default .navbar-nav > li > a, .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:focus, .navbar-default .navbar-nav > .open > a:hover, .navbar-default a.navbar-brand, .navbar a { color: black; } .navbar-default .navbar li { border-left: 1px solid #3472A1; border-right: 1px solid #3472A1; padding: 5px; color: black; padding-top: 6px; padding-bottom: 6px; } .navbar-collapse.collapse.in .navbar li { border: none; } .navbar-default .navbar ul.dropdown-menu li { border-left: none; border-right: none; } .navbar > .container .navbar-brand { padding: 0; margin-left: 20px; margin-top: 5px; } @media (min-width: 768px) { .navbar > .container .navbar-brand { margin-top: 15px; } } .navbar-brand img { display: inline; } footer .navbar { margin-bottom: 0; } .serif { font-family: Merriweather; font-size: 24px; line-height: 48px; color: black; } .headline { font-family: Merriweather; font-weight: 700; line-height: 1; font-size: 60px; } .tagline { font-size: 30px; line-height: 1.4; padding-bottom: 40px; } .button-padding { padding-bottom: 160px; } .content { padding-top: 25px; background-color: #F2F5F8; padding-bottom: 30px; } .content .col-lg-offset-1 { margin-left: 4.16666667%; } .main { padding-left: 30px; padding-right: 30px; } .panel { background-color: #F5F5F5; } .panel-default > .panel-heading { background-color: #64A8DD; } .panel-title { font-weight: bold; font-size: 20px; } .panel-collapse { padding: 10px; } .btn { color: black; font-size: 16px; } #checkerResults { padding-right: 0; padding-left: 0; } #checkerResultTitle button { padding-right: 15px; } .checker-results .btn { font-size: 14px; line-height: 16px; border: 0px; padding: 0; } .dropdown-menu { width: auto; height: auto; } .checker-results .btn.result-close { padding: 0 0 0 10px; } #result-table td p { margin: 0; } @media (max-width: 1199px) { .status-text { display: none; } } .statusButton { display: inline-block; } .tab-pane { background-color: #F5F5F5; padding-top: 10px; } .tab-pane .form-horizontal .control-label { text-align: left; } #file label.col-sm-2, #url label.col-sm-2, #repository label.col-sm-2, #file label.col-sm-3, #url label.col-sm-3, #repository label.col-sm-3 { padding-right: 0; padding-left: 0; } #file, #url, #repository { padding-right: 0; } .results-dld, .implem-dld, .policy-dld, .mi-dld, .mt-dld { margin-left: 10px; } .modal-body p { font-family: monospace; } #checkerResultTitle h2 { display: inline-block; } #fos_user_registration_form .required:after, #fos_user_profile_form .required:after, #xslPolicyRule .required:after { content: " *"; } p.registration { margin-top: 12px; } .alert { margin-top: 20px; } .jstreeSearch { box-shadow: inset 0 0 4px #eee; width: 110px; margin: 0 2px; padding: 6px; border-radius: 4px; border: 1px solid silver; font-size: 1.1em; } #policyFix { width: 370px; } #xslPolicyRule_editor { display: inline-block; margin-left: 10px; } #xslPolicyRule_editor .radio { display: inline-block; margin: 0 10px 0 0; } .xslPolicyRuleSaveButton { display: inline-block; } .xslPolicyRuleDuplicateButton, .xslPolicyRuleDeleteButton { display: inline-block; margin-left: 30px; } .policyEditActions .btn + .btn { margin-left: 30px; } .panel-body a button.pull-right { margin-left: 10px; } #policyInfo { height: 72px; margin-top: -50px; } #policyInfo .alert { margin-top: 0; } .policyRightCol { min-height: 600px; } #policyRuleCreateContainer { padding-bottom: 50px; } .policyEditRule .btn-group > .btn:first-child { margin-left: 15px; } .spinner-cell, .spinner-status, .spinner-policy { background: transparent url("qrc:/ajax-spinner-small.gif"); width: 16px; height: 14px; display: block; margin: 0 auto; } .spinner-status, .spinner-policy { display: inline-block; } .spinner-policy { margin-left: 10px; } .spinner-modal { background: transparent url("qrc:/ajax-spinner-big.gif"); width: 66px; height: 66px; display: block; margin: 0 auto; } .alert-modal-create-policy { display: inline-block; margin-top: 0; margin-bottom: inherit; font-size: 16px; padding: 6px 12px; line-height: 1.42857143; } .alert-modal-create-policy a { text-decoration: underline; } .policiesList .col-xs-12 .policyBox { border: 1px solid #ddd; padding: 15px 30px; font-size: 14px; line-height: 1.1; border-radius: 4px; display: block; background-color: ghostwhite; margin-bottom: 20px; } .policiesList .col-xs-12 .policyBox.policyBoxDisabled { } .policyBox h4 { margin-top: 0; text-align: center; word-wrap: break-word; } .policyBox h4 a:hover { text-decoration: none; } .policyBox .policyDescription { color: #808080; display: block; text-align: justify; } .policyBox .policyInfos { color: #808080; margin-top: 10px; } .policyBox .policyAuthor, .policyBox .policyLicense { display: block; } .policyBox .policyActions { margin-top: 20px; } #policyTree .popover-content ul, .policyEdit .popover-content ul { padding-left: 14px; list-style-type: initial; } .popover-content footer { border-top: 1px solid #ccc; border-bottom: none; margin-top: 10px; padding-top: 10px; } .popover-content { word-wrap: break-word; } .modal-header .mi-dld { margin-right: 0; } .modal-header .mi-dld-group, .modal-footer .mi-dld-group { margin-left: 10px; margin-right: 10px; } .modal-body .jstree-default .jstree-anchor { line-height: 20px; height: 20px; } .modal-body .jstree-default .jstree-icon:empty { height: 20px; line-height: 20px; width: 20px; } .modal-body .jstree-default .jstree-node { min-height: 20px; line-height: 20px; } .jstree-grid-cell-regular.jstree-animated { line-height: 20px; height: 20px; } MediaConch/Source/Resource/html/css/select2-bootstrap.css0000644000000000000000000005365514640052500022431 0ustar rootroot/*! Select2 Bootstrap Theme v0.1.0-beta.7 | MIT License | github.com/select2/select2-bootstrap-theme */ .select2-container--bootstrap { display: block; /*------------------------------------*\ #COMMON STYLES \*------------------------------------*/ /** * Search field in the Select2 dropdown. */ /** * No outline for all search fields - in the dropdown * and inline in multi Select2s. */ /** * Adjust Select2's choices hover and selected styles to match * Bootstrap 3's default dropdown styles. * * @see http://getbootstrap.com/components/#dropdowns */ /** * Clear the selection. */ /** * Address disabled Select2 styles. * * @see https://select2.github.io/examples.html#disabled * @see http://getbootstrap.com/css/#forms-control-disabled */ /*------------------------------------*\ #DROPDOWN \*------------------------------------*/ /** * Dropdown border color and box-shadow. */ /** * Limit the dropdown height. */ /*------------------------------------*\ #SINGLE SELECT2 \*------------------------------------*/ /*------------------------------------*\ #MULTIPLE SELECT2 \*------------------------------------*/ /** * Address Bootstrap control sizing classes * * 1. Reset Bootstrap defaults. * 2. Adjust the dropdown arrow button icon position. * * @see http://getbootstrap.com/css/#forms-control-sizes */ /* 1 */ /*------------------------------------*\ #RTL SUPPORT \*------------------------------------*/ } .select2-container--bootstrap .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); background-color: #fff; border: 1px solid #ccc; border-radius: 4px; color: #555555; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; outline: 0; } .select2-container--bootstrap .select2-selection.form-control { border-radius: 4px; } .select2-container--bootstrap .select2-search--dropdown .select2-search__field { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); background-color: #fff; border: 1px solid #ccc; border-radius: 4px; color: #555555; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; } .select2-container--bootstrap .select2-search__field { outline: 0; /* Firefox 18- */ /** * Firefox 19+ * * @see http://stackoverflow.com/questions/24236240/color-for-styled-placeholder-text-is-muted-in-firefox */ } .select2-container--bootstrap .select2-search__field::-webkit-input-placeholder { color: #999; } .select2-container--bootstrap .select2-search__field:-moz-placeholder { color: #999; } .select2-container--bootstrap .select2-search__field::-moz-placeholder { color: #999; opacity: 1; } .select2-container--bootstrap .select2-search__field:-ms-input-placeholder { color: #999; } .select2-container--bootstrap .select2-results__option { /** * Disabled results. * * @see https://select2.github.io/examples.html#disabled-results */ /** * Hover state. */ /** * Selected state. */ } .select2-container--bootstrap .select2-results__option[role=group] { padding: 0; } .select2-container--bootstrap .select2-results__option[aria-disabled=true] { color: #777777; cursor: not-allowed; } .select2-container--bootstrap .select2-results__option[aria-selected=true] { background-color: #f5f5f5; color: #262626; } .select2-container--bootstrap .select2-results__option--highlighted[aria-selected] { background-color: #337ab7; color: #fff; } .select2-container--bootstrap .select2-results__option .select2-results__option { padding: 6px 12px; } .select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__group { padding-left: 0; } .select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option { margin-left: -12px; padding-left: 24px; } .select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option { margin-left: -24px; padding-left: 36px; } .select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { margin-left: -36px; padding-left: 48px; } .select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { margin-left: -48px; padding-left: 60px; } .select2-container--bootstrap .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { margin-left: -60px; padding-left: 72px; } .select2-container--bootstrap .select2-results__group { color: #777777; display: block; padding: 6px 12px; font-size: 12px; line-height: 1.428571429; white-space: nowrap; } .select2-container--bootstrap.select2-container--focus .select2-selection, .select2-container--bootstrap.select2-container--open .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; -webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s; border-color: #66afe9; } .select2-container--bootstrap.select2-container--open { /** * Make the dropdown arrow point up while the dropdown is visible. */ /** * Handle border radii of the container when the dropdown is showing. */ } .select2-container--bootstrap.select2-container--open .select2-selection .select2-selection__arrow b { border-color: transparent transparent #999 transparent; border-width: 0 4px 4px 4px; } .select2-container--bootstrap.select2-container--open.select2-container--below .select2-selection { border-bottom-right-radius: 0; border-bottom-left-radius: 0; border-bottom-color: transparent; } .select2-container--bootstrap.select2-container--open.select2-container--above .select2-selection { border-top-right-radius: 0; border-top-left-radius: 0; border-top-color: transparent; } .select2-container--bootstrap .select2-selection__clear { color: #999; cursor: pointer; float: right; font-weight: bold; margin-right: 10px; } .select2-container--bootstrap .select2-selection__clear:hover { color: #333; } .select2-container--bootstrap.select2-container--disabled .select2-selection { border-color: #ccc; -webkit-box-shadow: none; box-shadow: none; } .select2-container--bootstrap.select2-container--disabled .select2-selection, .select2-container--bootstrap.select2-container--disabled .select2-search__field { cursor: not-allowed; } .select2-container--bootstrap.select2-container--disabled .select2-selection, .select2-container--bootstrap.select2-container--disabled .select2-selection--multiple .select2-selection__choice { background-color: #eeeeee; } .select2-container--bootstrap.select2-container--disabled .select2-selection__clear, .select2-container--bootstrap.select2-container--disabled .select2-selection--multiple .select2-selection__choice__remove { display: none; } .select2-container--bootstrap .select2-dropdown { -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); border-color: #66afe9; overflow-x: hidden; margin-top: -1px; } .select2-container--bootstrap .select2-dropdown--above { margin-top: 1px; } .select2-container--bootstrap .select2-results > .select2-results__options { max-height: 200px; overflow-y: auto; } .select2-container--bootstrap .select2-selection--single { height: 34px; line-height: 1.428571429; padding: 6px 24px 6px 12px; /** * Adjust the single Select2's dropdown arrow button appearance. */ } .select2-container--bootstrap .select2-selection--single .select2-selection__arrow { position: absolute; bottom: 0; right: 12px; top: 0; width: 4px; } .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { border-color: #999 transparent transparent transparent; border-style: solid; border-width: 4px 4px 0 4px; height: 0; left: 0; margin-left: -4px; margin-top: -2px; position: absolute; top: 50%; width: 0; } .select2-container--bootstrap .select2-selection--single .select2-selection__rendered { color: #555555; padding: 0; } .select2-container--bootstrap .select2-selection--single .select2-selection__placeholder { color: #999; } .select2-container--bootstrap .select2-selection--multiple { min-height: 34px; padding: 0; height: auto; /** * Make Multi Select2's choices match Bootstrap 3's default button styles. */ /** * Minus 2px borders. */ /** * Clear the selection. */ } .select2-container--bootstrap .select2-selection--multiple .select2-selection__rendered { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; display: block; line-height: 1.428571429; list-style: none; margin: 0; overflow: hidden; padding: 0; width: 100%; text-overflow: ellipsis; white-space: nowrap; } .select2-container--bootstrap .select2-selection--multiple .select2-selection__placeholder { color: #999; float: left; margin-top: 5px; } .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { color: #555555; background: #fff; border: 1px solid #ccc; border-radius: 4px; cursor: default; float: left; margin: 5px 0 0 6px; padding: 0 6px; } .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { background: transparent; padding: 0 12px; height: 32px; line-height: 1.428571429; margin-top: 0; min-width: 5em; } .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove { color: #999; cursor: pointer; display: inline-block; font-weight: bold; margin-right: 3px; } .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice__remove:hover { color: #333; } .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { margin-top: 6px; } .select2-container--bootstrap .select2-selection--single.input-sm, .input-group-sm .select2-container--bootstrap .select2-selection--single, .form-group-sm .select2-container--bootstrap .select2-selection--single { border-radius: 3px; font-size: 12px; height: 30px; line-height: 1.5; padding: 5px 22px 5px 10px; /* 2 */ } .select2-container--bootstrap .select2-selection--single.input-sm .select2-selection__arrow b, .input-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b, .form-group-sm .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { margin-left: -5px; } .select2-container--bootstrap .select2-selection--multiple.input-sm, .input-group-sm .select2-container--bootstrap .select2-selection--multiple, .form-group-sm .select2-container--bootstrap .select2-selection--multiple { min-height: 30px; border-radius: 3px; } .select2-container--bootstrap .select2-selection--multiple.input-sm .select2-selection__choice, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { font-size: 12px; line-height: 1.5; margin: 4px 0 0 5px; padding: 0 5px; } .select2-container--bootstrap .select2-selection--multiple.input-sm .select2-search--inline .select2-search__field, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { padding: 0 10px; font-size: 12px; height: 28px; line-height: 1.5; } .select2-container--bootstrap .select2-selection--multiple.input-sm .select2-selection__clear, .input-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, .form-group-sm .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { margin-top: 5px; } .select2-container--bootstrap .select2-selection--single.input-lg, .input-group-lg .select2-container--bootstrap .select2-selection--single, .form-group-lg .select2-container--bootstrap .select2-selection--single { border-radius: 6px; font-size: 18px; height: 46px; line-height: 1.3333333; padding: 10px 31px 10px 16px; /* 1 */ } .select2-container--bootstrap .select2-selection--single.input-lg .select2-selection__arrow, .input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow, .form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow { width: 5px; } .select2-container--bootstrap .select2-selection--single.input-lg .select2-selection__arrow b, .input-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b, .form-group-lg .select2-container--bootstrap .select2-selection--single .select2-selection__arrow b { border-width: 5px 5px 0 5px; margin-left: -5px; margin-left: -10px; margin-top: -2.5px; } .select2-container--bootstrap .select2-selection--multiple.input-lg, .input-group-lg .select2-container--bootstrap .select2-selection--multiple, .form-group-lg .select2-container--bootstrap .select2-selection--multiple { min-height: 46px; border-radius: 6px; } .select2-container--bootstrap .select2-selection--multiple.input-lg .select2-selection__choice, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__choice { font-size: 18px; line-height: 1.3333333; border-radius: 4px; margin: 9px 0 0 8px; padding: 0 10px; } .select2-container--bootstrap .select2-selection--multiple.input-lg .select2-search--inline .select2-search__field, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-search--inline .select2-search__field { padding: 0 16px; font-size: 18px; height: 44px; line-height: 1.3333333; } .select2-container--bootstrap .select2-selection--multiple.input-lg .select2-selection__clear, .input-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear, .form-group-lg .select2-container--bootstrap .select2-selection--multiple .select2-selection__clear { margin-top: 10px; } .select2-container--bootstrap .select2-selection.input-lg.select2-container--open .select2-selection--single { /** * Make the dropdown arrow point up while the dropdown is visible. */ } .select2-container--bootstrap .select2-selection.input-lg.select2-container--open .select2-selection--single .select2-selection__arrow b { border-color: transparent transparent #999 transparent; border-width: 0 5px 5px 5px; } .input-group-lg .select2-container--bootstrap .select2-selection.select2-container--open .select2-selection--single { /** * Make the dropdown arrow point up while the dropdown is visible. */ } .input-group-lg .select2-container--bootstrap .select2-selection.select2-container--open .select2-selection--single .select2-selection__arrow b { border-color: transparent transparent #999 transparent; border-width: 0 5px 5px 5px; } .select2-container--bootstrap[dir="rtl"] { /** * Single Select2 * * 1. Makes sure that .select2-selection__placeholder is positioned * correctly. */ /** * Multiple Select2 */ } .select2-container--bootstrap[dir="rtl"] .select2-selection--single { padding-left: 24px; padding-right: 12px; } .select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__rendered { padding-right: 0; padding-left: 0; text-align: right; /* 1 */ } .select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__clear { float: left; } .select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__arrow { left: 12px; right: auto; } .select2-container--bootstrap[dir="rtl"] .select2-selection--single .select2-selection__arrow b { margin-left: 0; } .select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder { float: right; } .select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__choice { margin-left: 0; margin-right: 6px; } .select2-container--bootstrap[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { margin-left: 2px; margin-right: auto; } /*------------------------------------*\ #ADDITIONAL GOODIES \*------------------------------------*/ /** * Address Bootstrap's validation states * * If a Select2 widget parent has one of Bootstrap's validation state modifier * classes, adjust Select2's border colors and focus states accordingly. * You may apply said classes to the Select2 dropdown (body > .select2-container) * via JavaScript match Bootstraps' to make its styles match. * * @see http://getbootstrap.com/css/#forms-control-validation */ .has-warning .select2-dropdown, .has-warning .select2-selection { border-color: #8a6d3b; } .has-warning .select2-container--focus .select2-selection, .has-warning .select2-container--open .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; border-color: #66512c; } .has-warning.select2-drop-active { border-color: #66512c; } .has-warning.select2-drop-active.select2-drop.select2-drop-above { border-top-color: #66512c; } .has-error .select2-dropdown, .has-error .select2-selection { border-color: #a94442; } .has-error .select2-container--focus .select2-selection, .has-error .select2-container--open .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; border-color: #843534; } .has-error.select2-drop-active { border-color: #843534; } .has-error.select2-drop-active.select2-drop.select2-drop-above { border-top-color: #843534; } .has-success .select2-dropdown, .has-success .select2-selection { border-color: #3c763d; } .has-success .select2-container--focus .select2-selection, .has-success .select2-container--open .select2-selection { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; border-color: #2b542c; } .has-success.select2-drop-active { border-color: #2b542c; } .has-success.select2-drop-active.select2-drop.select2-drop-above { border-top-color: #2b542c; } /** * Select2 widgets in Bootstrap Input Groups * * When Select2 widgets are combined with other elements using Bootstraps * "Input Group" component, we don't want specific edges of the Select2 * container to have a border-radius. * * Use .select2-bootstrap-prepend and .select2-bootstrap-append on * a Bootstrap 3 .input-group to let the contained Select2 widget know which * edges should not be rounded as they are directly followed by another element. * * @see http://getbootstrap.com/components/#input-groups */ /** * Mimick Bootstraps .input-group .form-control styles. * * @see https://github.com/twbs/bootstrap/blob/master/less/input-groups.less */ .input-group .select2-container--bootstrap { display: table; table-layout: fixed; position: relative; z-index: 2; float: left; width: 100%; margin-bottom: 0; /** * Adjust z-index like Bootstrap does to show the focus-box-shadow * above appended buttons in .input-group and .form-group. */ } .input-group .select2-container--bootstrap.select2-container--open, .input-group .select2-container--bootstrap.select2-container--focus { z-index: 3; } .input-group.select2-bootstrap-prepend .select2-container--bootstrap .select2-selection { border-bottom-left-radius: 0; border-top-left-radius: 0; } .input-group.select2-bootstrap-append .select2-container--bootstrap .select2-selection { border-bottom-right-radius: 0; border-top-right-radius: 0; } /** * Adjust alignment of Bootstrap buttons in Bootstrap Input Groups to address * Multi Select2's height which - depending on how many elements have been selected - * may grow taller than its initial size. * * @see http://getbootstrap.com/components/#input-groups */ .select2-bootstrap-append .select2-container--bootstrap, .select2-bootstrap-append .input-group-btn, .select2-bootstrap-append .input-group-btn .btn, .select2-bootstrap-prepend .select2-container--bootstrap, .select2-bootstrap-prepend .input-group-btn, .select2-bootstrap-prepend .input-group-btn .btn { vertical-align: top; } /** * Temporary fix for https://github.com/select2/select2-bootstrap-theme/issues/9 * * Provides `!important` for certain properties of the class applied to the * original ` \ \ \ \ \ \ \ \ '); addSpinnerToModal(fileId); checkerAjax.implementationReport(fileId, nodeModal.data('display'), nodeModal.data('verbosity'), nodeModal.data('tool')); $('#modalConformance-' + fileId + ' .implem-dld').on('click', function(e) { e.preventDefault(); var modalDisplay = $('#modalConformanceDisplay-' + fileId).val(); var modalVerbosity = $('#modalConformanceVerbosity-' + fileId).val(); checkerAjax.downloadImplementationReportUrl(fileId, nodeModal.data('tool'), modalDisplay, modalVerbosity); }); // Update report when display is changed var displayList = $('.tab-content .active .displayList').clone(); displayList.attr('id', 'modalConformanceDisplay-' + fileId); displayList.find('option').prop('selected', false); displayList.find("option[value = '" + nodeModal.data('display') + "']").prop('selected', true); $('#modalConformanceDisplay-' + fileId).replaceWith(displayList); $('#modalConformanceDisplay-' + fileId).on('change', function(e) { var modalDisplay = $('#modalConformanceDisplay-' + fileId).val(); var modalVerbosity = $('#modalConformanceVerbosity-' + fileId).val(); addSpinnerToModal(fileId); checkerAjax.implementationReport(fileId, modalDisplay, modalVerbosity, nodeModal.data('tool')); }); // Update report when verbosity is changed var verbosityList = $('.tab-content .active .verbosityList').clone(); verbosityList.attr('id', 'modalConformanceVerbosity-' + fileId); verbosityList.find('option').prop('selected', false); verbosityList.find("option[value = '" + nodeModal.data('verbosity') + "']").prop('selected', true); $('#modalConformanceVerbosity-' + fileId).replaceWith(verbosityList); $('#modalConformanceVerbosity-' + fileId).on('change', function(e) { var modalDisplay = $('#modalConformanceDisplay-' + fileId).val(); var modalVerbosity = $('#modalConformanceVerbosity-' + fileId).val(); addSpinnerToModal(fileId); checkerAjax.implementationReport(fileId, modalDisplay, modalVerbosity, nodeModal.data('tool')); }); if (2 != nodeModal.data('tool')) { $('#modalConformance-' + fileId + ' .modal-implem-verbosity').hide(); } } }); nodeImplem.find('.implem-dld').on('click', function(e) { e.preventDefault(); var nodeDld = result.$('#result-' + fileId); checkerAjax.downloadImplementationReportUrl(fileId, nodeDld.data('tool'), nodeDld.data('display'), nodeDld.data('verbosity')); }); }; var error = function(fileId) { var nodeCell = result.$('#result-' + fileId); var nodeImplem = $(result.cell(nodeCell, 1).node()); nodeImplem.addClass('danger'); result.cell(nodeCell, 1).data(' Server Error') }; var addSpinnerToCell = function(fileId) { result.cell('#result-' + fileId, 1).data(''); }; var addSpinnerToModal = function(fileId) { $('#modalConformance-' + fileId + ' .modal-body').html(''); }; // Display report in the modal var displayReport = function(fileId, dataReport) { if (dataReport.isHtmlReport) { $('#modalConformance-' + fileId + ' .modal-body').html(dataReport.report); } else { $('#modalConformance-' + fileId + ' .modal-body').html('
');
            $('#modalConformance-' + fileId + ' .report-content').text(dataReport.report);
        }

        $('#modalConformance-' + fileId + ' .implem-dld').prop('disabled', false);
    };

    // Display report error in the modal
    var displayReportError = function(fileId) {
        $('#modalConformance-' + fileId + ' .modal-body').html('Error: the requested report can not be retrieved');

        $('#modalConformance-' + fileId + ' .implem-dld').prop('disabled', true);
    };

    var reset = function(fileId) {
        $(result.cell('#result-' + fileId, 1).node()).removeClass();
        $(result.cell('#result-' + fileId, 1).node()).empty();
    };

    var removeModalIfExists = function(fileId) {
        if ($('#modalConformance-' + fileId).length) {
            $('#modalConformance-' + fileId).remove();
        }
    };

    return {
        init: init,
        success: success,
        error: error,
        addSpinnerToCell: addSpinnerToCell,
        displayReport: displayReport,
        displayReportError: displayReportError,
        reset: reset,
        removeModalIfExists: removeModalIfExists,
    };
})();
MediaConch/Source/Resource/html/js/checker/cellMediaInfo.js0000644000000000000000000002255614640052500022620 0ustar  rootrootvar mediaInfoCell = (function() {
    var result;
    var init = function(table) {
        result = table;
    };

    var success = function(fileId) {
        var nodeMI = $(result.cell('#result-' + fileId, 3).node());
        nodeMI.addClass('text-center');
        result.cell('#result-' + fileId, 3).data('');

        nodeMI.find('.mi-view').on('click', function(e) {
            e.preventDefault();
            if (!$('#modalInfo-' + fileId).length) {
                $('.result-container').append(' \
                ');

                checkerAjax.getMediaInfoOutputList(fileId);
                displayTree(fileId);

                $('#modalInfo-' + fileId + ' .mi-dld').on('click', function(e) {
                    e.preventDefault();
                    checkerAjax.downloadReportUrl(fileId, 'mi', 'MIXML');
                });

                $('#modalInfo-' + fileId + ' .mi-select-output').on('click', 'li', function(e) {
                    e.preventDefault();
                    e.stopPropagation();
                    var output = e.currentTarget.getAttribute('data-name');
                    checkerAjax.downloadReportUrl(fileId, 'mi', output);
                });

                $('#modalInfo-' + fileId + ' .mi-create-report').on('click', function(e) {
                    e.preventDefault();
                    checkerAjax.createPolicyFromFileId(fileId);
                });
            }
        });

        nodeMI.find('.mi-dld').on('click', function(e) {
            e.preventDefault();
            checkerAjax.downloadReportUrl(fileId, 'mi');
        });
    };

    var updateOutputList = function(outputList, fileId) {
        for(index in outputList.output) {
            $('#modalInfo-' + fileId + ' .mi-select-output').append('
  • ' + outputList.output[index].desc + '
  • '); } }; var displayTree = function(fileId) { // Disable F2 shortcut (rename) in jstree, needs to be done before jstree initialization $('#info-' + fileId).on('keydown.jstree', '.jstree-anchor', function(event) { if (113 == event.keyCode) { event.stopImmediatePropagation(); return false; } }); $('#info-' + fileId).jstree({ core: { check_callback: function(operation, node, parent, position, more) { if (operation === 'copy_node' || operation === 'move_node') { return false; // disable copy and move } else { return true; } }, multiple: false, dblclick_toggle: false, data : function (obj, callback) { if (WEBMACHINE === 'WEB_MACHINE_KIT') { report = webpage.on_fill_mediainfo_report(fileId); callback.call(this, eval(report)); } else { webpage.on_fill_mediainfo_report(fileId, function (report) { callback.call(this, eval(report)); }); } } }, plugins: ['search', 'types', 'grid'], types: { default: {icon: 'glyphicon glyphicon-folder-open'}, block: {icon: 'glyphicon glyphicon-folder-open'}, data: {icon: 'glyphicon glyphicon-file'}, }, grid: { columns:[ {header: 'Key', tree: true}, {header: 'Value', value: 'dataValue'}, ], resizable: true, }, }); $('#info-' + fileId).on('ready.jstree', function() { var to = false; $('#infoSearch-' + fileId).keyup(function() { if(to) { clearTimeout(to); } to = setTimeout(function() { var v = $('#infoSearch-' + fileId).val(); $('#info-' + fileId).jstree(true).search(v); }, 250); }); }); $('#info-' + fileId).on('loaded.jstree', function(e, data) { data.instance.open_all(); }); $('#info-' + fileId).on('select_node.jstree', function(e, data) { data.instance.toggle_node(data.node); }); }; var createPolicySuccess = function(createPolicy, fileId) { if (createPolicy.result) { $('#modalInfo-' + fileId + ' .mi-create-report').fadeOut(200).replaceWith(''); // Add new policy to all select lists $('.policyList .userPolicy').each(function() { if ($(this).hasClass('hidden')) $(this).removeClass('hidden'); $(this).append(''); }); } else { $('#modalInfo-' + fileId + ' .mi-create-report').fadeOut(200).replaceWith(''); } } var createPolicyError = function(fileId) { $('#modalInfo-' + fileId + ' .mi-create-report').fadeOut(200).replaceWith(''); }; var reset = function(fileId) { $(result.cell('#result-' + fileId, 3).node()).empty(); }; var removeModalIfExists = function(fileId) { if ($('#modalInfo-' + fileId).length) { $('#modalInfo-' + fileId).remove(); } }; return { init: init, success: success, updateOutputList: updateOutputList, createPolicySuccess: createPolicySuccess, createPolicyError: createPolicyError, reset: reset, removeModalIfExists: removeModalIfExists, }; })(); MediaConch/Source/Resource/html/js/checker/cellMediaTrace.js0000644000000000000000000001361614640052500022760 0ustar rootrootvar mediaTraceCell = (function() { var result; var init = function(table) { result = table; }; var success = function(fileId) { nodeMT = $(result.cell('#result-' + fileId, 4).node()); nodeMT.addClass('text-center'); result.cell('#result-' + fileId, 4).data(''); nodeMT.find('.mt-view').on('click', function(e) { e.preventDefault(); if (!$('#modalTrace-' + fileId).length) { $('.result-container').append(' \ '); displayTree(fileId); $('#modalTrace-' + fileId + ' .mt-dld').on('click', function(e) { e.preventDefault(); checkerAjax.downloadReportUrl(fileId, 'mt'); }); } }); nodeMT.find('.mt-dld').on('click', function(e) { e.preventDefault(); checkerAjax.downloadReportUrl(fileId, 'mt'); }); }; var displayTree = function(fileId) { // Disable F2 shortcut (rename) in jstree, needs to be done before jstree initialization $('#trace-' + fileId).on('keydown.jstree', '.jstree-anchor', function(event) { if (113 == event.keyCode) { event.stopImmediatePropagation(); return false; } }); $('#trace-' + fileId).jstree({ core: { check_callback: function(operation, node, parent, position, more) { if (operation === 'copy_node' || operation === 'move_node') { return false; // disable copy and move } else { return true; } }, multiple: false, dblclick_toggle: false, data : function (obj, callback) { if (WEBMACHINE === 'WEB_MACHINE_KIT') { report = webpage.on_fill_mediatrace_report(fileId); callback.call(this, eval(report)); } else { webpage.on_fill_mediatrace_report(fileId, function (report) { callback.call(this, eval(report)); }); } } }, plugins: ['search', 'types', 'grid'], types: { default: {icon: 'glyphicon glyphicon-folder-open'}, block: {icon: 'glyphicon glyphicon-folder-open'}, data: {icon: 'glyphicon glyphicon-file'}, }, grid: { columns: [ {header: 'Offset', value: 'offset'}, {header: 'Key', tree: true}, {header: 'Value', value: 'dataValue'}, ], resizable: true, }, }); $('#trace-' + fileId).on('ready.jstree', function() { var to = false; $('#traceSearch-' + fileId).keyup(function() { if(to) { clearTimeout(to); } to = setTimeout(function() { var v = $('#traceSearch-' + fileId).val(); $('#trace-' + fileId).jstree(true).search(v); }, 250); }); }); $('#trace-' + fileId).on('loaded.jstree', function(e, data) { data.instance.get_container().find('li').each(function() { data.instance.open_node($(this)); }) }); $('#trace-' + fileId).on('select_node.jstree', function(e, data) { data.instance.toggle_node(data.node); }); }; var reset = function(fileId) { $(result.cell('#result-' + fileId, 4).node()).empty(); }; var removeModalIfExists = function(fileId) { if ($('#modalTrace-' + fileId).length) { $('#modalTrace-' + fileId).remove(); } }; return { init: init, success: success, reset: reset, removeModalIfExists: removeModalIfExists, }; })(); MediaConch/Source/Resource/html/js/checker/cellPolicy.js0000644000000000000000000002517414640052500022223 0ustar rootrootvar policyCell = (function() { var result; var init = function(table) { result = table; }; var success = function(data, fileId) { var nodeCell = result.$('#result-' + fileId); var nodePolicy = $(result.cell(nodeCell, 2).node()); var policyResultText = ''; if (data.valid) { nodePolicy.removeClass().addClass('success'); if (data.warn) { policyResultText += ' ' } else if (data.info) { policyResultText += ' ' } else { policyResultText += ' ' } } else { nodePolicy.removeClass().addClass('danger'); policyResultText += ' '; } policyResultText += '' + textUtils.truncate(nodeCell.data('policyName'), 28) + ''; policyResultText += ''; result.cell(nodeCell, 2).data('
    ' + policyResultText + '
    '); policyModal(fileId); }; var error = function(fileId) { var nodeCell = result.$('#result-' + fileId); var nodePolicy = $(result.cell(nodeCell, 2).node()); nodePolicy.addClass('danger'); result.cell(nodeCell, 2).data(' Server Error') }; var update = function(fileId, policyId) { removeModalIfExists(fileId); // Update cell if analysis of file is succeeded if ($(result.cell('#result-' + fileId, 5).node()).hasClass('success')) { if (policyId !== undefined && policyId !== "-1" && policyId !== -1 && result.$('#result-' + fileId).data('attachment') !== "true") { reset(fileId); addSpinnerToCell(fileId); checkerAjax.policyStatus(fileId, policyId); } else if (result.$('#result-' + fileId).data('attachment') == "true") { empty(fileId) } else { emptyWithModal(fileId) } } }; var empty = function(fileId) { var nodePolicy = $(result.cell('#result-' + fileId, 2).node()); nodePolicy.removeClass().addClass('info'); result.cell('#result-' + fileId, 2).data('
    N/A
    '); }; var emptyWithModal = function(fileId) { var nodePolicy = $(result.cell('#result-' + fileId, 2).node()); nodePolicy.removeClass().addClass('info'); result.cell('#result-' + fileId, 2).data('
    N/A
    '); policyModal(fileId); }; var policyModal = function(fileId) { var nodePolicy = $(result.cell('#result-' + fileId, 2).node()); nodePolicy.find('.policy-view').on('click', function(e) { e.preventDefault(); var nodeModal = result.$('#result-' + fileId); if (!$('#modalPolicy-' + fileId).length) { $('.result-container').append(' \ '); if (nodeModal.data('policy') !== undefined && nodeModal.data('policy') !== "-1" && nodeModal.data('policy') !== -1) { addSpinnerToModal(fileId); checkerAjax.policyReport(fileId, nodeModal.data('policy'), nodeModal.data('display')); } $('#modalPolicy-' + fileId + ' .policy-dld').on('click', function(e) { e.preventDefault(); var modalDisplay = $('#modalPolicyDisplay-' + fileId).val(); var modalPolicy = $('#modalPolicyPolicy-' + fileId).val(); if (modalPolicy) { checkerAjax.downloadPolicyReportUrl(fileId, modalPolicy, modalDisplay); } }); // Update report when display is changed var displayList = $('.tab-content .active .displayList').clone(); displayList.attr('id', 'modalPolicyDisplay-' + fileId); displayList.find('option').prop('selected', false); displayList.find("option[value = '" + nodeModal.data('display') + "']").prop('selected', true); $('#modalPolicyDisplay-' + fileId).replaceWith(displayList); $('#modalPolicyDisplay-' + fileId).on('change', function(e) { var modalDisplay = $('#modalPolicyDisplay-' + fileId).val(); var modalPolicy = $('#modalPolicyPolicy-' + fileId).val(); if (modalPolicy) { addSpinnerToModal(fileId); checkerAjax.policyReport(fileId, modalPolicy, modalDisplay); } else { $('#modalPolicy-' + fileId + ' .modal-body').empty(''); } }); // Update report when policy is changed var policyList = $('.tab-content .active .policyList').clone(); policyList.attr('id', 'modalPolicyPolicy-' + fileId); policyList.find('option').prop('selected', false); policyList.find("option[value = '" + nodeModal.data('policy') + "']").prop('selected', true); $('#modalPolicyPolicy-' + fileId).replaceWith(policyList); $('#modalPolicyPolicy-' + fileId).on('change', function(e) { var modalDisplay = $('#modalPolicyDisplay-' + fileId).val(); var modalPolicy = $('#modalPolicyPolicy-' + fileId).val(); if (modalPolicy) { addSpinnerToModal(fileId); checkerAjax.policyReport(fileId, modalPolicy, modalDisplay); } else { $('#modalPolicy-' + fileId + ' .modal-body').empty(''); } }); } }); nodePolicy.find('.policy-dld').on('click', function(e) { e.preventDefault(); var nodeDld = result.$('#result-' + fileId); checkerAjax.downloadPolicyReportUrl(fileId, nodeDld.data('policy'), nodeDld.data('display')); }); }; var addSpinnerToCell = function(fileId) { result.cell('#result-' + fileId, 2).data(''); }; var addSpinnerToModal = function(fileId) { $('#modalPolicy-' + fileId + ' .modal-body').html(''); }; // Display report in the modal var displayReport = function(fileId, dataReport) { if (dataReport.isHtmlReport) { $('#modalPolicy-' + fileId + ' .modal-body').html(dataReport.report); } else { $('#modalPolicy-' + fileId + ' .modal-body').html('
    ');
                $('#modalPolicy-' + fileId + ' .report-content').text(dataReport.report);
            }
    
            $('#modalPolicy-' + fileId + ' .policy-dld').prop('disabled', false);
        };
    
        // Display report error in the modal
        var displayReportError = function(fileId) {
            $('#modalPolicy-' + fileId + ' .modal-body').html('Error: the requested report can not be retrieved');
    
            $('#modalPolicy-' + fileId + ' .policy-dld').prop('disabled', true);
        };
    
        var reset = function(fileId) {
            $(result.cell('#result-' + fileId, 2).node()).removeClass();
            $(result.cell('#result-' + fileId, 2).node()).empty();
        };
    
        var removeModalIfExists = function(fileId) {
            if ($('#modalPolicy-' + fileId).length) {
                $('#modalPolicy-' + fileId).remove();
            }
        };
    
        return {
            init: init,
            success: success,
            error: error,
            update: update,
            empty: empty,
            emptyWithModal: emptyWithModal,
            addSpinnerToCell: addSpinnerToCell,
            displayReport: displayReport,
            displayReportError: displayReportError,
            reset: reset,
            removeModalIfExists: removeModalIfExists,
        };
    })();
    MediaConch/Source/Resource/html/js/checker/cellStatus.js0000644000000000000000000000375714640052500022252 0ustar  rootrootvar statusCell = (function() {
        var result;
        var init = function(table) {
            result = table;
        };
    
        var success = function(fileId) {
            var nodeStatus = $(result.cell('#result-' + fileId, 5).node());
            nodeStatus.removeClass('info danger checkInProgress').addClass('success');
            nodeStatus.find('.statusResult').html(' Analyzed');
            nodeStatus.find('.result-reload').removeClass('hidden');
        };
    
        var inProgress = function(fileId, status) {
            var nodeStatus = $(result.cell('#result-' + fileId, 5).node());
            nodeStatus.addClass('checkInProgress');
            if ((undefined !== status.tool && 2 != status.tool) || 100 == status.percent) {
                nodeStatus.find('.statusResult').html('');
            }
            else {
                nodeStatus.find('.statusResult').html(' ' + Math.round(status.percent) + '%');
            }
        };
    
        var error = function(fileId) {
            var nodeStatus = $(result.cell('#result-' + fileId, 5).node());
            nodeStatus.removeClass('info danger checkInProgress').addClass('danger');
            nodeStatus.find('.statusResult').html(' Error');
            nodeStatus.find('.result-reload').removeClass('hidden');
        };
    
        var reset = function(fileId) {
            var nodeStatus = $(result.cell('#result-' + fileId, 5).node());
            nodeStatus.removeClass().addClass('statusCell info');
            nodeStatus.find('.statusButton').addClass('hidden').parent().removeClass('text-center');
            nodeStatus.find('.statusResult').removeClass('hidden').html('In queue');
            nodeStatus.find('.result-reload').addClass('hidden');
        };
    
        return {
            init: init,
            success: success,
            inProgress: inProgress,
            error: error,
            reset: reset,
        };
    })();
    MediaConch/Source/Resource/html/js/checker/table.js0000644000000000000000000003337314640052500021213 0ustar  rootrootvar checkerTable = (function() {
        var result;
    
        // Waiting loop ID value
        var waitingLoopId = null;
    
        // Avoid call to checker status if it's already running
        var checkerStatusInProgress = false;
    
        var init = function() {
            result = $('#result-table').DataTable({
                order: [0, 'asc'],
                autoWidth: false,
                fixedHeader: {
                    headerOffset: $('#mco-navbar').outerHeight(true)
                },
                columnDefs: [
                    { orderable: true, targets: 0 },
                    { orderable: true, searchable: false, targets: [1, 2, 5] },
                    { orderable: false, searchable: false, width: '10%', targets: [3, 4] },
                    { width: '10%', targets: [1, 5] },
                    { width: '25%', targets: [0, 2] },
                ]
            });
    
            statusCell.init(result);
            implementationCell.init(result);
            policyCell.init(result);
            mediaInfoCell.init(result);
            mediaTraceCell.init(result);
            resultRowHoverBinding();
            addExisting();
        };
    
        // Redraw the table
        var draw = function() {
            result.draw(false);
        };
    
        // Clear the table
        var clear = function() {
            result.clear().draw();
        };
    
        // Based on https://stackoverflow.com/a/41629420
        var jumpToPageContainingResultId = function(id) {
            var node = result.row('#result-' + id).node();
            var page = Math.floor(
                result.rows({
                    page: 'all',
                    order: 'current',
                    search: 'applied'
                }).nodes().indexOf( node ) / result.page.info().length
            );
            result.page(page).draw(false);
        }
    
        var updateFileOrAddFile = function(fileName, fileId, formValues) {
            if (!result.$('tr.fileId-' + fileId).length) {
                addFile(fileName, fileId, formValues)
            }
            else {
                updateFile(fileId, formValues)
            }
        };
    
        var updateFile = function(fileId, formValues) {
            var node = result.$('#result-' + fileId);
    
            // Update policy if it has changed
            if (node.data('policy') != formValues.policy) {
                node.data('policy', formValues.policy);
                node.data('policyName', formValues.policyText);
    
                policyCell.update(fileId, node.data('policy'));
            }
    
            // Update display if it has changed
            if (node.data('display') != formValues.display) {
                node.data('display', formValues.display);
    
                implementationCell.removeModalIfExists(fileId);
                policyCell.removeModalIfExists(fileId);
            }
    
            // Update verbosity if it has changed
            if (node.data('verbosity') != formValues.verbosity && (2 == node.data('tool') || undefined == node.data('tool'))) {
                node.data('verbosity', formValues.verbosity);
    
                implementationCell.removeModalIfExists(fileId);
            }
        };
    
        var addFile = function(fileName, fileId, formValues) {
            var fileNameSplitted = fileName.split('/');
            if (fileNameSplitted !== undefined)
                fileNameSplitted = fileNameSplitted.pop();
            else
                fileNameSplitted = "";
            var node = result.row.add( [ '' + textUtils.truncate(fileNameSplitted, 28) + '',
                '', '', '', '',
                'In queue'
            ] ).node();
            var nodej = $(node);
    
            // Add id
            nodej.prop('id', 'result-' + fileId);
            nodej.addClass('fileId-' + fileId);
            nodej.data('fileId', fileId);
    
            // Add policy, display and verbosity
            if (fileName.match(/^attachment[0-9]*:/g)) {
                nodej.data('attachment', "true");
            } else {
                nodej.data('attachment', "false");
            }
            nodej.data('policy', formValues.policy);
            nodej.data('policyName', formValues.policyText);
            nodej.data('display', formValues.display);
            nodej.data('verbosity', formValues.verbosity);
    
            // Change status class
            $(result.cell(node, 5).node()).addClass('statusCell info');
    
            // Close button
            nodej.find('.result-close').click(node, function(e) {
                var id = $(result.row(e.data).node()).data('fileId');
                checkerAjax.closeElement(id);
                result.row(e.data).remove().draw(false);
    
                // Remove close all button
                if (1 == $('table.checker-results tbody tr').length && $('table.checker-results tbody tr .dataTables_empty').length) {
                    $('#checkerResultTitle .close').addClass('hidden');
                    $('#checkerApplyAll').addClass('hidden');
                };
            });
    
            // Reload button
            nodej.find('.result-reload').click(node, function(e) {
                var id = $(result.row(e.data).node()).data('fileId');
    
                // Remove associatedFiles if any
                result.$('tr').filter(function() {
                    if ($(this).data('parentId') == id) {
                        result.row($(this)).remove();
                    }
                });
    
                resetRow(id);
                checkerAjax.forceAnalyze(id);
            });
    
            if ($('#checkerResultTitle .close').hasClass('hidden')) {
                $('#checkerResultTitle .close').removeClass('hidden');
                $('#checkerApplyAll').removeClass('hidden');
            }
    
            return node;
        };
    
        var resetRow = function(id) {
            statusCell.reset(id);
            implementationCell.reset(id);
            policyCell.reset(id);
            mediaInfoCell.reset(id);
            mediaTraceCell.reset(id);
    
            implementationCell.removeModalIfExists(id);
            policyCell.removeModalIfExists(id);
            mediaInfoCell.removeModalIfExists(id);
            mediaTraceCell.removeModalIfExists(id);
        };
    
        var startWaitingLoop = function() {
            stopWaitingLoop();
            waitingLoop(100, 1000);
        }
    
        var stopWaitingLoop = function() {
            if (null !== waitingLoopId) {
                clearTimeout(waitingLoopId);
                waitingLoopId = null;
            }
        }
    
        var waitingLoop = function(time, iteration) {
            // Increase delay for the loop after 1st iteration
            if (null === waitingLoopId) {
                time = 500;
            }
            waitingLoopId = setTimeout(function() {
                var nbProcess = 0;
                var nbProcessInProgress = 0;
                var nbProcessLimit = 10;
                var fileIds = [];
                // Process visible results first
                if ($('.statusCell.info').size() > 0) {
                    $.each($('.statusCell.info'), function(index, waitingNode) {
                        if (!$(waitingNode).hasClass('checkInProgress')) {
                            if (nbProcess++ < nbProcessLimit) {
                                fileIds.push($(waitingNode).parent().data('fileId'));
                            }
                        }
                        else {
                            if (nbProcessInProgress++ < nbProcessLimit) {
                                fileIds.push($(waitingNode).parent().data('fileId'));
                            }
                        }
                    })
                }
                // Process hidden results
                else {
                    result.cells('.statusCell.info').every(function(currentCell) {
                        if (!$(this.node()).hasClass('checkInProgress')) {
                            if (nbProcess++ < nbProcessLimit) {
                                fileIds.push($(result.row(currentCell).node()).data('fileId'));
                            }
                        }
                        else {
                            if (nbProcessInProgress++ < nbProcessLimit) {
                                fileIds.push($(result.row(currentCell).node()).data('fileId'));
                            }
                        }
                    })
                }
    
                // Send IDs to server if not already running
                if (fileIds.length > 0 && !checkerStatusInProgress) {
                    checkerAjax.checkerStatus(fileIds);
                }
    
                // Call the loop again
                if (result.cells('.statusCell.info').count() > 0 && --iteration > 0) {
                    // Increase loop delay each fifty iteration
                    if (0 == iteration % 50 && time < 10000) {
                        time += 500;
                    }
                    waitingLoop(time, iteration);
                }
                else {
                    waitingLoopId = null;
                }
    
                // Display error for unfinished cells
                if (iteration <= 0) {
                    result.cells('.statusCell.info').every(function(currentCell) {
                        statusCell.error($(this.node()).data('fileId'));
                    })
                }
    
            }, time);
        };
    
        var processCheckerStatusRequest = function(statusMulti) {
            var reports = [];
            $.each(statusMulti, function(statusFileId, status) {
                if (status.finish) {
                    var node = result.$('#result-' + statusFileId);
                    // Report type
                    node.data('tool', status.tool);
    
                    // Status
                    statusCell.success(statusFileId);
    
                    // Implementation and Policy
                    if (node.data('policy') != undefined && node.data('policy') !== "-1" && node.data('policy') !== -1 && node.data('attachment') !== "true") {
                        implementationCell.addSpinnerToCell(statusFileId);
                        policyCell.addSpinnerToCell(statusFileId);
    
                        reports.push({id: statusFileId, tool: status.tool, policyId: node.data('policy')});
                    }
                    else {
                        // Implementation only
                        implementationCell.addSpinnerToCell(statusFileId);
    
                        reports.push({id: statusFileId, tool: status.tool});
    
                        if (node.data('attachment') !== "true") {
                            policyCell.emptyWithModal(statusFileId);
                        } else {
                            policyCell.empty(statusFileId);
                        }
                    }
    
                    // MediaInfo
                    mediaInfoCell.success(statusFileId);
    
                    // MediaTrace
                    mediaTraceCell.success(statusFileId);
    
                    // Handle associated files (attachments)
                    if (undefined !== status.associatedFiles) {
                        $.each(status.associatedFiles, function(associatedFileId, associatedFileName) {
                            var nodeFile = addFile(associatedFileName, associatedFileId, checker.getDataFromForm($('.tab-content .active form')));
                            $(nodeFile).data('parent-id', statusFileId).find('.result-reload').remove();
                        });
                        draw();
                    }
                }
                else if (status.percent > 0) {
                    statusCell.inProgress(statusFileId, status);
                }
                else if (status.error) {
                    statusCell.error(statusFileId);
                }
            });
    
            if (reports.length > 0) {
                checkerAjax.statusReportsMulti(reports);
            }
        };
    
        // Apply policy to all results
        var applyPolicyToAll = function() {
            result.$('tr').each(function() {
                var node = result.$('#' + $(this).prop('id'));
    
                if (node.data('policy') != $('#applyAllPolicy').val()) {
                    // Update policy
                    node.data('policy', $('#applyAllPolicy').val());
                    node.data('policyName', $('#applyAllPolicy option:selected').text());
    
                    policyCell.update(node.data('fileId'), node.data('policy'));
                }
            });
        };
    
        var setCheckerStatusInProgress = function(status) {
            checkerStatusInProgress = status;
        };
    
        var resultRowHoverBinding = function() {
            result.on('draw.dt', function() {
                result.$('tr').off('mouseenter');
                result.$('tr').off('mouseleave');
    
                // Display buttons on checker result
                result.$('tr').on('mouseenter', function() {
                    $(this).find('.statusResult').addClass('hidden');
                    $(this).find('.statusButton').removeClass('hidden').parent().addClass('text-center');
                    $(this).find('.policyResult').addClass('hidden');
                    $(this).find('.policyButton').removeClass('hidden').parent().addClass('text-center');
                    $(this).find('.implemResult').addClass('hidden');
                    $(this).find('.implemButton').removeClass('hidden').parent().addClass('text-center');
                });
                result.$('tr').on('mouseleave', function() {
                    $(this).find('.statusButton').addClass('hidden').parent().removeClass('text-center');
                    $(this).find('.statusResult').removeClass('hidden');
                    $(this).find('.policyButton').addClass('hidden').parent().removeClass('text-center');
                    $(this).find('.policyResult').removeClass('hidden');
                    $(this).find('.implemButton').addClass('hidden').parent().removeClass('text-center');
                    $(this).find('.implemResult').removeClass('hidden');
                });
            });
        };
    
        var addExisting = function() {
            checkerAjax.addExisting();
        };
    
        return {
            init: init,
            draw: draw,
            clear: clear,
            jumpToPageContainingResultId: jumpToPageContainingResultId,
            startWaitingLoop: startWaitingLoop,
            updateFileOrAddFile: updateFileOrAddFile,
            processCheckerStatusRequest: processCheckerStatusRequest,
            applyPolicyToAll: applyPolicyToAll,
            setCheckerStatusInProgress: setCheckerStatusInProgress,
            addExisting: addExisting,
        };
    })();
    MediaConch/Source/Resource/html/js/checker/webengine.js0000644000000000000000000002573214640052500022067 0ustar  rootrootvar checkerAjax = (function() {
        var formRequest = function(form, formValues, formType) {
            var res = null;
    
            var options = [];
            if (formType === 'file')
            {
                if ($('#checkerUpload_parsespeed_selector').val() !== '0.5')
                {
                    options.push("file_parsespeed");
                    options.push($('#checkerUpload_parsespeed_selector').val());
                }
    
                webpage.on_file_upload_selected($('.tab-content .active .policyList').val(),
                                                $('.tab-content .active .displayList').val(),
                                                $('.tab-content .active .verbosityList').val(),
                                                $('#checkerUpload_fixer').is(':checked'),
                                                options,
                                                function (res)
                                                {
                                                    formRequestResponse(res, formValues);
                                                });
            }
            else if (formType === 'url')
            {
                if ($('#checkerOnline_parsespeed_selector').val() !== '0.5')
                {
                    options.push("file_parsespeed");
                    options.push($('#checkerOnline_parsespeed_selector').val());
                }
    
                webpage.on_file_online_selected($('#checkerOnline_file').val(),
                                                $('.tab-content .active .policyList').val(),
                                                $('.tab-content .active .displayList').val(),
                                                $('.tab-content .active .verbosityList').val(),
                                                false, options,
                                                function (res)
                                                {
                                                    formRequestResponse(res, formValues);
                                                });
            }
            else if (formType === 'repository')
            {
                if ($('#checkerRepository_parsespeed_selector').val() !== '0.5')
                {
                    options.push("file_parsespeed");
                    options.push($('#checkerRepository_parsespeed_selector').val());
                }
    
                webpage.on_file_repository_selected($('.tab-content .active .policyList').val(),
                                                    $('.tab-content .active .displayList').val(),
                                                    $('.tab-content .active .verbosityList').val(),
                                                    $('#checkerRepository_fixer').is(':checked'),
                                                    options,
                                                    function (res)
                                                    {
                                                        formRequestResponse(res, formValues);
                                                    });
            }
        };
    
        var addExisting = function() {
            var res = undefined;
    
            webpage.on_file_from_db_selected(function(res) {
    
                //Nothing to add
                if (res === undefined || !res.length)
                    return;
    
                data = JSON.parse(res);
    
                var success = 0;
                $.each(data.success, function(index, value)
                {
                    if (value.success)
                    {
                        success++;
                        checkerTable.updateFileOrAddFile(value.filename, value.transactionId, value.formValues);
                    }
                });
    
                if (success > 0)
                {
                    checkerTable.draw();
                    checkerTable.jumpToPageContainingResultId(data.success[0].transactionId);
                    checkerTable.startWaitingLoop();
                }
            });
        };
    
        var formRequestResponse = function(res, formValues)
        {
            if (res === null)
            {
                mcoMessage.error("Form is not reconized.");
                return;
            }
    
            data = JSON.parse(res);
            var success = 0;
            $.each(data.success, function(index, value)
            {
                if (value.success)
                {
                    success++;
                    checkerTable.updateFileOrAddFile(value.filename, value.transactionId, formValues);
                }
            });
    
            if (success > 0)
            {
                checkerTable.draw();
                checkerTable.jumpToPageContainingResultId(data.success[0].transactionId);
                checkerTable.startWaitingLoop();
                if (success == 1)
                    mcoMessage.success('File added successfuly');
                else
                    mcoMessage.success('Files added successfuly');
            }
            else if (data.error && data.error.length)
                mcoMessage.error(data.error);
            else
                mcoMessage.error("An internal error appears");
        };
    
        var checkerStatus = function(ids) {
            checkerTable.setCheckerStatusInProgress(true);
            /**
             * Get the status for multiple files
             * @param array ids List of files ID
             *
             * @return json
             * {"status":{"fileId":{"finish":true,"tool":2,"associatedFiles":{"fileId":"fileName"}},"fileId":{"finish":false,"percent":42}}}
             */
            webpage.file_is_analyzed(ids, function(res) {
                data = JSON.parse(res);
                checkerTable.setCheckerStatusInProgress(false);
                checkerTable.processCheckerStatusRequest(data.status);
            });
        };
    
        var statusReportsMulti = function(reports) {
            /**
             * Get the implementation status and policy status for multiple files
             * @param array reports List of files ID and report type
             *
             * @return json
             * {"fileId":{"implemReport":{"valid":true,"fileId":"1","error":null},"policyReport":{"valid":false,"fileId":"1","error":null}}, ...}
             */
    
            var list_ids = [];
            var list_policy_ids = [];
    
            $.each(reports, function(id, report)
            {
                if (report["id"] !== undefined)
                {
                    list_ids.push(report["id"]);
                    if (report["policyId"] === undefined)
                        list_policy_ids.push(-1);
                    else
                        list_policy_ids.push(report["policyId"]);
                }
            });
    
            webpage.status_reports_multi(list_ids, list_policy_ids, function(res) {
                data = JSON.parse(res);
    
    	    $.each(data, function(index, result)
                {
                    if (result.error && result.error.length)
                        mcoMessage.error(result.error);
    
                    if (result.implemReport !== undefined)
                        implementationCell.success(result.implemReport, result.implemReport.fileId);
    
                    if (result.policyReport !== undefined)
                        policyCell.success(result.policyReport, result.policyReport.fileId);
                })
            });
        };
    
        var policyStatus = function(fileId, policyId) {
            webpage.policy_is_valid(fileId, policyId, function(res)
            {
                data = JSON.parse(res);
                policyCell.success(data, fileId);
            });
        };
    
        var policyReport = function(fileId, policy, display) {
            webpage.on_fill_policy_report(fileId, policy, display, function(res)
            {
                data = JSON.parse(res);
                policyCell.displayReport(fileId, data);
            });
        };
    
        var implementationStatus = function(fileId, tool) {
            /**
            * Get the implementation status for a file
            * @param int id The file ID
            * @param int reportType The report type ID
            *
            * @return json
            * {"valid":true,"fileId":"fileId","error":null}
            */
            webpage.implementation_is_valid(fileId, function(res)
            {
                data = JSON.parse(res);
                implementationCell.success(data, fileId);
            });
        };
    
        var implementationReport = function(fileId, display, verbosity, tool) {
            webpage.on_fill_implementation_report(fileId, display, verbosity, function(res)
            {
                data = JSON.parse(res);
                implementationCell.displayReport(fileId, data);
            });
        };
    
        var createPolicyFromFileId = function(fileId) {
            webpage.on_create_policy_from_file(fileId, function(res)
            {
                data = JSON.parse(res);
                if (data.error && data.error.length)
                    mediaInfoCell.createPolicyError(fileId);
                else
                    mediaInfoCell.createPolicySuccess(data, fileId);
            });
        };
    
        var forceAnalyze = function(fileId) {
            webpage.checker_force_analyze(fileId, function(res)
            {
                data = JSON.parse(res);
                if (data.error && data.error.length)
                    mcoMessage.error(data.error);
                else
                {
                    checkerTable.startWaitingLoop();
                    mcoMessage.success('File reloaded successfuly');
                }
            });
        };
    
        var downloadImplementationReportUrl = function(fileId, tool, display, verbosity) {
            webpage.on_save_implementation_report(fileId, display, verbosity);
        };
    
        var downloadPolicyReportUrl = function(fileId, policy, display) {
            webpage.on_save_policy_report(fileId, policy, display);
        };
    
        var downloadReportUrl = function(fileId, reportType, output) {
            if (reportType === "mi")
                webpage.on_save_mediainfo_report(fileId, output ? output : "");
            else if (reportType === "mt")
                webpage.on_save_mediatrace_report(fileId);
        };
    
        var reportTreeUrl = function(fileId, reportType) {
            if (reportType === "mi")
            {
                webpage.on_fill_mediainfo_report(fileId, function(res)
                {
                    return res;
                });
            }
            else if (reportType === "mt")
            {
                webpage.on_fill_mediatrace_report(fileId, function(res)
                {
                    return res;
                });
            }
        };
    
        var getMediaInfoOutputList = function(fileId) {
            webpage.on_fill_output_list(function(res) {
                data = JSON.parse(res);
                mediaInfoCell.updateOutputList(data, fileId);
            });
        };
    
        var closeAll = function() {
            webpage.close_all();
        };
    
        var closeElement = function(id) {
            webpage.close_element(id);
        };
    
        return {
            formRequest: formRequest,
            formRequestResponse: formRequestResponse,
            checkerStatus: checkerStatus,
            statusReportsMulti: statusReportsMulti,
            policyStatus: policyStatus,
            policyReport: policyReport,
            implementationStatus: implementationStatus,
            implementationReport: implementationReport,
            createPolicyFromFileId: createPolicyFromFileId,
            forceAnalyze: forceAnalyze,
            downloadImplementationReportUrl: downloadImplementationReportUrl,
            downloadPolicyReportUrl: downloadPolicyReportUrl,
            downloadReportUrl: downloadReportUrl,
            reportTreeUrl: reportTreeUrl,
            getMediaInfoOutputList:getMediaInfoOutputList,
            addExisting: addExisting,
            closeAll: closeAll,
            closeElement: closeElement,
        };
    })();
    MediaConch/Source/Resource/html/js/checker/webkit.js0000644000000000000000000002354114640052500021405 0ustar  rootrootvar checkerAjax = (function() {
        var formRequest = function(form, formValues, formType) {
            var res = null;
    
            var options = [];
            if (formType === 'file')
            {
                if ($('#checkerUpload_parsespeed_selector').val() !== '0.5')
                {
                    options.push("file_parsespeed");
                    options.push($('#checkerUpload_parsespeed_selector').val());
                }
    
                res = webpage.on_file_upload_selected($('.tab-content .active .policyList').val(),
                                                      $('.tab-content .active .displayList').val(),
                                                      $('.tab-content .active .verbosityList').val(),
                                                      $('#checkerUpload_fixer').is(':checked'),
                                                     options);
            }
            else if (formType === 'url')
            {
                if ($('#checkerOnline_parsespeed_selector').val() !== '0.5')
                {
                    options.push("file_parsespeed");
                    options.push($('#checkerOnline_parsespeed_selector').val());
                }
                res = webpage.on_file_online_selected($('#checkerOnline_file').val(),
                                                      $('.tab-content .active .policyList').val(),
                                                      $('.tab-content .active .displayList').val(),
                                                      $('.tab-content .active .verbosityList').val(),
                                                      false, options);
            }
            else if (formType === 'repository')
            {
                if ($('#checkerRepository_parsespeed_selector').val() !== '0.5')
                {
                    options.push("file_parsespeed");
                    options.push($('#checkerRepository_parsespeed_selector').val());
                }
    
                res = webpage.on_file_repository_selected($('.tab-content .active .policyList').val(),
                                                          $('.tab-content .active .displayList').val(),
                                                          $('.tab-content .active .verbosityList').val(),
                                                          $('#checkerRepository_fixer').is(':checked'),
                                                          options);
            }
    
            formRequestResponse(res, formValues);
        };
    
        var addExisting = function() {
            var res = undefined;
    
            res = webpage.on_file_from_db_selected();
    
            //Nothing to add
            if (res === undefined || !res.length)
                return;
    
            data = JSON.parse(res);
    
            var success = 0;
            $.each(data.success, function(index, value)
            {
                if (value.success)
                {
                    success++;
                    checkerTable.updateFileOrAddFile(value.filename, value.transactionId, value.formValues);
                }
            });
    
            if (success > 0)
            {
                checkerTable.draw();
                checkerTable.jumpToPageContainingResultId(data.success[0].transactionId);
                checkerTable.startWaitingLoop();
            }
        };
    
        var formRequestResponse = function(res, formValues)
        {
            if (res === null)
            {
                mcoMessage.error("Form is not reconized.");
                return;
            }
    
            data = JSON.parse(res);
            var success = 0;
            $.each(data.success, function(index, value)
            {
                if (value.success)
                {
                    success++;
                    checkerTable.updateFileOrAddFile(value.filename, value.transactionId, formValues);
                }
            });
    
            if (success > 0)
            {
                checkerTable.draw();
                checkerTable.jumpToPageContainingResultId(data.success[0].transactionId);
                checkerTable.startWaitingLoop();
                if (success == 1)
                    mcoMessage.success('File added successfuly');
                else
                    mcoMessage.success('Files added successfuly');
            }
            else if (data.error && data.error.length)
                mcoMessage.error(data.error);
            else
                mcoMessage.error("An internal error appears");
        };
    
        var checkerStatus = function(ids) {
            checkerTable.setCheckerStatusInProgress(true);
            /**
             * Get the status for multiple files
             * @param array ids List of files ID
             *
             * @return json
             * {"status":{"fileId":{"finish":true,"tool":2,"associatedFiles":{"fileId":"fileName"}},"fileId":{"finish":false,"percent":42}}}
             */
            res = webpage.file_is_analyzed(ids);
            data = JSON.parse(res);
            checkerTable.setCheckerStatusInProgress(false);
            checkerTable.processCheckerStatusRequest(data.status);
        };
    
        var statusReportsMulti = function(reports) {
            /**
             * Get the implementation status and policy status for multiple files
             * @param array reports List of files ID and report type
             *
             * @return json
             * {"fileId":{"implemReport":{"valid":true,"fileId":"1","error":null},"policyReport":{"valid":false,"fileId":"1","error":null}}, ...}
             */
    
            var list_ids = [];
            var list_policy_ids = [];
    
            $.each(reports, function(id, report)
            {
                if (report["id"] !== undefined)
                {
                    list_ids.push(report["id"]);
                    if (report["policyId"] === undefined)
                        list_policy_ids.push(-1);
                    else
                        list_policy_ids.push(report["policyId"]);
                }
            });
            res = webpage.status_reports_multi(list_ids, list_policy_ids);
            data = JSON.parse(res);
    
            $.each(data, function(index, result)
            {
                if (result.error && result.error.length)
                    mcoMessage.error(result.error);
    
                if (result.implemReport !== undefined)
                    implementationCell.success(result.implemReport, result.implemReport.fileId);
    
                if (result.policyReport !== undefined)
                    policyCell.success(result.policyReport, result.policyReport.fileId);
            })
        };
    
        var policyStatus = function(fileId, policyId) {
            res = webpage.policy_is_valid(fileId, policyId);
            data = JSON.parse(res);
            policyCell.success(data, fileId);
        };
    
        var policyReport = function(fileId, policy, display) {
            res = webpage.on_fill_policy_report(fileId, policy, display);
            data = JSON.parse(res);
            policyCell.displayReport(fileId, data);
        };
    
        var implementationStatus = function(fileId, tool) {
            /**
            * Get the implementation status for a file
            * @param int id The file ID
            * @param int reportType The report type ID
            *
            * @return json
            * {"valid":true,"fileId":"fileId","error":null}
            */
            res = webpage.implementation_is_valid(fileId);
            data = JSON.parse(res);
            implementationCell.success(data, fileId);
        };
    
        var implementationReport = function(fileId, display, verbosity, tool) {
            res = webpage.on_fill_implementation_report(fileId, display, verbosity);
            data = JSON.parse(res);
            implementationCell.displayReport(fileId, data);
        };
    
        var createPolicyFromFileId = function(fileId) {
            res = webpage.on_create_policy_from_file(fileId);
            data = JSON.parse(res);
            if (data.error && data.error.length)
                mediaInfoCell.createPolicyError(fileId);
            else
                mediaInfoCell.createPolicySuccess(data, fileId);
        };
    
        var forceAnalyze = function(fileId) {
            res = webpage.checker_force_analyze(fileId);
            data = JSON.parse(res);
            if (data.error && data.error.length)
                mcoMessage.error(data.error);
            else
            {
                checkerTable.startWaitingLoop();
                mcoMessage.success('File reloaded successfuly');
            }
        };
    
        var downloadImplementationReportUrl = function(fileId, tool, display, verbosity) {
            webpage.on_save_implementation_report(fileId, display, verbosity);
        };
    
        var downloadPolicyReportUrl = function(fileId, policy, display) {
            webpage.on_save_policy_report(fileId, policy, display);
        };
    
        var downloadReportUrl = function(fileId, reportType, output) {
            if (reportType === "mi")
                webpage.on_save_mediainfo_report(fileId, output ? output : "");
            else if (reportType === "mt")
                webpage.on_save_mediatrace_report(fileId);
        };
    
        var reportTreeUrl = function(fileId, reportType) {
            if (reportType === "mi")
            {
                res = webpage.on_fill_mediainfo_report(fileId);
                return res;
            }
            else if (reportType === "mt")
            {
                res = webpage.on_fill_mediatrace_report(fileId);
                return res;
            }
        };
    
        var getMediaInfoOutputList = function(fileId) {
            res = webpage.on_fill_output_list();
            data = JSON.parse(res);
            mediaInfoCell.updateOutputList(data, fileId);
        };
    
        var closeAll = function() {
            webpage.close_all();
        };
    
        var closeElement = function(id) {
            webpage.close_element(id);
        };
    
        return {
            formRequest: formRequest,
            formRequestResponse: formRequestResponse,
            checkerStatus: checkerStatus,
            statusReportsMulti: statusReportsMulti,
            policyStatus: policyStatus,
            policyReport: policyReport,
            implementationStatus: implementationStatus,
            implementationReport: implementationReport,
            createPolicyFromFileId: createPolicyFromFileId,
            forceAnalyze: forceAnalyze,
            downloadImplementationReportUrl: downloadImplementationReportUrl,
            downloadPolicyReportUrl: downloadPolicyReportUrl,
            downloadReportUrl: downloadReportUrl,
            reportTreeUrl: reportTreeUrl,
            getMediaInfoOutputList:getMediaInfoOutputList,
            addExisting: addExisting,
            closeAll: closeAll,
            closeElement: closeElement,
        };
    })();
    MediaConch/Source/Resource/html/js/utils/0000755000000000000000000000000014640052500017311 5ustar  rootrootMediaConch/Source/Resource/html/js/utils/functions.js0000644000000000000000000000102714640052500021657 0ustar  rootrootvar functionsUtils = (function() {
        // Based on https://stackoverflow.com/a/359910
        var executeFunctionByName = function(functionName, context /*, args */) {
          var args = [].slice.call(arguments).splice(2);
          var namespaces = functionName.split(".");
          var func = namespaces.pop();
          for(var i = 0; i < namespaces.length; i++) {
            context = context[namespaces[i]];
          }
          return context[func].apply(context, args);
        }
        return {
            executeFunctionByName: executeFunctionByName,
        }
    })();
    MediaConch/Source/Resource/html/js/utils/size.js0000644000000000000000000000100414640052500020614 0ustar  rootrootvar sizeUtils = (function() {
        // Convert human readable size to bytes
        function humanToBytes(size) {
            var powers = {'k': 1, 'm': 2, 'g': 3, 't': 4};
            var regex = /(\d+(?:\.\d+)?)\s?(k|m|g|t)?b?/i;
    
            alert(size);
            var res = regex.exec(size);
    
            if (res[2] !== undefined) {
                return res[1] * Math.pow(1024, powers[res[2].toLowerCase()]);
            }
            else {
                return size;
            }
        }
    
        return {
            humanToBytes: humanToBytes,
        };
    })();
    MediaConch/Source/Resource/html/js/utils/text.js0000644000000000000000000000145514640052500020640 0ustar  rootrootvar textUtils = (function() {
        // Based on https://stackoverflow.com/a/4835406
        var sanitizeHtml = function(str) {
            var map = {
                '&': '&',
                '<': '<',
                '>': '>',
                '"': '"',
                "'": '''
            };
    
            return str.replace(/[&<>"']/g, function(m) { return map[m]; });
        }
    
    // Based on https://stackoverflow.com/a/2919363
        var nl2br = function(str) {
            var breakTag = '
    '; return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2'); } var truncate = function(str, length) { return str.length > length ? str.substring(0, length) + '…' : str } return { sanitizeHtml: sanitizeHtml, nl2br: nl2br, truncate: truncate, }; })(); MediaConch/Source/Resource/html/js/utils/url.js0000644000000000000000000000130214640052500020445 0ustar rootrootvar urlUtils = (function() { var baseUrl = 'https://mediaarea.net/MediaConchOnline/'; var publicApi = function(path) { var url = baseUrl + 'api/public/v1/'; if (undefined !== path) { url += path; } return url; } var protectedApi = function(path) { var url = baseUrl + 'api/protected/v1/'; if (undefined !== path) { url += path; } return url; } var openInBrowser = function(e) { e.preventDefault(); webpage.call_tooltip(e.target.href); } return { publicApi: publicApi, protectedApi: protectedApi, openInBrowser: openInBrowser, } })(); MediaConch/Source/Resource/html/js/database/0000755000000000000000000000000014640052500017715 5ustar rootrootMediaConch/Source/Resource/html/js/database/database.js0000644000000000000000000001004214640052500022014 0ustar rootrootvar database = (function() { var init = function() { mcoMessage.init('#databaseInfo div'); databaseTable.init(); databaseAjax.init(); } var load = function() { databaseAjax.loadTree(); // Remove all file blocks $('#checkerResults .close').on('click', function(e) { e.preventDefault(); databaseAjax.removeAllFiles(); databaseTable.clear(); // Remove close all button $(this).addClass('hidden'); }); } return { init: init, load: load, }; })(); var databaseTable = (function() { var init = function() { result = $('#result-table').DataTable({ order: [0, 'asc'], autoWidth: false, lengthMenu: [10, 50, 100, 1000], pageLength: 100, fixedHeader: { headerOffset: $('#mco-navbar').outerHeight(true) }, columnDefs: [ { orderable: true, targets: 0 }, { orderable: false, searchable: false, targets: 1, width: '100px' }, ] }); resultRowHoverBinding(); }; // Add file to table var addFile = function(file) { var node = result.row.add( [ '' + file.name + '', ' ' ] ).node(); var nodej = $(node); // Add id nodej.prop('id', 'result-' + file.id); nodej.addClass('fileId-' + file.id); nodej.data('fileId', file.id); $(result.cell(node, 0).node()).addClass('containerAutoWidth'); $(result.cell(node, 1).node()).addClass('text-center'); // Delete button nodej.find('.result-close').click(node, function(e) { var id = $(result.row(e.data).node()).data('fileId'); databaseAjax.removeFile(id); result.row(e.data).remove().draw(false); // Remove delete all button if (1 == $('table.checker-results tbody tr').length && $('table.checker-results tbody tr .dataTables_empty').length) { $('#checkerResults .close').addClass('hidden'); }; }); // Add to checker button nodej.find('.add-checker').click(node, function(e) { var id = $(result.row(e.data).node()).data('fileId'); databaseAjax.addFileChecker(id); }); // Display delete all button $('#checkerResults .close').removeClass('hidden'); } // Redraw the table var draw = function() { result.draw(false); }; // Clear the table var clear = function() { result.clear().draw(); }; // Display actions button on hover var resultRowHoverBinding = function() { result.on('draw.dt', function() { result.$('tr').off('mouseenter'); result.$('tr').off('mouseleave'); // Display buttons on checker result result.$('tr').on('mouseenter', function() { $(this).find('.statusButton').removeClass('hidden'); }); result.$('tr').on('mouseleave', function() { $(this).find('.statusButton').addClass('hidden'); }); }); }; return { init: init, addFile: addFile, draw: draw, clear: clear, }; })(); $(document).ready(function() { (function loop_init(time) { setTimeout(function() { if (webpage === undefined) loop_init(100); else { database.init(); database.load(); } }, time); })(0); }); MediaConch/Source/Resource/html/js/database/databaseWebEngine.js0000644000000000000000000000311014640052500023576 0ustar rootrootvar databaseAjax = (function() { var init = function() { } var loadTree = function() { webpage.checker_list(function(res) { var data = JSON.parse(res); var success = 0; $.each(data.files, function(idx, val) { success++; databaseTable.addFile(val); }); if (success > 0) { databaseTable.draw(); } else if (data.error && data.error.length) mcoMessage.error(data.error); }); } var addFileChecker = function(id) { webpage.add_file_to_checker_again(id, function (res) { var data = JSON.parse(res); if (data.error && data.error.length) mcoMessage.error(data.error); else if (data.success && data.success.length) mcoMessage.success(data.success); }); } var removeFile = function(id) { webpage.remove_file_from_db(id, function(res) { var data = JSON.parse(res); if (data.error && data.error.length) mcoMessage.error(data.error); }); } var removeAllFiles = function() { webpage.remove_all_files_from_db(function(res) { var data = JSON.parse(res); if (data.error && data.error.length) mcoMessage.error(data.error); }); } return { init: init, loadTree: loadTree, addFileChecker: addFileChecker, removeFile: removeFile, removeAllFiles: removeAllFiles, }; })(); MediaConch/Source/Resource/html/js/database/databaseWebKit.js0000644000000000000000000000265714640052500023137 0ustar rootrootvar databaseAjax = (function() { var init = function() { } var loadTree = function() { var res = webpage.checker_list(); var data = JSON.parse(res); var success = 0; $.each(data.files, function(idx, val) { success++; databaseTable.addFile(val); }); if (success > 0) { databaseTable.draw(); } else if (data.error && data.error.length) mcoMessage.error(data.error); } var addFileChecker = function(id) { var res = webpage.add_file_to_checker_again(id); var data = JSON.parse(res); if (data.error && data.error.length) mcoMessage.error(data.error); else if (data.success && data.success.length) mcoMessage.success(data.success); } var removeFile = function(id) { var res = webpage.remove_file_from_db(id); var data = JSON.parse(res); if (data.error && data.error.length) mcoMessage.error(data.error); } var removeAllFiles = function() { var res = webpage.remove_all_files_from_db(); var data = JSON.parse(res); if (data.error && data.error.length) mcoMessage.error(data.error); } return { init: init, loadTree: loadTree, addFileChecker: addFileChecker, removeFile: removeFile, removeAllFiles: removeAllFiles, }; })(); MediaConch/Source/Resource/html/js/publicPolicies/0000755000000000000000000000000014640052500021117 5ustar rootrootMediaConch/Source/Resource/html/js/publicPolicies/list.js0000644000000000000000000002075014640052500022434 0ustar rootrootfunction initPage() { user.loadToken(); mcoMessage.init('.displayMessages'); modalBinding(); // Resize policy header when screen is resized $(window).resize(function () { publicPoliciesList.policyDescriptionHeight(); }); } function modalBinding() { $('#modalPolicy').on('show.bs.modal', function (event) { var policyElem = $(event.relatedTarget).parent().parent().parent(); policyTree.refreshData(policyElem.data('policy-id'), policyElem.data('user-id')); // Set policyId and userId in modal $(this).data('policy-id', policyElem.data('policy-id')).data('user-id', policyElem.data('user-id')); // Add to my policies or unpublish button if (true === policyElem.data('allow-edit')) { $('.modalPolicyImport').hide(); $('.alert-modal-create-policy').hide(); $('.modalPolicyUnpublish').show(); } else { $('.modalPolicyUnpublish').hide(); $('.modalPolicyImport').show(); } }); $('.modalPolicyExport').on('click', function (event) { var policyElem = $('#modalPolicy'); publicPoliciesListAjax.policyExport(policyElem.data('policy-id'), policyElem.data('user-id')); }); $('.modalPolicyImport').on('click', function (event) { var policyElem = $('#modalPolicy'); publicPoliciesListAjax.policyImport(policyElem.data('policy-id'), policyElem.data('user-id'), $(this)); }); $('.modalPolicyUnpublish').on('click', function (event) { var policyElem = $('#modalPolicy'); user.policyUnpublish(policyElem.data('policy-id'), $(this)); }); } var publicPoliciesList = (function() { var displayList = function(list) { $.each(list, function(index, policy) { if (undefined === policy.license || '' == policy.license) { policy.license = 'Other'; } // Start wrapper line if (0 == index % 2) { $('#publicPoliciesList').append('
    '); } // Add to my policies or unpublish button if (true === policy.allowEdit) { var userButton = '' } else { var userButton = ''; } $('#publicPoliciesList').append( '
    \
    \
    \

    ' + policy.name + '

    \ ' + policy.description + ' \
    \

    \ Maintainer: ' + policy.user.name + ' \ License: ' + policy.license + ' \

    \
    \ ' + userButton + ' \ \
    \
    \
    ' ); // End wrapper line if (1 == index % 2) { $('#publicPoliciesList').append('
    '); } else { if (list.length == (index + 1)) { $('#publicPoliciesList').append(''); } } }); policyDescriptionHeight(); buttonBindings(); }; // Adapt height of policy header to have buttons on the same line var policyDescriptionHeight = function() { var previousElem; // Apply only on medium screen and up if ($(window).width() >= 768) { $('.policyBox header').each(function(index, elem) { if (index % 2) { if (previousElem.clientHeight > elem.clientHeight) { $(elem).height(previousElem.clientHeight); } else if (elem.clientHeight > previousElem.clientHeight) { $(previousElem).height(elem.clientHeight); } } else { previousElem = elem; } }); } else { $('.policyBox header').each(function(index, elem) { $(elem).height('auto'); }); } }; var buttonBindings = function() { $('.policyExport').on('click', function (event) { var policyElem = $(this).parent().parent(); publicPoliciesListAjax.policyExport(policyElem.data('policy-id'), policyElem.data('user-id')); }); $('.policyImport').on('click', function (event) { var policyElem = $(this).parent().parent(); publicPoliciesListAjax.policyImport(policyElem.data('policy-id'), policyElem.data('user-id'), $(this)); }); $('.policyUnpublish').on('click', function (event) { var policyElem = $(this).parent().parent(); user.policyUnpublish(policyElem.data('policy-id'), $(this)); }); } return { displayList: displayList, policyDescriptionHeight: policyDescriptionHeight, }; })(); var importPolicy = (function() { var success = function(data, button) { button.fadeOut(200).replaceWith(''); } var error = function(button) { button.fadeOut(200).replaceWith(''); } return { success: success, error: error, }; })(); var unpublishPolicy = (function () { var success = function(button) { // Disable button and links in policyBox and modal if (button.hasClass('policyUnpublish')) { button.parent().find('button').prop('disabled', true); button.parent().parent().addClass('policyBoxDisabled').find('h4 a').on('click', function(e) { e.preventDefault(); e.stopPropagation(); }); } else { button.parent().find('button.btn-primary').prop('disabled', true); var policyBoxId = $('#modalPolicy').data('policy-id'); $('.policyBox-' + policyBoxId).addClass('policyBoxDisabled').find('button').prop('disabled', true); $('.policyBox-' + policyBoxId).find('h4 a').on('click', function(e) { e.preventDefault(); e.stopPropagation(); }); } button.hide().after(''); } var error = function(button) { button.hide().after(''); } return { success: success, error: error, }; })(); var policyListSpinner = (function() { var show = function() { $('.publicPoliciesListSpinner').removeClass('hidden'); }; var hide = function() { $('.publicPoliciesListSpinner').addClass('hidden'); }; return { show: show, hide: hide, }; })(); var timer_for_ready = null; $(document).ready(function () { (function loop_init(time) { timer_for_ready = setTimeout(function() { if (webpage === undefined) loop_init(100); else { timer_for_ready = null; initPage(); setTimeout(function() { publicPoliciesListAjax.getList(); }, 100) } }, time); })(0); }); $(window).unload(function() { if (timer_for_ready) clearTimeout(timer_for_ready); publicPoliciesListAjax.leave(); }); MediaConch/Source/Resource/html/js/publicPolicies/listPolicyTree.js0000644000000000000000000001375214640052500024440 0ustar rootrootvar policyTree = (function() { var instance = null; var policyId = null; var policyUserId = null; var init = function() { // Disable F2 shortcut (rename) in jstree, needs to be done before jstree initialization $('#policyTree').on('keydown.jstree', '.jstree-anchor', function(event) { if (113 == event.keyCode) { event.stopImmediatePropagation(); return false; } }); $('#policyTree').jstree({ core: { check_callback: function (operation, node, parent, position, more) { if (operation === 'copy_node' || operation === 'move_node') { return false; // disable copy and move } else { return true; } }, multiple: false, dblclick_toggle: true, data: { url: function (node) { return publicPoliciesListAjax.getApiPolicyUrl(policyId, policyUserId); }, dataType: 'json', success: function() { $('#modalPolicy .modal-body .policyError').remove(); $('#policyTree').show(); $('#modalPolicy .btn-primary').prop('disabled', false); }, error: function() { $('#policyTree').hide(); $('#modalPolicy .modal-body').append('
    Error: the requested policy can not be retrieved
    '); $('#modalPolicy .btn-primary').prop('disabled', true); } } }, plugins: ['search', 'types'], types: { default: {'icon' : 'glyphicon glyphicon-folder-open'}, a: {icon : 'glyphicon glyphicon-folder-open'}, u: {icon : 'glyphicon glyphicon-folder-open'}, s: {icon : 'glyphicon glyphicon-folder-open'}, up: {icon : 'glyphicon glyphicon-folder-open'}, sp: {icon : 'glyphicon glyphicon-folder-open'}, r: {icon : 'glyphicon glyphicon-file'}, } }) .on('refresh.jstree', function () { $(this).jstree('open_all'); }) .on('hover_node.jstree', function (event, data) { $('#' + data.node.id + '_anchor').popover({title: policyHoverTitle(data.node), content: policyHoverContent(data.node), placement: 'auto right', trigger: 'hover', html: true}).popover('show'); }) .on('ready.jstree', function () { $(this).jstree('open_all'); var to = false; $('#policyTreeSearch').keyup(function () { if(to) { clearTimeout(to); } to = setTimeout(function () { var v = $('#policyTreeSearch').val(); instance.search(v); }, 250); }); }); instance = $('#policyTree').jstree(true); } var refreshData = function(id, userId) { policyId = id; policyUserId = userId; if (null === instance) { init(); } else { instance.refresh(); } }; var policyHoverTitle = function(node) { var data = ''; if ('u' == node.type) { if ('' != node.data.description) { data = 'Policy'; } } else if ('r' == node.type) { data = 'Rule'; } return data; }; var policyHoverContent = function(node) { var data = ''; if ('u' == node.type) { if ('' != node.data.description) { data = textUtils.nl2br(textUtils.sanitizeHtml(node.data.description));; } } else if ('r' == node.type) { data += '
      '; if (undefined == node.data.scope || '' == node.data.scope) { data += '
    • Scope: MediaInfo
    • '; } else { data += '
    • Scope: MediaTrace
    • '; } if (undefined != node.data.tracktype) { data += '
    • TrackType: ' + node.data.tracktype + '
    • '; } if (undefined != node.data.field) { data += '
    • Field: ' + node.data.field + '
    • '; } if (undefined != node.data.level) { data += '
    • Level: ' + node.data.level + '
    • '; } if (undefined == node.data.occurrence || '' == node.data.occurrence || '*' == node.data.occurrence) { data += '
    • Occurrence: *
    • '; } else { data += '
    • Occurrence: ' + node.data.occurrence + '
    • '; } if (undefined != node.data.ope) { data += '
    • Operator: ' + node.data.ope + '
    • '; } if (undefined != node.data.source) { if (undefined != node.data.source.tracktype) { data += '
    • Source TrackType: ' + node.data.source.tracktype + '
    • '; } if (undefined != node.data.source.field) { data += '
    • Source Field: ' + node.data.source.field + '
    • '; } if (undefined == node.data.source.occurrence || '' == node.data.source.occurrence || '*' == node.data.source.occurrence) { data += '
    • Source Occurrence: *
    • '; } else { data += '
    • Source Occurrence: ' + node.data.source.occurrence + '
    • '; } } else if (undefined != node.data.value) { data += '
    • Value: ' + node.data.value + '
    • '; } data += '
    '; } return data; } return { init: init, refreshData: refreshData, }; })(); MediaConch/Source/Resource/html/js/publicPolicies/listWebEngine.js0000644000000000000000000000651014640052500024216 0ustar rootrootvar publicPoliciesListAjax = (function() { var getList = function() { if (undefined === user.getMcoUserToken() || '' == user.getMcoUserToken()) { var apiAddress = urlUtils.publicApi("publicpolicies/list"); } else { var apiAddress = urlUtils.protectedApi("publicpolicies/list"); } /** * Get the json for jstree * * @return json * {"policiesTree":POLICIES_JSTREE_JSON} */ $.get({ url: apiAddress, dataType: "json", beforeSend: function(xhr) { if (undefined !== user.getMcoUserToken() && '' != user.getMcoUserToken()) { xhr.setRequestHeader('X-apiKey', user.getMcoUserToken()); } } }).done(function(data) { policyListSpinner.hide(); publicPoliciesList.displayList(data.list); }).fail(function (jqXHR) { policyListSpinner.hide(); mcoMessage.fail(jqXHR); }); }; var getApiPolicyUrl = function(policyId, policyUserId) { /** * Url of policy API * @param int policyId policy ID of the policy * @param int policyUserId user ID of the policy * * @return string * /api/public/v1/publicpolicies/policy/POLICYID/POLICYUSERID */ return urlUtils.publicApi("publicpolicies/policy/" + policyId + "/" + policyUserId) }; var policyExport = function(policyId, policyUserId) { /** * Export XML of a policy * @param int policyId policy ID of the policy to export * @param int policyUserId user ID of the policy to export * * @return XML */ $.get({ url: urlUtils.publicApi("publicpolicies/policy/export/" + policyId + "/" + policyUserId), dataType: "text", async: false }).done(function(data) { webpage.policy_export_data(data, function (res) { var json = JSON.parse(res); if (json.error) mcoMessage.error(json.error); }); }).fail(function (jqXHR) { mcoMessage.fail(jqXHR); }); }; var policyImport = function(policyId, policyUserId, button) { /** * Import a policy to user policies * @param int policyId policy ID of the policy to export * @param int policyUserId user ID of the policy to export * * @return json * {"policyId":ID} */ $.get({ url: urlUtils.publicApi("publicpolicies/policy/export/" + policyId + "/" + policyUserId), dataType: "text", async: false }).done(function(data) { webpage.policy_import_data(data, function (res) { var json = JSON.parse(res); if (json.error) { importPolicy.error(button); } importPolicy.success(data.policyId, button); }); }).fail(function (jqXHR) { importPolicy.error(button); }); }; var leave = function () { }; return { getList: getList, getApiPolicyUrl: getApiPolicyUrl, policyExport: policyExport, policyImport: policyImport, leave: leave, }; })(); MediaConch/Source/Resource/html/js/publicPolicies/listWebKit.js0000644000000000000000000000730514640052500023543 0ustar rootrootvar publicPoliciesListAjax = (function() { var get_cb = null; var getList = function() { if (undefined === user.getMcoUserToken() || '' == user.getMcoUserToken()) { var apiAddress = urlUtils.publicApi("publicpolicies/list"); } else { var apiAddress = urlUtils.protectedApi("publicpolicies/list"); } /** * Get the json for jstree * * @return json * {"policiesTree":POLICIES_JSTREE_JSON} */ var cb = $.get({ url: apiAddress, dataType: "json", beforeSend: function(xhr) { if (undefined !== user.getMcoUserToken() && '' != user.getMcoUserToken()) { xhr.setRequestHeader('X-apiKey', user.getMcoUserToken()); } } }).done(function(data) { publicPoliciesListAjax.setGetCb(null); policyListSpinner.hide(); publicPoliciesList.displayList(data.list); }).fail(function (jqXHR) { publicPoliciesListAjax.setGetCb(null); policyListSpinner.hide(); mcoMessage.fail(jqXHR); }); publicPoliciesListAjax.setGetCb(cb); }; var getApiPolicyUrl = function(policyId, policyUserId) { /** * Url of policy API * @param int policyId policy ID of the policy * @param int policyUserId user ID of the policy * * @return string * /api/public/v1/publicpolicies/policy/POLICYID/POLICYUSERID */ return urlUtils.publicApi("publicpolicies/policy/" + policyId + "/" + policyUserId) }; var policyExport = function(policyId, policyUserId) { /** * Export XML of a policy * @param int policyId policy ID of the policy to export * @param int policyUserId user ID of the policy to export * * @return XML */ $.get({ url: urlUtils.publicApi("publicpolicies/policy/export/" + policyId + "/" + policyUserId), dataType: "text", async: false }).done(function(data) { var res = webpage.policy_export_data(data); var json = JSON.parse(res); if (json.error) mcoMessage.error(json.error); }).fail(function (jqXHR) { mcoMessage.fail(jqXHR); }); }; var policyImport = function(policyId, policyUserId, button) { /** * Import a policy to user policies * @param int policyId policy ID of the policy to export * @param int policyUserId user ID of the policy to export * * @return json * {"policyId":ID} */ $.get({ url: urlUtils.publicApi("publicpolicies/policy/export/" + policyId + "/" + policyUserId), dataType: "text", async: false }).done(function(data) { var res = webpage.policy_import_data(data); var json = JSON.parse(res); if (json.error) { importPolicy.error(button); } importPolicy.success(data.policyId, button); }).fail(function (jqXHR) { importPolicy.error(button); }); }; var setGetCb = function(cb) { get_cb = cb; }; var getGetCb = function(cb) { return get_cb; }; var leave = function() { if (get_cb) { get_cb.abort(); setGetCb(null); } }; return { getList: getList, getApiPolicyUrl: getApiPolicyUrl, policyExport: policyExport, policyImport: policyImport, getGetCb: getGetCb, setGetCb: setGetCb, leave: leave }; })(); MediaConch/Source/Resource/html/js/bootstrap.js0000644000000000000000000021011314640052500020522 0ustar rootroot/*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under the MIT license */ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery') } +function ($) { 'use strict'; var version = $.fn.jquery.split(' ')[0].split('.') if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) { throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4') } }(jQuery); /* ======================================================================== * Bootstrap: transition.js v3.3.7 * http://getbootstrap.com/javascript/#transitions * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/) // ============================================================ function transitionEnd() { var el = document.createElement('bootstrap') var transEndEventNames = { WebkitTransition : 'webkitTransitionEnd', MozTransition : 'transitionend', OTransition : 'oTransitionEnd otransitionend', transition : 'transitionend' } for (var name in transEndEventNames) { if (el.style[name] !== undefined) { return { end: transEndEventNames[name] } } } return false // explicit for ie8 ( ._.) } // http://blog.alexmaccaw.com/css-transitions $.fn.emulateTransitionEnd = function (duration) { var called = false var $el = this $(this).one('bsTransitionEnd', function () { called = true }) var callback = function () { if (!called) $($el).trigger($.support.transition.end) } setTimeout(callback, duration) return this } $(function () { $.support.transition = transitionEnd() if (!$.support.transition) return $.event.special.bsTransitionEnd = { bindType: $.support.transition.end, delegateType: $.support.transition.end, handle: function (e) { if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) } } }) }(jQuery); /* ======================================================================== * Bootstrap: alert.js v3.3.7 * http://getbootstrap.com/javascript/#alerts * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // ALERT CLASS DEFINITION // ====================== var dismiss = '[data-dismiss="alert"]' var Alert = function (el) { $(el).on('click', dismiss, this.close) } Alert.VERSION = '3.3.7' Alert.TRANSITION_DURATION = 150 Alert.prototype.close = function (e) { var $this = $(this) var selector = $this.attr('data-target') if (!selector) { selector = $this.attr('href') selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } var $parent = $(selector === '#' ? [] : selector) if (e) e.preventDefault() if (!$parent.length) { $parent = $this.closest('.alert') } $parent.trigger(e = $.Event('close.bs.alert')) if (e.isDefaultPrevented()) return $parent.removeClass('in') function removeElement() { // detach from parent, fire event then clean up data $parent.detach().trigger('closed.bs.alert').remove() } $.support.transition && $parent.hasClass('fade') ? $parent .one('bsTransitionEnd', removeElement) .emulateTransitionEnd(Alert.TRANSITION_DURATION) : removeElement() } // ALERT PLUGIN DEFINITION // ======================= function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.alert') if (!data) $this.data('bs.alert', (data = new Alert(this))) if (typeof option == 'string') data[option].call($this) }) } var old = $.fn.alert $.fn.alert = Plugin $.fn.alert.Constructor = Alert // ALERT NO CONFLICT // ================= $.fn.alert.noConflict = function () { $.fn.alert = old return this } // ALERT DATA-API // ============== $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) }(jQuery); /* ======================================================================== * Bootstrap: button.js v3.3.7 * http://getbootstrap.com/javascript/#buttons * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // BUTTON PUBLIC CLASS DEFINITION // ============================== var Button = function (element, options) { this.$element = $(element) this.options = $.extend({}, Button.DEFAULTS, options) this.isLoading = false } Button.VERSION = '3.3.7' Button.DEFAULTS = { loadingText: 'loading...' } Button.prototype.setState = function (state) { var d = 'disabled' var $el = this.$element var val = $el.is('input') ? 'val' : 'html' var data = $el.data() state += 'Text' if (data.resetText == null) $el.data('resetText', $el[val]()) // push to event loop to allow forms to submit setTimeout($.proxy(function () { $el[val](data[state] == null ? this.options[state] : data[state]) if (state == 'loadingText') { this.isLoading = true $el.addClass(d).attr(d, d).prop(d, true) } else if (this.isLoading) { this.isLoading = false $el.removeClass(d).removeAttr(d).prop(d, false) } }, this), 0) } Button.prototype.toggle = function () { var changed = true var $parent = this.$element.closest('[data-toggle="buttons"]') if ($parent.length) { var $input = this.$element.find('input') if ($input.prop('type') == 'radio') { if ($input.prop('checked')) changed = false $parent.find('.active').removeClass('active') this.$element.addClass('active') } else if ($input.prop('type') == 'checkbox') { if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false this.$element.toggleClass('active') } $input.prop('checked', this.$element.hasClass('active')) if (changed) $input.trigger('change') } else { this.$element.attr('aria-pressed', !this.$element.hasClass('active')) this.$element.toggleClass('active') } } // BUTTON PLUGIN DEFINITION // ======================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.button') var options = typeof option == 'object' && option if (!data) $this.data('bs.button', (data = new Button(this, options))) if (option == 'toggle') data.toggle() else if (option) data.setState(option) }) } var old = $.fn.button $.fn.button = Plugin $.fn.button.Constructor = Button // BUTTON NO CONFLICT // ================== $.fn.button.noConflict = function () { $.fn.button = old return this } // BUTTON DATA-API // =============== $(document) .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { var $btn = $(e.target).closest('.btn') Plugin.call($btn, 'toggle') if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) { // Prevent double click on radios, and the double selections (so cancellation) on checkboxes e.preventDefault() // The target component still receive the focus if ($btn.is('input,button')) $btn.trigger('focus') else $btn.find('input:visible,button:visible').first().trigger('focus') } }) .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) }) }(jQuery); /* ======================================================================== * Bootstrap: carousel.js v3.3.7 * http://getbootstrap.com/javascript/#carousel * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // CAROUSEL CLASS DEFINITION // ========================= var Carousel = function (element, options) { this.$element = $(element) this.$indicators = this.$element.find('.carousel-indicators') this.options = options this.paused = null this.sliding = null this.interval = null this.$active = null this.$items = null this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) } Carousel.VERSION = '3.3.7' Carousel.TRANSITION_DURATION = 600 Carousel.DEFAULTS = { interval: 5000, pause: 'hover', wrap: true, keyboard: true } Carousel.prototype.keydown = function (e) { if (/input|textarea/i.test(e.target.tagName)) return switch (e.which) { case 37: this.prev(); break case 39: this.next(); break default: return } e.preventDefault() } Carousel.prototype.cycle = function (e) { e || (this.paused = false) this.interval && clearInterval(this.interval) this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) return this } Carousel.prototype.getItemIndex = function (item) { this.$items = item.parent().children('.item') return this.$items.index(item || this.$active) } Carousel.prototype.getItemForDirection = function (direction, active) { var activeIndex = this.getItemIndex(active) var willWrap = (direction == 'prev' && activeIndex === 0) || (direction == 'next' && activeIndex == (this.$items.length - 1)) if (willWrap && !this.options.wrap) return active var delta = direction == 'prev' ? -1 : 1 var itemIndex = (activeIndex + delta) % this.$items.length return this.$items.eq(itemIndex) } Carousel.prototype.to = function (pos) { var that = this var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) if (pos > (this.$items.length - 1) || pos < 0) return if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" if (activeIndex == pos) return this.pause().cycle() return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) } Carousel.prototype.pause = function (e) { e || (this.paused = true) if (this.$element.find('.next, .prev').length && $.support.transition) { this.$element.trigger($.support.transition.end) this.cycle(true) } this.interval = clearInterval(this.interval) return this } Carousel.prototype.next = function () { if (this.sliding) return return this.slide('next') } Carousel.prototype.prev = function () { if (this.sliding) return return this.slide('prev') } Carousel.prototype.slide = function (type, next) { var $active = this.$element.find('.item.active') var $next = next || this.getItemForDirection(type, $active) var isCycling = this.interval var direction = type == 'next' ? 'left' : 'right' var that = this if ($next.hasClass('active')) return (this.sliding = false) var relatedTarget = $next[0] var slideEvent = $.Event('slide.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) this.$element.trigger(slideEvent) if (slideEvent.isDefaultPrevented()) return this.sliding = true isCycling && this.pause() if (this.$indicators.length) { this.$indicators.find('.active').removeClass('active') var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) $nextIndicator && $nextIndicator.addClass('active') } var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" if ($.support.transition && this.$element.hasClass('slide')) { $next.addClass(type) $next[0].offsetWidth // force reflow $active.addClass(direction) $next.addClass(direction) $active .one('bsTransitionEnd', function () { $next.removeClass([type, direction].join(' ')).addClass('active') $active.removeClass(['active', direction].join(' ')) that.sliding = false setTimeout(function () { that.$element.trigger(slidEvent) }, 0) }) .emulateTransitionEnd(Carousel.TRANSITION_DURATION) } else { $active.removeClass('active') $next.addClass('active') this.sliding = false this.$element.trigger(slidEvent) } isCycling && this.cycle() return this } // CAROUSEL PLUGIN DEFINITION // ========================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.carousel') var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) var action = typeof option == 'string' ? option : options.slide if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) if (typeof option == 'number') data.to(option) else if (action) data[action]() else if (options.interval) data.pause().cycle() }) } var old = $.fn.carousel $.fn.carousel = Plugin $.fn.carousel.Constructor = Carousel // CAROUSEL NO CONFLICT // ==================== $.fn.carousel.noConflict = function () { $.fn.carousel = old return this } // CAROUSEL DATA-API // ================= var clickHandler = function (e) { var href var $this = $(this) var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 if (!$target.hasClass('carousel')) return var options = $.extend({}, $target.data(), $this.data()) var slideIndex = $this.attr('data-slide-to') if (slideIndex) options.interval = false Plugin.call($target, options) if (slideIndex) { $target.data('bs.carousel').to(slideIndex) } e.preventDefault() } $(document) .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) $(window).on('load', function () { $('[data-ride="carousel"]').each(function () { var $carousel = $(this) Plugin.call($carousel, $carousel.data()) }) }) }(jQuery); /* ======================================================================== * Bootstrap: collapse.js v3.3.7 * http://getbootstrap.com/javascript/#collapse * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ /* jshint latedef: false */ +function ($) { 'use strict'; // COLLAPSE PUBLIC CLASS DEFINITION // ================================ var Collapse = function (element, options) { this.$element = $(element) this.options = $.extend({}, Collapse.DEFAULTS, options) this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' + '[data-toggle="collapse"][data-target="#' + element.id + '"]') this.transitioning = null if (this.options.parent) { this.$parent = this.getParent() } else { this.addAriaAndCollapsedClass(this.$element, this.$trigger) } if (this.options.toggle) this.toggle() } Collapse.VERSION = '3.3.7' Collapse.TRANSITION_DURATION = 350 Collapse.DEFAULTS = { toggle: true } Collapse.prototype.dimension = function () { var hasWidth = this.$element.hasClass('width') return hasWidth ? 'width' : 'height' } Collapse.prototype.show = function () { if (this.transitioning || this.$element.hasClass('in')) return var activesData var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing') if (actives && actives.length) { activesData = actives.data('bs.collapse') if (activesData && activesData.transitioning) return } var startEvent = $.Event('show.bs.collapse') this.$element.trigger(startEvent) if (startEvent.isDefaultPrevented()) return if (actives && actives.length) { Plugin.call(actives, 'hide') activesData || actives.data('bs.collapse', null) } var dimension = this.dimension() this.$element .removeClass('collapse') .addClass('collapsing')[dimension](0) .attr('aria-expanded', true) this.$trigger .removeClass('collapsed') .attr('aria-expanded', true) this.transitioning = 1 var complete = function () { this.$element .removeClass('collapsing') .addClass('collapse in')[dimension]('') this.transitioning = 0 this.$element .trigger('shown.bs.collapse') } if (!$.support.transition) return complete.call(this) var scrollSize = $.camelCase(['scroll', dimension].join('-')) this.$element .one('bsTransitionEnd', $.proxy(complete, this)) .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) } Collapse.prototype.hide = function () { if (this.transitioning || !this.$element.hasClass('in')) return var startEvent = $.Event('hide.bs.collapse') this.$element.trigger(startEvent) if (startEvent.isDefaultPrevented()) return var dimension = this.dimension() this.$element[dimension](this.$element[dimension]())[0].offsetHeight this.$element .addClass('collapsing') .removeClass('collapse in') .attr('aria-expanded', false) this.$trigger .addClass('collapsed') .attr('aria-expanded', false) this.transitioning = 1 var complete = function () { this.transitioning = 0 this.$element .removeClass('collapsing') .addClass('collapse') .trigger('hidden.bs.collapse') } if (!$.support.transition) return complete.call(this) this.$element [dimension](0) .one('bsTransitionEnd', $.proxy(complete, this)) .emulateTransitionEnd(Collapse.TRANSITION_DURATION) } Collapse.prototype.toggle = function () { this[this.$element.hasClass('in') ? 'hide' : 'show']() } Collapse.prototype.getParent = function () { return $(this.options.parent) .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') .each($.proxy(function (i, element) { var $element = $(element) this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) }, this)) .end() } Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { var isOpen = $element.hasClass('in') $element.attr('aria-expanded', isOpen) $trigger .toggleClass('collapsed', !isOpen) .attr('aria-expanded', isOpen) } function getTargetFromTrigger($trigger) { var href var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 return $(target) } // COLLAPSE PLUGIN DEFINITION // ========================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.collapse') var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.collapse $.fn.collapse = Plugin $.fn.collapse.Constructor = Collapse // COLLAPSE NO CONFLICT // ==================== $.fn.collapse.noConflict = function () { $.fn.collapse = old return this } // COLLAPSE DATA-API // ================= $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { var $this = $(this) if (!$this.attr('data-target')) e.preventDefault() var $target = getTargetFromTrigger($this) var data = $target.data('bs.collapse') var option = data ? 'toggle' : $this.data() Plugin.call($target, option) }) }(jQuery); /* ======================================================================== * Bootstrap: dropdown.js v3.3.7 * http://getbootstrap.com/javascript/#dropdowns * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // DROPDOWN CLASS DEFINITION // ========================= var backdrop = '.dropdown-backdrop' var toggle = '[data-toggle="dropdown"]' var Dropdown = function (element) { $(element).on('click.bs.dropdown', this.toggle) } Dropdown.VERSION = '3.3.7' function getParent($this) { var selector = $this.attr('data-target') if (!selector) { selector = $this.attr('href') selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } var $parent = selector && $(selector) return $parent && $parent.length ? $parent : $this.parent() } function clearMenus(e) { if (e && e.which === 3) return $(backdrop).remove() $(toggle).each(function () { var $this = $(this) var $parent = getParent($this) var relatedTarget = { relatedTarget: this } if (!$parent.hasClass('open')) return if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget)) if (e.isDefaultPrevented()) return $this.attr('aria-expanded', 'false') $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget)) }) } Dropdown.prototype.toggle = function (e) { var $this = $(this) if ($this.is('.disabled, :disabled')) return var $parent = getParent($this) var isActive = $parent.hasClass('open') clearMenus() if (!isActive) { if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { // if mobile we use a backdrop because click events don't delegate $(document.createElement('div')) .addClass('dropdown-backdrop') .insertAfter($(this)) .on('click', clearMenus) } var relatedTarget = { relatedTarget: this } $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget)) if (e.isDefaultPrevented()) return $this .trigger('focus') .attr('aria-expanded', 'true') $parent .toggleClass('open') .trigger($.Event('shown.bs.dropdown', relatedTarget)) } return false } Dropdown.prototype.keydown = function (e) { if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return var $this = $(this) e.preventDefault() e.stopPropagation() if ($this.is('.disabled, :disabled')) return var $parent = getParent($this) var isActive = $parent.hasClass('open') if (!isActive && e.which != 27 || isActive && e.which == 27) { if (e.which == 27) $parent.find(toggle).trigger('focus') return $this.trigger('click') } var desc = ' li:not(.disabled):visible a' var $items = $parent.find('.dropdown-menu' + desc) if (!$items.length) return var index = $items.index(e.target) if (e.which == 38 && index > 0) index-- // up if (e.which == 40 && index < $items.length - 1) index++ // down if (!~index) index = 0 $items.eq(index).trigger('focus') } // DROPDOWN PLUGIN DEFINITION // ========================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.dropdown') if (!data) $this.data('bs.dropdown', (data = new Dropdown(this))) if (typeof option == 'string') data[option].call($this) }) } var old = $.fn.dropdown $.fn.dropdown = Plugin $.fn.dropdown.Constructor = Dropdown // DROPDOWN NO CONFLICT // ==================== $.fn.dropdown.noConflict = function () { $.fn.dropdown = old return this } // APPLY TO STANDARD DROPDOWN ELEMENTS // =================================== $(document) .on('click.bs.dropdown.data-api', clearMenus) .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle) .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown) .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown) }(jQuery); /* ======================================================================== * Bootstrap: modal.js v3.3.7 * http://getbootstrap.com/javascript/#modals * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // MODAL CLASS DEFINITION // ====================== var Modal = function (element, options) { this.options = options this.$body = $(document.body) this.$element = $(element) this.$dialog = this.$element.find('.modal-dialog') this.$backdrop = null this.isShown = null this.originalBodyPad = null this.scrollbarWidth = 0 this.ignoreBackdropClick = false if (this.options.remote) { this.$element .find('.modal-content') .load(this.options.remote, $.proxy(function () { this.$element.trigger('loaded.bs.modal') }, this)) } } Modal.VERSION = '3.3.7' Modal.TRANSITION_DURATION = 300 Modal.BACKDROP_TRANSITION_DURATION = 150 Modal.DEFAULTS = { backdrop: true, keyboard: true, show: true } Modal.prototype.toggle = function (_relatedTarget) { return this.isShown ? this.hide() : this.show(_relatedTarget) } Modal.prototype.show = function (_relatedTarget) { var that = this var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget }) this.$element.trigger(e) if (this.isShown || e.isDefaultPrevented()) return this.isShown = true this.checkScrollbar() this.setScrollbar() this.$body.addClass('modal-open') this.escape() this.resize() this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this)) this.$dialog.on('mousedown.dismiss.bs.modal', function () { that.$element.one('mouseup.dismiss.bs.modal', function (e) { if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true }) }) this.backdrop(function () { var transition = $.support.transition && that.$element.hasClass('fade') if (!that.$element.parent().length) { that.$element.appendTo(that.$body) // don't move modals dom position } that.$element .show() .scrollTop(0) that.adjustDialog() if (transition) { that.$element[0].offsetWidth // force reflow } that.$element.addClass('in') that.enforceFocus() var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget }) transition ? that.$dialog // wait for modal to slide in .one('bsTransitionEnd', function () { that.$element.trigger('focus').trigger(e) }) .emulateTransitionEnd(Modal.TRANSITION_DURATION) : that.$element.trigger('focus').trigger(e) }) } Modal.prototype.hide = function (e) { if (e) e.preventDefault() e = $.Event('hide.bs.modal') this.$element.trigger(e) if (!this.isShown || e.isDefaultPrevented()) return this.isShown = false this.escape() this.resize() $(document).off('focusin.bs.modal') this.$element .removeClass('in') .off('click.dismiss.bs.modal') .off('mouseup.dismiss.bs.modal') this.$dialog.off('mousedown.dismiss.bs.modal') $.support.transition && this.$element.hasClass('fade') ? this.$element .one('bsTransitionEnd', $.proxy(this.hideModal, this)) .emulateTransitionEnd(Modal.TRANSITION_DURATION) : this.hideModal() } Modal.prototype.enforceFocus = function () { $(document) .off('focusin.bs.modal') // guard against infinite focus loop .on('focusin.bs.modal', $.proxy(function (e) { if (document !== e.target && this.$element[0] !== e.target && !this.$element.has(e.target).length) { this.$element.trigger('focus') } }, this)) } Modal.prototype.escape = function () { if (this.isShown && this.options.keyboard) { this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) { e.which == 27 && this.hide() }, this)) } else if (!this.isShown) { this.$element.off('keydown.dismiss.bs.modal') } } Modal.prototype.resize = function () { if (this.isShown) { $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this)) } else { $(window).off('resize.bs.modal') } } Modal.prototype.hideModal = function () { var that = this this.$element.hide() this.backdrop(function () { that.$body.removeClass('modal-open') that.resetAdjustments() that.resetScrollbar() that.$element.trigger('hidden.bs.modal') }) } Modal.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove() this.$backdrop = null } Modal.prototype.backdrop = function (callback) { var that = this var animate = this.$element.hasClass('fade') ? 'fade' : '' if (this.isShown && this.options.backdrop) { var doAnimate = $.support.transition && animate this.$backdrop = $(document.createElement('div')) .addClass('modal-backdrop ' + animate) .appendTo(this.$body) this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) { if (this.ignoreBackdropClick) { this.ignoreBackdropClick = false return } if (e.target !== e.currentTarget) return this.options.backdrop == 'static' ? this.$element[0].focus() : this.hide() }, this)) if (doAnimate) this.$backdrop[0].offsetWidth // force reflow this.$backdrop.addClass('in') if (!callback) return doAnimate ? this.$backdrop .one('bsTransitionEnd', callback) .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callback() } else if (!this.isShown && this.$backdrop) { this.$backdrop.removeClass('in') var callbackRemove = function () { that.removeBackdrop() callback && callback() } $.support.transition && this.$element.hasClass('fade') ? this.$backdrop .one('bsTransitionEnd', callbackRemove) .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) : callbackRemove() } else if (callback) { callback() } } // these following methods are used to handle overflowing modals Modal.prototype.handleUpdate = function () { this.adjustDialog() } Modal.prototype.adjustDialog = function () { var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight this.$element.css({ paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '', paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : '' }) } Modal.prototype.resetAdjustments = function () { this.$element.css({ paddingLeft: '', paddingRight: '' }) } Modal.prototype.checkScrollbar = function () { var fullWindowWidth = window.innerWidth if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8 var documentElementRect = document.documentElement.getBoundingClientRect() fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left) } this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth this.scrollbarWidth = this.measureScrollbar() } Modal.prototype.setScrollbar = function () { var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10) this.originalBodyPad = document.body.style.paddingRight || '' if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) } Modal.prototype.resetScrollbar = function () { this.$body.css('padding-right', this.originalBodyPad) } Modal.prototype.measureScrollbar = function () { // thx walsh var scrollDiv = document.createElement('div') scrollDiv.className = 'modal-scrollbar-measure' this.$body.append(scrollDiv) var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth this.$body[0].removeChild(scrollDiv) return scrollbarWidth } // MODAL PLUGIN DEFINITION // ======================= function Plugin(option, _relatedTarget) { return this.each(function () { var $this = $(this) var data = $this.data('bs.modal') var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option) if (!data) $this.data('bs.modal', (data = new Modal(this, options))) if (typeof option == 'string') data[option](_relatedTarget) else if (options.show) data.show(_relatedTarget) }) } var old = $.fn.modal $.fn.modal = Plugin $.fn.modal.Constructor = Modal // MODAL NO CONFLICT // ================= $.fn.modal.noConflict = function () { $.fn.modal = old return this } // MODAL DATA-API // ============== $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) { var $this = $(this) var href = $this.attr('href') var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7 var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data()) if ($this.is('a')) e.preventDefault() $target.one('show.bs.modal', function (showEvent) { if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown $target.one('hidden.bs.modal', function () { $this.is(':visible') && $this.trigger('focus') }) }) Plugin.call($target, option, this) }) }(jQuery); /* ======================================================================== * Bootstrap: tooltip.js v3.3.7 * http://getbootstrap.com/javascript/#tooltip * Inspired by the original jQuery.tipsy by Jason Frame * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // TOOLTIP PUBLIC CLASS DEFINITION // =============================== var Tooltip = function (element, options) { this.type = null this.options = null this.enabled = null this.timeout = null this.hoverState = null this.$element = null this.inState = null this.init('tooltip', element, options) } Tooltip.VERSION = '3.3.7' Tooltip.TRANSITION_DURATION = 150 Tooltip.DEFAULTS = { animation: true, placement: 'top', selector: false, template: '', trigger: 'hover focus', title: '', delay: 0, html: false, container: false, viewport: { selector: 'body', padding: 0 } } Tooltip.prototype.init = function (type, element, options) { this.enabled = true this.type = type this.$element = $(element) this.options = this.getOptions(options) this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport)) this.inState = { click: false, hover: false, focus: false } if (this.$element[0] instanceof document.constructor && !this.options.selector) { throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!') } var triggers = this.options.trigger.split(' ') for (var i = triggers.length; i--;) { var trigger = triggers[i] if (trigger == 'click') { this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this)) } else if (trigger != 'manual') { var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin' var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout' this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this)) this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this)) } } this.options.selector ? (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) : this.fixTitle() } Tooltip.prototype.getDefaults = function () { return Tooltip.DEFAULTS } Tooltip.prototype.getOptions = function (options) { options = $.extend({}, this.getDefaults(), this.$element.data(), options) if (options.delay && typeof options.delay == 'number') { options.delay = { show: options.delay, hide: options.delay } } return options } Tooltip.prototype.getDelegateOptions = function () { var options = {} var defaults = this.getDefaults() this._options && $.each(this._options, function (key, value) { if (defaults[key] != value) options[key] = value }) return options } Tooltip.prototype.enter = function (obj) { var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type) if (!self) { self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) $(obj.currentTarget).data('bs.' + this.type, self) } if (obj instanceof $.Event) { self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true } if (self.tip().hasClass('in') || self.hoverState == 'in') { self.hoverState = 'in' return } clearTimeout(self.timeout) self.hoverState = 'in' if (!self.options.delay || !self.options.delay.show) return self.show() self.timeout = setTimeout(function () { if (self.hoverState == 'in') self.show() }, self.options.delay.show) } Tooltip.prototype.isInStateTrue = function () { for (var key in this.inState) { if (this.inState[key]) return true } return false } Tooltip.prototype.leave = function (obj) { var self = obj instanceof this.constructor ? obj : $(obj.currentTarget).data('bs.' + this.type) if (!self) { self = new this.constructor(obj.currentTarget, this.getDelegateOptions()) $(obj.currentTarget).data('bs.' + this.type, self) } if (obj instanceof $.Event) { self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false } if (self.isInStateTrue()) return clearTimeout(self.timeout) self.hoverState = 'out' if (!self.options.delay || !self.options.delay.hide) return self.hide() self.timeout = setTimeout(function () { if (self.hoverState == 'out') self.hide() }, self.options.delay.hide) } Tooltip.prototype.show = function () { var e = $.Event('show.bs.' + this.type) if (this.hasContent() && this.enabled) { this.$element.trigger(e) var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]) if (e.isDefaultPrevented() || !inDom) return var that = this var $tip = this.tip() var tipId = this.getUID(this.type) this.setContent() $tip.attr('id', tipId) this.$element.attr('aria-describedby', tipId) if (this.options.animation) $tip.addClass('fade') var placement = typeof this.options.placement == 'function' ? this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement var autoToken = /\s?auto?\s?/i var autoPlace = autoToken.test(placement) if (autoPlace) placement = placement.replace(autoToken, '') || 'top' $tip .detach() .css({ top: 0, left: 0, display: 'block' }) .addClass(placement) .data('bs.' + this.type, this) this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element) this.$element.trigger('inserted.bs.' + this.type) var pos = this.getPosition() var actualWidth = $tip[0].offsetWidth var actualHeight = $tip[0].offsetHeight if (autoPlace) { var orgPlacement = placement var viewportDim = this.getPosition(this.$viewport) placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' : placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' : placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' : placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' : placement $tip .removeClass(orgPlacement) .addClass(placement) } var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight) this.applyPlacement(calculatedOffset, placement) var complete = function () { var prevHoverState = that.hoverState that.$element.trigger('shown.bs.' + that.type) that.hoverState = null if (prevHoverState == 'out') that.leave(that) } $.support.transition && this.$tip.hasClass('fade') ? $tip .one('bsTransitionEnd', complete) .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete() } } Tooltip.prototype.applyPlacement = function (offset, placement) { var $tip = this.tip() var width = $tip[0].offsetWidth var height = $tip[0].offsetHeight // manually read margins because getBoundingClientRect includes difference var marginTop = parseInt($tip.css('margin-top'), 10) var marginLeft = parseInt($tip.css('margin-left'), 10) // we must check for NaN for ie 8/9 if (isNaN(marginTop)) marginTop = 0 if (isNaN(marginLeft)) marginLeft = 0 offset.top += marginTop offset.left += marginLeft // $.fn.offset doesn't round pixel values // so we use setOffset directly with our own function B-0 $.offset.setOffset($tip[0], $.extend({ using: function (props) { $tip.css({ top: Math.round(props.top), left: Math.round(props.left) }) } }, offset), 0) $tip.addClass('in') // check to see if placing tip in new offset caused the tip to resize itself var actualWidth = $tip[0].offsetWidth var actualHeight = $tip[0].offsetHeight if (placement == 'top' && actualHeight != height) { offset.top = offset.top + height - actualHeight } var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight) if (delta.left) offset.left += delta.left else offset.top += delta.top var isVertical = /top|bottom/.test(placement) var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight' $tip.offset(offset) this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical) } Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) { this.arrow() .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%') .css(isVertical ? 'top' : 'left', '') } Tooltip.prototype.setContent = function () { var $tip = this.tip() var title = this.getTitle() $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title) $tip.removeClass('fade in top bottom left right') } Tooltip.prototype.hide = function (callback) { var that = this var $tip = $(this.$tip) var e = $.Event('hide.bs.' + this.type) function complete() { if (that.hoverState != 'in') $tip.detach() if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary. that.$element .removeAttr('aria-describedby') .trigger('hidden.bs.' + that.type) } callback && callback() } this.$element.trigger(e) if (e.isDefaultPrevented()) return $tip.removeClass('in') $.support.transition && $tip.hasClass('fade') ? $tip .one('bsTransitionEnd', complete) .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) : complete() this.hoverState = null return this } Tooltip.prototype.fixTitle = function () { var $e = this.$element if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') { $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') } } Tooltip.prototype.hasContent = function () { return this.getTitle() } Tooltip.prototype.getPosition = function ($element) { $element = $element || this.$element var el = $element[0] var isBody = el.tagName == 'BODY' var elRect = el.getBoundingClientRect() if (elRect.width == null) { // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093 elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top }) } var isSvg = window.SVGElement && el instanceof window.SVGElement // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3. // See https://github.com/twbs/bootstrap/issues/20280 var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset()) var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() } var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null return $.extend({}, elRect, scroll, outerDims, elOffset) } Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) { return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } : placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } : placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } : /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width } } Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) { var delta = { top: 0, left: 0 } if (!this.$viewport) return delta var viewportPadding = this.options.viewport && this.options.viewport.padding || 0 var viewportDimensions = this.getPosition(this.$viewport) if (/right|left/.test(placement)) { var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight if (topEdgeOffset < viewportDimensions.top) { // top overflow delta.top = viewportDimensions.top - topEdgeOffset } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset } } else { var leftEdgeOffset = pos.left - viewportPadding var rightEdgeOffset = pos.left + viewportPadding + actualWidth if (leftEdgeOffset < viewportDimensions.left) { // left overflow delta.left = viewportDimensions.left - leftEdgeOffset } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset } } return delta } Tooltip.prototype.getTitle = function () { var title var $e = this.$element var o = this.options title = $e.attr('data-original-title') || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) return title } Tooltip.prototype.getUID = function (prefix) { do prefix += ~~(Math.random() * 1000000) while (document.getElementById(prefix)) return prefix } Tooltip.prototype.tip = function () { if (!this.$tip) { this.$tip = $(this.options.template) if (this.$tip.length != 1) { throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!') } } return this.$tip } Tooltip.prototype.arrow = function () { return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')) } Tooltip.prototype.enable = function () { this.enabled = true } Tooltip.prototype.disable = function () { this.enabled = false } Tooltip.prototype.toggleEnabled = function () { this.enabled = !this.enabled } Tooltip.prototype.toggle = function (e) { var self = this if (e) { self = $(e.currentTarget).data('bs.' + this.type) if (!self) { self = new this.constructor(e.currentTarget, this.getDelegateOptions()) $(e.currentTarget).data('bs.' + this.type, self) } } if (e) { self.inState.click = !self.inState.click if (self.isInStateTrue()) self.enter(self) else self.leave(self) } else { self.tip().hasClass('in') ? self.leave(self) : self.enter(self) } } Tooltip.prototype.destroy = function () { var that = this clearTimeout(this.timeout) this.hide(function () { that.$element.off('.' + that.type).removeData('bs.' + that.type) if (that.$tip) { that.$tip.detach() } that.$tip = null that.$arrow = null that.$viewport = null that.$element = null }) } // TOOLTIP PLUGIN DEFINITION // ========================= function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.tooltip') var options = typeof option == 'object' && option if (!data && /destroy|hide/.test(option)) return if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.tooltip $.fn.tooltip = Plugin $.fn.tooltip.Constructor = Tooltip // TOOLTIP NO CONFLICT // =================== $.fn.tooltip.noConflict = function () { $.fn.tooltip = old return this } }(jQuery); /* ======================================================================== * Bootstrap: popover.js v3.3.7 * http://getbootstrap.com/javascript/#popovers * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // POPOVER PUBLIC CLASS DEFINITION // =============================== var Popover = function (element, options) { this.init('popover', element, options) } if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js') Popover.VERSION = '3.3.7' Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, { placement: 'right', trigger: 'click', content: '', template: '' }) // NOTE: POPOVER EXTENDS tooltip.js // ================================ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype) Popover.prototype.constructor = Popover Popover.prototype.getDefaults = function () { return Popover.DEFAULTS } Popover.prototype.setContent = function () { var $tip = this.tip() var title = this.getTitle() var content = this.getContent() $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text' ](content) $tip.removeClass('fade top bottom left right in') // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do // this manually by checking the contents. if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide() } Popover.prototype.hasContent = function () { return this.getTitle() || this.getContent() } Popover.prototype.getContent = function () { var $e = this.$element var o = this.options return $e.attr('data-content') || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) } Popover.prototype.arrow = function () { return (this.$arrow = this.$arrow || this.tip().find('.arrow')) } // POPOVER PLUGIN DEFINITION // ========================= function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.popover') var options = typeof option == 'object' && option if (!data && /destroy|hide/.test(option)) return if (!data) $this.data('bs.popover', (data = new Popover(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.popover $.fn.popover = Plugin $.fn.popover.Constructor = Popover // POPOVER NO CONFLICT // =================== $.fn.popover.noConflict = function () { $.fn.popover = old return this } }(jQuery); /* ======================================================================== * Bootstrap: scrollspy.js v3.3.7 * http://getbootstrap.com/javascript/#scrollspy * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // SCROLLSPY CLASS DEFINITION // ========================== function ScrollSpy(element, options) { this.$body = $(document.body) this.$scrollElement = $(element).is(document.body) ? $(window) : $(element) this.options = $.extend({}, ScrollSpy.DEFAULTS, options) this.selector = (this.options.target || '') + ' .nav li > a' this.offsets = [] this.targets = [] this.activeTarget = null this.scrollHeight = 0 this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this)) this.refresh() this.process() } ScrollSpy.VERSION = '3.3.7' ScrollSpy.DEFAULTS = { offset: 10 } ScrollSpy.prototype.getScrollHeight = function () { return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) } ScrollSpy.prototype.refresh = function () { var that = this var offsetMethod = 'offset' var offsetBase = 0 this.offsets = [] this.targets = [] this.scrollHeight = this.getScrollHeight() if (!$.isWindow(this.$scrollElement[0])) { offsetMethod = 'position' offsetBase = this.$scrollElement.scrollTop() } this.$body .find(this.selector) .map(function () { var $el = $(this) var href = $el.data('target') || $el.attr('href') var $href = /^#./.test(href) && $(href) return ($href && $href.length && $href.is(':visible') && [[$href[offsetMethod]().top + offsetBase, href]]) || null }) .sort(function (a, b) { return a[0] - b[0] }) .each(function () { that.offsets.push(this[0]) that.targets.push(this[1]) }) } ScrollSpy.prototype.process = function () { var scrollTop = this.$scrollElement.scrollTop() + this.options.offset var scrollHeight = this.getScrollHeight() var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height() var offsets = this.offsets var targets = this.targets var activeTarget = this.activeTarget var i if (this.scrollHeight != scrollHeight) { this.refresh() } if (scrollTop >= maxScroll) { return activeTarget != (i = targets[targets.length - 1]) && this.activate(i) } if (activeTarget && scrollTop < offsets[0]) { this.activeTarget = null return this.clear() } for (i = offsets.length; i--;) { activeTarget != targets[i] && scrollTop >= offsets[i] && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1]) && this.activate(targets[i]) } } ScrollSpy.prototype.activate = function (target) { this.activeTarget = target this.clear() var selector = this.selector + '[data-target="' + target + '"],' + this.selector + '[href="' + target + '"]' var active = $(selector) .parents('li') .addClass('active') if (active.parent('.dropdown-menu').length) { active = active .closest('li.dropdown') .addClass('active') } active.trigger('activate.bs.scrollspy') } ScrollSpy.prototype.clear = function () { $(this.selector) .parentsUntil(this.options.target, '.active') .removeClass('active') } // SCROLLSPY PLUGIN DEFINITION // =========================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.scrollspy') var options = typeof option == 'object' && option if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.scrollspy $.fn.scrollspy = Plugin $.fn.scrollspy.Constructor = ScrollSpy // SCROLLSPY NO CONFLICT // ===================== $.fn.scrollspy.noConflict = function () { $.fn.scrollspy = old return this } // SCROLLSPY DATA-API // ================== $(window).on('load.bs.scrollspy.data-api', function () { $('[data-spy="scroll"]').each(function () { var $spy = $(this) Plugin.call($spy, $spy.data()) }) }) }(jQuery); /* ======================================================================== * Bootstrap: tab.js v3.3.7 * http://getbootstrap.com/javascript/#tabs * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // TAB CLASS DEFINITION // ==================== var Tab = function (element) { // jscs:disable requireDollarBeforejQueryAssignment this.element = $(element) // jscs:enable requireDollarBeforejQueryAssignment } Tab.VERSION = '3.3.7' Tab.TRANSITION_DURATION = 150 Tab.prototype.show = function () { var $this = this.element var $ul = $this.closest('ul:not(.dropdown-menu)') var selector = $this.data('target') if (!selector) { selector = $this.attr('href') selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 } if ($this.parent('li').hasClass('active')) return var $previous = $ul.find('.active:last a') var hideEvent = $.Event('hide.bs.tab', { relatedTarget: $this[0] }) var showEvent = $.Event('show.bs.tab', { relatedTarget: $previous[0] }) $previous.trigger(hideEvent) $this.trigger(showEvent) if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return var $target = $(selector) this.activate($this.closest('li'), $ul) this.activate($target, $target.parent(), function () { $previous.trigger({ type: 'hidden.bs.tab', relatedTarget: $this[0] }) $this.trigger({ type: 'shown.bs.tab', relatedTarget: $previous[0] }) }) } Tab.prototype.activate = function (element, container, callback) { var $active = container.find('> .active') var transition = callback && $.support.transition && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length) function next() { $active .removeClass('active') .find('> .dropdown-menu > .active') .removeClass('active') .end() .find('[data-toggle="tab"]') .attr('aria-expanded', false) element .addClass('active') .find('[data-toggle="tab"]') .attr('aria-expanded', true) if (transition) { element[0].offsetWidth // reflow for transition element.addClass('in') } else { element.removeClass('fade') } if (element.parent('.dropdown-menu').length) { element .closest('li.dropdown') .addClass('active') .end() .find('[data-toggle="tab"]') .attr('aria-expanded', true) } callback && callback() } $active.length && transition ? $active .one('bsTransitionEnd', next) .emulateTransitionEnd(Tab.TRANSITION_DURATION) : next() $active.removeClass('in') } // TAB PLUGIN DEFINITION // ===================== function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.tab') if (!data) $this.data('bs.tab', (data = new Tab(this))) if (typeof option == 'string') data[option]() }) } var old = $.fn.tab $.fn.tab = Plugin $.fn.tab.Constructor = Tab // TAB NO CONFLICT // =============== $.fn.tab.noConflict = function () { $.fn.tab = old return this } // TAB DATA-API // ============ var clickHandler = function (e) { e.preventDefault() Plugin.call($(this), 'show') } $(document) .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler) .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler) }(jQuery); /* ======================================================================== * Bootstrap: affix.js v3.3.7 * http://getbootstrap.com/javascript/#affix * ======================================================================== * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) * ======================================================================== */ +function ($) { 'use strict'; // AFFIX CLASS DEFINITION // ====================== var Affix = function (element, options) { this.options = $.extend({}, Affix.DEFAULTS, options) this.$target = $(this.options.target) .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this)) .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this)) this.$element = $(element) this.affixed = null this.unpin = null this.pinnedOffset = null this.checkPosition() } Affix.VERSION = '3.3.7' Affix.RESET = 'affix affix-top affix-bottom' Affix.DEFAULTS = { offset: 0, target: window } Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) { var scrollTop = this.$target.scrollTop() var position = this.$element.offset() var targetHeight = this.$target.height() if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false if (this.affixed == 'bottom') { if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom' return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom' } var initializing = this.affixed == null var colliderTop = initializing ? scrollTop : position.top var colliderHeight = initializing ? targetHeight : height if (offsetTop != null && scrollTop <= offsetTop) return 'top' if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom' return false } Affix.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset this.$element.removeClass(Affix.RESET).addClass('affix') var scrollTop = this.$target.scrollTop() var position = this.$element.offset() return (this.pinnedOffset = position.top - scrollTop) } Affix.prototype.checkPositionWithEventLoop = function () { setTimeout($.proxy(this.checkPosition, this), 1) } Affix.prototype.checkPosition = function () { if (!this.$element.is(':visible')) return var height = this.$element.height() var offset = this.options.offset var offsetTop = offset.top var offsetBottom = offset.bottom var scrollHeight = Math.max($(document).height(), $(document.body).height()) if (typeof offset != 'object') offsetBottom = offsetTop = offset if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element) if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element) var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom) if (this.affixed != affix) { if (this.unpin != null) this.$element.css('top', '') var affixType = 'affix' + (affix ? '-' + affix : '') var e = $.Event(affixType + '.bs.affix') this.$element.trigger(e) if (e.isDefaultPrevented()) return this.affixed = affix this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null this.$element .removeClass(Affix.RESET) .addClass(affixType) .trigger(affixType.replace('affix', 'affixed') + '.bs.affix') } if (affix == 'bottom') { this.$element.offset({ top: scrollHeight - height - offsetBottom }) } } // AFFIX PLUGIN DEFINITION // ======================= function Plugin(option) { return this.each(function () { var $this = $(this) var data = $this.data('bs.affix') var options = typeof option == 'object' && option if (!data) $this.data('bs.affix', (data = new Affix(this, options))) if (typeof option == 'string') data[option]() }) } var old = $.fn.affix $.fn.affix = Plugin $.fn.affix.Constructor = Affix // AFFIX NO CONFLICT // ================= $.fn.affix.noConflict = function () { $.fn.affix = old return this } // AFFIX DATA-API // ============== $(window).on('load', function () { $('[data-spy="affix"]').each(function () { var $spy = $(this) var data = $spy.data() data.offset = data.offset || {} if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom if (data.offsetTop != null) data.offset.top = data.offsetTop Plugin.call($spy, data) }) }) }(jQuery); MediaConch/Source/Resource/html/js/bootstrap.min.js0000644000000000000000000011026514640052500021313 0ustar rootroot/*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under the MIT license */ if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
    ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);MediaConch/Source/Resource/html/js/datatables.js0000644000000000000000000162600414640052500020624 0ustar rootroot/* * This combined file was created by the DataTables downloader builder: * https://datatables.net/download * * To rebuild or modify this file with the latest versions of the included * software please visit: * https://datatables.net/download/#bs/dt-1.10.13/fh-3.1.2 * * Included libraries: * DataTables 1.10.13, FixedHeader 3.1.2 */ /*! DataTables 1.10.13 * ©2008-2016 SpryMedia Ltd - datatables.net/license */ /** * @summary DataTables * @description Paginate, search and order HTML tables * @version 1.10.13 * @file jquery.dataTables.js * @author SpryMedia Ltd * @contact www.datatables.net * @copyright Copyright 2008-2016 SpryMedia Ltd. * * This source file is free software, available under the following license: * MIT license - http://datatables.net/license * * This source file 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 license files for details. * * For details please refer to: http://www.datatables.net */ /*jslint evil: true, undef: true, browser: true */ /*globals $,require,jQuery,define,_selector_run,_selector_opts,_selector_first,_selector_row_indexes,_ext,_Api,_api_register,_api_registerPlural,_re_new_lines,_re_html,_re_formatted_numeric,_re_escape_regex,_empty,_intVal,_numToDecimal,_isNumber,_isHtml,_htmlNumeric,_pluck,_pluck_order,_range,_stripHtml,_unique,_fnBuildAjax,_fnAjaxUpdate,_fnAjaxParameters,_fnAjaxUpdateDraw,_fnAjaxDataSrc,_fnAddColumn,_fnColumnOptions,_fnAdjustColumnSizing,_fnVisibleToColumnIndex,_fnColumnIndexToVisible,_fnVisbleColumns,_fnGetColumns,_fnColumnTypes,_fnApplyColumnDefs,_fnHungarianMap,_fnCamelToHungarian,_fnLanguageCompat,_fnBrowserDetect,_fnAddData,_fnAddTr,_fnNodeToDataIndex,_fnNodeToColumnIndex,_fnGetCellData,_fnSetCellData,_fnSplitObjNotation,_fnGetObjectDataFn,_fnSetObjectDataFn,_fnGetDataMaster,_fnClearTable,_fnDeleteIndex,_fnInvalidate,_fnGetRowElements,_fnCreateTr,_fnBuildHead,_fnDrawHead,_fnDraw,_fnReDraw,_fnAddOptionsHtml,_fnDetectHeader,_fnGetUniqueThs,_fnFeatureHtmlFilter,_fnFilterComplete,_fnFilterCustom,_fnFilterColumn,_fnFilter,_fnFilterCreateSearch,_fnEscapeRegex,_fnFilterData,_fnFeatureHtmlInfo,_fnUpdateInfo,_fnInfoMacros,_fnInitialise,_fnInitComplete,_fnLengthChange,_fnFeatureHtmlLength,_fnFeatureHtmlPaginate,_fnPageChange,_fnFeatureHtmlProcessing,_fnProcessingDisplay,_fnFeatureHtmlTable,_fnScrollDraw,_fnApplyToChildren,_fnCalculateColumnWidths,_fnThrottle,_fnConvertToWidth,_fnGetWidestNode,_fnGetMaxLenString,_fnStringToCss,_fnSortFlatten,_fnSort,_fnSortAria,_fnSortListener,_fnSortAttachListener,_fnSortingClasses,_fnSortData,_fnSaveState,_fnLoadState,_fnSettingsFromNode,_fnLog,_fnMap,_fnBindAction,_fnCallbackReg,_fnCallbackFire,_fnLengthOverflow,_fnRenderer,_fnDataSource,_fnRowAttributes*/ (function( factory ) { "use strict"; if ( typeof define === 'function' && define.amd ) { // AMD define( ['jquery'], function ( $ ) { return factory( $, window, document ); } ); } else if ( typeof exports === 'object' ) { // CommonJS module.exports = function (root, $) { if ( ! root ) { // CommonJS environments without a window global must pass a // root. This will give an error otherwise root = window; } if ( ! $ ) { $ = typeof window !== 'undefined' ? // jQuery's factory checks for a global window require('jquery') : require('jquery')( root ); } return factory( $, root, root.document ); }; } else { // Browser factory( jQuery, window, document ); } } (function( $, window, document, undefined ) { "use strict"; /** * DataTables is a plug-in for the jQuery Javascript library. It is a highly * flexible tool, based upon the foundations of progressive enhancement, * which will add advanced interaction controls to any HTML table. For a * full list of features please refer to * [DataTables.net](href="http://datatables.net). * * Note that the `DataTable` object is not a global variable but is aliased * to `jQuery.fn.DataTable` and `jQuery.fn.dataTable` through which it may * be accessed. * * @class * @param {object} [init={}] Configuration object for DataTables. Options * are defined by {@link DataTable.defaults} * @requires jQuery 1.7+ * * @example * // Basic initialisation * $(document).ready( function { * $('#example').dataTable(); * } ); * * @example * // Initialisation with configuration options - in this case, disable * // pagination and sorting. * $(document).ready( function { * $('#example').dataTable( { * "paginate": false, * "sort": false * } ); * } ); */ var DataTable = function ( options ) { /** * Perform a jQuery selector action on the table's TR elements (from the tbody) and * return the resulting jQuery object. * @param {string|node|jQuery} sSelector jQuery selector or node collection to act on * @param {object} [oOpts] Optional parameters for modifying the rows to be included * @param {string} [oOpts.filter=none] Select TR elements that meet the current filter * criterion ("applied") or all TR elements (i.e. no filter). * @param {string} [oOpts.order=current] Order of the TR elements in the processed array. * Can be either 'current', whereby the current sorting of the table is used, or * 'original' whereby the original order the data was read into the table is used. * @param {string} [oOpts.page=all] Limit the selection to the currently displayed page * ("current") or not ("all"). If 'current' is given, then order is assumed to be * 'current' and filter is 'applied', regardless of what they might be given as. * @returns {object} jQuery object, filtered by the given selector. * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Highlight every second row * oTable.$('tr:odd').css('backgroundColor', 'blue'); * } ); * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Filter to rows with 'Webkit' in them, add a background colour and then * // remove the filter, thus highlighting the 'Webkit' rows only. * oTable.fnFilter('Webkit'); * oTable.$('tr', {"search": "applied"}).css('backgroundColor', 'blue'); * oTable.fnFilter(''); * } ); */ this.$ = function ( sSelector, oOpts ) { return this.api(true).$( sSelector, oOpts ); }; /** * Almost identical to $ in operation, but in this case returns the data for the matched * rows - as such, the jQuery selector used should match TR row nodes or TD/TH cell nodes * rather than any descendants, so the data can be obtained for the row/cell. If matching * rows are found, the data returned is the original data array/object that was used to * create the row (or a generated array if from a DOM source). * * This method is often useful in-combination with $ where both functions are given the * same parameters and the array indexes will match identically. * @param {string|node|jQuery} sSelector jQuery selector or node collection to act on * @param {object} [oOpts] Optional parameters for modifying the rows to be included * @param {string} [oOpts.filter=none] Select elements that meet the current filter * criterion ("applied") or all elements (i.e. no filter). * @param {string} [oOpts.order=current] Order of the data in the processed array. * Can be either 'current', whereby the current sorting of the table is used, or * 'original' whereby the original order the data was read into the table is used. * @param {string} [oOpts.page=all] Limit the selection to the currently displayed page * ("current") or not ("all"). If 'current' is given, then order is assumed to be * 'current' and filter is 'applied', regardless of what they might be given as. * @returns {array} Data for the matched elements. If any elements, as a result of the * selector, were not TR, TD or TH elements in the DataTable, they will have a null * entry in the array. * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Get the data from the first row in the table * var data = oTable._('tr:first'); * * // Do something useful with the data * alert( "First cell is: "+data[0] ); * } ); * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Filter to 'Webkit' and get all data for * oTable.fnFilter('Webkit'); * var data = oTable._('tr', {"search": "applied"}); * * // Do something with the data * alert( data.length+" rows matched the search" ); * } ); */ this._ = function ( sSelector, oOpts ) { return this.api(true).rows( sSelector, oOpts ).data(); }; /** * Create a DataTables Api instance, with the currently selected tables for * the Api's context. * @param {boolean} [traditional=false] Set the API instance's context to be * only the table referred to by the `DataTable.ext.iApiIndex` option, as was * used in the API presented by DataTables 1.9- (i.e. the traditional mode), * or if all tables captured in the jQuery object should be used. * @return {DataTables.Api} */ this.api = function ( traditional ) { return traditional ? new _Api( _fnSettingsFromNode( this[ _ext.iApiIndex ] ) ) : new _Api( this ); }; /** * Add a single new row or multiple rows of data to the table. Please note * that this is suitable for client-side processing only - if you are using * server-side processing (i.e. "bServerSide": true), then to add data, you * must add it to the data source, i.e. the server-side, through an Ajax call. * @param {array|object} data The data to be added to the table. This can be: *
      *
    • 1D array of data - add a single row with the data provided
    • *
    • 2D array of arrays - add multiple rows in a single call
    • *
    • object - data object when using mData
    • *
    • array of objects - multiple data objects when using mData
    • *
    * @param {bool} [redraw=true] redraw the table or not * @returns {array} An array of integers, representing the list of indexes in * aoData ({@link DataTable.models.oSettings}) that have been added to * the table. * @dtopt API * @deprecated Since v1.10 * * @example * // Global var for counter * var giCount = 2; * * $(document).ready(function() { * $('#example').dataTable(); * } ); * * function fnClickAddRow() { * $('#example').dataTable().fnAddData( [ * giCount+".1", * giCount+".2", * giCount+".3", * giCount+".4" ] * ); * * giCount++; * } */ this.fnAddData = function( data, redraw ) { var api = this.api( true ); /* Check if we want to add multiple rows or not */ var rows = $.isArray(data) && ( $.isArray(data[0]) || $.isPlainObject(data[0]) ) ? api.rows.add( data ) : api.row.add( data ); if ( redraw === undefined || redraw ) { api.draw(); } return rows.flatten().toArray(); }; /** * This function will make DataTables recalculate the column sizes, based on the data * contained in the table and the sizes applied to the columns (in the DOM, CSS or * through the sWidth parameter). This can be useful when the width of the table's * parent element changes (for example a window resize). * @param {boolean} [bRedraw=true] Redraw the table or not, you will typically want to * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable( { * "sScrollY": "200px", * "bPaginate": false * } ); * * $(window).on('resize', function () { * oTable.fnAdjustColumnSizing(); * } ); * } ); */ this.fnAdjustColumnSizing = function ( bRedraw ) { var api = this.api( true ).columns.adjust(); var settings = api.settings()[0]; var scroll = settings.oScroll; if ( bRedraw === undefined || bRedraw ) { api.draw( false ); } else if ( scroll.sX !== "" || scroll.sY !== "" ) { /* If not redrawing, but scrolling, we want to apply the new column sizes anyway */ _fnScrollDraw( settings ); } }; /** * Quickly and simply clear a table * @param {bool} [bRedraw=true] redraw the table or not * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Immediately 'nuke' the current rows (perhaps waiting for an Ajax callback...) * oTable.fnClearTable(); * } ); */ this.fnClearTable = function( bRedraw ) { var api = this.api( true ).clear(); if ( bRedraw === undefined || bRedraw ) { api.draw(); } }; /** * The exact opposite of 'opening' a row, this function will close any rows which * are currently 'open'. * @param {node} nTr the table row to 'close' * @returns {int} 0 on success, or 1 if failed (can't find the row) * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable; * * // 'open' an information row when a row is clicked on * $('#example tbody tr').click( function () { * if ( oTable.fnIsOpen(this) ) { * oTable.fnClose( this ); * } else { * oTable.fnOpen( this, "Temporary row opened", "info_row" ); * } * } ); * * oTable = $('#example').dataTable(); * } ); */ this.fnClose = function( nTr ) { this.api( true ).row( nTr ).child.hide(); }; /** * Remove a row for the table * @param {mixed} target The index of the row from aoData to be deleted, or * the TR element you want to delete * @param {function|null} [callBack] Callback function * @param {bool} [redraw=true] Redraw the table or not * @returns {array} The row that was deleted * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Immediately remove the first row * oTable.fnDeleteRow( 0 ); * } ); */ this.fnDeleteRow = function( target, callback, redraw ) { var api = this.api( true ); var rows = api.rows( target ); var settings = rows.settings()[0]; var data = settings.aoData[ rows[0][0] ]; rows.remove(); if ( callback ) { callback.call( this, settings, data ); } if ( redraw === undefined || redraw ) { api.draw(); } return data; }; /** * Restore the table to it's original state in the DOM by removing all of DataTables * enhancements, alterations to the DOM structure of the table and event listeners. * @param {boolean} [remove=false] Completely remove the table from the DOM * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * // This example is fairly pointless in reality, but shows how fnDestroy can be used * var oTable = $('#example').dataTable(); * oTable.fnDestroy(); * } ); */ this.fnDestroy = function ( remove ) { this.api( true ).destroy( remove ); }; /** * Redraw the table * @param {bool} [complete=true] Re-filter and resort (if enabled) the table before the draw. * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Re-draw the table - you wouldn't want to do it here, but it's an example :-) * oTable.fnDraw(); * } ); */ this.fnDraw = function( complete ) { // Note that this isn't an exact match to the old call to _fnDraw - it takes // into account the new data, but can hold position. this.api( true ).draw( complete ); }; /** * Filter the input based on data * @param {string} sInput String to filter the table on * @param {int|null} [iColumn] Column to limit filtering to * @param {bool} [bRegex=false] Treat as regular expression or not * @param {bool} [bSmart=true] Perform smart filtering or not * @param {bool} [bShowGlobal=true] Show the input global filter in it's input box(es) * @param {bool} [bCaseInsensitive=true] Do case-insensitive matching (true) or not (false) * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Sometime later - filter... * oTable.fnFilter( 'test string' ); * } ); */ this.fnFilter = function( sInput, iColumn, bRegex, bSmart, bShowGlobal, bCaseInsensitive ) { var api = this.api( true ); if ( iColumn === null || iColumn === undefined ) { api.search( sInput, bRegex, bSmart, bCaseInsensitive ); } else { api.column( iColumn ).search( sInput, bRegex, bSmart, bCaseInsensitive ); } api.draw(); }; /** * Get the data for the whole table, an individual row or an individual cell based on the * provided parameters. * @param {int|node} [src] A TR row node, TD/TH cell node or an integer. If given as * a TR node then the data source for the whole row will be returned. If given as a * TD/TH cell node then iCol will be automatically calculated and the data for the * cell returned. If given as an integer, then this is treated as the aoData internal * data index for the row (see fnGetPosition) and the data for that row used. * @param {int} [col] Optional column index that you want the data of. * @returns {array|object|string} If mRow is undefined, then the data for all rows is * returned. If mRow is defined, just data for that row, and is iCol is * defined, only data for the designated cell is returned. * @dtopt API * @deprecated Since v1.10 * * @example * // Row data * $(document).ready(function() { * oTable = $('#example').dataTable(); * * oTable.$('tr').click( function () { * var data = oTable.fnGetData( this ); * // ... do something with the array / object of data for the row * } ); * } ); * * @example * // Individual cell data * $(document).ready(function() { * oTable = $('#example').dataTable(); * * oTable.$('td').click( function () { * var sData = oTable.fnGetData( this ); * alert( 'The cell clicked on had the value of '+sData ); * } ); * } ); */ this.fnGetData = function( src, col ) { var api = this.api( true ); if ( src !== undefined ) { var type = src.nodeName ? src.nodeName.toLowerCase() : ''; return col !== undefined || type == 'td' || type == 'th' ? api.cell( src, col ).data() : api.row( src ).data() || null; } return api.data().toArray(); }; /** * Get an array of the TR nodes that are used in the table's body. Note that you will * typically want to use the '$' API method in preference to this as it is more * flexible. * @param {int} [iRow] Optional row index for the TR element you want * @returns {array|node} If iRow is undefined, returns an array of all TR elements * in the table's body, or iRow is defined, just the TR element requested. * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Get the nodes from the table * var nNodes = oTable.fnGetNodes( ); * } ); */ this.fnGetNodes = function( iRow ) { var api = this.api( true ); return iRow !== undefined ? api.row( iRow ).node() : api.rows().nodes().flatten().toArray(); }; /** * Get the array indexes of a particular cell from it's DOM element * and column index including hidden columns * @param {node} node this can either be a TR, TD or TH in the table's body * @returns {int} If nNode is given as a TR, then a single index is returned, or * if given as a cell, an array of [row index, column index (visible), * column index (all)] is given. * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * $('#example tbody td').click( function () { * // Get the position of the current data from the node * var aPos = oTable.fnGetPosition( this ); * * // Get the data array for this row * var aData = oTable.fnGetData( aPos[0] ); * * // Update the data array and return the value * aData[ aPos[1] ] = 'clicked'; * this.innerHTML = 'clicked'; * } ); * * // Init DataTables * oTable = $('#example').dataTable(); * } ); */ this.fnGetPosition = function( node ) { var api = this.api( true ); var nodeName = node.nodeName.toUpperCase(); if ( nodeName == 'TR' ) { return api.row( node ).index(); } else if ( nodeName == 'TD' || nodeName == 'TH' ) { var cell = api.cell( node ).index(); return [ cell.row, cell.columnVisible, cell.column ]; } return null; }; /** * Check to see if a row is 'open' or not. * @param {node} nTr the table row to check * @returns {boolean} true if the row is currently open, false otherwise * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable; * * // 'open' an information row when a row is clicked on * $('#example tbody tr').click( function () { * if ( oTable.fnIsOpen(this) ) { * oTable.fnClose( this ); * } else { * oTable.fnOpen( this, "Temporary row opened", "info_row" ); * } * } ); * * oTable = $('#example').dataTable(); * } ); */ this.fnIsOpen = function( nTr ) { return this.api( true ).row( nTr ).child.isShown(); }; /** * This function will place a new row directly after a row which is currently * on display on the page, with the HTML contents that is passed into the * function. This can be used, for example, to ask for confirmation that a * particular record should be deleted. * @param {node} nTr The table row to 'open' * @param {string|node|jQuery} mHtml The HTML to put into the row * @param {string} sClass Class to give the new TD cell * @returns {node} The row opened. Note that if the table row passed in as the * first parameter, is not found in the table, this method will silently * return. * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable; * * // 'open' an information row when a row is clicked on * $('#example tbody tr').click( function () { * if ( oTable.fnIsOpen(this) ) { * oTable.fnClose( this ); * } else { * oTable.fnOpen( this, "Temporary row opened", "info_row" ); * } * } ); * * oTable = $('#example').dataTable(); * } ); */ this.fnOpen = function( nTr, mHtml, sClass ) { return this.api( true ) .row( nTr ) .child( mHtml, sClass ) .show() .child()[0]; }; /** * Change the pagination - provides the internal logic for pagination in a simple API * function. With this function you can have a DataTables table go to the next, * previous, first or last pages. * @param {string|int} mAction Paging action to take: "first", "previous", "next" or "last" * or page number to jump to (integer), note that page 0 is the first page. * @param {bool} [bRedraw=true] Redraw the table or not * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * oTable.fnPageChange( 'next' ); * } ); */ this.fnPageChange = function ( mAction, bRedraw ) { var api = this.api( true ).page( mAction ); if ( bRedraw === undefined || bRedraw ) { api.draw(false); } }; /** * Show a particular column * @param {int} iCol The column whose display should be changed * @param {bool} bShow Show (true) or hide (false) the column * @param {bool} [bRedraw=true] Redraw the table or not * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Hide the second column after initialisation * oTable.fnSetColumnVis( 1, false ); * } ); */ this.fnSetColumnVis = function ( iCol, bShow, bRedraw ) { var api = this.api( true ).column( iCol ).visible( bShow ); if ( bRedraw === undefined || bRedraw ) { api.columns.adjust().draw(); } }; /** * Get the settings for a particular table for external manipulation * @returns {object} DataTables settings object. See * {@link DataTable.models.oSettings} * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * var oSettings = oTable.fnSettings(); * * // Show an example parameter from the settings * alert( oSettings._iDisplayStart ); * } ); */ this.fnSettings = function() { return _fnSettingsFromNode( this[_ext.iApiIndex] ); }; /** * Sort the table by a particular column * @param {int} iCol the data index to sort on. Note that this will not match the * 'display index' if you have hidden data entries * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Sort immediately with columns 0 and 1 * oTable.fnSort( [ [0,'asc'], [1,'asc'] ] ); * } ); */ this.fnSort = function( aaSort ) { this.api( true ).order( aaSort ).draw(); }; /** * Attach a sort listener to an element for a given column * @param {node} nNode the element to attach the sort listener to * @param {int} iColumn the column that a click on this node will sort on * @param {function} [fnCallback] callback function when sort is run * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * * // Sort on column 1, when 'sorter' is clicked on * oTable.fnSortListener( document.getElementById('sorter'), 1 ); * } ); */ this.fnSortListener = function( nNode, iColumn, fnCallback ) { this.api( true ).order.listener( nNode, iColumn, fnCallback ); }; /** * Update a table cell or row - this method will accept either a single value to * update the cell with, an array of values with one element for each column or * an object in the same format as the original data source. The function is * self-referencing in order to make the multi column updates easier. * @param {object|array|string} mData Data to update the cell/row with * @param {node|int} mRow TR element you want to update or the aoData index * @param {int} [iColumn] The column to update, give as null or undefined to * update a whole row. * @param {bool} [bRedraw=true] Redraw the table or not * @param {bool} [bAction=true] Perform pre-draw actions or not * @returns {int} 0 on success, 1 on error * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * oTable.fnUpdate( 'Example update', 0, 0 ); // Single cell * oTable.fnUpdate( ['a', 'b', 'c', 'd', 'e'], $('tbody tr')[0] ); // Row * } ); */ this.fnUpdate = function( mData, mRow, iColumn, bRedraw, bAction ) { var api = this.api( true ); if ( iColumn === undefined || iColumn === null ) { api.row( mRow ).data( mData ); } else { api.cell( mRow, iColumn ).data( mData ); } if ( bAction === undefined || bAction ) { api.columns.adjust(); } if ( bRedraw === undefined || bRedraw ) { api.draw(); } return 0; }; /** * Provide a common method for plug-ins to check the version of DataTables being used, in order * to ensure compatibility. * @param {string} sVersion Version string to check for, in the format "X.Y.Z". Note that the * formats "X" and "X.Y" are also acceptable. * @returns {boolean} true if this version of DataTables is greater or equal to the required * version, or false if this version of DataTales is not suitable * @method * @dtopt API * @deprecated Since v1.10 * * @example * $(document).ready(function() { * var oTable = $('#example').dataTable(); * alert( oTable.fnVersionCheck( '1.9.0' ) ); * } ); */ this.fnVersionCheck = _ext.fnVersionCheck; var _that = this; var emptyInit = options === undefined; var len = this.length; if ( emptyInit ) { options = {}; } this.oApi = this.internal = _ext.internal; // Extend with old style plug-in API methods for ( var fn in DataTable.ext.internal ) { if ( fn ) { this[fn] = _fnExternApiFunc(fn); } } this.each(function() { // For each initialisation we want to give it a clean initialisation // object that can be bashed around var o = {}; var oInit = len > 1 ? // optimisation for single table case _fnExtend( o, options, true ) : options; /*global oInit,_that,emptyInit*/ var i=0, iLen, j, jLen, k, kLen; var sId = this.getAttribute( 'id' ); var bInitHandedOff = false; var defaults = DataTable.defaults; var $this = $(this); /* Sanity check */ if ( this.nodeName.toLowerCase() != 'table' ) { _fnLog( null, 0, 'Non-table node initialisation ('+this.nodeName+')', 2 ); return; } /* Backwards compatibility for the defaults */ _fnCompatOpts( defaults ); _fnCompatCols( defaults.column ); /* Convert the camel-case defaults to Hungarian */ _fnCamelToHungarian( defaults, defaults, true ); _fnCamelToHungarian( defaults.column, defaults.column, true ); /* Setting up the initialisation object */ _fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ) ); /* Check to see if we are re-initialising a table */ var allSettings = DataTable.settings; for ( i=0, iLen=allSettings.length ; i').appendTo($this); } oSettings.nTHead = thead[0]; var tbody = $this.children('tbody'); if ( tbody.length === 0 ) { tbody = $('').appendTo($this); } oSettings.nTBody = tbody[0]; var tfoot = $this.children('tfoot'); if ( tfoot.length === 0 && captions.length > 0 && (oSettings.oScroll.sX !== "" || oSettings.oScroll.sY !== "") ) { // If we are a scrolling table, and no footer has been given, then we need to create // a tfoot element for the caption element to be appended to tfoot = $('').appendTo($this); } if ( tfoot.length === 0 || tfoot.children().length === 0 ) { $this.addClass( oClasses.sNoFooter ); } else if ( tfoot.length > 0 ) { oSettings.nTFoot = tfoot[0]; _fnDetectHeader( oSettings.aoFooter, oSettings.nTFoot ); } /* Check if there is data passing into the constructor */ if ( oInit.aaData ) { for ( i=0 ; i/g; // This is not strict ISO8601 - Date.parse() is quite lax, although // implementations differ between browsers. var _re_date = /^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/; // Escape regular expression special characters var _re_escape_regex = new RegExp( '(\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\', '$', '^', '-' ].join('|\\') + ')', 'g' ); // http://en.wikipedia.org/wiki/Foreign_exchange_market // - \u20BD - Russian ruble. // - \u20a9 - South Korean Won // - \u20BA - Turkish Lira // - \u20B9 - Indian Rupee // - R - Brazil (R$) and South Africa // - fr - Swiss Franc // - kr - Swedish krona, Norwegian krone and Danish krone // - \u2009 is thin space and \u202F is narrow no-break space, both used in many // standards as thousands separators. var _re_formatted_numeric = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi; var _empty = function ( d ) { return !d || d === true || d === '-' ? true : false; }; var _intVal = function ( s ) { var integer = parseInt( s, 10 ); return !isNaN(integer) && isFinite(s) ? integer : null; }; // Convert from a formatted number with characters other than `.` as the // decimal place, to a Javascript number var _numToDecimal = function ( num, decimalPoint ) { // Cache created regular expressions for speed as this function is called often if ( ! _re_dic[ decimalPoint ] ) { _re_dic[ decimalPoint ] = new RegExp( _fnEscapeRegex( decimalPoint ), 'g' ); } return typeof num === 'string' && decimalPoint !== '.' ? num.replace( /\./g, '' ).replace( _re_dic[ decimalPoint ], '.' ) : num; }; var _isNumber = function ( d, decimalPoint, formatted ) { var strType = typeof d === 'string'; // If empty return immediately so there must be a number if it is a // formatted string (this stops the string "k", or "kr", etc being detected // as a formatted number for currency if ( _empty( d ) ) { return true; } if ( decimalPoint && strType ) { d = _numToDecimal( d, decimalPoint ); } if ( formatted && strType ) { d = d.replace( _re_formatted_numeric, '' ); } return !isNaN( parseFloat(d) ) && isFinite( d ); }; // A string without HTML in it can be considered to be HTML still var _isHtml = function ( d ) { return _empty( d ) || typeof d === 'string'; }; var _htmlNumeric = function ( d, decimalPoint, formatted ) { if ( _empty( d ) ) { return true; } var html = _isHtml( d ); return ! html ? null : _isNumber( _stripHtml( d ), decimalPoint, formatted ) ? true : null; }; var _pluck = function ( a, prop, prop2 ) { var out = []; var i=0, ien=a.length; // Could have the test in the loop for slightly smaller code, but speed // is essential here if ( prop2 !== undefined ) { for ( ; i') .css( { position: 'fixed', top: 0, left: $(window).scrollLeft()*-1, // allow for scrolling height: 1, width: 1, overflow: 'hidden' } ) .append( $('
    ') .css( { position: 'absolute', top: 1, left: 1, width: 100, overflow: 'scroll' } ) .append( $('
    ') .css( { width: '100%', height: 10 } ) ) ) .appendTo( 'body' ); var outer = n.children(); var inner = outer.children(); // Numbers below, in order, are: // inner.offsetWidth, inner.clientWidth, outer.offsetWidth, outer.clientWidth // // IE6 XP: 100 100 100 83 // IE7 Vista: 100 100 100 83 // IE 8+ Windows: 83 83 100 83 // Evergreen Windows: 83 83 100 83 // Evergreen Mac with scrollbars: 85 85 100 85 // Evergreen Mac without scrollbars: 100 100 100 100 // Get scrollbar width browser.barWidth = outer[0].offsetWidth - outer[0].clientWidth; // IE6/7 will oversize a width 100% element inside a scrolling element, to // include the width of the scrollbar, while other browsers ensure the inner // element is contained without forcing scrolling browser.bScrollOversize = inner[0].offsetWidth === 100 && outer[0].clientWidth !== 100; // In rtl text layout, some browsers (most, but not all) will place the // scrollbar on the left, rather than the right. browser.bScrollbarLeft = Math.round( inner.offset().left ) !== 1; // IE8- don't provide height and width for getBoundingClientRect browser.bBounding = n[0].getBoundingClientRect().width ? true : false; n.remove(); } $.extend( settings.oBrowser, DataTable.__browser ); settings.oScroll.iBarWidth = DataTable.__browser.barWidth; } /** * Array.prototype reduce[Right] method, used for browsers which don't support * JS 1.6. Done this way to reduce code size, since we iterate either way * @param {object} settings dataTables settings object * @memberof DataTable#oApi */ function _fnReduce ( that, fn, init, start, end, inc ) { var i = start, value, isSet = false; if ( init !== undefined ) { value = init; isSet = true; } while ( i !== end ) { if ( ! that.hasOwnProperty(i) ) { continue; } value = isSet ? fn( value, that[i], i, that ) : that[i]; isSet = true; i += inc; } return value; } /** * Add a column to the list used for the table with default values * @param {object} oSettings dataTables settings object * @param {node} nTh The th element for this column * @memberof DataTable#oApi */ function _fnAddColumn( oSettings, nTh ) { // Add column to aoColumns array var oDefaults = DataTable.defaults.column; var iCol = oSettings.aoColumns.length; var oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, { "nTh": nTh ? nTh : document.createElement('th'), "sTitle": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '', "aDataSort": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol], "mData": oDefaults.mData ? oDefaults.mData : iCol, idx: iCol } ); oSettings.aoColumns.push( oCol ); // Add search object for column specific search. Note that the `searchCols[ iCol ]` // passed into extend can be undefined. This allows the user to give a default // with only some of the parameters defined, and also not give a default var searchCols = oSettings.aoPreSearchCols; searchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch, searchCols[ iCol ] ); // Use the default column options function to initialise classes etc _fnColumnOptions( oSettings, iCol, $(nTh).data() ); } /** * Apply options for a column * @param {object} oSettings dataTables settings object * @param {int} iCol column index to consider * @param {object} oOptions object with sType, bVisible and bSearchable etc * @memberof DataTable#oApi */ function _fnColumnOptions( oSettings, iCol, oOptions ) { var oCol = oSettings.aoColumns[ iCol ]; var oClasses = oSettings.oClasses; var th = $(oCol.nTh); // Try to get width information from the DOM. We can't get it from CSS // as we'd need to parse the CSS stylesheet. `width` option can override if ( ! oCol.sWidthOrig ) { // Width attribute oCol.sWidthOrig = th.attr('width') || null; // Style attribute var t = (th.attr('style') || '').match(/width:\s*(\d+[pxem%]+)/); if ( t ) { oCol.sWidthOrig = t[1]; } } /* User specified column options */ if ( oOptions !== undefined && oOptions !== null ) { // Backwards compatibility _fnCompatCols( oOptions ); // Map camel case parameters to their Hungarian counterparts _fnCamelToHungarian( DataTable.defaults.column, oOptions ); /* Backwards compatibility for mDataProp */ if ( oOptions.mDataProp !== undefined && !oOptions.mData ) { oOptions.mData = oOptions.mDataProp; } if ( oOptions.sType ) { oCol._sManualType = oOptions.sType; } // `class` is a reserved word in Javascript, so we need to provide // the ability to use a valid name for the camel case input if ( oOptions.className && ! oOptions.sClass ) { oOptions.sClass = oOptions.className; } $.extend( oCol, oOptions ); _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); /* iDataSort to be applied (backwards compatibility), but aDataSort will take * priority if defined */ if ( oOptions.iDataSort !== undefined ) { oCol.aDataSort = [ oOptions.iDataSort ]; } _fnMap( oCol, oOptions, "aDataSort" ); } /* Cache the data get and set functions for speed */ var mDataSrc = oCol.mData; var mData = _fnGetObjectDataFn( mDataSrc ); var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null; var attrTest = function( src ) { return typeof src === 'string' && src.indexOf('@') !== -1; }; oCol._bAttrSrc = $.isPlainObject( mDataSrc ) && ( attrTest(mDataSrc.sort) || attrTest(mDataSrc.type) || attrTest(mDataSrc.filter) ); oCol._setter = null; oCol.fnGetData = function (rowData, type, meta) { var innerData = mData( rowData, type, undefined, meta ); return mRender && type ? mRender( innerData, type, rowData, meta ) : innerData; }; oCol.fnSetData = function ( rowData, val, meta ) { return _fnSetObjectDataFn( mDataSrc )( rowData, val, meta ); }; // Indicate if DataTables should read DOM data as an object or array // Used in _fnGetRowElements if ( typeof mDataSrc !== 'number' ) { oSettings._rowReadObject = true; } /* Feature sorting overrides column specific when off */ if ( !oSettings.oFeatures.bSort ) { oCol.bSortable = false; th.addClass( oClasses.sSortableNone ); // Have to add class here as order event isn't called } /* Check that the class assignment is correct for sorting */ var bAsc = $.inArray('asc', oCol.asSorting) !== -1; var bDesc = $.inArray('desc', oCol.asSorting) !== -1; if ( !oCol.bSortable || (!bAsc && !bDesc) ) { oCol.sSortingClass = oClasses.sSortableNone; oCol.sSortingClassJUI = ""; } else if ( bAsc && !bDesc ) { oCol.sSortingClass = oClasses.sSortableAsc; oCol.sSortingClassJUI = oClasses.sSortJUIAscAllowed; } else if ( !bAsc && bDesc ) { oCol.sSortingClass = oClasses.sSortableDesc; oCol.sSortingClassJUI = oClasses.sSortJUIDescAllowed; } else { oCol.sSortingClass = oClasses.sSortable; oCol.sSortingClassJUI = oClasses.sSortJUI; } } /** * Adjust the table column widths for new data. Note: you would probably want to * do a redraw after calling this function! * @param {object} settings dataTables settings object * @memberof DataTable#oApi */ function _fnAdjustColumnSizing ( settings ) { /* Not interested in doing column width calculation if auto-width is disabled */ if ( settings.oFeatures.bAutoWidth !== false ) { var columns = settings.aoColumns; _fnCalculateColumnWidths( settings ); for ( var i=0 , iLen=columns.length ; i