Changes of Revision 7

ffmpeg-3.changes Changed
x
 
1
@@ -1,7 +1,7 @@
2
 -------------------------------------------------------------------
3
-Tue Dec 12 12:12:12 UTC 2023 - olaf@aepfle.de
4
+Mon Mar  3 03:03:03 UTC 2025 - olaf@aepfle.de
5
 
6
-- Version update to 3.4.13
7
+- Version update to 3.4.14
8
 
9
 -------------------------------------------------------------------
10
 Sun Oct  1 15:31:56 UTC 2023 - Manfred Hollstein <manfred.h@gmx.net>
11
ffmpeg-3.spec Changed
10
 
1
@@ -55,7 +55,7 @@
2
 %define _major_version 3
3
 %define _major_expected 4
4
 Name:           ffmpeg-3
5
-Version:        3.4.13
6
+Version:        3.4.14
7
 Release:        0
8
 Summary:        Library for working with various multimedia formats
9
 License:        LGPL-2.1-or-later AND GPL-2.0-or-later
10
_service Changed
10
 
1
@@ -1,7 +1,7 @@
2
 <services>
3
   <service name="tar_scm" mode="disabled">
4
     <param name="filename">ffmpeg-3</param>
5
-    <param name="revision">c7210207555effd194b60dee424fd5632bb388f4</param>
6
+    <param name="revision">62e1c442633e8a09a1407a789cd2b50611850788</param>
7
     <param name="scm">git</param>
8
     <param name="submodules">disable</param>
9
     <param name="url">https://git.ffmpeg.org/ffmpeg.git</param>
10
ffmpeg-3-3.4.13.tar.xz/Changelog -> ffmpeg-3-3.4.14.tar.xz/Changelog Changed
255
 
1
@@ -1,6 +1,253 @@
2
 Entries are sorted chronologically from oldest to youngest within each release,
3
 releases are sorted from youngest to oldest.
4
 
5
+version 3.4.14:
6
+ configure: update copyright year
7
+ avfilter/bwdif: account for chroma sub-sampling in min size calculation
8
+ avformat/iff: Check that we have a stream in read_dst_frame()
9
+ avformat/mlvdec: fix size checks
10
+ avcodec/h263dec: Check against previous dimensions instead of coded
11
+ avformat/mxfdec: Check avio_read() success in mxf_decrypt_triplet()
12
+ avcodec/huffyuvdec: Initialize whole output for decode_gray_bitstream()
13
+ avformat/ipmovie: Check signature_buffer read
14
+ avformat/wtvdec: Initialize buf
15
+ avformat/vqf: Propagate errors from add_metadata()
16
+ avformat/vqf: Check avio_read() in add_metadata()
17
+ avutil/avstring: dont mess with NULL pointers in av_match_list()
18
+ avcodec/mpegvideo_enc: Check FLV1 resolution limits
19
+ avcodec/ffv1enc: Fix handling of 32bit unsigned symbols
20
+ avcodec/vc1dec: Clear block_index in vc1_decode_reset()
21
+ avcodec/aacsbr_template: Clear n_q on error
22
+ swscale/output: Fix undefined overflow in yuv2rgba64_full_X_c_template()
23
+ avfilter/af_pan: Fix sscanf() use
24
+ avformat/rmdec: check that buf if completely filled
25
+ avformat/mxfdec: Check that key was read sucessfull
26
+ avformat/rpl: Fix check for negative values
27
+ avformat/mlvdec: Check avio_read()
28
+ avcodec/utils: Fix block align overflow for ADPCM_IMA_WAV
29
+ avformat/matroskadec: Check pre_ns for overflow
30
+ avcodec/webp: Check ref_x/y
31
+ avformat/dxa: check bpc
32
+ swscale/slice: clear allocated memory in alloc_lines()
33
+ avformat/icodec: fix integer overflow with nb_pal
34
+ doc/developer: Document relationship between git accounts and MAINTAINERS
35
+ avformat/ilbc: Check avio_read() for failure
36
+ avformat/nistspheredec: Clear buffer
37
+ INSTALL: explain the circular dependency issue and solution
38
+ avformat/mpegts: Initialize predefined_SLConfigDescriptor_seen
39
+ avcodec/rangecoder: only perform renorm check/loop for callers that need it
40
+ avcodec/ffv1dec: Fix end computation with ec=2
41
+ avcodec/ffv1enc: Prevent generation of files with broken slices
42
+ avformat/matroskadec: Check desc_bytes so bits fit in 64bit
43
+ avcodec/ffv1enc: Correct error message about unsupported version
44
+ avcodec/ffv1enc: Slice combination is unsupported
45
+ avcodec/ffv1enc: 2Pass mode is not possible with golomb coding
46
+ avcodec/ffv1enc: Fix >8bit context size
47
+ avcodec/xan: Add basic input size check
48
+ avcodec/svq3: Check for minimum size input
49
+ avcodec/jfdctint_template: use unsigned z* in row_fdct()
50
+ avformat/mxfdec: More offset_temp checks
51
+ swscale/output: Fix undefined integer overflow in yuv2rgba64_2_c_template()
52
+ swscale/swscale: Use unsigned operation to avoid undefined behavior
53
+ avcodec/vc2enc: basic sanity check on slice_max_bytes
54
+ avcodec/wmavoice: Do not use uninitialized pitch0
55
+ avformat/apetag: Check APETAGEX
56
+ avcodec/avcodec: Warn about data returned from get_buffer*()
57
+ avcodec/aic: Clear slice_data
58
+ avcodec/shorten: clear padding
59
+ avformat/mpeg: Check an avio_read() for failure
60
+ avformat/segafilm: Set keyframe
61
+ avcodec/dxva2: initialize hr in ff_dxva2_common_end_frame()
62
+ avcodec/dxva2: initialize validate
63
+ avcodec/dxva2: Initialize ConfigBitstreamRaw
64
+ avcodec/dxva2: Initialize dxva_size and check it
65
+ avformat/lmlm4: Eliminate some AVERROR(EIO)
66
+ avformat/wtvdec: Check length of read mpeg2_descriptor
67
+ avformat/wtvdec: clear sectors
68
+ avcodec/parser: ensure input padding is zeroed
69
+ avformat/img2dec: Clear padding data after EOF
70
+ avformat/wavdec: Check if there are 16 bytes before testing them
71
+ avcodec/snow: Fix off by 1 error in run_buffer
72
+ avcodec/utils: apply the same alignment to YUV410 as we do to YUV420 for snow
73
+ avcodec/vaapi_encode: Check hwctx
74
+ avcodec/proresdec: Consider negative bits left
75
+ avcodec/hevc/hevcdec: Do not allow slices to depend on failed slices
76
+ avutil/slicethread: Check pthread_*_init() for failure
77
+ avutil/frame: Check log2_crop_align
78
+ avutil/buffer: Check ff_mutex_init() for failure
79
+ avformat/xmv: Check this_packet_size
80
+ avformat/tty: Check avio_size()
81
+ avformat/siff: Basic pkt_size check
82
+ avformat/sauce: Check avio_size() for failure
83
+ avformat/sapdec: Check ffurl_get_file_handle() for error
84
+ avformat/nsvdec: Check asize for PCM
85
+ avformat/mp3dec: Check header_filesize
86
+ avformat/mp3dec; Check for avio_size() failure
87
+ avformat/mov: Use 64bit for str_size
88
+ avformat/mm: Check length
89
+ avformat/hnm: Check *chunk_size
90
+ avformat/asfdec_o: Check size of index object
91
+ swscale/output: Fix integer overflows in yuv2rgba64_X_c_template
92
+ avcodec/utvideoenc: Use unsigned shift to build flags
93
+ avcodec/vc2enc: Fix overflows with storing large values
94
+ avcodec/mpegvideo_enc: Do not duplicate pictures on shifting
95
+ avdevice/dshow: Check device_filter_unique_name before use
96
+ avdevice/dshow_filter: Use wcscpy_s()
97
+ avcodec/flac_parser: Assert that we do not overrun the link_penalty array
98
+ avcodec/pixlet: Simplify pfx computation
99
+ avcodec/motion_est: Fix score squaring overflow
100
+ avcodec/loco: Check loco_get_rice() for failure
101
+ avcodec/loco: check get_ur_golomb_jpegls() for failure
102
+ avcodec/iff: Use signed count
103
+ avcodec/golomb: Assert that k is in the supported range for get_ur/sr_golomb()
104
+ avcodec/golomb: Document return for get_ur_golomb_jpegls() and get_sr_golomb_flac()
105
+ avcodec/xsubdec: Check parse_timecode()
106
+ avutil/imgutils: av_image_check_size2() ensure width and height fit in 32bit
107
+ avcodec/proresenc_kostya: use unsigned alpha for rotation
108
+ avformat/rtmppkt: Simplify and deobfuscate amf_tag_skip() slightly
109
+ avformat/rmdec: use 64bit for audio_framesize checks
110
+ avutil/hwcontext_d3d11va: correct sizeof IDirect3DSurface9
111
+ avutil/hwcontext_d3d11va: correct sizeof AVD3D11FrameDescriptor
112
+ avformat/tls_schannel: Initialize ret
113
+ avformat/subfile: Assert that whence is a known case
114
+ avformat/rtsp: Check that lower transport is handled in one of the if()
115
+ avformat/rtsp: initialize reply1
116
+ avformat/rtsp: use < 0 for error check
117
+ avformat/rtpenc_vc2hq: Check sizes
118
+ avfilter/af_pan: check nb_output_channels before use
119
+ tools/coverity: Phase 1 study of anti-halicogenic for coverity av_rescale()
120
+ avfilter/vf_avgblur: Check plane instead of AVFrame
121
+ avformat/rdt: Check pkt_len
122
+ avformat/mpeg: Check len in mpegps_probe()
123
+ avdevice/dshow: Check ICaptureGraphBuilder2_SetFiltergraph() for failure
124
+ avformat/img2dec: assert no pipe on ts_from_file
125
+ avformat/mov: Check edit list for overflow
126
+ fftools/ffmpeg: Check read() for failure
127
+ swscale/output: Avoid undefined overflow in yuv2rgb_write_full()
128
+ swscale/output: alpha can become negative after scaling, use multiply
129
+ avcodec/targaenc: Allocate space for the palette
130
+ avcodec/r210enc: Use av_rescale for bitrate
131
+ avcodec/jfdctint_template: Fewer integer anomalies
132
+ avcodec/snowenc: MV limits due to mv_penalty table size
133
+ MAINTAINERS: Update the entries for the release maintainer for FFmpeg
134
+ configure: update copyright year
135
+ avfilter/vf_rotate: Check ff_draw_init2() return value
136
+ avformat/img2dec: Move DQT after unrelated if()
137
+ fftools/cmdutils: Add protective () to FLAGS
138
+ avformat/sdp: Check before appending ","
139
+ avcodec/vp8: Check cond init
140
+ avcodec/vp8: Check mutex init
141
+ avcodec/tests/dct: Use 64bit in intermediate for error computation
142
+ avcodec/wavpackenc: Use unsigned for potential 31bit shift
143
+ avcodec/tests/jpeg2000dwt: Use 64bit in comparission
144
+ avcodec/tests/jpeg2000dwt: Use 64bit in err2 computation
145
+ avformat/ape: Use 64bit for final frame size
146
+ swscale/yuv2rgb: Use 64bit for brightness computation
147
+ avutil/tests/opt: Check av_set_options_string() for failure
148
+ avutil/tests/dict: Check av_dict_set() before get for failure
149
+ avdevice/dshow: fix badly indented line
150
+ avcodec/mpegvideo_enc: Fix potential overflow in RD
151
+ avcodec/mpeg4videodec: assert impossible wrap points
152
+ avcodec/vble: Check av_image_get_buffer_size() for failure
153
+ avcodec/jpeg2000dec: remove ST=3 case
154
+ avcodec/fmvc: remove dead assignment
155
+ avcodec/lpc: copy levenson coeffs only when they have been computed
156
+ avutil/tests/base64: Check with too short output array
157
+ libavutil/base64: Try not to write over the array end
158
+ avcodec/mpegvideo_enc: Fix 1 line and one column images
159
+ swscale/output: Fix integer overflow in yuv2rgba64_full_1_c_template()
160
+ swscale/output: Fix integer overflow in yuv2rgba64_1_c_template
161
+ avcodec/hevcdec: Check ref frame
162
+ avfilter/signature_lookup: Dont copy uninitialized stuff around
163
+ avfilter/signature_lookup: Fix 2 differences to the refernce SW
164
+ ffbuild: Avoid using the --preprocessor argument to windres
165
+ vp9: recon: Use emulated edge to prevent buffer overflows
166
+ arm: vp9mc: Load only 12 pixels in the 4 pixel wide horizontal filter
167
+ aarch64: vp9mc: Load only 12 pixels in the 4 pixel wide horizontal filter
168
+ fate/subtitles: Ignore line endings for sub-scc test
169
+ avformat/mxfdec: Check index_edit_rate
170
+ swscale/utils: Fix xInc overflow
171
+ avformat/mxfdec: Make edit_unit_byte_count unsigned
172
+ avformat/movenc: Check that cts fits in 32bit
173
+ avformat/mxfdec: Check first case of offset_temp computation for overflow
174
+ avfilter/vf_signature: Dont crash on no frames
175
+ avformat/westwood_vqa: Fix 2g packets
176
+ avformat/matroskadec: Check timescale
177
+ avformat/sbgdec: Check for negative duration
178
+ avformat/rpl: Use 64bit for total_audio_size and check it
179
+ avformat/timecode: use 64bit for intermediate for rounding in fps_from_frame_rate()
180
+ avcodec/truemotion1: Height not being a multiple of 4 is unsupported
181
+ avformat/cafdec: Check that data chunk end fits within 64bit
182
+ avformat/dxa: Adjust order of operations around block align
183
+ avformat/cafdec: dont seek beyond 64bit
184
+ avformat/id3v2: read_uslt() check for the amount read
185
+ avcodec/proresenc_kostya: Remove bug similarity text
186
+ avcodec/vorbisdec: Check remaining data in vorbis_residue_decode_internal()
187
+ libswscale/utils: Fix bayer to yuvj
188
+ swscale/swscale: Check srcSliceH for bayer
189
+ swscale/utils: Allocate more dithererror
190
+ avcodec/indeo3: Round dimensions up in allocate_frame_buffers()
191
+ avutil/rational: Document what is to be expected from av_d2q() of doubles representing rational numbers
192
+ avfilter/signature_lookup: Do not dereference NULL pointers after malloc failure
193
+ avfilter/signature_lookup: dont leave uncleared pointers in sll_free()
194
+ avcodec/mpegvideo_enc: Use ptrdiff_t for stride
195
+ avcodec/mpegvideo_enc: Dont copy beyond the image
196
+ avfilter/vf_minterpolate: Check pts before division
197
+ avformat/flacdec: Avoid double AVERRORS
198
+ avfilter/vf_vidstabdetect: Avoid double AVERRORS
199
+ avfilter/vf_swaprect: round coordinates down
200
+ avfilter/vf_swaprect: Use height for vertical variables
201
+ avfilter/vf_swaprect: assert that rectangles are within memory
202
+ avfilter/af_alimiter: Check nextpos before use
203
+ avfilter/af_stereowiden: Check length
204
+ avfilter/vf_gradfun: Do not overread last line
205
+ avformat/mov: do not set sign bit for chunk_offsets
206
+ avcodec/jpeglsdec: Check Jpeg-LS LSE
207
+ configure: Enable section_data_rel_ro for FreeBSD and NetBSD aarch64 / arm
208
+ avformat/mov: Ignore duplicate ftyp
209
+ seek: Fix crashes in ff_seek_frame_binary if built with latest Clang 14
210
+ avcodec/4xm: Check for cfrm exhaustion
211
+ avformat/mov: Disallow FTYP after streams
212
+ doc/html: fix styling issue with Texinfo 7.0
213
+ doc/html: support texinfo 7.0
214
+ doc/t2h.pm: fix missing TOC with texinfo 6.8 and above
215
+ doc/t2h.pm: fix missing CSS with texinfo 6.8 and above
216
+ avformat/matroskadec: Fix declaration-after-statement warnings
217
+ avformat/rtsp: Use rtsp_st->stream_index
218
+ avcodec/jpeg2000dec: Check image offset
219
+ avcodec/h2645_parse: Avoid EAGAIN
220
+ avcodec/xvididct: Make c* unsigned to avoid undefined overflows
221
+ avformat/tmv: Check video chunk size
222
+ avformat/xwma: sanity check bits_per_coded_sample
223
+ avformat/matroskadec: Check prebuffered_ns for overflow
224
+ avformat/wavdec: Check left avio_tell for overflow
225
+ avformat/tta: Better totalframes check
226
+ avformat/rpl: Check for number_of_chunks overflow
227
+ avformat/mov: compute absolute dts difference without overflow in mov_find_next_sample()
228
+ avformat/jacosubdec: Check timeres
229
+ avcodec/escape124: Do not return random numbers
230
+ avformat/avs: Check if return code is representable
231
+ avcodec/lcldec: Make PNG filter addressing match the code afterwards
232
+ avformat/westwood_vqa: Check chunk size
233
+ avformat/sbgdec: Check for period overflow
234
+ avcodec/xvididct: Fix integer overflow in idct_row()
235
+ avcodec/celp_math: avoid overflow in shift
236
+ avformat/format: Stop reading data at EOF during probing
237
+ avcodec/huffyuvdec: avoid undefined behavior with get_vlc2() failure
238
+ avcodec/hevcdec: Fix undefined memcpy()
239
+ avcodec/mpeg4videodec: more unsigned in amv computation
240
+ avcodec/tta: fix signed overflow in decorrelate
241
+ avcodec/xvididct: Fix integer overflow in idct_row()
242
+ avformat/avr: Check sample rate
243
+ avcodec/jpeg2000dec: Check for reduction factor and image offset
244
+ avutil/softfloat: Basic documentation for av_sincos_sf()
245
+ avutil/softfloat: fix av_sincos_sf()
246
+ avcodec/utils: fix 2 integer overflows in get_audio_frame_duration()
247
+ avcodec/hevcdec: Avoid null pointer dereferences in MC
248
+ avcodec/takdsp: Fix integer overflows
249
+ avcodec: Ignoring errors is only possible before the input end
250
+
251
+
252
 version 3.4.13:
253
  avcodec/noise_bsf: Check for wrapped frames
254
  avcodec/pngdec: Do not pass AVFrame into global header decode
255
ffmpeg-3-3.4.13.tar.xz/INSTALL.md -> ffmpeg-3-3.4.14.tar.xz/INSTALL.md Changed
13
 
1
@@ -15,3 +15,11 @@
2
 ------
3
 
4
  - Non system dependencies (e.g. libx264, libvpx) are disabled by default.
5
+
6
+NOTICE for Package Maintainers
7
+------------------------------
8
+
9
+ - It is recommended to build FFmpeg twice, first with minimal external dependencies so
10
+   that 3rd party packages, which depend on FFmpegs libavutil/libavfilter/libavcodec/libavformat
11
+   can then be built. And last build FFmpeg with full dependancies (which may in turn depend on
12
+   some of these 3rd party packages). This avoids circular dependencies during build.
13
ffmpeg-3-3.4.13.tar.xz/MAINTAINERS -> ffmpeg-3-3.4.14.tar.xz/MAINTAINERS Changed
17
 
1
@@ -563,10 +563,12 @@
2
 Releases
3
 ========
4
 
5
+7.0                                     Michael Niedermayer
6
+6.1                                     Michael Niedermayer
7
+5.1                                     Michael Niedermayer
8
+4.4                                     Michael Niedermayer
9
+3.4                                     Michael Niedermayer
10
 2.8                                     Michael Niedermayer
11
-2.7                                     Michael Niedermayer
12
-2.6                                     Michael Niedermayer
13
-2.5                                     Michael Niedermayer
14
 
15
 If you want to maintain an older release, please contact us
16
 
17
ffmpeg-3-3.4.13.tar.xz/RELEASE -> ffmpeg-3-3.4.14.tar.xz/RELEASE Changed
4
 
1
@@ -1,1 +1,1 @@
2
-3.4.13
3
+3.4.14
4
ffmpeg-3-3.4.13.tar.xz/configure -> ffmpeg-3-3.4.14.tar.xz/configure Changed
34
 
1
@@ -4941,6 +4941,7 @@
2
         ;;
3
     netbsd)
4
         disable symver
5
+        enable section_data_rel_ro
6
         oss_indev_extralibs="-lossaudio"
7
         oss_outdev_extralibs="-lossaudio"
8
         enabled gcc || check_ldflags -Wl,-zmuldefs
9
@@ -4957,6 +4958,7 @@
10
         disable symver
11
         ;;
12
     freebsd)
13
+        enable section_data_rel_ro
14
         ;;
15
     bsd/os)
16
         add_extralibs -lpoll -lgnugetopt
17
@@ -6915,7 +6917,6 @@
18
 LD_PATH=$LD_PATH
19
 DLLTOOL=$dlltool
20
 WINDRES=$windres
21
-DEPWINDRES=$dep_cc
22
 DOXYGEN=$doxygen
23
 LDFLAGS=$LDFLAGS
24
 LDEXEFLAGS=$LDEXEFLAGS
25
@@ -7000,7 +7001,7 @@
26
 #define FFMPEG_CONFIG_H
27
 #define FFMPEG_CONFIGURATION "$(c_escape $FFMPEG_CONFIGURATION)"
28
 #define FFMPEG_LICENSE "$(c_escape $license)"
29
-#define CONFIG_THIS_YEAR 2023
30
+#define CONFIG_THIS_YEAR 2025
31
 #define FFMPEG_DATADIR "$(eval c_escape $datadir)"
32
 #define AVCONV_DATADIR "$(eval c_escape $datadir)"
33
 #define CC_IDENT "$(c_escape ${cc_ident:-Unknown compiler})"
34
ffmpeg-3-3.4.13.tar.xz/doc/Doxyfile -> ffmpeg-3-3.4.14.tar.xz/doc/Doxyfile Changed
10
 
1
@@ -38,7 +38,7 @@
2
 # could be handy for archiving the generated documentation or if some version
3
 # control system is used.
4
 
5
-PROJECT_NUMBER         = 3.4.13
6
+PROJECT_NUMBER         = 3.4.14
7
 
8
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
9
 # for a project that appears at the top of each page and should give viewer a
10
ffmpeg-3-3.4.13.tar.xz/doc/bootstrap.min.css -> ffmpeg-3-3.4.14.tar.xz/doc/bootstrap.min.css Changed
7
 
