From 34af272c54cfe69c1f8cd2a71be30a419f51773a Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 5 Aug 2012 23:07:24 -0500 Subject: [PATCH 001/625] Initial commit of adapthist modifications. --- doc/examples/plot_equalize.py | 8 +- skimage/exposure/_adapthist.pyx | 40 +++ skimage/exposure/clahe.h | 329 ++++++++++++++++++++++++ skimage/exposure/exposure.py | 58 ++++- skimage/exposure/setup.py | 31 +++ skimage/exposure/tests/test_exposure.py | 71 +++++ skimage/setup.py | 1 + 7 files changed, 536 insertions(+), 2 deletions(-) create mode 100644 skimage/exposure/_adapthist.pyx create mode 100644 skimage/exposure/clahe.h create mode 100644 skimage/exposure/setup.py diff --git a/doc/examples/plot_equalize.py b/doc/examples/plot_equalize.py index 1e1291d8..2cb9cbea 100644 --- a/doc/examples/plot_equalize.py +++ b/doc/examples/plot_equalize.py @@ -63,9 +63,12 @@ img_rescale = exposure.rescale_intensity(img, in_range=(p2, p98)) # Equalization img_eq = exposure.equalize(img) +# Adaptive Equalization +img_adapteq = exposure.adapthist(img) + # Display results -f, axes = plt.subplots(2, 3, figsize=(8, 4)) +f, axes = plt.subplots(2, 4, figsize=(8, 4)) ax_img, ax_hist, ax_cdf = plot_img_and_hist(img, axes[:, 0]) ax_img.set_title('Low contrast image') @@ -78,6 +81,9 @@ ax_img, ax_hist, ax_cdf = plot_img_and_hist(img_eq, axes[:, 2]) ax_img.set_title('Histogram equalization') ax_cdf.set_ylabel('Fraction of total intensity') +ax_img, ax_hist, ax_cdf = plot_img_and_hist(img_eq, axes[:, 3]) +ax_img.set_title('Adaptive equalization') +ax_cdf.set_ylabel('Fraction of total intensity') # prevent overlap of y-axis labels plt.subplots_adjust(wspace=0.4) diff --git a/skimage/exposure/_adapthist.pyx b/skimage/exposure/_adapthist.pyx new file mode 100644 index 00000000..16e84336 --- /dev/null +++ b/skimage/exposure/_adapthist.pyx @@ -0,0 +1,40 @@ +import numpy as np +cimport numpy as np + +cdef extern from "clahe.h": + ctypedef unsigned int kz_pixel_t + int CLAHE(kz_pixel_t * pImage, unsigned int uiXRes, unsigned int uiYRes, + kz_pixel_t Min, + kz_pixel_t Max, unsigned int uiNrX, unsigned int uiNrY, + unsigned int uiNrBins, float fCliplimit) + + +def _adapthist(np.ndarray[kz_pixel_t, ndim=2] image, min, max, nx, ny, nbins, + clip_limit=0): + ''' + image - to the input/output image + min - Minimum greyvalue of input image (also becomes min of output image) + max - Maximum greyvalue of input image (also becomes max of output image) + nx - Number of tile regions in the X direction (min 2, max uiMAX_REG_X) + ny - Number of tile regions in the Y direction (min 2, max uiMAX_REG_Y) + nbins - Number of greybins for histogram ("dynamic range") + clip_limit - Normalized cliplimit (higher values give more contrast) + + The number of "effective" greylevels in the output image is set by nbins; + selecting a small value (eg. 128) speeds up processing and still produce + an output image of good quality. The output image will have the same + minimum and maximum value as the input image. A clip limit smaller than 1 + results in standard (non-contrast limited) AHE. + ''' + # we need the image to be divisible by nx and ny + uiYRes = image.shape[0] - image.shape[0] % ny + uiXRes = image.shape[1] - image.shape[1] % nx + + cdef np.ndarray[kz_pixel_t, ndim = 1] flattened + flattened = image[:uiYRes, :uiXRes].ravel() + + ret = CLAHE(< kz_pixel_t * > flattened.data, uiXRes, uiYRes, min, + max, nx, ny, nbins, clip_limit * nbins) + if ret < 0: + print 'clahe error: ', ret + return flattened.reshape((uiYRes, uiXRes)) diff --git a/skimage/exposure/clahe.h b/skimage/exposure/clahe.h new file mode 100644 index 00000000..8b115aa1 --- /dev/null +++ b/skimage/exposure/clahe.h @@ -0,0 +1,329 @@ +/* +ANSI C code from the article + * "Contrast Limited Adaptive Histogram Equalization" + * by Karel Zuiderveld, karel@cv.ruu.nl + * in "Graphics Gems IV", Academic Press, 1994 +============= + +ACM Software License Agreement + +All software, both binary and source published by the Association for Computing Machinery (hereafter, Software) is copyrighted by the Association (hereafter, ACM) and ownership of all right, title and interest in and to the Software remains with ACM. By using or copying the Software, User agrees to abide by the terms of this Agreement. +Noncommercial Use + +The ACM grants to you (hereafter, User) a royalty-free, nonexclusive right to execute, copy, modify and distribute both the binary and source code solely for academic, research and other similar noncommercial uses, subject to the following conditions: + + User acknowledges that the Software is still in the development stage and that it is being supplied "as is," without any support services from ACM. Neither ACM nor the author makes any representations or warranties, express or implied, including, without limitation, any representations or warranties of the merchantability or fitness for any particular purpose, or that the application of the software, will not infringe on any patents or other proprietary rights of others. + ACM shall not be held liable for direct, indirect, incidental or consequential damages arising from any claim by User or any third party with respect to uses allowed under this Agreement, or from any use of the Software. + User agrees to fully indemnify and hold harmless ACM and/or the author(s) of the original work from and against any and all claims, demands, suits, losses, damages, costs and expenses arising out of the User's use of the Software, including, without limitation, arising out of the User's modification of the Software. + User may modify the Software and distribute that modified work to third parties provided that: (a) if posted separately, it clearly acknowledges that it contains material copyrighted by ACM (b) no charge is associated with such copies, (c) User agrees to notify ACM and the Author(s) of the distribution, and (d) User clearly notifies secondary users that such modified work is not the original Software. + User agrees that ACM, the authors of the original work and others may enjoy a royalty-free, non-exclusive license to use, copy, modify and redistribute these modifications to the Software made by the User and distributed to third parties as a derivative work under this agreement. + This agreement will terminate immediately upon User's breach of, or non-compliance with, any of its terms. User may be held liable for any copyright infringement or the infringement of any other proprietary rights in the Software that is caused or facilitated by the User's failure to abide by the terms of this agreement. + This agreement will be construed and enforced in accordance with the law of the state of New York applicable to contracts performed entirely within the State. The parties irrevocably consent to the exclusive jurisdiction of the state or federal courts located in the City of New York for all disputes concerning this agreement. + +Commercial Use + +Any User wishing to make a commercial use of the Software must contact ACM at permissions@acm.org to arrange an appropriate license. Commercial use includes (1) integrating or incorporating all or part of the source code into a product for sale or license by, or on behalf of, User to third parties, or (2) distribution of the binary or source code to third parties for use with a commercial product sold or licensed by, or on behalf of, User. + +Revised 6/98 +*/ + +#ifdef BYTE_IMAGE +typedef unsigned char kz_pixel_t; /* for 8 bit-per-pixel images */ +#define uiNR_OF_GREY (256) +#else +typedef unsigned short kz_pixel_t; /* for 12 bit-per-pixel images (default) */ +# define uiNR_OF_GREY (4096) +#endif + +/* + * ANSI C code from the article + * "Contrast Limited Adaptive Histogram Equalization" + * by Karel Zuiderveld, karel@cv.ruu.nl + * in "Graphics Gems IV", Academic Press, 1994 + * + * + * These functions implement Contrast Limited Adaptive Histogram Equalization. + * The main routine (CLAHE) expects an input image that is stored contiguously in + * memory; the CLAHE output image overwrites the original input image and has the + * same minimum and maximum values (which must be provided by the user). + * This implementation assumes that the X- and Y image resolutions are an integer + * multiple of the X- and Y sizes of the contextual regions. A check on various other + * error conditions is performed. + * + * #define the symbol BYTE_IMAGE to make this implementation suitable for + * 8-bit images. The maximum number of contextual regions can be redefined + * by changing uiMAX_REG_X and/or uiMAX_REG_Y; the use of more than 256 + * contextual regions is not recommended. + * + * The code is ANSI-C and is also C++ compliant. + * + * Author: Karel Zuiderveld, Computer Vision Research Group, + * Utrecht, The Netherlands (karel@cv.ruu.nl) + */ + +/*********************** Local prototypes ************************/ +static void ClipHistogram (unsigned long*, unsigned int, unsigned long); +static void MakeHistogram (kz_pixel_t*, unsigned int, unsigned int, unsigned int, + unsigned long*, unsigned int, kz_pixel_t*); +static void MapHistogram (unsigned long*, kz_pixel_t, kz_pixel_t, + unsigned int, unsigned long); +static void MakeLut (kz_pixel_t*, kz_pixel_t, kz_pixel_t, unsigned int); +static void Interpolate (kz_pixel_t*, int, unsigned long*, unsigned long*, + unsigned long*, unsigned long*, unsigned int, unsigned int, kz_pixel_t*); + +/************** Start of actual code **************/ +#include /* To get prototypes of malloc() and free() */ + + +const unsigned int uiMAX_REG_X = 16; /* max. # contextual regions in x-direction */ +const unsigned int uiMAX_REG_Y = 16; /* max. # contextual regions in y-direction */ + + + +/************************** main function CLAHE ******************/ +int CLAHE (kz_pixel_t* pImage, unsigned int uiXRes, unsigned int uiYRes, + kz_pixel_t Min, kz_pixel_t Max, unsigned int uiNrX, unsigned int uiNrY, + unsigned int uiNrBins, float fCliplimit) +/* pImage - Pointer to the input/output image + * uiXRes - Image resolution in the X direction + * uiYRes - Image resolution in the Y direction + * Min - Minimum greyvalue of input image (also becomes minimum of output image) + * Max - Maximum greyvalue of input image (also becomes maximum of output image) + * uiNrX - Number of contextial regions in the X direction (min 2, max uiMAX_REG_X) + * uiNrY - Number of contextial regions in the Y direction (min 2, max uiMAX_REG_Y) + * uiNrBins - Number of greybins for histogram ("dynamic range") + * float fCliplimit - Normalized cliplimit (higher values give more contrast) + * The number of "effective" greylevels in the output image is set by uiNrBins; selecting + * a small value (eg. 128) speeds up processing and still produce an output image of + * good quality. The output image will have the same minimum and maximum value as the input + * image. A clip limit smaller than 1 results in standard (non-contrast limited) AHE. + */ +{ + unsigned int uiX, uiY; /* counters */ + unsigned int uiXSize, uiYSize, uiSubX, uiSubY; /* size of context. reg. and subimages */ + unsigned int uiXL, uiXR, uiYU, uiYB; /* auxiliary variables interpolation routine */ + unsigned long ulClipLimit, ulNrPixels;/* clip limit and region pixel count */ + kz_pixel_t* pImPointer; /* pointer to image */ + kz_pixel_t aLUT[uiNR_OF_GREY]; /* lookup table used for scaling of input image */ + unsigned long* pulHist, *pulMapArray; /* pointer to histogram and mappings*/ + unsigned long* pulLU, *pulLB, *pulRU, *pulRB; /* auxiliary pointers interpolation */ + + if (uiNrX > uiMAX_REG_X) return -1; /* # of regions x-direction too large */ + if (uiNrY > uiMAX_REG_Y) return -2; /* # of regions y-direction too large */ + if (uiXRes % uiNrX) return -3; /* x-resolution no multiple of uiNrX */ + if (uiYRes % uiNrY) return -4; /* y-resolution no multiple of uiNrY */ + if (Max >= uiNR_OF_GREY) return -5; /* maximum too large */ + if (Min >= Max) return -6; /* minimum equal or larger than maximum */ + if (uiNrX < 2 || uiNrY < 2) return -7;/* at least 4 contextual regions required */ + if (fCliplimit == 1.0) return 0; /* is OK, immediately returns original image. */ + if (uiNrBins == 0) uiNrBins = 128; /* default value when not specified */ + + pulMapArray=(unsigned long *)malloc(sizeof(unsigned long)*uiNrX*uiNrY*uiNrBins); + if (pulMapArray == 0) return -8; /* Not enough memory! (try reducing uiNrBins) */ + + uiXSize = uiXRes/uiNrX; uiYSize = uiYRes/uiNrY; /* Actual size of contextual regions */ + ulNrPixels = (unsigned long)uiXSize * (unsigned long)uiYSize; + + if(fCliplimit > 0.0) { /* Calculate actual cliplimit */ + ulClipLimit = (unsigned long) (fCliplimit * (uiXSize * uiYSize) / uiNrBins); + ulClipLimit = (ulClipLimit < 1UL) ? 1UL : ulClipLimit; + } + else ulClipLimit = 1UL<<14; /* Large value, do not clip (AHE) */ + MakeLut(aLUT, Min, Max, uiNrBins); /* Make lookup table for mapping of greyvalues */ + /* Calculate greylevel mappings for each contextual region */ + for (uiY = 0, pImPointer = pImage; uiY < uiNrY; uiY++) { + for (uiX = 0; uiX < uiNrX; uiX++, pImPointer += uiXSize) { + pulHist = &pulMapArray[uiNrBins * (uiY * uiNrX + uiX)]; + MakeHistogram(pImPointer,uiXRes,uiXSize,uiYSize,pulHist,uiNrBins,aLUT); + ClipHistogram(pulHist, uiNrBins, ulClipLimit); + MapHistogram(pulHist, Min, Max, uiNrBins, ulNrPixels); + } + pImPointer += (uiYSize - 1) * uiXRes; /* skip lines, set pointer */ + } + /* Interpolate greylevel mappings to get CLAHE image */ + for (pImPointer = pImage, uiY = 0; uiY <= uiNrY; uiY++) { + if (uiY == 0) { /* special case: top row */ + uiSubY = uiYSize >> 1; uiYU = 0; uiYB = 0; + } + else { + if (uiY == uiNrY) { /* special case: bottom row */ + uiSubY = uiYSize >> 1; uiYU = uiNrY-1; uiYB = uiYU; + } + else { /* default values */ + uiSubY = uiYSize; uiYU = uiY - 1; uiYB = uiYU + 1; + } + } + for (uiX = 0; uiX <= uiNrX; uiX++) { + if (uiX == 0) { /* special case: left column */ + uiSubX = uiXSize >> 1; uiXL = 0; uiXR = 0; + } + else { + if (uiX == uiNrX) { /* special case: right column */ + uiSubX = uiXSize >> 1; uiXL = uiNrX - 1; uiXR = uiXL; + } + else { /* default values */ + uiSubX = uiXSize; uiXL = uiX - 1; uiXR = uiXL + 1; + } + } + + pulLU = &pulMapArray[uiNrBins * (uiYU * uiNrX + uiXL)]; + pulRU = &pulMapArray[uiNrBins * (uiYU * uiNrX + uiXR)]; + pulLB = &pulMapArray[uiNrBins * (uiYB * uiNrX + uiXL)]; + pulRB = &pulMapArray[uiNrBins * (uiYB * uiNrX + uiXR)]; + Interpolate(pImPointer,uiXRes,pulLU,pulRU,pulLB,pulRB,uiSubX,uiSubY,aLUT); + pImPointer += uiSubX; /* set pointer on next matrix */ + } + pImPointer += (uiSubY - 1) * uiXRes; + } + free(pulMapArray); /* free space for histograms */ + return 0; /* return status OK */ +} +void ClipHistogram (unsigned long* pulHistogram, unsigned int + uiNrGreylevels, unsigned long ulClipLimit) +/* This function performs clipping of the histogram and redistribution of bins. + * The histogram is clipped and the number of excess pixels is counted. Afterwards + * the excess pixels are equally redistributed across the whole histogram (providing + * the bin count is smaller than the cliplimit). + */ +{ + unsigned long* pulBinPointer, *pulEndPointer, *pulHisto; + unsigned long ulNrExcess, ulUpper, ulBinIncr, ulStepSize, i; + long lBinExcess; + + ulNrExcess = 0; pulBinPointer = pulHistogram; + for (i = 0; i < uiNrGreylevels; i++) { /* calculate total number of excess pixels */ + lBinExcess = (long) pulBinPointer[i] - (long) ulClipLimit; + if (lBinExcess > 0) ulNrExcess += lBinExcess; /* excess in current bin */ + }; + + /* Second part: clip histogram and redistribute excess pixels in each bin */ + ulBinIncr = ulNrExcess / uiNrGreylevels; /* average binincrement */ + ulUpper = ulClipLimit - ulBinIncr; /* Bins larger than ulUpper set to cliplimit */ + + for (i = 0; i < uiNrGreylevels; i++) { + if (pulHistogram[i] > ulClipLimit) pulHistogram[i] = ulClipLimit; /* clip bin */ + else { + if (pulHistogram[i] > ulUpper) { /* high bin count */ + ulNrExcess -= pulHistogram[i] - ulUpper; pulHistogram[i]=ulClipLimit; + } + else { /* low bin count */ + ulNrExcess -= ulBinIncr; pulHistogram[i] += ulBinIncr; + } + } + } + + while (ulNrExcess) { /* Redistribute remaining excess */ + pulEndPointer = &pulHistogram[uiNrGreylevels]; pulHisto = pulHistogram; + + while (ulNrExcess && pulHisto < pulEndPointer) { + ulStepSize = uiNrGreylevels / ulNrExcess; + if (ulStepSize < 1) ulStepSize = 1; /* stepsize at least 1 */ + for (pulBinPointer=pulHisto; pulBinPointer < pulEndPointer && ulNrExcess; + pulBinPointer += ulStepSize) { + if (*pulBinPointer < ulClipLimit) { + (*pulBinPointer)++; ulNrExcess--; /* reduce excess */ + } + } + pulHisto++; /* restart redistributing on other bin location */ + } + } +} +void MakeHistogram (kz_pixel_t* pImage, unsigned int uiXRes, + unsigned int uiSizeX, unsigned int uiSizeY, + unsigned long* pulHistogram, + unsigned int uiNrGreylevels, kz_pixel_t* pLookupTable) +/* This function classifies the greylevels present in the array image into + * a greylevel histogram. The pLookupTable specifies the relationship + * between the greyvalue of the pixel (typically between 0 and 4095) and + * the corresponding bin in the histogram (usually containing only 128 bins). + */ +{ + kz_pixel_t* pImagePointer; + unsigned int i; + + for (i = 0; i < uiNrGreylevels; i++) pulHistogram[i] = 0L; /* clear histogram */ + + for (i = 0; i < uiSizeY; i++) { + pImagePointer = &pImage[uiSizeX]; + while (pImage < pImagePointer) pulHistogram[pLookupTable[*pImage++]]++; + pImagePointer += uiXRes; + pImage = &pImagePointer[-uiSizeX]; + } +} + +void MapHistogram (unsigned long* pulHistogram, kz_pixel_t Min, kz_pixel_t Max, + unsigned int uiNrGreylevels, unsigned long ulNrOfPixels) +/* This function calculates the equalized lookup table (mapping) by + * cumulating the input histogram. Note: lookup table is rescaled in range [Min..Max]. + */ +{ + unsigned int i; unsigned long ulSum = 0; + const float fScale = ((float)(Max - Min)) / ulNrOfPixels; + const unsigned long ulMin = (unsigned long) Min; + + for (i = 0; i < uiNrGreylevels; i++) { + ulSum += pulHistogram[i]; pulHistogram[i]=(unsigned long)(ulMin+ulSum*fScale); + if (pulHistogram[i] > Max) pulHistogram[i] = Max; + } +} + +void MakeLut (kz_pixel_t * pLUT, kz_pixel_t Min, kz_pixel_t Max, unsigned int uiNrBins) +/* To speed up histogram clipping, the input image [Min,Max] is scaled down to + * [0,uiNrBins-1]. This function calculates the LUT. + */ +{ + int i; + const kz_pixel_t BinSize = (kz_pixel_t) (1 + (Max - Min) / uiNrBins); + + for (i = Min; i <= Max; i++) pLUT[i] = (i - Min) / BinSize; +} + +void Interpolate (kz_pixel_t * pImage, int uiXRes, unsigned long * pulMapLU, + unsigned long * pulMapRU, unsigned long * pulMapLB, unsigned long * pulMapRB, + unsigned int uiXSize, unsigned int uiYSize, kz_pixel_t * pLUT) +/* pImage - pointer to input/output image + * uiXRes - resolution of image in x-direction + * pulMap* - mappings of greylevels from histograms + * uiXSize - uiXSize of image submatrix + * uiYSize - uiYSize of image submatrix + * pLUT - lookup table containing mapping greyvalues to bins + * This function calculates the new greylevel assignments of pixels within a submatrix + * of the image with size uiXSize and uiYSize. This is done by a bilinear interpolation + * between four different mappings in order to eliminate boundary artifacts. + * It uses a division; since division is often an expensive operation, I added code to + * perform a logical shift instead when feasible. + */ +{ + const unsigned int uiIncr = uiXRes-uiXSize; /* Pointer increment after processing row */ + kz_pixel_t GreyValue; unsigned int uiNum = uiXSize*uiYSize; /* Normalization factor */ + + unsigned int uiXCoef, uiYCoef, uiXInvCoef, uiYInvCoef, uiShift = 0; + + if (uiNum & (uiNum - 1)) /* If uiNum is not a power of two, use division */ + for (uiYCoef = 0, uiYInvCoef = uiYSize; uiYCoef < uiYSize; + uiYCoef++, uiYInvCoef--,pImage+=uiIncr) { + for (uiXCoef = 0, uiXInvCoef = uiXSize; uiXCoef < uiXSize; + uiXCoef++, uiXInvCoef--) { + GreyValue = pLUT[*pImage]; /* get histogram bin value */ + *pImage++ = (kz_pixel_t ) ((uiYInvCoef * (uiXInvCoef*pulMapLU[GreyValue] + + uiXCoef * pulMapRU[GreyValue]) + + uiYCoef * (uiXInvCoef * pulMapLB[GreyValue] + + uiXCoef * pulMapRB[GreyValue])) / uiNum); + } + } + else { /* avoid the division and use a right shift instead */ + while (uiNum >>= 1) uiShift++; /* Calculate 2log of uiNum */ + for (uiYCoef = 0, uiYInvCoef = uiYSize; uiYCoef < uiYSize; + uiYCoef++, uiYInvCoef--,pImage+=uiIncr) { + for (uiXCoef = 0, uiXInvCoef = uiXSize; uiXCoef < uiXSize; + uiXCoef++, uiXInvCoef--) { + GreyValue = pLUT[*pImage]; /* get histogram bin value */ + *pImage++ = (kz_pixel_t)((uiYInvCoef* (uiXInvCoef * pulMapLU[GreyValue] + + uiXCoef * pulMapRU[GreyValue]) + + uiYCoef * (uiXInvCoef * pulMapLB[GreyValue] + + uiXCoef * pulMapRB[GreyValue])) >> uiShift); + } + } + } +} + diff --git a/skimage/exposure/exposure.py b/skimage/exposure/exposure.py index 5a722308..71869915 100644 --- a/skimage/exposure/exposure.py +++ b/skimage/exposure/exposure.py @@ -2,10 +2,13 @@ import numpy as np import skimage from skimage.util.dtype import dtype_range +from skimage.color import rgb2gray +from skimage.util.dtype import convert +from _adapthist import _adapthist __all__ = ['histogram', 'cumulative_distribution', 'equalize', - 'rescale_intensity'] + 'rescale_intensity', 'adapthist'] def histogram(image, nbins=256): @@ -183,3 +186,56 @@ def rescale_intensity(image, in_range=None, out_range=None): image = (image - imin) / float(imax - imin) return dtype(image * (omax - omin) + omin) + + +def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): + '''Contrast Limited Adaptive Histogram Equalization + + Parameters + ---------- + image : array-like + original image + nx : int, optional + Tile regions in the X direction (2, 16) + ny : int, optional + Tile regions in the Y direction (2, 16) + clip_limit : float: optional + Normalized cliplimit (higher values give more contrast) + nbins : int, optional + Greybins for histogram ("dynamic range") + out_range : str, optional + Range of the output image data. + - 'original' - Use original image limits + - 'full' - Use full range of image data type + + Returns + ------- + out - np.ndarray : + equalized image - may be a different shape than the original + ''' + in_type = image.dtype.type + if out_range == 'full': + out_range = None + else: + out_range = (image.min(), image.max()) + # must be converted to 12 bit for CLAHE + image = skimage.img_as_uint(image) + MAX_VAL = 2 ** 12 - 1 + image = rescale_intensity(image, out_range=(0, MAX_VAL)) + # handle color images - CLAHE accepts scalar images only + args = [image.copy(), 0, MAX_VAL, nx, ny, nbins, clip_limit] + if image.ndim == 3: + image = image[:, :, :3] + for channel in range(3): + args[0] = image[:, :, channel] + out = _adapthist(*args) + image[:out.shape[0], :out.shape[1], channel] = out + else: + out = _adapthist(*args) + image[:out.shape[0], :out.shape[1]] = out + # restore to desired output type and output limits + image = rescale_intensity(image) + if in_type != np.uint16: + image = convert(image, in_type) + image = rescale_intensity(image, out_range=out_range) + return image diff --git a/skimage/exposure/setup.py b/skimage/exposure/setup.py new file mode 100644 index 00000000..43bab23f --- /dev/null +++ b/skimage/exposure/setup.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python + +import os +from skimage._build import cython + +base_path = os.path.abspath(os.path.dirname(__file__)) + + +def configuration(parent_package='', top_path=None): + from numpy.distutils.misc_util import Configuration, get_numpy_include_dirs + + config = Configuration('exposure', parent_package, top_path) + config.add_data_dir('tests') + + cython(['_adapthist.pyx'], working_path=base_path) + + config.add_extension('_adapthist', sources=['_adapthist.c'], + include_dirs=[get_numpy_include_dirs()]) + + return config + +if __name__ == '__main__': + from numpy.distutils.core import setup + setup(maintainer='scikits-image developers', + author='scikits-image developers', + maintainer_email='scikits-image@googlegroups.com', + description='Exposure', + url='https://github.com/scikits-image/scikits-image', + license='SciPy License (BSD Style)', + **(configuration(top_path='').todict()) + ) diff --git a/skimage/exposure/tests/test_exposure.py b/skimage/exposure/tests/test_exposure.py index b6ed0b12..fbad207b 100644 --- a/skimage/exposure/tests/test_exposure.py +++ b/skimage/exposure/tests/test_exposure.py @@ -4,6 +4,7 @@ from numpy.testing import assert_array_almost_equal as assert_close import skimage from skimage import data from skimage import exposure +from skimage.color import rgb2gray # Test histogram equalization @@ -71,6 +72,76 @@ def test_rescale_out_range(): assert_close(out, [0, 63, 127]) +# Test rescale intensity +# ====================== + +def test_adapthist_ubyte(): + '''Test a scalar uint8 image + ''' + img = skimage.img_as_ubyte(data.moon()) + adapted = exposure.adapthist(img, clip_limit=0.02) + assert adapted.min() == 0 + assert adapted.max() == 255 + assert img.shape == adapted.shape + assert peak_snr(img, adapted) > 22 + assert norm_brightness_err(img, adapted) < 0.05 + return img, adapted + + +def test_adapthist_float(): + '''Test an RGB float image + ''' + img = skimage.img_as_float(data.lena()) + adapted = exposure.adapthist(img, nx=10, ny=9, clip_limit=0.01, + nbins=128, out_range='original') + assert_almost_equal(adapted.min() , img.min()) + assert_almost_equal(adapted.min(), img.min()) + assert img.shape == adapted.shape + assert peak_snr(img, adapted) > 136 + assert norm_brightness_err(img, adapted) < 0.02 + return data, adapted + + +def peak_snr(img1, img2): + '''Peak signal to noise ratio of two images + + Parameters + ---------- + img1 : array-like + img2 : array-like + + Returns + ------- + peak_snr : float + Peak signal to noise ratio + ''' + if img1.ndim == 3: + img1, img2 = rgb2gray(img1.copy()), rgb2gray(img2.copy()) + mse = 1. / img1.size * np.square(img1 - img2).sum() + _, max_ = dtype_range[img1.dtype.type] + return 20 * np.log(max_ / mse) + + +def norm_brightness_err(img1, img2): + '''Normalized Absolute Mean Brightness Error between two images + + Parameters + ---------- + img1 : array-like + img2 : array-like + + Returns + ------- + norm_brightness_error : float + Normalize absolute mean brightness error + ''' + if img1.ndim == 3: + img1, img2 = rgb2gray(img1), rgb2gray(img2) + ambe = np.abs(img1.mean() - img2.mean()) + nbe = ambe / dtype_range[img1.dtype.type][1] + return nbe + + if __name__ == '__main__': from numpy import testing testing.run_module_suite() diff --git a/skimage/setup.py b/skimage/setup.py index 0afc5bc9..80fdc0cb 100644 --- a/skimage/setup.py +++ b/skimage/setup.py @@ -17,6 +17,7 @@ def configuration(parent_package='', top_path=None): config.add_subpackage('morphology') config.add_subpackage('transform') config.add_subpackage('util') + config.add_subpackage('exposure') def add_test_directories(arg, dirname, fnames): if dirname.split(os.path.sep)[-1] == 'tests': From 819332baa3f624637b52a26c89788b0bf4bb5f74 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 5 Aug 2012 23:27:24 -0500 Subject: [PATCH 002/625] Tests pass and example works on build. --- doc/examples/plot_equalize.py | 4 ++-- skimage/exposure/__init__.py | 2 +- skimage/exposure/tests/test_exposure.py | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/examples/plot_equalize.py b/doc/examples/plot_equalize.py index 2cb9cbea..8b06890a 100644 --- a/doc/examples/plot_equalize.py +++ b/doc/examples/plot_equalize.py @@ -64,7 +64,7 @@ img_rescale = exposure.rescale_intensity(img, in_range=(p2, p98)) img_eq = exposure.equalize(img) # Adaptive Equalization -img_adapteq = exposure.adapthist(img) +img_adapteq = exposure.adapthist(img, clip_limit=0.03) # Display results @@ -81,7 +81,7 @@ ax_img, ax_hist, ax_cdf = plot_img_and_hist(img_eq, axes[:, 2]) ax_img.set_title('Histogram equalization') ax_cdf.set_ylabel('Fraction of total intensity') -ax_img, ax_hist, ax_cdf = plot_img_and_hist(img_eq, axes[:, 3]) +ax_img, ax_hist, ax_cdf = plot_img_and_hist(img_adapteq, axes[:, 3]) ax_img.set_title('Adaptive equalization') ax_cdf.set_ylabel('Fraction of total intensity') diff --git a/skimage/exposure/__init__.py b/skimage/exposure/__init__.py index 7e19d317..a5e6c25a 100644 --- a/skimage/exposure/__init__.py +++ b/skimage/exposure/__init__.py @@ -1,2 +1,2 @@ -from .exposure import histogram, equalize, cumulative_distribution +from .exposure import histogram, equalize, cumulative_distribution, adapthist from .exposure import rescale_intensity diff --git a/skimage/exposure/tests/test_exposure.py b/skimage/exposure/tests/test_exposure.py index fbad207b..963758f3 100644 --- a/skimage/exposure/tests/test_exposure.py +++ b/skimage/exposure/tests/test_exposure.py @@ -5,6 +5,7 @@ import skimage from skimage import data from skimage import exposure from skimage.color import rgb2gray +from skimage.util.dtype import dtype_range # Test histogram equalization @@ -94,6 +95,7 @@ def test_adapthist_float(): img = skimage.img_as_float(data.lena()) adapted = exposure.adapthist(img, nx=10, ny=9, clip_limit=0.01, nbins=128, out_range='original') + assert_almost_equal = np.testing.assert_almost_equal assert_almost_equal(adapted.min() , img.min()) assert_almost_equal(adapted.min(), img.min()) assert img.shape == adapted.shape From 045f6279b441045abf7aeec5c32cda68fb2fec92 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 5 Aug 2012 23:36:39 -0500 Subject: [PATCH 003/625] Added Notes to the docstring. --- skimage/exposure/exposure.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/skimage/exposure/exposure.py b/skimage/exposure/exposure.py index 71869915..df98da1f 100644 --- a/skimage/exposure/exposure.py +++ b/skimage/exposure/exposure.py @@ -212,6 +212,14 @@ def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): ------- out - np.ndarray : equalized image - may be a different shape than the original + + Notes + ----- + * The underlying algorithm relies on an image whose rows and columns are even multiples of + the number of tiles, so the extra rows and columns are left at their original values, thus + preserving the input image shape. + * For RGB or RGBA images, the algorithm is run on each channel. + * For RGBA images, the original alpha channel is removed. ''' in_type = image.dtype.type if out_range == 'full': From 7dc17334a2431fc617f1467cfa47b274c3344159 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sun, 5 Aug 2012 23:42:44 -0500 Subject: [PATCH 004/625] Pep8 fixes. --- doc/examples/plot_equalize.py | 2 +- skimage/exposure/exposure.py | 2 +- skimage/exposure/tests/test_exposure.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/examples/plot_equalize.py b/doc/examples/plot_equalize.py index 8b06890a..e09b5a07 100644 --- a/doc/examples/plot_equalize.py +++ b/doc/examples/plot_equalize.py @@ -26,6 +26,7 @@ import matplotlib.pyplot as plt import numpy as np + def plot_img_and_hist(img, axes, bins=256): """Plot an image along with its histogram and cumulative histogram. @@ -88,4 +89,3 @@ ax_cdf.set_ylabel('Fraction of total intensity') # prevent overlap of y-axis labels plt.subplots_adjust(wspace=0.4) plt.show() - diff --git a/skimage/exposure/exposure.py b/skimage/exposure/exposure.py index df98da1f..fbc2384e 100644 --- a/skimage/exposure/exposure.py +++ b/skimage/exposure/exposure.py @@ -212,7 +212,7 @@ def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): ------- out - np.ndarray : equalized image - may be a different shape than the original - + Notes ----- * The underlying algorithm relies on an image whose rows and columns are even multiples of diff --git a/skimage/exposure/tests/test_exposure.py b/skimage/exposure/tests/test_exposure.py index 963758f3..9d70969a 100644 --- a/skimage/exposure/tests/test_exposure.py +++ b/skimage/exposure/tests/test_exposure.py @@ -96,7 +96,7 @@ def test_adapthist_float(): adapted = exposure.adapthist(img, nx=10, ny=9, clip_limit=0.01, nbins=128, out_range='original') assert_almost_equal = np.testing.assert_almost_equal - assert_almost_equal(adapted.min() , img.min()) + assert_almost_equal(adapted.min(), img.min()) assert_almost_equal(adapted.min(), img.min()) assert img.shape == adapted.shape assert peak_snr(img, adapted) > 136 From 0e957dab3913f1095b11de58cdab081c94300e77 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Mon, 6 Aug 2012 19:06:57 -0500 Subject: [PATCH 005/625] Replaced generic ACM license with the Graphics Gems IV license. --- skimage/exposure/clahe.h | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/skimage/exposure/clahe.h b/skimage/exposure/clahe.h index 8b115aa1..a2721b98 100644 --- a/skimage/exposure/clahe.h +++ b/skimage/exposure/clahe.h @@ -5,26 +5,19 @@ ANSI C code from the article * in "Graphics Gems IV", Academic Press, 1994 ============= -ACM Software License Agreement +http://tog.acm.org/resources/GraphicsGems/ -All software, both binary and source published by the Association for Computing Machinery (hereafter, Software) is copyrighted by the Association (hereafter, ACM) and ownership of all right, title and interest in and to the Software remains with ACM. By using or copying the Software, User agrees to abide by the terms of this Agreement. -Noncommercial Use +EULA: The Graphics Gems code is copyright-protected. +In other words, you cannot claim the text of the code as your +own and resell it. Using the code is permitted in any program, +product, or library, non-commercial or commercial. +Giving credit is not required, though is a nice gesture. +The code comes as-is, and if there are any flaws or problems +with any Gems code, nobody involved with Gems - authors, editors, +publishers, or webmasters - are to be held responsible. +Basically, don't be a jerk, and remember that anything free +comes with no guarantee. -The ACM grants to you (hereafter, User) a royalty-free, nonexclusive right to execute, copy, modify and distribute both the binary and source code solely for academic, research and other similar noncommercial uses, subject to the following conditions: - - User acknowledges that the Software is still in the development stage and that it is being supplied "as is," without any support services from ACM. Neither ACM nor the author makes any representations or warranties, express or implied, including, without limitation, any representations or warranties of the merchantability or fitness for any particular purpose, or that the application of the software, will not infringe on any patents or other proprietary rights of others. - ACM shall not be held liable for direct, indirect, incidental or consequential damages arising from any claim by User or any third party with respect to uses allowed under this Agreement, or from any use of the Software. - User agrees to fully indemnify and hold harmless ACM and/or the author(s) of the original work from and against any and all claims, demands, suits, losses, damages, costs and expenses arising out of the User's use of the Software, including, without limitation, arising out of the User's modification of the Software. - User may modify the Software and distribute that modified work to third parties provided that: (a) if posted separately, it clearly acknowledges that it contains material copyrighted by ACM (b) no charge is associated with such copies, (c) User agrees to notify ACM and the Author(s) of the distribution, and (d) User clearly notifies secondary users that such modified work is not the original Software. - User agrees that ACM, the authors of the original work and others may enjoy a royalty-free, non-exclusive license to use, copy, modify and redistribute these modifications to the Software made by the User and distributed to third parties as a derivative work under this agreement. - This agreement will terminate immediately upon User's breach of, or non-compliance with, any of its terms. User may be held liable for any copyright infringement or the infringement of any other proprietary rights in the Software that is caused or facilitated by the User's failure to abide by the terms of this agreement. - This agreement will be construed and enforced in accordance with the law of the state of New York applicable to contracts performed entirely within the State. The parties irrevocably consent to the exclusive jurisdiction of the state or federal courts located in the City of New York for all disputes concerning this agreement. - -Commercial Use - -Any User wishing to make a commercial use of the Software must contact ACM at permissions@acm.org to arrange an appropriate license. Commercial use includes (1) integrating or incorporating all or part of the source code into a product for sale or license by, or on behalf of, User to third parties, or (2) distribution of the binary or source code to third parties for use with a commercial product sold or licensed by, or on behalf of, User. - -Revised 6/98 */ #ifdef BYTE_IMAGE @@ -107,7 +100,7 @@ int CLAHE (kz_pixel_t* pImage, unsigned int uiXRes, unsigned int uiYRes, kz_pixel_t aLUT[uiNR_OF_GREY]; /* lookup table used for scaling of input image */ unsigned long* pulHist, *pulMapArray; /* pointer to histogram and mappings*/ unsigned long* pulLU, *pulLB, *pulRU, *pulRB; /* auxiliary pointers interpolation */ - + if (uiNrX > uiMAX_REG_X) return -1; /* # of regions x-direction too large */ if (uiNrY > uiMAX_REG_Y) return -2; /* # of regions y-direction too large */ if (uiXRes % uiNrX) return -3; /* x-resolution no multiple of uiNrX */ From 55a3f22ba293bec479d70079f4b28a147659d568 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sat, 11 Aug 2012 15:48:18 -0500 Subject: [PATCH 006/625] Improved support for color images using lab transform. --- skimage/exposure/exposure.py | 60 ++++++++++++++++++++----- skimage/exposure/tests/test_exposure.py | 38 ++++++++++++---- 2 files changed, 77 insertions(+), 21 deletions(-) diff --git a/skimage/exposure/exposure.py b/skimage/exposure/exposure.py index fbc2384e..47c98584 100644 --- a/skimage/exposure/exposure.py +++ b/skimage/exposure/exposure.py @@ -2,7 +2,7 @@ import numpy as np import skimage from skimage.util.dtype import dtype_range -from skimage.color import rgb2gray +import skimage.color as color from skimage.util.dtype import convert from _adapthist import _adapthist @@ -210,7 +210,7 @@ def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): Returns ------- - out - np.ndarray : + out : np.ndarray equalized image - may be a different shape than the original Notes @@ -218,8 +218,17 @@ def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): * The underlying algorithm relies on an image whose rows and columns are even multiples of the number of tiles, so the extra rows and columns are left at their original values, thus preserving the input image shape. - * For RGB or RGBA images, the algorithm is run on each channel. + * For grayscale images, CLAHE is performed on one channel, and a grayscale is returned + * For color images, the following steps are performed: + - The image is converted to LAB color space + - The CLAHE algorithm is run on the L channel + - The image is converted back to RGB space and returned * For RGBA images, the original alpha channel is removed. + + References + ---------- + .. [1] http://tog.acm.org/resources/GraphicsGems/ + .. [2] https://en.wikipedia.org/wiki/CLAHE#CLAHE ''' in_type = image.dtype.type if out_range == 'full': @@ -227,23 +236,50 @@ def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): else: out_range = (image.min(), image.max()) # must be converted to 12 bit for CLAHE - image = skimage.img_as_uint(image) + int_image = skimage.img_as_uint(image) MAX_VAL = 2 ** 12 - 1 - image = rescale_intensity(image, out_range=(0, MAX_VAL)) + int_image = rescale_intensity(int_image, out_range=(0, MAX_VAL)) # handle color images - CLAHE accepts scalar images only - args = [image.copy(), 0, MAX_VAL, nx, ny, nbins, clip_limit] + args = [int_image.copy(), 0, MAX_VAL, nx, ny, nbins, clip_limit] if image.ndim == 3: - image = image[:, :, :3] - for channel in range(3): - args[0] = image[:, :, channel] + # check for grayscale + if (np.allclose(image[:, :, 0], image[:, :, 1]) and + np.allclose(image[:, :, 2], image[:, :, 3])): + args[0] = image[:, :, 0] out = _adapthist(*args) - image[:out.shape[0], :out.shape[1], channel] = out + image = int_image[:, :, :3] + for channel in range(3): + image[:out.shape[0], :out.shape[1], channel] = out + # for color images, convert to LAB space for processing + else: + lab_img = color.rgb2lab(skimage.img_as_float(image)) + L_chan = lab_img[:, :, 0] + L_chan /= np.max(np.abs(L_chan)) + L_chan = skimage.img_as_uint(L_chan) + args[0] = rescale_intensity(L_chan, out_range=(0, MAX_VAL)) + new_L = _adapthist(*args).astype(float) + new_L = rescale_intensity(new_L, out_range=(0, 100)) + lab_img[:new_L.shape[0], :new_L.shape[1], 0] = new_L + image = color.lab2rgb(lab_img) + image = rescale_intensity(image, out_range=(0, 1)) else: out = _adapthist(*args) + image = int_image image[:out.shape[0], :out.shape[1]] = out # restore to desired output type and output limits image = rescale_intensity(image) - if in_type != np.uint16: - image = convert(image, in_type) + image = convert(image, in_type) image = rescale_intensity(image, out_range=out_range) return image + +if __name__ == '__main__': + from skimage import data + import matplotlib.pyplot as plt + img = skimage.img_as_uint(data.lena()) + adapted = adapthist(img, nx=10, ny=9, clip_limit=0.01, + nbins=128, out_range='original') + plt.imshow(img) + plt.figure(); plt.imshow(skimage.img_as_ubyte(adapted)) + plt.figure(); plt.imshow(color.lab2rgb(color.rgb2lab(img))) + plt.show() + print 'Done' \ No newline at end of file diff --git a/skimage/exposure/tests/test_exposure.py b/skimage/exposure/tests/test_exposure.py index 9d70969a..8ce7c8c6 100644 --- a/skimage/exposure/tests/test_exposure.py +++ b/skimage/exposure/tests/test_exposure.py @@ -76,7 +76,7 @@ def test_rescale_out_range(): # Test rescale intensity # ====================== -def test_adapthist_ubyte(): +def test_adapthist_scalar(): '''Test a scalar uint8 image ''' img = skimage.img_as_ubyte(data.moon()) @@ -84,23 +84,43 @@ def test_adapthist_ubyte(): assert adapted.min() == 0 assert adapted.max() == 255 assert img.shape == adapted.shape - assert peak_snr(img, adapted) > 22 - assert norm_brightness_err(img, adapted) < 0.05 + full_scale = skimage.exposure.rescale_intensity(img) + assert_almost_equal = np.testing.assert_almost_equal + assert_almost_equal(peak_snr(full_scale, adapted), 22.19920073) + assert_almost_equal(norm_brightness_err(full_scale, adapted), + 0.04161278) return img, adapted -def test_adapthist_float(): - '''Test an RGB float image +def test_adapthist_grayscale(): + '''Test a grayscale float image ''' img = skimage.img_as_float(data.lena()) + img = rgb2gray(img) adapted = exposure.adapthist(img, nx=10, ny=9, clip_limit=0.01, nbins=128, out_range='original') assert_almost_equal = np.testing.assert_almost_equal assert_almost_equal(adapted.min(), img.min()) - assert_almost_equal(adapted.min(), img.min()) + assert_almost_equal(adapted.max(), img.max()) assert img.shape == adapted.shape - assert peak_snr(img, adapted) > 136 - assert norm_brightness_err(img, adapted) < 0.02 + assert_almost_equal(peak_snr(img, adapted), 131.4962063) + assert_almost_equal(norm_brightness_err(img, adapted), 0.0208805) + return data, adapted + + +def test_adapthist_color(): + '''Test a color uint16 image + ''' + img = skimage.img_as_uint(data.lena()) + adapted = exposure.adapthist(img, clip_limit=0.01) + assert_almost_equal = np.testing.assert_almost_equal + assert adapted.min() == 0 + assert adapted.max() == 65535 + assert img.shape == adapted.shape + full_scale = skimage.exposure.rescale_intensity(img) + assert_almost_equal(peak_snr(full_scale, adapted), 64.29546231) + assert_almost_equal(norm_brightness_err(full_scale, adapted), + 0.181473754) return data, adapted @@ -135,7 +155,7 @@ def norm_brightness_err(img1, img2): Returns ------- norm_brightness_error : float - Normalize absolute mean brightness error + Normalized absolute mean brightness error ''' if img1.ndim == 3: img1, img2 = rgb2gray(img1), rgb2gray(img2) From d9926d8de4fb148dc76a38648757f5149df75316 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Sat, 11 Aug 2012 21:28:08 -0500 Subject: [PATCH 007/625] Passed all tests with full coverage, PEP8 and Pylint performed. --- skimage/exposure/exposure.py | 44 ++++++++++--------------- skimage/exposure/tests/test_exposure.py | 1 + 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/skimage/exposure/exposure.py b/skimage/exposure/exposure.py index 47c98584..32231b00 100644 --- a/skimage/exposure/exposure.py +++ b/skimage/exposure/exposure.py @@ -188,16 +188,17 @@ def rescale_intensity(image, in_range=None, out_range=None): return dtype(image * (omax - omin) + omin) -def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): +def adapthist(image, ntiles_x=8, ntiles_y=8, clip_limit=0.01, nbins=256, + out_range='full'): '''Contrast Limited Adaptive Histogram Equalization Parameters ---------- image : array-like original image - nx : int, optional + ntiles_x : int, optional Tile regions in the X direction (2, 16) - ny : int, optional + ntiles_y : int, optional Tile regions in the Y direction (2, 16) clip_limit : float: optional Normalized cliplimit (higher values give more contrast) @@ -237,15 +238,16 @@ def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): out_range = (image.min(), image.max()) # must be converted to 12 bit for CLAHE int_image = skimage.img_as_uint(image) - MAX_VAL = 2 ** 12 - 1 - int_image = rescale_intensity(int_image, out_range=(0, MAX_VAL)) + max_val = 2 ** 12 - 1 + int_image = rescale_intensity(int_image, out_range=(0, max_val)) # handle color images - CLAHE accepts scalar images only - args = [int_image.copy(), 0, MAX_VAL, nx, ny, nbins, clip_limit] + args = [int_image.copy(), 0, max_val, ntiles_x, ntiles_y, nbins, + clip_limit] if image.ndim == 3: # check for grayscale if (np.allclose(image[:, :, 0], image[:, :, 1]) and - np.allclose(image[:, :, 2], image[:, :, 3])): - args[0] = image[:, :, 0] + np.allclose(image[:, :, 1], image[:, :, 2])): + args[0] = int_image[:, :, 0] out = _adapthist(*args) image = int_image[:, :, :3] for channel in range(3): @@ -253,13 +255,13 @@ def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): # for color images, convert to LAB space for processing else: lab_img = color.rgb2lab(skimage.img_as_float(image)) - L_chan = lab_img[:, :, 0] - L_chan /= np.max(np.abs(L_chan)) - L_chan = skimage.img_as_uint(L_chan) - args[0] = rescale_intensity(L_chan, out_range=(0, MAX_VAL)) - new_L = _adapthist(*args).astype(float) - new_L = rescale_intensity(new_L, out_range=(0, 100)) - lab_img[:new_L.shape[0], :new_L.shape[1], 0] = new_L + l_chan = lab_img[:, :, 0] + l_chan /= np.max(np.abs(l_chan)) + l_chan = skimage.img_as_uint(l_chan) + args[0] = rescale_intensity(l_chan, out_range=(0, max_val)) + new_l = _adapthist(*args).astype(float) + new_l = rescale_intensity(new_l, out_range=(0, 100)) + lab_img[:new_l.shape[0], :new_l.shape[1], 0] = new_l image = color.lab2rgb(lab_img) image = rescale_intensity(image, out_range=(0, 1)) else: @@ -271,15 +273,3 @@ def adapthist(image, nx=8, ny=8, clip_limit=0.01, nbins=256, out_range='full'): image = convert(image, in_type) image = rescale_intensity(image, out_range=out_range) return image - -if __name__ == '__main__': - from skimage import data - import matplotlib.pyplot as plt - img = skimage.img_as_uint(data.lena()) - adapted = adapthist(img, nx=10, ny=9, clip_limit=0.01, - nbins=128, out_range='original') - plt.imshow(img) - plt.figure(); plt.imshow(skimage.img_as_ubyte(adapted)) - plt.figure(); plt.imshow(color.lab2rgb(color.rgb2lab(img))) - plt.show() - print 'Done' \ No newline at end of file diff --git a/skimage/exposure/tests/test_exposure.py b/skimage/exposure/tests/test_exposure.py index 8ce7c8c6..2e64e741 100644 --- a/skimage/exposure/tests/test_exposure.py +++ b/skimage/exposure/tests/test_exposure.py @@ -97,6 +97,7 @@ def test_adapthist_grayscale(): ''' img = skimage.img_as_float(data.lena()) img = rgb2gray(img) + img = np.dstack((img, img, img)) adapted = exposure.adapthist(img, nx=10, ny=9, clip_limit=0.01, nbins=128, out_range='original') assert_almost_equal = np.testing.assert_almost_equal From 6546460f47eb90bfbeab06faf9c9c9d51765405d Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Sun, 30 Sep 2012 15:53:33 +0100 Subject: [PATCH 008/625] COSMIT some pep8 --- skimage/io/collection.py | 4 +++- skimage/transform/pyramids.py | 10 +++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/skimage/io/collection.py b/skimage/io/collection.py index d420b58d..5a5dfff6 100644 --- a/skimage/io/collection.py +++ b/skimage/io/collection.py @@ -11,6 +11,7 @@ from copy import copy import numpy as np from ._io import imread + def concatenate_images(ic): """Concatenate all images in the image collection into an array. @@ -66,6 +67,7 @@ def alphanumeric_key(s): k = [int(c) if c.isdigit() else c for c in re.split('([0-9]+)', s)] return k + class MultiImage(object): """A class containing a single multi-frame image. @@ -217,6 +219,7 @@ class MultiImage(object): """ return concatenate_images(self) + class ImageCollection(object): """Load and manage a collection of image files. @@ -428,4 +431,3 @@ class ImageCollection(object): If images in the `ImageCollection` don't have identical shapes. """ return concatenate_images(self) - diff --git a/skimage/transform/pyramids.py b/skimage/transform/pyramids.py index dd274834..ccace457 100644 --- a/skimage/transform/pyramids.py +++ b/skimage/transform/pyramids.py @@ -143,9 +143,9 @@ def pyramid_gaussian(image, max_layer=-1, downscale=2, sigma=None, order=1, the downscaled images. Note that the first image of the pyramid will be the original, unscaled - image. The total number of images is `max_layer + 1`. In case all layers are - computed, the last image is either a one-pixel image or the image where the - reduction does not change its shape. + image. The total number of images is `max_layer + 1`. In case all layers + are computed, the last image is either a one-pixel image or the image where + the reduction does not change its shape. Parameters ---------- @@ -225,8 +225,8 @@ def pyramid_laplacian(image, max_layer=-1, downscale=2, sigma=None, order=1, Note that the first image of the pyramid will be the difference between the original, unscaled image and its smoothed version. The total number of images is `max_layer + 1`. In case all layers are computed, the last image - is either a one-pixel image or the image where the reduction does not change - its shape. + is either a one-pixel image or the image where the reduction does not + change its shape. Parameters ---------- From f4d59a61aec85d38d63946e6da88804b074b885c Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Sun, 30 Sep 2012 10:58:33 -0400 Subject: [PATCH 009/625] PKG: Start 0.8 development cycle. --- bento.info | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bento.info b/bento.info index affd2473..3e630bc0 100644 --- a/bento.info +++ b/bento.info @@ -1,5 +1,5 @@ Name: scikits-image -Version: 0.7.0 +Version: 0.8.dev0 Summary: Image processing routines for SciPy Url: http://scikits-image.org DownloadUrl: http://github.com/scikits-image/scikits-image diff --git a/setup.py b/setup.py index 89e4a4ac..9823352c 100644 --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ MAINTAINER_EMAIL = 'stefan@sun.ac.za' URL = 'http://scikits-image.org' LICENSE = 'Modified BSD' DOWNLOAD_URL = 'http://github.com/scikits-image/scikits-image' -VERSION = '0.7.0' +VERSION = '0.8dev' PYTHON_VERSION = (2, 5) DEPENDENCIES = { 'numpy': (1, 6), From 0250bb15f6acf6593ef63af0274ec921e16357f2 Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Sun, 30 Sep 2012 11:01:36 -0400 Subject: [PATCH 010/625] PKG: Clarify instructions for gh-pages. Also, clean up some whitespace. --- doc/gh-pages.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/gh-pages.py b/doc/gh-pages.py index 849b7053..87baddda 100644 --- a/doc/gh-pages.py +++ b/doc/gh-pages.py @@ -108,7 +108,7 @@ if __name__ == '__main__': shutil.copytree(html_dir, dest) # copy pdf file into tree #shutil.copy(pjoin(pdf_dir, 'scikits.image.pdf'), pjoin(dest, 'scikits.image.pdf')) - + try: cd(pages_dir) status = sh2('git status | head -1') @@ -117,7 +117,7 @@ if __name__ == '__main__': e = 'On %r, git branch is %r, MUST be "gh-pages"' % (pages_dir, branch) raise RuntimeError(e) - sh("touch .nojekyll") + sh("touch .nojekyll") sh('git add .nojekyll') sh('git add index.html') sh('git add %s' % tag) @@ -131,4 +131,4 @@ if __name__ == '__main__': print print 'Now verify the build in: %r' % dest - print "If everything looks good, 'git push'" + print "If everything looks good, run 'git push' inside doc/gh-pages." From e1072ae43ab17de89f0d6e23af8ce903f007a56a Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Sun, 30 Sep 2012 11:52:48 -0400 Subject: [PATCH 011/625] PKG: Update release notes. Note: added extra spacing around sublists because docutils will complain otherwise. --- RELEASE.txt | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/RELEASE.txt b/RELEASE.txt index 4821d68d..374742c6 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -2,34 +2,52 @@ How to make a new release of ``skimage`` ======================================== - Update release notes. -- Update the version number in setup.py and bento.info and commit + + - To show a list contributors, run ``doc/release/contributors.sh ``, + where ```` is the first commit since the previous release. + +- Update the version number in ``setup.py`` and ``bento.info`` and commit + - Update the docs: + - Edit ``doc/source/themes/agogo/static/docversions.js`` and commit - - Build a clean version of the docs. Run "make" in the root dir, then - ``rm build -rf; make html`` in the docs. Make sure the random.js + - Build a clean version of the docs. Run ``make`` in the root dir, then + ``rm build -rf; make html`` in the docs. Make sure the ``random.js`` - Run ``make html`` again to copy the newly generated ``random.js`` into place. Double check ``random.js``, otherwise the skimage.org front page gets broken! - - Push upstream using "make gh-pages" + - Build using ``make gh-pages``. + - Push upstream: ``git push`` in ``doc/gh-pages``. + - Add the version number as a tag in git:: - git tag v0.6 + git tag v0.X.0 - Push the new meta-data to github:: - git push --tags origin master + git push --tags origin master -- Publish on PyPi: +- Publish on PyPi:: - python setup.py register - python setup.py sdist upload + python setup.py register + python setup.py sdist upload -- Increase the version number in the setup.py file to ``0.Xdev``. +- Increase the version number + + - In ``setup.py``, set to ``0.Xdev``. + - In ``bento.info``, set to ``0.X.dev0``. - Update the web frontpage: The webpage is kept in a separate repo: scikits-image-web - - ``_templates/sidebar_versions.html`` - - ``index.rst`` + + - Sync your branch with the remote repo: ``git pull``. + If you try to ``make gh-pages`` when your branch is out of sync, it + creates headaches. + - Update stable and development version numbers in + ``_templates/sidebar_versions.html``. + - Add release date to ``index.rst`` under "Announcements". + - Build using ``make gh-pages``. + - Push upstream: ``git push`` in ``gh-pages``. - Post release notes on mailing lists, blog, G+, etc. From 186cab916cdbd7d18cbb78437c914c091e8c45aa Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Sun, 30 Sep 2012 17:27:59 -0400 Subject: [PATCH 012/625] PKG: Add attributions to contributors.txt --- CONTRIBUTORS.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index 0e3f1250..5f18e821 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -2,9 +2,9 @@ Project coordination - Nicolas Pinto - Colour spaces and filters. + Colour spaces and filters, and image resizing. Shape views: ``util.shape.view_as_windows`` and ``util.shape.view_as_blocks`` - Montage helpers: ``util.montage`` + Montage helpers: ``util.montage``. - Damian Eads Morphological operators @@ -103,6 +103,7 @@ - Nicolas Poilvert Shape views: ``util.shape.view_as_windows`` and ``util.shape.view_as_blocks`` + Image resizing. - Johannes Schönberger Drawing functions, adaptive thresholding, regionprops, geometric @@ -113,3 +114,6 @@ - Joshua Warner Multichannel random walker segmentation. + +- Petter Strandmark + Perimeter calculation in regionprops. From 7a90420d9c23450a281258ba2fd4d57c23c8e178 Mon Sep 17 00:00:00 2001 From: Tony S Yu Date: Tue, 2 Oct 2012 00:38:56 -0400 Subject: [PATCH 013/625] DOC: Change algorithm for depth of API generation Previously, apigen documented all but the bottom-most level of modules in the package tree. This caused problems when different subpackages had different depths. Instead, just document subpackages (ignore python files, whose public functions should already be loaded into the subpackage). --- doc/tools/apigen.py | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/doc/tools/apigen.py b/doc/tools/apigen.py index f13f2a1b..49c7e6e3 100644 --- a/doc/tools/apigen.py +++ b/doc/tools/apigen.py @@ -381,16 +381,9 @@ class ApiDocWriter(object): modules.append(package_uri) else: dirnames.remove(dirname) - # Check filenames for modules - for filename in filenames: - module_name = filename[:-3] - module_uri = '.'.join((root_uri, module_name)) - if (self._uri2path(module_uri) and - self._survives_exclude(module_uri, 'module')): - modules.append(module_uri) return sorted(modules) - def write_modules_api(self, modules,outdir): + def write_modules_api(self, modules, outdir): # write the list written_modules = [] for m in modules: @@ -427,14 +420,6 @@ class ApiDocWriter(object): os.mkdir(outdir) # compose list of modules modules = self.discover_modules() - # group modules so we have one less level - module_depth = max([len(item.split('.')) for item in modules]) - # modifying modules in-place, so make a copy - for item in modules[:]: - # Do not treat the .py files all as separate modules. - # Like this, only the objects exported in __all__ get picked up. - if not (len(item.split('.')) < module_depth): - modules.remove(item) self.write_modules_api(modules,outdir) def write_index(self, outdir, froot='gen', relative_to=None): From 0d748f19503aa5872aed2279e8e7e081b14fcc62 Mon Sep 17 00:00:00 2001 From: Stefan van der Walt Date: Mon, 1 Oct 2012 23:58:59 -0700 Subject: [PATCH 014/625] DOC: Fix typo in release instructions. --- RELEASE.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE.txt b/RELEASE.txt index 374742c6..96cd2abc 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -12,7 +12,7 @@ How to make a new release of ``skimage`` - Edit ``doc/source/themes/agogo/static/docversions.js`` and commit - Build a clean version of the docs. Run ``make`` in the root dir, then - ``rm build -rf; make html`` in the docs. Make sure the ``random.js`` + ``rm build -rf; make html`` in the docs. - Run ``make html`` again to copy the newly generated ``random.js`` into place. Double check ``random.js``, otherwise the skimage.org front page gets broken! From 127907f5bfc80cc7da7359c15425ebef3569fe54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Sch=C3=B6nberger?= Date: Tue, 2 Oct 2012 18:46:54 +0200 Subject: [PATCH 015/625] Add new doc theme --- doc/source/_static/default.css_t | 144 - .../agogo/static => _static}/docversions.js | 5 +- .../_static/scikits_image_logo_small.png | Bin 32337 -> 0 bytes doc/source/_templates/layout.html | 6 - doc/source/_templates/localtoc.html | 10 +- doc/source/_templates/navbar.html | 5 + doc/source/_templates/navigation.html | 34 +- doc/source/_templates/versions.html | 18 +- doc/source/conf.py | 11 +- doc/source/themes/agogo/layout.html | 58 - doc/source/themes/agogo/static/agogo.css_t | 754 --- doc/source/themes/agogo/theme.conf | 19 - doc/source/themes/scikit-image/layout.html | 113 + doc/source/themes/scikit-image/search.html | 46 + .../static/css/bootstrap-responsive.css | 1058 +++ .../static/css/bootstrap-responsive.min.css | 9 + .../scikit-image/static/css/bootstrap.css | 5774 +++++++++++++++++ .../scikit-image/static/css/bootstrap.min.css | 9 + .../themes/scikit-image/static/css/custom.css | 196 + .../static/img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../static/img/glyphicons-halflings.png | Bin 0 -> 12799 bytes .../themes/scikit-image/static/img/logo.png | Bin 0 -> 45391 bytes .../scikit-image/static/js/bootstrap.js | 2027 ++++++ .../scikit-image/static/js/bootstrap.min.js | 6 + doc/source/themes/scikit-image/theme.conf | 4 + 25 files changed, 9287 insertions(+), 1019 deletions(-) delete mode 100644 doc/source/_static/default.css_t rename doc/source/{themes/agogo/static => _static}/docversions.js (81%) delete mode 100644 doc/source/_static/scikits_image_logo_small.png delete mode 100644 doc/source/_templates/layout.html create mode 100644 doc/source/_templates/navbar.html delete mode 100644 doc/source/themes/agogo/layout.html delete mode 100644 doc/source/themes/agogo/static/agogo.css_t delete mode 100644 doc/source/themes/agogo/theme.conf create mode 100644 doc/source/themes/scikit-image/layout.html create mode 100644 doc/source/themes/scikit-image/search.html create mode 100644 doc/source/themes/scikit-image/static/css/bootstrap-responsive.css create mode 100644 doc/source/themes/scikit-image/static/css/bootstrap-responsive.min.css create mode 100644 doc/source/themes/scikit-image/static/css/bootstrap.css create mode 100644 doc/source/themes/scikit-image/static/css/bootstrap.min.css create mode 100644 doc/source/themes/scikit-image/static/css/custom.css create mode 100644 doc/source/themes/scikit-image/static/img/glyphicons-halflings-white.png create mode 100644 doc/source/themes/scikit-image/static/img/glyphicons-halflings.png create mode 100644 doc/source/themes/scikit-image/static/img/logo.png create mode 100644 doc/source/themes/scikit-image/static/js/bootstrap.js create mode 100644 doc/source/themes/scikit-image/static/js/bootstrap.min.js create mode 100644 doc/source/themes/scikit-image/theme.conf diff --git a/doc/source/_static/default.css_t b/doc/source/_static/default.css_t deleted file mode 100644 index 4497c5e6..00000000 --- a/doc/source/_static/default.css_t +++ /dev/null @@ -1,144 +0,0 @@ -/* This CSS stylesheet is no longer used. Edit agogo.css instead. */ - -/** - * Sphinx stylesheet -- default theme - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - */ - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: {{ theme_bodyfont }}; - font-size: 100%; - background-color: {{ theme_footerbgcolor }}; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - background-color: {{ theme_sidebarbgcolor }}; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: {{ theme_bgcolor }}; - color: {{ theme_textcolor }}; - padding: 0 20px 30px 20px; - overflow: auto; -} - -{%- if theme_rightsidebar|tobool %} -div.bodywrapper { - margin: 0 230px 0 0; -} -{%- endif %} - -div.footer { - color: {{ theme_footertextcolor }}; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: {{ theme_footertextcolor }}; - text-decoration: underline; -} - -div.related { - background-color: {{ theme_relbarbgcolor }}; - line-height: 30px; - color: {{ theme_relbartextcolor }}; -} - -div.related a { - color: {{ theme_relbarlinkcolor }}; -} - -div.sphinxsidebar { - {%- if theme_stickysidebar|tobool %} - top: 30px; - margin: 0; - position: fixed; - overflow: auto; - height: 100%; - {%- endif %} - {%- if theme_rightsidebar|tobool %} - float: right; - {%- if theme_stickysidebar|tobool %} - right: 0; - {%- endif %} - {%- endif %} -} - -{%- if theme_stickysidebar|tobool %} -/* this is nice, but it it leads to hidden headings when jumping - to an anchor */ -/* -div.related { - position: fixed; -} - -div.documentwrapper { - margin-top: 30px; -} -*/ -{%- endif %} - -div.sphinxsidebar h3 { - font-family: {{ theme_headfont }}; - color: {{ theme_sidebartextcolor }}; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar h4 { - font-family: {{ theme_headfont }}; - color: {{ theme_sidebartextcolor }}; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: {{ theme_sidebartextcolor }}; -} - -div.sphinxsidebar a { - color: {{ theme_sidebarlinkcolor }}; -} - -div.sphinxsidebar input { - border: 1px solid {{ theme_sidebarlinkcolor }}; - font-family: sans-serif; - font-size: 1em; -} diff --git a/doc/source/themes/agogo/static/docversions.js b/doc/source/_static/docversions.js similarity index 81% rename from doc/source/themes/agogo/static/docversions.js rename to doc/source/_static/docversions.js index 30f17f40..0b98d7dc 100644 --- a/doc/source/themes/agogo/static/docversions.js +++ b/doc/source/_static/docversions.js @@ -1,7 +1,5 @@ function insert_version_links() { - var labels = ['dev', '0.7.0', '0.6', '0.5', '0.4', '0.3']; - - document.write('
    \n'); + var labels = ['dev', '0.7', '0.6', '0.5', '0.4', '0.3']; for (i = 0; i < labels.length; i++){ open_list = '
  • ' @@ -16,5 +14,4 @@ function insert_version_links() { .replace('VERSION', labels[i]) .replace('URL', 'http://scikits-image.org/docs/' + labels[i])); } - document.write('