1
@@ -2,4 +2,4 @@
2
  * Bootstrap v3.2.0 (http://getbootstrap.com)
3
  * Copyright 2011-2014 Twitter, Inc.
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5
- *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not(controls){display:none;height:0}hidden,template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbrtitle{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html inputtype=button,inputtype=reset,inputtype=submit{-webkit-appearance:button;cursor:pointer}buttondisabled,html inputdisabled{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}inputtype=checkbox,inputtype=radio{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}inputtype=number::-webkit-inner-spin-button,inputtype=number::-webkit-outer-spin-button{height:auto}inputtype=search{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}inputtype=search::-webkit-search-cancel-button,inputtype=search::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}ahref:after{content:" (" attr(href) ")"}abbrtitle:after{content:" (" attr(title) ")"}ahref^="javascript:":after,ahref^="#":after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;width:100% \9;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbrtitle,abbrdata-original-title{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-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 colclass*=col-{position:static;display:table-column;float:none}table tdclass*=col-,table thclass*=col-{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}inputtype=search{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}inputtype=radio,inputtype=checkbox{margin:4px 0 0;margin-top:1px \9;line-height:normal}inputtype=file{display:block}inputtype=range{display:block;width:100%}selectmultiple,selectsize{height:auto}inputtype=file:focus,inputtype=radio:focus,inputtype=checkbox:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-controldisabled,.form-controlreadonly,fieldsetdisabled .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}inputtype=search{-webkit-appearance:none}inputtype=date,inputtype=time,inputtype=datetime-local,inputtype=month{line-height:34px;line-height:1.42857143 \0}inputtype=date.input-sm,inputtype=time.input-sm,inputtype=datetime-local.input-sm,inputtype=month.input-sm{line-height:30px}inputtype=date.input-lg,inputtype=time.input-lg,inputtype=datetime-local.input-lg,inputtype=month.input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio inputtype=radio,.radio-inline inputtype=radio,.checkbox inputtype=checkbox,.checkbox-inline inputtype=checkbox{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}inputtype=radiodisabled,inputtype=checkboxdisabled,inputtype=radio.disabled,inputtype=checkbox.disabled,fieldsetdisabled inputtype=radio,fieldsetdisabled inputtype=checkbox{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldsetdisabled .radio-inline,fieldsetdisabled .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldsetdisabled .radio label,fieldsetdisabled .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,selectmultiple.input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,selectmultiple.input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio inputtype=radio,.form-inline .checkbox inputtype=checkbox{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btndisabled,fieldsetdisabled .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-defaultdisabled,fieldsetdisabled .btn-default,.btn-default.disabled:hover,.btn-defaultdisabled:hover,fieldsetdisabled .btn-default:hover,.btn-default.disabled:focus,.btn-defaultdisabled:focus,fieldsetdisabled .btn-default:focus,.btn-default.disabled:active,.btn-defaultdisabled:active,fieldsetdisabled .btn-default:active,.btn-default.disabled.active,.btn-defaultdisabled.active,fieldsetdisabled .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primarydisabled,fieldsetdisabled .btn-primary,.btn-primary.disabled:hover,.btn-primarydisabled:hover,fieldsetdisabled .btn-primary:hover,.btn-primary.disabled:focus,.btn-primarydisabled:focus,fieldsetdisabled .btn-primary:focus,.btn-primary.disabled:active,.btn-primarydisabled:active,fieldsetdisabled .btn-primary:active,.btn-primary.disabled.active,.btn-primarydisabled.active,fieldsetdisabled .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-successdisabled,fieldsetdisabled .btn-success,.btn-success.disabled:hover,.btn-successdisabled:hover,fieldsetdisabled .btn-success:hover,.btn-success.disabled:focus,.btn-successdisabled:focus,fieldsetdisabled .btn-success:focus,.btn-success.disabled:active,.btn-successdisabled:active,fieldsetdisabled .btn-success:active,.btn-success.disabled.active,.btn-successdisabled.active,fieldsetdisabled .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-infodisabled,fieldsetdisabled .btn-info,.btn-info.disabled:hover,.btn-infodisabled:hover,fieldsetdisabled .btn-info:hover,.btn-info.disabled:focus,.btn-infodisabled:focus,fieldsetdisabled .btn-info:focus,.btn-info.disabled:active,.btn-infodisabled:active,fieldsetdisabled .btn-info:active,.btn-info.disabled.active,.btn-infodisabled.active,fieldsetdisabled .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warningdisabled,fieldsetdisabled .btn-warning,.btn-warning.disabled:hover,.btn-warningdisabled:hover,fieldsetdisabled .btn-warning:hover,.btn-warning.disabled:focus,.btn-warningdisabled:focus,fieldsetdisabled .btn-warning:focus,.btn-warning.disabled:active,.btn-warningdisabled:active,fieldsetdisabled .btn-warning:active,.btn-warning.disabled.active,.btn-warningdisabled.active,fieldsetdisabled .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-dangerdisabled,fieldsetdisabled .btn-danger,.btn-danger.disabled:hover,.btn-dangerdisabled:hover,fieldsetdisabled .btn-danger:hover,.btn-danger.disabled:focus,.btn-dangerdisabled:focus,fieldsetdisabled .btn-danger:focus,.btn-danger.disabled:active,.btn-dangerdisabled:active,fieldsetdisabled .btn-danger:active,.btn-danger.disabled.active,.btn-dangerdisabled.active,fieldsetdisabled .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-linkdisabled,fieldsetdisabled .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-linkdisabled:hover,fieldsetdisabled .btn-link:hover,.btn-linkdisabled:focus,fieldsetdisabled .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}inputtype=submit.btn-block,inputtype=reset.btn-block,inputtype=button.btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}data-toggle=buttons>.btn>inputtype=radio,data-toggle=buttons>.btn>inputtype=checkbox{position:absolute;z-index:-1;filter:alpha(opacity=0);opacity:0}.input-group{position:relative;display:table;border-collapse:separate}.input-groupclass*=col-{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,selectmultiple.input-group-lg>.form-control,selectmultiple.input-group-lg>.input-group-addon,selectmultiple.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,selectmultiple.input-group-sm>.form-control,selectmultiple.input-group-sm>.input-group-addon,selectmultiple.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon inputtype=radio,.input-group-addon inputtype=checkbox{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio inputtype=radio,.navbar-form .checkbox inputtype=checkbox{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-linkdisabled:hover,fieldsetdisabled .navbar-default .btn-link:hover,.navbar-default .btn-linkdisabled:focus,fieldsetdisabled .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-linkdisabled:hover,fieldsetdisabled .navbar-inverse .btn-link:hover,.navbar-inverse .btn-linkdisabled:focus,fieldsetdisabled .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-defaulthref:hover,.label-defaulthref:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primaryhref:hover,.label-primaryhref:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-successhref:hover,.label-successhref:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-infohref:hover,.label-infohref:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warninghref:hover,.label-warninghref:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-dangerhref:hover,.label-dangerhref:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bararia-valuenow="1",.progress-bararia-valuenow="2"{min-width:30px}.progress-bararia-valuenow="0"{min-width:30px;color:#777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate3d(0,-25%,0);-o-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
6
+ *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not(controls){display:none;height:0}hidden,template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbrtitle{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html inputtype=button,inputtype=reset,inputtype=submit{-webkit-appearance:button;cursor:pointer}buttondisabled,html inputdisabled{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}inputtype=checkbox,inputtype=radio{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}inputtype=number::-webkit-inner-spin-button,inputtype=number::-webkit-outer-spin-button{height:auto}inputtype=search{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}inputtype=search::-webkit-search-cancel-button,inputtype=search::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}ahref:after{content:" (" attr(href) ")"}abbrtitle:after{content:" (" attr(title) ")"}ahref^="javascript:":after,ahref^="#":after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;width:100% \9;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;width:100% \9;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbrtitle,abbrdata-original-title{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-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 colclass*=col-{position:static;display:table-column;float:none}table tdclass*=col-,table thclass*=col-{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}inputtype=search{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}inputtype=radio,inputtype=checkbox{margin:4px 0 0;margin-top:1px \9;line-height:normal}inputtype=file{display:block}inputtype=range{display:block;width:100%}selectmultiple,selectsize{height:auto}inputtype=file:focus,inputtype=radio:focus,inputtype=checkbox:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-controldisabled,.form-controlreadonly,fieldsetdisabled .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}inputtype=search{-webkit-appearance:none}inputtype=date,inputtype=time,inputtype=datetime-local,inputtype=month{line-height:34px;line-height:1.42857143 \0}inputtype=date.input-sm,inputtype=time.input-sm,inputtype=datetime-local.input-sm,inputtype=month.input-sm{line-height:30px}inputtype=date.input-lg,inputtype=time.input-lg,inputtype=datetime-local.input-lg,inputtype=month.input-lg{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio inputtype=radio,.radio-inline inputtype=radio,.checkbox inputtype=checkbox,.checkbox-inline inputtype=checkbox{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}inputtype=radiodisabled,inputtype=checkboxdisabled,inputtype=radio.disabled,inputtype=checkbox.disabled,fieldsetdisabled inputtype=radio,fieldsetdisabled inputtype=checkbox{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldsetdisabled .radio-inline,fieldsetdisabled .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldsetdisabled .radio label,fieldsetdisabled .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-horizontal .form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,selectmultiple.input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,selectmultiple.input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio inputtype=radio,.form-inline .checkbox inputtype=checkbox{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btndisabled,fieldsetdisabled .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-defaultdisabled,fieldsetdisabled .btn-default,.btn-default.disabled:hover,.btn-defaultdisabled:hover,fieldsetdisabled .btn-default:hover,.btn-default.disabled:focus,.btn-defaultdisabled:focus,fieldsetdisabled .btn-default:focus,.btn-default.disabled:active,.btn-defaultdisabled:active,fieldsetdisabled .btn-default:active,.btn-default.disabled.active,.btn-defaultdisabled.active,fieldsetdisabled .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primarydisabled,fieldsetdisabled .btn-primary,.btn-primary.disabled:hover,.btn-primarydisabled:hover,fieldsetdisabled .btn-primary:hover,.btn-primary.disabled:focus,.btn-primarydisabled:focus,fieldsetdisabled .btn-primary:focus,.btn-primary.disabled:active,.btn-primarydisabled:active,fieldsetdisabled .btn-primary:active,.btn-primary.disabled.active,.btn-primarydisabled.active,fieldsetdisabled .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-successdisabled,fieldsetdisabled .btn-success,.btn-success.disabled:hover,.btn-successdisabled:hover,fieldsetdisabled .btn-success:hover,.btn-success.disabled:focus,.btn-successdisabled:focus,fieldsetdisabled .btn-success:focus,.btn-success.disabled:active,.btn-successdisabled:active,fieldsetdisabled .btn-success:active,.btn-success.disabled.active,.btn-successdisabled.active,fieldsetdisabled .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-infodisabled,fieldsetdisabled .btn-info,.btn-info.disabled:hover,.btn-infodisabled:hover,fieldsetdisabled .btn-info:hover,.btn-info.disabled:focus,.btn-infodisabled:focus,fieldsetdisabled .btn-info:focus,.btn-info.disabled:active,.btn-infodisabled:active,fieldsetdisabled .btn-info:active,.btn-info.disabled.active,.btn-infodisabled.active,fieldsetdisabled .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warningdisabled,fieldsetdisabled .btn-warning,.btn-warning.disabled:hover,.btn-warningdisabled:hover,fieldsetdisabled .btn-warning:hover,.btn-warning.disabled:focus,.btn-warningdisabled:focus,fieldsetdisabled .btn-warning:focus,.btn-warning.disabled:active,.btn-warningdisabled:active,fieldsetdisabled .btn-warning:active,.btn-warning.disabled.active,.btn-warningdisabled.active,fieldsetdisabled .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-dangerdisabled,fieldsetdisabled .btn-danger,.btn-danger.disabled:hover,.btn-dangerdisabled:hover,fieldsetdisabled .btn-danger:hover,.btn-danger.disabled:focus,.btn-dangerdisabled:focus,fieldsetdisabled .btn-danger:focus,.btn-danger.disabled:active,.btn-dangerdisabled:active,fieldsetdisabled .btn-danger:active,.btn-danger.disabled.active,.btn-dangerdisabled.active,fieldsetdisabled .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-linkdisabled,fieldsetdisabled .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-linkdisabled:hover,fieldsetdisabled .btn-link:hover,.btn-linkdisabled:focus,fieldsetdisabled .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}inputtype=submit.btn-block,inputtype=reset.btn-block,inputtype=button.btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}data-toggle=buttons>.btn>inputtype=radio,data-toggle=buttons>.btn>inputtype=checkbox{position:absolute;z-index:-1;filter:alpha(opacity=0);opacity:0}.input-group{position:relative;display:table;border-collapse:separate}.input-groupclass*=col-{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,selectmultiple.input-group-lg>.form-control,selectmultiple.input-group-lg>.input-group-addon,selectmultiple.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,selectmultiple.input-group-sm>.form-control,selectmultiple.input-group-sm>.input-group-addon,selectmultiple.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon inputtype=radio,.input-group-addon inputtype=checkbox{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio inputtype=radio,.navbar-form .checkbox inputtype=checkbox{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-linkdisabled:hover,fieldsetdisabled .navbar-default .btn-link:hover,.navbar-default .btn-linkdisabled:focus,fieldsetdisabled .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#777}.navbar-inverse .navbar-nav>li>a{color:#777}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-linkdisabled:hover,fieldsetdisabled .navbar-inverse .btn-link:hover,.navbar-inverse .btn-linkdisabled:focus,fieldsetdisabled .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#428bca;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-defaulthref:hover,.label-defaulthref:focus{background-color:#5e5e5e}.label-primary{background-color:#428bca}.label-primaryhref:hover,.label-primaryhref:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-successhref:hover,.label-successhref:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-infohref:hover,.label-infohref:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warninghref:hover,.label-warninghref:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-dangerhref:hover,.label-dangerhref:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bararia-valuenow="1",.progress-bararia-valuenow="2"{min-width:30px}.progress-bararia-valuenow="0"{min-width:30px;color:#777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#428bca}.panel-primary>.panel-heading .badge{color:#428bca;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate3d(0,-25%,0);-o-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0)}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
7
ffmpeg-3-3.4.13.tar.xz/doc/developer.texi -> ffmpeg-3-3.4.14.tar.xz/doc/developer.texi Changed
27
 
1
@@ -743,6 +743,25 @@
2
 @code{--target-exec='valgrind <your_custom_valgrind_options>} option in
3
 your configure line instead.
4
 
5
+@anchor{Maintenance}
6
+@chapter Maintenance process
7
+
8
+@anchor{MAINTAINERS}
9
+@section MAINTAINERS
10
+
11
+The developers maintaining each part of the codebase are listed in @file{MAINTAINERS}.
12
+Being listed in @file{MAINTAINERS}, gives one the right to have git write access to
13
+the specific repository.
14
+
15
+@anchor{Becoming a maintainer}
16
+@section Becoming a maintainer
17
+
18
+People add themselves to @file{MAINTAINERS} by sending a patch like any other code
19
+change. These get reviewed by the community like any other patch. It is expected
20
+that, if someone has an objection to a new maintainer, she is willing to object
21
+in public with her full name and is willing to take over maintainership for the area.
22
+
23
+
24
 @anchor{Release process}
25
 @section Release process
26
 
27
ffmpeg-3-3.4.13.tar.xz/doc/t2h.pm -> ffmpeg-3-3.4.14.tar.xz/doc/t2h.pm Changed
213
 
1
@@ -20,8 +20,45 @@
2
 # License along with FFmpeg; if not, write to the Free Software
3
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
4
 
5
+# Texinfo 7.0 changed the syntax of various functions.
6
+# Provide a shim for older versions.
7
+sub ff_set_from_init_file($$) {
8
+    my $key = shift;
9
+    my $value = shift;
10
+    if (exists &{'texinfo_set_from_init_file'}) {
11
+        texinfo_set_from_init_file($key, $value);
12
+    } else {
13
+        set_from_init_file($key, $value);
14
+    }
15
+}
16
+
17
+sub ff_get_conf($) {
18
+    my $key = shift;
19
+    if (exists &{'texinfo_get_conf'}) {
20
+        texinfo_get_conf($key);
21
+    } else {
22
+        get_conf($key);
23
+    }
24
+}
25
+
26
+sub get_formatting_function($$) {
27
+    my $obj = shift;
28
+    my $func = shift;
29
+
30
+    my $sub = $obj->can('formatting_function');
31
+    if ($sub) {
32
+        return $obj->formatting_function($func);
33
+    } else {
34
+        return $obj->{$func};
35
+    }
36
+}
37
+
38
+# determine texinfo version
39
+my $program_version_num = version->declare(ff_get_conf('PACKAGE_VERSION'))->numify;
40
+my $program_version_6_8 = $program_version_num >= 6.008000;
41
+
42
 # no navigation elements
43
-set_from_init_file('HEADERS', 0);
44
+ff_set_from_init_file('HEADERS', 0);
45
 
46
 sub ffmpeg_heading_command($$$$$)
47
 {
48
@@ -55,7 +92,7 @@
49
         $element = $command->{'parent'};
50
     }
51
     if ($element) {
52
-        $result .= &{$self->{'format_element_header'}}($self, $cmdname,
53
+        $result .= &{get_formatting_function($self, 'format_element_header')}($self, $cmdname,
54
                                                        $command, $element);
55
     }
56
 
57
@@ -112,7 +149,11 @@
58
                 $cmdname
59
                     = $Texinfo::Common::level_to_structuring_command{$cmdname}->$heading_level;
60
             }
61
-            $result .= &{$self->{'format_heading_text'}}(
62
+            # format_heading_text expects an array of headings for texinfo >= 7.0
63
+            if ($program_version_num >= 7.000000) {
64
+                $heading = $heading;
65
+            }
66
+            $result .= &{get_formatting_function($self,'format_heading_text')}(
67
                         $self, $cmdname, $heading,
68
                         $heading_level +
69
                         $self->get_conf('CHAPTER_HEADER_LEVEL') - 1, $command);
70
@@ -127,14 +168,18 @@
71
 }
72
 
73
 # print the TOC where @contents is used
74
-set_from_init_file('INLINE_CONTENTS', 1);
75
+if ($program_version_6_8) {
76
+    ff_set_from_init_file('CONTENTS_OUTPUT_LOCATION', 'inline');
77
+} else {
78
+    ff_set_from_init_file('INLINE_CONTENTS', 1);
79
+}
80
 
81
 # make chapters <h2>
82
-set_from_init_file('CHAPTER_HEADER_LEVEL', 2);
83
+ff_set_from_init_file('CHAPTER_HEADER_LEVEL', 2);
84
 
85
 # Do not add <hr>
86
-set_from_init_file('DEFAULT_RULE', '');
87
-set_from_init_file('BIG_RULE', '');
88
+ff_set_from_init_file('DEFAULT_RULE', '');
89
+ff_set_from_init_file('BIG_RULE', '');
90
 
91
 # Customized file beginning
92
 sub ffmpeg_begin_file($$$)
93
@@ -151,7 +196,18 @@
94
     my ($title, $description, $encoding, $date, $css_lines,
95
         $doctype, $bodytext, $copying_comment, $after_body_open,
96
         $extra_head, $program_and_version, $program_homepage,
97
-        $program, $generator) = $self->_file_header_informations($command);
98
+        $program, $generator);
99
+    if ($program_version_num >= 7.000000) {
100
+        ($title, $description, $encoding, $date, $css_lines,
101
+         $doctype, $bodytext, $copying_comment, $after_body_open,
102
+         $extra_head, $program_and_version, $program_homepage,
103
+         $program, $generator) = $self->_file_header_information($command);
104
+    } else {
105
+        ($title, $description, $encoding, $date, $css_lines,
106
+         $doctype, $bodytext, $copying_comment, $after_body_open,
107
+         $extra_head, $program_and_version, $program_homepage,
108
+         $program, $generator) = $self->_file_header_informations($command);
109
+    }
110
 
111
     my $links = $self->_get_links ($filename, $element);
112
 
113
@@ -184,7 +240,11 @@
114
 
115
     return $head1 . $head_title . $head2 . $head_title . $head3;
116
 }
117
-texinfo_register_formatting_function('begin_file', \&ffmpeg_begin_file);
118
+if ($program_version_6_8) {
119
+    texinfo_register_formatting_function('format_begin_file', \&ffmpeg_begin_file);
120
+} else {
121
+    texinfo_register_formatting_function('begin_file', \&ffmpeg_begin_file);
122
+}
123
 
124
 sub ffmpeg_program_string($)
125
 {
126
@@ -201,13 +261,17 @@
127
       $self->gdt('This document was generated automatically.'));
128
   }
129
 }
130
-texinfo_register_formatting_function('program_string', \&ffmpeg_program_string);
131
+if ($program_version_6_8) {
132
+    texinfo_register_formatting_function('format_program_string', \&ffmpeg_program_string);
133
+} else {
134
+    texinfo_register_formatting_function('program_string', \&ffmpeg_program_string);
135
+}
136
 
137
 # Customized file ending
138
 sub ffmpeg_end_file($)
139
 {
140
     my $self = shift;
141
-    my $program_string = &{$self->{'format_program_string'}}($self);
142
+    my $program_string = &{get_formatting_function($self,'format_program_string')}($self);
143
     my $program_text = <<EOT;
144
       <p style="font-size: small;">
145
         $program_string
146
@@ -220,11 +284,15 @@
147
 EOT
148
     return $program_text . $footer;
149
 }
150
-texinfo_register_formatting_function('end_file', \&ffmpeg_end_file);
151
+if ($program_version_6_8) {
152
+    texinfo_register_formatting_function('format_end_file', \&ffmpeg_end_file);
153
+} else {
154
+    texinfo_register_formatting_function('end_file', \&ffmpeg_end_file);
155
+}
156
 
157
 # Dummy title command
158
 # Ignore title. Title is handled through ffmpeg_begin_file().
159
-set_from_init_file('USE_TITLEPAGE_FOR_TITLE', 1);
160
+ff_set_from_init_file('USE_TITLEPAGE_FOR_TITLE', 1);
161
 sub ffmpeg_title($$$$)
162
 {
163
     return '';
164
@@ -242,8 +310,14 @@
165
     my $args = shift;
166
     my $content = shift;
167
 
168
-    my ($caption, $prepended) = Texinfo::Common::float_name_caption($self,
169
-                                                                $command);
170
+    my ($caption, $prepended);
171
+    if ($program_version_num >= 7.000000) {
172
+        ($caption, $prepended) = Texinfo::Convert::Converter::float_name_caption($self,
173
+                                                                                 $command);
174
+    } else {
175
+        ($caption, $prepended) = Texinfo::Common::float_name_caption($self,
176
+                                                                     $command);
177
+    }
178
     my $caption_text = '';
179
     my $prepended_text;
180
     my $prepended_save = '';
181
@@ -315,8 +389,13 @@
182
             $caption->{'args'}->0, 'float caption');
183
     }
184
     if ($prepended_text.$caption_text ne '') {
185
-        $prepended_text = $self->_attribute_class('div','float-caption'). '>'
186
-                . $prepended_text;
187
+        if ($program_version_num >= 7.000000) {
188
+            $prepended_text = $self->html_attribute_class('div','float-caption'). '>'
189
+                    . $prepended_text;
190
+        } else {
191
+            $prepended_text = $self->_attribute_class('div','float-caption'). '>'
192
+                    . $prepended_text;
193
+        }
194
         $caption_text .= '</div>';
195
     }
196
     my $html_class = '';
197
@@ -329,8 +408,13 @@
198
         $prepended_text = '';
199
         $caption_text   = '';
200
     }
201
-    return $self->_attribute_class('div', $html_class). '>' . "\n" .
202
-        $prepended_text . $caption_text . $content . '</div>';
203
+    if ($program_version_num >= 7.000000) {
204
+        return $self->html_attribute_class('div', $html_class). '>' . "\n" .
205
+            $prepended_text . $caption_text . $content . '</div>';
206
+    } else {
207
+        return $self->_attribute_class('div', $html_class). '>' . "\n" .
208
+            $prepended_text . $caption_text . $content . '</div>';
209
+    }
210
 }
211
 
212
 texinfo_register_command_formatting('float',
213
ffmpeg-3-3.4.13.tar.xz/ffbuild/common.mak -> ffmpeg-3-3.4.14.tar.xz/ffbuild/common.mak Changed
10
 
1
@@ -83,7 +83,7 @@
2
    -$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@)
3
 
4
 %.o: %.rc
5
-   $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $<
6
+   $(WINDRES) $(IFLAGS) $(foreach ARG,$(CC_DEPFLAGS),--preprocessor-arg "$(ARG)") -o $@ $<
7
 
8
 %.i: %.c
9
    $(CC) $(CCFLAGS) $(CC_E) $<
10
ffmpeg-3-3.4.13.tar.xz/fftools/cmdutils.c -> ffmpeg-3-3.4.14.tar.xz/fftools/cmdutils.c Changed
10
 
1
@@ -540,7 +540,7 @@
2
     return o;
3
 }
4
 
5
-#define FLAGS (o->type == AV_OPT_TYPE_FLAGS && (arg0=='-' || arg0=='+')) ? AV_DICT_APPEND : 0
6
+#define FLAGS ((o->type == AV_OPT_TYPE_FLAGS && (arg0=='-' || arg0=='+')) ? AV_DICT_APPEND : 0)
7
 int opt_default(void *optctx, const char *opt, const char *arg)
8
 {
9
     const AVOption *o;
10
ffmpeg-3-3.4.13.tar.xz/fftools/ffmpeg.c -> ffmpeg-3-3.4.14.tar.xz/fftools/ffmpeg.c Changed
13
 
1
@@ -443,8 +443,9 @@
2
         }
3
         //Read it
4
         if(nchars != 0) {
5
-            read(0, &ch, 1);
6
-            return ch;
7
+            if (read(0, &ch, 1) == 1)
8
+                return ch;
9
+            return 0;
10
         }else{
11
             return -1;
12
         }
13
ffmpeg-3-3.4.13.tar.xz/libavcodec/4xm.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/4xm.c Changed
10
 
1
@@ -884,6 +884,8 @@
2
         }
3
 
4
         if (i >= CFRAME_BUFFER_COUNT) {
5
+            if (free_index < 0)
6
+                return AVERROR_INVALIDDATA;
7
             i             = free_index;
8
             f->cfrmi.id = id;
9
         }
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/aacsbr_template.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/aacsbr_template.c Changed
9
 
1
@@ -580,6 +580,7 @@
2
 
3
     if (sbr->n_q > 5) {
4
         av_log(ac->avctx, AV_LOG_ERROR, "Too many noise floor scale factors: %d\n", sbr->n_q);
5
+        sbr->n_q = 1;
6
         return -1;
7
     }
8
 
9
ffmpeg-3-3.4.13.tar.xz/libavcodec/aarch64/vp9mc_neon.S -> ffmpeg-3-3.4.14.tar.xz/libavcodec/aarch64/vp9mc_neon.S Changed
27
 
1
@@ -260,6 +260,9 @@
2
         // reduced dst stride
3
 .if \size >= 16
4
         sub             x1,  x1,  x5
5
+.elseif \size == 4
6
+        add             x12, x2,  #8
7
+        add             x13, x7,  #8
8
 .endif
9
         // size >= 16 loads two qwords and increments x2,
10
         // for size 4/8 it's enough with one qword and no
11
@@ -278,9 +281,14 @@
12
 .if \size >= 16
13
         ld1             {v4.8b,  v5.8b,  v6.8b},  x2, #24
14
         ld1             {v16.8b, v17.8b, v18.8b}, x7, #24
15
-.else
16
+.elseif \size == 8
17
         ld1             {v4.8b,  v5.8b},  x2
18
         ld1             {v16.8b, v17.8b}, x7
19
+.else // \size == 4
20
+        ld1             {v4.8b},  x2
21
+        ld1             {v16.8b}, x7
22
+        ld1             {v5.s}0,  x12, x3
23
+        ld1             {v17.s}0, x13, x3
24
 .endif
25
         uxtl            v4.8h,  v4.8b
26
         uxtl            v5.8h,  v5.8b
27
ffmpeg-3-3.4.13.tar.xz/libavcodec/aic.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/aic.c Changed
11
 
1
@@ -460,8 +460,7 @@
2
         }
3
     }
4
 
5
-    ctx->slice_data = av_malloc_array(ctx->slice_width, AIC_BAND_COEFFS
6
-                                * sizeof(*ctx->slice_data));
7
+    ctx->slice_data = av_calloc(ctx->slice_width, AIC_BAND_COEFFS * sizeof(*ctx->slice_data));
8
     if (!ctx->slice_data) {
9
         av_log(avctx, AV_LOG_ERROR, "Error allocating slice buffer\n");
10
 
11
ffmpeg-3-3.4.13.tar.xz/libavcodec/arm/vp9mc_neon.S -> ffmpeg-3-3.4.14.tar.xz/libavcodec/arm/vp9mc_neon.S Changed
33
 
1
@@ -279,11 +279,13 @@
2
         sub             r1,  r1,  r5
3
 .endif
4
         @ size >= 16 loads two qwords and increments r2,
5
-        @ for size 4/8 it's enough with one qword and no
6
-        @ postincrement
7
+        @ size 4 loads 1 d word, increments r2 and loads 1 32-bit lane
8
+        @ for size 8 it's enough with one qword and no postincrement
9
 .if \size >= 16
10
         sub             r3,  r3,  r5
11
         sub             r3,  r3,  #8
12
+.elseif \size == 4
13
+        sub             r3,  r3,  #8
14
 .endif
15
         @ Load the filter vector
16
         vld1.16         {q0},  r12,:128
17
@@ -295,9 +297,14 @@
18
 .if \size >= 16
19
         vld1.8          {d18, d19, d20}, r2!
20
         vld1.8          {d24, d25, d26}, r7!
21
-.else
22
+.elseif \size == 8
23
         vld1.8          {q9},  r2
24
         vld1.8          {q12}, r7
25
+.else @ size == 4
26
+        vld1.8          {d18}, r2!
27
+        vld1.8          {d24}, r7!
28
+        vld1.32         {d190}, r2
29
+        vld1.32         {d250}, r7
30
 .endif
31
         vmovl.u8        q8,  d18
32
         vmovl.u8        q9,  d19
33
ffmpeg-3-3.4.13.tar.xz/libavcodec/avcodec.h -> ffmpeg-3-3.4.14.tar.xz/libavcodec/avcodec.h Changed
12
 
1
@@ -2631,6 +2631,10 @@
2
      *   this callback and filled with the extra buffers if there are more
3
      *   buffers than buf can hold. extended_buf will be freed in
4
      *   av_frame_unref().
5
+     *   Decoders will generally initialize the whole buffer before it is output
6
+     *   but it can in rare error conditions happen that uninitialized data is passed
7
+     *   through. \important The buffers returned by get_buffer* should thus not contain sensitive
8
+     *   data.
9
      *
10
      * If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call
11
      * avcodec_default_get_buffer2() instead of providing buffers allocated by
12
ffmpeg-3-3.4.13.tar.xz/libavcodec/celp_math.h -> ffmpeg-3-3.4.14.tar.xz/libavcodec/celp_math.h Changed
10
 
1
@@ -78,7 +78,7 @@
2
  *
3
  * @return value << offset, if offset>=0; value >> -offset - otherwise
4
  */
5
-static inline int bidir_sal(int value, int offset)
6
+static inline unsigned bidir_sal(unsigned value, int offset)
7
 {
8
     if(offset < 0) return value >> -offset;
9
     else           return value <<  offset;
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/dxva2.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/dxva2.c Changed
46
 
1
@@ -104,7 +104,7 @@
2
 
3
     for (i = 0; i < cfg_count; i++) {
4
         unsigned score;
5
-        UINT ConfigBitstreamRaw;
6
+        UINT ConfigBitstreamRaw = 0;
7
         GUID guidConfigBitstreamEncryption;
8
 
9
 #if CONFIG_D3D11VA
10
@@ -255,7 +255,7 @@
11
     *decoder_guid = ff_GUID_NULL;
12
     for (i = 0; dxva_modesi.guid; i++) {
13
         const dxva_mode *mode = &dxva_modesi;
14
-        int validate;
15
+        int validate = 0;
16
         if (!dxva_check_codec_compatibility(avctx, mode))
17
             continue;
18
 
19
@@ -799,7 +799,7 @@
20
                            unsigned type, const void *data, unsigned size,
21
                            unsigned mb_count)
22
 {
23
-    void     *dxva_data;
24
+    void     *dxva_data = NULL;
25
     unsigned dxva_size;
26
     int      result;
27
     HRESULT hr = 0;
28
@@ -821,7 +821,7 @@
29
                type, (unsigned)hr);
30
         return -1;
31
     }
32
-    if (size <= dxva_size) {
33
+    if (dxva_data && size <= dxva_size) {
34
         memcpy(dxva_data, data, size);
35
 
36
 #if CONFIG_D3D11VA
37
@@ -899,7 +899,7 @@
38
 #endif
39
     DECODER_BUFFER_DESC             *buffer = NULL, *buffer_slice = NULL;
40
     int result, runs = 0;
41
-    HRESULT hr;
42
+    HRESULT hr = -1;
43
     unsigned type;
44
     FFDXVASharedContext *sctx = DXVA_SHARED_CONTEXT(avctx);
45
 
46
ffmpeg-3-3.4.13.tar.xz/libavcodec/escape124.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/escape124.c Changed
19
 
1
@@ -238,7 +238,7 @@
2
         if ((ret = av_frame_ref(frame, s->frame)) < 0)
3
             return ret;
4
 
5
-        return frame_size;
6
+        return 0;
7
     }
8
 
9
     for (i = 0; i < 3; i++) {
10
@@ -372,7 +372,7 @@
11
 
12
     *got_frame = 1;
13
 
14
-    return frame_size;
15
+    return 0;
16
 }
17
 
18
 
19
ffmpeg-3-3.4.13.tar.xz/libavcodec/ffv1.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/ffv1.c Changed
15
 
1
@@ -114,6 +114,13 @@
2
     return 0;
3
 }
4
 
5
+int ff_need_new_slices(int width, int num_h_slices, int chroma_shift) {
6
+    int mpw = 1<<chroma_shift;
7
+    int i = width * (int64_t)(num_h_slices - 1) / num_h_slices;
8
+
9
+    return width % mpw && (width - i) % mpw == 0;
10
+}
11
+
12
 av_cold int ff_ffv1_init_slice_contexts(FFV1Context *f)
13
 {
14
     int i;
15
ffmpeg-3-3.4.13.tar.xz/libavcodec/ffv1.h -> ffmpeg-3-3.4.14.tar.xz/libavcodec/ffv1.h Changed
9
 
1
@@ -147,6 +147,7 @@
2
 int ff_ffv1_allocate_initial_states(FFV1Context *f);
3
 void ff_ffv1_clear_slice_state(FFV1Context *f, FFV1Context *fs);
4
 int ff_ffv1_close(AVCodecContext *avctx);
5
+int ff_need_new_slices(int width, int num_h_slices, int chroma_shift);
6
 
7
 static av_always_inline int fold(int diff, int bits)
8
 {
9
ffmpeg-3-3.4.13.tar.xz/libavcodec/ffv1dec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/ffv1dec.c Changed
10
 
1
@@ -362,7 +362,7 @@
2
     if (fs->ac != AC_GOLOMB_RICE && f->version > 2) {
3
         int v;
4
         get_rac(&fs->c, (uint8_t) { 129 });
5
-        v = fs->c.bytestream_end - fs->c.bytestream - 2 - 5*f->ec;
6
+        v = fs->c.bytestream_end - fs->c.bytestream - 2 - 5*!!f->ec;
7
         if (v) {
8
             av_log(f->avctx, AV_LOG_ERROR, "bytestream end mismatching by %d\n", v);
9
             fs->slice_damaged = 1;
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/ffv1enc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/ffv1enc.c Changed
83
 
1
@@ -200,7 +200,7 @@
2
     } while (0)
3
 
4
     if (v) {
5
-        const int a = FFABS(v);
6
+        const unsigned a = is_signed ? FFABS(v) : v;
7
         const int e = av_log2(a);
8
         put_rac(c, state + 0, 0);
9
         if (e <= 9) {
10
@@ -520,6 +520,11 @@
11
         avctx->slices > 1)
12
         s->version = FFMAX(s->version, 2);
13
 
14
+    if ((avctx->flags & (AV_CODEC_FLAG_PASS1 | AV_CODEC_FLAG_PASS2)) && s->ac == AC_GOLOMB_RICE) {
15
+        av_log(avctx, AV_LOG_ERROR, "2 Pass mode is not possible with golomb coding\n");
16
+        return AVERROR(EINVAL);
17
+    }
18
+
19
     // Unspecified level & slices, we choose version 1.2+ to ensure multithreaded decodability
20
     if (avctx->slices == 0 && avctx->level < 0 && avctx->width * avctx->height > 720*576)
21
         s->version = FFMAX(s->version, 2);
22
@@ -544,7 +549,7 @@
23
         s->version = FFMAX(s->version, 3);
24
 
25
     if ((s->version == 2 || s->version>3) && avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL) {
26
-        av_log(avctx, AV_LOG_ERROR, "Version 2 needed for requested features but version 2 is experimental and not enabled\n");
27
+        av_log(avctx, AV_LOG_ERROR, "Version 2 or 4 needed for requested features but version 2 or 4 is experimental and not enabled\n");
28
         return AVERROR_INVALIDDATA;
29
     }
30
 
31
@@ -720,19 +725,21 @@
32
             s->quant_tables12i=     11*11*quant5 i;
33
             s->quant_tables13i=   5*11*11*quant5 i;
34
             s->quant_tables14i= 5*5*11*11*quant5 i;
35
+            s->context_count0 = (11 * 11 * 11        + 1) / 2;
36
+            s->context_count1 = (11 * 11 * 5 * 5 * 5 + 1) / 2;
37
         } else {
38
             s->quant_tables00i=           quant9_10biti;
39
-            s->quant_tables01i=        11*quant9_10biti;
40
-            s->quant_tables02i=     11*11*quant9_10biti;
41
+            s->quant_tables01i=         9*quant9_10biti;
42
+            s->quant_tables02i=       9*9*quant9_10biti;
43
             s->quant_tables10i=           quant9_10biti;
44
-            s->quant_tables11i=        11*quant9_10biti;
45
-            s->quant_tables12i=     11*11*quant5_10biti;
46
-            s->quant_tables13i=   5*11*11*quant5_10biti;
47
-            s->quant_tables14i= 5*5*11*11*quant5_10biti;
48
+            s->quant_tables11i=         9*quant9_10biti;
49
+            s->quant_tables12i=       9*9*quant5_10biti;
50
+            s->quant_tables13i=     5*9*9*quant5_10biti;
51
+            s->quant_tables14i=   5*5*9*9*quant5_10biti;
52
+            s->context_count0 = (9 * 9 * 9         + 1) / 2;
53
+            s->context_count1 = (9 * 9 * 5 * 5 * 5 + 1) / 2;
54
         }
55
     }
56
-    s->context_count0 = (11 * 11 * 11        + 1) / 2;
57
-    s->context_count1 = (11 * 11 * 5 * 5 * 5 + 1) / 2;
58
     memcpy(s->quant_table, s->quant_tabless->context_model,
59
            sizeof(s->quant_table));
60
 
61
@@ -867,6 +874,10 @@
62
                     continue;
63
                 if (maxw * maxh * (int64_t)(s->bits_per_raw_sample+1) * plane_count > 8<<24)
64
                     continue;
65
+                if (s->version < 4)
66
+                    if (  ff_need_new_slices(avctx->width , s->num_h_slices, s->chroma_h_shift)
67
+                        ||ff_need_new_slices(avctx->height, s->num_v_slices, s->chroma_v_shift))
68
+                        continue;
69
                 if (avctx->slices == s->num_h_slices * s->num_v_slices && avctx->slices <= MAX_SLICES || !avctx->slices)
70
                     goto slices_ok;
71
             }
72
@@ -915,8 +926,8 @@
73
 
74
     put_symbol(c, state, (fs->slice_x     +1)*f->num_h_slices / f->width   , 0);
75
     put_symbol(c, state, (fs->slice_y     +1)*f->num_v_slices / f->height  , 0);
76
-    put_symbol(c, state, (fs->slice_width +1)*f->num_h_slices / f->width -1, 0);
77
-    put_symbol(c, state, (fs->slice_height+1)*f->num_v_slices / f->height-1, 0);
78
+    put_symbol(c, state, 0, 0);
79
+    put_symbol(c, state, 0, 0);
80
     for (j=0; j<f->plane_count; j++) {
81
         put_symbol(c, state, f->planej.quant_table_index, 0);
82
         av_assert0(f->planej.quant_table_index == f->context_model);
83
ffmpeg-3-3.4.13.tar.xz/libavcodec/flac_parser.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/flac_parser.c Changed
10
 
1
@@ -367,6 +367,8 @@
2
         for (i = 0; i < FLAC_MAX_SEQUENTIAL_HEADERS && curr != child; i++)
3
             curr = curr->next;
4
 
5
+        av_assert0(i < FLAC_MAX_SEQUENTIAL_HEADERS);
6
+
7
         if (header->link_penaltyi < FLAC_HEADER_CRC_FAIL_PENALTY ||
8
             header->link_penaltyi == FLAC_HEADER_NOT_PENALIZED_YET) {
9
             FLACHeaderMarker *start, *end;
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/fmvc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/fmvc.c Changed
9
 
1
@@ -100,7 +100,6 @@
2
                             continue;
3
                         }
4
                     }
5
-                    repeat = 0;
6
                 }
7
                 repeat = 1;
8
             }
9
ffmpeg-3-3.4.13.tar.xz/libavcodec/g729postfilter.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/g729postfilter.c Changed
19
 
1
@@ -578,7 +578,7 @@
2
 int16_t ff_g729_adaptive_gain_control(int gain_before, int gain_after, int16_t *speech,
3
                                    int subframe_size, int16_t gain_prev)
4
 {
5
-    int gain; // (3.12)
6
+    unsigned gain; // (3.12)
7
     int n;
8
     int exp_before, exp_after;
9
 
10
@@ -600,7 +600,7 @@
11
             gain = ((gain_before - gain_after) << 14) / gain_after + 0x4000;
12
             gain = bidir_sal(gain, exp_after - exp_before);
13
         }
14
-        gain = av_clip_int16(gain);
15
+        gain = FFMIN(gain, 32767);
16
         gain = (gain * G729_AGC_FAC1 + 0x4000) >> 15; // gain * (1-0.9875)
17
     } else