\n'); } diff --git a/doc/source/_static/scikits_image_logo_small.png b/doc/source/_static/scikits_image_logo_small.png deleted file mode 100644 index efd71678afd7c964a760e6baf0753bf0e54d71cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32337 zcmXVX1vI7K_qXmEMvd-nBSzQg?(Vo^j2hh+BStqPzPP%(n^B`oPHoaw7NRF@YUekc35u z8u~*{Eg3J$zo)4Ks^?cYJbipEs>n)PNve}0uh^Tdjj{4-DJ?B+J(}U)6WT*!D4>pH zuK7b5$t+A)C47Y8iinM@M(G5d`-*H{x%j;RmY$G>9ZMW)GvMy?|6Ul3>O^m6pw}()tGeZsdA!~c$C{%C>g*xA{~0=~^*fLZM#o&M(yq6YlLIA@+qb6s7uOM$iAdbwMd#lup7EQ1NREt6?2j-%4`q9vb>>8hC5l< z>vF~6{#gO>9Xau8j1=2;B2)7fby2YO+3_Gy&);*n%r0K0Lx+51!FEIX5Jg{UEUac9 zhik)a_>tNmruTi=b)U{55`uKgH`L1Vfvac`BAU& z@*^3|whS^i%};7I#z0G?z@sK4_4^a5I;$kkHwFiV`&~&EVlnc9BMuC7z0J>2^lvaY zOlJ*yWQy1(I7#sH zcjdn%FVY4F7RA^9zjm`ZG1AwkW^Qro9ob!8PEvJ{dPQ4Ud)U=VVipNwn2X>d=c=d) zAm?L0)Z_}B2(#EZF1SlS^1~XFGi>Cgo#^qkRM;-DOX?Zl*g#caH>6*0aGlg|h* z(PNp~z8#>^3rDb08~@)yK}MAN&Oe2~;OVmBsB3tK2Te72#p{XFCi9RBMLgKg4PRl6 z(3e+BWhuAiT)@`l$~7!mgoGDb%w6UhmckBp{BiAT96&__0nsPq93e~N8{f*Tp&^5a zvHV2_-8jHvQ@=Rsu051UF1hS^11;e&uT`wxE5c$D8u-KYbVr`fLpyw&fk$5$96}QR z{iVWx6zheFO;?Hg>WfGd;8Tv`gOiQrB{E)@`ge-lP+l&L^ai09<{%%5baBwiW05$E zmJZD=E6VP?j?*`K*#vnnsx2lb&BX+f^M6NGiO+3 zA;RGb+P}FICa{p=B2t_U4v={Zb_gJURgpZ>(>9QC7-)JlO7w<13;t4})px#SumvByelE2 zwFrq*dq^Rqu zgREAVO21h-Y}p4E#kH!#PmzEI7zS>^&t;UgxVR& zL5mSoO~z%6XBhPF;MkM=NL+TcZ7d;nk7J3m$lF=6a)eV%A$0=hb*z&B2>NFY43eSxSA|TUU8kR{F$GKXwURhvPhsj0|yHU zb0#)QkteA^xG5p29h;Q%1R--B!-U8$;koI5Q{hC#P0Y^=OjN(Z>Ct+vIT#%j?{}pX zW5%1P6Ne^wk!}4`3jaO8?jb5}*?BA)glmlUiqS}4h2-+yn`9l5Ee zKS0GT7n033h#U5RPR}%@1gBZ)zzwP3^d{6`v3lpS8 zknj`R#Arm8S8N$HNCS&d8Cdi-1&aOcTb^sGHd_MXt*S_5lNSyfHNR5S~+Z9_p@3Dr;PF$b=y&#Ot#799ifJ`kagNt z0BcX?H?PDdFbsTK`^LA+p!WUWB8(Z7wru1D`NhTI`rn#Ec1BXnmv|&X(KZfCE3MYM z0=)(28XTBME~mjHWyq>_XpPIxs8@UAg#`s69llS_lT!Fj&liJai7tLwxgpcRn8JUE z9NWYk99V?BZ?{Le#KMAQtx>#O^qk#M+6r~JqbcxZVFU#%R`fQrbS z=}DR?+|*zUSD+6}r(brh0GVe?jE;=bw`rb55{)C5$2nnI2JzZyf7ifF59 z9p-@shb4LzmV%s|b@hWg>yQvse27jjfZ14^o15Ftdr)<|lln;~9lB|-+G;o6Hn62p zc$4a31Z&f*e@IZ~i z8>H+n{$q|?e=Nn3fyDqbFEzv5TW0tRZCCC4SQll#xk_&?#_N$H)lXKr>3En^{Ar&W=&LQO|%DIqmfG_|LdmgYLjRX&GW zkyxPa-_nD}kqE)s6Va1L>uc*epAsETwkbi=m*HouP@a^tzd00OlikrYpX*6!pgDwk z2rBvd3h}P_aBU67ynXb3I-t_DW1DV2Ps6ns-*gH2hRmw{#oopvn`X(l2b-TXmtw3< zdeDRRz&fJ}=4-@c7M|oWU5(p?o&AHEk_?JCZl=)To9V#P#+d$xB|I^5L=n`=xGY*K z#dg(9FE?!E2qXanWrG00XX39UPOR{OS#3?nR>abqUoenTzE9B^RJpohQ`Wn+-L9GDpXvp5BAiaw%jPXOE- zPfB`iqb*hv-T9NK$(59pAcgf(Ve`5;qEHo%mS!83jrf1a(JlLmMM2@?-+_=tni8l3WwtXW;w&M$JVdJq@>B^Wd-g}1-ZF_k!&5Qaa7W$xA!J0njd9o6BZg?nkQ&6 z;rG9b)I6 z?8ytJ`tH`{NOzWm@vImbCWpGJStcG_iPi}_xeDd@MvCna;kwZz7kp`6I;BH4r71q_ z)^^q~HNdR=T`B?^-&tOhC^Db0jbSAkYfMZXPu5kF_-{g1j;GSW)J7F+TE$nfJ5)%b)7M4h+loIT0w(FG%ec@WUAB)n_otnryy!36`%~gb&d$yr_Zwll^|rY0J?HuU zVtZ%j1g*ez0_v381`YHtJFQO4) zMbo{AF!$Hb7Kq1vDI0%foH(IpfQ+uLD3>z4>Z$v?Oh6YI%{IZYH!)0wks=^{;Y%F+@y zl-p6Po?;EvKT~(=321JaS2^!xM4jAx4$}I@!|usD5&cwcJ_r-xL|QpKEXT;i6!_O7iMeJ0_Xk6h>yIe@S^u6N*hpyEw0_DGHxe~*gB;xk&y#NfoSy%0>+;TEiVmSLVubB=2C zR-jY;4G_kealEmkAiPru;o){r6=&9fV)*_Mt=Ydu=E7Pwy8T!RD~`An6*J{0<% zaJ-`)6*hZ)AG$O9wlGkzUql7oZ>f2im;?UAE$^wP@N_^o&bO?@Xk zJiNX^G~zNJ6I5o~HDs2hB;=`T zCwav0r{J{(j zt_BPOB})gBOXo20FMsTAR^X@6Y9QY*rV$G8kP(UGuH1aBo2>Rhoe@gn-Z`|fhQHZ_ z4o-5Jf4)|Vt=Un4MNS|6_Mcuo+sF>W6Ww>nrswB=TMN82D~gcr{~%g9ao66;&e}XS z>7;7Ge02FT1$&1%@ZW#tjJ!EZ#VakuAClsSHjDe$`r}RAOx4z9!jFm+K6s=jh7R*= zfK-(tr1loD2PZLci#3$LbY>?~|E7jTiGiUWxYX_rFZ?gKK3t`R(aLUJL+4rf&l&ve z)kZT}&!#`av`LvNasgy)!U(ZkAZa3kM|@0efe-&jnMS%!8FGGP^*SN5{oizt&&?sG zi%aok#)~p`c~cek`jp^4r55fJh4nA-7RwZ*ZfZk*G<*$H9r^g3T8;H%@=i%0PDR{V zSB^2LahBFybq3%6=$NOutC=G$IEViJ76|V*(@74o)P0ptdlfxFy}mfut98g&T-5t- zvZzzBGd6mQ*cs!Y;_(V}ePN=2b%2U9Qp2v80D;hc`t<49+cbTb!dK*rxQO{dkdCpu zw!atUGRXstVU@eRe64N>*3->5QCnvvkr+@q0MLFMFNo>u>kkN|u^M1}{L+zU`0KYH z?KM~N;FD;keoU>fwu_6)fZLIGed%7+2%$Rp!em2w>Pk8aYciv-e5w(vu!aGixc@{4 zaitHq!g1$=s8p1@RX_F zj34w;{$t_Mn&`SA2!>d0eyPBoF*3>cgEWDM zqz+LC!%pASw^5vl$7fzTLp0O=*>6^6)SmtZKviagrr3JB`NvN&em^53BMI3}pn?(5 z&1Q;J(FoWB0GNNOxvBoUq_DX;4V{RG-TT%a064wCFt2i063I@CpPEt&#UL35BjXSV z{9tbPzN4k1D^$;zot^c$9HP_FI#gw0VlvUG{2Bx?z5tF3SR}DtgO=0D+&M9~g?NnwmQzM7^Qt zc|}D(bvstT^sQoI+9W^&7~X&-*WPDtUP(u5*maZ?&_ z-#YaPxc3g+C00#FiLueAb>Nu%ZD(XyXW;D_jFIqD-v5lU+N>YP4e?R#_mUz?%4X_J z!PW}@k$R_X$ym3wPEFp3sG%6JYHl*fX`yP|w{Yd*b;{lO~tu9Zg;6STz{R(+|*i8oo0l+$^UB?(j1NOb6xVahCqPgT)NF-?tP6!@L@mim*u@sWg48#Dcf0hfC(rFfQ+!kx6tqlE2uEbE8_Y287;S(3HTx?UGQp@ ztL=J99@z2O?6&&zqeCB{4pr#;0FF0ClVUJcypm$7?;$)%)xn9kLUQVmTk& zNvu6ta01wx*!#Hp`MOYK<>cWG5hx#@9VX*$Zbko^veMG6ycpq27lj`ozzO|6NaB9~ z$=ut!wK6T=4(Y(WupV`(Ax`c6V01jKoH+vk3$_X%aIXMstv2mNcrPw;tUpzv`xmZ; zDUy_dpmelP+&{@)_NCEC1)G-Uk6T!e<}3H64&RrO*E}+d)Lf(h#zTWL)EYad0a_Il95IFEgV1^Y0bwbB=j0)Cf}Xf!Fj?#LeFHqTxOVnx0)w4)!OWo~A34 zSMvxVg5fabtV_;il++i*ox4x2ZPpBm+esW>C*;O}I zZbzE?^%=o_3tM#+DY1&8 z7pDhSa!T4IbFD@u^n@D|nugrL*IJM74iGu!S5-}5MxEHO%KD#QN80M*Nl8h;1$TeT zr~pJdZ38EG;ItEjZVb{v|NdKON)Vdu_+1;i9|FS02ty9*^)sGc5{`{kn_65vR9^7X zWGJv0P32hjIx6>*D~!ex#{ymzGUJO02lG_N2>*=lrMzJHG-;DK!q&Mwu0@6t@;vMF zC?r$3brfzaC)?@wa$9`n9Sl(Rj5x*VW6nDZ>AJ>7Ynz^f!F=n@eUD#WLCI=r>gv79 z{*UT@mkHVD!%UUu-H2qd+1W8iE#Te_wC=3cEWcYY)_aEj>_-y#koKfxOZb^r z`1YhwTu068dlS}~^00>Ahm}sKk|@<$9pbA_)6I8x{#$c{<5Znh5&0^htg?VW5K>uA zh#k}P`l1xNz3x)a#0Aaq@|;rLEF@n$H8~V)?LJQ{mYW*f)5RHF*Z+wgO^dVSIx=eC z7w-d?b{ZG#Z$-yi7DJeKHgR<1vz{m#H;7ogF4;2o^FAd*!MNQ7u&hFu1-2bmb_a;q^c%AlJBFAPSi*M>) zLyd*a_Y5mF>4+5^6M$%W4)#9{82$4$UB@oucFg&&v=y+lb8VR=<;edbkckxk#5)ry zf{Wh$$Lok_P$gb$5E5F>-o3X{2wB-uRpI4 zb9R0o;{w8ERpYCv0tN5x}zKQ&nOfAa;Z)_fr9 z;Pz#K%(dX<1X)j~K>09NUUbv}#(`7upz0 zjsYm0C=!9>T!}C>J-x$54!b$#lG0Lv2SLT@?MZ2}9sJJwe$tT2xdj0C7FSg4p7&x} z17PfZ`eg}uV~0xu+V0H!e63kON|whaGC&sMoCLetJg-vuU91|P3&o3kQZa?DRSE^O z^?s%#CVn3vv{o@PQu_9-!kDA2x;hRJ)N4JjcB76?PhE2HRYe|#lx=Km{xn&)l)tM! zILd-?0OE^Npw(@5ril@Lq?b=&9h;Ep-C#d!yTaHS__fuCqdfZ2K%9VkfTy+qL;?9A zK40lvkRIUs*fJA8Pepz&%uJ)5xLfeT2TJny{ffw7oCLHs<@__>D&c5q$= zIHh4^etang&d9xCm}i#@LkV;)fE!Wmd1ck$xOUojr@IkK^vz_Y#jPV;sj}m&{ccsr zRu2&+)O2ETarj-=#}GKKY8N(ArdJla`RM8CNm#n=v^4-sF*H$R+xDC|wfKaD-s(Zp zqdnwIz|9D3Eeb|spaJO3E>PIhtalHG+MRL|60nVHegap!V@DRY4GtNAcH_JVDs&p< z7Ce$#6Mbt61P)Ww+ElM3pk^ro z?VRqnD|Th)>zBI~cVmQJRyMYnP5=#Mx=zWq(%9Lom6B$-)_w;xGoUcG0oQCPPuJt& za_7Bw{$m-bWJ-k$o%z3c^Ej>^$3$k4DT%ze`ke=p-M`Fe<*Md=by{+0@w+KC zwiN7zdapTv9v;{;F3<2OhrpulfGUHyN);pdr)dc?` zhiQ}POWCNQC$Of&7^mirdgT)1(zorH>s&Q(=I-3U3FIn-XT_BFrX__}`=nxf1^&cF z8C%jQqzt)-9{T~~Jd)FlfD(eD^23n+6jt6?oLj3mHi6Ilp6y@NmV(}oI?5m(2*Xb) zhf9=TI4XvoKuhF&XaZWL9-1_u=}E$jg`Z>!Z{t1UlgM_Bs#=Zju$fZlm9TXixGBo? z$CfSLm96W+rVF@NygA!W_oi}~r*c}#g{F6u@_eb;Z3#MRd8fN~YyQ~)=tRpH5rH8+ZKmu*3mv zck`}N;Hl7mE;9N${69d&CFHWYPw%fV3%+ijf;p}=kU2)b<^vh)4*JP6FaY3pAd1lE z%zMoo;FyH39q)y5HOBh{as3qy7Xvi2%i8RhD4t&>rK4auLxZYy)JHkh|!}Vnr|KrSt9X&BnoDjNIa1!`M!W z@hMKyms=^vY4iNb`n-WUx-$L7Xn;;)Bf2U2dgbNon+0S(faA%n{A$=Aa$aEC@%+2|fcGuTh_dOax zBhjS+7N(5YVMp`{7OFJd_U9emGv4!>i^^@dSxp50G{!=tpOa+#FyaJhkS-%}p{eF< znT%7gjLOm@Ez{w85W1JCrQ%QqZXQ2rliaXMpu}`9b1U~}`aY+ceJ)Wt6ewUV{Nct+ z7QSK*2+4#vDGo~=<7UbUs_u$Vp{D15sABG!KfhpMkO^nLZ@w|ZNlAO~LFpmJb)+Y7 zL@tKtvMsJh+zj8nylDW%kCz#@uz5co{cLIZ(n+FnXA7{**E8>Q4UzGM+0^|LfVutU z-@AvAcU)?6$~$}dm(W@6|Mp7kcfZjA`tWhcVy;ZLYc)gQ4sPDWk3Ix|f~rv}ucTq2BO@=7n%syY2Py2q2kjWV?JA(!@@1z@CYv z&_sUO1g6zqs(JJf!4UvpUV(WGflHB`$|@`5uSN$SrIg%-B)6bR)v54^)*C+Y6qWQ;{|Fl(;eh#&5aB0f@3;W9VSsB)V_0N}Jf@#(igTTf=4O{W|L3Ep zm{pC6kB;eVpiMBg$FJGLT0$9FW0g-zrb)IU#hKHo(71O=`Up#S65dps52f^s%-azO zuQGn7!Ua3A6JA@S7YsSb@mMSx;bX4w}|a|T>NUNa+U*T&;~JHrj0l|6hB2D~vD z0xd%lb7rt8XB%7UZL?plH(U+)(;!2Dw!+zPf~hcV(I0`!tXKEPcnCx}z}xwt7@*u= z*C2u=&JMI}K#|(Ai%Pcq5ZQk}=IAE@kR0I@9M3`F49E~bA_8Eyh-S{7R-Z{2Cm==3 z%ga%6fIKzZw{@{HFjf$A1aQ&)ltpOEP~&zzmM@swHxT7x>r5wvNt+pwFiTy)$+K!4 z6uJCE_3`7!`$!o;taQjAd%GV*yy@7#YQNu%B%C7{sqs;?bEloXt`-Jn_j5jc&VbiO zPY5VTzNN0u4ixci&@It$oVz_037p*}PQY-Lo2ch|twso%Rra8fNBjJzLZfCtsfpT* zCqtVzL7zafg;k7cv}N&5gKo2&F@SHiq^=;zvFEVyqda>j-L;6C;r$a{XAfdQf+G?*xc3Av8f{(Vz^zfmK5?yaR{A0Ez7-s%N>wfcq6X-_Ar2 zL0m?>neml+4o?~>p-q%y5dB$rkK{rcqw<+D@bKY$Y8-3CSamyIR7T!S4Ow2YGzPWr{Z=Zg0<2yhw*fMg-#Y6sE83 ziro;Yq@$_R6s*|SL{)F@XiYi=Chn?@JN*b>NqgCC?Cp;)2^eUA7Jhhmh=$$)G-wy# z3)JM4POdyq2XK-`M-Bf4p-6`O1U+Pv){w%@aiKA3F;S+ zsF#Vu?sMoM58t?Gca6I{nFxXB<_FTdW#J6;2g;nzBc0;tIx9441#CYPMW^3);T&EiWj+Z1H*h{ zBaG};5w7B>#_dS!TgQVHL^)f@(sGCO1$w1_vp*6U4yHrBzP$X`)wsyo*%{ zz&FYpS1$(#YnTCW1>`*BLv>HC5Kb0iBq@b2zRCemdIMmKu+dxJ0f1B7pMP|EL*4pq zfx=`lmGzG?ngTFZVb%Kqexiu^FWZM zb^gNf(P$r;-&f(Y(2AQO0DV@%gF2XCk|1Me3)NH-k*>sHYx1M>;9Zge;)}XWd%=DQiC--UupG2NS;L|9|4Au@W1H=Sb=UYat*M$i zj?e7FAn*m)1N?oiJufwi<|W56?7wj$2a$Tx${?^!0C4H zxFYd;IWm4KcE0v)d3$~G+)cB-zliZ)E^o?b~O!<&LqVIE%I z>E-3j4=O9I?vBnbE+R=GJ3;WMNC?5g-kxI5rC*bTD?t6z0)%nYTG48n^j!n5p@8(e5Sj z%K_VgJX?F8$lHUm65j?~w8*PRwBV%-OkjX=%ffW<%HrapCFNWoEMmL@?HxndQg>*_ zDT%-j3!C(0%Xb{c?zGwWtsDl^t*K%}mhN{SAhI2C2~Xn_+}zw4{P<^yM)D;Q5S7ya z={H^2_wj!4ltIhE(MQ``KKr#U2iE(B*g74;*3{CA0{3Tpd>re?3a)`y6w#+o_dt72 z6Y&?8Pi8g+V29|icG*AwI2rJ2yZ3aVGMUJ!y)uAsfyVA_R8K^o6wM*?FW3Y16W`Kl>&RT}60?i!3yWy(iE@EseO5RfATd zR|6dFQTkZHWeavrBA0)YBOcF z%IKQ;ShYtE^RUgnN;*J}Y*AtpH8LW_p;Hnp+D%Z#@ltzym!`&e*G8YtI+f`^UY?~u zLg!~@-ht;ikc*q>^!Kl5yOcvfBdC(zCWWh1ddx_Y z8cMn(P3j5OHujz6)lP?`b$>ek38d9T!pz)r6tfS6`6wh)ppOtgwc@NVUe-45^ZgZf zEi&5YLpIR1^!nbe!-P!Qt1{kNQWt)`t7(eD2JKMN7naCK&pUTo^+Q!i=xL9FM$rEZ zCF}XbY`485Npg87Vof=x$vU-dlbjWKb>*D=s~C-1OGN(p1&-WRL?b=LlwK)8;0s;p zILlJ5sn86www3q@j=@kWw#^Vh-%=vE?FxoNeMH>{2k?L*qY^WrI`^Zb26DDXEhPwy zqLBeT9){}YbJP87K4>kH5nH?R@XF*%S}qwDquMe z9%5l8o{$!*DGLfd+n>WJ>wp})1!*$lIcSQoS%y2|UbcW7mT&mJ54Ws0j^mM*?`ldp{>mY_@7x`hYWx*pRFs_ z$qWI-r=$$7z25S!dTgOrwBPD|{q#H^|_{z)6uaD+q z0J{nhTYPH20kVyLgS}YFr-O=co)yHx&qgOH!VBY#v_b`Ti;F33o%N%l$dagSp6VrL zaTTSb{)@&tEmOSEj9G!_hP-m&GRR+gKc)sav~th(GnD_tLMrB@|Di^SMl(a{i5K?_ zWhENGrpOeZq7w2bDDF=8_ zOb{@°aeyTkR73eCLo&K1%rDp4 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 diff --git a/doc/source/_templates/layout.html b/doc/source/_templates/layout.html deleted file mode 100644 index 1ddc127c..00000000 --- a/doc/source/_templates/layout.html +++ /dev/null @@ -1,6 +0,0 @@ -{% extends "!layout.html" %} -{% block rootrellink %} -
  • scikits-image home »
  • - {{ super() }} -{% endblock %} - diff --git a/doc/source/_templates/localtoc.html b/doc/source/_templates/localtoc.html index 3a26d6fa..6866649c 100644 --- a/doc/source/_templates/localtoc.html +++ b/doc/source/_templates/localtoc.html @@ -1,8 +1,10 @@ {% if pagename != 'index' %} - {%- if display_toc %} -

    Contents

    - {{ toc }} - {%- endif %} + {%- if display_toc %} + + + {%- endif %} {% endif %} diff --git a/doc/source/_templates/navbar.html b/doc/source/_templates/navbar.html new file mode 100644 index 00000000..c1bcfed0 --- /dev/null +++ b/doc/source/_templates/navbar.html @@ -0,0 +1,5 @@ +
  • Home
  • +
  • Download
  • +
  • Gallery
  • +
  • Documentation
  • +
  • Source
  • diff --git a/doc/source/_templates/navigation.html b/doc/source/_templates/navigation.html index 587d95a1..66244695 100644 --- a/doc/source/_templates/navigation.html +++ b/doc/source/_templates/navigation.html @@ -1,12 +1,22 @@ -{%- block navigation %} - - {% if pagename != 'index' %} -

    Navigation

    -

    - Documentation Home -

    -

     

    - {% endif %} - - -{%- endblock %} + + +{%- if prev %} + + +{%- endif %} +{%- if next %} + + +{%- endif %} diff --git a/doc/source/_templates/versions.html b/doc/source/_templates/versions.html index a0da9d70..6dbb1962 100644 --- a/doc/source/_templates/versions.html +++ b/doc/source/_templates/versions.html @@ -1,9 +1,9 @@ -{%- block versions %} - -

    Version

    - - - -{%- endblock %} + + diff --git a/doc/source/conf.py b/doc/source/conf.py index cb22e6f0..bcd1ef77 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -103,8 +103,7 @@ pygments_style = 'sphinx' # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -html_theme = 'agogo' -html_style = 'agogo.css' +html_theme = 'scikit-image' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -121,10 +120,6 @@ html_title = 'skimage v%s docs' % version # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = "scikits_image_logo_small.png" - # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. @@ -147,9 +142,7 @@ html_static_path = ['_static'] html_sidebars = { '**': ['navigation.html', 'localtoc.html', - 'relations.html', - 'versions.html', - 'searchbox.html'], + 'versions.html'], } # Additional templates that should be rendered to pages, maps page names to diff --git a/doc/source/themes/agogo/layout.html b/doc/source/themes/agogo/layout.html deleted file mode 100644 index 260f06bf..00000000 --- a/doc/source/themes/agogo/layout.html +++ /dev/null @@ -1,58 +0,0 @@ -{# - agogo/layout.html - ~~~~~~~~~~~~~~~~~ - - Sphinx layout template for the agogo theme, originally written - by Andi Albrecht. - - :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -#} -{% extends "basic/layout.html" %} -{% set script_files = script_files + ['_static/docversions.js'] %} - -{% block header %} -
    -
    - {%- block headertitle %} - - {%- if logo %} - - {%- endif %} - {#

    {{ shorttitle|e }}

    #} - {%- endblock %} -
    -
    -{% endblock %} - - - -{% block content %} -
    -
    - {%- block sidebar2 %} - {# We don't want the logo here #} - {%- block sidebarlogo %} {% endblock %} - {{ sidebar() }} - {% endblock %} -
    - {%- block document %} - {{ super() }} - {%- endblock %} -
    -
    -
    -
    -{% endblock %} - -{% block footer %} - -{% endblock %} - -{% block relbar1 %}{% endblock %} - -{% block relbar2 %}{% endblock %} diff --git a/doc/source/themes/agogo/static/agogo.css_t b/doc/source/themes/agogo/static/agogo.css_t deleted file mode 100644 index f47167c0..00000000 --- a/doc/source/themes/agogo/static/agogo.css_t +++ /dev/null @@ -1,754 +0,0 @@ -/* - * agogo.css_t - * ~~~~~~~~~~~ - * - * Sphinx stylesheet -- agogo theme. - * - * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -* { - margin: 0px; - padding: 0px; -} - - -div.header-wrapper { - border-top: 0px solid #babdb6; - padding: 1em 1em 0; - min-height: 0px; -} - -body { - font-family: {{ theme_bodyfont }}; - font-size: 10pt; - line-height: 1.4em; - color: black; - background-color: {{ theme_bgcolor }}; -} - - -/* Page layout */ - -div.header, div.content, div.footer { - max-width: {{ theme_pagewidth }}; - margin-left: auto; - margin-right: auto; -} - -div.header-wrapper { - border-bottom: 0px solid #2e3436; -} - - -/* Default body styles */ -a { - color: {{ theme_linkcolor }}; -} - -div.bodywrapper a, div.footer a { - text-decoration: underline; -} - -.clearer { - clear: both; -} - -.left { - float: left; -} - -.right { - float: right; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -h1, h2, h3, h4 { - font-weight: normal; - color: {{ theme_headercolor2 }}; - margin-bottom: .8em; - clear: left; -} - -h1 { - color: {{ theme_headercolor1 }}; - line-height: 1.1em; - text-align: left; -} - -h2 { - padding-bottom: .5em; - color: {{ theme_headercolor1 }}; - border-bottom: 1px solid {{ theme_headercolor1 }}; -} - -a.headerlink { - visibility: hidden; - color: #dddddd; - padding-left: .3em; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink { - visibility: visible; -} - -img { - border: 0; -} - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 2px 7px 1px 7px; - border-left: 0.2em solid black; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -dt:target, .highlighted { - background-color: #fbe54e; -} - -/* Header */ - -div.header {} - -div.header h1 { - font-family: "Trebuchet MS", Helvetica, sans-serif; - font-weight: normal; - font-size: 250%; - letter-spacing: .08em; - line-height: 70px; - margin-bottom: 0; -} - -div.header h1 a { - color: white; -} - -div.header h1 a:hover { - text-decoration: none; -} - -div.header div.rel { - margin-top: 1em; - border-top: 1px solid #AAA; - border-bottom: 1px solid #AAA; - border-radius: 5px; - padding: 3px 1em; -} - -div.header div.rel a { - color: {{ theme_linkcolor }}; - letter-spacing: .05em; - font-weight: bold; -} - -div.logo {} - -img.logo { - border: 0; -} - - -/* Content */ -div.content-wrapper { - background-color: white; - padding: 1em; -} - -div.document { - max-width: {{ theme_documentwidth }}; -} - -div.body { - padding-right: 2em; - min-width: 20em; - overflow: hidden; - font-size: 90%; - text-align: {{ theme_textalign }}; -} - -div.document ul { - margin: 1.5em; - list-style-type: square; -} - -div.document dd { - margin-left: 1.2em; - margin-top: .4em; - margin-bottom: 1em; -} - -div.document .section { - margin-top: 1.7em; -} -div.document .section:first-child { - margin-top: 0px; -} - -div.document div.highlight { - padding: 3px; - background-color: #eeeeec; - border-top: 2px solid #dddddd; - border-bottom: 2px solid #dddddd; - margin-top: .8em; - margin-bottom: .8em; -} - -div.document h2 { - margin-top: .7em; -} - -div.document p { - margin-bottom: 1.5em; -} - -div.document li.toctree-l1 { - margin-bottom: 1em; -} - -div.document .descname { - font-weight: bold; -} - -div.document .docutils.literal { - background-color: #eeeeec; - padding: 1px; -} - -div.document .docutils.xref.literal { - background-color: transparent; - padding: 0px; -} - -div.document blockquote { - margin: 1em; -} - -div.document ol { - margin: 1.5em; -} - - -/* Sidebar */ - -div.sphinxsidebar { - width: {{ theme_sidebarwidth }}; - padding: 0 1em; - float: right; - font-size: .93em; - background-color: white; -} - -div.sphinxsidebar a, div.header a { - text-decoration: none; -} - -div.sphinxsidebar a:hover, div.header a:hover { - text-decoration: underline; -} - -div.sphinxsidebar h3 { - color: #2e3436; - text-transform: uppercase; - font-size: 130%; - letter-spacing: .1em; - margin-bottom: .4em; -} - -div.sphinxsidebar h4 { - margin-bottom: 0; - font-weight: bold; -} - -div.sphinxsidebar .tile { - border: 1px solid #D1DDE2; - border-radius: 10px; - background-color: #E1E8EC; - padding-left: 0.5em; - margin: 1em 0; -} - -div.sphinxsidebar ul { - margin-bottom: 1.5em; - list-style-type: none; -} - -div.sphinxsidebar li.toctree-l1 a { - display: block; - padding: 1px; - border: 1px solid #dddddd; - background-color: #eeeeec; - margin-bottom: .4em; - padding-left: 3px; - color: #2e3436; -} - -div.sphinxsidebar li.toctree-l2 a { - background-color: transparent; - border: none; - margin-left: 1em; - border-bottom: 1px solid #dddddd; -} - -div.sphinxsidebar li.toctree-l3 a { - background-color: transparent; - border: none; - margin-left: 2em; - border-bottom: 1px solid #dddddd; -} - -div.sphinxsidebar li.toctree-l2:last-child a { - border-bottom: none; -} - -div.sphinxsidebar li.toctree-l1.current a { - border-right: 5px solid {{ theme_headerlinkcolor }}; -} - -div.sphinxsidebar li.toctree-l1.current li.toctree-l2 a { - border-right: none; -} - -div.sidebarblock { - padding-bottom: .4em; - border-bottom: 1px solid #AAA; - margin-bottom: .8em; -} - -ul.versions li { - color: gray; - list-style: circle inside; -} - -ul.versions li#current { - list-style: disc inside; -} - -/* Footer */ - -div.footer-wrapper { - padding-top: 10px; - padding-bottom: 10px; -} - -div.footer { - border-top: 2px solid #aaa; - text-align: right; -} - -div.footer, div.footer a { - color: #888a85; -} - -.figure { - float: left; - margin: 1em; -} - -.figure img { - display: block; - margin-left: auto; - margin-right: auto; - max-height: 150px; -} - -.figure .caption { - width: 200px; - text-align: center !important; -} - - -/* Styles copied from basic theme */ - -img.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - clear: both; - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable p.biglink { - line-height: 150%; -} - -table.contentstable, table.contentstable td, table.contentstable th { - border-style: none; -} - -div.body table.contentstable p { - margin: 0.5em; - text-align: left; -} - -table.contentstable a { - text-decoration: none; - font-size: 120%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable dl, table.indextable dd { - margin-top: 0; - margin-bottom: 0; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -/* -- viewcode extension ---------------------------------------------------- */ - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family:: {{ theme_bodyfont }}; -} - -div.viewcode-block:target { - margin: -1px -3px; - padding: 0 3px; - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} - -span.strike { text-decoration: line-through; } - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: {{ theme_linkcolor }}; - text-decoration: none; -} - -a:visited { - color: {{ theme_visitedlinkcolor }}; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: {{ theme_headfont }}; - background-color: {{ theme_headbgcolor }}; - font-weight: normal; - color: {{ theme_headtextcolor }}; - border-bottom: 1px solid #ccc; - margin: 20px 20px 10px 0px; - padding: 3px 0 3px 0px; -} - -div.body h1 { margin-top: 0; font-size: 180%; } -div.body h2 { font-size: 150%; } -div.body h3 { font-size: 130%; } -div.body h4 { font-size: 120%; } -div.body h5 { font-size: 110%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: {{ theme_headlinkcolor }}; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: {{ theme_headlinkcolor }}; - color: white; -} - -div.body p, div.body dd, div.body li { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 1em; - margin-bottom: 0.5em; - background-color: {{ theme_codebgcolor }}; - color: {{ theme_codetextcolor }}; - line-height: 120%; - border: 0px solid #ac9; - border-left: none; - border-right: none; -} - -sup { - font-size: x-small; - line-height: 0; -} - -tt { - background-color: #ecf0f3; - padding: 0 1px 0 1px; - font-size: 1em; -} - -table { - border-collapse: collapse; - margin-bottom: 1em; - margin-top: 1em; -} - -table, th, td { - border: 1px solid #ccc; -} - -th, td { - padding: 5px; -} - -th { - color: #333; - background-color: #eee; -} - -#api-reference ul:first-child { - float: left; - width: 35em; - margin-top: 0; - padding-top: 0; - list-style: none; - overflow: auto; -} - -#api-reference li { - float: left; - position: relative; - margin-right: 1em; - width: 17em; - padding: 0; -} - -.field-list { - font-size: 80%; -} - -/* ----------------- Example Gallery ----------------- */ - -.gallery { - height: 200px; -} - -.gallery p.caption a{ - text-decoration: none; -} - -/* ----------------- Coverage States ----------------- */ -span.missing{ - color: #000; - background-color: #ff5840; - border-color: #A77272; - font-weight: bold; -} -span.partial{ - color: #806600; - background-color: #ffc343; - font-weight: bold; -} -span.done{ - color: #106600; - background-color: #60f030; - border-color: #4F8530; - font-weight: bold; -} -span.na{ - color: #A8A8A8; - border-color: #4F8530; -} - -table.coverage { - border: solid 1px; -} - -td.missing-bar{ - color: #ff5840; - background-color: #ff5840; - border-color: #A77272; - font-weight: normal; - font-style: normal; -} -td.partial-bar{ - color: #ffc343; - background-color: #ffc343; - font-weight: normal; - font-style: normal; -} -td.done-bar{ - color: #60f030; - background-color: #60f030; - border-color: #4F8530; - font-weight: normal; - font-style: normal; -} -td.na-bar{ - color: #FFF; - background-color: #FFF; - border-color: #4F8530; - font-weight: normal; - font-style: normal; -} - -/* Adjust doc headers such as Notes, References, etc. */ -p.rubric { - font-weight: bold; - font-size: 120%; -} - -/* Math */ -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} diff --git a/doc/source/themes/agogo/theme.conf b/doc/source/themes/agogo/theme.conf deleted file mode 100644 index a991e5c0..00000000 --- a/doc/source/themes/agogo/theme.conf +++ /dev/null @@ -1,19 +0,0 @@ -[theme] -inherit = basic -stylesheet = agogo.css -pygments_style = tango - -[options] -bodyfont = "Verdana", Arial, sans-serif -pagewidth = 70em -documentwidth = 55em -sidebarwidth = 14em -bgcolor = white -headerbg = url(bgtop.png) top left repeat-x -footerbg = url(bgfooter.png) top left repeat-x -linkcolor = #FC852B -headercolor1 = #555 -headercolor2 = #555 -headerlinkcolor = #fcaf3e -codebgcolor = #EEE -textalign = justify diff --git a/doc/source/themes/scikit-image/layout.html b/doc/source/themes/scikit-image/layout.html new file mode 100644 index 00000000..8fc325cb --- /dev/null +++ b/doc/source/themes/scikit-image/layout.html @@ -0,0 +1,113 @@ +{# + scikit-image/layout.html + ~~~~~~~~~~~~~~~~~ + + Sphinx layout template for the scikit-image theme, written by + Johannes Schönberger. + +#} + +{%- set url_root = pathto('', 1) %} +{# XXX necessary? #} +{%- if url_root == '#' %}{% set url_root = '' %}{% endif %} +{%- if not embedded and docstitle %} + {%- set titlesuffix = " — "|safe + docstitle|e %} +{%- else %} + {%- set titlesuffix = "" %} +{%- endif %} + +{%- macro script() %} + + + + {%- for scriptfile in script_files %} + + {%- endfor %} +{%- endmacro %} + +{%- macro css() %} + + + + + {%- for cssfile in css_files %} + + {%- endfor %} +{%- endmacro %} + + + + + {%- block htmltitle %} + {{ title|striptags|e }}{{ titlesuffix }} + {%- endblock %} + {{ metatags }} + {{ css() }} + {{ script() }} + {%- if hasdoc('about') %} + + {%- endif %} + {%- if hasdoc('genindex') %} + + {%- endif %} + {%- if hasdoc('search') %} + + {%- endif %} + {%- if hasdoc('copyright') %} + + {%- endif %} + + {%- if parents %} + + {%- endif %} + {%- if next %} + + {%- endif %} + {%- if prev %} + + {%- endif %} + + + {%- block extrahead %}{% endblock %} + + + +
    + +
    +
    + {% block body %}{% endblock %} +
    +
    + {%- for sidebartemplate in sidebars %} + {%- include sidebartemplate %} + {%- endfor %} +
    +
    + + + diff --git a/doc/source/themes/scikit-image/search.html b/doc/source/themes/scikit-image/search.html new file mode 100644 index 00000000..61520e6b --- /dev/null +++ b/doc/source/themes/scikit-image/search.html @@ -0,0 +1,46 @@ +{# + basic/search.html + ~~~~~~~~~~~~~~~~~ + + Template for the search page. + + :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + :license: BSD, see LICENSE for details. +#} +{% extends "layout.html" %} +{% set title = _('Search') %} +{% set script_files = script_files + ['_static/searchtools.js'] %} +{% set script_files = script_files + ['searchindex.js'] %} +{% block body %} +

    {{ _('Search') }}

    +
    + +

    + {% trans %}Please activate JavaScript to enable the search + functionality.{% endtrans %} +

    +
    +

    + {% trans %}From here you can search these documents. Enter your search + words into the box in the navigation bar and press "Enter". Note that the + search function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list.{% endtrans %} +

    + {% if search_performed %} + {% if not search_results %} +

    {{ _('Your search did not match any results.') }}

    + {% endif %} + {% endif %} +
    + {% if search_results %} +
      + {% for href, caption, context in search_results %} +
    • {{ caption }}
    • + {% endfor %} +
    + {% endif %} +
    +{% endblock %} diff --git a/doc/source/themes/scikit-image/static/css/bootstrap-responsive.css b/doc/source/themes/scikit-image/static/css/bootstrap-responsive.css new file mode 100644 index 00000000..9259d26d --- /dev/null +++ b/doc/source/themes/scikit-image/static/css/bootstrap-responsive.css @@ -0,0 +1,1058 @@ +/*! + * Bootstrap Responsive v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .modal { + top: 10px; + right: 10px; + left: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .dropdown-menu a:hover { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:hover { + background-color: #111111; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: block; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/doc/source/themes/scikit-image/static/css/bootstrap-responsive.min.css b/doc/source/themes/scikit-image/static/css/bootstrap-responsive.min.css new file mode 100644 index 00000000..7b0158da --- /dev/null +++ b/doc/source/themes/scikit-image/static/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade.in{top:auto}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:hover{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/doc/source/themes/scikit-image/static/css/bootstrap.css b/doc/source/themes/scikit-image/static/css/bootstrap.css new file mode 100644 index 00000000..9fa6f766 --- /dev/null +++ b/doc/source/themes/scikit-image/static/css/bootstrap.css @@ -0,0 +1,5774 @@ +/*! + * Bootstrap v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +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-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover { + color: #005580; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +.text-warning { + color: #c09853; +} + +.text-error { + color: #b94a48; +} + +.text-info { + color: #3a87ad; +} + +.text-success { + color: #468847; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 1; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1 { + font-size: 36px; + line-height: 40px; +} + +h2 { + font-size: 30px; + line-height: 40px; +} + +h3 { + font-size: 24px; + line-height: 40px; +} + +h4 { + font-size: 18px; + line-height: 20px; +} + +h5 { + font-size: 14px; + line-height: 20px; +} + +h6 { + font-size: 12px; + line-height: 20px; +} + +h1 small { + font-size: 24px; +} + +h2 small { + font-size: 18px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.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; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 25px; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 9px; + font-size: 14px; + line-height: 20px; + color: #555555; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; + cursor: pointer; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 18px; + padding-left: 18px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"] { + float: left; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning > label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error > label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success > label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info > label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:required:invalid, +textarea:focus:required:invalid, +select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:required:invalid:focus, +textarea:focus:required:invalid:focus, +select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + margin-bottom: 5px; + font-size: 0; + white-space: nowrap; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + font-size: 14px; + vertical-align: top; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-append .add-on, +.input-append .btn { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child th:first-child, +.table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child th:last-child, +.table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child th:first-child, +.table-bordered tbody:last-child tr:last-child td:first-child, +.table-bordered tfoot:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child th:last-child, +.table-bordered tbody:last-child tr:last-child td:last-child, +.table-bordered tfoot:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-striped tbody tr:nth-child(odd) td, +.table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover td, +.table-hover tbody tr:hover th { + background-color: #f5f5f5; +} + +table [class*=span], +.row-fluid table [class*=span] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table .span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table .span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table .span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table .span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table .span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table .span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table .span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table .span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table .span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table .span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table .span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table .span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table .span13 { + float: none; + width: 1004px; + margin-left: 0; +} + +.table .span14 { + float: none; + width: 1084px; + margin-left: 0; +} + +.table .span15 { + float: none; + width: 1164px; + margin-left: 0; +} + +.table .span16 { + float: none; + width: 1244px; + margin-left: 0; +} + +.table .span17 { + float: none; + width: 1324px; + margin-left: 0; +} + +.table .span18 { + float: none; + width: 1404px; + margin-left: 0; +} + +.table .span19 { + float: none; + width: 1484px; + margin-left: 0; +} + +.table .span20 { + float: none; + width: 1564px; + margin-left: 0; +} + +.table .span21 { + float: none; + width: 1644px; + margin-left: 0; +} + +.table .span22 { + float: none; + width: 1724px; + margin-left: 0; +} + +.table .span23 { + float: none; + width: 1804px; + margin-left: 0; +} + +.table .span24 { + float: none; + width: 1884px; + margin-left: 0; +} + +.table tbody tr.success td { + background-color: #dff0d8; +} + +.table tbody tr.error td { + background-color: #f2dede; +} + +.table tbody tr.warning td { + background-color: #fcf8e3; +} + +.table tbody tr.info td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/active states of certain elements */ + +.icon-white, +.nav-tabs > .active > a > [class^="icon-"], +.nav-tabs > .active > a > [class*=" icon-"], +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"] { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.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; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu li > a:hover, +.dropdown-menu li > a:focus, +.dropdown-submenu:hover > a { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; + background-color: #0081c2; + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu .disabled > a, +.dropdown-menu .disabled > a:hover { + color: #999999; +} + +.dropdown-menu .disabled > a:hover { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 14px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + *line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #bbbbbb; + *border: 0; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-bottom-color: #a2a2a2; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + *background-color: #d9d9d9; + /* Buttons in IE7 don't get borders, so darken on hover */ + + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-color: #e6e6e6; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 9px 14px; + font-size: 16px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.btn-large [class^="icon-"] { + margin-top: 2px; +} + +.btn-small { + padding: 3px 9px; + font-size: 12px; + line-height: 18px; +} + +.btn-small [class^="icon-"] { + margin-top: 0; +} + +.btn-mini { + padding: 2px 6px; + font-size: 11px; + line-height: 17px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn { + border-color: #c5c5c5; + border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + *background-color: #0044cc; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-repeat: repeat-x; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + *background-color: #f89406; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + *background-color: #222222; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-image: -moz-linear-gradient(top, #444444, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #0088cc; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover { + color: #005580; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-toolbar .btn + .btn, +.btn-toolbar .btn-group + .btn, +.btn-toolbar .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 11px; +} + +.btn-group > .btn-small { + font-size: 12px; +} + +.btn-group > .btn-large { + font-size: 16px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-mini .caret, +.btn-small .caret, +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.dropup .btn-large .caret { + border-top: 0; + border-bottom: 5px solid #000000; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical .btn { + display: block; + float: none; + width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + color: #c09853; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; + color: #777777; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .brand:hover { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; +} + +.navbar-link { + color: #777777; +} + +.navbar-link:hover { + color: #333333; +} + +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-right: 1px solid #ffffff; + border-left: 1px solid #f2f2f2; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 6px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + width: 100%; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1), 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 0 rgba(0, 0, 0, 0.1), 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + *background-color: #e5e5e5; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #e5e5e5; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse { + color: #999999; +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #222222; + border-left-color: #111111; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + *background-color: #040404; + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-image: -moz-linear-gradient(top, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb .active { + color: #999999; +} + +.pagination { + height: 40px; + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 0 14px; + line-height: 38px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager a, +.pager span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next a, +.pager .next span { + float: right; +} + +.pager .previous a { + float: left; +} + +.pager .disabled a, +.pager .disabled a:hover, +.pager .disabled span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-open .modal .dropdown-menu { + z-index: 2050; +} + +.modal-open .modal .dropdown.open { + *z-index: 2050; +} + +.modal-open .modal .popover { + z-index: 2060; +} + +.modal-open .modal .tooltip { + z-index: 2080; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + width: 560px; + margin: -250px 0 0 -280px; + overflow: auto; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 50%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + margin-top: -3px; +} + +.tooltip.right { + margin-left: 3px; +} + +.tooltip.bottom { + margin-top: 3px; +} + +.tooltip.left { + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + 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-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + width: 236px; + padding: 1px; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-bottom: 10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-right: 10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover-content p, +.popover-content ul, +.popover-content ol { + margin-bottom: 0; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: inline-block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow:after { + z-index: -1; + content: ""; +} + +.popover.top .arrow { + bottom: -10px; + left: 50%; + margin-left: -10px; + border-top-color: #ffffff; + border-width: 10px 10px 0; +} + +.popover.top .arrow:after { + bottom: -1px; + left: -11px; + border-top-color: rgba(0, 0, 0, 0.25); + border-width: 11px 11px 0; +} + +.popover.right .arrow { + top: 50%; + left: -10px; + margin-top: -10px; + border-right-color: #ffffff; + border-width: 10px 10px 10px 0; +} + +.popover.right .arrow:after { + bottom: -11px; + left: -1px; + border-right-color: rgba(0, 0, 0, 0.25); + border-width: 11px 11px 11px 0; +} + +.popover.bottom .arrow { + top: -10px; + left: 50%; + margin-left: -10px; + border-bottom-color: #ffffff; + border-width: 0 10px 10px; +} + +.popover.bottom .arrow:after { + top: -1px; + left: -11px; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-width: 0 11px 11px; +} + +.popover.left .arrow { + top: 50%; + right: -10px; + margin-top: -10px; + border-left-color: #ffffff; + border-width: 10px 0 10px 10px; +} + +.popover.left .arrow:after { + right: -1px; + bottom: -11px; + border-left-color: rgba(0, 0, 0, 0.25); + border-width: 11px 0 11px 11px; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.label, +.badge { + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + padding: 1px 4px 2px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding: 1px 9px 2px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +a.label:hover, +a.badge:hover { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 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: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel .item > img { + display: block; + line-height: 1; +} + +.carousel .active, +.carousel .next, +.carousel .prev { + display: block; +} + +.carousel .active { + left: 0; +} + +.carousel .next, +.carousel .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel .next { + left: 100%; +} + +.carousel .prev { + left: -100%; +} + +.carousel .next.left, +.carousel .prev.right { + left: 0; +} + +.carousel .active.left { + left: -100%; +} + +.carousel .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} diff --git a/doc/source/themes/scikit-image/static/css/bootstrap.min.css b/doc/source/themes/scikit-image/static/css/bootstrap.min.css new file mode 100644 index 00000000..31d8b960 --- /dev/null +++ b/doc/source/themes/scikit-image/static/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.1.1 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}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-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}.text-warning{color:#c09853}.text-error{color:#b94a48}.text-info{color:#3a87ad}.text-success{color:#468847}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:1;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1{font-size:36px;line-height:40px}h2{font-size:30px;line-height:40px}h3{font-size:24px;line-height:40px}h4{font-size:18px;line-height:20px}h5{font-size:14px;line-height:20px}h6{font-size:12px;line-height:20px}h1 small{font-size:24px}h2 small{font-size:18px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.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}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:9px;font-size:14px;line-height:20px;color:#555;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal;cursor:pointer}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"]{float:left}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info>label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;font-size:14px;vertical-align:top;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .add-on,.input-append .btn{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topleft:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5}table [class*=span],.row-fluid table [class*=span]{display:table-cell;float:none;margin-left:0}.table .span1{float:none;width:44px;margin-left:0}.table .span2{float:none;width:124px;margin-left:0}.table .span3{float:none;width:204px;margin-left:0}.table .span4{float:none;width:284px;margin-left:0}.table .span5{float:none;width:364px;margin-left:0}.table .span6{float:none;width:444px;margin-left:0}.table .span7{float:none;width:524px;margin-left:0}.table .span8{float:none;width:604px;margin-left:0}.table .span9{float:none;width:684px;margin-left:0}.table .span10{float:none;width:764px;margin-left:0}.table .span11{float:none;width:844px;margin-left:0}.table .span12{float:none;width:924px;margin-left:0}.table .span13{float:none;width:1004px;margin-left:0}.table .span14{float:none;width:1084px;margin-left:0}.table .span15{float:none;width:1164px;margin-left:0}.table .span16{float:none;width:1244px;margin-left:0}.table .span17{float:none;width:1324px;margin-left:0}.table .span18{float:none;width:1404px;margin-left:0}.table .span19{float:none;width:1484px;margin-left:0}.table .span20{float:none;width:1564px;margin-left:0}.table .span21{float:none;width:1644px;margin-left:0}.table .span22{float:none;width:1724px;margin-left:0}.table .span23{float:none;width:1804px;margin-left:0}.table .span24{float:none;width:1884px;margin-left:0}.table tbody tr.success td{background-color:#dff0d8}.table tbody tr.error td{background-color:#f2dede}.table tbody tr.warning td{background-color:#fcf8e3}.table tbody tr.info td{background-color:#d9edf7}.table-hover tbody tr.success:hover td{background-color:#d0e9c6}.table-hover tbody tr.error:hover td{background-color:#ebcccc}.table-hover tbody tr.warning:hover td{background-color:#faf2cc}.table-hover tbody tr.info:hover td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-tabs>.active>a>[class^="icon-"],.nav-tabs>.active>a>[class*=" icon-"],.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.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;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{color:#fff;text-decoration:none;background-color:#08c;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c;background-color:#0081c2;background-image:linear-gradient(to bottom,#08c,#0077b3);background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999}.dropdown-menu .disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 14px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #bbb;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:2px}.btn-small{padding:3px 9px;font-size:12px;line-height:18px}.btn-small [class^="icon-"]{margin-top:0}.btn-mini{padding:2px 6px;font-size:11px;line-height:17px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#c5c5c5;border-color:rgba(0,0,0,0.15) rgba(0,0,0,0.15) rgba(0,0,0,0.25)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-image:-moz-linear-gradient(top,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-image:-moz-linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-image:-moz-linear-gradient(top,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover{color:#333;text-decoration:none}.btn-group{position:relative;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-toolbar .btn+.btn,.btn-toolbar .btn-group+.btn,.btn-toolbar .btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu{font-size:14px}.btn-group>.btn-mini{font-size:11px}.btn-group>.btn-small{font-size:12px}.btn-group>.btn-large{font-size:16px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-mini .caret,.btn-small .caret,.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical .btn{display:block;float:none;width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical .btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical .btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical .btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical .btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical .btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible;color:#777}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px}.navbar-link{color:#777}.navbar-link:hover{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;width:100%;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1),0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1),0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse{color:#999}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover{color:#fff}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-image:-moz-linear-gradient(top,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#ccc}.breadcrumb .active{color:#999}.pagination{height:40px;margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:0 14px;line-height:38px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a,.pager span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a,.pager .next span{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover,.pager .disabled span{color:#999;cursor:default;background-color:#fff}.modal-open .modal .dropdown-menu{z-index:2050}.modal-open .modal .dropdown.open{*z-index:2050}.modal-open .modal .popover{z-index:2060}.modal-open .modal .tooltip{z-index:2080}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1030;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-3px}.tooltip.right{margin-left:3px}.tooltip.bottom{margin-top:3px}.tooltip.left{margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;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-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;width:236px;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-bottom:10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-right:10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow:after{z-index:-1;content:""}.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-top-color:#fff;border-width:10px 10px 0}.popover.top .arrow:after{bottom:-1px;left:-11px;border-top-color:rgba(0,0,0,0.25);border-width:11px 11px 0}.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-right-color:#fff;border-width:10px 10px 10px 0}.popover.right .arrow:after{bottom:-11px;left:-1px;border-right-color:rgba(0,0,0,0.25);border-width:11px 11px 11px 0}.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-bottom-color:#fff;border-width:0 10px 10px}.popover.bottom .arrow:after{top:-1px;left:-11px;border-bottom-color:rgba(0,0,0,0.25);border-width:0 11px 11px}.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-left-color:#fff;border-width:10px 0 10px 10px}.popover.left .arrow:after{right:-1px;bottom:-11px;border-left-color:rgba(0,0,0,0.25);border-width:11px 0 11px 11px}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.label,.badge{font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 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:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:30px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/doc/source/themes/scikit-image/static/css/custom.css b/doc/source/themes/scikit-image/static/css/custom.css new file mode 100644 index 00000000..005d4317 --- /dev/null +++ b/doc/source/themes/scikit-image/static/css/custom.css @@ -0,0 +1,196 @@ +body { + font-family: "Raleway"; +} +a { + color: #CE5C00; +} +input, +button, +select, +textarea { + font-family: "Raleway"; +} +pre { + font-size: 11px; +} +h1 { + font-size: 30px; + line-height: 36px; +} +h2 { + font-size: 24px; + line-height: 30px; +} +h3 { + font-size: 19px; + line-height: 21px; +} +h4 { + font-size: 17px; + line-height: 19px; +} +h5 { + font-size: 15px; + line-height: 17px; +} +h6 { + font-size: 13px; + line-height: 15px; +} + +.logo { + float: left; + margin: 20px 0 20px 22px; +} +.logo img { + height: 70px; +} + +.hero { + padding: 10px 25px; +} + +.gallery-random { + float: right; + line-height: 180px; +} +.gallery-random img { + max-height: 180px; +} + +.coins-sample { + padding: 5px; +} + +.sidebar-box { + padding: 0; +} +.sidebar-box-heading { + padding-left: 15px; +} + +.headerlink { + margin-left: 10px; + color: #ddd; + display: none; +} +h1:hover .headerlink, +h2:hover .headerlink, +h3:hover .headerlink, +h4:hover .headerlink, +h5:hover .headerlink, +h6:hover .headerlink { + display: inline; +} +.headerlink:hover { + color: #CE5C00; + text-decoration: none; +} + +.footer { + margin-top: 30px; + padding: 5px 10px; + color: #999; +} +.footer a { + color: #999; + text-decoration: underline; +} + +.ohloh-use, .gplus-use { + float: left; + margin: 0 0 10px 15px; +} + +/* Documentation */ + +/* general table settings */ +table.docutils { + margin-bottom: 10px; + border-color: #ccc; +} +table.docutils td, table.docutils th { + padding: 5px; + border-color: #ccc; + text-align: left; +} + +.toc ul ul { + font-size: 13px; + margin-right: -15px; +} + +/* master content table */ +.contentstable.docutils, .contentstable.docutils td { + border-color: transparent; +} +.contentstable.docutils .first { + font-weight: bold; +} +.contentstable.docutils .last { + padding-left: 10px; +} + +.docutils .label, .docutils .badge { + background: transparent; + text-shadow: none; + font-size: 13px; + padding: 5px; + line-height: 20px; + color: #333; +} + +/* module summary table */ +.longtable.docutils { + font-size: 12px; + margin-bottom: 30px; +} +.longtable.docutils, .longtable.docutils td { + border-color: #ccc; +} + +/* function and class description */ +dl.class, dl.function, dl.method, dl.attribute { + border-top: 1px solid #ccc; + padding-top: 10px; +} +.descclassname { + color: #aaa; + font-weight: normal; + font-family: monospace; +} +.descname { + font-family: monospace; +} +dl.class em, dl.function em, dl.class big, dl.function big { + font-weight: normal; + font-family: monospace; +} +dl.class dd, dl.function dd { + padding: 10px; +} +.docutils.field-list th { + background-color: #eee; + padding: 10px; + text-align: left; + vertical-align: top; + width: 100px; +} +.docutils.field-list td { + padding: 10px 10px 10px 20px; + text-align: left; + vertical-align: top; +} +.docutils.field-list td blockquote p { + font-size: 13px; + line-height: 18px; +} +p.rubric { + font-weight: bold; + font-size: 19px; + margin: 15px 0 10px 0; +} +p.admonition-title { + font-weight: bold; + text-decoration: underline; +} diff --git a/doc/source/themes/scikit-image/static/img/glyphicons-halflings-white.png b/doc/source/themes/scikit-image/static/img/glyphicons-halflings-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae GIT binary patch literal 8777 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 B7G?kd literal 0 HcmV?d00001 diff --git a/doc/source/themes/scikit-image/static/img/glyphicons-halflings.png b/doc/source/themes/scikit-image/static/img/glyphicons-halflings.png new file mode 100644 index 0000000000000000000000000000000000000000..a9969993201f9cee63cf9f49217646347297b643 GIT binary patch literal 12799 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 literal 0 HcmV?d00001 diff --git a/doc/source/themes/scikit-image/static/img/logo.png b/doc/source/themes/scikit-image/static/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2d630cf757cbeea1b26f73fea83b950873b552b4 GIT binary patch literal 45391 zcmZ_#W0Yu3&HxIxZQHhO+dOUCwyo2)ZQHhe+O~O`Uq3VN%-rv;b@z|GYG)^@RHc$i zrK%znl0z=`h;nT3 zjkA^td9MI=un$0ibzpc29zs|!L$CGcz9vcKFscek39r*3ctWx(P}RLoS3`2;A?>HP zNzNV46Ydk;4G~^Fi{=bW)$o+cn(SGUp65x=feHOPwH%_pIV}qc-@6ZR%&0o(TTc=0}`c={mjIc1Z(2(AT)P1#cjCe8tD| z1Rv+^6LCGgYLsoTZBVay`%-AxcS{#WFC2{e`6tqgv@v3iRTnd)#v*k88@1P_HKWt` zvN2_gU4z|zDW8gTy$lDnW#>PX+G!`5( zIBCF0B)@=Uz2(6fcQ6_p-GJUrTcB9XJz8tuJ6^BBue=WUfp6G&$$)K!TvW%tmU#&w z-Otqz2MXnA!-Yz<=tJ@J&?WDpg2pAMaQ`9TLlLexvwnm1HXZjBno%cB{YWf7$H<~} zg-igBZ0^Foz*lNz#eWIMGXd85I&;-yW##rwT1|IA>ly*J5#L~m=+e^sjX_!ykZVYFrMoZadFWNg03>J7& zuxzl^5tZTKN@q09joic%CAP7VwMXJoSM98$lt_23oJewsh?^++q0xP2pw^tOSKU{# zx)R{0uS8@9F0Nf08X3|t=KX9g2Q|@0DCf+%X&qm%9k>F?O4k*(2~_p<+KO6ANbiX@ zCY@#RFw|)l)Y&5nHn+C!fv7@~o*<&wQ^D=`9#PjV7@KP?k+AOp?h7?@tukbvD}<+B ztUsZ*a^A()(M^t@G~wFRHWTBHZ}wSl>15SloI< z-)QqD5B!<{4(`_2)W|<>1JYhX(+L0o`lk$y3y8^aJR9xb>ed8CHfZz*H8H$Fg+2$zfhd5c!@M*6$pgw z98CyV=@{vli1?rg2ncu_jZL|fM8y7&{O608$lTf4o{OH|&CQL@jhW8Q(TtvvlarI4 zfr*}piS`GB*2%-x*}$FF)`|GvO#Z`1#Kg(S(Zb%@!p@f9AHD{Lb}r7mL`45o^xx;- zayna>{;wumr~hl#PXp=y`9sf0$3XvI-an)~|3JBf?QHBFO`M#5`13LH{0sB{5B9%$ z{*A9-Zs%;NBkwgKqNpUNeBfvFOulPy6ZUQ z;6A^7R2!>TF1P=ABnNcZSCw^i%6H^?YxT<1Yfe075;M~LFFIVIa+C=Rk-{1z>~&3Q z(`ch(j-TO7-C|GPnTF@*z3pmvI62xIRp>+t5Z`vyIMk$auwA;Lw(PBRnYPzddsptV zQaWlz+|{itMXf9?j2gN*+gUJeAmH-jSpm5Ua>=8=hAj6qB?5i}5rPUq;c!E>g=XS+ z-oddYoCF{csIh1e>foGbZVs4{begfa5oqB|qKrl+I}cN;QYAYUgYYTh%OKT2T+%2x z6e;jRc0X1N55=_MWNGju$dH|5AK+G(o7j}2+PF}ovDaLbX-T3kvq~B}ScrnFB4l?U z`G%oDP$DQ16!kF{_a%a;1OjZ8lHZjhLGCJ-a2WnBN4LisyTqWroJARdDyA_+-iLc4 z9+Rul0?b0lGE`(ox|>Mo3l>!?Qj+@wW+DN*&1$F-!P$lNK2Tx-BWov6o026Xf|V_w zY3aBYg|$LwwKbQoHkYJRp0q3|=gQ=Q?G=U!{+9&1X-d1}fKCoWnUHD`dRgp;C{ry)z72;f?J3VkE)1uupQN=CqBfMMJI_~XEVbjtlB3x& zBp2>b05bRyTJzurQGPl@;2(8}rvr^5m4T24Qjj`1XFD4hH!v_HY;?PQIcw$?nxGg=<753--`)EK5%>dMUe82ojYw+CwfJywHJG&rDesPhs? zh_#Zk$h6HU8ZY{LtnhK#d^uL5py*I*^$gAvBcD zjj6N%fO95Dfw_@#Dx8s)6v27(k&3ksMyM0wgY6cs)}himo$C#G=!tCGm1tBPW0h@X zT&pa2zmtaPwdcJpX`s~FQEPErj7kP?{~5sl)>%A|ID8olp82tuW4xstp9@C8^_Jfg zF)%;=^i9ygC=q1MfixjbVtGUnB_w-vk&u{x5Ft@gd@caV6GWP3b#{&6Fq5vIsSLFj zrB$8OwI7o`W_NbEfKM&WN7M+7vtnLRPDlz?e2XQ~RvwH6YOM;ziIVN&pXY}ejpv4( z7AG6zT_`i5j6aLF82^z8S}vdvNF_l5=7tUPn1*jVce|tfW^^Oe7JKG0;6|L7aa;fl z%$O308-VI|Do3MTeAmE$m`E|2q)*wdFM1b58Tly3e_}Te5SuQogQ{P~>McYt3C>y4_c74{*3>}~ z+;VAxRL>p>9IY(HdLHxzMc^74ix$Gz>IZcPP$>dp^Z(50S8Fv2g0dB^_ z|5W)<(x(VW#pyj*u{CCHyVJ6#!=E87Vmc!%1f!36nTCJzv)94=^T}HHaKiJd8p)0^u0*KqiA| zb%??;9Bqp#_;Dn|s;j72Ok}cmeU=&KO2Wv&ikq&x_DN&MxfhYGc97=oLwxNY=~vYM zsP&rGQXHh^giT%~Zwfya1k!N@0hErQ1RxQPGPz_-rDJH>Z#j zT^2OfRjLJEmJUsJsIc6Sv(@NuW^c15elrKTGpDiY%y<(h-4L~+gbVtAu2h1e?l)4h z!ay6Lu{82$qSp1F@9eO5Kivux?ENc~;h?gLKQwY8hDhZI1yrOg7D`i^;(X5TeLxC^ z27(%-9PxjqooCY%Lge%U1V zDTa)LX3(k z3H)Uhnw7W&$!@CR$ETpU=qjOF608m(3lSG(_;5&?%5U|=jfI3O6H_Up{TV{}9}9`~ z|3^wwXU*hS85A(zmQUq4xNQW7g84EBM*l@QP#DknTM&qN z8D(4n6wXb_1_x9&$Y2JgSbwQziQ~z>Bsj42rPOn^#0t#vDU|aO*&%)xEmh6)fhFr{ zkg0Ih+eJ|>6|=ksu0@r4Jxm2)H^?y+ilcBlFUi^5T?53pr2q#)wFrF!sDDq`hzh%7 z{u2T~ic>Kvd)C356HPS|YhE%D zrCMs-GKRQnG$YNNPsIwzu>$H#x?^q2C6}RiQiwP$N*3im?KeqWzzMKMr}Y zu+KY-lBN=^6Wv?lWw@j4{aMdR>xNzIzOyjieQ3~Wb{E9oxNn5bAf5J7r-gEG--U!8 z&rYx}Tt}>f@d-1)*wUb|f)2bShOgtEqpKV_Iny^9!&qPB03&$b4OK!$mAN25z#v+( zLbF*k-K1Be?y`!4ea=`x>N5@KsTL2mq=MF^h!6zL=%76y)6I`m2ZO8fJ$ZV3SepfZ zOEOL9Kf#ARB?EpQRCItd66PeXyYcOb+f8?couigc0c4@dx(FkX1WXVZz@ersfFLNC zLPa_iJo-!Ren3Cn%+Nh)Ax6W9GxYm*9)`^%&{z9AwTgtG8jt}wR;zybS=Z|gWZgmt==DWZffl$ zxs~p;*r@pJP($T-od=&@B?FC`sOUm!kZP$4e=LGqUKZ(HQSz&U7=*f%ZY6;>mVeI8 zriRD2e}bLPf=74E{7vD3A>=>7WELfZUS2}Dk|}aI_p{H%%(h(+r%QzCILZiuaX>+& z$eR#bf(#INsx~p6-F>Lr#)k?dgn@f+pWt&NB@Oc`C6gribKsnCvP6@zmey!={7$CRRC(1et_-4PR@^kCy$r4-jxw-ghUP_yCl%p_Lyf5Ta-jY4l)nvY<&LwJQEaHx z>tSzxP=>sApI#dmY7+@&9V@@Flt07%Yv87({)|ggx}rSI6XW=`ryYrZ`?X%YuUfYB z$m^_`l=KLpxH2(QjyUM->#EJk4McInBcg^cWE2ST?09e~lJE(-^h6I$VjHZpY?tOF zlw7TyOf1=!9hox-1VR~^Q$hetN-HX?JR9-3VK)fHZC<08^B)sOn$)u6GB)5!Eumsb zBHAP4`=^{!v4jdON$4yGo>T4^`|oP`wuP)?@%f+U_bzRjaStfWf5|>!{V!IxMoB|f zfK)0;FeY2g9(&nZc~?b~CM}dT{{w*jWspvltkGw+#`X%r6ya4_{K}CK(~q<(qmApU ztA<>@RYa>Sn=F6lqcyIAqOTw)`{x%+g=>C|EcKJwJs5hWLMfYaommB>dx_YpD01TX za~`6Ea-AiL`+|JMDkVRh4m+=cMlxcETt%S>I>}6BtBgCG`QDPKRx9k5!`89NUN-@+HA5vxf`ZzB6^AL*|;@5qTq{j|1-OK~kOMhxQ1`E+MnG=!;@M@0F0 zo0z&06U;zuuL4&f!QWw~NcSvIA=+q3b*o96%V$x3Q)=9hR$5-!ck;tv_NRf8d*F6d z39Hdd+X6g08A#n3imW}h0?jI_yQC*xzEjy&q4LhgyX8Ot8zkNfVn_UKva`rd+nFr5(xZ6uUme*VG;^Moy-eKp2$oQVblwiYab}RXb0$U{V$+` zfi%l#{NU{%vM7#J`U(x+J59%d33TCc7f2VD{p3s0!&3Pgl7+etGHcLuSihMd^1wh0 z;?h5B5(p}}zAu%fP&189X>3VVFjbIFmFZPAKAH$Jni^+# zIJrUsNWvkIsal0jffu#1R-VQ}qNUVuIzmF3NDZDzG5M(_M2SlsYZgs>aTw7RwZAZc z&~U!Zb1u(R1(*xV-|7(7FpU%IOzN2_Mi$9e_DFTnpKd3k7j>M)glo>nUvkXrSfunB zZVd6060w{*X)z9F6QDz{ZGSo@LM}YQCHk+q&=&$0v&?^5bjtw>2dfeqUjf+Vym4#u za@`pkb9i)M)@-S&4G0jOBtklPJg(ZAKAE+F_!2Ora;nvsuHp3RQp*N? zPS-F`RrfA$&b{h@mkbq{-+ z*Vt~}HT2!EpUG34ri+yLBfBl3eo^0r%^b zY5r$C$>y3X?jH`>vzHe9t*p(Plu22Je<+W#t;Z>2xQhedVpmy*&$G?RFlfXFBkn8&h>;QdRZ*wYv?HL;ve~X+W!<%-Jma z683W29pA#@eDo)GY3)^?Po6fBaL~ZP(_M!wivK2v1L~;}#jA%@2^jWQSdgGpMD$le zZFrY4@gb9ub+|VfJe=D?iT`daQ=&PJ$k|@>K0ceQ(b)1dWm-8jCeP}>O74E~0@muP z|CDpxq(xuCVTc~eHtts5xpu9JcFx_W;T^Zo9AQW-&JTmre%Jq&hbv+?vWOa03g?(= zhEm7~57&Ql@ zE~sR%+HWrQ*n4j+j^m_!x^&-e{c0)<#2~X!I6zoJ1u1h=qK3ucWV;d%`$Lu|1LfdZ z%5WgG(-Glb1$kJA6@zX6oaK1??#lfiap*vKZ`o0F}pm+ ztj6;ov_|^i^kw8(mF>H4!!?SzYn0N2c!XbGIbs+9jgTSpKD>lbO7IF)o_*W>fcItd!0mk@wa3{tk8AVIclKch=N<8cce$PAgSIofebZ6n zWKBWeG_S!M8O(C~agqk0!)b?otwmS^06qsPi-e&shH{VpyJ=}v08YZB$vAX_e@_gC z0HcKu)HH#4Nv7K#VNA3uEmHzr9MaayarJ0c<0<7ibh&=Y{iy%OgWJ|E>_vo1RF*iw zm>#jZhG=#w7#b`46Gjl`$X-A`u5H8i$#v(1*S*_o-$~1Jrqh19GnGBp)#@g-C1x`M z7!SbGR#`cZoHmh)m`&CG<6Iy>_Tjcx4L-|vzhLqwr-!n?U7IdLp59*l zvtI5~(%)#Y;iELHU#n29{8(f_R@!Y%24V(YKDZA#fH8L6?z)gh{@bt8gh|09L24-x zil9wF4Mt6zIF~;WtN9#UW0mDE&L*uY=m%XvnOz(}?y9 zzt0yUNL5O;9Y^3e&afvAKIf6?^p>5}1}j>ZhPkdcJ`ag0T#M7H51FC9W`_I= zR!GO)m2Q#c#gt?jZ7Y9Q0_YqmVLCt&tJ76a$YkCsMx)CUX?dK*D-mj0SjRQHmF{19 z7?u`!ttPod5y_LHT3yQ9b-H~o&$+r>tY=iGcT)XtMk%3Sz%3i1F-S+#Y=PamAM2Yf z$B7!c{XmN%RUB?majN114FASDWjZBrkmBN1J%P5-eF`RXmTSiqC>26}s8^kEnHN(y zkG@u4IoX=<*?GKfr%K3lKK})xNPvJ(Em2Mm?1|McBbl9UT&kXY+J>D)V<@LnsWrv5 zVMiNx6?Z7cy{hNEH^FX92K93FIy`5Ne=ddv=v}Pct|5|nLZ&otOcj^{@1jRTIYugg zay~oKqEU=Qdor-6(2t@C81&XS8Ytfdp1B-Sa_{omDze}12Ho>DzW2{!J`wWsxIs?Qm1%$-~j z?4(J%8fpa0TAyNwoDkF(W>nlCtrTmqI&ewop7Ytf$k!H49jo&{zc_{%C(5Pu+-D+J zNu$a}zDC>MsfOrE>yZcJi-;1^x_heFsx4y|Ks`w?(d^)m3|L67=Z#5zvl1t^b3kqX z?Jd^m+6z9>^Ig~ww+HF^?o4;)iajL>b09)cLxQClUWN#f;mko&7)E-P#qfi58f{ZK zB$G<7Cklz+vSEYqUtoaaC?{w?8)HZ>tL6{+@GM4%F5^4=P^ z*;4WJ_=JldA##j2ApD;VhF6p{I2FTW&ssN}7U4}^U->{2$v~8YMgR$e)Og``)F_o@ zfTaVN6lscwp($Dh$ln!%lB8q&g*D96&VXh%86w2-N}#=Vb~YOxv%2rL7`<*M=vnVI z2Ku!COoW5R>ynIY_lZ4?QW+9{ zMY)$%R@(NZf4R zqGh|rBhnBWS6h+{kbBkbz?CTWDi-DuP7h7zJIPlYIXWFRJ>|stnisAv_|E{O{@)!M z%6^^~gTTESi@tndjR0Adj%l&MKxVl4eC`*JKO zeKN~B9fH{82+8Gb4nh(inK#=_Y5qB2bK!)w(ND;*bV^Op zHAtW`Rio2$8h+Sbd$fPvu4W%mmLyjyvlFF?l3w@4Tx+Chf1#q_As zn7YF1_F4?ElGl4f+WLj+YjbqV;Rn@q%vzi7cVM(|U(P=`NHq8ps^F}2hb6~Rfm#MY z@j*&49twZ*d+Ky6{der+v=E*SNPyBOObwuthN3`-D;jYEhJV&;t-n~OF&mi` zYEr`gZwd_X1X92xjRJ-}kje7o6gNZ)tkq(Oa$E*X-x(ybMy2xf;NV98 z;N{ZxRZ}$rA8QkLglFk**M&h{Um>(|>ltZyD>5aFlx+9z#jd5v=!UKQAhh_2;(|n6 z#3e-oV|fpKapyr3>=d2*%LBL%yKnI=SMr>2@q#<;4kkvGDY>M%EeB}-l$B?oh5Jq6 zWDG(51R4{y=zJ>_peO|(Or)`pSJ0W5C-gZqqL}#z31j8vgwx@LV@J*n_V&N={n&C^ zABI~8Nf+ZPSN}=;e!EfLg5)8E@8astY`2_X7q)*&KytW22g9hNqO-{?Ic`uvj3bFs zJ3)e38JI)mQY@oxWYH5VL*@?6s@72Jl4xPw*mCU+4X2WKbxZ*7xW4exuse?kt07tIgO+ z(L#_=Ss<1F?SpAR@xZA#sHr-ggTlo0Yr@u3n7-VMvpIHK|76M}ow302!@ zk{Wi2#b|V^*#d?{2YXbZ*{XReO(q{(yPh6ZY0Wr-GP}cSQuPgAyMI;W^dt$AM-UWGqnnU6$+I)LxfSb_7fFNUvJXsRx@@G+Q}fY^?l4Y zwpF_wluZZXc923CJ`EEcx(lu@@0^EKR2C`V6YIywRJzXfHXc32#pb4$6~mqu^|~oh zb^pJu=5JLf49arPhkxstZ7Bcu=Wzfp55a<2ew{z6IxtSa~|Jjo<)&~hd;Fz%D((Dr?FHLe#w(DpAy)) zOr#S}b_k>;45%VhrEr7(?z6ismqG^?t!f5ZaE4FOFHtCBGI>6>C!|!5%!K=JZ(x9U z5{h2HXZ*k9MOnuMrbi!!MwX1hVfn-o(hcVgfNaW2#x@Xs|!aS)cbq?OrIgrPD!@!X8;{X#3|a6}PYCe*FUQ6}9C(trLnLK%R6`^?u;+de0>DgsSs z=soZ0>A7=Aq84XQmLkO~_6Rmc7XCJiv=Pdf>K!qS|#h&d*6pOS?NKgs!aM ze}K9{BK0{r)w$eA@;?}~8ulRNl0;)_q0p!#Fo+Cs?9Z{npi{-2lLfxhU{wLle6-=A zU&g>-1k%Qep4Xdm!8B(w9LvoOyW z39WSBth938NNwjetDNZxn_%~&^E~sSJN1}+uI_Zbx~xXoToJW~2t4Uh9#@SXJ93s>oySlWrw6fA-yVc<& zdwzPVQRcxgAme^cYY^jp)x5fpzjK&e z>-}@$sL{_;h50rF|LZnv*l-@- z)q`ME!z|lHEpJ!D7~X@MH4$RvME--j_ko)g^^$T5*O2dVPS{I!zlQRpwchba%J4qN zVFYv5=i12%uNd>aK18d<+F*05(`^wG2L~db2QQ9Zr{ghw)|*VHTC>qK<=CkUByHR4 zrrT}HWfd5nr>}DR@UUp-x55C;4foTM@+{ATOb$s7<@Z9Mao%jL?^C7T*L|wj^W_h_ zsgnoi$-F2u+Fvc!>-R^K`45uh*(?VdEPu!4efRa=g7{y9I=EKmXUGKuc0P{Tc~&3C zXV-p?GZFz_?AG&re>~(qRhcmsw?Eqc2G*D>xmVmi@@u(L)(W#T%=CZ+B`NF)>cxtX z(pDcMy{7!zXFOC+O1@4s7`iu>G8#Ea#DA6%LSrc6qmj7rClJJ zWcTqR;nN8M9~6ZZiKq#>Ja=BjJ=^(Gx?Q3tvXZq|!`<2NNe8~ug^Jy+J(7;$`fTU& z_5$&l!JXA2+84FBR&dna2S4d-bKGZ2o*GY$7vgT9AB>G}zmk1Lql>NCG-L5=AEjaY zD{LZ)Z78!%|A?Nk` z)T=$?&@)EDh4~a2EX;g0@Oj_Z38e+Yuh0zTxo$hq{XAFK^E@kl$RTtCpCqU{U#ZqI z!yM~%emg7uzP|aQ+XUHv3u!d|dX)cWX`3Ep@416*+XGtR*HFLh>3#3)J)nG|w%%;J zQ_g)`dPE%!%i1%F<9$wP?Hax@yG~#2zIL(mxzIY%^%JzjyLYt|gIozS`F`O4c9I2s zy>#n&$hN9!9|=^RR{ch~|N5Kz{r7GZ|0Z=RZEy7Usn+i^mis#Gu0n5&dOr7aJ$HFE zlU=9R*%s4xp>^AndKS^>43l3)iY$@dy&t*{Sm98?1>Ohu@n|>%o$veTUf;%F60JMi zZQFwtHSNP|=UulKVWPFQ^}W<-YSZ`qYR+S^MAixM!2Pa!Ka!eY;L=(I3H7kasuXNt z!*i5dO!Oq^%JlUH+2NJH*(rx?X(Z$!u74=UIa2j7F;#qq!se{uoDQ}1A zeebOF-ZPTjO{;d%`R>Pv?YuTNcHM3~S35rj^g~nYUV6VjUv~Wb>TdP_UexyHWPE?! ze9vfo_n*tqhf#j-g7X6u1bVs1)v75EAis3q_`rMIZQc03MCnZ}BzchiKC9IGq`E~w z**80j!X^Q{!hf3!gS%ieJ4=-QnGD|IzF*@uY&&h9E&D6&{pG#)kr4uVx15uM^cE|= ziUzSJ@zJu|1Mt*U)C)6OUTE>+ z09j~^ah(y`83NP_q1!!8vx{B)qUU`1TRip(Z~Hx~O_=F;(cZ3|fq+4`pyVUO#T&Z& z^?UBtaL3_hsPB5SA~Cbg%{*BaS+_e)TD;+aDC(w5$Y-h||s^Psq%SJPtYTZEOsp zw*rgyAr_ZgAFvDI^GNTD^gJX(&XgzQ>EnR^>%e7Ihy7q#7_C6!Z&dGV)DMK;_wS^h z@7Tm>8_>u8_h;|7+ex4?rHPycB^0c`v>5I z^(EdZ%F&WHKgRua(fef;8%e*N`#a48t>h)bH$fb-Jy@3e{r$Z>Xj2)OJnL(b|8sE= zp8q4~rOPb#PvEY=X{&`qYyUv|A->P!JpacafAA7{?o{SoJQ)j`-s=E*Nv}p9nnI;e zKuQW4iIMaB?^X4i4aNDdPc>Na@tI07oeESH>Jnnh6b}l>L?s0>hvvwrk zEhHd>2G-i~rDxxn#xc%X%)Xps!hqyqxbZd2HM;u(Z6tyJ1e~m?;}Z6jTSWJewSUd5MlwKV;*dBn7z^j{ijPsQDKky?TVJwD}xQKOb)4yeHC&UtUrefe6K6YLS37|eA#^~f zY#4Kki_AX8zcB@&3?PzmE6jQa;`~00{))s3G?b=@Vqde*Y z#G)lvUZ?Cbe2juh$gu98Cz=GO+Y1jK_t3h6&2DPH&T9iFMu^2Jb8dTobpBil^~wKS zANRLZ;XV7tyVMVBs!FGm&HasK;z0^z%_#oBQx0 z2w7f)@~X8MtAl2{{sYO`^Rdxj5UeWn6zMdQ1$X4tWgZ(~mpzNoi9tqmUwqmh)3l>& zpccIx8WV`MQ`e;w2_CV8iNU2pUv3A2QNrj{!pf2uj36&>(`b=tnm>87#vfAcLO6B*L6sNJ;#v!XryL zO6-oj1P~RZXzU_?d$XS-_D1)hFk!AvoK(B&egHjDc|Mf~zO9M@)WXRr1Z{8?RA@A|gl#R%0_B7URyOfEqvqYZi=PwDWL zL95wYhG^eNJM^KnmX2u(fgNU4GNuy|o+J!!tW3!iB4k1we~zZf@pt}aHPf1r5?9Zh z&fMo6m_r3~zp)tA3&>_tXzwukXFzUM%|0)i`&cAqh8pP?IA`pzbo?`S%&1jWr(l z`!<)&wLVwQMR#GuK~@3?Bp9iwwAONY`gOk; z6KVLR@B{~H^QiT6Jq)tf{7t+wtFA{x;!yK5UAf+s3|Q5hk}XJY^pk*Qoq)D0 znq!7h{y75HPbA`UoFaM#gaPinUh!xnATpfvhrW?Yn$IB5STc)idcPfQTc2i(!LPx4f{J{reG(JGHq za_{M@``ruwoawzjsr$SK@7H!r9$+1encE4l)NZK=MfXvm-VGJC%A9it!`NgIQP20j zJ_{zwSdlmUcFf+(S#4|6zp?Y>sudgtBoD%Wtf@e?mi7iPB8skqLUZTF$^3sf;8+7D+Rhy5OQ!5SrVHH(2HZklThr(^#bEpNFXJsyBqe-g&_s%1y;xZ zkUpFD2py@QffHnB)WV0weAgd;xgCG$s}XTm%H}5#fc&8?Ng%)*#D!F1oMXTTM4TIy zfQUaj3#%M|<$p242@M&8cX<;eH$|nd*{A{bK1uz;ds~?w(IaX0*Yjn8y;Hr5-*I?H zRQJU$9=&&m_lpxMB=&G&?R<${!Y!5MK9A9FoL-j>+tdjj3;+50-PhQB^?c?bcm5Mx zmywAtX*x!bWEks^PT|F2$cQLMpP8zQm*6)JH9=goNt?q^gwf;-ez@hy1J#%d#z>sUwSG6{RhNbzmbLB4irV)x1C3YYsr zhI)sjfmse6(h6i!$5H-F;uySXE2fqRHD^yOqv8`MI=}|OZWv$s(8MTfpG<&2=Vqx?ZZwF5 z7UXBo+}f6AImx$;@m@fQo^Lp`YSStJ1d=L8^aP+X6T?o9>XY@LD3;pPTZ$t6LD4Ws zj2xi4RYsr!Q3?gSuL#eFG!{&bVi0$SlvF7Lfwsj(jD|UW;yc~^8vna6zv_*d z@H>%a3 zS|rcqldPSmavg#&rR$gec(exx-V<8$#A6#Hu zIA#Qmw8~fpW{*rjL68l*t7!?PFjx>-Fanra4Ezv-|*NS9NFN)%551tX#wXiX8tiM2YXDxv#;!qsCJ$h z(Fj+V*GR_|feQM2FXDD`ZdUDc5XI(u8~AkdYthrzXXkpXT90by6@O-spBN*o1q(4I zx?9%hp`3z@p6-d*i#LlqR&M_WXK5@*>G){>6y}(t4GY{4^_D6#9L$h}p8Na%ZjUR2?c?hXxx?LJ4U5 zn?=4vRZ34D0}G>e(pa7X@j$f5vo={Z32}nk5~?{w0Eeu+0aMc;kz`G0jYtEiKNN@< z6%eXpstx5G5~=t2A?p$z$UaZD7AP%o2*6?SCs|cTv5dUd-3kx#6*4zIjT`{c3sUwRySh=Qd<5eUmxH6B225Gpbnh+mqVna@& zujugFLlTWz zuoRDsvq8SSkR}aZNj*h)yPk))VTdQkRgwA(h`J;hj~8uKkJ~WZ^6LjLU7v}B9SaGTPDNExeI=yQ z;kLwC^oMls^e3};38MlR&Bc*KG~SnVtL?|EgB{O5_t2T*q1167MUJcL)GxlPS6hcn zAT1Q$`=YpgvOCHaP)&VQZ0lI-%&I+oJAz3C7kRaRf#ME1DDr}Qh>nRNL8Xu5{Tvmc z#OaO85sHuR!ZN!d2@sQLO=~apM00L^L_URbM0Te8>9eFuMi@q@x3quZ8f5>ND7Y6y zpjzGL@m&xEnovEl+n4eBSAUjTpwZvI-#>{+M(^HV07@$uai1AZv$y1fyd*5S+a1+;?F1R9EI)7fHDYigz+*z*I&q@3e%!6nj3Bm*r7XQBzpR-g^T#^t1^VX z@)k$f4jGahx5x5mBn@v(@o=b7(Rr0t9nCc3HW!@|-CqDhCm61*f87QF{U&n^E|cgl z!_Y%ThN;_F&wT>(`u_pYKrg@DM9PaN0Z;G1PG@w0#ar&m;{{hB+0Y*ESD!<_*LuhhlEhiIQVp;vVXvuX3cb9kH<*{e+ z;4UroB9bACmqoj>j)rQw35!*tu*s3Zr9vyZ`s^L5@`5IQRs1e}Hv~Lw7PR}vJHv_- zTw25h1d;hE{T}c1NzJirlgBcsI1Oc~h5CbFSD#;3ytrVO3bwuQ!V72jEDu%==5a*} zo*o;Z!dq{SgW~LGy+!=`uXx2P{QSH#jg5_{Nm+M1mmW|~24k?z2EG4u#k4C-)I03;a;7Aj~kz$CP?f|I^TT(#U* zNL6LF6jvFqzSvp5JhCrW*BEW;N|+7ZsaAnujirZ%#&+epom4L8-Eoaq$UDnVa@U+A z16B7%Hjb*?bB#A~z*)3L0uT`^maoTM!t34Qq!D@;&M51UKL}R4w8te@MMDet$mWJJ zHPJ~^r?>eIXVJ>4X$s&0BmlySQ6UmJ2}kx^+S~bnxAQ@_eX%z(;Pm$rFwkjiCaQ&` zD|CQf)al>p{p^$8L|^>{Z@%QXcbvTPc@OQqcK^gGBVZB1A=(@TAMd-NFSg~D6{*WM zcCGZzc)7cDoxAE}@X2Mj_+lEbKey*B@AhwM8($)$j~rm>uH5DcKHJnPR|r@?#-dzW z*h7pZ@-)Hr!@^!HTg3fCEZhAsOR^M`Da8UTp@^NU00Yl}x>V&nK`1m1F`LhmD$|uEmT$D3&>Yl_5^*_$kb&c&J(9fhlXDK!Q2U(F?amq&qBkl|%j^ zu_@wMfCJ*eWP&-;wFENbx ztyrtp3KJShaHWd^rz#Ux4Jp|0<72VZw!6m(AAaWZJMrg6@kX5pi;G-$-{#DnKN!5{ zSL1{0Z+X_~4{dzji=xkdvpck1VgxP~C=GG180+&gqmgI6vGUk&ys>`RJUHZ3SczT1 zbmZ0>Q3DkpX{29DLck29k&7YGBd|r4wElO+@!n&%dq`tkO*Kjg(|o58Li+{df8k={ za`A{*v>dt3n;7v%2c5AYx1mwsCps7cfKoa45 z`}XaAH>`@_U51|p9_K7_T95~z#_Id@1uB>bC>0Dt0Mg@OUlSh2CuW#ATnfy?I^_>h z<0V*QXY#AfF+*=YP$Ar)62N>i$F{+0G(`1{=RJu$4vj3f4ccIWm0^j&Q-p~bfhxGJ zocgl_at-#ju=$!f^z`&BVE>SM_3G8WONAXPmM)GIDp-Kzq-Qsthh8LjufD`S4Oh3E zQ=~LF1w;wNR0n+0rc$;VmnC5c23Y*dVyWJTCpX_V+OjB~n=I!h_+wRwK|ZoCzxT1p zUe-}%%BzlR>o{RNlhR^^NNcy(_YnT#0G}iqy6)e>28rHzuW~nD;_TVP#`Df-zdo#d zTCz$50exoY4oN@g{W_LvCR);K!qid-VB!-&tcSsU!qfI;@?y{=NoLdfN=_k~FiH`s zuX~-gvyx$rfU!lFfkuY3Z50>>jRYx1HX82r`gePe-c)Ysh_JgAmk_olhZU^7T+}Kk zV3OFltUIYd=}(=!da1%v9^s3C2f@O!O{2jR z!?fauk(tD3k*$PLhLv(v@|F_pmz++(FnrU|_~j}Gwr3Hi26ks#mn3#>n!uAA77bz@ z*q#|1$g^)#_i+tN*EA(MCr4A8wh!O6rsWK;p$nl(-gm5(9op^fx?k>pqrFaJ7Xg;E z$3_cM(JsYU!tcDf%`7=85EoYBTcg?4m#GL03|3hOKh9TdaJJo#gygZPxuw$xNxBQE@cgia=2W$XFy=mR>G1gcqVvtxzB)huhdf z|AIzbKT`FIBB&&anoQt8lWMsk9QkS$`{k3n>`XkaXbQAnm@Ha8BA~DWqsD!l-g%?M zl1UTavQT%9x&^<Kj#v(Q@fzJGrr+x-D z8dO~#?u2Ktog8jg3tNAVtApn_==^%ab(WwKyyW?6s~Lym{f5NbA-tGKn>-Y(Vg#{# z8E(c_eqr!;i10xKXaCZ%$?!x6rwSM>_(H~Dj9`e#k2W@x+0A}Put@_{_D=0Pe)XeK3Jhf4;1=#WD5C8>*55hfGa|eC+ni)LxuEsarLRq z=e&4vQ+qrX$2l%GnA^I!|JOaOr$xHfS6F65bUtRZ_fe;Bt0GOLhb6C|^lRyI7q9l3 zI~_La?c2t_y^fRf@)?C)$1%ONOA-tarAYvo20wvPum_=vO{ykGh^;P}2?!y25SAyL z4Dlfx8v^IF*CG-apM0A5NWvQ%aw$Eb{$*t1#@Xu;oQe_ENu3CSBzqB`P|L8iOt_#= zLo;#It$@B4-{ZgCRb0~Xb`-22l;esZ@N8(07)K{Jv)WN~U zDE>IGCt}Iia59*h@rJ;BIv1TojR;a>NbviADra~vCd>>99DkC$|H5eODVun~Vpt{W zUkx+=2PpvKCOiu3kWfg>c>74+ycBX3m_bAf)}avXmQ`>C%V*5_28@J0a;(rmGM*r=Sf@VI zghDP=ugY=I1&u}yAgDQOPHSeRQF^49tS{o1fY>vzJAZ5ONZfnv_^J$!gz{lVZIt0g;M$uFLa~ zrCvy5*shR`6do{!YS9JT=#3p6>5b+nMkV zbH==M$t9QI>A(+z1WH*%;YARv!qUmJhNN!Sx7Iu+!G3D;{u`1le^TtDbDwR^V83Mv;Gb=o_;*mY`>I>jrHe;_T~<3%g_pMK-)RPu&waW^&uIhd43h;r`d!;o@}8vZSH?ZttUjnHOdIcR4<2N(LMx1_3S1F`ssu z+uYX9%J2aXcRoyT>_$Hh9F8mEEmkP-i7h`GTRk>fEEZUkt9VY_RT<2~8^T}-odZY& zpN0RjR~8tC@TC5YJ&c`*Q4%s(#}cQ$xhmKR{h*XFO?k$X-q2deR8_7T0&2qGyCFXn zgj*DdZus>pe@qgO6ARQyJP*9$;a@~T&+aqj;4E;|X3^ibzV$8QM6j>Hj39&}KG-Cv zwFs6!HS;XGM6>5>Ik-UrkJ|MjuYUEb{m7vNrTvG0_y?rYWB+bD54!OedCqg5GmnP0 zi47Al@8-XK4bk8c?lx#Q!eGNb9k_bWs6Vix6%QJu0LBQMfohAV3}pse0R*L`8EJ(Q z-be_R#W_#P16A`-&p6M8Eo6;XEaJp)9S|m2Kmwu+=3t8vI!V1(g)3YHER86DiHZRW zt@M%MMt%f@ykirn2>V|o>mrS9aj*&mlLw!HJtF?)b8LOFyEQS&VrcZw#0*pQ$b^)eP}CnCanJDWoEa zqUPI_5clGkC$w9{`Xn(jS}!bEEZXI`H4io2 zq5z+Li=QJLT0qp7-U8?VN>c3^o;k%XC6WL~Dwe1u*z(5{@)(H#9u8l%7q|`xVTjss z-^AEJfhw?lm~JHIM&fb;jIr%SU4&S)G9(#onEIgxBe)e}w^!W4Z+2d}x$oCbqA_yz zE4&TQaEcjW5+e`+9k~jC0i`B}wQvd(5n>iLRx9BN#>mI$&$LkmauUFUAjMIV2Ar1zg}P+U#PfBPj*z98C!p2)(BzK$#}mm2 zy9H8-%JdL5y-8GHNcxOZinxLVW)RB&oirz2WIQ|c)6M_!*#2LYx{r@O_b;5&UgTv* zouOS?kPAu?Yg|UAQHd`g4Mr)t05I@_K&Tqni_J;#{RlmdRAev~xR4A4V&UC4v`>0J z{Lb<2>+Ckms@M?`sgeyNQ!+APB+sO=Q4u}Y;G7hilF#^nd<9U-%s3`VQIV$bo&b%Q z7?h(!lz#L^60YgLNM=9wTh~OyDy>!15(P>b>Z`J!{6fFvNzS0wASM`ag`*&v_uy>s zd-el!1)HUaoyTpR+_-vJ_8bu#WTb3);m&Ag+ zk*`?61BV7%NX*%t_m9Vj9NroOpC|==NMvYh927JdXomzsTY-pLR_lx>N`SK%E` z9CK}i$Vf744SM~1q}&6gFfS$Ra3z=L1w&dtJrEVFLU)%h*iD38@_v#QQ3^n<*-9og zUrrd597u^3tz#*H*v$&9DeO^Oi#k)p6*bk;T(Or-9T8pPtIC6^S}?6VSm(*e^GZP= zwaDvso?6Xqj$eJJq0@t2A2tzAJzP^f2a{+1Sh&H13zRz9mFGHlDSvDs9?=2 z!Y8(}EorMj0Tupn*$Qw)9%frAR@h}~a-_6)bzQtJYWB5)18eOt9ja|nI>vY+!aCpm zThfEOv$;$;pPlMW0+!Ytm&Q}SxZzhnzUhni?Y?HbKI)wQyUwXEb=N$@=~(Thn&?PM zHbg6e;IWGb+B^iBVh)E0d0wQ6zdo$E63A7QbCuBP>vOs7vx!c2wym`GrSgCeRa(%{0L!Y$q~ILVBAw-W)Fwlbk%&daoP~#5feD6gkWX#tUk>DP;wlv%yKQ9C&xiIroF3ehA0H@Y$4fLX z7YN+v4eri0C%Z-?+iu?Xg`2m2?m&7=ZuP0&MQ?YW@jB`c~pkND&8U z;bZ|Cl?!fjtJBaV-QCEbH_p%$Uu;$o$_W=r)5DvMgr^hcrf)W7sp%b>~&g3yf9!ygH= zM9|}ryPMe9w z!R^9lX*lmotV0sUAU~-KcqI~+WtbGBth2(9ahFgv3{lwnWw>HDDQzf)A&UBRl1pnl zL^AB+vHAAV;ocnOn4|Em5VJK>3IH}XSRCyyG`1y{t#9nxmA(DyzPoH4v+ml@RgA3`6x$kd{pyTw#Hqy)@@njV#>mq0u;s8 zMbPwoMh%5ndC5b`q`?MFSb%}~4J#BXKBOpI*uf`EQ(S=rcvTP*w_`E;*2`38>q8?x z7JDe6L)|@vWW zSgA2JAsz|Fz$S{QPDs3pOUxkIoF>bqT&1olw*Kta!9CgE{O`Vv7q)M_puMFlj_U*) z`xesWWGcG*fe9q1Q=iju;zjMfkERc7&FtHn9_q~v?aARu$NuiEi`c5l>s*zJr977w zvBX$z;D&8qxO?B#-A%`@Xg#I7<;?bm^^M0rTdTP&Fd$Bi>|yu%O5bCZzO7!enRvG@ z=BU9uF6G8fhfjnuri?;nsD2=^sbg_VRZzNGKoTKsZBtoGsjG{? z6r6${4i?k4+UUvss^Q4fJ=B>VdtKwbP3Uods-OAHXRvYw)rS71xnvlW5QVJgpc59O z)c7FHrH6&BgC``+;=uhyi;0F8bYZ}fironL-mi1Gnd`5=KKO(lvU$xzP4F6)bA0^cA3tQnSt=kM ze)OXsCGtJ5zpU7^Fk|b-#OK6k+GCfzq5IbF^*wOI@b-Jg*Pqk6^5mxWrHO{tcs^Sm+>^u4f)IbmY8~CF z_NB?5)0<$$gs5O4aNmyX=G(_soY=t5if9P&s}YAU1DdgPespv0wp|nVCiZ+cbD+T+ zZ#((4^^4nAceSi;t6$N&;uLqqDbZp+TEbqH)qWrQAFb?rq%ykKi_-)C5t&Fa?WQqG zv9hYfEqHkXXUIteani+PRVtyx6jq_)OBj5jkPlIm1VzU2kBChG3_gKm2(nIaTPjbX zj50LmV>7}V5KAYrc**IUJc%()p*c~ZEmvEEaOTCpTr`)2d`Bgrk|vN=Rg1Xd3#Cm>IWFm8;>_XLIOje{RldX`vV=D3^#}Z@QrVL zqyLu89;_I>r~3*XoB4#J90LjvnI$+1K!tNnuw?Feel{S@-0Sn3M~MH(M?T^=L7L%# zB4CPNa#$HWGJu)GYBK$y=3%_{+H2=c1V$$el@$$f)M9Bf(UW~+Sd2ZJB$fz+#6gvT zb(i7g#Cd>4OTYr6tZq=^0gJ9M&``$fzQHYyh-G+2j1LrA7AKIdh~RhT^A~k=kMDkP z^3j`zx8FOqWNrPrvs#At=F?-v)u%Kyb%GvvA;{7buaCsz5jgqcwe?HZ5q3WYwxTNLhEyu7`!zPY)vv!#A%Q+!cfr8AoE>S$fD zY}xTmt4_yfBZBs?oY&GQBHNDRo4$+q>zJ>c?5LL>W}++>1`PzW#Fa4PRbyKqY=KGm z0b-W|nYe~Iis@p+LzZgoMB^u9t|o&|T6ktMh+lw>C8ez(tTB}3+lM7V6gWRsPR3qR zC#D&#RL7vE?PuYRcr>tS1p$G0Gdhx9gWeN_@?1%8|-oN&UEh*EYYur1=~p!Bn+ykmXnLm&F`m%n^e7eW$-2P5{Ae((O@ z;{Q|zQJ!@R{w=db4&lTOD`c~63rYbnH5Mi&<x)mtvDxBgmqo^2CtjA+QP@>ReF=1MgayYVM39IrZ}>##-mNS;S4)&xTUO{8;O)AQmJU`+KnqJziw-)Te57)(iJPaJKC2t zG2i@a#IJ-7^JMQrYwiE8w^l6oQ+>`+rEtZNZEV_w|4jj2GQMP!_ z0xb4y#Bb0h3oW7@=SG$?-$rC&%1}++^WRjr_+wjAom2BsF;uqYoS1y|bgJ@#exo|$ zbqr}8DTm)W9Cm(61C{^>;~XPH9IPMS0g*XagB5%rtzP?`?|kRngAd^WPq_DB972rP zZ+XjG7L+{m?Ci43E+cdsDiqtEfCZoU#3zEUz4Poh(2UnuRv-JTwO}rA88~L3N|-%H z6d*b?P7RMd@`xP|#T|cZ+(hU8W2Pa_3!s#BAjBpb)c(~d)u-PT`>mj;u)AQ`t2|J6 z%oEay-^uj)GnU+VaV~ViNeRr zO_5;9Pga<3;GPw0$gP=J}PK}2L@}-md?~CSfIK7+rmRZJc&oF$r63CX z6A(p-Q#Jr1xFXs^DKl1#CxuB%*EftF$g{YL1+m~6nPRR4T(vDpHg$9ye_`7LzmOVm z|JF?Fl4N}gQVLFWax7#(bc`@`^ond(zo@5vcwfGCF?EPTXb@3y4&WyhomTM{D!Iv0 zK3^Kzmo4PVtb4*u7;lF zZD%fRKCN@rsZGaU969ZU?j7H89{j0uV5^{)832Q^n9v*B6*#F`DU_d-gshiJ)M*j1 zz{B8*4$NGWtR^9oDTF%YARI};lSy0^&R0(Y<))4x&1U$rd63LxY>NdtB83EB-%xO) zBLDi=zm7K%V!`wXNj1YFq_b~*jiV6@9uK+k2Rb^C=5PMyZ+u%0Jrnd6p$bzlanf*( zs4<%XO9%}-eyGtUdIu7J7i6hmWTU{vCnpPJ!aKMf|K0G@pZ+xaPp)3QdZ8x71I+8E z-y5O3U-O#Ruvs&V2JaGr#X(QrLI_33+dAO~pCaO>KjGh|3>%8Vl!N9a-rjJldCz;^ z6I5H(+%mc~_&DxGzBGoK3#A$F7QveQa){|SyJntE7ZG0&t%7ZLm`y&J0M9ZZ1Z!ND zkihtb@bIFF_a7*f@VrC@C79q$X3tN5sF^lO8X|?_@zm4PbFk(-+Q@V4E>r`_@PW6! z^{q9nV$Jd8!`WR3D^ZkP3i^lq5bY$A0nP5UYA|QfGbDDVKGO4;S`t$<#H*dQNXHW+_Ba zX5AHB*;ssx{Iu$n#x1vvjrAAmn`3yigQL_b<|J?B(q;BtBE?%s=iTY%7V?$dLAs^$#e94VgD$(*lc4uF9^SyhocSc)RHJyI> zMX&8%bV~ipKHwdHk$3fn+#Pp2O&v}m4ivdSBBTO8+28}~R6~n4MKsDvp%<5|l8~$s zN(CzxW~`)Tk17F{sBY2A5Z{naAWz0>KkeVdmXoJCO#nD#NuzeO*B9{k!WX{qq?1k} zTHW^T+x>2Nqd{>&!g+}w86FBSJ{;;e^3H|I4xUItN|?TP4qiI%de^)Bu4c)g!e$7b zWV-UJLD5@G0zOe1fRwx~qQt-riE7w;{F;6SNIyudpaW6-(tYJE^8qA~!&sRVd?F}k882q1*@22`JbIt{)Tel${LN_WJ%X1c zLZu+$^FZO{#QP`^6%<@-OT2;h0>qg1} zd-iS4;P~JSd38;36Ka-*u6EBDEaKW1!*>phF>Z9Yo&z(~IqL;okKQ`E_u)xIv6Uw^ zD#Cg_oIZ+_V)-_Rh%5#6q(@8rJG0h11C#=j@|gCDYtZR%?bHjNp#9}uK zwwR~q#sq1wdL)@-qnnVHt`v#ODMN}zTt~R8Iwzkj>=?W0%G>T)89(jhFn$eXT~CE;ZaDdSFeVojXKR{2MNScMh_8bnXy*fWz#V^%Kz_(uKx{=-`?arq?T|I8 zfPjVekH7U?Du;FEM*&`#uujz|yDU!3-XWol!8zGf4LQ21qsK_7twj=p-qPjw~JQp+@^cnoHlf9q~$cFiAAhR=*5L5}TE~gmi!) zia5SulCXOdenPMKDE;tpK+=GR!-$9Xn8%4Sz;H=RW;&CA> zkJWa8ZP>9kUeLDTyjEgZ;E6slR76Mucrb&(oHZPgEb^7+t^^oHKj7KU`zMgw7>no? zO&tk@CpNemAIKw7En8oY>5B;fZ)h4VJg}!QQJrYZCL?sn+<;Gz46rolz^&pZ5v#AS z+qXG=-7kOepWl1;uQpxfE;}jqg755l<1FpOn4z=6!2V$A+jJ5L{559a3i=ygRgZpbL*)P}e=9FcEBZ zusqKNO7#zX-~)4fkok!silJS^phf;*-5yr?ydP@jj1q!(uY;i!(}*=D+KiioIHXvv zc9jBeDlrU5TBs^d3yDQyo6^p)1{m8?cA_+}J6G2n?Oc(JCE?_9iunKSoe7X6S9#|% zv+k~{zRx+k=N^sD(J>N8NHaPSAPeCY26kl_*#u_S$jds|h_xL-EbE9h;dQ{;crlBO zPi!FY+K5X=7eWUT2uVn27#(v+b7-!koQLp7RhX!X-mE~`r?}8_i#SJ{+)xOME8vzbTh5l$Unfk8Gv`8n5h%=go-tF^sVHg(+27yKeZhJ(t0Ox< zLtYcQV56a8yzzJZBCt1>k;O29?e(Tbb#~G=%&kN@;-`W-8znOMfkB8@HdO8Q6V2OkAFTO~j>o_z zj-z)ry2hah#l79ov)2kJ^KJZ1T%Q|+F$1MPbL7pGjhF>z1(v^AZwhYZxc}ks!eh+c zLHUMG&u-|)1_lNinK&2XbHQs(;~Mq4W^u3JslYIX=?g0+Z%+J__zClb)YYs#T5zFjbeIHg2dEI&CI*WjD2MnGM!i^}P#hT@$ws^0 zclm$4blrR0oj-P-_^N;CWgr#u38n2Ok_b*1EjxS)`6?t5>~IcB=@iw>lyn;XquB&Y z_7Zz75|+e3H7LJ9^QG%57#1aIBsMqi;`cchzu%k1apOvUI$4EPojE(`!E)>{H=>Bqd1qB#tZfoon6G3s{5j4wvg4@X)s^ zjno1{Oiz|EHGw67O4ss4GJ|Ki@p>364!xE`Hoze;k(S6MR*#%BO$Njwk(1!<*|sRQ zD6*UU@po^JVX_)KGL3Z#!HB+a>%fhIL)u4T zv!*Xj5hNF{J(hM6a!@t3xLBG->up~wx|8F1;42wRk4zr^!L~1~T6%u_z~#QDKmc16Z@8dNWZHl*~;)D@`*B9a8uvN10 ziYE)8^iK@dFl1SwBJS8|5ey&(60!RZ5sG4{km-n_xP$Mb-)rrSqcViuV#ER!=slV7 zdRH_7LdZ1a-34_hj3wMuPpmhQ`sJg;_)}ncO1I%Rs74SwB)7Rf+Qq%wC$MADUAZ9t z`01%4o`e#%GEpE3w+`G3Vd+2`9)QSmnRa=}gKAO(mhme0aJ7gfjZ1~W3kfSoe$5d- z8yVb>cLwW+%K#W6n-__+bvEal_CC7%FRxy6S9Zna?!lLxU*3Y!((A+$=?vj0q?#3*Y;}upA}rTbE;HYj))w1vTq%I_eyYvsT48z#KSBzG z6bLDB5-DKgX9gY2%Qqyr>Ll&pG67Qc#AC6NKjpcx63Gi;^Crli(f+a26(beNY?agl zufHi`Pk1gGKfI=ine_a_Lx2RfCDeeK&J@7FT3b@%0vg*kK$)gau$KF7oY*BQ0I=QaSqEp&zX2 zzAoAQj#&RC{_ZE-!j!MD>sAs}<7OfVo9w75Gc}>F0UjhFD@RokNad!G3o1JRn6cP# zeSlTAsS^H?HgFZ~m$bw>+wC-;TxSZ6JlsMGgcNwoQ{aII9;l_k96orp)lSVmi*lXz zrlpBk(^P3V8X^A$DnRjKxIBWD*eyKNcv65^1wtQ{eC415JA9{iRT?Mq=N}$K*aD&e z9#8>Dv+@%bCNzYIEQmg-OpFT&is*#vdTs{34NM^P&<>*luo$p3lXCPREtC;vKu%*Gq5>RRFVu5)%g;iNm%s5T==@of(^ z7_-NYM$LW|&unFVYBa(yRkoLF9HyKUDUevJ&A?}69sxgDwnZR87E1$=l(#K5DI!ff z;YUb;kOCnEsuaLEkm#Cqp@ym_=l#ukVWQmDUbbb+mfFM9yDy;XPOl^tRH0ZjMkrqQ z#o1xG73K_^HBNf4SpY-s62`v{qZA9O@cQdn(Zu3hd>?ShgZodr!ZYAOK_!X=F2`Jy z8yX&TBE^VLBE?v_;Nj4cE99pOMO;dfsdRnBIM!tjye%P4#X+ou(dA{C*i#s zP^EYzwPWbhf`?8>`a3`cdNP&<7PykRN?j`F<2wlOl z{RJ^5(O_-nL&9pDB>(jjyMqF%-t5|zc;DXQwt`m_D`t~Fg#`r@+)o%F!_VN}9KPMG zPofHk$V|vUolBA>f=1xc9y5_C@?z`o>QaGA&|ej!PP8?#a#6?Xo{p92cze`|=L@;< z{NW=LJC5XbkQXtkjEf1u3|{C+YqS%WeG4rl=%D|?A*Hcb9ZXOLEIoWIWHzhd7Io-N zpn#$eS37265|mH^vQmg}mM0Dq?ili?mjbhIbrR=5>x)5mbb*#L?xlvOUfVPDR8MAI zNACvWWVn-~PBdwdj9N1`z=lhiu#il{hFU7oW&pCH@iPUgQ$bC9ADv>}nHWVuX%l%l zESbu-ON1=s)mkF$cCIj&E${~mEC>gO4*J9b@-Ogc!sbpb1y1kXXO$indx9yP+DR`= zZ>N`Zb`HF|6HL~|j$sW6L1Dh|g)gxB>W$10;SAWTZGk9}wTGvDKf+?>L?pd;c-#Kb z?Ipi}?#s#pXz-+%lLvt$C=L*th?#^?g|TYvZ~^TZ{tKWPYO2X$8EG&SiRqhc^ob_W zh8PxJS9{O8rI&78cJsvpw_LRB>eX%Q`rB5m>OF7Gl8cx1u4_qmy3v9k%enDs-1Bf5 zr@>(55_&N)cKE&gJ7E2W$MbFeB_lxhQv&@oz|qNYUzKEbCFOM8v!3t0-Fm3QJ) ziQpIA%Tq)zv^53H%t1aA(H!|gBB}1|+V*I-b6}e@xJSN!273(1=&otUppteh$;>!4 zNXBFv)p!l`8vtXFx>DDof1Gx5W6t=nKRKq=TJ3#K`(mfL8%GfVRcYGgY;&Kx?mFC2 z>{Sc+NjNf+7UF(N46X%iHf-vwpup+9`$Ur>un6I?&+x@wtc4;D7Rz#LS2CSm(%GjA zHo}^2*2vpKu!`We*pp6paW~T>vaMmTmFJhZCtJ5}J)<6GBr0SOuQRhOoopSR+UL0` z1v8gWBnAv3i1Wf=eV>H!z!nRY4(y!9C697^EBaR9(ML!RUDOL2(YhX^$_=8qmh>E~oxT_CEf-$`U;po+3C&2@6*Y)rfDOC@84TS$SB z0;ik;NEqM#_O~$tojFNl0vZt50*y$JW)P$yT?k^!-c?tf~dAn!sx;#Pc8*c@7@342R}$g7~-*>+)2LK zTPH{$+P@$YE-793MYBHl_S;sx0|d7{qa4%iokRc;OYO|8 zY;Rh=bMQ%YXR!OS@l%jEz*HpaI%ii7IwAg>);qtfs(BJ+jA;}ekoB*%tpiCYO_vOdSU;1$Q#@}gr z+Z{Jt^6^YI`TghrPoWsYeb9|c(4lMoa|9kphT@A7fD?lmXl6txRWR8waNl4bjKjTN zAjPnWH^>64sd9cw%Y?@cV+<;1+M;;UgD;#FaDXC)0-%Jxg*D72S}09TmWD}p;%2%q zAcYLW*0i95h1m#KN*0fWX)A2yY@@*Gz57IXI@<_#CXN>dhx-G8 zXbI~VjL(K_Cjk|C-N=B0-V(?ORDy(bB5w{GF}Lo$_ukrE+qMO25?z-(H9>=C&JMw1 z^&;P#=;~`;n@Thn%K1bDdrWoXv~fvLmZ>H$+2r9$4i84U;uC*4ydDTjhX4S$O-_yP z+CFr}<(qC;|A|GNo05~GS7qVHg9jOvrO~iolYfLg;7>QIe$K?#4zX=mNP43QNJY1=NNH zinQX&gv=NlEFc1QE=!`EBzU0U$cjB`!eA3>L%Y&hP8bpSITTsgRf;8BNe^OVCdOPP ziKi!|v#?%GI#{rcS1ODIft`Ru3B_i>5SI90yrU7>4?RF_m#7GMzA-7!9Z+s+YKk~x zL@Fboa_!|a_fbCZvmuUO@DfMwL`yr?D@88Q+AjMk-|vzIVI2HA)=ilqjPFvo!4b^Y4I24_bgI9`Ow?!z`~I}|c&?iA$3 zcdORQV(Zu4{kmCmNQ^jK%ec!kudVHo=LCB4oCLR{uI1XwcAv)CYVU8|4T9k0ZQ_w= zP~xw<{8;yQX1{e~3o6(rkV7iaI2${)1FpT0NSM%S<}anTj@_U8fuXzF2am(!-U4jQ z1nDR3%jZA;d47^XkNk4KXEs~Ht>Kr*Gc!l1Txy@xl2~`}@3pE)ho(dDg3dD{l zJq{GazhGh-fYHfOK^S8^Dzwj$HXJ(2$cgCbVzHzEQyRhwQmVe{aTR}z!KmyE+L)&pr3py9{?GaUWEw19hr#j~;vMv7p*D*IdIeP#h77pJ#?kY+o}!>5I&P zP{y+U+Gh`^0A@!xS4%Dexe|VUU|?WoBSA^y_ZJG2eGMNua!Ci5*Y4bP*Ihi-h!l|S zbD#U1Jw*avyTi4?yOb><%@STAHaji!S-pBSnRaKsIyCse%=Z=qBS(*l3`Ei#tX4r` z?GC?6w%U@qeV(GNTelL$yzVa7RXe?huWO2XGOGvLFWo!x9PAZ#FL?k~CBDz=zKlks zHIm2nnN(*Y0 zifW&VvZvwi=T8i|T`Qz=qyt*BwyVl$PVN_c5T<;?4L6XNlUK#>eCIpxSvVcJ)yW+N z*S_hdoBI3v;k=|<HYljY> zLO%{)18ml>Uk_H1UIf=8m_=6amTjJ9Va`sZQJZP9d_)F zZFOur9iwC1ocG=H?)m|>s%njiS~bTUcyBYpIfNtz7vy8r|k@(Ar&M4Yj&OYztN(@7qLIRjaC5pfQ<6O?!a z7lA+#g_+>fUay;hQZ;em$iUfb?fo1iB@}B;LB30X2lxSL5Ue~#VRUh1C-3#N2(~P& zVs;&6L-XzB_=22P`YOz$W#)CpRH>%g%7pr9;n#IZXE^jTeJpH9N7 z7a)f=j4`(D@8DhO^6M*4N@y~#Ft{7b&GZwEa`5O3Vz zm;hAM)C@tGTBq=W&BC$*{d22YfL~B}WmcH=lIZd2E((WfYw#kD&Q;+wS}d-P6N z)yg7Ykx-u$5>DcBxvhwOqw&H-mXvEy#_-&g+NVl0-@ai&V1PjO z$--^)gSX;>uc9J#aYyqlVBreKsd*|-lrH)B;`S7%cK&mAx<{z|GP-8!=AQ@tiAKbV zvN~s^YRII61XORq=v%G3|AIEaU|`6ejG=^wUYUad<2S-GqN`en5WP~$p8*9IA_hC>*doeBl7|%P(yaa1sSNLokw2fLg>dwK#sN$dJ z;RG1u2MMno+u9`@c%=I}-76)uoHnjv`gBA;z( zo}J%VI4_xhlNO-I-GTMKS_egI;k66D0dDPZfLCJl7=b~}l2nXKNhS02s;z4%P`s{yVDtNQ}b zSX=~r(x1IFe~~U3=68u=^3ktYn-e_rZ7kLbjj#6-LF+^ckbb8wcicyPsk@0-?p4g< z5SjjJoY8t5tm+$|bCkQ5a0=^<~ zFvNPc-#rC0g>FD(!~q5H^6T)jc{#8TJ<2Z+Bs^k1e=fRiaxSOFq!D8BW@McKpFj$; z3ORm`0#b_fcZ@TfIo$AC@;5A5aeP7nHUZJ|HLF`d2n;_=6Db<9JOoZvPNihEo&?fa z2w58G7UirsyO<{ujZif5Y=L?jDSKgMan*d@*b43Qm{Dwg{(_+hzG@Ijkrai@PE@@y zi~t)I@s~p1ch4E2dwOpbx)A^Z7_dz_8`-r+@s@wZ&CY$GsL zY2_3m|L3=BWm*6&R!&LiJt zXM{CtE`T}8C%W1#l=$FUM#OC7kl-hjx!UraCq<$aJVV^zg&;eoB;H|^ajijGLJ_fC zEUpgQVF>T2kf8A7WcM`E_;{>&yM#aPOi;!%E(DM#}|5$Iub;pdzi;p zZVFLW7H0eb$Qk3X=ZbGR4^+v!xDDYR(VU*zL?$IB6R8${Rlk$~wmdEgD4rn!0CTKZ zc~}caUUkXu%#@CJwa3keZ@oK1masMmA%32C3~azR+|=cZ>r(#87uX-M#Nhop5AciN zdF}bEYl_^|2xJx@Fu%U3r0bm)M|os4o2RCSp7tab9b1zi_wt)n5wRM;mB?T_rwt0) zsj%7>k2M0phDGmp4PnlBMaPVb1y6^}<|*wmew(Rw(O%-UC9EYkeUFxhy1v&K2<&>| zy_I#$rd~+lsG*?($9STx#J_o}^y@H?o4H+%1}O3~S`@!Y%Qv2oPt3L_2zn0WE4AxY z@chzKqMMCMtreK?Cs2mpxNAS^WDwQGUZW)z8|G_9mRXnvHcK2@A1E=HSD;V zR_E8<^3VTV5b}v|e_<4uJ}JO7G=cyMF93l;5Kxmuc{U;M;e{2C zDFKX#dda@8QcRZ}cCLG)En+B5r9RTvD&%!Mf=-@v_+S87a57;?Ae&6x!A)RJT@+=cl&0}BZyX5K<{wx zhA+1!RRn9W2OS=dU@ps%h+CY$`fn1QJ@h-mg?>vOMb6;^YcsD3cWZ?vJ_0W^ld zKs-PFnSX>A?EV2>SYpu<@F?oF>@oH!9hx+>e`YtU!r6Ie0 z;o>cQ?H5FvC~E!N=md59Y^Ol`tAl_l68_-O zp@-L{$6Ei_u$V0`qx-O=jlQGO_Ay)(dJAA;hsq)am{zFI zl)=vE6xaem)}r`+Gco6&CSid>8r8H^e`oh&p~pA> zDj}|2rP!HF(u!tXX`iTfNAVH5k$VZXYD(;$oq$(ZUeHnkj3#!nmlz+bN%Dlm5u#}i2dj@o zFk$G_R;@XIL5hmwQS}+)D8Y45movZfa|uG@0_?n7LRQ!7NL%)tuA=WY^Xf}5)4W|acp2TfmTxOS`#xCcMQS=uRvS0&9U%myUHT*8VqUc z1S0OdiCtJqyV4bGq(gB``zwO;9WCeuJ`i4;#O`hb1sDRkgM$|9Zh$hmak0D^-1eW|3_}d12f~G;L8e78lZol& zMKHvniJ7!0XvmSeqlJTXI^`c0b2)#l1j{%!ug(Le1RB)3z07^RVRt54bw!52QbP$v?i*9cE!myi#rnKo{s*#1Vztmu;?7i?eH!Fx2oxsLxJXHH$xtKQT;okIV+*kArAB)rjEw8zO2?gtTw(Nhge0@|-(Cdp*7?OMH%gnF;&tl7vL8H}vPs6f{ z9j(lBRs^oIjv{9nvawFThfcTBvNtpPy_rJKl@lpv-9>FMs?lJ)bE?%;L|lFhhlV#R zU9a(B;Hv$kr^=3x=3`E*gyf^`>suWn2#><$)S)4dmO$M}cqTK#T5t{ohw0Y7Ld+&z zRHhfynZ=2`;e(f~dR>0Z`30n}^ql<+dbHE|sH{pRmq&l$%@hg*1y81fBUpXLW&*PM zkCR+*X-Fwc4CPV-{RwYjfY(uQu}TO!sj#)ebYrS%ZR=zQaw*kO-BgS?Eto&2KP+-@ zC~m1U#LYP+xpURPig(4%TTd?6aI7RS?RMqC>A)yUd&%aoitBb?TNg%Mvq(2f=Iocz zLA+yRiSUzLv&HKD6HM;u`aeZE!H=~YjrW7FKweo6*UjZxDbm&kr5n*9g0Ao6AP67BVfD3>mI&_0HSgKK>E315^3* zyxXcdp5dblvsJ(Qa5nvFspRhEwOmv}^4aw|>7lP#*B^Y-l$SMwESyGuMS}K{S|9Rn zNKV2uT*)~-SCjQ2M@|ZGW zR)-;c?oVH4gd038RJ!ty+YEaT&7J|77E5`Hb?7??xxbTg?&wB9MiLR~US{mOd=}UIDti9zeq>W!$&sj*F>!Q zgu_lpp)Ko7YFwxh*C^MljGP1Z8wXH_c8;MX^eC^lOu<~V5G1)r;`KQulLNKS3RJV3 z-%N3c&$=hQ0}7#IFgzzwTO1X4(}D*8BwvTDOu*Iq)bfssFkpi72)~xEv7+Z9xivda zGCQIph~PpVq#H~HrV7!$ z8!c%J>%Qm3#5%XrD)6l$d002w$*YUFU=~Dn=;QceFK(;M+cETDU4nm z%LOGXM2K_!h#{M_x%C8f`^)bekIMIoPD(@>;h}${ru`(!@GJl+StqXMn&b9#PmkxF zn2#Ww4PZ)WHY_v^juw(v%D!4&cIr3rtHAjdX=t7u3vbm4pKrlMjwshD=xE>wm=*vH z!7}Ae*f_nFt#2N_B~0PstVy(r<x|_c%xSvxy?t+GKAaVu)PXn3bt0cSA5I&iqt;*p8qUQ zRJ`jOIS;NhoXaucU}0b**ZRz0w8vw-!f7j|jA4klv6_<1R)8|5k@NT{U9_R}k+* z{K59UEL;ZB$g(asteSKCb>bGxo;D^`TX4u`z6uYb8V25`P|>#h&f7?_D(3fs29`Ei zW@9k|32vm`jK|$a(nT%O#oqg8=b_eC%c+{(sRXj*uZu^%*F3lS5r*v({!g*n4<1h) z3X2^u1Nydo3eed+ys8bin}!Le5NnWGC*XI<$mZ{^x8BbkHf6bR2BzTX!xvWN`Z!|D0qQT%7xd%A7zON|a6l9@#nz-%kMJ;5_B8=g@i@ z?8#njZ!&1`;dGmko#!`&mY0c>VbYO7(TDxdPF(9}$hOW&m9a4qMh2ZV!N$0syY}MJAe~mQL?ncxX$U28_ysjjyS~e)&aWoiwe4=w!u-Uh zY^V@@06(0#eMTfiQuBK6o7PIdQ#1?uP6Ak;pfm7TxE>VOgwAlt`~vlmEpT-c4l3#1 zXc8!d9A;rNFfb1bUp%0p21332q~RBZW_L4G)M&D*BNX;N#uU0b_)Dkgya3J~Q~GBn zP_srass{ZO&q9HBt;kGyn}_UmD~$~3(>u}V6WuwB3V zq|O~M>Fu#c))!c_K|rv07F;bnv6T%?|K+ ze^Ej_eCYB#NNUiElu9X1l1idZNju=+`16;R|CEOk0&qCoYd(M?d~+W$Mz6~p`aRnDf61or&(VLyy)91lg+7!k%wlSjv@dz8sD zTytN1lP^AWI?oGayQK;Qc7;&E=+mo}>aSGiC-gxSTNBhAjRK*FSYrE6v%eGMX`6hN zg3khX=;OLVWWKoEE0EtJe(gF#H->9L$4K(TT;NLv8U-|Hgz4U^6z#TXi z5i?1}3D1}Xuju9YA69FuCMFcZ?|z3E5Ow_{EOC%{9^dK zt{#5=0>R&Z=p`)TqmS|2n80G~P@M2~YW3Fz8$YV3;)GZl4T!O!F$2A#qn7P3`zI4( zuc&iW@@o}F#OkiC z{O(eQh%XE+N+c3o{Y}+ZC}75%(U0Wdz{X<#T>hB1O_D44_HOrimk|*lo{P&MqkZ;!Wr5!t%7lROUm6{JKN=KG*KOe9lu)dIQIPivj6;)0v4+ zg$$@XPMUbjE4l1_R&>co8&DQcr-9y__J0i4-K4@P^kT36Fs#Gz48+Iq!Oinu@@Q-6Fe1r-QLlx~bth9)?hfQb z#C;$FK1F6mq{g0T5;$9dcVw?Fz-=3XFev2E6oWI;eoR4ACE`0pAG<7-v6e55D(<7m zQ&e{?{+&!M7YDy{xn2K0F{8)h)3U1;2)0X|?Pq4{0s9ungs@0Z8M!g0G9<&s^aUHE zzjej*SRuLAeK$Qr#cfr$5+|#fG1{{N*!7Xx#?-x_A%$Isql~|GJ>c2c zVR8M9j-MKt?uhHsI^vPLgw^6H5|L47>|0)}Nh?!THwPqKntKJ+!}U{s+LJdbmy^K9qsifF%PPYW$t&bIzeheueD0?c9PS6U_LY*p-~dghzQNwzAN1AMo@ ziq)4!JjL#1Jejb-!CUKqJ@LVD6fIf7JMvgtHo?iu7{gE)Uur0(&U;30tVwpwSrb_P1PqS$ zG-Z6dMrPAY)Pk^q8B3XN_v(^>p5z<+(qEBEbH3 zo*>UFAAu+JDn;TZM8V7?DmQ(=c{rJ;Do2^{%X{LJfgY$u^Y0%4O2~AA-DzYx#z^kH z)ea;>;WGt55@ZhkD^-B{nLIytcInyf`{#HA)V-he>3J9a`LGhtEa113*Ow$F9KIw? zB|nbBAU>?$uQwh@c{Cg8B*|4U2BS70)(@p-!Aam<)Bf;QJ<;)puIIk)b0&j7HE0oj-a3{MLe_XoTg{88!i5Hf+0Er z`4yFYOm5;FQmWo!uSYJMvNx?f59FQ-%k5E(QHm9PVYo0~4qT(8D8FfZX1HNv$HKW7 z#+>yZqC1*)Qg55RL>VX9z34?S?=8fSFP{gS_Z__lHGTOXCnY`We9!V*`LR1jyAn~F{kEvAj7t?1 zz13BLu7~H2!;*fc6!SSpQ87}bs~0C}@Tu5+^utl}WN2<*YHl{##$Yljo`bnL>_9mz z=+HA$G-puNt&^%@K()s^O`1mquc6v$^=%L`s)q|dg(uR;EEp9cKl1SJy1NnF_&;R8 z$j8C{mN#q%Bqb!+7z)Hkv|7<$e`erMk|;`y1qKdy zNkL}GiZta_`v$XC3tW7Tzg+tF!?N*iJmo{}bFcHINiI`R6+J`=KMD_NM}$Rt?;qLs zA2|{1h2_VT8RV^oh^Mi|kHa(&EaK)Vm&jsRXFr>Ew4SC6-R388kqUVmrY`4@rqg=B zW$_^JQ};wE>NP4Ow#fkh@olwyoXr;eLhSti z{*DfI-;7Z_pE^~kIjIg&>SSfV=%B|mL~W(J1}w>VcjVpY_tbXovwG~+9U1lOTl(RC zMeBvc#Dg|2ZQ_9ncCsj#KwB#h>{?fyb~m_SEr$5p6tkWuqCG0IS1fYOnjk3oEd0lj z2>o+ajiMjrsCPMT8B&}98`>Qbqv~ianQ4WoFUY?WA^uw?cQiz!oVt`oeJ^S8O>U6F zmIetOTC&^m_t3Z*_|l?^yn9HI{8@0>8Dj#Hhx~wo&c`pk(br9^?5vEO^^NWgD??3d zgC7oecZdAXBB(Br;skeD$)O=s>T8AX(~TaluPtc?Z%KD+?u@fk1uATD|D-|6c(XCR zvQJqE<)&5rX9+^3N@U;4*V;E*1kJYSj}A_0x=4)a$l(_Y&9u2Q1J&?LQhzQ5=tFYQ z#tS;Hwq2TCc`WG-(2?Z;+;qv_5b01=N&lw|f0cFyOnG%;P&Mw&^`m36@cm;{#NwL6 z?6FR#VKvKOrNKLC0GT>WCJHP>OctTx9j(VCYWer{nLg1eaCTvCIh0j~H8Ige7G8Rk zypDoT?rY+PUTb_!x=GY*)$pd%;oDF~kWHhjB2EmUs^{PG&N1sbC-r>)c1-2!$WYth z)5hI}VtPPOf+b+1-l~^Fuf*0_)#ZrF+vvYvK67~;Z!w^_6{d>nz@Ap~YY2%oquT#3 z&SqGYMd+jOCEB+1owL8+X5GCDVM#|;YdzimDlARgrPm`Gfq|-0k4doxSJ#6;x%30~ z8m4jNgQh9@BQ4VvZonk88zeuk=4>+f%Kw9ktk#K_3n4v>H8dkFGK8<_>%QgS9~adb zCIJZJh*p_#ll-(IRf|vv+V}>2yl#NCOx@Ds2_2cvnyl_PZPTTt^|(haia(Z_>KIX0 zg9d8nzsl$Tnd@XhuWw*<3>uLmt>vX#?Q=QG{O3nLuYz6KiuRQAC%p$(CvhtT3h*)} z0kRy-b@wF5AbwFX#RNCF7ry!*RS#dH`7HPV+L@OO5+HUKo5dtu2F@IIg0jo74Lu!# z*>{ZJjAmXmOS}*3MVRhA_Fxb>W8&ZJ0t{L;4Irbj92h8$QX|B9Zs1zvGZf(Hvy3pz zUdjus;LC9;>JR=8&z%}{Go;Get}No{Y7erHV7BB5=GW5jHo)xFoJzdKX=vjrQ9*aMqZ? z@h^ydGWQ7o*VrZ%f}n%`(xzLtc3-tTcyakBkJgmy$9*sp^g!#g%gHII`597o^L6q2pAcH;-PcQ4B<8wK#BRT3KAZT~=*1&`y? zLz-h)J5|@KX#4(@=Qhof=j6GeWIET`n$Z40tq`V02JoZp8MOM#$2p=|B|Q`H!h*aq zHukn2tj1JR*NGQ?h=_M!_=jV{{(r{Xn}f+sR*?KwsLL1FmM@U8xe zQX74uA6O)#hNOEp`JVb1`U9E7z0TKqB~^FwI|Lppb#m>fwFJD^GGZ{Ii zR~e>-pWX*fRW3P)W6Q+)6Y*7rp$B&U1Qq&i;DaN=|9T8BRiiCojRbznG1cm6EE3n7 z2C>+cJA^P&kOW!|aVy)TVSD|21n?hZUYsy=F{J`rC6w;sXA4`{!GpxLXkmmDUreyd zjZ708s#yplT75>R_8Yi*D+0Rce@DNgcGisPIbL zok(-7*Lv<=+t%?mrS$3(Kn6~}hnK+B+M_JnprwIaY2X*`r&X9Lv$(!Odn*u@L+VS? zX!H-4^&O0!T2b~}e;tJpxccCu*a1XIL+%z5i3eBL_LwWZ6>~;t!vdcB?}6RWukCfj zRsrjfp&%c*F%Lzbyas*FD1K%K>6Dd)+IefRIwLBNlv`z;_X;%xH`r#<9 zELWgkAYl2A#9Ie*irOVX$2Rbcktgne($GZHJG!SQ!%+5DvlsIW3A^?EgG;A_R?OP#73}2;Q&}B)r7Nui0CZ zfHVGEu8$Kk05-WMs!YDLu0*mP@M9HHy`Pa&5^=-4!Tt}M<|{fAk?0vFX=*l9Wz%3Z zTs(0pi}Tp)20_5`80tm8w90K`-L(hEgQk=IKSCB6fMtRqQrwIV5B6J|ip8JCLzr&$ zk3+~O9M50as*NdVt>jg>XanI@NTyXgsNM0fMGx{EWZBp^nk9r3x$00w)_^;Gth94! zYoWMn%GUCw-*J^VE)^{lI;Bfz?Dbf%UR#YTc4r!cuD^KY##xoNFq(W1_Ob|_Z}%1d zSU*MwTgwe0SotC8XoucyUP3~W}8l)bJa%jY9hfYplBJl@!0=$JXvQ}Mqf zeq1zs5`!UJ2!ui&dG4=xng+h0Nsy!8saZv+$5}oL(*b^R^jYlFmANJTwk_(gkLkD< z<*E9Pqo|$l7Schcm|M@qNeKL(C0XDAtj}2y1RWL?&QOgF;9;KNi-@6Mxc&kP%{z`F6apDDXTJqA@sv2BQ+VJE!*$HW0Qi zs@fZZCC#s~tmew!P^&}>bgp6OZCU;YM8By474pxflf)1Di?=d6b&mhmVx}<+??~Q9 zZu@fW*>{I;Kr}6=EsUP8DtTu{OLSoLEMx5xy5gaTglyQslOXjw@AURANK?3*h==Dk zR<6~(>duX>d-s4H=NK^^>Jl$FD~{Fw=ZwNidu5<1bbg6ihN_I1!l{tQFB{yGyuy6e z*LJ{o)b)>3^fCSAkomR)$fUZ%;-)%B57g-VSYh3vGL|^hpll3lIbyi~HEyF`sb`5_ zAuI>RQc9s;qw|!LF?zPk_}Almwb|SGO&-v%#AUad_$G12qJr#A5{%=apYeZfMv)w# zh^CCEZiGKxMK%lXGCi0m)Vb|oR zXH^}xAj5xj1V&Op>1c+GLac+O#EMf95g}>pf;6L|;ngAIdNGWCscxUkk>2vJm4@$N zc)&5njYHZX>pxbzFYE2*`Bbm}-WqfNhMR1(WQ$b*Pd1)R@qg3E-m#KiI+%)a*BL-C zv9S0*&-=hehisP}D#3|YL)UOamyv`zV5?pZc4yrIb|35?1UTIz@@hx6-jMis0Z9GD zVS~>au(X=OWF~e`XnQoa-v@==keGM?#v&g|5l6X%b%CAxYA2lBqCYiQyk?xP$qVx= z^54>ke3<@U9-AT=G!IZW7e!YH1>XKeZn+uw=(hXlBf9*!_$bu>NYYAU3t{mto~MGX z`h_Aqc0!fua)bSdm_A9b@=K!tz+Pc~!LkS(l7sgCLp7w%aLUi<6nU}17^3Y!5i&7+M5HDiE;@kIBJ{3H1;MrA@xQlO=U za-|$+(Ao2-7-gQ6iWancIUh!Opa^H>%YJ8t7aD}T5%gU$p3wTKd#z(T%*JJ!{WgA? zN1UbyfIyR-4y#^An (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function (e) { + if (!e) this.paused = true + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end) + this.cycle() + } + clearInterval(this.interval) + this.interval = null + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.item.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + , e = $.Event('slide', { + relatedTarget: $next[0] + }) + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if ($next.hasClass('active')) return + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } else { + this.$element.trigger(e) + if (e.isDefaultPrevented()) return + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) + , action = typeof option == 'string' ? option : options.slide + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (action) data[action]() + else if (options.interval) data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + , pause: 'hover' + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}(window.jQuery);/* ============================================================= + * bootstrap-collapse.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options.parent) { + this.$parent = $(this.options.parent) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension + , scroll + , actives + , hasData + + if (this.transitioning) return + + dimension = this.dimension() + scroll = $.camelCase(['scroll', dimension].join('-')) + actives = this.$parent && this.$parent.find('> .accordion-group > .in') + + if (actives && actives.length) { + hasData = actives.data('collapse') + if (hasData && hasData.transitioning) return + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', $.Event('show'), 'shown') + $.support.transition && this.$element[dimension](this.$element[0][scroll]) + } + + , hide: function () { + var dimension + if (this.transitioning) return + dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', $.Event('hide'), 'hidden') + this.$element[dimension](0) + } + + , reset: function (size) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') + + return this + } + + , transition: function (method, startEvent, completeEvent) { + var that = this + , complete = function () { + if (startEvent.type == 'show') that.reset() + that.transitioning = 0 + that.$element.trigger(completeEvent) + } + + this.$element.trigger(startEvent) + + if (startEvent.isDefaultPrevented()) return + + this.transitioning = 1 + + this.$element[method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') + $(target).collapse(option) + }) + }) + +}(window.jQuery);/* ============================================================ + * bootstrap-dropdown.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle=dropdown]' + , Dropdown = function (element) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function (e) { + var $this = $(this) + , $parent + , isActive + + if ($this.is('.disabled, :disabled')) return + + $parent = getParent($this) + + isActive = $parent.hasClass('open') + + clearMenus() + + if (!isActive) { + $parent.toggleClass('open') + $this.focus() + } + + return false + } + + , keydown: function (e) { + var $this + , $items + , $active + , $parent + , isActive + , index + + if (!/(38|40|27)/.test(e.keyCode)) return + + $this = $(this) + + e.preventDefault() + e.stopPropagation() + + if ($this.is('.disabled, :disabled')) return + + $parent = getParent($this) + + isActive = $parent.hasClass('open') + + if (!isActive || (isActive && e.keyCode == 27)) return $this.click() + + $items = $('[role=menu] li:not(.divider) a', $parent) + + if (!$items.length) return + + index = $items.index($items.filter(':focus')) + + if (e.keyCode == 38 && index > 0) index-- // up + if (e.keyCode == 40 && index < $items.length - 1) index++ // down + if (!~index) index = 0 + + $items + .eq(index) + .focus() + } + + } + + function clearMenus() { + getParent($(toggle)) + .removeClass('open') + } + + function getParent($this) { + var selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + return $parent + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function (option) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html') + .on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus) + $('body') + .on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) + .on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle) + .on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) + }) + +}(window.jQuery);/* ========================================================= + * bootstrap-modal.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function ($) { + + "use strict"; // jshint ;_; + + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function (element, options) { + this.options = options + this.$element = $(element) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + this.options.remote && this.$element.find('.modal-body').load(this.options.remote) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + , e = $.Event('show') + + this.$element.trigger(e) + + if (this.isShown || e.isDefaultPrevented()) return + + $('body').addClass('modal-open') + + this.isShown = true + + this.escape() + + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body) //don't move modals dom position + } + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element + .addClass('in') + .attr('aria-hidden', false) + .focus() + + that.enforceFocus() + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function (e) { + e && e.preventDefault() + + var that = this + + e = $.Event('hide') + + this.$element.trigger(e) + + if (!this.isShown || e.isDefaultPrevented()) return + + this.isShown = false + + $('body').removeClass('modal-open') + + this.escape() + + $(document).off('focusin.modal') + + this.$element + .removeClass('in') + .attr('aria-hidden', true) + + $.support.transition && this.$element.hasClass('fade') ? + this.hideWithTransition() : + this.hideModal() + } + + , enforceFocus: function () { + var that = this + $(document).on('focusin.modal', function (e) { + if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { + that.$element.focus() + } + }) + } + + , escape: function () { + var that = this + if (this.isShown && this.options.keyboard) { + this.$element.on('keyup.dismiss.modal', function ( e ) { + e.which == 27 && that.hide() + }) + } else if (!this.isShown) { + this.$element.off('keyup.dismiss.modal') + } + } + + , hideWithTransition: function () { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + that.hideModal() + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + that.hideModal() + }) + } + + , hideModal: function (that) { + this.$element + .hide() + .trigger('hidden') + + this.backdrop() + } + + , removeBackdrop: function () { + this.$backdrop.remove() + this.$backdrop = null + } + + , backdrop: function (callback) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('