18
         gain = 0;
19
ffmpeg-3-3.4.13.tar.xz/libavcodec/golomb.h -> ffmpeg-3-3.4.14.tar.xz/libavcodec/golomb.h Changed
27
 
1
@@ -282,6 +282,7 @@
2
     log = av_log2(buf);
3
 
4
     if (log > 31 - limit) {
5
+        av_assert2(log >= k);
6
         buf >>= log - k;
7
         buf  += (30U - log) << k;
8
         LAST_SKIP_BITS(re, gb, 32 + k - log);
9
@@ -303,6 +304,8 @@
10
 
11
 /**
12
  * read unsigned golomb rice code (jpegls).
13
+ *
14
+ * @returns -1 on error
15
  */
16
 static inline int get_ur_golomb_jpegls(GetBitContext *gb, int k, int limit,
17
                                        int esc_len)
18
@@ -380,6 +383,8 @@
19
 
20
 /**
21
  * read signed golomb rice code (flac).
22
+ *
23
+ * @returns INT_MIN on error
24
  */
25
 static inline int get_sr_golomb_flac(GetBitContext *gb, int k, int limit,
26
                                      int esc_len)
27
ffmpeg-3-3.4.13.tar.xz/libavcodec/h263dec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/h263dec.c Changed
47
 
1
@@ -289,7 +289,7 @@
2
                 ff_er_add_slice(&s->er, s->resync_mb_x, s->resync_mb_y,
3
                                 s->mb_x, s->mb_y, ER_MB_ERROR & part_mask);
4
 
5
-                if (s->avctx->err_recognition & AV_EF_IGNORE_ERR)
6
+                if ((s->avctx->err_recognition & AV_EF_IGNORE_ERR) && get_bits_left(&s->gb) > 0)
7
                     continue;
8
                 return AVERROR_INVALIDDATA;
9
             }
10
@@ -414,7 +414,9 @@
11
     MpegEncContext *s  = avctx->priv_data;
12
     int ret;
13
     int slice_ret = 0;
14
+
15
     AVFrame *pict = data;
16
+    int bak_width, bak_height;
17
 
18
     /* no supplementary picture */
19
     if (buf_size == 0) {
20
@@ -478,6 +480,9 @@
21
         // we need the idct permutation for reading a custom matrix
22
         ff_mpv_idct_init(s);
23
 
24
+    bak_width  = s->width;
25
+    bak_height = s->height;
26
+
27
     /* let's go :-) */
28
     if (CONFIG_WMV2_DECODER && s->msmpeg4_version == 5) {
29
         ret = ff_wmv2_decode_picture_header(s);
30
@@ -500,11 +505,12 @@
31
     }
32
 
33
     if (ret < 0 || ret == FRAME_SKIPPED) {
34
-        if (   s->width  != avctx->coded_width
35
-            || s->height != avctx->coded_height) {
36
+        if (   s->width  != bak_width
37
+            || s->height != bak_height) {
38
                 av_log(s->avctx, AV_LOG_WARNING, "Reverting picture dimensions change due to header decoding failure\n");
39
-                s->width = avctx->coded_width;
40
-                s->height= avctx->coded_height;
41
+                s->width = bak_width;
42
+                s->height= bak_height;
43
+
44
         }
45
     }
46
     if (ret == FRAME_SKIPPED)
47
ffmpeg-3-3.4.13.tar.xz/libavcodec/h2645_parse.h -> ffmpeg-3-3.4.14.tar.xz/libavcodec/h2645_parse.h Changed
10
 
1
@@ -97,7 +97,7 @@
2
 
3
     if (*buf_index >= buf_size - nal_length_size) {
4
         // the end of the buffer is reached, refill it
5
-        return AVERROR(EAGAIN);
6
+        return AVERROR_INVALIDDATA;
7
     }
8
 
9
     for (i = 0; i < nal_length_size; i++)
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/hevcdec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/hevcdec.c Changed
79
 
1
@@ -536,6 +536,10 @@
2
 
3
         if (s->ps.pps->dependent_slice_segments_enabled_flag)
4
             sh->dependent_slice_segment_flag = get_bits1(gb);
5
+        if (sh->dependent_slice_segment_flag && !s->slice_initialized) {
6
+            av_log(s->avctx, AV_LOG_ERROR, "Independent slice segment missing.\n");
7
+            return AVERROR_INVALIDDATA;
8
+        }
9
 
10
         slice_address_length = av_ceil_log2(s->ps.sps->ctb_width *
11
                                             s->ps.sps->ctb_height);
12
@@ -804,9 +808,6 @@
13
         } else {
14
             sh->slice_loop_filter_across_slices_enabled_flag = s->ps.pps->seq_loop_filter_across_slices_enabled_flag;
15
         }
16
-    } else if (!s->slice_initialized) {
17
-        av_log(s->avctx, AV_LOG_ERROR, "Independent slice segment missing.\n");
18
-        return AVERROR_INVALIDDATA;
19
     }
20
 
21
     sh->num_entry_point_offsets = 0;
22
@@ -1425,7 +1426,8 @@
23
 
24
     if (x_off < QPEL_EXTRA_BEFORE || y_off < QPEL_EXTRA_AFTER ||
25
         x_off >= pic_width - block_w - QPEL_EXTRA_AFTER ||
26
-        y_off >= pic_height - block_h - QPEL_EXTRA_AFTER) {
27
+        y_off >= pic_height - block_h - QPEL_EXTRA_AFTER ||
28
+        ref == s->frame) {
29
         const ptrdiff_t edge_emu_stride = EDGE_EMU_BUFFER_STRIDE << s->ps.sps->pixel_shift;
30
         int offset     = QPEL_EXTRA_BEFORE * srcstride       + (QPEL_EXTRA_BEFORE << s->ps.sps->pixel_shift);
31
         int buf_offset = QPEL_EXTRA_BEFORE * edge_emu_stride + (QPEL_EXTRA_BEFORE << s->ps.sps->pixel_shift);
32
@@ -1573,6 +1575,7 @@
33
     intptr_t my          = av_mod_uintp2(mv->y, 2 + vshift);
34
     intptr_t _mx         = mx << (1 - hshift);
35
     intptr_t _my         = my << (1 - vshift);
36
+    int emu              = src0 == s->frame->data1 || src0 == s->frame->data2;
37
 
38
     x_off += mv->x >> (2 + hshift);
39
     y_off += mv->y >> (2 + vshift);
40
@@ -1580,7 +1583,8 @@
41
 
42
     if (x_off < EPEL_EXTRA_BEFORE || y_off < EPEL_EXTRA_AFTER ||
43
         x_off >= pic_width - block_w - EPEL_EXTRA_AFTER ||
44
-        y_off >= pic_height - block_h - EPEL_EXTRA_AFTER) {
45
+        y_off >= pic_height - block_h - EPEL_EXTRA_AFTER ||
46
+        emu) {
47
         const int edge_emu_stride = EDGE_EMU_BUFFER_STRIDE << s->ps.sps->pixel_shift;
48
         int offset0 = EPEL_EXTRA_BEFORE * (srcstride + (1 << s->ps.sps->pixel_shift));
49
         int buf_offset0 = EPEL_EXTRA_BEFORE *
50
@@ -1819,13 +1823,13 @@
51
 
52
     if (current_mv.pred_flag & PF_L0) {
53
         ref0 = refPicList0.refcurrent_mv.ref_idx0;
54
-        if (!ref0)
55
+        if (!ref0 || !ref0->frame)
56
             return;
57
         hevc_await_progress(s, ref0, &current_mv.mv0, y0, nPbH);
58
     }
59
     if (current_mv.pred_flag & PF_L1) {
60
         ref1 = refPicList1.refcurrent_mv.ref_idx1;
61
-        if (!ref1)
62
+        if (!ref1 || !ref1->frame)
63
             return;
64
         hevc_await_progress(s, ref1, &current_mv.mv1, y0, nPbH);
65
     }
66
@@ -2874,8 +2878,11 @@
67
     case HEVC_NAL_RASL_N:
68
     case HEVC_NAL_RASL_R:
69
         ret = hls_slice_header(s);
70
-        if (ret < 0)
71
+        if (ret < 0) {
72
+            // hls_slice_header() does not cleanup on failure thus the state now is inconsistant so we cannot use it on depandant slices
73
+            s->slice_initialized = 0;
74
             return ret;
75
+        }
76
         if (ret == 1) {
77
             ret = AVERROR_INVALIDDATA;
78
             goto fail;
79
ffmpeg-3-3.4.13.tar.xz/libavcodec/huffyuvdec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/huffyuvdec.c Changed
19
 
1
@@ -751,7 +751,7 @@
2
             }
3
         }
4
         if( width&1 && get_bits_left(&s->gb)>0 ) {
5
-            int dst = get_vlc2(&s->gb, s->vlcplane.table, VLC_BITS, 3)<<2;
6
+            int dst = (unsigned)get_vlc2(&s->gb, s->vlcplane.table, VLC_BITS, 3)<<2;
7
             s->temp160width-1 = dst + get_bits(&s->gb, 2);
8
         }
9
     }
10
@@ -767,6 +767,8 @@
11
         for (i = 0; i < count && BITS_LEFT(re, &s->gb) > 0; i++) {
12
             READ_2PIX(s->temp02 * i, s->temp02 * i + 1, 0);
13
         }
14
+        for (; i < count; i++)
15
+            s->temp02 * i = s->temp02 * i + 1 = 0;
16
     } else {
17
         for (i = 0; i < count; i++) {
18
             READ_2PIX(s->temp02 * i, s->temp02 * i + 1, 0);
19
ffmpeg-3-3.4.13.tar.xz/libavcodec/iff.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/iff.c Changed
19
 
1
@@ -583,7 +583,7 @@
2
                            GetByteContext *gb)
3
 {
4
     GetByteContext cmds;
5
-    unsigned count;
6
+    int count;
7
     int i, y_pos = 0, x_pos = 0;
8
 
9
     if (bytestream2_get_be32(gb) != MKBETAG('V', 'D', 'A', 'T'))
10
@@ -591,7 +591,7 @@
11
 
12
     bytestream2_skip(gb, 4);
13
     count = bytestream2_get_be16(gb) - 2;
14
-    if (bytestream2_get_bytes_left(gb) < count)
15
+    if (count < 0 || bytestream2_get_bytes_left(gb) < count)
16
         return 0;
17
 
18
     bytestream2_init(&cmds, gb->buffer, count);
19
ffmpeg-3-3.4.13.tar.xz/libavcodec/indeo3.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/indeo3.c Changed
11
 
1
@@ -169,6 +169,9 @@
2
     int luma_size, chroma_size;
3
     ptrdiff_t luma_pitch, chroma_pitch;
4
 
5
+    luma_width  = FFALIGN(luma_width , 2);
6
+    luma_height = FFALIGN(luma_height, 2);
7
+
8
     if (luma_width  < 16 || luma_width  > 640 ||
9
         luma_height < 16 || luma_height > 480 ||
10
         luma_width  &  3 || luma_height &   3) {
11
ffmpeg-3-3.4.13.tar.xz/libavcodec/jfdctint_template.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/jfdctint_template.c Changed
37
 
1
@@ -69,7 +69,7 @@
2
 #define GLOBAL(x) x
3
 #define RIGHT_SHIFT(x, n) ((x) >> (n))
4
 #define MULTIPLY16C16(var,const) ((var)*(const))
5
-#define DESCALE(x,n)  RIGHT_SHIFT((x) + (1 << ((n) - 1)), n)
6
+#define DESCALE(x,n)  RIGHT_SHIFT((int)(x) + (1 << ((n) - 1)), n)
7
 
8
 
9
 /*
10
@@ -175,7 +175,7 @@
11
 #if BITS_IN_JSAMPLE == 8 && CONST_BITS<=13 && PASS1_BITS<=2
12
 #define MULTIPLY(var,const)  MULTIPLY16C16(var,const)
13
 #else
14
-#define MULTIPLY(var,const)  ((var) * (const))
15
+#define MULTIPLY(var,const)  (int)((var) * (unsigned)(const))
16
 #endif
17
 
18
 
19
@@ -183,7 +183,7 @@
20
 {
21
   int tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
22
   int tmp10, tmp11, tmp12, tmp13;
23
-  int z1, z2, z3, z4, z5;
24
+  unsigned z1, z2, z3, z4, z5;
25
   int16_t *dataptr;
26
   int ctr;
27
 
28
@@ -261,7 +261,7 @@
29
 {
30
   int tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
31
   int tmp10, tmp11, tmp12, tmp13;
32
-  int z1, z2, z3, z4, z5;
33
+  unsigned z1, z2, z3, z4, z5;
34
   int16_t *dataptr;
35
   int ctr;
36
 
37
ffmpeg-3-3.4.13.tar.xz/libavcodec/jpeg2000dec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/jpeg2000dec.c Changed
28
 
1
@@ -311,6 +311,16 @@
2
         return AVERROR_INVALIDDATA;
3
     }
4
 
5
+    if (s->image_offset_x >= s->width || s->image_offset_y >= s->height) {
6
+        av_log(s->avctx, AV_LOG_ERROR, "image offsets outside image");
7
+        return AVERROR_INVALIDDATA;
8
+    }
9
+
10
+    if (s->reduction_factor && (s->image_offset_x || s->image_offset_y) ){
11
+        av_log(s->avctx, AV_LOG_ERROR, "reduction factor with image offsets is not fully implemented");
12
+        return AVERROR_PATCHWELCOME;
13
+    }
14
+
15
     s->ncomponents = ncomponents;
16
 
17
     if (s->tile_width <= 0 || s->tile_height <= 0) {
18
@@ -812,9 +822,6 @@
19
         case 2:
20
             bytestream2_get_be16(&s->g);
21
             break;
22
-        case 3:
23
-            bytestream2_get_be32(&s->g);
24
-            break;
25
         }
26
         if (SP == 0) {
27
             bytestream2_get_be16(&s->g);
28
ffmpeg-3-3.4.13.tar.xz/libavcodec/jpeglsdec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/jpeglsdec.c Changed
21
 
1
@@ -373,6 +373,19 @@
2
     state->T3     = s->t3;
3
     state->reset  = s->reset;
4
     ff_jpegls_reset_coding_parameters(state, 0);
5
+
6
+    /* Testing parameters here, we cannot test in LSE or SOF because
7
+     * these interdepend and are allowed in either order
8
+     */
9
+    if (state->maxval >= (1<<state->bpp) ||
10
+        state->T1 > state->T2 ||
11
+        state->T2 > state->T3 ||
12
+        state->T3 > state->maxval ||
13
+        state->reset > FFMAX(255, state->maxval)) {
14
+        ret = AVERROR_INVALIDDATA;
15
+        goto end;
16
+    }
17
+
18
     ff_jpegls_init_state(state);
19
 
20
     if (s->bits <= 8)
21
ffmpeg-3-3.4.13.tar.xz/libavcodec/lcldec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/lcldec.c Changed
50
 
1
@@ -227,16 +227,19 @@
2
             break;
3
         case COMP_MSZH_NOCOMP: {
4
             int bppx2;
5
+            int aligned_width = width;
6
             switch (c->imgtype) {
7
             case IMGTYPE_YUV111:
8
             case IMGTYPE_RGB24:
9
                 bppx2 = 6;
10
                 break;
11
             case IMGTYPE_YUV422:
12
+                aligned_width &= ~3;
13
             case IMGTYPE_YUV211:
14
                 bppx2 = 4;
15
                 break;
16
             case IMGTYPE_YUV411:
17
+                aligned_width &= ~3;
18
             case IMGTYPE_YUV420:
19
                 bppx2 = 3;
20
                 break;
21
@@ -244,7 +247,7 @@
22
                 bppx2 = 0; // will error out below
23
                 break;
24
             }
25
-            if (len < ((width * height * bppx2) >> 1))
26
+            if (len < ((aligned_width * height * bppx2) >> 1))
27
                 return AVERROR_INVALIDDATA;
28
             break;
29
         }
30
@@ -310,8 +313,8 @@
31
             }
32
             break;
33
         case IMGTYPE_YUV422:
34
+            pixel_ptr = 0;
35
             for (row = 0; row < height; row++) {
36
-                pixel_ptr = row * width * 2;
37
                 yq = uq = vq =0;
38
                 for (col = 0; col < width/4; col++) {
39
                     encodedpixel_ptr = yq -= encodedpixel_ptr;
40
@@ -327,8 +330,8 @@
41
             }
42
             break;
43
         case IMGTYPE_YUV411:
44
+            pixel_ptr = 0;
45
             for (row = 0; row < height; row++) {
46
-                pixel_ptr = row * width / 2 * 3;
47
                 yq = uq = vq =0;
48
                 for (col = 0; col < width/4; col++) {
49
                     encodedpixel_ptr = yq -= encodedpixel_ptr;
50
ffmpeg-3-3.4.13.tar.xz/libavcodec/loco.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/loco.c Changed
27
 
1
@@ -89,10 +89,15 @@
2
         return 0;
3
     }
4
     v = get_ur_golomb_jpegls(&r->gb, loco_get_rice_param(r), INT_MAX, 0);
5
+    if (v == -1)
6
+        return INT_MIN;
7
     loco_update_rice_param(r, (v + 1) >> 1);
8
     if (!v) {
9
         if (r->save >= 0) {
10
-            r->run = get_ur_golomb_jpegls(&r->gb, 2, INT_MAX, 0);
11
+            int run = get_ur_golomb_jpegls(&r->gb, 2, INT_MAX, 0);
12
+            if (run == -1)
13
+                return INT_MIN;
14
+            r->run = run;
15
             if (r->run > 1)
16
                 r->save += r->run + 1;
17
             else
18
@@ -149,6 +154,8 @@
19
 
20
     /* restore top left pixel */
21
     val     = loco_get_rice(&rc);
22
+    if (val == INT_MIN)
23
+        return AVERROR_INVALIDDATA;
24
     data0 = 128 + val;
25
     /* restore top line */
26
     for (i = 1; i < width; i++) {
27
ffmpeg-3-3.4.13.tar.xz/libavcodec/lpc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/lpc.c Changed
14
 
1
@@ -243,8 +243,10 @@
2
         double av_uninit(weight);
3
         memset(var, 0, FFALIGN(MAX_LPC_ORDER+1,4)*sizeof(*var));
4
 
5
-        for(j=0; j<max_order; j++)
6
-            m0.coeffmax_order-1j = -lpcmax_order-1j;
7
+        /* Avoids initializing with an unused value when lpc_passes == 1 */
8
+        if (lpc_passes > 1)
9
+            for(j=0; j<max_order; j++)
10
+                m0.coeffmax_order-1j = -lpcmax_order-1j;
11
 
12
         for(; pass<lpc_passes; pass++){
13
             avpriv_init_lls(&mpass&1, max_order);
14
ffmpeg-3-3.4.13.tar.xz/libavcodec/motion_est.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/motion_est.c Changed
10
 
1
@@ -1462,7 +1462,7 @@
2
         s->b_direct_mv_tablemot_xy0= 0;
3
         s->b_direct_mv_tablemot_xy1= 0;
4
 
5
-        return 256*256*256*64;
6
+        return 256*256*256*64-1;
7
     }
8
 
9
     c->xmin= xmin;
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/mpeg4videodec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/mpeg4videodec.c Changed
37
 
1
@@ -341,6 +341,8 @@
2
         ctx->sprite_shift0  = alpha + beta + rho - min_ab;
3
         ctx->sprite_shift1  = alpha + beta + rho - min_ab + 2;
4
         break;
5
+    default:
6
+        av_assert0(0);
7
     }
8
     /* try to simplify the situation */
9
     if (sprite_delta00 == a << ctx->sprite_shift0 &&
10
@@ -557,7 +559,7 @@
11
         for (y = 0; y < 16; y++) {
12
             int v;
13
 
14
-            v = mb_v + dy * y;
15
+            v = mb_v + (unsigned)dy * y;
16
             // FIXME optimize
17
             for (x = 0; x < 16; x++) {
18
                 sum += v >> shift;
19
@@ -1128,7 +1130,7 @@
20
                                 if (SHOW_UBITS(re, &s->gb, 1) == 0) {
21
                                     av_log(s->avctx, AV_LOG_ERROR,
22
                                            "1. marker bit missing in 3. esc\n");
23
-                                    if (!(s->avctx->err_recognition & AV_EF_IGNORE_ERR))
24
+                                    if (!(s->avctx->err_recognition & AV_EF_IGNORE_ERR) || get_bits_left(&s->gb) <= 0)
25
                                         return -1;
26
                                 }
27
                                 SKIP_CACHE(re, &s->gb, 1);
28
@@ -1139,7 +1141,7 @@
29
                                 if (SHOW_UBITS(re, &s->gb, 1) == 0) {
30
                                     av_log(s->avctx, AV_LOG_ERROR,
31
                                            "2. marker bit missing in 3. esc\n");
32
-                                    if (!(s->avctx->err_recognition & AV_EF_IGNORE_ERR))
33
+                                    if (!(s->avctx->err_recognition & AV_EF_IGNORE_ERR) || get_bits_left(&s->gb) <= 0)
34
                                         return -1;
35
                                 }
36
 
37
ffmpeg-3-3.4.13.tar.xz/libavcodec/mpegvideo_enc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/mpegvideo_enc.c Changed
67
 
1
@@ -575,6 +575,12 @@
2
         av_log(avctx, AV_LOG_ERROR, "H.263 does not support resolutions above 2048x1152\n");
3
         return -1;
4
     }
5
+    if (s->codec_id == AV_CODEC_ID_FLV1 &&
6
+        (avctx->width  > 65535 ||
7
+         avctx->height > 65535 )) {
8
+        av_log(avctx, AV_LOG_ERROR, "FLV does not support resolutions above 16bit\n");
9
+        return AVERROR(EINVAL);
10
+    }
11
     if ((s->codec_id == AV_CODEC_ID_H263  ||
12
          s->codec_id == AV_CODEC_ID_H263P) &&
13
         ((avctx->width &3) ||
14
@@ -1330,12 +1336,12 @@
15
                                                  &v_chroma_shift);
16
 
17
                 for (i = 0; i < 3; i++) {
18
-                    int src_stride = pic_arg->linesizei;
19
-                    int dst_stride = i ? s->uvlinesize : s->linesize;
20
+                    ptrdiff_t src_stride = pic_arg->linesizei;
21
+                    ptrdiff_t dst_stride = i ? s->uvlinesize : s->linesize;
22
                     int h_shift = i ? h_chroma_shift : 0;
23
                     int v_shift = i ? v_chroma_shift : 0;
24
-                    int w = s->width  >> h_shift;
25
-                    int h = s->height >> v_shift;
26
+                    int w = AV_CEIL_RSHIFT(s->width , h_shift);
27
+                    int h = AV_CEIL_RSHIFT(s->height, v_shift);
28
                     uint8_t *src = pic_arg->datai;
29
                     uint8_t *dst = pic->f->datai;
30
                     int vpad = 16;
31
@@ -1349,7 +1355,7 @@
32
                         dst += INPLACE_OFFSET;
33
 
34
                     if (src_stride == dst_stride)
35
-                        memcpy(dst, src, src_stride * h);
36
+                        memcpy(dst, src, src_stride * h - src_stride + w);
37
                     else {
38
                         int h2 = h;
39
                         uint8_t *dst2 = dst;
40
@@ -1392,6 +1398,8 @@
41
     /* shift buffer entries */
42
     for (i = flush_offset; i < MAX_PICTURE_COUNT /*s->encoding_delay + 1*/; i++)
43
         s->input_picturei - flush_offset = s->input_picturei;
44
+    for (int i = MAX_B_FRAMES + 1 - flush_offset; i <= MAX_B_FRAMES; i++)
45
+        s->input_picturei = NULL;
46
 
47
     s->input_pictureencoding_delay = (Picture*) pic;
48
 
49
@@ -1570,7 +1578,7 @@
50
                 goto fail;
51
             }
52
 
53
-            rd += (out_size * lambda2) >> (FF_LAMBDA_SHIFT - 3);
54
+            rd += (out_size * (uint64_t)lambda2) >> (FF_LAMBDA_SHIFT - 3);
55
         }
56
 
57
         /* get the delayed frames */
58
@@ -1579,7 +1587,7 @@
59
             ret = out_size;
60
             goto fail;
61
         }
62
-        rd += (out_size * lambda2) >> (FF_LAMBDA_SHIFT - 3);
63
+        rd += (out_size * (uint64_t)lambda2) >> (FF_LAMBDA_SHIFT - 3);
64
 
65
         rd += c->error0 + c->error1 + c->error2;
66
 
67
ffmpeg-3-3.4.13.tar.xz/libavcodec/parser.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/parser.c Changed
9
 
1
@@ -284,6 +284,7 @@
2
         }
3
         pc->buffer = new_buffer;
4
         memcpy(&pc->bufferpc->index, *buf, *buf_size);
5
+        memset(&pc->bufferpc->index + *buf_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
6
         pc->index += *buf_size;
7
         return -1;
8
     }
9
ffmpeg-3-3.4.13.tar.xz/libavcodec/pixlet.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/pixlet.c Changed
12
 
1
@@ -228,8 +228,8 @@
2
         if (cnt1 >= length) {
3
             cnt1 = get_bits(b, nbits);
4
         } else {
5
-            pfx = 14 + ((((uint64_t)(value - 14)) >> 32) & (value - 14));
6
-            if (pfx < 1 || pfx > 25)
7
+            pfx = FFMIN(value, 14);
8
+            if (pfx < 1)
9
                 return AVERROR_INVALIDDATA;
10
             cnt1 *= (1 << pfx) - 1;
11
             shbits = show_bits(b, pfx);
12
ffmpeg-3-3.4.13.tar.xz/libavcodec/proresdec2.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/proresdec2.c Changed
10
 
1
@@ -338,7 +338,7 @@
2
 
3
     for (pos = block_mask;;) {
4
         bits_left = gb->size_in_bits - re_index;
5
-        if (!bits_left || (bits_left < 32 && !SHOW_UBITS(re, gb, bits_left)))
6
+        if (bits_left <= 0 || (bits_left < 32 && !SHOW_UBITS(re, gb, bits_left)))
7
             break;
8
 
9
         DECODE_CODEWORD(run, run_to_cbFFMIN(run,  15), LAST_SKIP_BITS);
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/proresenc_kostya.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/proresenc_kostya.c Changed
20
 
1
@@ -3,9 +3,6 @@
2
  *
3
  * Copyright (c) 2012 Konstantin Shishkov
4
  *
5
- * This encoder appears to be based on Anatoliy Wassermans considering
6
- * similarities in the bugs.
7
- *
8
  * This file is part of FFmpeg.
9
  *
10
  * FFmpeg is free software; you can redistribute it and/or
11
@@ -308,7 +305,7 @@
12
 
13
 static void get_alpha_data(ProresContext *ctx, const uint16_t *src,
14
                            ptrdiff_t linesize, int x, int y, int w, int h,
15
-                           int16_t *blocks, int mbs_per_slice, int abits)
16
+                           uint16_t *blocks, int mbs_per_slice, int abits)
17
 {
18
     const int slice_width = 16 * mbs_per_slice;
19
     int i, j, copy_w, copy_h;
20
ffmpeg-3-3.4.13.tar.xz/libavcodec/r210enc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/r210enc.c Changed
10
 
1
@@ -31,7 +31,7 @@
2
 
3
     avctx->bits_per_coded_sample = 32;
4
     if (avctx->width > 0)
5
-        avctx->bit_rate = ff_guess_coded_bitrate(avctx) * aligned_width / avctx->width;
6
+        avctx->bit_rate = av_rescale(ff_guess_coded_bitrate(avctx), aligned_width, avctx->width);
7
 
8
     return 0;
9
 }
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/rangecoder.h -> ffmpeg-3-3.4.14.tar.xz/libavcodec/rangecoder.h Changed
27
 
1
@@ -54,7 +54,6 @@
2
 static inline void renorm_encoder(RangeCoder *c)
3
 {
4
     // FIXME: optimize
5
-    while (c->range < 0x100) {
6
         if (c->outstanding_byte < 0) {
7
             c->outstanding_byte = c->low >> 8;
8
         } else if (c->low <= 0xFF00) {
9
@@ -73,7 +72,6 @@
10
 
11
         c->low     = (c->low & 0xFF) << 8;
12
         c->range <<= 8;
13
-    }
14
 }
15
 
16
 static inline int get_rac_count(RangeCoder *c)
17
@@ -100,7 +98,8 @@
18
         *state   = c->one_state*state;
19
     }
20
 
21
-    renorm_encoder(c);
22
+    while (c->range < 0x100)
23
+        renorm_encoder(c);
24
 }
25
 
26
 static inline void refill(RangeCoder *c)
27
ffmpeg-3-3.4.13.tar.xz/libavcodec/shorten.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/shorten.c Changed
9
 
1
@@ -558,6 +558,7 @@
2
     buf               = &s->bitstreams->bitstream_index;
3
     buf_size         += s->bitstream_size;
4
     s->bitstream_size = buf_size;
5
+    memset(buf + buf_size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
6
 
7
     /* do not decode until buffer has at least max_framesize bytes or
8
      * the end of the file has been reached */
9
ffmpeg-3-3.4.13.tar.xz/libavcodec/snow.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/snow.c Changed
10
 
1
@@ -491,7 +491,7 @@
2
     FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->spatial_dwt_buffer,  width, height * sizeof(DWTELEM),  fail); //FIXME this does not belong here
3
     FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->temp_dwt_buffer,     width, sizeof(DWTELEM),  fail);
4
     FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->temp_idwt_buffer,    width, sizeof(IDWTELEM), fail);
5
-    FF_ALLOC_ARRAY_OR_GOTO(avctx,  s->run_buffer,          ((width + 1) >> 1), ((height + 1) >> 1) * sizeof(*s->run_buffer), fail);
6
+    FF_ALLOC_ARRAY_OR_GOTO(avctx,  s->run_buffer,          ((width + 1) >> 1) * ((height + 1) >> 1) + 1, sizeof(*s->run_buffer), fail);
7
 
8
     for(i=0; i<MAX_REF_FRAMES; i++) {
9
         for(j=0; j<MAX_REF_FRAMES; j++)
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/snowenc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/snowenc.c Changed
21
 
1
@@ -267,6 +267,7 @@
2
     int my_context= av_log2(2*FFABS(left->my - top->my));
3
     int s_context= 2*left->level + 2*top->level + tl->level + tr->level;
4
     int ref, best_ref, ref_score, ref_mx, ref_my;
5
+    int range = MAX_MV >> (1 + qpel);
6
 
7
     av_assert0(sizeof(s->block_state) >= 256);
8
     if(s->keyframe){
9
@@ -308,6 +309,11 @@
10
     c->xmax = - (x+1)*block_w + (w<<(LOG2_MB_SIZE - s->block_max_depth)) + 16-3;
11
     c->ymax = - (y+1)*block_w + (h<<(LOG2_MB_SIZE - s->block_max_depth)) + 16-3;
12
 
13
+    c->xmin = FFMAX(c->xmin,-range);
14
+    c->xmax = FFMIN(c->xmax, range);
15
+    c->ymin = FFMAX(c->ymin,-range);
16
+    c->ymax = FFMIN(c->ymax, range);
17
+
18
     if(P_LEFT0     > (c->xmax<<shift)) P_LEFT0    = (c->xmax<<shift);
19
     if(P_LEFT1     > (c->ymax<<shift)) P_LEFT1    = (c->ymax<<shift);
20
     if(P_TOP0      > (c->xmax<<shift)) P_TOP0     = (c->xmax<<shift);
21
ffmpeg-3-3.4.13.tar.xz/libavcodec/svq3.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/svq3.c Changed
11
 
1
@@ -1439,6 +1439,9 @@
2
     if (svq3_decode_slice_header(avctx))
3
         return -1;
4
 
5
+    if (avpkt->size < s->mb_width * s->mb_height / 8)
6
+        return AVERROR_INVALIDDATA;
7
+
8
     s->pict_type = s->slice_type;
9
 
10
     if (s->pict_type != AV_PICTURE_TYPE_B)
11
ffmpeg-3-3.4.13.tar.xz/libavcodec/takdsp.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/takdsp.c Changed
41
 
1
@@ -28,8 +28,8 @@
2
     int i;
3
 
4
     for (i = 0; i < length; i++) {
5
-        int32_t a = p1i;
6
-        int32_t b = p2i;
7
+        uint32_t a = p1i;
8
+        uint32_t b = p2i;
9
         p2i     = a + b;
10
     }
11
 }
12
@@ -39,8 +39,8 @@
13
     int i;
14
 
15
     for (i = 0; i < length; i++) {
16
-        int32_t a = p1i;
17
-        int32_t b = p2i;
18
+        uint32_t a = p1i;
19
+        uint32_t b = p2i;
20
         p1i     = b - a;
21
     }
22
 }
23
@@ -50,7 +50,7 @@
24
     int i;
25
 
26
     for (i = 0; i < length; i++) {
27
-        int32_t a = p1i;
28
+        uint32_t a = p1i;
29
         int32_t b = p2i;
30
         a        -= b >> 1;
31
         p1i     = a;
32
@@ -63,7 +63,7 @@
33
     int i;
34
 
35
     for (i = 0; i < length; i++) {
36
-        int32_t a = p1i;
37
+        uint32_t a = p1i;
38
         int32_t b = p2i;
39
         b         = (unsigned)((int)(dfactor * (unsigned)(b >> dshift) + 128) >> 8) << dshift;
40
         p1i     = b - a;
41
ffmpeg-3-3.4.13.tar.xz/libavcodec/targaenc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/targaenc.c Changed
30
 
1
@@ -21,6 +21,7 @@
2
 
3
 #include <string.h>
4
 
5
+#include "libavutil/avassert.h"
6
 #include "libavutil/imgutils.h"
7
 #include "libavutil/internal.h"
8
 #include "libavutil/intreadwrite.h"
9
@@ -88,10 +89,11 @@
10
     TargaContext *s = avctx->priv_data;
11
     int bpp, picsize, datasize = -1, ret, i;
12
     uint8_t *out;
13
+    int maxpal = 32*32;
14
 
15
     picsize = av_image_get_buffer_size(avctx->pix_fmt,
16
                                        avctx->width, avctx->height, 1);
17
-    if ((ret = ff_alloc_packet2(avctx, pkt, picsize + 45, 0)) < 0)
18
+    if ((ret = ff_alloc_packet2(avctx, pkt, picsize + 45 + maxpal, 0)) < 0)
19
         return ret;
20
 
21
     /* zero out the header and only set applicable fields */
22
@@ -124,6 +126,7 @@
23
             AV_WL24(pkt->data + 18 + 3 * i, *(uint32_t *)(p->data1 + i * 4));
24
             }
25
         out += 32 * pal_bpp;        /* skip past the palette we just output */
26
+        av_assert0(32 * pal_bpp <= maxpal);
27
         break;
28
         }
29
     case AV_PIX_FMT_GRAY8:
30
ffmpeg-3-3.4.13.tar.xz/libavcodec/tests/dct.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/tests/dct.c Changed
12
 
1
@@ -222,8 +222,8 @@
2
             v = abs(err);
3
             if (v > err_inf)
4
                 err_inf = v;
5
-            err2_matrixi += v * v;
6
-            err2 += v * v;
7
+            err2_matrixi += v * (int64_t)v;
8
+            err2 += v * (int64_t)v;
9
             sysErri += blocki - block1i;
10
             blockSumErr += v;
11
             if (abs(blocki) > maxout)
12
ffmpeg-3-3.4.13.tar.xz/libavcodec/tests/jpeg2000dwt.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/tests/jpeg2000dwt.c Changed
16
 
1
@@ -47,12 +47,12 @@
2
         return 1;
3
     }
4
     for (j = 0; j<MAX_W * MAX_W; j++) {
5
-        if (FFABS(arrayj - refj) > max_diff) {
6
+        if (FFABS(arrayj - (int64_t)refj) > max_diff) {
7
             fprintf(stderr, "missmatch at %d (%d != %d) decomp:%d border %d %d %d %d\n",
8
                     j, arrayj, refj,decomp_levels, border00, border01, border10, border11);
9
             return 2;
10
         }
11
-        err2 += (arrayj - refj) * (arrayj - refj);
12
+        err2 += (arrayj - refj) * (int64_t)(arrayj - refj);
13
         arrayj = refj;
14
     }
15
     ff_dwt_destroy(s);
16
ffmpeg-3-3.4.13.tar.xz/libavcodec/truemotion1.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/truemotion1.c Changed
13
 
1
@@ -407,6 +407,11 @@
2
         return AVERROR_PATCHWELCOME;
3
     }
4
 
5
+    if (s->h & 3) {
6
+        avpriv_request_sample(s->avctx, "Frame with height not being a multiple of 4");
7
+        return AVERROR_PATCHWELCOME;
8
+    }
9
+
10
     if (s->w != s->avctx->width || s->h != s->avctx->height ||
11
         new_pix_fmt != s->avctx->pix_fmt) {
12
         av_frame_unref(s->frame);
13
ffmpeg-3-3.4.13.tar.xz/libavcodec/tta.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/tta.c Changed
10
 
1
@@ -335,7 +335,7 @@
2
             if (s->channels > 1) {
3
                 int32_t *r = p - 1;
4
                 for (*p += *r / 2; r > (int32_t*)p - s->channels; r--)
5
-                    *r = *(r + 1) - *r;
6
+                    *r = *(r + 1) - (unsigned)*r;
7
             }
8
             cur_chan = 0;
9
             i++;
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/utils.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/utils.c Changed
32
 
1
@@ -372,6 +372,9 @@
2
         if (s->codec_id == AV_CODEC_ID_SVQ1) {
3
             w_align = 64;
4
             h_align = 64;
5
+        } else if (s->codec_id == AV_CODEC_ID_SNOW) {
6
+            w_align = 16;
7
+            h_align = 16;
8
         }
9
         break;
10
     case AV_PIX_FMT_RGB555:
11
@@ -1766,9 +1769,9 @@
12
     if (sr > 0) {
13
         /* calc from sample rate */
14
         if (id == AV_CODEC_ID_TTA)
15
-            return 256 * sr / 245;
16
+            return 256ll * sr / 245;
17
         else if (id == AV_CODEC_ID_DST)
18
-            return 588 * sr / 44100;
19
+            return 588ll * sr / 44100;
20
 
21
         if (ch > 0) {
22
             /* calc from sample rate and channels */
23
@@ -1878,7 +1881,7 @@
24
                 case AV_CODEC_ID_ADPCM_IMA_WAV:
25
                     if (bps < 2 || bps > 5)
26
                         return 0;
27
-                    tmp = blocks * (1LL + (ba - 4 * ch) / (bps * ch) * 8);
28
+                    tmp = blocks * (1LL + (ba - 4 * ch) / (bps * ch) * 8LL);
29
                     break;
30
                 case AV_CODEC_ID_ADPCM_IMA_DK3:
31
                     tmp = blocks * (((ba - 16LL) * 2 / 3 * 4) / ch);
32
ffmpeg-3-3.4.13.tar.xz/libavcodec/utvideoenc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/utvideoenc.c Changed
10
 
1
@@ -233,7 +233,7 @@
2
      * - Compression mode (none/huff)
3
      * And write the flags.
4
      */
5
-    c->flags  = (c->slices - 1) << 24;
6
+    c->flags  = (c->slices - 1U) << 24;
7
     c->flags |= 0 << 11; // bit field to signal interlaced encoding mode
8
     c->flags |= c->compression;
9
 
10
ffmpeg-3-3.4.13.tar.xz/libavcodec/vaapi_encode.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/vaapi_encode.c Changed
18
 
1
@@ -1561,12 +1561,14 @@
2
     }
3
 
4
     if (ctx->va_context != VA_INVALID_ID) {
5
-        vaDestroyContext(ctx->hwctx->display, ctx->va_context);
6
+        if (ctx->hwctx)
7
+            vaDestroyContext(ctx->hwctx->display, ctx->va_context);
8
         ctx->va_context = VA_INVALID_ID;
9
     }
10
 
11
     if (ctx->va_config != VA_INVALID_ID) {
12
-        vaDestroyConfig(ctx->hwctx->display, ctx->va_config);
13
+        if (ctx->hwctx)
14
+            vaDestroyConfig(ctx->hwctx->display, ctx->va_config);
15
         ctx->va_config = VA_INVALID_ID;
16
     }
17
 
18
ffmpeg-3-3.4.13.tar.xz/libavcodec/vble.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/vble.c Changed
11
 
1
@@ -193,6 +193,9 @@
2
     ctx->size = av_image_get_buffer_size(avctx->pix_fmt,
3
                                          avctx->width, avctx->height, 1);
4
 
5
+    if (ctx->size < 0)
6
+        return ctx->size;
7
+
8
     ctx->val = av_malloc_array(ctx->size, sizeof(*ctx->val));
9
 
10
     if (!ctx->val) {
11
ffmpeg-3-3.4.13.tar.xz/libavcodec/vc1dec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/vc1dec.c Changed
9
 
1
@@ -608,6 +608,7 @@
2
     av_freep(&v->hrd_rate);
3
     av_freep(&v->hrd_buffer);
4
     ff_mpv_common_end(&v->s);
5
+    memset(v->s.block_index, 0, sizeof(v->s.block_index));
6
     av_freep(&v->mv_type_mb_plane);
7
     av_freep(&v->direct_mb_plane);
8
     av_freep(&v->forward_mb_plane);
9
ffmpeg-3-3.4.13.tar.xz/libavcodec/vc2enc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/vc2enc.c Changed
36
 
1
@@ -187,7 +187,9 @@
2
 static av_always_inline void put_vc2_ue_uint(PutBitContext *pb, uint32_t val)
3
 {
4
     int i;
5
-    int pbits = 0, bits = 0, topbit = 1, maxval = 1;
6
+    int bits = 0;
7
+    unsigned topbit = 1, maxval = 1;
8
+    uint64_t pbits = 0;
9
 
10
     if (!val++) {
11
         put_bits(pb, 1, 1);
12
@@ -204,12 +206,13 @@
13
 
14
     for (i = 0; i < bits; i++) {
15
         topbit >>= 1;
16
+        av_assert2(pbits <= UINT64_MAX>>3);
17
         pbits <<= 2;
18
         if (val & topbit)
19
             pbits |= 0x1;
20
     }
21
 
22
-    put_bits(pb, bits*2 + 1, (pbits << 1) | 1);
23
+    put_bits64(pb, bits*2 + 1, (pbits << 1) | 1);
24
 }
25
 
26
 static av_always_inline int count_vc2_ue_uint(uint32_t val)
27
@@ -1022,7 +1025,7 @@
28
 
29
     s->slice_max_bytes = SSIZE_ROUND(s->slice_max_bytes);
30
     s->slice_min_bytes = s->slice_max_bytes - s->slice_max_bytes*(s->tolerance/100.0f);
31
-    if (s->slice_min_bytes < 0)
32
+    if (s->slice_min_bytes < 0 || s->slice_max_bytes > INT_MAX >> 3)
33
         return AVERROR(EINVAL);
34
 
35
     ret = encode_frame(s, avpkt, frame, aux_data, header_size, s->interlaced);
36
ffmpeg-3-3.4.13.tar.xz/libavcodec/vorbisdec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/vorbisdec.c Changed
11
 
1
@@ -1451,6 +1451,9 @@
2
                             unsigned step = FASTDIV(vr->partition_size << 1, dim << 1);
3
                             vorbis_codebook codebook = vc->codebooksvqbook;
4
 
5
+                            if (get_bits_left(gb) <= 0)
6
+                                return AVERROR_INVALIDDATA;
7
+
8
                             if (vr_type == 0) {
9
 
10
                                 voffs = voffset+j*vlen;
11
ffmpeg-3-3.4.13.tar.xz/libavcodec/vp8.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/vp8.c Changed
20
 
1
@@ -191,8 +191,16 @@
2
             return AVERROR(ENOMEM);
3
         }
4
 #if HAVE_THREADS
5
-        pthread_mutex_init(&s->thread_datai.lock, NULL);
6
-        pthread_cond_init(&s->thread_datai.cond, NULL);
7
+        ret = pthread_mutex_init(&s->thread_datai.lock, NULL);
8
+        if (ret) {
9
+            free_buffers(s);
10
+            return AVERROR(ret);
11
+        }
12
+        ret = pthread_cond_init(&s->thread_datai.cond, NULL);
13
+        if (ret) {
14
+            free_buffers(s);
15
+            return AVERROR(ret);
16
+        }
17
 #endif
18
     }
19
 
20
ffmpeg-3-3.4.13.tar.xz/libavcodec/vp9recon.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/vp9recon.c Changed
25
 
1
@@ -318,7 +318,11 @@
2
     // The arm/aarch64 _hv filters read one more row than what actually is
3
     // needed, so switch to emulated edge one pixel sooner vertically
4
     // (!!my * 5) than horizontally (!!mx * 4).
5
+    // The arm/aarch64 _h filters read one more pixel than what actually is
6
+    // needed, so switch to emulated edge if that would read beyond the bottom
7
+    // right block.
8
     if (x < !!mx * 3 || y < !!my * 3 ||
9
+        ((ARCH_AARCH64 || ARCH_ARM) && (x + !!mx * 5 > w - bw) && (y + !!my * 5 + 1 > h - bh)) ||
10
         x + !!mx * 4 > w - bw || y + !!my * 5 > h - bh) {
11
         s->vdsp.emulated_edge_mc(td->edge_emu_buffer,
12
                                  ref - !!my * 3 * ref_stride - !!mx * 3 * bytesperpixel,
13
@@ -357,7 +361,11 @@
14
     // The arm/aarch64 _hv filters read one more row than what actually is
15
     // needed, so switch to emulated edge one pixel sooner vertically
16
     // (!!my * 5) than horizontally (!!mx * 4).
17
+    // The arm/aarch64 _h filters read one more pixel than what actually is
18
+    // needed, so switch to emulated edge if that would read beyond the bottom
19
+    // right block.
20
     if (x < !!mx * 3 || y < !!my * 3 ||
21
+        ((ARCH_AARCH64 || ARCH_ARM) && (x + !!mx * 5 > w - bw) && (y + !!my * 5 + 1 > h - bh)) ||
22
         x + !!mx * 4 > w - bw || y + !!my * 5 > h - bh) {
23
         s->vdsp.emulated_edge_mc(td->edge_emu_buffer,
24
                                  ref_u - !!my * 3 * src_stride_u - !!mx * 3 * bytesperpixel,
25
ffmpeg-3-3.4.13.tar.xz/libavcodec/wavpackenc.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/wavpackenc.c Changed
19
 
1
@@ -1990,7 +1990,7 @@
2
                 put_bits(pb, 31, 0x7FFFFFFF);
3
                 cbits -= 31;
4
             } else {
5
-                put_bits(pb, cbits, (1 << cbits) - 1);
6
+                put_bits(pb, cbits, (1U << cbits) - 1);
7
                 cbits = 0;
8
             }
9
         } while (cbits);
10
@@ -2019,7 +2019,7 @@
11
                     put_bits(pb, 31, 0x7FFFFFFF);
12
                     cbits -= 31;
13
                 } else {
14
-                    put_bits(pb, cbits, (1 << cbits) - 1);
15
+                    put_bits(pb, cbits, (1U << cbits) - 1);
16
                     cbits = 0;
17
                 }
18
             } while (cbits);
19
ffmpeg-3-3.4.13.tar.xz/libavcodec/webp.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/webp.c Changed
11
 
1
@@ -739,6 +739,9 @@
2
             ref_x = FFMAX(0, ref_x);
3
             ref_y = FFMAX(0, ref_y);
4
 
5
+            if (ref_y == y && ref_x >= x)
6
+                return AVERROR_INVALIDDATA;
7
+
8
             /* copy pixels
9
              * source and dest regions can overlap and wrap lines, so just
10
              * copy per-pixel */
11
ffmpeg-3-3.4.13.tar.xz/libavcodec/wmavoice.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/wmavoice.c Changed
20
 
1
@@ -1487,6 +1487,8 @@
2
     /* Parse frame type ("frame header"), see frame_descs */
3
     int bd_idx = s->vbm_treeget_vlc2(gb, frame_type_vlc.table, 6, 3), block_nsamples;
4
 
5
+    pitch0 = INT_MAX;
6
+
7
     if (bd_idx < 0) {
8
         av_log(ctx, AV_LOG_ERROR,
9
                "Invalid frame type VLC code, skipping\n");
10
@@ -1604,6 +1606,9 @@
11
         double i_lspsMAX_LSPS;
12
         float lpcsMAX_LSPS;
13
 
14
+        if(frame_descsbd_idx.fcb_type >= FCB_TYPE_AW_PULSES && pitch0 == INT_MAX)
15
+            return AVERROR_INVALIDDATA;
16
+
17
         for (n = 0; n < s->lsps; n++) // LSF -> LSP
18
             i_lspsn = cos(0.5 * (prev_lspsn + lspsn));
19
         ff_acelp_lspd2lpc(i_lsps, lpcs, s->lsps >> 1);
20
ffmpeg-3-3.4.13.tar.xz/libavcodec/xan.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/xan.c Changed
11
 
1
@@ -614,6 +614,9 @@
2
         return AVERROR_INVALIDDATA;
3
     }
4
 
5
+    if (buf_size < 9)
6
+        return AVERROR_INVALIDDATA;
7
+
8
     if ((ret = ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF)) < 0)
9
         return ret;
10
 
11
ffmpeg-3-3.4.13.tar.xz/libavcodec/xsubdec.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/xsubdec.c Changed
26
 
1
@@ -57,6 +57,7 @@
2
     int64_t packet_time = 0;
3
     GetBitContext gb;
4
     int has_alpha = avctx->codec_tag == MKTAG('D','X','S','A');
5
+    int64_t start_display_time, end_display_time;
6
 
7
     // check that at least header fits
8
     if (buf_size < 27 + 7 * 2 + 4 * (3 + has_alpha)) {
9
@@ -71,8 +72,14 @@
10
     }
11
     if (avpkt->pts != AV_NOPTS_VALUE)
12
         packet_time = av_rescale_q(avpkt->pts, AV_TIME_BASE_Q, (AVRational){1, 1000});
13
-    sub->start_display_time = parse_timecode(buf +  1, packet_time);
14
-    sub->end_display_time   = parse_timecode(buf + 14, packet_time);
15
+
16
+    sub->start_display_time = start_display_time = parse_timecode(buf +  1, packet_time);
17
+    sub->end_display_time   = end_display_time   = parse_timecode(buf + 14, packet_time);
18
+    if (sub->start_display_time != start_display_time ||
19
+        sub->  end_display_time !=   end_display_time) {
20
+        av_log(avctx, AV_LOG_ERROR, "time code not representable in 32bit\n");
21
+        return -1;
22
+    }
23
     buf += 27;
24
 
25
     // read header
26
ffmpeg-3-3.4.13.tar.xz/libavcodec/xvididct.c -> ffmpeg-3-3.4.14.tar.xz/libavcodec/xvididct.c Changed
78
 
1
@@ -56,37 +56,37 @@
2
 
3
 static int idct_row(short *in, const int *const tab, int rnd)
4
 {
5
-    const int c1 = tab0;
6
-    const int c2 = tab1;
7
-    const int c3 = tab2;
8
-    const int c4 = tab3;
9
-    const int c5 = tab4;
10
-    const int c6 = tab5;
11
-    const int c7 = tab6;
12
+    const unsigned c1 = tab0;
13
+    const unsigned c2 = tab1;
14
+    const unsigned c3 = tab2;
15
+    const unsigned c4 = tab3;
16
+    const unsigned c5 = tab4;
17
+    const unsigned c6 = tab5;
18
+    const unsigned c7 = tab6;
19
 
20
     const int right = in5 | in6 | in7;
21
     const int left  = in1 | in2 | in3;
22
     if (!(right | in4)) {
23
         const int k = c4 * in0 + rnd;
24
         if (left) {
25
-            const int a0 = k + c2 * in2;
26
-            const int a1 = k + c6 * in2;
27
-            const int a2 = k - c6 * in2;
28
-            const int a3 = k - c2 * in2;
29
+            const unsigned a0 = k + c2 * in2;
30
+            const unsigned a1 = k + c6 * in2;
31
+            const unsigned a2 = k - c6 * in2;
32
+            const unsigned a3 = k - c2 * in2;
33
 
34
             const int b0 = c1 * in1 + c3 * in3;
35
             const int b1 = c3 * in1 - c7 * in3;
36
             const int b2 = c5 * in1 - c1 * in3;
37
             const int b3 = c7 * in1 - c5 * in3;
38
 
39
-            in0 = (a0 + b0) >> ROW_SHIFT;
40
-            in1 = (a1 + b1) >> ROW_SHIFT;
41
-            in2 = (a2 + b2) >> ROW_SHIFT;
42
-            in3 = (a3 + b3) >> ROW_SHIFT;
43
-            in4 = (a3 - b3) >> ROW_SHIFT;
44
-            in5 = (a2 - b2) >> ROW_SHIFT;
45
-            in6 = (a1 - b1) >> ROW_SHIFT;
46
-            in7 = (a0 - b0) >> ROW_SHIFT;
47
+            in0 = (int)(a0 + b0) >> ROW_SHIFT;
48
+            in1 = (int)(a1 + b1) >> ROW_SHIFT;
49
+            in2 = (int)(a2 + b2) >> ROW_SHIFT;
50
+            in3 = (int)(a3 + b3) >> ROW_SHIFT;
51
+            in4 = (int)(a3 - b3) >> ROW_SHIFT;
52
+            in5 = (int)(a2 - b2) >> ROW_SHIFT;
53
+            in6 = (int)(a1 - b1) >> ROW_SHIFT;
54
+            in7 = (int)(a0 - b0) >> ROW_SHIFT;
55
         } else {
56
             const int a0 = k >> ROW_SHIFT;
57
             if (a0) {
58
@@ -102,8 +102,8 @@
59
                 return 0;
60
         }
61
     } else if (!(left | right)) {
62
-        const int a0 = (rnd + c4 * (in0 + in4)) >> ROW_SHIFT;
63
-        const int a1 = (rnd + c4 * (in0 - in4)) >> ROW_SHIFT;
64
+        const int a0 = (int)(rnd + c4 * (in0 + in4)) >> ROW_SHIFT;
65
+        const int a1 = (int)(rnd + c4 * (in0 - in4)) >> ROW_SHIFT;
66
 
67
         in0 = a0;
68
         in3 = a0;
69
@@ -114,7 +114,7 @@
70
         in5 = a1;
71
         in6 = a1;
72
     } else {
73
-        const int k  = c4 * in0 + rnd;
74
+        const unsigned int k  = c4 * in0 + rnd;
75
         const unsigned int a0 = k + c2 * in2 + c4 * in4 + c6 * in6;
76
         const unsigned int a1 = k + c6 * in2 - c4 * in4 - c2 * in6;
77
         const unsigned int a2 = k - c6 * in2 - c4 * in4 + c2 * in6;
78
ffmpeg-3-3.4.13.tar.xz/libavdevice/dshow.c -> ffmpeg-3-3.4.14.tar.xz/libavdevice/dshow.c Changed
23
 
1
@@ -777,10 +777,10 @@
2
             goto error;
3
         }
4
     }
5
-        if (ctx->device_filterotherDevType) {
6
+    if (ctx->device_filterotherDevType) {
7
         // avoid adding add two instances of the same device to the graph, one for video, one for audio
8
         // a few devices don't support this (could also do this check earlier to avoid double crossbars, etc. but they seem OK)
9
-        if (strcmp(device_filter_unique_name, ctx->device_unique_nameotherDevType) == 0) {
10
+        if (!device_filter_unique_name || strcmp(device_filter_unique_name, ctx->device_unique_nameotherDevType) == 0) {
11
           av_log(avctx, AV_LOG_DEBUG, "reusing previous graph capture filter... %s\n", device_filter_unique_name);
12
           IBaseFilter_Release(device_filter);
13
           device_filter = ctx->device_filterotherDevType;
14
@@ -872,7 +872,7 @@
15
         av_log(avctx, AV_LOG_ERROR, "Could not create CaptureGraphBuilder2\n");
16
         goto error;
17
     }
18
-    ICaptureGraphBuilder2_SetFiltergraph(graph_builder2, graph);
19
+    r = ICaptureGraphBuilder2_SetFiltergraph(graph_builder2, graph);
20
     if (r != S_OK) {
21
         av_log(avctx, AV_LOG_ERROR, "Could not set graph for CaptureGraphBuilder2\n");
22
         goto error;
23
ffmpeg-3-3.4.13.tar.xz/libavdevice/dshow_filter.c -> ffmpeg-3-3.4.14.tar.xz/libavdevice/dshow_filter.c Changed
10
 
1
@@ -146,7 +146,7 @@
2
 
3
     this->info.pGraph = graph;
4
     if (name)
5
-        wcscpy(this->info.achName, name);
6
+        wcscpy_s(this->info.achName, sizeof(this->info.achName) / sizeof(wchar_t), name);
7
 
8
     return S_OK;
9
 }
10
ffmpeg-3-3.4.13.tar.xz/libavfilter/af_alimiter.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/af_alimiter.c Changed
16
 
1
@@ -176,10 +176,11 @@
2
             } else {
3
                 for (i = s->nextiter; i < s->nextiter + s->nextlen; i++) {
4
                     int j = i % buffer_size;
5
-                    double ppeak, pdelta;
6
+                    double ppeak = 0, pdelta;
7
 
8
-                    ppeak = fabs(buffernextposj) > fabs(buffernextposj + 1) ?
9
-                            fabs(buffernextposj) : fabs(buffernextposj + 1);
10
+                    if (nextposj >= 0)
11
+                        ppeak = fabs(buffernextposj) > fabs(buffernextposj + 1) ?
12
+                                fabs(buffernextposj) : fabs(buffernextposj + 1);
13
                     pdelta = (limit / peak - limit / ppeak) / (((buffer_size - nextposj + s->pos) % buffer_size) / channels);
14
                     if (pdelta < nextdeltaj) {
15
                         nextdeltaj = pdelta;
16
ffmpeg-3-3.4.13.tar.xz/libavfilter/af_pan.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/af_pan.c Changed
25
 
1
@@ -125,6 +125,14 @@
2
     if (ret < 0)
3
         goto fail;
4
 
5
+    if (pan->nb_output_channels > MAX_CHANNELS) {
6
+        av_log(ctx, AV_LOG_ERROR,
7
+               "af_pan supports a maximum of %d channels. "
8
+               "Feel free to ask for a higher limit.\n", MAX_CHANNELS);
9
+        ret = AVERROR_PATCHWELCOME;
10
+        goto fail;
11
+    }
12
+
13
     /* parse channel specifications */
14
     while ((arg = arg0 = av_strtok(NULL, "|", &tokenizer))) {
15
         /* channel name */
16
@@ -169,7 +177,7 @@
17
         sign = 1;
18
         while (1) {
19
             gain = 1;
20
-            if (sscanf(arg, "%lf%n *%n", &gain, &len, &len))
21
+            if (sscanf(arg, "%lf%n *%n", &gain, &len, &len) >= 1)
22
                 arg += len;
23
             if (parse_channel_name(&arg, &in_ch_id, &named)){
24
                 av_log(ctx, AV_LOG_ERROR,
25
ffmpeg-3-3.4.13.tar.xz/libavfilter/af_stereowiden.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/af_stereowiden.c Changed
10
 
1
@@ -74,6 +74,8 @@
2
 
3
     s->length = s->delay * inlink->sample_rate / 1000;
4
     s->length *= 2;
5
+    if (s->length == 0)
6
+        return AVERROR(EINVAL);
7
     s->buffer = av_calloc(s->length, sizeof(*s->buffer));
8
     if (!s->buffer)
9
         return AVERROR(ENOMEM);
10
ffmpeg-3-3.4.13.tar.xz/libavfilter/signature_lookup.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/signature_lookup.c Changed
94
 
1
@@ -37,6 +37,16 @@
2
 #define STATUS_END_REACHED 1
3
 #define STATUS_BEGIN_REACHED 2
4
 
5
+static void sll_free(MatchingInfo **sll)
6
+{
7
+    while (*sll) {
8
+        MatchingInfo *tmp = *sll;
9
+        *sll = tmp->next;
10
+        tmp->next = NULL;
11
+        av_free(tmp);
12
+    }
13
+}
14
+
15
 static void fill_l1distlut(uint8_t lut)
16
 {
17
     int i, j, tmp_i, tmp_j,count;
18
@@ -289,6 +299,11 @@
19
                         if (!c->next)
20
                             av_log(ctx, AV_LOG_FATAL, "Could not allocate memory");
21
                         c = c->next;
22
+
23
+                    }
24
+                    if (!c) {
25
+                        sll_free(&cands);
26
+                        goto error;
27
                     }
28
                     c->framerateratio = (i+1.0) / 30;
29
                     c->score = hspaceij.score;
30
@@ -305,6 +320,7 @@
31
             }
32
         }
33
     }
34
+    error:
35
     for (i = 0; i < MAX_FRAMERATE; i++) {
36
         av_freep(&hspacei);
37
     }
38
@@ -437,14 +453,14 @@
39
                 }
40
 
41
                 if (tolerancecount > 2) {
42
-                    a = aprev;
43
-                    b = bprev;
44
                     if (dir == DIR_NEXT) {
45
                         /* turn around */
46
                         a = infos->first;
47
                         b = infos->second;
48
                         dir = DIR_PREV;
49
                     } else {
50
+                        a = aprev;
51
+                        b = bprev;
52
                         break;
53
                     }
54
                 }
55
@@ -485,10 +501,10 @@
56
             continue; /* matching sequence is too short */
57
         if ((double) goodfcount / (double) fcount < sc->thit)
58
             continue;
59
-        if ((double) goodfcount*0.5 < FFMAX(gooda, goodb))
60
+        if ((double) goodfcount*0.5 <= FFMAX(gooda, goodb))
61
             continue;
62
 
63
-        meandist = (double) goodfcount / (double) distsum;
64
+        meandist = (double) distsum / (double) goodfcount;
65
 
66
         if (meandist < minmeandist ||
67
                 status == STATUS_END_REACHED | STATUS_BEGIN_REACHED ||
68
@@ -520,16 +536,6 @@
69
     return bestmatch;
70
 }
71
 
72
-static void sll_free(MatchingInfo *sll)
73
-{
74
-    void *tmp;
75
-    while (sll) {
76
-        tmp = sll;
77
-        sll = sll->next;
78
-        av_freep(&tmp);
79
-    }
80
-}
81
-
82
 static MatchingInfo lookup_signatures(AVFilterContext *ctx, SignatureContext *sc, StreamContext *first, StreamContext *second, int mode)
83
 {
84
     CoarseSignature *cs, *cs2;
85
@@ -572,7 +578,7 @@
86
                    "ratio %f, offset %d, score %d, %d frames matching\n",
87
                    bestmatch.first->index, bestmatch.second->index,
88
                    bestmatch.framerateratio, bestmatch.offset, bestmatch.score, bestmatch.matchframes);
89
-            sll_free(infos);
90
+            sll_free(&infos);
91
         }
92
     } while (find_next_coarsecandidate(sc, second->coarsesiglist, &cs, &cs2, 0) && !bestmatch.whole);
93
     return bestmatch;
94
ffmpeg-3-3.4.13.tar.xz/libavfilter/vf_avgblur.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/vf_avgblur.c Changed
10
 
1
@@ -273,7 +273,7 @@
2
         const int width = s->planewidthplane;
3
 
4
         if (!(s->planes & (1 << plane))) {
5
-            if (out != in)
6
+            if (out->dataplane != in->dataplane)
7
                 av_image_copy_plane(out->dataplane, out->linesizeplane,
8
                                     in->dataplane, in->linesizeplane,
9
                                     width * ((s->depth + 7) / 8), height);
10
ffmpeg-3-3.4.13.tar.xz/libavfilter/vf_bwdif.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/vf_bwdif.c Changed
18
 
1
@@ -505,12 +505,13 @@
2
     if(s->mode&1)
3
         link->frame_rate = av_mul_q(link->src->inputs0->frame_rate, (AVRational){2,1});
4
 
5
-    if (link->w < 3 || link->h < 4) {
6
-        av_log(ctx, AV_LOG_ERROR, "Video of less than 3 columns or 4 lines is not supported\n");
7
+    s->csp = av_pix_fmt_desc_get(link->format);
8
+
9
+    if (AV_CEIL_RSHIFT(link->w, s->csp->log2_chroma_w) < 3 || AV_CEIL_RSHIFT(link->h, s->csp->log2_chroma_h) < 4) {
10
+        av_log(ctx, AV_LOG_ERROR, "Video with planes less than 3 columns or 4 lines is not supported\n");
11
         return AVERROR(EINVAL);
12
     }
13
 
14
-    s->csp = av_pix_fmt_desc_get(link->format);
15
     if (s->csp->comp0.depth > 8) {
16
         s->filter_intra = filter_intra_16bit;
17
         s->filter_line  = filter_line_c_16bit;
18
ffmpeg-3-3.4.13.tar.xz/libavfilter/vf_gradfun.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/vf_gradfun.c Changed
10
 
1
@@ -92,7 +92,7 @@
2
     for (y = 0; y < r; y++)
3
         ctx->blur_line(dc, buf + y * bstride, buf + (y - 1) * bstride, src + 2 * y * src_linesize, src_linesize, width / 2);
4
     for (;;) {
5
-        if (y < height - r) {
6
+        if (y + 1 < height - r) {
7
             int mod = ((y + r) / 2) % r;
8
             uint16_t *buf0 = buf + mod * bstride;
9
             uint16_t *buf1 = buf + (mod ? mod - 1 : r - 1) * bstride;
10
ffmpeg-3-3.4.13.tar.xz/libavfilter/vf_minterpolate.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/vf_minterpolate.c Changed
17
 
1
@@ -1062,8 +1062,13 @@
2
     pts = av_rescale(avf_out->pts, (int64_t) ALPHA_MAX * outlink->time_base.num * inlink->time_base.den,
3
                                    (int64_t)             outlink->time_base.den * inlink->time_base.num);
4
 
5
-    alpha = (pts - mi_ctx->frames1.avf->pts * ALPHA_MAX) / (mi_ctx->frames2.avf->pts - mi_ctx->frames1.avf->pts);
6
-    alpha = av_clip(alpha, 0, ALPHA_MAX);
7
+    if (mi_ctx->frames2.avf->pts > mi_ctx->frames1.avf->pts) {
8
+        alpha = (pts - mi_ctx->frames1.avf->pts * ALPHA_MAX) / (mi_ctx->frames2.avf->pts - mi_ctx->frames1.avf->pts);
9
+        alpha = av_clip(alpha, 0, ALPHA_MAX);
10
+    } else {
11
+        av_log(ctx, AV_LOG_DEBUG, "duplicate input PTS detected\n");
12
+        alpha = 0;
13
+    }
14
 
15
     if (alpha == 0 || alpha == ALPHA_MAX) {
16
         av_frame_copy(avf_out, alpha ? mi_ctx->frames2.avf : mi_ctx->frames1.avf);
17
ffmpeg-3-3.4.13.tar.xz/libavfilter/vf_rotate.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/vf_rotate.c Changed
12
 
1
@@ -295,7 +295,9 @@
2
     double res;
3
     char *expr;
4
 
5
-    ff_draw_init(&rot->draw, inlink->format, 0);
6
+    ret = ff_draw_init(&rot->draw, inlink->format, 0);
7
+    if (ret < 0)
8
+        return ret;
9
     ff_draw_color(&rot->draw, &rot->color, rot->fillcolor);
10
 
11
     rot->hsub = pixdesc->log2_chroma_w;
12
ffmpeg-3-3.4.13.tar.xz/libavfilter/vf_signature.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/vf_signature.c Changed
11
 
1
@@ -390,6 +390,9 @@
2
     FILE* f;
3
     unsigned int pot35 = { 3*3*3*3, 3*3*3, 3*3, 3, 1 };
4
 
5
+    if (!sc->coarseend->last)
6
+        return AVERROR(EINVAL); // No frames ?
7
+
8
     f = fopen(filename, "w");
9
     if (!f) {
10
         int err = AVERROR(EINVAL);
11
ffmpeg-3-3.4.13.tar.xz/libavfilter/vf_swaprect.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/vf_swaprect.c Changed
47
 
1
@@ -18,6 +18,7 @@
2
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
3
  */
4
 
5
+#include "libavutil/avassert.h"
6
 #include "libavutil/avstring.h"
7
 #include "libavutil/eval.h"
8
 #include "libavutil/imgutils.h"
9
@@ -146,10 +147,10 @@
10
     w = dw; h = dh; x10 = dx1; y10 = dy1; x20 = dx2; y20 = dy2;
11
 
12
     x10 = av_clip(x10, 0, inlink->w - 1);
13
-    y10 = av_clip(y10, 0, inlink->w - 1);
14
+    y10 = av_clip(y10, 0, inlink->h - 1);
15
 
16
     x20 = av_clip(x20, 0, inlink->w - 1);
17
-    y20 = av_clip(y20, 0, inlink->w - 1);
18
+    y20 = av_clip(y20, 0, inlink->h - 1);
19
 
20
     ah1 = ah2 = FF_CEIL_RSHIFT(h, s->desc->log2_chroma_h);
21
     ah0 = ah3 = h;
22
@@ -169,16 +170,20 @@
23
     lw1 = lw2 = FF_CEIL_RSHIFT(inlink->w, s->desc->log2_chroma_w);
24
     lw0 = lw3 = inlink->w;
25
 
26
-    x11 = x12 = FF_CEIL_RSHIFT(x10, s->desc->log2_chroma_w);
27
+    x11 = x12 = (x10 >> s->desc->log2_chroma_w);
28
     x10 = x13 = x10;
29
-    y11 = y12 = FF_CEIL_RSHIFT(y10, s->desc->log2_chroma_h);
30
+    y11 = y12 = (y10 >> s->desc->log2_chroma_h);
31
     y10 = y13 = y10;
32
 
33
-    x21 = x22 = FF_CEIL_RSHIFT(x20, s->desc->log2_chroma_w);
34
+    x21 = x22 = (x20 >> s->desc->log2_chroma_w);
35
     x20 = x23 = x20;
36
-    y21 = y22 = FF_CEIL_RSHIFT(y20, s->desc->log2_chroma_h);
37
+    y21 = y22 = (y20 >> s->desc->log2_chroma_h);
38
     y20 = y23 = y20;
39
 
40
+
41
+    av_assert0(FFMAX(x11, x21) + pw1 <= lw1);
42
+    av_assert0(FFMAX(y11, y21) + ph1 <= lh1);
43
+
44
     for (p = 0; p < s->nb_planes; p++) {
45
         if (php == ahp && pwp == awp) {
46
             uint8_t *src = in->datap + y1p * in->linesizep + x1p * s->pixstepsp;
47
ffmpeg-3-3.4.13.tar.xz/libavfilter/vf_vidstabdetect.c -> ffmpeg-3-3.4.14.tar.xz/libavfilter/vf_vidstabdetect.c Changed
10
 
1
@@ -175,7 +175,7 @@
2
     }
3
     if (vsMotionDetection(md, &localmotions, &frame) != VS_OK) {
4
         av_log(ctx, AV_LOG_ERROR, "motion detection failed");
5
-        return AVERROR(AVERROR_EXTERNAL);
6
+        return AVERROR_EXTERNAL;
7
     } else {
8
         if (vsWriteToFile(md, s->f, &localmotions) != VS_OK) {
9
             int ret = AVERROR(errno);
10
ffmpeg-3-3.4.13.tar.xz/libavformat/ape.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/ape.c Changed
10
 
1
@@ -315,7 +315,7 @@
2
         final_size -= final_size & 3;
3
     }
4
     if (file_size <= 0 || final_size <= 0)
5
-        final_size = ape->finalframeblocks * 8;
6
+        final_size = ape->finalframeblocks * 8LL;
7
     ape->framesape->totalframes - 1.size = final_size;
8
 
9
     for (i = 0; i < ape->totalframes; i++) {
10
ffmpeg-3-3.4.13.tar.xz/libavformat/apetag.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/apetag.c Changed
11
 
1
@@ -129,7 +129,8 @@
2
 
3
     avio_seek(pb, file_size - APE_TAG_FOOTER_BYTES, SEEK_SET);
4
 
5
-    avio_read(pb, buf, 8);     /* APETAGEX */
6
+    if(avio_read(pb, buf, 8) != 8)     /* APETAGEX */
7
+        return 0;
8
     if (strncmp(buf, APE_TAG_PREAMBLE, 8)) {
9
         return 0;
10
     }
11
ffmpeg-3-3.4.13.tar.xz/libavformat/asfdec_o.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/asfdec_o.c Changed
11
 
1
@@ -981,6 +981,9 @@
2
     int64_t offset;
3
     uint64_t size = avio_rl64(pb);
4
 
5
+    if (size < 24)
6
+        return AVERROR_INVALIDDATA;
7
+
8
     // simple index objects should be ordered by stream number, this loop tries to find
9
     // the first not indexed video stream
10
     for (i = 0; i < asf->nb_streams; i++) {
11
ffmpeg-3-3.4.13.tar.xz/libavformat/avr.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/avr.c Changed
11
 
1
@@ -70,6 +70,9 @@
2
     avio_skip(s->pb, 1); // replay speed
3
 
4
     st->codecpar->sample_rate = avio_rb24(s->pb);
5
+    if (st->codecpar->sample_rate == 0)
6
+        return AVERROR_INVALIDDATA;
7
+
8
     avio_skip(s->pb, 4 * 3);
9
     avio_skip(s->pb, 2 * 3);
10
     avio_skip(s->pb, 20);
11
ffmpeg-3-3.4.13.tar.xz/libavformat/avs.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/avs.c Changed
12
 
1
@@ -135,6 +135,10 @@
2
         return 0;    /* this indicate EOS */
3
     if (ret < 0)
4
         return ret;
5
+    if (size != (int)size) {
6
+        av_packet_unref(pkt);
7
+        return AVERROR(EDOM);
8
+    }
9
 
10
     pkt->stream_index = avs->st_audio->index;
11
     pkt->flags |= AV_PKT_FLAG_KEY;
12
ffmpeg-3-3.4.13.tar.xz/libavformat/cafdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/cafdec.c Changed
20
 
1
@@ -222,7 +222,7 @@
2
         }
3
     }
4
 
5
-    if (avio_tell(pb) - ccount > size) {
6
+    if (avio_tell(pb) - ccount > size || size > INT64_MAX - ccount) {
7
         av_log(s, AV_LOG_ERROR, "error reading packet table\n");
8
         return AVERROR_INVALIDDATA;
9
     }
10
@@ -294,6 +294,9 @@
11
             avio_skip(pb, 4); /* edit count */
12
             caf->data_start = avio_tell(pb);
13
             caf->data_size  = size < 0 ? -1 : size - 4;
14
+            if (caf->data_start < 0 || caf->data_size > INT64_MAX - caf->data_start)
15
+                return AVERROR_INVALIDDATA;
16
+
17
             if (caf->data_size > 0 && (pb->seekable & AVIO_SEEKABLE_NORMAL))
18
                 avio_skip(pb, caf->data_size);
19
             found_data = 1;
20
ffmpeg-3-3.4.13.tar.xz/libavformat/dxa.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/dxa.c Changed
15
 
1
@@ -119,10 +119,12 @@
2
             avio_skip(pb, fsize);
3
         }
4
         c->bpc = (fsize + (int64_t)c->frames - 1) / c->frames;
5
+        if (c->bpc < 0)
6
+            return AVERROR_INVALIDDATA;
7
         if(ast->codecpar->block_align) {
8
             if (c->bpc > INT_MAX - ast->codecpar->block_align + 1)
9
                 return AVERROR_INVALIDDATA;
10
-            c->bpc = ((c->bpc + ast->codecpar->block_align - 1) / ast->codecpar->block_align) * ast->codecpar->block_align;
11
+            c->bpc = ((c->bpc - 1 + ast->codecpar->block_align) / ast->codecpar->block_align) * ast->codecpar->block_align;
12
         }
13
         c->bytes_left = fsize;
14
         c->wavpos = avio_tell(pb);
15
ffmpeg-3-3.4.13.tar.xz/libavformat/flacdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/flacdec.c Changed
10
 
1
@@ -66,7 +66,7 @@
2
     /* process metadata blocks */
3
     while (!avio_feof(s->pb) && !metadata_last) {
4
         if (avio_read(s->pb, header, 4) != 4)
5
-            return AVERROR(AVERROR_INVALIDDATA);
6
+            return AVERROR_INVALIDDATA;
7
         flac_parse_block_header(header, &metadata_last, &metadata_type,
8
                                    &metadata_size);
9
         switch (metadata_type) {
10
ffmpeg-3-3.4.13.tar.xz/libavformat/format.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/format.c Changed
26
 
1
@@ -272,6 +272,7 @@
2
     int ret = 0, probe_size, buf_offset = 0;
3
     int score = 0;
4
     int ret2;
5
+    int eof = 0;
6
 
7
     if (!max_probe_size)
8
         max_probe_size = PROBE_BUF_MAX;
9
@@ -303,7 +304,7 @@
10
     }
11
 #endif
12
 
13
-    for (probe_size = PROBE_BUF_MIN; probe_size <= max_probe_size && !*fmt;
14
+    for (probe_size = PROBE_BUF_MIN; probe_size <= max_probe_size && !*fmt && !eof;
15
          probe_size = FFMIN(probe_size << 1,
16
                             FFMAX(max_probe_size, probe_size + 1))) {
17
         score = probe_size < max_probe_size ? AVPROBE_SCORE_RETRY : 0;
18
@@ -319,6 +320,7 @@
19
 
20
             score = 0;
21
             ret   = 0;          /* error was end of file, nothing read */
22
+            eof   = 1;
23
         }
24
         buf_offset += ret;
25
         if (buf_offset < offset)
26
ffmpeg-3-3.4.13.tar.xz/libavformat/hnm.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/hnm.c Changed
19
 
1
@@ -141,6 +141,8 @@
2
     if (hnm->superchunk_remaining == 0) {
3
         /* parse next superchunk */
4
         superchunk_size = avio_rl24(pb);
5
+        if (superchunk_size < 4)
6
+            return AVERROR_INVALIDDATA;
7
         avio_skip(pb, 1);
8
 
9
         hnm->superchunk_remaining = superchunk_size - 4;
10
@@ -151,7 +153,7 @@
11
     chunk_id = avio_rl16(pb);
12
     avio_skip(pb, 2);
13
 
14
-    if (chunk_size > hnm->superchunk_remaining || !chunk_size) {
15
+    if (chunk_size > hnm->superchunk_remaining || chunk_size < 8) {
16
         av_log(s, AV_LOG_ERROR,
17
                "invalid chunk size: %"PRIu32", offset: %"PRId64"\n",
18
                chunk_size, avio_tell(pb));
19
ffmpeg-3-3.4.13.tar.xz/libavformat/icodec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/icodec.c Changed
10
 
1
@@ -204,7 +204,7 @@
2
             AV_WL32(buf + 32, image->nb_pal);
3
         }
4
 
5
-        if (image->nb_pal > INT_MAX / 4 - 14 - 40)
6
+        if (image->nb_pal > INT_MAX / 4 - 14 - 40U)
7
             return AVERROR_INVALIDDATA;
8
 
9
         AV_WL32(buf - 4, 14 + 40 + image->nb_pal * 4);
10
ffmpeg-3-3.4.13.tar.xz/libavformat/id3v2.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/id3v2.c Changed
10
 
1
@@ -364,7 +364,7 @@
2
     int encoding;
3
     int ok = 0;
4
 
5
-    if (taglen < 1)
6
+    if (taglen < 4)
7
         goto error;
8
 
9
     encoding = avio_r8(pb);
10
ffmpeg-3-3.4.13.tar.xz/libavformat/iff.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/iff.c Changed
11
 
1
@@ -359,6 +359,9 @@
2
     uint64_t chunk_pos, data_pos, data_size;
3
     int ret = AVERROR_EOF;
4
 
5
+    if (s->nb_streams < 1)
6
+        return AVERROR_INVALIDDATA;
7
+
8
     while (!avio_feof(pb)) {
9
         chunk_pos = avio_tell(pb);
10
         if (chunk_pos >= iff->body_end)
11
ffmpeg-3-3.4.13.tar.xz/libavformat/ilbc.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/ilbc.c Changed
11
 
1
@@ -74,7 +74,8 @@
2
     AVStream *st;
3
     uint8_t header9;
4
 
5
-    avio_read(pb, header, 9);
6
+    if (avio_read(pb, header, 9) != 9)
7
+        return AVERROR_INVALIDDATA;
8
 
9
     st = avformat_new_stream(s, NULL);
10
     if (!st)
11
ffmpeg-3-3.4.13.tar.xz/libavformat/img2dec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/img2dec.c Changed
41
 
1
@@ -23,6 +23,7 @@
2
 #define _DEFAULT_SOURCE
3
 #define _BSD_SOURCE
4
 #include <sys/stat.h>
5
+#include "libavutil/avassert.h"
6
 #include "libavutil/avstring.h"
7
 #include "libavutil/log.h"
8
 #include "libavutil/opt.h"
9
@@ -465,6 +466,7 @@
10
     pkt->flags       |= AV_PKT_FLAG_KEY;
11
     if (s->ts_from_file) {
12
         struct stat img_stat;
13
+        av_assert0(!s->is_pipe); // The ts_from_file option is not supported by piped input demuxers
14
         if (stat(filename, &img_stat)) {
15
             res = AVERROR(EIO);
16
             goto fail;
17
@@ -512,6 +514,7 @@
18
         }
19
         goto fail;
20
     } else {
21
+        memset(pkt->data + pkt->size, 0, AV_INPUT_BUFFER_PADDING_SIZE);
22
         s->img_count++;
23
         s->img_number++;
24
         s->pts++;
25
@@ -727,7 +730,6 @@
26
                 return 0;
27
             state = EOI;
28
             break;
29
-        case DQT:
30
         case APP0:
31
         case APP1:
32
         case APP2:
33
@@ -744,6 +746,7 @@
34
         case APP13:
35
         case APP14:
36
         case APP15:
37
+        case DQT: /* fallthrough */
38
         case COM:
39
             i += AV_RB16(&bi + 2) + 1;
40
             break;
41
ffmpeg-3-3.4.13.tar.xz/libavformat/ipmovie.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/ipmovie.c Changed
11
 
1
@@ -639,7 +639,8 @@
2
 
3
     ipmovie->avf = s;
4
 
5
-    avio_read(pb, signature_buffer, sizeof(signature_buffer));
6
+    if (avio_read(pb, signature_buffer, sizeof(signature_buffer)) != sizeof(signature_buffer))
7
+        return AVERROR_INVALIDDATA;
8
     while (memcmp(signature_buffer, signature, sizeof(signature))) {
9
         memmove(signature_buffer, signature_buffer + 1, sizeof(signature_buffer) - 1);
10
         signature_buffersizeof(signature_buffer) - 1 = avio_r8(pb);
11
ffmpeg-3-3.4.13.tar.xz/libavformat/jacosubdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/jacosubdec.c Changed
23
 
1
@@ -228,14 +228,17 @@
2
             }
3
             av_bprintf(&header, "#S %s", p);
4
             break;
5
-        case 'T': // ...but must be placed after TIMERES
6
-            jacosub->timeres = strtol(p, NULL, 10);
7
-            if (!jacosub->timeres)
8
+        case 'T': { // ...but must be placed after TIMERES
9
+            int64_t timeres = strtol(p, NULL, 10);
10
+            if (timeres <= 0 || timeres > UINT32_MAX) {
11
                 jacosub->timeres = 30;
12
-            else
13
+            } else {
14
+                jacosub->timeres = timeres;
15
                 av_bprintf(&header, "#T %s", p);
16
+            }
17
             break;
18
         }
19
+        }
20
     }
21
 
22
     /* general/essential directives in the extradata */
23
ffmpeg-3-3.4.13.tar.xz/libavformat/lmlm4.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/lmlm4.c Changed
20
 
1
@@ -94,15 +94,15 @@
2
 
3
     if (frame_type > LMLM4_MPEG1L2 || frame_type == LMLM4_INVALID) {
4
         av_log(s, AV_LOG_ERROR, "invalid or unsupported frame_type\n");
5
-        return AVERROR(EIO);
6
+        return AVERROR_INVALIDDATA;
7
     }
8
     if (packet_size > LMLM4_MAX_PACKET_SIZE || packet_size<=8) {
9
         av_log(s, AV_LOG_ERROR, "packet size %d is invalid\n", packet_size);
10
-        return AVERROR(EIO);
11
+        return AVERROR_INVALIDDATA;
12
     }
13
 
14
     if ((ret = av_get_packet(pb, pkt, frame_size)) <= 0)
15
-        return AVERROR(EIO);
16
+        return ret < 0 ? ret : AVERROR(EIO);
17
 
18
     avio_skip(pb, padding);
19
 
20
ffmpeg-3-3.4.13.tar.xz/libavformat/matroskadec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/matroskadec.c Changed
56
 
1
@@ -2412,6 +2412,10 @@
2
 
3
         if (track->time_scale < 0.01)
4
             track->time_scale = 1.0;
5
+
6
+        if (matroska->time_scale * track->time_scale > UINT_MAX)
7
+            return AVERROR_INVALIDDATA;
8
+
9
         avpriv_set_pts_info(st, 64, matroska->time_scale * track->time_scale,
10
                             1000 * 1000 * 1000);    /* 64 bit pts in ns */
11
 
12
@@ -3783,16 +3787,19 @@
13
         int64_t prebuffer_ns = 1000000000;
14
         int64_t time_ns = st->index_entriesi.timestamp * matroska->time_scale;
15
         double nano_seconds_per_second = 1000000000.0;
16
-        int64_t prebuffered_ns = time_ns + prebuffer_ns;
17
+        int64_t prebuffered_ns;
18
         double prebuffer_bytes = 0.0;
19
         int64_t temp_prebuffer_ns = prebuffer_ns;
20
         int64_t pre_bytes, pre_ns;
21
         double pre_sec, prebuffer, bits_per_second;
22
         CueDesc desc_beg = get_cue_desc(s, time_ns, cues_start);
23
-
24
         // Start with the first Cue.
25
         CueDesc desc_end = desc_beg;
26
 
27
+        if (time_ns > INT64_MAX - prebuffer_ns)
28
+            return -1;
29
+        prebuffered_ns = time_ns + prebuffer_ns;
30
+
31
         // Figure out how much data we have downloaded for the prebuffer. This will
32
         // be used later to adjust the bits per sample to try.
33
         while (desc_end.start_time_ns != -1 && desc_end.end_time_ns < prebuffered_ns) {
34
@@ -3810,9 +3817,10 @@
35
             // The prebuffer ends in the last Cue. Estimate how much data was
36
             // prebuffered.
37
             pre_bytes = desc_end.end_offset - desc_end.start_offset;
38
-            pre_ns = desc_end.end_time_ns - desc_end.start_time_ns;
39
-            if (pre_ns <= 0)
40
+            if (desc_end.end_time_ns <= desc_end.start_time_ns ||
41
+                desc_end.end_time_ns - (uint64_t)desc_end.start_time_ns > INT64_MAX)
42
                 return -1;
43
+            pre_ns = desc_end.end_time_ns - desc_end.start_time_ns;
44
             pre_sec = pre_ns / nano_seconds_per_second;
45
             prebuffer_bytes +=
46
                 pre_bytes * ((temp_prebuffer_ns / nano_seconds_per_second) / pre_sec);
47
@@ -3825,7 +3833,7 @@
48
                 int64_t desc_bytes = desc_end.end_offset - desc_beg.start_offset;
49
                 int64_t desc_ns = desc_end.end_time_ns - desc_beg.start_time_ns;
50
                 double desc_sec, calc_bits_per_second, percent, mod_bits_per_second;
51
-                if (desc_bytes <= 0)
52
+                if (desc_bytes <= 0 || desc_bytes > INT64_MAX/8)
53
                     return -1;
54
 
55
                 desc_sec = desc_ns / nano_seconds_per_second;
56
ffmpeg-3-3.4.13.tar.xz/libavformat/mlvdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/mlvdec.c Changed
49
 
1
@@ -80,13 +80,15 @@
2
 static void read_string(AVFormatContext *avctx, AVIOContext *pb, const char *tag, unsigned size)
3
 {
4
     char * value = av_malloc(size + 1);
5
+    int ret;
6
+
7
     if (!value) {
8
         avio_skip(pb, size);
9
         return;
10
     }
11
 
12
-    avio_read(pb, value, size);
13
-    if (!value0) {
14
+    ret = avio_read(pb, value, size);
15
+    if (ret != size || !value0) {
16
         av_free(value);
17
         return;
18
     }
19
@@ -418,19 +420,25 @@
20
     if (size < 16)
21
         return AVERROR_INVALIDDATA;
22
     avio_skip(pb, 12); //timestamp, frameNumber
23
-    if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO)
24
+    size -= 12;
25
+    if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
26
+        if (size < 8)
27
+            return AVERROR_INVALIDDATA;
28
         avio_skip(pb, 8); // cropPosX, cropPosY, panPosX, panPosY
29
+        size -= 8;
30
+    }
31
     space = avio_rl32(pb);
32
+    if (size < space + 4LL)
33
+        return AVERROR_INVALIDDATA;
34
     avio_skip(pb, space);
35
+    size -= space;
36
 
37
     if ((mlv->classst->id & (MLV_CLASS_FLAG_DELTA|MLV_CLASS_FLAG_LZMA))) {
38
         ret = AVERROR_PATCHWELCOME;
39
     } else if (st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {
40
         ret = av_get_packet(pb, pkt, (st->codecpar->width * st->codecpar->height * st->codecpar->bits_per_coded_sample + 7) >> 3);
41
     } else { // AVMEDIA_TYPE_AUDIO
42
-        if (space > UINT_MAX - 24 || size < (24 + space))
43
-            return AVERROR_INVALIDDATA;
44
-        ret = av_get_packet(pb, pkt, size - (24 + space));
45
+        ret = av_get_packet(pb, pkt, size - 4);
46
     }
47
 
48
     if (ret < 0)
49
ffmpeg-3-3.4.13.tar.xz/libavformat/mm.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/mm.c Changed
10
 
1
@@ -94,7 +94,7 @@
2
     type = avio_rl16(pb);
3
     length = avio_rl32(pb);
4
 
5
-    if (type != MM_TYPE_HEADER)
6
+    if (type != MM_TYPE_HEADER || length < 10)
7
         return AVERROR_INVALIDDATA;
8
 
9
     /* read header */
10
ffmpeg-3-3.4.13.tar.xz/libavformat/mov.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/mov.c Changed
66
 
1
@@ -306,7 +306,8 @@
2
     char *str = NULL;
3
     const char *key = NULL;
4
     uint16_t langcode = 0;
5
-    uint32_t data_type = 0, str_size, str_size_alloc;
6
+    uint32_t data_type = 0, str_size_alloc;
7
+    uint64_t str_size;
8
     int (*parse)(MOVContext*, AVIOContext*, unsigned, const char*) = NULL;
9
     int raw = 0;
10
     int num = 0;
11
@@ -1129,6 +1130,12 @@
12
     int ret = ffio_read_size(pb, type, 4);
13
     if (ret < 0)
14
         return ret;
15
+    if (c->fc->nb_streams) {
16
+        if (c->fc->strict_std_compliance >= FF_COMPLIANCE_STRICT)
17
+            return AVERROR_INVALIDDATA;
18
+        av_log(c->fc, AV_LOG_DEBUG, "Ignoring duplicate FTYP\n");
19
+        return 0;
20
+    }
21
 
22
     if (strcmp(type, "qt  "))
23
         c->isom = 1;
24
@@ -1812,8 +1819,13 @@
25
         for (i = 0; i < entries && !pb->eof_reached; i++)
26
             sc->chunk_offsetsi = avio_rb32(pb);
27
     else if (atom.type == MKTAG('c','o','6','4'))
28
-        for (i = 0; i < entries && !pb->eof_reached; i++)
29
+        for (i = 0; i < entries && !pb->eof_reached; i++) {
30
             sc->chunk_offsetsi = avio_rb64(pb);
31
+            if (sc->chunk_offsetsi < 0) {
32
+                av_log(c->fc, AV_LOG_WARNING, "Impossible chunk_offset\n");
33
+                sc->chunk_offsetsi = 0;
34
+            }
35
+        }
36
     else
37
         return AVERROR_INVALIDDATA;
38
 
39
@@ -2905,6 +2917,10 @@
40
     }
41
     *edit_list_duration = av_rescale(*edit_list_duration, msc->time_scale,
42
                                      global_timescale);
43
+
44
+    if (*edit_list_duration + (uint64_t)*edit_list_media_time > INT64_MAX)
45
+        *edit_list_duration = 0;
46
+
47
     return 1;
48
 }
49
 
50
@@ -6543,12 +6559,13 @@
51
         if (msc->pb && msc->current_sample < avst->nb_index_entries) {
52
             AVIndexEntry *current_sample = &avst->index_entriesmsc->current_sample;
53
             int64_t dts = av_rescale(current_sample->timestamp, AV_TIME_BASE, msc->time_scale);
54
+            uint64_t dtsdiff = best_dts > dts ? best_dts - (uint64_t)dts : ((uint64_t)dts - best_dts);
55
             av_log(s, AV_LOG_TRACE, "stream %d, sample %d, dts %"PRId64"\n", i, msc->current_sample, dts);
56
             if (!sample || (!(s->pb->seekable & AVIO_SEEKABLE_NORMAL) && current_sample->pos < sample->pos) ||
57
                 ((s->pb->seekable & AVIO_SEEKABLE_NORMAL) &&
58
                  ((msc->pb != s->pb && dts < best_dts) || (msc->pb == s->pb && dts != AV_NOPTS_VALUE &&
59
-                 ((FFABS(best_dts - dts) <= AV_TIME_BASE && current_sample->pos < sample->pos) ||
60
-                  (FFABS(best_dts - dts) > AV_TIME_BASE && dts < best_dts)))))) {
61
+                 ((dtsdiff <= AV_TIME_BASE && current_sample->pos < sample->pos) ||
62
+                  (dtsdiff > AV_TIME_BASE && dts < best_dts)))))) {
63
                 sample = current_sample;
64
                 best_dts = dts;
65
                 *st = avst;
66
ffmpeg-3-3.4.13.tar.xz/libavformat/movenc.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/movenc.c Changed
14
 
1
@@ -5038,6 +5038,12 @@
2
     if (ret < 0)
3
         return ret;
4
 
5
+    if (pkt->pts != AV_NOPTS_VALUE &&
6
+        (uint64_t)pkt->dts - pkt->pts != (int32_t)((uint64_t)pkt->dts - pkt->pts)) {
7
+        av_log(s, AV_LOG_WARNING, "pts/dts pair unsupported\n");
8
+        return AVERROR_PATCHWELCOME;
9
+    }
10
+
11
     if (mov->flags & FF_MOV_FLAG_FRAGMENT) {
12
         int ret;
13
         if (mov->moov_written || mov->flags & FF_MOV_FLAG_EMPTY_MOOV) {
14
ffmpeg-3-3.4.13.tar.xz/libavformat/mp3dec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/mp3dec.c Changed
22
 
1
@@ -121,9 +121,10 @@
2
     int fill_index = (mp3->usetoc || fast_seek) && duration > 0;
3
 
4
     if (!filesize &&
5
-        !(filesize = avio_size(s->pb))) {
6
+        (filesize = avio_size(s->pb)) <= 0) {
7
         av_log(s, AV_LOG_WARNING, "Cannot determine file size, skipping TOC table.\n");
8
         fill_index = 0;
9
+        filesize = 0;
10
     }
11
 
12
     for (i = 0; i < XING_TOC_COUNT; i++) {
13
@@ -568,7 +569,7 @@
14
     if (best_pos < 0)
15
         return best_pos;
16
 
17
-    if (mp3->is_cbr && ie == &ie1 && mp3->frames) {
18
+    if (mp3->is_cbr && ie == &ie1 && mp3->frames && mp3->header_filesize > 0) {
19
         int frame_duration = av_rescale(st->duration, 1, mp3->frames);
20
         ie1.timestamp = frame_duration * av_rescale(best_pos - s->internal->data_offset, mp3->frames, mp3->header_filesize);
21
     }
22
ffmpeg-3-3.4.13.tar.xz/libavformat/mpeg.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/mpeg.c Changed
22
 
1
@@ -78,6 +78,9 @@
2
             int pes  = endpes <= i && check_pes(p->buf + i, p->buf + p->buf_size);
3
             int pack = check_pack_header(p->buf + i);
4
 
5
+            if (len > INT_MAX - i)
6
+                break;
7
+
8
             if (code == SYSTEM_HEADER_START_CODE)
9
                 sys++;
10
             else if (code == PACK_START_CODE && pack)
11
@@ -537,7 +540,9 @@
12
         static const unsigned char avs_seqh4 = { 0, 0, 1, 0xb0 };
13
         unsigned char buf8;
14
 
15
-        avio_read(s->pb, buf, 8);
16
+        ret = avio_read(s->pb, buf, 8);
17
+        if (ret != 8)
18
+            return AVERROR_INVALIDDATA;
19
         avio_seek(s->pb, -8, SEEK_CUR);
20
         if (!memcmp(buf, avs_seqh, 4) && (buf6 != 0 || buf7 != 1))
21
             codec_id = AV_CODEC_ID_CAVS;
22
ffmpeg-3-3.4.13.tar.xz/libavformat/mpegts.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/mpegts.c Changed
10
 
1
@@ -1514,6 +1514,8 @@
2
     MP4DescrParseContext d;
3
     int ret;
4
 
5
+    d.predefined_SLConfigDescriptor_seen = 0;
6
+
7
     ret = init_MP4DescrParseContext(&d, s, buf, size, descr, max_descr_count);
8
     if (ret < 0)
9
         return ret;
10
ffmpeg-3-3.4.13.tar.xz/libavformat/mxfdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/mxfdec.c Changed
68
 
1
@@ -197,7 +197,7 @@
2
 typedef struct MXFIndexTableSegment {
3
     UID uid;
4
     enum MXFMetadataSetType type;
5
-    int edit_unit_byte_count;
6
+    unsigned edit_unit_byte_count;
7
     int index_sid;
8
     int body_sid;
9
     AVRational index_edit_rate;
10
@@ -472,7 +472,8 @@
11
     if (size < 32 || size - 32 < orig_size || (int)orig_size != orig_size)
12
         return AVERROR_INVALIDDATA;
13
     avio_read(pb, ivec, 16);
14
-    avio_read(pb, tmpbuf, 16);
15
+    if (avio_read(pb, tmpbuf, 16) != 16)
16
+        return AVERROR_INVALIDDATA;
17
     if (mxf->aesc)
18
         av_aes_crypt(mxf->aesc, tmpbuf, tmpbuf, 1, ivec, 1);
19
     if (memcmp(tmpbuf, checkv, 16))
20
@@ -951,6 +952,9 @@
21
     case 0x3F0B:
22
         segment->index_edit_rate.num = avio_rb32(pb);
23
         segment->index_edit_rate.den = avio_rb32(pb);
24
+        if (segment->index_edit_rate.num <= 0 ||
25
+            segment->index_edit_rate.den <= 0)
26
+            return AVERROR_INVALIDDATA;
27
         av_log(NULL, AV_LOG_TRACE, "IndexEditRate %d/%d\n", segment->index_edit_rate.num,
28
                 segment->index_edit_rate.den);
29
         break;
30
@@ -1098,7 +1102,8 @@
31
     if (size <= 17)
32
         return 0;
33
 
34
-    avio_read(pb, key, 17);
35
+    if (avio_read(pb, key, 17) != 17)
36
+        return AVERROR_INVALIDDATA;
37
     /* TODO: handle other types of of indirect values */
38
     if (memcmp(key, mxf_indirect_value_utf16le, 17) == 0) {
39
         return mxf_read_utf16le_string(pb, size - 17, &tagged_value->value);
40
@@ -1346,9 +1351,13 @@
41
         if (edit_unit < s->index_start_position + s->index_duration) {
42
             int64_t index = edit_unit - s->index_start_position;
43
 
44
-            if (s->edit_unit_byte_count)
45
+            if (s->edit_unit_byte_count) {
46
+                if (index > INT64_MAX / s->edit_unit_byte_count ||
47
+                    s->edit_unit_byte_count * index > INT64_MAX - offset_temp)
48
+                    return AVERROR_INVALIDDATA;
49
+
50
                 offset_temp += s->edit_unit_byte_count * index;
51
-            else if (s->nb_index_entries) {
52
+            } else if (s->nb_index_entries) {
53
                 if (s->nb_index_entries == 2 * s->index_duration + 1)
54
                     index *= 2;     /* Avid index */
55
 
56
@@ -1371,6 +1380,11 @@
57
             return mxf_absolute_bodysid_offset(mxf, index_table->body_sid, offset_temp, offset_out);
58
         } else {
59
             /* EditUnitByteCount == 0 for VBR indexes, which is fine since they use explicit StreamOffsets */
60
+            if (s->edit_unit_byte_count && (s->index_duration > INT64_MAX / s->edit_unit_byte_count ||
61
+                s->edit_unit_byte_count * s->index_duration > INT64_MAX - offset_temp)
62
+            )
63
+                return AVERROR_INVALIDDATA;
64
+
65
             offset_temp += s->edit_unit_byte_count * s->index_duration;
66
         }
67
     }
68
ffmpeg-3-3.4.13.tar.xz/libavformat/nistspheredec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/nistspheredec.c Changed
10
 
1
@@ -34,7 +34,7 @@
2
 
3
 static int nist_read_header(AVFormatContext *s)
4
 {
5
-    char buffer256, coding32 = "pcm", format32 = "01";
6
+    char buffer256= {0}, coding32 = "pcm", format32 = "01";
7
     int bps = 0, be = 0;
8
     int32_t header_size = -1;
9
     AVStream *st;
10
ffmpeg-3-3.4.13.tar.xz/libavformat/nsvdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/nsvdec.c Changed
10
 
1
@@ -603,7 +603,7 @@
2
         pkt = &nsv->aheadNSV_ST_AUDIO;
3
         /* read raw audio specific header on the first audio chunk... */
4
         /* on ALL audio chunks ?? seems so! */
5
-        if (asize && stNSV_ST_AUDIO->codecpar->codec_tag == MKTAG('P', 'C', 'M', ' ')/* && fill_header*/) {
6
+        if (asize >= 4 && stNSV_ST_AUDIO->codecpar->codec_tag == MKTAG('P', 'C', 'M', ' ')/* && fill_header*/) {
7
             uint8_t bps;
8
             uint8_t channels;
9
             uint16_t samplerate;
10
ffmpeg-3-3.4.13.tar.xz/libavformat/rdt.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/rdt.c Changed
10
 
1
@@ -204,6 +204,8 @@
2
             return -1; /* not followed by a data packet */
3
 
4
         pkt_len = AV_RB16(buf+3);
5
+        if (pkt_len > len)
6
+            return AVERROR_INVALIDDATA;
7
         buf += pkt_len;
8
         len -= pkt_len;
9
         consumed += pkt_len;
10
ffmpeg-3-3.4.13.tar.xz/libavformat/rmdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/rmdec.c Changed
23
 
1
@@ -192,7 +192,8 @@
2
         st->codecpar->channels = avio_rb16(pb);
3
         if (version == 5) {
4
             ast->deint_id = avio_rl32(pb);
5
-            avio_read(pb, buf, 4);
6
+            if (avio_read(pb, buf, 4) != 4)
7
+                return AVERROR_INVALIDDATA;
8
             buf4 = 0;
9
         } else {
10
             AV_WL32(buf, 0);
11
@@ -272,9 +273,9 @@
12
         case DEINT_ID_INT4:
13
             if (ast->coded_framesize > ast->audio_framesize ||
14
                 sub_packet_h <= 1 ||
15
-                ast->coded_framesize * (uint64_t)sub_packet_h > (2 + (sub_packet_h & 1)) * ast->audio_framesize)
16
+                ast->coded_framesize * (uint64_t)sub_packet_h > (2LL + (sub_packet_h & 1)) * ast->audio_framesize)
17
                 return AVERROR_INVALIDDATA;
18
-            if (ast->coded_framesize * (uint64_t)sub_packet_h != 2*ast->audio_framesize) {
19
+            if (ast->coded_framesize * (uint64_t)sub_packet_h != 2LL*ast->audio_framesize) {
20
                 avpriv_request_sample(s, "mismatching interleaver parameters");
21
                 return AVERROR_INVALIDDATA;
22
             }
23
ffmpeg-3-3.4.13.tar.xz/libavformat/rpl.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/rpl.c Changed
38
 
1
@@ -101,7 +101,7 @@
2
         line++;
3
     for (; *line>='0' && *line<='9'; line++) {
4
         // Truncate any numerator too large to fit into an int64_t
5
-        if (num > (INT64_MAX - 9) / 10 || den > INT64_MAX / 10)
6
+        if (num > (INT64_MAX - 9) / 10ULL || den > INT64_MAX / 10ULL)
7
             break;
8
         num  = 10 * num + (*line - '0');
9
         den *= 10;
10
@@ -117,7 +117,7 @@
11
     AVIOContext *pb = s->pb;
12
     RPLContext *rpl = s->priv_data;
13
     AVStream *vst = NULL, *ast = NULL;
14
-    int total_audio_size;
15
+    int64_t total_audio_size;
16
     int error = 0;
17
 
18
     uint32_t i;
19
@@ -242,6 +242,9 @@
20
                "Video stream will be broken!\n", av_fourcc2str(vst->codecpar->codec_tag));
21
 
22
     number_of_chunks = read_line_and_int(pb, &error);  // number of chunks in the file
23
+    if (number_of_chunks == INT_MAX)
24
+        return AVERROR_INVALIDDATA;
25
+
26
     // The number in the header is actually the index of the last chunk.
27
     number_of_chunks++;
28
 
29
@@ -269,6 +272,8 @@
30
         if (ast)
31
             av_add_index_entry(ast, offset + video_size, total_audio_size,
32
                                audio_size, audio_size * 8, 0);
33
+        if (total_audio_size/8 + (uint64_t)audio_size >= INT64_MAX/8)
34
+            return AVERROR_INVALIDDATA;
35
         total_audio_size += audio_size * 8;
36
     }
37
 
38
ffmpeg-3-3.4.13.tar.xz/libavformat/rtmppkt.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/rtmppkt.c Changed
25
 
1
@@ -437,7 +437,6 @@
2
 {
3
     AMFDataType type;
4
     unsigned nb   = -1;
5
-    int parse_key = 1;
6
 
7
     if (bytestream2_get_bytes_left(gb) < 1)
8
         return -1;
9
@@ -462,13 +461,12 @@
10
         bytestream2_skip(gb, 10);
11
         return 0;
12
     case AMF_DATA_TYPE_ARRAY:
13
-        parse_key = 0;
14
     case AMF_DATA_TYPE_MIXEDARRAY:
15
         nb = bytestream2_get_be32(gb);
16
     case AMF_DATA_TYPE_OBJECT:
17
-        while (nb-- > 0 || type != AMF_DATA_TYPE_ARRAY) {
18
+        while (type != AMF_DATA_TYPE_ARRAY || nb-- > 0) {
19
             int t;
20
-            if (parse_key) {
21
+            if (type != AMF_DATA_TYPE_ARRAY) {
22
                 int size = bytestream2_get_be16(gb);
23
                 if (!size) {
24
                     bytestream2_get_byte(gb);
25
ffmpeg-3-3.4.13.tar.xz/libavformat/rtpenc_vc2hq.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/rtpenc_vc2hq.c Changed
52
 
1
@@ -45,7 +45,7 @@
2
     ff_rtp_send_data(ctx, rtp_ctx->buf, RTP_VC2HQ_PL_HEADER_SIZE + info_hdr_size + size, rtp_m);
3
 }
4
 
5
-static void send_picture(AVFormatContext *ctx, const uint8_t *buf, int size, int interlaced)
6
+static int send_picture(AVFormatContext *ctx, const uint8_t *buf, int size, int interlaced)
7
 {
8
     RTPMuxContext *rtp_ctx = ctx->priv_data;
9
     GetBitContext gc;
10
@@ -54,6 +54,9 @@
11
     uint16_t frag_len;
12
     char *info_hdr = &rtp_ctx->buf4;
13
 
14
+    if (size < DIRAC_PIC_NR_SIZE)
15
+        return AVERROR(EINVAL);
16
+
17
     pic_nr = AV_RB32(&buf0);
18
     buf += DIRAC_PIC_NR_SIZE;
19
     size -= DIRAC_PIC_NR_SIZE;
20
@@ -97,6 +100,7 @@
21
         send_packet(ctx, DIRAC_RTP_PCODE_HQ_PIC_FRAGMENT, 16, buf, frag_len, interlaced, second_field, size > 0 ? 0 : 1);
22
         buf += frag_len;
23
     }
24
+    return 0;
25
 }
26
 
27
 void ff_rtp_send_vc2hq(AVFormatContext *ctx, const uint8_t *frame_buf, int frame_size, int interlaced)
28
@@ -110,16 +114,21 @@
29
         parse_code = unit4;
30
         unit_size = AV_RB32(&unit5);
31
 
32
+        if (unit_size > end - unit)
33
+            break;
34
+
35
         switch (parse_code) {
36
         /* sequence header */
37
         /* end of sequence */
38
         case DIRAC_PCODE_SEQ_HEADER:
39
         case DIRAC_PCODE_END_SEQ:
40
-            send_packet(ctx, parse_code, 0, unit + DIRAC_DATA_UNIT_HEADER_SIZE, unit_size - DIRAC_DATA_UNIT_HEADER_SIZE, 0, 0, 0);
41
+            if (unit_size >= DIRAC_DATA_UNIT_HEADER_SIZE)
42
+                send_packet(ctx, parse_code, 0, unit + DIRAC_DATA_UNIT_HEADER_SIZE, unit_size - DIRAC_DATA_UNIT_HEADER_SIZE, 0, 0, 0);
43
             break;
44
         /* HQ picture */
45
         case DIRAC_PCODE_PICTURE_HQ:
46
-            send_picture(ctx, unit + DIRAC_DATA_UNIT_HEADER_SIZE, unit_size - DIRAC_DATA_UNIT_HEADER_SIZE, interlaced);
47
+            if (unit_size >= DIRAC_DATA_UNIT_HEADER_SIZE)
48
+                send_picture(ctx, unit + DIRAC_DATA_UNIT_HEADER_SIZE, unit_size - DIRAC_DATA_UNIT_HEADER_SIZE, interlaced);
49
             break;
50
         /* parse codes without specification */
51
         case DIRAC_PCODE_AUX:
52
ffmpeg-3-3.4.13.tar.xz/libavformat/rtsp.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/rtsp.c Changed
40
 
1
@@ -370,7 +370,7 @@
2
         if (rtsp_st->sdp_payload_type == payload_type &&
3
             rtsp_st->dynamic_handler &&
4
             rtsp_st->dynamic_handler->parse_sdp_a_line) {
5
-            rtsp_st->dynamic_handler->parse_sdp_a_line(s, i,
6
+            rtsp_st->dynamic_handler->parse_sdp_a_line(s, rtsp_st->stream_index,
7
                 rtsp_st->dynamic_protocol_context, line);
8
         }
9
     }
10
@@ -1382,7 +1382,7 @@
11
     cur_auth_type = rt->auth_state.auth_type;
12
     if ((ret = rtsp_send_cmd_with_content_async(s, method, url, header,
13
                                                 send_content,
14
-                                                send_content_length)))
15
+                                                send_content_length)) < 0)
16
         return ret;
17
 
18
     if ((ret = ff_rtsp_read_reply(s, reply, content_ptr, 0, method) ) < 0)
19
@@ -1415,6 +1415,8 @@
20
     char cmd2048;
21
     const char *trans_pref;
22
 
23
+    memset(&reply1, 0, sizeof(reply1));
24
+
25
     if (rt->transport == RTSP_TRANSPORT_RDT)
26
         trans_pref = "x-pn-tng";
27
     else if (rt->transport == RTSP_TRANSPORT_RAW)
28
@@ -1525,7 +1527,11 @@
29
         else if (lower_transport == RTSP_LOWER_TRANSPORT_UDP_MULTICAST) {
30
             snprintf(transport, sizeof(transport) - 1,
31
                      "%s/UDP;multicast", trans_pref);
32
+        } else {
33
+            err = AVERROR(EINVAL);
34
+            goto fail; // transport would be uninitialized
35
         }
36
+
37
         if (s->oformat) {
38
             av_strlcat(transport, ";mode=record", sizeof(transport));
39
         } else if (rt->server_type == RTSP_SERVER_REAL ||
40
ffmpeg-3-3.4.13.tar.xz/libavformat/sapdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/sapdec.c Changed
11
 
1
@@ -195,6 +195,9 @@
2
     struct pollfd p = {fd, POLLIN, 0};
3
     uint8_t recvbufRTP_MAX_PACKET_LENGTH;
4
 
5
+    if (fd < 0)
6
+        return fd;
7
+
8
     if (sap->eof)
9
         return AVERROR_EOF;
10
 
11
ffmpeg-3-3.4.13.tar.xz/libavformat/sauce.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/sauce.c Changed
15
 
1
@@ -34,7 +34,12 @@
2
     AVIOContext *pb = avctx->pb;
3
     char buf36;
4
     int datatype, filetype, t1, t2, nb_comments;
5
-    uint64_t start_pos = avio_size(pb) - 128;
6
+    int64_t start_pos = avio_size(pb);
7
+
8
+    if (start_pos < 128)
9
+        return AVERROR_INVALIDDATA;
10
+
11
+    start_pos -= 128;
12
 
13
     avio_seek(pb, start_pos, SEEK_SET);
14
     if (avio_read(pb, buf, 7) != 7)
15
ffmpeg-3-3.4.13.tar.xz/libavformat/sbgdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/sbgdec.c Changed
22
 
1
@@ -384,7 +384,7 @@
2
                 case 'L':
3
                     FORWARD_ERROR(parse_optarg(p, opt, &oarg));
4
                     r = str_to_time(oarg.s, &p->scs.opt_duration);
5
-                    if (oarg.e != oarg.s + r) {
6
+                    if (oarg.e != oarg.s + r || p->scs.opt_duration < 0) {
7
                         snprintf(p->err_msg, sizeof(p->err_msg),
8
                                  "syntax error for option -L");
9
                         return AVERROR_INVALIDDATA;
10
@@ -1272,7 +1272,10 @@
11
     /* SBaGen handles the time before and after the extremal events,
12
        and the corresponding transitions, as if the sequence were cyclic
13
        with a 24-hours period. */
14
-    period = s->eventss->nb_events - 1.ts - s->events0.ts;
15
+    period = s->eventss->nb_events - 1.ts - (uint64_t)s->events0.ts;
16
+    if (period < 0)
17
+        return AVERROR_INVALIDDATA;
18
+
19
     period = (period + (DAY_TS - 1)) / DAY_TS * DAY_TS;
20
     period = FFMAX(period, DAY_TS);
21
 
22
ffmpeg-3-3.4.13.tar.xz/libavformat/sdp.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/sdp.c Changed
18
 
1
@@ -195,6 +195,8 @@
2
             continue;
3
         }
4
         if (p != (psets + strlen(pset_string))) {
5
+            if (p - psets >= MAX_PSET_SIZE)
6
+                goto fail_in_loop;
7
             *p = ',';
8
             p++;
9
         }
10
@@ -204,6 +206,7 @@
11
         }
12
         if (!av_base64_encode(p, MAX_PSET_SIZE - (p - psets), r, r1 - r)) {
13
             av_log(s, AV_LOG_ERROR, "Cannot Base64-encode %"PTRDIFF_SPECIFIER" %"PTRDIFF_SPECIFIER"!\n", MAX_PSET_SIZE - (p - psets), r1 - r);
14
+fail_in_loop:
15
             av_free(psets);
16
             av_free(tmpbuf);
17
 
18
ffmpeg-3-3.4.13.tar.xz/libavformat/segafilm.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/segafilm.c Changed
9
 
1
@@ -239,6 +239,7 @@
2
             else if (film->audio_type != AV_CODEC_ID_NONE)
3
                 audio_frame_counter += (film->sample_tablei.sample_size /
4
                     (film->audio_channels * film->audio_bits / 8));
5
+            film->sample_tablei.keyframe = 1;
6
         } else {
7
             film->sample_tablei.stream = film->video_stream_index;
8
             film->sample_tablei.pts = AV_RB32(&scratch8) & 0x7FFFFFFF;
9
ffmpeg-3-3.4.13.tar.xz/libavformat/siff.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/siff.c Changed
13
 
1
@@ -198,7 +198,10 @@
2
         if (c->cur_frame >= c->frames)
3
             return AVERROR_EOF;
4
         if (c->curstrm == -1) {
5
-            c->pktsize = avio_rl32(s->pb) - 4;
6
+            unsigned pktsize = avio_rl32(s->pb);
7
+            if (pktsize < 4)
8
+                return AVERROR_INVALIDDATA;
9
+            c->pktsize = pktsize - 4;
10
             c->flags   = avio_rl16(s->pb);
11
             if (c->flags & VB_HAS_AUDIO && !c->has_audio)
12
                 return AVERROR_INVALIDDATA;
13
ffmpeg-3-3.4.13.tar.xz/libavformat/subfile.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/subfile.c Changed
10
 
1
@@ -128,6 +128,8 @@
2
     case SEEK_END:
3
         new_pos = c->end + c->pos;
4
         break;
5
+    default:
6
+        av_assert0(0);
7
     }
8
     if (new_pos < c->start)
9
         return AVERROR(EINVAL);
10
ffmpeg-3-3.4.13.tar.xz/libavformat/tls_schannel.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/tls_schannel.c Changed
10
 
1
@@ -389,7 +389,7 @@
2
     SECURITY_STATUS sspi_ret = SEC_E_OK;
3
     SecBuffer inbuf4;
4
     SecBufferDesc inbuf_desc;
5
-    int size, ret;
6
+    int size, ret = 0;
7
     int min_enc_buf_size = len + SCHANNEL_FREE_BUFFER_SIZE;
8
 
9
     /* If we have some left-over data from previous network activity,
10
ffmpeg-3-3.4.13.tar.xz/libavformat/tmv.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/tmv.c Changed
12
 
1
@@ -103,6 +103,10 @@
2
     char_cols = avio_r8(pb);
3
     char_rows = avio_r8(pb);
4
     tmv->video_chunk_size = char_cols * char_rows * 2;
5
+    if (!tmv->video_chunk_size) {
6
+        av_log(s, AV_LOG_ERROR, "invalid video chunk size\n");
7
+        return AVERROR_INVALIDDATA;
8
+    }
9
 
10
     features  = avio_r8(pb);
11
     if (features & ~(TMV_PADDING | TMV_STEREO)) {
12
ffmpeg-3-3.4.13.tar.xz/libavformat/tta.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/tta.c Changed
10
 
1
@@ -91,7 +91,7 @@
2
     c->totalframes = nb_samples / c->frame_size + (c->last_frame_size < c->frame_size);
3
     c->currentframe = 0;
4
 
5
-    if(c->totalframes >= UINT_MAX/sizeof(uint32_t) || c->totalframes <= 0){
6
+    if(c->totalframes >= (INT_MAX - 4)/sizeof(uint32_t) || c->totalframes <= 0){
7
         av_log(s, AV_LOG_ERROR, "totalframes %d invalid\n", c->totalframes);
8
         return AVERROR_INVALIDDATA;
9
     }
10
ffmpeg-3-3.4.13.tar.xz/libavformat/tty.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/tty.c Changed
23
 
1
@@ -113,13 +113,16 @@
2
     s->chars_per_frame = FFMAX(av_q2d(st->time_base)*s->chars_per_frame, 1);
3
 
4
     if (avctx->pb->seekable & AVIO_SEEKABLE_NORMAL) {
5
-        s->fsize = avio_size(avctx->pb);
6
-        st->duration = (s->fsize + s->chars_per_frame - 1) / s->chars_per_frame;
7
+        int64_t fsize = avio_size(avctx->pb);
8
+        if (fsize > 0) {
9
+            s->fsize = fsize;
10
+            st->duration = (s->fsize + s->chars_per_frame - 1) / s->chars_per_frame;
11
 
12
-        if (ff_sauce_read(avctx, &s->fsize, 0, 0) < 0)
13
-            efi_read(avctx, s->fsize - 51);
14
+            if (ff_sauce_read(avctx, &s->fsize, 0, 0) < 0)
15
+                efi_read(avctx, s->fsize - 51);
16
 
17
-        avio_seek(avctx->pb, 0, SEEK_SET);
18
+            avio_seek(avctx->pb, 0, SEEK_SET);
19
+        }
20
     }
21
 
22
 fail:
23
ffmpeg-3-3.4.13.tar.xz/libavformat/utils.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/utils.c Changed
10
 
1
@@ -2121,7 +2121,7 @@
2
                          int64_t target_ts, int flags)
3
 {
4
     AVInputFormat *avif = s->iformat;
5
-    int64_t av_uninit(pos_min), av_uninit(pos_max), pos, pos_limit;
6
+    int64_t pos_min = 0, pos_max = 0, pos, pos_limit;
7
     int64_t ts_min, ts_max, ts;
8
     int index;
9
     int64_t ret;
10
ffmpeg-3-3.4.13.tar.xz/libavformat/vqf.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/vqf.c Changed
54
 
1
@@ -49,22 +49,28 @@
2
     return AVPROBE_SCORE_EXTENSION;
3
 }
4
 
5
-static void add_metadata(AVFormatContext *s, uint32_t tag,
6
+static int add_metadata(AVFormatContext *s, uint32_t tag,
7
                          unsigned int tag_len, unsigned int remaining)
8
 {
9
     int len = FFMIN(tag_len, remaining);
10
     char *buf, key5 = {0};
11
+    int ret;
12
 
13
     if (len == UINT_MAX)
14
-        return;
15
+        return AVERROR_INVALIDDATA;
16
 
17
     buf = av_malloc(len+1);
18
     if (!buf)
19
-        return;
20
-    avio_read(s->pb, buf, len);
21
+        return AVERROR(ENOMEM);
22
+
23
+    ret = avio_read(s->pb, buf, len);
24
+    if (ret < 0)
25
+        return ret;
26
+    if (len != ret)
27
+        return AVERROR_INVALIDDATA;
28
     buflen = 0;
29
     AV_WL32(key, tag);
30
-    av_dict_set(&s->metadata, key, buf, AV_DICT_DONT_STRDUP_VAL);
31
+    return av_dict_set(&s->metadata, key, buf, AV_DICT_DONT_STRDUP_VAL);
32
 }
33
 
34
 static const AVMetadataConv vqf_metadata_conv = {
35
@@ -116,6 +122,7 @@
36
 
37
     do {
38
         int len;
39
+        int ret;
40
         chunk_tag = avio_rl32(s->pb);
41
 
42
         if (chunk_tag == MKTAG('D','A','T','A'))
43
@@ -162,7 +169,9 @@
44
             avio_skip(s->pb, FFMIN(len, header_size));
45
             break;
46
         default:
47
-            add_metadata(s, chunk_tag, len, header_size);
48
+            ret = add_metadata(s, chunk_tag, len, header_size);
49
+            if (ret < 0)
50
+                return ret;
51
             break;
52
         }
53
 
54
ffmpeg-3-3.4.13.tar.xz/libavformat/wavdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/wavdec.c Changed
20
 
1
@@ -689,6 +689,8 @@
2
                 goto smv_retry;
3
             return AVERROR_EOF;
4
         }
5
+        if (INT64_MAX - left < avio_tell(s->pb))
6
+            return AVERROR_INVALIDDATA;
7
         wav->data_end = avio_tell(s->pb) + left;
8
     }
9
 
10
@@ -789,8 +791,7 @@
11
     uint8_t guid16;
12
     int ret;
13
 
14
-    avio_read(pb, guid, 16);
15
-    if (memcmp(guid, ff_w64_guid_riff, 16))
16
+    if (avio_read(pb, guid, 16) != 16 || memcmp(guid, ff_w64_guid_riff, 16))
17
         return AVERROR_INVALIDDATA;
18
 
19
     /* riff + wave + fmt + sizes */
20
ffmpeg-3-3.4.13.tar.xz/libavformat/westwood_vqa.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/westwood_vqa.c Changed
28
 
1
@@ -163,13 +163,15 @@
2
     int ret = -1;
3
     uint8_t preambleVQA_PREAMBLE_SIZE;
4
     uint32_t chunk_type;
5
-    uint32_t chunk_size;
6
-    int skip_byte;
7
+    int chunk_size;
8
+    unsigned skip_byte;
9
 
10
     while (avio_read(pb, preamble, VQA_PREAMBLE_SIZE) == VQA_PREAMBLE_SIZE) {
11
         chunk_type = AV_RB32(&preamble0);
12
         chunk_size = AV_RB32(&preamble4);
13
 
14
+        if (chunk_size < 0)
15
+            return AVERROR_INVALIDDATA;
16
         skip_byte = chunk_size & 0x01;
17
 
18
         if ((chunk_type == SND0_TAG) || (chunk_type == SND1_TAG) ||
19
@@ -230,7 +232,7 @@
20
                     break;
21
                 case SND2_TAG:
22
                     /* 2 samples/byte, 1 or 2 samples per frame depending on stereo */
23
-                    pkt->duration = (chunk_size * 2) / wsvqa->channels;
24
+                    pkt->duration = (chunk_size * 2LL) / wsvqa->channels;
25
                     break;
26
                 }
27
                 break;
28
ffmpeg-3-3.4.13.tar.xz/libavformat/wtvdec.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/wtvdec.c Changed
29
 
1
@@ -183,7 +183,7 @@
2
         int nb_sectors1 = read_ints(s->pb, sectors1, WTV_SECTOR_SIZE / 4);
3
         int i;
4
 
5
-        wf->sectors = av_malloc_array(nb_sectors1, 1 << WTV_SECTOR_BITS);
6
+        wf->sectors = av_calloc(nb_sectors1, 1 << WTV_SECTOR_BITS);
7
         if (!wf->sectors) {
8
             av_free(wf);
9
             return NULL;
10
@@ -850,7 +850,7 @@
11
             int stream_index = ff_find_stream_index(s, sid);
12
             if (stream_index >= 0) {
13
                 AVStream *st = s->streamsstream_index;
14
-                uint8_t buf258;
15
+                uint8_t buf258 = {0};
16
                 const uint8_t *pbuf = buf;
17
                 int buf_size;
18
 
19
@@ -863,7 +863,8 @@
20
                 }
21
 
22
                 buf_size = FFMIN(len - consumed, sizeof(buf));
23
-                avio_read(pb, buf, buf_size);
24
+                if (avio_read(pb, buf, buf_size) != buf_size)
25
+                    return AVERROR_INVALIDDATA;
26
                 consumed += buf_size;
27
                 ff_parse_mpeg2_descriptor(s, st, 0, &pbuf, buf + buf_size, NULL, 0, 0, NULL);
28
             }
29
ffmpeg-3-3.4.13.tar.xz/libavformat/xmv.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/xmv.c Changed
10
 
1
@@ -223,6 +223,8 @@
2
     /* Initialize the packet context */
3
 
4
     xmv->next_packet_offset = avio_tell(pb);
5
+    if (this_packet_size < xmv->next_packet_offset)
6
+        return AVERROR_INVALIDDATA;
7
     xmv->next_packet_size   = this_packet_size - xmv->next_packet_offset;
8
     xmv->stream_count       = xmv->audio_track_count + 1;
9
 
10
ffmpeg-3-3.4.13.tar.xz/libavformat/xwma.c -> ffmpeg-3-3.4.14.tar.xz/libavformat/xwma.c Changed
10
 
1
@@ -127,7 +127,7 @@
2
                st->codecpar->channels);
3
         return AVERROR_INVALIDDATA;
4
     }
5
-    if (!st->codecpar->bits_per_coded_sample) {
6
+    if (!st->codecpar->bits_per_coded_sample || st->codecpar->bits_per_coded_sample > 64) {
7
         av_log(s, AV_LOG_WARNING, "Invalid bits_per_coded_sample: %d\n",
8
                st->codecpar->bits_per_coded_sample);
9
         return AVERROR_INVALIDDATA;
10
ffmpeg-3-3.4.13.tar.xz/libavutil/avstring.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/avstring.c Changed
16
 
1
@@ -451,10 +451,12 @@
2
                 if (k && (!pk || pk == separator))
3
                     return 1;
4
             q = strchr(q, separator);
5
-            q += !!q;
6
+            if(q)
7
+                q++;
8
         }
9
         p = strchr(p, separator);
10
-        p += !!p;
11
+        if (p)
12
+            p++;
13
     }
14
 
15
     return 0;
16
ffmpeg-3-3.4.13.tar.xz/libavutil/base64.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/base64.c Changed
16
 
1
@@ -120,10 +120,12 @@
2
     }
3
 
4
 out3:
5
-    *dst++ = v >> 10;
6
+    if (end - dst)
7
+        *dst++ = v >> 10;
8
     v <<= 2;
9
 out2:
10
-    *dst++ = v >> 4;
11
+    if (end - dst)
12
+        *dst++ = v >> 4;
13
 out1:
14
 out0:
15
     return bits & 1 ? AVERROR_INVALIDDATA : dst - out;
16
ffmpeg-3-3.4.13.tar.xz/libavutil/buffer.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/buffer.c Changed
25
 
1
@@ -223,7 +223,10 @@
2
     if (!pool)
3
         return NULL;
4
 
5
-    ff_mutex_init(&pool->mutex, NULL);
6
+    if (ff_mutex_init(&pool->mutex, NULL)) {
7
+        av_free(pool);
8
+        return NULL;
9
+    }
10
 
11
     pool->size      = size;
12
     pool->opaque    = opaque;
13
@@ -241,7 +244,10 @@
14
     if (!pool)
15
         return NULL;
16
 
17
-    ff_mutex_init(&pool->mutex, NULL);
18
+    if (ff_mutex_init(&pool->mutex, NULL)) {
19
+        av_free(pool);
20
+        return NULL;
21
+    }
22
 
23
     pool->size     = size;
24
     pool->alloc    = alloc ? alloc : av_buffer_alloc;
25
ffmpeg-3-3.4.13.tar.xz/libavutil/frame.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/frame.c Changed
10
 
1
@@ -867,7 +867,7 @@
2
         if (log2_crop_align < min_log2_align)
3
             return AVERROR_BUG;
4
 
5
-        if (min_log2_align < 5) {
6
+        if (min_log2_align < 5 && log2_crop_align != INT_MAX) {
7
             frame->crop_left &= ~((1 << (5 + log2_crop_align - min_log2_align)) - 1);
8
             calc_cropping_offsets(offsets, frame, desc);
9
         }
10
ffmpeg-3-3.4.13.tar.xz/libavutil/hwcontext_d3d11va.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/hwcontext_d3d11va.c Changed
10
 
1
@@ -137,7 +137,7 @@
2
     desc->texture = tex;
3
     desc->index   = index;
4
 
5
-    buf = av_buffer_create((uint8_t *)desc, sizeof(desc), free_texture, tex, 0);
6
+    buf = av_buffer_create((uint8_t *)desc, sizeof(*desc), free_texture, tex, 0);
7
     if (!buf) {
8
         ID3D11Texture2D_Release(tex);
9
         av_free(desc);
10
ffmpeg-3-3.4.13.tar.xz/libavutil/hwcontext_dxva2.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/hwcontext_dxva2.c Changed
10
 
1
@@ -137,7 +137,7 @@
2
     if (s->nb_surfaces_used < hwctx->nb_surfaces) {
3
         s->nb_surfaces_used++;
4
         return av_buffer_create((uint8_t*)s->surfaces_internals->nb_surfaces_used - 1,
5
-                                sizeof(*hwctx->surfaces), dxva2_pool_release_dummy, 0, 0);
6
+                                sizeof(**hwctx->surfaces), dxva2_pool_release_dummy, 0, 0);
7
     }
8
 
9
     return NULL;
10
ffmpeg-3-3.4.13.tar.xz/libavutil/imgutils.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/imgutils.c Changed
10
 
1
@@ -261,7 +261,7 @@
2
         stride = 8LL*w;
3
     stride += 128*8;
4
 
5
-    if ((int)w<=0 || (int)h<=0 || stride >= INT_MAX || stride*(uint64_t)(h+128) >= INT_MAX) {
6
+    if (w==0 || h==0 || w > INT32_MAX || h > INT32_MAX || stride >= INT_MAX || stride*(h + 128ULL) >= INT_MAX) {
7
         av_log(&imgutils, AV_LOG_ERROR, "Picture size %ux%u is invalid\n", w, h);
8
         return AVERROR(EINVAL);
9
     }
10
ffmpeg-3-3.4.13.tar.xz/libavutil/rational.h -> ffmpeg-3-3.4.14.tar.xz/libavutil/rational.h Changed
12
 
1
@@ -168,6 +168,10 @@
2
  * In case of infinity, the returned value is expressed as `{1, 0}` or
3
  * `{-1, 0}` depending on the sign.
4
  *
5
+ * In general rational numbers with |num| <= 1<<26 && |den| <= 1<<26
6
+ * can be recovered exactly from their double representation.
7
+ * (no exceptions were found within 1B random ones)
8
+ *
9
  * @param d   `double` to convert
10
  * @param max Maximum allowed numerator and denominator
11
  * @return `d` in AVRational form
12
ffmpeg-3-3.4.13.tar.xz/libavutil/slicethread.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/slicethread.c Changed
51
 
1
@@ -98,6 +98,7 @@
2
 {
3
     AVSliceThread *ctx;
4
     int nb_workers, i;
5
+    int ret;
6
 
7
 #if HAVE_W32THREADS
8
     w32thread_init();
9
@@ -135,16 +136,37 @@
10
 
11
     atomic_init(&ctx->first_job, 0);
12
     atomic_init(&ctx->current_job, 0);
13
-    pthread_mutex_init(&ctx->done_mutex, NULL);
14
-    pthread_cond_init(&ctx->done_cond, NULL);
15
+    ret = pthread_mutex_init(&ctx->done_mutex, NULL);
16
+    if (ret) {
17
+        av_freep(&ctx->workers);
18
+        av_freep(pctx);
19
+        return AVERROR(ret);
20
+    }
21
+    ret = pthread_cond_init(&ctx->done_cond, NULL);
22
+    if (ret) {
23
+        ctx->nb_threads = main_func ? 0 : 1;
24
+        avpriv_slicethread_free(pctx);
25
+        return AVERROR(ret);
26
+    }
27
     ctx->done        = 0;
28
 
29
     for (i = 0; i < nb_workers; i++) {
30
         WorkerContext *w = &ctx->workersi;
31
         int ret;
32
         w->ctx = ctx;
33
-        pthread_mutex_init(&w->mutex, NULL);
34
-        pthread_cond_init(&w->cond, NULL);
35
+        ret = pthread_mutex_init(&w->mutex, NULL);
36
+        if (ret) {
37
+            ctx->nb_threads = main_func ? i : i + 1;
38
+            avpriv_slicethread_free(pctx);
39
+            return AVERROR(ret);
40
+        }
41
+        ret = pthread_cond_init(&w->cond, NULL);
42
+        if (ret) {
43
+            pthread_mutex_destroy(&w->mutex);
44
+            ctx->nb_threads = main_func ? i : i + 1;
45
+            avpriv_slicethread_free(pctx);
46
+            return AVERROR(ret);
47
+        }
48
         pthread_mutex_lock(&w->mutex);
49
         w->done = 0;
50
 
51
ffmpeg-3-3.4.13.tar.xz/libavutil/softfloat.h -> ffmpeg-3-3.4.14.tar.xz/libavutil/softfloat.h Changed
21
 
1
@@ -236,6 +236,10 @@
2
 
3
 /**
4
  * Rounding-to-nearest used.
5
+ *
6
+ * @param a angle in units of (1ULL<<30)/M_PI radians
7
+ * @param s pointer to where   sine in units of (1<<30) is returned
8
+ * @param c pointer to where cosine in units of (1<<30) is returned
9
  */
10
 static av_unused void av_sincos_sf(int a, int *s, int *c)
11
 {
12
@@ -281,7 +285,7 @@
13
                 (int64_t)av_sintbl_4_sf(idx & 0x1f) + 1 * (a & 0x7ff) +
14
                 0x400) >> 11);
15
 
16
-    *c = (int)(((int64_t)cv * ct + (int64_t)sv * st + 0x20000000) >> 30);
17
+    *c = (int)(((int64_t)cv * ct - (int64_t)sv * st + 0x20000000) >> 30);
18
 
19
     *s = (int)(((int64_t)cv * st + (int64_t)sv * ct + 0x20000000) >> 30);
20
 }
21
ffmpeg-3-3.4.13.tar.xz/libavutil/tests/base64.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/tests/base64.c Changed
18
 
1
@@ -64,6 +64,16 @@
2
         printf("Failed: decode to NULL buffer\n");
3
         return 1;
4
     }
5
+    if (data_size > 0 && (data2_size = av_base64_decode(data2, encoded, data_size - 1)) != data_size - 1) {
6
+        printf("Failed: out of array write\n"
7
+               "Encoded:\n%s\n", encoded);
8
+        return 1;
9
+    }
10
+    if (data_size > 1 && (data2_size = av_base64_decode(data2, encoded, data_size - 2)) != data_size - 2) {
11
+        printf("Failed: out of array write\n"
12
+               "Encoded:\n%s\n", encoded);
13
+        return 1;
14
+    }
15
     if (strlen(encoded)) {
16
         char *end = strchr(encoded, '=');
17
         if (!end)
18
ffmpeg-3-3.4.13.tar.xz/libavutil/tests/dict.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/tests/dict.c Changed
20
 
1
@@ -122,12 +122,15 @@
2
 
3
     //valgrind sensible test
4
     printf("\nTesting av_dict_set() with existing AVDictionaryEntry.key as key\n");
5
-    av_dict_set(&dict, "key", "old", 0);
6
+    if (av_dict_set(&dict, "key", "old", 0) < 0)
7
+        return 1;
8
     e = av_dict_get(dict, "key", NULL, 0);
9
-    av_dict_set(&dict, e->key, "new val OK", 0);
10
+    if (av_dict_set(&dict, e->key, "new val OK", 0) < 0)
11
+        return 1;
12
     e = av_dict_get(dict, "key", NULL, 0);
13
     printf("%s\n", e->value);
14
-    av_dict_set(&dict, e->key, e->value, 0);
15
+    if (av_dict_set(&dict, e->key, e->value, 0) < 0)
16
+        return 1;
17
     e = av_dict_get(dict, "key", NULL, 0);
18
     printf("%s\n", e->value);
19
     av_dict_free(&dict);
20
ffmpeg-3-3.4.13.tar.xz/libavutil/tests/opt.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/tests/opt.c Changed
21
 
1
@@ -171,6 +171,7 @@
2
     {
3
         TestContext test_ctx = { 0 };
4
         char *buf;
5
+        int ret;
6
         test_ctx.class = &test_class;
7
 
8
         av_log_set_level(AV_LOG_QUIET);
9
@@ -181,8 +182,10 @@
10
             av_opt_free(&test_ctx);
11
             memset(&test_ctx, 0, sizeof(test_ctx));
12
             test_ctx.class = &test_class;
13
-            av_set_options_string(&test_ctx, buf, "=", ",");
14
+            ret = av_set_options_string(&test_ctx, buf, "=", ",");
15
             av_free(buf);
16
+            if (ret < 0)
17
+                printf("Error ret '%d'\n", ret);
18
             if (av_opt_serialize(&test_ctx, 0, 0, &buf, '=', ',') >= 0) {
19
                 printf("%s\n", buf);
20
                 av_free(buf);
21
ffmpeg-3-3.4.13.tar.xz/libavutil/tests/softfloat.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/tests/softfloat.c Changed
10
 
1
@@ -148,7 +148,7 @@
2
         av_sincos_sf(i*(1ULL<<32)/36/4, &s, &c);
3
         errs = (double)s/ (1<<30) - sin(i*M_PI/36);
4
         errc = (double)c/ (1<<30) - cos(i*M_PI/36);
5
-        if (fabs(errs) > 0.00000002 || fabs(errc) >0.001) {
6
+        if (fabs(errs) > 0.000000004 || fabs(errc) >0.000000004) {
7
             printf("sincos FAIL %d %f %f %f %f\n", i, (float)s/ (1<<30), (float)c/ (1<<30), sin(i*M_PI/36), cos(i*M_PI/36));
8
         }
9
 
10
ffmpeg-3-3.4.13.tar.xz/libavutil/timecode.c -> ffmpeg-3-3.4.14.tar.xz/libavutil/timecode.c Changed
10
 
1
@@ -173,7 +173,7 @@
2
 {
3
     if (!rate.den || !rate.num)
4
         return -1;
5
-    return (rate.num + rate.den/2) / rate.den;
6
+    return (rate.num + rate.den/2LL) / rate.den;
7
 }
8
 
9
 int av_timecode_check_frame_rate(AVRational rate)
10
ffmpeg-3-3.4.13.tar.xz/libswscale/output.c -> ffmpeg-3-3.4.14.tar.xz/libswscale/output.c Changed
287
 
1
@@ -786,8 +786,8 @@
2
 
3
     for (i = 0; i < ((dstW + 1) >> 1); i++) {
4
         int j;
5
-        int Y1 = -0x40000000;
6
-        int Y2 = -0x40000000;
7
+        unsigned Y1 = -0x40000000;
8
+        unsigned Y2 = -0x40000000;
9
         int U  = -(128 << 23); // 19
10
         int V  = -(128 << 23);
11
         int R, G, B;
12
@@ -815,9 +815,9 @@
13
         }
14
 
15
         // 8 bits: 12+15=27; 16 bits: 12+19=31
16
-        Y1 >>= 14; // 10
17
+        Y1 = (int)Y1 >> 14; // 10
18
         Y1 += 0x10000;
19
-        Y2 >>= 14;
20
+        Y2 = (int)Y2 >> 14;
21
         Y2 += 0x10000;
22
         U  >>= 14;
23
         V  >>= 14;
24
@@ -836,20 +836,20 @@
25
         B =                            U * c->yuv2rgb_u2b_coeff;
26
 
27
         // 8 bits: 30 - 22 = 8 bits, 16 bits: 30 bits - 14 = 16 bits
28
-        output_pixel(&dest0, av_clip_uintp2(((R_B + Y1) >> 14) + (1<<15), 16));
29
-        output_pixel(&dest1, av_clip_uintp2(((  G + Y1) >> 14) + (1<<15), 16));
30
-        output_pixel(&dest2, av_clip_uintp2(((B_R + Y1) >> 14) + (1<<15), 16));
31
+        output_pixel(&dest0, av_clip_uintp2(((int)(R_B + Y1) >> 14) + (1<<15), 16));
32
+        output_pixel(&dest1, av_clip_uintp2(((int)(  G + Y1) >> 14) + (1<<15), 16));
33
+        output_pixel(&dest2, av_clip_uintp2(((int)(B_R + Y1) >> 14) + (1<<15), 16));
34
         if (eightbytes) {
35
             output_pixel(&dest3, av_clip_uintp2(A1      , 30) >> 14);
36
-            output_pixel(&dest4, av_clip_uintp2(((R_B + Y2) >> 14) + (1<<15), 16));
37
-            output_pixel(&dest5, av_clip_uintp2(((  G + Y2) >> 14) + (1<<15), 16));
38
-            output_pixel(&dest6, av_clip_uintp2(((B_R + Y2) >> 14) + (1<<15), 16));
39
+            output_pixel(&dest4, av_clip_uintp2(((int)(R_B + Y2) >> 14) + (1<<15), 16));
40
+            output_pixel(&dest5, av_clip_uintp2(((int)(  G + Y2) >> 14) + (1<<15), 16));
41
+            output_pixel(&dest6, av_clip_uintp2(((int)(B_R + Y2) >> 14) + (1<<15), 16));
42
             output_pixel(&dest7, av_clip_uintp2(A2      , 30) >> 14);
43
             dest += 8;
44
         } else {
45
-            output_pixel(&dest3, av_clip_uintp2(((R_B + Y2) >> 14) + (1<<15), 16));
46
-            output_pixel(&dest4, av_clip_uintp2(((  G + Y2) >> 14) + (1<<15), 16));
47
-            output_pixel(&dest5, av_clip_uintp2(((B_R + Y2) >> 14) + (1<<15), 16));
48
+            output_pixel(&dest3, av_clip_uintp2(((int)(R_B + Y2) >> 14) + (1<<15), 16));
49
+            output_pixel(&dest4, av_clip_uintp2(((int)(  G + Y2) >> 14) + (1<<15), 16));
50
+            output_pixel(&dest5, av_clip_uintp2(((int)(B_R + Y2) >> 14) + (1<<15), 16));
51
             dest += 6;
52
         }
53
     }
54
@@ -876,8 +876,8 @@
55
     av_assert2(uvalpha <= 4096U);
56
 
57
     for (i = 0; i < ((dstW + 1) >> 1); i++) {
58
-        int Y1 = (buf0i * 2     * yalpha1  + buf1i * 2     * yalpha) >> 14;
59
-        int Y2 = (buf0i * 2 + 1 * yalpha1  + buf1i * 2 + 1 * yalpha) >> 14;
60
+        unsigned Y1 = (buf0i * 2     * yalpha1  + buf1i * 2     * yalpha) >> 14;
61
+        unsigned Y2 = (buf0i * 2 + 1 * yalpha1  + buf1i * 2 + 1 * yalpha) >> 14;
62
         int U  = (ubuf0i        * uvalpha1 + ubuf1i        * uvalpha - (128 << 23)) >> 14;
63
         int V  = (vbuf0i        * uvalpha1 + vbuf1i        * uvalpha - (128 << 23)) >> 14;
64
         int R, G, B;
65
@@ -901,20 +901,20 @@
66
             A2 += 1 << 13;
67
         }
68
 
69
-        output_pixel(&dest0, av_clip_uintp2(((R_B + Y1) >> 14) + (1<<15), 16));
70
-        output_pixel(&dest1, av_clip_uintp2(((  G + Y1) >> 14) + (1<<15), 16));
71
-        output_pixel(&dest2, av_clip_uintp2(((B_R + Y1) >> 14) + (1<<15), 16));
72
+        output_pixel(&dest0, av_clip_uintp2(((int)(R_B + Y1) >> 14) + (1<<15), 16));
73
+        output_pixel(&dest1, av_clip_uintp2(((int)(  G + Y1) >> 14) + (1<<15), 16));
74
+        output_pixel(&dest2, av_clip_uintp2(((int)(B_R + Y1) >> 14) + (1<<15), 16));
75
         if (eightbytes) {
76
             output_pixel(&dest3, av_clip_uintp2(A1      , 30) >> 14);
77
-            output_pixel(&dest4, av_clip_uintp2(((R_B + Y2) >> 14) + (1<<15), 16));
78
-            output_pixel(&dest5, av_clip_uintp2(((  G + Y2) >> 14) + (1<<15), 16));
79
-            output_pixel(&dest6, av_clip_uintp2(((B_R + Y2) >> 14) + (1<<15), 16));
80
+            output_pixel(&dest4, av_clip_uintp2(((int)(R_B + Y2) >> 14) + (1<<15), 16));
81
+            output_pixel(&dest5, av_clip_uintp2(((int)(  G + Y2) >> 14) + (1<<15), 16));
82
+            output_pixel(&dest6, av_clip_uintp2(((int)(B_R + Y2) >> 14) + (1<<15), 16));
83
             output_pixel(&dest7, av_clip_uintp2(A2      , 30) >> 14);
84
             dest += 8;
85
         } else {
86
-            output_pixel(&dest3, av_clip_uintp2(((R_B + Y2) >> 14) + (1<<15), 16));
87
-            output_pixel(&dest4, av_clip_uintp2(((  G + Y2) >> 14) + (1<<15), 16));
88
-            output_pixel(&dest5, av_clip_uintp2(((B_R + Y2) >> 14) + (1<<15), 16));
89
+            output_pixel(&dest3, av_clip_uintp2(((int)(R_B + Y2) >> 14) + (1<<15), 16));
90
+            output_pixel(&dest4, av_clip_uintp2(((int)(  G + Y2) >> 14) + (1<<15), 16));
91
+            output_pixel(&dest5, av_clip_uintp2(((int)(B_R + Y2) >> 14) + (1<<15), 16));
92
             dest += 6;
93
         }
94
     }
95
@@ -932,8 +932,8 @@
96
 
97
     if (uvalpha < 2048) {
98
         for (i = 0; i < ((dstW + 1) >> 1); i++) {
99
-            int Y1 = (buf0i * 2    ) >> 2;
100
-            int Y2 = (buf0i * 2 + 1) >> 2;
101
+            SUINT Y1 = (buf0i * 2    ) >> 2;
102
+            SUINT Y2 = (buf0i * 2 + 1) >> 2;
103
             int U  = (ubuf0i - (128 << 11)) >> 2;
104
             int V  = (vbuf0i - (128 << 11)) >> 2;
105
             int R, G, B;
106
@@ -946,8 +946,8 @@
107
             Y2 += (1 << 13) - (1 << 29);
108
 
109
             if (hasAlpha) {
110
-                A1 = abuf0i * 2     << 11;
111
-                A2 = abuf0i * 2 + 1 << 11;
112
+                A1 = abuf0i * 2     * (1 << 11);
113
+                A2 = abuf0i * 2 + 1 * (1 << 11);
114
 
115
                 A1 += 1 << 13;
116
                 A2 += 1 << 13;
117
@@ -957,20 +957,20 @@
118
             G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;
119
             B =                            U * c->yuv2rgb_u2b_coeff;
120
 
121
-            output_pixel(&dest0, av_clip_uintp2(((R_B + Y1) >> 14) + (1<<15), 16));
122
-            output_pixel(&dest1, av_clip_uintp2(((  G + Y1) >> 14) + (1<<15), 16));
123
-            output_pixel(&dest2, av_clip_uintp2(((B_R + Y1) >> 14) + (1<<15), 16));
124
+            output_pixel(&dest0, av_clip_uintp2(((int)(R_B + Y1) >> 14) + (1<<15), 16));
125
+            output_pixel(&dest1, av_clip_uintp2(((int)(  G + Y1) >> 14) + (1<<15), 16));
126
+            output_pixel(&dest2, av_clip_uintp2(((int)(B_R + Y1) >> 14) + (1<<15), 16));
127
             if (eightbytes) {
128
                 output_pixel(&dest3, av_clip_uintp2(A1      , 30) >> 14);
129
-                output_pixel(&dest4, av_clip_uintp2(((R_B + Y2) >> 14) + (1<<15), 16));
130
-                output_pixel(&dest5, av_clip_uintp2(((  G + Y2) >> 14) + (1<<15), 16));
131
-                output_pixel(&dest6, av_clip_uintp2(((B_R + Y2) >> 14) + (1<<15), 16));
132
+                output_pixel(&dest4, av_clip_uintp2(((int)(R_B + Y2) >> 14) + (1<<15), 16));
133
+                output_pixel(&dest5, av_clip_uintp2(((int)(  G + Y2) >> 14) + (1<<15), 16));
134
+                output_pixel(&dest6, av_clip_uintp2(((int)(B_R + Y2) >> 14) + (1<<15), 16));
135
                 output_pixel(&dest7, av_clip_uintp2(A2      , 30) >> 14);
136
                 dest += 8;
137
             } else {
138
-                output_pixel(&dest3, av_clip_uintp2(((R_B + Y2) >> 14) + (1<<15), 16));
139
-                output_pixel(&dest4, av_clip_uintp2(((  G + Y2) >> 14) + (1<<15), 16));
140
-                output_pixel(&dest5, av_clip_uintp2(((B_R + Y2) >> 14) + (1<<15), 16));
141
+                output_pixel(&dest3, av_clip_uintp2(((int)(R_B + Y2) >> 14) + (1<<15), 16));
142
+                output_pixel(&dest4, av_clip_uintp2(((int)(  G + Y2) >> 14) + (1<<15), 16));
143
+                output_pixel(&dest5, av_clip_uintp2(((int)(B_R + Y2) >> 14) + (1<<15), 16));
144
                 dest += 6;
145
             }
146
         }
147
@@ -978,8 +978,8 @@
148
         const int32_t *ubuf1 = ubuf1, *vbuf1 = vbuf1;
149
         int A1 = 0xffff<<14, A2 = 0xffff<<14;
150
         for (i = 0; i < ((dstW + 1) >> 1); i++) {
151
-            int Y1 = (buf0i * 2    ) >> 2;
152
-            int Y2 = (buf0i * 2 + 1) >> 2;
153
+            SUINT Y1 = (buf0i * 2    ) >> 2;
154
+            SUINT Y2 = (buf0i * 2 + 1) >> 2;
155
             int U  = (ubuf0i + ubuf1i - (128 << 12)) >> 3;
156
             int V  = (vbuf0i + vbuf1i - (128 << 12)) >> 3;
157
             int R, G, B;
158
@@ -992,8 +992,8 @@
159
             Y2 += (1 << 13) - (1 << 29);
160
 
161
             if (hasAlpha) {
162
-                A1 = abuf0i * 2     << 11;
163
-                A2 = abuf0i * 2 + 1 << 11;
164
+                A1 = abuf0i * 2     * (1 << 11);
165
+                A2 = abuf0i * 2 + 1 * (1 << 11);
166
 
167
                 A1 += 1 << 13;
168
                 A2 += 1 << 13;
169
@@ -1003,20 +1003,20 @@
170
             G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;
171
             B =                            U * c->yuv2rgb_u2b_coeff;
172
 
173
-            output_pixel(&dest0, av_clip_uintp2(((R_B + Y1) >> 14) + (1<<15), 16));
174
-            output_pixel(&dest1, av_clip_uintp2(((  G + Y1) >> 14) + (1<<15), 16));
175
-            output_pixel(&dest2, av_clip_uintp2(((B_R + Y1) >> 14) + (1<<15), 16));
176
+            output_pixel(&dest0, av_clip_uintp2(((int)(R_B + Y1) >> 14) + (1<<15), 16));
177
+            output_pixel(&dest1, av_clip_uintp2(((int)(  G + Y1) >> 14) + (1<<15), 16));
178
+            output_pixel(&dest2, av_clip_uintp2(((int)(B_R + Y1) >> 14) + (1<<15), 16));
179
             if (eightbytes) {
180
                 output_pixel(&dest3, av_clip_uintp2(A1      , 30) >> 14);
181
-                output_pixel(&dest4, av_clip_uintp2(((R_B + Y2) >> 14) + (1<<15), 16));
182
-                output_pixel(&dest5, av_clip_uintp2(((  G + Y2) >> 14) + (1<<15), 16));
183
-                output_pixel(&dest6, av_clip_uintp2(((B_R + Y2) >> 14) + (1<<15), 16));
184
+                output_pixel(&dest4, av_clip_uintp2(((int)(R_B + Y2) >> 14) + (1<<15), 16));
185
+                output_pixel(&dest5, av_clip_uintp2(((int)(  G + Y2) >> 14) + (1<<15), 16));
186
+                output_pixel(&dest6, av_clip_uintp2(((int)(B_R + Y2) >> 14) + (1<<15), 16));
187
                 output_pixel(&dest7, av_clip_uintp2(A2      , 30) >> 14);
188
                 dest += 8;
189
             } else {
190
-                output_pixel(&dest3, av_clip_uintp2(((R_B + Y2) >> 14) + (1<<15), 16));
191
-                output_pixel(&dest4, av_clip_uintp2(((  G + Y2) >> 14) + (1<<15), 16));
192
-                output_pixel(&dest5, av_clip_uintp2(((B_R + Y2) >> 14) + (1<<15), 16));
193
+                output_pixel(&dest3, av_clip_uintp2(((int)(R_B + Y2) >> 14) + (1<<15), 16));
194
+                output_pixel(&dest4, av_clip_uintp2(((int)(  G + Y2) >> 14) + (1<<15), 16));
195
+                output_pixel(&dest5, av_clip_uintp2(((int)(B_R + Y2) >> 14) + (1<<15), 16));
196
                 dest += 6;
197
             }
198
         }
199
@@ -1075,9 +1075,9 @@
200
         B =                            U * c->yuv2rgb_u2b_coeff;
201
 
202
         // 8bit: 30 - 22 = 8bit, 16bit: 30bit - 14 = 16bit
203
-        output_pixel(&dest0, av_clip_uintp2(((R_B + Y)>>14) + (1<<15), 16));
204
-        output_pixel(&dest1, av_clip_uintp2(((  G + Y)>>14) + (1<<15), 16));
205
-        output_pixel(&dest2, av_clip_uintp2(((B_R + Y)>>14) + (1<<15), 16));
206
+        output_pixel(&dest0, av_clip_uintp2(((int)(R_B + (unsigned)Y)>>14) + (1<<15), 16));
207
+        output_pixel(&dest1, av_clip_uintp2(((int)(  G + (unsigned)Y)>>14) + (1<<15), 16));
208
+        output_pixel(&dest2, av_clip_uintp2(((int)(B_R + (unsigned)Y)>>14) + (1<<15), 16));
209
         if (eightbytes) {
210
             output_pixel(&dest3, av_clip_uintp2(A, 30) >> 14);
211
             dest += 4;
212
@@ -1151,7 +1151,7 @@
213
 
214
     if (uvalpha < 2048) {
215
         for (i = 0; i < dstW; i++) {
216
-            int Y  = (buf0i) >> 2;
217
+            SUINT Y  = (buf0i) >> 2;
218
             int U  = (ubuf0i - (128 << 11)) >> 2;
219
             int V  = (vbuf0i - (128 << 11)) >> 2;
220
             int R, G, B;
221
@@ -1161,7 +1161,7 @@
222
             Y += (1 << 13) - (1 << 29);
223
 
224
             if (hasAlpha) {
225
-                A = abuf0i << 11;
226
+                A = abuf0i * (1 << 11);
227
 
228
                 A += 1 << 13;
229
             }
230
@@ -1170,9 +1170,9 @@
231
             G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;
232
             B =                            U * c->yuv2rgb_u2b_coeff;
233
 
234
-            output_pixel(&dest0, av_clip_uintp2(((R_B + Y) >> 14) + (1<<15), 16));
235
-            output_pixel(&dest1, av_clip_uintp2(((  G + Y) >> 14) + (1<<15), 16));
236
-            output_pixel(&dest2, av_clip_uintp2(((B_R + Y) >> 14) + (1<<15), 16));
237
+            output_pixel(&dest0, av_clip_uintp2(((int)(R_B + Y) >> 14) + (1<<15), 16));
238
+            output_pixel(&dest1, av_clip_uintp2(((int)(  G + Y) >> 14) + (1<<15), 16));
239
+            output_pixel(&dest2, av_clip_uintp2(((int)(B_R + Y) >> 14) + (1<<15), 16));
240
             if (eightbytes) {
241
                 output_pixel(&dest3, av_clip_uintp2(A, 30) >> 14);
242
                 dest += 4;
243
@@ -1184,7 +1184,7 @@
244
         const int32_t *ubuf1 = ubuf1, *vbuf1 = vbuf1;
245
         int A = 0xffff<<14;
246
         for (i = 0; i < dstW; i++) {
247
-            int Y  = (buf0i    ) >> 2;
248
+            SUINT Y  = (buf0i    ) >> 2;
249
             int U  = (ubuf0i + ubuf1i - (128 << 12)) >> 3;
250
             int V  = (vbuf0i + vbuf1i - (128 << 12)) >> 3;
251
             int R, G, B;
252
@@ -1194,7 +1194,7 @@
253
             Y += (1 << 13) - (1 << 29);
254
 
255
             if (hasAlpha) {
256
-                A = abuf0i << 11;
257
+                A = abuf0i * (1 << 11);
258
 
259
                 A += 1 << 13;
260
             }
261
@@ -1203,9 +1203,9 @@
262
             G = V * c->yuv2rgb_v2g_coeff + U * c->yuv2rgb_u2g_coeff;
263
             B =                            U * c->yuv2rgb_u2b_coeff;
264
 
265
-            output_pixel(&dest0, av_clip_uintp2(((R_B + Y) >> 14) + (1<<15), 16));
266
-            output_pixel(&dest1, av_clip_uintp2(((  G + Y) >> 14) + (1<<15), 16));
267
-            output_pixel(&dest2, av_clip_uintp2(((B_R + Y) >> 14) + (1<<15), 16));
268
+            output_pixel(&dest0, av_clip_uintp2(((int)(R_B + Y) >> 14) + (1<<15), 16));
269
+            output_pixel(&dest1, av_clip_uintp2(((int)(  G + Y) >> 14) + (1<<15), 16));
270
+            output_pixel(&dest2, av_clip_uintp2(((int)(B_R + Y) >> 14) + (1<<15), 16));
271
             if (eightbytes) {
272
                 output_pixel(&dest3, av_clip_uintp2(A, 30) >> 14);
273
                 dest += 4;
274
@@ -1634,9 +1634,9 @@
275
     Y -= c->yuv2rgb_y_offset;
276
     Y *= c->yuv2rgb_y_coeff;
277
     Y += 1 << 21;
278
-    R = (unsigned)Y + V*c->yuv2rgb_v2r_coeff;
279
-    G = (unsigned)Y + V*c->yuv2rgb_v2g_coeff + U*c->yuv2rgb_u2g_coeff;
280
-    B = (unsigned)Y +                          U*c->yuv2rgb_u2b_coeff;
281
+    R = (unsigned)Y + V*(unsigned)c->yuv2rgb_v2r_coeff;
282
+    G = (unsigned)Y + V*(unsigned)c->yuv2rgb_v2g_coeff + U*(unsigned)c->yuv2rgb_u2g_coeff;
283
+    B = (unsigned)Y +                                    U*(unsigned)c->yuv2rgb_u2b_coeff;
284
     if ((R | G | B) & 0xC0000000) {
285
         R = av_clip_uintp2(R, 30);
286
         G = av_clip_uintp2(G, 30);
287
ffmpeg-3-3.4.13.tar.xz/libswscale/slice.c -> ffmpeg-3-3.4.14.tar.xz/libswscale/slice.c Changed
10
 
1
@@ -59,7 +59,7 @@
2
         for (j = 0; j < n; ++j) {
3
             // chroma plane line U and V are expected to be contiguous in memory
4
             // by mmx vertical scaler code
5
-            s->planei.linej = av_malloc(size * 2 + 32);
6
+            s->planei.linej = av_mallocz(size * 2 + 32);
7
             if (!s->planei.linej) {
8
                 free_lines(s);
9
                 return AVERROR(ENOMEM);
10
ffmpeg-3-3.4.13.tar.xz/libswscale/swscale.c -> ffmpeg-3-3.4.14.tar.xz/libswscale/swscale.c Changed
20
 
1
@@ -219,7 +219,7 @@
2
     int i;
3
     int32_t *dst = (int32_t *) _dst;
4
     for (i = 0; i < width; i++)
5
-        dsti = (dsti*(14071/4) + (33561947<<4)/4)>>12;
6
+        dsti = ((int)(dsti*(14071U/4) + (33561947<<4)/4)) >> 12;
7
 }
8
 
9
 
10
@@ -778,7 +778,8 @@
11
 
12
     if ((srcSliceY & (macro_height-1)) ||
13
         ((srcSliceH& (macro_height-1)) && srcSliceY + srcSliceH != c->srcH) ||
14
-        srcSliceY + srcSliceH > c->srcH) {
15
+        srcSliceY + srcSliceH > c->srcH ||
16
+        (isBayer(c->srcFormat) && srcSliceH <= 1)) {
17
         av_log(c, AV_LOG_ERROR, "Slice parameters %d, %d are invalid\n", srcSliceY, srcSliceH);
18
         return AVERROR(EINVAL);
19
     }
20
ffmpeg-3-3.4.13.tar.xz/libswscale/utils.c -> ffmpeg-3-3.4.14.tar.xz/libswscale/utils.c Changed
28
 
1
@@ -496,7 +496,7 @@
2
                 filteri * filterSize + j = coeff;
3
                 xx++;
4
             }
5
-            xDstInSrc += 2 * xInc;
6
+            xDstInSrc += 2LL * xInc;
7
         }
8
     }
9
 
10
@@ -1714,7 +1714,7 @@
11
     }
12
 
13
     for (i = 0; i < 4; i++)
14
-        FF_ALLOCZ_OR_GOTO(c, c->dither_errori, (c->dstW+2) * sizeof(int), fail);
15
+        FF_ALLOCZ_OR_GOTO(c, c->dither_errori, (c->dstW+3) * sizeof(int), fail);
16
 
17
     c->needAlpha = (CONFIG_SWSCALE_ALPHA && isALPHA(c->srcFormat) && isALPHA(c->dstFormat)) ? 1 : 0;
18
 
19
@@ -1789,7 +1789,7 @@
20
 
21
     /* unscaled special cases */
22
     if (unscaled && !usesHFilter && !usesVFilter &&
23
-        (c->srcRange == c->dstRange || isAnyRGB(dstFormat))) {
24
+        (c->srcRange == c->dstRange || isAnyRGB(dstFormat) || isBayer(srcFormat))) {
25
         ff_get_unscaled_swscale(c);
26
 
27
         if (c->swscale) {
28
ffmpeg-3-3.4.13.tar.xz/libswscale/yuv2rgb.c -> ffmpeg-3-3.4.14.tar.xz/libswscale/yuv2rgb.c Changed
10
 
1
@@ -817,7 +817,7 @@
2
     cbu  = (cbu * contrast * saturation) >> 32;
3
     cgu  = (cgu * contrast * saturation) >> 32;
4
     cgv  = (cgv * contrast * saturation) >> 32;
5
-    oy  -= 256 * brightness;
6
+    oy  -= 256LL * brightness;
7
 
8
     c->uOffset = 0x0400040004000400LL;
9
     c->vOffset = 0x0400040004000400LL;
10
ffmpeg-3-3.4.13.tar.xz/tests/fate/subtitles.mak -> ffmpeg-3-3.4.14.tar.xz/tests/fate/subtitles.mak Changed
9
 
1
@@ -99,6 +99,7 @@
2
 
3
 FATE_SUBTITLES-$(call DEMDEC, SCC, CCAPTION) += fate-sub-scc
4
 fate-sub-scc: CMD = fmtstdout ass -ss 57 -i $(TARGET_SAMPLES)/sub/witch.scc
5
+fate-sub-scc: CMP = diff
6
 
7
 FATE_SUBTITLES-$(call ENCMUX, ASS, ASS) += $(FATE_SUBTITLES_ASS-yes)
8
 FATE_SUBTITLES += $(FATE_SUBTITLES-yes)
9
ffmpeg-3-3.4.13.tar.xz/tools/coverity.c -> ffmpeg-3-3.4.14.tar.xz/tools/coverity.c Changed
30
 
1
@@ -31,6 +31,17 @@
2
 
3
 #define NULL (void *)0
4
 
5
+typedef long long int64_t;
6
+
7
+enum AVRounding {
8
+    AV_ROUND_ZERO     = 0,
9
+    AV_ROUND_INF      = 1,
10
+    AV_ROUND_DOWN     = 2,
11
+    AV_ROUND_UP       = 3,
12
+    AV_ROUND_NEAR_INF = 5,
13
+    AV_ROUND_PASS_MINMAX = 8192,
14
+};
15
+
16
 // Based on https://scan.coverity.com/models
17
 void *av_malloc(size_t size) {
18
     int has_memory;
19
@@ -77,3 +88,10 @@
20
     __coverity_mark_as_afm_freed__(ptr, "av_free");
21
 }
22
 
23
+
24
+int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) {
25
+    __coverity_negative_sink__(b);
26
+    __coverity_negative_sink__(c);
27
+
28
+    return (double)a * (double)b / (double)c;
29
+}
30